@svta/cml-structured-field-values 0.19.0 → 0.20.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 +24 -0
  2. package/dist/index.d.ts +395 -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 +5 -24
  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,74 +0,0 @@
1
- import { SfItem } from '../SfItem.js';
2
- import { DICT } from '../utils/DICT.js';
3
- import { serializeError } from './serializeError.js';
4
- import { serializeInnerList } from './serializeInnerList.js';
5
- import { serializeItem } from './serializeItem.js';
6
- import { serializeKey } from './serializeKey.js';
7
- import { serializeParams } from './serializeParams.js';
8
- // 4.1.2. Serializing a Dictionary
9
- //
10
- // Given an ordered Dictionary as input_dictionary (each member having a
11
- // member_name and a tuple value of (member_value, parameters)), return
12
- // an ASCII string suitable for use in a HTTP field value.
13
- //
14
- // 1. Let output be an empty string.
15
- //
16
- // 2. For each member_name with a value of (member_value, parameters)
17
- // in input_dictionary:
18
- //
19
- // 1. Append the result of running Serializing a Key
20
- // (Section 4.1.1.3) with member's member_name to output.
21
- //
22
- // 2. If member_value is Boolean true:
23
- //
24
- // 1. Append the result of running Serializing Parameters
25
- // (Section 4.1.1.2) with parameters to output.
26
- //
27
- // 3. Otherwise:
28
- //
29
- // 1. Append "=" to output.
30
- //
31
- // 2. If member_value is an array, append the result of running
32
- // Serializing an Inner List (Section 4.1.1.1) with
33
- // (member_value, parameters) to output.
34
- //
35
- // 3. Otherwise, append the result of running Serializing an
36
- // Item (Section 4.1.3) with (member_value, parameters) to
37
- // output.
38
- //
39
- // 4. If more members remain in input_dictionary:
40
- //
41
- // 1. Append "," to output.
42
- //
43
- // 2. Append a single SP to output.
44
- //
45
- // 3. Return output.
46
- export function serializeDict(dict, options = { whitespace: true }) {
47
- if (typeof dict !== 'object' || dict == null) {
48
- throw serializeError(dict, DICT);
49
- }
50
- const entries = dict instanceof Map ? dict.entries() : Object.entries(dict);
51
- const optionalWhiteSpace = (options === null || options === void 0 ? void 0 : options.whitespace) ? ' ' : '';
52
- return Array.from(entries)
53
- .map(([key, item]) => {
54
- if (item instanceof SfItem === false) {
55
- item = new SfItem(item);
56
- }
57
- let output = serializeKey(key);
58
- if (item.value === true) {
59
- output += serializeParams(item.params);
60
- }
61
- else {
62
- output += '=';
63
- if (Array.isArray(item.value)) {
64
- output += serializeInnerList(item);
65
- }
66
- else {
67
- output += serializeItem(item);
68
- }
69
- }
70
- return output;
71
- })
72
- .join(`,${optionalWhiteSpace}`);
73
- }
74
- //# sourceMappingURL=serializeDict.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeDict.js","sourceRoot":"","sources":["../../src/serialize/serializeDict.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,mCAAmC;AACnC,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,0DAA0D;AAC1D,EAAE;AACF,qCAAqC;AACrC,EAAE;AACF,sEAAsE;AACtE,2BAA2B;AAC3B,EAAE;AACF,yDAAyD;AACzD,iEAAiE;AACjE,EAAE;AACF,2CAA2C;AAC3C,EAAE;AACF,kEAAkE;AAClE,2DAA2D;AAC3D,EAAE;AACF,qBAAqB;AACrB,EAAE;AACF,oCAAoC;AACpC,EAAE;AACF,wEAAwE;AACxE,+DAA+D;AAC/D,oDAAoD;AACpD,EAAE;AACF,qEAAqE;AACrE,sEAAsE;AACtE,sBAAsB;AACtB,EAAE;AACF,sDAAsD;AACtD,EAAE;AACF,oCAAoC;AACpC,EAAE;AACF,4CAA4C;AAC5C,EAAE;AACF,qBAAqB;AACrB,MAAM,UAAU,aAAa,CAAC,IAA4C,EAAE,UAA2B,EAAE,UAAU,EAAE,IAAI,EAAE;IAC1H,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QAC9C,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,MAAM,kBAAkB,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1D,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACpB,IAAI,IAAI,YAAY,MAAM,KAAK,KAAK,EAAE,CAAC;YACtC,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;aACI,CAAC;YACL,MAAM,IAAI,GAAG,CAAC;YACd,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;iBACI,CAAC;gBACL,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;AAClC,CAAC","sourcesContent":["import type { SfEncodeOptions } from '../SfEncodeOptions.js';\nimport { SfItem } from '../SfItem.js';\nimport { DICT } from '../utils/DICT.js';\nimport { serializeError } from './serializeError.js';\nimport { serializeInnerList } from './serializeInnerList.js';\nimport { serializeItem } from './serializeItem.js';\nimport { serializeKey } from './serializeKey.js';\nimport { serializeParams } from './serializeParams.js';\n\n// 4.1.2. Serializing a Dictionary\n//\n// Given an ordered Dictionary as input_dictionary (each member having a\n// member_name and a tuple value of (member_value, parameters)), return\n// an ASCII string suitable for use in a HTTP field value.\n//\n// 1. Let output be an empty string.\n//\n// 2. For each member_name with a value of (member_value, parameters)\n// in input_dictionary:\n//\n// 1. Append the result of running Serializing a Key\n// (Section 4.1.1.3) with member's member_name to output.\n//\n// 2. If member_value is Boolean true:\n//\n// 1. Append the result of running Serializing Parameters\n// (Section 4.1.1.2) with parameters to output.\n//\n// 3. Otherwise:\n//\n// 1. Append \"=\" to output.\n//\n// 2. If member_value is an array, append the result of running\n// Serializing an Inner List (Section 4.1.1.1) with\n// (member_value, parameters) to output.\n//\n// 3. Otherwise, append the result of running Serializing an\n// Item (Section 4.1.3) with (member_value, parameters) to\n// output.\n//\n// 4. If more members remain in input_dictionary:\n//\n// 1. Append \",\" to output.\n//\n// 2. Append a single SP to output.\n//\n// 3. Return output.\nexport function serializeDict(dict: Record<string, any> | Map<string, any>, options: SfEncodeOptions = { whitespace: true }): string {\n\tif (typeof dict !== 'object' || dict == null) {\n\t\tthrow serializeError(dict, DICT);\n\t}\n\n\tconst entries = dict instanceof Map ? dict.entries() : Object.entries(dict);\n\tconst optionalWhiteSpace = options?.whitespace ? ' ' : '';\n\n\treturn Array.from(entries)\n\t\t.map(([key, item]) => {\n\t\t\tif (item instanceof SfItem === false) {\n\t\t\t\titem = new SfItem(item);\n\t\t\t}\n\t\t\tlet output = serializeKey(key);\n\t\t\tif (item.value === true) {\n\t\t\t\toutput += serializeParams(item.params);\n\t\t\t}\n\t\t\telse {\n\t\t\t\toutput += '=';\n\t\t\t\tif (Array.isArray(item.value)) {\n\t\t\t\t\toutput += serializeInnerList(item);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\toutput += serializeItem(item);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn output;\n\t\t})\n\t\t.join(`,${optionalWhiteSpace}`);\n}\n"]}
@@ -1,2 +0,0 @@
1
- export declare function serializeError(src: any, type: string, cause?: any): Error;
2
- //# sourceMappingURL=serializeError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeError.d.ts","sourceRoot":"","sources":["../../src/serialize/serializeError.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAEzE"}
@@ -1,5 +0,0 @@
1
- import { throwError } from '../utils/throwError.js';
2
- export function serializeError(src, type, cause) {
3
- return throwError('serialize', src, type, cause);
4
- }
5
- //# sourceMappingURL=serializeError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeError.js","sourceRoot":"","sources":["../../src/serialize/serializeError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,UAAU,cAAc,CAAC,GAAQ,EAAE,IAAY,EAAE,KAAW;IACjE,OAAO,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC","sourcesContent":["import { throwError } from '../utils/throwError.js';\n\nexport function serializeError(src: any, type: string, cause?: any): Error {\n\treturn throwError('serialize', src, type, cause);\n}\n"]}
@@ -1,3 +0,0 @@
1
- import type { SfInnerList } from '../SfInnerList.js';
2
- export declare function serializeInnerList(value: SfInnerList): string;
3
- //# sourceMappingURL=serializeInnerList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeInnerList.d.ts","sourceRoot":"","sources":["../../src/serialize/serializeInnerList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA0BrD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,UAEpD"}
@@ -1,28 +0,0 @@
1
- import { serializeItem } from './serializeItem.js';
2
- import { serializeParams } from './serializeParams.js';
3
- // 4.1.1.1. Serializing an Inner List
4
- //
5
- // Given an array of (member_value, parameters) tuples as inner_list,
6
- // and parameters as list_parameters, return an ASCII string suitable
7
- // for use in a HTTP field value.
8
- //
9
- // 1. Let output be the string "(".
10
- //
11
- // 2. For each (member_value, parameters) of inner_list:
12
- //
13
- // 1. Append the result of running Serializing an Item
14
- // (Section 4.1.3) with (member_value, parameters) to output.
15
- //
16
- // 2. If more values remain in inner_list, append a single SP to
17
- // output.
18
- //
19
- // 3. Append ")" to output.
20
- //
21
- // 4. Append the result of running Serializing Parameters
22
- // (Section 4.1.1.2) with list_parameters to output.
23
- //
24
- // 5. Return output.
25
- export function serializeInnerList(value) {
26
- return `(${value.value.map(serializeItem).join(' ')})${serializeParams(value.params)}`;
27
- }
28
- //# sourceMappingURL=serializeInnerList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeInnerList.js","sourceRoot":"","sources":["../../src/serialize/serializeInnerList.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,sCAAsC;AACtC,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AACrE,iCAAiC;AACjC,EAAE;AACF,oCAAoC;AACpC,EAAE;AACF,yDAAyD;AACzD,EAAE;AACF,2DAA2D;AAC3D,qEAAqE;AACrE,EAAE;AACF,qEAAqE;AACrE,kBAAkB;AAClB,EAAE;AACF,4BAA4B;AAC5B,EAAE;AACF,0DAA0D;AAC1D,wDAAwD;AACxD,EAAE;AACF,qBAAqB;AACrB,MAAM,UAAU,kBAAkB,CAAC,KAAkB;IACpD,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;AACxF,CAAC","sourcesContent":["import type { SfInnerList } from '../SfInnerList.js';\nimport { serializeItem } from './serializeItem.js';\nimport { serializeParams } from './serializeParams.js';\n\n// 4.1.1.1. Serializing an Inner List\n//\n// Given an array of (member_value, parameters) tuples as inner_list,\n// and parameters as list_parameters, return an ASCII string suitable\n// for use in a HTTP field value.\n//\n// 1. Let output be the string \"(\".\n//\n// 2. For each (member_value, parameters) of inner_list:\n//\n// 1. Append the result of running Serializing an Item\n// (Section 4.1.3) with (member_value, parameters) to output.\n//\n// 2. If more values remain in inner_list, append a single SP to\n// output.\n//\n// 3. Append \")\" to output.\n//\n// 4. Append the result of running Serializing Parameters\n// (Section 4.1.1.2) with list_parameters to output.\n//\n// 5. Return output.\nexport function serializeInnerList(value: SfInnerList) {\n\treturn `(${value.value.map(serializeItem).join(' ')})${serializeParams(value.params)}`;\n}\n"]}
@@ -1,2 +0,0 @@
1
- export declare function serializeInteger(value: number): string;
2
- //# sourceMappingURL=serializeInteger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeInteger.d.ts","sourceRoot":"","sources":["../../src/serialize/serializeInteger.ts"],"names":[],"mappings":"AAsBA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMtD"}
@@ -1,28 +0,0 @@
1
- import { INTEGER } from '../utils/INTEGER.js';
2
- import { isInvalidInt } from '../utils/isInvalidInt.js';
3
- import { serializeError } from './serializeError.js';
4
- // 4.1.4. Serializing an Integer
5
- //
6
- // Given an Integer as input_integer, return an ASCII string suitable
7
- // for use in a HTTP field value.
8
- //
9
- // 1. If input_integer is not an integer in the range of
10
- // -999,999,999,999,999 to 999,999,999,999,999 inclusive, fail
11
- // serialization.
12
- //
13
- // 2. Let output be an empty string.
14
- //
15
- // 3. If input_integer is less than (but not equal to) 0, append "-" to
16
- // output.
17
- //
18
- // 4. Append input_integer's numeric value represented in base 10 using
19
- // only decimal digits to output.
20
- //
21
- // 5. Return output.
22
- export function serializeInteger(value) {
23
- if (isInvalidInt(value)) {
24
- throw serializeError(value, INTEGER);
25
- }
26
- return value.toString();
27
- }
28
- //# sourceMappingURL=serializeInteger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeInteger.js","sourceRoot":"","sources":["../../src/serialize/serializeInteger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,iCAAiC;AACjC,EAAE;AACF,qEAAqE;AACrE,iCAAiC;AACjC,EAAE;AACF,yDAAyD;AACzD,kEAAkE;AAClE,qBAAqB;AACrB,EAAE;AACF,qCAAqC;AACrC,EAAE;AACF,wEAAwE;AACxE,cAAc;AACd,EAAE;AACF,wEAAwE;AACxE,qCAAqC;AACrC,EAAE;AACF,qBAAqB;AACrB,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC7C,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC","sourcesContent":["import { INTEGER } from '../utils/INTEGER.js';\nimport { isInvalidInt } from '../utils/isInvalidInt.js';\nimport { serializeError } from './serializeError.js';\n\n// 4.1.4. Serializing an Integer\n//\n// Given an Integer as input_integer, return an ASCII string suitable\n// for use in a HTTP field value.\n//\n// 1. If input_integer is not an integer in the range of\n// -999,999,999,999,999 to 999,999,999,999,999 inclusive, fail\n// serialization.\n//\n// 2. Let output be an empty string.\n//\n// 3. If input_integer is less than (but not equal to) 0, append \"-\" to\n// output.\n//\n// 4. Append input_integer's numeric value represented in base 10 using\n// only decimal digits to output.\n//\n// 5. Return output.\nexport function serializeInteger(value: number): string {\n\tif (isInvalidInt(value)) {\n\t\tthrow serializeError(value, INTEGER);\n\t}\n\n\treturn value.toString();\n}\n"]}
@@ -1,4 +0,0 @@
1
- import type { SfBareItem } from '../SfBareItem.js';
2
- import { SfItem } from '../SfItem.js';
3
- export declare function serializeItem(value: SfItem | SfBareItem): string;
4
- //# sourceMappingURL=serializeItem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeItem.d.ts","sourceRoot":"","sources":["../../src/serialize/serializeItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAkBtC,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAOhE"}
@@ -1,26 +0,0 @@
1
- import { SfItem } from '../SfItem.js';
2
- import { serializeBareItem } from './serializeBareItem.js';
3
- import { serializeParams } from './serializeParams.js';
4
- // 4.1.3. Serializing an Item
5
- //
6
- // Given an Item as bare_item and Parameters as item_parameters, return
7
- // an ASCII string suitable for use in a HTTP field value.
8
- //
9
- // 1. Let output be an empty string.
10
- //
11
- // 2. Append the result of running Serializing a Bare Item
12
- // Section 4.1.3.1 with bare_item to output.
13
- //
14
- // 3. Append the result of running Serializing Parameters
15
- // Section 4.1.1.2 with item_parameters to output.
16
- //
17
- // 4. Return output.
18
- export function serializeItem(value) {
19
- if (value instanceof SfItem) {
20
- return `${serializeBareItem(value.value)}${serializeParams(value.params)}`;
21
- }
22
- else {
23
- return serializeBareItem(value);
24
- }
25
- }
26
- //# sourceMappingURL=serializeItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeItem.js","sourceRoot":"","sources":["../../src/serialize/serializeItem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,8BAA8B;AAC9B,EAAE;AACF,uEAAuE;AACvE,0DAA0D;AAC1D,EAAE;AACF,qCAAqC;AACrC,EAAE;AACF,2DAA2D;AAC3D,gDAAgD;AAChD,EAAE;AACF,0DAA0D;AAC1D,sDAAsD;AACtD,EAAE;AACF,qBAAqB;AACrB,MAAM,UAAU,aAAa,CAAC,KAA0B;IACvD,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QAC7B,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5E,CAAC;SACI,CAAC;QACL,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACF,CAAC","sourcesContent":["import type { SfBareItem } from '../SfBareItem.js';\nimport { SfItem } from '../SfItem.js';\nimport { serializeBareItem } from './serializeBareItem.js';\nimport { serializeParams } from './serializeParams.js';\n\n// 4.1.3. Serializing an Item\n//\n// Given an Item as bare_item and Parameters as item_parameters, return\n// an ASCII string suitable for use in a HTTP field value.\n//\n// 1. Let output be an empty string.\n//\n// 2. Append the result of running Serializing a Bare Item\n// Section 4.1.3.1 with bare_item to output.\n//\n// 3. Append the result of running Serializing Parameters\n// Section 4.1.1.2 with item_parameters to output.\n//\n// 4. Return output.\nexport function serializeItem(value: SfItem | SfBareItem): string {\n\tif (value instanceof SfItem) {\n\t\treturn `${serializeBareItem(value.value)}${serializeParams(value.params)}`;\n\t}\n\telse {\n\t\treturn serializeBareItem(value);\n\t}\n}\n"]}
@@ -1,2 +0,0 @@
1
- export declare function serializeKey(value: string): string;
2
- //# sourceMappingURL=serializeKey.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeKey.d.ts","sourceRoot":"","sources":["../../src/serialize/serializeKey.ts"],"names":[],"mappings":"AAsBA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKlD"}
@@ -1,28 +0,0 @@
1
- import { KEY } from '../utils/KEY.js';
2
- import { serializeError } from './serializeError.js';
3
- // 4.1.1.3. Serializing a Key
4
- //
5
- // Given a key as input_key, return an ASCII string suitable for use in
6
- // a HTTP field value.
7
- //
8
- // 1. Convert input_key into a sequence of ASCII characters; if
9
- // conversion fails, fail serialization.
10
- //
11
- // 2. If input_key contains characters not in lcalpha, DIGIT, "_", "-",
12
- // ".", or "*" fail serialization.
13
- //
14
- // 3. If the first character of input_key is not lcalpha or "*", fail
15
- // serialization.
16
- //
17
- // 4. Let output be an empty string.
18
- //
19
- // 5. Append input_key to output.
20
- //
21
- // 6. Return output.
22
- export function serializeKey(value) {
23
- if (/^[a-z*][a-z0-9\-_.*]*$/.test(value) === false) {
24
- throw serializeError(value, KEY);
25
- }
26
- return value;
27
- }
28
- //# sourceMappingURL=serializeKey.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeKey.js","sourceRoot":"","sources":["../../src/serialize/serializeKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,8BAA8B;AAC9B,EAAE;AACF,uEAAuE;AACvE,sBAAsB;AACtB,EAAE;AACF,gEAAgE;AAChE,4CAA4C;AAC5C,EAAE;AACF,wEAAwE;AACxE,sCAAsC;AACtC,EAAE;AACF,sEAAsE;AACtE,qBAAqB;AACrB,EAAE;AACF,qCAAqC;AACrC,EAAE;AACF,kCAAkC;AAClC,EAAE;AACF,qBAAqB;AACrB,MAAM,UAAU,YAAY,CAAC,KAAa;IACzC,IAAI,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;QACpD,MAAM,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC","sourcesContent":["import { KEY } from '../utils/KEY.js';\nimport { serializeError } from './serializeError.js';\n\n// 4.1.1.3. Serializing a Key\n//\n// Given a key as input_key, return an ASCII string suitable for use in\n// a HTTP field value.\n//\n// 1. Convert input_key into a sequence of ASCII characters; if\n// conversion fails, fail serialization.\n//\n// 2. If input_key contains characters not in lcalpha, DIGIT, \"_\", \"-\",\n// \".\", or \"*\" fail serialization.\n//\n// 3. If the first character of input_key is not lcalpha or \"*\", fail\n// serialization.\n//\n// 4. Let output be an empty string.\n//\n// 5. Append input_key to output.\n//\n// 6. Return output.\nexport function serializeKey(value: string): string {\n\tif (/^[a-z*][a-z0-9\\-_.*]*$/.test(value) === false) {\n\t\tthrow serializeError(value, KEY);\n\t}\n\treturn value;\n}\n"]}
@@ -1,4 +0,0 @@
1
- import type { SfEncodeOptions } from '../SfEncodeOptions.js';
2
- import type { SfMember } from '../SfMember.js';
3
- export declare function serializeList(list: SfMember[], options?: SfEncodeOptions): string;
4
- //# sourceMappingURL=serializeList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeList.d.ts","sourceRoot":"","sources":["../../src/serialize/serializeList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA6B/C,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,GAAE,eAAsC,GAAG,MAAM,CAsBvG"}
@@ -1,48 +0,0 @@
1
- import { SfItem } from '../SfItem.js';
2
- import { LIST } from '../utils/LIST.js';
3
- import { serializeError } from './serializeError.js';
4
- import { serializeInnerList } from './serializeInnerList.js';
5
- import { serializeItem } from './serializeItem.js';
6
- // 4.1.1. Serializing a List
7
- //
8
- // Given an array of (member_value, parameters) tuples as input_list,
9
- // return an ASCII string suitable for use in a HTTP field value.
10
- //
11
- // 1. Let output be an empty string.
12
- //
13
- // 2. For each (member_value, parameters) of input_list:
14
- //
15
- // 1. If member_value is an array, append the result of running
16
- // Serializing an Inner List (Section 4.1.1.1) with
17
- // (member_value, parameters) to output.
18
- //
19
- // 2. Otherwise, append the result of running Serializing an Item
20
- // (Section 4.1.3) with (member_value, parameters) to output.
21
- //
22
- // 3. If more member_values remain in input_list:
23
- //
24
- // 1. Append "," to output.
25
- //
26
- // 2. Append a single SP to output.
27
- //
28
- // 3. Return output.
29
- export function serializeList(list, options = { whitespace: true }) {
30
- if (Array.isArray(list) === false) {
31
- throw serializeError(list, LIST);
32
- }
33
- const optionalWhiteSpace = (options === null || options === void 0 ? void 0 : options.whitespace) ? ' ' : '';
34
- return list
35
- .map(item => {
36
- if (item instanceof SfItem === false) {
37
- item = new SfItem(item);
38
- }
39
- // TODO: Fix this type assertion
40
- const i = item;
41
- if (Array.isArray(i.value)) {
42
- return serializeInnerList(i);
43
- }
44
- return serializeItem(i);
45
- })
46
- .join(`,${optionalWhiteSpace}`);
47
- }
48
- //# sourceMappingURL=serializeList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeList.js","sourceRoot":"","sources":["../../src/serialize/serializeList.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,6BAA6B;AAC7B,EAAE;AACF,qEAAqE;AACrE,iEAAiE;AACjE,EAAE;AACF,qCAAqC;AACrC,EAAE;AACF,yDAAyD;AACzD,EAAE;AACF,oEAAoE;AACpE,2DAA2D;AAC3D,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,EAAE;AACF,sDAAsD;AACtD,EAAE;AACF,oCAAoC;AACpC,EAAE;AACF,4CAA4C;AAC5C,EAAE;AACF,qBAAqB;AACrB,MAAM,UAAU,aAAa,CAAC,IAAgB,EAAE,UAA2B,EAAE,UAAU,EAAE,IAAI,EAAE;IAC9F,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QACnC,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,kBAAkB,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1D,OAAO,IAAI;SACT,GAAG,CAAC,IAAI,CAAC,EAAE;QACX,IAAI,IAAI,YAAY,MAAM,KAAK,KAAK,EAAE,CAAC;YACtC,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,gCAAgC;QAChC,MAAM,CAAC,GAAG,IAAW,CAAC;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;AAClC,CAAC","sourcesContent":["import type { SfEncodeOptions } from '../SfEncodeOptions.js';\nimport { SfItem } from '../SfItem.js';\nimport type { SfMember } from '../SfMember.js';\nimport { LIST } from '../utils/LIST.js';\nimport { serializeError } from './serializeError.js';\nimport { serializeInnerList } from './serializeInnerList.js';\nimport { serializeItem } from './serializeItem.js';\n\n// 4.1.1. Serializing a List\n//\n// Given an array of (member_value, parameters) tuples as input_list,\n// return an ASCII string suitable for use in a HTTP field value.\n//\n// 1. Let output be an empty string.\n//\n// 2. For each (member_value, parameters) of input_list:\n//\n// 1. If member_value is an array, append the result of running\n// Serializing an Inner List (Section 4.1.1.1) with\n// (member_value, parameters) to output.\n//\n// 2. Otherwise, append the result of running Serializing an Item\n// (Section 4.1.3) with (member_value, parameters) to output.\n//\n// 3. If more member_values remain in input_list:\n//\n// 1. Append \",\" to output.\n//\n// 2. Append a single SP to output.\n//\n// 3. Return output.\nexport function serializeList(list: SfMember[], options: SfEncodeOptions = { whitespace: true }): string {\n\tif (Array.isArray(list) === false) {\n\t\tthrow serializeError(list, LIST);\n\t}\n\n\tconst optionalWhiteSpace = options?.whitespace ? ' ' : '';\n\n\treturn list\n\t\t.map(item => {\n\t\t\tif (item instanceof SfItem === false) {\n\t\t\t\titem = new SfItem(item);\n\t\t\t}\n\n\t\t\t// TODO: Fix this type assertion\n\t\t\tconst i = item as any;\n\t\t\tif (Array.isArray(i.value)) {\n\t\t\t\treturn serializeInnerList(i);\n\t\t\t}\n\n\t\t\treturn serializeItem(i);\n\t\t})\n\t\t.join(`,${optionalWhiteSpace}`);\n}\n"]}
@@ -1,2 +0,0 @@
1
- export declare function serializeParams(params?: Record<string, any>): string;
2
- //# sourceMappingURL=serializeParams.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeParams.d.ts","sourceRoot":"","sources":["../../src/serialize/serializeParams.ts"],"names":[],"mappings":"AA2BA,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAcpE"}
@@ -1,40 +0,0 @@
1
- import { serializeBareItem } from './serializeBareItem.js';
2
- import { serializeKey } from './serializeKey.js';
3
- // 4.1.1.2. Serializing Parameters
4
- //
5
- // Given an ordered Dictionary as input_parameters (each member having a
6
- // param_name and a param_value), return an ASCII string suitable for
7
- // use in a HTTP field value.
8
- //
9
- // 1. Let output be an empty string.
10
- //
11
- // 2. For each param_name with a value of param_value in
12
- // input_parameters:
13
- //
14
- // 1. Append ";" to output.
15
- //
16
- // 2. Append the result of running Serializing a Key
17
- // (Section 4.1.1.3) with param_name to output.
18
- //
19
- // 3. If param_value is not Boolean true:
20
- //
21
- // 1. Append "=" to output.
22
- //
23
- // 2. Append the result of running Serializing a bare Item
24
- // (Section 4.1.3.1) with param_value to output.
25
- //
26
- // 3. Return output.
27
- export function serializeParams(params) {
28
- if (params == null) {
29
- return '';
30
- }
31
- return Object.entries(params)
32
- .map(([key, value]) => {
33
- if (value === true) {
34
- return `;${serializeKey(key)}`; // omit true
35
- }
36
- return `;${serializeKey(key)}=${serializeBareItem(value)}`;
37
- })
38
- .join('');
39
- }
40
- //# sourceMappingURL=serializeParams.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeParams.js","sourceRoot":"","sources":["../../src/serialize/serializeParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,mCAAmC;AACnC,EAAE;AACF,wEAAwE;AACxE,qEAAqE;AACrE,6BAA6B;AAC7B,EAAE;AACF,qCAAqC;AACrC,EAAE;AACF,yDAAyD;AACzD,wBAAwB;AACxB,EAAE;AACF,gCAAgC;AAChC,EAAE;AACF,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,8CAA8C;AAC9C,EAAE;AACF,oCAAoC;AACpC,EAAE;AACF,mEAAmE;AACnE,4DAA4D;AAC5D,EAAE;AACF,qBAAqB;AACrB,MAAM,UAAU,eAAe,CAAC,MAA4B;IAC3D,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACrB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,YAAY;QAC7C,CAAC;QAED,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5D,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC","sourcesContent":["import { serializeBareItem } from './serializeBareItem.js';\nimport { serializeKey } from './serializeKey.js';\n\n// 4.1.1.2. Serializing Parameters\n//\n// Given an ordered Dictionary as input_parameters (each member having a\n// param_name and a param_value), return an ASCII string suitable for\n// use in a HTTP field value.\n//\n// 1. Let output be an empty string.\n//\n// 2. For each param_name with a value of param_value in\n// input_parameters:\n//\n// 1. Append \";\" to output.\n//\n// 2. Append the result of running Serializing a Key\n// (Section 4.1.1.3) with param_name to output.\n//\n// 3. If param_value is not Boolean true:\n//\n// 1. Append \"=\" to output.\n//\n// 2. Append the result of running Serializing a bare Item\n// (Section 4.1.3.1) with param_value to output.\n//\n// 3. Return output.\nexport function serializeParams(params?: Record<string, any>): string {\n\tif (params == null) {\n\t\treturn '';\n\t}\n\n\treturn Object.entries(params)\n\t\t.map(([key, value]) => {\n\t\t\tif (value === true) {\n\t\t\t\treturn `;${serializeKey(key)}`; // omit true\n\t\t\t}\n\n\t\t\treturn `;${serializeKey(key)}=${serializeBareItem(value)}`;\n\t\t})\n\t\t.join('');\n}\n"]}
@@ -1,2 +0,0 @@
1
- export declare function serializeString(value: string): string;
2
- //# sourceMappingURL=serializeString.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeString.d.ts","sourceRoot":"","sources":["../../src/serialize/serializeString.ts"],"names":[],"mappings":"AA4BA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,UAM5C"}
@@ -1,34 +0,0 @@
1
- import { STRING } from '../utils/STRING.js';
2
- import { STRING_REGEX } from '../utils/STRING_REGEX.js';
3
- import { serializeError } from './serializeError.js';
4
- // 4.1.6. Serializing a String
5
- //
6
- // Given a String as input_string, return an ASCII string suitable for
7
- // use in a HTTP field value.
8
- //
9
- // 1. Convert input_string into a sequence of ASCII characters; if
10
- // conversion fails, fail serialization.
11
- //
12
- // 2. If input_string contains characters in the range %x00-1f or %x7f
13
- // (i.e., not in VCHAR or SP), fail serialization.
14
- //
15
- // 3. Let output be the string DQUOTE.
16
- //
17
- // 4. For each character char in input_string:
18
- //
19
- // 1. If char is "\" or DQUOTE:
20
- //
21
- // 1. Append "\" to output.
22
- //
23
- // 2. Append char to output.
24
- //
25
- // 5. Append DQUOTE to output.
26
- //
27
- // 6. Return output.
28
- export function serializeString(value) {
29
- if (STRING_REGEX.test(value)) {
30
- throw serializeError(value, STRING);
31
- }
32
- return `"${value.replace(/\\/g, `\\\\`).replace(/"/g, `\\"`)}"`;
33
- }
34
- //# sourceMappingURL=serializeString.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeString.js","sourceRoot":"","sources":["../../src/serialize/serializeString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,+BAA+B;AAC/B,EAAE;AACF,sEAAsE;AACtE,6BAA6B;AAC7B,EAAE;AACF,mEAAmE;AACnE,4CAA4C;AAC5C,EAAE;AACF,uEAAuE;AACvE,sDAAsD;AACtD,EAAE;AACF,uCAAuC;AACvC,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,oCAAoC;AACpC,EAAE;AACF,oCAAoC;AACpC,EAAE;AACF,iCAAiC;AACjC,EAAE;AACF,+BAA+B;AAC/B,EAAE;AACF,qBAAqB;AACrB,MAAM,UAAU,eAAe,CAAC,KAAa;IAC5C,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;AACjE,CAAC","sourcesContent":["import { STRING } from '../utils/STRING.js';\nimport { STRING_REGEX } from '../utils/STRING_REGEX.js';\nimport { serializeError } from './serializeError.js';\n\n// 4.1.6. Serializing a String\n//\n// Given a String as input_string, return an ASCII string suitable for\n// use in a HTTP field value.\n//\n// 1. Convert input_string into a sequence of ASCII characters; if\n// conversion fails, fail serialization.\n//\n// 2. If input_string contains characters in the range %x00-1f or %x7f\n// (i.e., not in VCHAR or SP), fail serialization.\n//\n// 3. Let output be the string DQUOTE.\n//\n// 4. For each character char in input_string:\n//\n// 1. If char is \"\\\" or DQUOTE:\n//\n// 1. Append \"\\\" to output.\n//\n// 2. Append char to output.\n//\n// 5. Append DQUOTE to output.\n//\n// 6. Return output.\nexport function serializeString(value: string) {\n\tif (STRING_REGEX.test(value)) {\n\t\tthrow serializeError(value, STRING);\n\t}\n\n\treturn `\"${value.replace(/\\\\/g, `\\\\\\\\`).replace(/\"/g, `\\\\\"`)}\"`;\n}\n"]}
@@ -1,4 +0,0 @@
1
- import type { SfToken } from '../SfToken.js';
2
- export declare function serializeToken(token: symbol): string;
3
- export declare function serializeToken(token: SfToken): string;
4
- //# sourceMappingURL=serializeToken.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeToken.d.ts","sourceRoot":"","sources":["../../src/serialize/serializeToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAsB7C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;AACtD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC"}
@@ -1,11 +0,0 @@
1
- import { symbolToStr } from '../utils/symbolToStr.js';
2
- import { TOKEN } from '../utils/TOKEN.js';
3
- import { serializeError } from './serializeError.js';
4
- export function serializeToken(token) {
5
- const value = symbolToStr(token);
6
- if (/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(value) === false) {
7
- throw serializeError(value, TOKEN);
8
- }
9
- return value;
10
- }
11
- //# sourceMappingURL=serializeToken.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeToken.js","sourceRoot":"","sources":["../../src/serialize/serializeToken.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAqBrD,MAAM,UAAU,cAAc,CAAC,KAAuB;IACrD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,wCAAwC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;QACpE,MAAM,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC","sourcesContent":["import type { SfToken } from '../SfToken.js';\nimport { symbolToStr } from '../utils/symbolToStr.js';\nimport { TOKEN } from '../utils/TOKEN.js';\nimport { serializeError } from './serializeError.js';\n\n// 4.1.7. Serializing a Token\n//\n// Given a Token as input_token, return an ASCII string suitable for use\n// in a HTTP field value.\n//\n// 1. Convert input_token into a sequence of ASCII characters; if\n// conversion fails, fail serialization.\n//\n// 2. If the first character of input_token is not ALPHA or \"*\", or the\n// remaining portion contains a character not in tchar, \":\" or \"/\",\n// fail serialization.\n//\n// 3. Let output be an empty string.\n//\n// 4. Append input_token to output.\n//\n// 5. Return output.\nexport function serializeToken(token: symbol): string;\nexport function serializeToken(token: SfToken): string;\nexport function serializeToken(token: symbol | SfToken) {\n\tconst value = symbolToStr(token);\n\tif (/^([a-zA-Z*])([!#$%&'*+\\-.^_`|~\\w:/]*)$/.test(value) === false) {\n\t\tthrow serializeError(value, TOKEN);\n\t}\n\treturn value;\n}\n"]}