dcs8 1.1.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 (597) hide show
  1. package/index.html +314 -0
  2. package/mod/douban-proxy.js +98 -0
  3. package/mod/node_modules/.package-lock.json +845 -0
  4. package/mod/node_modules/accepts/HISTORY.md +250 -0
  5. package/mod/node_modules/accepts/LICENSE +23 -0
  6. package/mod/node_modules/accepts/README.md +140 -0
  7. package/mod/node_modules/accepts/index.js +238 -0
  8. package/mod/node_modules/accepts/package.json +47 -0
  9. package/mod/node_modules/body-parser/LICENSE +23 -0
  10. package/mod/node_modules/body-parser/README.md +494 -0
  11. package/mod/node_modules/body-parser/index.js +71 -0
  12. package/mod/node_modules/body-parser/lib/read.js +247 -0
  13. package/mod/node_modules/body-parser/lib/types/json.js +158 -0
  14. package/mod/node_modules/body-parser/lib/types/raw.js +42 -0
  15. package/mod/node_modules/body-parser/lib/types/text.js +36 -0
  16. package/mod/node_modules/body-parser/lib/types/urlencoded.js +142 -0
  17. package/mod/node_modules/body-parser/lib/utils.js +98 -0
  18. package/mod/node_modules/body-parser/package.json +52 -0
  19. package/mod/node_modules/bytes/History.md +97 -0
  20. package/mod/node_modules/bytes/LICENSE +23 -0
  21. package/mod/node_modules/bytes/Readme.md +152 -0
  22. package/mod/node_modules/bytes/index.js +170 -0
  23. package/mod/node_modules/bytes/package.json +42 -0
  24. package/mod/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  25. package/mod/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  26. package/mod/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  27. package/mod/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  28. package/mod/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  29. package/mod/node_modules/call-bind-apply-helpers/README.md +62 -0
  30. package/mod/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  31. package/mod/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  32. package/mod/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  33. package/mod/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  34. package/mod/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  35. package/mod/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  36. package/mod/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  37. package/mod/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  38. package/mod/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  39. package/mod/node_modules/call-bind-apply-helpers/index.js +15 -0
  40. package/mod/node_modules/call-bind-apply-helpers/package.json +85 -0
  41. package/mod/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  42. package/mod/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  43. package/mod/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  44. package/mod/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  45. package/mod/node_modules/call-bound/.eslintrc +13 -0
  46. package/mod/node_modules/call-bound/.github/FUNDING.yml +12 -0
  47. package/mod/node_modules/call-bound/.nycrc +9 -0
  48. package/mod/node_modules/call-bound/CHANGELOG.md +42 -0
  49. package/mod/node_modules/call-bound/LICENSE +21 -0
  50. package/mod/node_modules/call-bound/README.md +53 -0
  51. package/mod/node_modules/call-bound/index.d.ts +94 -0
  52. package/mod/node_modules/call-bound/index.js +19 -0
  53. package/mod/node_modules/call-bound/package.json +99 -0
  54. package/mod/node_modules/call-bound/test/index.js +61 -0
  55. package/mod/node_modules/call-bound/tsconfig.json +10 -0
  56. package/mod/node_modules/content-disposition/HISTORY.md +72 -0
  57. package/mod/node_modules/content-disposition/LICENSE +22 -0
  58. package/mod/node_modules/content-disposition/README.md +142 -0
  59. package/mod/node_modules/content-disposition/index.js +458 -0
  60. package/mod/node_modules/content-disposition/package.json +43 -0
  61. package/mod/node_modules/content-type/HISTORY.md +29 -0
  62. package/mod/node_modules/content-type/LICENSE +22 -0
  63. package/mod/node_modules/content-type/README.md +94 -0
  64. package/mod/node_modules/content-type/index.js +225 -0
  65. package/mod/node_modules/content-type/package.json +42 -0
  66. package/mod/node_modules/cookie/LICENSE +24 -0
  67. package/mod/node_modules/cookie/README.md +317 -0
  68. package/mod/node_modules/cookie/SECURITY.md +25 -0
  69. package/mod/node_modules/cookie/index.js +335 -0
  70. package/mod/node_modules/cookie/package.json +44 -0
  71. package/mod/node_modules/cookie-signature/History.md +70 -0
  72. package/mod/node_modules/cookie-signature/LICENSE +22 -0
  73. package/mod/node_modules/cookie-signature/Readme.md +23 -0
  74. package/mod/node_modules/cookie-signature/index.js +47 -0
  75. package/mod/node_modules/cookie-signature/package.json +24 -0
  76. package/mod/node_modules/cors/LICENSE +22 -0
  77. package/mod/node_modules/cors/README.md +277 -0
  78. package/mod/node_modules/cors/lib/index.js +238 -0
  79. package/mod/node_modules/cors/package.json +42 -0
  80. package/mod/node_modules/debug/LICENSE +20 -0
  81. package/mod/node_modules/debug/README.md +481 -0
  82. package/mod/node_modules/debug/package.json +64 -0
  83. package/mod/node_modules/debug/src/browser.js +272 -0
  84. package/mod/node_modules/debug/src/common.js +292 -0
  85. package/mod/node_modules/debug/src/index.js +10 -0
  86. package/mod/node_modules/debug/src/node.js +263 -0
  87. package/mod/node_modules/depd/History.md +103 -0
  88. package/mod/node_modules/depd/LICENSE +22 -0
  89. package/mod/node_modules/depd/Readme.md +280 -0
  90. package/mod/node_modules/depd/index.js +538 -0
  91. package/mod/node_modules/depd/lib/browser/index.js +77 -0
  92. package/mod/node_modules/depd/package.json +45 -0
  93. package/mod/node_modules/dunder-proto/.eslintrc +5 -0
  94. package/mod/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  95. package/mod/node_modules/dunder-proto/.nycrc +13 -0
  96. package/mod/node_modules/dunder-proto/CHANGELOG.md +24 -0
  97. package/mod/node_modules/dunder-proto/LICENSE +21 -0
  98. package/mod/node_modules/dunder-proto/README.md +54 -0
  99. package/mod/node_modules/dunder-proto/get.d.ts +5 -0
  100. package/mod/node_modules/dunder-proto/get.js +30 -0
  101. package/mod/node_modules/dunder-proto/package.json +76 -0
  102. package/mod/node_modules/dunder-proto/set.d.ts +5 -0
  103. package/mod/node_modules/dunder-proto/set.js +35 -0
  104. package/mod/node_modules/dunder-proto/test/get.js +34 -0
  105. package/mod/node_modules/dunder-proto/test/index.js +4 -0
  106. package/mod/node_modules/dunder-proto/test/set.js +50 -0
  107. package/mod/node_modules/dunder-proto/tsconfig.json +9 -0
  108. package/mod/node_modules/ee-first/LICENSE +22 -0
  109. package/mod/node_modules/ee-first/README.md +80 -0
  110. package/mod/node_modules/ee-first/index.js +95 -0
  111. package/mod/node_modules/ee-first/package.json +29 -0
  112. package/mod/node_modules/encodeurl/LICENSE +22 -0
  113. package/mod/node_modules/encodeurl/README.md +109 -0
  114. package/mod/node_modules/encodeurl/index.js +60 -0
  115. package/mod/node_modules/encodeurl/package.json +40 -0
  116. package/mod/node_modules/es-define-property/.eslintrc +13 -0
  117. package/mod/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  118. package/mod/node_modules/es-define-property/.nycrc +9 -0
  119. package/mod/node_modules/es-define-property/CHANGELOG.md +29 -0
  120. package/mod/node_modules/es-define-property/LICENSE +21 -0
  121. package/mod/node_modules/es-define-property/README.md +49 -0
  122. package/mod/node_modules/es-define-property/index.d.ts +3 -0
  123. package/mod/node_modules/es-define-property/index.js +14 -0
  124. package/mod/node_modules/es-define-property/package.json +81 -0
  125. package/mod/node_modules/es-define-property/test/index.js +56 -0
  126. package/mod/node_modules/es-define-property/tsconfig.json +10 -0
  127. package/mod/node_modules/es-errors/.eslintrc +5 -0
  128. package/mod/node_modules/es-errors/.github/FUNDING.yml +12 -0
  129. package/mod/node_modules/es-errors/CHANGELOG.md +40 -0
  130. package/mod/node_modules/es-errors/LICENSE +21 -0
  131. package/mod/node_modules/es-errors/README.md +55 -0
  132. package/mod/node_modules/es-errors/eval.d.ts +3 -0
  133. package/mod/node_modules/es-errors/eval.js +4 -0
  134. package/mod/node_modules/es-errors/index.d.ts +3 -0
  135. package/mod/node_modules/es-errors/index.js +4 -0
  136. package/mod/node_modules/es-errors/package.json +80 -0
  137. package/mod/node_modules/es-errors/range.d.ts +3 -0
  138. package/mod/node_modules/es-errors/range.js +4 -0
  139. package/mod/node_modules/es-errors/ref.d.ts +3 -0
  140. package/mod/node_modules/es-errors/ref.js +4 -0
  141. package/mod/node_modules/es-errors/syntax.d.ts +3 -0
  142. package/mod/node_modules/es-errors/syntax.js +4 -0
  143. package/mod/node_modules/es-errors/test/index.js +19 -0
  144. package/mod/node_modules/es-errors/tsconfig.json +49 -0
  145. package/mod/node_modules/es-errors/type.d.ts +3 -0
  146. package/mod/node_modules/es-errors/type.js +4 -0
  147. package/mod/node_modules/es-errors/uri.d.ts +3 -0
  148. package/mod/node_modules/es-errors/uri.js +4 -0
  149. package/mod/node_modules/es-object-atoms/.eslintrc +16 -0
  150. package/mod/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  151. package/mod/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  152. package/mod/node_modules/es-object-atoms/LICENSE +21 -0
  153. package/mod/node_modules/es-object-atoms/README.md +63 -0
  154. package/mod/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  155. package/mod/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  156. package/mod/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  157. package/mod/node_modules/es-object-atoms/ToObject.js +10 -0
  158. package/mod/node_modules/es-object-atoms/index.d.ts +3 -0
  159. package/mod/node_modules/es-object-atoms/index.js +4 -0
  160. package/mod/node_modules/es-object-atoms/isObject.d.ts +3 -0
  161. package/mod/node_modules/es-object-atoms/isObject.js +6 -0
  162. package/mod/node_modules/es-object-atoms/package.json +80 -0
  163. package/mod/node_modules/es-object-atoms/test/index.js +38 -0
  164. package/mod/node_modules/es-object-atoms/tsconfig.json +6 -0
  165. package/mod/node_modules/escape-html/LICENSE +24 -0
  166. package/mod/node_modules/escape-html/Readme.md +43 -0
  167. package/mod/node_modules/escape-html/index.js +78 -0
  168. package/mod/node_modules/escape-html/package.json +24 -0
  169. package/mod/node_modules/etag/HISTORY.md +83 -0
  170. package/mod/node_modules/etag/LICENSE +22 -0
  171. package/mod/node_modules/etag/README.md +159 -0
  172. package/mod/node_modules/etag/index.js +131 -0
  173. package/mod/node_modules/etag/package.json +47 -0
  174. package/mod/node_modules/express/LICENSE +24 -0
  175. package/mod/node_modules/express/Readme.md +276 -0
  176. package/mod/node_modules/express/index.js +11 -0
  177. package/mod/node_modules/express/lib/application.js +631 -0
  178. package/mod/node_modules/express/lib/express.js +81 -0
  179. package/mod/node_modules/express/lib/request.js +514 -0
  180. package/mod/node_modules/express/lib/response.js +1053 -0
  181. package/mod/node_modules/express/lib/utils.js +271 -0
  182. package/mod/node_modules/express/lib/view.js +205 -0
  183. package/mod/node_modules/express/package.json +99 -0
  184. package/mod/node_modules/finalhandler/HISTORY.md +239 -0
  185. package/mod/node_modules/finalhandler/LICENSE +22 -0
  186. package/mod/node_modules/finalhandler/README.md +150 -0
  187. package/mod/node_modules/finalhandler/index.js +293 -0
  188. package/mod/node_modules/finalhandler/package.json +47 -0
  189. package/mod/node_modules/forwarded/HISTORY.md +21 -0
  190. package/mod/node_modules/forwarded/LICENSE +22 -0
  191. package/mod/node_modules/forwarded/README.md +57 -0
  192. package/mod/node_modules/forwarded/index.js +90 -0
  193. package/mod/node_modules/forwarded/package.json +45 -0
  194. package/mod/node_modules/fresh/HISTORY.md +80 -0
  195. package/mod/node_modules/fresh/LICENSE +23 -0
  196. package/mod/node_modules/fresh/README.md +117 -0
  197. package/mod/node_modules/fresh/index.js +136 -0
  198. package/mod/node_modules/fresh/package.json +46 -0
  199. package/mod/node_modules/function-bind/.eslintrc +21 -0
  200. package/mod/node_modules/function-bind/.github/FUNDING.yml +12 -0
  201. package/mod/node_modules/function-bind/.github/SECURITY.md +3 -0
  202. package/mod/node_modules/function-bind/.nycrc +13 -0
  203. package/mod/node_modules/function-bind/CHANGELOG.md +136 -0
  204. package/mod/node_modules/function-bind/LICENSE +20 -0
  205. package/mod/node_modules/function-bind/README.md +46 -0
  206. package/mod/node_modules/function-bind/implementation.js +84 -0
  207. package/mod/node_modules/function-bind/index.js +5 -0
  208. package/mod/node_modules/function-bind/package.json +87 -0
  209. package/mod/node_modules/function-bind/test/.eslintrc +9 -0
  210. package/mod/node_modules/function-bind/test/index.js +252 -0
  211. package/mod/node_modules/get-intrinsic/.eslintrc +42 -0
  212. package/mod/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  213. package/mod/node_modules/get-intrinsic/.nycrc +9 -0
  214. package/mod/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  215. package/mod/node_modules/get-intrinsic/LICENSE +21 -0
  216. package/mod/node_modules/get-intrinsic/README.md +71 -0
  217. package/mod/node_modules/get-intrinsic/index.js +378 -0
  218. package/mod/node_modules/get-intrinsic/package.json +97 -0
  219. package/mod/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  220. package/mod/node_modules/get-proto/.eslintrc +10 -0
  221. package/mod/node_modules/get-proto/.github/FUNDING.yml +12 -0
  222. package/mod/node_modules/get-proto/.nycrc +9 -0
  223. package/mod/node_modules/get-proto/CHANGELOG.md +21 -0
  224. package/mod/node_modules/get-proto/LICENSE +21 -0
  225. package/mod/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  226. package/mod/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  227. package/mod/node_modules/get-proto/README.md +50 -0
  228. package/mod/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  229. package/mod/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  230. package/mod/node_modules/get-proto/index.d.ts +5 -0
  231. package/mod/node_modules/get-proto/index.js +27 -0
  232. package/mod/node_modules/get-proto/package.json +81 -0
  233. package/mod/node_modules/get-proto/test/index.js +68 -0
  234. package/mod/node_modules/get-proto/tsconfig.json +9 -0
  235. package/mod/node_modules/gopd/.eslintrc +16 -0
  236. package/mod/node_modules/gopd/.github/FUNDING.yml +12 -0
  237. package/mod/node_modules/gopd/CHANGELOG.md +45 -0
  238. package/mod/node_modules/gopd/LICENSE +21 -0
  239. package/mod/node_modules/gopd/README.md +40 -0
  240. package/mod/node_modules/gopd/gOPD.d.ts +1 -0
  241. package/mod/node_modules/gopd/gOPD.js +4 -0
  242. package/mod/node_modules/gopd/index.d.ts +5 -0
  243. package/mod/node_modules/gopd/index.js +15 -0
  244. package/mod/node_modules/gopd/package.json +77 -0
  245. package/mod/node_modules/gopd/test/index.js +36 -0
  246. package/mod/node_modules/gopd/tsconfig.json +9 -0
  247. package/mod/node_modules/has-symbols/.eslintrc +11 -0
  248. package/mod/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  249. package/mod/node_modules/has-symbols/.nycrc +9 -0
  250. package/mod/node_modules/has-symbols/CHANGELOG.md +91 -0
  251. package/mod/node_modules/has-symbols/LICENSE +21 -0
  252. package/mod/node_modules/has-symbols/README.md +46 -0
  253. package/mod/node_modules/has-symbols/index.d.ts +3 -0
  254. package/mod/node_modules/has-symbols/index.js +14 -0
  255. package/mod/node_modules/has-symbols/package.json +111 -0
  256. package/mod/node_modules/has-symbols/shams.d.ts +3 -0
  257. package/mod/node_modules/has-symbols/shams.js +45 -0
  258. package/mod/node_modules/has-symbols/test/index.js +22 -0
  259. package/mod/node_modules/has-symbols/test/shams/core-js.js +29 -0
  260. package/mod/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
  261. package/mod/node_modules/has-symbols/test/tests.js +58 -0
  262. package/mod/node_modules/has-symbols/tsconfig.json +10 -0
  263. package/mod/node_modules/hasown/.eslintrc +5 -0
  264. package/mod/node_modules/hasown/.github/FUNDING.yml +12 -0
  265. package/mod/node_modules/hasown/.nycrc +13 -0
  266. package/mod/node_modules/hasown/CHANGELOG.md +40 -0
  267. package/mod/node_modules/hasown/LICENSE +21 -0
  268. package/mod/node_modules/hasown/README.md +40 -0
  269. package/mod/node_modules/hasown/index.d.ts +3 -0
  270. package/mod/node_modules/hasown/index.js +8 -0
  271. package/mod/node_modules/hasown/package.json +92 -0
  272. package/mod/node_modules/hasown/tsconfig.json +6 -0
  273. package/mod/node_modules/http-errors/HISTORY.md +186 -0
  274. package/mod/node_modules/http-errors/LICENSE +23 -0
  275. package/mod/node_modules/http-errors/README.md +169 -0
  276. package/mod/node_modules/http-errors/index.js +290 -0
  277. package/mod/node_modules/http-errors/package.json +54 -0
  278. package/mod/node_modules/iconv-lite/LICENSE +21 -0
  279. package/mod/node_modules/iconv-lite/README.md +138 -0
  280. package/mod/node_modules/iconv-lite/encodings/dbcs-codec.js +532 -0
  281. package/mod/node_modules/iconv-lite/encodings/dbcs-data.js +185 -0
  282. package/mod/node_modules/iconv-lite/encodings/index.js +23 -0
  283. package/mod/node_modules/iconv-lite/encodings/internal.js +218 -0
  284. package/mod/node_modules/iconv-lite/encodings/sbcs-codec.js +75 -0
  285. package/mod/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  286. package/mod/node_modules/iconv-lite/encodings/sbcs-data.js +178 -0
  287. package/mod/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  288. package/mod/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  289. package/mod/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  290. package/mod/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  291. package/mod/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  292. package/mod/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  293. package/mod/node_modules/iconv-lite/encodings/tables/gbk-added.json +56 -0
  294. package/mod/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  295. package/mod/node_modules/iconv-lite/encodings/utf16.js +187 -0
  296. package/mod/node_modules/iconv-lite/encodings/utf32.js +307 -0
  297. package/mod/node_modules/iconv-lite/encodings/utf7.js +283 -0
  298. package/mod/node_modules/iconv-lite/lib/bom-handling.js +48 -0
  299. package/mod/node_modules/iconv-lite/lib/helpers/merge-exports.js +13 -0
  300. package/mod/node_modules/iconv-lite/lib/index.d.ts +129 -0
  301. package/mod/node_modules/iconv-lite/lib/index.js +182 -0
  302. package/mod/node_modules/iconv-lite/lib/streams.js +105 -0
  303. package/mod/node_modules/iconv-lite/package.json +70 -0
  304. package/mod/node_modules/iconv-lite/types/encodings.d.ts +423 -0
  305. package/mod/node_modules/inherits/LICENSE +16 -0
  306. package/mod/node_modules/inherits/README.md +42 -0
  307. package/mod/node_modules/inherits/inherits.js +9 -0
  308. package/mod/node_modules/inherits/inherits_browser.js +27 -0
  309. package/mod/node_modules/inherits/package.json +29 -0
  310. package/mod/node_modules/ipaddr.js/LICENSE +19 -0
  311. package/mod/node_modules/ipaddr.js/README.md +233 -0
  312. package/mod/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  313. package/mod/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
  314. package/mod/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
  315. package/mod/node_modules/ipaddr.js/package.json +35 -0
  316. package/mod/node_modules/is-promise/LICENSE +19 -0
  317. package/mod/node_modules/is-promise/index.d.ts +2 -0
  318. package/mod/node_modules/is-promise/index.js +6 -0
  319. package/mod/node_modules/is-promise/index.mjs +3 -0
  320. package/mod/node_modules/is-promise/package.json +30 -0
  321. package/mod/node_modules/is-promise/readme.md +33 -0
  322. package/mod/node_modules/math-intrinsics/.eslintrc +16 -0
  323. package/mod/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  324. package/mod/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  325. package/mod/node_modules/math-intrinsics/LICENSE +21 -0
  326. package/mod/node_modules/math-intrinsics/README.md +50 -0
  327. package/mod/node_modules/math-intrinsics/abs.d.ts +1 -0
  328. package/mod/node_modules/math-intrinsics/abs.js +4 -0
  329. package/mod/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  330. package/mod/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  331. package/mod/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  332. package/mod/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  333. package/mod/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  334. package/mod/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  335. package/mod/node_modules/math-intrinsics/floor.d.ts +1 -0
  336. package/mod/node_modules/math-intrinsics/floor.js +4 -0
  337. package/mod/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  338. package/mod/node_modules/math-intrinsics/isFinite.js +12 -0
  339. package/mod/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  340. package/mod/node_modules/math-intrinsics/isInteger.js +16 -0
  341. package/mod/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  342. package/mod/node_modules/math-intrinsics/isNaN.js +6 -0
  343. package/mod/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  344. package/mod/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  345. package/mod/node_modules/math-intrinsics/max.d.ts +1 -0
  346. package/mod/node_modules/math-intrinsics/max.js +4 -0
  347. package/mod/node_modules/math-intrinsics/min.d.ts +1 -0
  348. package/mod/node_modules/math-intrinsics/min.js +4 -0
  349. package/mod/node_modules/math-intrinsics/mod.d.ts +3 -0
  350. package/mod/node_modules/math-intrinsics/mod.js +9 -0
  351. package/mod/node_modules/math-intrinsics/package.json +86 -0
  352. package/mod/node_modules/math-intrinsics/pow.d.ts +1 -0
  353. package/mod/node_modules/math-intrinsics/pow.js +4 -0
  354. package/mod/node_modules/math-intrinsics/round.d.ts +1 -0
  355. package/mod/node_modules/math-intrinsics/round.js +4 -0
  356. package/mod/node_modules/math-intrinsics/sign.d.ts +3 -0
  357. package/mod/node_modules/math-intrinsics/sign.js +11 -0
  358. package/mod/node_modules/math-intrinsics/test/index.js +192 -0
  359. package/mod/node_modules/math-intrinsics/tsconfig.json +3 -0
  360. package/mod/node_modules/media-typer/HISTORY.md +50 -0
  361. package/mod/node_modules/media-typer/LICENSE +22 -0
  362. package/mod/node_modules/media-typer/README.md +93 -0
  363. package/mod/node_modules/media-typer/index.js +143 -0
  364. package/mod/node_modules/media-typer/package.json +33 -0
  365. package/mod/node_modules/merge-descriptors/index.d.ts +11 -0
  366. package/mod/node_modules/merge-descriptors/index.js +26 -0
  367. package/mod/node_modules/merge-descriptors/license +11 -0
  368. package/mod/node_modules/merge-descriptors/package.json +50 -0
  369. package/mod/node_modules/merge-descriptors/readme.md +55 -0
  370. package/mod/node_modules/mime-db/HISTORY.md +541 -0
  371. package/mod/node_modules/mime-db/LICENSE +23 -0
  372. package/mod/node_modules/mime-db/README.md +109 -0
  373. package/mod/node_modules/mime-db/db.json +9342 -0
  374. package/mod/node_modules/mime-db/index.js +12 -0
  375. package/mod/node_modules/mime-db/package.json +56 -0
  376. package/mod/node_modules/mime-types/HISTORY.md +428 -0
  377. package/mod/node_modules/mime-types/LICENSE +23 -0
  378. package/mod/node_modules/mime-types/README.md +126 -0
  379. package/mod/node_modules/mime-types/index.js +211 -0
  380. package/mod/node_modules/mime-types/mimeScore.js +57 -0
  381. package/mod/node_modules/mime-types/package.json +49 -0
  382. package/mod/node_modules/ms/index.js +162 -0
  383. package/mod/node_modules/ms/license.md +21 -0
  384. package/mod/node_modules/ms/package.json +38 -0
  385. package/mod/node_modules/ms/readme.md +59 -0
  386. package/mod/node_modules/negotiator/HISTORY.md +114 -0
  387. package/mod/node_modules/negotiator/LICENSE +24 -0
  388. package/mod/node_modules/negotiator/README.md +212 -0
  389. package/mod/node_modules/negotiator/index.js +83 -0
  390. package/mod/node_modules/negotiator/lib/charset.js +169 -0
  391. package/mod/node_modules/negotiator/lib/encoding.js +205 -0
  392. package/mod/node_modules/negotiator/lib/language.js +179 -0
  393. package/mod/node_modules/negotiator/lib/mediaType.js +294 -0
  394. package/mod/node_modules/negotiator/package.json +43 -0
  395. package/mod/node_modules/object-assign/index.js +90 -0
  396. package/mod/node_modules/object-assign/license +21 -0
  397. package/mod/node_modules/object-assign/package.json +42 -0
  398. package/mod/node_modules/object-assign/readme.md +61 -0
  399. package/mod/node_modules/object-inspect/.eslintrc +53 -0
  400. package/mod/node_modules/object-inspect/.github/FUNDING.yml +12 -0
  401. package/mod/node_modules/object-inspect/.nycrc +13 -0
  402. package/mod/node_modules/object-inspect/CHANGELOG.md +424 -0
  403. package/mod/node_modules/object-inspect/LICENSE +21 -0
  404. package/mod/node_modules/object-inspect/example/all.js +23 -0
  405. package/mod/node_modules/object-inspect/example/circular.js +6 -0
  406. package/mod/node_modules/object-inspect/example/fn.js +5 -0
  407. package/mod/node_modules/object-inspect/example/inspect.js +10 -0
  408. package/mod/node_modules/object-inspect/index.js +544 -0
  409. package/mod/node_modules/object-inspect/package-support.json +20 -0
  410. package/mod/node_modules/object-inspect/package.json +105 -0
  411. package/mod/node_modules/object-inspect/readme.markdown +84 -0
  412. package/mod/node_modules/object-inspect/test/bigint.js +58 -0
  413. package/mod/node_modules/object-inspect/test/browser/dom.js +15 -0
  414. package/mod/node_modules/object-inspect/test/circular.js +16 -0
  415. package/mod/node_modules/object-inspect/test/deep.js +12 -0
  416. package/mod/node_modules/object-inspect/test/element.js +53 -0
  417. package/mod/node_modules/object-inspect/test/err.js +48 -0
  418. package/mod/node_modules/object-inspect/test/fakes.js +29 -0
  419. package/mod/node_modules/object-inspect/test/fn.js +76 -0
  420. package/mod/node_modules/object-inspect/test/global.js +17 -0
  421. package/mod/node_modules/object-inspect/test/has.js +15 -0
  422. package/mod/node_modules/object-inspect/test/holes.js +15 -0
  423. package/mod/node_modules/object-inspect/test/indent-option.js +271 -0
  424. package/mod/node_modules/object-inspect/test/inspect.js +139 -0
  425. package/mod/node_modules/object-inspect/test/lowbyte.js +12 -0
  426. package/mod/node_modules/object-inspect/test/number.js +58 -0
  427. package/mod/node_modules/object-inspect/test/quoteStyle.js +26 -0
  428. package/mod/node_modules/object-inspect/test/toStringTag.js +40 -0
  429. package/mod/node_modules/object-inspect/test/undef.js +12 -0
  430. package/mod/node_modules/object-inspect/test/values.js +261 -0
  431. package/mod/node_modules/object-inspect/test-core-js.js +26 -0
  432. package/mod/node_modules/object-inspect/util.inspect.js +1 -0
  433. package/mod/node_modules/on-finished/HISTORY.md +98 -0
  434. package/mod/node_modules/on-finished/LICENSE +23 -0
  435. package/mod/node_modules/on-finished/README.md +162 -0
  436. package/mod/node_modules/on-finished/index.js +234 -0
  437. package/mod/node_modules/on-finished/package.json +39 -0
  438. package/mod/node_modules/once/LICENSE +15 -0
  439. package/mod/node_modules/once/README.md +79 -0
  440. package/mod/node_modules/once/once.js +42 -0
  441. package/mod/node_modules/once/package.json +33 -0
  442. package/mod/node_modules/parseurl/HISTORY.md +58 -0
  443. package/mod/node_modules/parseurl/LICENSE +24 -0
  444. package/mod/node_modules/parseurl/README.md +133 -0
  445. package/mod/node_modules/parseurl/index.js +158 -0
  446. package/mod/node_modules/parseurl/package.json +40 -0
  447. package/mod/node_modules/path-to-regexp/LICENSE +21 -0
  448. package/mod/node_modules/path-to-regexp/Readme.md +224 -0
  449. package/mod/node_modules/path-to-regexp/dist/index.d.ts +144 -0
  450. package/mod/node_modules/path-to-regexp/dist/index.js +409 -0
  451. package/mod/node_modules/path-to-regexp/dist/index.js.map +1 -0
  452. package/mod/node_modules/path-to-regexp/package.json +64 -0
  453. package/mod/node_modules/proxy-addr/HISTORY.md +161 -0
  454. package/mod/node_modules/proxy-addr/LICENSE +22 -0
  455. package/mod/node_modules/proxy-addr/README.md +139 -0
  456. package/mod/node_modules/proxy-addr/index.js +327 -0
  457. package/mod/node_modules/proxy-addr/package.json +47 -0
  458. package/mod/node_modules/qs/.editorconfig +46 -0
  459. package/mod/node_modules/qs/.github/FUNDING.yml +12 -0
  460. package/mod/node_modules/qs/.github/SECURITY.md +11 -0
  461. package/mod/node_modules/qs/.github/THREAT_MODEL.md +78 -0
  462. package/mod/node_modules/qs/.nycrc +13 -0
  463. package/mod/node_modules/qs/CHANGELOG.md +631 -0
  464. package/mod/node_modules/qs/LICENSE.md +29 -0
  465. package/mod/node_modules/qs/README.md +733 -0
  466. package/mod/node_modules/qs/dist/qs.js +141 -0
  467. package/mod/node_modules/qs/eslint.config.mjs +56 -0
  468. package/mod/node_modules/qs/lib/formats.js +23 -0
  469. package/mod/node_modules/qs/lib/index.js +11 -0
  470. package/mod/node_modules/qs/lib/parse.js +360 -0
  471. package/mod/node_modules/qs/lib/stringify.js +356 -0
  472. package/mod/node_modules/qs/lib/utils.js +320 -0
  473. package/mod/node_modules/qs/package.json +94 -0
  474. package/mod/node_modules/qs/test/empty-keys-cases.js +267 -0
  475. package/mod/node_modules/qs/test/parse.js +1396 -0
  476. package/mod/node_modules/qs/test/stringify.js +1310 -0
  477. package/mod/node_modules/qs/test/utils.js +381 -0
  478. package/mod/node_modules/range-parser/HISTORY.md +56 -0
  479. package/mod/node_modules/range-parser/LICENSE +23 -0
  480. package/mod/node_modules/range-parser/README.md +84 -0
  481. package/mod/node_modules/range-parser/index.js +162 -0
  482. package/mod/node_modules/range-parser/package.json +44 -0
  483. package/mod/node_modules/raw-body/LICENSE +22 -0
  484. package/mod/node_modules/raw-body/README.md +223 -0
  485. package/mod/node_modules/raw-body/index.d.ts +85 -0
  486. package/mod/node_modules/raw-body/index.js +336 -0
  487. package/mod/node_modules/raw-body/package.json +46 -0
  488. package/mod/node_modules/router/HISTORY.md +228 -0
  489. package/mod/node_modules/router/LICENSE +23 -0
  490. package/mod/node_modules/router/README.md +416 -0
  491. package/mod/node_modules/router/index.js +748 -0
  492. package/mod/node_modules/router/lib/layer.js +247 -0
  493. package/mod/node_modules/router/lib/route.js +242 -0
  494. package/mod/node_modules/router/package.json +44 -0
  495. package/mod/node_modules/safer-buffer/LICENSE +21 -0
  496. package/mod/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  497. package/mod/node_modules/safer-buffer/Readme.md +156 -0
  498. package/mod/node_modules/safer-buffer/dangerous.js +58 -0
  499. package/mod/node_modules/safer-buffer/package.json +34 -0
  500. package/mod/node_modules/safer-buffer/safer.js +77 -0
  501. package/mod/node_modules/safer-buffer/tests.js +406 -0
  502. package/mod/node_modules/send/LICENSE +23 -0
  503. package/mod/node_modules/send/README.md +317 -0
  504. package/mod/node_modules/send/index.js +997 -0
  505. package/mod/node_modules/send/package.json +63 -0
  506. package/mod/node_modules/serve-static/LICENSE +25 -0
  507. package/mod/node_modules/serve-static/README.md +253 -0
  508. package/mod/node_modules/serve-static/index.js +208 -0
  509. package/mod/node_modules/serve-static/package.json +44 -0
  510. package/mod/node_modules/setprototypeof/LICENSE +13 -0
  511. package/mod/node_modules/setprototypeof/README.md +31 -0
  512. package/mod/node_modules/setprototypeof/index.d.ts +2 -0
  513. package/mod/node_modules/setprototypeof/index.js +17 -0
  514. package/mod/node_modules/setprototypeof/package.json +38 -0
  515. package/mod/node_modules/setprototypeof/test/index.js +24 -0
  516. package/mod/node_modules/side-channel/.editorconfig +9 -0
  517. package/mod/node_modules/side-channel/.eslintrc +12 -0
  518. package/mod/node_modules/side-channel/.github/FUNDING.yml +12 -0
  519. package/mod/node_modules/side-channel/.nycrc +13 -0
  520. package/mod/node_modules/side-channel/CHANGELOG.md +110 -0
  521. package/mod/node_modules/side-channel/LICENSE +21 -0
  522. package/mod/node_modules/side-channel/README.md +61 -0
  523. package/mod/node_modules/side-channel/index.d.ts +14 -0
  524. package/mod/node_modules/side-channel/index.js +43 -0
  525. package/mod/node_modules/side-channel/package.json +85 -0
  526. package/mod/node_modules/side-channel/test/index.js +104 -0
  527. package/mod/node_modules/side-channel/tsconfig.json +9 -0
  528. package/mod/node_modules/side-channel-list/.editorconfig +9 -0
  529. package/mod/node_modules/side-channel-list/.eslintrc +11 -0
  530. package/mod/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  531. package/mod/node_modules/side-channel-list/.nycrc +13 -0
  532. package/mod/node_modules/side-channel-list/CHANGELOG.md +15 -0
  533. package/mod/node_modules/side-channel-list/LICENSE +21 -0
  534. package/mod/node_modules/side-channel-list/README.md +62 -0
  535. package/mod/node_modules/side-channel-list/index.d.ts +13 -0
  536. package/mod/node_modules/side-channel-list/index.js +113 -0
  537. package/mod/node_modules/side-channel-list/list.d.ts +14 -0
  538. package/mod/node_modules/side-channel-list/package.json +77 -0
  539. package/mod/node_modules/side-channel-list/test/index.js +104 -0
  540. package/mod/node_modules/side-channel-list/tsconfig.json +9 -0
  541. package/mod/node_modules/side-channel-map/.editorconfig +9 -0
  542. package/mod/node_modules/side-channel-map/.eslintrc +11 -0
  543. package/mod/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  544. package/mod/node_modules/side-channel-map/.nycrc +13 -0
  545. package/mod/node_modules/side-channel-map/CHANGELOG.md +22 -0
  546. package/mod/node_modules/side-channel-map/LICENSE +21 -0
  547. package/mod/node_modules/side-channel-map/README.md +62 -0
  548. package/mod/node_modules/side-channel-map/index.d.ts +15 -0
  549. package/mod/node_modules/side-channel-map/index.js +68 -0
  550. package/mod/node_modules/side-channel-map/package.json +80 -0
  551. package/mod/node_modules/side-channel-map/test/index.js +114 -0
  552. package/mod/node_modules/side-channel-map/tsconfig.json +9 -0
  553. package/mod/node_modules/side-channel-weakmap/.editorconfig +9 -0
  554. package/mod/node_modules/side-channel-weakmap/.eslintrc +12 -0
  555. package/mod/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  556. package/mod/node_modules/side-channel-weakmap/.nycrc +13 -0
  557. package/mod/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  558. package/mod/node_modules/side-channel-weakmap/LICENSE +21 -0
  559. package/mod/node_modules/side-channel-weakmap/README.md +62 -0
  560. package/mod/node_modules/side-channel-weakmap/index.d.ts +15 -0
  561. package/mod/node_modules/side-channel-weakmap/index.js +84 -0
  562. package/mod/node_modules/side-channel-weakmap/package.json +87 -0
  563. package/mod/node_modules/side-channel-weakmap/test/index.js +114 -0
  564. package/mod/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  565. package/mod/node_modules/statuses/HISTORY.md +87 -0
  566. package/mod/node_modules/statuses/LICENSE +23 -0
  567. package/mod/node_modules/statuses/README.md +139 -0
  568. package/mod/node_modules/statuses/codes.json +65 -0
  569. package/mod/node_modules/statuses/index.js +146 -0
  570. package/mod/node_modules/statuses/package.json +49 -0
  571. package/mod/node_modules/toidentifier/HISTORY.md +9 -0
  572. package/mod/node_modules/toidentifier/LICENSE +21 -0
  573. package/mod/node_modules/toidentifier/README.md +61 -0
  574. package/mod/node_modules/toidentifier/index.js +32 -0
  575. package/mod/node_modules/toidentifier/package.json +38 -0
  576. package/mod/node_modules/type-is/HISTORY.md +292 -0
  577. package/mod/node_modules/type-is/LICENSE +23 -0
  578. package/mod/node_modules/type-is/README.md +198 -0
  579. package/mod/node_modules/type-is/index.js +250 -0
  580. package/mod/node_modules/type-is/package.json +47 -0
  581. package/mod/node_modules/unpipe/HISTORY.md +4 -0
  582. package/mod/node_modules/unpipe/LICENSE +22 -0
  583. package/mod/node_modules/unpipe/README.md +43 -0
  584. package/mod/node_modules/unpipe/index.js +69 -0
  585. package/mod/node_modules/unpipe/package.json +27 -0
  586. package/mod/node_modules/vary/HISTORY.md +39 -0
  587. package/mod/node_modules/vary/LICENSE +22 -0
  588. package/mod/node_modules/vary/README.md +101 -0
  589. package/mod/node_modules/vary/index.js +149 -0
  590. package/mod/node_modules/vary/package.json +43 -0
  591. package/mod/node_modules/wrappy/LICENSE +15 -0
  592. package/mod/node_modules/wrappy/README.md +36 -0
  593. package/mod/node_modules/wrappy/package.json +29 -0
  594. package/mod/node_modules/wrappy/wrappy.js +33 -0
  595. package/mod/package-lock.json +854 -0
  596. package/mod/package.json +16 -0
  597. package/package.json +19 -0
