@cardananium/cquisitor-lib 0.1.0-beta.52 → 0.1.0-beta.53

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.
@@ -171,6 +171,30 @@ export function validate_cbor_against_cddl(
171
171
  rule_name: string
172
172
  ): CborValidationResult;
173
173
 
174
+ /**
175
+ * **CDDL spans carry both byte and char offsets.** `offset`/`length`
176
+ * count UTF-8 bytes (what `pest` reports); `char_offset`/`char_length`
177
+ * count UTF-16 code units — the unit JS strings, `string.slice`,
178
+ * editor APIs, and the LSP protocol use. For ASCII-only sources the
179
+ * two pairs are identical.
180
+ *
181
+ * **CBOR spans are byte offsets only** — into the decoded CBOR buffer.
182
+ * If you have a hex string, multiply by 2 to slice the hex view:
183
+ * `hex.slice(off*2, (off+len)*2)`.
184
+ */
185
+ export interface SourceSpan {
186
+ /** UTF-8 byte offset in the source. */
187
+ offset: number;
188
+ /** UTF-8 byte length. */
189
+ length: number;
190
+ /** UTF-16 code unit offset (= `string.slice`-friendly). */
191
+ char_offset: number;
192
+ /** UTF-16 code unit length. */
193
+ char_length: number;
194
+ /** 1-indexed line. */
195
+ line: number;
196
+ }
197
+
174
198
  /** Outline entry — one rule from `cddl_outline`. */
175
199
  export interface CddlOutlineEntry {
176
200
  /** Rule name (`transaction_body`, `set`, …). */
@@ -178,9 +202,9 @@ export interface CddlOutlineEntry {
178
202
  /** `"type"` for `=`, `"group"` for `( … )`. */
179
203
  kind: "type" | "group";
180
204
  /** Byte range covering the whole `name = …` rule definition. */
181
- span: { offset: number; length: number; line: number };
205
+ span: SourceSpan;
182
206
  /** Byte range of just the rule's name identifier. */
183
- name_span: { offset: number; length: number; line: number };
207
+ name_span: SourceSpan;
184
208
  }
185
209
 
186
210
  /** Result of `cddl_symbol_at`. `null` when the cursor isn't on an identifier. */
@@ -190,15 +214,15 @@ export type CddlSymbolAtResult =
190
214
  name: string;
191
215
  kind: "type" | "group" | "rule_reference" | "prelude_or_unknown";
192
216
  role: "definition" | "use";
193
- span: { offset: number; length: number; line: number };
194
- definition_span: { offset: number; length: number; line: number } | null;
195
- rule_span: { offset: number; length: number; line: number } | null;
217
+ span: SourceSpan;
218
+ definition_span: SourceSpan | null;
219
+ rule_span: SourceSpan | null;
196
220
  };
197
221
 
198
222
  /** Result of `cddl_references`. */
199
223
  export interface CddlReferencesResult {
200
- definition: { offset: number; length: number; line: number } | null;
201
- uses: { offset: number; length: number; line: number }[];
224
+ definition: SourceSpan | null;
225
+ uses: SourceSpan[];
202
226
  }
203
227
 
204
228
  /**
@@ -245,12 +269,19 @@ export interface CborCddlMapEntry {
245
269
  * except 0 / 2 / 3) the inner gets an extra `["@value"]` segment
246
270
  * to match the `{@tag, @value}` wrapper the decoder emits. */
247
271
  decoded_path: string;
272
+ /** Whether this entry describes the value at `cbor_path`, or the
273
+ * *key* of a map entry at that path. Map entries with named keys
274
+ * produce both a `"key"` entry (CBOR span = key bytes, CDDL span
275
+ * = `name:` / `<value>:` declaration) and a `"value"` entry; both
276
+ * carry the same `cbor_path` / `decoded_path`. Array slots, tag
277
+ * payloads, and root nodes are always `"value"`. */
278
+ entry_role: "key" | "value";
248
279
  /** Header byte range of the CBOR node. */
249
280
  cbor_byte_span: { offset: number; length: number };
250
281
  /** Whole-structure byte range (= `cbor_byte_span` for scalars). */
