@agenticmail/enterprise 0.5.198 → 0.5.199

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 (1088) hide show
  1. package/package.json +1 -1
  2. package/dashboards/README.md +0 -131
  3. package/dashboards/django/app.py +0 -129
  4. package/dashboards/django/static/styles.css +0 -487
  5. package/dashboards/django/templates/activity.html +0 -130
  6. package/dashboards/django/templates/agent_detail.html +0 -501
  7. package/dashboards/django/templates/agents.html +0 -217
  8. package/dashboards/django/templates/api_keys.html +0 -41
  9. package/dashboards/django/templates/approvals.html +0 -115
  10. package/dashboards/django/templates/audit.html +0 -26
  11. package/dashboards/django/templates/community-skills.html +0 -89
  12. package/dashboards/django/templates/compliance.html +0 -33
  13. package/dashboards/django/templates/components/modal.html +0 -6
  14. package/dashboards/django/templates/components/pagination.html +0 -9
  15. package/dashboards/django/templates/components/stats.html +0 -8
  16. package/dashboards/django/templates/dashboard.html +0 -24
  17. package/dashboards/django/templates/dlp.html +0 -70
  18. package/dashboards/django/templates/domain-status.html +0 -59
  19. package/dashboards/django/templates/guardrails.html +0 -78
  20. package/dashboards/django/templates/journal.html +0 -39
  21. package/dashboards/django/templates/knowledge-contributions.html +0 -58
  22. package/dashboards/django/templates/knowledge.html +0 -104
  23. package/dashboards/django/templates/layout.html +0 -177
  24. package/dashboards/django/templates/login.html +0 -30
  25. package/dashboards/django/templates/messages.html +0 -38
  26. package/dashboards/django/templates/settings.html +0 -472
  27. package/dashboards/django/templates/skill-connections.html +0 -73
  28. package/dashboards/django/templates/skills.html +0 -66
  29. package/dashboards/django/templates/users.html +0 -34
  30. package/dashboards/django/templates/vault.html +0 -46
  31. package/dashboards/django/templates/workforce.html +0 -116
  32. package/dashboards/django/utils/__init__.py +0 -0
  33. package/dashboards/django/utils/api.py +0 -20
  34. package/dashboards/django/utils/helpers.py +0 -39
  35. package/dashboards/django/views/__init__.py +0 -52
  36. package/dashboards/django/views/agents.py +0 -343
  37. package/dashboards/django/views/api_keys.py +0 -47
  38. package/dashboards/django/views/audit.py +0 -35
  39. package/dashboards/django/views/auth.py +0 -34
  40. package/dashboards/django/views/compliance.py +0 -37
  41. package/dashboards/django/views/dashboard.py +0 -27
  42. package/dashboards/django/views/dlp.py +0 -53
  43. package/dashboards/django/views/guardrails.py +0 -61
  44. package/dashboards/django/views/journal.py +0 -41
  45. package/dashboards/django/views/messages.py +0 -65
  46. package/dashboards/django/views/new_pages.py +0 -38
  47. package/dashboards/django/views/settings_view.py +0 -335
  48. package/dashboards/django/views/skills.py +0 -50
  49. package/dashboards/django/views/users.py +0 -42
  50. package/dashboards/django/views/vault.py +0 -50
  51. package/dashboards/dotnet/AgenticMailDashboard.csproj +0 -10
  52. package/dashboards/dotnet/Program.cs +0 -89
  53. package/dashboards/dotnet/Routes/ActivityRoutes.cs +0 -35
  54. package/dashboards/dotnet/Routes/AgentRoutes.cs +0 -771
  55. package/dashboards/dotnet/Routes/ApiKeyRoutes.cs +0 -185
  56. package/dashboards/dotnet/Routes/ApprovalRoutes.cs +0 -36
  57. package/dashboards/dotnet/Routes/AuditRoutes.cs +0 -86
  58. package/dashboards/dotnet/Routes/AuthRoutes.cs +0 -50
  59. package/dashboards/dotnet/Routes/CommunitySkillRoutes.cs +0 -36
  60. package/dashboards/dotnet/Routes/ComplianceRoutes.cs +0 -143
  61. package/dashboards/dotnet/Routes/DashboardRoutes.cs +0 -81
  62. package/dashboards/dotnet/Routes/DlpRoutes.cs +0 -230
  63. package/dashboards/dotnet/Routes/DomainStatusRoutes.cs +0 -49
  64. package/dashboards/dotnet/Routes/GuardrailRoutes.cs +0 -285
  65. package/dashboards/dotnet/Routes/JournalRoutes.cs +0 -118
  66. package/dashboards/dotnet/Routes/KnowledgeContributionRoutes.cs +0 -42
  67. package/dashboards/dotnet/Routes/KnowledgeRoutes.cs +0 -40
  68. package/dashboards/dotnet/Routes/MessageRoutes.cs +0 -167
  69. package/dashboards/dotnet/Routes/SettingRoutes.cs +0 -907
  70. package/dashboards/dotnet/Routes/SkillConnectionRoutes.cs +0 -52
  71. package/dashboards/dotnet/Routes/SkillRoutes.cs +0 -198
  72. package/dashboards/dotnet/Routes/UserRoutes.cs +0 -111
  73. package/dashboards/dotnet/Routes/VaultRoutes.cs +0 -162
  74. package/dashboards/dotnet/Routes/WorkforceRoutes.cs +0 -55
  75. package/dashboards/dotnet/Services/ApiClient.cs +0 -103
  76. package/dashboards/dotnet/Services/HtmlBuilder.cs +0 -258
  77. package/dashboards/dotnet/wwwroot/styles.css +0 -546
  78. package/dashboards/express/app.js +0 -65
  79. package/dashboards/express/middleware/auth.js +0 -10
  80. package/dashboards/express/node_modules/.package-lock.json +0 -913
  81. package/dashboards/express/node_modules/accepts/HISTORY.md +0 -250
  82. package/dashboards/express/node_modules/accepts/LICENSE +0 -23
  83. package/dashboards/express/node_modules/accepts/README.md +0 -140
  84. package/dashboards/express/node_modules/accepts/index.js +0 -238
  85. package/dashboards/express/node_modules/accepts/package.json +0 -47
  86. package/dashboards/express/node_modules/body-parser/LICENSE +0 -23
  87. package/dashboards/express/node_modules/body-parser/README.md +0 -494
  88. package/dashboards/express/node_modules/body-parser/index.js +0 -71
  89. package/dashboards/express/node_modules/body-parser/lib/read.js +0 -247
  90. package/dashboards/express/node_modules/body-parser/lib/types/json.js +0 -158
  91. package/dashboards/express/node_modules/body-parser/lib/types/raw.js +0 -42
  92. package/dashboards/express/node_modules/body-parser/lib/types/text.js +0 -36
  93. package/dashboards/express/node_modules/body-parser/lib/types/urlencoded.js +0 -142
  94. package/dashboards/express/node_modules/body-parser/lib/utils.js +0 -98
  95. package/dashboards/express/node_modules/body-parser/package.json +0 -52
  96. package/dashboards/express/node_modules/bytes/History.md +0 -97
  97. package/dashboards/express/node_modules/bytes/LICENSE +0 -23
  98. package/dashboards/express/node_modules/bytes/Readme.md +0 -152
  99. package/dashboards/express/node_modules/bytes/index.js +0 -170
  100. package/dashboards/express/node_modules/bytes/package.json +0 -42
  101. package/dashboards/express/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  102. package/dashboards/express/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  103. package/dashboards/express/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  104. package/dashboards/express/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  105. package/dashboards/express/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  106. package/dashboards/express/node_modules/call-bind-apply-helpers/README.md +0 -62
  107. package/dashboards/express/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  108. package/dashboards/express/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  109. package/dashboards/express/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  110. package/dashboards/express/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  111. package/dashboards/express/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  112. package/dashboards/express/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  113. package/dashboards/express/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  114. package/dashboards/express/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  115. package/dashboards/express/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  116. package/dashboards/express/node_modules/call-bind-apply-helpers/index.js +0 -15
  117. package/dashboards/express/node_modules/call-bind-apply-helpers/package.json +0 -85
  118. package/dashboards/express/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  119. package/dashboards/express/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  120. package/dashboards/express/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  121. package/dashboards/express/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  122. package/dashboards/express/node_modules/call-bound/.eslintrc +0 -13
  123. package/dashboards/express/node_modules/call-bound/.github/FUNDING.yml +0 -12
  124. package/dashboards/express/node_modules/call-bound/.nycrc +0 -9
  125. package/dashboards/express/node_modules/call-bound/CHANGELOG.md +0 -42
  126. package/dashboards/express/node_modules/call-bound/LICENSE +0 -21
  127. package/dashboards/express/node_modules/call-bound/README.md +0 -53
  128. package/dashboards/express/node_modules/call-bound/index.d.ts +0 -94
  129. package/dashboards/express/node_modules/call-bound/index.js +0 -19
  130. package/dashboards/express/node_modules/call-bound/package.json +0 -99
  131. package/dashboards/express/node_modules/call-bound/test/index.js +0 -61
  132. package/dashboards/express/node_modules/call-bound/tsconfig.json +0 -10
  133. package/dashboards/express/node_modules/content-disposition/HISTORY.md +0 -72
  134. package/dashboards/express/node_modules/content-disposition/LICENSE +0 -22
  135. package/dashboards/express/node_modules/content-disposition/README.md +0 -142
  136. package/dashboards/express/node_modules/content-disposition/index.js +0 -458
  137. package/dashboards/express/node_modules/content-disposition/package.json +0 -43
  138. package/dashboards/express/node_modules/content-type/HISTORY.md +0 -29
  139. package/dashboards/express/node_modules/content-type/LICENSE +0 -22
  140. package/dashboards/express/node_modules/content-type/README.md +0 -94
  141. package/dashboards/express/node_modules/content-type/index.js +0 -225
  142. package/dashboards/express/node_modules/content-type/package.json +0 -42
  143. package/dashboards/express/node_modules/cookie/LICENSE +0 -24
  144. package/dashboards/express/node_modules/cookie/README.md +0 -317
  145. package/dashboards/express/node_modules/cookie/SECURITY.md +0 -25
  146. package/dashboards/express/node_modules/cookie/index.js +0 -335
  147. package/dashboards/express/node_modules/cookie/package.json +0 -44
  148. package/dashboards/express/node_modules/cookie-signature/History.md +0 -70
  149. package/dashboards/express/node_modules/cookie-signature/LICENSE +0 -22
  150. package/dashboards/express/node_modules/cookie-signature/Readme.md +0 -23
  151. package/dashboards/express/node_modules/cookie-signature/index.js +0 -47
  152. package/dashboards/express/node_modules/cookie-signature/package.json +0 -24
  153. package/dashboards/express/node_modules/debug/LICENSE +0 -20
  154. package/dashboards/express/node_modules/debug/README.md +0 -481
  155. package/dashboards/express/node_modules/debug/package.json +0 -64
  156. package/dashboards/express/node_modules/debug/src/browser.js +0 -272
  157. package/dashboards/express/node_modules/debug/src/common.js +0 -292
  158. package/dashboards/express/node_modules/debug/src/index.js +0 -10
  159. package/dashboards/express/node_modules/debug/src/node.js +0 -263
  160. package/dashboards/express/node_modules/depd/History.md +0 -103
  161. package/dashboards/express/node_modules/depd/LICENSE +0 -22
  162. package/dashboards/express/node_modules/depd/Readme.md +0 -280
  163. package/dashboards/express/node_modules/depd/index.js +0 -538
  164. package/dashboards/express/node_modules/depd/lib/browser/index.js +0 -77
  165. package/dashboards/express/node_modules/depd/package.json +0 -45
  166. package/dashboards/express/node_modules/dunder-proto/.eslintrc +0 -5
  167. package/dashboards/express/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  168. package/dashboards/express/node_modules/dunder-proto/.nycrc +0 -13
  169. package/dashboards/express/node_modules/dunder-proto/CHANGELOG.md +0 -24
  170. package/dashboards/express/node_modules/dunder-proto/LICENSE +0 -21
  171. package/dashboards/express/node_modules/dunder-proto/README.md +0 -54
  172. package/dashboards/express/node_modules/dunder-proto/get.d.ts +0 -5
  173. package/dashboards/express/node_modules/dunder-proto/get.js +0 -30
  174. package/dashboards/express/node_modules/dunder-proto/package.json +0 -76
  175. package/dashboards/express/node_modules/dunder-proto/set.d.ts +0 -5
  176. package/dashboards/express/node_modules/dunder-proto/set.js +0 -35
  177. package/dashboards/express/node_modules/dunder-proto/test/get.js +0 -34
  178. package/dashboards/express/node_modules/dunder-proto/test/index.js +0 -4
  179. package/dashboards/express/node_modules/dunder-proto/test/set.js +0 -50
  180. package/dashboards/express/node_modules/dunder-proto/tsconfig.json +0 -9
  181. package/dashboards/express/node_modules/ee-first/LICENSE +0 -22
  182. package/dashboards/express/node_modules/ee-first/README.md +0 -80
  183. package/dashboards/express/node_modules/ee-first/index.js +0 -95
  184. package/dashboards/express/node_modules/ee-first/package.json +0 -29
  185. package/dashboards/express/node_modules/encodeurl/LICENSE +0 -22
  186. package/dashboards/express/node_modules/encodeurl/README.md +0 -109
  187. package/dashboards/express/node_modules/encodeurl/index.js +0 -60
  188. package/dashboards/express/node_modules/encodeurl/package.json +0 -40
  189. package/dashboards/express/node_modules/es-define-property/.eslintrc +0 -13
  190. package/dashboards/express/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  191. package/dashboards/express/node_modules/es-define-property/.nycrc +0 -9
  192. package/dashboards/express/node_modules/es-define-property/CHANGELOG.md +0 -29
  193. package/dashboards/express/node_modules/es-define-property/LICENSE +0 -21
  194. package/dashboards/express/node_modules/es-define-property/README.md +0 -49
  195. package/dashboards/express/node_modules/es-define-property/index.d.ts +0 -3
  196. package/dashboards/express/node_modules/es-define-property/index.js +0 -14
  197. package/dashboards/express/node_modules/es-define-property/package.json +0 -81
  198. package/dashboards/express/node_modules/es-define-property/test/index.js +0 -56
  199. package/dashboards/express/node_modules/es-define-property/tsconfig.json +0 -10
  200. package/dashboards/express/node_modules/es-errors/.eslintrc +0 -5
  201. package/dashboards/express/node_modules/es-errors/.github/FUNDING.yml +0 -12
  202. package/dashboards/express/node_modules/es-errors/CHANGELOG.md +0 -40
  203. package/dashboards/express/node_modules/es-errors/LICENSE +0 -21
  204. package/dashboards/express/node_modules/es-errors/README.md +0 -55
  205. package/dashboards/express/node_modules/es-errors/eval.d.ts +0 -3
  206. package/dashboards/express/node_modules/es-errors/eval.js +0 -4
  207. package/dashboards/express/node_modules/es-errors/index.d.ts +0 -3
  208. package/dashboards/express/node_modules/es-errors/index.js +0 -4
  209. package/dashboards/express/node_modules/es-errors/package.json +0 -80
  210. package/dashboards/express/node_modules/es-errors/range.d.ts +0 -3
  211. package/dashboards/express/node_modules/es-errors/range.js +0 -4
  212. package/dashboards/express/node_modules/es-errors/ref.d.ts +0 -3
  213. package/dashboards/express/node_modules/es-errors/ref.js +0 -4
  214. package/dashboards/express/node_modules/es-errors/syntax.d.ts +0 -3
  215. package/dashboards/express/node_modules/es-errors/syntax.js +0 -4
  216. package/dashboards/express/node_modules/es-errors/test/index.js +0 -19
  217. package/dashboards/express/node_modules/es-errors/tsconfig.json +0 -49
  218. package/dashboards/express/node_modules/es-errors/type.d.ts +0 -3
  219. package/dashboards/express/node_modules/es-errors/type.js +0 -4
  220. package/dashboards/express/node_modules/es-errors/uri.d.ts +0 -3
  221. package/dashboards/express/node_modules/es-errors/uri.js +0 -4
  222. package/dashboards/express/node_modules/es-object-atoms/.eslintrc +0 -16
  223. package/dashboards/express/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  224. package/dashboards/express/node_modules/es-object-atoms/CHANGELOG.md +0 -37
  225. package/dashboards/express/node_modules/es-object-atoms/LICENSE +0 -21
  226. package/dashboards/express/node_modules/es-object-atoms/README.md +0 -63
  227. package/dashboards/express/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  228. package/dashboards/express/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  229. package/dashboards/express/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  230. package/dashboards/express/node_modules/es-object-atoms/ToObject.js +0 -10
  231. package/dashboards/express/node_modules/es-object-atoms/index.d.ts +0 -3
  232. package/dashboards/express/node_modules/es-object-atoms/index.js +0 -4
  233. package/dashboards/express/node_modules/es-object-atoms/isObject.d.ts +0 -3
  234. package/dashboards/express/node_modules/es-object-atoms/isObject.js +0 -6
  235. package/dashboards/express/node_modules/es-object-atoms/package.json +0 -80
  236. package/dashboards/express/node_modules/es-object-atoms/test/index.js +0 -38
  237. package/dashboards/express/node_modules/es-object-atoms/tsconfig.json +0 -6
  238. package/dashboards/express/node_modules/escape-html/LICENSE +0 -24
  239. package/dashboards/express/node_modules/escape-html/Readme.md +0 -43
  240. package/dashboards/express/node_modules/escape-html/index.js +0 -78
  241. package/dashboards/express/node_modules/escape-html/package.json +0 -24
  242. package/dashboards/express/node_modules/etag/HISTORY.md +0 -83
  243. package/dashboards/express/node_modules/etag/LICENSE +0 -22
  244. package/dashboards/express/node_modules/etag/README.md +0 -159
  245. package/dashboards/express/node_modules/etag/index.js +0 -131
  246. package/dashboards/express/node_modules/etag/package.json +0 -47
  247. package/dashboards/express/node_modules/express/LICENSE +0 -24
  248. package/dashboards/express/node_modules/express/Readme.md +0 -276
  249. package/dashboards/express/node_modules/express/index.js +0 -11
  250. package/dashboards/express/node_modules/express/lib/application.js +0 -631
  251. package/dashboards/express/node_modules/express/lib/express.js +0 -81
  252. package/dashboards/express/node_modules/express/lib/request.js +0 -514
  253. package/dashboards/express/node_modules/express/lib/response.js +0 -1053
  254. package/dashboards/express/node_modules/express/lib/utils.js +0 -271
  255. package/dashboards/express/node_modules/express/lib/view.js +0 -205
  256. package/dashboards/express/node_modules/express/package.json +0 -99
  257. package/dashboards/express/node_modules/express-session/LICENSE +0 -24
  258. package/dashboards/express/node_modules/express-session/README.md +0 -1061
  259. package/dashboards/express/node_modules/express-session/index.js +0 -700
  260. package/dashboards/express/node_modules/express-session/node_modules/cookie-signature/History.md +0 -42
  261. package/dashboards/express/node_modules/express-session/node_modules/cookie-signature/Readme.md +0 -42
  262. package/dashboards/express/node_modules/express-session/node_modules/cookie-signature/index.js +0 -51
  263. package/dashboards/express/node_modules/express-session/node_modules/cookie-signature/package.json +0 -18
  264. package/dashboards/express/node_modules/express-session/node_modules/debug/.coveralls.yml +0 -1
  265. package/dashboards/express/node_modules/express-session/node_modules/debug/.eslintrc +0 -11
  266. package/dashboards/express/node_modules/express-session/node_modules/debug/.travis.yml +0 -14
  267. package/dashboards/express/node_modules/express-session/node_modules/debug/CHANGELOG.md +0 -362
  268. package/dashboards/express/node_modules/express-session/node_modules/debug/LICENSE +0 -19
  269. package/dashboards/express/node_modules/express-session/node_modules/debug/Makefile +0 -50
  270. package/dashboards/express/node_modules/express-session/node_modules/debug/README.md +0 -312
  271. package/dashboards/express/node_modules/express-session/node_modules/debug/component.json +0 -19
  272. package/dashboards/express/node_modules/express-session/node_modules/debug/karma.conf.js +0 -70
  273. package/dashboards/express/node_modules/express-session/node_modules/debug/node.js +0 -1
  274. package/dashboards/express/node_modules/express-session/node_modules/debug/package.json +0 -49
  275. package/dashboards/express/node_modules/express-session/node_modules/debug/src/browser.js +0 -185
  276. package/dashboards/express/node_modules/express-session/node_modules/debug/src/debug.js +0 -202
  277. package/dashboards/express/node_modules/express-session/node_modules/debug/src/index.js +0 -10
  278. package/dashboards/express/node_modules/express-session/node_modules/debug/src/inspector-log.js +0 -15
  279. package/dashboards/express/node_modules/express-session/node_modules/debug/src/node.js +0 -248
  280. package/dashboards/express/node_modules/express-session/node_modules/ms/index.js +0 -152
  281. package/dashboards/express/node_modules/express-session/node_modules/ms/license.md +0 -21
  282. package/dashboards/express/node_modules/express-session/node_modules/ms/package.json +0 -37
  283. package/dashboards/express/node_modules/express-session/node_modules/ms/readme.md +0 -51
  284. package/dashboards/express/node_modules/express-session/package.json +0 -50
  285. package/dashboards/express/node_modules/express-session/session/cookie.js +0 -152
  286. package/dashboards/express/node_modules/express-session/session/memory.js +0 -187
  287. package/dashboards/express/node_modules/express-session/session/session.js +0 -143
  288. package/dashboards/express/node_modules/express-session/session/store.js +0 -102
  289. package/dashboards/express/node_modules/finalhandler/HISTORY.md +0 -239
  290. package/dashboards/express/node_modules/finalhandler/LICENSE +0 -22
  291. package/dashboards/express/node_modules/finalhandler/README.md +0 -150
  292. package/dashboards/express/node_modules/finalhandler/index.js +0 -293
  293. package/dashboards/express/node_modules/finalhandler/package.json +0 -47
  294. package/dashboards/express/node_modules/forwarded/HISTORY.md +0 -21
  295. package/dashboards/express/node_modules/forwarded/LICENSE +0 -22
  296. package/dashboards/express/node_modules/forwarded/README.md +0 -57
  297. package/dashboards/express/node_modules/forwarded/index.js +0 -90
  298. package/dashboards/express/node_modules/forwarded/package.json +0 -45
  299. package/dashboards/express/node_modules/fresh/HISTORY.md +0 -80
  300. package/dashboards/express/node_modules/fresh/LICENSE +0 -23
  301. package/dashboards/express/node_modules/fresh/README.md +0 -117
  302. package/dashboards/express/node_modules/fresh/index.js +0 -136
  303. package/dashboards/express/node_modules/fresh/package.json +0 -46
  304. package/dashboards/express/node_modules/function-bind/.eslintrc +0 -21
  305. package/dashboards/express/node_modules/function-bind/.github/FUNDING.yml +0 -12
  306. package/dashboards/express/node_modules/function-bind/.github/SECURITY.md +0 -3
  307. package/dashboards/express/node_modules/function-bind/.nycrc +0 -13
  308. package/dashboards/express/node_modules/function-bind/CHANGELOG.md +0 -136
  309. package/dashboards/express/node_modules/function-bind/LICENSE +0 -20
  310. package/dashboards/express/node_modules/function-bind/README.md +0 -46
  311. package/dashboards/express/node_modules/function-bind/implementation.js +0 -84
  312. package/dashboards/express/node_modules/function-bind/index.js +0 -5
  313. package/dashboards/express/node_modules/function-bind/package.json +0 -87
  314. package/dashboards/express/node_modules/function-bind/test/.eslintrc +0 -9
  315. package/dashboards/express/node_modules/function-bind/test/index.js +0 -252
  316. package/dashboards/express/node_modules/get-intrinsic/.eslintrc +0 -42
  317. package/dashboards/express/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  318. package/dashboards/express/node_modules/get-intrinsic/.nycrc +0 -9
  319. package/dashboards/express/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  320. package/dashboards/express/node_modules/get-intrinsic/LICENSE +0 -21
  321. package/dashboards/express/node_modules/get-intrinsic/README.md +0 -71
  322. package/dashboards/express/node_modules/get-intrinsic/index.js +0 -378
  323. package/dashboards/express/node_modules/get-intrinsic/package.json +0 -97
  324. package/dashboards/express/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  325. package/dashboards/express/node_modules/get-proto/.eslintrc +0 -10
  326. package/dashboards/express/node_modules/get-proto/.github/FUNDING.yml +0 -12
  327. package/dashboards/express/node_modules/get-proto/.nycrc +0 -9
  328. package/dashboards/express/node_modules/get-proto/CHANGELOG.md +0 -21
  329. package/dashboards/express/node_modules/get-proto/LICENSE +0 -21
  330. package/dashboards/express/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  331. package/dashboards/express/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  332. package/dashboards/express/node_modules/get-proto/README.md +0 -50
  333. package/dashboards/express/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  334. package/dashboards/express/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  335. package/dashboards/express/node_modules/get-proto/index.d.ts +0 -5
  336. package/dashboards/express/node_modules/get-proto/index.js +0 -27
  337. package/dashboards/express/node_modules/get-proto/package.json +0 -81
  338. package/dashboards/express/node_modules/get-proto/test/index.js +0 -68
  339. package/dashboards/express/node_modules/get-proto/tsconfig.json +0 -9
  340. package/dashboards/express/node_modules/gopd/.eslintrc +0 -16
  341. package/dashboards/express/node_modules/gopd/.github/FUNDING.yml +0 -12
  342. package/dashboards/express/node_modules/gopd/CHANGELOG.md +0 -45
  343. package/dashboards/express/node_modules/gopd/LICENSE +0 -21
  344. package/dashboards/express/node_modules/gopd/README.md +0 -40
  345. package/dashboards/express/node_modules/gopd/gOPD.d.ts +0 -1
  346. package/dashboards/express/node_modules/gopd/gOPD.js +0 -4
  347. package/dashboards/express/node_modules/gopd/index.d.ts +0 -5
  348. package/dashboards/express/node_modules/gopd/index.js +0 -15
  349. package/dashboards/express/node_modules/gopd/package.json +0 -77
  350. package/dashboards/express/node_modules/gopd/test/index.js +0 -36
  351. package/dashboards/express/node_modules/gopd/tsconfig.json +0 -9
  352. package/dashboards/express/node_modules/has-symbols/.eslintrc +0 -11
  353. package/dashboards/express/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  354. package/dashboards/express/node_modules/has-symbols/.nycrc +0 -9
  355. package/dashboards/express/node_modules/has-symbols/CHANGELOG.md +0 -91
  356. package/dashboards/express/node_modules/has-symbols/LICENSE +0 -21
  357. package/dashboards/express/node_modules/has-symbols/README.md +0 -46
  358. package/dashboards/express/node_modules/has-symbols/index.d.ts +0 -3
  359. package/dashboards/express/node_modules/has-symbols/index.js +0 -14
  360. package/dashboards/express/node_modules/has-symbols/package.json +0 -111
  361. package/dashboards/express/node_modules/has-symbols/shams.d.ts +0 -3
  362. package/dashboards/express/node_modules/has-symbols/shams.js +0 -45
  363. package/dashboards/express/node_modules/has-symbols/test/index.js +0 -22
  364. package/dashboards/express/node_modules/has-symbols/test/shams/core-js.js +0 -29
  365. package/dashboards/express/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  366. package/dashboards/express/node_modules/has-symbols/test/tests.js +0 -58
  367. package/dashboards/express/node_modules/has-symbols/tsconfig.json +0 -10
  368. package/dashboards/express/node_modules/hasown/.eslintrc +0 -5
  369. package/dashboards/express/node_modules/hasown/.github/FUNDING.yml +0 -12
  370. package/dashboards/express/node_modules/hasown/.nycrc +0 -13
  371. package/dashboards/express/node_modules/hasown/CHANGELOG.md +0 -40
  372. package/dashboards/express/node_modules/hasown/LICENSE +0 -21
  373. package/dashboards/express/node_modules/hasown/README.md +0 -40
  374. package/dashboards/express/node_modules/hasown/index.d.ts +0 -3
  375. package/dashboards/express/node_modules/hasown/index.js +0 -8
  376. package/dashboards/express/node_modules/hasown/package.json +0 -92
  377. package/dashboards/express/node_modules/hasown/tsconfig.json +0 -6
  378. package/dashboards/express/node_modules/http-errors/HISTORY.md +0 -186
  379. package/dashboards/express/node_modules/http-errors/LICENSE +0 -23
  380. package/dashboards/express/node_modules/http-errors/README.md +0 -169
  381. package/dashboards/express/node_modules/http-errors/index.js +0 -290
  382. package/dashboards/express/node_modules/http-errors/package.json +0 -54
  383. package/dashboards/express/node_modules/iconv-lite/LICENSE +0 -21
  384. package/dashboards/express/node_modules/iconv-lite/README.md +0 -138
  385. package/dashboards/express/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -532
  386. package/dashboards/express/node_modules/iconv-lite/encodings/dbcs-data.js +0 -185
  387. package/dashboards/express/node_modules/iconv-lite/encodings/index.js +0 -23
  388. package/dashboards/express/node_modules/iconv-lite/encodings/internal.js +0 -218
  389. package/dashboards/express/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -75
  390. package/dashboards/express/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -451
  391. package/dashboards/express/node_modules/iconv-lite/encodings/sbcs-data.js +0 -178
  392. package/dashboards/express/node_modules/iconv-lite/encodings/tables/big5-added.json +0 -122
  393. package/dashboards/express/node_modules/iconv-lite/encodings/tables/cp936.json +0 -264
  394. package/dashboards/express/node_modules/iconv-lite/encodings/tables/cp949.json +0 -273
  395. package/dashboards/express/node_modules/iconv-lite/encodings/tables/cp950.json +0 -177
  396. package/dashboards/express/node_modules/iconv-lite/encodings/tables/eucjp.json +0 -182
  397. package/dashboards/express/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +0 -1
  398. package/dashboards/express/node_modules/iconv-lite/encodings/tables/gbk-added.json +0 -56
  399. package/dashboards/express/node_modules/iconv-lite/encodings/tables/shiftjis.json +0 -125
  400. package/dashboards/express/node_modules/iconv-lite/encodings/utf16.js +0 -187
  401. package/dashboards/express/node_modules/iconv-lite/encodings/utf32.js +0 -307
  402. package/dashboards/express/node_modules/iconv-lite/encodings/utf7.js +0 -283
  403. package/dashboards/express/node_modules/iconv-lite/lib/bom-handling.js +0 -48
  404. package/dashboards/express/node_modules/iconv-lite/lib/helpers/merge-exports.js +0 -13
  405. package/dashboards/express/node_modules/iconv-lite/lib/index.d.ts +0 -129
  406. package/dashboards/express/node_modules/iconv-lite/lib/index.js +0 -182
  407. package/dashboards/express/node_modules/iconv-lite/lib/streams.js +0 -105
  408. package/dashboards/express/node_modules/iconv-lite/package.json +0 -70
  409. package/dashboards/express/node_modules/iconv-lite/types/encodings.d.ts +0 -423
  410. package/dashboards/express/node_modules/inherits/LICENSE +0 -16
  411. package/dashboards/express/node_modules/inherits/README.md +0 -42
  412. package/dashboards/express/node_modules/inherits/inherits.js +0 -9
  413. package/dashboards/express/node_modules/inherits/inherits_browser.js +0 -27
  414. package/dashboards/express/node_modules/inherits/package.json +0 -29
  415. package/dashboards/express/node_modules/ipaddr.js/LICENSE +0 -19
  416. package/dashboards/express/node_modules/ipaddr.js/README.md +0 -233
  417. package/dashboards/express/node_modules/ipaddr.js/ipaddr.min.js +0 -1
  418. package/dashboards/express/node_modules/ipaddr.js/lib/ipaddr.js +0 -673
  419. package/dashboards/express/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +0 -68
  420. package/dashboards/express/node_modules/ipaddr.js/package.json +0 -35
  421. package/dashboards/express/node_modules/is-promise/LICENSE +0 -19
  422. package/dashboards/express/node_modules/is-promise/index.d.ts +0 -2
  423. package/dashboards/express/node_modules/is-promise/index.js +0 -6
  424. package/dashboards/express/node_modules/is-promise/index.mjs +0 -3
  425. package/dashboards/express/node_modules/is-promise/package.json +0 -30
  426. package/dashboards/express/node_modules/is-promise/readme.md +0 -33
  427. package/dashboards/express/node_modules/math-intrinsics/.eslintrc +0 -16
  428. package/dashboards/express/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  429. package/dashboards/express/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  430. package/dashboards/express/node_modules/math-intrinsics/LICENSE +0 -21
  431. package/dashboards/express/node_modules/math-intrinsics/README.md +0 -50
  432. package/dashboards/express/node_modules/math-intrinsics/abs.d.ts +0 -1
  433. package/dashboards/express/node_modules/math-intrinsics/abs.js +0 -4
  434. package/dashboards/express/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  435. package/dashboards/express/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  436. package/dashboards/express/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  437. package/dashboards/express/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  438. package/dashboards/express/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  439. package/dashboards/express/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  440. package/dashboards/express/node_modules/math-intrinsics/floor.d.ts +0 -1
  441. package/dashboards/express/node_modules/math-intrinsics/floor.js +0 -4
  442. package/dashboards/express/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  443. package/dashboards/express/node_modules/math-intrinsics/isFinite.js +0 -12
  444. package/dashboards/express/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  445. package/dashboards/express/node_modules/math-intrinsics/isInteger.js +0 -16
  446. package/dashboards/express/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  447. package/dashboards/express/node_modules/math-intrinsics/isNaN.js +0 -6
  448. package/dashboards/express/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  449. package/dashboards/express/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  450. package/dashboards/express/node_modules/math-intrinsics/max.d.ts +0 -1
  451. package/dashboards/express/node_modules/math-intrinsics/max.js +0 -4
  452. package/dashboards/express/node_modules/math-intrinsics/min.d.ts +0 -1
  453. package/dashboards/express/node_modules/math-intrinsics/min.js +0 -4
  454. package/dashboards/express/node_modules/math-intrinsics/mod.d.ts +0 -3
  455. package/dashboards/express/node_modules/math-intrinsics/mod.js +0 -9
  456. package/dashboards/express/node_modules/math-intrinsics/package.json +0 -86
  457. package/dashboards/express/node_modules/math-intrinsics/pow.d.ts +0 -1
  458. package/dashboards/express/node_modules/math-intrinsics/pow.js +0 -4
  459. package/dashboards/express/node_modules/math-intrinsics/round.d.ts +0 -1
  460. package/dashboards/express/node_modules/math-intrinsics/round.js +0 -4
  461. package/dashboards/express/node_modules/math-intrinsics/sign.d.ts +0 -3
  462. package/dashboards/express/node_modules/math-intrinsics/sign.js +0 -11
  463. package/dashboards/express/node_modules/math-intrinsics/test/index.js +0 -192
  464. package/dashboards/express/node_modules/math-intrinsics/tsconfig.json +0 -3
  465. package/dashboards/express/node_modules/media-typer/HISTORY.md +0 -50
  466. package/dashboards/express/node_modules/media-typer/LICENSE +0 -22
  467. package/dashboards/express/node_modules/media-typer/README.md +0 -93
  468. package/dashboards/express/node_modules/media-typer/index.js +0 -143
  469. package/dashboards/express/node_modules/media-typer/package.json +0 -33
  470. package/dashboards/express/node_modules/merge-descriptors/index.d.ts +0 -11
  471. package/dashboards/express/node_modules/merge-descriptors/index.js +0 -26
  472. package/dashboards/express/node_modules/merge-descriptors/license +0 -11
  473. package/dashboards/express/node_modules/merge-descriptors/package.json +0 -50
  474. package/dashboards/express/node_modules/merge-descriptors/readme.md +0 -55
  475. package/dashboards/express/node_modules/mime-db/HISTORY.md +0 -541
  476. package/dashboards/express/node_modules/mime-db/LICENSE +0 -23
  477. package/dashboards/express/node_modules/mime-db/README.md +0 -109
  478. package/dashboards/express/node_modules/mime-db/db.json +0 -9342
  479. package/dashboards/express/node_modules/mime-db/index.js +0 -12
  480. package/dashboards/express/node_modules/mime-db/package.json +0 -56
  481. package/dashboards/express/node_modules/mime-types/HISTORY.md +0 -428
  482. package/dashboards/express/node_modules/mime-types/LICENSE +0 -23
  483. package/dashboards/express/node_modules/mime-types/README.md +0 -126
  484. package/dashboards/express/node_modules/mime-types/index.js +0 -211
  485. package/dashboards/express/node_modules/mime-types/mimeScore.js +0 -57
  486. package/dashboards/express/node_modules/mime-types/package.json +0 -49
  487. package/dashboards/express/node_modules/ms/index.js +0 -162
  488. package/dashboards/express/node_modules/ms/license.md +0 -21
  489. package/dashboards/express/node_modules/ms/package.json +0 -38
  490. package/dashboards/express/node_modules/ms/readme.md +0 -59
  491. package/dashboards/express/node_modules/negotiator/HISTORY.md +0 -114
  492. package/dashboards/express/node_modules/negotiator/LICENSE +0 -24
  493. package/dashboards/express/node_modules/negotiator/README.md +0 -212
  494. package/dashboards/express/node_modules/negotiator/index.js +0 -83
  495. package/dashboards/express/node_modules/negotiator/lib/charset.js +0 -169
  496. package/dashboards/express/node_modules/negotiator/lib/encoding.js +0 -205
  497. package/dashboards/express/node_modules/negotiator/lib/language.js +0 -179
  498. package/dashboards/express/node_modules/negotiator/lib/mediaType.js +0 -294
  499. package/dashboards/express/node_modules/negotiator/package.json +0 -43
  500. package/dashboards/express/node_modules/object-inspect/.eslintrc +0 -53
  501. package/dashboards/express/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  502. package/dashboards/express/node_modules/object-inspect/.nycrc +0 -13
  503. package/dashboards/express/node_modules/object-inspect/CHANGELOG.md +0 -424
  504. package/dashboards/express/node_modules/object-inspect/LICENSE +0 -21
  505. package/dashboards/express/node_modules/object-inspect/example/all.js +0 -23
  506. package/dashboards/express/node_modules/object-inspect/example/circular.js +0 -6
  507. package/dashboards/express/node_modules/object-inspect/example/fn.js +0 -5
  508. package/dashboards/express/node_modules/object-inspect/example/inspect.js +0 -10
  509. package/dashboards/express/node_modules/object-inspect/index.js +0 -544
  510. package/dashboards/express/node_modules/object-inspect/package-support.json +0 -20
  511. package/dashboards/express/node_modules/object-inspect/package.json +0 -105
  512. package/dashboards/express/node_modules/object-inspect/readme.markdown +0 -84
  513. package/dashboards/express/node_modules/object-inspect/test/bigint.js +0 -58
  514. package/dashboards/express/node_modules/object-inspect/test/browser/dom.js +0 -15
  515. package/dashboards/express/node_modules/object-inspect/test/circular.js +0 -16
  516. package/dashboards/express/node_modules/object-inspect/test/deep.js +0 -12
  517. package/dashboards/express/node_modules/object-inspect/test/element.js +0 -53
  518. package/dashboards/express/node_modules/object-inspect/test/err.js +0 -48
  519. package/dashboards/express/node_modules/object-inspect/test/fakes.js +0 -29
  520. package/dashboards/express/node_modules/object-inspect/test/fn.js +0 -76
  521. package/dashboards/express/node_modules/object-inspect/test/global.js +0 -17
  522. package/dashboards/express/node_modules/object-inspect/test/has.js +0 -15
  523. package/dashboards/express/node_modules/object-inspect/test/holes.js +0 -15
  524. package/dashboards/express/node_modules/object-inspect/test/indent-option.js +0 -271
  525. package/dashboards/express/node_modules/object-inspect/test/inspect.js +0 -139
  526. package/dashboards/express/node_modules/object-inspect/test/lowbyte.js +0 -12
  527. package/dashboards/express/node_modules/object-inspect/test/number.js +0 -58
  528. package/dashboards/express/node_modules/object-inspect/test/quoteStyle.js +0 -26
  529. package/dashboards/express/node_modules/object-inspect/test/toStringTag.js +0 -40
  530. package/dashboards/express/node_modules/object-inspect/test/undef.js +0 -12
  531. package/dashboards/express/node_modules/object-inspect/test/values.js +0 -261
  532. package/dashboards/express/node_modules/object-inspect/test-core-js.js +0 -26
  533. package/dashboards/express/node_modules/object-inspect/util.inspect.js +0 -1
  534. package/dashboards/express/node_modules/on-finished/HISTORY.md +0 -98
  535. package/dashboards/express/node_modules/on-finished/LICENSE +0 -23
  536. package/dashboards/express/node_modules/on-finished/README.md +0 -162
  537. package/dashboards/express/node_modules/on-finished/index.js +0 -234
  538. package/dashboards/express/node_modules/on-finished/package.json +0 -39
  539. package/dashboards/express/node_modules/on-headers/HISTORY.md +0 -26
  540. package/dashboards/express/node_modules/on-headers/LICENSE +0 -22
  541. package/dashboards/express/node_modules/on-headers/README.md +0 -81
  542. package/dashboards/express/node_modules/on-headers/index.js +0 -180
  543. package/dashboards/express/node_modules/on-headers/package.json +0 -44
  544. package/dashboards/express/node_modules/once/LICENSE +0 -15
  545. package/dashboards/express/node_modules/once/README.md +0 -79
  546. package/dashboards/express/node_modules/once/once.js +0 -42
  547. package/dashboards/express/node_modules/once/package.json +0 -33
  548. package/dashboards/express/node_modules/parseurl/HISTORY.md +0 -58
  549. package/dashboards/express/node_modules/parseurl/LICENSE +0 -24
  550. package/dashboards/express/node_modules/parseurl/README.md +0 -133
  551. package/dashboards/express/node_modules/parseurl/index.js +0 -158
  552. package/dashboards/express/node_modules/parseurl/package.json +0 -40
  553. package/dashboards/express/node_modules/path-to-regexp/LICENSE +0 -21
  554. package/dashboards/express/node_modules/path-to-regexp/Readme.md +0 -224
  555. package/dashboards/express/node_modules/path-to-regexp/dist/index.d.ts +0 -144
  556. package/dashboards/express/node_modules/path-to-regexp/dist/index.js +0 -409
  557. package/dashboards/express/node_modules/path-to-regexp/dist/index.js.map +0 -1
  558. package/dashboards/express/node_modules/path-to-regexp/package.json +0 -64
  559. package/dashboards/express/node_modules/proxy-addr/HISTORY.md +0 -161
  560. package/dashboards/express/node_modules/proxy-addr/LICENSE +0 -22
  561. package/dashboards/express/node_modules/proxy-addr/README.md +0 -139
  562. package/dashboards/express/node_modules/proxy-addr/index.js +0 -327
  563. package/dashboards/express/node_modules/proxy-addr/package.json +0 -47
  564. package/dashboards/express/node_modules/qs/.editorconfig +0 -46
  565. package/dashboards/express/node_modules/qs/.github/FUNDING.yml +0 -12
  566. package/dashboards/express/node_modules/qs/.github/SECURITY.md +0 -11
  567. package/dashboards/express/node_modules/qs/.github/THREAT_MODEL.md +0 -78
  568. package/dashboards/express/node_modules/qs/.nycrc +0 -13
  569. package/dashboards/express/node_modules/qs/CHANGELOG.md +0 -806
  570. package/dashboards/express/node_modules/qs/LICENSE.md +0 -29
  571. package/dashboards/express/node_modules/qs/README.md +0 -758
  572. package/dashboards/express/node_modules/qs/dist/qs.js +0 -141
  573. package/dashboards/express/node_modules/qs/eslint.config.mjs +0 -56
  574. package/dashboards/express/node_modules/qs/lib/formats.js +0 -23
  575. package/dashboards/express/node_modules/qs/lib/index.js +0 -11
  576. package/dashboards/express/node_modules/qs/lib/parse.js +0 -373
  577. package/dashboards/express/node_modules/qs/lib/stringify.js +0 -356
  578. package/dashboards/express/node_modules/qs/lib/utils.js +0 -342
  579. package/dashboards/express/node_modules/qs/package.json +0 -94
  580. package/dashboards/express/node_modules/qs/test/empty-keys-cases.js +0 -267
  581. package/dashboards/express/node_modules/qs/test/parse.js +0 -1568
  582. package/dashboards/express/node_modules/qs/test/stringify.js +0 -1310
  583. package/dashboards/express/node_modules/qs/test/utils.js +0 -404
  584. package/dashboards/express/node_modules/random-bytes/HISTORY.md +0 -4
  585. package/dashboards/express/node_modules/random-bytes/LICENSE +0 -21
  586. package/dashboards/express/node_modules/random-bytes/README.md +0 -77
  587. package/dashboards/express/node_modules/random-bytes/index.js +0 -101
  588. package/dashboards/express/node_modules/random-bytes/package.json +0 -36
  589. package/dashboards/express/node_modules/range-parser/HISTORY.md +0 -56
  590. package/dashboards/express/node_modules/range-parser/LICENSE +0 -23
  591. package/dashboards/express/node_modules/range-parser/README.md +0 -84
  592. package/dashboards/express/node_modules/range-parser/index.js +0 -162
  593. package/dashboards/express/node_modules/range-parser/package.json +0 -44
  594. package/dashboards/express/node_modules/raw-body/LICENSE +0 -22
  595. package/dashboards/express/node_modules/raw-body/README.md +0 -223
  596. package/dashboards/express/node_modules/raw-body/index.d.ts +0 -85
  597. package/dashboards/express/node_modules/raw-body/index.js +0 -336
  598. package/dashboards/express/node_modules/raw-body/package.json +0 -46
  599. package/dashboards/express/node_modules/router/HISTORY.md +0 -228
  600. package/dashboards/express/node_modules/router/LICENSE +0 -23
  601. package/dashboards/express/node_modules/router/README.md +0 -416
  602. package/dashboards/express/node_modules/router/index.js +0 -748
  603. package/dashboards/express/node_modules/router/lib/layer.js +0 -247
  604. package/dashboards/express/node_modules/router/lib/route.js +0 -242
  605. package/dashboards/express/node_modules/router/package.json +0 -44
  606. package/dashboards/express/node_modules/safe-buffer/LICENSE +0 -21
  607. package/dashboards/express/node_modules/safe-buffer/README.md +0 -584
  608. package/dashboards/express/node_modules/safe-buffer/index.d.ts +0 -187
  609. package/dashboards/express/node_modules/safe-buffer/index.js +0 -65
  610. package/dashboards/express/node_modules/safe-buffer/package.json +0 -51
  611. package/dashboards/express/node_modules/safer-buffer/LICENSE +0 -21
  612. package/dashboards/express/node_modules/safer-buffer/Porting-Buffer.md +0 -268
  613. package/dashboards/express/node_modules/safer-buffer/Readme.md +0 -156
  614. package/dashboards/express/node_modules/safer-buffer/dangerous.js +0 -58
  615. package/dashboards/express/node_modules/safer-buffer/package.json +0 -34
  616. package/dashboards/express/node_modules/safer-buffer/safer.js +0 -77
  617. package/dashboards/express/node_modules/safer-buffer/tests.js +0 -406
  618. package/dashboards/express/node_modules/send/LICENSE +0 -23
  619. package/dashboards/express/node_modules/send/README.md +0 -317
  620. package/dashboards/express/node_modules/send/index.js +0 -997
  621. package/dashboards/express/node_modules/send/package.json +0 -63
  622. package/dashboards/express/node_modules/serve-static/LICENSE +0 -25
  623. package/dashboards/express/node_modules/serve-static/README.md +0 -253
  624. package/dashboards/express/node_modules/serve-static/index.js +0 -208
  625. package/dashboards/express/node_modules/serve-static/package.json +0 -44
  626. package/dashboards/express/node_modules/setprototypeof/LICENSE +0 -13
  627. package/dashboards/express/node_modules/setprototypeof/README.md +0 -31
  628. package/dashboards/express/node_modules/setprototypeof/index.d.ts +0 -2
  629. package/dashboards/express/node_modules/setprototypeof/index.js +0 -17
  630. package/dashboards/express/node_modules/setprototypeof/package.json +0 -38
  631. package/dashboards/express/node_modules/setprototypeof/test/index.js +0 -24
  632. package/dashboards/express/node_modules/side-channel/.editorconfig +0 -9
  633. package/dashboards/express/node_modules/side-channel/.eslintrc +0 -12
  634. package/dashboards/express/node_modules/side-channel/.github/FUNDING.yml +0 -12
  635. package/dashboards/express/node_modules/side-channel/.nycrc +0 -13
  636. package/dashboards/express/node_modules/side-channel/CHANGELOG.md +0 -110
  637. package/dashboards/express/node_modules/side-channel/LICENSE +0 -21
  638. package/dashboards/express/node_modules/side-channel/README.md +0 -61
  639. package/dashboards/express/node_modules/side-channel/index.d.ts +0 -14
  640. package/dashboards/express/node_modules/side-channel/index.js +0 -43
  641. package/dashboards/express/node_modules/side-channel/package.json +0 -85
  642. package/dashboards/express/node_modules/side-channel/test/index.js +0 -104
  643. package/dashboards/express/node_modules/side-channel/tsconfig.json +0 -9
  644. package/dashboards/express/node_modules/side-channel-list/.editorconfig +0 -9
  645. package/dashboards/express/node_modules/side-channel-list/.eslintrc +0 -11
  646. package/dashboards/express/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
  647. package/dashboards/express/node_modules/side-channel-list/.nycrc +0 -13
  648. package/dashboards/express/node_modules/side-channel-list/CHANGELOG.md +0 -15
  649. package/dashboards/express/node_modules/side-channel-list/LICENSE +0 -21
  650. package/dashboards/express/node_modules/side-channel-list/README.md +0 -62
  651. package/dashboards/express/node_modules/side-channel-list/index.d.ts +0 -13
  652. package/dashboards/express/node_modules/side-channel-list/index.js +0 -113
  653. package/dashboards/express/node_modules/side-channel-list/list.d.ts +0 -14
  654. package/dashboards/express/node_modules/side-channel-list/package.json +0 -77
  655. package/dashboards/express/node_modules/side-channel-list/test/index.js +0 -104
  656. package/dashboards/express/node_modules/side-channel-list/tsconfig.json +0 -9
  657. package/dashboards/express/node_modules/side-channel-map/.editorconfig +0 -9
  658. package/dashboards/express/node_modules/side-channel-map/.eslintrc +0 -11
  659. package/dashboards/express/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
  660. package/dashboards/express/node_modules/side-channel-map/.nycrc +0 -13
  661. package/dashboards/express/node_modules/side-channel-map/CHANGELOG.md +0 -22
  662. package/dashboards/express/node_modules/side-channel-map/LICENSE +0 -21
  663. package/dashboards/express/node_modules/side-channel-map/README.md +0 -62
  664. package/dashboards/express/node_modules/side-channel-map/index.d.ts +0 -15
  665. package/dashboards/express/node_modules/side-channel-map/index.js +0 -68
  666. package/dashboards/express/node_modules/side-channel-map/package.json +0 -80
  667. package/dashboards/express/node_modules/side-channel-map/test/index.js +0 -114
  668. package/dashboards/express/node_modules/side-channel-map/tsconfig.json +0 -9
  669. package/dashboards/express/node_modules/side-channel-weakmap/.editorconfig +0 -9
  670. package/dashboards/express/node_modules/side-channel-weakmap/.eslintrc +0 -12
  671. package/dashboards/express/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
  672. package/dashboards/express/node_modules/side-channel-weakmap/.nycrc +0 -13
  673. package/dashboards/express/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
  674. package/dashboards/express/node_modules/side-channel-weakmap/LICENSE +0 -21
  675. package/dashboards/express/node_modules/side-channel-weakmap/README.md +0 -62
  676. package/dashboards/express/node_modules/side-channel-weakmap/index.d.ts +0 -15
  677. package/dashboards/express/node_modules/side-channel-weakmap/index.js +0 -84
  678. package/dashboards/express/node_modules/side-channel-weakmap/package.json +0 -87
  679. package/dashboards/express/node_modules/side-channel-weakmap/test/index.js +0 -114
  680. package/dashboards/express/node_modules/side-channel-weakmap/tsconfig.json +0 -9
  681. package/dashboards/express/node_modules/statuses/HISTORY.md +0 -87
  682. package/dashboards/express/node_modules/statuses/LICENSE +0 -23
  683. package/dashboards/express/node_modules/statuses/README.md +0 -139
  684. package/dashboards/express/node_modules/statuses/codes.json +0 -65
  685. package/dashboards/express/node_modules/statuses/index.js +0 -146
  686. package/dashboards/express/node_modules/statuses/package.json +0 -49
  687. package/dashboards/express/node_modules/toidentifier/HISTORY.md +0 -9
  688. package/dashboards/express/node_modules/toidentifier/LICENSE +0 -21
  689. package/dashboards/express/node_modules/toidentifier/README.md +0 -61
  690. package/dashboards/express/node_modules/toidentifier/index.js +0 -32
  691. package/dashboards/express/node_modules/toidentifier/package.json +0 -38
  692. package/dashboards/express/node_modules/type-is/HISTORY.md +0 -292
  693. package/dashboards/express/node_modules/type-is/LICENSE +0 -23
  694. package/dashboards/express/node_modules/type-is/README.md +0 -198
  695. package/dashboards/express/node_modules/type-is/index.js +0 -250
  696. package/dashboards/express/node_modules/type-is/package.json +0 -47
  697. package/dashboards/express/node_modules/uid-safe/HISTORY.md +0 -61
  698. package/dashboards/express/node_modules/uid-safe/LICENSE +0 -22
  699. package/dashboards/express/node_modules/uid-safe/README.md +0 -77
  700. package/dashboards/express/node_modules/uid-safe/index.js +0 -107
  701. package/dashboards/express/node_modules/uid-safe/package.json +0 -46
  702. package/dashboards/express/node_modules/unpipe/HISTORY.md +0 -4
  703. package/dashboards/express/node_modules/unpipe/LICENSE +0 -22
  704. package/dashboards/express/node_modules/unpipe/README.md +0 -43
  705. package/dashboards/express/node_modules/unpipe/index.js +0 -69
  706. package/dashboards/express/node_modules/unpipe/package.json +0 -27
  707. package/dashboards/express/node_modules/vary/HISTORY.md +0 -39
  708. package/dashboards/express/node_modules/vary/LICENSE +0 -22
  709. package/dashboards/express/node_modules/vary/README.md +0 -101
  710. package/dashboards/express/node_modules/vary/index.js +0 -149
  711. package/dashboards/express/node_modules/vary/package.json +0 -43
  712. package/dashboards/express/node_modules/wrappy/LICENSE +0 -15
  713. package/dashboards/express/node_modules/wrappy/README.md +0 -36
  714. package/dashboards/express/node_modules/wrappy/package.json +0 -29
  715. package/dashboards/express/node_modules/wrappy/wrappy.js +0 -33
  716. package/dashboards/express/package-lock.json +0 -922
  717. package/dashboards/express/package.json +0 -17
  718. package/dashboards/express/public/styles.css +0 -175
  719. package/dashboards/express/routes/activity.js +0 -101
  720. package/dashboards/express/routes/agents.js +0 -771
  721. package/dashboards/express/routes/apiKeys.js +0 -107
  722. package/dashboards/express/routes/approvals.js +0 -100
  723. package/dashboards/express/routes/audit.js +0 -75
  724. package/dashboards/express/routes/auth.js +0 -38
  725. package/dashboards/express/routes/community-skills.js +0 -83
  726. package/dashboards/express/routes/compliance.js +0 -93
  727. package/dashboards/express/routes/dashboard.js +0 -65
  728. package/dashboards/express/routes/dlp.js +0 -165
  729. package/dashboards/express/routes/domain-status.js +0 -78
  730. package/dashboards/express/routes/guardrails.js +0 -195
  731. package/dashboards/express/routes/journal.js +0 -95
  732. package/dashboards/express/routes/knowledge-contributions.js +0 -85
  733. package/dashboards/express/routes/knowledge.js +0 -83
  734. package/dashboards/express/routes/messages.js +0 -97
  735. package/dashboards/express/routes/settings.js +0 -830
  736. package/dashboards/express/routes/skill-connections.js +0 -86
  737. package/dashboards/express/routes/skills.js +0 -141
  738. package/dashboards/express/routes/users.js +0 -69
  739. package/dashboards/express/routes/vault.js +0 -141
  740. package/dashboards/express/routes/workforce.js +0 -126
  741. package/dashboards/express/utils/api.js +0 -44
  742. package/dashboards/express/utils/helpers.js +0 -46
  743. package/dashboards/express/views/components/modal.js +0 -255
  744. package/dashboards/express/views/components/stats.js +0 -22
  745. package/dashboards/express/views/components/table.js +0 -31
  746. package/dashboards/express/views/layout.js +0 -94
  747. package/dashboards/express/views/login.js +0 -45
  748. package/dashboards/go/go.mod +0 -3
  749. package/dashboards/go/handlers/activity.go +0 -30
  750. package/dashboards/go/handlers/agents.go +0 -790
  751. package/dashboards/go/handlers/apikeys.go +0 -38
  752. package/dashboards/go/handlers/approvals.go +0 -31
  753. package/dashboards/go/handlers/audit.go +0 -52
  754. package/dashboards/go/handlers/auth.go +0 -39
  755. package/dashboards/go/handlers/community_skills.go +0 -32
  756. package/dashboards/go/handlers/compliance.go +0 -58
  757. package/dashboards/go/handlers/dashboard.go +0 -43
  758. package/dashboards/go/handlers/dlp.go +0 -78
  759. package/dashboards/go/handlers/domain_status.go +0 -62
  760. package/dashboards/go/handlers/guardrails.go +0 -89
  761. package/dashboards/go/handlers/journal.go +0 -60
  762. package/dashboards/go/handlers/knowledge.go +0 -35
  763. package/dashboards/go/handlers/knowledge_contributions.go +0 -37
  764. package/dashboards/go/handlers/messages.go +0 -59
  765. package/dashboards/go/handlers/settings.go +0 -951
  766. package/dashboards/go/handlers/skill_connections.go +0 -59
  767. package/dashboards/go/handlers/skills.go +0 -129
  768. package/dashboards/go/handlers/users.go +0 -54
  769. package/dashboards/go/handlers/vault.go +0 -85
  770. package/dashboards/go/handlers/workforce.go +0 -60
  771. package/dashboards/go/main.go +0 -71
  772. package/dashboards/go/middleware/auth.go +0 -17
  773. package/dashboards/go/services/api.go +0 -38
  774. package/dashboards/go/services/session.go +0 -52
  775. package/dashboards/go/static/styles.css +0 -546
  776. package/dashboards/go/templates/components.go +0 -45
  777. package/dashboards/go/templates/helpers.go +0 -35
  778. package/dashboards/go/templates/layout.go +0 -64
  779. package/dashboards/html/index.html +0 -432
  780. package/dashboards/html/package.json +0 -11
  781. package/dashboards/html/public/styles.css +0 -546
  782. package/dashboards/html/src/api.js +0 -36
  783. package/dashboards/html/src/components/badge.js +0 -13
  784. package/dashboards/html/src/components/layout.js +0 -11
  785. package/dashboards/html/src/components/modal.js +0 -9
  786. package/dashboards/html/src/components/pagination.js +0 -12
  787. package/dashboards/html/src/components/stat-card.js +0 -14
  788. package/dashboards/html/src/components/table.js +0 -6
  789. package/dashboards/html/src/main.js +0 -83
  790. package/dashboards/html/src/pages/activity.js +0 -137
  791. package/dashboards/html/src/pages/agents.js +0 -831
  792. package/dashboards/html/src/pages/api-keys.js +0 -80
  793. package/dashboards/html/src/pages/approvals.js +0 -155
  794. package/dashboards/html/src/pages/audit.js +0 -50
  795. package/dashboards/html/src/pages/community-skills.js +0 -236
  796. package/dashboards/html/src/pages/compliance.js +0 -69
  797. package/dashboards/html/src/pages/dashboard.js +0 -25
  798. package/dashboards/html/src/pages/dlp.js +0 -112
  799. package/dashboards/html/src/pages/domain-status.js +0 -182
  800. package/dashboards/html/src/pages/guardrails.js +0 -127
  801. package/dashboards/html/src/pages/journal.js +0 -54
  802. package/dashboards/html/src/pages/knowledge-contributions.js +0 -319
  803. package/dashboards/html/src/pages/knowledge.js +0 -251
  804. package/dashboards/html/src/pages/login.js +0 -84
  805. package/dashboards/html/src/pages/messages.js +0 -90
  806. package/dashboards/html/src/pages/settings.js +0 -656
  807. package/dashboards/html/src/pages/skill-connections.js +0 -293
  808. package/dashboards/html/src/pages/skills.js +0 -114
  809. package/dashboards/html/src/pages/users.js +0 -62
  810. package/dashboards/html/src/pages/vault.js +0 -105
  811. package/dashboards/html/src/pages/workforce.js +0 -418
  812. package/dashboards/html/src/router.js +0 -91
  813. package/dashboards/html/src/utils/escape.js +0 -7
  814. package/dashboards/html/src/utils/time.js +0 -16
  815. package/dashboards/html/src/utils/toast.js +0 -10
  816. package/dashboards/java/AgenticMailDashboard.java +0 -161
  817. package/dashboards/java/handlers/ActivityHandler.java +0 -42
  818. package/dashboards/java/handlers/AgentsHandler.java +0 -807
  819. package/dashboards/java/handlers/ApiKeysHandler.java +0 -201
  820. package/dashboards/java/handlers/ApprovalsHandler.java +0 -43
  821. package/dashboards/java/handlers/AuditHandler.java +0 -95
  822. package/dashboards/java/handlers/AuthHandler.java +0 -71
  823. package/dashboards/java/handlers/CommunitySkillsHandler.java +0 -45
  824. package/dashboards/java/handlers/ComplianceHandler.java +0 -192
  825. package/dashboards/java/handlers/DashboardHandler.java +0 -98
  826. package/dashboards/java/handlers/DlpHandler.java +0 -230
  827. package/dashboards/java/handlers/DomainStatusHandler.java +0 -58
  828. package/dashboards/java/handlers/GuardrailsHandler.java +0 -272
  829. package/dashboards/java/handlers/JournalHandler.java +0 -130
  830. package/dashboards/java/handlers/KnowledgeContributionsHandler.java +0 -51
  831. package/dashboards/java/handlers/KnowledgeHandler.java +0 -49
  832. package/dashboards/java/handlers/MessagesHandler.java +0 -168
  833. package/dashboards/java/handlers/SettingsHandler.java +0 -1017
  834. package/dashboards/java/handlers/SkillConnectionsHandler.java +0 -61
  835. package/dashboards/java/handlers/SkillsHandler.java +0 -198
  836. package/dashboards/java/handlers/UsersHandler.java +0 -118
  837. package/dashboards/java/handlers/VaultHandler.java +0 -168
  838. package/dashboards/java/handlers/WorkforceHandler.java +0 -64
  839. package/dashboards/java/services/ApiClient.java +0 -233
  840. package/dashboards/java/services/SessionManager.java +0 -138
  841. package/dashboards/java/static/styles.css +0 -546
  842. package/dashboards/java/templates/Components.java +0 -142
  843. package/dashboards/java/templates/Helpers.java +0 -106
  844. package/dashboards/java/templates/Layout.java +0 -106
  845. package/dashboards/laravel/controllers/ActivityController.php +0 -18
  846. package/dashboards/laravel/controllers/AgentController.php +0 -250
  847. package/dashboards/laravel/controllers/ApiKeyController.php +0 -73
  848. package/dashboards/laravel/controllers/ApprovalsController.php +0 -18
  849. package/dashboards/laravel/controllers/AuditController.php +0 -31
  850. package/dashboards/laravel/controllers/AuthController.php +0 -44
  851. package/dashboards/laravel/controllers/CommunitySkillsController.php +0 -18
  852. package/dashboards/laravel/controllers/ComplianceController.php +0 -55
  853. package/dashboards/laravel/controllers/DashboardController.php +0 -28
  854. package/dashboards/laravel/controllers/DlpController.php +0 -88
  855. package/dashboards/laravel/controllers/DomainStatusController.php +0 -18
  856. package/dashboards/laravel/controllers/GuardrailController.php +0 -110
  857. package/dashboards/laravel/controllers/JournalController.php +0 -44
  858. package/dashboards/laravel/controllers/KnowledgeContributionsController.php +0 -18
  859. package/dashboards/laravel/controllers/KnowledgeController.php +0 -18
  860. package/dashboards/laravel/controllers/MessageController.php +0 -47
  861. package/dashboards/laravel/controllers/SettingController.php +0 -258
  862. package/dashboards/laravel/controllers/SkillConnectionsController.php +0 -18
  863. package/dashboards/laravel/controllers/SkillController.php +0 -74
  864. package/dashboards/laravel/controllers/UserController.php +0 -47
  865. package/dashboards/laravel/controllers/VaultController.php +0 -94
  866. package/dashboards/laravel/controllers/WorkforceController.php +0 -18
  867. package/dashboards/laravel/index.php +0 -375
  868. package/dashboards/laravel/lib/Api.php +0 -73
  869. package/dashboards/laravel/lib/Helpers.php +0 -123
  870. package/dashboards/laravel/public/styles.css +0 -175
  871. package/dashboards/laravel/views/activity.php +0 -127
  872. package/dashboards/laravel/views/agent-detail.php +0 -534
  873. package/dashboards/laravel/views/agents.php +0 -204
  874. package/dashboards/laravel/views/api-keys.php +0 -55
  875. package/dashboards/laravel/views/approvals.php +0 -152
  876. package/dashboards/laravel/views/audit.php +0 -30
  877. package/dashboards/laravel/views/community-skills.php +0 -131
  878. package/dashboards/laravel/views/compliance.php +0 -48
  879. package/dashboards/laravel/views/components/modal.php +0 -59
  880. package/dashboards/laravel/views/components/stats.php +0 -21
  881. package/dashboards/laravel/views/components/table.php +0 -35
  882. package/dashboards/laravel/views/dashboard.php +0 -31
  883. package/dashboards/laravel/views/dlp.php +0 -87
  884. package/dashboards/laravel/views/domain-status.php +0 -167
  885. package/dashboards/laravel/views/guardrails.php +0 -95
  886. package/dashboards/laravel/views/journal.php +0 -50
  887. package/dashboards/laravel/views/knowledge-contributions.php +0 -185
  888. package/dashboards/laravel/views/knowledge.php +0 -167
  889. package/dashboards/laravel/views/layout.php +0 -95
  890. package/dashboards/laravel/views/login.php +0 -45
  891. package/dashboards/laravel/views/messages.php +0 -60
  892. package/dashboards/laravel/views/settings.php +0 -622
  893. package/dashboards/laravel/views/skill-connections.php +0 -192
  894. package/dashboards/laravel/views/skills.php +0 -74
  895. package/dashboards/laravel/views/users.php +0 -42
  896. package/dashboards/laravel/views/vault.php +0 -80
  897. package/dashboards/laravel/views/workforce.php +0 -265
  898. package/dashboards/php/components/layout.php +0 -85
  899. package/dashboards/php/components/modal.php +0 -22
  900. package/dashboards/php/components/stats.php +0 -20
  901. package/dashboards/php/components/table.php +0 -33
  902. package/dashboards/php/index.php +0 -696
  903. package/dashboards/php/lib/api.php +0 -37
  904. package/dashboards/php/lib/auth.php +0 -47
  905. package/dashboards/php/lib/helpers.php +0 -69
  906. package/dashboards/php/pages/activity.php +0 -35
  907. package/dashboards/php/pages/agent-detail.php +0 -552
  908. package/dashboards/php/pages/agents.php +0 -185
  909. package/dashboards/php/pages/api-keys.php +0 -34
  910. package/dashboards/php/pages/approvals.php +0 -36
  911. package/dashboards/php/pages/audit.php +0 -31
  912. package/dashboards/php/pages/community-skills.php +0 -39
  913. package/dashboards/php/pages/compliance.php +0 -38
  914. package/dashboards/php/pages/dashboard.php +0 -29
  915. package/dashboards/php/pages/dlp.php +0 -65
  916. package/dashboards/php/pages/domain-status.php +0 -87
  917. package/dashboards/php/pages/guardrails.php +0 -70
  918. package/dashboards/php/pages/journal.php +0 -53
  919. package/dashboards/php/pages/knowledge-contributions.php +0 -47
  920. package/dashboards/php/pages/knowledge.php +0 -43
  921. package/dashboards/php/pages/login.php +0 -34
  922. package/dashboards/php/pages/messages.php +0 -53
  923. package/dashboards/php/pages/settings.php +0 -687
  924. package/dashboards/php/pages/skill-connections.php +0 -94
  925. package/dashboards/php/pages/skills.php +0 -70
  926. package/dashboards/php/pages/users.php +0 -37
  927. package/dashboards/php/pages/vault.php +0 -70
  928. package/dashboards/php/pages/workforce.php +0 -89
  929. package/dashboards/php/public/styles.css +0 -175
  930. package/dashboards/python/app.py +0 -91
  931. package/dashboards/python/routes/__init__.py +0 -0
  932. package/dashboards/python/routes/activity.py +0 -11
  933. package/dashboards/python/routes/agents.py +0 -296
  934. package/dashboards/python/routes/api_keys.py +0 -49
  935. package/dashboards/python/routes/approvals.py +0 -11
  936. package/dashboards/python/routes/audit.py +0 -33
  937. package/dashboards/python/routes/auth.py +0 -30
  938. package/dashboards/python/routes/community_skills.py +0 -11
  939. package/dashboards/python/routes/compliance.py +0 -50
  940. package/dashboards/python/routes/dashboard.py +0 -32
  941. package/dashboards/python/routes/dlp.py +0 -64
  942. package/dashboards/python/routes/domain_status.py +0 -11
  943. package/dashboards/python/routes/guardrails.py +0 -79
  944. package/dashboards/python/routes/journal.py +0 -40
  945. package/dashboards/python/routes/knowledge.py +0 -11
  946. package/dashboards/python/routes/knowledge_contributions.py +0 -11
  947. package/dashboards/python/routes/messages.py +0 -46
  948. package/dashboards/python/routes/settings.py +0 -260
  949. package/dashboards/python/routes/skill_connections.py +0 -11
  950. package/dashboards/python/routes/skills.py +0 -59
  951. package/dashboards/python/routes/users.py +0 -43
  952. package/dashboards/python/routes/vault.py +0 -59
  953. package/dashboards/python/routes/workforce.py +0 -11
  954. package/dashboards/python/static/styles.css +0 -175
  955. package/dashboards/python/templates/activity.html +0 -87
  956. package/dashboards/python/templates/agent_detail.html +0 -552
  957. package/dashboards/python/templates/agents.html +0 -246
  958. package/dashboards/python/templates/api_keys.html +0 -64
  959. package/dashboards/python/templates/approvals.html +0 -86
  960. package/dashboards/python/templates/audit.html +0 -50
  961. package/dashboards/python/templates/community-skills.html +0 -69
  962. package/dashboards/python/templates/compliance.html +0 -74
  963. package/dashboards/python/templates/components/modal.html +0 -43
  964. package/dashboards/python/templates/components/stats.html +0 -26
  965. package/dashboards/python/templates/components/table.html +0 -43
  966. package/dashboards/python/templates/dashboard.html +0 -34
  967. package/dashboards/python/templates/dlp.html +0 -159
  968. package/dashboards/python/templates/domain-status.html +0 -64
  969. package/dashboards/python/templates/guardrails.html +0 -131
  970. package/dashboards/python/templates/journal.html +0 -66
  971. package/dashboards/python/templates/knowledge-contributions.html +0 -71
  972. package/dashboards/python/templates/knowledge.html +0 -69
  973. package/dashboards/python/templates/layout.html +0 -121
  974. package/dashboards/python/templates/login.html +0 -36
  975. package/dashboards/python/templates/messages.html +0 -90
  976. package/dashboards/python/templates/settings.html +0 -624
  977. package/dashboards/python/templates/skill-connections.html +0 -72
  978. package/dashboards/python/templates/skills.html +0 -89
  979. package/dashboards/python/templates/users.html +0 -70
  980. package/dashboards/python/templates/vault.html +0 -73
  981. package/dashboards/python/templates/workforce.html +0 -112
  982. package/dashboards/python/utils/__init__.py +0 -0
  983. package/dashboards/python/utils/api.py +0 -35
  984. package/dashboards/python/utils/helpers.py +0 -90
  985. package/dashboards/rails/app.rb +0 -64
  986. package/dashboards/rails/helpers/api.rb +0 -39
  987. package/dashboards/rails/helpers/auth.rb +0 -11
  988. package/dashboards/rails/helpers/view.rb +0 -95
  989. package/dashboards/rails/public/styles.css +0 -546
  990. package/dashboards/rails/routes/activity.rb +0 -10
  991. package/dashboards/rails/routes/agents.rb +0 -173
  992. package/dashboards/rails/routes/api_keys.rb +0 -30
  993. package/dashboards/rails/routes/approvals.rb +0 -10
  994. package/dashboards/rails/routes/audit.rb +0 -15
  995. package/dashboards/rails/routes/auth.rb +0 -29
  996. package/dashboards/rails/routes/community_skills.rb +0 -11
  997. package/dashboards/rails/routes/compliance.rb +0 -25
  998. package/dashboards/rails/routes/dashboard.rb +0 -13
  999. package/dashboards/rails/routes/dlp.rb +0 -40
  1000. package/dashboards/rails/routes/domain_status.rb +0 -16
  1001. package/dashboards/rails/routes/guardrails.rb +0 -51
  1002. package/dashboards/rails/routes/journal.rb +0 -24
  1003. package/dashboards/rails/routes/knowledge.rb +0 -11
  1004. package/dashboards/rails/routes/knowledge_contributions.rb +0 -12
  1005. package/dashboards/rails/routes/messages.rb +0 -22
  1006. package/dashboards/rails/routes/settings.rb +0 -196
  1007. package/dashboards/rails/routes/skill_connections.rb +0 -15
  1008. package/dashboards/rails/routes/skills.rb +0 -38
  1009. package/dashboards/rails/routes/users.rb +0 -18
  1010. package/dashboards/rails/routes/vault.rb +0 -37
  1011. package/dashboards/rails/routes/workforce.rb +0 -16
  1012. package/dashboards/rails/views/activity.erb +0 -56
  1013. package/dashboards/rails/views/agent_detail.erb +0 -550
  1014. package/dashboards/rails/views/agents.erb +0 -214
  1015. package/dashboards/rails/views/api_keys.erb +0 -52
  1016. package/dashboards/rails/views/approvals.erb +0 -60
  1017. package/dashboards/rails/views/audit.erb +0 -38
  1018. package/dashboards/rails/views/community_skills.erb +0 -69
  1019. package/dashboards/rails/views/compliance.erb +0 -69
  1020. package/dashboards/rails/views/dashboard.erb +0 -46
  1021. package/dashboards/rails/views/dlp.erb +0 -104
  1022. package/dashboards/rails/views/domain_status.erb +0 -75
  1023. package/dashboards/rails/views/guardrails.erb +0 -107
  1024. package/dashboards/rails/views/journal.erb +0 -65
  1025. package/dashboards/rails/views/knowledge.erb +0 -67
  1026. package/dashboards/rails/views/knowledge_contributions.erb +0 -70
  1027. package/dashboards/rails/views/layout.erb +0 -61
  1028. package/dashboards/rails/views/login.erb +0 -47
  1029. package/dashboards/rails/views/messages.erb +0 -62
  1030. package/dashboards/rails/views/settings.erb +0 -578
  1031. package/dashboards/rails/views/skill_connections.erb +0 -109
  1032. package/dashboards/rails/views/skills.erb +0 -66
  1033. package/dashboards/rails/views/users.erb +0 -53
  1034. package/dashboards/rails/views/vault.erb +0 -66
  1035. package/dashboards/rails/views/workforce.erb +0 -124
  1036. package/dashboards/ruby/app.rb +0 -74
  1037. package/dashboards/ruby/helpers/api.rb +0 -63
  1038. package/dashboards/ruby/helpers/auth.rb +0 -20
  1039. package/dashboards/ruby/helpers/view.rb +0 -91
  1040. package/dashboards/ruby/public/styles.css +0 -546
  1041. package/dashboards/ruby/routes/activity.rb +0 -10
  1042. package/dashboards/ruby/routes/agents.rb +0 -197
  1043. package/dashboards/ruby/routes/api_keys.rb +0 -43
  1044. package/dashboards/ruby/routes/approvals.rb +0 -10
  1045. package/dashboards/ruby/routes/audit.rb +0 -15
  1046. package/dashboards/ruby/routes/auth.rb +0 -29
  1047. package/dashboards/ruby/routes/community_skills.rb +0 -11
  1048. package/dashboards/ruby/routes/compliance.rb +0 -28
  1049. package/dashboards/ruby/routes/dashboard.rb +0 -13
  1050. package/dashboards/ruby/routes/dlp.rb +0 -55
  1051. package/dashboards/ruby/routes/domain_status.rb +0 -16
  1052. package/dashboards/ruby/routes/guardrails.rb +0 -77
  1053. package/dashboards/ruby/routes/journal.rb +0 -24
  1054. package/dashboards/ruby/routes/knowledge.rb +0 -11
  1055. package/dashboards/ruby/routes/knowledge_contributions.rb +0 -12
  1056. package/dashboards/ruby/routes/messages.rb +0 -27
  1057. package/dashboards/ruby/routes/settings.rb +0 -214
  1058. package/dashboards/ruby/routes/skill_connections.rb +0 -15
  1059. package/dashboards/ruby/routes/skills.rb +0 -50
  1060. package/dashboards/ruby/routes/users.rb +0 -26
  1061. package/dashboards/ruby/routes/vault.rb +0 -49
  1062. package/dashboards/ruby/routes/workforce.rb +0 -16
  1063. package/dashboards/ruby/views/activity.erb +0 -56
  1064. package/dashboards/ruby/views/agent_detail.erb +0 -550
  1065. package/dashboards/ruby/views/agents.erb +0 -214
  1066. package/dashboards/ruby/views/api_keys.erb +0 -59
  1067. package/dashboards/ruby/views/approvals.erb +0 -60
  1068. package/dashboards/ruby/views/audit.erb +0 -38
  1069. package/dashboards/ruby/views/community_skills.erb +0 -69
  1070. package/dashboards/ruby/views/compliance.erb +0 -45
  1071. package/dashboards/ruby/views/dashboard.erb +0 -46
  1072. package/dashboards/ruby/views/dlp.erb +0 -88
  1073. package/dashboards/ruby/views/domain_status.erb +0 -75
  1074. package/dashboards/ruby/views/guardrails.erb +0 -103
  1075. package/dashboards/ruby/views/journal.erb +0 -53
  1076. package/dashboards/ruby/views/knowledge.erb +0 -67
  1077. package/dashboards/ruby/views/knowledge_contributions.erb +0 -70
  1078. package/dashboards/ruby/views/layout.erb +0 -61
  1079. package/dashboards/ruby/views/login.erb +0 -31
  1080. package/dashboards/ruby/views/messages.erb +0 -51
  1081. package/dashboards/ruby/views/settings.erb +0 -579
  1082. package/dashboards/ruby/views/skill_connections.erb +0 -109
  1083. package/dashboards/ruby/views/skills.erb +0 -66
  1084. package/dashboards/ruby/views/users.erb +0 -53
  1085. package/dashboards/ruby/views/vault.erb +0 -66
  1086. package/dashboards/ruby/views/workforce.erb +0 -124
  1087. package/dashboards/shared/styles.css +0 -546
  1088. package/dashboards/shared-styles.css +0 -546
