coupeeeez 0.0.4 → 0.0.5

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 (872) hide show
  1. package/package.json +2 -2
  2. package/stream/README.md +5 -0
  3. package/stream/dist/assets/index-DNWtM_jG.css +1 -0
  4. package/stream/dist/assets/index-DUEk1StE.js +22 -0
  5. package/stream/dist/coupeeeez.svg +66 -0
  6. package/stream/dist/index.html +15 -0
  7. package/stream/index.html +14 -0
  8. package/stream/package-lock.json +2144 -0
  9. package/stream/package.json +38 -0
  10. package/stream/tsconfig.app.json +15 -0
  11. package/stream/tsconfig.json +4 -0
  12. package/stream/tsconfig.node.json +25 -0
  13. package/stream-api/Message.ts +0 -6
  14. package/stream-api/SSEInjected.ts +0 -3
  15. package/stream-api/SSEServer.ts +0 -37
  16. package/stream-api/SSEServers.ts +0 -36
  17. package/stream-api/StreamApi.ts +0 -39
  18. package/stream-api/app.ts +0 -14
  19. package/stream-api/index.ts +0 -1
  20. package/stream-api/node_modules/.package-lock.json +0 -962
  21. package/stream-api/node_modules/@types/body-parser/LICENSE +0 -21
  22. package/stream-api/node_modules/@types/body-parser/README.md +0 -15
  23. package/stream-api/node_modules/@types/body-parser/index.d.ts +0 -95
  24. package/stream-api/node_modules/@types/body-parser/package.json +0 -64
  25. package/stream-api/node_modules/@types/connect/LICENSE +0 -21
  26. package/stream-api/node_modules/@types/connect/README.md +0 -15
  27. package/stream-api/node_modules/@types/connect/index.d.ts +0 -91
  28. package/stream-api/node_modules/@types/connect/package.json +0 -32
  29. package/stream-api/node_modules/@types/express/LICENSE +0 -21
  30. package/stream-api/node_modules/@types/express/README.md +0 -15
  31. package/stream-api/node_modules/@types/express/index.d.ts +0 -122
  32. package/stream-api/node_modules/@types/express/package.json +0 -45
  33. package/stream-api/node_modules/@types/express-serve-static-core/LICENSE +0 -21
  34. package/stream-api/node_modules/@types/express-serve-static-core/README.md +0 -15
  35. package/stream-api/node_modules/@types/express-serve-static-core/index.d.ts +0 -1244
  36. package/stream-api/node_modules/@types/express-serve-static-core/package.json +0 -51
  37. package/stream-api/node_modules/@types/http-errors/LICENSE +0 -21
  38. package/stream-api/node_modules/@types/http-errors/README.md +0 -15
  39. package/stream-api/node_modules/@types/http-errors/index.d.ts +0 -77
  40. package/stream-api/node_modules/@types/http-errors/package.json +0 -36
  41. package/stream-api/node_modules/@types/mime/LICENSE +0 -21
  42. package/stream-api/node_modules/@types/mime/Mime.d.ts +0 -10
  43. package/stream-api/node_modules/@types/mime/README.md +0 -15
  44. package/stream-api/node_modules/@types/mime/index.d.ts +0 -31
  45. package/stream-api/node_modules/@types/mime/lite.d.ts +0 -7
  46. package/stream-api/node_modules/@types/mime/package.json +0 -30
  47. package/stream-api/node_modules/@types/node/LICENSE +0 -21
  48. package/stream-api/node_modules/@types/node/README.md +0 -15
  49. package/stream-api/node_modules/@types/node/assert/strict.d.ts +0 -111
  50. package/stream-api/node_modules/@types/node/assert.d.ts +0 -1115
  51. package/stream-api/node_modules/@types/node/async_hooks.d.ts +0 -623
  52. package/stream-api/node_modules/@types/node/buffer.buffer.d.ts +0 -472
  53. package/stream-api/node_modules/@types/node/buffer.d.ts +0 -1934
  54. package/stream-api/node_modules/@types/node/child_process.d.ts +0 -1476
  55. package/stream-api/node_modules/@types/node/cluster.d.ts +0 -578
  56. package/stream-api/node_modules/@types/node/compatibility/iterators.d.ts +0 -21
  57. package/stream-api/node_modules/@types/node/console.d.ts +0 -453
  58. package/stream-api/node_modules/@types/node/constants.d.ts +0 -21
  59. package/stream-api/node_modules/@types/node/crypto.d.ts +0 -5417
  60. package/stream-api/node_modules/@types/node/dgram.d.ts +0 -600
  61. package/stream-api/node_modules/@types/node/diagnostics_channel.d.ts +0 -576
  62. package/stream-api/node_modules/@types/node/dns/promises.d.ts +0 -503
  63. package/stream-api/node_modules/@types/node/dns.d.ts +0 -923
  64. package/stream-api/node_modules/@types/node/domain.d.ts +0 -170
  65. package/stream-api/node_modules/@types/node/events.d.ts +0 -976
  66. package/stream-api/node_modules/@types/node/fs/promises.d.ts +0 -1317
  67. package/stream-api/node_modules/@types/node/fs.d.ts +0 -4714
  68. package/stream-api/node_modules/@types/node/globals.d.ts +0 -170
  69. package/stream-api/node_modules/@types/node/globals.typedarray.d.ts +0 -41
  70. package/stream-api/node_modules/@types/node/http.d.ts +0 -2134
  71. package/stream-api/node_modules/@types/node/http2.d.ts +0 -2756
  72. package/stream-api/node_modules/@types/node/https.d.ts +0 -579
  73. package/stream-api/node_modules/@types/node/index.d.ts +0 -101
  74. package/stream-api/node_modules/@types/node/inspector.d.ts +0 -277
  75. package/stream-api/node_modules/@types/node/inspector.generated.d.ts +0 -4233
  76. package/stream-api/node_modules/@types/node/module.d.ts +0 -894
  77. package/stream-api/node_modules/@types/node/net.d.ts +0 -1054
  78. package/stream-api/node_modules/@types/node/os.d.ts +0 -507
  79. package/stream-api/node_modules/@types/node/package.json +0 -155
  80. package/stream-api/node_modules/@types/node/path.d.ts +0 -200
  81. package/stream-api/node_modules/@types/node/perf_hooks.d.ts +0 -982
  82. package/stream-api/node_modules/@types/node/process.d.ts +0 -2069
  83. package/stream-api/node_modules/@types/node/punycode.d.ts +0 -117
  84. package/stream-api/node_modules/@types/node/querystring.d.ts +0 -152
  85. package/stream-api/node_modules/@types/node/readline/promises.d.ts +0 -161
  86. package/stream-api/node_modules/@types/node/readline.d.ts +0 -594
  87. package/stream-api/node_modules/@types/node/repl.d.ts +0 -438
  88. package/stream-api/node_modules/@types/node/sea.d.ts +0 -162
  89. package/stream-api/node_modules/@types/node/sqlite.d.ts +0 -937
  90. package/stream-api/node_modules/@types/node/stream/consumers.d.ts +0 -38
  91. package/stream-api/node_modules/@types/node/stream/promises.d.ts +0 -90
  92. package/stream-api/node_modules/@types/node/stream/web.d.ts +0 -573
  93. package/stream-api/node_modules/@types/node/stream.d.ts +0 -1683
  94. package/stream-api/node_modules/@types/node/string_decoder.d.ts +0 -67
  95. package/stream-api/node_modules/@types/node/test.d.ts +0 -2339
  96. package/stream-api/node_modules/@types/node/timers/promises.d.ts +0 -108
  97. package/stream-api/node_modules/@types/node/timers.d.ts +0 -285
  98. package/stream-api/node_modules/@types/node/tls.d.ts +0 -1269
  99. package/stream-api/node_modules/@types/node/trace_events.d.ts +0 -197
  100. package/stream-api/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -468
  101. package/stream-api/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +0 -71
  102. package/stream-api/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -36
  103. package/stream-api/node_modules/@types/node/ts5.6/index.d.ts +0 -103
  104. package/stream-api/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +0 -72
  105. package/stream-api/node_modules/@types/node/ts5.7/index.d.ts +0 -103
  106. package/stream-api/node_modules/@types/node/tty.d.ts +0 -208
  107. package/stream-api/node_modules/@types/node/url.d.ts +0 -1057
  108. package/stream-api/node_modules/@types/node/util.d.ts +0 -2325
  109. package/stream-api/node_modules/@types/node/v8.d.ts +0 -952
  110. package/stream-api/node_modules/@types/node/vm.d.ts +0 -1180
  111. package/stream-api/node_modules/@types/node/wasi.d.ts +0 -202
  112. package/stream-api/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  113. package/stream-api/node_modules/@types/node/web-globals/crypto.d.ts +0 -32
  114. package/stream-api/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  115. package/stream-api/node_modules/@types/node/web-globals/events.d.ts +0 -97
  116. package/stream-api/node_modules/@types/node/web-globals/fetch.d.ts +0 -50
  117. package/stream-api/node_modules/@types/node/web-globals/navigator.d.ts +0 -25
  118. package/stream-api/node_modules/@types/node/web-globals/storage.d.ts +0 -24
  119. package/stream-api/node_modules/@types/node/web-globals/streams.d.ts +0 -22
  120. package/stream-api/node_modules/@types/node/worker_threads.d.ts +0 -896
  121. package/stream-api/node_modules/@types/node/zlib.d.ts +0 -681
  122. package/stream-api/node_modules/@types/qs/LICENSE +0 -21
  123. package/stream-api/node_modules/@types/qs/README.md +0 -15
  124. package/stream-api/node_modules/@types/qs/index.d.ts +0 -82
  125. package/stream-api/node_modules/@types/qs/package.json +0 -66
  126. package/stream-api/node_modules/@types/range-parser/LICENSE +0 -21
  127. package/stream-api/node_modules/@types/range-parser/README.md +0 -53
  128. package/stream-api/node_modules/@types/range-parser/index.d.ts +0 -34
  129. package/stream-api/node_modules/@types/range-parser/package.json +0 -25
  130. package/stream-api/node_modules/@types/send/LICENSE +0 -21
  131. package/stream-api/node_modules/@types/send/README.md +0 -15
  132. package/stream-api/node_modules/@types/send/index.d.ts +0 -187
  133. package/stream-api/node_modules/@types/send/package.json +0 -38
  134. package/stream-api/node_modules/@types/serve-static/LICENSE +0 -21
  135. package/stream-api/node_modules/@types/serve-static/README.md +0 -15
  136. package/stream-api/node_modules/@types/serve-static/index.d.ts +0 -107
  137. package/stream-api/node_modules/@types/serve-static/node_modules/@types/send/LICENSE +0 -21
  138. package/stream-api/node_modules/@types/serve-static/node_modules/@types/send/README.md +0 -15
  139. package/stream-api/node_modules/@types/serve-static/node_modules/@types/send/index.d.ts +0 -225
  140. package/stream-api/node_modules/@types/serve-static/node_modules/@types/send/package.json +0 -39
  141. package/stream-api/node_modules/@types/serve-static/package.json +0 -45
  142. package/stream-api/node_modules/accepts/HISTORY.md +0 -250
  143. package/stream-api/node_modules/accepts/LICENSE +0 -23
  144. package/stream-api/node_modules/accepts/README.md +0 -140
  145. package/stream-api/node_modules/accepts/index.js +0 -238
  146. package/stream-api/node_modules/accepts/package.json +0 -47
  147. package/stream-api/node_modules/any-base/LICENSE +0 -21
  148. package/stream-api/node_modules/any-base/README.md +0 -55
  149. package/stream-api/node_modules/any-base/dist/any-base.js +0 -94
  150. package/stream-api/node_modules/any-base/dist/any-base.min.js +0 -1
  151. package/stream-api/node_modules/any-base/index.js +0 -30
  152. package/stream-api/node_modules/any-base/package.json +0 -40
  153. package/stream-api/node_modules/any-base/src/converter.js +0 -80
  154. package/stream-api/node_modules/body-parser/LICENSE +0 -23
  155. package/stream-api/node_modules/body-parser/README.md +0 -494
  156. package/stream-api/node_modules/body-parser/index.js +0 -80
  157. package/stream-api/node_modules/body-parser/lib/read.js +0 -250
  158. package/stream-api/node_modules/body-parser/lib/types/json.js +0 -166
  159. package/stream-api/node_modules/body-parser/lib/types/raw.js +0 -43
  160. package/stream-api/node_modules/body-parser/lib/types/text.js +0 -37
  161. package/stream-api/node_modules/body-parser/lib/types/urlencoded.js +0 -142
  162. package/stream-api/node_modules/body-parser/lib/utils.js +0 -96
  163. package/stream-api/node_modules/body-parser/package.json +0 -52
  164. package/stream-api/node_modules/bytes/History.md +0 -97
  165. package/stream-api/node_modules/bytes/LICENSE +0 -23
  166. package/stream-api/node_modules/bytes/Readme.md +0 -152
  167. package/stream-api/node_modules/bytes/index.js +0 -170
  168. package/stream-api/node_modules/bytes/package.json +0 -42
  169. package/stream-api/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  170. package/stream-api/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  171. package/stream-api/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  172. package/stream-api/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  173. package/stream-api/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  174. package/stream-api/node_modules/call-bind-apply-helpers/README.md +0 -62
  175. package/stream-api/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  176. package/stream-api/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  177. package/stream-api/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  178. package/stream-api/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  179. package/stream-api/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  180. package/stream-api/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  181. package/stream-api/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  182. package/stream-api/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  183. package/stream-api/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  184. package/stream-api/node_modules/call-bind-apply-helpers/index.js +0 -15
  185. package/stream-api/node_modules/call-bind-apply-helpers/package.json +0 -85
  186. package/stream-api/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  187. package/stream-api/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  188. package/stream-api/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  189. package/stream-api/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  190. package/stream-api/node_modules/call-bound/.eslintrc +0 -13
  191. package/stream-api/node_modules/call-bound/.github/FUNDING.yml +0 -12
  192. package/stream-api/node_modules/call-bound/.nycrc +0 -9
  193. package/stream-api/node_modules/call-bound/CHANGELOG.md +0 -42
  194. package/stream-api/node_modules/call-bound/LICENSE +0 -21
  195. package/stream-api/node_modules/call-bound/README.md +0 -53
  196. package/stream-api/node_modules/call-bound/index.d.ts +0 -94
  197. package/stream-api/node_modules/call-bound/index.js +0 -19
  198. package/stream-api/node_modules/call-bound/package.json +0 -99
  199. package/stream-api/node_modules/call-bound/test/index.js +0 -61
  200. package/stream-api/node_modules/call-bound/tsconfig.json +0 -10
  201. package/stream-api/node_modules/content-disposition/HISTORY.md +0 -72
  202. package/stream-api/node_modules/content-disposition/LICENSE +0 -22
  203. package/stream-api/node_modules/content-disposition/README.md +0 -142
  204. package/stream-api/node_modules/content-disposition/index.js +0 -458
  205. package/stream-api/node_modules/content-disposition/package.json +0 -43
  206. package/stream-api/node_modules/content-type/HISTORY.md +0 -29
  207. package/stream-api/node_modules/content-type/LICENSE +0 -22
  208. package/stream-api/node_modules/content-type/README.md +0 -94
  209. package/stream-api/node_modules/content-type/index.js +0 -225
  210. package/stream-api/node_modules/content-type/package.json +0 -42
  211. package/stream-api/node_modules/cookie/LICENSE +0 -24
  212. package/stream-api/node_modules/cookie/README.md +0 -317
  213. package/stream-api/node_modules/cookie/SECURITY.md +0 -25
  214. package/stream-api/node_modules/cookie/index.js +0 -335
  215. package/stream-api/node_modules/cookie/package.json +0 -44
  216. package/stream-api/node_modules/cookie-signature/History.md +0 -70
  217. package/stream-api/node_modules/cookie-signature/LICENSE +0 -22
  218. package/stream-api/node_modules/cookie-signature/Readme.md +0 -23
  219. package/stream-api/node_modules/cookie-signature/index.js +0 -47
  220. package/stream-api/node_modules/cookie-signature/package.json +0 -24
  221. package/stream-api/node_modules/debug/LICENSE +0 -20
  222. package/stream-api/node_modules/debug/README.md +0 -481
  223. package/stream-api/node_modules/debug/package.json +0 -64
  224. package/stream-api/node_modules/debug/src/browser.js +0 -272
  225. package/stream-api/node_modules/debug/src/common.js +0 -292
  226. package/stream-api/node_modules/debug/src/index.js +0 -10
  227. package/stream-api/node_modules/debug/src/node.js +0 -263
  228. package/stream-api/node_modules/depd/History.md +0 -103
  229. package/stream-api/node_modules/depd/LICENSE +0 -22
  230. package/stream-api/node_modules/depd/Readme.md +0 -280
  231. package/stream-api/node_modules/depd/index.js +0 -538
  232. package/stream-api/node_modules/depd/lib/browser/index.js +0 -77
  233. package/stream-api/node_modules/depd/package.json +0 -45
  234. package/stream-api/node_modules/dunder-proto/.eslintrc +0 -5
  235. package/stream-api/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  236. package/stream-api/node_modules/dunder-proto/.nycrc +0 -13
  237. package/stream-api/node_modules/dunder-proto/CHANGELOG.md +0 -24
  238. package/stream-api/node_modules/dunder-proto/LICENSE +0 -21
  239. package/stream-api/node_modules/dunder-proto/README.md +0 -54
  240. package/stream-api/node_modules/dunder-proto/get.d.ts +0 -5
  241. package/stream-api/node_modules/dunder-proto/get.js +0 -30
  242. package/stream-api/node_modules/dunder-proto/package.json +0 -76
  243. package/stream-api/node_modules/dunder-proto/set.d.ts +0 -5
  244. package/stream-api/node_modules/dunder-proto/set.js +0 -35
  245. package/stream-api/node_modules/dunder-proto/test/get.js +0 -34
  246. package/stream-api/node_modules/dunder-proto/test/index.js +0 -4
  247. package/stream-api/node_modules/dunder-proto/test/set.js +0 -50
  248. package/stream-api/node_modules/dunder-proto/tsconfig.json +0 -9
  249. package/stream-api/node_modules/ee-first/LICENSE +0 -22
  250. package/stream-api/node_modules/ee-first/README.md +0 -80
  251. package/stream-api/node_modules/ee-first/index.js +0 -95
  252. package/stream-api/node_modules/ee-first/package.json +0 -29
  253. package/stream-api/node_modules/encodeurl/LICENSE +0 -22
  254. package/stream-api/node_modules/encodeurl/README.md +0 -109
  255. package/stream-api/node_modules/encodeurl/index.js +0 -60
  256. package/stream-api/node_modules/encodeurl/package.json +0 -40
  257. package/stream-api/node_modules/es-define-property/.eslintrc +0 -13
  258. package/stream-api/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  259. package/stream-api/node_modules/es-define-property/.nycrc +0 -9
  260. package/stream-api/node_modules/es-define-property/CHANGELOG.md +0 -29
  261. package/stream-api/node_modules/es-define-property/LICENSE +0 -21
  262. package/stream-api/node_modules/es-define-property/README.md +0 -49
  263. package/stream-api/node_modules/es-define-property/index.d.ts +0 -3
  264. package/stream-api/node_modules/es-define-property/index.js +0 -14
  265. package/stream-api/node_modules/es-define-property/package.json +0 -81
  266. package/stream-api/node_modules/es-define-property/test/index.js +0 -56
  267. package/stream-api/node_modules/es-define-property/tsconfig.json +0 -10
  268. package/stream-api/node_modules/es-errors/.eslintrc +0 -5
  269. package/stream-api/node_modules/es-errors/.github/FUNDING.yml +0 -12
  270. package/stream-api/node_modules/es-errors/CHANGELOG.md +0 -40
  271. package/stream-api/node_modules/es-errors/LICENSE +0 -21
  272. package/stream-api/node_modules/es-errors/README.md +0 -55
  273. package/stream-api/node_modules/es-errors/eval.d.ts +0 -3
  274. package/stream-api/node_modules/es-errors/eval.js +0 -4
  275. package/stream-api/node_modules/es-errors/index.d.ts +0 -3
  276. package/stream-api/node_modules/es-errors/index.js +0 -4
  277. package/stream-api/node_modules/es-errors/package.json +0 -80
  278. package/stream-api/node_modules/es-errors/range.d.ts +0 -3
  279. package/stream-api/node_modules/es-errors/range.js +0 -4
  280. package/stream-api/node_modules/es-errors/ref.d.ts +0 -3
  281. package/stream-api/node_modules/es-errors/ref.js +0 -4
  282. package/stream-api/node_modules/es-errors/syntax.d.ts +0 -3
  283. package/stream-api/node_modules/es-errors/syntax.js +0 -4
  284. package/stream-api/node_modules/es-errors/test/index.js +0 -19
  285. package/stream-api/node_modules/es-errors/tsconfig.json +0 -49
  286. package/stream-api/node_modules/es-errors/type.d.ts +0 -3
  287. package/stream-api/node_modules/es-errors/type.js +0 -4
  288. package/stream-api/node_modules/es-errors/uri.d.ts +0 -3
  289. package/stream-api/node_modules/es-errors/uri.js +0 -4
  290. package/stream-api/node_modules/es-object-atoms/.eslintrc +0 -16
  291. package/stream-api/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  292. package/stream-api/node_modules/es-object-atoms/CHANGELOG.md +0 -37
  293. package/stream-api/node_modules/es-object-atoms/LICENSE +0 -21
  294. package/stream-api/node_modules/es-object-atoms/README.md +0 -63
  295. package/stream-api/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  296. package/stream-api/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  297. package/stream-api/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  298. package/stream-api/node_modules/es-object-atoms/ToObject.js +0 -10
  299. package/stream-api/node_modules/es-object-atoms/index.d.ts +0 -3
  300. package/stream-api/node_modules/es-object-atoms/index.js +0 -4
  301. package/stream-api/node_modules/es-object-atoms/isObject.d.ts +0 -3
  302. package/stream-api/node_modules/es-object-atoms/isObject.js +0 -6
  303. package/stream-api/node_modules/es-object-atoms/package.json +0 -80
  304. package/stream-api/node_modules/es-object-atoms/test/index.js +0 -38
  305. package/stream-api/node_modules/es-object-atoms/tsconfig.json +0 -6
  306. package/stream-api/node_modules/escape-html/LICENSE +0 -24
  307. package/stream-api/node_modules/escape-html/Readme.md +0 -43
  308. package/stream-api/node_modules/escape-html/index.js +0 -78
  309. package/stream-api/node_modules/escape-html/package.json +0 -24
  310. package/stream-api/node_modules/etag/HISTORY.md +0 -83
  311. package/stream-api/node_modules/etag/LICENSE +0 -22
  312. package/stream-api/node_modules/etag/README.md +0 -159
  313. package/stream-api/node_modules/etag/index.js +0 -131
  314. package/stream-api/node_modules/etag/package.json +0 -47
  315. package/stream-api/node_modules/express/History.md +0 -3858
  316. package/stream-api/node_modules/express/LICENSE +0 -24
  317. package/stream-api/node_modules/express/Readme.md +0 -266
  318. package/stream-api/node_modules/express/index.js +0 -11
  319. package/stream-api/node_modules/express/lib/application.js +0 -631
  320. package/stream-api/node_modules/express/lib/express.js +0 -81
  321. package/stream-api/node_modules/express/lib/request.js +0 -515
  322. package/stream-api/node_modules/express/lib/response.js +0 -1039
  323. package/stream-api/node_modules/express/lib/utils.js +0 -269
  324. package/stream-api/node_modules/express/lib/view.js +0 -205
  325. package/stream-api/node_modules/express/package.json +0 -98
  326. package/stream-api/node_modules/finalhandler/HISTORY.md +0 -233
  327. package/stream-api/node_modules/finalhandler/LICENSE +0 -22
  328. package/stream-api/node_modules/finalhandler/README.md +0 -147
  329. package/stream-api/node_modules/finalhandler/index.js +0 -293
  330. package/stream-api/node_modules/finalhandler/package.json +0 -43
  331. package/stream-api/node_modules/forwarded/HISTORY.md +0 -21
  332. package/stream-api/node_modules/forwarded/LICENSE +0 -22
  333. package/stream-api/node_modules/forwarded/README.md +0 -57
  334. package/stream-api/node_modules/forwarded/index.js +0 -90
  335. package/stream-api/node_modules/forwarded/package.json +0 -45
  336. package/stream-api/node_modules/fresh/HISTORY.md +0 -80
  337. package/stream-api/node_modules/fresh/LICENSE +0 -23
  338. package/stream-api/node_modules/fresh/README.md +0 -117
  339. package/stream-api/node_modules/fresh/index.js +0 -136
  340. package/stream-api/node_modules/fresh/package.json +0 -46
  341. package/stream-api/node_modules/function-bind/.eslintrc +0 -21
  342. package/stream-api/node_modules/function-bind/.github/FUNDING.yml +0 -12
  343. package/stream-api/node_modules/function-bind/.github/SECURITY.md +0 -3
  344. package/stream-api/node_modules/function-bind/.nycrc +0 -13
  345. package/stream-api/node_modules/function-bind/CHANGELOG.md +0 -136
  346. package/stream-api/node_modules/function-bind/LICENSE +0 -20
  347. package/stream-api/node_modules/function-bind/README.md +0 -46
  348. package/stream-api/node_modules/function-bind/implementation.js +0 -84
  349. package/stream-api/node_modules/function-bind/index.js +0 -5
  350. package/stream-api/node_modules/function-bind/package.json +0 -87
  351. package/stream-api/node_modules/function-bind/test/.eslintrc +0 -9
  352. package/stream-api/node_modules/function-bind/test/index.js +0 -252
  353. package/stream-api/node_modules/get-intrinsic/.eslintrc +0 -42
  354. package/stream-api/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  355. package/stream-api/node_modules/get-intrinsic/.nycrc +0 -9
  356. package/stream-api/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  357. package/stream-api/node_modules/get-intrinsic/LICENSE +0 -21
  358. package/stream-api/node_modules/get-intrinsic/README.md +0 -71
  359. package/stream-api/node_modules/get-intrinsic/index.js +0 -378
  360. package/stream-api/node_modules/get-intrinsic/package.json +0 -97
  361. package/stream-api/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  362. package/stream-api/node_modules/get-proto/.eslintrc +0 -10
  363. package/stream-api/node_modules/get-proto/.github/FUNDING.yml +0 -12
  364. package/stream-api/node_modules/get-proto/.nycrc +0 -9
  365. package/stream-api/node_modules/get-proto/CHANGELOG.md +0 -21
  366. package/stream-api/node_modules/get-proto/LICENSE +0 -21
  367. package/stream-api/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  368. package/stream-api/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  369. package/stream-api/node_modules/get-proto/README.md +0 -50
  370. package/stream-api/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  371. package/stream-api/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  372. package/stream-api/node_modules/get-proto/index.d.ts +0 -5
  373. package/stream-api/node_modules/get-proto/index.js +0 -27
  374. package/stream-api/node_modules/get-proto/package.json +0 -81
  375. package/stream-api/node_modules/get-proto/test/index.js +0 -68
  376. package/stream-api/node_modules/get-proto/tsconfig.json +0 -9
  377. package/stream-api/node_modules/gopd/.eslintrc +0 -16
  378. package/stream-api/node_modules/gopd/.github/FUNDING.yml +0 -12
  379. package/stream-api/node_modules/gopd/CHANGELOG.md +0 -45
  380. package/stream-api/node_modules/gopd/LICENSE +0 -21
  381. package/stream-api/node_modules/gopd/README.md +0 -40
  382. package/stream-api/node_modules/gopd/gOPD.d.ts +0 -1
  383. package/stream-api/node_modules/gopd/gOPD.js +0 -4
  384. package/stream-api/node_modules/gopd/index.d.ts +0 -5
  385. package/stream-api/node_modules/gopd/index.js +0 -15
  386. package/stream-api/node_modules/gopd/package.json +0 -77
  387. package/stream-api/node_modules/gopd/test/index.js +0 -36
  388. package/stream-api/node_modules/gopd/tsconfig.json +0 -9
  389. package/stream-api/node_modules/has-symbols/.eslintrc +0 -11
  390. package/stream-api/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  391. package/stream-api/node_modules/has-symbols/.nycrc +0 -9
  392. package/stream-api/node_modules/has-symbols/CHANGELOG.md +0 -91
  393. package/stream-api/node_modules/has-symbols/LICENSE +0 -21
  394. package/stream-api/node_modules/has-symbols/README.md +0 -46
  395. package/stream-api/node_modules/has-symbols/index.d.ts +0 -3
  396. package/stream-api/node_modules/has-symbols/index.js +0 -14
  397. package/stream-api/node_modules/has-symbols/package.json +0 -111
  398. package/stream-api/node_modules/has-symbols/shams.d.ts +0 -3
  399. package/stream-api/node_modules/has-symbols/shams.js +0 -45
  400. package/stream-api/node_modules/has-symbols/test/index.js +0 -22
  401. package/stream-api/node_modules/has-symbols/test/shams/core-js.js +0 -29
  402. package/stream-api/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  403. package/stream-api/node_modules/has-symbols/test/tests.js +0 -58
  404. package/stream-api/node_modules/has-symbols/tsconfig.json +0 -10
  405. package/stream-api/node_modules/hasown/.eslintrc +0 -5
  406. package/stream-api/node_modules/hasown/.github/FUNDING.yml +0 -12
  407. package/stream-api/node_modules/hasown/.nycrc +0 -13
  408. package/stream-api/node_modules/hasown/CHANGELOG.md +0 -40
  409. package/stream-api/node_modules/hasown/LICENSE +0 -21
  410. package/stream-api/node_modules/hasown/README.md +0 -40
  411. package/stream-api/node_modules/hasown/index.d.ts +0 -3
  412. package/stream-api/node_modules/hasown/index.js +0 -8
  413. package/stream-api/node_modules/hasown/package.json +0 -92
  414. package/stream-api/node_modules/hasown/tsconfig.json +0 -6
  415. package/stream-api/node_modules/http-errors/HISTORY.md +0 -186
  416. package/stream-api/node_modules/http-errors/LICENSE +0 -23
  417. package/stream-api/node_modules/http-errors/README.md +0 -169
  418. package/stream-api/node_modules/http-errors/index.js +0 -290
  419. package/stream-api/node_modules/http-errors/package.json +0 -54
  420. package/stream-api/node_modules/iconv-lite/Changelog.md +0 -236
  421. package/stream-api/node_modules/iconv-lite/LICENSE +0 -21
  422. package/stream-api/node_modules/iconv-lite/README.md +0 -138
  423. package/stream-api/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -532
  424. package/stream-api/node_modules/iconv-lite/encodings/dbcs-data.js +0 -185
  425. package/stream-api/node_modules/iconv-lite/encodings/index.js +0 -23
  426. package/stream-api/node_modules/iconv-lite/encodings/internal.js +0 -218
  427. package/stream-api/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -75
  428. package/stream-api/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  429. package/stream-api/node_modules/iconv-lite/encodings/sbcs-data.js +0 -178
  430. package/stream-api/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  431. package/stream-api/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  432. package/stream-api/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  433. package/stream-api/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  434. package/stream-api/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  435. package/stream-api/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  436. package/stream-api/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -56
  437. package/stream-api/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  438. package/stream-api/node_modules/iconv-lite/encodings/utf16.js +0 -187
  439. package/stream-api/node_modules/iconv-lite/encodings/utf32.js +0 -307
  440. package/stream-api/node_modules/iconv-lite/encodings/utf7.js +0 -283
  441. package/stream-api/node_modules/iconv-lite/lib/bom-handling.js +0 -48
  442. package/stream-api/node_modules/iconv-lite/lib/helpers/merge-exports.js +0 -13
  443. package/stream-api/node_modules/iconv-lite/lib/index.d.ts +0 -41
  444. package/stream-api/node_modules/iconv-lite/lib/index.js +0 -183
  445. package/stream-api/node_modules/iconv-lite/lib/streams.js +0 -105
  446. package/stream-api/node_modules/iconv-lite/package.json +0 -59
  447. package/stream-api/node_modules/inherits/LICENSE +0 -16
  448. package/stream-api/node_modules/inherits/README.md +0 -42
  449. package/stream-api/node_modules/inherits/inherits.js +0 -9
  450. package/stream-api/node_modules/inherits/inherits_browser.js +0 -27
  451. package/stream-api/node_modules/inherits/package.json +0 -29
  452. package/stream-api/node_modules/ipaddr.js/LICENSE +0 -19
  453. package/stream-api/node_modules/ipaddr.js/README.md +0 -233
  454. package/stream-api/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  455. package/stream-api/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  456. package/stream-api/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  457. package/stream-api/node_modules/ipaddr.js/package.json +0 -35
  458. package/stream-api/node_modules/is-promise/LICENSE +0 -19
  459. package/stream-api/node_modules/is-promise/index.d.ts +0 -2
  460. package/stream-api/node_modules/is-promise/index.js +0 -6
  461. package/stream-api/node_modules/is-promise/index.mjs +0 -3
  462. package/stream-api/node_modules/is-promise/package.json +0 -30
  463. package/stream-api/node_modules/is-promise/readme.md +0 -33
  464. package/stream-api/node_modules/math-intrinsics/.eslintrc +0 -16
  465. package/stream-api/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  466. package/stream-api/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  467. package/stream-api/node_modules/math-intrinsics/LICENSE +0 -21
  468. package/stream-api/node_modules/math-intrinsics/README.md +0 -50
  469. package/stream-api/node_modules/math-intrinsics/abs.d.ts +0 -1
  470. package/stream-api/node_modules/math-intrinsics/abs.js +0 -4
  471. package/stream-api/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  472. package/stream-api/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  473. package/stream-api/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  474. package/stream-api/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  475. package/stream-api/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  476. package/stream-api/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  477. package/stream-api/node_modules/math-intrinsics/floor.d.ts +0 -1
  478. package/stream-api/node_modules/math-intrinsics/floor.js +0 -4
  479. package/stream-api/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  480. package/stream-api/node_modules/math-intrinsics/isFinite.js +0 -12
  481. package/stream-api/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  482. package/stream-api/node_modules/math-intrinsics/isInteger.js +0 -16
  483. package/stream-api/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  484. package/stream-api/node_modules/math-intrinsics/isNaN.js +0 -6
  485. package/stream-api/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  486. package/stream-api/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  487. package/stream-api/node_modules/math-intrinsics/max.d.ts +0 -1
  488. package/stream-api/node_modules/math-intrinsics/max.js +0 -4
  489. package/stream-api/node_modules/math-intrinsics/min.d.ts +0 -1
  490. package/stream-api/node_modules/math-intrinsics/min.js +0 -4
  491. package/stream-api/node_modules/math-intrinsics/mod.d.ts +0 -3
  492. package/stream-api/node_modules/math-intrinsics/mod.js +0 -9
  493. package/stream-api/node_modules/math-intrinsics/package.json +0 -86
  494. package/stream-api/node_modules/math-intrinsics/pow.d.ts +0 -1
  495. package/stream-api/node_modules/math-intrinsics/pow.js +0 -4
  496. package/stream-api/node_modules/math-intrinsics/round.d.ts +0 -1
  497. package/stream-api/node_modules/math-intrinsics/round.js +0 -4
  498. package/stream-api/node_modules/math-intrinsics/sign.d.ts +0 -3
  499. package/stream-api/node_modules/math-intrinsics/sign.js +0 -11
  500. package/stream-api/node_modules/math-intrinsics/test/index.js +0 -192
  501. package/stream-api/node_modules/math-intrinsics/tsconfig.json +0 -3
  502. package/stream-api/node_modules/media-typer/HISTORY.md +0 -50
  503. package/stream-api/node_modules/media-typer/LICENSE +0 -22
  504. package/stream-api/node_modules/media-typer/README.md +0 -93
  505. package/stream-api/node_modules/media-typer/index.js +0 -143
  506. package/stream-api/node_modules/media-typer/package.json +0 -33
  507. package/stream-api/node_modules/merge-descriptors/index.d.ts +0 -11
  508. package/stream-api/node_modules/merge-descriptors/index.js +0 -26
  509. package/stream-api/node_modules/merge-descriptors/license +0 -11
  510. package/stream-api/node_modules/merge-descriptors/package.json +0 -50
  511. package/stream-api/node_modules/merge-descriptors/readme.md +0 -55
  512. package/stream-api/node_modules/mime-db/HISTORY.md +0 -541
  513. package/stream-api/node_modules/mime-db/LICENSE +0 -23
  514. package/stream-api/node_modules/mime-db/README.md +0 -109
  515. package/stream-api/node_modules/mime-db/db.json +0 -9342
  516. package/stream-api/node_modules/mime-db/index.js +0 -12
  517. package/stream-api/node_modules/mime-db/package.json +0 -56
  518. package/stream-api/node_modules/mime-types/HISTORY.md +0 -428
  519. package/stream-api/node_modules/mime-types/LICENSE +0 -23
  520. package/stream-api/node_modules/mime-types/README.md +0 -126
  521. package/stream-api/node_modules/mime-types/index.js +0 -211
  522. package/stream-api/node_modules/mime-types/mimeScore.js +0 -57
  523. package/stream-api/node_modules/mime-types/package.json +0 -49
  524. package/stream-api/node_modules/ms/index.js +0 -162
  525. package/stream-api/node_modules/ms/license.md +0 -21
  526. package/stream-api/node_modules/ms/package.json +0 -38
  527. package/stream-api/node_modules/ms/readme.md +0 -59
  528. package/stream-api/node_modules/negotiator/HISTORY.md +0 -114
  529. package/stream-api/node_modules/negotiator/LICENSE +0 -24
  530. package/stream-api/node_modules/negotiator/README.md +0 -212
  531. package/stream-api/node_modules/negotiator/index.js +0 -83
  532. package/stream-api/node_modules/negotiator/lib/charset.js +0 -169
  533. package/stream-api/node_modules/negotiator/lib/encoding.js +0 -205
  534. package/stream-api/node_modules/negotiator/lib/language.js +0 -179
  535. package/stream-api/node_modules/negotiator/lib/mediaType.js +0 -294
  536. package/stream-api/node_modules/negotiator/package.json +0 -43
  537. package/stream-api/node_modules/object-inspect/.eslintrc +0 -53
  538. package/stream-api/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  539. package/stream-api/node_modules/object-inspect/.nycrc +0 -13
  540. package/stream-api/node_modules/object-inspect/CHANGELOG.md +0 -424
  541. package/stream-api/node_modules/object-inspect/LICENSE +0 -21
  542. package/stream-api/node_modules/object-inspect/example/all.js +0 -23
  543. package/stream-api/node_modules/object-inspect/example/circular.js +0 -6
  544. package/stream-api/node_modules/object-inspect/example/fn.js +0 -5
  545. package/stream-api/node_modules/object-inspect/example/inspect.js +0 -10
  546. package/stream-api/node_modules/object-inspect/index.js +0 -544
  547. package/stream-api/node_modules/object-inspect/package-support.json +0 -20
  548. package/stream-api/node_modules/object-inspect/package.json +0 -105
  549. package/stream-api/node_modules/object-inspect/readme.markdown +0 -84
  550. package/stream-api/node_modules/object-inspect/test/bigint.js +0 -58
  551. package/stream-api/node_modules/object-inspect/test/browser/dom.js +0 -15
  552. package/stream-api/node_modules/object-inspect/test/circular.js +0 -16
  553. package/stream-api/node_modules/object-inspect/test/deep.js +0 -12
  554. package/stream-api/node_modules/object-inspect/test/element.js +0 -53
  555. package/stream-api/node_modules/object-inspect/test/err.js +0 -48
  556. package/stream-api/node_modules/object-inspect/test/fakes.js +0 -29
  557. package/stream-api/node_modules/object-inspect/test/fn.js +0 -76
  558. package/stream-api/node_modules/object-inspect/test/global.js +0 -17
  559. package/stream-api/node_modules/object-inspect/test/has.js +0 -15
  560. package/stream-api/node_modules/object-inspect/test/holes.js +0 -15
  561. package/stream-api/node_modules/object-inspect/test/indent-option.js +0 -271
  562. package/stream-api/node_modules/object-inspect/test/inspect.js +0 -139
  563. package/stream-api/node_modules/object-inspect/test/lowbyte.js +0 -12
  564. package/stream-api/node_modules/object-inspect/test/number.js +0 -58
  565. package/stream-api/node_modules/object-inspect/test/quoteStyle.js +0 -26
  566. package/stream-api/node_modules/object-inspect/test/toStringTag.js +0 -40
  567. package/stream-api/node_modules/object-inspect/test/undef.js +0 -12
  568. package/stream-api/node_modules/object-inspect/test/values.js +0 -261
  569. package/stream-api/node_modules/object-inspect/test-core-js.js +0 -26
  570. package/stream-api/node_modules/object-inspect/util.inspect.js +0 -1
  571. package/stream-api/node_modules/on-finished/HISTORY.md +0 -98
  572. package/stream-api/node_modules/on-finished/LICENSE +0 -23
  573. package/stream-api/node_modules/on-finished/README.md +0 -162
  574. package/stream-api/node_modules/on-finished/index.js +0 -234
  575. package/stream-api/node_modules/on-finished/package.json +0 -39
  576. package/stream-api/node_modules/once/LICENSE +0 -15
  577. package/stream-api/node_modules/once/README.md +0 -79
  578. package/stream-api/node_modules/once/once.js +0 -42
  579. package/stream-api/node_modules/once/package.json +0 -33
  580. package/stream-api/node_modules/parseurl/HISTORY.md +0 -58
  581. package/stream-api/node_modules/parseurl/LICENSE +0 -24
  582. package/stream-api/node_modules/parseurl/README.md +0 -133
  583. package/stream-api/node_modules/parseurl/index.js +0 -158
  584. package/stream-api/node_modules/parseurl/package.json +0 -40
  585. package/stream-api/node_modules/path-to-regexp/LICENSE +0 -21
  586. package/stream-api/node_modules/path-to-regexp/Readme.md +0 -224
  587. package/stream-api/node_modules/path-to-regexp/dist/index.d.ts +0 -144
  588. package/stream-api/node_modules/path-to-regexp/dist/index.js +0 -409
  589. package/stream-api/node_modules/path-to-regexp/dist/index.js.map +0 -1
  590. package/stream-api/node_modules/path-to-regexp/package.json +0 -64
  591. package/stream-api/node_modules/proxy-addr/HISTORY.md +0 -161
  592. package/stream-api/node_modules/proxy-addr/LICENSE +0 -22
  593. package/stream-api/node_modules/proxy-addr/README.md +0 -139
  594. package/stream-api/node_modules/proxy-addr/index.js +0 -327
  595. package/stream-api/node_modules/proxy-addr/package.json +0 -47
  596. package/stream-api/node_modules/qs/.editorconfig +0 -46
  597. package/stream-api/node_modules/qs/.eslintrc +0 -39
  598. package/stream-api/node_modules/qs/.github/FUNDING.yml +0 -12
  599. package/stream-api/node_modules/qs/.nycrc +0 -13
  600. package/stream-api/node_modules/qs/CHANGELOG.md +0 -622
  601. package/stream-api/node_modules/qs/LICENSE.md +0 -29
  602. package/stream-api/node_modules/qs/README.md +0 -733
  603. package/stream-api/node_modules/qs/dist/qs.js +0 -141
  604. package/stream-api/node_modules/qs/lib/formats.js +0 -23
  605. package/stream-api/node_modules/qs/lib/index.js +0 -11
  606. package/stream-api/node_modules/qs/lib/parse.js +0 -328
  607. package/stream-api/node_modules/qs/lib/stringify.js +0 -356
  608. package/stream-api/node_modules/qs/lib/utils.js +0 -268
  609. package/stream-api/node_modules/qs/package.json +0 -93
  610. package/stream-api/node_modules/qs/test/empty-keys-cases.js +0 -267
  611. package/stream-api/node_modules/qs/test/parse.js +0 -1276
  612. package/stream-api/node_modules/qs/test/stringify.js +0 -1306
  613. package/stream-api/node_modules/qs/test/utils.js +0 -262
  614. package/stream-api/node_modules/range-parser/HISTORY.md +0 -56
  615. package/stream-api/node_modules/range-parser/LICENSE +0 -23
  616. package/stream-api/node_modules/range-parser/README.md +0 -84
  617. package/stream-api/node_modules/range-parser/index.js +0 -162
  618. package/stream-api/node_modules/range-parser/package.json +0 -44
  619. package/stream-api/node_modules/raw-body/LICENSE +0 -22
  620. package/stream-api/node_modules/raw-body/README.md +0 -223
  621. package/stream-api/node_modules/raw-body/index.d.ts +0 -85
  622. package/stream-api/node_modules/raw-body/index.js +0 -336
  623. package/stream-api/node_modules/raw-body/package.json +0 -46
  624. package/stream-api/node_modules/router/HISTORY.md +0 -228
  625. package/stream-api/node_modules/router/LICENSE +0 -23
  626. package/stream-api/node_modules/router/README.md +0 -416
  627. package/stream-api/node_modules/router/index.js +0 -748
  628. package/stream-api/node_modules/router/lib/layer.js +0 -247
  629. package/stream-api/node_modules/router/lib/route.js +0 -242
  630. package/stream-api/node_modules/router/package.json +0 -44
  631. package/stream-api/node_modules/safer-buffer/LICENSE +0 -21
  632. package/stream-api/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  633. package/stream-api/node_modules/safer-buffer/Readme.md +0 -156
  634. package/stream-api/node_modules/safer-buffer/dangerous.js +0 -58
  635. package/stream-api/node_modules/safer-buffer/package.json +0 -34
  636. package/stream-api/node_modules/safer-buffer/safer.js +0 -77
  637. package/stream-api/node_modules/safer-buffer/tests.js +0 -406
  638. package/stream-api/node_modules/send/HISTORY.md +0 -580
  639. package/stream-api/node_modules/send/LICENSE +0 -23
  640. package/stream-api/node_modules/send/README.md +0 -317
  641. package/stream-api/node_modules/send/index.js +0 -997
  642. package/stream-api/node_modules/send/package.json +0 -60
  643. package/stream-api/node_modules/serve-static/HISTORY.md +0 -516
  644. package/stream-api/node_modules/serve-static/LICENSE +0 -25
  645. package/stream-api/node_modules/serve-static/README.md +0 -253
  646. package/stream-api/node_modules/serve-static/index.js +0 -208
  647. package/stream-api/node_modules/serve-static/package.json +0 -41
  648. package/stream-api/node_modules/setprototypeof/LICENSE +0 -13
  649. package/stream-api/node_modules/setprototypeof/README.md +0 -31
  650. package/stream-api/node_modules/setprototypeof/index.d.ts +0 -2
  651. package/stream-api/node_modules/setprototypeof/index.js +0 -17
  652. package/stream-api/node_modules/setprototypeof/package.json +0 -38
  653. package/stream-api/node_modules/setprototypeof/test/index.js +0 -24
  654. package/stream-api/node_modules/short-uuid/.codeclimate.yml +0 -21
  655. package/stream-api/node_modules/short-uuid/.csslintrc +0 -2
  656. package/stream-api/node_modules/short-uuid/.editorconfig +0 -11
  657. package/stream-api/node_modules/short-uuid/.eslintrc.js +0 -15
  658. package/stream-api/node_modules/short-uuid/.github/workflows/node.js.yml +0 -31
  659. package/stream-api/node_modules/short-uuid/.nyc_output/3a60ecc2-69fc-4d0a-81dd-ad79b6071e14.json +0 -1
  660. package/stream-api/node_modules/short-uuid/.nyc_output/3f261446-c11a-4630-b995-4f5dbc1395ef.json +0 -1
  661. package/stream-api/node_modules/short-uuid/.nyc_output/processinfo/3a60ecc2-69fc-4d0a-81dd-ad79b6071e14.json +0 -1
  662. package/stream-api/node_modules/short-uuid/.nyc_output/processinfo/3f261446-c11a-4630-b995-4f5dbc1395ef.json +0 -1
  663. package/stream-api/node_modules/short-uuid/.nyc_output/processinfo/index.json +0 -1
  664. package/stream-api/node_modules/short-uuid/CHANGELOG.md +0 -237
  665. package/stream-api/node_modules/short-uuid/LICENSE +0 -21
  666. package/stream-api/node_modules/short-uuid/README.md +0 -128
  667. package/stream-api/node_modules/short-uuid/index.d.ts +0 -51
  668. package/stream-api/node_modules/short-uuid/index.js +0 -157
  669. package/stream-api/node_modules/short-uuid/package.json +0 -41
  670. package/stream-api/node_modules/short-uuid/revisions.md +0 -193
  671. package/stream-api/node_modules/short-uuid/test/index.js +0 -339
  672. package/stream-api/node_modules/short-uuid/test/uuid25examples.js +0 -74
  673. package/stream-api/node_modules/side-channel/.editorconfig +0 -9
  674. package/stream-api/node_modules/side-channel/.eslintrc +0 -12
  675. package/stream-api/node_modules/side-channel/.github/FUNDING.yml +0 -12
  676. package/stream-api/node_modules/side-channel/.nycrc +0 -13
  677. package/stream-api/node_modules/side-channel/CHANGELOG.md +0 -110
  678. package/stream-api/node_modules/side-channel/LICENSE +0 -21
  679. package/stream-api/node_modules/side-channel/README.md +0 -61
  680. package/stream-api/node_modules/side-channel/index.d.ts +0 -14
  681. package/stream-api/node_modules/side-channel/index.js +0 -43
  682. package/stream-api/node_modules/side-channel/package.json +0 -85
  683. package/stream-api/node_modules/side-channel/test/index.js +0 -104
  684. package/stream-api/node_modules/side-channel/tsconfig.json +0 -9
  685. package/stream-api/node_modules/side-channel-list/.editorconfig +0 -9
  686. package/stream-api/node_modules/side-channel-list/.eslintrc +0 -11
  687. package/stream-api/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
  688. package/stream-api/node_modules/side-channel-list/.nycrc +0 -13
  689. package/stream-api/node_modules/side-channel-list/CHANGELOG.md +0 -15
  690. package/stream-api/node_modules/side-channel-list/LICENSE +0 -21
  691. package/stream-api/node_modules/side-channel-list/README.md +0 -62
  692. package/stream-api/node_modules/side-channel-list/index.d.ts +0 -13
  693. package/stream-api/node_modules/side-channel-list/index.js +0 -113
  694. package/stream-api/node_modules/side-channel-list/list.d.ts +0 -14
  695. package/stream-api/node_modules/side-channel-list/package.json +0 -77
  696. package/stream-api/node_modules/side-channel-list/test/index.js +0 -104
  697. package/stream-api/node_modules/side-channel-list/tsconfig.json +0 -9
  698. package/stream-api/node_modules/side-channel-map/.editorconfig +0 -9
  699. package/stream-api/node_modules/side-channel-map/.eslintrc +0 -11
  700. package/stream-api/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
  701. package/stream-api/node_modules/side-channel-map/.nycrc +0 -13
  702. package/stream-api/node_modules/side-channel-map/CHANGELOG.md +0 -22
  703. package/stream-api/node_modules/side-channel-map/LICENSE +0 -21
  704. package/stream-api/node_modules/side-channel-map/README.md +0 -62
  705. package/stream-api/node_modules/side-channel-map/index.d.ts +0 -15
  706. package/stream-api/node_modules/side-channel-map/index.js +0 -68
  707. package/stream-api/node_modules/side-channel-map/package.json +0 -80
  708. package/stream-api/node_modules/side-channel-map/test/index.js +0 -114
  709. package/stream-api/node_modules/side-channel-map/tsconfig.json +0 -9
  710. package/stream-api/node_modules/side-channel-weakmap/.editorconfig +0 -9
  711. package/stream-api/node_modules/side-channel-weakmap/.eslintrc +0 -12
  712. package/stream-api/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
  713. package/stream-api/node_modules/side-channel-weakmap/.nycrc +0 -13
  714. package/stream-api/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
  715. package/stream-api/node_modules/side-channel-weakmap/LICENSE +0 -21
  716. package/stream-api/node_modules/side-channel-weakmap/README.md +0 -62
  717. package/stream-api/node_modules/side-channel-weakmap/index.d.ts +0 -15
  718. package/stream-api/node_modules/side-channel-weakmap/index.js +0 -84
  719. package/stream-api/node_modules/side-channel-weakmap/package.json +0 -87
  720. package/stream-api/node_modules/side-channel-weakmap/test/index.js +0 -114
  721. package/stream-api/node_modules/side-channel-weakmap/tsconfig.json +0 -9
  722. package/stream-api/node_modules/statuses/HISTORY.md +0 -87
  723. package/stream-api/node_modules/statuses/LICENSE +0 -23
  724. package/stream-api/node_modules/statuses/README.md +0 -139
  725. package/stream-api/node_modules/statuses/codes.json +0 -65
  726. package/stream-api/node_modules/statuses/index.js +0 -146
  727. package/stream-api/node_modules/statuses/package.json +0 -49
  728. package/stream-api/node_modules/toidentifier/HISTORY.md +0 -9
  729. package/stream-api/node_modules/toidentifier/LICENSE +0 -21
  730. package/stream-api/node_modules/toidentifier/README.md +0 -61
  731. package/stream-api/node_modules/toidentifier/index.js +0 -32
  732. package/stream-api/node_modules/toidentifier/package.json +0 -38
  733. package/stream-api/node_modules/type-is/HISTORY.md +0 -292
  734. package/stream-api/node_modules/type-is/LICENSE +0 -23
  735. package/stream-api/node_modules/type-is/README.md +0 -198
  736. package/stream-api/node_modules/type-is/index.js +0 -250
  737. package/stream-api/node_modules/type-is/package.json +0 -47
  738. package/stream-api/node_modules/undici-types/LICENSE +0 -21
  739. package/stream-api/node_modules/undici-types/README.md +0 -6
  740. package/stream-api/node_modules/undici-types/agent.d.ts +0 -32
  741. package/stream-api/node_modules/undici-types/api.d.ts +0 -43
  742. package/stream-api/node_modules/undici-types/balanced-pool.d.ts +0 -29
  743. package/stream-api/node_modules/undici-types/cache-interceptor.d.ts +0 -172
  744. package/stream-api/node_modules/undici-types/cache.d.ts +0 -36
  745. package/stream-api/node_modules/undici-types/client-stats.d.ts +0 -15
  746. package/stream-api/node_modules/undici-types/client.d.ts +0 -108
  747. package/stream-api/node_modules/undici-types/connector.d.ts +0 -34
  748. package/stream-api/node_modules/undici-types/content-type.d.ts +0 -21
  749. package/stream-api/node_modules/undici-types/cookies.d.ts +0 -30
  750. package/stream-api/node_modules/undici-types/diagnostics-channel.d.ts +0 -74
  751. package/stream-api/node_modules/undici-types/dispatcher.d.ts +0 -276
  752. package/stream-api/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -22
  753. package/stream-api/node_modules/undici-types/errors.d.ts +0 -161
  754. package/stream-api/node_modules/undici-types/eventsource.d.ts +0 -66
  755. package/stream-api/node_modules/undici-types/fetch.d.ts +0 -211
  756. package/stream-api/node_modules/undici-types/formdata.d.ts +0 -108
  757. package/stream-api/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  758. package/stream-api/node_modules/undici-types/global-origin.d.ts +0 -7
  759. package/stream-api/node_modules/undici-types/h2c-client.d.ts +0 -73
  760. package/stream-api/node_modules/undici-types/handlers.d.ts +0 -15
  761. package/stream-api/node_modules/undici-types/header.d.ts +0 -160
  762. package/stream-api/node_modules/undici-types/index.d.ts +0 -80
  763. package/stream-api/node_modules/undici-types/interceptors.d.ts +0 -39
  764. package/stream-api/node_modules/undici-types/mock-agent.d.ts +0 -68
  765. package/stream-api/node_modules/undici-types/mock-call-history.d.ts +0 -111
  766. package/stream-api/node_modules/undici-types/mock-client.d.ts +0 -27
  767. package/stream-api/node_modules/undici-types/mock-errors.d.ts +0 -12
  768. package/stream-api/node_modules/undici-types/mock-interceptor.d.ts +0 -94
  769. package/stream-api/node_modules/undici-types/mock-pool.d.ts +0 -27
  770. package/stream-api/node_modules/undici-types/package.json +0 -55
  771. package/stream-api/node_modules/undici-types/patch.d.ts +0 -29
  772. package/stream-api/node_modules/undici-types/pool-stats.d.ts +0 -19
  773. package/stream-api/node_modules/undici-types/pool.d.ts +0 -41
  774. package/stream-api/node_modules/undici-types/proxy-agent.d.ts +0 -29
  775. package/stream-api/node_modules/undici-types/readable.d.ts +0 -68
  776. package/stream-api/node_modules/undici-types/retry-agent.d.ts +0 -8
  777. package/stream-api/node_modules/undici-types/retry-handler.d.ts +0 -125
  778. package/stream-api/node_modules/undici-types/snapshot-agent.d.ts +0 -109
  779. package/stream-api/node_modules/undici-types/util.d.ts +0 -18
  780. package/stream-api/node_modules/undici-types/utility.d.ts +0 -7
  781. package/stream-api/node_modules/undici-types/webidl.d.ts +0 -341
  782. package/stream-api/node_modules/undici-types/websocket.d.ts +0 -186
  783. package/stream-api/node_modules/unpipe/HISTORY.md +0 -4
  784. package/stream-api/node_modules/unpipe/LICENSE +0 -22
  785. package/stream-api/node_modules/unpipe/README.md +0 -43
  786. package/stream-api/node_modules/unpipe/index.js +0 -69
  787. package/stream-api/node_modules/unpipe/package.json +0 -27
  788. package/stream-api/node_modules/uuid/CHANGELOG.md +0 -274
  789. package/stream-api/node_modules/uuid/CONTRIBUTING.md +0 -18
  790. package/stream-api/node_modules/uuid/LICENSE.md +0 -9
  791. package/stream-api/node_modules/uuid/README.md +0 -466
  792. package/stream-api/node_modules/uuid/dist/bin/uuid +0 -2
  793. package/stream-api/node_modules/uuid/dist/commonjs-browser/index.js +0 -79
  794. package/stream-api/node_modules/uuid/dist/commonjs-browser/md5.js +0 -223
  795. package/stream-api/node_modules/uuid/dist/commonjs-browser/native.js +0 -11
  796. package/stream-api/node_modules/uuid/dist/commonjs-browser/nil.js +0 -8
  797. package/stream-api/node_modules/uuid/dist/commonjs-browser/parse.js +0 -45
  798. package/stream-api/node_modules/uuid/dist/commonjs-browser/regex.js +0 -8
  799. package/stream-api/node_modules/uuid/dist/commonjs-browser/rng.js +0 -25
  800. package/stream-api/node_modules/uuid/dist/commonjs-browser/sha1.js +0 -104
  801. package/stream-api/node_modules/uuid/dist/commonjs-browser/stringify.js +0 -44
  802. package/stream-api/node_modules/uuid/dist/commonjs-browser/v1.js +0 -107
  803. package/stream-api/node_modules/uuid/dist/commonjs-browser/v3.js +0 -16
  804. package/stream-api/node_modules/uuid/dist/commonjs-browser/v35.js +0 -80
  805. package/stream-api/node_modules/uuid/dist/commonjs-browser/v4.js +0 -43
  806. package/stream-api/node_modules/uuid/dist/commonjs-browser/v5.js +0 -16
  807. package/stream-api/node_modules/uuid/dist/commonjs-browser/validate.js +0 -17
  808. package/stream-api/node_modules/uuid/dist/commonjs-browser/version.js +0 -21
  809. package/stream-api/node_modules/uuid/dist/esm-browser/index.js +0 -9
  810. package/stream-api/node_modules/uuid/dist/esm-browser/md5.js +0 -215
  811. package/stream-api/node_modules/uuid/dist/esm-browser/native.js +0 -4
  812. package/stream-api/node_modules/uuid/dist/esm-browser/nil.js +0 -1
  813. package/stream-api/node_modules/uuid/dist/esm-browser/parse.js +0 -35
  814. package/stream-api/node_modules/uuid/dist/esm-browser/regex.js +0 -1
  815. package/stream-api/node_modules/uuid/dist/esm-browser/rng.js +0 -18
  816. package/stream-api/node_modules/uuid/dist/esm-browser/sha1.js +0 -96
  817. package/stream-api/node_modules/uuid/dist/esm-browser/stringify.js +0 -33
  818. package/stream-api/node_modules/uuid/dist/esm-browser/v1.js +0 -95
  819. package/stream-api/node_modules/uuid/dist/esm-browser/v3.js +0 -4
  820. package/stream-api/node_modules/uuid/dist/esm-browser/v35.js +0 -66
  821. package/stream-api/node_modules/uuid/dist/esm-browser/v4.js +0 -29
  822. package/stream-api/node_modules/uuid/dist/esm-browser/v5.js +0 -4
  823. package/stream-api/node_modules/uuid/dist/esm-browser/validate.js +0 -7
  824. package/stream-api/node_modules/uuid/dist/esm-browser/version.js +0 -11
  825. package/stream-api/node_modules/uuid/dist/esm-node/index.js +0 -9
  826. package/stream-api/node_modules/uuid/dist/esm-node/md5.js +0 -13
  827. package/stream-api/node_modules/uuid/dist/esm-node/native.js +0 -4
  828. package/stream-api/node_modules/uuid/dist/esm-node/nil.js +0 -1
  829. package/stream-api/node_modules/uuid/dist/esm-node/parse.js +0 -35
  830. package/stream-api/node_modules/uuid/dist/esm-node/regex.js +0 -1
  831. package/stream-api/node_modules/uuid/dist/esm-node/rng.js +0 -12
  832. package/stream-api/node_modules/uuid/dist/esm-node/sha1.js +0 -13
  833. package/stream-api/node_modules/uuid/dist/esm-node/stringify.js +0 -33
  834. package/stream-api/node_modules/uuid/dist/esm-node/v1.js +0 -95
  835. package/stream-api/node_modules/uuid/dist/esm-node/v3.js +0 -4
  836. package/stream-api/node_modules/uuid/dist/esm-node/v35.js +0 -66
  837. package/stream-api/node_modules/uuid/dist/esm-node/v4.js +0 -29
  838. package/stream-api/node_modules/uuid/dist/esm-node/v5.js +0 -4
  839. package/stream-api/node_modules/uuid/dist/esm-node/validate.js +0 -7
  840. package/stream-api/node_modules/uuid/dist/esm-node/version.js +0 -11
  841. package/stream-api/node_modules/uuid/dist/index.js +0 -79
  842. package/stream-api/node_modules/uuid/dist/md5-browser.js +0 -223
  843. package/stream-api/node_modules/uuid/dist/md5.js +0 -23
  844. package/stream-api/node_modules/uuid/dist/native-browser.js +0 -11
  845. package/stream-api/node_modules/uuid/dist/native.js +0 -15
  846. package/stream-api/node_modules/uuid/dist/nil.js +0 -8
  847. package/stream-api/node_modules/uuid/dist/parse.js +0 -45
  848. package/stream-api/node_modules/uuid/dist/regex.js +0 -8
  849. package/stream-api/node_modules/uuid/dist/rng-browser.js +0 -25
  850. package/stream-api/node_modules/uuid/dist/rng.js +0 -24
  851. package/stream-api/node_modules/uuid/dist/sha1-browser.js +0 -104
  852. package/stream-api/node_modules/uuid/dist/sha1.js +0 -23
  853. package/stream-api/node_modules/uuid/dist/stringify.js +0 -44
  854. package/stream-api/node_modules/uuid/dist/uuid-bin.js +0 -85
  855. package/stream-api/node_modules/uuid/dist/v1.js +0 -107
  856. package/stream-api/node_modules/uuid/dist/v3.js +0 -16
  857. package/stream-api/node_modules/uuid/dist/v35.js +0 -80
  858. package/stream-api/node_modules/uuid/dist/v4.js +0 -43
  859. package/stream-api/node_modules/uuid/dist/v5.js +0 -16
  860. package/stream-api/node_modules/uuid/dist/validate.js +0 -17
  861. package/stream-api/node_modules/uuid/dist/version.js +0 -21
  862. package/stream-api/node_modules/uuid/package.json +0 -135
  863. package/stream-api/node_modules/uuid/wrapper.mjs +0 -10
  864. package/stream-api/node_modules/vary/HISTORY.md +0 -39
  865. package/stream-api/node_modules/vary/LICENSE +0 -22
  866. package/stream-api/node_modules/vary/README.md +0 -101
  867. package/stream-api/node_modules/vary/index.js +0 -149
  868. package/stream-api/node_modules/vary/package.json +0 -43
  869. package/stream-api/node_modules/wrappy/LICENSE +0 -15
  870. package/stream-api/node_modules/wrappy/README.md +0 -36
  871. package/stream-api/node_modules/wrappy/package.json +0 -29
  872. package/stream-api/node_modules/wrappy/wrappy.js +0 -33