251
282
  cbor_anchor_span: { offset: number; length: number };
252
283
  /** Byte range in the CDDL source describing this position. */
253
- cddl_byte_span: { offset: number; length: number; line: number };
284
+ cddl_byte_span: SourceSpan;
254
285
  /** Name of the CDDL rule that matched, if a rule boundary was crossed. */
255
286
  rule_name?: string;
256
287
  /** CBOR node's wire type (`U8`, `Bytes`, `Map`, `Array`, `Tag`, …). */
@@ -519,7 +550,7 @@ export interface CddlErrorInfo {
519
550
  * Byte range in the CDDL source the parser tripped over, when the
520
551
  * error has positional info. Useful for IDE squiggly underlines.
521
552
  */
522
- byte_span?: { offset: number; length: number; line: number };
553
+ byte_span?: SourceSpan;
523
554
  }
524
555
 
525
556
  export type CborValidationResult =
@@ -553,7 +584,7 @@ export interface CborValidationErrorInfo {
553
584
  * the AST in parallel with `path`). Useful for highlighting the
554
585
  * offending CDDL rule in editors.
555
586
  */
556
- cddl_byte_span?: { offset: number; length: number; line: number };
587
+ cddl_byte_span?: SourceSpan;
557
588
  /** Other validation errors reported in the same run. */
558
589
  additional?: CborValidationErrorInfo[];
559
590
  }
Binary file
@@ -4,7 +4,15 @@ export const memory: WebAssembly.Memory;
4
4
  export const decode_specific_type: (a: number, b: number, c: number, d: number, e: any) => [number, number, number];
5
5
  export const get_decodable_types: () => [number, number];
6
6
  export const get_possible_types_for_input: (a: number, b: number) => [number, number];
7
+ export const check_block_or_tx_signatures: (a: number, b: number) => [number, number, number];
8
+ export const get_necessary_data_list_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
9
+ export const validate_transaction_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
7
10
  export const extract_hashes_from_transaction_js: (a: number, b: number) => [number, number, number, number];
11
+ export const decode_plutus_program_pretty_uplc: (a: number, b: number) => [number, number, number, number];
12
+ export const decode_plutus_program_uplc_json: (a: number, b: number) => [number, number, number];
13
+ export const execute_tx_scripts: (a: number, b: number, c: any, d: any) => [number, number, number];
14
+ export const get_ref_script_bytes: (a: number, b: number, c: number) => [number, number, number, number];
15
+ export const get_utxo_list_from_tx: (a: number, b: number) => [number, number, number, number];
8
16
  export const cbor_to_json: (a: number, b: number) => [number, number, number];
9
17
  export const cddl_format: (a: number, b: number) => [number, number, number, number];
10
18
  export const cddl_outline: (a: number, b: number) => [number, number, number];
