@zuplo/cli 7.0.2 → 7.1.1

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 (594) hide show
  1. package/dist/delete/handler.js +2 -2
  2. package/dist/delete/handler.js.map +1 -1
  3. package/dist/deploy/handler.js +1 -1
  4. package/dist/deploy/handler.js.map +1 -1
  5. package/dist/deploy/poll-deployment.js +1 -1
  6. package/dist/deploy/poll-deployment.js.map +1 -1
  7. package/dist/tsconfig.tsbuildinfo +1 -1
  8. package/node_modules/@pinojs/redact/.github/dependabot.yml +13 -0
  9. package/node_modules/@pinojs/redact/.github/workflows/ci.yml +48 -0
  10. package/node_modules/@pinojs/redact/.github/workflows/publish-release.yml +43 -0
  11. package/node_modules/{event-target-shim → @pinojs/redact}/LICENSE +2 -3
  12. package/node_modules/@pinojs/redact/README.md +350 -0
  13. package/node_modules/@pinojs/redact/benchmarks/basic.js +184 -0
  14. package/node_modules/@pinojs/redact/eslint.config.js +1 -0
  15. package/node_modules/@pinojs/redact/index.d.ts +52 -0
  16. package/node_modules/@pinojs/redact/index.js +529 -0
  17. package/node_modules/@pinojs/redact/index.test-d.ts +22 -0
  18. package/node_modules/@pinojs/redact/package.json +37 -0
  19. package/node_modules/@pinojs/redact/scripts/sync-version.mjs +20 -0
  20. package/node_modules/@pinojs/redact/test/actual-redact-comparison.test.js +211 -0
  21. package/node_modules/@pinojs/redact/test/index.test.js +824 -0
  22. package/node_modules/@pinojs/redact/test/integration.test.js +390 -0
  23. package/node_modules/@pinojs/redact/test/multiple-wildcards.test.js +227 -0
  24. package/node_modules/@pinojs/redact/test/prototype-pollution.test.js +223 -0
  25. package/node_modules/@pinojs/redact/test/selective-clone.test.js +115 -0
  26. package/node_modules/@pinojs/redact/tsconfig.json +19 -0
  27. package/node_modules/@zuplo/core/customer.cli.minified.js +240 -240
  28. package/node_modules/@zuplo/core/index.minified.js +258 -258
  29. package/node_modules/@zuplo/core/package.json +1 -1
  30. package/node_modules/{abort-controller → @zuplo/editor/node_modules/fast-copy}/LICENSE +1 -1
  31. package/node_modules/@zuplo/editor/node_modules/fast-copy/README.md +395 -0
  32. package/node_modules/@zuplo/editor/node_modules/fast-copy/dist/cjs/index.cjs +406 -0
  33. package/node_modules/@zuplo/editor/node_modules/fast-copy/dist/cjs/index.cjs.map +1 -0
  34. package/node_modules/@zuplo/editor/node_modules/fast-copy/dist/umd/index.js +412 -0
  35. package/node_modules/@zuplo/editor/node_modules/fast-copy/dist/umd/index.js.map +1 -0
  36. package/node_modules/@zuplo/editor/node_modules/fast-copy/index.d.ts +55 -0
  37. package/node_modules/@zuplo/editor/node_modules/fast-copy/package.json +103 -0
  38. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/.github/workflows/ci.yml +97 -0
  39. package/node_modules/{fast-redact → @zuplo/editor/node_modules/pino-abstract-transport}/LICENSE +3 -3
  40. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/README.md +172 -0
  41. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/index.d.ts +122 -0
  42. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/index.js +128 -0
  43. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/package.json +40 -0
  44. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/test/base.test.js +445 -0
  45. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/test/fixtures/transport-async-iteration.js +22 -0
  46. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/test/fixtures/transport-on-data.js +22 -0
  47. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/test/fixtures/transport-transform.js +24 -0
  48. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/test/fixtures/worker-pipeline.js +15 -0
  49. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/test/types/index.test-d.ts +31 -0
  50. package/node_modules/@zuplo/editor/node_modules/pino-abstract-transport/test/worker.test.js +357 -0
  51. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/.airtap.yml +7 -0
  52. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/.github/dependabot.yml +13 -0
  53. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/.github/stale.yml +21 -0
  54. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/.github/workflows/ci.yml +137 -0
  55. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/README.md +126 -0
  56. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/benchmarks/ignore.js +35 -0
  57. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/benchmarks/no__proto__.js +40 -0
  58. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/benchmarks/package.json +15 -0
  59. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/benchmarks/remove.js +39 -0
  60. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/benchmarks/throw.js +49 -0
  61. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/benchmarks/valid.js +49 -0
  62. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/index.js +126 -0
  63. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/package.json +41 -0
  64. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/test/index.test.js +505 -0
  65. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/types/index.d.ts +57 -0
  66. package/node_modules/@zuplo/editor/node_modules/secure-json-parse/types/index.test-d.ts +31 -0
  67. package/node_modules/@zuplo/editor/node_modules/strip-json-comments/index.d.ts +36 -0
  68. package/node_modules/@zuplo/editor/node_modules/strip-json-comments/index.js +77 -0
  69. package/node_modules/@zuplo/editor/node_modules/strip-json-comments/license +9 -0
  70. package/node_modules/@zuplo/editor/node_modules/strip-json-comments/package.json +47 -0
  71. package/node_modules/@zuplo/editor/node_modules/strip-json-comments/readme.md +78 -0
  72. package/node_modules/@zuplo/editor/node_modules/thread-stream/.claude/settings.local.json +15 -0
  73. package/node_modules/@zuplo/editor/node_modules/thread-stream/.github/dependabot.yml +13 -0
  74. package/node_modules/{pino → @zuplo/editor/node_modules/thread-stream}/.github/workflows/ci.yml +25 -19
  75. package/node_modules/@zuplo/editor/node_modules/thread-stream/.husky/pre-commit +4 -0
  76. package/node_modules/@zuplo/editor/node_modules/{process-warning → thread-stream}/LICENSE +1 -1
  77. package/node_modules/@zuplo/editor/node_modules/thread-stream/README.md +136 -0
  78. package/node_modules/@zuplo/editor/node_modules/thread-stream/bench.js +85 -0
  79. package/node_modules/@zuplo/editor/node_modules/thread-stream/index.d.ts +92 -0
  80. package/node_modules/@zuplo/editor/node_modules/thread-stream/index.js +565 -0
  81. package/node_modules/@zuplo/editor/node_modules/thread-stream/lib/indexes.js +11 -0
  82. package/node_modules/@zuplo/editor/node_modules/thread-stream/lib/wait.js +61 -0
  83. package/node_modules/@zuplo/editor/node_modules/thread-stream/lib/worker.js +186 -0
  84. package/node_modules/@zuplo/editor/node_modules/thread-stream/package.json +57 -0
  85. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/base.test.js +258 -0
  86. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/bench.test.js +38 -0
  87. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/bundlers.test.js +60 -0
  88. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/close-on-gc.js +37 -0
  89. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/commonjs-fallback.test.js +80 -0
  90. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/context.test.js +21 -0
  91. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/create-and-exit.js +16 -0
  92. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/custom-worker.js +9 -0
  93. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/dir with spaces/test-package.zip +0 -0
  94. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/emit-event.js +22 -0
  95. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/end.test.js +61 -0
  96. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/error.js +14 -0
  97. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/esm.test.mjs +47 -0
  98. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/event.test.js +23 -0
  99. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/exit.js +14 -0
  100. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/get-context.js +22 -0
  101. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/helper.d.ts +1 -0
  102. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/helper.js +35 -0
  103. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/indexes.test.js +11 -0
  104. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/message-without-code.js +19 -0
  105. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/multibyte-chars.test.mjs +74 -0
  106. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/on-message.js +18 -0
  107. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/pkg/index.js +37 -0
  108. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/pkg/pkg.config.json +15 -0
  109. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/pkg/pkg.test.js +46 -0
  110. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/port.js +16 -0
  111. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/post-message.test.js +24 -0
  112. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/string-limit-2.test.js +41 -0
  113. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/string-limit.test.js +42 -0
  114. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/syntax-error.mjs +2 -0
  115. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/thread-management.test.js +121 -0
  116. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/to-file-on-destroy.js +23 -0
  117. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/to-file-on-final.js +24 -0
  118. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/to-file.js +12 -0
  119. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/to-file.mjs +8 -0
  120. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/to-next.js +9 -0
  121. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/transpiled.test.js +30 -0
  122. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/ts/to-file.ts +10 -0
  123. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/ts/transpile.sh +19 -0
  124. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/ts-commonjs-default-export.zip +0 -0
  125. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/uncaughtException.js +21 -0
  126. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/unhandledRejection.js +21 -0
  127. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/watch-mode.test.js +28 -0
  128. package/node_modules/@zuplo/editor/node_modules/thread-stream/test/yarnrc.yml +7 -0
  129. package/node_modules/@zuplo/editor/node_modules/thread-stream/tsconfig.json +8 -0
  130. package/node_modules/@zuplo/graphql/package.json +1 -1
  131. package/node_modules/@zuplo/openapi-tools/package.json +1 -1
  132. package/node_modules/@zuplo/otel/package.json +1 -1
  133. package/node_modules/@zuplo/runtime/out/esm/{chunk-XLNOQPTE.js → chunk-RS7HF7BL.js} +63 -63
  134. package/node_modules/@zuplo/runtime/out/esm/chunk-RS7HF7BL.js.map +1 -0
  135. package/node_modules/@zuplo/runtime/out/esm/index.js +1 -1
  136. package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js +1 -1
  137. package/node_modules/@zuplo/runtime/out/types/index.d.ts +16 -19
  138. package/node_modules/@zuplo/runtime/out/types/internal/index.d.ts +1 -2
  139. package/node_modules/@zuplo/runtime/out/types/mcp/messages/index.d.ts +1 -2
  140. package/node_modules/@zuplo/runtime/out/types/mcp-gateway/index.d.ts +1 -2
  141. package/node_modules/@zuplo/runtime/out/types/mocks/index.d.ts +1 -2
  142. package/node_modules/@zuplo/runtime/out/types/sdks/aws/index.d.ts +1 -2
  143. package/node_modules/@zuplo/runtime/package.json +1 -1
  144. package/node_modules/fast-copy/LICENSE +1 -1
  145. package/node_modules/fast-copy/README.md +186 -154
  146. package/node_modules/fast-copy/dist/cjs/index.cjs +143 -214
  147. package/node_modules/fast-copy/dist/cjs/index.cjs.map +1 -1
  148. package/node_modules/fast-copy/dist/cjs/index.d.cts +54 -0
  149. package/node_modules/fast-copy/dist/es/index.d.mts +54 -0
  150. package/node_modules/fast-copy/dist/es/index.mjs +331 -0
  151. package/node_modules/fast-copy/dist/es/index.mjs.map +1 -0
  152. package/node_modules/fast-copy/dist/umd/index.d.ts +54 -0
  153. package/node_modules/fast-copy/dist/umd/index.js +143 -214
  154. package/node_modules/fast-copy/dist/umd/index.js.map +1 -1
  155. package/node_modules/fast-copy/index.d.ts +37 -38
  156. package/node_modules/fast-copy/package.json +68 -61
  157. package/node_modules/pino/CONTRIBUTING.md +4 -4
  158. package/node_modules/pino/LICENSE +1 -1
  159. package/node_modules/pino/README.md +18 -2
  160. package/node_modules/pino/SECURITY.md +19 -0
  161. package/node_modules/pino/browser.js +76 -13
  162. package/node_modules/pino/build/sync-version.js +16 -1
  163. package/node_modules/pino/docs/api.md +128 -5
  164. package/node_modules/pino/docs/browser.md +51 -0
  165. package/node_modules/pino/docs/diagnostics.md +16 -0
  166. package/node_modules/pino/docs/ecosystem.md +15 -12
  167. package/node_modules/pino/docs/help.md +28 -2
  168. package/node_modules/pino/docs/transports.md +188 -20
  169. package/node_modules/pino/docs/web.md +40 -0
  170. package/node_modules/pino/eslint.config.js +28 -0
  171. package/node_modules/pino/lib/meta.js +1 -1
  172. package/node_modules/pino/lib/multistream.js +17 -2
  173. package/node_modules/pino/lib/proto.js +34 -10
  174. package/node_modules/pino/lib/redaction.js +9 -13
  175. package/node_modules/pino/lib/time.js +29 -1
  176. package/node_modules/pino/lib/tools.js +42 -9
  177. package/node_modules/pino/lib/transport.js +125 -3
  178. package/node_modules/pino/package.json +25 -25
  179. package/node_modules/pino/pino.d.ts +228 -203
  180. package/node_modules/pino/pino.js +2 -1
  181. package/node_modules/pino/test/basic.test.js +179 -167
  182. package/node_modules/pino/test/broken-pipe.test.js +16 -14
  183. package/node_modules/pino/test/browser-is-level-enabled.test.js +101 -0
  184. package/node_modules/pino/test/browser.test.js +39 -0
  185. package/node_modules/pino/test/complex-objects.test.js +8 -6
  186. package/node_modules/pino/test/crlf.test.js +7 -5
  187. package/node_modules/pino/test/custom-levels.test.js +80 -66
  188. package/node_modules/pino/test/diagnostics.test.js +107 -0
  189. package/node_modules/pino/test/error-key.test.js +37 -0
  190. package/node_modules/pino/test/error.test.js +47 -42
  191. package/node_modules/pino/test/escaping.test.js +7 -5
  192. package/node_modules/pino/test/esm/esm.mjs +5 -3
  193. package/node_modules/pino/test/esm/index.test.js +14 -27
  194. package/node_modules/pino/test/esm/named-exports.mjs +8 -6
  195. package/node_modules/pino/test/exit.test.js +17 -15
  196. package/node_modules/pino/test/fixtures/crashing-transport.js +13 -0
  197. package/node_modules/pino/test/fixtures/transport-invalid-node-options.js +26 -0
  198. package/node_modules/pino/test/fixtures/transport-preload-main.mjs +13 -0
  199. package/node_modules/pino/test/fixtures/transport-preload.mjs +13 -0
  200. package/node_modules/pino/test/fixtures/transport-worker-name.js +24 -0
  201. package/node_modules/pino/test/fixtures/ts/to-file-transport-native.mts +15 -0
  202. package/node_modules/pino/test/fixtures/ts/to-file-transport-with-transform.ts +1 -1
  203. package/node_modules/pino/test/formatters.test.js +43 -34
  204. package/node_modules/pino/test/helper.d.ts +3 -3
  205. package/node_modules/pino/test/helper.js +36 -9
  206. package/node_modules/pino/test/hooks.test.js +45 -28
  207. package/node_modules/pino/test/http.test.js +38 -66
  208. package/node_modules/pino/test/internals/version.test.js +9 -7
  209. package/node_modules/pino/test/is-level-enabled.test.js +66 -72
  210. package/node_modules/pino/test/levels.test.js +191 -153
  211. package/node_modules/pino/test/metadata.test.js +44 -30
  212. package/node_modules/pino/test/mixin-merge-strategy.test.js +9 -7
  213. package/node_modules/pino/test/mixin.test.js +62 -39
  214. package/node_modules/pino/test/multistream.test.js +173 -117
  215. package/node_modules/pino/test/redact.test.js +172 -126
  216. package/node_modules/pino/test/serializers.test.js +61 -57
  217. package/node_modules/pino/test/stdout-protection.test.js +12 -10
  218. package/node_modules/pino/test/syncfalse.test.js +24 -26
  219. package/node_modules/pino/test/timestamp-nano.test.js +37 -0
  220. package/node_modules/pino/test/timestamp.test.js +37 -34
  221. package/node_modules/pino/test/transport/big.test.js +8 -9
  222. package/node_modules/pino/test/transport/bundlers-support.test.js +12 -10
  223. package/node_modules/pino/test/transport/caller.test.js +8 -7
  224. package/node_modules/pino/test/transport/core.test.js +232 -143
  225. package/node_modules/pino/test/transport/core.transpiled.test.ts +15 -13
  226. package/node_modules/pino/test/transport/crash.test.js +36 -0
  227. package/node_modules/pino/test/transport/module-link.test.js +17 -15
  228. package/node_modules/pino/test/transport/native-type-stripping.test.mjs +151 -0
  229. package/node_modules/pino/test/transport/node-options.test.js +116 -0
  230. package/node_modules/pino/test/transport/pipeline.test.js +14 -12
  231. package/node_modules/pino/test/transport/preload.test.js +54 -0
  232. package/node_modules/pino/test/transport/repl.test.js +4 -3
  233. package/node_modules/pino/test/transport/{syncfalse.test.js → sync-false.test.js} +15 -16
  234. package/node_modules/pino/test/transport/{syncTrue.test.js → sync-true.test.js} +6 -4
  235. package/node_modules/pino/test/transport/targets.test.js +13 -9
  236. package/node_modules/pino/test/transport/uses-pino-config.test.js +13 -14
  237. package/node_modules/pino/test/transport-stream.test.js +22 -8
  238. package/node_modules/pino/test/types/{pino-import.test-d.ts → pino-import.test-d.cts} +4 -3
  239. package/node_modules/pino/test/types/pino-multistream.test-d.ts +4 -4
  240. package/node_modules/pino/test/types/pino-top-export.test-d.ts +26 -27
  241. package/node_modules/pino/test/types/pino-transport.test-d.ts +99 -88
  242. package/node_modules/pino/test/types/pino-type-only.test-d.ts +55 -44
  243. package/node_modules/pino/test/types/pino.test-d.ts +500 -281
  244. package/node_modules/pino/test/types/pino.ts +50 -37
  245. package/node_modules/pino/tsconfig.json +1 -1
  246. package/node_modules/pino-abstract-transport/.github/workflows/ci.yml +5 -22
  247. package/node_modules/pino-abstract-transport/README.md +0 -1
  248. package/node_modules/pino-abstract-transport/package.json +6 -5
  249. package/node_modules/pino-abstract-transport/test/base.test.js +108 -80
  250. package/node_modules/pino-abstract-transport/test/match.js +24 -0
  251. package/node_modules/pino-abstract-transport/test/worker.test.js +46 -31
  252. package/node_modules/pino-pretty/.borp.yaml +6 -0
  253. package/node_modules/pino-pretty/.github/dependabot.yml +1 -1
  254. package/node_modules/pino-pretty/.github/workflows/ci.yml +5 -12
  255. package/node_modules/pino-pretty/Readme.md +24 -3
  256. package/node_modules/pino-pretty/bin.js +5 -4
  257. package/node_modules/pino-pretty/eslint.config.js +3 -0
  258. package/node_modules/pino-pretty/index.d.ts +7 -7
  259. package/node_modules/pino-pretty/index.js +1 -1
  260. package/node_modules/pino-pretty/lib/colors.js +9 -4
  261. package/node_modules/pino-pretty/lib/colors.test.js +36 -36
  262. package/node_modules/pino-pretty/lib/pretty.js +7 -5
  263. package/node_modules/pino-pretty/lib/utils/build-safe-sonic-boom.js +2 -4
  264. package/node_modules/pino-pretty/lib/utils/build-safe-sonic-boom.test.js +17 -19
  265. package/node_modules/pino-pretty/lib/utils/create-date.test.js +7 -7
  266. package/node_modules/pino-pretty/lib/utils/delete-log-property.test.js +7 -7
  267. package/node_modules/pino-pretty/lib/utils/filter-log.test.js +33 -40
  268. package/node_modules/pino-pretty/lib/utils/format-time.js +1 -1
  269. package/node_modules/pino-pretty/lib/utils/format-time.test.js +25 -25
  270. package/node_modules/pino-pretty/lib/utils/get-property-value.test.js +11 -11
  271. package/node_modules/pino-pretty/lib/utils/handle-custom-levels-names-opts.test.js +15 -14
  272. package/node_modules/pino-pretty/lib/utils/handle-custom-levels-opts.test.js +11 -11
  273. package/node_modules/pino-pretty/lib/utils/index.test.js +8 -8
  274. package/node_modules/pino-pretty/lib/utils/interpret-conditionals.test.js +23 -23
  275. package/node_modules/pino-pretty/lib/utils/is-object.test.js +5 -5
  276. package/node_modules/pino-pretty/lib/utils/is-valid-date.test.js +6 -6
  277. package/node_modules/pino-pretty/lib/utils/join-lines-with-indentation.test.js +5 -5
  278. package/node_modules/pino-pretty/lib/utils/noop.test.js +5 -5
  279. package/node_modules/pino-pretty/lib/utils/prettify-error-log.test.js +26 -26
  280. package/node_modules/pino-pretty/lib/utils/prettify-error.test.js +3 -4
  281. package/node_modules/pino-pretty/lib/utils/prettify-level.test.js +9 -9
  282. package/node_modules/pino-pretty/lib/utils/prettify-message.js +2 -1
  283. package/node_modules/pino-pretty/lib/utils/prettify-message.test.js +73 -41
  284. package/node_modules/pino-pretty/lib/utils/prettify-metadata.test.js +37 -37
  285. package/node_modules/pino-pretty/lib/utils/prettify-object.js +1 -1
  286. package/node_modules/pino-pretty/lib/utils/prettify-object.test.js +71 -32
  287. package/node_modules/pino-pretty/lib/utils/prettify-time.test.js +29 -29
  288. package/node_modules/pino-pretty/lib/utils/split-property-key.test.js +11 -11
  289. package/node_modules/pino-pretty/package.json +22 -24
  290. package/node_modules/pino-pretty/test/basic.test.js +190 -181
  291. package/node_modules/pino-pretty/test/cli-rc.test.js +93 -73
  292. package/node_modules/pino-pretty/test/cli.test.js +169 -144
  293. package/node_modules/pino-pretty/test/crlf.test.js +6 -8
  294. package/node_modules/pino-pretty/test/error-objects.test.js +85 -90
  295. package/node_modules/pino-pretty/test/example/example.js +3 -1
  296. package/node_modules/pino-pretty/test/helper.js +19 -0
  297. package/node_modules/pino-pretty/test/types/pino-pretty.test-d.ts +4 -1
  298. package/node_modules/process-warning/.github/dependabot.yml +41 -1
  299. package/node_modules/process-warning/.github/workflows/ci.yml +12 -3
  300. package/node_modules/process-warning/LICENSE +1 -1
  301. package/node_modules/process-warning/README.md +42 -3
  302. package/node_modules/process-warning/index.js +85 -17
  303. package/node_modules/process-warning/package.json +7 -8
  304. package/node_modules/process-warning/test/emit-interpolated-string.test.js +11 -6
  305. package/node_modules/process-warning/test/emit-once-only.test.js +14 -9
  306. package/node_modules/process-warning/test/emit-reset.test.js +14 -10
  307. package/node_modules/process-warning/test/emit-set.test.js +10 -5
  308. package/node_modules/process-warning/test/emit-unlimited.test.js +14 -9
  309. package/node_modules/process-warning/test/index.test.js +20 -20
  310. package/node_modules/process-warning/test/issue-88.test.js +8 -3
  311. package/node_modules/process-warning/test/jest.test.js +17 -15
  312. package/node_modules/process-warning/test/no-warnings.test.js +7 -7
  313. package/node_modules/process-warning/types/index.d.ts +15 -1
  314. package/node_modules/secure-json-parse/.github/dependabot.yml +1 -1
  315. package/node_modules/secure-json-parse/.github/workflows/ci.yml +31 -19
  316. package/node_modules/{ieee754 → secure-json-parse}/LICENSE +9 -1
  317. package/node_modules/secure-json-parse/README.md +14 -8
  318. package/node_modules/secure-json-parse/benchmarks/ignore.js +1 -1
  319. package/node_modules/secure-json-parse/benchmarks/throw.js +3 -3
  320. package/node_modules/secure-json-parse/index.js +39 -4
  321. package/node_modules/secure-json-parse/package.json +41 -8
  322. package/node_modules/secure-json-parse/test/index.test.js +150 -6
  323. package/node_modules/secure-json-parse/types/index.d.ts +9 -6
  324. package/node_modules/secure-json-parse/types/index.test-d.ts +13 -1
  325. package/node_modules/strip-json-comments/index.d.ts +18 -13
  326. package/node_modules/strip-json-comments/index.js +75 -39
  327. package/node_modules/strip-json-comments/package.json +14 -5
  328. package/node_modules/strip-json-comments/readme.md +15 -18
  329. package/node_modules/thread-stream/.github/workflows/ci.yml +4 -24
  330. package/node_modules/thread-stream/README.md +2 -0
  331. package/node_modules/thread-stream/eslint.config.js +10 -0
  332. package/node_modules/thread-stream/index.d.ts +7 -0
  333. package/node_modules/thread-stream/index.js +189 -109
  334. package/node_modules/thread-stream/lib/wait.js +58 -42
  335. package/node_modules/thread-stream/lib/worker.js +126 -14
  336. package/node_modules/thread-stream/node_modules/real-require/LICENSE.md +21 -0
  337. package/node_modules/thread-stream/node_modules/real-require/README.md +51 -0
  338. package/node_modules/thread-stream/node_modules/real-require/package.json +38 -0
  339. package/node_modules/thread-stream/node_modules/real-require/src/index.js +14 -0
  340. package/node_modules/thread-stream/package.json +18 -25
  341. package/node_modules/thread-stream/test/base.test.js +97 -96
  342. package/node_modules/thread-stream/test/bench.test.js +3 -3
  343. package/node_modules/thread-stream/test/bundlers.test.js +8 -9
  344. package/node_modules/thread-stream/test/commonjs-fallback.test.js +17 -22
  345. package/node_modules/thread-stream/test/context.test.js +6 -6
  346. package/node_modules/thread-stream/test/end.test.js +22 -27
  347. package/node_modules/thread-stream/test/esm.test.mjs +8 -9
  348. package/node_modules/thread-stream/test/event.test.js +10 -9
  349. package/node_modules/thread-stream/test/flush-worker.js +68 -0
  350. package/node_modules/thread-stream/test/flush.test.js +112 -0
  351. package/node_modules/thread-stream/test/helper.js +1 -10
  352. package/node_modules/thread-stream/test/indexes.test.js +4 -4
  353. package/node_modules/thread-stream/test/multibyte-chars.test.mjs +14 -13
  354. package/node_modules/thread-stream/test/multibyte-overrun.test.mjs +33 -0
  355. package/node_modules/thread-stream/test/pkg/index.js +23 -23
  356. package/node_modules/thread-stream/test/pkg/pkg.config.json +3 -4
  357. package/node_modules/thread-stream/test/pkg/pkg.test.js +5 -6
  358. package/node_modules/thread-stream/test/post-message.test.js +4 -5
  359. package/node_modules/thread-stream/test/report-thread-name.js +16 -0
  360. package/node_modules/thread-stream/test/string-limit-2.test.js +24 -30
  361. package/node_modules/thread-stream/test/string-limit.test.js +24 -29
  362. package/node_modules/thread-stream/test/thread-management.test.js +46 -17
  363. package/node_modules/thread-stream/test/transpiled.test.js +5 -6
  364. package/node_modules/thread-stream/test/ts-native.test.mjs +35 -0
  365. package/node_modules/thread-stream/test/ts-node-fallback.test.js +35 -0
  366. package/node_modules/thread-stream/test/watch-mode.test.js +13 -11
  367. package/node_modules/thread-stream/test/worker-name.test.js +43 -0
  368. package/package.json +8 -8
  369. package/node_modules/@zuplo/editor/node_modules/process-warning/.github/dependabot.yml +0 -53
  370. package/node_modules/@zuplo/editor/node_modules/process-warning/.github/workflows/ci.yml +0 -33
  371. package/node_modules/@zuplo/editor/node_modules/process-warning/README.md +0 -157
  372. package/node_modules/@zuplo/editor/node_modules/process-warning/benchmarks/warn.js +0 -25
  373. package/node_modules/@zuplo/editor/node_modules/process-warning/examples/example.js +0 -11
  374. package/node_modules/@zuplo/editor/node_modules/process-warning/index.js +0 -192
  375. package/node_modules/@zuplo/editor/node_modules/process-warning/package.json +0 -72
  376. package/node_modules/@zuplo/editor/node_modules/process-warning/test/emit-interpolated-string.test.js +0 -34
  377. package/node_modules/@zuplo/editor/node_modules/process-warning/test/emit-once-only.test.js +0 -33
  378. package/node_modules/@zuplo/editor/node_modules/process-warning/test/emit-reset.test.js +0 -40
  379. package/node_modules/@zuplo/editor/node_modules/process-warning/test/emit-set.test.js +0 -35
  380. package/node_modules/@zuplo/editor/node_modules/process-warning/test/emit-unlimited.test.js +0 -42
  381. package/node_modules/@zuplo/editor/node_modules/process-warning/test/index.test.js +0 -99
  382. package/node_modules/@zuplo/editor/node_modules/process-warning/test/issue-88.test.js +0 -38
  383. package/node_modules/@zuplo/editor/node_modules/process-warning/test/jest.test.js +0 -24
  384. package/node_modules/@zuplo/editor/node_modules/process-warning/test/no-warnings.test.js +0 -80
  385. package/node_modules/@zuplo/editor/node_modules/process-warning/types/index.d.ts +0 -51
  386. package/node_modules/@zuplo/runtime/out/esm/chunk-XLNOQPTE.js.map +0 -1
  387. package/node_modules/abort-controller/README.md +0 -98
  388. package/node_modules/abort-controller/browser.js +0 -13
  389. package/node_modules/abort-controller/browser.mjs +0 -11
  390. package/node_modules/abort-controller/dist/abort-controller.d.ts +0 -43
  391. package/node_modules/abort-controller/dist/abort-controller.js +0 -127
  392. package/node_modules/abort-controller/dist/abort-controller.js.map +0 -1
  393. package/node_modules/abort-controller/dist/abort-controller.mjs +0 -118
  394. package/node_modules/abort-controller/dist/abort-controller.mjs.map +0 -1
  395. package/node_modules/abort-controller/dist/abort-controller.umd.js +0 -5
  396. package/node_modules/abort-controller/dist/abort-controller.umd.js.map +0 -1
  397. package/node_modules/abort-controller/package.json +0 -97
  398. package/node_modules/abort-controller/polyfill.js +0 -21
  399. package/node_modules/abort-controller/polyfill.mjs +0 -19
  400. package/node_modules/base64-js/LICENSE +0 -21
  401. package/node_modules/base64-js/README.md +0 -34
  402. package/node_modules/base64-js/base64js.min.js +0 -1
  403. package/node_modules/base64-js/index.d.ts +0 -3
  404. package/node_modules/base64-js/index.js +0 -150
  405. package/node_modules/base64-js/package.json +0 -47
  406. package/node_modules/buffer/AUTHORS.md +0 -73
  407. package/node_modules/buffer/LICENSE +0 -21
  408. package/node_modules/buffer/README.md +0 -410
  409. package/node_modules/buffer/index.d.ts +0 -194
  410. package/node_modules/buffer/index.js +0 -2106
  411. package/node_modules/buffer/package.json +0 -93
  412. package/node_modules/event-target-shim/README.md +0 -293
  413. package/node_modules/event-target-shim/dist/event-target-shim.js +0 -871
  414. package/node_modules/event-target-shim/dist/event-target-shim.js.map +0 -1
  415. package/node_modules/event-target-shim/dist/event-target-shim.mjs +0 -862
  416. package/node_modules/event-target-shim/dist/event-target-shim.mjs.map +0 -1
  417. package/node_modules/event-target-shim/dist/event-target-shim.umd.js +0 -6
  418. package/node_modules/event-target-shim/dist/event-target-shim.umd.js.map +0 -1
  419. package/node_modules/event-target-shim/index.d.ts +0 -399
  420. package/node_modules/event-target-shim/package.json +0 -82
  421. package/node_modules/events/.airtap.yml +0 -15
  422. package/node_modules/events/.github/FUNDING.yml +0 -12
  423. package/node_modules/events/.travis.yml +0 -18
  424. package/node_modules/events/History.md +0 -118
  425. package/node_modules/events/LICENSE +0 -22
  426. package/node_modules/events/Readme.md +0 -50
  427. package/node_modules/events/events.js +0 -497
  428. package/node_modules/events/package.json +0 -37
  429. package/node_modules/events/security.md +0 -10
  430. package/node_modules/events/tests/add-listeners.js +0 -111
  431. package/node_modules/events/tests/check-listener-leaks.js +0 -101
  432. package/node_modules/events/tests/common.js +0 -104
  433. package/node_modules/events/tests/errors.js +0 -13
  434. package/node_modules/events/tests/events-list.js +0 -28
  435. package/node_modules/events/tests/events-once.js +0 -234
  436. package/node_modules/events/tests/index.js +0 -64
  437. package/node_modules/events/tests/legacy-compat.js +0 -16
  438. package/node_modules/events/tests/listener-count.js +0 -37
  439. package/node_modules/events/tests/listeners-side-effects.js +0 -56
  440. package/node_modules/events/tests/listeners.js +0 -168
  441. package/node_modules/events/tests/max-listeners.js +0 -47
  442. package/node_modules/events/tests/method-names.js +0 -35
  443. package/node_modules/events/tests/modify-in-emit.js +0 -90
  444. package/node_modules/events/tests/num-args.js +0 -60
  445. package/node_modules/events/tests/once.js +0 -83
  446. package/node_modules/events/tests/prepend.js +0 -31
  447. package/node_modules/events/tests/remove-all-listeners.js +0 -133
  448. package/node_modules/events/tests/remove-listeners.js +0 -212
  449. package/node_modules/events/tests/set-max-listeners-side-effects.js +0 -31
  450. package/node_modules/events/tests/special-event-names.js +0 -45
  451. package/node_modules/events/tests/subclass.js +0 -66
  452. package/node_modules/events/tests/symbols.js +0 -25
  453. package/node_modules/fast-redact/.github/workflows/ci.yml +0 -37
  454. package/node_modules/fast-redact/benchmark/index.js +0 -223
  455. package/node_modules/fast-redact/example/default-usage.js +0 -14
  456. package/node_modules/fast-redact/example/intermediate-wildcard-array.js +0 -11
  457. package/node_modules/fast-redact/example/multi-wildcard-array-depth.js +0 -11
  458. package/node_modules/fast-redact/example/multi-wildcard-array-end.js +0 -11
  459. package/node_modules/fast-redact/example/multi-wildcard-array.js +0 -11
  460. package/node_modules/fast-redact/example/serialize-false.js +0 -11
  461. package/node_modules/fast-redact/example/serialize-function.js +0 -4
  462. package/node_modules/fast-redact/example/top-wildcard-object.js +0 -9
  463. package/node_modules/fast-redact/index.js +0 -56
  464. package/node_modules/fast-redact/lib/modifiers.js +0 -291
  465. package/node_modules/fast-redact/lib/parse.js +0 -44
  466. package/node_modules/fast-redact/lib/redactor.js +0 -108
  467. package/node_modules/fast-redact/lib/restorer.js +0 -92
  468. package/node_modules/fast-redact/lib/rx.js +0 -16
  469. package/node_modules/fast-redact/lib/state.js +0 -20
  470. package/node_modules/fast-redact/lib/validator.js +0 -33
  471. package/node_modules/fast-redact/package.json +0 -50
  472. package/node_modules/fast-redact/readme.md +0 -282
  473. package/node_modules/fast-redact/test/index.js +0 -1502
  474. package/node_modules/ieee754/README.md +0 -51
  475. package/node_modules/ieee754/index.d.ts +0 -10
  476. package/node_modules/ieee754/index.js +0 -85
  477. package/node_modules/ieee754/package.json +0 -52
  478. package/node_modules/pino/.eslintignore +0 -2
  479. package/node_modules/pino/.eslintrc +0 -8
  480. package/node_modules/pino/.github/workflows/bench.yml +0 -61
  481. package/node_modules/pino/.github/workflows/lock-threads.yml +0 -30
  482. package/node_modules/pino/.github/workflows/target-main.yml +0 -23
  483. package/node_modules/pino/.taprc.yaml +0 -8
  484. package/node_modules/pino/docsify/sidebar.md +0 -26
  485. package/node_modules/pino/favicon-16x16.png +0 -0
  486. package/node_modules/pino/favicon-32x32.png +0 -0
  487. package/node_modules/pino/pino-banner.png +0 -0
  488. package/node_modules/pino/pino-logo-hire.png +0 -0
  489. package/node_modules/pino/pino-tree.png +0 -0
  490. package/node_modules/pino/pretty-demo.png +0 -0
  491. package/node_modules/pino/test/errorKey.test.js +0 -34
  492. package/node_modules/pino/test/pkg/index.js +0 -46
  493. package/node_modules/pino/test/pkg/pkg.config.json +0 -17
  494. package/node_modules/pino/test/pkg/pkg.test.js +0 -56
  495. package/node_modules/pino/test/transport/core.test.ts +0 -236
  496. package/node_modules/process/.eslintrc +0 -21
  497. package/node_modules/process/LICENSE +0 -22
  498. package/node_modules/process/README.md +0 -26
  499. package/node_modules/process/browser.js +0 -184
  500. package/node_modules/process/index.js +0 -2
  501. package/node_modules/process/package.json +0 -27
  502. package/node_modules/process/test.js +0 -199
  503. package/node_modules/process-warning/.taprc +0 -2
  504. package/node_modules/process-warning/types/index.test-d.ts +0 -36
  505. package/node_modules/readable-stream/LICENSE +0 -47
  506. package/node_modules/readable-stream/README.md +0 -116
  507. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -4
  508. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -4
  509. package/node_modules/readable-stream/lib/_stream_readable.js +0 -4
  510. package/node_modules/readable-stream/lib/_stream_transform.js +0 -4
  511. package/node_modules/readable-stream/lib/_stream_writable.js +0 -4
  512. package/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +0 -52
  513. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -157
  514. package/node_modules/readable-stream/lib/internal/streams/compose.js +0 -194
  515. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -290
  516. package/node_modules/readable-stream/lib/internal/streams/duplex.js +0 -143
  517. package/node_modules/readable-stream/lib/internal/streams/duplexify.js +0 -378
  518. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -286
  519. package/node_modules/readable-stream/lib/internal/streams/from.js +0 -98
  520. package/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +0 -51
  521. package/node_modules/readable-stream/lib/internal/streams/legacy.js +0 -89
  522. package/node_modules/readable-stream/lib/internal/streams/operators.js +0 -457
  523. package/node_modules/readable-stream/lib/internal/streams/passthrough.js +0 -39
  524. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -471
  525. package/node_modules/readable-stream/lib/internal/streams/readable.js +0 -1290
  526. package/node_modules/readable-stream/lib/internal/streams/state.js +0 -39
  527. package/node_modules/readable-stream/lib/internal/streams/transform.js +0 -180
  528. package/node_modules/readable-stream/lib/internal/streams/utils.js +0 -327
  529. package/node_modules/readable-stream/lib/internal/streams/writable.js +0 -819
  530. package/node_modules/readable-stream/lib/internal/validators.js +0 -530
  531. package/node_modules/readable-stream/lib/ours/browser.js +0 -35
  532. package/node_modules/readable-stream/lib/ours/errors.js +0 -343
  533. package/node_modules/readable-stream/lib/ours/index.js +0 -65
  534. package/node_modules/readable-stream/lib/ours/primordials.js +0 -124
  535. package/node_modules/readable-stream/lib/ours/util/inspect.js +0 -55
  536. package/node_modules/readable-stream/lib/ours/util.js +0 -148
  537. package/node_modules/readable-stream/lib/stream/promises.js +0 -43
  538. package/node_modules/readable-stream/lib/stream.js +0 -143
  539. package/node_modules/readable-stream/package.json +0 -88
  540. package/node_modules/safe-buffer/LICENSE +0 -21
  541. package/node_modules/safe-buffer/README.md +0 -584
  542. package/node_modules/safe-buffer/index.d.ts +0 -187
  543. package/node_modules/safe-buffer/index.js +0 -65
  544. package/node_modules/safe-buffer/package.json +0 -51
  545. package/node_modules/string_decoder/LICENSE +0 -48
  546. package/node_modules/string_decoder/README.md +0 -47
  547. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  548. package/node_modules/string_decoder/package.json +0 -34
  549. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/.release-it.beta.json +0 -0
  550. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/.release-it.json +0 -0
  551. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/CHANGELOG.md +0 -0
  552. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/cjs/types/copier.d.ts +0 -0
  553. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/cjs/types/index.d.ts +0 -0
  554. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/cjs/types/utils.d.ts +0 -0
  555. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/esm/index.mjs +0 -0
  556. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/esm/index.mjs.map +0 -0
  557. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/esm/types/copier.d.ts +0 -0
  558. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/esm/types/index.d.ts +0 -0
  559. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/esm/types/utils.d.ts +0 -0
  560. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/min/index.js +0 -0
  561. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/min/index.js.map +0 -0
  562. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/min/types/copier.d.ts +0 -0
  563. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/min/types/index.d.ts +0 -0
  564. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/min/types/utils.d.ts +0 -0
  565. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/umd/types/copier.d.ts +0 -0
  566. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/umd/types/index.d.ts +0 -0
  567. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/dist/umd/types/utils.d.ts +0 -0
  568. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/flow-typed/fast-copy.js +0 -0
  569. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/rollup/config.base.js +0 -0
  570. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/rollup/config.cjs.js +0 -0
  571. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/rollup/config.esm.js +0 -0
  572. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/rollup/config.min.js +0 -0
  573. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/rollup/config.umd.js +0 -0
  574. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/rollup/packageJson.js +0 -0
  575. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/tsconfig/base.json +0 -0
  576. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/tsconfig/cjs.json +0 -0
  577. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/tsconfig/declarations.json +0 -0
  578. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/tsconfig/esm.json +0 -0
  579. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/tsconfig/min.json +0 -0
  580. /package/node_modules/{fast-copy → @zuplo/editor/node_modules/fast-copy}/tsconfig/umd.json +0 -0
  581. /package/node_modules/{pino → @zuplo/editor/node_modules/pino-abstract-transport}/.github/dependabot.yml +0 -0
  582. /package/node_modules/{thread-stream → @zuplo/editor/node_modules/pino-abstract-transport}/.husky/pre-commit +0 -0
  583. /package/node_modules/{secure-json-parse → @zuplo/editor/node_modules/secure-json-parse}/LICENSE.md +0 -0
  584. /package/node_modules/{thread-stream → @zuplo/editor/node_modules/thread-stream}/.taprc +0 -0
  585. /package/node_modules/{thread-stream → @zuplo/editor/node_modules/thread-stream}/CLAUDE.md +0 -0
  586. /package/node_modules/{thread-stream → @zuplo/editor/node_modules/thread-stream}/test/never-drain.test.js +0 -0
  587. /package/node_modules/{thread-stream → @zuplo/editor/node_modules/thread-stream}/test/ts.test.ts +0 -0
  588. /package/node_modules/@zuplo/runtime/out/esm/{chunk-XLNOQPTE.js.LEGAL.txt → chunk-RS7HF7BL.js.LEGAL.txt} +0 -0
  589. /package/node_modules/{@zuplo/editor/node_modules/process-warning → process-warning}/.github/workflows/lock-threads.yml +0 -0
  590. /package/node_modules/{@zuplo/editor/node_modules/process-warning → process-warning}/test/promise.js +0 -0
  591. /package/node_modules/{@zuplo/editor/node_modules/process-warning → process-warning}/test/spy-warning.test.js +0 -0
  592. /package/node_modules/{@zuplo/editor/node_modules/process-warning → process-warning}/types/index.tst.ts +0 -0
  593. /package/node_modules/{@zuplo/editor/node_modules/process-warning → secure-json-parse}/.gitattributes +0 -0
  594. /package/node_modules/{@zuplo/editor/node_modules/process-warning → secure-json-parse}/eslint.config.js +0 -0
