@svta/cml-structured-field-values 1.1.6 → 1.1.7

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.
package/dist/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { decodeBase64, encodeBase64, roundToEven } from "@svta/cml-utils";
2
-
3
2
  //#region src/SfItem.ts
4
3
  /**
5
4
  * Structured Field Item
@@ -19,11 +18,9 @@ var SfItem = class SfItem {
19
18
  this.params = params;
20
19
  }
21
20
  };
22
-
23
21
  //#endregion
24
22
  //#region src/utils/DICT.ts
25
23
  const DICT = "Dict";
26
-
27
24
  //#endregion
28
25
  //#region src/parse/ParsedValue.ts
29
26
  /**
@@ -35,7 +32,6 @@ function parsedValue(value, src) {
35
32
  src
36
33
  };
37
34
  }
38
-
39
35
  //#endregion
40
36
  //#region src/utils/throwError.ts
41
37
  function format(value) {
@@ -48,7 +44,6 @@ function format(value) {
48
44
  function throwError(action, src, type, cause) {
49
45
  return new Error(`failed to ${action} "${format(src)}" as ${type}`, { cause });
50
46
  }
51
-
52
47
  //#endregion
53
48
  //#region src/parse/parseError.ts
54
49
  /**
@@ -57,19 +52,15 @@ function throwError(action, src, type, cause) {
57
52
  function parseError(src, type, cause) {
58
53
  return throwError("parse", src, type, cause);
59
54
  }
60
-
61
55
  //#endregion
62
56
  //#region src/utils/INNER.ts
63
57
  const INNER = "Inner List";
64
-
65
58
  //#endregion
66
59
  //#region src/utils/BARE_ITEM.ts
67
60
  const BARE_ITEM = "Bare Item";
68
-
69
61
  //#endregion
70
62
  //#region src/utils/BOOLEAN.ts
71
63
  const BOOLEAN = "Boolean";
72
-
73
64
  //#endregion
74
65
  //#region src/parse/parseBoolean.ts
75
66
  /**
@@ -83,11 +74,9 @@ function parseBoolean(src) {
83
74
  if (src[i] === "0") return parsedValue(false, src.substring(++i));
84
75
  throw parseError(src, BOOLEAN);
85
76
  }
86
-
87
77
  //#endregion
88
78
  //#region src/utils/BYTES.ts
89
79
  const BYTES = "Byte Sequence";
90
-
91
80
  //#endregion
92
81
  //#region src/parse/parseByteSequence.ts
93
82
  /**
@@ -102,25 +91,20 @@ function parseByteSequence(src) {
102
91
  src = src.substring(re.lastIndex);
103
92
  return parsedValue(decodeBase64(b64_content), src);
104
93
  }
105
-
106
94
  //#endregion
107
95
  //#region src/utils/DATE.ts
108
96
  const DATE = "Date";
109
-
110
97
  //#endregion
111
98
  //#region src/utils/DECIMAL.ts
112
99
  const DECIMAL = "Decimal";
113
-
114
100
  //#endregion
115
101
  //#region src/utils/INTEGER.ts
116
102
  const INTEGER = "Integer";
117
-
118
103
  //#endregion
119
104
  //#region src/utils/isInvalidInt.ts
120
105
  function isInvalidInt(value) {
121
106
  return value < -999999999999999 || 999999999999999 < value;
122
107
  }
123
-
124
108
  //#endregion
125
109
  //#region src/parse/parseIntegerOrDecimal.ts
126
110
  function integerOrDecimalError(src) {
@@ -160,7 +144,6 @@ function parseIntegerOrDecimal(src) {
160
144
  }
161
145
  return parsedValue(value, src);
162
146
  }
163
-
164
147
  //#endregion
165
148
  //#region src/parse/parseDate.ts
166
149
  /**
@@ -174,15 +157,12 @@ function parseDate(src) {
174
157
  if (Number.isInteger(date.value) === false) throw parseError(src, DATE);
175
158
  return parsedValue(/* @__PURE__ */ new Date(date.value * 1e3), date.src);
176
159
  }
177
-
178
160
  //#endregion
179
161
  //#region src/utils/STRING.ts
180
162
  const STRING = "String";
181
-
182
163
  //#endregion
183
164
  //#region src/utils/STRING_REGEX.ts
184
165
  const STRING_REGEX = /[\x00-\x1f\x7f]+/;
185
-
186
166
  //#endregion
187
167
  //#region src/parse/parseString.ts
