@corellium/corellium-cli 1.3.8 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (614) hide show
  1. package/.eslintrc.js +12 -16
  2. package/.gitlab-ci.yml +13 -13
  3. package/.nvmrc +1 -1
  4. package/.nycrc +14 -14
  5. package/.prettierrc.js +8 -7
  6. package/README.md +13 -6
  7. package/docs/OVERVIEW.md +57 -27
  8. package/index.js +8 -8
  9. package/lint-staged.config.js +3 -6
  10. package/node_modules/@babel/cli/README.md +1 -1
  11. package/node_modules/@babel/cli/bin/babel-external-helpers.mjs +3 -0
  12. package/node_modules/@babel/cli/bin/babel.mjs +3 -0
  13. package/node_modules/@babel/cli/lib/babel/dir.js +23 -73
  14. package/node_modules/@babel/cli/lib/babel/dir.js.map +1 -0
  15. package/node_modules/@babel/cli/lib/babel/file.js +27 -72
  16. package/node_modules/@babel/cli/lib/babel/file.js.map +1 -0
  17. package/node_modules/@babel/cli/lib/babel/index.js +6 -8
  18. package/node_modules/@babel/cli/lib/babel/index.js.map +1 -0
  19. package/node_modules/@babel/cli/lib/babel/options.js +70 -143
  20. package/node_modules/@babel/cli/lib/babel/options.js.map +1 -0
  21. package/node_modules/@babel/cli/lib/babel/util.js +39 -59
  22. package/node_modules/@babel/cli/lib/babel/util.js.map +1 -0
  23. package/node_modules/@babel/cli/lib/babel/watcher.js +19 -52
  24. package/node_modules/@babel/cli/lib/babel/watcher.js.map +1 -0
  25. package/node_modules/@babel/cli/lib/babel-external-helpers.js +14 -21
  26. package/node_modules/@babel/cli/lib/babel-external-helpers.js.map +1 -0
  27. package/node_modules/@babel/cli/package.json +11 -9
  28. package/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs +19 -29
  29. package/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map +1 -1
  30. package/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js +19 -29
  31. package/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map +1 -1
  32. package/node_modules/@jridgewell/resolve-uri/package.json +2 -2
  33. package/node_modules/@jridgewell/sourcemap-codec/README.md +147 -83
  34. package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs +351 -91
  35. package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map +1 -1
  36. package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js +354 -90
  37. package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map +1 -1
  38. package/node_modules/@jridgewell/sourcemap-codec/dist/types/scopes.d.ts +49 -0
  39. package/node_modules/@jridgewell/sourcemap-codec/dist/types/sourcemap-codec.d.ts +2 -0
  40. package/node_modules/@jridgewell/sourcemap-codec/dist/types/strings.d.ts +15 -0
  41. package/node_modules/@jridgewell/sourcemap-codec/dist/types/vlq.d.ts +6 -0
  42. package/node_modules/@jridgewell/sourcemap-codec/package.json +7 -7
  43. package/node_modules/@jridgewell/trace-mapping/README.md +5 -0
  44. package/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs +202 -174
  45. package/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map +1 -1
  46. package/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js +216 -182
  47. package/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map +1 -1
  48. package/node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts +1 -1
  49. package/node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts +1 -1
  50. package/node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts +1 -1
  51. package/node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts +8 -8
  52. package/node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts +33 -28
  53. package/node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts +23 -16
  54. package/node_modules/@jridgewell/trace-mapping/package.json +20 -18
  55. package/node_modules/anymatch/index.d.ts +1 -0
  56. package/node_modules/anymatch/index.js +1 -1
  57. package/node_modules/anymatch/package.json +1 -1
  58. package/node_modules/{form-data/README.md.bak → axios/node_modules/form-data/Readme.md} +4 -4
  59. package/node_modules/{superagent → axios}/node_modules/form-data/lib/form_data.js +8 -5
  60. package/node_modules/{superagent → axios}/node_modules/form-data/package.json +9 -6
  61. package/node_modules/binary-extensions/binary-extensions.json +3 -0
  62. package/node_modules/binary-extensions/license +2 -1
  63. package/node_modules/binary-extensions/package.json +4 -2
  64. package/node_modules/binary-extensions/readme.md +2 -18
  65. package/node_modules/braces/LICENSE +1 -1
  66. package/node_modules/braces/README.md +91 -98
  67. package/node_modules/braces/index.js +3 -3
  68. package/node_modules/braces/lib/compile.js +14 -11
  69. package/node_modules/braces/lib/constants.js +1 -1
  70. package/node_modules/braces/lib/expand.js +9 -9
  71. package/node_modules/braces/lib/parse.js +14 -16
  72. package/node_modules/braces/lib/stringify.js +4 -4
  73. package/node_modules/braces/lib/utils.js +13 -3
  74. package/node_modules/braces/package.json +2 -2
  75. package/node_modules/{call-bind → call-bind-apply-helpers}/.eslintrc +0 -1
  76. package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  77. package/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  78. package/node_modules/call-bind-apply-helpers/CHANGELOG.md +23 -0
  79. package/node_modules/{call-bind → call-bind-apply-helpers}/LICENSE +1 -1
  80. package/node_modules/call-bind-apply-helpers/README.md +62 -0
  81. package/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  82. package/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  83. package/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  84. package/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  85. package/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  86. package/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  87. package/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  88. package/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  89. package/node_modules/call-bind-apply-helpers/index.d.ts +46 -0
  90. package/node_modules/call-bind-apply-helpers/index.js +15 -0
  91. package/node_modules/call-bind-apply-helpers/package.json +85 -0
  92. package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  93. package/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  94. package/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  95. package/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  96. package/node_modules/call-bound/.eslintrc +13 -0
  97. package/node_modules/call-bound/.github/FUNDING.yml +12 -0
  98. package/node_modules/call-bound/.nycrc +9 -0
  99. package/node_modules/call-bound/CHANGELOG.md +34 -0
  100. package/node_modules/call-bound/LICENSE +21 -0
  101. package/node_modules/call-bound/README.md +53 -0
  102. package/node_modules/call-bound/index.d.ts +13 -0
  103. package/node_modules/call-bound/index.js +18 -0
  104. package/node_modules/call-bound/package.json +99 -0
  105. package/node_modules/{call-bind/test/callBound.js → call-bound/test/index.js} +1 -2
  106. package/node_modules/call-bound/tsconfig.json +9 -0
  107. package/node_modules/chokidar/README.md +1 -1
  108. package/node_modules/chokidar/index.js +1 -1
  109. package/node_modules/chokidar/lib/constants.js +1 -0
  110. package/node_modules/chokidar/lib/fsevents-handler.js +2 -0
  111. package/node_modules/chokidar/package.json +5 -20
  112. package/node_modules/chokidar/types/index.d.ts +4 -0
  113. package/node_modules/cliui/CHANGELOG.md +18 -0
  114. package/node_modules/cliui/build/index.d.cts +43 -0
  115. package/node_modules/cliui/package.json +6 -6
  116. package/node_modules/commander/CHANGELOG.md +361 -0
  117. package/node_modules/{@babel/cli/node_modules/commander → commander}/Readme.md +243 -165
  118. package/node_modules/commander/index.js +1881 -0
  119. package/node_modules/{@babel/cli/node_modules/commander → commander}/package.json +19 -9
  120. package/node_modules/commander/typings/index.d.ts +410 -0
  121. package/node_modules/component-emitter/LICENSE +24 -24
  122. package/node_modules/component-emitter/Readme.md +74 -74
  123. package/node_modules/component-emitter/index.js +175 -175
  124. package/node_modules/component-emitter/package.json +3 -2
  125. package/node_modules/convert-source-map/README.md +97 -11
  126. package/node_modules/convert-source-map/index.js +127 -30
  127. package/node_modules/convert-source-map/package.json +3 -9
  128. package/node_modules/cookiejar/cookiejar.js +5 -0
  129. package/node_modules/cookiejar/package.json +1 -1
  130. package/node_modules/debug/README.md +1 -1
  131. package/node_modules/debug/package.json +10 -4
  132. package/node_modules/debug/src/browser.js +4 -1
  133. package/node_modules/debug/src/common.js +57 -39
  134. package/node_modules/debug/src/node.js +2 -2
  135. package/node_modules/dotenv/CHANGELOG.md +133 -1
  136. package/node_modules/dotenv/README-es.md +448 -0
  137. package/node_modules/dotenv/README.md +309 -66
  138. package/node_modules/dotenv/lib/cli-options.js +1 -1
  139. package/node_modules/dotenv/lib/env-options.js +4 -0
  140. package/node_modules/dotenv/lib/main.d.ts +85 -5
  141. package/node_modules/dotenv/lib/main.js +287 -35
  142. package/node_modules/dotenv/package.json +19 -14
  143. package/node_modules/dunder-proto/.eslintrc +5 -0
  144. package/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  145. package/node_modules/dunder-proto/CHANGELOG.md +24 -0
  146. package/node_modules/dunder-proto/LICENSE +21 -0
  147. package/node_modules/dunder-proto/README.md +54 -0
  148. package/node_modules/dunder-proto/get.d.ts +5 -0
  149. package/node_modules/dunder-proto/get.js +30 -0
  150. package/node_modules/dunder-proto/package.json +76 -0
  151. package/node_modules/dunder-proto/set.d.ts +5 -0
  152. package/node_modules/dunder-proto/set.js +35 -0
  153. package/node_modules/dunder-proto/test/get.js +34 -0
  154. package/node_modules/dunder-proto/test/index.js +4 -0
  155. package/node_modules/dunder-proto/test/set.js +50 -0
  156. package/node_modules/dunder-proto/tsconfig.json +9 -0
  157. package/node_modules/es-define-property/.eslintrc +13 -0
  158. package/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  159. package/node_modules/es-define-property/.nycrc +9 -0
  160. package/node_modules/es-define-property/CHANGELOG.md +29 -0
  161. package/node_modules/es-define-property/LICENSE +21 -0
  162. package/node_modules/es-define-property/README.md +49 -0
  163. package/node_modules/es-define-property/index.d.ts +3 -0
  164. package/node_modules/es-define-property/index.js +14 -0
  165. package/node_modules/es-define-property/package.json +81 -0
  166. package/node_modules/es-define-property/test/index.js +56 -0
  167. package/node_modules/es-define-property/tsconfig.json +10 -0
  168. package/node_modules/es-errors/.eslintrc +5 -0
  169. package/node_modules/es-errors/.github/FUNDING.yml +12 -0
  170. package/node_modules/es-errors/CHANGELOG.md +40 -0
  171. package/node_modules/es-errors/LICENSE +21 -0
  172. package/node_modules/es-errors/README.md +55 -0
  173. package/node_modules/es-errors/eval.d.ts +3 -0
  174. package/node_modules/es-errors/eval.js +4 -0
  175. package/node_modules/es-errors/index.d.ts +3 -0
  176. package/node_modules/es-errors/index.js +4 -0
  177. package/node_modules/es-errors/package.json +80 -0
  178. package/node_modules/es-errors/range.d.ts +3 -0
  179. package/node_modules/es-errors/range.js +4 -0
  180. package/node_modules/es-errors/ref.d.ts +3 -0
  181. package/node_modules/es-errors/ref.js +4 -0
  182. package/node_modules/es-errors/syntax.d.ts +3 -0
  183. package/node_modules/es-errors/syntax.js +4 -0
  184. package/node_modules/es-errors/test/index.js +19 -0
  185. package/node_modules/es-errors/tsconfig.json +49 -0
  186. package/node_modules/es-errors/type.d.ts +3 -0
  187. package/node_modules/es-errors/type.js +4 -0
  188. package/node_modules/es-errors/uri.d.ts +3 -0
  189. package/node_modules/es-errors/uri.js +4 -0
  190. package/node_modules/es-object-atoms/.eslintrc +16 -0
  191. package/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  192. package/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  193. package/node_modules/es-object-atoms/LICENSE +21 -0
  194. package/node_modules/es-object-atoms/README.md +63 -0
  195. package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  196. package/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  197. package/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  198. package/node_modules/es-object-atoms/ToObject.js +10 -0
  199. package/node_modules/es-object-atoms/index.d.ts +3 -0
  200. package/node_modules/es-object-atoms/index.js +4 -0
  201. package/node_modules/es-object-atoms/isObject.d.ts +3 -0
  202. package/node_modules/es-object-atoms/isObject.js +6 -0
  203. package/node_modules/es-object-atoms/package.json +80 -0
  204. package/node_modules/es-object-atoms/test/index.js +38 -0
  205. package/node_modules/es-object-atoms/tsconfig.json +6 -0
  206. package/node_modules/escalade/index.d.mts +11 -0
  207. package/node_modules/escalade/index.d.ts +14 -2
  208. package/node_modules/escalade/package.json +18 -5
  209. package/node_modules/escalade/readme.md +1 -1
  210. package/node_modules/escalade/sync/index.d.mts +9 -0
  211. package/node_modules/escalade/sync/index.d.ts +13 -2
  212. package/node_modules/fill-range/index.js +4 -5
  213. package/node_modules/fill-range/package.json +8 -3
  214. package/node_modules/follow-redirects/index.js +186 -98
  215. package/node_modules/follow-redirects/package.json +3 -4
  216. package/node_modules/form-data/Readme.md +5 -7
  217. package/node_modules/form-data/lib/form_data.js +5 -8
  218. package/node_modules/form-data/package.json +9 -6
  219. package/node_modules/function-bind/.eslintrc +11 -5
  220. package/node_modules/function-bind/.github/FUNDING.yml +12 -0
  221. package/node_modules/function-bind/.github/SECURITY.md +3 -0
  222. package/node_modules/function-bind/.nycrc +13 -0
  223. package/node_modules/function-bind/CHANGELOG.md +136 -0
  224. package/node_modules/function-bind/README.md +25 -27
  225. package/node_modules/function-bind/implementation.js +44 -12
  226. package/node_modules/function-bind/package.json +38 -14
  227. package/node_modules/get-intrinsic/.eslintrc +1 -0
  228. package/node_modules/get-intrinsic/CHANGELOG.md +87 -0
  229. package/node_modules/get-intrinsic/index.js +75 -32
  230. package/node_modules/get-intrinsic/package.json +31 -22
  231. package/node_modules/get-intrinsic/test/GetIntrinsic.js +3 -3
  232. package/node_modules/get-proto/.eslintrc +10 -0
  233. package/node_modules/{call-bind → get-proto}/.github/FUNDING.yml +1 -1
  234. package/node_modules/get-proto/.nycrc +9 -0
  235. package/node_modules/get-proto/CHANGELOG.md +21 -0
  236. package/node_modules/get-proto/LICENSE +21 -0
  237. package/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  238. package/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  239. package/node_modules/get-proto/README.md +50 -0
  240. package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  241. package/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  242. package/node_modules/get-proto/index.d.ts +5 -0
  243. package/node_modules/get-proto/index.js +27 -0
  244. package/node_modules/get-proto/package.json +81 -0
  245. package/node_modules/get-proto/test/index.js +68 -0
  246. package/node_modules/get-proto/tsconfig.json +9 -0
  247. package/node_modules/gopd/.eslintrc +16 -0
  248. package/node_modules/gopd/.github/FUNDING.yml +12 -0
  249. package/node_modules/gopd/CHANGELOG.md +45 -0
  250. package/node_modules/gopd/LICENSE +21 -0
  251. package/node_modules/gopd/README.md +40 -0
  252. package/node_modules/gopd/gOPD.d.ts +1 -0
  253. package/node_modules/gopd/gOPD.js +4 -0
  254. package/node_modules/gopd/index.d.ts +5 -0
  255. package/node_modules/gopd/index.js +15 -0
  256. package/node_modules/gopd/package.json +77 -0
  257. package/node_modules/gopd/test/index.js +36 -0
  258. package/node_modules/gopd/tsconfig.json +9 -0
  259. package/node_modules/has-symbols/CHANGELOG.md +16 -0
  260. package/node_modules/has-symbols/index.d.ts +3 -0
  261. package/node_modules/has-symbols/index.js +1 -0
  262. package/node_modules/has-symbols/package.json +19 -9
  263. package/node_modules/has-symbols/shams.d.ts +3 -0
  264. package/node_modules/has-symbols/shams.js +5 -2
  265. package/node_modules/has-symbols/test/shams/core-js.js +1 -0
  266. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +1 -0
  267. package/node_modules/has-symbols/test/tests.js +4 -2
  268. package/node_modules/has-symbols/tsconfig.json +10 -0
  269. package/node_modules/hasown/.eslintrc +5 -0
  270. package/node_modules/hasown/.github/FUNDING.yml +12 -0
  271. package/node_modules/hasown/.nycrc +13 -0
  272. package/node_modules/hasown/CHANGELOG.md +40 -0
  273. package/node_modules/hasown/LICENSE +21 -0
  274. package/node_modules/hasown/README.md +40 -0
  275. package/node_modules/hasown/index.d.ts +3 -0
  276. package/node_modules/hasown/index.js +8 -0
  277. package/node_modules/hasown/package.json +92 -0
  278. package/node_modules/hasown/tsconfig.json +6 -0
  279. package/node_modules/make-dir/node_modules/semver/package.json +38 -0
  280. package/node_modules/{@babel/cli → make-dir}/node_modules/semver/semver.js +68 -26
  281. package/node_modules/math-intrinsics/.eslintrc +16 -0
  282. package/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  283. package/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  284. package/node_modules/math-intrinsics/LICENSE +21 -0
  285. package/node_modules/math-intrinsics/README.md +50 -0
  286. package/node_modules/math-intrinsics/abs.d.ts +1 -0
  287. package/node_modules/math-intrinsics/abs.js +4 -0
  288. package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  289. package/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  290. package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  291. package/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  292. package/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  293. package/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  294. package/node_modules/math-intrinsics/floor.d.ts +1 -0
  295. package/node_modules/math-intrinsics/floor.js +4 -0
  296. package/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  297. package/node_modules/math-intrinsics/isFinite.js +12 -0
  298. package/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  299. package/node_modules/math-intrinsics/isInteger.js +16 -0
  300. package/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  301. package/node_modules/math-intrinsics/isNaN.js +6 -0
  302. package/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  303. package/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  304. package/node_modules/math-intrinsics/max.d.ts +1 -0
  305. package/node_modules/math-intrinsics/max.js +4 -0
  306. package/node_modules/math-intrinsics/min.d.ts +1 -0
  307. package/node_modules/math-intrinsics/min.js +4 -0
  308. package/node_modules/math-intrinsics/mod.d.ts +3 -0
  309. package/node_modules/math-intrinsics/mod.js +9 -0
  310. package/node_modules/math-intrinsics/package.json +86 -0
  311. package/node_modules/math-intrinsics/pow.d.ts +1 -0
  312. package/node_modules/math-intrinsics/pow.js +4 -0
  313. package/node_modules/math-intrinsics/round.d.ts +1 -0
  314. package/node_modules/math-intrinsics/round.js +4 -0
  315. package/node_modules/math-intrinsics/sign.d.ts +3 -0
  316. package/node_modules/math-intrinsics/sign.js +11 -0
  317. package/node_modules/math-intrinsics/test/index.js +192 -0
  318. package/node_modules/math-intrinsics/tsconfig.json +3 -0
  319. package/node_modules/ms/index.js +1 -1
  320. package/node_modules/ms/license.md +1 -1
  321. package/node_modules/ms/package.json +5 -4
  322. package/node_modules/ms/readme.md +1 -2
  323. package/node_modules/object-inspect/CHANGELOG.md +56 -0
  324. package/node_modules/object-inspect/index.js +38 -9
  325. package/node_modules/object-inspect/package.json +23 -13
  326. package/node_modules/object-inspect/readme.markdown +9 -11
  327. package/node_modules/object-inspect/test/global.js +17 -0
  328. package/node_modules/object-inspect/test/quoteStyle.js +9 -0
  329. package/node_modules/qs/.editorconfig +3 -0
  330. package/node_modules/qs/.eslintrc +3 -2
  331. package/node_modules/qs/CHANGELOG.md +81 -5
  332. package/node_modules/qs/README.md +158 -50
  333. package/node_modules/qs/dist/qs.js +90 -2003
  334. package/node_modules/qs/lib/parse.js +89 -24
  335. package/node_modules/qs/lib/stringify.js +61 -31
  336. package/node_modules/qs/lib/utils.js +54 -38
  337. package/node_modules/qs/package.json +29 -13
  338. package/node_modules/qs/test/empty-keys-cases.js +267 -0
  339. package/node_modules/qs/test/parse.js +468 -47
  340. package/node_modules/qs/test/stringify.js +454 -57
  341. package/node_modules/qs/test/utils.js +126 -0
  342. package/node_modules/side-channel/.editorconfig +9 -0
  343. package/node_modules/side-channel/.eslintrc +2 -1
  344. package/node_modules/side-channel/CHANGELOG.md +45 -0
  345. package/node_modules/side-channel/README.md +60 -1
  346. package/node_modules/side-channel/index.d.ts +14 -0
  347. package/node_modules/side-channel/index.js +21 -102
  348. package/node_modules/side-channel/package.json +40 -22
  349. package/node_modules/side-channel/test/index.js +78 -52
  350. package/node_modules/side-channel/tsconfig.json +9 -0
  351. package/node_modules/{function-bind → side-channel-list}/.editorconfig +3 -14
  352. package/node_modules/side-channel-list/.eslintrc +11 -0
  353. package/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  354. package/node_modules/side-channel-list/.nycrc +13 -0
  355. package/node_modules/side-channel-list/CHANGELOG.md +15 -0
  356. package/node_modules/side-channel-list/LICENSE +21 -0
  357. package/node_modules/side-channel-list/README.md +62 -0
  358. package/node_modules/side-channel-list/index.d.ts +13 -0
  359. package/node_modules/side-channel-list/index.js +113 -0
  360. package/node_modules/side-channel-list/list.d.ts +14 -0
  361. package/node_modules/side-channel-list/package.json +77 -0
  362. package/node_modules/side-channel-list/test/index.js +104 -0
  363. package/node_modules/side-channel-list/tsconfig.json +9 -0
  364. package/node_modules/side-channel-map/.editorconfig +9 -0
  365. package/node_modules/side-channel-map/.eslintrc +11 -0
  366. package/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  367. package/node_modules/side-channel-map/.nycrc +13 -0
  368. package/node_modules/side-channel-map/CHANGELOG.md +22 -0
  369. package/node_modules/side-channel-map/LICENSE +21 -0
  370. package/node_modules/side-channel-map/README.md +62 -0
  371. package/node_modules/side-channel-map/index.d.ts +15 -0
  372. package/node_modules/side-channel-map/index.js +68 -0
  373. package/node_modules/side-channel-map/package.json +80 -0
  374. package/node_modules/side-channel-map/test/index.js +114 -0
  375. package/node_modules/side-channel-map/tsconfig.json +9 -0
  376. package/node_modules/side-channel-weakmap/.editorconfig +9 -0
  377. package/node_modules/side-channel-weakmap/.eslintrc +12 -0
  378. package/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  379. package/node_modules/side-channel-weakmap/.nycrc +13 -0
  380. package/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  381. package/node_modules/side-channel-weakmap/LICENSE +21 -0
  382. package/node_modules/side-channel-weakmap/README.md +62 -0
  383. package/node_modules/side-channel-weakmap/index.d.ts +15 -0
  384. package/node_modules/side-channel-weakmap/index.js +84 -0
  385. package/node_modules/side-channel-weakmap/package.json +87 -0
  386. package/node_modules/side-channel-weakmap/test/index.js +114 -0
  387. package/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  388. package/node_modules/superagent/node_modules/readable-stream/README.md +1 -1
  389. package/node_modules/superagent/node_modules/readable-stream/lib/_stream_duplex.js +12 -25
  390. package/node_modules/superagent/node_modules/readable-stream/lib/_stream_passthrough.js +2 -4
  391. package/node_modules/superagent/node_modules/readable-stream/lib/_stream_readable.js +176 -273
  392. package/node_modules/superagent/node_modules/readable-stream/lib/_stream_transform.js +26 -37
  393. package/node_modules/superagent/node_modules/readable-stream/lib/_stream_writable.js +118 -174
  394. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/async_iterator.js +10 -37
  395. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/buffer_list.js +20 -47
  396. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/destroy.js +8 -17
  397. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +1 -19
  398. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/from.js +12 -24
  399. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/pipeline.js +5 -16
  400. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/state.js +2 -7
  401. package/node_modules/superagent/node_modules/readable-stream/package.json +1 -1
  402. package/node_modules/{semver → superagent/node_modules/semver}/README.md +132 -36
  403. package/node_modules/{semver → superagent/node_modules/semver}/bin/semver.js +22 -16
  404. package/node_modules/{semver → superagent/node_modules/semver}/classes/comparator.js +39 -34
  405. package/node_modules/{semver → superagent/node_modules/semver}/classes/range.js +72 -37
  406. package/node_modules/{semver → superagent/node_modules/semver}/classes/semver.js +49 -19
  407. package/node_modules/{semver → superagent/node_modules/semver}/functions/coerce.js +14 -6
  408. package/node_modules/superagent/node_modules/semver/functions/diff.js +58 -0
  409. package/node_modules/{semver → superagent/node_modules/semver}/functions/inc.js +3 -2
  410. package/node_modules/superagent/node_modules/semver/functions/parse.js +16 -0
  411. package/node_modules/superagent/node_modules/semver/index.js +89 -0
  412. package/node_modules/{semver → superagent/node_modules/semver}/internal/constants.js +20 -2
  413. package/node_modules/superagent/node_modules/semver/internal/lrucache.js +40 -0
  414. package/node_modules/superagent/node_modules/semver/internal/parse-options.js +15 -0
  415. package/node_modules/{semver → superagent/node_modules/semver}/internal/re.js +41 -6
  416. package/node_modules/{semver → superagent/node_modules/semver}/package.json +29 -26
  417. package/node_modules/{semver → superagent/node_modules/semver}/ranges/intersects.js +1 -1
  418. package/node_modules/{semver → superagent/node_modules/semver}/ranges/subset.js +6 -3
  419. package/node_modules/yargs/browser.d.ts +5 -0
  420. package/node_modules/yargs/build/index.cjs +1 -1
  421. package/node_modules/yargs/build/lib/command.js +2 -0
  422. package/node_modules/yargs/build/lib/completion.js +19 -12
  423. package/node_modules/yargs/build/lib/usage.js +9 -4
  424. package/node_modules/yargs/build/lib/yargs-factory.js +18 -3
  425. package/node_modules/yargs/locales/cs.json +51 -0
  426. package/node_modules/yargs/locales/en.json +4 -0
  427. package/node_modules/yargs/locales/fi.json +1 -1
  428. package/node_modules/yargs/package.json +4 -4
  429. package/node_modules/yargs-parser/CHANGELOG.md +21 -0
  430. package/node_modules/yargs-parser/build/index.cjs +6 -4
  431. package/node_modules/yargs-parser/build/lib/index.js +4 -2
  432. package/node_modules/yargs-parser/build/lib/yargs-parser.js +2 -2
  433. package/node_modules/yargs-parser/package.json +10 -6
  434. package/output/e3e8277b426d4bc636a8ed30e66dd056e6cc9691-corellium-cli-build.tar.gz +0 -0
  435. package/package.json +1 -1
  436. package/renovate.json +11 -58
  437. package/src/clients/Agent.js +40 -37
  438. package/src/clients/Client.js +42 -40
  439. package/src/clients/Instance.js +24 -24
  440. package/src/clients/Webplayer.js +23 -24
  441. package/src/commands/extensions/delete.js +26 -26
  442. package/src/commands/extensions/index.js +6 -11
  443. package/src/commands/extensions/list.js +25 -25
  444. package/src/commands/extensions/load.js +51 -50
  445. package/src/commands/extensions/validate.js +33 -38
  446. package/src/commands/firmware/index.js +6 -9
  447. package/src/commands/firmware/list.js +49 -38
  448. package/src/commands/firmware/load.js +45 -42
  449. package/src/commands/images/create.js +30 -29
  450. package/src/commands/images/delete.js +21 -21
  451. package/src/commands/images/index.js +6 -10
  452. package/src/commands/images/list.js +21 -20
  453. package/src/commands/index.js +2 -2
  454. package/src/commands/instances/apps/index.js +26 -23
  455. package/src/commands/instances/apps/install.js +14 -14
  456. package/src/commands/instances/apps/open.js +17 -17
  457. package/src/commands/instances/create.js +65 -26
  458. package/src/commands/instances/delete.js +24 -25
  459. package/src/commands/instances/file.js +36 -32
  460. package/src/commands/instances/get.js +23 -16
  461. package/src/commands/instances/index.js +8 -8
  462. package/src/commands/instances/input.js +16 -17
  463. package/src/commands/instances/list.js +38 -28
  464. package/src/commands/instances/netmon/disable.js +17 -15
  465. package/src/commands/instances/netmon/download.js +18 -16
  466. package/src/commands/instances/netmon/enable.js +30 -23
  467. package/src/commands/instances/netmon/index.js +6 -11
  468. package/src/commands/instances/netmon/stream.js +18 -16
  469. package/src/commands/instances/ready.js +30 -27
  470. package/src/commands/instances/restoreBackup.js +39 -36
  471. package/src/commands/instances/rotate.js +20 -21
  472. package/src/commands/instances/start.js +23 -24
  473. package/src/commands/instances/stop.js +20 -21
  474. package/src/commands/instances/unlock.js +17 -19
  475. package/src/commands/instances/upgrade.js +38 -34
  476. package/src/commands/login.js +67 -67
  477. package/src/commands/logout.js +10 -12
  478. package/src/commands/mast/constants.js +2 -2
  479. package/src/commands/mast/create-assessment.js +16 -16
  480. package/src/commands/mast/delete-assessment.js +15 -15
  481. package/src/commands/mast/download-report.js +18 -15
  482. package/src/commands/mast/get-assessment.js +14 -14
  483. package/src/commands/mast/get-assessments.js +13 -13
  484. package/src/commands/mast/index.js +7 -7
  485. package/src/commands/mast/start-monitor.js +15 -15
  486. package/src/commands/mast/stop-monitor.js +15 -15
  487. package/src/commands/mast/test.js +19 -16
  488. package/src/commands/projects/create.js +33 -32
  489. package/src/commands/projects/delete.js +26 -26
  490. package/src/commands/projects/index.js +6 -10
  491. package/src/commands/projects/list.js +21 -19
  492. package/src/commands/projects/vpnConfig.js +43 -0
  493. package/src/commands/webplayer/create.js +57 -50
  494. package/src/commands/webplayer/destroy.js +31 -28
  495. package/src/commands/webplayer/index.js +6 -11
  496. package/src/commands/webplayer/list.js +41 -42
  497. package/src/commands/webplayer/login.js +31 -28
  498. package/src/corellium-api.js +11 -11
  499. package/src/error.js +20 -18
  500. package/src/logging.js +15 -15
  501. package/src/profile.js +22 -22
  502. package/src/progress.js +6 -6
  503. package/src/resumable.js +606 -664
  504. package/src/table.js +20 -22
  505. package/src/upload.js +38 -38
  506. package/src/utils.js +63 -64
  507. package/test/test.js +53 -38
  508. package/coverage/cobertura-coverage.xml +0 -9
  509. package/coverage/lcov-report/base.css +0 -224
  510. package/coverage/lcov-report/block-navigation.js +0 -87
  511. package/coverage/lcov-report/favicon.png +0 -0
  512. package/coverage/lcov-report/index.html +0 -101
  513. package/coverage/lcov-report/prettify.css +0 -1
  514. package/coverage/lcov-report/prettify.js +0 -2
  515. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  516. package/coverage/lcov-report/sorter.js +0 -196
  517. package/coverage/lcov.info +0 -0
  518. package/node_modules/@babel/cli/node_modules/commander/CHANGELOG.md +0 -436
  519. package/node_modules/@babel/cli/node_modules/commander/index.js +0 -1649
  520. package/node_modules/@babel/cli/node_modules/commander/typings/index.d.ts +0 -311
  521. package/node_modules/@babel/cli/node_modules/semver/CHANGELOG.md +0 -39
  522. package/node_modules/@babel/cli/node_modules/semver/package.json +0 -28
  523. package/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts +0 -198
  524. package/node_modules/braces/CHANGELOG.md +0 -184
  525. package/node_modules/call-bind/.eslintignore +0 -1
  526. package/node_modules/call-bind/CHANGELOG.md +0 -42
  527. package/node_modules/call-bind/README.md +0 -2
  528. package/node_modules/call-bind/callBound.js +0 -15
  529. package/node_modules/call-bind/index.js +0 -47
  530. package/node_modules/call-bind/package.json +0 -80
  531. package/node_modules/call-bind/test/index.js +0 -66
  532. package/node_modules/component-emitter/History.md +0 -75
  533. package/node_modules/function-bind/.jscs.json +0 -176
  534. package/node_modules/function-bind/.npmignore +0 -22
  535. package/node_modules/function-bind/.travis.yml +0 -168
  536. package/node_modules/has/LICENSE-MIT +0 -22
  537. package/node_modules/has/README.md +0 -18
  538. package/node_modules/has/package.json +0 -48
  539. package/node_modules/has/src/index.js +0 -5
  540. package/node_modules/has/test/index.js +0 -10
  541. package/node_modules/lru-cache/README.md +0 -166
  542. package/node_modules/lru-cache/index.js +0 -334
  543. package/node_modules/lru-cache/package.json +0 -34
  544. package/node_modules/semver/LICENSE +0 -15
  545. package/node_modules/semver/functions/diff.js +0 -23
  546. package/node_modules/semver/functions/parse.js +0 -33
  547. package/node_modules/semver/index.js +0 -48
  548. package/node_modules/semver/internal/parse-options.js +0 -11
  549. package/node_modules/side-channel/.eslintignore +0 -1
  550. package/node_modules/superagent/node_modules/form-data/README.md.bak +0 -356
  551. package/node_modules/superagent/node_modules/form-data/Readme.md +0 -356
  552. package/node_modules/yallist/LICENSE +0 -15
  553. package/node_modules/yallist/README.md +0 -204
  554. package/node_modules/yallist/iterator.js +0 -8
  555. package/node_modules/yallist/package.json +0 -29
  556. package/node_modules/yallist/yallist.js +0 -426
  557. /package/node_modules/{superagent → axios}/node_modules/form-data/License +0 -0
  558. /package/node_modules/{superagent → axios}/node_modules/form-data/index.d.ts +0 -0
  559. /package/node_modules/{superagent → axios}/node_modules/form-data/lib/browser.js +0 -0
  560. /package/node_modules/{superagent → axios}/node_modules/form-data/lib/populate.js +0 -0
  561. /package/node_modules/{@babel/cli/node_modules/commander → commander}/LICENSE +0 -0
  562. /package/node_modules/{call-bind → dunder-proto}/.nycrc +0 -0
  563. /package/node_modules/{@babel/cli/node_modules/make-dir → make-dir}/index.d.ts +0 -0
  564. /package/node_modules/{@babel/cli/node_modules/make-dir → make-dir}/index.js +0 -0
  565. /package/node_modules/{@babel/cli/node_modules/make-dir → make-dir}/license +0 -0
  566. /package/node_modules/{@babel/cli → make-dir}/node_modules/semver/LICENSE +0 -0
  567. /package/node_modules/{@babel/cli → make-dir}/node_modules/semver/README.md +0 -0
  568. /package/node_modules/{@babel/cli → make-dir}/node_modules/semver/bin/semver +0 -0
  569. /package/node_modules/{@babel/cli → make-dir}/node_modules/semver/range.bnf +0 -0
  570. /package/node_modules/{@babel/cli/node_modules/make-dir → make-dir}/package.json +0 -0
  571. /package/node_modules/{@babel/cli/node_modules/make-dir → make-dir}/readme.md +0 -0
  572. /package/node_modules/{@babel/cli/node_modules/pify → pify}/index.js +0 -0
  573. /package/node_modules/{@babel/cli/node_modules/pify → pify}/license +0 -0
  574. /package/node_modules/{@babel/cli/node_modules/pify → pify}/package.json +0 -0
  575. /package/node_modules/{@babel/cli/node_modules/pify → pify}/readme.md +0 -0
  576. /package/node_modules/{@babel/cli/node_modules/slash → slash}/index.js +0 -0
  577. /package/node_modules/{@babel/cli/node_modules/slash → slash}/license +0 -0
  578. /package/node_modules/{@babel/cli/node_modules/slash → slash}/package.json +0 -0
  579. /package/node_modules/{@babel/cli/node_modules/slash → slash}/readme.md +0 -0
  580. /package/node_modules/{lru-cache → superagent/node_modules/semver}/LICENSE +0 -0
  581. /package/node_modules/{semver → superagent/node_modules/semver}/classes/index.js +0 -0
  582. /package/node_modules/{semver → superagent/node_modules/semver}/functions/clean.js +0 -0
  583. /package/node_modules/{semver → superagent/node_modules/semver}/functions/cmp.js +0 -0
  584. /package/node_modules/{semver → superagent/node_modules/semver}/functions/compare-build.js +0 -0
  585. /package/node_modules/{semver → superagent/node_modules/semver}/functions/compare-loose.js +0 -0
  586. /package/node_modules/{semver → superagent/node_modules/semver}/functions/compare.js +0 -0
  587. /package/node_modules/{semver → superagent/node_modules/semver}/functions/eq.js +0 -0
  588. /package/node_modules/{semver → superagent/node_modules/semver}/functions/gt.js +0 -0
  589. /package/node_modules/{semver → superagent/node_modules/semver}/functions/gte.js +0 -0
  590. /package/node_modules/{semver → superagent/node_modules/semver}/functions/lt.js +0 -0
  591. /package/node_modules/{semver → superagent/node_modules/semver}/functions/lte.js +0 -0
  592. /package/node_modules/{semver → superagent/node_modules/semver}/functions/major.js +0 -0
  593. /package/node_modules/{semver → superagent/node_modules/semver}/functions/minor.js +0 -0
  594. /package/node_modules/{semver → superagent/node_modules/semver}/functions/neq.js +0 -0
  595. /package/node_modules/{semver → superagent/node_modules/semver}/functions/patch.js +0 -0
  596. /package/node_modules/{semver → superagent/node_modules/semver}/functions/prerelease.js +0 -0
  597. /package/node_modules/{semver → superagent/node_modules/semver}/functions/rcompare.js +0 -0
  598. /package/node_modules/{semver → superagent/node_modules/semver}/functions/rsort.js +0 -0
  599. /package/node_modules/{semver → superagent/node_modules/semver}/functions/satisfies.js +0 -0
  600. /package/node_modules/{semver → superagent/node_modules/semver}/functions/sort.js +0 -0
  601. /package/node_modules/{semver → superagent/node_modules/semver}/functions/valid.js +0 -0
  602. /package/node_modules/{semver → superagent/node_modules/semver}/internal/debug.js +0 -0
  603. /package/node_modules/{semver → superagent/node_modules/semver}/internal/identifiers.js +0 -0
  604. /package/node_modules/{semver → superagent/node_modules/semver}/preload.js +0 -0
  605. /package/node_modules/{semver → superagent/node_modules/semver}/range.bnf +0 -0
  606. /package/node_modules/{semver → superagent/node_modules/semver}/ranges/gtr.js +0 -0
  607. /package/node_modules/{semver → superagent/node_modules/semver}/ranges/ltr.js +0 -0
  608. /package/node_modules/{semver → superagent/node_modules/semver}/ranges/max-satisfying.js +0 -0
  609. /package/node_modules/{semver → superagent/node_modules/semver}/ranges/min-satisfying.js +0 -0
  610. /package/node_modules/{semver → superagent/node_modules/semver}/ranges/min-version.js +0 -0
  611. /package/node_modules/{semver → superagent/node_modules/semver}/ranges/outside.js +0 -0
  612. /package/node_modules/{semver → superagent/node_modules/semver}/ranges/simplify.js +0 -0
  613. /package/node_modules/{semver → superagent/node_modules/semver}/ranges/to-comparators.js +0 -0
  614. /package/node_modules/{semver → superagent/node_modules/semver}/ranges/valid.js +0 -0