@@ -14,14 +22,6 @@ export const decode_cbor_against_cddl: (a: number, b: number, c: number, d: numb
14
22
  export const map_cbor_to_cddl: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
15
23
  export const validate_cbor_against_cddl: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
16
24
  export const validate_cddl: (a: number, b: number) => [number, number, number];
17
- export const decode_plutus_program_pretty_uplc: (a: number, b: number) => [number, number, number, number];
18
- export const decode_plutus_program_uplc_json: (a: number, b: number) => [number, number, number];
19
- export const execute_tx_scripts: (a: number, b: number, c: any, d: any) => [number, number, number];
20
- export const get_ref_script_bytes: (a: number, b: number, c: number) => [number, number, number, number];
21
- export const get_utxo_list_from_tx: (a: number, b: number) => [number, number, number, number];
22
- export const check_block_or_tx_signatures: (a: number, b: number) => [number, number, number];
23
- export const get_necessary_data_list_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
24
- export const validate_transaction_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
25
25
  export const validate_cbor_from_slice: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
26
26
  export const validate_json_from_str: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
27
27
  export const cddl_from_str: (a: number, b: number) => [number, number, number];
@@ -171,6 +171,30 @@ export function validate_cbor_against_cddl(
171
171
  rule_name: string
172
172
  ): CborValidationResult;
173
173
 
174
+ /**
175
+ * **CDDL spans carry both byte and char offsets.** `offset`/`length`
176
+ * count UTF-8 bytes (what `pest` reports); `char_offset`/`char_length`
177
+ * count UTF-16 code units — the unit JS strings, `string.slice`,
178
+ * editor APIs, and the LSP protocol use. For ASCII-only sources the
179
+ * two pairs are identical.
180
+ *
181
+ * **CBOR spans are byte offsets only** — into the decoded CBOR buffer.
182
+ * If you have a hex string, multiply by 2 to slice the hex view:
183
+ * `hex.slice(off*2, (off+len)*2)`.
184
+ */
185
+ export interface SourceSpan {
186
+ /** UTF-8 byte offset in the source. */
187
+ offset: number;
188
+ /** UTF-8 byte length. */
189
+ length: number;
190
+ /** UTF-16 code unit offset (= `string.slice`-friendly). */
191
+ char_offset: number;
192
+ /** UTF-16 code unit length. */
193
+ char_length: number;
194
+ /** 1-indexed line. */
195
+ line: number;
196
+ }
197
+
174
198
  /** Outline entry — one rule from `cddl_outline`. */
175
199
  export interface CddlOutlineEntry {
176
200
  /** Rule name (`transaction_body`, `set`, …). */
@@ -178,9 +202,9 @@ export interface CddlOutlineEntry {
178
202
  /** `"type"` for `=`, `"group"` for `( … )`. */
179
203
  kind: "type" | "group";
180
204
  /** Byte range covering the whole `name = …` rule definition. */
181
- span: { offset: number; length: number; line: number };
205
+ span: SourceSpan;
182
206
  /** Byte range of just the rule's name identifier. */
183
- name_span: { offset: number; length: number; line: number };
207
+ name_span: SourceSpan;
184
208
  }
185
209
 
186
210
  /** Result of `cddl_symbol_at`. `null` when the cursor isn't on an identifier. */
@@ -190,15 +214,15 @@ export type CddlSymbolAtResult =
190
214
  name: string;
191
215
  kind: "type" | "group" | "rule_reference" | "prelude_or_unknown";
192
216
  role: "definition" | "use";
193
- span: { offset: number; length: number; line: number };
194
- definition_span: { offset: number; length: number; line: number } | null;
195
- rule_span: { offset: number; length: number; line: number } | null;
217
+ span: SourceSpan;
218
+ definition_span: SourceSpan | null;
219
+ rule_span: SourceSpan | null;
196
220
  };
197
221
 
198
222
  /** Result of `cddl_references`. */
199
223
  export interface CddlReferencesResult {
200
- definition: { offset: number; length: number; line: number } | null;
201
- uses: { offset: number; length: number; line: number }[];
224
+ definition: SourceSpan | null;
225
+ uses: SourceSpan[];
202
226
  }
203
227
 
204
228
  /**
@@ -245,12 +269,19 @@ export interface CborCddlMapEntry {
245
269
  * except 0 / 2 / 3) the inner gets an extra `["@value"]` segment
246
270
  * to match the `{@tag, @value}` wrapper the decoder emits. */
247
271
  decoded_path: string;
272
+ /** Whether this entry describes the value at `cbor_path`, or the
273
+ * *key* of a map entry at that path. Map entries with named keys
274
+ * produce both a `"key"` entry (CBOR span = key bytes, CDDL span
275
+ * = `name:` / `<value>:` declaration) and a `"value"` entry; both
276
+ * carry the same `cbor_path` / `decoded_path`. Array slots, tag
277
+ * payloads, and root nodes are always `"value"`. */
278
+ entry_role: "key" | "value";
248
279
  /** Header byte range of the CBOR node. */
249
280
  cbor_byte_span: { offset: number; length: number };
250
281
  /** Whole-structure byte range (= `cbor_byte_span` for scalars). */
251
282
  cbor_anchor_span: { offset: number; length: number };
252
283
  /** Byte range in the CDDL source describing this position. */
253
- cddl_byte_span: { offset: number; length: number; line: number };
284
+ cddl_byte_span: SourceSpan;
254
285
  /** Name of the CDDL rule that matched, if a rule boundary was crossed. */
255
286
  rule_name?: string;
256
287
  /** CBOR node's wire type (`U8`, `Bytes`, `Map`, `Array`, `Tag`, …). */
@@ -519,7 +550,7 @@ export interface CddlErrorInfo {
519
550
  * Byte range in the CDDL source the parser tripped over, when the
520
551
  * error has positional info. Useful for IDE squiggly underlines.
521
552
  */
522
- byte_span?: { offset: number; length: number; line: number };
553
+ byte_span?: SourceSpan;
523
554
  }
524
555
 
525
556
  export type CborValidationResult =
@@ -553,7 +584,7 @@ export interface CborValidationErrorInfo {
553
584
  * the AST in parallel with `path`). Useful for highlighting the
554
585
  * offending CDDL rule in editors.
555
586
  */
556
- cddl_byte_span?: { offset: number; length: number; line: number };
587
+ cddl_byte_span?: SourceSpan;
557
588
  /** Other validation errors reported in the same run. */
558
589
  additional?: CborValidationErrorInfo[];
559
590
  }