188
168
  /**
@@ -206,7 +186,6 @@ function parseString(src) {
206
186
  }
207
187
  throw parseError(src, STRING);
208
188
  }
209
-
210
189
  //#endregion
211
190
  //#region src/SfToken.ts
212
191
  /**
@@ -219,11 +198,9 @@ var SfToken = class {
219
198
  this.description = description;
220
199
  }
221
200
  };
222
-
223
201
  //#endregion
224
202
  //#region src/utils/TOKEN.ts
225
203
  const TOKEN = "Token";
226
-
227
204
  //#endregion
228
205
  //#region src/parse/parseToken.ts
229
206
  /**
@@ -236,7 +213,6 @@ function parseToken(src, options) {
236
213
  src = src.substring(re.lastIndex);
237
214
  return parsedValue(options?.useSymbol === false ? new SfToken(value) : Symbol.for(value), src);
238
215
  }
239
-
240
216
  //#endregion
241
217
  //#region src/parse/parseBareItem.ts
242
218
  /**
@@ -252,11 +228,6 @@ function parseBareItem(src, options) {
252
228
  if (first === `@`) return parseDate(src);
253
229
  throw parseError(src, BARE_ITEM);
254
230
  }
255
-
256
- //#endregion
257
- //#region src/utils/KEY.ts
258
- const KEY = "Key";
259
-
260
231
  //#endregion
261
232
  //#region src/parse/parseKey.ts
262
233
  /**
@@ -264,7 +235,7 @@ const KEY = "Key";
264
235
  */