@@ -7,21 +7,26 @@ var isArray = Array.isArray;
7
7
 
8
8
  var defaults = {
9
9
  allowDots: false,
10
+ allowEmptyArrays: false,
10
11
  allowPrototypes: false,
11
12
  allowSparse: false,
12
13
  arrayLimit: 20,
13
14
  charset: 'utf-8',
14
15
  charsetSentinel: false,
15
16
  comma: false,
17
+ decodeDotInKeys: false,
16
18
  decoder: utils.decode,
17
19
  delimiter: '&',
18
20
  depth: 5,
21
+ duplicates: 'combine',
19
22
  ignoreQueryPrefix: false,
20
23
  interpretNumericEntities: false,
21
24
  parameterLimit: 1000,
22
25
  parseArrays: true,
23
26
  plainObjects: false,
24
- strictNullHandling: false
27
+ strictDepth: false,
28
+ strictNullHandling: false,
29
+ throwOnLimitExceeded: false
25
30
  };
26
31
 
27
32
  var interpretNumericEntities = function (str) {
@@ -30,11 +35,15 @@ var interpretNumericEntities = function (str) {
30
35
  });
31
36
  };
32
37
 
33
- var parseArrayValue = function (val, options) {
38
+ var parseArrayValue = function (val, options, currentArrayLength) {
34
39
  if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {
35
40
  return val.split(',');
36
41
  }
37
42
 
43
+ if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {
44
+ throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');
45
+ }
46
+
38
47
  return val;
39
48
  };
40
49
 
@@ -49,10 +58,21 @@ var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')
49
58
  var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')
50
59
 
51
60
  var parseValues = function parseQueryStringValues(str, options) {
52
- var obj = {};
61
+ var obj = { __proto__: null };
62
+
53
63
  var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
64
+ cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');
65
+
54
66
  var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
55
- var parts = cleanStr.split(options.delimiter, limit);
67
+ var parts = cleanStr.split(
68
+ options.delimiter,
69
+ options.throwOnLimitExceeded ? limit + 1 : limit
70
+ );
71
+
72
+ if (options.throwOnLimitExceeded && parts.length > limit) {
73
+ throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (limit === 1 ? '' : 's') + ' allowed.');
74
+ }
75
+
56
76
  var skipIndex = -1; // Keep track of where the utf8 sentinel was found
57
77
  var i;
58
78
 
@@ -80,14 +100,20 @@ var parseValues = function parseQueryStringValues(str, options) {
80
100
  var bracketEqualsPos = part.indexOf(']=');
81
101
  var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;
82
102
 
83
- var key, val;
103
+ var key;
104
+ var val;
84
105
  if (pos === -1) {
85
106
  key = options.decoder(part, defaults.decoder, charset, 'key');
86
107
  val = options.strictNullHandling ? null : '';
87
108
  } else {
88
109
  key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');
110
+
89
111
  val = utils.maybeMap(
90
- parseArrayValue(part.slice(pos + 1), options),
112
+ parseArrayValue(
113
+ part.slice(pos + 1),
114
+ options,
115
+ isArray(obj[key]) ? obj[key].length : 0
116
+ ),
91
117
  function (encodedVal) {
92
118
  return options.decoder(encodedVal, defaults.decoder, charset, 'value');
93
119
  }
@@ -95,16 +121,17 @@ var parseValues = function parseQueryStringValues(str, options) {
95
121
  }
96
122
 
97
123
  if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {
98
- val = interpretNumericEntities(val);
124
+ val = interpretNumericEntities(String(val));
99
125
  }
100
126
 
101
127
  if (part.indexOf('[]=') > -1) {
102
128
  val = isArray(val) ? [val] : val;
103
129
  }
104
130
 
105
- if (has.call(obj, key)) {
131
+ var existing = has.call(obj, key);
132
+ if (existing && options.duplicates === 'combine') {
106
133
  obj[key] = utils.combine(obj[key], val);
107
- } else {
134
+ } else if (!existing || options.duplicates === 'last') {
108
135
  obj[key] = val;
109
136
  }
110
137
  }
@@ -113,31 +140,40 @@ var parseValues = function parseQueryStringValues(str, options) {
113
140
  };
114
141
 
115
142
  var parseObject = function (chain, val, options, valuesParsed) {
116
- var leaf = valuesParsed ? val : parseArrayValue(val, options);
143
+ var currentArrayLength = 0;
144
+ if (chain.length > 0 && chain[chain.length - 1] === '[]') {
145
+ var parentKey = chain.slice(0, -1).join('');
146
+ currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;
147
+ }
148
+
149
+ var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);
117
150
 
118
151
  for (var i = chain.length - 1; i >= 0; --i) {
119
152
  var obj;
120
153
  var root = chain[i];
121
154
 
122
155
  if (root === '[]' && options.parseArrays) {
123
- obj = [].concat(leaf);
156
+ obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))
157
+ ? []
158
+ : utils.combine([], leaf);
124
159
  } else {
125
- obj = options.plainObjects ? Object.create(null) : {};
160
+ obj = options.plainObjects ? { __proto__: null } : {};
126
161
  var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
127
- var index = parseInt(cleanRoot, 10);
128
- if (!options.parseArrays && cleanRoot === '') {
162
+ var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;
163
+ var index = parseInt(decodedRoot, 10);
164
+ if (!options.parseArrays && decodedRoot === '') {
129
165
  obj = { 0: leaf };
130
166
  } else if (
131
167
  !isNaN(index)
132
- && root !== cleanRoot
133
- && String(index) === cleanRoot
168
+ && root !== decodedRoot
169
+ && String(index) === decodedRoot
134
170
  && index >= 0
135
171
  && (options.parseArrays && index <= options.arrayLimit)
136
172
  ) {
137
173
  obj = [];
138
174
  obj[index] = leaf;
139
- } else if (cleanRoot !== '__proto__') {
140
- obj[cleanRoot] = leaf;
175
+ } else if (decodedRoot !== '__proto__') {
176
+ obj[decodedRoot] = leaf;
141
177
  }
142
178
  }
143
179
 
@@ -192,9 +228,12 @@ var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesPars
192
228
  keys.push(segment[1]);
193
229
  }
194
230
 
195
- // If there's a remainder, just add whatever is left
231
+ // If there's a remainder, check strictDepth option for throw, else just add whatever is left
196
232
 
197
233
  if (segment) {
234
+ if (options.strictDepth === true) {
235
+ throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');
236
+ }
198
237
  keys.push('[' + key.slice(segment.index) + ']');
199
238
  }
200
239
 
@@ -206,33 +245,59 @@ var normalizeParseOptions = function normalizeParseOptions(opts) {
206
245
  return defaults;
207
246
  }
208
247
 
209
- if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {
248
+ if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {
249
+ throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');
250
+ }
251
+
252
+ if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {
253
+ throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');
254
+ }
255
+
256
+ if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {
210
257
  throw new TypeError('Decoder has to be a function.');
211
258
  }
212
259
 
213
260
  if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {
214
261
  throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
215
262
  }
263
+
264
+ if (typeof opts.throwOnLimitExceeded !== 'undefined' && typeof opts.throwOnLimitExceeded !== 'boolean') {
265
+ throw new TypeError('`throwOnLimitExceeded` option must be a boolean');
266
+ }
267
+
216
268
  var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;
217
269
 
270
+ var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;
271
+
272
+ if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {
273
+ throw new TypeError('The duplicates option must be either combine, first, or last');
274
+ }
275
+
276
+ var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
277
+
218
278
  return {
219
- allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
279
+ allowDots: allowDots,
280
+ allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
220
281
  allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,
221
282
  allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,
222
283
  arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,
223
284
  charset: charset,
224
285
  charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
225
286
  comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,
287
+ decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,
226
288
  decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,
227
289
  delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
228
290
  // eslint-disable-next-line no-implicit-coercion, no-extra-parens
229
291
  depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,
292
+ duplicates: duplicates,
230
293
  ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
231
294
  interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
232
295
  parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,
233
296
  parseArrays: opts.parseArrays !== false,
234
297
  plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,
235
- strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
298
+ strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,
299
+ strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,
300
+ throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === 'boolean' ? opts.throwOnLimitExceeded : false
236
301
  };
237
302
  };
238
303
 
@@ -240,11 +305,11 @@ module.exports = function (str, opts) {
240
305
  var options = normalizeParseOptions(opts);
241
306
 
242
307
  if (str === '' || str === null || typeof str === 'undefined') {
243
- return options.plainObjects ? Object.create(null) : {};
308
+ return options.plainObjects ? { __proto__: null } : {};
244
309
  }
245
310
 
246
311
  var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
247
- var obj = options.plainObjects ? Object.create(null) : {};
312
+ var obj = options.plainObjects ? { __proto__: null } : {};
248
313
 
249
314
  // Iterate over the keys and setup the new object
250
315
 
@@ -19,7 +19,6 @@ var arrayPrefixGenerators = {
19
19
  };
20
20
 
21
21
  var isArray = Array.isArray;
22
- var split = String.prototype.split;
23
22
  var push = Array.prototype.push;
24
23
  var pushToArray = function (arr, valueOrArray) {
25
24
  push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);
@@ -31,12 +30,17 @@ var defaultFormat = formats['default'];
31
30
  var defaults = {
32
31
  addQueryPrefix: false,
33
32
  allowDots: false,
33
+ allowEmptyArrays: false,
34
+ arrayFormat: 'indices',
34
35
  charset: 'utf-8',
35
36
  charsetSentinel: false,
37
+ commaRoundTrip: false,
36
38
  delimiter: '&',
37
39
  encode: true,
40
+ encodeDotInKeys: false,
38
41
  encoder: utils.encode,
39
42
  encodeValuesOnly: false,
43
+ filter: void undefined,
40
44
  format: defaultFormat,
41
45
  formatter: formats.formatters[defaultFormat],
42
46
  // deprecated
@@ -63,8 +67,10 @@ var stringify = function stringify(
63
67
  prefix,
64
68
  generateArrayPrefix,
65
69
  commaRoundTrip,
70
+ allowEmptyArrays,
66
71
  strictNullHandling,
67
72
  skipNulls,
73
+ encodeDotInKeys,
68
74
  encoder,
69
75
  filter,
70
76
  sort,
@@ -121,14 +127,6 @@ var stringify = function stringify(
121
127
  if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
122
128
  if (encoder) {
123
129
  var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);
124
- if (generateArrayPrefix === 'comma' && encodeValuesOnly) {
125
- var valuesArray = split.call(String(obj), ',');
126
- var valuesJoined = '';
127
- for (var i = 0; i < valuesArray.length; ++i) {
128
- valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));
129
- }
130
- return [formatter(keyValue) + (commaRoundTrip && isArray(obj) && valuesArray.length === 1 ? '[]' : '') + '=' + valuesJoined];
131
- }
132
130
  return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];
133
131
  }
134
132
  return [formatter(prefix) + '=' + formatter(String(obj))];
@@ -143,6 +141,9 @@ var stringify = function stringify(
143
141
  var objKeys;
144
142
  if (generateArrayPrefix === 'comma' && isArray(obj)) {
145
143
  // we need to join elements in
144
+ if (encodeValuesOnly && encoder) {
145
+ obj = utils.maybeMap(obj, encoder);
146
+ }
146
147
  objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];
147
148
  } else if (isArray(filter)) {
148
149
  objKeys = filter;
@@ -151,19 +152,28 @@ var stringify = function stringify(
151
152
  objKeys = sort ? keys.sort(sort) : keys;
152
153
  }
153
154
 
154
- var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;
155
+ var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, '%2E') : String(prefix);
156
+
157
+ var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;
158
+
159
+ if (allowEmptyArrays && isArray(obj) && obj.length === 0) {
160
+ return adjustedPrefix + '[]';
161
+ }
155
162
 
156
163
  for (var j = 0; j < objKeys.length; ++j) {
157
164
  var key = objKeys[j];
158
- var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];
165
+ var value = typeof key === 'object' && key && typeof key.value !== 'undefined'
166
+ ? key.value
167
+ : obj[key];
159
168
 
160
169
  if (skipNulls && value === null) {
161
170
  continue;
162
171
  }
163
172
 
173
+ var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, '%2E') : String(key);
164
174
  var keyPrefix = isArray(obj)
165
- ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix
166
- : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');
175
+ ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix
176
+ : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');
167
177
 
168
178
  sideChannel.set(object, step);
169
179
  var valueSideChannel = getSideChannel();
@@ -173,9 +183,11 @@ var stringify = function stringify(
173
183
  keyPrefix,
174
184
  generateArrayPrefix,
175
185
  commaRoundTrip,
186
+ allowEmptyArrays,
176
187
  strictNullHandling,
177
188
  skipNulls,
178
- encoder,
189
+ encodeDotInKeys,
190
+ generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,
179
191
  filter,
180
192
  sort,
181
193
  allowDots,
@@ -196,6 +208,14 @@ var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
196
208
  return defaults;
197
209
  }
198
210
 
211
+ if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {
212
+ throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');
213
+ }
214
+
215
+ if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {
216
+ throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');
217
+ }
218
+
199
219
  if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {
200
220
  throw new TypeError('Encoder has to be a function.');
201
221
  }
@@ -219,13 +239,32 @@ var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
219
239
  filter = opts.filter;
220
240
  }
221
241
 
242
+ var arrayFormat;
243
+ if (opts.arrayFormat in arrayPrefixGenerators) {
244
+ arrayFormat = opts.arrayFormat;
245
+ } else if ('indices' in opts) {
246
+ arrayFormat = opts.indices ? 'indices' : 'repeat';
247
+ } else {
248
+ arrayFormat = defaults.arrayFormat;
249
+ }
250
+
251
+ if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {
252
+ throw new TypeError('`commaRoundTrip` must be a boolean, or absent');
253
+ }
254
+
255
+ var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
256
+
222
257
  return {
223
258
  addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,
224
- allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
259
+ allowDots: allowDots,
260
+ allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
261
+ arrayFormat: arrayFormat,
225
262
  charset: charset,
226
263
  charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
264
+ commaRoundTrip: !!opts.commaRoundTrip,
227
265
  delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,
228
266
  encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,
267
+ encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,
229
268
  encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,
230
269
  encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
231
270
  filter: filter,
@@ -259,20 +298,8 @@ module.exports = function (object, opts) {
259
298
  return '';
260
299
  }
261
300
 
262
- var arrayFormat;
263
- if (opts && opts.arrayFormat in arrayPrefixGenerators) {
264
- arrayFormat = opts.arrayFormat;
265
- } else if (opts && 'indices' in opts) {
266
- arrayFormat = opts.indices ? 'indices' : 'repeat';
267
- } else {
268
- arrayFormat = 'indices';
269
- }
270
-
271
- var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
272
- if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {
273
- throw new TypeError('`commaRoundTrip` must be a boolean, or absent');
274
- }
275
- var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;
301
+ var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];
302
+ var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;
276
303
 
277
304
  if (!objKeys) {
278
305
  objKeys = Object.keys(obj);
@@ -285,17 +312,20 @@ module.exports = function (object, opts) {
285
312
  var sideChannel = getSideChannel();
286
313
  for (var i = 0; i < objKeys.length; ++i) {
287
314
  var key = objKeys[i];
315
+ var value = obj[key];
288
316
 
289
- if (options.skipNulls && obj[key] === null) {
317
+ if (options.skipNulls && value === null) {
290
318
  continue;
291
319
  }
292
320
  pushToArray(keys, stringify(
293
- obj[key],
321
+ value,
294
322
  key,
295
323
  generateArrayPrefix,
296
324
  commaRoundTrip,
325
+ options.allowEmptyArrays,
297
326
  options.strictNullHandling,
298
327
  options.skipNulls,
328
+ options.encodeDotInKeys,
299
329
  options.encode ? options.encoder : null,
300
330
  options.filter,
301
331
  options.sort,
@@ -34,7 +34,7 @@ var compactQueue = function compactQueue(queue) {
34
34
  };
35
35
 
36
36
  var arrayToObject = function arrayToObject(source, options) {
37
- var obj = options && options.plainObjects ? Object.create(null) : {};
37
+ var obj = options && options.plainObjects ? { __proto__: null } : {};
38
38
  for (var i = 0; i < source.length; ++i) {
39
39
  if (typeof source[i] !== 'undefined') {
40
40
  obj[i] = source[i];
@@ -50,11 +50,14 @@ var merge = function merge(target, source, options) {
50
50
  return target;
51
51
  }
52
52
 
53
- if (typeof source !== 'object') {
53
+ if (typeof source !== 'object' && typeof source !== 'function') {
54
54
  if (isArray(target)) {
55
55
  target.push(source);
56
56
  } else if (target && typeof target === 'object') {
57
- if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {
57
+ if (
58
+ (options && (options.plainObjects || options.allowPrototypes))
59
+ || !has.call(Object.prototype, source)
60
+ ) {
58
61
  target[source] = true;
59
62
  }
60
63
  } else {
@@ -108,7 +111,7 @@ var assign = function assignSingleSource(target, source) {
108
111
  }, target);
109
112
  };
110
113
 
111
- var decode = function (str, decoder, charset) {
114
+ var decode = function (str, defaultDecoder, charset) {
112
115
  var strWithoutPlus = str.replace(/\+/g, ' ');
113
116
  if (charset === 'iso-8859-1') {
114
117
  // unescape never throws, no try...catch needed:
@@ -122,6 +125,10 @@ var decode = function (str, decoder, charset) {
122
125
  }
123
126
  };
124
127
 
128
+ var limit = 1024;
129
+
130
+ /* eslint operator-linebreak: [2, "before"] */
131
+
125
132
  var encode = function encode(str, defaultEncoder, charset, kind, format) {
126
133
  // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
127
134
  // It has been adapted here for stricter adherence to RFC 3986
@@ -143,45 +150,54 @@ var encode = function encode(str, defaultEncoder, charset, kind, format) {
143
150
  }
144
151
 
145
152
  var out = '';
146
- for (var i = 0; i < string.length; ++i) {
147
- var c = string.charCodeAt(i);
148
-
149
- if (
150
- c === 0x2D // -
151
- || c === 0x2E // .
152
- || c === 0x5F // _
153
- || c === 0x7E // ~
154
- || (c >= 0x30 && c <= 0x39) // 0-9
155
- || (c >= 0x41 && c <= 0x5A) // a-z
156
- || (c >= 0x61 && c <= 0x7A) // A-Z
157
- || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )
158
- ) {
159
- out += string.charAt(i);
160
- continue;
161
- }
153
+ for (var j = 0; j < string.length; j += limit) {
154
+ var segment = string.length >= limit ? string.slice(j, j + limit) : string;
155
+ var arr = [];
156
+
157
+ for (var i = 0; i < segment.length; ++i) {
158
+ var c = segment.charCodeAt(i);
159
+ if (
160
+ c === 0x2D // -
161
+ || c === 0x2E // .
162
+ || c === 0x5F // _
163
+ || c === 0x7E // ~
164
+ || (c >= 0x30 && c <= 0x39) // 0-9
165
+ || (c >= 0x41 && c <= 0x5A) // a-z
166
+ || (c >= 0x61 && c <= 0x7A) // A-Z
167
+ || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )
168
+ ) {
169
+ arr[arr.length] = segment.charAt(i);
170
+ continue;
171
+ }
162
172
 
163
- if (c < 0x80) {
164
- out = out + hexTable[c];
165
- continue;
166
- }
173
+ if (c < 0x80) {
174
+ arr[arr.length] = hexTable[c];
175
+ continue;
176
+ }
167
177
 
168
- if (c < 0x800) {
169
- out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
170
- continue;
171
- }
178
+ if (c < 0x800) {
179
+ arr[arr.length] = hexTable[0xC0 | (c >> 6)]
180
+ + hexTable[0x80 | (c & 0x3F)];
181
+ continue;
182
+ }
183
+
184
+ if (c < 0xD800 || c >= 0xE000) {
185
+ arr[arr.length] = hexTable[0xE0 | (c >> 12)]
186
+ + hexTable[0x80 | ((c >> 6) & 0x3F)]
187
+ + hexTable[0x80 | (c & 0x3F)];
188
+ continue;
189
+ }
190
+
191
+ i += 1;
192
+ c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));
172
193
 
173
- if (c < 0xD800 || c >= 0xE000) {
174
- out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
175
- continue;
194
+ arr[arr.length] = hexTable[0xF0 | (c >> 18)]
195
+ + hexTable[0x80 | ((c >> 12) & 0x3F)]
196
+ + hexTable[0x80 | ((c >> 6) & 0x3F)]
197
+ + hexTable[0x80 | (c & 0x3F)];
176
198
  }
177
199
 
178
- i += 1;
179
- c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
180
- /* eslint operator-linebreak: [2, "before"] */
181
- out += hexTable[0xF0 | (c >> 18)]
182
- + hexTable[0x80 | ((c >> 12) & 0x3F)]
183
- + hexTable[0x80 | ((c >> 6) & 0x3F)]
184
- + hexTable[0x80 | (c & 0x3F)];
200
+ out += arr.join('');
185
201
  }
186
202
 
187
203
  return out;