attenu-guard 0.1.0 → 0.2.0

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 (43) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +12 -4
  3. package/dist/cjs/audit.d.ts +1 -0
  4. package/dist/cjs/audit.d.ts.map +1 -1
  5. package/dist/cjs/audit.js +9 -5
  6. package/dist/cjs/audit.js.map +1 -1
  7. package/dist/cjs/canonical.d.ts +21 -69
  8. package/dist/cjs/canonical.d.ts.map +1 -1
  9. package/dist/cjs/canonical.js +198 -171
  10. package/dist/cjs/canonical.js.map +1 -1
  11. package/dist/cjs/evidence.d.ts +1 -0
  12. package/dist/cjs/evidence.d.ts.map +1 -1
  13. package/dist/cjs/evidence.js +8 -3
  14. package/dist/cjs/evidence.js.map +1 -1
  15. package/dist/cjs/index.d.ts +4 -4
  16. package/dist/cjs/index.d.ts.map +1 -1
  17. package/dist/cjs/index.js +14 -5
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/wire.d.ts +136 -1
  20. package/dist/cjs/wire.d.ts.map +1 -1
  21. package/dist/cjs/wire.js +405 -2
  22. package/dist/cjs/wire.js.map +1 -1
  23. package/dist/esm/audit.d.ts +1 -0
  24. package/dist/esm/audit.d.ts.map +1 -1
  25. package/dist/esm/audit.js +10 -6
  26. package/dist/esm/audit.js.map +1 -1
  27. package/dist/esm/canonical.d.ts +21 -69
  28. package/dist/esm/canonical.d.ts.map +1 -1
  29. package/dist/esm/canonical.js +192 -168
  30. package/dist/esm/canonical.js.map +1 -1
  31. package/dist/esm/evidence.d.ts +1 -0
  32. package/dist/esm/evidence.d.ts.map +1 -1
  33. package/dist/esm/evidence.js +8 -3
  34. package/dist/esm/evidence.js.map +1 -1
  35. package/dist/esm/index.d.ts +4 -4
  36. package/dist/esm/index.d.ts.map +1 -1
  37. package/dist/esm/index.js +3 -3
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/wire.d.ts +136 -1
  40. package/dist/esm/wire.d.ts.map +1 -1
  41. package/dist/esm/wire.js +400 -2
  42. package/dist/esm/wire.js.map +1 -1
  43. package/package.json +1 -1
@@ -1,42 +1,41 @@
1
1
  "use strict";
2
- /**
3
- * canonical.ts — byte-exact interoperability with the Python implementation.
4
- *
5
- * Every hash, seal and signature in Attenu is taken over a canonical JSON
6
- * serialisation. The Python library produces those bytes with
7
- * `json.dumps(obj, sort_keys=True, separators=(",", ":"))`, whose defaults
8
- * include `ensure_ascii=True`. `JSON.stringify` differs from that in three
9
- * ways that would each silently break cross-language verification:
10
- *
11
- * 1. key order — `JSON.stringify` preserves insertion order, Python sorts;
12
- * 2. non-ASCII — Python escapes every code point above U+007E as `\uXXXX`
13
- * (astral characters as a surrogate pair), `JSON.stringify` emits them raw;
14
- * 3. numbers — Python distinguishes `int` from `float` (`100` vs `100.0`) and
15
- * switches to exponential notation at different magnitudes than JavaScript
16
- * (`1e-05` where `String()` gives `0.00001`).
17
- *
18
- * (1) and (2) are handled by `canonicalJson` below. (3) cannot be solved by a
19
- * serialiser alone, because a JavaScript `number` has forgotten whether the
20
- * document said `100` or `100.0`. So a document that is going to be re-hashed —
21
- * a ledger or a bundle produced elsewhere — is read with `parseJson`, which
22
- * keeps each number's original literal alongside its value as a `RawNumber`.
23
- * `canonicalJson` re-emits that literal verbatim, so a Python-written entry
24
- * hashes to the byte-identical digest here. Values created in this library are
25
- * plain numbers, and `pyNumber` formats them the way Python's `json` would, so
26
- * the reverse direction round-trips too.
27
- */
2
+ /** RFC 8785 JSON Canonicalization Scheme (JCS), with no runtime dependencies. */
28
3
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.RawNumber = void 0;
4
+ exports.RawNumber = exports.DuplicateMemberError = exports.UnsupportedTypeError = exports.LoneSurrogateError = exports.NonFiniteNumberError = exports.CanonicalizationError = void 0;
30
5
  exports.compareCodePoints = compareCodePoints;
