@svta/cml-structured-field-values 0.19.0 → 0.21.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 (276) hide show
  1. package/README.md +25 -0
  2. package/dist/index.d.ts +391 -20
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +710 -13
  5. package/dist/index.js.map +1 -1
  6. package/package.json +4 -23
  7. package/NOTICE +0 -36
  8. package/dist/SfBareItem.d.ts +0 -9
  9. package/dist/SfBareItem.d.ts.map +0 -1
  10. package/dist/SfBareItem.js +0 -2
  11. package/dist/SfBareItem.js.map +0 -1
  12. package/dist/SfDecodeOptions.d.ts +0 -13
  13. package/dist/SfDecodeOptions.d.ts.map +0 -1
  14. package/dist/SfDecodeOptions.js +0 -2
  15. package/dist/SfDecodeOptions.js.map +0 -1
  16. package/dist/SfDictionary.d.ts +0 -9
  17. package/dist/SfDictionary.d.ts.map +0 -1
  18. package/dist/SfDictionary.js +0 -2
  19. package/dist/SfDictionary.js.map +0 -1
  20. package/dist/SfEncodeOptions.d.ts +0 -13
  21. package/dist/SfEncodeOptions.d.ts.map +0 -1
  22. package/dist/SfEncodeOptions.js +0 -2
  23. package/dist/SfEncodeOptions.js.map +0 -1
  24. package/dist/SfInnerList.d.ts +0 -14
  25. package/dist/SfInnerList.d.ts.map +0 -1
  26. package/dist/SfInnerList.js +0 -2
  27. package/dist/SfInnerList.js.map +0 -1
  28. package/dist/SfItem.d.ts +0 -14
  29. package/dist/SfItem.d.ts.map +0 -1
  30. package/dist/SfItem.js +0 -16
  31. package/dist/SfItem.js.map +0 -1
  32. package/dist/SfMember.d.ts +0 -11
  33. package/dist/SfMember.d.ts.map +0 -1
  34. package/dist/SfMember.js +0 -2
  35. package/dist/SfMember.js.map +0 -1
  36. package/dist/SfParameters.d.ts +0 -8
  37. package/dist/SfParameters.d.ts.map +0 -1
  38. package/dist/SfParameters.js +0 -2
  39. package/dist/SfParameters.js.map +0 -1
  40. package/dist/SfToken.d.ts +0 -11
  41. package/dist/SfToken.d.ts.map +0 -1
  42. package/dist/SfToken.js +0 -12
  43. package/dist/SfToken.js.map +0 -1
  44. package/dist/decodeSfDict.d.ts +0 -13
  45. package/dist/decodeSfDict.d.ts.map +0 -1
  46. package/dist/decodeSfDict.js +0 -25
  47. package/dist/decodeSfDict.js.map +0 -1
  48. package/dist/decodeSfItem.d.ts +0 -13
  49. package/dist/decodeSfItem.d.ts.map +0 -1
  50. package/dist/decodeSfItem.js +0 -46
  51. package/dist/decodeSfItem.js.map +0 -1
  52. package/dist/decodeSfList.d.ts +0 -13
  53. package/dist/decodeSfList.d.ts.map +0 -1
  54. package/dist/decodeSfList.js +0 -25
  55. package/dist/decodeSfList.js.map +0 -1
  56. package/dist/encodeSfDict.d.ts +0 -14
  57. package/dist/encodeSfDict.d.ts.map +0 -1
  58. package/dist/encodeSfDict.js +0 -16
  59. package/dist/encodeSfDict.js.map +0 -1
  60. package/dist/encodeSfItem.d.ts +0 -26
  61. package/dist/encodeSfItem.d.ts.map +0 -1
  62. package/dist/encodeSfItem.js +0 -9
  63. package/dist/encodeSfItem.js.map +0 -1
  64. package/dist/encodeSfList.d.ts +0 -15
  65. package/dist/encodeSfList.d.ts.map +0 -1
  66. package/dist/encodeSfList.js +0 -16
  67. package/dist/encodeSfList.js.map +0 -1
  68. package/dist/parse/ParsedValue.d.ts +0 -6
  69. package/dist/parse/ParsedValue.d.ts.map +0 -1
  70. package/dist/parse/ParsedValue.js +0 -4
  71. package/dist/parse/ParsedValue.js.map +0 -1
  72. package/dist/parse/index.d.ts +0 -22
  73. package/dist/parse/index.d.ts.map +0 -1
  74. package/dist/parse/index.js +0 -21
  75. package/dist/parse/index.js.map +0 -1
  76. package/dist/parse/parseBareItem.d.ts +0 -5
  77. package/dist/parse/parseBareItem.d.ts.map +0 -1
  78. package/dist/parse/parseBareItem.js +0 -59
  79. package/dist/parse/parseBareItem.js.map +0 -1
  80. package/dist/parse/parseBoolean.d.ts +0 -3
  81. package/dist/parse/parseBoolean.d.ts.map +0 -1
  82. package/dist/parse/parseBoolean.js +0 -34
  83. package/dist/parse/parseBoolean.js.map +0 -1
  84. package/dist/parse/parseByteSequence.d.ts +0 -3
  85. package/dist/parse/parseByteSequence.d.ts.map +0 -1
  86. package/dist/parse/parseByteSequence.js +0 -59
  87. package/dist/parse/parseByteSequence.js.map +0 -1
  88. package/dist/parse/parseDate.d.ts +0 -3
  89. package/dist/parse/parseDate.d.ts.map +0 -1
  90. package/dist/parse/parseDate.js +0 -32
  91. package/dist/parse/parseDate.js.map +0 -1
  92. package/dist/parse/parseDict.d.ts +0 -5
  93. package/dist/parse/parseDict.d.ts.map +0 -1
  94. package/dist/parse/parseDict.js +0 -90
  95. package/dist/parse/parseDict.js.map +0 -1
  96. package/dist/parse/parseError.d.ts +0 -2
  97. package/dist/parse/parseError.d.ts.map +0 -1
  98. package/dist/parse/parseError.js +0 -5
  99. package/dist/parse/parseError.js.map +0 -1
  100. package/dist/parse/parseInnerList.d.ts +0 -5
  101. package/dist/parse/parseInnerList.d.ts.map +0 -1
  102. package/dist/parse/parseInnerList.js +0 -62
  103. package/dist/parse/parseInnerList.js.map +0 -1
  104. package/dist/parse/parseIntegerOrDecimal.d.ts +0 -3
  105. package/dist/parse/parseIntegerOrDecimal.d.ts.map +0 -1
  106. package/dist/parse/parseIntegerOrDecimal.js +0 -123
  107. package/dist/parse/parseIntegerOrDecimal.js.map +0 -1
  108. package/dist/parse/parseItem.d.ts +0 -5
  109. package/dist/parse/parseItem.d.ts.map +0 -1
  110. package/dist/parse/parseItem.js +0 -25
  111. package/dist/parse/parseItem.js.map +0 -1
  112. package/dist/parse/parseItemOrInnerList.d.ts +0 -6
  113. package/dist/parse/parseItemOrInnerList.d.ts.map +0 -1
  114. package/dist/parse/parseItemOrInnerList.js +0 -22
  115. package/dist/parse/parseItemOrInnerList.js.map +0 -1
  116. package/dist/parse/parseKey.d.ts +0 -3
  117. package/dist/parse/parseKey.d.ts.map +0 -1
  118. package/dist/parse/parseKey.js +0 -40
  119. package/dist/parse/parseKey.js.map +0 -1
  120. package/dist/parse/parseList.d.ts +0 -5
  121. package/dist/parse/parseList.d.ts.map +0 -1
  122. package/dist/parse/parseList.js +0 -51
  123. package/dist/parse/parseList.js.map +0 -1
  124. package/dist/parse/parseParameters.d.ts +0 -5
  125. package/dist/parse/parseParameters.d.ts.map +0 -1
  126. package/dist/parse/parseParameters.js +0 -68
  127. package/dist/parse/parseParameters.js.map +0 -1
  128. package/dist/parse/parseString.d.ts +0 -3
  129. package/dist/parse/parseString.d.ts.map +0 -1
  130. package/dist/parse/parseString.js +0 -73
  131. package/dist/parse/parseString.js.map +0 -1
  132. package/dist/parse/parseToken.d.ts +0 -5
  133. package/dist/parse/parseToken.d.ts.map +0 -1
  134. package/dist/parse/parseToken.js +0 -35
  135. package/dist/parse/parseToken.js.map +0 -1
  136. package/dist/serialize/index.d.ts +0 -21
  137. package/dist/serialize/index.d.ts.map +0 -1
  138. package/dist/serialize/index.js +0 -21
  139. package/dist/serialize/index.js.map +0 -1
  140. package/dist/serialize/serializeBareItem.d.ts +0 -2
  141. package/dist/serialize/serializeBareItem.d.ts.map +0 -1
  142. package/dist/serialize/serializeBareItem.js +0 -69
  143. package/dist/serialize/serializeBareItem.js.map +0 -1
  144. package/dist/serialize/serializeBoolean.d.ts +0 -2
  145. package/dist/serialize/serializeBoolean.d.ts.map +0 -1
  146. package/dist/serialize/serializeBoolean.js +0 -25
  147. package/dist/serialize/serializeBoolean.js.map +0 -1
  148. package/dist/serialize/serializeByteSequence.d.ts +0 -2
  149. package/dist/serialize/serializeByteSequence.d.ts.map +0 -1
  150. package/dist/serialize/serializeByteSequence.js +0 -34
  151. package/dist/serialize/serializeByteSequence.js.map +0 -1
  152. package/dist/serialize/serializeDate.d.ts +0 -2
  153. package/dist/serialize/serializeDate.d.ts.map +0 -1
  154. package/dist/serialize/serializeDate.js +0 -13
  155. package/dist/serialize/serializeDate.js.map +0 -1
  156. package/dist/serialize/serializeDecimal.d.ts +0 -2
  157. package/dist/serialize/serializeDecimal.d.ts.map +0 -1
  158. package/dist/serialize/serializeDecimal.js +0 -46
  159. package/dist/serialize/serializeDecimal.js.map +0 -1
  160. package/dist/serialize/serializeDict.d.ts +0 -3
  161. package/dist/serialize/serializeDict.d.ts.map +0 -1
  162. package/dist/serialize/serializeDict.js +0 -74
  163. package/dist/serialize/serializeDict.js.map +0 -1
  164. package/dist/serialize/serializeError.d.ts +0 -2
  165. package/dist/serialize/serializeError.d.ts.map +0 -1
  166. package/dist/serialize/serializeError.js +0 -5
  167. package/dist/serialize/serializeError.js.map +0 -1
  168. package/dist/serialize/serializeInnerList.d.ts +0 -3
  169. package/dist/serialize/serializeInnerList.d.ts.map +0 -1
  170. package/dist/serialize/serializeInnerList.js +0 -28
  171. package/dist/serialize/serializeInnerList.js.map +0 -1
  172. package/dist/serialize/serializeInteger.d.ts +0 -2
  173. package/dist/serialize/serializeInteger.d.ts.map +0 -1
  174. package/dist/serialize/serializeInteger.js +0 -28
  175. package/dist/serialize/serializeInteger.js.map +0 -1
  176. package/dist/serialize/serializeItem.d.ts +0 -4
  177. package/dist/serialize/serializeItem.d.ts.map +0 -1
  178. package/dist/serialize/serializeItem.js +0 -26
  179. package/dist/serialize/serializeItem.js.map +0 -1
  180. package/dist/serialize/serializeKey.d.ts +0 -2
  181. package/dist/serialize/serializeKey.d.ts.map +0 -1
  182. package/dist/serialize/serializeKey.js +0 -28
  183. package/dist/serialize/serializeKey.js.map +0 -1
  184. package/dist/serialize/serializeList.d.ts +0 -4
  185. package/dist/serialize/serializeList.d.ts.map +0 -1
  186. package/dist/serialize/serializeList.js +0 -48
  187. package/dist/serialize/serializeList.js.map +0 -1
  188. package/dist/serialize/serializeParams.d.ts +0 -2
  189. package/dist/serialize/serializeParams.d.ts.map +0 -1
  190. package/dist/serialize/serializeParams.js +0 -40
  191. package/dist/serialize/serializeParams.js.map +0 -1
  192. package/dist/serialize/serializeString.d.ts +0 -2
  193. package/dist/serialize/serializeString.d.ts.map +0 -1
  194. package/dist/serialize/serializeString.js +0 -34
  195. package/dist/serialize/serializeString.js.map +0 -1
  196. package/dist/serialize/serializeToken.d.ts +0 -4
  197. package/dist/serialize/serializeToken.d.ts.map +0 -1
  198. package/dist/serialize/serializeToken.js +0 -11
  199. package/dist/serialize/serializeToken.js.map +0 -1
  200. package/dist/tsconfig.tsbuildinfo +0 -1
  201. package/dist/utils/BARE_ITEM.d.ts +0 -2
  202. package/dist/utils/BARE_ITEM.d.ts.map +0 -1
  203. package/dist/utils/BARE_ITEM.js +0 -2
  204. package/dist/utils/BARE_ITEM.js.map +0 -1
  205. package/dist/utils/BOOLEAN.d.ts +0 -2
  206. package/dist/utils/BOOLEAN.d.ts.map +0 -1
  207. package/dist/utils/BOOLEAN.js +0 -2
  208. package/dist/utils/BOOLEAN.js.map +0 -1
  209. package/dist/utils/BYTES.d.ts +0 -2
  210. package/dist/utils/BYTES.d.ts.map +0 -1
  211. package/dist/utils/BYTES.js +0 -2
  212. package/dist/utils/BYTES.js.map +0 -1
  213. package/dist/utils/DATE.d.ts +0 -2
  214. package/dist/utils/DATE.d.ts.map +0 -1
  215. package/dist/utils/DATE.js +0 -2
  216. package/dist/utils/DATE.js.map +0 -1
  217. package/dist/utils/DECIMAL.d.ts +0 -2
  218. package/dist/utils/DECIMAL.d.ts.map +0 -1
  219. package/dist/utils/DECIMAL.js +0 -2
  220. package/dist/utils/DECIMAL.js.map +0 -1
  221. package/dist/utils/DICT.d.ts +0 -2
  222. package/dist/utils/DICT.d.ts.map +0 -1
  223. package/dist/utils/DICT.js +0 -2
  224. package/dist/utils/DICT.js.map +0 -1
  225. package/dist/utils/INNER.d.ts +0 -2
  226. package/dist/utils/INNER.d.ts.map +0 -1
  227. package/dist/utils/INNER.js +0 -2
  228. package/dist/utils/INNER.js.map +0 -1
  229. package/dist/utils/INTEGER.d.ts +0 -2
  230. package/dist/utils/INTEGER.d.ts.map +0 -1
  231. package/dist/utils/INTEGER.js +0 -2
  232. package/dist/utils/INTEGER.js.map +0 -1
  233. package/dist/utils/INTEGER_DECIMAL.d.ts +0 -2
  234. package/dist/utils/INTEGER_DECIMAL.d.ts.map +0 -1
  235. package/dist/utils/INTEGER_DECIMAL.js +0 -4
  236. package/dist/utils/INTEGER_DECIMAL.js.map +0 -1
  237. package/dist/utils/ITEM.d.ts +0 -2
  238. package/dist/utils/ITEM.d.ts.map +0 -1
  239. package/dist/utils/ITEM.js +0 -2
  240. package/dist/utils/ITEM.js.map +0 -1
  241. package/dist/utils/KEY.d.ts +0 -2
  242. package/dist/utils/KEY.d.ts.map +0 -1
  243. package/dist/utils/KEY.js +0 -2
  244. package/dist/utils/KEY.js.map +0 -1
  245. package/dist/utils/LIST.d.ts +0 -2
  246. package/dist/utils/LIST.d.ts.map +0 -1
  247. package/dist/utils/LIST.js +0 -2
  248. package/dist/utils/LIST.js.map +0 -1
  249. package/dist/utils/STRING.d.ts +0 -2
  250. package/dist/utils/STRING.d.ts.map +0 -1
  251. package/dist/utils/STRING.js +0 -2
  252. package/dist/utils/STRING.js.map +0 -1
  253. package/dist/utils/STRING_REGEX.d.ts +0 -2
  254. package/dist/utils/STRING_REGEX.d.ts.map +0 -1
  255. package/dist/utils/STRING_REGEX.js +0 -2
  256. package/dist/utils/STRING_REGEX.js.map +0 -1
  257. package/dist/utils/TOKEN.d.ts +0 -2
  258. package/dist/utils/TOKEN.d.ts.map +0 -1
  259. package/dist/utils/TOKEN.js +0 -2
  260. package/dist/utils/TOKEN.js.map +0 -1
  261. package/dist/utils/index.d.ts +0 -10
  262. package/dist/utils/index.d.ts.map +0 -1
  263. package/dist/utils/index.js +0 -10
  264. package/dist/utils/index.js.map +0 -1
  265. package/dist/utils/isInvalidInt.d.ts +0 -2
  266. package/dist/utils/isInvalidInt.d.ts.map +0 -1
  267. package/dist/utils/isInvalidInt.js +0 -4
  268. package/dist/utils/isInvalidInt.js.map +0 -1
  269. package/dist/utils/symbolToStr.d.ts +0 -13
  270. package/dist/utils/symbolToStr.d.ts.map +0 -1
  271. package/dist/utils/symbolToStr.js +0 -14
  272. package/dist/utils/symbolToStr.js.map +0 -1
  273. package/dist/utils/throwError.d.ts +0 -2
  274. package/dist/utils/throwError.d.ts.map +0 -1
  275. package/dist/utils/throwError.js +0 -19
  276. package/dist/utils/throwError.js.map +0 -1
