@wavehouse/chtypes 0.5.2 → 1.0.2

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 (195) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +34 -38
  3. package/dist/abi1/buildinfo.d.ts +40 -0
  4. package/dist/abi1/buildinfo.d.ts.map +1 -0
  5. package/dist/abi1/buildinfo.js +83 -0
  6. package/dist/abi1/buildinfo.js.map +1 -0
  7. package/dist/abi1/calls.gen.d.ts +55 -0
  8. package/dist/abi1/calls.gen.d.ts.map +1 -0
  9. package/dist/abi1/calls.gen.js +110 -0
  10. package/dist/abi1/calls.gen.js.map +1 -0
  11. package/dist/abi1/decls.gen.d.ts +115 -0
  12. package/dist/abi1/decls.gen.d.ts.map +1 -0
  13. package/dist/abi1/decls.gen.js +1613 -0
  14. package/dist/abi1/decls.gen.js.map +1 -0
  15. package/dist/abi1/errmap.gen.d.ts +18 -0
  16. package/dist/abi1/errmap.gen.d.ts.map +1 -0
  17. package/dist/abi1/errmap.gen.js +66 -0
  18. package/dist/abi1/errmap.gen.js.map +1 -0
  19. package/dist/abi1/errors.d.ts +107 -0
  20. package/dist/abi1/errors.d.ts.map +1 -0
  21. package/dist/abi1/errors.js +134 -0
  22. package/dist/abi1/errors.js.map +1 -0
  23. package/dist/abi1/handles.d.ts +31 -0
  24. package/dist/abi1/handles.d.ts.map +1 -0
  25. package/dist/abi1/handles.js +76 -0
  26. package/dist/abi1/handles.js.map +1 -0
  27. package/dist/abi1/index.d.ts +17 -0
  28. package/dist/abi1/index.d.ts.map +1 -0
  29. package/dist/abi1/index.js +17 -0
  30. package/dist/abi1/index.js.map +1 -0
  31. package/dist/abi1/libc.d.ts +54 -0
  32. package/dist/abi1/libc.d.ts.map +1 -0
  33. package/dist/abi1/libc.gen.d.ts +12 -0
  34. package/dist/abi1/libc.gen.d.ts.map +1 -0
  35. package/dist/abi1/libc.gen.js +75 -0
  36. package/dist/abi1/libc.gen.js.map +1 -0
  37. package/dist/abi1/libc.js +109 -0
  38. package/dist/abi1/libc.js.map +1 -0
  39. package/dist/abi1/loader.d.ts +101 -0
  40. package/dist/abi1/loader.d.ts.map +1 -0
  41. package/dist/abi1/loader.js +274 -0
  42. package/dist/abi1/loader.js.map +1 -0
  43. package/dist/abi1/raw.d.ts +104 -0
  44. package/dist/abi1/raw.d.ts.map +1 -0
  45. package/dist/abi1/raw.js +296 -0
  46. package/dist/abi1/raw.js.map +1 -0
  47. package/dist/abi1/strictjson.d.ts +19 -0
  48. package/dist/abi1/strictjson.d.ts.map +1 -0
  49. package/dist/abi1/strictjson.js +78 -0
  50. package/dist/abi1/strictjson.js.map +1 -0
  51. package/dist/abi1/vocab.gen.d.ts +169 -0
  52. package/dist/abi1/vocab.gen.d.ts.map +1 -0
  53. package/dist/abi1/vocab.gen.js +306 -0
  54. package/dist/abi1/vocab.gen.js.map +1 -0
  55. package/dist/cli.d.ts +25 -26
  56. package/dist/cli.d.ts.map +1 -1
  57. package/dist/cli.js +206 -218
  58. package/dist/cli.js.map +1 -1
  59. package/dist/documents.d.ts +195 -0
  60. package/dist/documents.d.ts.map +1 -0
  61. package/dist/documents.js +389 -0
  62. package/dist/documents.js.map +1 -0
  63. package/dist/env.d.ts +16 -0
  64. package/dist/env.d.ts.map +1 -0
  65. package/dist/env.js +57 -0
  66. package/dist/env.js.map +1 -0
  67. package/dist/index.d.ts +19 -24
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +17 -23
  70. package/dist/index.js.map +1 -1
  71. package/dist/json.d.ts +11 -89
  72. package/dist/json.d.ts.map +1 -1
  73. package/dist/json.js +16 -180
  74. package/dist/json.js.map +1 -1
  75. package/dist/library.d.ts +53 -309
  76. package/dist/library.d.ts.map +1 -1
  77. package/dist/library.js +77 -315
  78. package/dist/library.js.map +1 -1
  79. package/dist/ocifetch/constants.gen.d.ts +84 -0
  80. package/dist/ocifetch/constants.gen.d.ts.map +1 -0
  81. package/dist/ocifetch/constants.gen.js +92 -0
  82. package/dist/ocifetch/constants.gen.js.map +1 -0
  83. package/dist/ocifetch/dsse.d.ts +114 -0
  84. package/dist/ocifetch/dsse.d.ts.map +1 -0
  85. package/dist/ocifetch/dsse.js +331 -0
  86. package/dist/ocifetch/dsse.js.map +1 -0
  87. package/dist/ocifetch/ensure.d.ts +65 -0
  88. package/dist/ocifetch/ensure.d.ts.map +1 -0
  89. package/dist/ocifetch/ensure.js +775 -0
  90. package/dist/ocifetch/ensure.js.map +1 -0
  91. package/dist/ocifetch/errors.d.ts +92 -0
  92. package/dist/ocifetch/errors.d.ts.map +1 -0
  93. package/dist/ocifetch/errors.js +101 -0
  94. package/dist/ocifetch/errors.js.map +1 -0
  95. package/dist/ocifetch/goldens.d.ts +44 -0
  96. package/dist/ocifetch/goldens.d.ts.map +1 -0
  97. package/dist/ocifetch/goldens.js +62 -0
  98. package/dist/ocifetch/goldens.js.map +1 -0
  99. package/dist/ocifetch/http.d.ts +124 -0
  100. package/dist/ocifetch/http.d.ts.map +1 -0
  101. package/dist/ocifetch/http.js +549 -0
  102. package/dist/ocifetch/http.js.map +1 -0
  103. package/dist/ocifetch/index.d.ts +17 -0
  104. package/dist/ocifetch/index.d.ts.map +1 -0
  105. package/dist/ocifetch/index.js +14 -0
  106. package/dist/ocifetch/index.js.map +1 -0
  107. package/dist/ocifetch/layout.d.ts +126 -0
  108. package/dist/ocifetch/layout.d.ts.map +1 -0
  109. package/dist/ocifetch/layout.js +375 -0
  110. package/dist/ocifetch/layout.js.map +1 -0
  111. package/dist/ocifetch/localverify.d.ts +43 -0
  112. package/dist/ocifetch/localverify.d.ts.map +1 -0
  113. package/dist/ocifetch/localverify.js +164 -0
  114. package/dist/ocifetch/localverify.js.map +1 -0
  115. package/dist/ocifetch/lock.d.ts +39 -0
  116. package/dist/ocifetch/lock.d.ts.map +1 -0
  117. package/dist/ocifetch/lock.js +140 -0
  118. package/dist/ocifetch/lock.js.map +1 -0
  119. package/dist/ocifetch/oci.d.ts +100 -0
  120. package/dist/ocifetch/oci.d.ts.map +1 -0
  121. package/dist/ocifetch/oci.js +323 -0
  122. package/dist/ocifetch/oci.js.map +1 -0
  123. package/dist/ocifetch/referrers.d.ts +55 -0
  124. package/dist/ocifetch/referrers.d.ts.map +1 -0
  125. package/dist/ocifetch/referrers.js +132 -0
  126. package/dist/ocifetch/referrers.js.map +1 -0
  127. package/dist/ocifetch/types.d.ts +167 -0
  128. package/dist/ocifetch/types.d.ts.map +1 -0
  129. package/dist/ocifetch/types.js +88 -0
  130. package/dist/ocifetch/types.js.map +1 -0
  131. package/dist/ocifetch/unpack.d.ts +55 -0
  132. package/dist/ocifetch/unpack.d.ts.map +1 -0
  133. package/dist/ocifetch/unpack.js +205 -0
  134. package/dist/ocifetch/unpack.js.map +1 -0
  135. package/dist/registry.d.ts +38 -387
  136. package/dist/registry.d.ts.map +1 -1
  137. package/dist/registry.js +95 -819
  138. package/dist/registry.js.map +1 -1
  139. package/dist/schema.d.ts +77 -588
  140. package/dist/schema.d.ts.map +1 -1
  141. package/dist/schema.js +87 -549
  142. package/dist/schema.js.map +1 -1
  143. package/dist/settings.d.ts +27 -36
  144. package/dist/settings.d.ts.map +1 -1
  145. package/dist/settings.js +75 -25
  146. package/dist/settings.js.map +1 -1
  147. package/dist/setup.d.ts +46 -0
  148. package/dist/setup.d.ts.map +1 -0
  149. package/dist/setup.js +79 -0
  150. package/dist/setup.js.map +1 -0
  151. package/dist/tar.d.ts +27 -11
  152. package/dist/tar.d.ts.map +1 -1
  153. package/dist/tar.js +54 -32
  154. package/dist/tar.js.map +1 -1
  155. package/package.json +2 -2
  156. package/dist/discover.d.ts +0 -142
  157. package/dist/discover.d.ts.map +0 -1
  158. package/dist/discover.js +0 -288
  159. package/dist/discover.js.map +0 -1
  160. package/dist/error-codes.d.ts +0 -80
  161. package/dist/error-codes.d.ts.map +0 -1
  162. package/dist/error-codes.js +0 -139
  163. package/dist/error-codes.js.map +0 -1
  164. package/dist/errors.d.ts +0 -284
  165. package/dist/errors.d.ts.map +0 -1
  166. package/dist/errors.js +0 -321
  167. package/dist/errors.js.map +0 -1
  168. package/dist/fetch.d.ts +0 -382
  169. package/dist/fetch.d.ts.map +0 -1
  170. package/dist/fetch.js +0 -1498
  171. package/dist/fetch.js.map +0 -1
  172. package/dist/ffi.d.ts +0 -410
  173. package/dist/ffi.d.ts.map +0 -1
  174. package/dist/ffi.js +0 -1154
  175. package/dist/ffi.js.map +0 -1
  176. package/dist/format.d.ts +0 -128
  177. package/dist/format.d.ts.map +0 -1
  178. package/dist/format.js +0 -132
  179. package/dist/format.js.map +0 -1
  180. package/dist/numeric.d.ts +0 -20
  181. package/dist/numeric.d.ts.map +0 -1
  182. package/dist/numeric.js +0 -107
  183. package/dist/numeric.js.map +0 -1
  184. package/dist/paths.d.ts +0 -55
  185. package/dist/paths.d.ts.map +0 -1
  186. package/dist/paths.js +0 -87
  187. package/dist/paths.js.map +0 -1
  188. package/dist/results.d.ts +0 -495
  189. package/dist/results.d.ts.map +0 -1
  190. package/dist/results.js +0 -406
  191. package/dist/results.js.map +0 -1
  192. package/dist/transform.d.ts +0 -73
  193. package/dist/transform.d.ts.map +0 -1
  194. package/dist/transform.js +0 -533
  195. package/dist/transform.js.map +0 -1
