Teach package runtime edge endpoints
This commit is contained in:
+23
-1
File diff suppressed because one or more lines are too long
+76
-7
@@ -12,7 +12,7 @@ import type { Message } from "@bufbuild/protobuf";
|
||||
* Describes the file camino/schema.proto.
|
||||
*/
|
||||
export const file_camino_schema: GenFile = /*@__PURE__*/
|
||||
fileDesc("ChNjYW1pbm8vc2NoZW1hLnByb3RvEgZjYW1pbm8iSwoJU3ltYm9sUmVmEhEKCW5hbWVzcGFjZRgBIAEoCRIMCgRuYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSDAoEaGFzaBgEIAEoCSIYCgNSZWYSEQoJb2JqZWN0X2lkGAEgASgJIg0KC0N1c3RvbUZpZWxkIiQKEFdhdGNoU3RhcnRSZXN1bHQSEAoId2F0Y2hfaWQYASABKAkiJAoQV2F0Y2hTdG9wUmVxdWVzdBIQCgh3YXRjaF9pZBgBIAEoCSIRCg9XYXRjaFN0b3BSZXN1bHQiGwoIQ3JkdFRleHQSDwoHcGF5bG9hZBgBIAEoDCIfCgxDcmR0UmljaFRleHQSDwoHcGF5bG9hZBgBIAEoDCIbCghDcmR0SnNvbhIPCgdwYXlsb2FkGAEgASgMIqgDCgtDbGFzc1NjaGVtYRIdCgJpZBgBIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSDwoHdmVyc2lvbhgCIAEoDRIjCgZmaWVsZHMYAyADKAsyEy5jYW1pbm8uRmllbGRTY2hlbWESIQoFZWRnZXMYBCADKAsyEi5jYW1pbm8uRWRnZVNjaGVtYRIlCgdtZXRob2RzGAUgAygLMhQuY2FtaW5vLk1ldGhvZFNjaGVtYRIpCgptaWdyYXRpb25zGAYgAygLMhUuY2FtaW5vLk1pZ3JhdGlvblNwZWMSEwoLc291cmNlX2ZpbGUYByABKAkSFQoNcHJvdG9fbWVzc2FnZRgIIAEoCRI6ChJvcGVyYXRpb25fc2VydmljZXMYCSADKAsyHi5jYW1pbm8uT3BlcmF0aW9uU2VydmljZVNjaGVtYRI5CgppbXBsZW1lbnRzGAogAygLMiUuY2FtaW5vLkludGVyZmFjZUltcGxlbWVudGF0aW9uU2NoZW1hEiwKC2NvbnN0cnVjdG9yGAsgASgLMhcuY2FtaW5vLkNvbnN0cnVjdG9yU3BlYyKzAgoLRmllbGRTY2hlbWESDAoEbmFtZRgBIAEoCRILCgN0YWcYAiABKA0SHQoEdHlwZRgDIAEoCzIPLmNhbWluby5UeXBlUmVmEioKCGNvbmZsaWN0GAQgASgOMhguY2FtaW5vLkNvbmZsaWN0U3RyYXRlZ3kSEAoIcmVwZWF0ZWQYBSABKAgSEAoIb3B0aW9uYWwYBiABKAgSJQoHc3RvcmFnZRgHIAEoCzIULmNhbWluby5GaWVsZFN0b3JhZ2USHQoDb3BzGAggASgLMhAuY2FtaW5vLkZpZWxkT3BzEjoKEmludGVyZmFjZV9jb250cmFjdBgJIAEoCzIeLmNhbWluby5JbnRlcmZhY2VGaWVsZENvbnRyYWN0EhgKEGlzX2Rpc3BsYXlfbGFiZWwYCiABKAgibAoMRmllbGRTdG9yYWdlEiYKBGtpbmQYASABKA4yGC5jYW1pbm8uRmllbGRTdG9yYWdlS2luZBIlCghyZXNvbHZlchgCIAEoCzITLnF1aXhvcy5GdW5jdGlvblJlZhINCgVjYWNoZRgDIAEoCCJACgdUeXBlUmVmEhIKCnByb3RvX3R5cGUYASABKAkSIQoGc3ltYm9sGAIgASgLMhEuY2FtaW5vLlN5bWJvbFJlZiI6CgtUeXBlQmluZGluZxIMCgRuYW1lGAEgASgJEh0KBHR5cGUYAiABKAsyDy5jYW1pbm8uVHlwZVJlZiKUAQoWSW50ZXJmYWNlRmllbGRDb250cmFjdBIQCghyZXF1aXJlZBgBIAEoCBIQCghyZWFkYWJsZRgCIAEoCBIQCgh3cml0YWJsZRgDIAEoCBIRCgl3YXRjaGFibGUYBCABKAgSEgoKdHlwZV9wYXJhbRgFIAEoCRIdCgR0eXBlGAYgASgLMg8uY2FtaW5vLlR5cGVSZWYicQodSW50ZXJmYWNlSW1wbGVtZW50YXRpb25TY2hlbWESJAoJaW50ZXJmYWNlGAEgASgLMhEuY2FtaW5vLlN5bWJvbFJlZhIqCg10eXBlX2JpbmRpbmdzGAIgAygLMhMuY2FtaW5vLlR5cGVCaW5kaW5nIpIBCg9JbnRlcmZhY2VTY2hlbWESHQoCaWQYASABKAsyES5jYW1pbm8uU3ltYm9sUmVmEg8KB3ZlcnNpb24YAiABKA0SIwoGZmllbGRzGAMgAygLMhMuY2FtaW5vLkZpZWxkU2NoZW1hEhMKC3NvdXJjZV9maWxlGAQgASgJEhUKDXByb3RvX21lc3NhZ2UYBSABKAkiUAoIRmllbGRPcHMSMwoOaW1wbGVtZW50YXRpb24YASABKA4yGy5jYW1pbm8uRmllbGRJbXBsZW1lbnRhdGlvbhIPCgdzZXJ2aWNlGAIgASgJIu0BCgpFZGdlU2NoZW1hEh0KAmlkGAEgASgLMhEuY2FtaW5vLlN5bWJvbFJlZhIUCgxzb3VyY2VfZmllbGQYAiABKAkSJQoKZnJvbV9jbGFzcxgDIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSIwoIdG9fY2xhc3MYBCABKAsyES5jYW1pbm8uU3ltYm9sUmVmEigKC2NhcmRpbmFsaXR5GAUgASgOMhMuY2FtaW5vLkNhcmRpbmFsaXR5Eg8KB2ludmVyc2UYBiABKAkSIwoGZmllbGRzGAcgAygLMhMuY2FtaW5vLkZpZWxkU2NoZW1hIkMKDE1ldGhvZFNjaGVtYRIMCgRuYW1lGAEgASgJEiUKCGZ1bmN0aW9uGAIgASgLMhMucXVpeG9zLkZ1bmN0aW9uUmVmImAKDU1pZ3JhdGlvblNwZWMSFAoMZnJvbV92ZXJzaW9uGAEgASgNEhIKCnRvX3ZlcnNpb24YAiABKA0SJQoIZnVuY3Rpb24YAyABKAsyEy5xdWl4b3MuRnVuY3Rpb25SZWYiOAoPQ29uc3RydWN0b3JTcGVjEiUKCGZ1bmN0aW9uGAEgASgLMhMucXVpeG9zLkZ1bmN0aW9uUmVmIpEBCg9PcGVyYXRpb25TY2hlbWESDAoEbmFtZRgBIAEoCRIjCgppbnB1dF90eXBlGAIgASgLMg8uY2FtaW5vLlR5cGVSZWYSJAoLb3V0cHV0X3R5cGUYAyABKAsyDy5jYW1pbm8uVHlwZVJlZhIlCghmdW5jdGlvbhgEIAEoCzITLnF1aXhvcy5GdW5jdGlvblJlZiJmChZPcGVyYXRpb25TZXJ2aWNlU2NoZW1hEgwKBG5hbWUYASABKAkSEQoJZnVsbF9uYW1lGAIgASgJEisKCm9wZXJhdGlvbnMYAyADKAsyFy5jYW1pbm8uT3BlcmF0aW9uU2NoZW1hIpsBChFEb2NSZWZEZWNsYXJhdGlvbhISCgpsb2NhbF9uYW1lGAEgASgJEh8KBHR5cGUYAiABKAsyES5jYW1pbm8uU3ltYm9sUmVmEicKDHRhcmdldF9jbGFzcxgDIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSKAoIc3RyZW5ndGgYBCABKA4yFi5jYW1pbm8uRG9jUmVmU3RyZW5ndGgqZAoQQ29uZmxpY3RTdHJhdGVneRIhCh1DT05GTElDVF9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEgsKB1JFUExBQ0UQARIWChJQUkVTRVJWRV9DT05GTElDVFMQAhIICgRDUkRUEAMqegoLQ2FyZGluYWxpdHkSGwoXQ0FSRElOQUxJVFlfVU5TUEVDSUZJRUQQABIQCgxPUFRJT05BTF9PTkUQARIPCgtFWEFDVExZX09ORRACEggKBE1BTlkQAxIPCgtNQU5ZX1VOSVFVRRAEEhAKDE1BTllfT1JERVJFRBAFKlQKDkRvY1JlZlN0cmVuZ3RoEiAKHERPQ19SRUZfU1RSRU5HVEhfVU5TUEVDSUZJRUQQABIMCghTT0ZUX1JFRhABEhIKDlBST0pFQ1RFRF9FREdFEAIqeQoQRmllbGRTdG9yYWdlS2luZBIiCh5GSUVMRF9TVE9SQUdFX0tJTkRfVU5TUEVDSUZJRUQQABIKCgZTVE9SRUQQARILCgdERVJJVkVEEAISCAoETEFaWRADEgwKCEVYVEVSTkFMEAQSEAoMU1RBVElDX0ZJTkFMEAUqSAoTRmllbGRJbXBsZW1lbnRhdGlvbhIkCiBGSUVMRF9JTVBMRU1FTlRBVElPTl9VTlNQRUNJRklFRBAAEgsKB1NFUlZJQ0UQAWIGcHJvdG8z", [file_quixos_refs]);
|
||||
fileDesc("ChNjYW1pbm8vc2NoZW1hLnByb3RvEgZjYW1pbm8iSwoJU3ltYm9sUmVmEhEKCW5hbWVzcGFjZRgBIAEoCRIMCgRuYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSDAoEaGFzaBgEIAEoCSIYCgNSZWYSEQoJb2JqZWN0X2lkGAEgASgJIg0KC0N1c3RvbUZpZWxkIiQKEFdhdGNoU3RhcnRSZXN1bHQSEAoId2F0Y2hfaWQYASABKAkiJAoQV2F0Y2hTdG9wUmVxdWVzdBIQCgh3YXRjaF9pZBgBIAEoCSIRCg9XYXRjaFN0b3BSZXN1bHQiGwoIQ3JkdFRleHQSDwoHcGF5bG9hZBgBIAEoDCIfCgxDcmR0UmljaFRleHQSDwoHcGF5bG9hZBgBIAEoDCIbCghDcmR0SnNvbhIPCgdwYXlsb2FkGAEgASgMIqgDCgtDbGFzc1NjaGVtYRIdCgJpZBgBIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSDwoHdmVyc2lvbhgCIAEoDRIjCgZmaWVsZHMYAyADKAsyEy5jYW1pbm8uRmllbGRTY2hlbWESIQoFZWRnZXMYBCADKAsyEi5jYW1pbm8uRWRnZVNjaGVtYRIlCgdtZXRob2RzGAUgAygLMhQuY2FtaW5vLk1ldGhvZFNjaGVtYRIpCgptaWdyYXRpb25zGAYgAygLMhUuY2FtaW5vLk1pZ3JhdGlvblNwZWMSEwoLc291cmNlX2ZpbGUYByABKAkSFQoNcHJvdG9fbWVzc2FnZRgIIAEoCRI6ChJvcGVyYXRpb25fc2VydmljZXMYCSADKAsyHi5jYW1pbm8uT3BlcmF0aW9uU2VydmljZVNjaGVtYRI5CgppbXBsZW1lbnRzGAogAygLMiUuY2FtaW5vLkludGVyZmFjZUltcGxlbWVudGF0aW9uU2NoZW1hEiwKC2NvbnN0cnVjdG9yGAsgASgLMhcuY2FtaW5vLkNvbnN0cnVjdG9yU3BlYyKzAgoLRmllbGRTY2hlbWESDAoEbmFtZRgBIAEoCRILCgN0YWcYAiABKA0SHQoEdHlwZRgDIAEoCzIPLmNhbWluby5UeXBlUmVmEioKCGNvbmZsaWN0GAQgASgOMhguY2FtaW5vLkNvbmZsaWN0U3RyYXRlZ3kSEAoIcmVwZWF0ZWQYBSABKAgSEAoIb3B0aW9uYWwYBiABKAgSJQoHc3RvcmFnZRgHIAEoCzIULmNhbWluby5GaWVsZFN0b3JhZ2USHQoDb3BzGAggASgLMhAuY2FtaW5vLkZpZWxkT3BzEjoKEmludGVyZmFjZV9jb250cmFjdBgJIAEoCzIeLmNhbWluby5JbnRlcmZhY2VGaWVsZENvbnRyYWN0EhgKEGlzX2Rpc3BsYXlfbGFiZWwYCiABKAgibAoMRmllbGRTdG9yYWdlEiYKBGtpbmQYASABKA4yGC5jYW1pbm8uRmllbGRTdG9yYWdlS2luZBIlCghyZXNvbHZlchgCIAEoCzITLnF1aXhvcy5GdW5jdGlvblJlZhINCgVjYWNoZRgDIAEoCCJACgdUeXBlUmVmEhIKCnByb3RvX3R5cGUYASABKAkSIQoGc3ltYm9sGAIgASgLMhEuY2FtaW5vLlN5bWJvbFJlZiI6CgtUeXBlQmluZGluZxIMCgRuYW1lGAEgASgJEh0KBHR5cGUYAiABKAsyDy5jYW1pbm8uVHlwZVJlZiKUAQoWSW50ZXJmYWNlRmllbGRDb250cmFjdBIQCghyZXF1aXJlZBgBIAEoCBIQCghyZWFkYWJsZRgCIAEoCBIQCgh3cml0YWJsZRgDIAEoCBIRCgl3YXRjaGFibGUYBCABKAgSEgoKdHlwZV9wYXJhbRgFIAEoCRIdCgR0eXBlGAYgASgLMg8uY2FtaW5vLlR5cGVSZWYicQodSW50ZXJmYWNlSW1wbGVtZW50YXRpb25TY2hlbWESJAoJaW50ZXJmYWNlGAEgASgLMhEuY2FtaW5vLlN5bWJvbFJlZhIqCg10eXBlX2JpbmRpbmdzGAIgAygLMhMuY2FtaW5vLlR5cGVCaW5kaW5nIpIBCg9JbnRlcmZhY2VTY2hlbWESHQoCaWQYASABKAsyES5jYW1pbm8uU3ltYm9sUmVmEg8KB3ZlcnNpb24YAiABKA0SIwoGZmllbGRzGAMgAygLMhMuY2FtaW5vLkZpZWxkU2NoZW1hEhMKC3NvdXJjZV9maWxlGAQgASgJEhUKDXByb3RvX21lc3NhZ2UYBSABKAkiUAoIRmllbGRPcHMSMwoOaW1wbGVtZW50YXRpb24YASABKA4yGy5jYW1pbm8uRmllbGRJbXBsZW1lbnRhdGlvbhIPCgdzZXJ2aWNlGAIgASgJIsUDCgpFZGdlU2NoZW1hEh0KAmlkGAEgASgLMhEuY2FtaW5vLlN5bWJvbFJlZhIUCgxzb3VyY2VfZmllbGQYAiABKAkSJQoKZnJvbV9jbGFzcxgDIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSIwoIdG9fY2xhc3MYBCABKAsyES5jYW1pbm8uU3ltYm9sUmVmEigKC2NhcmRpbmFsaXR5GAUgASgOMhMuY2FtaW5vLkNhcmRpbmFsaXR5Eg8KB2ludmVyc2UYBiABKAkSIwoGZmllbGRzGAcgAygLMhMuY2FtaW5vLkZpZWxkU2NoZW1hEjEKDWZyb21fZW5kcG9pbnQYCCABKAsyGi5jYW1pbm8uRWRnZUVuZHBvaW50U2NoZW1hEi8KC3RvX2VuZHBvaW50GAkgASgLMhouY2FtaW5vLkVkZ2VFbmRwb2ludFNjaGVtYRIqCg9kZWNsYXJpbmdfY2xhc3MYCiABKAsyES5jYW1pbm8uU3ltYm9sUmVmEh8KBHRhZ3MYCyADKAsyES5jYW1pbm8uU3ltYm9sUmVmEiUKCmltcGxlbWVudHMYDCADKAsyES5jYW1pbm8uU3ltYm9sUmVmIqsBChJFZGdlRW5kcG9pbnRTY2hlbWESIAoFY2xhc3MYASABKAsyES5jYW1pbm8uU3ltYm9sUmVmEiQKCWludGVyZmFjZRgCIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSEgoKcHJvamVjdGlvbhgDIAEoCRIoCgtjYXJkaW5hbGl0eRgEIAEoDjITLmNhbWluby5DYXJkaW5hbGl0eRIPCgdpbmRleGVkGAUgASgIIkMKDE1ldGhvZFNjaGVtYRIMCgRuYW1lGAEgASgJEiUKCGZ1bmN0aW9uGAIgASgLMhMucXVpeG9zLkZ1bmN0aW9uUmVmImAKDU1pZ3JhdGlvblNwZWMSFAoMZnJvbV92ZXJzaW9uGAEgASgNEhIKCnRvX3ZlcnNpb24YAiABKA0SJQoIZnVuY3Rpb24YAyABKAsyEy5xdWl4b3MuRnVuY3Rpb25SZWYiOAoPQ29uc3RydWN0b3JTcGVjEiUKCGZ1bmN0aW9uGAEgASgLMhMucXVpeG9zLkZ1bmN0aW9uUmVmIpEBCg9PcGVyYXRpb25TY2hlbWESDAoEbmFtZRgBIAEoCRIjCgppbnB1dF90eXBlGAIgASgLMg8uY2FtaW5vLlR5cGVSZWYSJAoLb3V0cHV0X3R5cGUYAyABKAsyDy5jYW1pbm8uVHlwZVJlZhIlCghmdW5jdGlvbhgEIAEoCzITLnF1aXhvcy5GdW5jdGlvblJlZiJmChZPcGVyYXRpb25TZXJ2aWNlU2NoZW1hEgwKBG5hbWUYASABKAkSEQoJZnVsbF9uYW1lGAIgASgJEisKCm9wZXJhdGlvbnMYAyADKAsyFy5jYW1pbm8uT3BlcmF0aW9uU2NoZW1hIpsBChFEb2NSZWZEZWNsYXJhdGlvbhISCgpsb2NhbF9uYW1lGAEgASgJEh8KBHR5cGUYAiABKAsyES5jYW1pbm8uU3ltYm9sUmVmEicKDHRhcmdldF9jbGFzcxgDIAEoCzIRLmNhbWluby5TeW1ib2xSZWYSKAoIc3RyZW5ndGgYBCABKA4yFi5jYW1pbm8uRG9jUmVmU3RyZW5ndGgqZAoQQ29uZmxpY3RTdHJhdGVneRIhCh1DT05GTElDVF9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEgsKB1JFUExBQ0UQARIWChJQUkVTRVJWRV9DT05GTElDVFMQAhIICgRDUkRUEAMqkwEKC0NhcmRpbmFsaXR5EhsKF0NBUkRJTkFMSVRZX1VOU1BFQ0lGSUVEEAASEAoMT1BUSU9OQUxfT05FEAESDwoLRVhBQ1RMWV9PTkUQAhIICgRNQU5ZEAMSDwoLTUFOWV9VTklRVUUQBBIQCgxNQU5ZX09SREVSRUQQBRIXChNNQU5ZX1VOSVFVRV9PUkRFUkVEEAYqVAoORG9jUmVmU3RyZW5ndGgSIAocRE9DX1JFRl9TVFJFTkdUSF9VTlNQRUNJRklFRBAAEgwKCFNPRlRfUkVGEAESEgoOUFJPSkVDVEVEX0VER0UQAip5ChBGaWVsZFN0b3JhZ2VLaW5kEiIKHkZJRUxEX1NUT1JBR0VfS0lORF9VTlNQRUNJRklFRBAAEgoKBlNUT1JFRBABEgsKB0RFUklWRUQQAhIICgRMQVpZEAMSDAoIRVhURVJOQUwQBBIQCgxTVEFUSUNfRklOQUwQBSpIChNGaWVsZEltcGxlbWVudGF0aW9uEiQKIEZJRUxEX0lNUExFTUVOVEFUSU9OX1VOU1BFQ0lGSUVEEAASCwoHU0VSVklDRRABYgZwcm90bzM", [file_quixos_refs]);
|
||||
|
||||
/**
|
||||
* @generated from message camino.SymbolRef
|
||||
@@ -507,6 +507,8 @@ export type EdgeSchema = Message<"camino.EdgeSchema"> & {
|
||||
id?: SymbolRef | undefined;
|
||||
|
||||
/**
|
||||
* Legacy/source-side projection fields. Prefer from_endpoint/to_endpoint.
|
||||
*
|
||||
* @generated from field: string source_field = 2;
|
||||
*/
|
||||
sourceField: string;
|
||||
@@ -535,6 +537,31 @@ export type EdgeSchema = Message<"camino.EdgeSchema"> & {
|
||||
* @generated from field: repeated camino.FieldSchema fields = 7;
|
||||
*/
|
||||
fields: FieldSchema[];
|
||||
|
||||
/**
|
||||
* @generated from field: camino.EdgeEndpointSchema from_endpoint = 8;
|
||||
*/
|
||||
fromEndpoint?: EdgeEndpointSchema | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: camino.EdgeEndpointSchema to_endpoint = 9;
|
||||
*/
|
||||
toEndpoint?: EdgeEndpointSchema | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: camino.SymbolRef declaring_class = 10;
|
||||
*/
|
||||
declaringClass?: SymbolRef | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: repeated camino.SymbolRef tags = 11;
|
||||
*/
|
||||
tags: SymbolRef[];
|
||||
|
||||
/**
|
||||
* @generated from field: repeated camino.SymbolRef implements = 12;
|
||||
*/
|
||||
implements: SymbolRef[];
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -544,6 +571,43 @@ export type EdgeSchema = Message<"camino.EdgeSchema"> & {
|
||||
export const EdgeSchemaSchema: GenMessage<EdgeSchema> = /*@__PURE__*/
|
||||
messageDesc(file_camino_schema, 18);
|
||||
|
||||
/**
|
||||
* @generated from message camino.EdgeEndpointSchema
|
||||
*/
|
||||
export type EdgeEndpointSchema = Message<"camino.EdgeEndpointSchema"> & {
|
||||
/**
|
||||
* @generated from field: camino.SymbolRef class = 1;
|
||||
*/
|
||||
class?: SymbolRef | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: camino.SymbolRef interface = 2;
|
||||
*/
|
||||
interface?: SymbolRef | undefined;
|
||||
|
||||
/**
|
||||
* @generated from field: string projection = 3;
|
||||
*/
|
||||
projection: string;
|
||||
|
||||
/**
|
||||
* @generated from field: camino.Cardinality cardinality = 4;
|
||||
*/
|
||||
cardinality: Cardinality;
|
||||
|
||||
/**
|
||||
* @generated from field: bool indexed = 5;
|
||||
*/
|
||||
indexed: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Describes the message camino.EdgeEndpointSchema.
|
||||
* Use `create(EdgeEndpointSchemaSchema)` to create a new message.
|
||||
*/
|
||||
export const EdgeEndpointSchemaSchema: GenMessage<EdgeEndpointSchema> = /*@__PURE__*/
|
||||
messageDesc(file_camino_schema, 19);
|
||||
|
||||
/**
|
||||
* @generated from message camino.MethodSchema
|
||||
*/
|
||||
@@ -564,7 +628,7 @@ export type MethodSchema = Message<"camino.MethodSchema"> & {
|
||||
* Use `create(MethodSchemaSchema)` to create a new message.
|
||||
*/
|
||||
export const MethodSchemaSchema: GenMessage<MethodSchema> = /*@__PURE__*/
|
||||
messageDesc(file_camino_schema, 19);
|
||||
messageDesc(file_camino_schema, 20);
|
||||
|
||||
/**
|
||||
* @generated from message camino.MigrationSpec
|
||||
@@ -591,7 +655,7 @@ export type MigrationSpec = Message<"camino.MigrationSpec"> & {
|
||||
* Use `create(MigrationSpecSchema)` to create a new message.
|
||||
*/
|
||||
export const MigrationSpecSchema: GenMessage<MigrationSpec> = /*@__PURE__*/
|
||||
messageDesc(file_camino_schema, 20);
|
||||
messageDesc(file_camino_schema, 21);
|
||||
|
||||
/**
|
||||
* @generated from message camino.ConstructorSpec
|
||||
@@ -608,7 +672,7 @@ export type ConstructorSpec = Message<"camino.ConstructorSpec"> & {
|
||||
* Use `create(ConstructorSpecSchema)` to create a new message.
|
||||
*/
|
||||
export const ConstructorSpecSchema: GenMessage<ConstructorSpec> = /*@__PURE__*/
|
||||
messageDesc(file_camino_schema, 21);
|
||||
messageDesc(file_camino_schema, 22);
|
||||
|
||||
/**
|
||||
* @generated from message camino.OperationSchema
|
||||
@@ -640,7 +704,7 @@ export type OperationSchema = Message<"camino.OperationSchema"> & {
|
||||
* Use `create(OperationSchemaSchema)` to create a new message.
|
||||
*/
|
||||
export const OperationSchemaSchema: GenMessage<OperationSchema> = /*@__PURE__*/
|
||||
messageDesc(file_camino_schema, 22);
|
||||
messageDesc(file_camino_schema, 23);
|
||||
|
||||
/**
|
||||
* @generated from message camino.OperationServiceSchema
|
||||
@@ -667,7 +731,7 @@ export type OperationServiceSchema = Message<"camino.OperationServiceSchema"> &
|
||||
* Use `create(OperationServiceSchemaSchema)` to create a new message.
|
||||
*/
|
||||
export const OperationServiceSchemaSchema: GenMessage<OperationServiceSchema> = /*@__PURE__*/
|
||||
messageDesc(file_camino_schema, 23);
|
||||
messageDesc(file_camino_schema, 24);
|
||||
|
||||
/**
|
||||
* @generated from message camino.DocRefDeclaration
|
||||
@@ -699,7 +763,7 @@ export type DocRefDeclaration = Message<"camino.DocRefDeclaration"> & {
|
||||
* Use `create(DocRefDeclarationSchema)` to create a new message.
|
||||
*/
|
||||
export const DocRefDeclarationSchema: GenMessage<DocRefDeclaration> = /*@__PURE__*/
|
||||
messageDesc(file_camino_schema, 24);
|
||||
messageDesc(file_camino_schema, 25);
|
||||
|
||||
/**
|
||||
* @generated from enum camino.ConflictStrategy
|
||||
@@ -765,6 +829,11 @@ export enum Cardinality {
|
||||
* @generated from enum value: MANY_ORDERED = 5;
|
||||
*/
|
||||
MANY_ORDERED = 5,
|
||||
|
||||
/**
|
||||
* @generated from enum value: MANY_UNIQUE_ORDERED = 6;
|
||||
*/
|
||||
MANY_UNIQUE_ORDERED = 6,
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+110
-17
@@ -249,7 +249,8 @@ const cardinalityFromOption = (value: unknown): Cardinality => {
|
||||
normalized === "exactly_one" ||
|
||||
normalized === "many" ||
|
||||
normalized === "many_unique" ||
|
||||
normalized === "many_ordered"
|
||||
normalized === "many_ordered" ||
|
||||
normalized === "many_unique_ordered"
|
||||
) {
|
||||
return normalized;
|
||||
}
|
||||
@@ -419,6 +420,67 @@ const fieldSchemaFromField = (
|
||||
};
|
||||
};
|
||||
|
||||
const isManyCardinality = (cardinality: Cardinality) =>
|
||||
cardinality === "many" ||
|
||||
cardinality === "many_unique" ||
|
||||
cardinality === "many_ordered" ||
|
||||
cardinality === "many_unique_ordered";
|
||||
|
||||
const isOrderedCardinality = (cardinality: Cardinality) =>
|
||||
cardinality === "many_ordered" || cardinality === "many_unique_ordered";
|
||||
|
||||
const endpointFromOption = (params: {
|
||||
option: unknown;
|
||||
fallbackClass?: SymbolRef;
|
||||
fallbackProjection: string;
|
||||
fallbackCardinality: Cardinality;
|
||||
fallbackVersion: string;
|
||||
}) => {
|
||||
const object = asObject(params.option);
|
||||
const classRef = asObject(object?.class)
|
||||
? symbolRefFromOption(object?.class, {
|
||||
namespace: "",
|
||||
name: "",
|
||||
version: params.fallbackVersion,
|
||||
})
|
||||
: params.fallbackClass;
|
||||
const interfaceRef = asObject(object?.interface)
|
||||
? symbolRefFromOption(object?.interface, {
|
||||
namespace: "",
|
||||
name: "",
|
||||
version: params.fallbackVersion,
|
||||
})
|
||||
: undefined;
|
||||
const projection = readString(object, "projection") ?? params.fallbackProjection;
|
||||
const cardinality = object?.cardinality === undefined
|
||||
? params.fallbackCardinality
|
||||
: cardinalityFromOption(object.cardinality);
|
||||
if (!classRef?.name && !interfaceRef?.name) {
|
||||
throw new Error(`Edge endpoint ${projection} requires class or interface`);
|
||||
}
|
||||
return {
|
||||
...(classRef?.name ? { class: classRef } : {}),
|
||||
...(interfaceRef?.name ? { interface: interfaceRef } : {}),
|
||||
projection,
|
||||
cardinality,
|
||||
indexed: readBoolean(object, "indexed") ?? false,
|
||||
};
|
||||
};
|
||||
|
||||
const symbolArrayFromOption = (
|
||||
value: unknown,
|
||||
defaults: ReturnType<typeof extractFileDefaults>,
|
||||
) =>
|
||||
asArray(value)
|
||||
.map((item) =>
|
||||
symbolRefFromOption(item, {
|
||||
namespace: defaults.schemaNamespace,
|
||||
name: "",
|
||||
version: defaults.schemaVersion,
|
||||
}),
|
||||
)
|
||||
.filter((symbol) => Boolean(symbol.name));
|
||||
|
||||
const isStringType = (type: TypeRef) =>
|
||||
type.protoType === "string" || type.protoType === "google.protobuf.StringValue";
|
||||
|
||||
@@ -568,15 +630,31 @@ const classSchemaFromType = (
|
||||
if (!edgeOption) {
|
||||
return [];
|
||||
}
|
||||
const targetClass = symbolRefFromOption(edgeOption.target, {
|
||||
const legacyTargetClass = symbolRefFromOption(edgeOption.target, {
|
||||
namespace: defaults.schemaNamespace,
|
||||
name: "",
|
||||
version: defaults.schemaVersion,
|
||||
});
|
||||
if (!targetClass.name) {
|
||||
throw new Error(`Edge field ${type.fullName}.${field.name} requires target`);
|
||||
}
|
||||
const cardinality = cardinalityFromOption(edgeOption.cardinality);
|
||||
const fromEndpoint = endpointFromOption({
|
||||
option: edgeOption.this_endpoint,
|
||||
fallbackClass: classId,
|
||||
fallbackProjection: field.name,
|
||||
fallbackCardinality: cardinality,
|
||||
fallbackVersion: defaults.schemaVersion,
|
||||
});
|
||||
const toEndpoint = endpointFromOption({
|
||||
option: edgeOption.other_endpoint,
|
||||
fallbackClass: legacyTargetClass.name ? legacyTargetClass : undefined,
|
||||
fallbackProjection: readString(edgeOption, "inverse") ?? "",
|
||||
fallbackCardinality: "many",
|
||||
fallbackVersion: defaults.schemaVersion,
|
||||
});
|
||||
if (!toEndpoint.projection) {
|
||||
throw new Error(
|
||||
`Edge field ${type.fullName}.${field.name} requires other_endpoint.projection or inverse`,
|
||||
);
|
||||
}
|
||||
const sourceType = typeRefForField(field, defaults.schemaVersion);
|
||||
if (
|
||||
sourceType.symbol?.namespace !== "camino" ||
|
||||
@@ -584,32 +662,47 @@ const classSchemaFromType = (
|
||||
) {
|
||||
throw new Error(`Edge field ${type.fullName}.${field.name} must use camino.Ref`);
|
||||
}
|
||||
const isMany =
|
||||
cardinality === "many" ||
|
||||
cardinality === "many_unique" ||
|
||||
cardinality === "many_ordered";
|
||||
const isMany = isManyCardinality(fromEndpoint.cardinality);
|
||||
if (isMany && !field.repeated) {
|
||||
throw new Error(`Edge field ${type.fullName}.${field.name} must be repeated for ${cardinality}`);
|
||||
throw new Error(`Edge field ${type.fullName}.${field.name} must be repeated for ${fromEndpoint.cardinality}`);
|
||||
}
|
||||
if (!isMany && field.repeated) {
|
||||
throw new Error(`Edge field ${type.fullName}.${field.name} must not be repeated for ${cardinality}`);
|
||||
throw new Error(`Edge field ${type.fullName}.${field.name} must not be repeated for ${fromEndpoint.cardinality}`);
|
||||
}
|
||||
if (
|
||||
isOrderedCardinality(fromEndpoint.cardinality) &&
|
||||
isOrderedCardinality(toEndpoint.cardinality)
|
||||
) {
|
||||
throw new Error(
|
||||
`Edge field ${type.fullName}.${field.name} cannot be ordered on both endpoints yet`,
|
||||
);
|
||||
}
|
||||
const edgeId = symbolRefFromOption(edgeOption.id, {
|
||||
namespace: defaults.schemaNamespace,
|
||||
name: `${type.name}.${field.name}`,
|
||||
version: defaults.schemaVersion,
|
||||
});
|
||||
const fallbackToClass = toEndpoint.class ?? {
|
||||
namespace: "",
|
||||
name: "",
|
||||
version: "",
|
||||
};
|
||||
return [
|
||||
{
|
||||
id: edgeId,
|
||||
sourceField: field.name,
|
||||
fromClass: classId,
|
||||
toClass: targetClass,
|
||||
cardinality,
|
||||
...(readString(edgeOption, "inverse")
|
||||
? { inverse: readString(edgeOption, "inverse") }
|
||||
sourceField: fromEndpoint.projection,
|
||||
fromClass: fromEndpoint.class ?? classId,
|
||||
toClass: fallbackToClass,
|
||||
cardinality: fromEndpoint.cardinality,
|
||||
...(toEndpoint.projection
|
||||
? { inverse: toEndpoint.projection }
|
||||
: {}),
|
||||
fields: [],
|
||||
fromEndpoint,
|
||||
toEndpoint,
|
||||
declaringClass: classId,
|
||||
tags: symbolArrayFromOption(edgeOption.tag, defaults),
|
||||
implements: symbolArrayFromOption(edgeOption.implements, defaults),
|
||||
},
|
||||
];
|
||||
});
|
||||
|
||||
+15
-1
@@ -23,7 +23,8 @@ export type Cardinality =
|
||||
| "exactly_one"
|
||||
| "many"
|
||||
| "many_unique"
|
||||
| "many_ordered";
|
||||
| "many_ordered"
|
||||
| "many_unique_ordered";
|
||||
|
||||
export type FieldStorageKind =
|
||||
| "stored"
|
||||
@@ -81,6 +82,14 @@ export type FieldSchema = {
|
||||
isDisplayLabel: boolean;
|
||||
};
|
||||
|
||||
export type EdgeEndpointSchema = {
|
||||
class?: SymbolRef;
|
||||
interface?: SymbolRef;
|
||||
projection: string;
|
||||
cardinality: Cardinality;
|
||||
indexed: boolean;
|
||||
};
|
||||
|
||||
export type EdgeSchema = {
|
||||
id: SymbolRef;
|
||||
sourceField: string;
|
||||
@@ -89,6 +98,11 @@ export type EdgeSchema = {
|
||||
cardinality: Cardinality;
|
||||
inverse?: string;
|
||||
fields: FieldSchema[];
|
||||
fromEndpoint: EdgeEndpointSchema;
|
||||
toEndpoint: EdgeEndpointSchema;
|
||||
declaringClass: SymbolRef;
|
||||
tags: SymbolRef[];
|
||||
implements: SymbolRef[];
|
||||
};
|
||||
|
||||
export type MethodSchema = {
|
||||
|
||||
Reference in New Issue
Block a user