@laserdata/laser-sdk 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +65 -5
  2. package/dist/agent/reliable-consumer.d.ts.map +1 -1
  3. package/dist/agent/reliable-consumer.js +1 -0
  4. package/dist/agent/reliable-consumer.js.map +1 -1
  5. package/dist/agent/workflow.d.ts +2 -0
  6. package/dist/agent/workflow.d.ts.map +1 -1
  7. package/dist/agent/workflow.js +114 -13
  8. package/dist/agent/workflow.js.map +1 -1
  9. package/dist/bridges/a2a.d.ts +1 -1
  10. package/dist/bridges/a2a.js +1 -1
  11. package/dist/client/capabilities.d.ts +14 -1
  12. package/dist/client/capabilities.d.ts.map +1 -1
  13. package/dist/client/capabilities.js +57 -23
  14. package/dist/client/capabilities.js.map +1 -1
  15. package/dist/client/errors.d.ts +6 -1
  16. package/dist/client/errors.d.ts.map +1 -1
  17. package/dist/client/errors.js +5 -0
  18. package/dist/client/errors.js.map +1 -1
  19. package/dist/client/laser.d.ts +8 -0
  20. package/dist/client/laser.d.ts.map +1 -1
  21. package/dist/client/laser.js +42 -10
  22. package/dist/client/laser.js.map +1 -1
  23. package/dist/client/managed.d.ts +3 -1
  24. package/dist/client/managed.d.ts.map +1 -1
  25. package/dist/client/managed.js +2 -2
  26. package/dist/client/managed.js.map +1 -1
  27. package/dist/full.d.ts +1 -0
  28. package/dist/full.d.ts.map +1 -1
  29. package/dist/full.js +1 -0
  30. package/dist/full.js.map +1 -1
  31. package/dist/iggy/apache-iggy.d.ts +6 -2
  32. package/dist/iggy/apache-iggy.d.ts.map +1 -1
  33. package/dist/iggy/apache-iggy.js +11 -10
  34. package/dist/iggy/apache-iggy.js.map +1 -1
  35. package/dist/index.d.ts +11 -5
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +5 -3
  38. package/dist/index.js.map +1 -1
  39. package/dist/managed/batch.d.ts.map +1 -1
  40. package/dist/managed/batch.js +23 -2
  41. package/dist/managed/batch.js.map +1 -1
  42. package/dist/managed/destinations.d.ts +19 -0
  43. package/dist/managed/destinations.d.ts.map +1 -0
  44. package/dist/managed/destinations.js +90 -0
  45. package/dist/managed/destinations.js.map +1 -0
  46. package/dist/managed/kv.d.ts +33 -6
  47. package/dist/managed/kv.d.ts.map +1 -1
  48. package/dist/managed/kv.js +99 -17
  49. package/dist/managed/kv.js.map +1 -1
  50. package/dist/managed/query.d.ts +26 -19
  51. package/dist/managed/query.d.ts.map +1 -1
  52. package/dist/managed/query.js +97 -55
  53. package/dist/managed/query.js.map +1 -1
  54. package/dist/stream/publish.d.ts +3 -0
  55. package/dist/stream/publish.d.ts.map +1 -1
  56. package/dist/stream/publish.js +25 -0
  57. package/dist/stream/publish.js.map +1 -1
  58. package/dist/stream/record.d.ts +4 -1
  59. package/dist/stream/record.d.ts.map +1 -1
  60. package/dist/stream/record.js +34 -3
  61. package/dist/stream/record.js.map +1 -1
  62. package/dist/wire/arrow.d.ts +39 -0
  63. package/dist/wire/arrow.d.ts.map +1 -0
  64. package/dist/wire/arrow.js +133 -0
  65. package/dist/wire/arrow.js.map +1 -0
  66. package/dist/wire/authz.d.ts +2 -2
  67. package/dist/wire/authz.d.ts.map +1 -1
  68. package/dist/wire/authz.js +39 -20
  69. package/dist/wire/authz.js.map +1 -1
  70. package/dist/wire/cbor.d.ts +9 -1
  71. package/dist/wire/cbor.d.ts.map +1 -1
  72. package/dist/wire/cbor.js +45 -2
  73. package/dist/wire/cbor.js.map +1 -1
  74. package/dist/wire/checkpoint.d.ts +386 -0
  75. package/dist/wire/checkpoint.d.ts.map +1 -0
  76. package/dist/wire/checkpoint.js +1373 -0
  77. package/dist/wire/checkpoint.js.map +1 -0
  78. package/dist/wire/codes.d.ts +10 -0
  79. package/dist/wire/codes.d.ts.map +1 -1
  80. package/dist/wire/codes.js +14 -0
  81. package/dist/wire/codes.js.map +1 -1
  82. package/dist/wire/commands.d.ts +14 -5
  83. package/dist/wire/commands.d.ts.map +1 -1
  84. package/dist/wire/commands.js +75 -7
  85. package/dist/wire/commands.js.map +1 -1
  86. package/dist/wire/control.d.ts +3 -12
  87. package/dist/wire/control.d.ts.map +1 -1
  88. package/dist/wire/control.js +10 -43
  89. package/dist/wire/control.js.map +1 -1
  90. package/dist/wire/destination.d.ts +86 -0
  91. package/dist/wire/destination.d.ts.map +1 -0
  92. package/dist/wire/destination.js +251 -0
  93. package/dist/wire/destination.js.map +1 -0
  94. package/dist/wire/headers.d.ts +1 -0
  95. package/dist/wire/headers.d.ts.map +1 -1
  96. package/dist/wire/headers.js +1 -0
  97. package/dist/wire/headers.js.map +1 -1
  98. package/dist/wire/hello.d.ts +83 -11
  99. package/dist/wire/hello.d.ts.map +1 -1
  100. package/dist/wire/hello.js +292 -73
  101. package/dist/wire/hello.js.map +1 -1
  102. package/dist/wire/http.d.ts +153 -1
  103. package/dist/wire/http.d.ts.map +1 -1
  104. package/dist/wire/http.js +491 -10
  105. package/dist/wire/http.js.map +1 -1
  106. package/dist/wire/ids.d.ts +60 -0
  107. package/dist/wire/ids.d.ts.map +1 -1
  108. package/dist/wire/ids.js +143 -0
  109. package/dist/wire/ids.js.map +1 -1
  110. package/dist/wire/index.d.ts +5 -0
  111. package/dist/wire/index.d.ts.map +1 -1
  112. package/dist/wire/index.js +5 -0
  113. package/dist/wire/index.js.map +1 -1
  114. package/dist/wire/kv.d.ts +35 -0
  115. package/dist/wire/kv.d.ts.map +1 -1
  116. package/dist/wire/kv.js +178 -18
  117. package/dist/wire/kv.js.map +1 -1
  118. package/dist/wire/limits.d.ts +10 -0
  119. package/dist/wire/limits.d.ts.map +1 -1
  120. package/dist/wire/limits.js +10 -0
  121. package/dist/wire/limits.js.map +1 -1
  122. package/dist/wire/mutation.d.ts +10 -0
  123. package/dist/wire/mutation.d.ts.map +1 -1
  124. package/dist/wire/mutation.js +14 -0
  125. package/dist/wire/mutation.js.map +1 -1
  126. package/dist/wire/query.d.ts +192 -97
  127. package/dist/wire/query.d.ts.map +1 -1
  128. package/dist/wire/query.js +968 -443
  129. package/dist/wire/query.js.map +1 -1
  130. package/dist/wire/result.d.ts +6 -0
  131. package/dist/wire/result.d.ts.map +1 -1
  132. package/dist/wire/result.js +19 -2
  133. package/dist/wire/result.js.map +1 -1
  134. package/dist/wire/schema.d.ts +121 -0
  135. package/dist/wire/schema.d.ts.map +1 -0
  136. package/dist/wire/schema.js +778 -0
  137. package/dist/wire/schema.js.map +1 -0
  138. package/dist/wire/source.d.ts +35 -0
  139. package/dist/wire/source.d.ts.map +1 -0
  140. package/dist/wire/source.js +105 -0
  141. package/dist/wire/source.js.map +1 -0
  142. package/package.json +5 -5