@@ -0,0 +1,195 @@
1
+ /**
2
+ * The result types and their decoders (`docs/reference/bindings-v1.md` §5).
3
+ *
4
+ * Every field below is a field of the document the library returned, or the
5
+ * bytes of an output buffer; nothing is computed here. The rules every
6
+ * decoder follows:
7
+ *
8
+ * 1. Stock JSON only: `JSON.parse`, after a scan that refuses a duplicate
9
+ * key (`./abi1/strictjson.ts`). A duplicate key, a document that is not
10
+ * JSON, or a value of the wrong JSON type is an `InternalError` naming the
11
+ * document and the key.
12
+ * 2. Absent is the default, and an unknown key is ignored.
13
+ * 3. Names, and every data-derived string (a rendering, a type, SQL, a
14
+ * message, a partition, a setting name), are BYTES. A document carries one
15
+ * as `<key>` (a JSON string, when the bytes are valid UTF-8) or as
16
+ * `<key>_b64` (standard base64 of the raw bytes, otherwise), and the
17
+ * decoder surfaces a `Buffer` either way. Both present is an
18
+ * `InternalError`; for a name, neither present is too. A list of names
19
+ * (`unknown_fields`, `unsupported_settings`, header names) holds `{name}`
20
+ * or `{name_b64}` objects, never a bare string. `value_b64` is a scalar
21
+ * String or FixedString value's raw bytes (rule 6), surfaced as `value`.
22
+ * 4. A vocabulary fact (`Transform.lossy`, `Value.isStored`, a verdict's
23
+ * `answered`) is read from the generated vocabulary table, never from a
24
+ * list kept here.
25
+ * 5. Unknown is never false and never empty: `framing.bomSkipped` and
26
+ * `framing.header` are `null` when the document says `null`.
27
+ */
28
+ import { type DefaultKind, type FilterOutcome, type Outcome, type Verdict } from './abi1/index.js';
29
+ /** The byte range of the input body a record occupies: `off` and `len`. */
30
+ export interface Span {
31
+ readonly off: number;
32
+ readonly len: number;
33
+ }
34
+ /** One column of a row result: ClickHouse's own rendering of one value, with its provenance. */
35
+ export interface Value {
36
+ /** The column's name, as raw bytes. */
37
+ readonly column: Buffer;
38
+ /** ClickHouse's rendering of the stored value, verbatim, as bytes. */
39
+ readonly text: Buffer;
40
+ /** Whether the stored value is NULL: the library decides it, poisoned cells included. */
41
+ readonly null: boolean;
42
+ /** Where the value came from: a `Source` value. */
43
+ readonly source: string;
44
+ /** Whether a value of this `source` is stored: the description's own fact for it. */
45
+ readonly isStored: boolean;
46
+ /** The raw bytes of a scalar String or FixedString value (rule 6), when the document carries them. */
47
+ readonly value: Buffer | undefined;
48
+ }
49
+ /** One cell of an engine row: ClickHouse's rendering of a stored value after the engine's insert-time merge. */
50
+ export interface EngineCell {
51
+ readonly column: Buffer;
52
+ readonly text: Buffer;
53
+ readonly null: boolean;
54
+ /** The raw bytes of a scalar String or FixedString value (rule 6), when the document carries them. */
55
+ readonly value: Buffer | undefined;
56
+ }
57
+ /** A silent change: what the input said, what is stored, and why. */
58
+ export interface Transform {
59
+ readonly column: Buffer;
60
+ readonly input: Buffer;
61
+ readonly stored: Buffer;
62
+ /** A `Reason` value. */
63
+ readonly reason: string;
64
+ /** Whether this reason loses information: the description's own fact for it. */
65
+ readonly lossy: boolean;
66
+ /** The row's index in the body; 0 in a single-row result. */
67
+ readonly row: number;
68
+ }
69
+ /** A column the library computed from a DEFAULT or MATERIALIZED expression. */
70
+ export interface Computed {
71
+ readonly column: Buffer;
72
+ readonly kind: string;
73
+ readonly text: Buffer;
74
+ /** The raw bytes of a scalar String or FixedString value (rule 6), when the document carries them. */
75
+ readonly value: Buffer | undefined;
76
+ }
77
+ export interface RowResult {
78
+ readonly outcome: Outcome;
79
+ readonly errCode: number;
80
+ readonly errMsg: Buffer;
81
+ /** Every entry of `cols`, in document order. */
82
+ readonly columns: readonly Value[];
83
+ /** The entries of `columns` whose source is stored, in order. */
84
+ readonly values: readonly Value[];
85
+ readonly transformed: readonly Transform[];
86
+ readonly unknownFields: readonly Buffer[];
87
+ readonly unsupportedSettings: readonly Buffer[];
88
+ readonly computed: readonly Computed[];
89
+ /** Present only with an attached filter. */
90
+ readonly verdict: Verdict | undefined;
91
+ readonly verdictCode: number;
92
+ readonly verdictErr: Buffer;
93
+ readonly partitionId: Buffer | undefined;
94
+ /** The bytes the reader consumed for this record. */
95
+ readonly inputSpan: Span | undefined;
96
+ }
97
+ export interface Header {
98
+ readonly consumed: boolean;
99
+ readonly lines: number;
100
+ readonly names: readonly Buffer[];
101
+ }
102
+ /** What the reader decided about the body's framing. `bomSkipped` and `header` are `null` where the reader does not expose the fact: unknown, never false and never empty. */
103
+ export interface Framing {
104
+ readonly bomSkipped: boolean | null;
105
+ /** `array`, `stream`, or `null` for none. */
106
+ readonly container: string | null;
107
+ readonly header: Header | null;
108
+ }
109
+ export interface BatchResult {
110
+ readonly outcome: Outcome;
111
+ readonly errCode: number;
112
+ readonly errMsg: Buffer;
113
+ readonly rows: readonly RowResult[];
114
+ readonly rowsRead: number;
115
+ readonly rowsSkipped: number;
116
+ /** Every transform in the batch, with its `row`, as the library lists them. */
117
+ readonly transformed: readonly Transform[];
118
+ /** Each stored row after the engine's insert-time merge, as a list of cells. */
119
+ readonly engineRows: readonly (readonly EngineCell[])[] | undefined;
120
+ /** The export buffer, present only when an export was asked for. */
121
+ readonly payload: Buffer | undefined;
122
+ /** Each exported row's place in `payload`. */
123
+ readonly spans: readonly Span[] | undefined;
124
+ /** Why an asked-for export was declined, as bytes (`export_declined` or `export_declined_b64`); empty when none was. */
125
+ readonly exportDeclined: Buffer;
126
+ readonly rowsPassed: number;
127
+ readonly rowsCut: number;
128
+ readonly partitionCount: number | undefined;
129
+ /** The byte ranges the reader's error recovery skipped. */
130
+ readonly unconsumed: readonly Span[];
131
+ readonly framing: Framing | undefined;
132
+ }
133
+ export interface FilterRowError {
134
+ readonly row: number;
135
+ readonly code: number;
136
+ readonly msg: Buffer;
137
+ }
138
+ export interface FilterResult {
139
+ readonly outcome: FilterOutcome;
140
+ readonly errCode: number;
141
+ readonly errMsg: Buffer;
142
+ readonly rowsRead: number;
143
+ readonly unsupportedSettings: readonly Buffer[];
144
+ /** One verdict per row, each read through the generated table. `error` and `decline` are never answers. */
145
+ readonly verdicts: readonly Verdict[];
146
+ readonly errors: readonly FilterRowError[];
147
+ }
148
+ export interface Column {
149
+ readonly name: Buffer;
150
+ /** The canonical type. */
151
+ readonly type: Buffer;
152
+ readonly defaultKind: DefaultKind;
153
+ readonly defaultExpr: Buffer;
154
+ }
155
+ export interface SchemaDescription {
156
+ readonly columns: readonly Column[];
157
+ }
158
+ export interface DiscoveredColumn {
159
+ readonly name: Buffer;
160
+ /** The column declaration as ClickHouse's own formatter writes it. */
161
+ readonly declaration: Buffer;
162
+ }
163
+ export interface Discovery {
164
+ readonly columns: readonly DiscoveredColumn[];
165
+ /** The declarations joined for a `CREATE TABLE`. */
166
+ readonly columnsSql: Buffer;
167
+ }
168
+ export interface ErrorCodeEntry {
169
+ readonly code: number;
170
+ readonly name: string;
171
+ }
172
+ /** This build's own error-code table: lookups are map reads over the library's own entries. An unknown code or name is absent, never synthesized; names match exactly. */
173
+ export declare class ErrorCodeTable implements Iterable<ErrorCodeEntry> {
174
+ #private;
175
+ constructor(entries: readonly ErrorCodeEntry[]);
176
+ name(code: number): string | undefined;
177
+ code(name: string): number | undefined;
178
+ all(): readonly ErrorCodeEntry[];
179
+ [Symbol.iterator](): Iterator<ErrorCodeEntry>;
180
+ }
181
+ /** Decode a `row` document. */
182
+ export declare function decodeRow(bytes: Uint8Array): RowResult;
183
+ /** Decode a `batch` document and the export buffer, when an export was asked for. */
184
+ export declare function decodeBatch(bytes: Uint8Array, payload: Buffer | undefined): BatchResult;
185
+ /** Decode a `filter_result` document. */
186
+ export declare function decodeFilterResult(bytes: Uint8Array): FilterResult;
187
+ /** Decode a `schema_description` document. */
188
+ export declare function decodeSchemaDescription(bytes: Uint8Array): SchemaDescription;
189
+ /** Decode a `discovery` document. */
190
+ export declare function decodeDiscovery(bytes: Uint8Array): Discovery;
191
+ /** Decode an `error_code_table` document: a JSON array of `{code, name}`. */
192
+ export declare function decodeErrorCodes(bytes: Uint8Array): ErrorCodeTable;
193
+ /** Decode a `live_handles` document: handle kind to live count. */
194
+ export declare function decodeLiveHandles(bytes: Uint8Array): Readonly<Record<string, number>>;
195
+ //# sourceMappingURL=documents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../src/documents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAEL,KAAK,WAAW,EAGhB,KAAK,aAAa,EAClB,KAAK,OAAO,EAIZ,KAAK,OAAO,EAEb,MAAM,iBAAiB,CAAC;AAOzB,2EAA2E;AAC3E,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,gGAAgG;AAChG,MAAM,WAAW,KAAK;IACpB,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,sGAAsG;IACtG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,gHAAgH;AAChH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,sGAAsG;IACtG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,qEAAqE;AACrE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wBAAwB;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,+EAA+E;AAC/E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sGAAsG;IACtG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,CAAC;IACnC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAC;IACvC,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,8KAA8K;AAC9K,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAC;IAC3C,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;IACpE,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,CAAC;IAC5C,wHAAwH;IACxH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,2GAA2G;IAC3G,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,0KAA0K;AAC1K,qBAAa,cAAe,YAAW,QAAQ,CAAC,cAAc,CAAC;;IAK7D,YAAY,OAAO,EAAE,SAAS,cAAc,EAAE,EAQ7C;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErC;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErC;IAED,GAAG,IAAI,SAAS,cAAc,EAAE,CAE/B;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,CAE5C;CACF;AA0MD,+BAA+B;AAC/B,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAEtD;AAyBD,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CA6BvF;AAID,yCAAyC;AACzC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CAwBlE;AAID,8CAA8C;AAC9C,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,iBAAiB,CAc5E;AAED,qCAAqC;AACrC,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAU5D;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CASlE;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAMrF"}
@@ -0,0 +1,389 @@
1
+ /**
2
+ * The result types and their decoders (`docs/reference/bindings-v1.md` §5).
3
+ *
4
+ * Every field below is a field of the document the library returned, or the
5
+ * bytes of an output buffer; nothing is computed here. The rules every
6
+ * decoder follows:
7
+ *
8
+ * 1. Stock JSON only: `JSON.parse`, after a scan that refuses a duplicate
9
+ * key (`./abi1/strictjson.ts`). A duplicate key, a document that is not
10
+ * JSON, or a value of the wrong JSON type is an `InternalError` naming the
11
+ * document and the key.
12
+ * 2. Absent is the default, and an unknown key is ignored.
13
+ * 3. Names, and every data-derived string (a rendering, a type, SQL, a
14
+ * message, a partition, a setting name), are BYTES. A document carries one
15
+ * as `<key>` (a JSON string, when the bytes are valid UTF-8) or as
16
+ * `<key>_b64` (standard base64 of the raw bytes, otherwise), and the
17
+ * decoder surfaces a `Buffer` either way. Both present is an
18
+ * `InternalError`; for a name, neither present is too. A list of names
19
+ * (`unknown_fields`, `unsupported_settings`, header names) holds `{name}`
20
+ * or `{name_b64}` objects, never a bare string. `value_b64` is a scalar
21
+ * String or FixedString value's raw bytes (rule 6), surfaced as `value`.
22
+ * 4. A vocabulary fact (`Transform.lossy`, `Value.isStored`, a verdict's
23
+ * `answered`) is read from the generated vocabulary table, never from a
24
+ * list kept here.
25
+ * 5. Unknown is never false and never empty: `framing.bomSkipped` and
26
+ * `framing.header` are `null` when the document says `null`.
27
+ */
28
+ import { batchOutcomeOf, defaultKindOf, filterOutcomeOf, outcomeOf, reasonLossy, sourceIsStored, verdictOf, } from './abi1/index.js';
29
+ import { internalError, parseStrictJson } from './abi1/index.js';
30
+ /** This build's own error-code table: lookups are map reads over the library's own entries. An unknown code or name is absent, never synthesized; names match exactly. */
31
+ export class ErrorCodeTable {
32
+ #entries;
33
+ #byCode;
34
+ #byName;
35
+ constructor(entries) {
36
+ this.#entries = entries;
37
+ this.#byCode = new Map();
38
+ this.#byName = new Map();
39
+ for (const e of entries) {
40
+ if (!this.#byCode.has(e.code))
41
+ this.#byCode.set(e.code, e.name);
42
+ if (!this.#byName.has(e.name))
43
+ this.#byName.set(e.name, e.code);
44
+ }
45
+ }
46
+ name(code) {
47
+ return this.#byCode.get(code);
48
+ }
49
+ code(name) {
50
+ return this.#byName.get(name);
51
+ }
52
+ all() {
53
+ return this.#entries;
54
+ }
55
+ [Symbol.iterator]() {
56
+ return this.#entries[Symbol.iterator]();
57
+ }
58
+ }
59
+ // ----------------------------------------------------------- field readers
60
+ const EMPTY = Buffer.alloc(0);
61
+ function kindOf(v) {
62
+ return v === null ? 'null' : Array.isArray(v) ? 'array' : typeof v;
63
+ }
64
+ function bad(doc, key, want, got) {
65
+ throw internalError(`the ${doc} document: ${key}: want ${want}, got ${kindOf(got)}`);
66
+ }
67
+ /** Parse one document: stock JSON after the duplicate-key scan; any failure is an `InternalError` naming the document. */
68
+ function parseDoc(doc, bytes) {
69
+ const text = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('utf8');
70
+ try {
71
+ return parseStrictJson(text);
72
+ }
73
+ catch (err) {
74
+ throw internalError(`the ${doc} document does not decode: ${err instanceof Error ? err.message : String(err)}`);
75
+ }
76
+ }
77
+ function asObject(doc, key, v) {
78
+ if (typeof v !== 'object' || v === null || Array.isArray(v))
79
+ bad(doc, key, 'an object', v);
80
+ return v;
81
+ }
82
+ function asArray(doc, key, v) {
83
+ if (!Array.isArray(v))
84
+ bad(doc, key, 'an array', v);
85
+ return v;
86
+ }
87
+ function listOf(doc, o, key) {
88
+ const v = o[key];
89
+ return v === undefined ? [] : asArray(doc, key, v);
90
+ }
91
+ function strOr(doc, o, key, dflt) {
92
+ const v = o[key];
93
+ if (v === undefined)
94
+ return dflt;
95
+ if (typeof v !== 'string')
96
+ bad(doc, key, 'a string', v);
97
+ return v;
98
+ }
99
+ function optStr(doc, o, key) {
100
+ const v = o[key];
101
+ if (v === undefined || v === null)
102
+ return undefined;
103
+ if (typeof v !== 'string')
104
+ bad(doc, key, 'a string', v);
105
+ return v;
106
+ }
107
+ function boolOr(doc, o, key, dflt) {
108
+ const v = o[key];
109
+ if (v === undefined)
110
+ return dflt;
111
+ if (typeof v !== 'boolean')
112
+ bad(doc, key, 'a boolean', v);
113
+ return v;
114
+ }
115
+ /** An integer: a JSON number, or a decimal string where the document spells a value beyond 2^53 that way. Beyond what a JS number holds exactly is an `InternalError`, never a rounded value. */
116
+ function intOf(doc, key, v) {
117
+ if (typeof v === 'number') {
118
+ if (!Number.isSafeInteger(v))
119
+ bad(doc, key, 'a safe integer', v);
120
+ return v;
121
+ }
122
+ if (typeof v === 'string' && /^-?[0-9]+$/.test(v)) {
123
+ const n = Number(v);
124
+ if (Number.isSafeInteger(n))
125
+ return n;
126
+ throw internalError(`the ${doc} document: ${key}: ${v} is beyond 2^53 and this binding's number type cannot hold it exactly`);
127
+ }
128
+ return bad(doc, key, 'an integer', v);
129
+ }
130
+ function intOr(doc, o, key, dflt) {
131
+ const v = o[key];
132
+ return v === undefined ? dflt : intOf(doc, key, v);
133
+ }
134
+ function optInt(doc, o, key) {
135
+ const v = o[key];
136
+ return v === undefined || v === null ? undefined : intOf(doc, key, v);
137
+ }
138
+ function decodeB64(doc, key, text) {
139
+ if (!/^[A-Za-z0-9+/]*={0,2}$/.test(text) || text.length % 4 !== 0)
140
+ bad(doc, key, 'standard base64', text);
141
+ return Buffer.from(text, 'base64');
142
+ }
143
+ /** A byte-string field: `<key>` as UTF-8 text or `<key>_b64` as base64, never both. Neither reads as `undefined`. */
144
+ function bytesField(doc, o, key) {
145
+ const plain = o[key];
146
+ const b64 = o[`${key}_b64`];
147
+ if (plain !== undefined && b64 !== undefined) {
148
+ throw internalError(`the ${doc} document: ${key} and ${key}_b64 are both present`);
149
+ }
150
+ if (plain !== undefined) {
151
+ if (typeof plain !== 'string')
152
+ bad(doc, key, 'a string', plain);
153
+ return Buffer.from(plain, 'utf8');
154
+ }
155
+ if (b64 !== undefined) {
156
+ if (typeof b64 !== 'string')
157
+ bad(doc, `${key}_b64`, 'a string', b64);
158
+ return decodeB64(doc, `${key}_b64`, b64);
159
+ }
160
+ return undefined;
161
+ }
162
+ function bytesOr(doc, o, key) {
163
+ return bytesField(doc, o, key) ?? EMPTY;
164
+ }
165
+ /** A name: exactly one of `<key>` and `<key>_b64`. */
166
+ function nameOf(doc, o, key) {
167
+ const b = bytesField(doc, o, key);
168
+ if (b === undefined)
169
+ throw internalError(`the ${doc} document: neither ${key} nor ${key}_b64 is present`);
170
+ return b;
171
+ }
172
+ /** A list of names: each element an object carrying exactly one of `name` and `name_b64`. A bare string is an `InternalError`. */
173
+ function bytesListOf(doc, o, key) {
174
+ return listOf(doc, o, key).map((e) => nameOf(doc, asObject(doc, `${key}[]`, e), 'name'));
175
+ }
176
+ /** One cell of an engine row. */
177
+ function engineCellOf(doc, v) {
178
+ const o = asObject(doc, 'engine_rows[][]', v);
179
+ const nullFlag = o.null;
180
+ if (typeof nullFlag !== 'boolean')
181
+ bad(doc, 'engine_rows[][].null', 'a boolean', nullFlag);
182
+ return { column: nameOf(doc, o, 'name'), text: bytesOr(doc, o, 'stored'), null: nullFlag, value: bytesField(doc, o, 'value') };
183
+ }
184
+ function spanOf(doc, key, v) {
185
+ const o = asObject(doc, key, v);
186
+ return { off: intOf(doc, `${key}.off`, o.off), len: intOf(doc, `${key}.len`, o.len) };
187
+ }
188
+ // ------------------------------------------------------------- the row
189
+ function decodeValue(doc, v) {
190
+ const o = asObject(doc, 'cols[]', v);
191
+ const source = strOr(doc, o, 'src', '');
192
+ const isStored = sourceIsStored(source);
193
+ if (isStored === undefined)
194
+ throw internalError(`the ${doc} document: cols[].src: ${JSON.stringify(source)} is not a value of the source vocabulary`);
195
+ const nullFlag = o.null;
196
+ if (typeof nullFlag !== 'boolean')
197
+ bad(doc, 'cols[].null', 'a boolean', nullFlag);
198
+ return {
199
+ column: nameOf(doc, o, 'name'),
200
+ text: bytesOr(doc, o, 'stored'),
201
+ null: nullFlag,
202
+ source,
203
+ isStored,
204
+ value: bytesField(doc, o, 'value'),
205
+ };
206
+ }
207
+ function transformOf(doc, v) {
208
+ const o = asObject(doc, 'transformed[]', v);
209
+ const reason = strOr(doc, o, 'reason', '');
210
+ const lossy = reasonLossy(reason);
211
+ if (lossy === undefined)
212
+ throw internalError(`the ${doc} document: transformed[].reason: ${JSON.stringify(reason)} has no lossy fact`);
213
+ return {
214
+ column: nameOf(doc, o, 'column'),
215
+ input: bytesOr(doc, o, 'input'),
216
+ stored: bytesOr(doc, o, 'stored'),
217
+ reason,
218
+ lossy,
219
+ row: intOr(doc, o, 'row', 0),
220
+ };
221
+ }
222
+ function computedOf(doc, v) {
223
+ const o = asObject(doc, 'computed[]', v);
224
+ return { column: nameOf(doc, o, 'name'), kind: strOr(doc, o, 'kind', ''), text: bytesOr(doc, o, 'stored'), value: bytesField(doc, o, 'value') };
225
+ }
226
+ function rowOf(doc, o) {
227
+ const rawOutcome = strOr(doc, o, 'outcome', '');
228
+ const outcome = outcomeOf(rawOutcome);
229
+ if (outcome === undefined)
230
+ throw internalError(`the ${doc} document: outcome: ${JSON.stringify(rawOutcome)} is not an outcome`);
231
+ const columns = listOf(doc, o, 'cols').map((c) => decodeValue(doc, c));
232
+ const verdictRaw = optStr(doc, o, 'verdict');
233
+ const verdict = verdictRaw === undefined ? undefined : verdictOf(verdictRaw);
234
+ const spanRaw = o.input_span;
235
+ const partitionId = bytesField(doc, o, 'partition_id');
236
+ return {
237
+ outcome,
238
+ errCode: intOr(doc, o, 'code', 0),
239
+ errMsg: bytesOr(doc, o, 'err'),
240
+ columns,
241
+ values: columns.filter((c) => c.isStored),
242
+ transformed: listOf(doc, o, 'transformed').map((t) => transformOf(doc, t)),
243
+ unknownFields: bytesListOf(doc, o, 'unknown_fields'),
244
+ unsupportedSettings: bytesListOf(doc, o, 'unsupported_settings'),
245
+ computed: listOf(doc, o, 'computed').map((c) => computedOf(doc, c)),
246
+ verdict,
247
+ verdictCode: intOr(doc, o, 'verdict_code', 0),
248
+ verdictErr: bytesOr(doc, o, 'verdict_err'),
249
+ partitionId,
250
+ inputSpan: spanRaw === undefined ? undefined : spanOf(doc, 'input_span', spanRaw),
251
+ };
252
+ }
253
+ /** Decode a `row` document. */
254
+ export function decodeRow(bytes) {
255
+ return rowOf('row', asObject('row', '$', parseDoc('row', bytes)));
256
+ }
257
+ // ----------------------------------------------------------- the batch
258
+ function headerOf(doc, v) {
259
+ if (v === null)
260
+ return null;
261
+ const o = asObject(doc, 'framing.header', v);
262
+ return { consumed: boolOr(doc, o, 'consumed', false), lines: intOr(doc, o, 'lines', 0), names: bytesListOf(doc, o, 'names') };
263
+ }
264
+ function framingOf(doc, v) {
265
+ const o = asObject(doc, 'framing', v);
266
+ const bom = o.bom_skipped;
267
+ if (bom !== undefined && bom !== null && typeof bom !== 'boolean')
268
+ bad(doc, 'framing.bom_skipped', 'a boolean or null', bom);
269
+ const container = o.container;
270
+ if (container !== undefined && container !== null && typeof container !== 'string') {
271
+ bad(doc, 'framing.container', 'a string or null', container);
272
+ }
273
+ return {
274
+ bomSkipped: bom ?? null,
275
+ container: container ?? null,
276
+ header: o.header === undefined ? null : headerOf(doc, o.header),
277
+ };
278
+ }
279
+ /** Decode a `batch` document and the export buffer, when an export was asked for. */
280
+ export function decodeBatch(bytes, payload) {
281
+ const doc = 'batch';
282
+ const o = asObject(doc, '$', parseDoc(doc, bytes));
283
+ const rawOutcome = strOr(doc, o, 'outcome', '');
284
+ const outcome = batchOutcomeOf(rawOutcome);
285
+ if (outcome === undefined)
286
+ throw internalError(`the ${doc} document: outcome: ${JSON.stringify(rawOutcome)} is not an outcome`);
287
+ const spansRaw = o.row_spans;
288
+ const engineRaw = o.engine_rows;
289
+ return {
290
+ outcome,
291
+ errCode: intOr(doc, o, 'code', 0),
292
+ errMsg: bytesOr(doc, o, 'err'),
293
+ rows: listOf(doc, o, 'rows').map((r) => rowOf(doc, asObject(doc, 'rows[]', r))),
294
+ rowsRead: intOr(doc, o, 'rows_read', 0),
295
+ rowsSkipped: intOr(doc, o, 'rows_skipped', 0),
296
+ transformed: listOf(doc, o, 'transformed').map((t) => transformOf(doc, t)),
297
+ engineRows: engineRaw === undefined
298
+ ? undefined
299
+ : asArray(doc, 'engine_rows', engineRaw).map((row) => asArray(doc, 'engine_rows[]', row).map((c) => engineCellOf(doc, c))),
300
+ payload,
301
+ spans: spansRaw === undefined ? undefined : asArray(doc, 'row_spans', spansRaw).map((s) => spanOf(doc, 'row_spans[]', s)),
302
+ exportDeclined: bytesOr(doc, o, 'export_declined'),
303
+ rowsPassed: intOr(doc, o, 'rows_passed', 0),
304
+ rowsCut: intOr(doc, o, 'rows_cut', 0),
305
+ partitionCount: optInt(doc, o, 'partition_count'),
306
+ unconsumed: listOf(doc, o, 'unconsumed').map((s) => spanOf(doc, 'unconsumed[]', s)),
307
+ framing: o.framing === undefined ? undefined : framingOf(doc, o.framing),
308
+ };
309
+ }
310
+ // ----------------------------------------------------------- the filter
311
+ /** Decode a `filter_result` document. */
312
+ export function decodeFilterResult(bytes) {
313
+ const doc = 'filter_result';
314
+ const o = asObject(doc, '$', parseDoc(doc, bytes));
315
+ const rawOutcome = strOr(doc, o, 'outcome', '');
316
+ const outcome = filterOutcomeOf(rawOutcome);
317
+ if (outcome === undefined)
318
+ throw internalError(`the ${doc} document: outcome: ${JSON.stringify(rawOutcome)} is not an outcome`);
319
+ const verdicts = [];
320
+ for (const ch of strOr(doc, o, 'verdicts', '')) {
321
+ const v = verdictOf(ch);
322
+ if (v === undefined)
323
+ throw internalError(`the ${doc} document: verdicts: ${JSON.stringify(ch)} is not a verdict`);
324
+ verdicts.push(v);
325
+ }
326
+ return {
327
+ outcome,
328
+ errCode: intOr(doc, o, 'code', 0),
329
+ errMsg: bytesOr(doc, o, 'err'),
330
+ rowsRead: intOr(doc, o, 'rows_read', 0),
331
+ unsupportedSettings: bytesListOf(doc, o, 'unsupported_settings'),
332
+ verdicts,
333
+ errors: listOf(doc, o, 'errors').map((e) => {
334
+ const eo = asObject(doc, 'errors[]', e);
335
+ return { row: intOr(doc, eo, 'row', 0), code: intOr(doc, eo, 'code', 0), msg: bytesOr(doc, eo, 'err') };
336
+ }),
337
+ };
338
+ }
339
+ // --------------------------------------------- schema, discovery, tables
340
+ /** Decode a `schema_description` document. */
341
+ export function decodeSchemaDescription(bytes) {
342
+ const doc = 'schema_description';
343
+ const o = asObject(doc, '$', parseDoc(doc, bytes));
344
+ return {
345
+ columns: listOf(doc, o, 'columns').map((c) => {
346
+ const co = asObject(doc, 'columns[]', c);
347
+ const kindRaw = strOr(doc, co, 'default_kind', '');
348
+ const defaultKind = defaultKindOf(kindRaw);
349
+ if (defaultKind === undefined) {
350
+ throw internalError(`the ${doc} document: columns[].default_kind: ${JSON.stringify(kindRaw)} is not a default kind`);
351
+ }
352
+ return { name: nameOf(doc, co, 'name'), type: bytesOr(doc, co, 'type'), defaultKind, defaultExpr: bytesOr(doc, co, 'default_expression') };
353
+ }),
354
+ };
355
+ }
356
+ /** Decode a `discovery` document. */
357
+ export function decodeDiscovery(bytes) {
358
+ const doc = 'discovery';
359
+ const o = asObject(doc, '$', parseDoc(doc, bytes));
360
+ return {
361
+ columns: listOf(doc, o, 'columns').map((c) => {
362
+ const co = asObject(doc, 'columns[]', c);
363
+ return { name: nameOf(doc, co, 'name'), declaration: bytesOr(doc, co, 'declaration') };
364
+ }),
365
+ columnsSql: bytesOr(doc, o, 'columns_sql'),
366
+ };
367
+ }
368
+ /** Decode an `error_code_table` document: a JSON array of `{code, name}`. */
369
+ export function decodeErrorCodes(bytes) {
370
+ const doc = 'error_code_table';
371
+ const entries = asArray(doc, '$', parseDoc(doc, bytes)).map((e) => {
372
+ const eo = asObject(doc, '[]', e);
373
+ const name = eo.name;
374
+ if (typeof name !== 'string')
375
+ bad(doc, '[].name', 'a string', name);
376
+ return { code: intOf(doc, '[].code', eo.code), name };
377
+ });
378
+ return new ErrorCodeTable(entries);
379
+ }
380
+ /** Decode a `live_handles` document: handle kind to live count. */
381
+ export function decodeLiveHandles(bytes) {
382
+ const doc = 'live_handles';
383
+ const o = asObject(doc, '$', parseDoc(doc, bytes));
384
+ const out = {};
385
+ for (const [k, v] of Object.entries(o))
386
+ out[k] = intOf(doc, k, v);
387
+ return out;
388
+ }
389
+ //# sourceMappingURL=documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../src/documents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACL,cAAc,EAEd,aAAa,EACb,eAAe,EAGf,SAAS,EACT,WAAW,EACX,cAAc,EAEd,SAAS,GACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAqKjE,0KAA0K;AAC1K,MAAM,OAAO,cAAc;IAChB,QAAQ,CAA4B;IACpC,OAAO,CAAsB;IAC7B,OAAO,CAAsB;IAEtC,YAAY,OAAkC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1C,CAAC;CACF;AAED,4EAA4E;AAE5E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE9B,SAAS,MAAM,CAAC,CAAU;IACxB,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,IAAY,EAAE,GAAY;IAC/D,MAAM,aAAa,CAAC,OAAO,GAAG,cAAc,GAAG,UAAU,IAAI,SAAS,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,0HAA0H;AAC1H,SAAS,QAAQ,CAAC,GAAW,EAAE,KAAiB;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5F,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,aAAa,CAAC,OAAO,GAAG,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClH,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW,EAAE,CAAU;IACpD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAQ,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,GAAW,EAAE,CAAU;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,CAAM,EAAE,GAAW;IAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,CAAM,EAAE,GAAW,EAAE,IAAY;IAC3D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,CAAM,EAAE,GAAW;IAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpD,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,CAAM,EAAE,GAAW,EAAE,IAAa;IAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,iMAAiM;AACjM,SAAS,KAAK,CAAC,GAAW,EAAE,GAAW,EAAE,CAAU;IACjD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACtC,MAAM,aAAa,CAAC,OAAO,GAAG,cAAc,GAAG,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAChI,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,CAAM,EAAE,GAAW,EAAE,IAAY;IAC3D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,CAAM,EAAE,GAAW;IAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,GAAW,EAAE,IAAY;IACvD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC1G,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,qHAAqH;AACrH,SAAS,UAAU,CAAC,GAAW,EAAE,CAAM,EAAE,GAAW;IAClD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACrB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,aAAa,CAAC,OAAO,GAAG,cAAc,GAAG,QAAQ,GAAG,uBAAuB,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QACrE,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,CAAM,EAAE,GAAW;IAC/C,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC;AAC1C,CAAC;AAED,sDAAsD;AACtD,SAAS,MAAM,CAAC,GAAW,EAAE,CAAM,EAAE,GAAW;IAC9C,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,SAAS;QAAE,MAAM,aAAa,CAAC,OAAO,GAAG,sBAAsB,GAAG,QAAQ,GAAG,iBAAiB,CAAC,CAAC;IAC1G,OAAO,CAAC,CAAC;AACX,CAAC;AAED,kIAAkI;AAClI,SAAS,WAAW,CAAC,GAAW,EAAE,CAAM,EAAE,GAAW;IACnD,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,iCAAiC;AACjC,SAAS,YAAY,CAAC,GAAW,EAAE,CAAU;IAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC;IACxB,IAAI,OAAO,QAAQ,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,EAAE,sBAAsB,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;AACjI,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,GAAW,EAAE,CAAU;IAClD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAChC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,wEAAwE;AAExE,SAAS,WAAW,CAAC,GAAW,EAAE,CAAU;IAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,aAAa,CAAC,OAAO,GAAG,0BAA0B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC;IACtJ,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC;IACxB,IAAI,OAAO,QAAQ,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClF,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC;QAC9B,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC;QAC/B,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,QAAQ;QACR,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,CAAU;IAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,aAAa,CAAC,OAAO,GAAG,oCAAoC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACvI,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC;QAC/B,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC;QACjC,MAAM;QACN,KAAK;QACL,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,CAAU;IACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;AAClJ,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,CAAM;IAChC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,aAAa,CAAC,OAAO,GAAG,uBAAuB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAChI,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC;IAC7B,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IACvD,OAAO;QACL,OAAO;QACP,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;QAC9B,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1E,aAAa,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,gBAAgB,CAAC;QACpD,mBAAmB,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,sBAAsB,CAAC;QAChE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO;QACP,WAAW,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;QAC7C,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC;QAC1C,WAAW;QACX,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC;KAClF,CAAC;AACJ,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,SAAS,CAAC,KAAiB;IACzC,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,wEAAwE;AAExE,SAAS,QAAQ,CAAC,GAAW,EAAE,CAAU;IACvC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;AAChI,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,CAAU;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC;IAC1B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC7H,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IAC9B,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnF,GAAG,CAAC,GAAG,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO;QACL,UAAU,EAAE,GAAG,IAAI,IAAI;QACvB,SAAS,EAAE,SAAS,IAAI,IAAI;QAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,WAAW,CAAC,KAAiB,EAAE,OAA2B;IACxE,MAAM,GAAG,GAAG,OAAO,CAAC;IACpB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,aAAa,CAAC,OAAO,GAAG,uBAAuB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAChI,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC;IAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC;IAChC,OAAO;QACL,OAAO;QACP,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/E,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QACvC,WAAW,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;QAC7C,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1E,UAAU,EACR,SAAS,KAAK,SAAS;YACrB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9H,OAAO;QACP,KAAK,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QACzH,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,iBAAiB,CAAC;QAClD,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACrC,cAAc,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,iBAAiB,CAAC;QACjD,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACnF,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,yEAAyE;AAEzE,yCAAyC;AACzC,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IAClD,MAAM,GAAG,GAAG,eAAe,CAAC;IAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,aAAa,CAAC,OAAO,GAAG,uBAAuB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAChI,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,SAAS;YAAE,MAAM,aAAa,CAAC,OAAO,GAAG,wBAAwB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;QAClH,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,OAAO;QACL,OAAO;QACP,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;QAC9B,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QACvC,mBAAmB,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,sBAAsB,CAAC;QAChE,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YACxC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;QAC1G,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,0EAA0E;AAE1E,8CAA8C;AAC9C,MAAM,UAAU,uBAAuB,CAAC,KAAiB;IACvD,MAAM,GAAG,GAAG,oBAAoB,CAAC;IACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3C,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,aAAa,CAAC,OAAO,GAAG,sCAAsC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;YACvH,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC7I,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,MAAM,GAAG,GAAG,WAAW,CAAC;IACxB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3C,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YACzC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC;QACzF,CAAC,CAAC;QACF,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,KAAiB;IAChD,MAAM,GAAG,GAAG,kBAAkB,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChE,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;QACrB,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACpE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,iBAAiB,CAAC,KAAiB;IACjD,MAAM,GAAG,GAAG,cAAc,CAAC;IAC3B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,OAAO,GAAG,CAAC;AACb,CAAC"}
package/dist/env.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The fetch layer's environment (`docs/guides/fetch-v1.md` §2 and §4): the
3
+ * variables that configure a fetch without code. `CHTYPES_ARTIFACTS_URL` and
4
+ * `CHTYPES_CACHE` are read by the fetch layer itself; the rest are read here,
5
+ * once, and an option the caller passed always wins over its variable.
6
+ *
7
+ * CHTYPES_DOWNLOAD_TOKEN `token`
8
+ * CHTYPES_TRUSTED_KEYS `trustedKeys`: comma-separated raw ed25519 keys, 64 hex characters each; REPLACES the default list
9
+ * CHTYPES_ALLOW_UNSIGNED `allowUnsigned`: `1`, `true`, `yes` or `on`
10
+ * CHTYPES_TARGET `platform`: one of the three platform keys
11
+ * CHTYPES_REGISTRY retired: one warning, otherwise ignored
12
+ */
13
+ import { type FetchV1Options } from './ocifetch/index.js';
14
+ /** Fills each option the caller left unset from its environment variable. Pure over `process.env`, except the one retired-variable warning. */
15
+ export declare function withEnvironment<T extends FetchV1Options>(options: T): T;
16
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,EAAE,KAAK,cAAc,EAAiD,MAAM,qBAAqB,CAAC;AAUzG,+IAA+I;AAC/I,wBAAgB,eAAe,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CA+BvE"}