@@ -0,0 +1,532 @@
1
+ "use strict"
2
+ var Buffer = require("safer-buffer").Buffer
3
+
4
+ // Multibyte codec. In this scheme, a character is represented by 1 or more bytes.
5
+ // Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.
6
+ // To save memory and loading time, we read table files only when requested.
7
+
8
+ exports._dbcs = DBCSCodec
9
+
10
+ var UNASSIGNED = -1
11
+ var GB18030_CODE = -2
12
+ var SEQ_START = -10
13
+ var NODE_START = -1000
14
+ var UNASSIGNED_NODE = new Array(0x100)
15
+ var DEF_CHAR = -1
16
+
17
+ for (var i = 0; i < 0x100; i++) { UNASSIGNED_NODE[i] = UNASSIGNED }
18
+
19
+ // Class DBCSCodec reads and initializes mapping tables.
20
+ function DBCSCodec (codecOptions, iconv) {
21
+ this.encodingName = codecOptions.encodingName
22
+ if (!codecOptions) { throw new Error("DBCS codec is called without the data.") }
23
+ if (!codecOptions.table) { throw new Error("Encoding '" + this.encodingName + "' has no data.") }
24
+
25
+ // Load tables.
26
+ var mappingTable = codecOptions.table()
27
+
28
+ // Decode tables: MBCS -> Unicode.
29
+
30
+ // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.
31
+ // Trie root is decodeTables[0].
32
+ // Values: >= 0 -> unicode character code. can be > 0xFFFF
33
+ // == UNASSIGNED -> unknown/unassigned sequence.
34
+ // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.
35
+ // <= NODE_START -> index of the next node in our trie to process next byte.
36
+ // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq.
37
+ this.decodeTables = []
38
+ this.decodeTables[0] = UNASSIGNED_NODE.slice(0) // Create root node.
39
+
40
+ // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here.
41
+ this.decodeTableSeq = []
42
+
43
+ // Actual mapping tables consist of chunks. Use them to fill up decode tables.
44
+ for (var i = 0; i < mappingTable.length; i++) { this._addDecodeChunk(mappingTable[i]) }
45
+
46
+ // Load & create GB18030 tables when needed.
47
+ if (typeof codecOptions.gb18030 === "function") {
48
+ this.gb18030 = codecOptions.gb18030() // Load GB18030 ranges.
49
+
50
+ // Add GB18030 common decode nodes.
51
+ var commonThirdByteNodeIdx = this.decodeTables.length
52
+ this.decodeTables.push(UNASSIGNED_NODE.slice(0))
53
+
54
+ var commonFourthByteNodeIdx = this.decodeTables.length
55
+ this.decodeTables.push(UNASSIGNED_NODE.slice(0))
56
+
57
+ // Fill out the tree
58
+ var firstByteNode = this.decodeTables[0]
59
+ for (var i = 0x81; i <= 0xFE; i++) {
60
+ var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i]]
61
+ for (var j = 0x30; j <= 0x39; j++) {
62
+ if (secondByteNode[j] === UNASSIGNED) {
63
+ secondByteNode[j] = NODE_START - commonThirdByteNodeIdx
64
+ } else if (secondByteNode[j] > NODE_START) {
65
+ throw new Error("gb18030 decode tables conflict at byte 2")
66
+ }
67
+
68
+ var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]]
69
+ for (var k = 0x81; k <= 0xFE; k++) {
70
+ if (thirdByteNode[k] === UNASSIGNED) {
71
+ thirdByteNode[k] = NODE_START - commonFourthByteNodeIdx
72
+ } else if (thirdByteNode[k] === NODE_START - commonFourthByteNodeIdx) {
73
+ continue
74
+ } else if (thirdByteNode[k] > NODE_START) {
75
+ throw new Error("gb18030 decode tables conflict at byte 3")
76
+ }
77
+
78
+ var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k]]
79
+ for (var l = 0x30; l <= 0x39; l++) {
80
+ if (fourthByteNode[l] === UNASSIGNED) { fourthByteNode[l] = GB18030_CODE }
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }
86
+
87
+ this.defaultCharUnicode = iconv.defaultCharUnicode
88
+
89
+ // Encode tables: Unicode -> DBCS.
90
+
91
+ // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.
92
+ // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.
93
+ // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).
94
+ // == UNASSIGNED -> no conversion found. Output a default char.
95
+ // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence.
96
+ this.encodeTable = []
97
+
98
+ // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of
99
+ // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key
100
+ // means end of sequence (needed when one sequence is a strict subsequence of another).
101
+ // Objects are kept separately from encodeTable to increase performance.
102
+ this.encodeTableSeq = []
103
+
104
+ // Some chars can be decoded, but need not be encoded.
105
+ var skipEncodeChars = {}
106
+ if (codecOptions.encodeSkipVals) {
107
+ for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {
108
+ var val = codecOptions.encodeSkipVals[i]
109
+ if (typeof val === "number") { skipEncodeChars[val] = true } else {
110
+ for (var j = val.from; j <= val.to; j++) { skipEncodeChars[j] = true }
111
+ }
112
+ }
113
+ }
114
+
115
+ // Use decode trie to recursively fill out encode tables.
116
+ this._fillEncodeTable(0, 0, skipEncodeChars)
117
+
118
+ // Add more encoding pairs when needed.
119
+ if (codecOptions.encodeAdd) {
120
+ for (var uChar in codecOptions.encodeAdd) {
121
+ if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) { this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]) }
122
+ }
123
+ }
124
+
125
+ this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)]
126
+ if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]["?"]
127
+ if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0)
128
+ }
129
+
130
+ DBCSCodec.prototype.encoder = DBCSEncoder
131
+ DBCSCodec.prototype.decoder = DBCSDecoder
132
+
133
+ // Decoder helpers
134
+ DBCSCodec.prototype._getDecodeTrieNode = function (addr) {
135
+ var bytes = []
136
+ for (; addr > 0; addr >>>= 8) { bytes.push(addr & 0xFF) }
137
+ if (bytes.length == 0) { bytes.push(0) }
138
+
139
+ var node = this.decodeTables[0]
140
+ for (var i = bytes.length - 1; i > 0; i--) { // Traverse nodes deeper into the trie.
141
+ var val = node[bytes[i]]
142
+
143
+ if (val == UNASSIGNED) { // Create new node.
144
+ node[bytes[i]] = NODE_START - this.decodeTables.length
145
+ this.decodeTables.push(node = UNASSIGNED_NODE.slice(0))
146
+ } else if (val <= NODE_START) { // Existing node.
147
+ node = this.decodeTables[NODE_START - val]
148
+ } else { throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16)) }
149
+ }
150
+ return node
151
+ }
152
+
153
+ DBCSCodec.prototype._addDecodeChunk = function (chunk) {
154
+ // First element of chunk is the hex mbcs code where we start.
155
+ var curAddr = parseInt(chunk[0], 16)
156
+
157
+ // Choose the decoding node where we'll write our chars.
158
+ var writeTable = this._getDecodeTrieNode(curAddr)
159
+ curAddr = curAddr & 0xFF
160
+
161
+ // Write all other elements of the chunk to the table.
162
+ for (var k = 1; k < chunk.length; k++) {
163
+ var part = chunk[k]
164
+ if (typeof part === "string") { // String, write as-is.
165
+ for (var l = 0; l < part.length;) {
166
+ var code = part.charCodeAt(l++)
167
+ if (code >= 0xD800 && code < 0xDC00) { // Decode surrogate
168
+ var codeTrail = part.charCodeAt(l++)
169
+ if (codeTrail >= 0xDC00 && codeTrail < 0xE000) { writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00) } else { throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]) }
170
+ } else if (code > 0x0FF0 && code <= 0x0FFF) { // Character sequence (our own encoding used)
171
+ var len = 0xFFF - code + 2
172
+ var seq = []
173
+ for (var m = 0; m < len; m++) { seq.push(part.charCodeAt(l++)) } // Simple variation: don't support surrogates or subsequences in seq.
174
+
175
+ writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length
176
+ this.decodeTableSeq.push(seq)
177
+ } else { writeTable[curAddr++] = code } // Basic char
178
+ }
179
+ } else if (typeof part === "number") { // Integer, meaning increasing sequence starting with prev character.
180
+ var charCode = writeTable[curAddr - 1] + 1
181
+ for (var l = 0; l < part; l++) { writeTable[curAddr++] = charCode++ }
182
+ } else { throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]) }
183
+ }
184
+ if (curAddr > 0xFF) { throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr) }
185
+ }
186
+
187
+ // Encoder helpers
188
+ DBCSCodec.prototype._getEncodeBucket = function (uCode) {
189
+ var high = uCode >> 8 // This could be > 0xFF because of astral characters.
190
+ if (this.encodeTable[high] === undefined) {
191
+ this.encodeTable[high] = UNASSIGNED_NODE.slice(0)
192
+ } // Create bucket on demand.
193
+ return this.encodeTable[high]
194
+ }
195
+
196
+ DBCSCodec.prototype._setEncodeChar = function (uCode, dbcsCode) {
197
+ var bucket = this._getEncodeBucket(uCode)
198
+ var low = uCode & 0xFF
199
+ if (bucket[low] <= SEQ_START) { this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode } // There's already a sequence, set a single-char subsequence of it.
200
+ else if (bucket[low] == UNASSIGNED) { bucket[low] = dbcsCode }
201
+ }
202
+
203
+ DBCSCodec.prototype._setEncodeSequence = function (seq, dbcsCode) {
204
+ // Get the root of character tree according to first character of the sequence.
205
+ var uCode = seq[0]
206
+ var bucket = this._getEncodeBucket(uCode)
207
+ var low = uCode & 0xFF
208
+
209
+ var node
210
+ if (bucket[low] <= SEQ_START) {
211
+ // There's already a sequence with - use it.
212
+ node = this.encodeTableSeq[SEQ_START - bucket[low]]
213
+ } else {
214
+ // There was no sequence object - allocate a new one.
215
+ node = {}
216
+ if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low] // If a char was set before - make it a single-char subsequence.
217
+ bucket[low] = SEQ_START - this.encodeTableSeq.length
218
+ this.encodeTableSeq.push(node)
219
+ }
220
+
221
+ // Traverse the character tree, allocating new nodes as needed.
222
+ for (var j = 1; j < seq.length - 1; j++) {
223
+ var oldVal = node[uCode]
224
+ if (typeof oldVal === "object") { node = oldVal } else {
225
+ node = node[uCode] = {}
226
+ if (oldVal !== undefined) { node[DEF_CHAR] = oldVal }
227
+ }
228
+ }
229
+
230
+ // Set the leaf to given dbcsCode.
231
+ uCode = seq[seq.length - 1]
232
+ node[uCode] = dbcsCode
233
+ }
234
+
235
+ DBCSCodec.prototype._fillEncodeTable = function (nodeIdx, prefix, skipEncodeChars) {
236
+ var node = this.decodeTables[nodeIdx]
237
+ var hasValues = false
238
+ var subNodeEmpty = {}
239
+ for (var i = 0; i < 0x100; i++) {
240
+ var uCode = node[i]
241
+ var mbCode = prefix + i
242
+ if (skipEncodeChars[mbCode]) { continue }
243
+
244
+ if (uCode >= 0) {
245
+ this._setEncodeChar(uCode, mbCode)
246
+ hasValues = true
247
+ } else if (uCode <= NODE_START) {
248
+ var subNodeIdx = NODE_START - uCode
249
+ if (!subNodeEmpty[subNodeIdx]) { // Skip empty subtrees (they are too large in gb18030).
250
+ var newPrefix = (mbCode << 8) >>> 0 // NOTE: '>>> 0' keeps 32-bit num positive.
251
+ if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars)) { hasValues = true } else { subNodeEmpty[subNodeIdx] = true }
252
+ }
253
+ } else if (uCode <= SEQ_START) {
254
+ this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode)
255
+ hasValues = true
256
+ }
257
+ }
258
+ return hasValues
259
+ }
260
+
261
+ // == Encoder ==================================================================
262
+
263
+ function DBCSEncoder (options, codec) {
264
+ // Encoder state
265
+ this.leadSurrogate = -1
266
+ this.seqObj = undefined
267
+
268
+ // Static data
269
+ this.encodeTable = codec.encodeTable
270
+ this.encodeTableSeq = codec.encodeTableSeq
271
+ this.defaultCharSingleByte = codec.defCharSB
272
+ this.gb18030 = codec.gb18030
273
+ }
274
+
275
+ DBCSEncoder.prototype.write = function (str) {
276
+ var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3))
277
+ var leadSurrogate = this.leadSurrogate
278
+ var seqObj = this.seqObj
279
+ var nextChar = -1
280
+ var i = 0; var j = 0
281
+
282
+ while (true) {
283
+ // 0. Get next character.
284
+ if (nextChar === -1) {
285
+ if (i == str.length) break
286
+ var uCode = str.charCodeAt(i++)
287
+ } else {
288
+ var uCode = nextChar
289
+ nextChar = -1
290
+ }
291
+
292
+ // 1. Handle surrogates.
293
+ if (uCode >= 0xD800 && uCode < 0xE000) { // Char is one of surrogates.
294
+ if (uCode < 0xDC00) { // We've got lead surrogate.
295
+ if (leadSurrogate === -1) {
296
+ leadSurrogate = uCode
297
+ continue
298
+ } else {
299
+ leadSurrogate = uCode
300
+ // Double lead surrogate found.
301
+ uCode = UNASSIGNED
302
+ }
303
+ } else { // We've got trail surrogate.
304
+ if (leadSurrogate !== -1) {
305
+ uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00)
306
+ leadSurrogate = -1
307
+ } else {
308
+ // Incomplete surrogate pair - only trail surrogate found.
309
+ uCode = UNASSIGNED
310
+ }
311
+ }
312
+ } else if (leadSurrogate !== -1) {
313
+ // Incomplete surrogate pair - only lead surrogate found.
314
+ nextChar = uCode; uCode = UNASSIGNED // Write an error, then current char.
315
+ leadSurrogate = -1
316
+ }
317
+
318
+ // 2. Convert uCode character.
319
+ var dbcsCode = UNASSIGNED
320
+ if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence
321
+ var resCode = seqObj[uCode]
322
+ if (typeof resCode === "object") { // Sequence continues.
323
+ seqObj = resCode
324
+ continue
325
+ } else if (typeof resCode === "number") { // Sequence finished. Write it.
326
+ dbcsCode = resCode
327
+ } else if (resCode == undefined) { // Current character is not part of the sequence.
328
+ // Try default character for this sequence
329
+ resCode = seqObj[DEF_CHAR]
330
+ if (resCode !== undefined) {
331
+ dbcsCode = resCode // Found. Write it.
332
+ nextChar = uCode // Current character will be written too in the next iteration.
333
+ } else {
334
+ // TODO: What if we have no default? (resCode == undefined)
335
+ // Then, we should write first char of the sequence as-is and try the rest recursively.
336
+ // Didn't do it for now because no encoding has this situation yet.
337
+ // Currently, just skip the sequence and write current char.
338
+ }
339
+ }
340
+ seqObj = undefined
341
+ } else if (uCode >= 0) { // Regular character
342
+ var subtable = this.encodeTable[uCode >> 8]
343
+ if (subtable !== undefined) { dbcsCode = subtable[uCode & 0xFF] }
344
+
345
+ if (dbcsCode <= SEQ_START) { // Sequence start
346
+ seqObj = this.encodeTableSeq[SEQ_START - dbcsCode]
347
+ continue
348
+ }
349
+
350
+ if (dbcsCode == UNASSIGNED && this.gb18030) {
351
+ // Use GB18030 algorithm to find character(s) to write.
352
+ var idx = findIdx(this.gb18030.uChars, uCode)
353
+ if (idx != -1) {
354
+ var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx])
355
+ newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600
356
+ newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260
357
+ newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10
358
+ newBuf[j++] = 0x30 + dbcsCode
359
+ continue
360
+ }
361
+ }
362
+ }
363
+
364
+ // 3. Write dbcsCode character.
365
+ if (dbcsCode === UNASSIGNED) { dbcsCode = this.defaultCharSingleByte }
366
+
367
+ if (dbcsCode < 0x100) {
368
+ newBuf[j++] = dbcsCode
369
+ } else if (dbcsCode < 0x10000) {
370
+ newBuf[j++] = dbcsCode >> 8 // high byte
371
+ newBuf[j++] = dbcsCode & 0xFF // low byte
372
+ } else if (dbcsCode < 0x1000000) {
373
+ newBuf[j++] = dbcsCode >> 16
374
+ newBuf[j++] = (dbcsCode >> 8) & 0xFF
375
+ newBuf[j++] = dbcsCode & 0xFF
376
+ } else {
377
+ newBuf[j++] = dbcsCode >>> 24
378
+ newBuf[j++] = (dbcsCode >>> 16) & 0xFF
379
+ newBuf[j++] = (dbcsCode >>> 8) & 0xFF
380
+ newBuf[j++] = dbcsCode & 0xFF
381
+ }
382
+ }
383
+
384
+ this.seqObj = seqObj
385
+ this.leadSurrogate = leadSurrogate
386
+ return newBuf.slice(0, j)
387
+ }
388
+
389
+ DBCSEncoder.prototype.end = function () {
390
+ if (this.leadSurrogate === -1 && this.seqObj === undefined) { return } // All clean. Most often case.
391
+
392
+ var newBuf = Buffer.alloc(10); var j = 0
393
+
394
+ if (this.seqObj) { // We're in the sequence.
395
+ var dbcsCode = this.seqObj[DEF_CHAR]
396
+ if (dbcsCode !== undefined) { // Write beginning of the sequence.
397
+ if (dbcsCode < 0x100) {
398
+ newBuf[j++] = dbcsCode
399
+ } else {
400
+ newBuf[j++] = dbcsCode >> 8 // high byte
401
+ newBuf[j++] = dbcsCode & 0xFF // low byte
402
+ }
403
+ } else {
404
+ // See todo above.
405
+ }
406
+ this.seqObj = undefined
407
+ }
408
+
409
+ if (this.leadSurrogate !== -1) {
410
+ // Incomplete surrogate pair - only lead surrogate found.
411
+ newBuf[j++] = this.defaultCharSingleByte
412
+ this.leadSurrogate = -1
413
+ }
414
+
415
+ return newBuf.slice(0, j)
416
+ }
417
+
418
+ // Export for testing
419
+ DBCSEncoder.prototype.findIdx = findIdx
420
+
421
+ // == Decoder ==================================================================
422
+
423
+ function DBCSDecoder (options, codec) {
424
+ // Decoder state
425
+ this.nodeIdx = 0
426
+ this.prevBytes = []
427
+
428
+ // Static data
429
+ this.decodeTables = codec.decodeTables
430
+ this.decodeTableSeq = codec.decodeTableSeq
431
+ this.defaultCharUnicode = codec.defaultCharUnicode
432
+ this.gb18030 = codec.gb18030
433
+ }
434
+
435
+ DBCSDecoder.prototype.write = function (buf) {
436
+ var newBuf = Buffer.alloc(buf.length * 2)
437
+ var nodeIdx = this.nodeIdx
438
+ var prevBytes = this.prevBytes; var prevOffset = this.prevBytes.length
439
+ var seqStart = -this.prevBytes.length // idx of the start of current parsed sequence.
440
+ var uCode
441
+
442
+ for (var i = 0, j = 0; i < buf.length; i++) {
443
+ var curByte = (i >= 0) ? buf[i] : prevBytes[i + prevOffset]
444
+
445
+ // Lookup in current trie node.
446
+ var uCode = this.decodeTables[nodeIdx][curByte]
447
+
448
+ if (uCode >= 0) {
449
+ // Normal character, just use it.
450
+ } else if (uCode === UNASSIGNED) { // Unknown char.
451
+ // TODO: Callback with seq.
452
+ uCode = this.defaultCharUnicode.charCodeAt(0)
453
+ i = seqStart // Skip one byte ('i' will be incremented by the for loop) and try to parse again.
454
+ } else if (uCode === GB18030_CODE) {
455
+ if (i >= 3) {
456
+ var ptr = (buf[i - 3] - 0x81) * 12600 + (buf[i - 2] - 0x30) * 1260 + (buf[i - 1] - 0x81) * 10 + (curByte - 0x30)
457
+ } else {
458
+ var ptr = (prevBytes[i - 3 + prevOffset] - 0x81) * 12600 +
459
+ (((i - 2 >= 0) ? buf[i - 2] : prevBytes[i - 2 + prevOffset]) - 0x30) * 1260 +
460
+ (((i - 1 >= 0) ? buf[i - 1] : prevBytes[i - 1 + prevOffset]) - 0x81) * 10 +
461
+ (curByte - 0x30)
462
+ }
463
+ var idx = findIdx(this.gb18030.gbChars, ptr)
464
+ uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx]
465
+ } else if (uCode <= NODE_START) { // Go to next trie node.
466
+ nodeIdx = NODE_START - uCode
467
+ continue
468
+ } else if (uCode <= SEQ_START) { // Output a sequence of chars.
469
+ var seq = this.decodeTableSeq[SEQ_START - uCode]
470
+ for (var k = 0; k < seq.length - 1; k++) {
471
+ uCode = seq[k]
472
+ newBuf[j++] = uCode & 0xFF
473
+ newBuf[j++] = uCode >> 8
474
+ }
475
+ uCode = seq[seq.length - 1]
476
+ } else { throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte) }
477
+
478
+ // Write the character to buffer, handling higher planes using surrogate pair.
479
+ if (uCode >= 0x10000) {
480
+ uCode -= 0x10000
481
+ var uCodeLead = 0xD800 | (uCode >> 10)
482
+ newBuf[j++] = uCodeLead & 0xFF
483
+ newBuf[j++] = uCodeLead >> 8
484
+
485
+ uCode = 0xDC00 | (uCode & 0x3FF)
486
+ }
487
+ newBuf[j++] = uCode & 0xFF
488
+ newBuf[j++] = uCode >> 8
489
+
490
+ // Reset trie node.
491
+ nodeIdx = 0; seqStart = i + 1
492
+ }
493
+
494
+ this.nodeIdx = nodeIdx
495
+ this.prevBytes = (seqStart >= 0)
496
+ ? Array.prototype.slice.call(buf, seqStart)
497
+ : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf))
498
+
499
+ return newBuf.slice(0, j).toString("ucs2")
500
+ }
501
+
502
+ DBCSDecoder.prototype.end = function () {
503
+ var ret = ""
504
+
505
+ // Try to parse all remaining chars.
506
+ while (this.prevBytes.length > 0) {
507
+ // Skip 1 character in the buffer.
508
+ ret += this.defaultCharUnicode
509
+ var bytesArr = this.prevBytes.slice(1)
510
+
511
+ // Parse remaining as usual.
512
+ this.prevBytes = []
513
+ this.nodeIdx = 0
514
+ if (bytesArr.length > 0) { ret += this.write(bytesArr) }
515
+ }
516
+
517
+ this.prevBytes = []
518
+ this.nodeIdx = 0
519
+ return ret
520
+ }
521
+
522
+ // Binary search for GB18030. Returns largest i such that table[i] <= val.
523
+ function findIdx (table, val) {
524
+ if (table[0] > val) { return -1 }
525
+
526
+ var l = 0; var r = table.length
527
+ while (l < r - 1) { // always table[l] <= val < table[r]
528
+ var mid = l + ((r - l + 1) >> 1)
529
+ if (table[mid] <= val) { l = mid } else { r = mid }
530
+ }
531
+ return l
532
+ }