diff --git a/dist/camino/schema_pb.d.ts b/dist/camino/schema_pb.d.ts index cbf4e74..28eefd7 100644 --- a/dist/camino/schema_pb.d.ts +++ b/dist/camino/schema_pb.d.ts @@ -323,6 +323,14 @@ export type InterfaceFieldContract = Message<"camino.InterfaceFieldContract"> & * @generated from field: camino.TypeRef type = 6; */ type?: TypeRef | undefined; + /** + * @generated from field: string ref_target_type_param = 7; + */ + refTargetTypeParam: string; + /** + * @generated from field: camino.Cardinality edge_cardinality = 8; + */ + edgeCardinality: Cardinality; }; /** * Describes the message camino.InterfaceFieldContract. @@ -371,6 +379,10 @@ export type InterfaceSchema = Message<"camino.InterfaceSchema"> & { * @generated from field: string proto_message = 5; */ protoMessage: string; + /** + * @generated from field: repeated string type_parameters = 6; + */ + typeParameters: string[]; }; /** * Describes the message camino.InterfaceSchema. diff --git a/dist/camino/schema_pb.d.ts.map b/dist/camino/schema_pb.d.ts.map index f493fa7..91d3da5 100644 --- a/dist/camino/schema_pb.d.ts.map +++ b/dist/camino/schema_pb.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"schema_pb.d.ts","sourceRoot":"","sources":["../../src/camino/schema_pb.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"schema_pb.d.ts","sourceRoot":"","sources":["../../src/camino/schema_pb.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/camino/schema_pb.js b/dist/camino/schema_pb.js index bd8618b..1f4e173 100644 --- a/dist/camino/schema_pb.js +++ b/dist/camino/schema_pb.js @@ -6,7 +6,7 @@ import { file_quixos_refs } from "../quixos/refs_pb.js"; /** * Describes the file camino/schema.proto. */ -export const file_camino_schema = /*@__PURE__*/ fileDesc("ChNjYW1pbm8vc2NoZW1hLnByb3RvEgZjYW1pbm8iSwoJU3ltYm9sUmVmEhEKCW5hbWVzcGFjZRgBIAEoCRIMCgRuYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSDAoEaGFzaBgEIAEoCSIYCgNSZWYSEQoJb2JqZWN0X2lkGAEgASgJIg0KC0N1c3RvbUZpZWxkIiQKEFdhdGNoU3RhcnRSZXN1bHQSEAoId2F0Y2hfaWQYASABKAkiJAoQV2F0Y2hTdG9wUmVxdWVzdBIQCgh3YXRjaF9pZBgBIAEoCSIRCg9XYXRjaFN0b3BSZXN1bHQiGwoIQ3JkdFRleHQSDwoHcGF5bG9hZBgBIAEoDCIfCgxDcmR0UmljaFRleHQSDwoHcGF5bG9hZBgBIAEoDCIbCghDcmR0SnNvbhIPCgdwYXlsb2FkGAEgASgMIqgDCgtDbGFzc1NjaGVtYRIdCgJpZBgBIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSDwoHdmVyc2lvbhgCIAEoDRIjCgZmaWVsZHMYAyADKAsyEy5jYW1pbm8uRmllbGRTY2hlbWESIQoFZWRnZXMYBCADKAsyEi5jYW1pbm8uRWRnZVNjaGVtYRIlCgdtZXRob2RzGAUgAygLMhQuY2FtaW5vLk1ldGhvZFNjaGVtYRIpCgptaWdyYXRpb25zGAYgAygLMhUuY2FtaW5vLk1pZ3JhdGlvblNwZWMSEwoLc291cmNlX2ZpbGUYByABKAkSFQoNcHJvdG9fbWVzc2FnZRgIIAEoCRI6ChJvcGVyYXRpb25fc2VydmljZXMYCSADKAsyHi5jYW1pbm8uT3BlcmF0aW9uU2VydmljZVNjaGVtYRI5CgppbXBsZW1lbnRzGAogAygLMiUuY2FtaW5vLkludGVyZmFjZUltcGxlbWVudGF0aW9uU2NoZW1hEiwKC2NvbnN0cnVjdG9yGAsgASgLMhcuY2FtaW5vLkNvbnN0cnVjdG9yU3BlYyKzAgoLRmllbGRTY2hlbWESDAoEbmFtZRgBIAEoCRILCgN0YWcYAiABKA0SHQoEdHlwZRgDIAEoCzIPLmNhbWluby5UeXBlUmVmEioKCGNvbmZsaWN0GAQgASgOMhguY2FtaW5vLkNvbmZsaWN0U3RyYXRlZ3kSEAoIcmVwZWF0ZWQYBSABKAgSEAoIb3B0aW9uYWwYBiABKAgSJQoHc3RvcmFnZRgHIAEoCzIULmNhbWluby5GaWVsZFN0b3JhZ2USHQoDb3BzGAggASgLMhAuY2FtaW5vLkZpZWxkT3BzEjoKEmludGVyZmFjZV9jb250cmFjdBgJIAEoCzIeLmNhbWluby5JbnRlcmZhY2VGaWVsZENvbnRyYWN0EhgKEGlzX2Rpc3BsYXlfbGFiZWwYCiABKAgibAoMRmllbGRTdG9yYWdlEiYKBGtpbmQYASABKA4yGC5jYW1pbm8uRmllbGRTdG9yYWdlS2luZBIlCghyZXNvbHZlchgCIAEoCzITLnF1aXhvcy5GdW5jdGlvblJlZhINCgVjYWNoZRgDIAEoCCJACgdUeXBlUmVmEhIKCnByb3RvX3R5cGUYASABKAkSIQoGc3ltYm9sGAIgASgLMhEuY2FtaW5vLlN5bWJvbFJlZiI6CgtUeXBlQmluZGluZxIMCgRuYW1lGAEgASgJEh0KBHR5cGUYAiABKAsyDy5jYW1pbm8uVHlwZVJlZiKUAQoWSW50ZXJmYWNlRmllbGRDb250cmFjdBIQCghyZXF1aXJlZBgBIAEoCBIQCghyZWFkYWJsZRgCIAEoCBIQCgh3cml0YWJsZRgDIAEoCBIRCgl3YXRjaGFibGUYBCABKAgSEgoKdHlwZV9wYXJhbRgFIAEoCRIdCgR0eXBlGAYgASgLMg8uY2FtaW5vLlR5cGVSZWYicQodSW50ZXJmYWNlSW1wbGVtZW50YXRpb25TY2hlbWESJAoJaW50ZXJmYWNlGAEgASgLMhEuY2FtaW5vLlN5bWJvbFJlZhIqCg10eXBlX2JpbmRpbmdzGAIgAygLMhMuY2FtaW5vLlR5cGVCaW5kaW5nIpIBCg9JbnRlcmZhY2VTY2hlbWESHQoCaWQYASABKAsyES5jYW1pbm8uU3ltYm9sUmVmEg8KB3ZlcnNpb24YAiABKA0SIwoGZmllbGRzGAMgAygLMhMuY2FtaW5vLkZpZWxkU2NoZW1hEhMKC3NvdXJjZV9maWxlGAQgASgJEhUKDXByb3RvX21lc3NhZ2UYBSABKAkiUAoIRmllbGRPcHMSMwoOaW1wbGVtZW50YXRpb24YASABKA4yGy5jYW1pbm8uRmllbGRJbXBsZW1lbnRhdGlvbhIPCgdzZXJ2aWNlGAIgASgJItkDCgpFZGdlU2NoZW1hEh0KAmlkGAEgASgLMhEuY2FtaW5vLlN5bWJvbFJlZhIUCgxzb3VyY2VfZmllbGQYAiABKAkSJQoKZnJvbV9jbGFzcxgDIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSIwoIdG9fY2xhc3MYBCABKAsyES5jYW1pbm8uU3ltYm9sUmVmEigKC2NhcmRpbmFsaXR5GAUgASgOMhMuY2FtaW5vLkNhcmRpbmFsaXR5Eg8KB2ludmVyc2UYBiABKAkSIwoGZmllbGRzGAcgAygLMhMuY2FtaW5vLkZpZWxkU2NoZW1hEjEKDWZyb21fZW5kcG9pbnQYCCABKAsyGi5jYW1pbm8uRWRnZUVuZHBvaW50U2NoZW1hEi8KC3RvX2VuZHBvaW50GAkgASgLMhouY2FtaW5vLkVkZ2VFbmRwb2ludFNjaGVtYRIqCg9kZWNsYXJpbmdfY2xhc3MYCiABKAsyES5jYW1pbm8uU3ltYm9sUmVmEh8KBHRhZ3MYCyADKAsyES5jYW1pbm8uU3ltYm9sUmVmEiUKCmltcGxlbWVudHMYDCADKAsyES5jYW1pbm8uU3ltYm9sUmVmEhIKCnVuZGlyZWN0ZWQYDSABKAgi3QEKEkVkZ2VFbmRwb2ludFNjaGVtYRIgCgVjbGFzcxgBIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSJAoJaW50ZXJmYWNlGAIgASgLMhEuY2FtaW5vLlN5bWJvbFJlZhISCgpwcm9qZWN0aW9uGAMgASgJEigKC2NhcmRpbmFsaXR5GAQgASgOMhMuY2FtaW5vLkNhcmRpbmFsaXR5Eg8KB2luZGV4ZWQYBSABKAgSMAoLbWF0ZXJpYWxpemUYBiABKAsyGy5jYW1pbm8uRWRnZU1hdGVyaWFsaXphdGlvbiJTChNFZGdlTWF0ZXJpYWxpemF0aW9uEiAKBWNsYXNzGAEgASgLMhEuY2FtaW5vLlN5bWJvbFJlZhIaChJjb25uZWN0X3Byb2plY3Rpb24YAiABKAkiQwoMTWV0aG9kU2NoZW1hEgwKBG5hbWUYASABKAkSJQoIZnVuY3Rpb24YAiABKAsyEy5xdWl4b3MuRnVuY3Rpb25SZWYiYAoNTWlncmF0aW9uU3BlYxIUCgxmcm9tX3ZlcnNpb24YASABKA0SEgoKdG9fdmVyc2lvbhgCIAEoDRIlCghmdW5jdGlvbhgDIAEoCzITLnF1aXhvcy5GdW5jdGlvblJlZiI4Cg9Db25zdHJ1Y3RvclNwZWMSJQoIZnVuY3Rpb24YASABKAsyEy5xdWl4b3MuRnVuY3Rpb25SZWYikQEKD09wZXJhdGlvblNjaGVtYRIMCgRuYW1lGAEgASgJEiMKCmlucHV0X3R5cGUYAiABKAsyDy5jYW1pbm8uVHlwZVJlZhIkCgtvdXRwdXRfdHlwZRgDIAEoCzIPLmNhbWluby5UeXBlUmVmEiUKCGZ1bmN0aW9uGAQgASgLMhMucXVpeG9zLkZ1bmN0aW9uUmVmImYKFk9wZXJhdGlvblNlcnZpY2VTY2hlbWESDAoEbmFtZRgBIAEoCRIRCglmdWxsX25hbWUYAiABKAkSKwoKb3BlcmF0aW9ucxgDIAMoCzIXLmNhbWluby5PcGVyYXRpb25TY2hlbWEimwEKEURvY1JlZkRlY2xhcmF0aW9uEhIKCmxvY2FsX25hbWUYASABKAkSHwoEdHlwZRgCIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSJwoMdGFyZ2V0X2NsYXNzGAMgASgLMhEuY2FtaW5vLlN5bWJvbFJlZhIoCghzdHJlbmd0aBgEIAEoDjIWLmNhbWluby5Eb2NSZWZTdHJlbmd0aCpkChBDb25mbGljdFN0cmF0ZWd5EiEKHUNPTkZMSUNUX1NUUkFURUdZX1VOU1BFQ0lGSUVEEAASCwoHUkVQTEFDRRABEhYKElBSRVNFUlZFX0NPTkZMSUNUUxACEggKBENSRFQQAyqTAQoLQ2FyZGluYWxpdHkSGwoXQ0FSRElOQUxJVFlfVU5TUEVDSUZJRUQQABIQCgxPUFRJT05BTF9PTkUQARIPCgtFWEFDVExZX09ORRACEggKBE1BTlkQAxIPCgtNQU5ZX1VOSVFVRRAEEhAKDE1BTllfT1JERVJFRBAFEhcKE01BTllfVU5JUVVFX09SREVSRUQQBipUCg5Eb2NSZWZTdHJlbmd0aBIgChxET0NfUkVGX1NUUkVOR1RIX1VOU1BFQ0lGSUVEEAASDAoIU09GVF9SRUYQARISCg5QUk9KRUNURURfRURHRRACKnkKEEZpZWxkU3RvcmFnZUtpbmQSIgoeRklFTERfU1RPUkFHRV9LSU5EX1VOU1BFQ0lGSUVEEAASCgoGU1RPUkVEEAESCwoHREVSSVZFRBACEggKBExBWlkQAxIMCghFWFRFUk5BTBAEEhAKDFNUQVRJQ19GSU5BTBAFKkgKE0ZpZWxkSW1wbGVtZW50YXRpb24SJAogRklFTERfSU1QTEVNRU5UQVRJT05fVU5TUEVDSUZJRUQQABILCgdTRVJWSUNFEAFiBnByb3RvMw", [file_quixos_refs]); +export const file_camino_schema = /*@__PURE__*/ fileDesc("ChNjYW1pbm8vc2NoZW1hLnByb3RvEgZjYW1pbm8iSwoJU3ltYm9sUmVmEhEKCW5hbWVzcGFjZRgBIAEoCRIMCgRuYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSDAoEaGFzaBgEIAEoCSIYCgNSZWYSEQoJb2JqZWN0X2lkGAEgASgJIg0KC0N1c3RvbUZpZWxkIiQKEFdhdGNoU3RhcnRSZXN1bHQSEAoId2F0Y2hfaWQYASABKAkiJAoQV2F0Y2hTdG9wUmVxdWVzdBIQCgh3YXRjaF9pZBgBIAEoCSIRCg9XYXRjaFN0b3BSZXN1bHQiGwoIQ3JkdFRleHQSDwoHcGF5bG9hZBgBIAEoDCIfCgxDcmR0UmljaFRleHQSDwoHcGF5bG9hZBgBIAEoDCIbCghDcmR0SnNvbhIPCgdwYXlsb2FkGAEgASgMIqgDCgtDbGFzc1NjaGVtYRIdCgJpZBgBIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSDwoHdmVyc2lvbhgCIAEoDRIjCgZmaWVsZHMYAyADKAsyEy5jYW1pbm8uRmllbGRTY2hlbWESIQoFZWRnZXMYBCADKAsyEi5jYW1pbm8uRWRnZVNjaGVtYRIlCgdtZXRob2RzGAUgAygLMhQuY2FtaW5vLk1ldGhvZFNjaGVtYRIpCgptaWdyYXRpb25zGAYgAygLMhUuY2FtaW5vLk1pZ3JhdGlvblNwZWMSEwoLc291cmNlX2ZpbGUYByABKAkSFQoNcHJvdG9fbWVzc2FnZRgIIAEoCRI6ChJvcGVyYXRpb25fc2VydmljZXMYCSADKAsyHi5jYW1pbm8uT3BlcmF0aW9uU2VydmljZVNjaGVtYRI5CgppbXBsZW1lbnRzGAogAygLMiUuY2FtaW5vLkludGVyZmFjZUltcGxlbWVudGF0aW9uU2NoZW1hEiwKC2NvbnN0cnVjdG9yGAsgASgLMhcuY2FtaW5vLkNvbnN0cnVjdG9yU3BlYyKzAgoLRmllbGRTY2hlbWESDAoEbmFtZRgBIAEoCRILCgN0YWcYAiABKA0SHQoEdHlwZRgDIAEoCzIPLmNhbWluby5UeXBlUmVmEioKCGNvbmZsaWN0GAQgASgOMhguY2FtaW5vLkNvbmZsaWN0U3RyYXRlZ3kSEAoIcmVwZWF0ZWQYBSABKAgSEAoIb3B0aW9uYWwYBiABKAgSJQoHc3RvcmFnZRgHIAEoCzIULmNhbWluby5GaWVsZFN0b3JhZ2USHQoDb3BzGAggASgLMhAuY2FtaW5vLkZpZWxkT3BzEjoKEmludGVyZmFjZV9jb250cmFjdBgJIAEoCzIeLmNhbWluby5JbnRlcmZhY2VGaWVsZENvbnRyYWN0EhgKEGlzX2Rpc3BsYXlfbGFiZWwYCiABKAgibAoMRmllbGRTdG9yYWdlEiYKBGtpbmQYASABKA4yGC5jYW1pbm8uRmllbGRTdG9yYWdlS2luZBIlCghyZXNvbHZlchgCIAEoCzITLnF1aXhvcy5GdW5jdGlvblJlZhINCgVjYWNoZRgDIAEoCCJACgdUeXBlUmVmEhIKCnByb3RvX3R5cGUYASABKAkSIQoGc3ltYm9sGAIgASgLMhEuY2FtaW5vLlN5bWJvbFJlZiI6CgtUeXBlQmluZGluZxIMCgRuYW1lGAEgASgJEh0KBHR5cGUYAiABKAsyDy5jYW1pbm8uVHlwZVJlZiLiAQoWSW50ZXJmYWNlRmllbGRDb250cmFjdBIQCghyZXF1aXJlZBgBIAEoCBIQCghyZWFkYWJsZRgCIAEoCBIQCgh3cml0YWJsZRgDIAEoCBIRCgl3YXRjaGFibGUYBCABKAgSEgoKdHlwZV9wYXJhbRgFIAEoCRIdCgR0eXBlGAYgASgLMg8uY2FtaW5vLlR5cGVSZWYSHQoVcmVmX3RhcmdldF90eXBlX3BhcmFtGAcgASgJEi0KEGVkZ2VfY2FyZGluYWxpdHkYCCABKA4yEy5jYW1pbm8uQ2FyZGluYWxpdHkicQodSW50ZXJmYWNlSW1wbGVtZW50YXRpb25TY2hlbWESJAoJaW50ZXJmYWNlGAEgASgLMhEuY2FtaW5vLlN5bWJvbFJlZhIqCg10eXBlX2JpbmRpbmdzGAIgAygLMhMuY2FtaW5vLlR5cGVCaW5kaW5nIqsBCg9JbnRlcmZhY2VTY2hlbWESHQoCaWQYASABKAsyES5jYW1pbm8uU3ltYm9sUmVmEg8KB3ZlcnNpb24YAiABKA0SIwoGZmllbGRzGAMgAygLMhMuY2FtaW5vLkZpZWxkU2NoZW1hEhMKC3NvdXJjZV9maWxlGAQgASgJEhUKDXByb3RvX21lc3NhZ2UYBSABKAkSFwoPdHlwZV9wYXJhbWV0ZXJzGAYgAygJIlAKCEZpZWxkT3BzEjMKDmltcGxlbWVudGF0aW9uGAEgASgOMhsuY2FtaW5vLkZpZWxkSW1wbGVtZW50YXRpb24SDwoHc2VydmljZRgCIAEoCSLZAwoKRWRnZVNjaGVtYRIdCgJpZBgBIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSFAoMc291cmNlX2ZpZWxkGAIgASgJEiUKCmZyb21fY2xhc3MYAyABKAsyES5jYW1pbm8uU3ltYm9sUmVmEiMKCHRvX2NsYXNzGAQgASgLMhEuY2FtaW5vLlN5bWJvbFJlZhIoCgtjYXJkaW5hbGl0eRgFIAEoDjITLmNhbWluby5DYXJkaW5hbGl0eRIPCgdpbnZlcnNlGAYgASgJEiMKBmZpZWxkcxgHIAMoCzITLmNhbWluby5GaWVsZFNjaGVtYRIxCg1mcm9tX2VuZHBvaW50GAggASgLMhouY2FtaW5vLkVkZ2VFbmRwb2ludFNjaGVtYRIvCgt0b19lbmRwb2ludBgJIAEoCzIaLmNhbWluby5FZGdlRW5kcG9pbnRTY2hlbWESKgoPZGVjbGFyaW5nX2NsYXNzGAogASgLMhEuY2FtaW5vLlN5bWJvbFJlZhIfCgR0YWdzGAsgAygLMhEuY2FtaW5vLlN5bWJvbFJlZhIlCgppbXBsZW1lbnRzGAwgAygLMhEuY2FtaW5vLlN5bWJvbFJlZhISCgp1bmRpcmVjdGVkGA0gASgIIt0BChJFZGdlRW5kcG9pbnRTY2hlbWESIAoFY2xhc3MYASABKAsyES5jYW1pbm8uU3ltYm9sUmVmEiQKCWludGVyZmFjZRgCIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSEgoKcHJvamVjdGlvbhgDIAEoCRIoCgtjYXJkaW5hbGl0eRgEIAEoDjITLmNhbWluby5DYXJkaW5hbGl0eRIPCgdpbmRleGVkGAUgASgIEjAKC21hdGVyaWFsaXplGAYgASgLMhsuY2FtaW5vLkVkZ2VNYXRlcmlhbGl6YXRpb24iUwoTRWRnZU1hdGVyaWFsaXphdGlvbhIgCgVjbGFzcxgBIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSGgoSY29ubmVjdF9wcm9qZWN0aW9uGAIgASgJIkMKDE1ldGhvZFNjaGVtYRIMCgRuYW1lGAEgASgJEiUKCGZ1bmN0aW9uGAIgASgLMhMucXVpeG9zLkZ1bmN0aW9uUmVmImAKDU1pZ3JhdGlvblNwZWMSFAoMZnJvbV92ZXJzaW9uGAEgASgNEhIKCnRvX3ZlcnNpb24YAiABKA0SJQoIZnVuY3Rpb24YAyABKAsyEy5xdWl4b3MuRnVuY3Rpb25SZWYiOAoPQ29uc3RydWN0b3JTcGVjEiUKCGZ1bmN0aW9uGAEgASgLMhMucXVpeG9zLkZ1bmN0aW9uUmVmIpEBCg9PcGVyYXRpb25TY2hlbWESDAoEbmFtZRgBIAEoCRIjCgppbnB1dF90eXBlGAIgASgLMg8uY2FtaW5vLlR5cGVSZWYSJAoLb3V0cHV0X3R5cGUYAyABKAsyDy5jYW1pbm8uVHlwZVJlZhIlCghmdW5jdGlvbhgEIAEoCzITLnF1aXhvcy5GdW5jdGlvblJlZiJmChZPcGVyYXRpb25TZXJ2aWNlU2NoZW1hEgwKBG5hbWUYASABKAkSEQoJZnVsbF9uYW1lGAIgASgJEisKCm9wZXJhdGlvbnMYAyADKAsyFy5jYW1pbm8uT3BlcmF0aW9uU2NoZW1hIpsBChFEb2NSZWZEZWNsYXJhdGlvbhISCgpsb2NhbF9uYW1lGAEgASgJEh8KBHR5cGUYAiABKAsyES5jYW1pbm8uU3ltYm9sUmVmEicKDHRhcmdldF9jbGFzcxgDIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSKAoIc3RyZW5ndGgYBCABKA4yFi5jYW1pbm8uRG9jUmVmU3RyZW5ndGgqZAoQQ29uZmxpY3RTdHJhdGVneRIhCh1DT05GTElDVF9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEgsKB1JFUExBQ0UQARIWChJQUkVTRVJWRV9DT05GTElDVFMQAhIICgRDUkRUEAMqkwEKC0NhcmRpbmFsaXR5EhsKF0NBUkRJTkFMSVRZX1VOU1BFQ0lGSUVEEAASEAoMT1BUSU9OQUxfT05FEAESDwoLRVhBQ1RMWV9PTkUQAhIICgRNQU5ZEAMSDwoLTUFOWV9VTklRVUUQBBIQCgxNQU5ZX09SREVSRUQQBRIXChNNQU5ZX1VOSVFVRV9PUkRFUkVEEAYqVAoORG9jUmVmU3RyZW5ndGgSIAocRE9DX1JFRl9TVFJFTkdUSF9VTlNQRUNJRklFRBAAEgwKCFNPRlRfUkVGEAESEgoOUFJPSkVDVEVEX0VER0UQAip5ChBGaWVsZFN0b3JhZ2VLaW5kEiIKHkZJRUxEX1NUT1JBR0VfS0lORF9VTlNQRUNJRklFRBAAEgoKBlNUT1JFRBABEgsKB0RFUklWRUQQAhIICgRMQVpZEAMSDAoIRVhURVJOQUwQBBIQCgxTVEFUSUNfRklOQUwQBSpIChNGaWVsZEltcGxlbWVudGF0aW9uEiQKIEZJRUxEX0lNUExFTUVOVEFUSU9OX1VOU1BFQ0lGSUVEEAASCwoHU0VSVklDRRABYgZwcm90bzM", [file_quixos_refs]); /** * Describes the message camino.SymbolRef. * Use `create(SymbolRefSchema)` to create a new message. diff --git a/dist/codegen-ts-runtime.js b/dist/codegen-ts-runtime.js index 72ecb63..131cb25 100755 --- a/dist/codegen-ts-runtime.js +++ b/dist/codegen-ts-runtime.js @@ -1,9 +1,10 @@ #!/usr/bin/env node import fs from "node:fs"; import path from "node:path"; -import { compileCaminoSchema } from "./schema-compiler.js"; +import protobuf from "protobufjs"; +import { compileCaminoSchema, loadCaminoSchemaRoot, } from "./schema-compiler.js"; const usage = () => { - console.error("Usage: camino-codegen-ts-runtime [implementation-import]"); + console.error("Usage: camino-codegen-ts-runtime [--react-only] [implementation-import]"); process.exit(1); }; const required = (value) => value ?? usage(); @@ -18,11 +19,17 @@ const camel = (value) => value const isIdentifier = (value) => /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(value); const classId = (schema) => `${schema.id.namespace}:${schema.id.name}:${schema.id.version}:${schema.id.hash ?? ""}`; const symbolId = (value) => `${value.namespace}:${value.name}:${value.version}:${value.hash ?? ""}`; -const tsTypeForTypeRef = (type) => { +const normalizedProtoType = (value) => value.replace(/^\./, ""); +const declarationName = (value) => value.name; +const tsTypeForTypeRef = (type, root) => { + if (type.symbol) { + return `ObjectRef<${stringLiteral(symbolId(type.symbol))}>`; + } if (type.enumValues && type.enumValues.length > 0) { return type.enumValues.map(stringLiteral).join(" | "); } - switch (type.protoType.replace(/^\./, "")) { + const protoType = normalizedProtoType(type.protoType); + switch (protoType) { case "string": case "google.protobuf.StringValue": return "string"; @@ -52,14 +59,26 @@ const tsTypeForTypeRef = (type) => { case "google.protobuf.BytesValue": return "Uint8Array"; default: + if (protoType === "google.protobuf.Empty") { + return "Record"; + } + try { + const reflected = root?.lookup(protoType); + if (reflected instanceof protobuf.Type || reflected instanceof protobuf.Enum) { + return declarationName(reflected); + } + } + catch { + // Unknown imported message types remain opaque at this codegen boundary. + } return "unknown"; } }; -const tsTypeForField = (field) => tsTypeForTypeRef(field.type); -const tsValueTypeForField = (field) => field.repeated ? `${tsTypeForField(field)}[]` : tsTypeForField(field); -const tsFieldApiType = (field) => field.conflict === "crdt" - ? `CrdtField<${tsValueTypeForField(field)}>` - : `Field<${tsValueTypeForField(field)}>`; +const tsTypeForField = (field, root) => tsTypeForTypeRef(field.type, root); +const tsValueTypeForField = (field, root) => field.repeated ? `${tsTypeForField(field, root)}[]` : tsTypeForField(field, root); +const tsFieldApiType = (field, root) => field.conflict === "crdt" + ? `CrdtField<${tsValueTypeForField(field, root)}>` + : `Field<${tsValueTypeForField(field, root)}>`; const functionExportName = (fn, fallback) => { if (isIdentifier(fn.symbol)) { return fn.symbol; @@ -71,6 +90,68 @@ const functionExportName = (fn, fallback) => { throw new Error(`Cannot generate TS export name for function ${fn.symbol}`); }; const generatedWarning = `// @generated by camino-codegen-ts-runtime. Do not edit.\n`; +const scalarTsType = (field, root) => { + const primitive = tsTypeForTypeRef({ protoType: field.type }, root); + if (primitive !== "unknown") { + return primitive; + } + const resolved = field.resolvedType; + if (resolved instanceof protobuf.Type || resolved instanceof protobuf.Enum) { + return declarationName(resolved); + } + return "unknown"; +}; +const collectProtoDeclarations = (root, types) => { + const declarations = new Map(); + const visit = (value) => { + const key = value.fullName; + if (declarations.has(key)) { + return; + } + declarations.set(key, value); + if (value instanceof protobuf.Type) { + for (const field of value.fieldsArray) { + if (field.resolvedType instanceof protobuf.Type || + field.resolvedType instanceof protobuf.Enum) { + visit(field.resolvedType); + } + } + } + }; + for (const type of types) { + if (type.symbol || !type.protoType) { + continue; + } + try { + const reflected = root.lookup(normalizedProtoType(type.protoType)); + if (reflected instanceof protobuf.Type || reflected instanceof protobuf.Enum) { + visit(reflected); + } + } + catch { + // Opaque imported types are represented as unknown by the generated API. + } + } + return [...declarations.values()] + .map((value) => { + if (value instanceof protobuf.Enum) { + return `export type ${declarationName(value)} = ${Object.keys(value.values) + .map(stringLiteral) + .join(" | ")};`; + } + const fields = value.fieldsArray.map((field) => { + const fieldType = scalarTsType(field, root); + const valueType = field.map + ? `Record` + : field.repeated + ? `${fieldType}[]` + : fieldType; + return ` ${JSON.stringify(field.name)}${field.optional ? "?" : ""}: ${valueType};`; + }); + return `export type ${declarationName(value)} = {\n${fields.join("\n")}\n};`; + }) + .join("\n\n"); +}; const fieldTypeId = (field) => field.type.symbol ? symbolId(field.type.symbol) : field.type.protoType; const crdtStorageTypeId = (field) => field.type.protoType || (field.type.symbol @@ -96,8 +177,8 @@ ${bindings} };`; }) .join("\n\n"); -const interfaceMixins = (schema) => schema.implements.map((implementation) => { - const typeArgs = implementation.typeBindings.map((binding) => tsTypeForTypeRef(binding.type)); +const interfaceMixins = (schema, root) => schema.implements.map((implementation) => { + const typeArgs = implementation.typeBindings.map((binding) => tsTypeForTypeRef(binding.type, root)); return `${interfaceTypeName(implementation)}${typeArgs.length > 0 ? `<${typeArgs.join(", ")}>` : ""}`; }); const operationFunctionSpecs = (schema) => schema.fields.flatMap((field) => { @@ -125,7 +206,7 @@ const operationFunctionSpecs = (schema) => schema.fields.flatMap((field) => { }, })); }); -const renderRuntime = (schema) => { +const renderRuntime = (schema, root) => { const className = schema.id.name; const objectTypeName = `${className}Object`; const refTypeName = `${className}Ref`; @@ -134,7 +215,7 @@ const renderRuntime = (schema) => { const serveName = `serve${className}Runtime`; const createObjectName = `create${className}Object`; const interfaceRefTypes = renderInterfaceRefTypes(schema); - const refType = [`ObjectRef<${stringLiteral(classId(schema))}>`, ...interfaceMixins(schema)] + const refType = [`ObjectRef<${stringLiteral(classId(schema))}>`, ...interfaceMixins(schema, root)] .join(" & "); const edgeFields = new Set(schema.edges.map((edge) => edge.sourceField)); const writableFields = schema.fields.filter((field) => field.storage.kind === "stored" && @@ -199,12 +280,14 @@ const renderRuntime = (schema) => { serveQuixosPackageRuntime, } from "@quixos/camino-package-runtime"; +${collectProtoDeclarations(root, schema.implements.flatMap((entry) => entry.typeBindings.map((binding) => binding.type)))} + ${interfaceRefTypes ? `${interfaceRefTypes}\n\n` : ""}export type ${refTypeName} = ${refType}; export type ${objectTypeName} = { id: ${refTypeName}; ${writableFields - .map((field) => ` ${camel(field.name)}: ${tsFieldApiType(field)};`) + .map((field) => ` ${camel(field.name)}: ${tsFieldApiType(field, root)};`) .join("\n")} }; @@ -271,6 +354,129 @@ export const ${serveName} = (implementation: ${implementationTypeName}) => { }; `; }; +const implementationNamed = (schema, name) => schema.implements.find((entry) => entry.interface.namespace === "quixos.react" && + entry.interface.name === name); +const requiredBinding = (implementation, name) => { + const binding = implementation.typeBindings.find((entry) => entry.name === name); + if (!binding) { + throw new Error(`${implementation.interface.name} implementation is missing ${name}`); + } + return binding.type; +}; +const renderReactClient = (schema, root) => { + const react = implementationNamed(schema, "ReactComponent"); + const componentFor = implementationNamed(schema, "ReactComponentFor"); + if (!react || !componentFor) { + return undefined; + } + const renderProps = requiredBinding(react, "RenderProps"); + const action = requiredBinding(react, "Action"); + const object = requiredBinding(componentFor, "Object"); + if (!object.symbol) { + throw new Error(`${schema.id.name}.ReactComponentFor.Object must bind a class symbol`); + } + const edge = schema.edges.find((candidate) => candidate.sourceField === "for_object"); + if (!edge) { + throw new Error(`${schema.id.name} must declare its ReactComponentFor edge`); + } + const componentEndpoint = edge.fromEndpoint.projection === "for_object" + ? edge.fromEndpoint + : edge.toEndpoint.projection === "for_object" + ? edge.toEndpoint + : undefined; + const objectEndpoint = componentEndpoint === edge.fromEndpoint ? edge.toEndpoint : edge.fromEndpoint; + if (!componentEndpoint || !objectEndpoint.projection) { + throw new Error(`${schema.id.name}.for_object edge has no inverse projection`); + } + if (componentEndpoint.cardinality !== "exactly_one") { + throw new Error(`${schema.id.name}.for_object must have exactly_one cardinality`); + } + if (!objectEndpoint.materialization || + symbolId(objectEndpoint.materialization.class) !== symbolId(schema.id)) { + throw new Error(`${schema.id.name}.${objectEndpoint.projection} must materialize ${classId(schema)}`); + } + const className = schema.id.name; + const componentName = className.endsWith("ReactComponent") + ? `${className.slice(0, -"ReactComponent".length)}Component` + : className; + const propsTypeName = `${componentName}Props`; + const renderPropsType = tsTypeForTypeRef(renderProps, root); + const actionType = tsTypeForTypeRef(action, root); + const objectType = tsTypeForTypeRef(object, root); + const declarations = collectProtoDeclarations(root, [renderProps, action]); + return `${generatedWarning}import { + createReactComponentFor, + type ReactComponentHostProps, + type ObjectRef, +} from "@quixos/camino-react-runtime"; + +${declarations} + +export type ${propsTypeName} = { + forObject: ${objectType}; +} & ${renderPropsType} & ReactComponentHostProps<${actionType}>; + +export const ${componentName} = createReactComponentFor< + ${objectType}, + ${renderPropsType}, + ${actionType} +>({ + componentClassId: ${stringLiteral(classId(schema))}, + projection: ${stringLiteral(objectEndpoint.projection)}, +}); +`; +}; +const reactRuntimeDeclaration = `${generatedWarning}declare module "@quixos/camino-react-runtime" { + import type * as AutomergeNamespace from "@automerge/automerge"; + + export type ObjectRef = string & { + readonly $caminoClass: ClassId; + }; + + export type LiveFieldProp = { + value: T; + source: { + objectId: string; + fieldName: string; + fieldType?: string; + fieldStorage?: string; + conflictStrategy?: string; + revision?: string | number | bigint; + }; + }; + + export type ReactComponentHostProps = { + onAction?: (action: Action) => void; + fallback?: unknown; + className?: string; + style?: Record; + onError?: (error: Error) => void; + }; + + export type ReactComponentImplementationProps = { + camino: CaminoProps; + render: RenderProps; + dispatch: (action: Action) => void; + }; + + export const createReactComponentFor: < + ForObject extends ObjectRef, + RenderProps extends object, + Action, + >(config: { + componentClassId: string; + projection: string; + }) => (props: { + forObject: ForObject; + } & RenderProps & ReactComponentHostProps) => any; + + export const h: (...args: any[]) => any; + export const useLiveField: ( + field: LiveFieldProp, + ) => [T, (value: T) => void | Promise]; + export const Automerge: typeof AutomergeNamespace; +} +`; const renderServer = (schema, implementationImport) => { const className = schema.id.name; return `${generatedWarning}import * as implementation from ${stringLiteral(implementationImport)}; @@ -280,10 +486,13 @@ serve${className}Runtime(implementation); `; }; const main = async () => { - const sourceFile = required(process.argv[2]); - const outDir = required(process.argv[3]); - const implementationImport = process.argv[4] ?? "../task.impl.js"; + const reactOnly = process.argv[2] === "--react-only"; + const offset = reactOnly ? 1 : 0; + const sourceFile = required(process.argv[2 + offset]); + const outDir = required(process.argv[3 + offset]); + const implementationImport = process.argv[4 + offset] ?? "../task.impl.js"; const compiled = await compileCaminoSchema(sourceFile); + const { root } = await loadCaminoSchemaRoot(sourceFile); if (compiled.classes.length !== 1) { throw new Error(`Expected exactly one Camino class in ${sourceFile}, found ${compiled.classes.length}`); } @@ -293,7 +502,17 @@ const main = async () => { } fs.mkdirSync(outDir, { recursive: true }); const baseName = `${schema.id.namespace}.${schema.id.name}`; - fs.writeFileSync(path.join(outDir, `${baseName}.runtime.ts`), renderRuntime(schema)); - fs.writeFileSync(path.join(outDir, `${baseName}.server.ts`), renderServer(schema, implementationImport)); + const reactClient = renderReactClient(schema, root); + if (!reactOnly) { + fs.writeFileSync(path.join(outDir, `${baseName}.runtime.ts`), renderRuntime(schema, root)); + fs.writeFileSync(path.join(outDir, `${baseName}.server.ts`), renderServer(schema, implementationImport)); + } + if (reactClient) { + fs.writeFileSync(path.join(outDir, `${baseName}.react.ts`), reactClient); + fs.writeFileSync(path.join(outDir, "camino-react-runtime.d.ts"), reactRuntimeDeclaration); + } + else if (reactOnly) { + throw new Error(`${schema.id.name} does not implement ReactComponentFor`); + } }; await main(); diff --git a/dist/schema-compiler.d.ts b/dist/schema-compiler.d.ts index a9d71bd..d037dae 100644 --- a/dist/schema-compiler.d.ts +++ b/dist/schema-compiler.d.ts @@ -1,3 +1,8 @@ +import protobuf from "protobufjs"; import type { SchemaCompileResult } from "./schema-ir.js"; +export declare const loadCaminoSchemaRoot: (sourceFile: string) => Promise<{ + absoluteSourceFile: string; + root: protobuf.Root; +}>; export declare const compileCaminoSchema: (sourceFile: string) => Promise; //# sourceMappingURL=schema-compiler.d.ts.map \ No newline at end of file diff --git a/dist/schema-compiler.d.ts.map b/dist/schema-compiler.d.ts.map index 4fe163f..db9b9b8 100644 --- a/dist/schema-compiler.d.ts.map +++ b/dist/schema-compiler.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"schema-compiler.d.ts","sourceRoot":"","sources":["../src/schema-compiler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAeV,mBAAmB,EAIpB,MAAM,gBAAgB,CAAC;AAg2BxB,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,KACjB,OAAO,CAAC,mBAAmB,CAuE7B,CAAC"} \ No newline at end of file +{"version":3,"file":"schema-compiler.d.ts","sourceRoot":"","sources":["../src/schema-compiler.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,EAeV,mBAAmB,EAIpB,MAAM,gBAAgB,CAAC;AA02BxB,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,KACjB,OAAO,CAAC;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAA;CAAE,CAqC7D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,KACjB,OAAO,CAAC,mBAAmB,CAsC7B,CAAC"} \ No newline at end of file diff --git a/dist/schema-compiler.js b/dist/schema-compiler.js index 0b5d8b0..6ffb931 100644 --- a/dist/schema-compiler.js +++ b/dist/schema-compiler.js @@ -114,6 +114,10 @@ const interfaceFieldContractFromOption = (value, schemaVersion) => { return undefined; } const type = typeRefFromOption(object.type, schemaVersion); + const refTargetTypeParam = readString(object, "ref_target_type_param"); + const edgeCardinality = object.edge_cardinality === undefined + ? undefined + : cardinalityFromOption(object.edge_cardinality); return { required: readBoolean(object, "required") ?? false, readable: readBoolean(object, "readable") ?? false, @@ -123,6 +127,8 @@ const interfaceFieldContractFromOption = (value, schemaVersion) => { ? { typeParam: readString(object, "type_param") } : {}), ...(type ? { type } : {}), + ...(refTargetTypeParam ? { refTargetTypeParam } : {}), + ...(edgeCardinality ? { edgeCardinality } : {}), }; }; const functionRefFromOption = (value) => { @@ -626,6 +632,9 @@ const interfaceSchemaFromType = (type, sourceFile, defaults) => { fields: type.fieldsArray.map((field) => fieldSchemaFromField(field, defaults.schemaVersion)), sourceFile, protoMessage: type.fullName, + typeParameters: asArray(interfaceOption.type_parameter) + .map((entry) => String(entry).trim()) + .filter(Boolean), }; }; const walkTypes = (namespace, visit) => { @@ -649,9 +658,8 @@ const walkServices = (namespace, visit) => { } } }; -export const compileCaminoSchema = async (sourceFile) => { +export const loadCaminoSchemaRoot = async (sourceFile) => { const absoluteSourceFile = path.resolve(sourceFile); - const defaults = extractFileDefaults(absoluteSourceFile); const root = new protobuf.Root(); const envIncludeDirs = [ process.env.QUIXOS_PROTO_PATH, @@ -684,6 +692,11 @@ export const compileCaminoSchema = async (sourceFile) => { }; await root.load(absoluteSourceFile, { keepCase: true }); root.resolveAll(); + return { absoluteSourceFile, root }; +}; +export const compileCaminoSchema = async (sourceFile) => { + const { absoluteSourceFile, root } = await loadCaminoSchemaRoot(sourceFile); + const defaults = extractFileDefaults(absoluteSourceFile); const operationServices = []; walkServices(root, (service) => { operationServices.push(operationServiceFromService(service, defaults.schemaVersion)); diff --git a/dist/schema-ir.d.ts b/dist/schema-ir.d.ts index 0865f86..d7e7c5e 100644 --- a/dist/schema-ir.d.ts +++ b/dist/schema-ir.d.ts @@ -44,6 +44,8 @@ export type InterfaceFieldContract = { watchable: boolean; typeParam?: string; type?: TypeRef; + refTargetTypeParam?: string; + edgeCardinality?: Cardinality; }; export type InterfaceImplementation = { interface: SymbolRef; @@ -126,6 +128,7 @@ export type InterfaceSchema = { fields: FieldSchema[]; sourceFile: string; protoMessage: string; + typeParameters: string[]; }; export type SchemaCompileResult = { sourceFile: string; diff --git a/dist/schema-ir.d.ts.map b/dist/schema-ir.d.ts.map index cb41db4..0cae2a6 100644 --- a/dist/schema-ir.d.ts.map +++ b/dist/schema-ir.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"schema-ir.d.ts","sourceRoot":"","sources":["../src/schema-ir.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"schema-ir.d.ts","sourceRoot":"","sources":["../src/schema-ir.ts"],"names":[],"mappings":"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"} \ No newline at end of file