expressed-core 1.0.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 (561) hide show
  1. package/README-es.md +42 -0
  2. package/README-es.md.backup +44 -0
  3. package/README.md +41 -0
  4. package/README.md.backup +43 -0
  5. package/hooked/LICENSE +204 -0
  6. package/hooked/README.es.md +238 -0
  7. package/hooked/README.md +238 -0
  8. package/hooked/advanced-example.js +240 -0
  9. package/hooked/express-hooked.js +206 -0
  10. package/hooked/hooks.js +584 -0
  11. package/hooked/package.json +30 -0
  12. package/index.js +25 -0
  13. package/package.json +36 -0
  14. package/queued/LICENSE +201 -0
  15. package/queued/QueueSystem.js +451 -0
  16. package/queued/README.es.md +335 -0
  17. package/queued/README.md +335 -0
  18. package/queued/express-example.js +143 -0
  19. package/queued/express-integration.js +115 -0
  20. package/queued/package.json +33 -0
  21. package/router/ExpressRouter.js +247 -0
  22. package/router/ExpressRouterIntegration.js +129 -0
  23. package/router/LICENSE +201 -0
  24. package/router/README.es.md +142 -0
  25. package/router/README.md +142 -0
  26. package/router/RouteDirectoryLoader.js +299 -0
  27. package/router/RouteLoader.js +245 -0
  28. package/router/RouteMatcher.js +361 -0
  29. package/router/node_modules/.package-lock.json +876 -0
  30. package/router/node_modules/accepts/HISTORY.md +243 -0
  31. package/router/node_modules/accepts/LICENSE +23 -0
  32. package/router/node_modules/accepts/README.md +140 -0
  33. package/router/node_modules/accepts/index.js +238 -0
  34. package/router/node_modules/accepts/package.json +47 -0
  35. package/router/node_modules/array-flatten/LICENSE +21 -0
  36. package/router/node_modules/array-flatten/README.md +43 -0
  37. package/router/node_modules/array-flatten/array-flatten.js +64 -0
  38. package/router/node_modules/array-flatten/package.json +39 -0
  39. package/router/node_modules/body-parser/HISTORY.md +680 -0
  40. package/router/node_modules/body-parser/LICENSE +23 -0
  41. package/router/node_modules/body-parser/README.md +476 -0
  42. package/router/node_modules/body-parser/index.js +156 -0
  43. package/router/node_modules/body-parser/lib/read.js +205 -0
  44. package/router/node_modules/body-parser/lib/types/json.js +247 -0
  45. package/router/node_modules/body-parser/lib/types/raw.js +101 -0
  46. package/router/node_modules/body-parser/lib/types/text.js +121 -0
  47. package/router/node_modules/body-parser/lib/types/urlencoded.js +300 -0
  48. package/router/node_modules/body-parser/package.json +55 -0
  49. package/router/node_modules/bytes/History.md +97 -0
  50. package/router/node_modules/bytes/LICENSE +23 -0
  51. package/router/node_modules/bytes/Readme.md +152 -0
  52. package/router/node_modules/bytes/index.js +170 -0
  53. package/router/node_modules/bytes/package.json +42 -0
  54. package/router/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  55. package/router/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  56. package/router/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  57. package/router/node_modules/call-bind-apply-helpers/README.md +62 -0
  58. package/router/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  59. package/router/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  60. package/router/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  61. package/router/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  62. package/router/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  63. package/router/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  64. package/router/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  65. package/router/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  66. package/router/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  67. package/router/node_modules/call-bind-apply-helpers/index.js +15 -0
  68. package/router/node_modules/call-bind-apply-helpers/package.json +85 -0
  69. package/router/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  70. package/router/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  71. package/router/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  72. package/router/node_modules/call-bound/.github/FUNDING.yml +12 -0
  73. package/router/node_modules/call-bound/CHANGELOG.md +42 -0
  74. package/router/node_modules/call-bound/LICENSE +21 -0
  75. package/router/node_modules/call-bound/README.md +53 -0
  76. package/router/node_modules/call-bound/index.d.ts +94 -0
  77. package/router/node_modules/call-bound/index.js +19 -0
  78. package/router/node_modules/call-bound/package.json +99 -0
  79. package/router/node_modules/call-bound/tsconfig.json +10 -0
  80. package/router/node_modules/content-disposition/HISTORY.md +60 -0
  81. package/router/node_modules/content-disposition/LICENSE +22 -0
  82. package/router/node_modules/content-disposition/README.md +142 -0
  83. package/router/node_modules/content-disposition/index.js +458 -0
  84. package/router/node_modules/content-disposition/package.json +44 -0
  85. package/router/node_modules/content-type/HISTORY.md +29 -0
  86. package/router/node_modules/content-type/LICENSE +22 -0
  87. package/router/node_modules/content-type/README.md +94 -0
  88. package/router/node_modules/content-type/index.js +225 -0
  89. package/router/node_modules/content-type/package.json +42 -0
  90. package/router/node_modules/cookie/LICENSE +24 -0
  91. package/router/node_modules/cookie/README.md +317 -0
  92. package/router/node_modules/cookie/SECURITY.md +25 -0
  93. package/router/node_modules/cookie/index.js +335 -0
  94. package/router/node_modules/cookie/package.json +44 -0
  95. package/router/node_modules/cookie-signature/History.md +42 -0
  96. package/router/node_modules/cookie-signature/Readme.md +42 -0
  97. package/router/node_modules/cookie-signature/index.js +51 -0
  98. package/router/node_modules/cookie-signature/package.json +18 -0
  99. package/router/node_modules/debug/.coveralls.yml +1 -0
  100. package/router/node_modules/debug/CHANGELOG.md +362 -0
  101. package/router/node_modules/debug/LICENSE +19 -0
  102. package/router/node_modules/debug/Makefile +50 -0
  103. package/router/node_modules/debug/README.md +312 -0
  104. package/router/node_modules/debug/component.json +19 -0
  105. package/router/node_modules/debug/karma.conf.js +70 -0
  106. package/router/node_modules/debug/node.js +1 -0
  107. package/router/node_modules/debug/package.json +49 -0
  108. package/router/node_modules/debug/src/browser.js +185 -0
  109. package/router/node_modules/debug/src/debug.js +202 -0
  110. package/router/node_modules/debug/src/index.js +10 -0
  111. package/router/node_modules/debug/src/inspector-log.js +15 -0
  112. package/router/node_modules/debug/src/node.js +248 -0
  113. package/router/node_modules/depd/History.md +103 -0
  114. package/router/node_modules/depd/LICENSE +22 -0
  115. package/router/node_modules/depd/Readme.md +280 -0
  116. package/router/node_modules/depd/index.js +538 -0
  117. package/router/node_modules/depd/lib/browser/index.js +77 -0
  118. package/router/node_modules/depd/package.json +45 -0
  119. package/router/node_modules/destroy/LICENSE +23 -0
  120. package/router/node_modules/destroy/README.md +63 -0
  121. package/router/node_modules/destroy/index.js +209 -0
  122. package/router/node_modules/destroy/package.json +48 -0
  123. package/router/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  124. package/router/node_modules/dunder-proto/CHANGELOG.md +24 -0
  125. package/router/node_modules/dunder-proto/LICENSE +21 -0
  126. package/router/node_modules/dunder-proto/README.md +54 -0
  127. package/router/node_modules/dunder-proto/get.d.ts +5 -0
  128. package/router/node_modules/dunder-proto/get.js +30 -0
  129. package/router/node_modules/dunder-proto/package.json +76 -0
  130. package/router/node_modules/dunder-proto/set.d.ts +5 -0
  131. package/router/node_modules/dunder-proto/set.js +35 -0
  132. package/router/node_modules/dunder-proto/tsconfig.json +9 -0
  133. package/router/node_modules/ee-first/LICENSE +22 -0
  134. package/router/node_modules/ee-first/README.md +80 -0
  135. package/router/node_modules/ee-first/index.js +95 -0
  136. package/router/node_modules/ee-first/package.json +29 -0
  137. package/router/node_modules/encodeurl/LICENSE +22 -0
  138. package/router/node_modules/encodeurl/README.md +109 -0
  139. package/router/node_modules/encodeurl/index.js +60 -0
  140. package/router/node_modules/encodeurl/package.json +40 -0
  141. package/router/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  142. package/router/node_modules/es-define-property/CHANGELOG.md +29 -0
  143. package/router/node_modules/es-define-property/LICENSE +21 -0
  144. package/router/node_modules/es-define-property/README.md +49 -0
  145. package/router/node_modules/es-define-property/index.d.ts +3 -0
  146. package/router/node_modules/es-define-property/index.js +14 -0
  147. package/router/node_modules/es-define-property/package.json +81 -0
  148. package/router/node_modules/es-define-property/tsconfig.json +10 -0
  149. package/router/node_modules/es-errors/.github/FUNDING.yml +12 -0
  150. package/router/node_modules/es-errors/CHANGELOG.md +40 -0
  151. package/router/node_modules/es-errors/LICENSE +21 -0
  152. package/router/node_modules/es-errors/README.md +55 -0
  153. package/router/node_modules/es-errors/eval.d.ts +3 -0
  154. package/router/node_modules/es-errors/eval.js +4 -0
  155. package/router/node_modules/es-errors/index.d.ts +3 -0
  156. package/router/node_modules/es-errors/index.js +4 -0
  157. package/router/node_modules/es-errors/package.json +80 -0
  158. package/router/node_modules/es-errors/range.d.ts +3 -0
  159. package/router/node_modules/es-errors/range.js +4 -0
  160. package/router/node_modules/es-errors/ref.d.ts +3 -0
  161. package/router/node_modules/es-errors/ref.js +4 -0
  162. package/router/node_modules/es-errors/syntax.d.ts +3 -0
  163. package/router/node_modules/es-errors/syntax.js +4 -0
  164. package/router/node_modules/es-errors/tsconfig.json +49 -0
  165. package/router/node_modules/es-errors/type.d.ts +3 -0
  166. package/router/node_modules/es-errors/type.js +4 -0
  167. package/router/node_modules/es-errors/uri.d.ts +3 -0
  168. package/router/node_modules/es-errors/uri.js +4 -0
  169. package/router/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  170. package/router/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  171. package/router/node_modules/es-object-atoms/LICENSE +21 -0
  172. package/router/node_modules/es-object-atoms/README.md +63 -0
  173. package/router/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  174. package/router/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  175. package/router/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  176. package/router/node_modules/es-object-atoms/ToObject.js +10 -0
  177. package/router/node_modules/es-object-atoms/index.d.ts +3 -0
  178. package/router/node_modules/es-object-atoms/index.js +4 -0
  179. package/router/node_modules/es-object-atoms/isObject.d.ts +3 -0
  180. package/router/node_modules/es-object-atoms/isObject.js +6 -0
  181. package/router/node_modules/es-object-atoms/package.json +80 -0
  182. package/router/node_modules/es-object-atoms/tsconfig.json +6 -0
  183. package/router/node_modules/escape-html/LICENSE +24 -0
  184. package/router/node_modules/escape-html/Readme.md +43 -0
  185. package/router/node_modules/escape-html/index.js +78 -0
  186. package/router/node_modules/escape-html/package.json +24 -0
  187. package/router/node_modules/etag/HISTORY.md +83 -0
  188. package/router/node_modules/etag/LICENSE +22 -0
  189. package/router/node_modules/etag/README.md +159 -0
  190. package/router/node_modules/etag/index.js +131 -0
  191. package/router/node_modules/etag/package.json +47 -0
  192. package/router/node_modules/express/History.md +3667 -0
  193. package/router/node_modules/express/LICENSE +24 -0
  194. package/router/node_modules/express/Readme.md +260 -0
  195. package/router/node_modules/express/index.js +11 -0
  196. package/router/node_modules/express/lib/application.js +661 -0
  197. package/router/node_modules/express/lib/express.js +116 -0
  198. package/router/node_modules/express/lib/middleware/init.js +43 -0
  199. package/router/node_modules/express/lib/middleware/query.js +47 -0
  200. package/router/node_modules/express/lib/request.js +525 -0
  201. package/router/node_modules/express/lib/response.js +1179 -0
  202. package/router/node_modules/express/lib/router/index.js +673 -0
  203. package/router/node_modules/express/lib/router/layer.js +181 -0
  204. package/router/node_modules/express/lib/router/route.js +230 -0
  205. package/router/node_modules/express/lib/utils.js +303 -0
  206. package/router/node_modules/express/lib/view.js +182 -0
  207. package/router/node_modules/express/package.json +102 -0
  208. package/router/node_modules/express-hooked/LICENSE +204 -0
  209. package/router/node_modules/express-hooked/README.es.md +123 -0
  210. package/router/node_modules/express-hooked/README.md +123 -0
  211. package/router/node_modules/express-hooked/express-hooked.js +206 -0
  212. package/router/node_modules/express-hooked/hooks.js +584 -0
  213. package/router/node_modules/express-hooked/package.json +30 -0
  214. package/router/node_modules/finalhandler/HISTORY.md +216 -0
  215. package/router/node_modules/finalhandler/LICENSE +22 -0
  216. package/router/node_modules/finalhandler/README.md +147 -0
  217. package/router/node_modules/finalhandler/SECURITY.md +25 -0
  218. package/router/node_modules/finalhandler/index.js +341 -0
  219. package/router/node_modules/finalhandler/package.json +47 -0
  220. package/router/node_modules/forwarded/HISTORY.md +21 -0
  221. package/router/node_modules/forwarded/LICENSE +22 -0
  222. package/router/node_modules/forwarded/README.md +57 -0
  223. package/router/node_modules/forwarded/index.js +90 -0
  224. package/router/node_modules/forwarded/package.json +45 -0
  225. package/router/node_modules/fresh/HISTORY.md +70 -0
  226. package/router/node_modules/fresh/LICENSE +23 -0
  227. package/router/node_modules/fresh/README.md +119 -0
  228. package/router/node_modules/fresh/index.js +137 -0
  229. package/router/node_modules/fresh/package.json +46 -0
  230. package/router/node_modules/function-bind/.github/FUNDING.yml +12 -0
  231. package/router/node_modules/function-bind/.github/SECURITY.md +3 -0
  232. package/router/node_modules/function-bind/CHANGELOG.md +136 -0
  233. package/router/node_modules/function-bind/LICENSE +20 -0
  234. package/router/node_modules/function-bind/README.md +46 -0
  235. package/router/node_modules/function-bind/implementation.js +84 -0
  236. package/router/node_modules/function-bind/index.js +5 -0
  237. package/router/node_modules/function-bind/package.json +87 -0
  238. package/router/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  239. package/router/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  240. package/router/node_modules/get-intrinsic/LICENSE +21 -0
  241. package/router/node_modules/get-intrinsic/README.md +71 -0
  242. package/router/node_modules/get-intrinsic/index.js +378 -0
  243. package/router/node_modules/get-intrinsic/package.json +97 -0
  244. package/router/node_modules/get-proto/.github/FUNDING.yml +12 -0
  245. package/router/node_modules/get-proto/CHANGELOG.md +21 -0
  246. package/router/node_modules/get-proto/LICENSE +21 -0
  247. package/router/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  248. package/router/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  249. package/router/node_modules/get-proto/README.md +50 -0
  250. package/router/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  251. package/router/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  252. package/router/node_modules/get-proto/index.d.ts +5 -0
  253. package/router/node_modules/get-proto/index.js +27 -0
  254. package/router/node_modules/get-proto/package.json +81 -0
  255. package/router/node_modules/get-proto/tsconfig.json +9 -0
  256. package/router/node_modules/gopd/.github/FUNDING.yml +12 -0
  257. package/router/node_modules/gopd/CHANGELOG.md +45 -0
  258. package/router/node_modules/gopd/LICENSE +21 -0
  259. package/router/node_modules/gopd/README.md +40 -0
  260. package/router/node_modules/gopd/gOPD.d.ts +1 -0
  261. package/router/node_modules/gopd/gOPD.js +4 -0
  262. package/router/node_modules/gopd/index.d.ts +5 -0
  263. package/router/node_modules/gopd/index.js +15 -0
  264. package/router/node_modules/gopd/package.json +77 -0
  265. package/router/node_modules/gopd/tsconfig.json +9 -0
  266. package/router/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  267. package/router/node_modules/has-symbols/CHANGELOG.md +91 -0
  268. package/router/node_modules/has-symbols/LICENSE +21 -0
  269. package/router/node_modules/has-symbols/README.md +46 -0
  270. package/router/node_modules/has-symbols/index.d.ts +3 -0
  271. package/router/node_modules/has-symbols/index.js +14 -0
  272. package/router/node_modules/has-symbols/package.json +111 -0
  273. package/router/node_modules/has-symbols/shams.d.ts +3 -0
  274. package/router/node_modules/has-symbols/shams.js +45 -0
  275. package/router/node_modules/has-symbols/tsconfig.json +10 -0
  276. package/router/node_modules/hasown/.github/FUNDING.yml +12 -0
  277. package/router/node_modules/hasown/CHANGELOG.md +40 -0
  278. package/router/node_modules/hasown/LICENSE +21 -0
  279. package/router/node_modules/hasown/README.md +40 -0
  280. package/router/node_modules/hasown/index.d.ts +3 -0
  281. package/router/node_modules/hasown/index.js +8 -0
  282. package/router/node_modules/hasown/package.json +92 -0
  283. package/router/node_modules/hasown/tsconfig.json +6 -0
  284. package/router/node_modules/http-errors/HISTORY.md +186 -0
  285. package/router/node_modules/http-errors/LICENSE +23 -0
  286. package/router/node_modules/http-errors/README.md +169 -0
  287. package/router/node_modules/http-errors/index.js +290 -0
  288. package/router/node_modules/http-errors/package.json +54 -0
  289. package/router/node_modules/iconv-lite/Changelog.md +162 -0
  290. package/router/node_modules/iconv-lite/LICENSE +21 -0
  291. package/router/node_modules/iconv-lite/README.md +156 -0
  292. package/router/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  293. package/router/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  294. package/router/node_modules/iconv-lite/encodings/index.js +22 -0
  295. package/router/node_modules/iconv-lite/encodings/internal.js +188 -0
  296. package/router/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  297. package/router/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  298. package/router/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
  299. package/router/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  300. package/router/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  301. package/router/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  302. package/router/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  303. package/router/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  304. package/router/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  305. package/router/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  306. package/router/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  307. package/router/node_modules/iconv-lite/encodings/utf16.js +177 -0
  308. package/router/node_modules/iconv-lite/encodings/utf7.js +290 -0
  309. package/router/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  310. package/router/node_modules/iconv-lite/lib/extend-node.js +217 -0
  311. package/router/node_modules/iconv-lite/lib/index.d.ts +24 -0
  312. package/router/node_modules/iconv-lite/lib/index.js +153 -0
  313. package/router/node_modules/iconv-lite/lib/streams.js +121 -0
  314. package/router/node_modules/iconv-lite/package.json +46 -0
  315. package/router/node_modules/inherits/LICENSE +16 -0
  316. package/router/node_modules/inherits/README.md +42 -0
  317. package/router/node_modules/inherits/inherits.js +9 -0
  318. package/router/node_modules/inherits/inherits_browser.js +27 -0
  319. package/router/node_modules/inherits/package.json +29 -0
  320. package/router/node_modules/ipaddr.js/LICENSE +19 -0
  321. package/router/node_modules/ipaddr.js/README.md +233 -0
  322. package/router/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  323. package/router/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
  324. package/router/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
  325. package/router/node_modules/ipaddr.js/package.json +35 -0
  326. package/router/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  327. package/router/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  328. package/router/node_modules/math-intrinsics/LICENSE +21 -0
  329. package/router/node_modules/math-intrinsics/README.md +50 -0
  330. package/router/node_modules/math-intrinsics/abs.d.ts +1 -0
  331. package/router/node_modules/math-intrinsics/abs.js +4 -0
  332. package/router/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  333. package/router/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  334. package/router/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  335. package/router/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  336. package/router/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  337. package/router/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  338. package/router/node_modules/math-intrinsics/floor.d.ts +1 -0
  339. package/router/node_modules/math-intrinsics/floor.js +4 -0
  340. package/router/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  341. package/router/node_modules/math-intrinsics/isFinite.js +12 -0
  342. package/router/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  343. package/router/node_modules/math-intrinsics/isInteger.js +16 -0
  344. package/router/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  345. package/router/node_modules/math-intrinsics/isNaN.js +6 -0
  346. package/router/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  347. package/router/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  348. package/router/node_modules/math-intrinsics/max.d.ts +1 -0
  349. package/router/node_modules/math-intrinsics/max.js +4 -0
  350. package/router/node_modules/math-intrinsics/min.d.ts +1 -0
  351. package/router/node_modules/math-intrinsics/min.js +4 -0
  352. package/router/node_modules/math-intrinsics/mod.d.ts +3 -0
  353. package/router/node_modules/math-intrinsics/mod.js +9 -0
  354. package/router/node_modules/math-intrinsics/package.json +86 -0
  355. package/router/node_modules/math-intrinsics/pow.d.ts +1 -0
  356. package/router/node_modules/math-intrinsics/pow.js +4 -0
  357. package/router/node_modules/math-intrinsics/round.d.ts +1 -0
  358. package/router/node_modules/math-intrinsics/round.js +4 -0
  359. package/router/node_modules/math-intrinsics/sign.d.ts +3 -0
  360. package/router/node_modules/math-intrinsics/sign.js +11 -0
  361. package/router/node_modules/math-intrinsics/tsconfig.json +3 -0
  362. package/router/node_modules/media-typer/HISTORY.md +22 -0
  363. package/router/node_modules/media-typer/LICENSE +22 -0
  364. package/router/node_modules/media-typer/README.md +81 -0
  365. package/router/node_modules/media-typer/index.js +270 -0
  366. package/router/node_modules/media-typer/package.json +26 -0
  367. package/router/node_modules/merge-descriptors/HISTORY.md +21 -0
  368. package/router/node_modules/merge-descriptors/LICENSE +23 -0
  369. package/router/node_modules/merge-descriptors/README.md +49 -0
  370. package/router/node_modules/merge-descriptors/index.js +60 -0
  371. package/router/node_modules/merge-descriptors/package.json +39 -0
  372. package/router/node_modules/methods/HISTORY.md +29 -0
  373. package/router/node_modules/methods/LICENSE +24 -0
  374. package/router/node_modules/methods/README.md +51 -0
  375. package/router/node_modules/methods/index.js +69 -0
  376. package/router/node_modules/methods/package.json +36 -0
  377. package/router/node_modules/mime/CHANGELOG.md +164 -0
  378. package/router/node_modules/mime/LICENSE +21 -0
  379. package/router/node_modules/mime/README.md +90 -0
  380. package/router/node_modules/mime/cli.js +8 -0
  381. package/router/node_modules/mime/mime.js +108 -0
  382. package/router/node_modules/mime/package.json +44 -0
  383. package/router/node_modules/mime/src/build.js +53 -0
  384. package/router/node_modules/mime/src/test.js +60 -0
  385. package/router/node_modules/mime/types.json +1 -0
  386. package/router/node_modules/mime-db/HISTORY.md +507 -0
  387. package/router/node_modules/mime-db/LICENSE +23 -0
  388. package/router/node_modules/mime-db/README.md +100 -0
  389. package/router/node_modules/mime-db/db.json +8519 -0
  390. package/router/node_modules/mime-db/index.js +12 -0
  391. package/router/node_modules/mime-db/package.json +60 -0
  392. package/router/node_modules/mime-types/HISTORY.md +397 -0
  393. package/router/node_modules/mime-types/LICENSE +23 -0
  394. package/router/node_modules/mime-types/README.md +113 -0
  395. package/router/node_modules/mime-types/index.js +188 -0
  396. package/router/node_modules/mime-types/package.json +44 -0
  397. package/router/node_modules/ms/index.js +152 -0
  398. package/router/node_modules/ms/license.md +21 -0
  399. package/router/node_modules/ms/package.json +37 -0
  400. package/router/node_modules/ms/readme.md +51 -0
  401. package/router/node_modules/negotiator/HISTORY.md +108 -0
  402. package/router/node_modules/negotiator/LICENSE +24 -0
  403. package/router/node_modules/negotiator/README.md +203 -0
  404. package/router/node_modules/negotiator/index.js +82 -0
  405. package/router/node_modules/negotiator/lib/charset.js +169 -0
  406. package/router/node_modules/negotiator/lib/encoding.js +184 -0
  407. package/router/node_modules/negotiator/lib/language.js +179 -0
  408. package/router/node_modules/negotiator/lib/mediaType.js +294 -0
  409. package/router/node_modules/negotiator/package.json +42 -0
  410. package/router/node_modules/object-inspect/.github/FUNDING.yml +12 -0
  411. package/router/node_modules/object-inspect/CHANGELOG.md +424 -0
  412. package/router/node_modules/object-inspect/LICENSE +21 -0
  413. package/router/node_modules/object-inspect/example/all.js +23 -0
  414. package/router/node_modules/object-inspect/example/circular.js +6 -0
  415. package/router/node_modules/object-inspect/example/fn.js +5 -0
  416. package/router/node_modules/object-inspect/example/inspect.js +10 -0
  417. package/router/node_modules/object-inspect/index.js +544 -0
  418. package/router/node_modules/object-inspect/package-support.json +20 -0
  419. package/router/node_modules/object-inspect/package.json +105 -0
  420. package/router/node_modules/object-inspect/readme.markdown +84 -0
  421. package/router/node_modules/object-inspect/test-core-js.js +26 -0
  422. package/router/node_modules/object-inspect/util.inspect.js +1 -0
  423. package/router/node_modules/on-finished/HISTORY.md +98 -0
  424. package/router/node_modules/on-finished/LICENSE +23 -0
  425. package/router/node_modules/on-finished/README.md +162 -0
  426. package/router/node_modules/on-finished/index.js +234 -0
  427. package/router/node_modules/on-finished/package.json +39 -0
  428. package/router/node_modules/parseurl/HISTORY.md +58 -0
  429. package/router/node_modules/parseurl/LICENSE +24 -0
  430. package/router/node_modules/parseurl/README.md +133 -0
  431. package/router/node_modules/parseurl/index.js +158 -0
  432. package/router/node_modules/parseurl/package.json +40 -0
  433. package/router/node_modules/path-to-regexp/LICENSE +21 -0
  434. package/router/node_modules/path-to-regexp/Readme.md +35 -0
  435. package/router/node_modules/path-to-regexp/index.js +156 -0
  436. package/router/node_modules/path-to-regexp/package.json +30 -0
  437. package/router/node_modules/proxy-addr/HISTORY.md +161 -0
  438. package/router/node_modules/proxy-addr/LICENSE +22 -0
  439. package/router/node_modules/proxy-addr/README.md +139 -0
  440. package/router/node_modules/proxy-addr/index.js +327 -0
  441. package/router/node_modules/proxy-addr/package.json +47 -0
  442. package/router/node_modules/qs/.github/FUNDING.yml +12 -0
  443. package/router/node_modules/qs/.github/SECURITY.md +11 -0
  444. package/router/node_modules/qs/.github/THREAT_MODEL.md +78 -0
  445. package/router/node_modules/qs/CHANGELOG.md +644 -0
  446. package/router/node_modules/qs/LICENSE.md +29 -0
  447. package/router/node_modules/qs/README.md +740 -0
  448. package/router/node_modules/qs/dist/qs.js +141 -0
  449. package/router/node_modules/qs/eslint.config.mjs +56 -0
  450. package/router/node_modules/qs/lib/formats.js +23 -0
  451. package/router/node_modules/qs/lib/index.js +11 -0
  452. package/router/node_modules/qs/lib/parse.js +371 -0
  453. package/router/node_modules/qs/lib/stringify.js +356 -0
  454. package/router/node_modules/qs/lib/utils.js +340 -0
  455. package/router/node_modules/qs/package.json +94 -0
  456. package/router/node_modules/range-parser/HISTORY.md +56 -0
  457. package/router/node_modules/range-parser/LICENSE +23 -0
  458. package/router/node_modules/range-parser/README.md +84 -0
  459. package/router/node_modules/range-parser/index.js +162 -0
  460. package/router/node_modules/range-parser/package.json +44 -0
  461. package/router/node_modules/raw-body/LICENSE +22 -0
  462. package/router/node_modules/raw-body/README.md +223 -0
  463. package/router/node_modules/raw-body/index.d.ts +87 -0
  464. package/router/node_modules/raw-body/index.js +336 -0
  465. package/router/node_modules/raw-body/package.json +47 -0
  466. package/router/node_modules/safe-buffer/LICENSE +21 -0
  467. package/router/node_modules/safe-buffer/README.md +584 -0
  468. package/router/node_modules/safe-buffer/index.d.ts +187 -0
  469. package/router/node_modules/safe-buffer/index.js +65 -0
  470. package/router/node_modules/safe-buffer/package.json +51 -0
  471. package/router/node_modules/safer-buffer/LICENSE +21 -0
  472. package/router/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  473. package/router/node_modules/safer-buffer/Readme.md +156 -0
  474. package/router/node_modules/safer-buffer/dangerous.js +58 -0
  475. package/router/node_modules/safer-buffer/package.json +34 -0
  476. package/router/node_modules/safer-buffer/safer.js +77 -0
  477. package/router/node_modules/safer-buffer/tests.js +406 -0
  478. package/router/node_modules/send/HISTORY.md +538 -0
  479. package/router/node_modules/send/LICENSE +23 -0
  480. package/router/node_modules/send/README.md +327 -0
  481. package/router/node_modules/send/SECURITY.md +24 -0
  482. package/router/node_modules/send/index.js +1142 -0
  483. package/router/node_modules/send/node_modules/ms/index.js +162 -0
  484. package/router/node_modules/send/node_modules/ms/license.md +21 -0
  485. package/router/node_modules/send/node_modules/ms/package.json +38 -0
  486. package/router/node_modules/send/node_modules/ms/readme.md +59 -0
  487. package/router/node_modules/send/package.json +62 -0
  488. package/router/node_modules/serve-static/HISTORY.md +493 -0
  489. package/router/node_modules/serve-static/LICENSE +25 -0
  490. package/router/node_modules/serve-static/README.md +257 -0
  491. package/router/node_modules/serve-static/index.js +209 -0
  492. package/router/node_modules/serve-static/package.json +42 -0
  493. package/router/node_modules/setprototypeof/LICENSE +13 -0
  494. package/router/node_modules/setprototypeof/README.md +31 -0
  495. package/router/node_modules/setprototypeof/index.d.ts +2 -0
  496. package/router/node_modules/setprototypeof/index.js +17 -0
  497. package/router/node_modules/setprototypeof/package.json +38 -0
  498. package/router/node_modules/side-channel/.github/FUNDING.yml +12 -0
  499. package/router/node_modules/side-channel/CHANGELOG.md +110 -0
  500. package/router/node_modules/side-channel/LICENSE +21 -0
  501. package/router/node_modules/side-channel/README.md +61 -0
  502. package/router/node_modules/side-channel/index.d.ts +14 -0
  503. package/router/node_modules/side-channel/index.js +43 -0
  504. package/router/node_modules/side-channel/package.json +85 -0
  505. package/router/node_modules/side-channel/tsconfig.json +9 -0
  506. package/router/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  507. package/router/node_modules/side-channel-list/CHANGELOG.md +15 -0
  508. package/router/node_modules/side-channel-list/LICENSE +21 -0
  509. package/router/node_modules/side-channel-list/README.md +62 -0
  510. package/router/node_modules/side-channel-list/index.d.ts +13 -0
  511. package/router/node_modules/side-channel-list/index.js +113 -0
  512. package/router/node_modules/side-channel-list/list.d.ts +14 -0
  513. package/router/node_modules/side-channel-list/package.json +77 -0
  514. package/router/node_modules/side-channel-list/tsconfig.json +9 -0
  515. package/router/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  516. package/router/node_modules/side-channel-map/CHANGELOG.md +22 -0
  517. package/router/node_modules/side-channel-map/LICENSE +21 -0
  518. package/router/node_modules/side-channel-map/README.md +62 -0
  519. package/router/node_modules/side-channel-map/index.d.ts +15 -0
  520. package/router/node_modules/side-channel-map/index.js +68 -0
  521. package/router/node_modules/side-channel-map/package.json +80 -0
  522. package/router/node_modules/side-channel-map/tsconfig.json +9 -0
  523. package/router/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  524. package/router/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  525. package/router/node_modules/side-channel-weakmap/LICENSE +21 -0
  526. package/router/node_modules/side-channel-weakmap/README.md +62 -0
  527. package/router/node_modules/side-channel-weakmap/index.d.ts +15 -0
  528. package/router/node_modules/side-channel-weakmap/index.js +84 -0
  529. package/router/node_modules/side-channel-weakmap/package.json +87 -0
  530. package/router/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  531. package/router/node_modules/statuses/HISTORY.md +87 -0
  532. package/router/node_modules/statuses/LICENSE +23 -0
  533. package/router/node_modules/statuses/README.md +139 -0
  534. package/router/node_modules/statuses/codes.json +65 -0
  535. package/router/node_modules/statuses/index.js +146 -0
  536. package/router/node_modules/statuses/package.json +49 -0
  537. package/router/node_modules/toidentifier/HISTORY.md +9 -0
  538. package/router/node_modules/toidentifier/LICENSE +21 -0
  539. package/router/node_modules/toidentifier/README.md +61 -0
  540. package/router/node_modules/toidentifier/index.js +32 -0
  541. package/router/node_modules/toidentifier/package.json +38 -0
  542. package/router/node_modules/type-is/HISTORY.md +259 -0
  543. package/router/node_modules/type-is/LICENSE +23 -0
  544. package/router/node_modules/type-is/README.md +170 -0
  545. package/router/node_modules/type-is/index.js +266 -0
  546. package/router/node_modules/type-is/package.json +45 -0
  547. package/router/node_modules/unpipe/HISTORY.md +4 -0
  548. package/router/node_modules/unpipe/LICENSE +22 -0
  549. package/router/node_modules/unpipe/README.md +43 -0
  550. package/router/node_modules/unpipe/index.js +69 -0
  551. package/router/node_modules/unpipe/package.json +27 -0
  552. package/router/node_modules/utils-merge/LICENSE +20 -0
  553. package/router/node_modules/utils-merge/README.md +34 -0
  554. package/router/node_modules/utils-merge/index.js +23 -0
  555. package/router/node_modules/utils-merge/package.json +40 -0
  556. package/router/node_modules/vary/HISTORY.md +39 -0
  557. package/router/node_modules/vary/LICENSE +22 -0
  558. package/router/node_modules/vary/README.md +101 -0
  559. package/router/node_modules/vary/index.js +149 -0
  560. package/router/node_modules/vary/package.json +43 -0
  561. package/router/package.json +36 -0
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ var Buffer = require("safer-buffer").Buffer;
3
+
4
+ // Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js
5
+
6
+ // == UTF16-BE codec. ==========================================================
7
+
8
+ exports.utf16be = Utf16BECodec;
9
+ function Utf16BECodec() {
10
+ }
11
+
12
+ Utf16BECodec.prototype.encoder = Utf16BEEncoder;
13
+ Utf16BECodec.prototype.decoder = Utf16BEDecoder;
14
+ Utf16BECodec.prototype.bomAware = true;
15
+
16
+
17
+ // -- Encoding
18
+
19
+ function Utf16BEEncoder() {
20
+ }
21
+
22
+ Utf16BEEncoder.prototype.write = function(str) {
23
+ var buf = Buffer.from(str, 'ucs2');
24
+ for (var i = 0; i < buf.length; i += 2) {
25
+ var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;
26
+ }
27
+ return buf;
28
+ }
29
+
30
+ Utf16BEEncoder.prototype.end = function() {
31
+ }
32
+
33
+
34
+ // -- Decoding
35
+
36
+ function Utf16BEDecoder() {
37
+ this.overflowByte = -1;
38
+ }
39
+
40
+ Utf16BEDecoder.prototype.write = function(buf) {
41
+ if (buf.length == 0)
42
+ return '';
43
+
44
+ var buf2 = Buffer.alloc(buf.length + 1),
45
+ i = 0, j = 0;
46
+
47
+ if (this.overflowByte !== -1) {
48
+ buf2[0] = buf[0];
49
+ buf2[1] = this.overflowByte;
50
+ i = 1; j = 2;
51
+ }
52
+
53
+ for (; i < buf.length-1; i += 2, j+= 2) {
54
+ buf2[j] = buf[i+1];
55
+ buf2[j+1] = buf[i];
56
+ }
57
+
58
+ this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;
59
+
60
+ return buf2.slice(0, j).toString('ucs2');
61
+ }
62
+
63
+ Utf16BEDecoder.prototype.end = function() {
64
+ }
65
+
66
+
67
+ // == UTF-16 codec =============================================================
68
+ // Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.
69
+ // Defaults to UTF-16LE, as it's prevalent and default in Node.
70
+ // http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le
71
+ // Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});
72
+
73
+ // Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).
74
+
75
+ exports.utf16 = Utf16Codec;
76
+ function Utf16Codec(codecOptions, iconv) {
77
+ this.iconv = iconv;
78
+ }
79
+
80
+ Utf16Codec.prototype.encoder = Utf16Encoder;
81
+ Utf16Codec.prototype.decoder = Utf16Decoder;
82
+
83
+
84
+ // -- Encoding (pass-through)
85
+
86
+ function Utf16Encoder(options, codec) {
87
+ options = options || {};
88
+ if (options.addBOM === undefined)
89
+ options.addBOM = true;
90
+ this.encoder = codec.iconv.getEncoder('utf-16le', options);
91
+ }
92
+
93
+ Utf16Encoder.prototype.write = function(str) {
94
+ return this.encoder.write(str);
95
+ }
96
+
97
+ Utf16Encoder.prototype.end = function() {
98
+ return this.encoder.end();
99
+ }
100
+
101
+
102
+ // -- Decoding
103
+
104
+ function Utf16Decoder(options, codec) {
105
+ this.decoder = null;
106
+ this.initialBytes = [];
107
+ this.initialBytesLen = 0;
108
+
109
+ this.options = options || {};
110
+ this.iconv = codec.iconv;
111
+ }
112
+
113
+ Utf16Decoder.prototype.write = function(buf) {
114
+ if (!this.decoder) {
115
+ // Codec is not chosen yet. Accumulate initial bytes.
116
+ this.initialBytes.push(buf);
117
+ this.initialBytesLen += buf.length;
118
+
119
+ if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below)
120
+ return '';
121
+
122
+ // We have enough bytes -> detect endianness.
123
+ var buf = Buffer.concat(this.initialBytes),
124
+ encoding = detectEncoding(buf, this.options.defaultEncoding);
125
+ this.decoder = this.iconv.getDecoder(encoding, this.options);
126
+ this.initialBytes.length = this.initialBytesLen = 0;
127
+ }
128
+
129
+ return this.decoder.write(buf);
130
+ }
131
+
132
+ Utf16Decoder.prototype.end = function() {
133
+ if (!this.decoder) {
134
+ var buf = Buffer.concat(this.initialBytes),
135
+ encoding = detectEncoding(buf, this.options.defaultEncoding);
136
+ this.decoder = this.iconv.getDecoder(encoding, this.options);
137
+
138
+ var res = this.decoder.write(buf),
139
+ trail = this.decoder.end();
140
+
141
+ return trail ? (res + trail) : res;
142
+ }
143
+ return this.decoder.end();
144
+ }
145
+
146
+ function detectEncoding(buf, defaultEncoding) {
147
+ var enc = defaultEncoding || 'utf-16le';
148
+
149
+ if (buf.length >= 2) {
150
+ // Check BOM.
151
+ if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM
152
+ enc = 'utf-16be';
153
+ else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM
154
+ enc = 'utf-16le';
155
+ else {
156
+ // No BOM found. Try to deduce encoding from initial content.
157
+ // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.
158
+ // So, we count ASCII as if it was LE or BE, and decide from that.
159
+ var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions
160
+ _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even.
161
+
162
+ for (var i = 0; i < _len; i += 2) {
163
+ if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++;
164
+ if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++;
165
+ }
166
+
167
+ if (asciiCharsBE > asciiCharsLE)
168
+ enc = 'utf-16be';
169
+ else if (asciiCharsBE < asciiCharsLE)
170
+ enc = 'utf-16le';
171
+ }
172
+ }
173
+
174
+ return enc;
175
+ }
176
+
177
+
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+ var Buffer = require("safer-buffer").Buffer;
3
+
4
+ // UTF-7 codec, according to https://tools.ietf.org/html/rfc2152
5
+ // See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3
6
+
7
+ exports.utf7 = Utf7Codec;
8
+ exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7
9
+ function Utf7Codec(codecOptions, iconv) {
10
+ this.iconv = iconv;
11
+ };
12
+
13
+ Utf7Codec.prototype.encoder = Utf7Encoder;
14
+ Utf7Codec.prototype.decoder = Utf7Decoder;
15
+ Utf7Codec.prototype.bomAware = true;
16
+
17
+
18
+ // -- Encoding
19
+
20
+ var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
21
+
22
+ function Utf7Encoder(options, codec) {
23
+ this.iconv = codec.iconv;
24
+ }
25
+
26
+ Utf7Encoder.prototype.write = function(str) {
27
+ // Naive implementation.
28
+ // Non-direct chars are encoded as "+<base64>-"; single "+" char is encoded as "+-".
29
+ return Buffer.from(str.replace(nonDirectChars, function(chunk) {
30
+ return "+" + (chunk === '+' ? '' :
31
+ this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, ''))
32
+ + "-";
33
+ }.bind(this)));
34
+ }
35
+
36
+ Utf7Encoder.prototype.end = function() {
37
+ }
38
+
39
+
40
+ // -- Decoding
41
+
42
+ function Utf7Decoder(options, codec) {
43
+ this.iconv = codec.iconv;
44
+ this.inBase64 = false;
45
+ this.base64Accum = '';
46
+ }
47
+
48
+ var base64Regex = /[A-Za-z0-9\/+]/;
49
+ var base64Chars = [];
50
+ for (var i = 0; i < 256; i++)
51
+ base64Chars[i] = base64Regex.test(String.fromCharCode(i));
52
+
53
+ var plusChar = '+'.charCodeAt(0),
54
+ minusChar = '-'.charCodeAt(0),
55
+ andChar = '&'.charCodeAt(0);
56
+
57
+ Utf7Decoder.prototype.write = function(buf) {
58
+ var res = "", lastI = 0,
59
+ inBase64 = this.inBase64,
60
+ base64Accum = this.base64Accum;
61
+
62
+ // The decoder is more involved as we must handle chunks in stream.
63
+
64
+ for (var i = 0; i < buf.length; i++) {
65
+ if (!inBase64) { // We're in direct mode.
66
+ // Write direct chars until '+'
67
+ if (buf[i] == plusChar) {
68
+ res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
69
+ lastI = i+1;
70
+ inBase64 = true;
71
+ }
72
+ } else { // We decode base64.
73
+ if (!base64Chars[buf[i]]) { // Base64 ended.
74
+ if (i == lastI && buf[i] == minusChar) {// "+-" -> "+"
75
+ res += "+";
76
+ } else {
77
+ var b64str = base64Accum + buf.slice(lastI, i).toString();
78
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
79
+ }
80
+
81
+ if (buf[i] != minusChar) // Minus is absorbed after base64.
82
+ i--;
83
+
84
+ lastI = i+1;
85
+ inBase64 = false;
86
+ base64Accum = '';
87
+ }
88
+ }
89
+ }
90
+
91
+ if (!inBase64) {
92
+ res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
93
+ } else {
94
+ var b64str = base64Accum + buf.slice(lastI).toString();
95
+
96
+ var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
97
+ base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
98
+ b64str = b64str.slice(0, canBeDecoded);
99
+
100
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
101
+ }
102
+
103
+ this.inBase64 = inBase64;
104
+ this.base64Accum = base64Accum;
105
+
106
+ return res;
107
+ }
108
+
109
+ Utf7Decoder.prototype.end = function() {
110
+ var res = "";
111
+ if (this.inBase64 && this.base64Accum.length > 0)
112
+ res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");
113
+
114
+ this.inBase64 = false;
115
+ this.base64Accum = '';
116
+ return res;
117
+ }
118
+
119
+
120
+ // UTF-7-IMAP codec.
121
+ // RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)
122
+ // Differences:
123
+ // * Base64 part is started by "&" instead of "+"
124
+ // * Direct characters are 0x20-0x7E, except "&" (0x26)
125
+ // * In Base64, "," is used instead of "/"
126
+ // * Base64 must not be used to represent direct characters.
127
+ // * No implicit shift back from Base64 (should always end with '-')
128
+ // * String must end in non-shifted position.
129
+ // * "-&" while in base64 is not allowed.
130
+
131
+
132
+ exports.utf7imap = Utf7IMAPCodec;
133
+ function Utf7IMAPCodec(codecOptions, iconv) {
134
+ this.iconv = iconv;
135
+ };
136
+
137
+ Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
138
+ Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
139
+ Utf7IMAPCodec.prototype.bomAware = true;
140
+
141
+
142
+ // -- Encoding
143
+
144
+ function Utf7IMAPEncoder(options, codec) {
145
+ this.iconv = codec.iconv;
146
+ this.inBase64 = false;
147
+ this.base64Accum = Buffer.alloc(6);
148
+ this.base64AccumIdx = 0;
149
+ }
150
+
151
+ Utf7IMAPEncoder.prototype.write = function(str) {
152
+ var inBase64 = this.inBase64,
153
+ base64Accum = this.base64Accum,
154
+ base64AccumIdx = this.base64AccumIdx,
155
+ buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0;
156
+
157
+ for (var i = 0; i < str.length; i++) {
158
+ var uChar = str.charCodeAt(i);
159
+ if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.
160
+ if (inBase64) {
161
+ if (base64AccumIdx > 0) {
162
+ bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
163
+ base64AccumIdx = 0;
164
+ }
165
+
166
+ buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
167
+ inBase64 = false;
168
+ }
169
+
170
+ if (!inBase64) {
171
+ buf[bufIdx++] = uChar; // Write direct character
172
+
173
+ if (uChar === andChar) // Ampersand -> '&-'
174
+ buf[bufIdx++] = minusChar;
175
+ }
176
+
177
+ } else { // Non-direct character
178
+ if (!inBase64) {
179
+ buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.
180
+ inBase64 = true;
181
+ }
182
+ if (inBase64) {
183
+ base64Accum[base64AccumIdx++] = uChar >> 8;
184
+ base64Accum[base64AccumIdx++] = uChar & 0xFF;
185
+
186
+ if (base64AccumIdx == base64Accum.length) {
187
+ bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx);
188
+ base64AccumIdx = 0;
189
+ }
190
+ }
191
+ }
192
+ }
193
+
194
+ this.inBase64 = inBase64;
195
+ this.base64AccumIdx = base64AccumIdx;
196
+
197
+ return buf.slice(0, bufIdx);
198
+ }
199
+
200
+ Utf7IMAPEncoder.prototype.end = function() {
201
+ var buf = Buffer.alloc(10), bufIdx = 0;
202
+ if (this.inBase64) {
203
+ if (this.base64AccumIdx > 0) {
204
+ bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
205
+ this.base64AccumIdx = 0;
206
+ }
207
+
208
+ buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
209
+ this.inBase64 = false;
210
+ }
211
+
212
+ return buf.slice(0, bufIdx);
213
+ }
214
+
215
+
216
+ // -- Decoding
217
+
218
+ function Utf7IMAPDecoder(options, codec) {
219
+ this.iconv = codec.iconv;
220
+ this.inBase64 = false;
221
+ this.base64Accum = '';
222
+ }
223
+
224
+ var base64IMAPChars = base64Chars.slice();
225
+ base64IMAPChars[','.charCodeAt(0)] = true;
226
+
227
+ Utf7IMAPDecoder.prototype.write = function(buf) {
228
+ var res = "", lastI = 0,
229
+ inBase64 = this.inBase64,
230
+ base64Accum = this.base64Accum;
231
+
232
+ // The decoder is more involved as we must handle chunks in stream.
233
+ // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).
234
+
235
+ for (var i = 0; i < buf.length; i++) {
236
+ if (!inBase64) { // We're in direct mode.
237
+ // Write direct chars until '&'
238
+ if (buf[i] == andChar) {
239
+ res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
240
+ lastI = i+1;
241
+ inBase64 = true;
242
+ }
243
+ } else { // We decode base64.
244
+ if (!base64IMAPChars[buf[i]]) { // Base64 ended.
245
+ if (i == lastI && buf[i] == minusChar) { // "&-" -> "&"
246
+ res += "&";
247
+ } else {
248
+ var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/');
249
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
250
+ }
251
+
252
+ if (buf[i] != minusChar) // Minus may be absorbed after base64.
253
+ i--;
254
+
255
+ lastI = i+1;
256
+ inBase64 = false;
257
+ base64Accum = '';
258
+ }
259
+ }
260
+ }
261
+
262
+ if (!inBase64) {
263
+ res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
264
+ } else {
265
+ var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/');
266
+
267
+ var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
268
+ base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
269
+ b64str = b64str.slice(0, canBeDecoded);
270
+
271
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
272
+ }
273
+
274
+ this.inBase64 = inBase64;
275
+ this.base64Accum = base64Accum;
276
+
277
+ return res;
278
+ }
279
+
280
+ Utf7IMAPDecoder.prototype.end = function() {
281
+ var res = "";
282
+ if (this.inBase64 && this.base64Accum.length > 0)
283
+ res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");
284
+
285
+ this.inBase64 = false;
286
+ this.base64Accum = '';
287
+ return res;
288
+ }
289
+
290
+
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var BOMChar = '\uFEFF';
4
+
5
+ exports.PrependBOM = PrependBOMWrapper
6
+ function PrependBOMWrapper(encoder, options) {
7
+ this.encoder = encoder;
8
+ this.addBOM = true;
9
+ }
10
+
11
+ PrependBOMWrapper.prototype.write = function(str) {
12
+ if (this.addBOM) {
13
+ str = BOMChar + str;
14
+ this.addBOM = false;
15
+ }
16
+
17
+ return this.encoder.write(str);
18
+ }
19
+
20
+ PrependBOMWrapper.prototype.end = function() {
21
+ return this.encoder.end();
22
+ }
23
+
24
+
25
+ //------------------------------------------------------------------------------
26
+
27
+ exports.StripBOM = StripBOMWrapper;
28
+ function StripBOMWrapper(decoder, options) {
29
+ this.decoder = decoder;
30
+ this.pass = false;
31
+ this.options = options || {};
32
+ }
33
+
34
+ StripBOMWrapper.prototype.write = function(buf) {
35
+ var res = this.decoder.write(buf);
36
+ if (this.pass || !res)
37
+ return res;
38
+
39
+ if (res[0] === BOMChar) {
40
+ res = res.slice(1);
41
+ if (typeof this.options.stripBOM === 'function')
42
+ this.options.stripBOM();
43
+ }
44
+
45
+ this.pass = true;
46
+ return res;
47
+ }
48
+
49
+ StripBOMWrapper.prototype.end = function() {
50
+ return this.decoder.end();
51
+ }
52
+