@@ -1,14 +1,22 @@
1
1
  name: CI
2
+
2
3
  on:
3
4
  push:
5
+ branches:
6
+ - main
7
+ - next
8
+ - 'v*'
4
9
  paths-ignore:
5
- - docs/**
10
+ - 'docs/**'
6
11
  - '*.md'
7
12
  pull_request:
8
13
  paths-ignore:
9
- - docs/**
14
+ - 'docs/**'
10
15
  - '*.md'
11
16
 
17
+ permissions:
18
+ contents: read
19
+
12
20
  jobs:
13
21
  dependency-review:
14
22
  name: Dependency Review
@@ -18,12 +26,12 @@ jobs:
18
26
  contents: read
19
27
  steps:
20
28
  - name: Check out repo
21
- uses: actions/checkout@v3
29
+ uses: actions/checkout@v5
22
30
  with:
23
31
  persist-credentials: false
24
32
 
25
33
  - name: Dependency review
26
- uses: actions/dependency-review-action@v3
34
+ uses: actions/dependency-review-action@56339e523c0409420f6c2c9a2f4292bbb3c07dd3 # v4.8.0
27
35
 
28
36
  lint:
29
37
  name: Lint Code
@@ -32,13 +40,14 @@ jobs:
32
40
  contents: read
33
41
  steps:
34
42
  - name: Check out repo
35
- uses: actions/checkout@v3
43
+ uses: actions/checkout@v5
36
44
  with:
37
45
  persist-credentials: false
38
46
 
39
47
  - name: Setup Node
40
- uses: actions/setup-node@v3
48
+ uses: actions/setup-node@v5
41
49
  with:
50
+ check-latest: true
42
51
  node-version: lts/*
43
52
 
44
53
  - name: Install dependencies
@@ -54,18 +63,22 @@ jobs:
54
63
  contents: read
55
64
  steps:
56
65
  - name: Check out repo
57
- uses: actions/checkout@v3
66
+ uses: actions/checkout@v5
58
67
  with:
59
68
  persist-credentials: false
60
69
 
61
70
  - name: Setup Node
62
- uses: actions/setup-node@v3
71
+ uses: actions/setup-node@v5
63
72
  with:
73
+ check-latest: true
64
74
  node-version: lts/*
65
75
 
66
76
  - name: Install dependencies
67
77
  run: npm i
68
78
 
79
+ - name: Install Playwright
80
+ run: npx playwright install
81
+
69
82
  - name: Run tests
70
83
  run: npm run test:browser
71
84
 
@@ -76,25 +89,22 @@ jobs:
76
89
  contents: read
77
90
  strategy:
78
91
  matrix:
79
- node-version: [6, 8, 10, 11, 12, 13, 14, 15, 16, 18]
92
+ node-version: [20, 22, 24]
80
93
  steps:
81
94
  - name: Check out repo
82
- uses: actions/checkout@v3
95
+ uses: actions/checkout@v5
83
96
  with:
84
97
  persist-credentials: false
85
98
 
86
99
  - name: Setup Node ${{ matrix.node-version }}
87
- uses: actions/setup-node@v3
100
+ uses: actions/setup-node@v5
88
101
  with:
102
+ check-latest: true
89
103
  node-version: ${{ matrix.node-version }}
90
104
 
91
- - name: Upgrade npm
92
- if: ${{ success() && matrix.node-version == '6' }}
93
- run: npm i npm@6.13.4 -g
94
-
95
105
  - name: Install dependencies
96
106
  run: npm i --ignore-scripts
97
-
107
+
98
108
  - name: Run tests
99
109
  run: npm run test:unit
100
110
 
@@ -105,13 +115,14 @@ jobs:
105
115
  contents: read
106
116
  steps:
107
117
  - name: Check out repo
108
- uses: actions/checkout@v3
118
+ uses: actions/checkout@v5
109
119
  with:
110
120
  persist-credentials: false
111
121
 
112
122
  - name: Setup Node
113
- uses: actions/setup-node@v3
123
+ uses: actions/setup-node@v5
114
124
  with:
125
+ check-latest: true
115
126
  node-version: lts/*
116
127
 
117
128
  - name: Install dependencies
@@ -124,6 +135,7 @@ jobs:
124
135
  name: Automerge Dependabot PRs
125
136
  if: >
126
137
  github.event_name == 'pull_request' &&
138
+ github.event.pull_request.head.repo.full_name == github.repository &&
127
139
  github.event.pull_request.user.login == 'dependabot[bot]'
128
140
  needs: [browsers, lint, test, typescript]
129
141
  permissions:
@@ -131,7 +143,7 @@ jobs:
131
143
  contents: write
132
144
  runs-on: ubuntu-latest
133
145
  steps:
134
- - uses: fastify/github-action-merge-dependabot@v3
146
+ - uses: fastify/github-action-merge-dependabot@e820d631adb1d8ab16c3b93e5afe713450884a4a # v3.11.1
135
147
  with:
136
148
  github-token: ${{ secrets.GITHUB_TOKEN }}
137
149
  target: major
@@ -1,4 +1,12 @@
1
- Copyright 2008 Fair Oaks Labs, Inc.
1
+ Copyright (c) 2019, Sideway Inc, and project contributors
2
+ Copyright (c) 2019-present The Fastify team
3
+ All rights reserved.
4
+
5
+ The Fastify team members are listed at https://github.com/fastify/fastify#team.
6
+
7
+ The complete list of contributors can be found at:
8
+ - https://github.com/hapijs/bourne/graphs/contributors
9
+ - https://github.com/fastify/secure-json-parse/graphs/contributors
2
10
 
3
11
  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
12
 
@@ -1,8 +1,8 @@
1
1
  # secure-json-parse
2
2
 
3
- ![CI](https://github.com/fastify/secure-json-parse/workflows/CI/badge.svg)
3
+ [![CI](https://github.com/fastify/secure-json-parse/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/fastify/secure-json-parse/actions/workflows/ci.yml)
4
4
  [![NPM version](https://img.shields.io/npm/v/secure-json-parse.svg?style=flat)](https://www.npmjs.com/package/secure-json-parse)
5
- [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://standardjs.com/)
5
+ [![neostandard javascript style](https://img.shields.io/badge/code_style-neostandard-brightgreen?style=flat)](https://github.com/neostandard/neostandard)
6
6
 
7
7
  `JSON.parse()` drop-in replacement with prototype poisoning protection.
8
8
 
@@ -47,8 +47,8 @@ const sjson = require('secure-json-parse')
47
47
  const goodJson = '{ "a": 5, "b": 6 }'
48
48
  const badJson = '{ "a": 5, "b": 6, "__proto__": { "x": 7 }, "constructor": {"prototype": {"bar": "baz"} } }'
49
49
 
50
- console.log(JSON.parse(goodJson), sjson.parse(goodJson, { protoAction: 'remove', constructorAction: 'remove' }))
51
- console.log(JSON.parse(badJson), sjson.parse(badJson, { protoAction: 'remove', constructorAction: 'remove' }))
50
+ console.log(JSON.parse(goodJson), sjson.parse(goodJson, undefined, { protoAction: 'remove', constructorAction: 'remove' }))
51
+ console.log(JSON.parse(badJson), sjson.parse(badJson, undefined, { protoAction: 'remove', constructorAction: 'remove' }))
52
52
  ```
53
53
 
54
54
  ## API
@@ -67,6 +67,9 @@ Parses a given JSON-formatted text into an object where:
67
67
  - `'error'` - throw a `SyntaxError` when a `constructor.prototype` key is found. This is the default value.
68
68
  - `'remove'` - deletes any `constructor` keys from the result object.
69
69
  - `'ignore'` - skips all validation (same as calling `JSON.parse()` directly).
70
+ - `safe` - optional boolean:
71
+ - `true` - returns `null` instead of throwing when a forbidden prototype property is found.
72
+ - `false` - default behavior (throws or removes based on `protoAction`/`constructorAction`).
70
73
 
71
74
  ### `sjson.scan(obj, [options])`
72
75
 
@@ -79,6 +82,9 @@ Scans a given object for prototype properties where:
79
82
  - `constructorAction` - optional string with one of:
80
83
  - `'error'` - throw a `SyntaxError` when a `constructor.prototype` key is found. This is the default value.
81
84
  - `'remove'` - deletes any `constructor` keys from the input `obj`.
85
+ - `safe` - optional boolean:
86
+ - `true` - returns `null` instead of throwing when a forbidden prototype property is found.
87
+ - `false` - default behavior (throws or removes based on `protoAction`/`constructorAction`).
82
88
 
83
89
  ## Benchmarks
84
90
 
@@ -117,10 +123,10 @@ reviver x 114,197 ops/sec ±0.63% (87 runs sampled)
117
123
  Fastest is JSON.parse
118
124
  ```
119
125
 
120
- # Acknowledgements
126
+ ## Acknowledgments
121
127
  This project has been forked from [hapijs/bourne](https://github.com/hapijs/bourne).
122
- All the credits before the commit [4690682](https://github.com/hapijs/bourne/commit/4690682c6cdaa06590da7b2485d5df91c09da889) goes to the hapijs/bourne project contributors.
128
+ All credit before commit [4690682](https://github.com/hapijs/bourne/commit/4690682c6cdaa06590da7b2485d5df91c09da889) goes to the hapijs/bourne project contributors.
123
129
  After, the project will be maintained by the Fastify team.
124
130
 
125
- # License
126
- Licensed under BSD-3-Clause.
131
+ ## License
132
+ Licensed under [BSD-3-Clause](./LICENSE).
@@ -30,6 +30,6 @@ suite
30
30
  })
31
31
  .run({ async: true })
32
32
 
33
- internals.reviver = function (key, value) {
33
+ internals.reviver = function (_key, value) {
34
34
  return value
35
35
  }
@@ -17,12 +17,12 @@ suite
17
17
  .add('JSON.parse error', () => {
18
18
  try {
19
19
  JSON.parse(internals.invalid)
20
- } catch (ignoreErr) { }
20
+ } catch { }
21
21
  })
22
22
  .add('secure-json-parse parse', () => {
23
23
  try {
24
24
  sjson.parse(internals.invalid)
25
- } catch (ignoreErr) { }
25
+ } catch { }
26
26
  })
27
27
  .add('secure-json-parse safeParse', () => {
28
28
  sjson.safeParse(internals.invalid)
@@ -30,7 +30,7 @@ suite
30
30
  .add('reviver', () => {
31
31
  try {
32
32
  JSON.parse(internals.invalid, internals.reviver)
33
- } catch (ignoreErr) { }
33
+ } catch { }
34
34
  })
35
35
  .on('cycle', (event) => {
36
36
  console.log(String(event.target))
@@ -4,6 +4,16 @@ const hasBuffer = typeof Buffer !== 'undefined'
4
4
  const suspectProtoRx = /"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/
5
5
  const suspectConstructorRx = /"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/
6
6
 
7
+ /**
8
+ * @description Internal parse function that parses JSON text with security checks.
9
+ * @private
10
+ * @param {string|Buffer} text - The JSON text string or Buffer to parse.
11
+ * @param {Function} [reviver] - The JSON.parse() optional reviver argument.
12
+ * @param {import('./types').ParseOptions} [options] - Optional configuration object.
13
+ * @returns {*} The parsed object.
14
+ * @throws {SyntaxError} If a forbidden prototype property is found and `options.protoAction` or
15
+ * `options.constructorAction` is `'error'`.
16
+ */
7
17
  function _parse (text, reviver, options) {
8
18
  // Normalize arguments
9
19
  if (options == null) {
@@ -56,6 +66,14 @@ function _parse (text, reviver, options) {
56
66
  return filter(obj, { protoAction, constructorAction, safe: options && options.safe })
57
67
  }
58
68
 
69
+ /**
70
+ * @description Scans and filters an object for forbidden prototype properties.
71
+ * @param {Object} obj - The object being scanned.
72
+ * @param {import('./types').ParseOptions} [options] - Optional configuration object.
73
+ * @returns {Object|null} The filtered object, or `null` if safe mode is enabled and issues are found.
74
+ * @throws {SyntaxError} If a forbidden prototype property is found and `options.protoAction` or
75
+ * `options.constructorAction` is `'error'`.
76
+ */
59
77
  function filter (obj, { protoAction = 'error', constructorAction = 'error', safe } = {}) {
60
78
  let next = [obj]
61
79
 
@@ -76,6 +94,8 @@ function filter (obj, { protoAction = 'error', constructorAction = 'error', safe
76
94
 
77
95
  if (constructorAction !== 'ignore' &&
78
96
  Object.prototype.hasOwnProperty.call(node, 'constructor') &&
97
+ node.constructor !== null &&
98
+ typeof node.constructor === 'object' &&
79
99
  Object.prototype.hasOwnProperty.call(node.constructor, 'prototype')) { // Avoid calling node.hasOwnProperty directly
80
100
  if (safe === true) {
81
101
  return null
@@ -97,8 +117,17 @@ function filter (obj, { protoAction = 'error', constructorAction = 'error', safe
97
117
  return obj
98
118
  }
99
119
 
120
+ /**
121
+ * @description Parses a given JSON-formatted text into an object.
122
+ * @param {string|Buffer} text - The JSON text string or Buffer to parse.
123
+ * @param {Function} [reviver] - The `JSON.parse()` optional reviver argument, or options object.
124
+ * @param {import('./types').ParseOptions} [options] - Optional configuration object.
125
+ * @returns {*} The parsed object.
126
+ * @throws {SyntaxError} If the JSON text is malformed or contains forbidden prototype properties
127
+ * when `options.protoAction` or `options.constructorAction` is `'error'`.
128
+ */
100
129
  function parse (text, reviver, options) {
101
- const stackTraceLimit = Error.stackTraceLimit
130
+ const { stackTraceLimit } = Error
102
131
  Error.stackTraceLimit = 0
103
132
  try {
104
133
  return _parse(text, reviver, options)
@@ -107,13 +136,19 @@ function parse (text, reviver, options) {
107
136
  }
108
137
  }
109
138
 
139
+ /**
140
+ * @description Safely parses a given JSON-formatted text into an object.
141
+ * @param {string|Buffer} text - The JSON text string or Buffer to parse.
142
+ * @param {Function} [reviver] - The `JSON.parse()` optional reviver argument.
143
+ * @returns {*|null|undefined} The parsed object, `null` if security issues found, or `undefined` on parse error.
144
+ */
110
145
  function safeParse (text, reviver) {
111
- const stackTraceLimit = Error.stackTraceLimit
146
+ const { stackTraceLimit } = Error
112
147
  Error.stackTraceLimit = 0
113
148
  try {
114
149
  return _parse(text, reviver, { safe: true })
115
- } catch (_e) {
116
- return null
150
+ } catch {
151
+ return undefined
117
152
  } finally {
118
153
  Error.stackTraceLimit = stackTraceLimit
119
154
  }
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name": "secure-json-parse",
3
- "version": "2.7.0",
3
+ "version": "4.1.0",
4
4
  "description": "JSON parse with prototype poisoning protection",
5
5
  "main": "index.js",
6
+ "type": "commonjs",
6
7
  "types": "types/index.d.ts",
7
8
  "scripts": {
8
9
  "benchmark": "cd benchmarks && npm install && npm run all",
9
- "lint": "standard",
10
+ "lint": "eslint",
11
+ "lint:fix": "eslint --fix",
10
12
  "test": "nyc npm run test:unit && npm run test:typescript",
11
13
  "test:unit": "tape \"test/*.test.js\"",
12
14
  "test:typescript": "tsd",
@@ -16,6 +18,26 @@
16
18
  "type": "git",
17
19
  "url": "git+https://github.com/fastify/secure-json-parse.git"
18
20
  },
21
+ "author": "Eran Hammer <eran@sideway.com>",
22
+ "contributors": [
23
+ {
24
+ "name": "Matteo Collina",
25
+ "email": "hello@matteocollina.com"
26
+ },
27
+ {
28
+ "name": "Tomas Della Vedova",
29
+ "url": "http://delved.org"
30
+ },
31
+ {
32
+ "name": "Aras Abbasi",
33
+ "email": "aras.abbasi@gmail.com"
34
+ },
35
+ {
36
+ "name": "Frazer Smith",
37
+ "email": "frazer.dev@icloud.com",
38
+ "url": "https://github.com/fdawgs"
39
+ }
40
+ ],
19
41
  "keywords": [
20
42
  "JSON",
21
43
  "parse",
@@ -29,13 +51,24 @@
29
51
  "url": "https://github.com/fastify/secure-json-parse/issues"
30
52
  },
31
53
  "homepage": "https://github.com/fastify/secure-json-parse#readme",
54
+ "funding": [
55
+ {
56
+ "type": "github",
57
+ "url": "https://github.com/sponsors/fastify"
58
+ },
59
+ {
60
+ "type": "opencollective",
61
+ "url": "https://opencollective.com/fastify"
62
+ }
63
+ ],
32
64
  "devDependencies": {
33
- "airtap": "^4.0.1",
65
+ "airtap": "^5.0.0",
34
66
  "airtap-playwright": "^1.0.1",
35
- "nyc": "^14.1.1",
36
- "playwright": "^1.7.1",
37
- "standard": "^17.0.0",
38
- "tape": "^5.1.1",
39
- "tsd": "^0.25.0"
67
+ "eslint": "^9.17.0",
68
+ "neostandard": "^0.12.0",
69
+ "nyc": "^17.0.0",
70
+ "playwright": "^1.43.1",
71
+ "tape": "^5.7.5",
72
+ "tsd": "^0.33.0"
40
73
  }
41
74
  }
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- const test = require('tape').test
3
+ const { test } = require('tape')
4
4
  const j = require('..')
5
5
 
6
6
  test('parse', t => {
@@ -45,7 +45,7 @@ test('parse', t => {
45
45
  })
46
46
 
47
47
  t.test('parses object string (reviver)', t => {
48
- const reviver = (key, value) => {
48
+ const reviver = (_key, value) => {
49
49
  return typeof value === 'number' ? value + 1 : value
50
50
  }
51
51
 
@@ -58,7 +58,7 @@ test('parse', t => {
58
58
 
59
59
  t.test('protoAction', t => {
60
60
  t.test('sanitizes object string (reviver, options)', t => {
61
- const reviver = (key, value) => {
61
+ const reviver = (_key, value) => {
62
62
  return typeof value === 'number' ? value + 1 : value
63
63
  }
64
64
 
@@ -158,7 +158,7 @@ test('parse', t => {
158
158
 
159
159
  t.test('constructorAction', t => {
160
160
  t.test('sanitizes object string (reviver, options)', t => {
161
- const reviver = (key, value) => {
161
+ const reviver = (_key, value) => {
162
162
  return typeof value === 'number' ? value + 1 : value
163
163
  }
164
164
 
@@ -257,6 +257,27 @@ test('parse', t => {
257
257
  t.end()
258
258
  })
259
259
 
260
+ t.test('handles constructor null safely', t => {
261
+ // Test that constructor: null doesn't trigger prototype pollution checks
262
+ t.deepEqual(
263
+ j.parse('{"constructor": null}', { constructorAction: 'remove' }),
264
+ { constructor: null }
265
+ )
266
+
267
+ // Test that constructor: null doesn't throw error when using error action
268
+ t.deepEqual(
269
+ j.parse('{"constructor": null}', { constructorAction: 'error' }),
270
+ { constructor: null }
271
+ )
272
+
273
+ // Test that constructor: null is preserved when using ignore action
274
+ t.deepEqual(
275
+ j.parse('{"constructor": null}', { constructorAction: 'ignore' }),
276
+ { constructor: null }
277
+ )
278
+ t.end()
279
+ })
280
+
260
281
  t.end()
261
282
  })
262
283
 
@@ -432,10 +453,10 @@ test('safeParse', t => {
432
453
  t.end()
433
454
  })
434
455
 
435
- t.test('returns null on invalid object string', t => {
456
+ t.test('returns undefined on invalid object string', t => {
436
457
  t.strictEqual(
437
458
  j.safeParse('{"a": 5, "b": 6'),
438
- null
459
+ undefined
439
460
  )
440
461
  t.end()
441
462
  })
@@ -503,3 +524,126 @@ test('scan handles optional options', t => {
503
524
  t.doesNotThrow(() => j.scan({ a: 'b' }))
504
525
  t.end()
505
526
  })
527
+
528
+ test('safe option', t => {
529
+ t.test('parse with safe=true returns null on __proto__', t => {
530
+ const text = '{ "a": 5, "b": 6, "__proto__": { "x": 7 } }'
531
+ t.strictEqual(j.parse(text, { safe: true }), null)
532
+ t.end()
533
+ })
534
+
535
+ t.test('parse with safe=true returns null on constructor', t => {
536
+ const text = '{ "a": 5, "b": 6, "constructor": {"prototype": {"bar": "baz"}} }'
537
+ t.strictEqual(j.parse(text, { safe: true }), null)
538
+ t.end()
539
+ })
540
+
541
+ t.test('parse with safe=true returns object when valid', t => {
542
+ const text = '{ "a": 5, "b": 6 }'
543
+ t.deepEqual(j.parse(text, { safe: true }), { a: 5, b: 6 })
544
+ t.end()
545
+ })
546
+
547
+ t.test('parse with safe=true and reviver', t => {
548
+ const text = '{ "a": 5, "b": 6, "__proto__": { "x": 7 } }'
549
+ const reviver = (_key, value) => {
550
+ return typeof value === 'number' ? value + 1 : value
551
+ }
552
+ t.strictEqual(j.parse(text, reviver, { safe: true }), null)
553
+ t.end()
554
+ })
555
+
556
+ t.test('parse with safe=true and protoAction=remove returns null', t => {
557
+ const text = '{ "a": 5, "b": 6, "__proto__": { "x": 7 } }'
558
+ t.strictEqual(j.parse(text, { safe: true, protoAction: 'remove' }), null)
559
+ t.end()
560
+ })
561
+
562
+ t.test('parse with safe=true and constructorAction=remove returns null', t => {
563
+ const text = '{ "a": 5, "b": 6, "constructor": {"prototype": {"bar": "baz"}} }'
564
+ t.strictEqual(j.parse(text, { safe: true, constructorAction: 'remove' }), null)
565
+ t.end()
566
+ })
567
+
568
+ t.test('parse with safe=false throws on __proto__', t => {
569
+ const text = '{ "a": 5, "b": 6, "__proto__": { "x": 7 } }'
570
+ t.throws(() => j.parse(text, { safe: false }), SyntaxError)
571
+ t.end()
572
+ })
573
+
574
+ t.test('parse with safe=false throws on constructor', t => {
575
+ const text = '{ "a": 5, "b": 6, "constructor": {"prototype": {"bar": "baz"}} }'
576
+ t.throws(() => j.parse(text, { safe: false }), SyntaxError)
577
+ t.end()
578
+ })
579
+
580
+ t.test('scan with safe=true returns null on __proto__', t => {
581
+ const obj = JSON.parse('{ "a": 5, "b": 6, "__proto__": { "x": 7 } }')
582
+ t.strictEqual(j.scan(obj, { safe: true }), null)
583
+ t.end()
584
+ })
585
+
586
+ t.test('scan with safe=true returns null on constructor', t => {
587
+ const obj = JSON.parse('{ "a": 5, "b": 6, "constructor": {"prototype": {"bar": "baz"}} }')
588
+ t.strictEqual(j.scan(obj, { safe: true }), null)
589
+ t.end()
590
+ })
591
+
592
+ t.test('scan with safe=true returns object when valid', t => {
593
+ const obj = { a: 5, b: 6 }
594
+ t.deepEqual(j.scan(obj, { safe: true }), { a: 5, b: 6 })
595
+ t.end()
596
+ })
597
+
598
+ t.test('scan with safe=false throws on __proto__', t => {
599
+ const obj = JSON.parse('{ "a": 5, "b": 6, "__proto__": { "x": 7 } }')
600
+ t.throws(() => j.scan(obj, { safe: false }), SyntaxError)
601
+ t.end()
602
+ })
603
+
604
+ t.test('scan with safe=false throws on constructor', t => {
605
+ const obj = JSON.parse('{ "a": 5, "b": 6, "constructor": {"prototype": {"bar": "baz"}} }')
606
+ t.throws(() => j.scan(obj, { safe: false }), SyntaxError)
607
+ t.end()
608
+ })
609
+
610
+ t.test('parse with safe=true returns null on nested __proto__', t => {
611
+ const text = '{ "a": 5, "c": { "d": 0, "__proto__": { "y": 8 } } }'
612
+ t.strictEqual(j.parse(text, { safe: true }), null)
613
+ t.end()
614
+ })
615
+
616
+ t.test('parse with safe=true returns null on nested constructor', t => {
617
+ const text = '{ "a": 5, "c": { "d": 0, "constructor": {"prototype": {"bar": "baz"}} } }'
618
+ t.strictEqual(j.parse(text, { safe: true }), null)
619
+ t.end()
620
+ })
621
+
622
+ t.test('parse with safe=true and protoAction=ignore returns object', t => {
623
+ const text = '{ "a": 5, "b": 6, "__proto__": { "x": 7 } }'
624
+ t.deepEqual(
625
+ j.parse(text, { safe: true, protoAction: 'ignore' }),
626
+ JSON.parse(text)
627
+ )
628
+ t.end()
629
+ })
630
+
631
+ t.test('parse with safe=true and constructorAction=ignore returns object', t => {
632
+ const text = '{ "a": 5, "b": 6, "constructor": {"prototype": {"bar": "baz"}} }'
633
+ t.deepEqual(
634
+ j.parse(text, { safe: true, constructorAction: 'ignore' }),
635
+ JSON.parse(text)
636
+ )
637
+ t.end()
638
+ })
639
+
640
+ t.test('should reset stackTraceLimit with safe option', t => {
641
+ const text = '{ "a": 5, "b": 6, "__proto__": { "x": 7 } }'
642
+ Error.stackTraceLimit = 42
643
+ t.strictEqual(j.parse(text, { safe: true }), null)
644
+ t.same(Error.stackTraceLimit, 42)
645
+ t.end()
646
+ })
647
+
648
+ t.end()
649
+ })
@@ -16,6 +16,8 @@ declare namespace parse {
16
16
  * - `'ignore'` - skips all validation (same as calling `JSON.parse()` directly).
17
17
  */
18
18
  constructorAction?: 'error' | 'remove' | 'ignore';
19
+ /** If `true`, returns `null` instead of throwing an error when a security issue is found. */
20
+ safe?: boolean;
19
21
  }
20
22
 
21
23
  export type ScanOptions = ParseOptions
@@ -33,13 +35,13 @@ declare namespace parse {
33
35
  export const parse: Parse
34
36
 
35
37
  /**
36
- * Parses a given JSON-formatted text into an object.
38
+ * Safely parses a given JSON-formatted text into an object.
37
39
  *
38
40
  * @param text The JSON text string.
39
41
  * @param reviver The `JSON.parse()` optional `reviver` argument.
40
- * @returns The parsed object, or `null` if there was an error or if the JSON contained possibly insecure properties.
42
+ * @returns The parsed object, or `undefined` if there was an error or if the JSON contained possibly insecure properties.
41
43
  */
42
- export function safeParse(text: string | Buffer, reviver?: Reviver | null): any
44
+ export function safeParse (text: string | Buffer, reviver?: Reviver | null): any
43
45
 
44
46
  /**
45
47
  * Scans a given object for prototype properties.
@@ -48,10 +50,11 @@ declare namespace parse {
48
50
  * @param options Optional configuration object.
49
51
  * @returns The object, or `null` if onError is set to `nullify`
50
52
  */
51
- export function scan(obj: { [key: string | number]: any }, options?: ParseOptions): any
53
+ export function scan (obj: { [key: string | number]: any }, options?: ParseOptions): any
52
54
 
53
- export { parse as default}
55
+ export { parse as default }
54
56
  }
55
57
 
56
- declare function parse(text: string | Buffer, reviver?: parse.Reviver | null, options?: parse.ParseOptions): any
58
+ declare function parse (text: string | Buffer, options?: parse.ParseOptions): any
59
+ declare function parse (text: string | Buffer, reviver?: parse.Reviver | null, options?: parse.ParseOptions): any
57
60
  export = parse
@@ -8,6 +8,15 @@ sjson.parse('"test"', null, { protoAction: 'remove' })
8
8
  expectError(sjson.parse('"test"', null, { protoAction: 'incorrect' }))
9
9
  sjson.parse('"test"', null, { constructorAction: 'ignore' })
10
10
  expectError(sjson.parse('"test"', null, { constructorAction: 'incorrect' }))
11
+ expectError(sjson.parse('"test"', { constructorAction: 'incorrect' }))
12
+ sjson.parse('test', { constructorAction: 'remove' })
13
+ sjson.parse('test', { protoAction: 'ignore' })
14
+ sjson.parse('test', () => {}, { protoAction: 'ignore', constructorAction: 'remove' })
15
+ sjson.parse('"test"', null, { safe: true })
16
+ sjson.parse('"test"', { safe: true })
17
+ sjson.parse('test', () => {}, { safe: false })
18
+ sjson.parse('test', { protoAction: 'remove', safe: true })
19
+ expectError(sjson.parse('"test"', null, { safe: 'incorrect' }))
11
20
 
12
21
  sjson.safeParse('"test"', null)
13
22
  sjson.safeParse('"test"')
@@ -17,7 +26,10 @@ sjson.scan({}, { protoAction: 'remove' })
17
26
  sjson.scan({}, { protoAction: 'ignore' })
18
27
  sjson.scan({}, { constructorAction: 'error' })
19
28
  sjson.scan({}, { constructorAction: 'ignore' })
20
- sjson.scan(new Array(), {})
29
+ sjson.scan([], {})
30
+ sjson.scan({}, { safe: true })
31
+ sjson.scan({}, { protoAction: 'remove', safe: false })
32
+ expectError(sjson.scan({}, { safe: 'incorrect' }))
21
33
 
22
34
  declare const input: Buffer
23
35
  sjson.parse(input)