ppi-sdk 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (642) hide show
  1. package/README.md +22 -0
  2. package/console.log(' +0 -0
  3. package/console.log('Import +0 -0
  4. package/package.json +2 -1
  5. package/src/README.md +13 -0
  6. package/{ppi-api/node_modules/.package-lock.json → tools/package-lock.json} +827 -847
  7. package/tools/package.json +17 -0
  8. package/tools/playground-static/index.html +666 -0
  9. package/tools/ppi-bridge.js +268 -0
  10. package/tools/ppi-playground-server.js +273 -0
  11. package/tools/ppi-playground.js +260 -91
  12. package/tools/simple-server.js +66 -0
  13. package/ppi-api/node_modules/.bin/mime +0 -16
  14. package/ppi-api/node_modules/.bin/mime.cmd +0 -17
  15. package/ppi-api/node_modules/.bin/mime.ps1 +0 -28
  16. package/ppi-api/node_modules/accepts/HISTORY.md +0 -243
  17. package/ppi-api/node_modules/accepts/LICENSE +0 -23
  18. package/ppi-api/node_modules/accepts/README.md +0 -140
  19. package/ppi-api/node_modules/accepts/index.js +0 -238
  20. package/ppi-api/node_modules/accepts/package.json +0 -47
  21. package/ppi-api/node_modules/array-flatten/LICENSE +0 -21
  22. package/ppi-api/node_modules/array-flatten/README.md +0 -43
  23. package/ppi-api/node_modules/array-flatten/array-flatten.js +0 -64
  24. package/ppi-api/node_modules/array-flatten/package.json +0 -39
  25. package/ppi-api/node_modules/body-parser/HISTORY.md +0 -672
  26. package/ppi-api/node_modules/body-parser/LICENSE +0 -23
  27. package/ppi-api/node_modules/body-parser/README.md +0 -476
  28. package/ppi-api/node_modules/body-parser/SECURITY.md +0 -25
  29. package/ppi-api/node_modules/body-parser/index.js +0 -156
  30. package/ppi-api/node_modules/body-parser/lib/read.js +0 -205
  31. package/ppi-api/node_modules/body-parser/lib/types/json.js +0 -247
  32. package/ppi-api/node_modules/body-parser/lib/types/raw.js +0 -101
  33. package/ppi-api/node_modules/body-parser/lib/types/text.js +0 -121
  34. package/ppi-api/node_modules/body-parser/lib/types/urlencoded.js +0 -307
  35. package/ppi-api/node_modules/body-parser/package.json +0 -56
  36. package/ppi-api/node_modules/bytes/History.md +0 -97
  37. package/ppi-api/node_modules/bytes/LICENSE +0 -23
  38. package/ppi-api/node_modules/bytes/Readme.md +0 -152
  39. package/ppi-api/node_modules/bytes/index.js +0 -170
  40. package/ppi-api/node_modules/bytes/package.json +0 -42
  41. package/ppi-api/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  42. package/ppi-api/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  43. package/ppi-api/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  44. package/ppi-api/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  45. package/ppi-api/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  46. package/ppi-api/node_modules/call-bind-apply-helpers/README.md +0 -62
  47. package/ppi-api/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  48. package/ppi-api/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  49. package/ppi-api/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  50. package/ppi-api/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  51. package/ppi-api/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  52. package/ppi-api/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  53. package/ppi-api/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  54. package/ppi-api/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  55. package/ppi-api/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  56. package/ppi-api/node_modules/call-bind-apply-helpers/index.js +0 -15
  57. package/ppi-api/node_modules/call-bind-apply-helpers/package.json +0 -85
  58. package/ppi-api/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  59. package/ppi-api/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  60. package/ppi-api/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  61. package/ppi-api/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  62. package/ppi-api/node_modules/call-bound/.eslintrc +0 -13
  63. package/ppi-api/node_modules/call-bound/.github/FUNDING.yml +0 -12
  64. package/ppi-api/node_modules/call-bound/.nycrc +0 -9
  65. package/ppi-api/node_modules/call-bound/CHANGELOG.md +0 -42
  66. package/ppi-api/node_modules/call-bound/LICENSE +0 -21
  67. package/ppi-api/node_modules/call-bound/README.md +0 -53
  68. package/ppi-api/node_modules/call-bound/index.d.ts +0 -94
  69. package/ppi-api/node_modules/call-bound/index.js +0 -19
  70. package/ppi-api/node_modules/call-bound/package.json +0 -99
  71. package/ppi-api/node_modules/call-bound/test/index.js +0 -61
  72. package/ppi-api/node_modules/call-bound/tsconfig.json +0 -10
  73. package/ppi-api/node_modules/content-disposition/HISTORY.md +0 -60
  74. package/ppi-api/node_modules/content-disposition/LICENSE +0 -22
  75. package/ppi-api/node_modules/content-disposition/README.md +0 -142
  76. package/ppi-api/node_modules/content-disposition/index.js +0 -458
  77. package/ppi-api/node_modules/content-disposition/package.json +0 -44
  78. package/ppi-api/node_modules/content-type/HISTORY.md +0 -29
  79. package/ppi-api/node_modules/content-type/LICENSE +0 -22
  80. package/ppi-api/node_modules/content-type/README.md +0 -94
  81. package/ppi-api/node_modules/content-type/index.js +0 -225
  82. package/ppi-api/node_modules/content-type/package.json +0 -42
  83. package/ppi-api/node_modules/cookie/LICENSE +0 -24
  84. package/ppi-api/node_modules/cookie/README.md +0 -317
  85. package/ppi-api/node_modules/cookie/SECURITY.md +0 -25
  86. package/ppi-api/node_modules/cookie/index.js +0 -334
  87. package/ppi-api/node_modules/cookie/package.json +0 -44
  88. package/ppi-api/node_modules/cookie-signature/History.md +0 -38
  89. package/ppi-api/node_modules/cookie-signature/Readme.md +0 -42
  90. package/ppi-api/node_modules/cookie-signature/index.js +0 -51
  91. package/ppi-api/node_modules/cookie-signature/package.json +0 -18
  92. package/ppi-api/node_modules/cors/CONTRIBUTING.md +0 -33
  93. package/ppi-api/node_modules/cors/HISTORY.md +0 -58
  94. package/ppi-api/node_modules/cors/LICENSE +0 -22
  95. package/ppi-api/node_modules/cors/README.md +0 -243
  96. package/ppi-api/node_modules/cors/lib/index.js +0 -238
  97. package/ppi-api/node_modules/cors/package.json +0 -41
  98. package/ppi-api/node_modules/debug/.coveralls.yml +0 -1
  99. package/ppi-api/node_modules/debug/.eslintrc +0 -11
  100. package/ppi-api/node_modules/debug/.travis.yml +0 -14
  101. package/ppi-api/node_modules/debug/CHANGELOG.md +0 -362
  102. package/ppi-api/node_modules/debug/LICENSE +0 -19
  103. package/ppi-api/node_modules/debug/Makefile +0 -50
  104. package/ppi-api/node_modules/debug/README.md +0 -312
  105. package/ppi-api/node_modules/debug/component.json +0 -19
  106. package/ppi-api/node_modules/debug/karma.conf.js +0 -70
  107. package/ppi-api/node_modules/debug/node.js +0 -1
  108. package/ppi-api/node_modules/debug/package.json +0 -49
  109. package/ppi-api/node_modules/debug/src/browser.js +0 -185
  110. package/ppi-api/node_modules/debug/src/debug.js +0 -202
  111. package/ppi-api/node_modules/debug/src/index.js +0 -10
  112. package/ppi-api/node_modules/debug/src/inspector-log.js +0 -15
  113. package/ppi-api/node_modules/debug/src/node.js +0 -248
  114. package/ppi-api/node_modules/depd/History.md +0 -103
  115. package/ppi-api/node_modules/depd/LICENSE +0 -22
  116. package/ppi-api/node_modules/depd/Readme.md +0 -280
  117. package/ppi-api/node_modules/depd/index.js +0 -538
  118. package/ppi-api/node_modules/depd/lib/browser/index.js +0 -77
  119. package/ppi-api/node_modules/depd/package.json +0 -45
  120. package/ppi-api/node_modules/destroy/LICENSE +0 -23
  121. package/ppi-api/node_modules/destroy/README.md +0 -63
  122. package/ppi-api/node_modules/destroy/index.js +0 -209
  123. package/ppi-api/node_modules/destroy/package.json +0 -48
  124. package/ppi-api/node_modules/dunder-proto/.eslintrc +0 -5
  125. package/ppi-api/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  126. package/ppi-api/node_modules/dunder-proto/.nycrc +0 -13
  127. package/ppi-api/node_modules/dunder-proto/CHANGELOG.md +0 -24
  128. package/ppi-api/node_modules/dunder-proto/LICENSE +0 -21
  129. package/ppi-api/node_modules/dunder-proto/README.md +0 -54
  130. package/ppi-api/node_modules/dunder-proto/get.d.ts +0 -5
  131. package/ppi-api/node_modules/dunder-proto/get.js +0 -30
  132. package/ppi-api/node_modules/dunder-proto/package.json +0 -76
  133. package/ppi-api/node_modules/dunder-proto/set.d.ts +0 -5
  134. package/ppi-api/node_modules/dunder-proto/set.js +0 -35
  135. package/ppi-api/node_modules/dunder-proto/test/get.js +0 -34
  136. package/ppi-api/node_modules/dunder-proto/test/index.js +0 -4
  137. package/ppi-api/node_modules/dunder-proto/test/set.js +0 -50
  138. package/ppi-api/node_modules/dunder-proto/tsconfig.json +0 -9
  139. package/ppi-api/node_modules/ee-first/LICENSE +0 -22
  140. package/ppi-api/node_modules/ee-first/README.md +0 -80
  141. package/ppi-api/node_modules/ee-first/index.js +0 -95
  142. package/ppi-api/node_modules/ee-first/package.json +0 -29
  143. package/ppi-api/node_modules/encodeurl/LICENSE +0 -22
  144. package/ppi-api/node_modules/encodeurl/README.md +0 -109
  145. package/ppi-api/node_modules/encodeurl/index.js +0 -60
  146. package/ppi-api/node_modules/encodeurl/package.json +0 -40
  147. package/ppi-api/node_modules/es-define-property/.eslintrc +0 -13
  148. package/ppi-api/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  149. package/ppi-api/node_modules/es-define-property/.nycrc +0 -9
  150. package/ppi-api/node_modules/es-define-property/CHANGELOG.md +0 -29
  151. package/ppi-api/node_modules/es-define-property/LICENSE +0 -21
  152. package/ppi-api/node_modules/es-define-property/README.md +0 -49
  153. package/ppi-api/node_modules/es-define-property/index.d.ts +0 -3
  154. package/ppi-api/node_modules/es-define-property/index.js +0 -14
  155. package/ppi-api/node_modules/es-define-property/package.json +0 -81
  156. package/ppi-api/node_modules/es-define-property/test/index.js +0 -56
  157. package/ppi-api/node_modules/es-define-property/tsconfig.json +0 -10
  158. package/ppi-api/node_modules/es-errors/.eslintrc +0 -5
  159. package/ppi-api/node_modules/es-errors/.github/FUNDING.yml +0 -12
  160. package/ppi-api/node_modules/es-errors/CHANGELOG.md +0 -40
  161. package/ppi-api/node_modules/es-errors/LICENSE +0 -21
  162. package/ppi-api/node_modules/es-errors/README.md +0 -55
  163. package/ppi-api/node_modules/es-errors/eval.d.ts +0 -3
  164. package/ppi-api/node_modules/es-errors/eval.js +0 -4
  165. package/ppi-api/node_modules/es-errors/index.d.ts +0 -3
  166. package/ppi-api/node_modules/es-errors/index.js +0 -4
  167. package/ppi-api/node_modules/es-errors/package.json +0 -80
  168. package/ppi-api/node_modules/es-errors/range.d.ts +0 -3
  169. package/ppi-api/node_modules/es-errors/range.js +0 -4
  170. package/ppi-api/node_modules/es-errors/ref.d.ts +0 -3
  171. package/ppi-api/node_modules/es-errors/ref.js +0 -4
  172. package/ppi-api/node_modules/es-errors/syntax.d.ts +0 -3
  173. package/ppi-api/node_modules/es-errors/syntax.js +0 -4
  174. package/ppi-api/node_modules/es-errors/test/index.js +0 -19
  175. package/ppi-api/node_modules/es-errors/tsconfig.json +0 -49
  176. package/ppi-api/node_modules/es-errors/type.d.ts +0 -3
  177. package/ppi-api/node_modules/es-errors/type.js +0 -4
  178. package/ppi-api/node_modules/es-errors/uri.d.ts +0 -3
  179. package/ppi-api/node_modules/es-errors/uri.js +0 -4
  180. package/ppi-api/node_modules/es-object-atoms/.eslintrc +0 -16
  181. package/ppi-api/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  182. package/ppi-api/node_modules/es-object-atoms/CHANGELOG.md +0 -37
  183. package/ppi-api/node_modules/es-object-atoms/LICENSE +0 -21
  184. package/ppi-api/node_modules/es-object-atoms/README.md +0 -63
  185. package/ppi-api/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  186. package/ppi-api/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  187. package/ppi-api/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  188. package/ppi-api/node_modules/es-object-atoms/ToObject.js +0 -10
  189. package/ppi-api/node_modules/es-object-atoms/index.d.ts +0 -3
  190. package/ppi-api/node_modules/es-object-atoms/index.js +0 -4
  191. package/ppi-api/node_modules/es-object-atoms/isObject.d.ts +0 -3
  192. package/ppi-api/node_modules/es-object-atoms/isObject.js +0 -6
  193. package/ppi-api/node_modules/es-object-atoms/package.json +0 -80
  194. package/ppi-api/node_modules/es-object-atoms/test/index.js +0 -38
  195. package/ppi-api/node_modules/es-object-atoms/tsconfig.json +0 -6
  196. package/ppi-api/node_modules/escape-html/LICENSE +0 -24
  197. package/ppi-api/node_modules/escape-html/Readme.md +0 -43
  198. package/ppi-api/node_modules/escape-html/index.js +0 -78
  199. package/ppi-api/node_modules/escape-html/package.json +0 -24
  200. package/ppi-api/node_modules/etag/HISTORY.md +0 -83
  201. package/ppi-api/node_modules/etag/LICENSE +0 -22
  202. package/ppi-api/node_modules/etag/README.md +0 -159
  203. package/ppi-api/node_modules/etag/index.js +0 -131
  204. package/ppi-api/node_modules/etag/package.json +0 -47
  205. package/ppi-api/node_modules/express/History.md +0 -3656
  206. package/ppi-api/node_modules/express/LICENSE +0 -24
  207. package/ppi-api/node_modules/express/Readme.md +0 -260
  208. package/ppi-api/node_modules/express/index.js +0 -11
  209. package/ppi-api/node_modules/express/lib/application.js +0 -661
  210. package/ppi-api/node_modules/express/lib/express.js +0 -116
  211. package/ppi-api/node_modules/express/lib/middleware/init.js +0 -43
  212. package/ppi-api/node_modules/express/lib/middleware/query.js +0 -47
  213. package/ppi-api/node_modules/express/lib/request.js +0 -525
  214. package/ppi-api/node_modules/express/lib/response.js +0 -1179
  215. package/ppi-api/node_modules/express/lib/router/index.js +0 -673
  216. package/ppi-api/node_modules/express/lib/router/layer.js +0 -181
  217. package/ppi-api/node_modules/express/lib/router/route.js +0 -230
  218. package/ppi-api/node_modules/express/lib/utils.js +0 -303
  219. package/ppi-api/node_modules/express/lib/view.js +0 -182
  220. package/ppi-api/node_modules/express/package.json +0 -102
  221. package/ppi-api/node_modules/finalhandler/HISTORY.md +0 -210
  222. package/ppi-api/node_modules/finalhandler/LICENSE +0 -22
  223. package/ppi-api/node_modules/finalhandler/README.md +0 -147
  224. package/ppi-api/node_modules/finalhandler/SECURITY.md +0 -25
  225. package/ppi-api/node_modules/finalhandler/index.js +0 -341
  226. package/ppi-api/node_modules/finalhandler/package.json +0 -47
  227. package/ppi-api/node_modules/forwarded/HISTORY.md +0 -21
  228. package/ppi-api/node_modules/forwarded/LICENSE +0 -22
  229. package/ppi-api/node_modules/forwarded/README.md +0 -57
  230. package/ppi-api/node_modules/forwarded/index.js +0 -90
  231. package/ppi-api/node_modules/forwarded/package.json +0 -45
  232. package/ppi-api/node_modules/fresh/HISTORY.md +0 -70
  233. package/ppi-api/node_modules/fresh/LICENSE +0 -23
  234. package/ppi-api/node_modules/fresh/README.md +0 -119
  235. package/ppi-api/node_modules/fresh/index.js +0 -137
  236. package/ppi-api/node_modules/fresh/package.json +0 -46
  237. package/ppi-api/node_modules/function-bind/.eslintrc +0 -21
  238. package/ppi-api/node_modules/function-bind/.github/FUNDING.yml +0 -12
  239. package/ppi-api/node_modules/function-bind/.github/SECURITY.md +0 -3
  240. package/ppi-api/node_modules/function-bind/.nycrc +0 -13
  241. package/ppi-api/node_modules/function-bind/CHANGELOG.md +0 -136
  242. package/ppi-api/node_modules/function-bind/LICENSE +0 -20
  243. package/ppi-api/node_modules/function-bind/README.md +0 -46
  244. package/ppi-api/node_modules/function-bind/implementation.js +0 -84
  245. package/ppi-api/node_modules/function-bind/index.js +0 -5
  246. package/ppi-api/node_modules/function-bind/package.json +0 -87
  247. package/ppi-api/node_modules/function-bind/test/.eslintrc +0 -9
  248. package/ppi-api/node_modules/function-bind/test/index.js +0 -252
  249. package/ppi-api/node_modules/get-intrinsic/.eslintrc +0 -42
  250. package/ppi-api/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  251. package/ppi-api/node_modules/get-intrinsic/.nycrc +0 -9
  252. package/ppi-api/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  253. package/ppi-api/node_modules/get-intrinsic/LICENSE +0 -21
  254. package/ppi-api/node_modules/get-intrinsic/README.md +0 -71
  255. package/ppi-api/node_modules/get-intrinsic/index.js +0 -378
  256. package/ppi-api/node_modules/get-intrinsic/package.json +0 -97
  257. package/ppi-api/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  258. package/ppi-api/node_modules/get-proto/.eslintrc +0 -10
  259. package/ppi-api/node_modules/get-proto/.github/FUNDING.yml +0 -12
  260. package/ppi-api/node_modules/get-proto/.nycrc +0 -9
  261. package/ppi-api/node_modules/get-proto/CHANGELOG.md +0 -21
  262. package/ppi-api/node_modules/get-proto/LICENSE +0 -21
  263. package/ppi-api/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  264. package/ppi-api/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  265. package/ppi-api/node_modules/get-proto/README.md +0 -50
  266. package/ppi-api/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  267. package/ppi-api/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  268. package/ppi-api/node_modules/get-proto/index.d.ts +0 -5
  269. package/ppi-api/node_modules/get-proto/index.js +0 -27
  270. package/ppi-api/node_modules/get-proto/package.json +0 -81
  271. package/ppi-api/node_modules/get-proto/test/index.js +0 -68
  272. package/ppi-api/node_modules/get-proto/tsconfig.json +0 -9
  273. package/ppi-api/node_modules/gopd/.eslintrc +0 -16
  274. package/ppi-api/node_modules/gopd/.github/FUNDING.yml +0 -12
  275. package/ppi-api/node_modules/gopd/CHANGELOG.md +0 -45
  276. package/ppi-api/node_modules/gopd/LICENSE +0 -21
  277. package/ppi-api/node_modules/gopd/README.md +0 -40
  278. package/ppi-api/node_modules/gopd/gOPD.d.ts +0 -1
  279. package/ppi-api/node_modules/gopd/gOPD.js +0 -4
  280. package/ppi-api/node_modules/gopd/index.d.ts +0 -5
  281. package/ppi-api/node_modules/gopd/index.js +0 -15
  282. package/ppi-api/node_modules/gopd/package.json +0 -77
  283. package/ppi-api/node_modules/gopd/test/index.js +0 -36
  284. package/ppi-api/node_modules/gopd/tsconfig.json +0 -9
  285. package/ppi-api/node_modules/has-symbols/.eslintrc +0 -11
  286. package/ppi-api/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  287. package/ppi-api/node_modules/has-symbols/.nycrc +0 -9
  288. package/ppi-api/node_modules/has-symbols/CHANGELOG.md +0 -91
  289. package/ppi-api/node_modules/has-symbols/LICENSE +0 -21
  290. package/ppi-api/node_modules/has-symbols/README.md +0 -46
  291. package/ppi-api/node_modules/has-symbols/index.d.ts +0 -3
  292. package/ppi-api/node_modules/has-symbols/index.js +0 -14
  293. package/ppi-api/node_modules/has-symbols/package.json +0 -111
  294. package/ppi-api/node_modules/has-symbols/shams.d.ts +0 -3
  295. package/ppi-api/node_modules/has-symbols/shams.js +0 -45
  296. package/ppi-api/node_modules/has-symbols/test/index.js +0 -22
  297. package/ppi-api/node_modules/has-symbols/test/shams/core-js.js +0 -29
  298. package/ppi-api/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  299. package/ppi-api/node_modules/has-symbols/test/tests.js +0 -58
  300. package/ppi-api/node_modules/has-symbols/tsconfig.json +0 -10
  301. package/ppi-api/node_modules/hasown/.eslintrc +0 -5
  302. package/ppi-api/node_modules/hasown/.github/FUNDING.yml +0 -12
  303. package/ppi-api/node_modules/hasown/.nycrc +0 -13
  304. package/ppi-api/node_modules/hasown/CHANGELOG.md +0 -40
  305. package/ppi-api/node_modules/hasown/LICENSE +0 -21
  306. package/ppi-api/node_modules/hasown/README.md +0 -40
  307. package/ppi-api/node_modules/hasown/index.d.ts +0 -3
  308. package/ppi-api/node_modules/hasown/index.js +0 -8
  309. package/ppi-api/node_modules/hasown/package.json +0 -92
  310. package/ppi-api/node_modules/hasown/tsconfig.json +0 -6
  311. package/ppi-api/node_modules/http-errors/HISTORY.md +0 -180
  312. package/ppi-api/node_modules/http-errors/LICENSE +0 -23
  313. package/ppi-api/node_modules/http-errors/README.md +0 -169
  314. package/ppi-api/node_modules/http-errors/index.js +0 -289
  315. package/ppi-api/node_modules/http-errors/package.json +0 -50
  316. package/ppi-api/node_modules/iconv-lite/Changelog.md +0 -162
  317. package/ppi-api/node_modules/iconv-lite/LICENSE +0 -21
  318. package/ppi-api/node_modules/iconv-lite/README.md +0 -156
  319. package/ppi-api/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -555
  320. package/ppi-api/node_modules/iconv-lite/encodings/dbcs-data.js +0 -176
  321. package/ppi-api/node_modules/iconv-lite/encodings/index.js +0 -22
  322. package/ppi-api/node_modules/iconv-lite/encodings/internal.js +0 -188
  323. package/ppi-api/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -72
  324. package/ppi-api/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  325. package/ppi-api/node_modules/iconv-lite/encodings/sbcs-data.js +0 -174
  326. package/ppi-api/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  327. package/ppi-api/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  328. package/ppi-api/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  329. package/ppi-api/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  330. package/ppi-api/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  331. package/ppi-api/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  332. package/ppi-api/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -55
  333. package/ppi-api/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  334. package/ppi-api/node_modules/iconv-lite/encodings/utf16.js +0 -177
  335. package/ppi-api/node_modules/iconv-lite/encodings/utf7.js +0 -290
  336. package/ppi-api/node_modules/iconv-lite/lib/bom-handling.js +0 -52
  337. package/ppi-api/node_modules/iconv-lite/lib/extend-node.js +0 -217
  338. package/ppi-api/node_modules/iconv-lite/lib/index.d.ts +0 -24
  339. package/ppi-api/node_modules/iconv-lite/lib/index.js +0 -153
  340. package/ppi-api/node_modules/iconv-lite/lib/streams.js +0 -121
  341. package/ppi-api/node_modules/iconv-lite/package.json +0 -46
  342. package/ppi-api/node_modules/inherits/LICENSE +0 -16
  343. package/ppi-api/node_modules/inherits/README.md +0 -42
  344. package/ppi-api/node_modules/inherits/inherits.js +0 -9
  345. package/ppi-api/node_modules/inherits/inherits_browser.js +0 -27
  346. package/ppi-api/node_modules/inherits/package.json +0 -29
  347. package/ppi-api/node_modules/ipaddr.js/LICENSE +0 -19
  348. package/ppi-api/node_modules/ipaddr.js/README.md +0 -233
  349. package/ppi-api/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  350. package/ppi-api/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  351. package/ppi-api/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  352. package/ppi-api/node_modules/ipaddr.js/package.json +0 -35
  353. package/ppi-api/node_modules/math-intrinsics/.eslintrc +0 -16
  354. package/ppi-api/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  355. package/ppi-api/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  356. package/ppi-api/node_modules/math-intrinsics/LICENSE +0 -21
  357. package/ppi-api/node_modules/math-intrinsics/README.md +0 -50
  358. package/ppi-api/node_modules/math-intrinsics/abs.d.ts +0 -1
  359. package/ppi-api/node_modules/math-intrinsics/abs.js +0 -4
  360. package/ppi-api/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  361. package/ppi-api/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  362. package/ppi-api/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  363. package/ppi-api/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  364. package/ppi-api/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  365. package/ppi-api/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  366. package/ppi-api/node_modules/math-intrinsics/floor.d.ts +0 -1
  367. package/ppi-api/node_modules/math-intrinsics/floor.js +0 -4
  368. package/ppi-api/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  369. package/ppi-api/node_modules/math-intrinsics/isFinite.js +0 -12
  370. package/ppi-api/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  371. package/ppi-api/node_modules/math-intrinsics/isInteger.js +0 -16
  372. package/ppi-api/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  373. package/ppi-api/node_modules/math-intrinsics/isNaN.js +0 -6
  374. package/ppi-api/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  375. package/ppi-api/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  376. package/ppi-api/node_modules/math-intrinsics/max.d.ts +0 -1
  377. package/ppi-api/node_modules/math-intrinsics/max.js +0 -4
  378. package/ppi-api/node_modules/math-intrinsics/min.d.ts +0 -1
  379. package/ppi-api/node_modules/math-intrinsics/min.js +0 -4
  380. package/ppi-api/node_modules/math-intrinsics/mod.d.ts +0 -3
  381. package/ppi-api/node_modules/math-intrinsics/mod.js +0 -9
  382. package/ppi-api/node_modules/math-intrinsics/package.json +0 -86
  383. package/ppi-api/node_modules/math-intrinsics/pow.d.ts +0 -1
  384. package/ppi-api/node_modules/math-intrinsics/pow.js +0 -4
  385. package/ppi-api/node_modules/math-intrinsics/round.d.ts +0 -1
  386. package/ppi-api/node_modules/math-intrinsics/round.js +0 -4
  387. package/ppi-api/node_modules/math-intrinsics/sign.d.ts +0 -3
  388. package/ppi-api/node_modules/math-intrinsics/sign.js +0 -11
  389. package/ppi-api/node_modules/math-intrinsics/test/index.js +0 -192
  390. package/ppi-api/node_modules/math-intrinsics/tsconfig.json +0 -3
  391. package/ppi-api/node_modules/media-typer/HISTORY.md +0 -22
  392. package/ppi-api/node_modules/media-typer/LICENSE +0 -22
  393. package/ppi-api/node_modules/media-typer/README.md +0 -81
  394. package/ppi-api/node_modules/media-typer/index.js +0 -270
  395. package/ppi-api/node_modules/media-typer/package.json +0 -26
  396. package/ppi-api/node_modules/merge-descriptors/HISTORY.md +0 -21
  397. package/ppi-api/node_modules/merge-descriptors/LICENSE +0 -23
  398. package/ppi-api/node_modules/merge-descriptors/README.md +0 -49
  399. package/ppi-api/node_modules/merge-descriptors/index.js +0 -60
  400. package/ppi-api/node_modules/merge-descriptors/package.json +0 -39
  401. package/ppi-api/node_modules/methods/HISTORY.md +0 -29
  402. package/ppi-api/node_modules/methods/LICENSE +0 -24
  403. package/ppi-api/node_modules/methods/README.md +0 -51
  404. package/ppi-api/node_modules/methods/index.js +0 -69
  405. package/ppi-api/node_modules/methods/package.json +0 -36
  406. package/ppi-api/node_modules/mime/CHANGELOG.md +0 -164
  407. package/ppi-api/node_modules/mime/LICENSE +0 -21
  408. package/ppi-api/node_modules/mime/README.md +0 -90
  409. package/ppi-api/node_modules/mime/cli.js +0 -8
  410. package/ppi-api/node_modules/mime/mime.js +0 -108
  411. package/ppi-api/node_modules/mime/package.json +0 -44
  412. package/ppi-api/node_modules/mime/src/build.js +0 -53
  413. package/ppi-api/node_modules/mime/src/test.js +0 -60
  414. package/ppi-api/node_modules/mime/types.json +0 -1
  415. package/ppi-api/node_modules/mime-db/HISTORY.md +0 -507
  416. package/ppi-api/node_modules/mime-db/LICENSE +0 -23
  417. package/ppi-api/node_modules/mime-db/README.md +0 -100
  418. package/ppi-api/node_modules/mime-db/db.json +0 -8519
  419. package/ppi-api/node_modules/mime-db/index.js +0 -12
  420. package/ppi-api/node_modules/mime-db/package.json +0 -60
  421. package/ppi-api/node_modules/mime-types/HISTORY.md +0 -397
  422. package/ppi-api/node_modules/mime-types/LICENSE +0 -23
  423. package/ppi-api/node_modules/mime-types/README.md +0 -113
  424. package/ppi-api/node_modules/mime-types/index.js +0 -188
  425. package/ppi-api/node_modules/mime-types/package.json +0 -44
  426. package/ppi-api/node_modules/ms/index.js +0 -152
  427. package/ppi-api/node_modules/ms/license.md +0 -21
  428. package/ppi-api/node_modules/ms/package.json +0 -37
  429. package/ppi-api/node_modules/ms/readme.md +0 -51
  430. package/ppi-api/node_modules/negotiator/HISTORY.md +0 -108
  431. package/ppi-api/node_modules/negotiator/LICENSE +0 -24
  432. package/ppi-api/node_modules/negotiator/README.md +0 -203
  433. package/ppi-api/node_modules/negotiator/index.js +0 -82
  434. package/ppi-api/node_modules/negotiator/lib/charset.js +0 -169
  435. package/ppi-api/node_modules/negotiator/lib/encoding.js +0 -184
  436. package/ppi-api/node_modules/negotiator/lib/language.js +0 -179
  437. package/ppi-api/node_modules/negotiator/lib/mediaType.js +0 -294
  438. package/ppi-api/node_modules/negotiator/package.json +0 -42
  439. package/ppi-api/node_modules/object-assign/index.js +0 -90
  440. package/ppi-api/node_modules/object-assign/license +0 -21
  441. package/ppi-api/node_modules/object-assign/package.json +0 -42
  442. package/ppi-api/node_modules/object-assign/readme.md +0 -61
  443. package/ppi-api/node_modules/object-inspect/.eslintrc +0 -53
  444. package/ppi-api/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  445. package/ppi-api/node_modules/object-inspect/.nycrc +0 -13
  446. package/ppi-api/node_modules/object-inspect/CHANGELOG.md +0 -424
  447. package/ppi-api/node_modules/object-inspect/LICENSE +0 -21
  448. package/ppi-api/node_modules/object-inspect/example/all.js +0 -23
  449. package/ppi-api/node_modules/object-inspect/example/circular.js +0 -6
  450. package/ppi-api/node_modules/object-inspect/example/fn.js +0 -5
  451. package/ppi-api/node_modules/object-inspect/example/inspect.js +0 -10
  452. package/ppi-api/node_modules/object-inspect/index.js +0 -544
  453. package/ppi-api/node_modules/object-inspect/package-support.json +0 -20
  454. package/ppi-api/node_modules/object-inspect/package.json +0 -105
  455. package/ppi-api/node_modules/object-inspect/readme.markdown +0 -84
  456. package/ppi-api/node_modules/object-inspect/test/bigint.js +0 -58
  457. package/ppi-api/node_modules/object-inspect/test/browser/dom.js +0 -15
  458. package/ppi-api/node_modules/object-inspect/test/circular.js +0 -16
  459. package/ppi-api/node_modules/object-inspect/test/deep.js +0 -12
  460. package/ppi-api/node_modules/object-inspect/test/element.js +0 -53
  461. package/ppi-api/node_modules/object-inspect/test/err.js +0 -48
  462. package/ppi-api/node_modules/object-inspect/test/fakes.js +0 -29
  463. package/ppi-api/node_modules/object-inspect/test/fn.js +0 -76
  464. package/ppi-api/node_modules/object-inspect/test/global.js +0 -17
  465. package/ppi-api/node_modules/object-inspect/test/has.js +0 -15
  466. package/ppi-api/node_modules/object-inspect/test/holes.js +0 -15
  467. package/ppi-api/node_modules/object-inspect/test/indent-option.js +0 -271
  468. package/ppi-api/node_modules/object-inspect/test/inspect.js +0 -139
  469. package/ppi-api/node_modules/object-inspect/test/lowbyte.js +0 -12
  470. package/ppi-api/node_modules/object-inspect/test/number.js +0 -58
  471. package/ppi-api/node_modules/object-inspect/test/quoteStyle.js +0 -26
  472. package/ppi-api/node_modules/object-inspect/test/toStringTag.js +0 -40
  473. package/ppi-api/node_modules/object-inspect/test/undef.js +0 -12
  474. package/ppi-api/node_modules/object-inspect/test/values.js +0 -261
  475. package/ppi-api/node_modules/object-inspect/test-core-js.js +0 -26
  476. package/ppi-api/node_modules/object-inspect/util.inspect.js +0 -1
  477. package/ppi-api/node_modules/on-finished/HISTORY.md +0 -98
  478. package/ppi-api/node_modules/on-finished/LICENSE +0 -23
  479. package/ppi-api/node_modules/on-finished/README.md +0 -162
  480. package/ppi-api/node_modules/on-finished/index.js +0 -234
  481. package/ppi-api/node_modules/on-finished/package.json +0 -39
  482. package/ppi-api/node_modules/parseurl/HISTORY.md +0 -58
  483. package/ppi-api/node_modules/parseurl/LICENSE +0 -24
  484. package/ppi-api/node_modules/parseurl/README.md +0 -133
  485. package/ppi-api/node_modules/parseurl/index.js +0 -158
  486. package/ppi-api/node_modules/parseurl/package.json +0 -40
  487. package/ppi-api/node_modules/path-to-regexp/LICENSE +0 -21
  488. package/ppi-api/node_modules/path-to-regexp/Readme.md +0 -35
  489. package/ppi-api/node_modules/path-to-regexp/index.js +0 -156
  490. package/ppi-api/node_modules/path-to-regexp/package.json +0 -30
  491. package/ppi-api/node_modules/proxy-addr/HISTORY.md +0 -161
  492. package/ppi-api/node_modules/proxy-addr/LICENSE +0 -22
  493. package/ppi-api/node_modules/proxy-addr/README.md +0 -139
  494. package/ppi-api/node_modules/proxy-addr/index.js +0 -327
  495. package/ppi-api/node_modules/proxy-addr/package.json +0 -47
  496. package/ppi-api/node_modules/qs/.editorconfig +0 -46
  497. package/ppi-api/node_modules/qs/.eslintrc +0 -38
  498. package/ppi-api/node_modules/qs/.github/FUNDING.yml +0 -12
  499. package/ppi-api/node_modules/qs/.nycrc +0 -13
  500. package/ppi-api/node_modules/qs/CHANGELOG.md +0 -600
  501. package/ppi-api/node_modules/qs/LICENSE.md +0 -29
  502. package/ppi-api/node_modules/qs/README.md +0 -709
  503. package/ppi-api/node_modules/qs/dist/qs.js +0 -90
  504. package/ppi-api/node_modules/qs/lib/formats.js +0 -23
  505. package/ppi-api/node_modules/qs/lib/index.js +0 -11
  506. package/ppi-api/node_modules/qs/lib/parse.js +0 -296
  507. package/ppi-api/node_modules/qs/lib/stringify.js +0 -351
  508. package/ppi-api/node_modules/qs/lib/utils.js +0 -265
  509. package/ppi-api/node_modules/qs/package.json +0 -91
  510. package/ppi-api/node_modules/qs/test/empty-keys-cases.js +0 -267
  511. package/ppi-api/node_modules/qs/test/parse.js +0 -1170
  512. package/ppi-api/node_modules/qs/test/stringify.js +0 -1298
  513. package/ppi-api/node_modules/qs/test/utils.js +0 -136
  514. package/ppi-api/node_modules/range-parser/HISTORY.md +0 -56
  515. package/ppi-api/node_modules/range-parser/LICENSE +0 -23
  516. package/ppi-api/node_modules/range-parser/README.md +0 -84
  517. package/ppi-api/node_modules/range-parser/index.js +0 -162
  518. package/ppi-api/node_modules/range-parser/package.json +0 -44
  519. package/ppi-api/node_modules/raw-body/HISTORY.md +0 -308
  520. package/ppi-api/node_modules/raw-body/LICENSE +0 -22
  521. package/ppi-api/node_modules/raw-body/README.md +0 -223
  522. package/ppi-api/node_modules/raw-body/SECURITY.md +0 -24
  523. package/ppi-api/node_modules/raw-body/index.d.ts +0 -87
  524. package/ppi-api/node_modules/raw-body/index.js +0 -336
  525. package/ppi-api/node_modules/raw-body/package.json +0 -49
  526. package/ppi-api/node_modules/safe-buffer/LICENSE +0 -21
  527. package/ppi-api/node_modules/safe-buffer/README.md +0 -584
  528. package/ppi-api/node_modules/safe-buffer/index.d.ts +0 -187
  529. package/ppi-api/node_modules/safe-buffer/index.js +0 -65
  530. package/ppi-api/node_modules/safe-buffer/package.json +0 -51
  531. package/ppi-api/node_modules/safer-buffer/LICENSE +0 -21
  532. package/ppi-api/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  533. package/ppi-api/node_modules/safer-buffer/Readme.md +0 -156
  534. package/ppi-api/node_modules/safer-buffer/dangerous.js +0 -58
  535. package/ppi-api/node_modules/safer-buffer/package.json +0 -34
  536. package/ppi-api/node_modules/safer-buffer/safer.js +0 -77
  537. package/ppi-api/node_modules/safer-buffer/tests.js +0 -406
  538. package/ppi-api/node_modules/send/HISTORY.md +0 -526
  539. package/ppi-api/node_modules/send/LICENSE +0 -23
  540. package/ppi-api/node_modules/send/README.md +0 -327
  541. package/ppi-api/node_modules/send/SECURITY.md +0 -24
  542. package/ppi-api/node_modules/send/index.js +0 -1142
  543. package/ppi-api/node_modules/send/node_modules/encodeurl/HISTORY.md +0 -14
  544. package/ppi-api/node_modules/send/node_modules/encodeurl/LICENSE +0 -22
  545. package/ppi-api/node_modules/send/node_modules/encodeurl/README.md +0 -128
  546. package/ppi-api/node_modules/send/node_modules/encodeurl/index.js +0 -60
  547. package/ppi-api/node_modules/send/node_modules/encodeurl/package.json +0 -40
  548. package/ppi-api/node_modules/send/node_modules/ms/index.js +0 -162
  549. package/ppi-api/node_modules/send/node_modules/ms/license.md +0 -21
  550. package/ppi-api/node_modules/send/node_modules/ms/package.json +0 -38
  551. package/ppi-api/node_modules/send/node_modules/ms/readme.md +0 -59
  552. package/ppi-api/node_modules/send/package.json +0 -62
  553. package/ppi-api/node_modules/serve-static/HISTORY.md +0 -487
  554. package/ppi-api/node_modules/serve-static/LICENSE +0 -25
  555. package/ppi-api/node_modules/serve-static/README.md +0 -257
  556. package/ppi-api/node_modules/serve-static/index.js +0 -209
  557. package/ppi-api/node_modules/serve-static/package.json +0 -42
  558. package/ppi-api/node_modules/setprototypeof/LICENSE +0 -13
  559. package/ppi-api/node_modules/setprototypeof/README.md +0 -31
  560. package/ppi-api/node_modules/setprototypeof/index.d.ts +0 -2
  561. package/ppi-api/node_modules/setprototypeof/index.js +0 -17
  562. package/ppi-api/node_modules/setprototypeof/package.json +0 -38
  563. package/ppi-api/node_modules/setprototypeof/test/index.js +0 -24
  564. package/ppi-api/node_modules/side-channel/.editorconfig +0 -9
  565. package/ppi-api/node_modules/side-channel/.eslintrc +0 -12
  566. package/ppi-api/node_modules/side-channel/.github/FUNDING.yml +0 -12
  567. package/ppi-api/node_modules/side-channel/.nycrc +0 -13
  568. package/ppi-api/node_modules/side-channel/CHANGELOG.md +0 -110
  569. package/ppi-api/node_modules/side-channel/LICENSE +0 -21
  570. package/ppi-api/node_modules/side-channel/README.md +0 -61
  571. package/ppi-api/node_modules/side-channel/index.d.ts +0 -14
  572. package/ppi-api/node_modules/side-channel/index.js +0 -43
  573. package/ppi-api/node_modules/side-channel/package.json +0 -85
  574. package/ppi-api/node_modules/side-channel/test/index.js +0 -104
  575. package/ppi-api/node_modules/side-channel/tsconfig.json +0 -9
  576. package/ppi-api/node_modules/side-channel-list/.editorconfig +0 -9
  577. package/ppi-api/node_modules/side-channel-list/.eslintrc +0 -11
  578. package/ppi-api/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
  579. package/ppi-api/node_modules/side-channel-list/.nycrc +0 -13
  580. package/ppi-api/node_modules/side-channel-list/CHANGELOG.md +0 -15
  581. package/ppi-api/node_modules/side-channel-list/LICENSE +0 -21
  582. package/ppi-api/node_modules/side-channel-list/README.md +0 -62
  583. package/ppi-api/node_modules/side-channel-list/index.d.ts +0 -13
  584. package/ppi-api/node_modules/side-channel-list/index.js +0 -113
  585. package/ppi-api/node_modules/side-channel-list/list.d.ts +0 -14
  586. package/ppi-api/node_modules/side-channel-list/package.json +0 -77
  587. package/ppi-api/node_modules/side-channel-list/test/index.js +0 -104
  588. package/ppi-api/node_modules/side-channel-list/tsconfig.json +0 -9
  589. package/ppi-api/node_modules/side-channel-map/.editorconfig +0 -9
  590. package/ppi-api/node_modules/side-channel-map/.eslintrc +0 -11
  591. package/ppi-api/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
  592. package/ppi-api/node_modules/side-channel-map/.nycrc +0 -13
  593. package/ppi-api/node_modules/side-channel-map/CHANGELOG.md +0 -22
  594. package/ppi-api/node_modules/side-channel-map/LICENSE +0 -21
  595. package/ppi-api/node_modules/side-channel-map/README.md +0 -62
  596. package/ppi-api/node_modules/side-channel-map/index.d.ts +0 -15
  597. package/ppi-api/node_modules/side-channel-map/index.js +0 -68
  598. package/ppi-api/node_modules/side-channel-map/package.json +0 -80
  599. package/ppi-api/node_modules/side-channel-map/test/index.js +0 -114
  600. package/ppi-api/node_modules/side-channel-map/tsconfig.json +0 -9
  601. package/ppi-api/node_modules/side-channel-weakmap/.editorconfig +0 -9
  602. package/ppi-api/node_modules/side-channel-weakmap/.eslintrc +0 -12
  603. package/ppi-api/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
  604. package/ppi-api/node_modules/side-channel-weakmap/.nycrc +0 -13
  605. package/ppi-api/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
  606. package/ppi-api/node_modules/side-channel-weakmap/LICENSE +0 -21
  607. package/ppi-api/node_modules/side-channel-weakmap/README.md +0 -62
  608. package/ppi-api/node_modules/side-channel-weakmap/index.d.ts +0 -15
  609. package/ppi-api/node_modules/side-channel-weakmap/index.js +0 -84
  610. package/ppi-api/node_modules/side-channel-weakmap/package.json +0 -87
  611. package/ppi-api/node_modules/side-channel-weakmap/test/index.js +0 -114
  612. package/ppi-api/node_modules/side-channel-weakmap/tsconfig.json +0 -9
  613. package/ppi-api/node_modules/statuses/HISTORY.md +0 -82
  614. package/ppi-api/node_modules/statuses/LICENSE +0 -23
  615. package/ppi-api/node_modules/statuses/README.md +0 -136
  616. package/ppi-api/node_modules/statuses/codes.json +0 -65
  617. package/ppi-api/node_modules/statuses/index.js +0 -146
  618. package/ppi-api/node_modules/statuses/package.json +0 -49
  619. package/ppi-api/node_modules/toidentifier/HISTORY.md +0 -9
  620. package/ppi-api/node_modules/toidentifier/LICENSE +0 -21
  621. package/ppi-api/node_modules/toidentifier/README.md +0 -61
  622. package/ppi-api/node_modules/toidentifier/index.js +0 -32
  623. package/ppi-api/node_modules/toidentifier/package.json +0 -38
  624. package/ppi-api/node_modules/type-is/HISTORY.md +0 -259
  625. package/ppi-api/node_modules/type-is/LICENSE +0 -23
  626. package/ppi-api/node_modules/type-is/README.md +0 -170
  627. package/ppi-api/node_modules/type-is/index.js +0 -266
  628. package/ppi-api/node_modules/type-is/package.json +0 -45
  629. package/ppi-api/node_modules/unpipe/HISTORY.md +0 -4
  630. package/ppi-api/node_modules/unpipe/LICENSE +0 -22
  631. package/ppi-api/node_modules/unpipe/README.md +0 -43
  632. package/ppi-api/node_modules/unpipe/index.js +0 -69
  633. package/ppi-api/node_modules/unpipe/package.json +0 -27
  634. package/ppi-api/node_modules/utils-merge/LICENSE +0 -20
  635. package/ppi-api/node_modules/utils-merge/README.md +0 -34
  636. package/ppi-api/node_modules/utils-merge/index.js +0 -23
  637. package/ppi-api/node_modules/utils-merge/package.json +0 -40
  638. package/ppi-api/node_modules/vary/HISTORY.md +0 -39
  639. package/ppi-api/node_modules/vary/LICENSE +0 -22
  640. package/ppi-api/node_modules/vary/README.md +0 -101
  641. package/ppi-api/node_modules/vary/index.js +0 -149
  642. package/ppi-api/node_modules/vary/package.json +0 -43
@@ -1,1298 +0,0 @@
1
- 'use strict';
2
-
3
- var test = require('tape');
4
- var qs = require('../');
5
- var utils = require('../lib/utils');
6
- var iconv = require('iconv-lite');
7
- var SaferBuffer = require('safer-buffer').Buffer;
8
- var hasSymbols = require('has-symbols');
9
- var mockProperty = require('mock-property');
10
- var emptyTestCases = require('./empty-keys-cases').emptyTestCases;
11
- var hasBigInt = typeof BigInt === 'function';
12
-
13
- test('stringify()', function (t) {
14
- t.test('stringifies a querystring object', function (st) {
15
- st.equal(qs.stringify({ a: 'b' }), 'a=b');
16
- st.equal(qs.stringify({ a: 1 }), 'a=1');
17
- st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2');
18
- st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z');
19
- st.equal(qs.stringify({ a: '€' }), 'a=%E2%82%AC');
20
- st.equal(qs.stringify({ a: '' }), 'a=%EE%80%80');
21
- st.equal(qs.stringify({ a: 'א' }), 'a=%D7%90');
22
- st.equal(qs.stringify({ a: '𐐷' }), 'a=%F0%90%90%B7');
23
- st.end();
24
- });
25
-
26
- t.test('stringifies falsy values', function (st) {
27
- st.equal(qs.stringify(undefined), '');
28
- st.equal(qs.stringify(null), '');
29
- st.equal(qs.stringify(null, { strictNullHandling: true }), '');
30
- st.equal(qs.stringify(false), '');
31
- st.equal(qs.stringify(0), '');
32
- st.end();
33
- });
34
-
35
- t.test('stringifies symbols', { skip: !hasSymbols() }, function (st) {
36
- st.equal(qs.stringify(Symbol.iterator), '');
37
- st.equal(qs.stringify([Symbol.iterator]), '0=Symbol%28Symbol.iterator%29');
38
- st.equal(qs.stringify({ a: Symbol.iterator }), 'a=Symbol%28Symbol.iterator%29');
39
- st.equal(
40
- qs.stringify({ a: [Symbol.iterator] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }),
41
- 'a[]=Symbol%28Symbol.iterator%29'
42
- );
43
- st.end();
44
- });
45
-
46
- t.test('stringifies bigints', { skip: !hasBigInt }, function (st) {
47
- var three = BigInt(3);
48
- var encodeWithN = function (value, defaultEncoder, charset) {
49
- var result = defaultEncoder(value, defaultEncoder, charset);
50
- return typeof value === 'bigint' ? result + 'n' : result;
51
- };
52
- st.equal(qs.stringify(three), '');
53
- st.equal(qs.stringify([three]), '0=3');
54
- st.equal(qs.stringify([three], { encoder: encodeWithN }), '0=3n');
55
- st.equal(qs.stringify({ a: three }), 'a=3');
56
- st.equal(qs.stringify({ a: three }, { encoder: encodeWithN }), 'a=3n');
57
- st.equal(
58
- qs.stringify({ a: [three] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }),
59
- 'a[]=3'
60
- );
61
- st.equal(
62
- qs.stringify({ a: [three] }, { encodeValuesOnly: true, encoder: encodeWithN, arrayFormat: 'brackets' }),
63
- 'a[]=3n'
64
- );
65
- st.end();
66
- });
67
-
68
- t.test('encodes dot in key of object when encodeDotInKeys and allowDots is provided', function (st) {
69
- st.equal(
70
- qs.stringify(
71
- { 'name.obj': { first: 'John', last: 'Doe' } },
72
- { allowDots: false, encodeDotInKeys: false }
73
- ),
74
- 'name.obj%5Bfirst%5D=John&name.obj%5Blast%5D=Doe',
75
- 'with allowDots false and encodeDotInKeys false'
76
- );
77
- st.equal(
78
- qs.stringify(
79
- { 'name.obj': { first: 'John', last: 'Doe' } },
80
- { allowDots: true, encodeDotInKeys: false }
81
- ),
82
- 'name.obj.first=John&name.obj.last=Doe',
83
- 'with allowDots true and encodeDotInKeys false'
84
- );
85
- st.equal(
86
- qs.stringify(
87
- { 'name.obj': { first: 'John', last: 'Doe' } },
88
- { allowDots: false, encodeDotInKeys: true }
89
- ),
90
- 'name%252Eobj%5Bfirst%5D=John&name%252Eobj%5Blast%5D=Doe',
91
- 'with allowDots false and encodeDotInKeys true'
92
- );
93
- st.equal(
94
- qs.stringify(
95
- { 'name.obj': { first: 'John', last: 'Doe' } },
96
- { allowDots: true, encodeDotInKeys: true }
97
- ),
98
- 'name%252Eobj.first=John&name%252Eobj.last=Doe',
99
- 'with allowDots true and encodeDotInKeys true'
100
- );
101
-
102
- st.equal(
103
- qs.stringify(
104
- { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
105
- { allowDots: false, encodeDotInKeys: false }
106
- ),
107
- 'name.obj.subobject%5Bfirst.godly.name%5D=John&name.obj.subobject%5Blast%5D=Doe',
108
- 'with allowDots false and encodeDotInKeys false'
109
- );
110
- st.equal(
111
- qs.stringify(
112
- { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
113
- { allowDots: true, encodeDotInKeys: false }
114
- ),
115
- 'name.obj.subobject.first.godly.name=John&name.obj.subobject.last=Doe',
116
- 'with allowDots false and encodeDotInKeys false'
117
- );
118
- st.equal(
119
- qs.stringify(
120
- { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
121
- { allowDots: false, encodeDotInKeys: true }
122
- ),
123
- 'name%252Eobj%252Esubobject%5Bfirst.godly.name%5D=John&name%252Eobj%252Esubobject%5Blast%5D=Doe',
124
- 'with allowDots false and encodeDotInKeys true'
125
- );
126
- st.equal(
127
- qs.stringify(
128
- { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
129
- { allowDots: true, encodeDotInKeys: true }
130
- ),
131
- 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
132
- 'with allowDots true and encodeDotInKeys true'
133
- );
134
-
135
- st.end();
136
- });
137
-
138
- t.test('should encode dot in key of object, and automatically set allowDots to `true` when encodeDotInKeys is true and allowDots in undefined', function (st) {
139
- st.equal(
140
- qs.stringify(
141
- { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
142
- { encodeDotInKeys: true }
143
- ),
144
- 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
145
- 'with allowDots undefined and encodeDotInKeys true'
146
- );
147
- st.end();
148
- });
149
-
150
- t.test('should encode dot in key of object when encodeDotInKeys and allowDots is provided, and nothing else when encodeValuesOnly is provided', function (st) {
151
- st.equal(
152
- qs.stringify({ 'name.obj': { first: 'John', last: 'Doe' } }, {
153
- encodeDotInKeys: true, allowDots: true, encodeValuesOnly: true
154
- }),
155
- 'name%2Eobj.first=John&name%2Eobj.last=Doe'
156
- );
157
-
158
- st.equal(
159
- qs.stringify({ 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } }, { allowDots: true, encodeDotInKeys: true, encodeValuesOnly: true }),
160
- 'name%2Eobj%2Esubobject.first%2Egodly%2Ename=John&name%2Eobj%2Esubobject.last=Doe'
161
- );
162
-
163
- st.end();
164
- });
165
-
166
- t.test('throws when `commaRoundTrip` is not a boolean', function (st) {
167
- st['throws'](
168
- function () { qs.stringify({}, { commaRoundTrip: 'not a boolean' }); },
169
- TypeError,
170
- 'throws when `commaRoundTrip` is not a boolean'
171
- );
172
-
173
- st.end();
174
- });
175
-
176
- t.test('throws when `encodeDotInKeys` is not a boolean', function (st) {
177
- st['throws'](
178
- function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: 'foobar' }); },
179
- TypeError
180
- );
181
-
182
- st['throws'](
183
- function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: 0 }); },
184
- TypeError
185
- );
186
-
187
- st['throws'](
188
- function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: NaN }); },
189
- TypeError
190
- );
191
-
192
- st['throws'](
193
- function () { qs.stringify({ a: [], b: 'zz' }, { encodeDotInKeys: null }); },
194
- TypeError
195
- );
196
-
197
- st.end();
198
- });
199
-
200
- t.test('adds query prefix', function (st) {
201
- st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b');
202
- st.end();
203
- });
204
-
205
- t.test('with query prefix, outputs blank string given an empty object', function (st) {
206
- st.equal(qs.stringify({}, { addQueryPrefix: true }), '');
207
- st.end();
208
- });
209
-
210
- t.test('stringifies nested falsy values', function (st) {
211
- st.equal(qs.stringify({ a: { b: { c: null } } }), 'a%5Bb%5D%5Bc%5D=');
212
- st.equal(qs.stringify({ a: { b: { c: null } } }, { strictNullHandling: true }), 'a%5Bb%5D%5Bc%5D');
213
- st.equal(qs.stringify({ a: { b: { c: false } } }), 'a%5Bb%5D%5Bc%5D=false');
214
- st.end();
215
- });
216
-
217
- t.test('stringifies a nested object', function (st) {
218
- st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
219
- st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e');
220
- st.end();
221
- });
222
-
223
- t.test('`allowDots` option: stringifies a nested object with dots notation', function (st) {
224
- st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c');
225
- st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e');
226
- st.end();
227
- });
228
-
229
- t.test('stringifies an array value', function (st) {
230
- st.equal(
231
- qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'indices' }),
232
- 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
233
- 'indices => indices'
234
- );
235
- st.equal(
236
- qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'brackets' }),
237
- 'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d',
238
- 'brackets => brackets'
239
- );
240
- st.equal(
241
- qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'comma' }),
242
- 'a=b%2Cc%2Cd',
243
- 'comma => comma'
244
- );
245
- st.equal(
246
- qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'comma', commaRoundTrip: true }),
247
- 'a=b%2Cc%2Cd',
248
- 'comma round trip => comma'
249
- );
250
- st.equal(
251
- qs.stringify({ a: ['b', 'c', 'd'] }),
252
- 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
253
- 'default => indices'
254
- );
255
- st.end();
256
- });
257
-
258
- t.test('`skipNulls` option', function (st) {
259
- st.equal(
260
- qs.stringify({ a: 'b', c: null }, { skipNulls: true }),
261
- 'a=b',
262
- 'omits nulls when asked'
263
- );
264
-
265
- st.equal(
266
- qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }),
267
- 'a%5Bb%5D=c',
268
- 'omits nested nulls when asked'
269
- );
270
-
271
- st.end();
272
- });
273
-
274
- t.test('omits array indices when asked', function (st) {
275
- st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d');
276
-
277
- st.end();
278
- });
279
-
280
- t.test('omits object key/value pair when value is empty array', function (st) {
281
- st.equal(qs.stringify({ a: [], b: 'zz' }), 'b=zz');
282
-
283
- st.end();
284
- });
285
-
286
- t.test('should not omit object key/value pair when value is empty array and when asked', function (st) {
287
- st.equal(qs.stringify({ a: [], b: 'zz' }), 'b=zz');
288
- st.equal(qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: false }), 'b=zz');
289
- st.equal(qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: true }), 'a[]&b=zz');
290
-
291
- st.end();
292
- });
293
-
294
- t.test('should throw when allowEmptyArrays is not of type boolean', function (st) {
295
- st['throws'](
296
- function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: 'foobar' }); },
297
- TypeError
298
- );
299
-
300
- st['throws'](
301
- function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: 0 }); },
302
- TypeError
303
- );
304
-
305
- st['throws'](
306
- function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: NaN }); },
307
- TypeError
308
- );
309
-
310
- st['throws'](
311
- function () { qs.stringify({ a: [], b: 'zz' }, { allowEmptyArrays: null }); },
312
- TypeError
313
- );
314
-
315
- st.end();
316
- });
317
-
318
- t.test('allowEmptyArrays + strictNullHandling', function (st) {
319
- st.equal(
320
- qs.stringify(
321
- { testEmptyArray: [] },
322
- { strictNullHandling: true, allowEmptyArrays: true }
323
- ),
324
- 'testEmptyArray[]'
325
- );
326
-
327
- st.end();
328
- });
329
-
330
- t.test('stringifies an array value with one item vs multiple items', function (st) {
331
- st.test('non-array item', function (s2t) {
332
- s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a=c');
333
- s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a=c');
334
- s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c');
335
- s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true }), 'a=c');
336
-
337
- s2t.end();
338
- });
339
-
340
- st.test('array with a single item', function (s2t) {
341
- s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[0]=c');
342
- s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=c');
343
- s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c');
344
- s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'comma', commaRoundTrip: true }), 'a[]=c'); // so it parses back as an array
345
- s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true }), 'a[0]=c');
346
-
347
- s2t.end();
348
- });
349
-
350
- st.test('array with multiple items', function (s2t) {
351
- s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[0]=c&a[1]=d');
352
- s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=c&a[]=d');
353
- s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c,d');
354
- s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'comma', commaRoundTrip: true }), 'a=c,d');
355
- s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true }), 'a[0]=c&a[1]=d');
356
-
357
- s2t.end();
358
- });
359
-
360
- st.test('array with multiple items with a comma inside', function (s2t) {
361
- s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c%2Cd,e');
362
- s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { arrayFormat: 'comma' }), 'a=c%2Cd%2Ce');
363
-
364
- s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { encodeValuesOnly: true, arrayFormat: 'comma', commaRoundTrip: true }), 'a=c%2Cd,e');
365
- s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { arrayFormat: 'comma', commaRoundTrip: true }), 'a=c%2Cd%2Ce');
366
-
367
- s2t.end();
368
- });
369
-
370
- st.end();
371
- });
372
-
373
- t.test('stringifies a nested array value', function (st) {
374
- st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[b][0]=c&a[b][1]=d');
375
- st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[b][]=c&a[b][]=d');
376
- st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a[b]=c,d');
377
- st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true }), 'a[b][0]=c&a[b][1]=d');
378
- st.end();
379
- });
380
-
381
- t.test('stringifies comma and empty array values', function (st) {
382
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'indices' }), 'a[0]=,&a[1]=&a[2]=c,d%');
383
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'brackets' }), 'a[]=,&a[]=&a[]=c,d%');
384
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'comma' }), 'a=,,,c,d%');
385
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'repeat' }), 'a=,&a=&a=c,d%');
386
-
387
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[0]=%2C&a[1]=&a[2]=c%2Cd%25');
388
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=%2C&a[]=&a[]=c%2Cd%25');
389
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=%2C,,c%2Cd%25');
390
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a=%2C&a=&a=c%2Cd%25');
391
-
392
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'indices' }), 'a%5B0%5D=%2C&a%5B1%5D=&a%5B2%5D=c%2Cd%25');
393
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'brackets' }), 'a%5B%5D=%2C&a%5B%5D=&a%5B%5D=c%2Cd%25');
394
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'comma' }), 'a=%2C%2C%2Cc%2Cd%25');
395
- st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'repeat' }), 'a=%2C&a=&a=c%2Cd%25');
396
-
397
- st.end();
398
- });
399
-
400
- t.test('stringifies comma and empty non-array values', function (st) {
401
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'indices' }), 'a=,&b=&c=c,d%');
402
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'brackets' }), 'a=,&b=&c=c,d%');
403
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'comma' }), 'a=,&b=&c=c,d%');
404
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'repeat' }), 'a=,&b=&c=c,d%');
405
-
406
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'indices' }), 'a=%2C&b=&c=c%2Cd%25');
407
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a=%2C&b=&c=c%2Cd%25');
408
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=%2C&b=&c=c%2Cd%25');
409
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a=%2C&b=&c=c%2Cd%25');
410
-
411
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'indices' }), 'a=%2C&b=&c=c%2Cd%25');
412
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'brackets' }), 'a=%2C&b=&c=c%2Cd%25');
413
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'comma' }), 'a=%2C&b=&c=c%2Cd%25');
414
- st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'repeat' }), 'a=%2C&b=&c=c%2Cd%25');
415
-
416
- st.end();
417
- });
418
-
419
- t.test('stringifies a nested array value with dots notation', function (st) {
420
- st.equal(
421
- qs.stringify(
422
- { a: { b: ['c', 'd'] } },
423
- { allowDots: true, encodeValuesOnly: true, arrayFormat: 'indices' }
424
- ),
425
- 'a.b[0]=c&a.b[1]=d',
426
- 'indices: stringifies with dots + indices'
427
- );
428
- st.equal(
429
- qs.stringify(
430
- { a: { b: ['c', 'd'] } },
431
- { allowDots: true, encodeValuesOnly: true, arrayFormat: 'brackets' }
432
- ),
433
- 'a.b[]=c&a.b[]=d',
434
- 'brackets: stringifies with dots + brackets'
435
- );
436
- st.equal(
437
- qs.stringify(
438
- { a: { b: ['c', 'd'] } },
439
- { allowDots: true, encodeValuesOnly: true, arrayFormat: 'comma' }
440
- ),
441
- 'a.b=c,d',
442
- 'comma: stringifies with dots + comma'
443
- );
444
- st.equal(
445
- qs.stringify(
446
- { a: { b: ['c', 'd'] } },
447
- { allowDots: true, encodeValuesOnly: true }
448
- ),
449
- 'a.b[0]=c&a.b[1]=d',
450
- 'default: stringifies with dots + indices'
451
- );
452
- st.end();
453
- });
454
-
455
- t.test('stringifies an object inside an array', function (st) {
456
- st.equal(
457
- qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices', encodeValuesOnly: true }),
458
- 'a[0][b]=c',
459
- 'indices => indices'
460
- );
461
- st.equal(
462
- qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'repeat', encodeValuesOnly: true }),
463
- 'a[b]=c',
464
- 'repeat => repeat'
465
- );
466
- st.equal(
467
- qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets', encodeValuesOnly: true }),
468
- 'a[][b]=c',
469
- 'brackets => brackets'
470
- );
471
- st.equal(
472
- qs.stringify({ a: [{ b: 'c' }] }, { encodeValuesOnly: true }),
473
- 'a[0][b]=c',
474
- 'default => indices'
475
- );
476
-
477
- st.equal(
478
- qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices', encodeValuesOnly: true }),
479
- 'a[0][b][c][0]=1',
480
- 'indices => indices'
481
- );
482
- st.equal(
483
- qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'repeat', encodeValuesOnly: true }),
484
- 'a[b][c]=1',
485
- 'repeat => repeat'
486
- );
487
- st.equal(
488
- qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets', encodeValuesOnly: true }),
489
- 'a[][b][c][]=1',
490
- 'brackets => brackets'
491
- );
492
- st.equal(
493
- qs.stringify({ a: [{ b: { c: [1] } }] }, { encodeValuesOnly: true }),
494
- 'a[0][b][c][0]=1',
495
- 'default => indices'
496
- );
497
-
498
- st.end();
499
- });
500
-
501
- t.test('stringifies an array with mixed objects and primitives', function (st) {
502
- st.equal(
503
- qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'indices' }),
504
- 'a[0][b]=1&a[1]=2&a[2]=3',
505
- 'indices => indices'
506
- );
507
- st.equal(
508
- qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }),
509
- 'a[][b]=1&a[]=2&a[]=3',
510
- 'brackets => brackets'
511
- );
512
- st.equal(
513
- qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'comma' }),
514
- '???',
515
- 'brackets => brackets',
516
- { skip: 'TODO: figure out what this should do' }
517
- );
518
- st.equal(
519
- qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true }),
520
- 'a[0][b]=1&a[1]=2&a[2]=3',
521
- 'default => indices'
522
- );
523
-
524
- st.end();
525
- });
526
-
527
- t.test('stringifies an object inside an array with dots notation', function (st) {
528
- st.equal(
529
- qs.stringify(
530
- { a: [{ b: 'c' }] },
531
- { allowDots: true, encode: false, arrayFormat: 'indices' }
532
- ),
533
- 'a[0].b=c',
534
- 'indices => indices'
535
- );
536
- st.equal(
537
- qs.stringify(
538
- { a: [{ b: 'c' }] },
539
- { allowDots: true, encode: false, arrayFormat: 'brackets' }
540
- ),
541
- 'a[].b=c',
542
- 'brackets => brackets'
543
- );
544
- st.equal(
545
- qs.stringify(
546
- { a: [{ b: 'c' }] },
547
- { allowDots: true, encode: false }
548
- ),
549
- 'a[0].b=c',
550
- 'default => indices'
551
- );
552
-
553
- st.equal(
554
- qs.stringify(
555
- { a: [{ b: { c: [1] } }] },
556
- { allowDots: true, encode: false, arrayFormat: 'indices' }
557
- ),
558
- 'a[0].b.c[0]=1',
559
- 'indices => indices'
560
- );
561
- st.equal(
562
- qs.stringify(
563
- { a: [{ b: { c: [1] } }] },
564
- { allowDots: true, encode: false, arrayFormat: 'brackets' }
565
- ),
566
- 'a[].b.c[]=1',
567
- 'brackets => brackets'
568
- );
569
- st.equal(
570
- qs.stringify(
571
- { a: [{ b: { c: [1] } }] },
572
- { allowDots: true, encode: false }
573
- ),
574
- 'a[0].b.c[0]=1',
575
- 'default => indices'
576
- );
577
-
578
- st.end();
579
- });
580
-
581
- t.test('does not omit object keys when indices = false', function (st) {
582
- st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c');
583
- st.end();
584
- });
585
-
586
- t.test('uses indices notation for arrays when indices=true', function (st) {
587
- st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c');
588
- st.end();
589
- });
590
-
591
- t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) {
592
- st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c');
593
- st.end();
594
- });
595
-
596
- t.test('uses indices notation for arrays when arrayFormat=indices', function (st) {
597
- st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c');
598
- st.end();
599
- });
600
-
601
- t.test('uses repeat notation for arrays when arrayFormat=repeat', function (st) {
602
- st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c');
603
- st.end();
604
- });
605
-
606
- t.test('uses brackets notation for arrays when arrayFormat=brackets', function (st) {
607
- st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c');
608
- st.end();
609
- });
610
-
611
- t.test('stringifies a complicated object', function (st) {
612
- st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e');
613
- st.end();
614
- });
615
-
616
- t.test('stringifies an empty value', function (st) {
617
- st.equal(qs.stringify({ a: '' }), 'a=');
618
- st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a');
619
-
620
- st.equal(qs.stringify({ a: '', b: '' }), 'a=&b=');
621
- st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b=');
622
-
623
- st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D=');
624
- st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D');
625
- st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D=');
626
-
627
- st.end();
628
- });
629
-
630
- t.test('stringifies an empty array in different arrayFormat', function (st) {
631
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false }), 'b[0]=&c=c');
632
- // arrayFormat default
633
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices' }), 'b[0]=&c=c');
634
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets' }), 'b[]=&c=c');
635
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat' }), 'b=&c=c');
636
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma' }), 'b=&c=c');
637
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', commaRoundTrip: true }), 'b[]=&c=c');
638
- // with strictNullHandling
639
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices', strictNullHandling: true }), 'b[0]&c=c');
640
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets', strictNullHandling: true }), 'b[]&c=c');
641
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat', strictNullHandling: true }), 'b&c=c');
642
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', strictNullHandling: true }), 'b&c=c');
643
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', strictNullHandling: true, commaRoundTrip: true }), 'b[]&c=c');
644
- // with skipNulls
645
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices', skipNulls: true }), 'c=c');
646
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets', skipNulls: true }), 'c=c');
647
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat', skipNulls: true }), 'c=c');
648
- st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', skipNulls: true }), 'c=c');
649
-
650
- st.end();
651
- });
652
-
653
- t.test('stringifies a null object', { skip: !Object.create }, function (st) {
654
- var obj = Object.create(null);
655
- obj.a = 'b';
656
- st.equal(qs.stringify(obj), 'a=b');
657
- st.end();
658
- });
659
-
660
- t.test('returns an empty string for invalid input', function (st) {
661
- st.equal(qs.stringify(undefined), '');
662
- st.equal(qs.stringify(false), '');
663
- st.equal(qs.stringify(null), '');
664
- st.equal(qs.stringify(''), '');
665
- st.end();
666
- });
667
-
668
- t.test('stringifies an object with a null object as a child', { skip: !Object.create }, function (st) {
669
- var obj = { a: Object.create(null) };
670
-
671
- obj.a.b = 'c';
672
- st.equal(qs.stringify(obj), 'a%5Bb%5D=c');
673
- st.end();
674
- });
675
-
676
- t.test('drops keys with a value of undefined', function (st) {
677
- st.equal(qs.stringify({ a: undefined }), '');
678
-
679
- st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D');
680
- st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D=');
681
- st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D=');
682
- st.end();
683
- });
684
-
685
- t.test('url encodes values', function (st) {
686
- st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c');
687
- st.end();
688
- });
689
-
690
- t.test('stringifies a date', function (st) {
691
- var now = new Date();
692
- var str = 'a=' + encodeURIComponent(now.toISOString());
693
- st.equal(qs.stringify({ a: now }), str);
694
- st.end();
695
- });
696
-
697
- t.test('stringifies the weird object from qs', function (st) {
698
- st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F');
699
- st.end();
700
- });
701
-
702
- t.test('skips properties that are part of the object prototype', function (st) {
703
- st.intercept(Object.prototype, 'crash', { value: 'test' });
704
-
705
- st.equal(qs.stringify({ a: 'b' }), 'a=b');
706
- st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
707
-
708
- st.end();
709
- });
710
-
711
- t.test('stringifies boolean values', function (st) {
712
- st.equal(qs.stringify({ a: true }), 'a=true');
713
- st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true');
714
- st.equal(qs.stringify({ b: false }), 'b=false');
715
- st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false');
716
- st.end();
717
- });
718
-
719
- t.test('stringifies buffer values', function (st) {
720
- st.equal(qs.stringify({ a: SaferBuffer.from('test') }), 'a=test');
721
- st.equal(qs.stringify({ a: { b: SaferBuffer.from('test') } }), 'a%5Bb%5D=test');
722
- st.end();
723
- });
724
-
725
- t.test('stringifies an object using an alternative delimiter', function (st) {
726
- st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d');
727
- st.end();
728
- });
729
-
730
- t.test('does not blow up when Buffer global is missing', function (st) {
731
- var restore = mockProperty(global, 'Buffer', { 'delete': true });
732
-
733
- var result = qs.stringify({ a: 'b', c: 'd' });
734
-
735
- restore();
736
-
737
- st.equal(result, 'a=b&c=d');
738
- st.end();
739
- });
740
-
741
- t.test('does not crash when parsing circular references', function (st) {
742
- var a = {};
743
- a.b = a;
744
-
745
- st['throws'](
746
- function () { qs.stringify({ 'foo[bar]': 'baz', 'foo[baz]': a }); },
747
- /RangeError: Cyclic object value/,
748
- 'cyclic values throw'
749
- );
750
-
751
- var circular = {
752
- a: 'value'
753
- };
754
- circular.a = circular;
755
- st['throws'](
756
- function () { qs.stringify(circular); },
757
- /RangeError: Cyclic object value/,
758
- 'cyclic values throw'
759
- );
760
-
761
- var arr = ['a'];
762
- st.doesNotThrow(
763
- function () { qs.stringify({ x: arr, y: arr }); },
764
- 'non-cyclic values do not throw'
765
- );
766
-
767
- st.end();
768
- });
769
-
770
- t.test('non-circular duplicated references can still work', function (st) {
771
- var hourOfDay = {
772
- 'function': 'hour_of_day'
773
- };
774
-
775
- var p1 = {
776
- 'function': 'gte',
777
- arguments: [hourOfDay, 0]
778
- };
779
- var p2 = {
780
- 'function': 'lte',
781
- arguments: [hourOfDay, 23]
782
- };
783
-
784
- st.equal(
785
- qs.stringify({ filters: { $and: [p1, p2] } }, { encodeValuesOnly: true, arrayFormat: 'indices' }),
786
- 'filters[$and][0][function]=gte&filters[$and][0][arguments][0][function]=hour_of_day&filters[$and][0][arguments][1]=0&filters[$and][1][function]=lte&filters[$and][1][arguments][0][function]=hour_of_day&filters[$and][1][arguments][1]=23'
787
- );
788
- st.equal(
789
- qs.stringify({ filters: { $and: [p1, p2] } }, { encodeValuesOnly: true, arrayFormat: 'brackets' }),
790
- 'filters[$and][][function]=gte&filters[$and][][arguments][][function]=hour_of_day&filters[$and][][arguments][]=0&filters[$and][][function]=lte&filters[$and][][arguments][][function]=hour_of_day&filters[$and][][arguments][]=23'
791
- );
792
- st.equal(
793
- qs.stringify({ filters: { $and: [p1, p2] } }, { encodeValuesOnly: true, arrayFormat: 'repeat' }),
794
- 'filters[$and][function]=gte&filters[$and][arguments][function]=hour_of_day&filters[$and][arguments]=0&filters[$and][function]=lte&filters[$and][arguments][function]=hour_of_day&filters[$and][arguments]=23'
795
- );
796
-
797
- st.end();
798
- });
799
-
800
- t.test('selects properties when filter=array', function (st) {
801
- st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b');
802
- st.equal(qs.stringify({ a: 1 }, { filter: [] }), '');
803
-
804
- st.equal(
805
- qs.stringify(
806
- { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
807
- { filter: ['a', 'b', 0, 2], arrayFormat: 'indices' }
808
- ),
809
- 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3',
810
- 'indices => indices'
811
- );
812
- st.equal(
813
- qs.stringify(
814
- { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
815
- { filter: ['a', 'b', 0, 2], arrayFormat: 'brackets' }
816
- ),
817
- 'a%5Bb%5D%5B%5D=1&a%5Bb%5D%5B%5D=3',
818
- 'brackets => brackets'
819
- );
820
- st.equal(
821
- qs.stringify(
822
- { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
823
- { filter: ['a', 'b', 0, 2] }
824
- ),
825
- 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3',
826
- 'default => indices'
827
- );
828
-
829
- st.end();
830
- });
831
-
832
- t.test('supports custom representations when filter=function', function (st) {
833
- var calls = 0;
834
- var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } };
835
- var filterFunc = function (prefix, value) {
836
- calls += 1;
837
- if (calls === 1) {
838
- st.equal(prefix, '', 'prefix is empty');
839
- st.equal(value, obj);
840
- } else if (prefix === 'c') {
841
- return void 0;
842
- } else if (value instanceof Date) {
843
- st.equal(prefix, 'e[f]');
844
- return value.getTime();
845
- }
846
- return value;
847
- };
848
-
849
- st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000');
850
- st.equal(calls, 5);
851
- st.end();
852
- });
853
-
854
- t.test('can disable uri encoding', function (st) {
855
- st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b');
856
- st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c');
857
- st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c');
858
- st.end();
859
- });
860
-
861
- t.test('can sort the keys', function (st) {
862
- var sort = function (a, b) {
863
- return a.localeCompare(b);
864
- };
865
- st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y');
866
- st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a');
867
- st.end();
868
- });
869
-
870
- t.test('can sort the keys at depth 3 or more too', function (st) {
871
- var sort = function (a, b) {
872
- return a.localeCompare(b);
873
- };
874
- st.equal(
875
- qs.stringify(
876
- { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' },
877
- { sort: sort, encode: false }
878
- ),
879
- 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb'
880
- );
881
- st.equal(
882
- qs.stringify(
883
- { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' },
884
- { sort: null, encode: false }
885
- ),
886
- 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b'
887
- );
888
- st.end();
889
- });
890
-
891
- t.test('can stringify with custom encoding', function (st) {
892
- st.equal(qs.stringify({ 県: '大阪府', '': '' }, {
893
- encoder: function (str) {
894
- if (str.length === 0) {
895
- return '';
896
- }
897
- var buf = iconv.encode(str, 'shiftjis');
898
- var result = [];
899
- for (var i = 0; i < buf.length; ++i) {
900
- result.push(buf.readUInt8(i).toString(16));
901
- }
902
- return '%' + result.join('%');
903
- }
904
- }), '%8c%a7=%91%e5%8d%e3%95%7b&=');
905
- st.end();
906
- });
907
-
908
- t.test('receives the default encoder as a second argument', function (st) {
909
- st.plan(8);
910
-
911
- qs.stringify({ a: 1, b: new Date(), c: true, d: [1] }, {
912
- encoder: function (str) {
913
- st.match(typeof str, /^(?:string|number|boolean)$/);
914
- return '';
915
- }
916
- });
917
-
918
- st.end();
919
- });
920
-
921
- t.test('receives the default encoder as a second argument', function (st) {
922
- st.plan(2);
923
-
924
- qs.stringify({ a: 1 }, {
925
- encoder: function (str, defaultEncoder) {
926
- st.equal(defaultEncoder, utils.encode);
927
- }
928
- });
929
-
930
- st.end();
931
- });
932
-
933
- t.test('throws error with wrong encoder', function (st) {
934
- st['throws'](function () {
935
- qs.stringify({}, { encoder: 'string' });
936
- }, new TypeError('Encoder has to be a function.'));
937
- st.end();
938
- });
939
-
940
- t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) {
941
- st.equal(qs.stringify({ a: SaferBuffer.from([1]) }, {
942
- encoder: function (buffer) {
943
- if (typeof buffer === 'string') {
944
- return buffer;
945
- }
946
- return String.fromCharCode(buffer.readUInt8(0) + 97);
947
- }
948
- }), 'a=b');
949
-
950
- st.equal(qs.stringify({ a: SaferBuffer.from('a b') }, {
951
- encoder: function (buffer) {
952
- return buffer;
953
- }
954
- }), 'a=a b');
955
- st.end();
956
- });
957
-
958
- t.test('serializeDate option', function (st) {
959
- var date = new Date();
960
- st.equal(
961
- qs.stringify({ a: date }),
962
- 'a=' + date.toISOString().replace(/:/g, '%3A'),
963
- 'default is toISOString'
964
- );
965
-
966
- var mutatedDate = new Date();
967
- mutatedDate.toISOString = function () {
968
- throw new SyntaxError();
969
- };
970
- st['throws'](function () {
971
- mutatedDate.toISOString();
972
- }, SyntaxError);
973
- st.equal(
974
- qs.stringify({ a: mutatedDate }),
975
- 'a=' + Date.prototype.toISOString.call(mutatedDate).replace(/:/g, '%3A'),
976
- 'toISOString works even when method is not locally present'
977
- );
978
-
979
- var specificDate = new Date(6);
980
- st.equal(
981
- qs.stringify(
982
- { a: specificDate },
983
- { serializeDate: function (d) { return d.getTime() * 7; } }
984
- ),
985
- 'a=42',
986
- 'custom serializeDate function called'
987
- );
988
-
989
- st.equal(
990
- qs.stringify(
991
- { a: [date] },
992
- {
993
- serializeDate: function (d) { return d.getTime(); },
994
- arrayFormat: 'comma'
995
- }
996
- ),
997
- 'a=' + date.getTime(),
998
- 'works with arrayFormat comma'
999
- );
1000
- st.equal(
1001
- qs.stringify(
1002
- { a: [date] },
1003
- {
1004
- serializeDate: function (d) { return d.getTime(); },
1005
- arrayFormat: 'comma',
1006
- commaRoundTrip: true
1007
- }
1008
- ),
1009
- 'a%5B%5D=' + date.getTime(),
1010
- 'works with arrayFormat comma'
1011
- );
1012
-
1013
- st.end();
1014
- });
1015
-
1016
- t.test('RFC 1738 serialization', function (st) {
1017
- st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC1738 }), 'a=b+c');
1018
- st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC1738 }), 'a+b=c+d');
1019
- st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }, { format: qs.formats.RFC1738 }), 'a+b=a+b');
1020
-
1021
- st.equal(qs.stringify({ 'foo(ref)': 'bar' }, { format: qs.formats.RFC1738 }), 'foo(ref)=bar');
1022
-
1023
- st.end();
1024
- });
1025
-
1026
- t.test('RFC 3986 spaces serialization', function (st) {
1027
- st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC3986 }), 'a=b%20c');
1028
- st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC3986 }), 'a%20b=c%20d');
1029
- st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }, { format: qs.formats.RFC3986 }), 'a%20b=a%20b');
1030
-
1031
- st.end();
1032
- });
1033
-
1034
- t.test('Backward compatibility to RFC 3986', function (st) {
1035
- st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c');
1036
- st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }), 'a%20b=a%20b');
1037
-
1038
- st.end();
1039
- });
1040
-
1041
- t.test('Edge cases and unknown formats', function (st) {
1042
- ['UFO1234', false, 1234, null, {}, []].forEach(function (format) {
1043
- st['throws'](
1044
- function () {
1045
- qs.stringify({ a: 'b c' }, { format: format });
1046
- },
1047
- new TypeError('Unknown format option provided.')
1048
- );
1049
- });
1050
- st.end();
1051
- });
1052
-
1053
- t.test('encodeValuesOnly', function (st) {
1054
- st.equal(
1055
- qs.stringify(
1056
- { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] },
1057
- { encodeValuesOnly: true, arrayFormat: 'indices' }
1058
- ),
1059
- 'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h',
1060
- 'encodeValuesOnly + indices'
1061
- );
1062
- st.equal(
1063
- qs.stringify(
1064
- { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] },
1065
- { encodeValuesOnly: true, arrayFormat: 'brackets' }
1066
- ),
1067
- 'a=b&c[]=d&c[]=e%3Df&f[][]=g&f[][]=h',
1068
- 'encodeValuesOnly + brackets'
1069
- );
1070
- st.equal(
1071
- qs.stringify(
1072
- { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] },
1073
- { encodeValuesOnly: true, arrayFormat: 'repeat' }
1074
- ),
1075
- 'a=b&c=d&c=e%3Df&f=g&f=h',
1076
- 'encodeValuesOnly + repeat'
1077
- );
1078
-
1079
- st.equal(
1080
- qs.stringify(
1081
- { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] },
1082
- { arrayFormat: 'indices' }
1083
- ),
1084
- 'a=b&c%5B0%5D=d&c%5B1%5D=e&f%5B0%5D%5B0%5D=g&f%5B1%5D%5B0%5D=h',
1085
- 'no encodeValuesOnly + indices'
1086
- );
1087
- st.equal(
1088
- qs.stringify(
1089
- { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] },
1090
- { arrayFormat: 'brackets' }
1091
- ),
1092
- 'a=b&c%5B%5D=d&c%5B%5D=e&f%5B%5D%5B%5D=g&f%5B%5D%5B%5D=h',
1093
- 'no encodeValuesOnly + brackets'
1094
- );
1095
- st.equal(
1096
- qs.stringify(
1097
- { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] },
1098
- { arrayFormat: 'repeat' }
1099
- ),
1100
- 'a=b&c=d&c=e&f=g&f=h',
1101
- 'no encodeValuesOnly + repeat'
1102
- );
1103
-
1104
- st.end();
1105
- });
1106
-
1107
- t.test('encodeValuesOnly - strictNullHandling', function (st) {
1108
- st.equal(
1109
- qs.stringify(
1110
- { a: { b: null } },
1111
- { encodeValuesOnly: true, strictNullHandling: true }
1112
- ),
1113
- 'a[b]'
1114
- );
1115
- st.end();
1116
- });
1117
-
1118
- t.test('throws if an invalid charset is specified', function (st) {
1119
- st['throws'](function () {
1120
- qs.stringify({ a: 'b' }, { charset: 'foobar' });
1121
- }, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'));
1122
- st.end();
1123
- });
1124
-
1125
- t.test('respects a charset of iso-8859-1', function (st) {
1126
- st.equal(qs.stringify({ æ: 'æ' }, { charset: 'iso-8859-1' }), '%E6=%E6');
1127
- st.end();
1128
- });
1129
-
1130
- t.test('encodes unrepresentable chars as numeric entities in iso-8859-1 mode', function (st) {
1131
- st.equal(qs.stringify({ a: '☺' }, { charset: 'iso-8859-1' }), 'a=%26%239786%3B');
1132
- st.end();
1133
- });
1134
-
1135
- t.test('respects an explicit charset of utf-8 (the default)', function (st) {
1136
- st.equal(qs.stringify({ a: 'æ' }, { charset: 'utf-8' }), 'a=%C3%A6');
1137
- st.end();
1138
- });
1139
-
1140
- t.test('`charsetSentinel` option', function (st) {
1141
- st.equal(
1142
- qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'utf-8' }),
1143
- 'utf8=%E2%9C%93&a=%C3%A6',
1144
- 'adds the right sentinel when instructed to and the charset is utf-8'
1145
- );
1146
-
1147
- st.equal(
1148
- qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'iso-8859-1' }),
1149
- 'utf8=%26%2310003%3B&a=%E6',
1150
- 'adds the right sentinel when instructed to and the charset is iso-8859-1'
1151
- );
1152
-
1153
- st.end();
1154
- });
1155
-
1156
- t.test('does not mutate the options argument', function (st) {
1157
- var options = {};
1158
- qs.stringify({}, options);
1159
- st.deepEqual(options, {});
1160
- st.end();
1161
- });
1162
-
1163
- t.test('strictNullHandling works with custom filter', function (st) {
1164
- var filter = function (prefix, value) {
1165
- return value;
1166
- };
1167
-
1168
- var options = { strictNullHandling: true, filter: filter };
1169
- st.equal(qs.stringify({ key: null }, options), 'key');
1170
- st.end();
1171
- });
1172
-
1173
- t.test('strictNullHandling works with null serializeDate', function (st) {
1174
- var serializeDate = function () {
1175
- return null;
1176
- };
1177
- var options = { strictNullHandling: true, serializeDate: serializeDate };
1178
- var date = new Date();
1179
- st.equal(qs.stringify({ key: date }, options), 'key');
1180
- st.end();
1181
- });
1182
-
1183
- t.test('allows for encoding keys and values differently', function (st) {
1184
- var encoder = function (str, defaultEncoder, charset, type) {
1185
- if (type === 'key') {
1186
- return defaultEncoder(str, defaultEncoder, charset, type).toLowerCase();
1187
- }
1188
- if (type === 'value') {
1189
- return defaultEncoder(str, defaultEncoder, charset, type).toUpperCase();
1190
- }
1191
- throw 'this should never happen! type: ' + type;
1192
- };
1193
-
1194
- st.deepEqual(qs.stringify({ KeY: 'vAlUe' }, { encoder: encoder }), 'key=VALUE');
1195
- st.end();
1196
- });
1197
-
1198
- t.test('objects inside arrays', function (st) {
1199
- var obj = { a: { b: { c: 'd', e: 'f' } } };
1200
- var withArray = { a: { b: [{ c: 'd', e: 'f' }] } };
1201
-
1202
- st.equal(qs.stringify(obj, { encode: false }), 'a[b][c]=d&a[b][e]=f', 'no array, no arrayFormat');
1203
- st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'brackets' }), 'a[b][c]=d&a[b][e]=f', 'no array, bracket');
1204
- st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'indices' }), 'a[b][c]=d&a[b][e]=f', 'no array, indices');
1205
- st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'repeat' }), 'a[b][c]=d&a[b][e]=f', 'no array, repeat');
1206
- st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'comma' }), 'a[b][c]=d&a[b][e]=f', 'no array, comma');
1207
-
1208
- st.equal(qs.stringify(withArray, { encode: false }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, no arrayFormat');
1209
- st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'brackets' }), 'a[b][][c]=d&a[b][][e]=f', 'array, bracket');
1210
- st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'indices' }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, indices');
1211
- st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'repeat' }), 'a[b][c]=d&a[b][e]=f', 'array, repeat');
1212
- st.equal(
1213
- qs.stringify(withArray, { encode: false, arrayFormat: 'comma' }),
1214
- '???',
1215
- 'array, comma',
1216
- { skip: 'TODO: figure out what this should do' }
1217
- );
1218
-
1219
- st.end();
1220
- });
1221
-
1222
- t.test('stringifies sparse arrays', function (st) {
1223
- /* eslint no-sparse-arrays: 0 */
1224
- st.equal(qs.stringify({ a: [, '2', , , '1'] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1]=2&a[4]=1');
1225
- st.equal(qs.stringify({ a: [, '2', , , '1'] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=2&a[]=1');
1226
- st.equal(qs.stringify({ a: [, '2', , , '1'] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a=2&a=1');
1227
-
1228
- st.equal(qs.stringify({ a: [, { b: [, , { c: '1' }] }] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1][b][2][c]=1');
1229
- st.equal(qs.stringify({ a: [, { b: [, , { c: '1' }] }] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[][b][][c]=1');
1230
- st.equal(qs.stringify({ a: [, { b: [, , { c: '1' }] }] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a[b][c]=1');
1231
-
1232
- st.equal(qs.stringify({ a: [, [, , [, , , { c: '1' }]]] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1][2][3][c]=1');
1233
- st.equal(qs.stringify({ a: [, [, , [, , , { c: '1' }]]] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[][][][c]=1');
1234
- st.equal(qs.stringify({ a: [, [, , [, , , { c: '1' }]]] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a[c]=1');
1235
-
1236
- st.equal(qs.stringify({ a: [, [, , [, , , { c: [, '1'] }]]] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[1][2][3][c][1]=1');
1237
- st.equal(qs.stringify({ a: [, [, , [, , , { c: [, '1'] }]]] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[][][][c][]=1');
1238
- st.equal(qs.stringify({ a: [, [, , [, , , { c: [, '1'] }]]] }, { encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a[c]=1');
1239
-
1240
- st.end();
1241
- });
1242
-
1243
- t.test('encodes a very long string', function (st) {
1244
- var chars = [];
1245
- var expected = [];
1246
- for (var i = 0; i < 5e3; i++) {
1247
- chars.push(' ' + i);
1248
-
1249
- expected.push('%20' + i);
1250
- }
1251
-
1252
- var obj = {
1253
- foo: chars.join('')
1254
- };
1255
-
1256
- st.equal(
1257
- qs.stringify(obj, { arrayFormat: 'bracket', charset: 'utf-8' }),
1258
- 'foo=' + expected.join('')
1259
- );
1260
-
1261
- st.end();
1262
- });
1263
-
1264
- t.end();
1265
- });
1266
-
1267
- test('stringifies empty keys', function (t) {
1268
- emptyTestCases.forEach(function (testCase) {
1269
- t.test('stringifies an object with empty string key with ' + testCase.input, function (st) {
1270
- st.deepEqual(
1271
- qs.stringify(testCase.withEmptyKeys, { encode: false, arrayFormat: 'indices' }),
1272
- testCase.stringifyOutput.indices,
1273
- 'test case: ' + testCase.input + ', indices'
1274
- );
1275
- st.deepEqual(
1276
- qs.stringify(testCase.withEmptyKeys, { encode: false, arrayFormat: 'brackets' }),
1277
- testCase.stringifyOutput.brackets,
1278
- 'test case: ' + testCase.input + ', brackets'
1279
- );
1280
- st.deepEqual(
1281
- qs.stringify(testCase.withEmptyKeys, { encode: false, arrayFormat: 'repeat' }),
1282
- testCase.stringifyOutput.repeat,
1283
- 'test case: ' + testCase.input + ', repeat'
1284
- );
1285
-
1286
- st.end();
1287
- });
1288
- });
1289
-
1290
- t.test('edge case with object/arrays', function (st) {
1291
- st.deepEqual(qs.stringify({ '': { '': [2, 3] } }, { encode: false }), '[][0]=2&[][1]=3');
1292
- st.deepEqual(qs.stringify({ '': { '': [2, 3], a: 2 } }, { encode: false }), '[][0]=2&[][1]=3&[a]=2');
1293
- st.deepEqual(qs.stringify({ '': { '': [2, 3] } }, { encode: false, arrayFormat: 'indices' }), '[][0]=2&[][1]=3');
1294
- st.deepEqual(qs.stringify({ '': { '': [2, 3], a: 2 } }, { encode: false, arrayFormat: 'indices' }), '[][0]=2&[][1]=3&[a]=2');
1295
-
1296
- st.end();
1297
- });
1298
- });