@@ -1,1568 +0,0 @@
1
- 'use strict';
2
-
3
- var test = require('tape');
4
- var hasPropertyDescriptors = require('has-property-descriptors')();
5
- var iconv = require('iconv-lite');
6
- var mockProperty = require('mock-property');
7
- var hasOverrideMistake = require('has-override-mistake')();
8
- var SaferBuffer = require('safer-buffer').Buffer;
9
- var v = require('es-value-fixtures');
10
- var inspect = require('object-inspect');
11
- var emptyTestCases = require('./empty-keys-cases').emptyTestCases;
12
- var hasProto = require('has-proto')();
13
-
14
- var qs = require('../');
15
- var utils = require('../lib/utils');
16
-
17
- test('parse()', function (t) {
18
- t.test('parses a simple string', function (st) {
19
- st.deepEqual(qs.parse('0=foo'), { 0: 'foo' });
20
- st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' });
21
- st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } });
22
- st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } });
23
- st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } });
24
- st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null });
25
- st.deepEqual(qs.parse('foo'), { foo: '' });
26
- st.deepEqual(qs.parse('foo='), { foo: '' });
27
- st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' });
28
- st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' });
29
- st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' });
30
- st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' });
31
- st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' });
32
- st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null });
33
- st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' });
34
- st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), {
35
- cht: 'p3',
36
- chd: 't:60,40',
37
- chs: '250x100',
38
- chl: 'Hello|World'
39
- });
40
- st.end();
41
- });
42
-
43
- t.test('comma: false', function (st) {
44
- st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] });
45
- st.deepEqual(qs.parse('a[0]=b&a[1]=c'), { a: ['b', 'c'] });
46
- st.deepEqual(qs.parse('a=b,c'), { a: 'b,c' });
47
- st.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] });
48
- st.end();
49
- });
50
-
51
- t.test('comma: true', function (st) {
52
- st.deepEqual(qs.parse('a[]=b&a[]=c', { comma: true }), { a: ['b', 'c'] });
53
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { comma: true }), { a: ['b', 'c'] });
54
- st.deepEqual(qs.parse('a=b,c', { comma: true }), { a: ['b', 'c'] });
55
- st.deepEqual(qs.parse('a=b&a=c', { comma: true }), { a: ['b', 'c'] });
56
- st.end();
57
- });
58
-
59
- t.test('allows enabling dot notation', function (st) {
60
- st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' });
61
- st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } });
62
-
63
- st.end();
64
- });
65
-
66
- t.test('decode dot keys correctly', function (st) {
67
- st.deepEqual(
68
- qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: false, decodeDotInKeys: false }),
69
- { 'name%2Eobj.first': 'John', 'name%2Eobj.last': 'Doe' },
70
- 'with allowDots false and decodeDotInKeys false'
71
- );
72
- st.deepEqual(
73
- qs.parse('name.obj.first=John&name.obj.last=Doe', { allowDots: true, decodeDotInKeys: false }),
74
- { name: { obj: { first: 'John', last: 'Doe' } } },
75
- 'with allowDots false and decodeDotInKeys false'
76
- );
77
- st.deepEqual(
78
- qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: true, decodeDotInKeys: false }),
79
- { 'name%2Eobj': { first: 'John', last: 'Doe' } },
80
- 'with allowDots true and decodeDotInKeys false'
81
- );
82
- st.deepEqual(
83
- qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { allowDots: true, decodeDotInKeys: true }),
84
- { 'name.obj': { first: 'John', last: 'Doe' } },
85
- 'with allowDots true and decodeDotInKeys true'
86
- );
87
-
88
- st.deepEqual(
89
- qs.parse(
90
- 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
91
- { allowDots: false, decodeDotInKeys: false }
92
- ),
93
- { 'name%2Eobj%2Esubobject.first%2Egodly%2Ename': 'John', 'name%2Eobj%2Esubobject.last': 'Doe' },
94
- 'with allowDots false and decodeDotInKeys false'
95
- );
96
- st.deepEqual(
97
- qs.parse(
98
- 'name.obj.subobject.first.godly.name=John&name.obj.subobject.last=Doe',
99
- { allowDots: true, decodeDotInKeys: false }
100
- ),
101
- { name: { obj: { subobject: { first: { godly: { name: 'John' } }, last: 'Doe' } } } },
102
- 'with allowDots true and decodeDotInKeys false'
103
- );
104
- st.deepEqual(
105
- qs.parse(
106
- 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
107
- { allowDots: true, decodeDotInKeys: true }
108
- ),
109
- { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
110
- 'with allowDots true and decodeDotInKeys true'
111
- );
112
- st.deepEqual(
113
- qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe'),
114
- { 'name%2Eobj.first': 'John', 'name%2Eobj.last': 'Doe' },
115
- 'with allowDots and decodeDotInKeys undefined'
116
- );
117
-
118
- st.end();
119
- });
120
-
121
- t.test('decodes dot in key of object, and allow enabling dot notation when decodeDotInKeys is set to true and allowDots is undefined', function (st) {
122
- st.deepEqual(
123
- qs.parse(
124
- 'name%252Eobj%252Esubobject.first%252Egodly%252Ename=John&name%252Eobj%252Esubobject.last=Doe',
125
- { decodeDotInKeys: true }
126
- ),
127
- { 'name.obj.subobject': { 'first.godly.name': 'John', last: 'Doe' } },
128
- 'with allowDots undefined and decodeDotInKeys true'
129
- );
130
-
131
- st.end();
132
- });
133
-
134
- t.test('throws when decodeDotInKeys is not of type boolean', function (st) {
135
- st['throws'](
136
- function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: 'foobar' }); },
137
- TypeError
138
- );
139
-
140
- st['throws'](
141
- function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: 0 }); },
142
- TypeError
143
- );
144
- st['throws'](
145
- function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: NaN }); },
146
- TypeError
147
- );
148
-
149
- st['throws'](
150
- function () { qs.parse('foo[]&bar=baz', { decodeDotInKeys: null }); },
151
- TypeError
152
- );
153
-
154
- st.end();
155
- });
156
-
157
- t.test('allows empty arrays in obj values', function (st) {
158
- st.deepEqual(qs.parse('foo[]&bar=baz', { allowEmptyArrays: true }), { foo: [], bar: 'baz' });
159
- st.deepEqual(qs.parse('foo[]&bar=baz', { allowEmptyArrays: false }), { foo: [''], bar: 'baz' });
160
-
161
- st.end();
162
- });
163
-
164
- t.test('throws when allowEmptyArrays is not of type boolean', function (st) {
165
- st['throws'](
166
- function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: 'foobar' }); },
167
- TypeError
168
- );
169
-
170
- st['throws'](
171
- function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: 0 }); },
172
- TypeError
173
- );
174
- st['throws'](
175
- function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: NaN }); },
176
- TypeError
177
- );
178
-
179
- st['throws'](
180
- function () { qs.parse('foo[]&bar=baz', { allowEmptyArrays: null }); },
181
- TypeError
182
- );
183
-
184
- st.end();
185
- });
186
-
187
- t.test('allowEmptyArrays + strictNullHandling', function (st) {
188
- st.deepEqual(
189
- qs.parse('testEmptyArray[]', { strictNullHandling: true, allowEmptyArrays: true }),
190
- { testEmptyArray: [] }
191
- );
192
-
193
- st.end();
194
- });
195
-
196
- t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string');
197
- t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string');
198
- t.deepEqual(
199
- qs.parse('a[b][c][d][e][f][g][h]=i'),
200
- { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } },
201
- 'defaults to a depth of 5'
202
- );
203
-
204
- t.test('only parses one level when depth = 1', function (st) {
205
- st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } });
206
- st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } });
207
- st.end();
208
- });
209
-
210
- t.test('uses original key when depth = 0', function (st) {
211
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: 0 }), { 'a[0]': 'b', 'a[1]': 'c' });
212
- st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: 0 }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' });
213
- st.end();
214
- });
215
-
216
- t.test('uses original key when depth = false', function (st) {
217
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: false }), { 'a[0]': 'b', 'a[1]': 'c' });
218
- st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: false }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' });
219
- st.end();
220
- });
221
-
222
- t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array');
223
-
224
- t.test('parses an explicit array', function (st) {
225
- st.deepEqual(qs.parse('a[]=b'), { a: ['b'] });
226
- st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] });
227
- st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] });
228
- st.end();
229
- });
230
-
231
- t.test('parses a mix of simple and explicit arrays', function (st) {
232
- st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
233
- st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
234
- st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] });
235
- st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] });
236
-
237
- st.deepEqual(qs.parse('a[1]=b&a=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
238
- st.deepEqual(qs.parse('a[]=b&a=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } });
239
- st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
240
-
241
- st.deepEqual(qs.parse('a=b&a[1]=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
242
- st.deepEqual(qs.parse('a=b&a[]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } });
243
- st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
244
-
245
- st.end();
246
- });
247
-
248
- t.test('parses a nested array', function (st) {
249
- st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } });
250
- st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } });
251
- st.end();
252
- });
253
-
254
- t.test('allows to specify array indices', function (st) {
255
- st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] });
256
- st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] });
257
- st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 20 }), { a: ['c'] });
258
- st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 0 }), { a: { 1: 'c' } });
259
- st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] });
260
- st.end();
261
- });
262
-
263
- t.test('limits specific array indices to arrayLimit', function (st) {
264
- st.deepEqual(qs.parse('a[19]=a', { arrayLimit: 20 }), { a: ['a'] });
265
- st.deepEqual(qs.parse('a[20]=a', { arrayLimit: 20 }), { a: { 20: 'a' } });
266
-
267
- st.deepEqual(qs.parse('a[19]=a'), { a: ['a'] });
268
- st.deepEqual(qs.parse('a[20]=a'), { a: { 20: 'a' } });
269
- st.end();
270
- });
271
-
272
- t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number');
273
-
274
- t.test('supports encoded = signs', function (st) {
275
- st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' });
276
- st.end();
277
- });
278
-
279
- t.test('is ok with url encoded strings', function (st) {
280
- st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } });
281
- st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } });
282
- st.end();
283
- });
284
-
285
- t.test('allows brackets in the value', function (st) {
286
- st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' });
287
- st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' });
288
- st.end();
289
- });
290
-
291
- t.test('allows empty values', function (st) {
292
- st.deepEqual(qs.parse(''), {});
293
- st.deepEqual(qs.parse(null), {});
294
- st.deepEqual(qs.parse(undefined), {});
295
- st.end();
296
- });
297
-
298
- t.test('transforms arrays to objects', function (st) {
299
- st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
300
- st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
301
- st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
302
- st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
303
- st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
304
- st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
305
-
306
- st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { 0: 'b', t: 'u' } });
307
- st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { 0: 'b', t: 'u', hasOwnProperty: 'c' } });
308
- st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { 0: 'b', x: 'y' } });
309
- st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { 0: 'b', hasOwnProperty: 'c', x: 'y' } });
310
- st.end();
311
- });
312
-
313
- t.test('transforms arrays to objects (dot notation)', function (st) {
314
- st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } });
315
- st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } });
316
- st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } });
317
- st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] });
318
- st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] });
319
- st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
320
- st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
321
- st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { 0: 'bar', bad: 'baz' } });
322
- st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
323
- st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
324
- st.end();
325
- });
326
-
327
- t.test('correctly prunes undefined values when converting an array to an object', function (st) {
328
- st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { 2: 'b', 99999999: 'c' } });
329
- st.end();
330
- });
331
-
332
- t.test('supports malformed uri characters', function (st) {
333
- st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null });
334
- st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' });
335
- st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' });
336
- st.end();
337
- });
338
-
339
- t.test('doesn\'t produce empty keys', function (st) {
340
- st.deepEqual(qs.parse('_r=1&'), { _r: '1' });
341
- st.end();
342
- });
343
-
344
- t.test('cannot access Object prototype', function (st) {
345
- qs.parse('constructor[prototype][bad]=bad');
346
- qs.parse('bad[constructor][prototype][bad]=bad');
347
- st.equal(typeof Object.prototype.bad, 'undefined');
348
- st.end();
349
- });
350
-
351
- t.test('parses arrays of objects', function (st) {
352
- st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
353
- st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] });
354
- st.end();
355
- });
356
-
357
- t.test('allows for empty strings in arrays', function (st) {
358
- st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] });
359
-
360
- st.deepEqual(
361
- qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }),
362
- { a: ['b', null, 'c', ''] },
363
- 'with arrayLimit 20 + array indices: null then empty string works'
364
- );
365
- st.deepEqual(
366
- qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }),
367
- { a: { 0: 'b', 1: null, 2: 'c', 3: '' } },
368
- 'with arrayLimit 0 + array brackets: null then empty string works'
369
- );
370
-
371
- st.deepEqual(
372
- qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }),
373
- { a: ['b', '', 'c', null] },
374
- 'with arrayLimit 20 + array indices: empty string then null works'
375
- );
376
- st.deepEqual(
377
- qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }),
378
- { a: { 0: 'b', 1: '', 2: 'c', 3: null } },
379
- 'with arrayLimit 0 + array brackets: empty string then null works'
380
- );
381
-
382
- st.deepEqual(
383
- qs.parse('a[]=&a[]=b&a[]=c'),
384
- { a: ['', 'b', 'c'] },
385
- 'array brackets: empty strings work'
386
- );
387
- st.end();
388
- });
389
-
390
- t.test('compacts sparse arrays', function (st) {
391
- st.deepEqual(qs.parse('a[10]=1&a[2]=2', { arrayLimit: 20 }), { a: ['2', '1'] });
392
- st.deepEqual(qs.parse('a[1][b][2][c]=1', { arrayLimit: 20 }), { a: [{ b: [{ c: '1' }] }] });
393
- st.deepEqual(qs.parse('a[1][2][3][c]=1', { arrayLimit: 20 }), { a: [[[{ c: '1' }]]] });
394
- st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { arrayLimit: 20 }), { a: [[[{ c: ['1'] }]]] });
395
- st.end();
396
- });
397
-
398
- t.test('parses sparse arrays', function (st) {
399
- /* eslint no-sparse-arrays: 0 */
400
- st.deepEqual(qs.parse('a[4]=1&a[1]=2', { allowSparse: true }), { a: [, '2', , , '1'] });
401
- st.deepEqual(qs.parse('a[1][b][2][c]=1', { allowSparse: true }), { a: [, { b: [, , { c: '1' }] }] });
402
- st.deepEqual(qs.parse('a[1][2][3][c]=1', { allowSparse: true }), { a: [, [, , [, , , { c: '1' }]]] });
403
- st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { allowSparse: true }), { a: [, [, , [, , , { c: [, '1'] }]]] });
404
- st.end();
405
- });
406
-
407
- t.test('parses semi-parsed strings', function (st) {
408
- st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } });
409
- st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } });
410
- st.end();
411
- });
412
-
413
- t.test('parses buffers correctly', function (st) {
414
- var b = SaferBuffer.from('test');
415
- st.deepEqual(qs.parse({ a: b }), { a: b });
416
- st.end();
417
- });
418
-
419
- t.test('parses jquery-param strings', function (st) {
420
- // readable = 'filter[0][]=int1&filter[0][]==&filter[0][]=77&filter[]=and&filter[2][]=int2&filter[2][]==&filter[2][]=8'
421
- var encoded = 'filter%5B0%5D%5B%5D=int1&filter%5B0%5D%5B%5D=%3D&filter%5B0%5D%5B%5D=77&filter%5B%5D=and&filter%5B2%5D%5B%5D=int2&filter%5B2%5D%5B%5D=%3D&filter%5B2%5D%5B%5D=8';
422
- var expected = { filter: [['int1', '=', '77'], 'and', ['int2', '=', '8']] };
423
- st.deepEqual(qs.parse(encoded), expected);
424
- st.end();
425
- });
426
-
427
- t.test('continues parsing when no parent is found', function (st) {
428
- st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' });
429
- st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' });
430
- st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' });
431
- st.end();
432
- });
433
-
434
- t.test('does not error when parsing a very long array', function (st) {
435
- var str = 'a[]=a';
436
- while (Buffer.byteLength(str) < 128 * 1024) {
437
- str = str + '&' + str;
438
- }
439
-
440
- st.doesNotThrow(function () {
441
- qs.parse(str);
442
- });
443
-
444
- st.end();
445
- });
446
-
447
- t.test('does not throw when a native prototype has an enumerable property', function (st) {
448
- st.intercept(Object.prototype, 'crash', { value: '' });
449
- st.intercept(Array.prototype, 'crash', { value: '' });
450
-
451
- st.doesNotThrow(qs.parse.bind(null, 'a=b'));
452
- st.deepEqual(qs.parse('a=b'), { a: 'b' });
453
- st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c'));
454
- st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
455
-
456
- st.end();
457
- });
458
-
459
- t.test('parses a string with an alternative string delimiter', function (st) {
460
- st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' });
461
- st.end();
462
- });
463
-
464
- t.test('parses a string with an alternative RegExp delimiter', function (st) {
465
- st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' });
466
- st.end();
467
- });
468
-
469
- t.test('does not use non-splittable objects as delimiters', function (st) {
470
- st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' });
471
- st.end();
472
- });
473
-
474
- t.test('allows overriding parameter limit', function (st) {
475
- st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' });
476
- st.end();
477
- });
478
-
479
- t.test('allows setting the parameter limit to Infinity', function (st) {
480
- st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' });
481
- st.end();
482
- });
483
-
484
- t.test('allows overriding array limit', function (st) {
485
- st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } });
486
- st.deepEqual(qs.parse('a[0]=b', { arrayLimit: 0 }), { a: { 0: 'b' } });
487
-
488
- st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } });
489
- st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: 0 }), { a: { '-1': 'b' } });
490
-
491
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: -1 }), { a: { 0: 'b', 1: 'c' } });
492
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } });
493
-
494
- st.end();
495
- });
496
-
497
- t.test('allows disabling array parsing', function (st) {
498
- var indices = qs.parse('a[0]=b&a[1]=c', { parseArrays: false });
499
- st.deepEqual(indices, { a: { 0: 'b', 1: 'c' } });
500
- st.equal(Array.isArray(indices.a), false, 'parseArrays:false, indices case is not an array');
501
-
502
- var emptyBrackets = qs.parse('a[]=b', { parseArrays: false });
503
- st.deepEqual(emptyBrackets, { a: { 0: 'b' } });
504
- st.equal(Array.isArray(emptyBrackets.a), false, 'parseArrays:false, empty brackets case is not an array');
505
-
506
- st.end();
507
- });
508
-
509
- t.test('allows for query string prefix', function (st) {
510
- st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' });
511
- st.deepEqual(qs.parse('foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' });
512
- st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: false }), { '?foo': 'bar' });
513
-
514
- st.end();
515
- });
516
-
517
- t.test('parses an object', function (st) {
518
- var input = {
519
- 'user[name]': { 'pop[bob]': 3 },
520
- 'user[email]': null
521
- };
522
-
523
- var expected = {
524
- user: {
525
- name: { 'pop[bob]': 3 },
526
- email: null
527
- }
528
- };
529
-
530
- var result = qs.parse(input);
531
-
532
- st.deepEqual(result, expected);
533
- st.end();
534
- });
535
-
536
- t.test('parses string with comma as array divider', function (st) {
537
- st.deepEqual(qs.parse('foo=bar,tee', { comma: true }), { foo: ['bar', 'tee'] });
538
- st.deepEqual(qs.parse('foo[bar]=coffee,tee', { comma: true }), { foo: { bar: ['coffee', 'tee'] } });
539
- st.deepEqual(qs.parse('foo=', { comma: true }), { foo: '' });
540
- st.deepEqual(qs.parse('foo', { comma: true }), { foo: '' });
541
- st.deepEqual(qs.parse('foo', { comma: true, strictNullHandling: true }), { foo: null });
542
-
543
- // test cases inversed from from stringify tests
544
- st.deepEqual(qs.parse('a[0]=c'), { a: ['c'] });
545
- st.deepEqual(qs.parse('a[]=c'), { a: ['c'] });
546
- st.deepEqual(qs.parse('a[]=c', { comma: true }), { a: ['c'] });
547
-
548
- st.deepEqual(qs.parse('a[0]=c&a[1]=d'), { a: ['c', 'd'] });
549
- st.deepEqual(qs.parse('a[]=c&a[]=d'), { a: ['c', 'd'] });
550
- st.deepEqual(qs.parse('a=c,d', { comma: true }), { a: ['c', 'd'] });
551
-
552
- st.end();
553
- });
554
-
555
- t.test('parses values with comma as array divider', function (st) {
556
- st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: false }), { foo: 'bar,tee' });
557
- st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: true }), { foo: ['bar', 'tee'] });
558
- st.end();
559
- });
560
-
561
- t.test('use number decoder, parses string that has one number with comma option enabled', function (st) {
562
- var decoder = function (str, defaultDecoder, charset, type) {
563
- if (!isNaN(Number(str))) {
564
- return parseFloat(str);
565
- }
566
- return defaultDecoder(str, defaultDecoder, charset, type);
567
- };
568
-
569
- st.deepEqual(qs.parse('foo=1', { comma: true, decoder: decoder }), { foo: 1 });
570
- st.deepEqual(qs.parse('foo=0', { comma: true, decoder: decoder }), { foo: 0 });
571
-
572
- st.end();
573
- });
574
-
575
- t.test('parses brackets holds array of arrays when having two parts of strings with comma as array divider', function (st) {
576
- st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=4,5,6', { comma: true }), { foo: [['1', '2', '3'], ['4', '5', '6']] });
577
- st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=', { comma: true }), { foo: [['1', '2', '3'], ''] });
578
- st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=,', { comma: true }), { foo: [['1', '2', '3'], ['', '']] });
579
- st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=a', { comma: true }), { foo: [['1', '2', '3'], 'a'] });
580
-
581
- st.end();
582
- });
583
-
584
- t.test('parses url-encoded brackets holds array of arrays when having two parts of strings with comma as array divider', function (st) {
585
- st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=4,5,6', { comma: true }), { foo: [['1', '2', '3'], ['4', '5', '6']] });
586
- st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=', { comma: true }), { foo: [['1', '2', '3'], ''] });
587
- st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=,', { comma: true }), { foo: [['1', '2', '3'], ['', '']] });
588
- st.deepEqual(qs.parse('foo%5B%5D=1,2,3&foo%5B%5D=a', { comma: true }), { foo: [['1', '2', '3'], 'a'] });
589
-
590
- st.end();
591
- });
592
-
593
- t.test('parses comma delimited array while having percent-encoded comma treated as normal text', function (st) {
594
- st.deepEqual(qs.parse('foo=a%2Cb', { comma: true }), { foo: 'a,b' });
595
- st.deepEqual(qs.parse('foo=a%2C%20b,d', { comma: true }), { foo: ['a, b', 'd'] });
596
- st.deepEqual(qs.parse('foo=a%2C%20b,c%2C%20d', { comma: true }), { foo: ['a, b', 'c, d'] });
597
-
598
- st.end();
599
- });
600
-
601
- t.test('parses an object in dot notation', function (st) {
602
- var input = {
603
- 'user.name': { 'pop[bob]': 3 },
604
- 'user.email.': null
605
- };
606
-
607
- var expected = {
608
- user: {
609
- name: { 'pop[bob]': 3 },
610
- email: null
611
- }
612
- };
613
-
614
- var result = qs.parse(input, { allowDots: true });
615
-
616
- st.deepEqual(result, expected);
617
- st.end();
618
- });
619
-
620
- t.test('parses an object and not child values', function (st) {
621
- var input = {
622
- 'user[name]': { 'pop[bob]': { test: 3 } },
623
- 'user[email]': null
624
- };
625
-
626
- var expected = {
627
- user: {
628
- name: { 'pop[bob]': { test: 3 } },
629
- email: null
630
- }
631
- };
632
-
633
- var result = qs.parse(input);
634
-
635
- st.deepEqual(result, expected);
636
- st.end();
637
- });
638
-
639
- t.test('does not blow up when Buffer global is missing', function (st) {
640
- var restore = mockProperty(global, 'Buffer', { 'delete': true });
641
-
642
- var result = qs.parse('a=b&c=d');
643
-
644
- restore();
645
-
646
- st.deepEqual(result, { a: 'b', c: 'd' });
647
- st.end();
648
- });
649
-
650
- t.test('does not crash when parsing circular references', function (st) {
651
- var a = {};
652
- a.b = a;
653
-
654
- var parsed;
655
-
656
- st.doesNotThrow(function () {
657
- parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a });
658
- });
659
-
660
- st.equal('foo' in parsed, true, 'parsed has "foo" property');
661
- st.equal('bar' in parsed.foo, true);
662
- st.equal('baz' in parsed.foo, true);
663
- st.equal(parsed.foo.bar, 'baz');
664
- st.deepEqual(parsed.foo.baz, a);
665
- st.end();
666
- });
667
-
668
- t.test('does not crash when parsing deep objects', function (st) {
669
- var parsed;
670
- var str = 'foo';
671
-
672
- for (var i = 0; i < 5000; i++) {
673
- str += '[p]';
674
- }
675
-
676
- str += '=bar';
677
-
678
- st.doesNotThrow(function () {
679
- parsed = qs.parse(str, { depth: 5000 });
680
- });
681
-
682
- st.equal('foo' in parsed, true, 'parsed has "foo" property');
683
-
684
- var depth = 0;
685
- var ref = parsed.foo;
686
- while ((ref = ref.p)) {
687
- depth += 1;
688
- }
689
-
690
- st.equal(depth, 5000, 'parsed is 5000 properties deep');
691
-
692
- st.end();
693
- });
694
-
695
- t.test('parses null objects correctly', { skip: !hasProto }, function (st) {
696
- var a = { __proto__: null, b: 'c' };
697
-
698
- st.deepEqual(qs.parse(a), { b: 'c' });
699
- var result = qs.parse({ a: a });
700
- st.equal('a' in result, true, 'result has "a" property');
701
- st.deepEqual(result.a, a);
702
- st.end();
703
- });
704
-
705
- t.test('parses dates correctly', function (st) {
706
- var now = new Date();
707
- st.deepEqual(qs.parse({ a: now }), { a: now });
708
- st.end();
709
- });
710
-
711
- t.test('parses regular expressions correctly', function (st) {
712
- var re = /^test$/;
713
- st.deepEqual(qs.parse({ a: re }), { a: re });
714
- st.end();
715
- });
716
-
717
- t.test('does not allow overwriting prototype properties', function (st) {
718
- st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: false }), {});
719
- st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: false }), {});
720
-
721
- st.deepEqual(
722
- qs.parse('toString', { allowPrototypes: false }),
723
- {},
724
- 'bare "toString" results in {}'
725
- );
726
-
727
- st.end();
728
- });
729
-
730
- t.test('can allow overwriting prototype properties', function (st) {
731
- st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } });
732
- st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' });
733
-
734
- st.deepEqual(
735
- qs.parse('toString', { allowPrototypes: true }),
736
- { toString: '' },
737
- 'bare "toString" results in { toString: "" }'
738
- );
739
-
740
- st.end();
741
- });
742
-
743
- t.test('does not crash when the global Object prototype is frozen', { skip: !hasPropertyDescriptors || !hasOverrideMistake }, function (st) {
744
- // We can't actually freeze the global Object prototype as that will interfere with other tests, and once an object is frozen, it
745
- // can't be unfrozen. Instead, we add a new non-writable property to simulate this.
746
- st.teardown(mockProperty(Object.prototype, 'frozenProp', { value: 'foo', nonWritable: true, nonEnumerable: true }));
747
-
748
- st['throws'](
749
- function () {
750
- var obj = {};
751
- obj.frozenProp = 'bar';
752
- },
753
- // node < 6 has a different error message
754
- /^TypeError: Cannot assign to read only property 'frozenProp' of (?:object '#<Object>'|#<Object>)/,
755
- 'regular assignment of an inherited non-writable property throws'
756
- );
757
-
758
- var parsed;
759
- st.doesNotThrow(
760
- function () {
761
- parsed = qs.parse('frozenProp', { allowPrototypes: false });
762
- },
763
- 'parsing a nonwritable Object.prototype property does not throw'
764
- );
765
-
766
- st.deepEqual(parsed, {}, 'bare "frozenProp" results in {}');
767
-
768
- st.end();
769
- });
770
-
771
- t.test('params starting with a closing bracket', function (st) {
772
- st.deepEqual(qs.parse(']=toString'), { ']': 'toString' });
773
- st.deepEqual(qs.parse(']]=toString'), { ']]': 'toString' });
774
- st.deepEqual(qs.parse(']hello]=toString'), { ']hello]': 'toString' });
775
- st.end();
776
- });
777
-
778
- t.test('params starting with a starting bracket', function (st) {
779
- st.deepEqual(qs.parse('[=toString'), { '[': 'toString' });
780
- st.deepEqual(qs.parse('[[=toString'), { '[[': 'toString' });
781
- st.deepEqual(qs.parse('[hello[=toString'), { '[hello[': 'toString' });
782
- st.end();
783
- });
784
-
785
- t.test('add keys to objects', function (st) {
786
- st.deepEqual(
787
- qs.parse('a[b]=c&a=d', { strictMerge: false }),
788
- { a: { b: 'c', d: true } },
789
- 'can add keys to objects'
790
- );
791
-
792
- st.deepEqual(
793
- qs.parse('a[b]=c&a=toString', { strictMerge: false }),
794
- { a: { b: 'c' } },
795
- 'can not overwrite prototype'
796
- );
797
-
798
- st.deepEqual(
799
- qs.parse('a[b]=c&a=toString', { strictMerge: false, allowPrototypes: true }),
800
- { a: { b: 'c', toString: true } },
801
- 'can overwrite prototype with allowPrototypes true'
802
- );
803
-
804
- st.deepEqual(
805
- qs.parse('a[b]=c&a=toString', { strictMerge: false, plainObjects: true }),
806
- { __proto__: null, a: { __proto__: null, b: 'c', toString: true } },
807
- 'can overwrite prototype with plainObjects true'
808
- );
809
-
810
- st.end();
811
- });
812
-
813
- t.test('strictMerge wraps object and primitive into an array', function (st) {
814
- st.deepEqual(
815
- qs.parse('a[b]=c&a=d'),
816
- { a: [{ b: 'c' }, 'd'] },
817
- 'object then primitive produces array'
818
- );
819
-
820
- st.deepEqual(
821
- qs.parse('a=d&a[b]=c'),
822
- { a: ['d', { b: 'c' }] },
823
- 'primitive then object produces array'
824
- );
825
-
826
- st.deepEqual(
827
- qs.parse('a[b]=c&a=toString'),
828
- { a: [{ b: 'c' }, 'toString'] },
829
- 'prototype-colliding value is preserved in array'
830
- );
831
-
832
- st.deepEqual(
833
- qs.parse('a[b]=c&a=toString', { plainObjects: true }),
834
- { __proto__: null, a: [{ __proto__: null, b: 'c' }, 'toString'] },
835
- 'plainObjects preserved in array wrapping'
836
- );
837
-
838
- st.end();
839
- });
840
-
841
- t.test('dunder proto is ignored', function (st) {
842
- var payload = 'categories[__proto__]=login&categories[__proto__]&categories[length]=42';
843
- var result = qs.parse(payload, { allowPrototypes: true });
844
-
845
- st.deepEqual(
846
- result,
847
- {
848
- categories: {
849
- length: '42'
850
- }
851
- },
852
- 'silent [[Prototype]] payload'
853
- );
854
-
855
- var plainResult = qs.parse(payload, { allowPrototypes: true, plainObjects: true });
856
-
857
- st.deepEqual(
858
- plainResult,
859
- {
860
- __proto__: null,
861
- categories: {
862
- __proto__: null,
863
- length: '42'
864
- }
865
- },
866
- 'silent [[Prototype]] payload: plain objects'
867
- );
868
-
869
- var query = qs.parse('categories[__proto__]=cats&categories[__proto__]=dogs&categories[some][json]=toInject', { allowPrototypes: true });
870
-
871
- st.notOk(Array.isArray(query.categories), 'is not an array');
872
- st.notOk(query.categories instanceof Array, 'is not instanceof an array');
873
- st.deepEqual(query.categories, { some: { json: 'toInject' } });
874
- st.equal(JSON.stringify(query.categories), '{"some":{"json":"toInject"}}', 'stringifies as a non-array');
875
-
876
- st.deepEqual(
877
- qs.parse('foo[__proto__][hidden]=value&foo[bar]=stuffs', { allowPrototypes: true }),
878
- {
879
- foo: {
880
- bar: 'stuffs'
881
- }
882
- },
883
- 'hidden values'
884
- );
885
-
886
- st.deepEqual(
887
- qs.parse('foo[__proto__][hidden]=value&foo[bar]=stuffs', { allowPrototypes: true, plainObjects: true }),
888
- {
889
- __proto__: null,
890
- foo: {
891
- __proto__: null,
892
- bar: 'stuffs'
893
- }
894
- },
895
- 'hidden values: plain objects'
896
- );
897
-
898
- st.end();
899
- });
900
-
901
- t.test('can return null objects', { skip: !hasProto }, function (st) {
902
- var expected = {
903
- __proto__: null,
904
- a: {
905
- __proto__: null,
906
- b: 'c',
907
- hasOwnProperty: 'd'
908
- }
909
- };
910
- st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected);
911
- st.deepEqual(qs.parse(null, { plainObjects: true }), { __proto__: null });
912
- var expectedArray = {
913
- __proto__: null,
914
- a: {
915
- __proto__: null,
916
- 0: 'b',
917
- c: 'd'
918
- }
919
- };
920
- st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray);
921
- st.end();
922
- });
923
-
924
- t.test('can parse with custom encoding', function (st) {
925
- st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', {
926
- decoder: function (str) {
927
- var reg = /%([0-9A-F]{2})/ig;
928
- var result = [];
929
- var parts = reg.exec(str);
930
- while (parts) {
931
- result.push(parseInt(parts[1], 16));
932
- parts = reg.exec(str);
933
- }
934
- return String(iconv.decode(SaferBuffer.from(result), 'shift_jis'));
935
- }
936
- }), { 県: '大阪府' });
937
- st.end();
938
- });
939
-
940
- t.test('receives the default decoder as a second argument', function (st) {
941
- st.plan(1);
942
- qs.parse('a', {
943
- decoder: function (str, defaultDecoder) {
944
- st.equal(defaultDecoder, utils.decode);
945
- }
946
- });
947
- st.end();
948
- });
949
-
950
- t.test('throws error with wrong decoder', function (st) {
951
- st['throws'](function () {
952
- qs.parse({}, { decoder: 'string' });
953
- }, new TypeError('Decoder has to be a function.'));
954
- st.end();
955
- });
956
-
957
- t.test('does not mutate the options argument', function (st) {
958
- var options = {};
959
- qs.parse('a[b]=true', options);
960
- st.deepEqual(options, {});
961
- st.end();
962
- });
963
-
964
- t.test('throws if an invalid charset is specified', function (st) {
965
- st['throws'](function () {
966
- qs.parse('a=b', { charset: 'foobar' });
967
- }, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'));
968
- st.end();
969
- });
970
-
971
- t.test('parses an iso-8859-1 string if asked to', function (st) {
972
- st.deepEqual(qs.parse('%A2=%BD', { charset: 'iso-8859-1' }), { '¢': '½' });
973
- st.end();
974
- });
975
-
976
- var urlEncodedCheckmarkInUtf8 = '%E2%9C%93';
977
- var urlEncodedOSlashInUtf8 = '%C3%B8';
978
- var urlEncodedNumCheckmark = '%26%2310003%3B';
979
- var urlEncodedNumSmiley = '%26%239786%3B';
980
-
981
- t.test('prefers an utf-8 charset specified by the utf8 sentinel to a default charset of iso-8859-1', function (st) {
982
- st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'iso-8859-1' }), { ø: 'ø' });
983
- st.end();
984
- });
985
-
986
- t.test('prefers an iso-8859-1 charset specified by the utf8 sentinel to a default charset of utf-8', function (st) {
987
- st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { 'ø': 'ø' });
988
- st.end();
989
- });
990
-
991
- t.test('does not require the utf8 sentinel to be defined before the parameters whose decoding it affects', function (st) {
992
- st.deepEqual(qs.parse('a=' + urlEncodedOSlashInUtf8 + '&utf8=' + urlEncodedNumCheckmark, { charsetSentinel: true, charset: 'utf-8' }), { a: 'ø' });
993
- st.end();
994
- });
995
-
996
- t.test('ignores an utf8 sentinel with an unknown value', function (st) {
997
- st.deepEqual(qs.parse('utf8=foo&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { ø: 'ø' });
998
- st.end();
999
- });
1000
-
1001
- t.test('uses the utf8 sentinel to switch to utf-8 when no default charset is given', function (st) {
1002
- st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { ø: 'ø' });
1003
- st.end();
1004
- });
1005
-
1006
- t.test('uses the utf8 sentinel to switch to iso-8859-1 when no default charset is given', function (st) {
1007
- st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { 'ø': 'ø' });
1008
- st.end();
1009
- });
1010
-
1011
- t.test('interprets numeric entities in iso-8859-1 when `interpretNumericEntities`', function (st) {
1012
- st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1', interpretNumericEntities: true }), { foo: '☺' });
1013
- st.end();
1014
- });
1015
-
1016
- t.test('handles a custom decoder returning `null`, in the `iso-8859-1` charset, when `interpretNumericEntities`', function (st) {
1017
- st.deepEqual(qs.parse('foo=&bar=' + urlEncodedNumSmiley, {
1018
- charset: 'iso-8859-1',
1019
- decoder: function (str, defaultDecoder, charset) {
1020
- return str ? defaultDecoder(str, defaultDecoder, charset) : null;
1021
- },
1022
- interpretNumericEntities: true
1023
- }), { foo: null, bar: '☺' });
1024
- st.end();
1025
- });
1026
-
1027
- t.test('handles a custom decoder returning `null`, with a string key of `null`', function (st) {
1028
- st.deepEqual(
1029
- qs.parse('null=1&ToNull=2', {
1030
- decoder: function (str, defaultDecoder, charset) {
1031
- return str === 'ToNull' ? null : defaultDecoder(str, defaultDecoder, charset);
1032
- }
1033
- }),
1034
- { 'null': '1' },
1035
- '"null" key is not overridden by `null` decoder result'
1036
- );
1037
-
1038
- st.end();
1039
- });
1040
-
1041
- t.test('does not interpret numeric entities in iso-8859-1 when `interpretNumericEntities` is absent', function (st) {
1042
- st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1' }), { foo: '&#9786;' });
1043
- st.end();
1044
- });
1045
-
1046
- t.test('does not interpret numeric entities when the charset is utf-8, even when `interpretNumericEntities`', function (st) {
1047
- st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'utf-8', interpretNumericEntities: true }), { foo: '&#9786;' });
1048
- st.end();
1049
- });
1050
-
1051
- t.test('interpretNumericEntities with comma:true and iso charset does not crash', function (st) {
1052
- st.deepEqual(
1053
- qs.parse('b&a[]=1,' + urlEncodedNumSmiley, { comma: true, charset: 'iso-8859-1', interpretNumericEntities: true }),
1054
- { b: '', a: ['1,☺'] }
1055
- );
1056
-
1057
- st.end();
1058
- });
1059
-
1060
- t.test('does not interpret %uXXXX syntax in iso-8859-1 mode', function (st) {
1061
- st.deepEqual(qs.parse('%u263A=%u263A', { charset: 'iso-8859-1' }), { '%u263A': '%u263A' });
1062
- st.end();
1063
- });
1064
-
1065
- t.test('allows for decoding keys and values differently', function (st) {
1066
- var decoder = function (str, defaultDecoder, charset, type) {
1067
- if (type === 'key') {
1068
- return defaultDecoder(str, defaultDecoder, charset, type).toLowerCase();
1069
- }
1070
- if (type === 'value') {
1071
- return defaultDecoder(str, defaultDecoder, charset, type).toUpperCase();
1072
- }
1073
- throw 'this should never happen! type: ' + type;
1074
- };
1075
-
1076
- st.deepEqual(qs.parse('KeY=vAlUe', { decoder: decoder }), { key: 'VALUE' });
1077
- st.end();
1078
- });
1079
-
1080
- t.test('parameter limit tests', function (st) {
1081
- st.test('does not throw error when within parameter limit', function (sst) {
1082
- var result = qs.parse('a=1&b=2&c=3', { parameterLimit: 5, throwOnLimitExceeded: true });
1083
- sst.deepEqual(result, { a: '1', b: '2', c: '3' }, 'parses without errors');
1084
- sst.end();
1085
- });
1086
-
1087
- st.test('throws error when throwOnLimitExceeded is present but not boolean', function (sst) {
1088
- sst['throws'](
1089
- function () {
1090
- qs.parse('a=1&b=2&c=3&d=4&e=5&f=6', { parameterLimit: 3, throwOnLimitExceeded: 'true' });
1091
- },
1092
- new TypeError('`throwOnLimitExceeded` option must be a boolean'),
1093
- 'throws error when throwOnLimitExceeded is present and not boolean'
1094
- );
1095
- sst.end();
1096
- });
1097
-
1098
- st.test('throws error when parameter limit exceeded', function (sst) {
1099
- sst['throws'](
1100
- function () {
1101
- qs.parse('a=1&b=2&c=3&d=4&e=5&f=6', { parameterLimit: 3, throwOnLimitExceeded: true });
1102
- },
1103
- new RangeError('Parameter limit exceeded. Only 3 parameters allowed.'),
1104
- 'throws error when parameter limit is exceeded'
1105
- );
1106
- sst.end();
1107
- });
1108
-
1109
- st.test('silently truncates when throwOnLimitExceeded is not given', function (sst) {
1110
- var result = qs.parse('a=1&b=2&c=3&d=4&e=5', { parameterLimit: 3 });
1111
- sst.deepEqual(result, { a: '1', b: '2', c: '3' }, 'parses and truncates silently');
1112
- sst.end();
1113
- });
1114
-
1115
- st.test('silently truncates when parameter limit exceeded without error', function (sst) {
1116
- var result = qs.parse('a=1&b=2&c=3&d=4&e=5', { parameterLimit: 3, throwOnLimitExceeded: false });
1117
- sst.deepEqual(result, { a: '1', b: '2', c: '3' }, 'parses and truncates silently');
1118
- sst.end();
1119
- });
1120
-
1121
- st.test('allows unlimited parameters when parameterLimit set to Infinity', function (sst) {
1122
- var result = qs.parse('a=1&b=2&c=3&d=4&e=5&f=6', { parameterLimit: Infinity });
1123
- sst.deepEqual(result, { a: '1', b: '2', c: '3', d: '4', e: '5', f: '6' }, 'parses all parameters without truncation');
1124
- sst.end();
1125
- });
1126
-
1127
- st.end();
1128
- });
1129
-
1130
- t.test('array limit tests', function (st) {
1131
- st.test('does not throw error when array is within limit', function (sst) {
1132
- var result = qs.parse('a[]=1&a[]=2&a[]=3', { arrayLimit: 5, throwOnLimitExceeded: true });
1133
- sst.deepEqual(result, { a: ['1', '2', '3'] }, 'parses array without errors');
1134
- sst.end();
1135
- });
1136
-
1137
- st.test('throws error when throwOnLimitExceeded is present but not boolean for array limit', function (sst) {
1138
- sst['throws'](
1139
- function () {
1140
- qs.parse('a[]=1&a[]=2&a[]=3&a[]=4', { arrayLimit: 3, throwOnLimitExceeded: 'true' });
1141
- },
1142
- new TypeError('`throwOnLimitExceeded` option must be a boolean'),
1143
- 'throws error when throwOnLimitExceeded is present and not boolean for array limit'
1144
- );
1145
- sst.end();
1146
- });
1147
-
1148
- st.test('throws error when array limit exceeded', function (sst) {
1149
- // 4 elements exceeds limit of 3
1150
- sst['throws'](
1151
- function () {
1152
- qs.parse('a[]=1&a[]=2&a[]=3&a[]=4', { arrayLimit: 3, throwOnLimitExceeded: true });
1153
- },
1154
- new RangeError('Array limit exceeded. Only 3 elements allowed in an array.'),
1155
- 'throws error when array limit is exceeded'
1156
- );
1157
- sst.end();
1158
- });
1159
-
1160
- st.test('does not throw when at limit', function (sst) {
1161
- // 3 elements = limit of 3, should not throw
1162
- var result = qs.parse('a[]=1&a[]=2&a[]=3', { arrayLimit: 3, throwOnLimitExceeded: true });
1163
- sst.ok(Array.isArray(result.a), 'result is an array');
1164
- sst.deepEqual(result.a, ['1', '2', '3'], 'all values present');
1165
- sst.end();
1166
- });
1167
-
1168
- st.test('converts array to object if length is greater than limit', function (sst) {
1169
- var result = qs.parse('a[1]=1&a[2]=2&a[3]=3&a[4]=4&a[5]=5&a[6]=6', { arrayLimit: 5 });
1170
-
1171
- sst.deepEqual(result, { a: { 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6' } }, 'parses into object if array length is greater than limit');
1172
- sst.end();
1173
- });
1174
-
1175
- st.test('throws error when indexed notation exceeds arrayLimit with throwOnLimitExceeded', function (sst) {
1176
- sst['throws'](
1177
- function () {
1178
- qs.parse('a[1001]=b', { arrayLimit: 1000, throwOnLimitExceeded: true });
1179
- },
1180
- new RangeError('Array limit exceeded. Only 1000 elements allowed in an array.'),
1181
- 'throws error for a single index exceeding arrayLimit'
1182
- );
1183
-
1184
- sst['throws'](
1185
- function () {
1186
- qs.parse('a[0]=1&a[1]=2&a[2]=3&a[10]=4', { arrayLimit: 6, throwOnLimitExceeded: true, allowSparse: true });
1187
- },
1188
- new RangeError('Array limit exceeded. Only 6 elements allowed in an array.'),
1189
- 'throws error when a sparse index exceeds arrayLimit'
1190
- );
1191
-
1192
- sst.end();
1193
- });
1194
-
1195
- st.test('does not throw for indexed notation within arrayLimit with throwOnLimitExceeded', function (sst) {
1196
- var result = qs.parse('a[4]=b', { arrayLimit: 5, throwOnLimitExceeded: true, allowSparse: true });
1197
- sst.ok(Array.isArray(result.a), 'result is an array');
1198
- sst.equal(result.a.length, 5, 'array has correct length');
1199
- sst.equal(result.a[4], 'b', 'value at index 4 is correct');
1200
- sst.end();
1201
- });
1202
-
1203
- st.test('silently converts to object for indexed notation exceeding arrayLimit without throwOnLimitExceeded', function (sst) {
1204
- var result = qs.parse('a[1001]=b', { arrayLimit: 1000 });
1205
- sst.deepEqual(result, { a: { 1001: 'b' } }, 'converts to object without throwing');
1206
- sst.end();
1207
- });
1208
-
1209
- st.end();
1210
- });
1211
-
1212
- t.end();
1213
- });
1214
-
1215
- test('parses empty keys', function (t) {
1216
- emptyTestCases.forEach(function (testCase) {
1217
- t.test('skips empty string key with ' + testCase.input, function (st) {
1218
- st.deepEqual(qs.parse(testCase.input), testCase.noEmptyKeys);
1219
-
1220
- st.end();
1221
- });
1222
- });
1223
- });
1224
-
1225
- test('`duplicates` option', function (t) {
1226
- v.nonStrings.concat('not a valid option').forEach(function (invalidOption) {
1227
- if (typeof invalidOption !== 'undefined') {
1228
- t['throws'](
1229
- function () { qs.parse('', { duplicates: invalidOption }); },
1230
- TypeError,
1231
- 'throws on invalid option: ' + inspect(invalidOption)
1232
- );
1233
- }
1234
- });
1235
-
1236
- t.deepEqual(
1237
- qs.parse('foo=bar&foo=baz'),
1238
- { foo: ['bar', 'baz'] },
1239
- 'duplicates: default, combine'
1240
- );
1241
-
1242
- t.deepEqual(
1243
- qs.parse('foo=bar&foo=baz', { duplicates: 'combine' }),
1244
- { foo: ['bar', 'baz'] },
1245
- 'duplicates: combine'
1246
- );
1247
-
1248
- t.deepEqual(
1249
- qs.parse('foo=bar&foo=baz', { duplicates: 'first' }),
1250
- { foo: 'bar' },
1251
- 'duplicates: first'
1252
- );
1253
-
1254
- t.deepEqual(
1255
- qs.parse('foo=bar&foo=baz', { duplicates: 'last' }),
1256
- { foo: 'baz' },
1257
- 'duplicates: last'
1258
- );
1259
-
1260
- t.test('bracket notation always combines regardless of duplicates', function (st) {
1261
- st.deepEqual(
1262
- qs.parse('a=1&a=2&b[]=1&b[]=2', { duplicates: 'last' }),
1263
- { a: '2', b: ['1', '2'] },
1264
- 'duplicates last: unbracketed takes last, bracketed combines'
1265
- );
1266
-
1267
- st.deepEqual(
1268
- qs.parse('b[]=1&b[]=2', { duplicates: 'last' }),
1269
- { b: ['1', '2'] },
1270
- 'duplicates last: bracketed always combines'
1271
- );
1272
-
1273
- st.deepEqual(
1274
- qs.parse('b[]=1&b[]=2', { duplicates: 'first' }),
1275
- { b: ['1', '2'] },
1276
- 'duplicates first: bracketed always combines'
1277
- );
1278
-
1279
- st.deepEqual(
1280
- qs.parse('a=1&a=2&b[]=1&b[]=2', { duplicates: 'first' }),
1281
- { a: '1', b: ['1', '2'] },
1282
- 'duplicates first: unbracketed takes first, bracketed combines'
1283
- );
1284
-
1285
- st.end();
1286
- });
1287
-
1288
- t.end();
1289
- });
1290
-
1291
- test('qs strictDepth option - throw cases', function (t) {
1292
- t.test('throws an exception when depth exceeds the limit with strictDepth: true', function (st) {
1293
- st['throws'](
1294
- function () {
1295
- qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1, strictDepth: true });
1296
- },
1297
- RangeError,
1298
- 'throws RangeError'
1299
- );
1300
- st.end();
1301
- });
1302
-
1303
- t.test('throws an exception for multiple nested arrays with strictDepth: true', function (st) {
1304
- st['throws'](
1305
- function () {
1306
- qs.parse('a[0][1][2][3][4]=b', { depth: 3, strictDepth: true });
1307
- },
1308
- RangeError,
1309
- 'throws RangeError'
1310
- );
1311
- st.end();
1312
- });
1313
-
1314
- t.test('throws an exception for nested objects and arrays with strictDepth: true', function (st) {
1315
- st['throws'](
1316
- function () {
1317
- qs.parse('a[b][c][0][d][e]=f', { depth: 3, strictDepth: true });
1318
- },
1319
- RangeError,
1320
- 'throws RangeError'
1321
- );
1322
- st.end();
1323
- });
1324
-
1325
- t.test('throws an exception for different types of values with strictDepth: true', function (st) {
1326
- st['throws'](
1327
- function () {
1328
- qs.parse('a[b][c][d][e]=true&a[b][c][d][f]=42', { depth: 3, strictDepth: true });
1329
- },
1330
- RangeError,
1331
- 'throws RangeError'
1332
- );
1333
- st.end();
1334
- });
1335
-
1336
- });
1337
-
1338
- test('qs strictDepth option - non-throw cases', function (t) {
1339
- t.test('when depth is 0 and strictDepth true, do not throw', function (st) {
1340
- st.doesNotThrow(
1341
- function () {
1342
- qs.parse('a[b][c][d][e]=true&a[b][c][d][f]=42', { depth: 0, strictDepth: true });
1343
- },
1344
- RangeError,
1345
- 'does not throw RangeError'
1346
- );
1347
- st.end();
1348
- });
1349
-
1350
- t.test('parses successfully when depth is within the limit with strictDepth: true', function (st) {
1351
- st.doesNotThrow(
1352
- function () {
1353
- var result = qs.parse('a[b]=c', { depth: 1, strictDepth: true });
1354
- st.deepEqual(result, { a: { b: 'c' } }, 'parses correctly');
1355
- }
1356
- );
1357
- st.end();
1358
- });
1359
-
1360
- t.test('does not throw an exception when depth exceeds the limit with strictDepth: false', function (st) {
1361
- st.doesNotThrow(
1362
- function () {
1363
- var result = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 });
1364
- st.deepEqual(result, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }, 'parses with depth limit');
1365
- }
1366
- );
1367
- st.end();
1368
- });
1369
-
1370
- t.test('parses successfully when depth is within the limit with strictDepth: false', function (st) {
1371
- st.doesNotThrow(
1372
- function () {
1373
- var result = qs.parse('a[b]=c', { depth: 1 });
1374
- st.deepEqual(result, { a: { b: 'c' } }, 'parses correctly');
1375
- }
1376
- );
1377
- st.end();
1378
- });
1379
-
1380
- t.test('does not throw when depth is exactly at the limit with strictDepth: true', function (st) {
1381
- st.doesNotThrow(
1382
- function () {
1383
- var result = qs.parse('a[b][c]=d', { depth: 2, strictDepth: true });
1384
- st.deepEqual(result, { a: { b: { c: 'd' } } }, 'parses correctly');
1385
- }
1386
- );
1387
- st.end();
1388
- });
1389
- });
1390
-
1391
- test('DOS', function (t) {
1392
- var arr = [];
1393
- for (var i = 0; i < 105; i++) {
1394
- arr[arr.length] = 'x';
1395
- }
1396
- var attack = 'a[]=' + arr.join('&a[]=');
1397
- var result = qs.parse(attack, { arrayLimit: 100 });
1398
-
1399
- t.notOk(Array.isArray(result.a), 'arrayLimit is respected: result is an object, not an array');
1400
- t.equal(Object.keys(result.a).length, 105, 'all values are preserved');
1401
-
1402
- t.end();
1403
- });
1404
-
1405
- test('arrayLimit boundary conditions', function (t) {
1406
- // arrayLimit is the max number of elements allowed in an array
1407
- t.test('exactly at the limit stays as array', function (st) {
1408
- // 3 elements = limit of 3
1409
- var result = qs.parse('a[]=1&a[]=2&a[]=3', { arrayLimit: 3 });
1410
- st.ok(Array.isArray(result.a), 'result is an array when count equals limit');
1411
- st.deepEqual(result.a, ['1', '2', '3'], 'all values present');
1412
- st.end();
1413
- });
1414
-
1415
- t.test('one over the limit converts to object', function (st) {
1416
- // 4 elements exceeds limit of 3
1417
- var result = qs.parse('a[]=1&a[]=2&a[]=3&a[]=4', { arrayLimit: 3 });
1418
- st.notOk(Array.isArray(result.a), 'result is not an array when over limit');
1419
- st.deepEqual(result.a, { 0: '1', 1: '2', 2: '3', 3: '4' }, 'all values preserved as object');
1420
- st.end();
1421
- });
1422
-
1423
- t.test('arrayLimit 1 with one value', function (st) {
1424
- // 1 element = limit of 1
1425
- var result = qs.parse('a[]=1', { arrayLimit: 1 });
1426
- st.ok(Array.isArray(result.a), 'result is an array when count equals limit');
1427
- st.deepEqual(result.a, ['1'], 'value preserved as array');
1428
- st.end();
1429
- });
1430
-
1431
- t.test('arrayLimit 1 with two values converts to object', function (st) {
1432
- // 2 elements exceeds limit of 1
1433
- var result = qs.parse('a[]=1&a[]=2', { arrayLimit: 1 });
1434
- st.notOk(Array.isArray(result.a), 'result is not an array');
1435
- st.deepEqual(result.a, { 0: '1', 1: '2' }, 'all values preserved as object');
1436
- st.end();
1437
- });
1438
-
1439
- t.end();
1440
- });
1441
-
1442
- test('comma + arrayLimit', function (t) {
1443
- t.test('comma-separated values within arrayLimit stay as array', function (st) {
1444
- var result = qs.parse('a=1,2,3', { comma: true, arrayLimit: 5 });
1445
- st.ok(Array.isArray(result.a), 'result is an array');
1446
- st.deepEqual(result.a, ['1', '2', '3'], 'all values present');
1447
- st.end();
1448
- });
1449
-
1450
- t.test('comma-separated values exceeding arrayLimit convert to object', function (st) {
1451
- var result = qs.parse('a=1,2,3,4', { comma: true, arrayLimit: 3 });
1452
- st.notOk(Array.isArray(result.a), 'result is not an array when over limit');
1453
- st.deepEqual(result.a, { 0: '1', 1: '2', 2: '3', 3: '4' }, 'all values preserved as object');
1454
- st.end();
1455
- });
1456
-
1457
- t.test('comma-separated values exceeding arrayLimit with throwOnLimitExceeded throws', function (st) {
1458
- st['throws'](
1459
- function () {
1460
- qs.parse('a=1,2,3,4', { comma: true, arrayLimit: 3, throwOnLimitExceeded: true });
1461
- },
1462
- new RangeError('Array limit exceeded. Only 3 elements allowed in an array.'),
1463
- 'throws error when comma-split exceeds array limit'
1464
- );
1465
- st.end();
1466
- });
1467
-
1468
- t.test('comma-separated values at exactly arrayLimit stay as array', function (st) {
1469
- var result = qs.parse('a=1,2,3', { comma: true, arrayLimit: 3 });
1470
- st.ok(Array.isArray(result.a), 'result is an array when exactly at limit');
1471
- st.deepEqual(result.a, ['1', '2', '3'], 'all values present');
1472
- st.end();
1473
- });
1474
-
1475
- t.end();
1476
- });
1477
-
1478
- test('mixed array and object notation', function (t) {
1479
- t.test('array brackets with object key - under limit', function (st) {
1480
- st.deepEqual(
1481
- qs.parse('a[]=b&a[c]=d'),
1482
- { a: { 0: 'b', c: 'd' } },
1483
- 'mixing [] and [key] converts to object'
1484
- );
1485
- st.end();
1486
- });
1487
-
1488
- t.test('array index with object key - under limit', function (st) {
1489
- st.deepEqual(
1490
- qs.parse('a[0]=b&a[c]=d'),
1491
- { a: { 0: 'b', c: 'd' } },
1492
- 'mixing [0] and [key] produces object'
1493
- );
1494
- st.end();
1495
- });
1496
-
1497
- t.test('plain value with array brackets - under limit', function (st) {
1498
- st.deepEqual(
1499
- qs.parse('a=b&a[]=c', { arrayLimit: 20 }),
1500
- { a: ['b', 'c'] },
1501
- 'plain value combined with [] stays as array under limit'
1502
- );
1503
- st.end();
1504
- });
1505
-
1506
- t.test('array brackets with plain value - under limit', function (st) {
1507
- st.deepEqual(
1508
- qs.parse('a[]=b&a=c', { arrayLimit: 20 }),
1509
- { a: ['b', 'c'] },
1510
- '[] combined with plain value stays as array under limit'
1511
- );
1512
- st.end();
1513
- });
1514
-
1515
- t.test('plain value with array index - under limit', function (st) {
1516
- st.deepEqual(
1517
- qs.parse('a=b&a[0]=c', { arrayLimit: 20 }),
1518
- { a: ['b', 'c'] },
1519
- 'plain value combined with [0] stays as array under limit'
1520
- );
1521
- st.end();
1522
- });
1523
-
1524
- t.test('multiple plain values with duplicates combine', function (st) {
1525
- st.deepEqual(
1526
- qs.parse('a=b&a=c&a=d', { arrayLimit: 20 }),
1527
- { a: ['b', 'c', 'd'] },
1528
- 'duplicate plain keys combine into array'
1529
- );
1530
- st.end();
1531
- });
1532
-
1533
- t.test('multiple plain values exceeding limit', function (st) {
1534
- // 3 elements (indices 0-2), max index 2 > limit 1
1535
- st.deepEqual(
1536
- qs.parse('a=b&a=c&a=d', { arrayLimit: 1 }),
1537
- { a: { 0: 'b', 1: 'c', 2: 'd' } },
1538
- 'duplicate plain keys convert to object when exceeding limit'
1539
- );
1540
- st.end();
1541
- });
1542
-
1543
- t.test('mixed notation produces consistent results when arrayLimit is exceeded', function (st) {
1544
- var expected = { a: { 0: 'b', 1: 'c', 2: 'd' } };
1545
-
1546
- st.deepEqual(
1547
- qs.parse('a[]=b&a[1]=c&a=d', { arrayLimit: -1 }),
1548
- expected,
1549
- 'arrayLimit -1'
1550
- );
1551
-
1552
- st.deepEqual(
1553
- qs.parse('a[]=b&a[1]=c&a=d', { arrayLimit: 0 }),
1554
- expected,
1555
- 'arrayLimit 0'
1556
- );
1557
-
1558
- st.deepEqual(
1559
- qs.parse('a[]=b&a[1]=c&a=d', { arrayLimit: 1 }),
1560
- expected,
1561
- 'arrayLimit 1'
1562
- );
1563
-
1564
- st.end();
1565
- });
1566
-
1567
- t.end();
1568
- });