@@ -1,90 +0,0 @@
1
- import { SfItem } from '../SfItem.js';
2
- import { DICT } from '../utils/DICT.js';
3
- import { parsedValue } from './ParsedValue.js';
4
- import { parseError } from './parseError.js';
5
- import { parseItemOrInnerList } from './parseItemOrInnerList.js';
6
- import { parseKey } from './parseKey.js';
7
- import { parseParameters } from './parseParameters.js';
8
- // 4.2.2. Parsing a Dictionary
9
- //
10
- // Given an ASCII string as input_string, return an ordered map whose
11
- // values are (item_or_inner_list, parameters) tuples. input_string is
12
- // modified to remove the parsed value.
13
- //
14
- // 1. Let dictionary be an empty, ordered map.
15
- //
16
- // 2. While input_string is not empty:
17
- //
18
- // 1. Let this_key be the result of running Parsing a Key
19
- // (Section 4.2.3.3) with input_string.
20
- //
21
- // 2. If the first character of input_string is "=":
22
- //
23
- // 1. Consume the first character of input_string.
24
- //
25
- // 2. Let member be the result of running Parsing an Item or
26
- // Inner List (Section 4.2.1.1) with input_string.
27
- //
28
- // 3. Otherwise:
29
- //
30
- // 1. Let value be Boolean true.
31
- //
32
- // 2. Let parameters be the result of running Parsing
33
- // Parameters Section 4.2.3.2 with input_string.
34
- //
35
- // 3. Let member be the tuple (value, parameters).
36
- //
37
- // 4. Add name this_key with value member to dictionary. If
38
- // dictionary already contains a name this_key (comparing
39
- // character-for-character), overwrite its value.
40
- //
41
- // 5. Discard any leading OWS characters from input_string.
42
- //
43
- // 6. If input_string is empty, return dictionary.
44
- //
45
- // 7. Consume the first character of input_string; if it is not
46
- // ",", fail parsing.
47
- //
48
- // 8. Discard any leading OWS characters from input_string.
49
- //
50
- // 9. If input_string is empty, there is a trailing comma; fail
51
- // parsing.
52
- //
53
- // 3. No structured data has been found; return dictionary (which is
54
- // empty).
55
- //
56
- // Note that when duplicate Dictionary keys are encountered, this has
57
- // the effect of ignoring all but the last instance.
58
- export function parseDict(src, options) {
59
- const value = {};
60
- while (src.length > 0) {
61
- let member;
62
- const parsedKey = parseKey(src);
63
- const key = parsedKey.value;
64
- src = parsedKey.src;
65
- if (src[0] === '=') {
66
- const parsedItemOrInnerList = parseItemOrInnerList(src.substring(1), options);
67
- member = parsedItemOrInnerList.value;
68
- src = parsedItemOrInnerList.src;
69
- }
70
- else {
71
- const parsedParameters = parseParameters(src, options);
72
- member = new SfItem(true, parsedParameters.value);
73
- src = parsedParameters.src;
74
- }
75
- value[key] = member;
76
- src = src.trim();
77
- if (src.length === 0) {
78
- return parsedValue(value, src);
79
- }
80
- if (src[0] !== ',') {
81
- throw parseError(src, DICT);
82
- }
83
- src = src.substring(1).trim();
84
- if (src.length === 0 || src[0] === ',') {
85
- throw parseError(src, DICT);
86
- }
87
- }
88
- return parsedValue(value, src);
89
- }
90
- //# sourceMappingURL=parseDict.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseDict.js","sourceRoot":"","sources":["../../src/parse/parseDict.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SfDecodeOptions } from '../SfDecodeOptions.js';\nimport type { SfDictionary } from '../SfDictionary.js';\nimport type { SfInnerList } from '../SfInnerList.js';\nimport { SfItem } from '../SfItem.js';\nimport { DICT } from '../utils/DICT.js';\nimport type { ParsedValue } from './ParsedValue.js';\nimport { parsedValue } from './ParsedValue.js';\nimport { parseError } from './parseError.js';\nimport { parseItemOrInnerList } from './parseItemOrInnerList.js';\nimport { parseKey } from './parseKey.js';\nimport { parseParameters } from './parseParameters.js';\n\n// 4.2.2. Parsing a Dictionary\n//\n// Given an ASCII string as input_string, return an ordered map whose\n// values are (item_or_inner_list, parameters) tuples. input_string is\n// modified to remove the parsed value.\n//\n// 1. Let dictionary be an empty, ordered map.\n//\n// 2. While input_string is not empty:\n//\n// 1. Let this_key be the result of running Parsing a Key\n// (Section 4.2.3.3) with input_string.\n//\n// 2. If the first character of input_string is \"=\":\n//\n// 1. Consume the first character of input_string.\n//\n// 2. Let member be the result of running Parsing an Item or\n// Inner List (Section 4.2.1.1) with input_string.\n//\n// 3. Otherwise:\n//\n// 1. Let value be Boolean true.\n//\n// 2. Let parameters be the result of running Parsing\n// Parameters Section 4.2.3.2 with input_string.\n//\n// 3. Let member be the tuple (value, parameters).\n//\n// 4. Add name this_key with value member to dictionary. If\n// dictionary already contains a name this_key (comparing\n// character-for-character), overwrite its value.\n//\n// 5. Discard any leading OWS characters from input_string.\n//\n// 6. If input_string is empty, return dictionary.\n//\n// 7. Consume the first character of input_string; if it is not\n// \",\", fail parsing.\n//\n// 8. Discard any leading OWS characters from input_string.\n//\n// 9. If input_string is empty, there is a trailing comma; fail\n// parsing.\n//\n// 3. No structured data has been found; return dictionary (which is\n// empty).\n//\n// Note that when duplicate Dictionary keys are encountered, this has\n// the effect of ignoring all but the last instance.\nexport function parseDict(src: string, options?: SfDecodeOptions): ParsedValue<SfDictionary> {\n\tconst value: SfDictionary = {};\n\n\twhile (src.length > 0) {\n\t\tlet member: SfItem | SfInnerList;\n\t\tconst parsedKey = parseKey(src);\n\t\tconst key = parsedKey.value;\n\t\tsrc = parsedKey.src;\n\n\t\tif (src[0] === '=') {\n\t\t\tconst parsedItemOrInnerList = parseItemOrInnerList(src.substring(1), options);\n\t\t\tmember = parsedItemOrInnerList.value;\n\t\t\tsrc = parsedItemOrInnerList.src;\n\t\t}\n\t\telse {\n\t\t\tconst parsedParameters = parseParameters(src, options);\n\t\t\tmember = new SfItem(true, parsedParameters.value);\n\t\t\tsrc = parsedParameters.src;\n\t\t}\n\n\t\tvalue[key] = member;\n\n\t\tsrc = src.trim();\n\t\tif (src.length === 0) {\n\t\t\treturn parsedValue(value, src);\n\t\t}\n\n\t\tif (src[0] !== ',') {\n\t\t\tthrow parseError(src, DICT);\n\t\t}\n\n\t\tsrc = src.substring(1).trim();\n\t\tif (src.length === 0 || src[0] === ',') {\n\t\t\tthrow parseError(src, DICT);\n\t\t}\n\t}\n\n\treturn parsedValue(value, src);\n}\n"]}
@@ -1,2 +0,0 @@
1
- export declare function parseError(src: any, type: string, cause?: any): Error;
2
- //# sourceMappingURL=parseError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseError.d.ts","sourceRoot":"","sources":["../../src/parse/parseError.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAErE"}
@@ -1,5 +0,0 @@
1
- import { throwError } from '../utils/throwError.js';
2
- export function parseError(src, type, cause) {
3
- return throwError('parse', src, type, cause);
4
- }
5
- //# sourceMappingURL=parseError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseError.js","sourceRoot":"","sources":["../../src/parse/parseError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,UAAU,UAAU,CAAC,GAAQ,EAAE,IAAY,EAAE,KAAW;IAC7D,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC","sourcesContent":["import { throwError } from '../utils/throwError.js';\n\nexport function parseError(src: any, type: string, cause?: any): Error {\n\treturn throwError('parse', src, type, cause);\n}\n"]}
@@ -1,5 +0,0 @@
1
- import type { SfDecodeOptions } from '../SfDecodeOptions.js';
2
- import type { SfInnerList } from '../SfInnerList.js';
3
- import type { ParsedValue } from './ParsedValue.js';
4
- export declare function parseInnerList(src: string, options?: SfDecodeOptions): ParsedValue<SfInnerList>;
5
- //# sourceMappingURL=parseInnerList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseInnerList.d.ts","sourceRoot":"","sources":["../../src/parse/parseInnerList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAuCpD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,CA6B/F"}
@@ -1,62 +0,0 @@
1
- import { SfItem } from '../SfItem.js';
2
- import { INNER } from '../utils/INNER.js';
3
- import { parsedValue } from './ParsedValue.js';
4
- import { parseError } from './parseError.js';
5
- import { parseItem } from './parseItem.js';
6
- import { parseParameters } from './parseParameters.js';
7
- // 4.2.1.2. Parsing an Inner List
8
- //
9
- // Given an ASCII string as input_string, return the tuple (inner_list,
10
- // parameters), where inner_list is an array of (bare_item, parameters)
11
- // tuples. input_string is modified to remove the parsed value.
12
- //
13
- // 1. Consume the first character of input_string; if it is not "(",
14
- // fail parsing.
15
- //
16
- // 2. Let inner_list be an empty array.
17
- //
18
- // 3. While input_string is not empty:
19
- //
20
- // 1. Discard any leading SP characters from input_string.
21
- //
22
- // 2. If the first character of input_string is ")":
23
- //
24
- // 1. Consume the first character of input_string.
25
- //
26
- // 2. Let parameters be the result of running Parsing
27
- // Parameters (Section 4.2.3.2) with input_string.
28
- //
29
- // 3. Return the tuple (inner_list, parameters).
30
- //
31
- // 3. Let item be the result of running Parsing an Item
32
- // (Section 4.2.3) with input_string.
33
- //
34
- // 4. Append item to inner_list.
35
- //
36
- // 5. If the first character of input_string is not SP or ")", fail
37
- // parsing.
38
- //
39
- // 4. The end of the inner list was not found; fail parsing.
40
- export function parseInnerList(src, options) {
41
- if (src[0] !== '(') {
42
- throw parseError(src, INNER);
43
- }
44
- src = src.substring(1);
45
- const innerList = [];
46
- while (src.length > 0) {
47
- src = src.trim();
48
- if (src[0] === ')') {
49
- src = src.substring(1);
50
- const parsedParameters = parseParameters(src, options);
51
- return parsedValue(new SfItem(innerList, parsedParameters.value), parsedParameters.src);
52
- }
53
- const parsedItem = parseItem(src, options);
54
- innerList.push(parsedItem.value);
55
- src = parsedItem.src;
56
- if (src[0] !== ' ' && src[0] !== ')') {
57
- throw parseError(src, INNER);
58
- }
59
- }
60
- throw parseError(src, INNER);
61
- }
62
- //# sourceMappingURL=parseInnerList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseInnerList.js","sourceRoot":"","sources":["../../src/parse/parseInnerList.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,kCAAkC;AAClC,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,+DAA+D;AAC/D,EAAE;AACF,qEAAqE;AACrE,oBAAoB;AACpB,EAAE;AACF,wCAAwC;AACxC,EAAE;AACF,uCAAuC;AACvC,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,yDAAyD;AACzD,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,8DAA8D;AAC9D,8DAA8D;AAC9D,EAAE;AACF,yDAAyD;AACzD,EAAE;AACF,4DAA4D;AAC5D,6CAA6C;AAC7C,EAAE;AACF,qCAAqC;AACrC,EAAE;AACF,wEAAwE;AACxE,mBAAmB;AACnB,EAAE;AACF,6DAA6D;AAC7D,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,OAAyB;IACpE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACpB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAEvD,OAAO,WAAW,CACjB,IAAI,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAQ,EACpD,gBAAgB,CAAC,GAAG,CACpB,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QAErB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACtC,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;IACF,CAAC;IAED,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC","sourcesContent":["import type { SfDecodeOptions } from '../SfDecodeOptions.js';\nimport type { SfInnerList } from '../SfInnerList.js';\nimport { SfItem } from '../SfItem.js';\nimport { INNER } from '../utils/INNER.js';\nimport type { ParsedValue } from './ParsedValue.js';\nimport { parsedValue } from './ParsedValue.js';\nimport { parseError } from './parseError.js';\nimport { parseItem } from './parseItem.js';\nimport { parseParameters } from './parseParameters.js';\n\n// 4.2.1.2. Parsing an Inner List\n//\n// Given an ASCII string as input_string, return the tuple (inner_list,\n// parameters), where inner_list is an array of (bare_item, parameters)\n// tuples. input_string is modified to remove the parsed value.\n//\n// 1. Consume the first character of input_string; if it is not \"(\",\n// fail parsing.\n//\n// 2. Let inner_list be an empty array.\n//\n// 3. While input_string is not empty:\n//\n// 1. Discard any leading SP characters from input_string.\n//\n// 2. If the first character of input_string is \")\":\n//\n// 1. Consume the first character of input_string.\n//\n// 2. Let parameters be the result of running Parsing\n// Parameters (Section 4.2.3.2) with input_string.\n//\n// 3. Return the tuple (inner_list, parameters).\n//\n// 3. Let item be the result of running Parsing an Item\n// (Section 4.2.3) with input_string.\n//\n// 4. Append item to inner_list.\n//\n// 5. If the first character of input_string is not SP or \")\", fail\n// parsing.\n//\n// 4. The end of the inner list was not found; fail parsing.\nexport function parseInnerList(src: string, options?: SfDecodeOptions): ParsedValue<SfInnerList> {\n\tif (src[0] !== '(') {\n\t\tthrow parseError(src, INNER);\n\t}\n\n\tsrc = src.substring(1);\n\tconst innerList: SfItem[] = [];\n\twhile (src.length > 0) {\n\t\tsrc = src.trim();\n\t\tif (src[0] === ')') {\n\t\t\tsrc = src.substring(1);\n\t\t\tconst parsedParameters = parseParameters(src, options);\n\n\t\t\treturn parsedValue(\n\t\t\t\tnew SfItem(innerList, parsedParameters.value) as any,\n\t\t\t\tparsedParameters.src,\n\t\t\t);\n\t\t}\n\n\t\tconst parsedItem = parseItem(src, options);\n\t\tinnerList.push(parsedItem.value);\n\t\tsrc = parsedItem.src;\n\n\t\tif (src[0] !== ' ' && src[0] !== ')') {\n\t\t\tthrow parseError(src, INNER);\n\t\t}\n\t}\n\n\tthrow parseError(src, INNER);\n}\n"]}
@@ -1,3 +0,0 @@
1
- import type { ParsedValue } from './ParsedValue.js';
2
- export declare function parseIntegerOrDecimal(src: string): ParsedValue<number>;
3
- //# sourceMappingURL=parseIntegerOrDecimal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseIntegerOrDecimal.d.ts","sourceRoot":"","sources":["../../src/parse/parseIntegerOrDecimal.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAqEpD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CA6DtE"}
@@ -1,123 +0,0 @@
1
- import { INTEGER_DECIMAL } from '../utils/INTEGER_DECIMAL.js';
2
- import { isInvalidInt } from '../utils/isInvalidInt.js';
3
- import { parsedValue } from './ParsedValue.js';
4
- import { parseError } from './parseError.js';
5
- // 4.2.4. Parsing an Integer or Decimal
6
- //
7
- // Given an ASCII string as input_string, return an Integer or Decimal.
8
- // input_string is modified to remove the parsed value.
9
- //
10
- // NOTE: This algorithm parses both Integers (Section 3.3.1) and
11
- // Decimals (Section 3.3.2), and returns the corresponding structure.
12
- //
13
- // 1. Let type be "integer".
14
- //
15
- // 2. Let sign be 1.
16
- //
17
- // 3. Let input_number be an empty string.
18
- //
19
- // 4. If the first character of input_string is "-", consume it and
20
- // set sign to -1.
21
- //
22
- // 5. If input_string is empty, there is an empty integer; fail
23
- // parsing.
24
- //
25
- // 6. If the first character of input_string is not a DIGIT, fail
26
- // parsing.
27
- //
28
- // 7. While input_string is not empty:
29
- //
30
- // 1. Let char be the result of consuming the first character of
31
- // input_string.
32
- //
33
- // 2. If char is a DIGIT, append it to input_number.
34
- //
35
- // 3. Else, if type is "integer" and char is ".":
36
- //
37
- // 1. If input_number contains more than 12 characters, fail
38
- // parsing.
39
- //
40
- // 2. Otherwise, append char to input_number and set type to
41
- // "decimal".
42
- //
43
- // 4. Otherwise, prepend char to input_string, and exit the loop.
44
- //
45
- // 5. If type is "integer" and input_number contains more than 15
46
- // characters, fail parsing.
47
- //
48
- // 6. If type is "decimal" and input_number contains more than 16
49
- // characters, fail parsing.
50
- //
51
- // 8. If type is "integer":
52
- //
53
- // 1. Parse input_number as an integer and let output_number be
54
- // the product of the result and sign.
55
- //
56
- // 2. If output_number is outside the range -999,999,999,999,999
57
- // to 999,999,999,999,999 inclusive, fail parsing.
58
- //
59
- // 9. Otherwise:
60
- //
61
- // 1. If the final character of input_number is ".", fail parsing.
62
- //
63
- // 2. If the number of characters after "." in input_number is
64
- // greater than three, fail parsing.
65
- //
66
- // 3. Parse input_number as a decimal number and let output_number
67
- // be the product of the result and sign.
68
- //
69
- // 10. Return output_number.
70
- export function parseIntegerOrDecimal(src) {
71
- const orig = src;
72
- let sign = 1;
73
- let num = '';
74
- let value;
75
- const i = 0;
76
- const error = parseError(orig, INTEGER_DECIMAL);
77
- if (src[i] === '-') {
78
- sign = -1;
79
- src = src.substring(1);
80
- }
81
- if (src.length <= 0) {
82
- throw error;
83
- }
84
- const re_integer = /^(\d+)?/g;
85
- const result_integer = re_integer.exec(src);
86
- if (result_integer[0].length === 0) {
87
- throw error;
88
- }
89
- num += result_integer[1];
90
- src = src.substring(re_integer.lastIndex);
91
- if (src[0] === '.') {
92
- // decimal
93
- if (num.length > 12) {
94
- throw error;
95
- }
96
- const re_decimal = /^(\.\d+)?/g;
97
- const result_decimal = re_decimal.exec(src);
98
- src = src.substring(re_decimal.lastIndex);
99
- // 9.2. If the number of characters after "." in input_number is greater than three, fail parsing.
100
- if (result_decimal[0].length === 0 || result_decimal[1].length > 4) {
101
- throw error;
102
- }
103
- num += result_decimal[1];
104
- // 7.6. If type is "decimal" and input_number contains more than 16 characters, fail parsing.
105
- if (num.length > 16) {
106
- throw error;
107
- }
108
- value = parseFloat(num) * sign;
109
- }
110
- else {
111
- // integer
112
- // 7.5. If type is "integer" and input_number contains more than 15 characters, fail parsing.
113
- if (num.length > 15) {
114
- throw error;
115
- }
116
- value = parseInt(num) * sign;
117
- if (isInvalidInt(value)) {
118
- throw parseError(num, INTEGER_DECIMAL);
119
- }
120
- }
121
- return parsedValue(value, src);
122
- }
123
- //# sourceMappingURL=parseIntegerOrDecimal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseIntegerOrDecimal.js","sourceRoot":"","sources":["../../src/parse/parseIntegerOrDecimal.ts"],"names":[],"mappings":"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","sourcesContent":["import { INTEGER_DECIMAL } from '../utils/INTEGER_DECIMAL.js';\nimport { isInvalidInt } from '../utils/isInvalidInt.js';\nimport type { ParsedValue } from './ParsedValue.js';\nimport { parsedValue } from './ParsedValue.js';\nimport { parseError } from './parseError.js';\n\n// 4.2.4. Parsing an Integer or Decimal\n//\n// Given an ASCII string as input_string, return an Integer or Decimal.\n// input_string is modified to remove the parsed value.\n//\n// NOTE: This algorithm parses both Integers (Section 3.3.1) and\n// Decimals (Section 3.3.2), and returns the corresponding structure.\n//\n// 1. Let type be \"integer\".\n//\n// 2. Let sign be 1.\n//\n// 3. Let input_number be an empty string.\n//\n// 4. If the first character of input_string is \"-\", consume it and\n// set sign to -1.\n//\n// 5. If input_string is empty, there is an empty integer; fail\n// parsing.\n//\n// 6. If the first character of input_string is not a DIGIT, fail\n// parsing.\n//\n// 7. While input_string is not empty:\n//\n// 1. Let char be the result of consuming the first character of\n// input_string.\n//\n// 2. If char is a DIGIT, append it to input_number.\n//\n// 3. Else, if type is \"integer\" and char is \".\":\n//\n// 1. If input_number contains more than 12 characters, fail\n// parsing.\n//\n// 2. Otherwise, append char to input_number and set type to\n// \"decimal\".\n//\n// 4. Otherwise, prepend char to input_string, and exit the loop.\n//\n// 5. If type is \"integer\" and input_number contains more than 15\n// characters, fail parsing.\n//\n// 6. If type is \"decimal\" and input_number contains more than 16\n// characters, fail parsing.\n//\n// 8. If type is \"integer\":\n//\n// 1. Parse input_number as an integer and let output_number be\n// the product of the result and sign.\n//\n// 2. If output_number is outside the range -999,999,999,999,999\n// to 999,999,999,999,999 inclusive, fail parsing.\n//\n// 9. Otherwise:\n//\n// 1. If the final character of input_number is \".\", fail parsing.\n//\n// 2. If the number of characters after \".\" in input_number is\n// greater than three, fail parsing.\n//\n// 3. Parse input_number as a decimal number and let output_number\n// be the product of the result and sign.\n//\n// 10. Return output_number.\nexport function parseIntegerOrDecimal(src: string): ParsedValue<number> {\n\tconst orig = src;\n\tlet sign = 1;\n\tlet num = '';\n\tlet value;\n\tconst i = 0;\n\tconst error = parseError(orig, INTEGER_DECIMAL);\n\n\tif (src[i] === '-') {\n\t\tsign = -1;\n\t\tsrc = src.substring(1);\n\t}\n\n\tif (src.length <= 0) {\n\t\tthrow error;\n\t}\n\n\tconst re_integer = /^(\\d+)?/g;\n\tconst result_integer = re_integer.exec(src) as any;\n\tif (result_integer[0].length === 0) {\n\t\tthrow error;\n\t}\n\tnum += result_integer[1];\n\tsrc = src.substring(re_integer.lastIndex);\n\n\tif (src[0] === '.') {\n\t\t// decimal\n\t\tif (num.length > 12) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tconst re_decimal = /^(\\.\\d+)?/g;\n\t\tconst result_decimal = re_decimal.exec(src) as any;\n\t\tsrc = src.substring(re_decimal.lastIndex);\n\t\t// 9.2. If the number of characters after \".\" in input_number is greater than three, fail parsing.\n\t\tif (result_decimal[0].length === 0 || result_decimal[1].length > 4) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tnum += result_decimal[1];\n\t\t// 7.6. If type is \"decimal\" and input_number contains more than 16 characters, fail parsing.\n\t\tif (num.length > 16) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tvalue = parseFloat(num) * sign;\n\t}\n\telse {\n\t\t// integer\n\t\t// 7.5. If type is \"integer\" and input_number contains more than 15 characters, fail parsing.\n\t\tif (num.length > 15) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tvalue = parseInt(num) * sign;\n\t\tif (isInvalidInt(value)) {\n\t\t\tthrow parseError(num, INTEGER_DECIMAL);\n\t\t}\n\t}\n\n\treturn parsedValue(value, src);\n}\n"]}
@@ -1,5 +0,0 @@
1
- import type { SfDecodeOptions } from '../SfDecodeOptions.js';
2
- import { SfItem } from '../SfItem.js';
3
- import type { ParsedValue } from './ParsedValue.js';
4
- export declare function parseItem(src: string, options?: SfDecodeOptions): ParsedValue<SfItem>;
5
- //# sourceMappingURL=parseItem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseItem.d.ts","sourceRoot":"","sources":["../../src/parse/parseItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAkBpD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,CAWrF"}
@@ -1,25 +0,0 @@
1
- import { SfItem } from '../SfItem.js';
2
- import { parsedValue } from './ParsedValue.js';
3
- import { parseBareItem } from './parseBareItem.js';
4
- import { parseParameters } from './parseParameters.js';
5
- // 4.2.3. Parsing an Item
6
- //
7
- // Given an ASCII string as input_string, return a (bare_item,
8
- // parameters) tuple. input_string is modified to remove the parsed
9
- // value.
10
- //
11
- // 1. Let bare_item be the result of running Parsing a Bare Item
12
- // (Section 4.2.3.1) with input_string.
13
- //
14
- // 2. Let parameters be the result of running Parsing Parameters
15
- // (Section 4.2.3.2) with input_string.
16
- //
17
- // 3. Return the tuple (bare_item, parameters).
18
- export function parseItem(src, options) {
19
- const parsedBareItem = parseBareItem(src, options);
20
- src = parsedBareItem.src;
21
- const parsedParameters = parseParameters(src, options);
22
- src = parsedParameters.src;
23
- return parsedValue(new SfItem(parsedBareItem.value, parsedParameters.value), src);
24
- }
25
- //# sourceMappingURL=parseItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseItem.js","sourceRoot":"","sources":["../../src/parse/parseItem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,0BAA0B;AAC1B,EAAE;AACF,8DAA8D;AAC9D,mEAAmE;AACnE,SAAS;AACT,EAAE;AACF,iEAAiE;AACjE,2CAA2C;AAC3C,EAAE;AACF,iEAAiE;AACjE,2CAA2C;AAC3C,EAAE;AACF,gDAAgD;AAChD,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,OAAyB;IAC/D,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnD,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC;IAEzB,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACvD,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC;IAE3B,OAAO,WAAW,CACjB,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EACxD,GAAG,CACH,CAAC;AACH,CAAC","sourcesContent":["import type { SfDecodeOptions } from '../SfDecodeOptions.js';\nimport { SfItem } from '../SfItem.js';\nimport type { ParsedValue } from './ParsedValue.js';\nimport { parsedValue } from './ParsedValue.js';\nimport { parseBareItem } from './parseBareItem.js';\nimport { parseParameters } from './parseParameters.js';\n\n// 4.2.3. Parsing an Item\n//\n// Given an ASCII string as input_string, return a (bare_item,\n// parameters) tuple. input_string is modified to remove the parsed\n// value.\n//\n// 1. Let bare_item be the result of running Parsing a Bare Item\n// (Section 4.2.3.1) with input_string.\n//\n// 2. Let parameters be the result of running Parsing Parameters\n// (Section 4.2.3.2) with input_string.\n//\n// 3. Return the tuple (bare_item, parameters).\nexport function parseItem(src: string, options?: SfDecodeOptions): ParsedValue<SfItem> {\n\tconst parsedBareItem = parseBareItem(src, options);\n\tsrc = parsedBareItem.src;\n\n\tconst parsedParameters = parseParameters(src, options);\n\tsrc = parsedParameters.src;\n\n\treturn parsedValue(\n\t\tnew SfItem(parsedBareItem.value, parsedParameters.value),\n\t\tsrc,\n\t);\n}\n"]}
@@ -1,6 +0,0 @@
1
- import type { SfDecodeOptions } from '../SfDecodeOptions.js';
2
- import type { SfInnerList } from '../SfInnerList.js';
3
- import type { SfItem } from '../SfItem.js';
4
- import type { ParsedValue } from './ParsedValue.js';
5
- export declare function parseItemOrInnerList(src: string, options?: SfDecodeOptions): ParsedValue<SfItem | SfInnerList>;
6
- //# sourceMappingURL=parseItemOrInnerList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseItemOrInnerList.d.ts","sourceRoot":"","sources":["../../src/parse/parseItemOrInnerList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAiBpD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,CAM9G"}
@@ -1,22 +0,0 @@
1
- import { parseInnerList } from './parseInnerList.js';
2
- import { parseItem } from './parseItem.js';
3
- // 4.2.1.1. Parsing an Item or Inner List
4
- //
5
- // Given an ASCII string as input_string, return the tuple
6
- // (item_or_inner_list, parameters), where item_or_inner_list can be
7
- // either a single bare item, or an array of (bare_item, parameters)
8
- // tuples. input_string is modified to remove the parsed value.
9
- //
10
- // 1. If the first character of input_string is "(", return the result
11
- // of running Parsing an Inner List (Section 4.2.1.2) with
12
- // input_string.
13
- //
14
- // 2. Return the result of running Parsing an Item (Section 4.2.3) with
15
- // input_string.
16
- export function parseItemOrInnerList(src, options) {
17
- if (src[0] === '(') {
18
- return parseInnerList(src, options);
19
- }
20
- return parseItem(src, options);
21
- }
22
- //# sourceMappingURL=parseItemOrInnerList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseItemOrInnerList.js","sourceRoot":"","sources":["../../src/parse/parseItemOrInnerList.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,0CAA0C;AAC1C,EAAE;AACF,0DAA0D;AAC1D,oEAAoE;AACpE,oEAAoE;AACpE,+DAA+D;AAC/D,EAAE;AACF,uEAAuE;AACvE,8DAA8D;AAC9D,oBAAoB;AACpB,EAAE;AACF,wEAAwE;AACxE,oBAAoB;AACpB,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,OAAyB;IAC1E,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import type { SfDecodeOptions } from '../SfDecodeOptions.js';\nimport type { SfInnerList } from '../SfInnerList.js';\nimport type { SfItem } from '../SfItem.js';\nimport type { ParsedValue } from './ParsedValue.js';\nimport { parseInnerList } from './parseInnerList.js';\nimport { parseItem } from './parseItem.js';\n\n// 4.2.1.1. Parsing an Item or Inner List\n//\n// Given an ASCII string as input_string, return the tuple\n// (item_or_inner_list, parameters), where item_or_inner_list can be\n// either a single bare item, or an array of (bare_item, parameters)\n// tuples. input_string is modified to remove the parsed value.\n//\n// 1. If the first character of input_string is \"(\", return the result\n// of running Parsing an Inner List (Section 4.2.1.2) with\n// input_string.\n//\n// 2. Return the result of running Parsing an Item (Section 4.2.3) with\n// input_string.\nexport function parseItemOrInnerList(src: string, options?: SfDecodeOptions): ParsedValue<SfItem | SfInnerList> {\n\tif (src[0] === '(') {\n\t\treturn parseInnerList(src, options);\n\t}\n\n\treturn parseItem(src, options);\n}\n"]}
@@ -1,3 +0,0 @@
1
- import type { ParsedValue } from './ParsedValue.js';
2
- export declare function parseKey(src: string): ParsedValue<string>;
3
- //# sourceMappingURL=parseKey.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseKey.d.ts","sourceRoot":"","sources":["../../src/parse/parseKey.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAyBpD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAkBzD"}
@@ -1,40 +0,0 @@
1
- import { KEY } from '../utils/KEY.js';
2
- import { parsedValue } from './ParsedValue.js';
3
- import { parseError } from './parseError.js';
4
- // 4.2.3.3. Parsing a Key
5
- //
6
- // Given an ASCII string as input_string, return a key. input_string is
7
- // modified to remove the parsed value.
8
- //
9
- // 1. If the first character of input_string is not lcalpha or "*",
10
- // fail parsing.
11
- //
12
- // 2. Let output_string be an empty string.
13
- //
14
- // 3. While input_string is not empty:
15
- //
16
- // 1. If the first character of input_string is not one of lcalpha,
17
- // DIGIT, "_", "-", ".", or "*", return output_string.
18
- //
19
- // 2. Let char be the result of consuming the first character of
20
- // input_string.
21
- //
22
- // 3. Append char to output_string.
23
- //
24
- // 4. Return output_string.
25
- export function parseKey(src) {
26
- let i = 0;
27
- if (/^[a-z*]$/.test(src[i]) === false) {
28
- throw parseError(src, KEY);
29
- }
30
- let value = '';
31
- while (src.length > i) {
32
- if (/^[a-z0-9_\-.*]$/.test(src[i]) === false) {
33
- return parsedValue(value, src.substring(i));
34
- }
35
- value += src[i];
36
- i++;
37
- }
38
- return parsedValue(value, src.substring(i));
39
- }
40
- //# sourceMappingURL=parseKey.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseKey.js","sourceRoot":"","sources":["../../src/parse/parseKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,0BAA0B;AAC1B,EAAE;AACF,uEAAuE;AACvE,uCAAuC;AACvC,EAAE;AACF,oEAAoE;AACpE,oBAAoB;AACpB,EAAE;AACF,4CAA4C;AAC5C,EAAE;AACF,uCAAuC;AACvC,EAAE;AACF,wEAAwE;AACxE,8DAA8D;AAC9D,EAAE;AACF,qEAAqE;AACrE,wBAAwB;AACxB,EAAE;AACF,wCAAwC;AACxC,EAAE;AACF,4BAA4B;AAC5B,MAAM,UAAU,QAAQ,CAAC,GAAW;IACnC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACvC,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YAC9C,OAAO,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,EAAE,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["import { KEY } from '../utils/KEY.js';\nimport type { ParsedValue } from './ParsedValue.js';\nimport { parsedValue } from './ParsedValue.js';\nimport { parseError } from './parseError.js';\n\n// 4.2.3.3. Parsing a Key\n//\n// Given an ASCII string as input_string, return a key. input_string is\n// modified to remove the parsed value.\n//\n// 1. If the first character of input_string is not lcalpha or \"*\",\n// fail parsing.\n//\n// 2. Let output_string be an empty string.\n//\n// 3. While input_string is not empty:\n//\n// 1. If the first character of input_string is not one of lcalpha,\n// DIGIT, \"_\", \"-\", \".\", or \"*\", return output_string.\n//\n// 2. Let char be the result of consuming the first character of\n// input_string.\n//\n// 3. Append char to output_string.\n//\n// 4. Return output_string.\nexport function parseKey(src: string): ParsedValue<string> {\n\tlet i = 0;\n\tif (/^[a-z*]$/.test(src[i]) === false) {\n\t\tthrow parseError(src, KEY);\n\t}\n\n\tlet value = '';\n\n\twhile (src.length > i) {\n\t\tif (/^[a-z0-9_\\-.*]$/.test(src[i]) === false) {\n\t\t\treturn parsedValue(value, src.substring(i));\n\t\t}\n\n\t\tvalue += src[i];\n\t\ti++;\n\t}\n\n\treturn parsedValue(value, src.substring(i));\n}\n"]}
@@ -1,5 +0,0 @@
1
- import type { SfDecodeOptions } from '../SfDecodeOptions.js';
2
- import type { SfMember } from '../SfMember.js';
3
- import type { ParsedValue } from './ParsedValue.js';
4
- export declare function parseList(src: string, options?: SfDecodeOptions): ParsedValue<SfMember[]>;
5
- //# sourceMappingURL=parseList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseList.d.ts","sourceRoot":"","sources":["../../src/parse/parseList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAgCpD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,CAqBzF"}
@@ -1,51 +0,0 @@
1
- import { LIST } from '../utils/LIST.js';
2
- import { parsedValue } from './ParsedValue.js';
3
- import { parseError } from './parseError.js';
4
- import { parseItemOrInnerList } from './parseItemOrInnerList.js';
5
- // 4.2.1. Parsing a List
6
- //
7
- // Given an ASCII string as input_string, return an array of
8
- // (item_or_inner_list, parameters) tuples. input_string is modified to
9
- // remove the parsed value.
10
- //
11
- // 1. Let members be an empty array.
12
- //
13
- // 2. While input_string is not empty:
14
- //
15
- // 1. Append the result of running Parsing an Item or Inner List
16
- // (Section 4.2.1.1) with input_string to members.
17
- //
18
- // 2. Discard any leading OWS characters from input_string.
19
- //
20
- // 3. If input_string is empty, return members.
21
- //
22
- // 4. Consume the first character of input_string; if it is not
23
- // ",", fail parsing.
24
- //
25
- // 5. Discard any leading OWS characters from input_string.
26
- //
27
- // 6. If input_string is empty, there is a trailing comma; fail
28
- // parsing.
29
- //
30
- // 3. No structured data has been found; return members (which is
31
- // empty).
32
- export function parseList(src, options) {
33
- const value = [];
34
- while (src.length > 0) {
35
- const parsedItemOrInnerList = parseItemOrInnerList(src, options);
36
- value.push(parsedItemOrInnerList.value);
37
- src = parsedItemOrInnerList.src.trim();
38
- if (src.length === 0) {
39
- return parsedValue(value, src);
40
- }
41
- if (src[0] !== ',') {
42
- throw parseError(src, LIST);
43
- }
44
- src = src.substring(1).trim();
45
- if (src.length === 0 || src[0] === ',') {
46
- throw parseError(src, LIST);
47
- }
48
- }
49
- return parsedValue(value, src);
50
- }
51
- //# sourceMappingURL=parseList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseList.js","sourceRoot":"","sources":["../../src/parse/parseList.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,yBAAyB;AACzB,EAAE;AACF,4DAA4D;AAC5D,uEAAuE;AACvE,2BAA2B;AAC3B,EAAE;AACF,qCAAqC;AACrC,EAAE;AACF,uCAAuC;AACvC,EAAE;AACF,qEAAqE;AACrE,0DAA0D;AAC1D,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,oEAAoE;AACpE,6BAA6B;AAC7B,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,oEAAoE;AACpE,mBAAmB;AACnB,EAAE;AACF,kEAAkE;AAClE,cAAc;AACd,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,OAAyB;IAC/D,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAExC,GAAG,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACpB,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACxC,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import type { SfDecodeOptions } from '../SfDecodeOptions.js';\nimport type { SfMember } from '../SfMember.js';\nimport { LIST } from '../utils/LIST.js';\nimport type { ParsedValue } from './ParsedValue.js';\nimport { parsedValue } from './ParsedValue.js';\nimport { parseError } from './parseError.js';\nimport { parseItemOrInnerList } from './parseItemOrInnerList.js';\n\n// 4.2.1. Parsing a List\n//\n// Given an ASCII string as input_string, return an array of\n// (item_or_inner_list, parameters) tuples. input_string is modified to\n// remove the parsed value.\n//\n// 1. Let members be an empty array.\n//\n// 2. While input_string is not empty:\n//\n// 1. Append the result of running Parsing an Item or Inner List\n// (Section 4.2.1.1) with input_string to members.\n//\n// 2. Discard any leading OWS characters from input_string.\n//\n// 3. If input_string is empty, return members.\n//\n// 4. Consume the first character of input_string; if it is not\n// \",\", fail parsing.\n//\n// 5. Discard any leading OWS characters from input_string.\n//\n// 6. If input_string is empty, there is a trailing comma; fail\n// parsing.\n//\n// 3. No structured data has been found; return members (which is\n// empty).\nexport function parseList(src: string, options?: SfDecodeOptions): ParsedValue<SfMember[]> {\n\tconst value: SfMember[] = [];\n\twhile (src.length > 0) {\n\t\tconst parsedItemOrInnerList = parseItemOrInnerList(src, options);\n\t\tvalue.push(parsedItemOrInnerList.value);\n\n\t\tsrc = parsedItemOrInnerList.src.trim();\n\t\tif (src.length === 0) {\n\t\t\treturn parsedValue(value, src);\n\t\t}\n\n\t\tif (src[0] !== ',') {\n\t\t\tthrow parseError(src, LIST);\n\t\t}\n\n\t\tsrc = src.substring(1).trim();\n\t\tif (src.length === 0 || src[0] === ',') {\n\t\t\tthrow parseError(src, LIST);\n\t\t}\n\t}\n\treturn parsedValue(value, src);\n}\n"]}
@@ -1,5 +0,0 @@
1
- import type { SfDecodeOptions } from '../SfDecodeOptions.js';
2
- import type { SfParameters } from '../SfParameters.js';
3
- import type { ParsedValue } from './ParsedValue.js';
4
- export declare function parseParameters(src: string, options?: SfDecodeOptions): ParsedValue<SfParameters | undefined>;
5
- //# sourceMappingURL=parseParameters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseParameters.d.ts","sourceRoot":"","sources":["../../src/parse/parseParameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA2CpD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC,YAAY,GAAG,SAAS,CAAC,CA6B7G"}