Binary file
@@ -4,7 +4,15 @@ export const memory: WebAssembly.Memory;
4
4
  export const decode_specific_type: (a: number, b: number, c: number, d: number, e: any) => [number, number, number];
5
5
  export const get_decodable_types: () => [number, number];
6
6
  export const get_possible_types_for_input: (a: number, b: number) => [number, number];
7
+ export const check_block_or_tx_signatures: (a: number, b: number) => [number, number, number];
8
+ export const get_necessary_data_list_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
9
+ export const validate_transaction_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
7
10
  export const extract_hashes_from_transaction_js: (a: number, b: number) => [number, number, number, number];
11
+ export const decode_plutus_program_pretty_uplc: (a: number, b: number) => [number, number, number, number];
12
+ export const decode_plutus_program_uplc_json: (a: number, b: number) => [number, number, number];
13
+ export const execute_tx_scripts: (a: number, b: number, c: any, d: any) => [number, number, number];
14
+ export const get_ref_script_bytes: (a: number, b: number, c: number) => [number, number, number, number];
15
+ export const get_utxo_list_from_tx: (a: number, b: number) => [number, number, number, number];
8
16
  export const cbor_to_json: (a: number, b: number) => [number, number, number];
9
17
  export const cddl_format: (a: number, b: number) => [number, number, number, number];
10
18
  export const cddl_outline: (a: number, b: number) => [number, number, number];
@@ -14,14 +22,6 @@ export const decode_cbor_against_cddl: (a: number, b: number, c: number, d: numb
14
22
  export const map_cbor_to_cddl: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
15
23
  export const validate_cbor_against_cddl: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
16
24
  export const validate_cddl: (a: number, b: number) => [number, number, number];
17
- export const decode_plutus_program_pretty_uplc: (a: number, b: number) => [number, number, number, number];
18
- export const decode_plutus_program_uplc_json: (a: number, b: number) => [number, number, number];
19
- export const execute_tx_scripts: (a: number, b: number, c: any, d: any) => [number, number, number];
20
- export const get_ref_script_bytes: (a: number, b: number, c: number) => [number, number, number, number];
21
- export const get_utxo_list_from_tx: (a: number, b: number) => [number, number, number, number];
22
- export const check_block_or_tx_signatures: (a: number, b: number) => [number, number, number];
23
- export const get_necessary_data_list_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
24
- export const validate_transaction_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
25
25
  export const validate_cbor_from_slice: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
26
26
  export const validate_json_from_str: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
27
27
  export const cddl_from_str: (a: number, b: number) => [number, number, number];
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "Evgenii Lisitskii <evgeniilisitskii@gmail.com>"
5
5
  ],
6
6
  "description": "Cardano transaction validation library",
7
- "version": "0.1.0-beta.52",
7
+ "version": "0.1.0-beta.53",
8
8
  "license": "Apache-2.0",
9
9
  "files": [
10
10
  "node/cquisitor_lib_bg.wasm",