265
236
  function parseKey(src) {
266
237
  let i = 0;
267
- if (/^[a-z*]$/.test(src[i]) === false) throw parseError(src, KEY);
238
+ if (/^[a-z*]$/.test(src[i]) === false) throw parseError(src, "Key");
268
239
  let value = "";
269
240
  while (src.length > i) {
270
241
  if (/^[a-z0-9_\-.*]$/.test(src[i]) === false) return parsedValue(value, src.substring(i));
@@ -273,7 +244,6 @@ function parseKey(src) {
273
244
  }
274
245
  return parsedValue(value, src.substring(i));
275
246
  }
276
-
277
247
  //#endregion
278
248
  //#region src/parse/parseParameters.ts
279
249
  /**
@@ -299,7 +269,6 @@ function parseParameters(src, options) {
299
269
  }
300
270
  return parsedValue(parameters, src);
301
271
  }
302
-
303
272
  //#endregion
304
273
  //#region src/parse/parseItem.ts
305
274
  /**
@@ -312,7 +281,6 @@ function parseItem(src, options) {
312
281
  src = parsedParameters.src;
313
282
  return parsedValue(new SfItem(parsedBareItem.value, parsedParameters.value), src);
314
283
  }
315
-
316
284
  //#endregion
317
285
  //#region src/parse/parseInnerList.ts
318
286
  /**
@@ -336,7 +304,6 @@ function parseInnerList(src, options) {
336
304
  }
337
305
  throw parseError(src, INNER);
338
306
  }
339
-
340
307
  //#endregion
341
308
  //#region src/parse/parseItemOrInnerList.ts
342
309
  /**
@@ -346,7 +313,6 @@ function parseItemOrInnerList(src, options) {
346
313
  if (src[0] === "(") return parseInnerList(src, options);
347
314
  return parseItem(src, options);
348
315
  }
349
-
350
316
  //#endregion
351
317
  //#region src/parse/parseDict.ts
352
318
  /**
@@ -377,7 +343,6 @@ function parseDict(src, options) {
377
343
  }
378
344
  return parsedValue(value, src);
379
345
  }
380
-
381
346
  //#endregion
382
347
  //#region src/decodeSfDict.ts
383
348
  /**
@@ -397,11 +362,9 @@ function decodeSfDict(input, options) {
397
362
  throw parseError(input, DICT, cause);
398
363
  }
399
364
  }
400
-
401
365
  //#endregion
402
366
  //#region src/utils/ITEM.ts
403
367
  const ITEM = "Item";
404
-
405
368
  //#endregion
406
369
  //#region src/decodeSfItem.ts
407
370
  /**
@@ -421,11 +384,9 @@ function decodeSfItem(input, options) {
421
384
  throw parseError(input, ITEM, cause);
422
385
  }
423
386
  }
424
-
425
387
  //#endregion
426
388
  //#region src/utils/LIST.ts
427
389
  const LIST = "List";
428
-
429
390
  //#endregion
430
391
  //#region src/parse/parseList.ts
431
392
  /**
@@ -444,7 +405,6 @@ function parseList(src, options) {
444
405
  }
445
406
  return parsedValue(value, src);
446
407
  }
447
-
448
408
  //#endregion
449
409
  //#region src/decodeSfList.ts
450
410
  /**
@@ -464,7 +424,6 @@ function decodeSfList(input, options) {
464
424
  throw parseError(input, LIST, cause);
465
425
  }
466
426
  }
467
-
468
427
  //#endregion
469
428
  //#region src/serialize/serializeError.ts
470
429
  /**
@@ -473,7 +432,6 @@ function decodeSfList(input, options) {
473
432
  function serializeError(src, type, cause) {
474
433
  return throwError("serialize", src, type, cause);
475
434
  }
476
-
477
435
  //#endregion
478
436
  //#region src/serialize/serializeBoolean.ts
479
437
  /**
@@ -483,7 +441,6 @@ function serializeBoolean(value) {
483
441
  if (typeof value !== "boolean") throw serializeError(value, BOOLEAN);
484
442
  return value ? "?1" : "?0";
485
443
  }
486
-
487
444
  //#endregion
488
445
  //#region src/serialize/serializeByteSequence.ts
489
446
  /**
@@ -493,7 +450,6 @@ function serializeByteSequence(value) {
493
450
  if (ArrayBuffer.isView(value) === false) throw serializeError(value, BYTES);
494
451
  return `:${encodeBase64(value)}:`;
495
452
  }
496
-
497
453
  //#endregion
498
454
  //#region src/serialize/serializeInteger.ts
499
455
  /**
@@ -503,7 +459,6 @@ function serializeInteger(value) {
503
459
  if (isInvalidInt(value)) throw serializeError(value, INTEGER);
504
460
  return value.toString();
505
461
  }
506
-
507
462
  //#endregion
508
463
  //#region src/serialize/serializeDate.ts
509
464
  /**
@@ -512,7 +467,6 @@ function serializeInteger(value) {
512
467
  function serializeDate(value) {
513
468
  return `@${serializeInteger(value.getTime() / 1e3)}`;
514
469
  }
515
-
516
470
  //#endregion
517
471
  //#region src/serialize/serializeDecimal.ts
518
472
  /**
@@ -524,7 +478,6 @@ function serializeDecimal(value) {
524
478
  const stringValue = roundedValue.toString();
525
479
  return stringValue.includes(".") ? stringValue : `${stringValue}.0`;
526
480
  }
527
-
528
481
  //#endregion
529
482
  //#region src/serialize/serializeString.ts
530
483
  const ESCAPE_OR_CONTROL_REGEX = /[\x00-\x1f\x7f"\\]/;
@@ -538,7 +491,6 @@ function serializeString(value) {
538
491
  if (STRING_REGEX.test(value)) throw serializeError(value, STRING);
539
492
  return `"${value.replace(BACKSLASH_REGEX, "\\\\").replace(DQUOTE_REGEX, "\\\"")}"`;
540
493
  }
541
-
542
494
  //#endregion
543
495
  //#region src/utils/symbolToStr.ts
544
496
  /**
@@ -553,7 +505,6 @@ function serializeString(value) {
553
505
  function symbolToStr(symbol) {
554
506
  return symbol.description || symbol.toString().slice(7, -1);
555
507
  }
556
-
557
508
  //#endregion
558
509
  //#region src/serialize/serializeToken.ts
559
510
  const TOKEN_REGEX = /^[a-zA-Z*][!#$%&'*+\-.^_`|~\w:/]*$/;
@@ -565,7 +516,6 @@ function serializeToken(token) {
565
516
  if (TOKEN_REGEX.test(value) === false) throw serializeError(value, TOKEN);
566
517
  return value;
567
518
  }
568
-
569
519
  //#endregion
570
520
  //#region src/serialize/serializeBareItem.ts
571
521
  /**
@@ -587,23 +537,21 @@ function serializeBareItem(value) {
587
537
  default: throw serializeError(value, BARE_ITEM);
588
538
  }
589
539
  }
590
-
591
540
  //#endregion
592
541
  //#region src/serialize/serializeKey.ts
593
542
  /**
594
543
  * @internal
595
544
  */
596
545
  function serializeKey(value) {
597
- if (typeof value !== "string" || value.length === 0) throw serializeError(value, KEY);
546
+ if (typeof value !== "string" || value.length === 0) throw serializeError(value, "Key");
598
547
  let code = value.charCodeAt(0);
599
- if ((code < 97 || code > 122) && code !== 42) throw serializeError(value, KEY);
548
+ if ((code < 97 || code > 122) && code !== 42) throw serializeError(value, "Key");
600
549
  for (let i = 1; i < value.length; i++) {
601
550
  code = value.charCodeAt(i);
602
- if ((code < 97 || code > 122) && (code < 48 || code > 57) && code !== 95 && code !== 45 && code !== 46 && code !== 42) throw serializeError(value, KEY);
551
+ if ((code < 97 || code > 122) && (code < 48 || code > 57) && code !== 95 && code !== 45 && code !== 46 && code !== 42) throw serializeError(value, "Key");
603
552
  }
604
553
  return value;
605
554
  }
606
-
607
555
  //#endregion
608
556
  //#region src/serialize/serializeParams.ts
609
557
  /**
@@ -619,7 +567,6 @@ function serializeParams(params) {
619
567
  }
620
568
  return output;
621
569
  }
622
-
623
570
  //#endregion
624
571
  //#region src/serialize/serializeItem.ts
625
572
  /**
@@ -629,7 +576,6 @@ function serializeItem(value) {
629
576
  if (value instanceof SfItem) return `${serializeBareItem(value.value)}${serializeParams(value.params)}`;
630
577
  else return serializeBareItem(value);
631
578
  }
632
-
633
579
  //#endregion
634
580
  //#region src/serialize/serializeInnerList.ts
635
581
  function serializeInnerList(value, params) {
@@ -646,7 +592,6 @@ function serializeInnerList(value, params) {
646
592
  }
647
593
  return `${output})${serializeParams(params)}`;
648
594
  }
649
-
650
595
  //#endregion
651
596
  //#region src/serialize/serializeDictMember.ts
652
597
  /**
@@ -666,7 +611,6 @@ function serializeDictMember(key, member) {
666
611
  if (Array.isArray(member)) return `${output}=${serializeInnerList(member)}`;
667
612
  return `${output}=${serializeBareItem(member)}`;
668
613
  }
669
-
670
614
  //#endregion
671
615
  //#region src/serialize/serializeDict.ts
672
616
  /**
@@ -679,7 +623,6 @@ function serializeDict(dict, options) {
679
623
  else for (const key of Object.keys(dict)) parts.push(serializeDictMember(key, dict[key]));
680
624
  return parts.join(options?.whitespace === false ? "," : ", ");
681
625
  }
682
-
683
626
  //#endregion
684
627
  //#region src/encodeSfDict.ts
685
628
  /**
@@ -695,14 +638,12 @@ function serializeDict(dict, options) {
695
638
  function encodeSfDict(value, options) {
696
639
  return serializeDict(value, options);
697
640
  }
698
-
699
641
  //#endregion
700
642
  //#region src/encodeSfItem.ts
701
643
  function encodeSfItem(value, params) {
702
644
  if (value instanceof SfItem) return serializeItem(value);
703
645
  return `${serializeBareItem(value)}${serializeParams(params)}`;
704
646
  }
705
-
706
647
  //#endregion
707
648
  //#region src/serialize/serializeMember.ts
708
649
  /**
@@ -719,7 +660,6 @@ function serializeMember(member) {
719
660
  if (Array.isArray(member)) return serializeInnerList(member);
720
661
  return serializeBareItem(member);
721
662
  }
722
-
723
663
  //#endregion
724
664
  //#region src/serialize/serializeList.ts
725
665
  /**
@@ -735,7 +675,6 @@ function serializeList(list, options) {
735
675
  }
736
676
  return output;
737
677
  }
738
-
739
678
  //#endregion
740
679
  //#region src/encodeSfList.ts
741
680
  /**
@@ -751,7 +690,7 @@ function serializeList(list, options) {
751
690
  function encodeSfList(value, options) {
752
691
  return serializeList(value, options);
753
692
  }
754
-
755
693
  //#endregion
756
694
  export { SfItem, SfToken, decodeSfDict, decodeSfItem, decodeSfList, encodeSfDict, encodeSfItem, encodeSfList, parseBareItem, parseBoolean, parseByteSequence, parseDate, parseDict, parseError, parseInnerList, parseIntegerOrDecimal, parseItem, parseItemOrInnerList, parseKey, parseList, parseParameters, parseString, parseToken, serializeBareItem, serializeBoolean, serializeByteSequence, serializeDate, serializeDecimal, serializeDict, serializeError, serializeInnerList, serializeInteger, serializeItem, serializeKey, serializeList, serializeParams, serializeString, serializeToken, symbolToStr };
695
+
757
696
  //# sourceMappingURL=index.js.map