@@ -1,1276 +0,0 @@
1
- 'use strict';
2
-
3
- var test = require('tape');
4
- var hasPropertyDescriptors = require('has-property-descriptors')();
5
- var iconv = require('iconv-lite');
6
- var mockProperty = require('mock-property');
7
- var hasOverrideMistake = require('has-override-mistake')();
8
- var SaferBuffer = require('safer-buffer').Buffer;
9
- var v = require('es-value-fixtures');
10
- var inspect = require('object-inspect');
11
- var emptyTestCases = require('./empty-keys-cases').emptyTestCases;
12
- var hasProto = require('has-proto')();
13
-
14
- var qs = require('../');
15
- var utils = require('../lib/utils');
16
-
17
- test('parse()', function (t) {
18
- t.test('parses a simple string', function (st) {
19
- st.deepEqual(qs.parse('0=foo'), { 0: 'foo' });
20
- st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' });
21
- st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } });
22
- st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } });
23
- st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } });
24
- st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null });
25
- st.deepEqual(qs.parse('foo'), { foo: '' });
26
- st.deepEqual(qs.parse('foo='), { foo: '' });
27
- st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' });
28
- st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' });
29
- st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' });
30
- st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' });
31
- st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' });
32
- st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null });
33
- st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' });
34
- st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), {
35
- cht: 'p3',
36
- chd: 't:60,40',
37
- chs: '250x100',
38
- chl: 'Hello|World'
39
- });
40
- st.end();
41
- });
42
-
43
- t.test('comma: false', function (st) {
44
- st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] });
45
- st.deepEqual(qs.parse('a[0]=b&a[1]=c'), { a: ['b', 'c'] });
46
- st.deepEqual(qs.parse('a=b,c'), { a: 'b,c' });
47
- st.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] });
48
- st.end();
49
- });
50
-
51
- t.test('comma: true', function (st) {
52
- st.deepEqual(qs.parse('a[]=b&a[]=c', { comma: true }), { a: ['b', 'c'] });
53
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { comma: true }), { a: ['b', 'c'] });
54
- st.deepEqual(qs.parse('a=b,c', { comma: true }), { a: ['b', 'c'] });
55
- st.deepEqual(qs.parse('a=b&a=c', { comma: true }), { a: ['b', 'c'] });
56
- st.end();
57
- });
58
-
59
- t.test('allows enabling dot notation', function (st) {
60
- st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' });
61
- st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } });
62
-
63
- st.end();
64
- });
65
-
66
- t.test('decode dot keys correctly', function (st) {
67
- st.deepEqual(
68
- qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: false, decodeDotInKeys: false }),
69
- { 'name%2Eobj.first': 'John', 'name%2Eobj.last': 'Doe' },
70
- 'with allowDots false and decodeDotInKeys false'
71
- );
72
- st.deepEqual(
73
- qs.parse('name.obj.first=John&name.obj.last=Doe', { allowDots: true, decodeDotInKeys: false }),
74
- { name: { obj: { first: 'John', last: 'Doe' } } },
75
- 'with allowDots false and decodeDotInKeys false'
76
- );
77
- st.deepEqual(
78
- qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: true, decodeDotInKeys: false }),
79
- { 'name%2Eobj': { first: 'John', last: 'Doe' } },
80
- 'with allowDots true and decodeDotInKeys false'
81
- );
82
- st.deepEqual(
83
- qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: true, decodeDotInKeys: true }),
84
- { 'name.obj': { first: 'John', last: 'Doe' } },
85
- 'with allowDots true and decodeDotInKeys true'
86
- );
87
-
88
- st.deepEqual(
89
- qs.parse(
90
- 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
91
- { allowDots: false, decodeDotInKeys: false }
92
- ),
93
- { 'name%2Eobj%2Esubobject.first%2Egodly%2Ename': 'John', 'name%2Eobj%2Esubobject.last': 'Doe' },
94
- 'with allowDots false and decodeDotInKeys false'
95
- );
96
- st.deepEqual(
97
- qs.parse(
98
- 'name.obj.subobject.first.godly.name=John&name.obj.subobject.last=Doe',
99
- { allowDots: true, decodeDotInKeys: false }
100
- ),
101
- { name: { obj: { subobject: { first: { godly: { name: 'John' } }, last: 'Doe' } } } },
102
- 'with allowDots true and decodeDotInKeys false'
103
- );
104
- st.deepEqual(
105
- qs.parse(
106
- 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
107
- { allowDots: true, decodeDotInKeys: true }
108
- ),
109
- { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
110
- 'with allowDots true and decodeDotInKeys true'
111
- );
112
- st.deepEqual(
113
- qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe'),
114
- { 'name%2Eobj.first': 'John', 'name%2Eobj.last': 'Doe' },
115
- 'with allowDots and decodeDotInKeys undefined'
116
- );
117
-
118
- st.end();
119
- });
120
-
121
- t.test('decodes dot in key of object, and allow enabling dot notation when decodeDotInKeys is set to true and allowDots is undefined', function (st) {
122
- st.deepEqual(
123
- qs.parse(
124
- 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
125
- { decodeDotInKeys: true }
126
- ),
127
- { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
128
- 'with allowDots undefined and decodeDotInKeys true'
129
- );
130
-
131
- st.end();
132
- });
133
-
134
- t.test('throws when decodeDotInKeys is not of type boolean', function (st) {
135
- st['throws'](
136
- function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: 'foobar' }); },
137
- TypeError
138
- );
139
-
140
- st['throws'](
141
- function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: 0 }); },
142
- TypeError
143
- );
144
- st['throws'](
145
- function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: NaN }); },
146
- TypeError
147
- );
148
-
149
- st['throws'](
150
- function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: null }); },
151
- TypeError
152
- );
153
-
154
- st.end();
155
- });
156
-
157
- t.test('allows empty arrays in obj values', function (st) {
158
- st.deepEqual(qs.parse('foo[]&bar=baz', { allowEmptyArrays: true }), { foo: [], bar: 'baz' });
159
- st.deepEqual(qs.parse('foo[]&bar=baz', { allowEmptyArrays: false }), { foo: [''], bar: 'baz' });
160
-
161
- st.end();
162
- });
163
-
164
- t.test('throws when allowEmptyArrays is not of type boolean', function (st) {
165
- st['throws'](
166
- function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: 'foobar' }); },
167
- TypeError
168
- );
169
-
170
- st['throws'](
171
- function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: 0 }); },
172
- TypeError
173
- );
174
- st['throws'](
175
- function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: NaN }); },
176
- TypeError
177
- );
178
-
179
- st['throws'](
180
- function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: null }); },
181
- TypeError
182
- );
183
-
184
- st.end();
185
- });
186
-
187
- t.test('allowEmptyArrays + strictNullHandling', function (st) {
188
- st.deepEqual(
189
- qs.parse('testEmptyArray[]', { strictNullHandling: true, allowEmptyArrays: true }),
190
- { testEmptyArray: [] }
191
- );
192
-
193
- st.end();
194
- });
195
-
196
- t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string');
197
- t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string');
198
- t.deepEqual(
199
- qs.parse('a[b][c][d][e][f][g][h]=i'),
200
- { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } },
201
- 'defaults to a depth of 5'
202
- );
203
-
204
- t.test('only parses one level when depth = 1', function (st) {
205
- st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } });
206
- st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } });
207
- st.end();
208
- });
209
-
210
- t.test('uses original key when depth = 0', function (st) {
211
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: 0 }), { 'a[0]': 'b', 'a[1]': 'c' });
212
- st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: 0 }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' });
213
- st.end();
214
- });
215
-
216
- t.test('uses original key when depth = false', function (st) {
217
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: false }), { 'a[0]': 'b', 'a[1]': 'c' });
218
- st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: false }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' });
219
- st.end();
220
- });
221
-
222
- t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array');
223
-
224
- t.test('parses an explicit array', function (st) {
225
- st.deepEqual(qs.parse('a[]=b'), { a: ['b'] });
226
- st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] });
227
- st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] });
228
- st.end();
229
- });
230
-
231
- t.test('parses a mix of simple and explicit arrays', function (st) {
232
- st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
233
- st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
234
- st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] });
235
- st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] });
236
-
237
- st.deepEqual(qs.parse('a[1]=b&a=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
238
- st.deepEqual(qs.parse('a[]=b&a=c', { arrayLimit: 0 }), { a: ['b', 'c'] });
239
- st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
240
-
241
- st.deepEqual(qs.parse('a=b&a[1]=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
242
- st.deepEqual(qs.parse('a=b&a[]=c', { arrayLimit: 0 }), { a: ['b', 'c'] });
243
- st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
244
-
245
- st.end();
246
- });
247
-
248
- t.test('parses a nested array', function (st) {
249
- st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } });
250
- st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } });
251
- st.end();
252
- });
253
-
254
- t.test('allows to specify array indices', function (st) {
255
- st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] });
256
- st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] });
257
- st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 20 }), { a: ['c'] });
258
- st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 0 }), { a: { 1: 'c' } });
259
- st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] });
260
- st.end();
261
- });
262
-
263
- t.test('limits specific array indices to arrayLimit', function (st) {
264
- st.deepEqual(qs.parse('a[20]=a', { arrayLimit: 20 }), { a: ['a'] });
265
- st.deepEqual(qs.parse('a[21]=a', { arrayLimit: 20 }), { a: { 21: 'a' } });
266
-
267
- st.deepEqual(qs.parse('a[20]=a'), { a: ['a'] });
268
- st.deepEqual(qs.parse('a[21]=a'), { a: { 21: 'a' } });
269
- st.end();
270
- });
271
-
272
- t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number');
273
-
274
- t.test('supports encoded = signs', function (st) {
275
- st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' });
276
- st.end();
277
- });
278
-
279
- t.test('is ok with url encoded strings', function (st) {
280
- st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } });
281
- st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } });
282
- st.end();
283
- });
284
-
285
- t.test('allows brackets in the value', function (st) {
286
- st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' });
287
- st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' });
288
- st.end();
289
- });
290
-
291
- t.test('allows empty values', function (st) {
292
- st.deepEqual(qs.parse(''), {});
293
- st.deepEqual(qs.parse(null), {});
294
- st.deepEqual(qs.parse(undefined), {});
295
- st.end();
296
- });
297
-
298
- t.test('transforms arrays to objects', function (st) {
299
- st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
300
- st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
301
- st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
302
- st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
303
- st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
304
- st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
305
-
306
- st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { 0: 'b', t: 'u' } });
307
- st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { 0: 'b', t: 'u', hasOwnProperty: 'c' } });
308
- st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { 0: 'b', x: 'y' } });
309
- st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { 0: 'b', hasOwnProperty: 'c', x: 'y' } });
310
- st.end();
311
- });
312
-
313
- t.test('transforms arrays to objects (dot notation)', function (st) {
314
- st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } });
315
- st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } });
316
- st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } });
317
- st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] });
318
- st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] });
319
- st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
320
- st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
321
- st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { 0: 'bar', bad: 'baz' } });
322
- st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
323
- st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
324
- st.end();
325
- });
326
-
327
- t.test('correctly prunes undefined values when converting an array to an object', function (st) {
328
- st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { 2: 'b', 99999999: 'c' } });
329
- st.end();
330
- });
331
-
332
- t.test('supports malformed uri characters', function (st) {
333
- st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null });
334
- st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' });
335
- st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' });
336
- st.end();
337
- });
338
-
339
- t.test('doesn\'t produce empty keys', function (st) {
340
- st.deepEqual(qs.parse('_r=1&'), { _r: '1' });
341
- st.end();
342
- });
343
-
344
- t.test('cannot access Object prototype', function (st) {
345
- qs.parse('constructor[prototype][bad]=bad');
346
- qs.parse('bad[constructor][prototype][bad]=bad');
347
- st.equal(typeof Object.prototype.bad, 'undefined');
348
- st.end();
349
- });
350
-
351
- t.test('parses arrays of objects', function (st) {
352
- st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
353
- st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] });
354
- st.end();
355
- });
356
-
357
- t.test('allows for empty strings in arrays', function (st) {
358
- st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] });
359
-
360
- st.deepEqual(
361
- qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }),
362
- { a: ['b', null, 'c', ''] },
363
- 'with arrayLimit 20 + array indices: null then empty string works'
364
- );
365
- st.deepEqual(
366
- qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }),
367
- { a: ['b', null, 'c', ''] },
368
- 'with arrayLimit 0 + array brackets: null then empty string works'
369
- );
370
-
371
- st.deepEqual(
372
- qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }),
373
- { a: ['b', '', 'c', null] },
374
- 'with arrayLimit 20 + array indices: empty string then null works'
375
- );
376
- st.deepEqual(
377
- qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }),
378
- { a: ['b', '', 'c', null] },
379
- 'with arrayLimit 0 + array brackets: empty string then null works'
380
- );
381
-
382
- st.deepEqual(
383
- qs.parse('a[]=&a[]=b&a[]=c'),
384
- { a: ['', 'b', 'c'] },
385
- 'array brackets: empty strings work'
386
- );
387
- st.end();
388
- });
389
-
390
- t.test('compacts sparse arrays', function (st) {
391
- st.deepEqual(qs.parse('a[10]=1&a[2]=2', { arrayLimit: 20 }), { a: ['2', '1'] });
392
- st.deepEqual(qs.parse('a[1][b][2][c]=1', { arrayLimit: 20 }), { a: [{ b: [{ c: '1' }] }] });
393
- st.deepEqual(qs.parse('a[1][2][3][c]=1', { arrayLimit: 20 }), { a: [[[{ c: '1' }]]] });
394
- st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { arrayLimit: 20 }), { a: [[[{ c: ['1'] }]]] });
395
- st.end();
396
- });
397
-
398
- t.test('parses sparse arrays', function (st) {
399
- /* eslint no-sparse-arrays: 0 */
400
- st.deepEqual(qs.parse('a[4]=1&a[1]=2', { allowSparse: true }), { a: [, '2', , , '1'] });
401
- st.deepEqual(qs.parse('a[1][b][2][c]=1', { allowSparse: true }), { a: [, { b: [, , { c: '1' }] }] });
402
- st.deepEqual(qs.parse('a[1][2][3][c]=1', { allowSparse: true }), { a: [, [, , [, , , { c: '1' }]]] });
403
- st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { allowSparse: true }), { a: [, [, , [, , , { c: [, '1'] }]]] });
404
- st.end();
405
- });
406
-
407
- t.test('parses semi-parsed strings', function (st) {
408
- st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } });
409
- st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } });
410
- st.end();
411
- });
412
-
413
- t.test('parses buffers correctly', function (st) {
414
- var b = SaferBuffer.from('test');
415
- st.deepEqual(qs.parse({ a: b }), { a: b });
416
- st.end();
417
- });
418
-
419
- t.test('parses jquery-param strings', function (st) {
420
- // readable = 'filter[0][]=int1&filter[0][]==&filter[0][]=77&filter[]=and&filter[2][]=int2&filter[2][]==&filter[2][]=8'
421
- var encoded = 'filter%5B0%5D%5B%5D=int1&filter%5B0%5D%5B%5D=%3D&filter%5B0%5D%5B%5D=77&filter%5B%5D=and&filter%5B2%5D%5B%5D=int2&filter%5B2%5D%5B%5D=%3D&filter%5B2%5D%5B%5D=8';
422
- var expected = { filter: [['int1', '=', '77'], 'and', ['int2', '=', '8']] };
423
- st.deepEqual(qs.parse(encoded), expected);
424
- st.end();
425
- });
426
-
427
- t.test('continues parsing when no parent is found', function (st) {
428
- st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' });
429
- st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' });
430
- st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' });
431
- st.end();
432
- });
433
-
434
- t.test('does not error when parsing a very long array', function (st) {
435
- var str = 'a[]=a';
436
- while (Buffer.byteLength(str) < 128 * 1024) {
437
- str = str + '&' + str;
438
- }
439
-
440
- st.doesNotThrow(function () {
441
- qs.parse(str);
442
- });
443
-
444
- st.end();
445
- });
446
-
447
- t.test('does not throw when a native prototype has an enumerable property', function (st) {
448
- st.intercept(Object.prototype, 'crash', { value: '' });
449
- st.intercept(Array.prototype, 'crash', { value: '' });
450
-
451
- st.doesNotThrow(qs.parse.bind(null, 'a=b'));
452
- st.deepEqual(qs.parse('a=b'), { a: 'b' });
453
- st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c'));
454
- st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
455
-
456
- st.end();
457
- });
458
-
459
- t.test('parses a string with an alternative string delimiter', function (st) {
460
- st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' });
461
- st.end();
462
- });
463
-
464
- t.test('parses a string with an alternative RegExp delimiter', function (st) {
465
- st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' });
466
- st.end();
467
- });
468
-
469
- t.test('does not use non-splittable objects as delimiters', function (st) {
470
- st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' });
471
- st.end();
472
- });
473
-
474
- t.test('allows overriding parameter limit', function (st) {
475
- st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' });
476
- st.end();
477
- });
478
-
479
- t.test('allows setting the parameter limit to Infinity', function (st) {
480
- st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' });
481
- st.end();
482
- });
483
-
484
- t.test('allows overriding array limit', function (st) {
485
- st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } });
486
- st.deepEqual(qs.parse('a[0]=b', { arrayLimit: 0 }), { a: ['b'] });
487
-
488
- st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } });
489
- st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: 0 }), { a: { '-1': 'b' } });
490
-
491
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: -1 }), { a: { 0: 'b', 1: 'c' } });
492
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } });
493
-
494
- st.end();
495
- });
496
-
497
- t.test('allows disabling array parsing', function (st) {
498
- var indices = qs.parse('a[0]=b&a[1]=c', { parseArrays: false });
499
- st.deepEqual(indices, { a: { 0: 'b', 1: 'c' } });
500
- st.equal(Array.isArray(indices.a), false, 'parseArrays:false, indices case is not an array');
501
-
502
- var emptyBrackets = qs.parse('a[]=b', { parseArrays: false });
503
- st.deepEqual(emptyBrackets, { a: { 0: 'b' } });
504
- st.equal(Array.isArray(emptyBrackets.a), false, 'parseArrays:false, empty brackets case is not an array');
505
-
506
- st.end();
507
- });
508
-
509
- t.test('allows for query string prefix', function (st) {
510
- st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' });
511
- st.deepEqual(qs.parse('foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' });
512
- st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: false }), { '?foo': 'bar' });
513
-
514
- st.end();
515
- });
516
-
517
- t.test('parses an object', function (st) {
518
- var input = {
519
- 'user[name]': { 'pop[bob]': 3 },
520
- 'user[email]': null
521
- };
522
-
523
- var expected = {
524
- user: {
525
- name: { 'pop[bob]': 3 },
526
- email: null
527
- }
528
- };
529
-
530
- var result = qs.parse(input);
531
-
532
- st.deepEqual(result, expected);
533
- st.end();
534
- });
535
-
536
- t.test('parses string with comma as array divider', function (st) {
537
- st.deepEqual(qs.parse('foo=bar,tee', { comma: true }), { foo: ['bar', 'tee'] });
538
- st.deepEqual(qs.parse('foo[bar]=coffee,tee', { comma: true }), { foo: { bar: ['coffee', 'tee'] } });
539
- st.deepEqual(qs.parse('foo=', { comma: true }), { foo: '' });
540
- st.deepEqual(qs.parse('foo', { comma: true }), { foo: '' });
541
- st.deepEqual(qs.parse('foo', { comma: true, strictNullHandling: true }), { foo: null });
542
-
543
- // test cases inversed from from stringify tests
544
- st.deepEqual(qs.parse('a[0]=c'), { a: ['c'] });
545
- st.deepEqual(qs.parse('a[]=c'), { a: ['c'] });
546
- st.deepEqual(qs.parse('a[]=c', { comma: true }), { a: ['c'] });
547
-
548
- st.deepEqual(qs.parse('a[0]=c&a[1]=d'), { a: ['c', 'd'] });
549
- st.deepEqual(qs.parse('a[]=c&a[]=d'), { a: ['c', 'd'] });
550
- st.deepEqual(qs.parse('a=c,d', { comma: true }), { a: ['c', 'd'] });
551
-
552
- st.end();
553
- });
554
-
555
- t.test('parses values with comma as array divider', function (st) {
556
- st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: false }), { foo: 'bar,tee' });
557
- st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: true }), { foo: ['bar', 'tee'] });
558
- st.end();
559
- });
560
-
561
- t.test('use number decoder, parses string that has one number with comma option enabled', function (st) {
562
- var decoder = function (str, defaultDecoder, charset, type) {
563
- if (!isNaN(Number(str))) {
564
- return parseFloat(str);
565
- }
566
- return defaultDecoder(str, defaultDecoder, charset, type);
567
- };
568
-
569
- st.deepEqual(qs.parse('foo=1', { comma: true, decoder: decoder }), { foo: 1 });
570
- st.deepEqual(qs.parse('foo=0', { comma: true, decoder: decoder }), { foo: 0 });
571
-
572
- st.end();
573
- });
574
-
575
- t.test('parses brackets holds array of arrays when having two parts of strings with comma as array divider', function (st) {
576
- st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=4,5,6', { comma: true }), { foo: [['1', '2', '3'], ['4', '5', '6']] });
577
- st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=', { comma: true }), { foo: [['1', '2', '3'], ''] });
578
- st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=,', { comma: true }), { foo: [['1', '2', '3'], ['', '']] });
579
- st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=a', { comma: true }), { foo: [['1', '2', '3'], 'a'] });
580
-
581
- st.end();
582
- });
583
-
584
- t.test('parses url-encoded brackets holds array of arrays when having two parts of strings with comma as array divider', function (st) {
585
- st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=4,5,6', { comma: true }), { foo: [['1', '2', '3'], ['4', '5', '6']] });
586
- st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=', { comma: true }), { foo: [['1', '2', '3'], ''] });
587
- st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=,', { comma: true }), { foo: [['1', '2', '3'], ['', '']] });
588
- st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=a', { comma: true }), { foo: [['1', '2', '3'], 'a'] });
589
-
590
- st.end();
591
- });
592
-
593
- t.test('parses comma delimited array while having percent-encoded comma treated as normal text', function (st) {
594
- st.deepEqual(qs.parse('foo=a%2Cb', { comma: true }), { foo: 'a,b' });
595
- st.deepEqual(qs.parse('foo=a%2C%20b,d', { comma: true }), { foo: ['a, b', 'd'] });
596
- st.deepEqual(qs.parse('foo=a%2C%20b,c%2C%20d', { comma: true }), { foo: ['a, b', 'c, d'] });
597
-
598
- st.end();
599
- });
600
-
601
- t.test('parses an object in dot notation', function (st) {
602
- var input = {
603
- 'user.name': { 'pop[bob]': 3 },
604
- 'user.email.': null
605
- };
606
-
607
- var expected = {
608
- user: {
609
- name: { 'pop[bob]': 3 },
610
- email: null
611
- }
612
- };
613
-
614
- var result = qs.parse(input, { allowDots: true });
615
-
616
- st.deepEqual(result, expected);
617
- st.end();
618
- });
619
-
620
- t.test('parses an object and not child values', function (st) {
621
- var input = {
622
- 'user[name]': { 'pop[bob]': { test: 3 } },
623
- 'user[email]': null
624
- };
625
-
626
- var expected = {
627
- user: {
628
- name: { 'pop[bob]': { test: 3 } },
629
- email: null
630
- }
631
- };
632
-
633
- var result = qs.parse(input);
634
-
635
- st.deepEqual(result, expected);
636
- st.end();
637
- });
638
-
639
- t.test('does not blow up when Buffer global is missing', function (st) {
640
- var restore = mockProperty(global, 'Buffer', { 'delete': true });
641
-
642
- var result = qs.parse('a=b&c=d');
643
-
644
- restore();
645
-
646
- st.deepEqual(result, { a: 'b', c: 'd' });
647
- st.end();
648
- });
649
-
650
- t.test('does not crash when parsing circular references', function (st) {
651
- var a = {};
652
- a.b = a;
653
-
654
- var parsed;
655
-
656
- st.doesNotThrow(function () {
657
- parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a });
658
- });
659
-
660
- st.equal('foo' in parsed, true, 'parsed has "foo" property');
661
- st.equal('bar' in parsed.foo, true);
662
- st.equal('baz' in parsed.foo, true);
663
- st.equal(parsed.foo.bar, 'baz');
664
- st.deepEqual(parsed.foo.baz, a);
665
- st.end();
666
- });
667
-
668
- t.test('does not crash when parsing deep objects', function (st) {
669
- var parsed;
670
- var str = 'foo';
671
-
672
- for (var i = 0; i < 5000; i++) {
673
- str += '[p]';
674
- }
675
-
676
- str += '=bar';
677
-
678
- st.doesNotThrow(function () {
679
- parsed = qs.parse(str, { depth: 5000 });
680
- });
681
-
682
- st.equal('foo' in parsed, true, 'parsed has "foo" property');
683
-
684
- var depth = 0;
685
- var ref = parsed.foo;
686
- while ((ref = ref.p)) {
687
- depth += 1;
688
- }
689
-
690
- st.equal(depth, 5000, 'parsed is 5000 properties deep');
691
-
692
- st.end();
693
- });
694
-
695
- t.test('parses null objects correctly', { skip: !hasProto }, function (st) {
696
- var a = { __proto__: null, b: 'c' };
697
-
698
- st.deepEqual(qs.parse(a), { b: 'c' });
699
- var result = qs.parse({ a: a });
700
- st.equal('a' in result, true, 'result has "a" property');
701
- st.deepEqual(result.a, a);
702
- st.end();
703
- });
704
-
705
- t.test('parses dates correctly', function (st) {
706
- var now = new Date();
707
- st.deepEqual(qs.parse({ a: now }), { a: now });
708
- st.end();
709
- });
710
-
711
- t.test('parses regular expressions correctly', function (st) {
712
- var re = /^test$/;
713
- st.deepEqual(qs.parse({ a: re }), { a: re });
714
- st.end();
715
- });
716
-
717
- t.test('does not allow overwriting prototype properties', function (st) {
718
- st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: false }), {});
719
- st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: false }), {});
720
-
721
- st.deepEqual(
722
- qs.parse('toString', { allowPrototypes: false }),
723
- {},
724
- 'bare "toString" results in {}'
725
- );
726
-
727
- st.end();
728
- });
729
-
730
- t.test('can allow overwriting prototype properties', function (st) {
731
- st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } });
732
- st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' });
733
-
734
- st.deepEqual(
735
- qs.parse('toString', { allowPrototypes: true }),
736
- { toString: '' },
737
- 'bare "toString" results in { toString: "" }'
738
- );
739
-
740
- st.end();
741
- });
742
-
743
- t.test('does not crash when the global Object prototype is frozen', { skip: !hasPropertyDescriptors || !hasOverrideMistake }, function (st) {
744
- // We can't actually freeze the global Object prototype as that will interfere with other tests, and once an object is frozen, it
745
- // can't be unfrozen. Instead, we add a new non-writable property to simulate this.
746
- st.teardown(mockProperty(Object.prototype, 'frozenProp', { value: 'foo', nonWritable: true, nonEnumerable: true }));
747
-
748
- st['throws'](
749
- function () {
750
- var obj = {};
751
- obj.frozenProp = 'bar';
752
- },
753
- // node < 6 has a different error message
754
- /^TypeError: Cannot assign to read only property 'frozenProp' of (?:object '#<Object>'|#<Object>)/,
755
- 'regular assignment of an inherited non-writable property throws'
756
- );
757
-
758
- var parsed;
759
- st.doesNotThrow(
760
- function () {
761
- parsed = qs.parse('frozenProp', { allowPrototypes: false });
762
- },
763
- 'parsing a nonwritable Object.prototype property does not throw'
764
- );
765
-
766
- st.deepEqual(parsed, {}, 'bare "frozenProp" results in {}');
767
-
768
- st.end();
769
- });
770
-
771
- t.test('params starting with a closing bracket', function (st) {
772
- st.deepEqual(qs.parse(']=toString'), { ']': 'toString' });
773
- st.deepEqual(qs.parse(']]=toString'), { ']]': 'toString' });
774
- st.deepEqual(qs.parse(']hello]=toString'), { ']hello]': 'toString' });
775
- st.end();
776
- });
777
-
778
- t.test('params starting with a starting bracket', function (st) {
779
- st.deepEqual(qs.parse('[=toString'), { '[': 'toString' });
780
- st.deepEqual(qs.parse('[[=toString'), { '[[': 'toString' });
781
- st.deepEqual(qs.parse('[hello[=toString'), { '[hello[': 'toString' });
782
- st.end();
783
- });
784
-
785
- t.test('add keys to objects', function (st) {
786
- st.deepEqual(
787
- qs.parse('a[b]=c&a=d'),
788
- { a: { b: 'c', d: true } },
789
- 'can add keys to objects'
790
- );
791
-
792
- st.deepEqual(
793
- qs.parse('a[b]=c&a=toString'),
794
- { a: { b: 'c' } },
795
- 'can not overwrite prototype'
796
- );
797
-
798
- st.deepEqual(
799
- qs.parse('a[b]=c&a=toString', { allowPrototypes: true }),
800
- { a: { b: 'c', toString: true } },
801
- 'can overwrite prototype with allowPrototypes true'
802
- );
803
-
804
- st.deepEqual(
805
- qs.parse('a[b]=c&a=toString', { plainObjects: true }),
806
- { __proto__: null, a: { __proto__: null, b: 'c', toString: true } },
807
- 'can overwrite prototype with plainObjects true'
808
- );
809
-
810
- st.end();
811
- });
812
-
813
- t.test('dunder proto is ignored', function (st) {
814
- var payload = 'categories[__proto__]=login&categories[__proto__]&categories[length]=42';
815
- var result = qs.parse(payload, { allowPrototypes: true });
816
-
817
- st.deepEqual(
818
- result,
819
- {
820
- categories: {
821
- length: '42'
822
- }
823
- },
824
- 'silent [[Prototype]] payload'
825
- );
826
-
827
- var plainResult = qs.parse(payload, { allowPrototypes: true, plainObjects: true });
828
-
829
- st.deepEqual(
830
- plainResult,
831
- {
832
- __proto__: null,
833
- categories: {
834
- __proto__: null,
835
- length: '42'
836
- }
837
- },
838
- 'silent [[Prototype]] payload: plain objects'
839
- );
840
-
841
- var query = qs.parse('categories[__proto__]=cats&categories[__proto__]=dogs&categories[some][json]=toInject', { allowPrototypes: true });
842
-
843
- st.notOk(Array.isArray(query.categories), 'is not an array');
844
- st.notOk(query.categories instanceof Array, 'is not instanceof an array');
845
- st.deepEqual(query.categories, { some: { json: 'toInject' } });
846
- st.equal(JSON.stringify(query.categories), '{"some":{"json":"toInject"}}', 'stringifies as a non-array');
847
-
848
- st.deepEqual(
849
- qs.parse('foo[__proto__][hidden]=value&foo[bar]=stuffs', { allowPrototypes: true }),
850
- {
851
- foo: {
852
- bar: 'stuffs'
853
- }
854
- },
855
- 'hidden values'
856
- );
857
-
858
- st.deepEqual(
859
- qs.parse('foo[__proto__][hidden]=value&foo[bar]=stuffs', { allowPrototypes: true, plainObjects: true }),
860
- {
861
- __proto__: null,
862
- foo: {
863
- __proto__: null,
864
- bar: 'stuffs'
865
- }
866
- },
867
- 'hidden values: plain objects'
868
- );
869
-
870
- st.end();
871
- });
872
-
873
- t.test('can return null objects', { skip: !hasProto }, function (st) {
874
- var expected = {
875
- __proto__: null,
876
- a: {
877
- __proto__: null,
878
- b: 'c',
879
- hasOwnProperty: 'd'
880
- }
881
- };
882
- st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected);
883
- st.deepEqual(qs.parse(null, { plainObjects: true }), { __proto__: null });
884
- var expectedArray = {
885
- __proto__: null,
886
- a: {
887
- __proto__: null,
888
- 0: 'b',
889
- c: 'd'
890
- }
891
- };
892
- st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray);
893
- st.end();
894
- });
895
-
896
- t.test('can parse with custom encoding', function (st) {
897
- st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', {
898
- decoder: function (str) {
899
- var reg = /%([0-9A-F]{2})/ig;
900
- var result = [];
901
- var parts = reg.exec(str);
902
- while (parts) {
903
- result.push(parseInt(parts[1], 16));
904
- parts = reg.exec(str);
905
- }
906
- return String(iconv.decode(SaferBuffer.from(result), 'shift_jis'));
907
- }
908
- }), { 県: '大阪府' });
909
- st.end();
910
- });
911
-
912
- t.test('receives the default decoder as a second argument', function (st) {
913
- st.plan(1);
914
- qs.parse('a', {
915
- decoder: function (str, defaultDecoder) {
916
- st.equal(defaultDecoder, utils.decode);
917
- }
918
- });
919
- st.end();
920
- });
921
-
922
- t.test('throws error with wrong decoder', function (st) {
923
- st['throws'](function () {
924
- qs.parse({}, { decoder: 'string' });
925
- }, new TypeError('Decoder has to be a function.'));
926
- st.end();
927
- });
928
-
929
- t.test('does not mutate the options argument', function (st) {
930
- var options = {};
931
- qs.parse('a[b]=true', options);
932
- st.deepEqual(options, {});
933
- st.end();
934
- });
935
-
936
- t.test('throws if an invalid charset is specified', function (st) {
937
- st['throws'](function () {
938
- qs.parse('a=b', { charset: 'foobar' });
939
- }, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'));
940
- st.end();
941
- });
942
-
943
- t.test('parses an iso-8859-1 string if asked to', function (st) {
944
- st.deepEqual(qs.parse('%A2=%BD', { charset: 'iso-8859-1' }), { '¢': '½' });
945
- st.end();
946
- });
947
-
948
- var urlEncodedCheckmarkInUtf8 = '%E2%9C%93';
949
- var urlEncodedOSlashInUtf8 = '%C3%B8';
950
- var urlEncodedNumCheckmark = '%26%2310003%3B';
951
- var urlEncodedNumSmiley = '%26%239786%3B';
952
-
953
- t.test('prefers an utf-8 charset specified by the utf8 sentinel to a default charset of iso-8859-1', function (st) {
954
- st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'iso-8859-1' }), { ø: 'ø' });
955
- st.end();
956
- });
957
-
958
- t.test('prefers an iso-8859-1 charset specified by the utf8 sentinel to a default charset of utf-8', function (st) {
959
- st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { 'ø': 'ø' });
960
- st.end();
961
- });
962
-
963
- t.test('does not require the utf8 sentinel to be defined before the parameters whose decoding it affects', function (st) {
964
- st.deepEqual(qs.parse('a=' + urlEncodedOSlashInUtf8 + '&utf8=' + urlEncodedNumCheckmark, { charsetSentinel: true, charset: 'utf-8' }), { a: 'ø' });
965
- st.end();
966
- });
967
-
968
- t.test('ignores an utf8 sentinel with an unknown value', function (st) {
969
- st.deepEqual(qs.parse('utf8=foo&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { ø: 'ø' });
970
- st.end();
971
- });
972
-
973
- t.test('uses the utf8 sentinel to switch to utf-8 when no default charset is given', function (st) {
974
- st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { ø: 'ø' });
975
- st.end();
976
- });
977
-
978
- t.test('uses the utf8 sentinel to switch to iso-8859-1 when no default charset is given', function (st) {
979
- st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { 'ø': 'ø' });
980
- st.end();
981
- });
982
-
983
- t.test('interprets numeric entities in iso-8859-1 when `interpretNumericEntities`', function (st) {
984
- st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1', interpretNumericEntities: true }), { foo: '☺' });
985
- st.end();
986
- });
987
-
988
- t.test('handles a custom decoder returning `null`, in the `iso-8859-1` charset, when `interpretNumericEntities`', function (st) {
989
- st.deepEqual(qs.parse('foo=&bar=' + urlEncodedNumSmiley, {
990
- charset: 'iso-8859-1',
991
- decoder: function (str, defaultDecoder, charset) {
992
- return str ? defaultDecoder(str, defaultDecoder, charset) : null;
993
- },
994
- interpretNumericEntities: true
995
- }), { foo: null, bar: '☺' });
996
- st.end();
997
- });
998
-
999
- t.test('does not interpret numeric entities in iso-8859-1 when `interpretNumericEntities` is absent', function (st) {
1000
- st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1' }), { foo: '&#9786;' });
1001
- st.end();
1002
- });
1003
-
1004
- t.test('does not interpret numeric entities when the charset is utf-8, even when `interpretNumericEntities`', function (st) {
1005
- st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'utf-8', interpretNumericEntities: true }), { foo: '&#9786;' });
1006
- st.end();
1007
- });
1008
-
1009
- t.test('interpretNumericEntities with comma:true and iso charset does not crash', function (st) {
1010
- st.deepEqual(
1011
- qs.parse('b&a[]=1,' + urlEncodedNumSmiley, { comma: true, charset: 'iso-8859-1', interpretNumericEntities: true }),
1012
- { b: '', a: ['1,☺'] }
1013
- );
1014
-
1015
- st.end();
1016
- });
1017
-
1018
- t.test('does not interpret %uXXXX syntax in iso-8859-1 mode', function (st) {
1019
- st.deepEqual(qs.parse('%u263A=%u263A', { charset: 'iso-8859-1' }), { '%u263A': '%u263A' });
1020
- st.end();
1021
- });
1022
-
1023
- t.test('allows for decoding keys and values differently', function (st) {
1024
- var decoder = function (str, defaultDecoder, charset, type) {
1025
- if (type === 'key') {
1026
- return defaultDecoder(str, defaultDecoder, charset, type).toLowerCase();
1027
- }
1028
- if (type === 'value') {
1029
- return defaultDecoder(str, defaultDecoder, charset, type).toUpperCase();
1030
- }
1031
- throw 'this should never happen! type: ' + type;
1032
- };
1033
-
1034
- st.deepEqual(qs.parse('KeY=vAlUe', { decoder: decoder }), { key: 'VALUE' });
1035
- st.end();
1036
- });
1037
-
1038
- t.test('parameter limit tests', function (st) {
1039
- st.test('does not throw error when within parameter limit', function (sst) {
1040
- var result = qs.parse('a=1&b=2&c=3', { parameterLimit: 5, throwOnLimitExceeded: true });
1041
- sst.deepEqual(result, { a: '1', b: '2', c: '3' }, 'parses without errors');
1042
- sst.end();
1043
- });
1044
-
1045
- st.test('throws error when throwOnLimitExceeded is present but not boolean', function (sst) {
1046
- sst['throws'](
1047
- function () {
1048
- qs.parse('a=1&b=2&c=3&d=4&e=5&f=6', { parameterLimit: 3, throwOnLimitExceeded: 'true' });
1049
- },
1050
- new TypeError('`throwOnLimitExceeded` option must be a boolean'),
1051
- 'throws error when throwOnLimitExceeded is present and not boolean'
1052
- );
1053
- sst.end();
1054
- });
1055
-
1056
- st.test('throws error when parameter limit exceeded', function (sst) {
1057
- sst['throws'](
1058
- function () {
1059
- qs.parse('a=1&b=2&c=3&d=4&e=5&f=6', { parameterLimit: 3, throwOnLimitExceeded: true });
1060
- },
1061
- new RangeError('Parameter limit exceeded. Only 3 parameters allowed.'),
1062
- 'throws error when parameter limit is exceeded'
1063
- );
1064
- sst.end();
1065
- });
1066
-
1067
- st.test('silently truncates when throwOnLimitExceeded is not given', function (sst) {
1068
- var result = qs.parse('a=1&b=2&c=3&d=4&e=5', { parameterLimit: 3 });
1069
- sst.deepEqual(result, { a: '1', b: '2', c: '3' }, 'parses and truncates silently');
1070
- sst.end();
1071
- });
1072
-
1073
- st.test('silently truncates when parameter limit exceeded without error', function (sst) {
1074
- var result = qs.parse('a=1&b=2&c=3&d=4&e=5', { parameterLimit: 3, throwOnLimitExceeded: false });
1075
- sst.deepEqual(result, { a: '1', b: '2', c: '3' }, 'parses and truncates silently');
1076
- sst.end();
1077
- });
1078
-
1079
- st.test('allows unlimited parameters when parameterLimit set to Infinity', function (sst) {
1080
- var result = qs.parse('a=1&b=2&c=3&d=4&e=5&f=6', { parameterLimit: Infinity });
1081
- sst.deepEqual(result, { a: '1', b: '2', c: '3', d: '4', e: '5', f: '6' }, 'parses all parameters without truncation');
1082
- sst.end();
1083
- });
1084
-
1085
- st.end();
1086
- });
1087
-
1088
- t.test('array limit tests', function (st) {
1089
- st.test('does not throw error when array is within limit', function (sst) {
1090
- var result = qs.parse('a[]=1&a[]=2&a[]=3', { arrayLimit: 5, throwOnLimitExceeded: true });
1091
- sst.deepEqual(result, { a: ['1', '2', '3'] }, 'parses array without errors');
1092
- sst.end();
1093
- });
1094
-
1095
- st.test('throws error when throwOnLimitExceeded is present but not boolean for array limit', function (sst) {
1096
- sst['throws'](
1097
- function () {
1098
- qs.parse('a[]=1&a[]=2&a[]=3&a[]=4', { arrayLimit: 3, throwOnLimitExceeded: 'true' });
1099
- },
1100
- new TypeError('`throwOnLimitExceeded` option must be a boolean'),
1101
- 'throws error when throwOnLimitExceeded is present and not boolean for array limit'
1102
- );
1103
- sst.end();
1104
- });
1105
-
1106
- st.test('throws error when array limit exceeded', function (sst) {
1107
- sst['throws'](
1108
- function () {
1109
- qs.parse('a[]=1&a[]=2&a[]=3&a[]=4', { arrayLimit: 3, throwOnLimitExceeded: true });
1110
- },
1111
- new RangeError('Array limit exceeded. Only 3 elements allowed in an array.'),
1112
- 'throws error when array limit is exceeded'
1113
- );
1114
- sst.end();
1115
- });
1116
-
1117
- st.test('converts array to object if length is greater than limit', function (sst) {
1118
- var result = qs.parse('a[1]=1&a[2]=2&a[3]=3&a[4]=4&a[5]=5&a[6]=6', { arrayLimit: 5 });
1119
-
1120
- sst.deepEqual(result, { a: { 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6' } }, 'parses into object if array length is greater than limit');
1121
- sst.end();
1122
- });
1123
-
1124
- st.end();
1125
- });
1126
-
1127
- t.end();
1128
- });
1129
-
1130
- test('parses empty keys', function (t) {
1131
- emptyTestCases.forEach(function (testCase) {
1132
- t.test('skips empty string key with ' + testCase.input, function (st) {
1133
- st.deepEqual(qs.parse(testCase.input), testCase.noEmptyKeys);
1134
-
1135
- st.end();
1136
- });
1137
- });
1138
- });
1139
-
1140
- test('`duplicates` option', function (t) {
1141
- v.nonStrings.concat('not a valid option').forEach(function (invalidOption) {
1142
- if (typeof invalidOption !== 'undefined') {
1143
- t['throws'](
1144
- function () { qs.parse('', { duplicates: invalidOption }); },
1145
- TypeError,
1146
- 'throws on invalid option: ' + inspect(invalidOption)
1147
- );
1148
- }
1149
- });
1150
-
1151
- t.deepEqual(
1152
- qs.parse('foo=bar&foo=baz'),
1153
- { foo: ['bar', 'baz'] },
1154
- 'duplicates: default, combine'
1155
- );
1156
-
1157
- t.deepEqual(
1158
- qs.parse('foo=bar&foo=baz', { duplicates: 'combine' }),
1159
- { foo: ['bar', 'baz'] },
1160
- 'duplicates: combine'
1161
- );
1162
-
1163
- t.deepEqual(
1164
- qs.parse('foo=bar&foo=baz', { duplicates: 'first' }),
1165
- { foo: 'bar' },
1166
- 'duplicates: first'
1167
- );
1168
-
1169
- t.deepEqual(
1170
- qs.parse('foo=bar&foo=baz', { duplicates: 'last' }),
1171
- { foo: 'baz' },
1172
- 'duplicates: last'
1173
- );
1174
-
1175
- t.end();
1176
- });
1177
-
1178
- test('qs strictDepth option - throw cases', function (t) {
1179
- t.test('throws an exception when depth exceeds the limit with strictDepth: true', function (st) {
1180
- st['throws'](
1181
- function () {
1182
- qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1, strictDepth: true });
1183
- },
1184
- RangeError,
1185
- 'throws RangeError'
1186
- );
1187
- st.end();
1188
- });
1189
-
1190
- t.test('throws an exception for multiple nested arrays with strictDepth: true', function (st) {
1191
- st['throws'](
1192
- function () {
1193
- qs.parse('a[0][1][2][3][4]=b', { depth: 3, strictDepth: true });
1194
- },
1195
- RangeError,
1196
- 'throws RangeError'
1197
- );
1198
- st.end();
1199
- });
1200
-
1201
- t.test('throws an exception for nested objects and arrays with strictDepth: true', function (st) {
1202
- st['throws'](
1203
- function () {
1204
- qs.parse('a[b][c][0][d][e]=f', { depth: 3, strictDepth: true });
1205
- },
1206
- RangeError,
1207
- 'throws RangeError'
1208
- );
1209
- st.end();
1210
- });
1211
-
1212
- t.test('throws an exception for different types of values with strictDepth: true', function (st) {
1213
- st['throws'](
1214
- function () {
1215
- qs.parse('a[b][c][d][e]=true&a[b][c][d][f]=42', { depth: 3, strictDepth: true });
1216
- },
1217
- RangeError,
1218
- 'throws RangeError'
1219
- );
1220
- st.end();
1221
- });
1222
-
1223
- });
1224
-
1225
- test('qs strictDepth option - non-throw cases', function (t) {
1226
- t.test('when depth is 0 and strictDepth true, do not throw', function (st) {
1227
- st.doesNotThrow(
1228
- function () {
1229
- qs.parse('a[b][c][d][e]=true&a[b][c][d][f]=42', { depth: 0, strictDepth: true });
1230
- },
1231
- RangeError,
1232
- 'does not throw RangeError'
1233
- );
1234
- st.end();
1235
- });
1236
-
1237
- t.test('parses successfully when depth is within the limit with strictDepth: true', function (st) {
1238
- st.doesNotThrow(
1239
- function () {
1240
- var result = qs.parse('a[b]=c', { depth: 1, strictDepth: true });
1241
- st.deepEqual(result, { a: { b: 'c' } }, 'parses correctly');
1242
- }
1243
- );
1244
- st.end();
1245
- });
1246
-
1247
- t.test('does not throw an exception when depth exceeds the limit with strictDepth: false', function (st) {
1248
- st.doesNotThrow(
1249
- function () {
1250
- var result = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 });
1251
- st.deepEqual(result, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }, 'parses with depth limit');
1252
- }
1253
- );
1254
- st.end();
1255
- });
1256
-
1257
- t.test('parses successfully when depth is within the limit with strictDepth: false', function (st) {
1258
- st.doesNotThrow(
1259
- function () {
1260
- var result = qs.parse('a[b]=c', { depth: 1 });
1261
- st.deepEqual(result, { a: { b: 'c' } }, 'parses correctly');
1262
- }
1263
- );
1264
- st.end();
1265
- });
1266
-
1267
- t.test('does not throw when depth is exactly at the limit with strictDepth: true', function (st) {
1268
- st.doesNotThrow(
1269
- function () {
1270
- var result = qs.parse('a[b][c]=d', { depth: 2, strictDepth: true });
1271
- st.deepEqual(result, { a: { b: { c: 'd' } } }, 'parses correctly');
1272
- }
1273
- );
1274
- st.end();
1275
- });
1276
- });