@@ -1,4 +1,7 @@
1
1
  import { type CborMap } from "./cbor.js";
2
+ import { BackendResourceId } from "./ids.js";
3
+ import type { Consistency, SqlDialect } from "./query.js";
4
+ import type { LogicalTypeKind } from "./schema.js";
2
5
  import { type WireTopology } from "./topology.js";
3
6
  export declare const Feature: {
4
7
  readonly KV_CAS: bigint;
@@ -9,6 +12,8 @@ export declare const Feature: {
9
12
  readonly KEYWORD_SEARCH: bigint;
10
13
  readonly WATCH: bigint;
11
14
  readonly AUTHZ: bigint;
15
+ readonly DESTINATIONS: bigint;
16
+ readonly KV_FENCED_LEASES: bigint;
12
17
  };
13
18
  export interface OpVersions {
14
19
  readonly query: number;
@@ -17,35 +22,102 @@ export interface OpVersions {
17
22
  readonly fork: number;
18
23
  readonly agent: number;
19
24
  readonly graph: number;
25
+ readonly checkpoint?: number;
20
26
  readonly features: bigint;
21
27
  }
22
28
  export declare function newOpVersions(query: number, control: number, kv: number, fork: number): OpVersions;
23
29
  export declare function opVersionsHasFeature(versions: OpVersions, bit: bigint): boolean;
24
- export declare function encodeOpVersions(versions: OpVersions): Map<string, unknown>;
30
+ export declare function encodeOpVersions(value: OpVersions): Map<string, unknown>;
25
31
  export declare function decodeOpVersions(map: CborMap, context: string): OpVersions;
26
32
  export interface HelloReply {
27
33
  readonly versions: OpVersions;
28
34
  }
29
- export interface BackendDescriptor {
30
- readonly id: string;
35
+ export declare const BACKEND_DESCRIPTOR_VERSION = 1;
36
+ export type BackendMode = "operational" | "lakehouse";
37
+ export type BackendDesiredState = "disabled" | "enabled";
38
+ export type BackendObservedState = "disabled" | "starting" | "ready" | "degraded" | "unavailable";
39
+ export type BackendReadinessCode = "disabled" | "configuration_pending" | "configuration_rejected" | "credential_unavailable" | "object_store_unavailable" | "catalog_unavailable" | "query_runtime_unavailable" | "generation_mismatch" | "probe_failed";
40
+ export interface BackendImplementation {
31
41
  readonly kind: string;
32
- readonly label?: string;
33
- readonly version?: string;
34
- readonly capabilities: readonly string[];
42
+ readonly version: string;
43
+ }
44
+ export interface BackendReadinessReason {
45
+ readonly code: BackendReadinessCode;
46
+ readonly detail?: string;
47
+ }
48
+ export interface BackendReadiness {
49
+ readonly ready: boolean;
50
+ readonly reasons: readonly BackendReadinessReason[];
51
+ readonly observedAtMicros: bigint;
52
+ }
53
+ export interface MaterializationCapability {
54
+ readonly fileFormat: "parquet";
55
+ readonly tableFormat: "iceberg_v2";
56
+ readonly createTable: boolean;
57
+ readonly append: boolean;
58
+ }
59
+ export type TimeTravelCapability = "snapshot_id" | "timestamp_micros";
60
+ export type QueryPagingCapability = "offset" | "cursor";
61
+ export interface QueryCapabilities {
62
+ readonly dialects: readonly SqlDialect[];
63
+ readonly timeTravel: readonly TimeTravelCapability[];
64
+ readonly consistency: readonly Consistency[];
65
+ readonly logicalTypes: readonly LogicalTypeKind[];
66
+ readonly paging: readonly QueryPagingCapability[];
67
+ readonly cancellation: boolean;
68
+ readonly executionStatus: boolean;
69
+ readonly rawSql: boolean;
70
+ }
71
+ export interface SchemaCapabilities {
72
+ readonly logicalSchema: boolean;
73
+ readonly arrowIpcStream: boolean;
74
+ readonly schemaEvolution: boolean;
75
+ }
76
+ export interface MaintenanceCapabilities {
77
+ readonly expireSnapshots: boolean;
78
+ readonly removeOrphanFiles: boolean;
79
+ readonly compactDataFiles: boolean;
80
+ }
81
+ export interface BackendLimits {
82
+ readonly maxQueryRows: bigint;
83
+ readonly maxQueryBytes: bigint;
84
+ readonly maxScanBytes: bigint;
85
+ readonly maxQueryMicros: bigint;
86
+ readonly maxConcurrentQueries: number;
87
+ readonly maxSchemaFields: number;
88
+ readonly maxMaterializationFileBytes: bigint;
89
+ }
90
+ export interface BackendDescriptor {
91
+ readonly descriptorVersion: number;
92
+ readonly resourceId: BackendResourceId;
93
+ readonly mode: BackendMode;
94
+ readonly label: string;
95
+ readonly implementation: BackendImplementation;
96
+ readonly observedBackendGeneration: bigint;
97
+ readonly runtimeConfigurationRevision: bigint;
98
+ readonly desiredState: BackendDesiredState;
99
+ readonly observedState: BackendObservedState;
100
+ readonly readiness: BackendReadiness;
101
+ readonly materialization: readonly MaterializationCapability[];
102
+ readonly query?: QueryCapabilities;
103
+ readonly schema: SchemaCapabilities;
104
+ readonly maintenance: MaintenanceCapabilities;
105
+ readonly limits: BackendLimits;
35
106
  }
36
- export declare function newBackendDescriptor(id: string, kind: string): BackendDescriptor;
37
- export declare function backendDescriptorHasCapability(backend: BackendDescriptor, tag: string): boolean;
38
- export declare function encodeBackendDescriptor(backend: BackendDescriptor): Map<string, unknown>;
39
- export declare function decodeBackendDescriptor(value: unknown, context: string): BackendDescriptor;
40
107
  export interface BackendAnnounce {
41
108
  readonly versions: OpVersions;
42
109
  readonly ready?: boolean;
43
110
  readonly backends: readonly BackendDescriptor[];
44
111
  readonly topology?: WireTopology;
45
112
  }
113
+ export declare function newBackendDescriptor(resourceId: BackendResourceId, mode: BackendMode, label: string, implementation: BackendImplementation, observedBackendGeneration: bigint, runtimeConfigurationRevision: bigint): BackendDescriptor;
114
+ export declare function backendDescriptorHasCapability(backend: BackendDescriptor, tag: string): boolean;
46
115
  export declare function newBackendAnnounce(versions: OpVersions): BackendAnnounce;
116
+ export declare function encodeBackendDescriptor(value: BackendDescriptor): Map<string, unknown>;
117
+ export declare function decodeBackendDescriptor(value: unknown, context: string): BackendDescriptor;
118
+ export declare function validateBackendDescriptor(value: BackendDescriptor): void;
47
119
  export declare function encodeHelloReply(reply: HelloReply): Uint8Array;
48
120
  export declare function decodeHelloReply(bytes: Uint8Array): HelloReply;
49
- export declare function encodeBackendAnnounce(announce: BackendAnnounce): Uint8Array;
121
+ export declare function encodeBackendAnnounce(value: BackendAnnounce): Uint8Array;
50
122
  export declare function decodeBackendAnnounce(bytes: Uint8Array): BackendAnnounce;
51
123
  //# sourceMappingURL=hello.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hello.d.ts","sourceRoot":"","sources":["../../src/wire/hello.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAA4C,MAAM,WAAW,CAAA;AAClF,OAAO,EAAE,KAAK,YAAY,EAA0C,MAAM,eAAe,CAAA;AAEzF,eAAO,MAAM,OAAO;aAClB,MAAM;aACN,gBAAgB;aAChB,kBAAkB;aAClB,aAAa;aACb,cAAc;aACd,cAAc;aACd,KAAK;aACL,KAAK;CACG,CAAA;AAEV,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GACX,UAAU,CAEZ;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAU3E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAU1E;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAEhF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/F;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAQxF;AAaD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAa1F;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CACjC;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,UAAU,GAAG,eAAe,CAExE;AAKD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAI9D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAQ9D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,CAW3E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAoBxE"}
1
+ {"version":3,"file":"hello.d.ts","sourceRoot":"","sources":["../../src/wire/hello.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAA0D,MAAM,WAAW,CAAA;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,KAAK,YAAY,EAA0C,MAAM,eAAe,CAAA;AAEzF,eAAO,MAAM,OAAO;aAClB,MAAM;aACN,gBAAgB;aAChB,kBAAkB;aAClB,aAAa;aACb,cAAc;aACd,cAAc;aACd,KAAK;aACL,KAAK;aACL,YAAY;aACZ,gBAAgB;CACR,CAAA;AAEV,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AACD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GACX,UAAU,CAEZ;AACD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/E;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAYxE;AACD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAW1E;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;CAC9B;AACD,eAAO,MAAM,0BAA0B,IAAI,CAAA;AAC3C,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,WAAW,CAAA;AACrD,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,SAAS,CAAA;AACxD,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,CAAA;AACjG,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,uBAAuB,GACvB,wBAAwB,GACxB,wBAAwB,GACxB,0BAA0B,GAC1B,qBAAqB,GACrB,2BAA2B,GAC3B,qBAAqB,GACrB,cAAc,CAAA;AAClB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AACD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAA;IACnD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAClC;AACD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAA;IAC9B,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AACD,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,kBAAkB,CAAA;AACrE,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,CAAA;AACvD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAA;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACpD,QAAQ,CAAC,WAAW,EAAE,SAAS,WAAW,EAAE,CAAA;IAC5C,QAAQ,CAAC,YAAY,EAAE,SAAS,eAAe,EAAE,CAAA;IACjD,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAA;IACjD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAClC;AACD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;CACnC;AACD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAA;CAC7C;AACD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAA;IAC9C,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAA;IAC1C,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAA;IAC7C,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAA;IAC5C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,QAAQ,CAAC,eAAe,EAAE,SAAS,yBAAyB,EAAE,CAAA;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAA;IAC7C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAC/B;AACD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CACjC;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,qBAAqB,EACrC,yBAAyB,EAAE,MAAM,EACjC,4BAA4B,EAAE,MAAM,GACnC,iBAAiB,CAyBnB;AACD,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAK/F;AACD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,UAAU,GAAG,eAAe,CAExE;AAmCD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAwFtF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CA2H1F;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAuBxE;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAE9D;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAQ9D;AACD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU,CAMxE;AACD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAcxE"}
@@ -1,5 +1,6 @@
1
- import { CodecError } from "../client/errors.js";
2
- import { decodeOne, encodeNamed, expectMap, field } from "./cbor.js";
1
+ import { CodecError, InvalidError } from "../client/errors.js";
2
+ import { decodeOne, encodeNamed, expectMap, expectString, field } from "./cbor.js";
3
+ import { BackendResourceId } from "./ids.js";
3
4
  import { decodeWireTopology, encodeWireTopology } from "./topology.js";
4
5
  export const Feature = {
5
6
  KV_CAS: 1n << 0n,
@@ -9,26 +10,31 @@ export const Feature = {
9
10
  AGENT_WORKFLOW: 1n << 4n,
10
11
  KEYWORD_SEARCH: 1n << 5n,
11
12
  WATCH: 1n << 6n,
12
- AUTHZ: 1n << 7n
13
+ AUTHZ: 1n << 7n,
14
+ DESTINATIONS: 1n << 8n,
15
+ KV_FENCED_LEASES: 1n << 9n
13
16
  };
14
17
  export function newOpVersions(query, control, kv, fork) {
15
- return { query, control, kv, fork, agent: 0, graph: 0, features: 0n };
18
+ return { query, control, kv, fork, agent: 0, graph: 0, checkpoint: 0, features: 0n };
16
19
  }
17
20
  export function opVersionsHasFeature(versions, bit) {
18
21
  return (versions.features & bit) === bit;
19
22
  }
20
- export function encodeOpVersions(versions) {
21
- const map = new Map();
22
- map.set("query", versions.query);
23
- map.set("control", versions.control);
24
- map.set("kv", versions.kv);
25
- map.set("fork", versions.fork);
26
- if (versions.agent !== 0)
27
- map.set("agent", versions.agent);
28
- if (versions.graph !== 0)
29
- map.set("graph", versions.graph);
30
- if (versions.features !== 0n)
31
- map.set("features", versions.features);
23
+ export function encodeOpVersions(value) {
24
+ const map = new Map([
25
+ ["query", value.query],
26
+ ["control", value.control],
27
+ ["kv", value.kv],
28
+ ["fork", value.fork]
29
+ ]);
30
+ if (value.agent !== 0)
31
+ map.set("agent", value.agent);
32
+ if (value.graph !== 0)
33
+ map.set("graph", value.graph);
34
+ if ((value.checkpoint ?? 0) !== 0)
35
+ map.set("checkpoint", value.checkpoint);
36
+ if (value.features !== 0n)
37
+ map.set("features", value.features);
32
38
  return map;
33
39
  }
34
40
  export function decodeOpVersions(map, context) {
@@ -39,87 +45,300 @@ export function decodeOpVersions(map, context) {
39
45
  fork: field.requiredU32(map, "fork", context),
40
46
  agent: field.optionalU32(map, "agent", context) ?? 0,
41
47
  graph: field.optionalU32(map, "graph", context) ?? 0,
48
+ checkpoint: field.optionalU32(map, "checkpoint", context) ?? 0,
42
49
  features: field.optionalU64(map, "features", context) ?? 0n
43
50
  };
44
51
  }
45
- export function newBackendDescriptor(id, kind) {
46
- return { id, kind, capabilities: [] };
52
+ export const BACKEND_DESCRIPTOR_VERSION = 1;
53
+ export function newBackendDescriptor(resourceId, mode, label, implementation, observedBackendGeneration, runtimeConfigurationRevision) {
54
+ return {
55
+ descriptorVersion: BACKEND_DESCRIPTOR_VERSION,
56
+ resourceId,
57
+ mode,
58
+ label,
59
+ implementation,
60
+ observedBackendGeneration,
61
+ runtimeConfigurationRevision,
62
+ desiredState: "disabled",
63
+ observedState: "disabled",
64
+ readiness: { ready: false, reasons: [{ code: "disabled" }], observedAtMicros: 0n },
65
+ materialization: [],
66
+ schema: { logicalSchema: false, arrowIpcStream: false, schemaEvolution: false },
67
+ maintenance: { expireSnapshots: false, removeOrphanFiles: false, compactDataFiles: false },
68
+ limits: {
69
+ maxQueryRows: 0n,
70
+ maxQueryBytes: 0n,
71
+ maxScanBytes: 0n,
72
+ maxQueryMicros: 0n,
73
+ maxConcurrentQueries: 0,
74
+ maxSchemaFields: 0,
75
+ maxMaterializationFileBytes: 0n
76
+ }
77
+ };
47
78
  }
48
79
  export function backendDescriptorHasCapability(backend, tag) {
49
- return backend.capabilities.includes(tag);
50
- }
51
- export function encodeBackendDescriptor(backend) {
52
- const map = new Map();
53
- map.set("id", backend.id);
54
- map.set("kind", backend.kind);
55
- if (backend.label !== undefined)
56
- map.set("label", backend.label);
57
- if (backend.version !== undefined)
58
- map.set("version", backend.version);
59
- if (backend.capabilities.length > 0)
60
- map.set("capabilities", backend.capabilities);
61
- return map;
80
+ return (backend.materialization.some((item) => item.fileFormat === tag || item.tableFormat === tag) ||
81
+ backend.query?.dialects.includes(tag) === true);
82
+ }
83
+ export function newBackendAnnounce(versions) {
84
+ return { versions, ready: true, backends: [] };
85
+ }
86
+ function optional(map, name, value, encode = (item) => item) {
87
+ if (value !== undefined)
88
+ map.set(name, encode(value));
62
89
  }
63
- function decodeCapability(item, index, context) {
64
- if (typeof item !== "string") {
65
- throw new CodecError(`capabilities[${String(index)}] in ${context} must be a string`, context, "capabilities");
66
- }
67
- return item;
90
+ function words(map, name, context, allowed) {
91
+ return field.requiredArray(map, name, context, (item, index) => {
92
+ const value = expectString(item, `${context}.${name}[${String(index)}]`);
93
+ if (!allowed.includes(value))
94
+ throw new CodecError(`unknown ${name} value \`${value}\``, context, name);
95
+ return value;
96
+ });
97
+ }
98
+ function word(map, name, context, allowed) {
99
+ const value = field.requiredString(map, name, context);
100
+ if (!allowed.includes(value))
101
+ throw new CodecError(`unknown ${name} value \`${value}\``, context, name);
102
+ return value;
103
+ }
104
+ export function encodeBackendDescriptor(value) {
105
+ const readiness = new Map([
106
+ ["ready", value.readiness.ready],
107
+ [
108
+ "reasons",
109
+ value.readiness.reasons.map((reason) => {
110
+ const map = new Map([["code", reason.code]]);
111
+ optional(map, "detail", reason.detail);
112
+ return map;
113
+ })
114
+ ],
115
+ ["observed_at_micros", value.readiness.observedAtMicros]
116
+ ]);
117
+ const map = new Map([
118
+ ["descriptor_version", value.descriptorVersion],
119
+ ["resource_id", value.resourceId.toBytes()],
120
+ ["mode", value.mode],
121
+ ["label", value.label],
122
+ [
123
+ "implementation",
124
+ new Map([
125
+ ["kind", value.implementation.kind],
126
+ ["version", value.implementation.version]
127
+ ])
128
+ ],
129
+ ["observed_backend_generation", value.observedBackendGeneration],
130
+ ["runtime_configuration_revision", value.runtimeConfigurationRevision],
131
+ ["desired_state", value.desiredState],
132
+ ["observed_state", value.observedState],
133
+ ["readiness", readiness],
134
+ [
135
+ "materialization",
136
+ value.materialization.map((item) => new Map([
137
+ ["file_format", item.fileFormat],
138
+ ["table_format", item.tableFormat],
139
+ ["create_table", item.createTable],
140
+ ["append", item.append]
141
+ ]))
142
+ ]
143
+ ]);
144
+ optional(map, "query", value.query, (item) => new Map([
145
+ ["dialects", [...item.dialects]],
146
+ ["time_travel", [...item.timeTravel]],
147
+ ["consistency", [...item.consistency]],
148
+ ["logical_types", [...item.logicalTypes]],
149
+ ["paging", [...item.paging]],
150
+ ["cancellation", item.cancellation],
151
+ ["execution_status", item.executionStatus],
152
+ ["raw_sql", item.rawSql]
153
+ ]));
154
+ map.set("schema", new Map([
155
+ ["logical_schema", value.schema.logicalSchema],
156
+ ["arrow_ipc_stream", value.schema.arrowIpcStream],
157
+ ["schema_evolution", value.schema.schemaEvolution]
158
+ ]));
159
+ map.set("maintenance", new Map([
160
+ ["expire_snapshots", value.maintenance.expireSnapshots],
161
+ ["remove_orphan_files", value.maintenance.removeOrphanFiles],
162
+ ["compact_data_files", value.maintenance.compactDataFiles]
163
+ ]));
164
+ map.set("limits", new Map([
165
+ ["max_query_rows", value.limits.maxQueryRows],
166
+ ["max_query_bytes", value.limits.maxQueryBytes],
167
+ ["max_scan_bytes", value.limits.maxScanBytes],
168
+ ["max_query_micros", value.limits.maxQueryMicros],
169
+ ["max_concurrent_queries", value.limits.maxConcurrentQueries],
170
+ ["max_schema_fields", value.limits.maxSchemaFields],
171
+ ["max_materialization_file_bytes", value.limits.maxMaterializationFileBytes]
172
+ ]));
173
+ return map;
68
174
  }
69
175
  export function decodeBackendDescriptor(value, context) {
70
176
  const map = expectMap(value, context);
71
- const label = field.optionalString(map, "label", context);
72
- const version = field.optionalString(map, "version", context);
177
+ const implementation = field.requiredMap(map, "implementation", context);
178
+ const readiness = field.requiredMap(map, "readiness", context);
179
+ const query = field.optionalMap(map, "query", context);
180
+ const schema = field.requiredMap(map, "schema", context);
181
+ const maintenance = field.requiredMap(map, "maintenance", context);
182
+ const limits = field.requiredMap(map, "limits", context);
73
183
  return {
74
- id: field.requiredString(map, "id", context),
75
- kind: field.requiredString(map, "kind", context),
76
- ...(label !== undefined ? { label } : {}),
77
- ...(version !== undefined ? { version } : {}),
78
- capabilities: field.optionalArray(map, "capabilities", context, (item, index) => decodeCapability(item, index, context))
184
+ descriptorVersion: field.requiredU32(map, "descriptor_version", context),
185
+ resourceId: BackendResourceId.fromBytes(field.requiredBytes(map, "resource_id", context)),
186
+ mode: word(map, "mode", context, ["operational", "lakehouse"]),
187
+ label: field.requiredString(map, "label", context),
188
+ implementation: {
189
+ kind: field.requiredString(implementation, "kind", context),
190
+ version: field.requiredString(implementation, "version", context)
191
+ },
192
+ observedBackendGeneration: field.requiredU64(map, "observed_backend_generation", context),
193
+ runtimeConfigurationRevision: field.requiredU64(map, "runtime_configuration_revision", context),
194
+ desiredState: word(map, "desired_state", context, ["disabled", "enabled"]),
195
+ observedState: word(map, "observed_state", context, [
196
+ "disabled",
197
+ "starting",
198
+ "ready",
199
+ "degraded",
200
+ "unavailable"
201
+ ]),
202
+ readiness: {
203
+ ready: field.requiredBoolean(readiness, "ready", context),
204
+ reasons: field.requiredArray(readiness, "reasons", context, (item, index) => {
205
+ const reason = expectMap(item, `${context}.reasons[${String(index)}]`);
206
+ const detail = field.optionalString(reason, "detail", context);
207
+ return {
208
+ code: word(reason, "code", context, [
209
+ "disabled",
210
+ "configuration_pending",
211
+ "configuration_rejected",
212
+ "credential_unavailable",
213
+ "object_store_unavailable",
214
+ "catalog_unavailable",
215
+ "query_runtime_unavailable",
216
+ "generation_mismatch",
217
+ "probe_failed"
218
+ ]),
219
+ ...(detail === undefined ? {} : { detail })
220
+ };
221
+ }),
222
+ observedAtMicros: field.requiredU64(readiness, "observed_at_micros", context)
223
+ },
224
+ materialization: field.requiredArray(map, "materialization", context, (item, index) => {
225
+ const capability = expectMap(item, `${context}.materialization[${String(index)}]`);
226
+ return {
227
+ fileFormat: word(capability, "file_format", context, ["parquet"]),
228
+ tableFormat: word(capability, "table_format", context, ["iceberg_v2"]),
229
+ createTable: field.requiredBoolean(capability, "create_table", context),
230
+ append: field.requiredBoolean(capability, "append", context)
231
+ };
232
+ }),
233
+ ...(query === undefined
234
+ ? {}
235
+ : {
236
+ query: {
237
+ dialects: words(query, "dialects", context, [
238
+ "data_fusion",
239
+ "postgres",
240
+ "my_sql",
241
+ "sqlite"
242
+ ]),
243
+ timeTravel: words(query, "time_travel", context, ["snapshot_id", "timestamp_micros"]),
244
+ consistency: words(query, "consistency", context, [
245
+ "eventual",
246
+ "read_your_writes",
247
+ "strong"
248
+ ]),
249
+ logicalTypes: words(query, "logical_types", context, [
250
+ "boolean",
251
+ "int",
252
+ "long",
253
+ "float",
254
+ "double",
255
+ "decimal",
256
+ "date",
257
+ "time_micros",
258
+ "timestamp_micros",
259
+ "timestamp_tz_micros",
260
+ "string",
261
+ "uuid",
262
+ "fixed",
263
+ "binary",
264
+ "struct",
265
+ "list",
266
+ "map"
267
+ ]),
268
+ paging: words(query, "paging", context, ["offset", "cursor"]),
269
+ cancellation: field.requiredBoolean(query, "cancellation", context),
270
+ executionStatus: field.requiredBoolean(query, "execution_status", context),
271
+ rawSql: field.requiredBoolean(query, "raw_sql", context)
272
+ }
273
+ }),
274
+ schema: {
275
+ logicalSchema: field.requiredBoolean(schema, "logical_schema", context),
276
+ arrowIpcStream: field.requiredBoolean(schema, "arrow_ipc_stream", context),
277
+ schemaEvolution: field.requiredBoolean(schema, "schema_evolution", context)
278
+ },
279
+ maintenance: {
280
+ expireSnapshots: field.requiredBoolean(maintenance, "expire_snapshots", context),
281
+ removeOrphanFiles: field.requiredBoolean(maintenance, "remove_orphan_files", context),
282
+ compactDataFiles: field.requiredBoolean(maintenance, "compact_data_files", context)
283
+ },
284
+ limits: {
285
+ maxQueryRows: field.requiredU64(limits, "max_query_rows", context),
286
+ maxQueryBytes: field.requiredU64(limits, "max_query_bytes", context),
287
+ maxScanBytes: field.requiredU64(limits, "max_scan_bytes", context),
288
+ maxQueryMicros: field.requiredU64(limits, "max_query_micros", context),
289
+ maxConcurrentQueries: field.requiredU32(limits, "max_concurrent_queries", context),
290
+ maxSchemaFields: field.requiredU32(limits, "max_schema_fields", context),
291
+ maxMaterializationFileBytes: field.requiredU64(limits, "max_materialization_file_bytes", context)
292
+ }
79
293
  };
80
294
  }
81
- export function newBackendAnnounce(versions) {
82
- return { versions, ready: true, backends: [] };
295
+ export function validateBackendDescriptor(value) {
296
+ if (value.descriptorVersion !== BACKEND_DESCRIPTOR_VERSION ||
297
+ value.resourceId.asU128() === 0n ||
298
+ value.observedBackendGeneration === 0n ||
299
+ value.runtimeConfigurationRevision === 0n)
300
+ throw new InvalidError("backend descriptor identity or version is invalid");
301
+ if (value.label.length === 0 ||
302
+ value.implementation.kind.length === 0 ||
303
+ value.implementation.version.length === 0)
304
+ throw new InvalidError("backend descriptor text is empty");
305
+ if (value.readiness.ready &&
306
+ (value.observedState !== "ready" ||
307
+ value.readiness.observedAtMicros === 0n ||
308
+ value.readiness.reasons.length !== 0))
309
+ throw new InvalidError("ready backend observation is inconsistent");
310
+ if (!value.readiness.ready && value.readiness.reasons.length === 0)
311
+ throw new InvalidError("not-ready backend requires a reason");
83
312
  }
84
- const HELLO_REPLY_CONTEXT = "HelloReply";
85
- const BACKEND_ANNOUNCE_CONTEXT = "BackendAnnounce";
86
313
  export function encodeHelloReply(reply) {
87
- const map = new Map();
88
- map.set("versions", encodeOpVersions(reply.versions));
89
- return encodeNamed(map);
314
+ return encodeNamed(new Map([["versions", encodeOpVersions(reply.versions)]]));
90
315
  }
91
316
  export function decodeHelloReply(bytes) {
92
- const map = expectMap(decodeOne(bytes, HELLO_REPLY_CONTEXT), HELLO_REPLY_CONTEXT);
317
+ const map = expectMap(decodeOne(bytes, "HelloReply"), "HelloReply");
93
318
  return {
94
- versions: decodeOpVersions(field.requiredMap(map, "versions", HELLO_REPLY_CONTEXT), HELLO_REPLY_CONTEXT)
319
+ versions: decodeOpVersions(field.requiredMap(map, "versions", "HelloReply"), "HelloReply.versions")
95
320
  };
96
321
  }
97
- export function encodeBackendAnnounce(announce) {
98
- const map = new Map();
99
- map.set("versions", encodeOpVersions(announce.versions));
100
- if (announce.ready === false)
322
+ export function encodeBackendAnnounce(value) {
323
+ const map = new Map([["versions", encodeOpVersions(value.versions)]]);
324
+ if (value.ready === false)
101
325
  map.set("ready", false);
102
- if (announce.backends.length > 0) {
103
- map.set("backends", announce.backends.map(encodeBackendDescriptor));
104
- }
105
- if (announce.topology !== undefined) {
106
- map.set("topology", encodeWireTopology(announce.topology));
107
- }
326
+ if (value.backends.length > 0)
327
+ map.set("backends", value.backends.map(encodeBackendDescriptor));
328
+ optional(map, "topology", value.topology, encodeWireTopology);
108
329
  return encodeNamed(map);
109
330
  }
110
331
  export function decodeBackendAnnounce(bytes) {
111
- const map = expectMap(decodeOne(bytes, BACKEND_ANNOUNCE_CONTEXT), BACKEND_ANNOUNCE_CONTEXT);
112
- const versions = decodeOpVersions(field.requiredMap(map, "versions", BACKEND_ANNOUNCE_CONTEXT), BACKEND_ANNOUNCE_CONTEXT);
113
- const backends = field.optionalArray(map, "backends", BACKEND_ANNOUNCE_CONTEXT, (item) => decodeBackendDescriptor(item, BACKEND_ANNOUNCE_CONTEXT));
114
- const topologyMap = field.optionalMap(map, "topology", BACKEND_ANNOUNCE_CONTEXT);
115
- const topology = topologyMap === undefined
116
- ? undefined
117
- : decodeWireTopology(topologyMap, BACKEND_ANNOUNCE_CONTEXT);
332
+ const context = "BackendAnnounce";
333
+ const map = expectMap(decodeOne(bytes, context), context);
334
+ const topology = field.optionalMap(map, "topology", context);
118
335
  return {
119
- versions,
120
- ready: field.optionalBoolean(map, "ready", BACKEND_ANNOUNCE_CONTEXT) ?? true,
121
- backends,
122
- ...(topology !== undefined ? { topology } : {})
336
+ versions: decodeOpVersions(field.requiredMap(map, "versions", context), `${context}.versions`),
337
+ ready: field.optionalBoolean(map, "ready", context) ?? true,
338
+ backends: field.optionalArray(map, "backends", context, (item, index) => decodeBackendDescriptor(item, `${context}.backends[${String(index)}]`)),
339
+ ...(topology === undefined
340
+ ? {}
341
+ : { topology: decodeWireTopology(topology, `${context}.topology`) })
123
342
  };
124
343
  }
125
344
  //# sourceMappingURL=hello.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hello.js","sourceRoot":"","sources":["../../src/wire/hello.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hello.js","sourceRoot":"","sources":["../../src/wire/hello.ts"],"names":[],"mappings":"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"}