31
6
  exports.sortedStrings = sortedStrings;
32
7
  exports.pyNumber = pyNumber;
33
- exports.pyString = pyString;
34
8
  exports.canonicalJson = canonicalJson;
35
- exports.pyJsonDumps = pyJsonDumps;
36
9
  exports.canonicalBytes = canonicalBytes;
37
10
  exports.toPlain = toPlain;
38
11
  exports.parseJson = parseJson;
39
- /** A number as it was written in the source document, plus its parsed value. */
12
+ class CanonicalizationError extends Error {
13
+ constructor(message) {
14
+ super(message);
15
+ this.name = new.target.name;
16
+ }
17
+ }
18
+ exports.CanonicalizationError = CanonicalizationError;
19
+ class NonFiniteNumberError extends CanonicalizationError {
20
+ }
21
+ exports.NonFiniteNumberError = NonFiniteNumberError;
22
+ class LoneSurrogateError extends CanonicalizationError {
23
+ }
24
+ exports.LoneSurrogateError = LoneSurrogateError;
25
+ class UnsupportedTypeError extends CanonicalizationError {
26
+ }
27
+ exports.UnsupportedTypeError = UnsupportedTypeError;
28
+ /** Raised while parsing when an object repeats a member name. */
29
+ class DuplicateMemberError extends SyntaxError {
30
+ member;
31
+ constructor(member) {
32
+ super(`duplicate JSON object member ${JSON.stringify(member)}`);
33
+ this.member = member;
34
+ this.name = "DuplicateMemberError";
35
+ }
36
+ }
37
+ exports.DuplicateMemberError = DuplicateMemberError;
38
+ /** A parsed JSON number, retaining its source spelling for syntax-sensitive checks. */
40
39
  class RawNumber {
41
40
  raw;
42
41
  value;
@@ -52,7 +51,7 @@ class RawNumber {
52
51
  }
53
52
  }
54
53
  exports.RawNumber = RawNumber;
55
- /** Compare two strings by Unicode code point, as Python's `sorted` does. */
54
+ /** Compare by Unicode code point for semantic lists that mirror Python `sorted`. */
56
55
  function compareCodePoints(a, b) {
57
56
  const ca = Array.from(a);
58
57
  const cb = Array.from(b);
@@ -65,21 +64,10 @@ function compareCodePoints(a, b) {
65
64
  }
66
65
  return ca.length - cb.length;
67
66
  }
68
- /** Sort strings by code point (Python's `sorted(list_of_str)`). */
69
67
  function sortedStrings(values) {
70
68
  return Array.from(values).sort(compareCodePoints);
71
69
  }
72
- /**
73
- * Format a number the way Python's `json.dumps` would.
74
- *
75
- * Integral values are emitted without a decimal point, matching a Python `int`.
76
- * A TypeScript number cannot record that it was meant to be the float `100.0`,
77
- * so such a value serialises as `100`; Python reads that back as an `int` and
78
- * re-emits `100`, which keeps the chain verifiable in both directions. Values
79
- * with a fractional part follow CPython's `repr`: shortest round-tripping
80
- * digits, exponential notation when the decimal exponent is below -4 or at
81
- * least 16, a two-digit signed exponent, and always a decimal point otherwise.
82
- */
70
+ /** Python-style numeric display used only in human-readable ceiling descriptions. */
83
71
  function pyNumber(n) {
84
72
  if (Number.isNaN(n))
85
73
  return "NaN";
@@ -89,22 +77,15 @@ function pyNumber(n) {
89
77
  return "-0.0";
90
78
  if (Number.isInteger(n) && Math.abs(n) < 1e21)
91
79
  return n.toFixed(0);
92
- return pyFloatRepr(n);
93
- }
94
- function pyFloatRepr(n) {
95
- // `toExponential()` with no argument yields the shortest digit string that
96
- // uniquely identifies the value — the same "shortest round-trip" digits
97
- // CPython's repr produces. Only the layout around them differs.
98
80
  const parsed = /^(-?)(\d)(?:\.(\d+))?e([+-]\d+)$/.exec(n.toExponential());
99
81
  if (!parsed)
100
- return String(n); // unreachable for a finite double
82
+ return String(n);
101
83
  const sign = parsed[1];
102
84
  const digits = parsed[2] + (parsed[3] ?? "");
103
85
  const exp = parseInt(parsed[4], 10);
104
86
  if (exp < -4 || exp >= 16) {
105
87
  const mantissa = digits.length > 1 ? `${digits[0]}.${digits.slice(1)}` : digits;
106
- const expSign = exp < 0 ? "-" : "+";
107
- return `${sign}${mantissa}e${expSign}${String(Math.abs(exp)).padStart(2, "0")}`;
88
+ return `${sign}${mantissa}e${exp < 0 ? "-" : "+"}${String(Math.abs(exp)).padStart(2, "0")}`;
108
89
  }
109
90
  if (exp >= 0) {
110
91
  const body = digits.length > exp + 1
@@ -114,76 +95,112 @@ function pyFloatRepr(n) {
114
95
  }
115
96
  return `${sign}0.${"0".repeat(-exp - 1)}${digits}`;
116
97
  }
117
- /** Escape a string the way Python's `json.dumps(ensure_ascii=True)` does. */
118
- function pyString(s) {
119
- let out = '"';
120
- for (let i = 0; i < s.length; i++) {
121
- const ch = s[i];
122
- const code = s.charCodeAt(i);
123
- if (ch === '"')
124
- out += '\\"';
125
- else if (ch === "\\")
126
- out += "\\\\";
127
- else if (code === 0x08)
128
- out += "\\b";
129
- else if (code === 0x09)
130
- out += "\\t";
131
- else if (code === 0x0a)
132
- out += "\\n";
133
- else if (code === 0x0c)
134
- out += "\\f";
135
- else if (code === 0x0d)
136
- out += "\\r";
137
- else if (code < 0x20 || code > 0x7e)
138
- out += "\\u" + code.toString(16).padStart(4, "0");
139
- else
140
- out += ch;
98
+ function validateUnicode(value) {
99
+ for (let i = 0; i < value.length; i++) {
100
+ const unit = value.charCodeAt(i);
101
+ if (unit >= 0xd800 && unit <= 0xdbff) {
102
+ const next = value.charCodeAt(i + 1);
103
+ if (!(next >= 0xdc00 && next <= 0xdfff)) {
104
+ throw new LoneSurrogateError("lone UTF-16 surrogates are not permitted");
105
+ }
106
+ i += 1;
107
+ }
108
+ else if (unit >= 0xdc00 && unit <= 0xdfff) {
109
+ throw new LoneSurrogateError("lone UTF-16 surrogates are not permitted");
110
+ }
141
111
  }
142
- return out + '"';
143
112
  }
144
- /**
145
- * Serialise to the exact bytes Python's
146
- * `json.dumps(obj, sort_keys=True, separators=(",", ":"))` produces:
147
- * sorted keys, no incidental whitespace, ASCII-escaped strings.
148
- *
149
- * Object entries whose value is `undefined` are omitted, matching a Python dict
150
- * that simply never held the key. `null` is kept — it is a value.
151
- */
152
- function canonicalJson(value) {
153
- return pyJsonDumps(value, ",", ":");
113
+ function jcsString(value) {
114
+ validateUnicode(value);
115
+ return JSON.stringify(value);
116
+ }
117
+ function jcsNumber(value) {
118
+ if (!Number.isFinite(value)) {
119
+ throw new NonFiniteNumberError("non-finite numbers are not permitted");
120
+ }
121
+ return JSON.stringify(value);
122
+ }
123
+ function unsupported(value) {
124
+ const kind = value === null ? "null" : typeof value;
125
+ throw new UnsupportedTypeError(`not a supported JSON value: ${kind}`);
154
126
  }
155
- /**
156
- * Serialise with sorted keys and ASCII escaping, choosing the separators.
157
- *
158
- * `canonicalJson` uses the compact `(",", ":")` pair every hash is taken over.
159
- * The `.jsonl` ledger on disk is written with Python's DEFAULT separators
160
- * (`", "` and `": "`), so a line read back by either language re-serialises to
161
- * the same bytes its writer produced.
162
- */
163
- function pyJsonDumps(value, itemSeparator = ", ", keySeparator = ": ") {
164
- if (value === null || value === undefined)
127
+ function serialize(value, active) {
128
+ if (value === null)
165
129
  return "null";
166
130
  if (value instanceof RawNumber)
167
- return value.raw;
131
+ return jcsNumber(value.value);
168
132
  switch (typeof value) {
169
133
  case "boolean":
170
134
  return value ? "true" : "false";
171
135
  case "number":
172
- return pyNumber(value);
136
+ return jcsNumber(value);
173
137
  case "string":
174
- return pyString(value);
138
+ return jcsString(value);
139
+ case "undefined":
140
+ case "bigint":
141
+ case "symbol":
142
+ case "function":
143
+ return unsupported(value);
175
144
  }
176
- if (Array.isArray(value)) {
177
- return ("[" + value.map((v) => pyJsonDumps(v, itemSeparator, keySeparator)).join(itemSeparator) + "]");
145
+ if (active.has(value))
146
+ throw new UnsupportedTypeError("cyclic JSON values are not permitted");
147
+ active.add(value);
148
+ try {
149
+ if (Array.isArray(value)) {
150
+ const own = Reflect.ownKeys(value);
151
+ for (const key of own) {
152
+ if (key === "length")
153
+ continue;
154
+ if (typeof key !== "string" || !/^(?:0|[1-9]\d*)$/.test(key) || Number(key) >= value.length) {
155
+ throw new UnsupportedTypeError("JSON arrays may not carry extra properties");
156
+ }
157
+ }
158
+ const items = [];
159
+ for (let i = 0; i < value.length; i++) {
160
+ if (!Object.prototype.hasOwnProperty.call(value, i)) {
161
+ throw new UnsupportedTypeError("sparse JSON arrays are not permitted");
162
+ }
163
+ const descriptor = Object.getOwnPropertyDescriptor(value, String(i));
164
+ if (!descriptor.enumerable || !("value" in descriptor)) {
165
+ throw new UnsupportedTypeError("JSON arrays may contain only enumerable data elements");
166
+ }
167
+ items.push(serialize(descriptor.value, active));
168
+ }
169
+ return `[${items.join(",")}]`;
170
+ }
171
+ const prototype = Object.getPrototypeOf(value);
172
+ if (prototype !== Object.prototype && prototype !== null) {
173
+ throw new UnsupportedTypeError("only plain JSON objects are permitted");
174
+ }
175
+ const symbols = Object.getOwnPropertySymbols(value);
176
+ if (symbols.length > 0)
177
+ throw new UnsupportedTypeError("JSON object member names must be strings");
178
+ const keys = Object.getOwnPropertyNames(value);
179
+ const members = new Map();
180
+ for (const key of keys) {
181
+ validateUnicode(key);
182
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
183
+ if (!descriptor.enumerable || !("value" in descriptor)) {
184
+ throw new UnsupportedTypeError("JSON objects may contain only enumerable data properties");
185
+ }
186
+ members.set(key, descriptor.value);
187
+ }
188
+ // RFC 8785 sorts property names by their raw UTF-16 code units. JavaScript's
189
+ // default string ordering is exactly that ordering.
190
+ keys.sort();
191
+ return `{${keys
192
+ .map((key) => `${jcsString(key)}:${serialize(members.get(key), active)}`)
193
+ .join(",")}}`;
178
194
  }
179
- const keys = sortedStrings(Object.keys(value).filter((k) => value[k] !== undefined));
180
- return ("{" +
181
- keys
182
- .map((k) => `${pyString(k)}${keySeparator}${pyJsonDumps(value[k], itemSeparator, keySeparator)}`)
183
- .join(itemSeparator) +
184
- "}");
195
+ finally {
196
+ active.delete(value);
197
+ }
198
+ }
199
+ /** Return an RFC 8785 canonical JSON string. */
200
+ function canonicalJson(value) {
201
+ return serialize(value, new WeakSet());
185
202
  }
186
- /** The canonical bytes what every hash, seal and signature is taken over. */
203
+ /** The canonical UTF-8 bytes used by every hash, seal, and signature. */
187
204
  function canonicalBytes(value) {
188
205
  return Buffer.from(canonicalJson(value), "utf8");
189
206
  }
@@ -192,137 +209,144 @@ function toPlain(value) {
192
209
  if (value instanceof RawNumber)
193
210
  return value.value;
194
211
  if (Array.isArray(value))
195
- return value.map((v) => toPlain(v));
212
+ return value.map((item) => toPlain(item));
196
213
  if (value !== null && typeof value === "object") {
197
214
  const out = {};
198
- for (const [k, v] of Object.entries(value))
199
- out[k] = toPlain(v);
215
+ for (const [key, item] of Object.entries(value)) {
216
+ Object.defineProperty(out, key, {
217
+ value: toPlain(item),
218
+ enumerable: true,
219
+ configurable: true,
220
+ writable: true,
221
+ });
222
+ }
200
223
  return out;
201
224
  }
202
225
  return value;
203
226
  }
204
- /**
205
- * Parse JSON, keeping every number's original literal.
206
- *
207
- * `JSON.parse` is not used: it discards the literal, and with it the ability to
208
- * reproduce the bytes the writer hashed. Objects preserve their key order for
209
- * readability; canonical serialisation sorts them anyway.
210
- */
227
+ /** Parse JSON without losing number spellings, while rejecting duplicates. */
211
228
  function parseJson(text) {
212
- const p = new Parser(text);
213
- p.skipWhitespace();
214
- const value = p.parseValue();
215
- p.skipWhitespace();
216
- if (!p.atEnd())
217
- p.fail("unexpected trailing data");
229
+ const parser = new Parser(text);
230
+ parser.skipWhitespace();
231
+ const value = parser.parseValue();
232
+ parser.skipWhitespace();
233
+ if (!parser.atEnd())
234
+ parser.fail("unexpected trailing data");
218
235
  return value;
219
236
  }
220
237
  const NUMBER_RE = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/;
221
238
  class Parser {
222
- s;
239
+ source;
223
240
  i = 0;
224
- constructor(s) {
225
- this.s = s;
241
+ constructor(source) {
242
+ this.source = source;
226
243
  }
227
244
  atEnd() {
228
- return this.i >= this.s.length;
245
+ return this.i >= this.source.length;
229
246
  }
230
247
  fail(message) {
231
248
  throw new SyntaxError(`${message} at position ${this.i}`);
232
249
  }
233
250
  skipWhitespace() {
234
- while (this.i < this.s.length) {
235
- const c = this.s[this.i];
236
- if (c === " " || c === "\t" || c === "\n" || c === "\r")
237
- this.i++;
238
- else
239
- break;
240
- }
251
+ while (this.i < this.source.length && /[\t\n\r ]/.test(this.source[this.i]))
252
+ this.i++;
241
253
  }
242
254
  parseValue() {
243
255
  if (this.atEnd())
244
256
  this.fail("unexpected end of input");
245
- const c = this.s[this.i];
246
- if (c === "{")
257
+ const char = this.source[this.i];
258
+ if (char === "{")
247
259
  return this.parseObject();
248
- if (c === "[")
260
+ if (char === "[")
249
261
  return this.parseArray();
250
- if (c === '"')
262
+ if (char === '"')
251
263
  return this.parseString();
252
- if (this.s.startsWith("true", this.i))
264
+ if (this.source.startsWith("true", this.i))
253
265
  return (this.i += 4), true;
254
- if (this.s.startsWith("false", this.i))
266
+ if (this.source.startsWith("false", this.i))
255
267
  return (this.i += 5), false;
256
- if (this.s.startsWith("null", this.i))
268
+ if (this.source.startsWith("null", this.i))
257
269
  return (this.i += 4), null;
270
+ if (this.source.startsWith("NaN", this.i) ||
271
+ this.source.startsWith("Infinity", this.i) ||
272
+ this.source.startsWith("-Infinity", this.i)) {
273
+ throw new NonFiniteNumberError("non-finite numbers are not permitted");
274
+ }
258
275
  return this.parseNumber();
259
276
  }
260
277
  parseObject() {
261
- this.i++; // {
262
- const out = {};
278
+ this.i++;
279
+ const out = Object.create(null);
263
280
  this.skipWhitespace();
264
- if (this.s[this.i] === "}")
281
+ if (this.source[this.i] === "}")
265
282
  return this.i++, out;
266
283
  for (;;) {
267
284
  this.skipWhitespace();
268
- if (this.s[this.i] !== '"')
285
+ if (this.source[this.i] !== '"')
269
286
  this.fail("expected an object key");
270
287
  const key = this.parseString();
288
+ if (Object.prototype.hasOwnProperty.call(out, key))
289
+ throw new DuplicateMemberError(key);
271
290
  this.skipWhitespace();
272
- if (this.s[this.i] !== ":")
291
+ if (this.source[this.i] !== ":")
273
292
  this.fail("expected ':'");
274
293
  this.i++;
275
294
  this.skipWhitespace();
276
295
  out[key] = this.parseValue();
277
296
  this.skipWhitespace();
278
- const c = this.s[this.i];
279
- if (c === ",") {
297
+ const char = this.source[this.i];
298
+ if (char === ",") {
280
299
  this.i++;
281
300
  continue;
282
301
  }
283
- if (c === "}")
302
+ if (char === "}")
284
303
  return this.i++, out;
285
304
  this.fail("expected ',' or '}'");
286
305
  }
287
306
  }
288
307
  parseArray() {
289
- this.i++; // [
308
+ this.i++;
290
309
  const out = [];
291
310
  this.skipWhitespace();
292
- if (this.s[this.i] === "]")
311
+ if (this.source[this.i] === "]")
293
312
  return this.i++, out;
294
313
  for (;;) {
295
314
  this.skipWhitespace();
296
315
  out.push(this.parseValue());
297
316
  this.skipWhitespace();
298
- const c = this.s[this.i];
299
- if (c === ",") {
317
+ const char = this.source[this.i];
318
+ if (char === ",") {
300
319
  this.i++;
301
320
  continue;
302
321
  }
303
- if (c === "]")
322
+ if (char === "]")
304
323
  return this.i++, out;
305
324
  this.fail("expected ',' or ']'");
306
325
  }
307
326
  }
308
327
  parseString() {
309
- this.i++; // opening quote
328
+ this.i++;
310
329
  let out = "";
311
330
  for (;;) {
312
331
  if (this.atEnd())
313
332
  this.fail("unterminated string");
314
- const c = this.s[this.i];
315
- if (c === '"')
316
- return this.i++, out;
317
- if (c !== "\\") {
318
- out += c;
333
+ const char = this.source[this.i];
334
+ if (char === '"') {
335
+ this.i++;
336
+ validateUnicode(out);
337
+ return out;
338
+ }
339
+ if (char.charCodeAt(0) < 0x20)
340
+ this.fail("unescaped control character");
341
+ if (char !== "\\") {
342
+ out += char;
319
343
  this.i++;
320
344
  continue;
321
345
  }
322
346
  this.i++;
323
- const esc = this.s[this.i];
347
+ const escape = this.source[this.i];
324
348
  this.i++;
325
- switch (esc) {
349
+ switch (escape) {
326
350
  case '"':
327
351
  out += '"';
328
352
  break;
@@ -348,25 +372,28 @@ class Parser {
348
372
  out += "\t";
349
373
  break;
350
374
  case "u": {
351
- const hex = this.s.slice(this.i, this.i + 4);
375
+ const hex = this.source.slice(this.i, this.i + 4);
352
376
  if (!/^[0-9a-fA-F]{4}$/.test(hex))
353
377
  this.fail("bad \\u escape");
354
378
  out += String.fromCharCode(parseInt(hex, 16));
355
379
  this.i += 4;
356
380
  break;
357
381
  }
358
- default:
359
- this.fail("bad escape");
382
+ default: this.fail("bad escape");
360
383
  }
361
384
  }
362
385
  }
363
386
  parseNumber() {
364
- const m = NUMBER_RE.exec(this.s.slice(this.i));
365
- if (!m)
387
+ const match = NUMBER_RE.exec(this.source.slice(this.i));
388
+ if (!match)
366
389
  this.fail("expected a value");
367
- const raw = m[0];
390
+ const raw = match[0];
368
391
  this.i += raw.length;
369
- return new RawNumber(raw, Number(raw));
392
+ const value = Number(raw);
393
+ if (!Number.isFinite(value)) {
394
+ throw new NonFiniteNumberError("non-finite numbers are not permitted");
395
+ }
396
+ return new RawNumber(raw, value);
370
397
  }
371
398
  }
372
399
  //# sourceMappingURL=canonical.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../src/canonical.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../src/canonical.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,7 @@ export interface RedactionReport {
55
55
  }
56
56
  export interface Bundle {
57
57
  v: number;
58
+ c14n: "JCS";
58
59
  chain_id: string;
59
60
  entries: LedgerEntry[];
60
61
  anchor: Anchor;
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/evidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/evidence.ts"],"names":[],"mappings":"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"}