@contrail/cli 3.4.5-alpha.18160f5 → 3.4.6-alpha.c203463

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 (574) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/load-local/index.js +25 -30
  3. package/dist/helpers/pipeline/formatters.d.ts +2 -3
  4. package/dist/helpers/pipeline/formatters.js +63 -63
  5. package/node_modules/@contrail/entity-compare/CHANGELOG.md +13 -0
  6. package/node_modules/@contrail/entity-compare/README.md +0 -0
  7. package/node_modules/@contrail/entity-compare/lib/entity-compare/entity-compare.client.d.ts +36 -0
  8. package/node_modules/@contrail/entity-compare/lib/entity-compare/entity-compare.client.js +118 -0
  9. package/node_modules/@contrail/entity-compare/lib/entity-compare/index.d.ts +1 -0
  10. package/node_modules/@contrail/entity-compare/lib/entity-compare/index.js +17 -0
  11. package/node_modules/@contrail/entity-compare/lib/entity-compare/mockData.d.ts +11 -0
  12. package/node_modules/@contrail/entity-compare/lib/entity-compare/mockData.js +99 -0
  13. package/node_modules/@contrail/entity-compare/lib/index.d.ts +1 -0
  14. package/node_modules/@contrail/entity-compare/lib/index.js +17 -0
  15. package/node_modules/@contrail/entity-compare/package.json +45 -0
  16. package/node_modules/@contrail/loader/lib/__mocks__/@contrail/cache.d.ts +2 -0
  17. package/node_modules/@contrail/loader/lib/__mocks__/@contrail/cache.js +18 -0
  18. package/node_modules/@contrail/loader/lib/base-processor.d.ts +17 -0
  19. package/node_modules/@contrail/loader/lib/base-processor.js +26 -0
  20. package/node_modules/@contrail/loader/lib/color-processor.d.ts +19 -0
  21. package/node_modules/@contrail/loader/lib/color-processor.js +76 -0
  22. package/node_modules/@contrail/loader/lib/color-processor.spec.d.ts +1 -0
  23. package/node_modules/@contrail/loader/lib/color-processor.spec.js +307 -0
  24. package/node_modules/@contrail/loader/lib/common/conditional-columns.d.ts +16 -0
  25. package/node_modules/@contrail/loader/lib/common/conditional-columns.js +84 -0
  26. package/node_modules/@contrail/loader/lib/common/conditional-columns.spec.d.ts +1 -0
  27. package/node_modules/@contrail/loader/lib/common/conditional-columns.spec.js +644 -0
  28. package/node_modules/@contrail/loader/lib/common/constants.d.ts +1 -0
  29. package/node_modules/@contrail/loader/lib/common/constants.js +4 -0
  30. package/node_modules/@contrail/loader/lib/common/csv-file-helper.d.ts +6 -0
  31. package/node_modules/@contrail/loader/lib/common/csv-file-helper.js +66 -0
  32. package/node_modules/@contrail/loader/lib/common/csv-file-helper.spec.d.ts +1 -0
  33. package/node_modules/@contrail/loader/lib/common/csv-file-helper.spec.js +34 -0
  34. package/node_modules/@contrail/loader/lib/common/data-transformer-functions.d.ts +32 -0
  35. package/node_modules/@contrail/loader/lib/common/data-transformer-functions.js +309 -0
  36. package/node_modules/@contrail/loader/lib/common/data-transformer.spec.d.ts +1 -0
  37. package/node_modules/@contrail/loader/lib/common/data-transformer.spec.js +744 -0
  38. package/node_modules/@contrail/loader/lib/common/entities-helper.d.ts +33 -0
  39. package/node_modules/@contrail/loader/lib/common/entities-helper.js +300 -0
  40. package/node_modules/@contrail/loader/lib/common/entities-helper.spec.d.ts +1 -0
  41. package/node_modules/@contrail/loader/lib/common/entities-helper.spec.js +287 -0
  42. package/node_modules/@contrail/loader/lib/common/entity-builder-helpers.d.ts +6 -0
  43. package/node_modules/@contrail/loader/lib/common/entity-builder-helpers.js +114 -0
  44. package/node_modules/@contrail/loader/lib/common/entity-builder-helpers.spec.d.ts +1 -0
  45. package/node_modules/@contrail/loader/lib/common/entity-builder-helpers.spec.js +137 -0
  46. package/node_modules/@contrail/loader/lib/common/file-helper.d.ts +3 -0
  47. package/node_modules/@contrail/loader/lib/common/file-helper.js +37 -0
  48. package/node_modules/@contrail/loader/lib/common/file-helper.spec.d.ts +1 -0
  49. package/node_modules/@contrail/loader/lib/common/file-helper.spec.js +65 -0
  50. package/node_modules/@contrail/loader/lib/common/size-range-helpers.d.ts +42 -0
  51. package/node_modules/@contrail/loader/lib/common/size-range-helpers.js +162 -0
  52. package/node_modules/@contrail/loader/lib/common/size-range-helpers.spec.d.ts +1 -0
  53. package/node_modules/@contrail/loader/lib/common/size-range-helpers.spec.js +320 -0
  54. package/node_modules/@contrail/loader/lib/common/type-helper.d.ts +18 -0
  55. package/node_modules/@contrail/loader/lib/common/type-helper.js +232 -0
  56. package/node_modules/@contrail/loader/lib/common/type-helper.spec.d.ts +1 -0
  57. package/node_modules/@contrail/loader/lib/common/type-helper.spec.js +110 -0
  58. package/node_modules/@contrail/loader/lib/common/util.d.ts +11 -0
  59. package/node_modules/@contrail/loader/lib/common/util.js +85 -0
  60. package/node_modules/@contrail/loader/lib/common/util.spec.d.ts +1 -0
  61. package/node_modules/@contrail/loader/lib/common/util.spec.js +109 -0
  62. package/node_modules/@contrail/loader/lib/constants.d.ts +29 -0
  63. package/node_modules/@contrail/loader/lib/constants.js +32 -0
  64. package/node_modules/@contrail/loader/lib/custom-entity-processor.d.ts +20 -0
  65. package/node_modules/@contrail/loader/lib/custom-entity-processor.js +59 -0
  66. package/node_modules/@contrail/loader/lib/custom-entity-processor.spec.d.ts +1 -0
  67. package/node_modules/@contrail/loader/lib/custom-entity-processor.spec.js +161 -0
  68. package/node_modules/@contrail/loader/lib/entities-v2/base-processor-v2.d.ts +27 -0
  69. package/node_modules/@contrail/loader/lib/entities-v2/base-processor-v2.js +55 -0
  70. package/node_modules/@contrail/loader/lib/entities-v2/colors-v2/color-processor-v2.d.ts +19 -0
  71. package/node_modules/@contrail/loader/lib/entities-v2/colors-v2/color-processor-v2.js +92 -0
  72. package/node_modules/@contrail/loader/lib/entities-v2/colors-v2/color-processor-v2.spec.d.ts +1 -0
  73. package/node_modules/@contrail/loader/lib/entities-v2/colors-v2/color-processor-v2.spec.js +456 -0
  74. package/node_modules/@contrail/loader/lib/entities-v2/custom-entities-v2/custom-entity-processor-v2.d.ts +20 -0
  75. package/node_modules/@contrail/loader/lib/entities-v2/custom-entities-v2/custom-entity-processor-v2.js +75 -0
  76. package/node_modules/@contrail/loader/lib/entities-v2/custom-entities-v2/custom-entity-processor-v2.spec.d.ts +1 -0
  77. package/node_modules/@contrail/loader/lib/entities-v2/custom-entities-v2/custom-entity-processor-v2.spec.js +211 -0
  78. package/node_modules/@contrail/loader/lib/entities-v2/entities-helper.d.ts +33 -0
  79. package/node_modules/@contrail/loader/lib/entities-v2/entities-helper.js +298 -0
  80. package/node_modules/@contrail/loader/lib/entities-v2/entities-helper.spec.d.ts +1 -0
  81. package/node_modules/@contrail/loader/lib/entities-v2/entities-helper.spec.js +137 -0
  82. package/node_modules/@contrail/loader/lib/entities-v2/entity-processor-v2.d.ts +36 -0
  83. package/node_modules/@contrail/loader/lib/entities-v2/entity-processor-v2.js +316 -0
  84. package/node_modules/@contrail/loader/lib/entities-v2/entity-processor-v2.spec.d.ts +1 -0
  85. package/node_modules/@contrail/loader/lib/entities-v2/entity-processor-v2.spec.js +973 -0
  86. package/node_modules/@contrail/loader/lib/entities-v2/file-preprocessor-v2.d.ts +40 -0
  87. package/node_modules/@contrail/loader/lib/entities-v2/file-preprocessor-v2.js +276 -0
  88. package/node_modules/@contrail/loader/lib/entities-v2/file-preprocessor-v2.spec.d.ts +1 -0
  89. package/node_modules/@contrail/loader/lib/entities-v2/file-preprocessor-v2.spec.js +161 -0
  90. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/assortment-processor.d.ts +49 -0
  91. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/assortment-processor.js +388 -0
  92. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/assortment-processor.spec.d.ts +1 -0
  93. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/assortment-processor.spec.js +411 -0
  94. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/item-helper.d.ts +20 -0
  95. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/item-helper.js +193 -0
  96. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/item-helper.spec.d.ts +1 -0
  97. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/item-helper.spec.js +190 -0
  98. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/item-processor.d.ts +37 -0
  99. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/item-processor.js +271 -0
  100. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/item-processor.spec.d.ts +1 -0
  101. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/item-processor.spec.js +654 -0
  102. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/partial-assortment-processor.d.ts +35 -0
  103. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/partial-assortment-processor.js +242 -0
  104. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/partial-assortment-processor.spec.d.ts +1 -0
  105. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/partial-assortment-processor.spec.js +167 -0
  106. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/project-item-processor.d.ts +20 -0
  107. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/project-item-processor.js +104 -0
  108. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/project-item-processor.spec.d.ts +1 -0
  109. package/node_modules/@contrail/loader/lib/entities-v2/linesheet-v2/project-item-processor.spec.js +172 -0
  110. package/node_modules/@contrail/loader/lib/entity-processor.d.ts +34 -0
  111. package/node_modules/@contrail/loader/lib/entity-processor.js +214 -0
  112. package/node_modules/@contrail/loader/lib/entity-processor.spec.d.ts +1 -0
  113. package/node_modules/@contrail/loader/lib/entity-processor.spec.js +693 -0
  114. package/node_modules/@contrail/loader/lib/file-preprocessor.d.ts +31 -0
  115. package/node_modules/@contrail/loader/lib/file-preprocessor.js +212 -0
  116. package/node_modules/@contrail/loader/lib/file-preprocessor.spec.d.ts +1 -0
  117. package/node_modules/@contrail/loader/lib/file-preprocessor.spec.js +151 -0
  118. package/node_modules/@contrail/loader/lib/index.d.ts +9 -941
  119. package/node_modules/@contrail/loader/lib/index.js +25 -12492
  120. package/node_modules/@contrail/loader/lib/mockData.d.ts +36 -0
  121. package/node_modules/@contrail/loader/lib/mockData.js +209 -0
  122. package/node_modules/@contrail/loader/lib/pipeline/assortment-execute-helpers.d.ts +9 -0
  123. package/node_modules/@contrail/loader/lib/pipeline/assortment-execute-helpers.js +226 -0
  124. package/node_modules/@contrail/loader/lib/pipeline/assortment-execute-helpers.spec.d.ts +1 -0
  125. package/node_modules/@contrail/loader/lib/pipeline/assortment-execute-helpers.spec.js +305 -0
  126. package/node_modules/@contrail/loader/lib/pipeline/coerce-values-by-type.d.ts +7 -0
  127. package/node_modules/@contrail/loader/lib/pipeline/coerce-values-by-type.js +133 -0
  128. package/node_modules/@contrail/loader/lib/pipeline/execute-multi-type.spec.d.ts +1 -0
  129. package/node_modules/@contrail/loader/lib/pipeline/execute-multi-type.spec.js +454 -0
  130. package/node_modules/@contrail/loader/lib/pipeline/execute.d.ts +3 -0
  131. package/node_modules/@contrail/loader/lib/pipeline/execute.js +271 -0
  132. package/node_modules/@contrail/loader/lib/pipeline/execute.spec.d.ts +1 -0
  133. package/node_modules/@contrail/loader/lib/pipeline/execute.spec.js +186 -0
  134. package/node_modules/@contrail/loader/lib/pipeline/index.d.ts +7 -0
  135. package/node_modules/@contrail/loader/lib/pipeline/index.js +29 -0
  136. package/node_modules/@contrail/loader/lib/pipeline/item-execute-helpers.d.ts +38 -0
  137. package/node_modules/@contrail/loader/lib/pipeline/item-execute-helpers.js +517 -0
  138. package/node_modules/@contrail/loader/lib/pipeline/item-execute-helpers.spec.d.ts +1 -0
  139. package/node_modules/@contrail/loader/lib/pipeline/item-execute-helpers.spec.js +170 -0
  140. package/node_modules/@contrail/loader/lib/pipeline/loader-pipeline.d.ts +10 -0
  141. package/node_modules/@contrail/loader/lib/pipeline/loader-pipeline.js +26 -0
  142. package/node_modules/@contrail/loader/lib/pipeline/loader-pipeline.spec.d.ts +1 -0
  143. package/node_modules/@contrail/loader/lib/pipeline/loader-pipeline.spec.js +125 -0
  144. package/node_modules/@contrail/loader/lib/pipeline/preview.d.ts +3 -0
  145. package/node_modules/@contrail/loader/lib/pipeline/preview.js +219 -0
  146. package/node_modules/@contrail/loader/lib/pipeline/preview.spec.d.ts +1 -0
  147. package/node_modules/@contrail/loader/lib/pipeline/preview.spec.js +155 -0
  148. package/node_modules/@contrail/loader/lib/pipeline/project-item-execute-helpers.d.ts +5 -0
  149. package/node_modules/@contrail/loader/lib/pipeline/project-item-execute-helpers.js +580 -0
  150. package/node_modules/@contrail/loader/lib/pipeline/transform.d.ts +3 -0
  151. package/node_modules/@contrail/loader/lib/pipeline/transform.js +356 -0
  152. package/node_modules/@contrail/loader/lib/pipeline/transform.spec.d.ts +1 -0
  153. package/node_modules/@contrail/loader/lib/pipeline/transform.spec.js +442 -0
  154. package/node_modules/@contrail/loader/lib/pipeline/types.d.ts +251 -0
  155. package/node_modules/@contrail/loader/lib/pipeline/types.js +140 -0
  156. package/node_modules/@contrail/loader/lib/pipeline/validate.d.ts +2 -0
  157. package/node_modules/@contrail/loader/lib/pipeline/validate.js +1217 -0
  158. package/node_modules/@contrail/loader/lib/pipeline/validate.spec.d.ts +1 -0
  159. package/node_modules/@contrail/loader/lib/pipeline/validate.spec.js +1214 -0
  160. package/node_modules/@contrail/loader/lib/processor-registry.d.ts +3 -0
  161. package/node_modules/@contrail/loader/lib/processor-registry.js +53 -0
  162. package/node_modules/@contrail/loader/lib/processor-registry.spec.d.ts +1 -0
  163. package/node_modules/@contrail/loader/lib/processor-registry.spec.js +8 -0
  164. package/node_modules/@contrail/loader/package.json +9 -11
  165. package/node_modules/@contrail/telemetry/CHANGELOG.md +24 -0
  166. package/node_modules/@contrail/telemetry/README.md +1 -0
  167. package/node_modules/@contrail/telemetry/lib/index.d.ts +1 -0
  168. package/node_modules/@contrail/telemetry/lib/index.js +17 -0
  169. package/node_modules/@contrail/telemetry/lib/logger/index.d.ts +3 -0
  170. package/node_modules/@contrail/telemetry/lib/logger/index.js +30 -0
  171. package/node_modules/@contrail/telemetry/package.json +44 -0
  172. package/node_modules/@pinojs/redact/.github/dependabot.yml +13 -0
  173. package/node_modules/@pinojs/redact/.github/workflows/ci.yml +48 -0
  174. package/node_modules/@pinojs/redact/.github/workflows/publish-release.yml +43 -0
  175. package/node_modules/@pinojs/redact/LICENSE +21 -0
  176. package/node_modules/@pinojs/redact/README.md +350 -0
  177. package/node_modules/@pinojs/redact/benchmarks/basic.js +184 -0
  178. package/node_modules/@pinojs/redact/eslint.config.js +1 -0
  179. package/node_modules/@pinojs/redact/index.d.ts +52 -0
  180. package/node_modules/@pinojs/redact/index.js +529 -0
  181. package/node_modules/@pinojs/redact/index.test-d.ts +22 -0
  182. package/node_modules/@pinojs/redact/package.json +37 -0
  183. package/node_modules/@pinojs/redact/scripts/sync-version.mjs +20 -0
  184. package/node_modules/@pinojs/redact/test/actual-redact-comparison.test.js +211 -0
  185. package/node_modules/@pinojs/redact/test/index.test.js +824 -0
  186. package/node_modules/@pinojs/redact/test/integration.test.js +390 -0
  187. package/node_modules/@pinojs/redact/test/multiple-wildcards.test.js +227 -0
  188. package/node_modules/@pinojs/redact/test/prototype-pollution.test.js +223 -0
  189. package/node_modules/@pinojs/redact/test/selective-clone.test.js +115 -0
  190. package/node_modules/@pinojs/redact/tsconfig.json +19 -0
  191. package/node_modules/atomic-sleep/.travis.yml +11 -0
  192. package/node_modules/atomic-sleep/LICENSE +22 -0
  193. package/node_modules/atomic-sleep/index.js +38 -0
  194. package/node_modules/atomic-sleep/package.json +37 -0
  195. package/node_modules/atomic-sleep/readme.md +58 -0
  196. package/node_modules/atomic-sleep/test.js +47 -0
  197. package/node_modules/on-exit-leak-free/.github/dependabot.yml +12 -0
  198. package/node_modules/on-exit-leak-free/.github/workflows/ci.yml +46 -0
  199. package/node_modules/on-exit-leak-free/LICENSE +21 -0
  200. package/node_modules/on-exit-leak-free/README.md +54 -0
  201. package/node_modules/on-exit-leak-free/index.js +108 -0
  202. package/node_modules/on-exit-leak-free/package.json +37 -0
  203. package/node_modules/on-exit-leak-free/test/base.test.js +30 -0
  204. package/node_modules/on-exit-leak-free/test/event-emitter-leak.test.js +23 -0
  205. package/node_modules/on-exit-leak-free/test/fixtures/beforeExit.js +33 -0
  206. package/node_modules/on-exit-leak-free/test/fixtures/close.js +21 -0
  207. package/node_modules/on-exit-leak-free/test/fixtures/gc-not-close.js +24 -0
  208. package/node_modules/on-exit-leak-free/test/fixtures/unregister.js +24 -0
  209. package/node_modules/pino/.nojekyll +0 -0
  210. package/node_modules/pino/.prettierignore +1 -0
  211. package/node_modules/pino/CNAME +1 -0
  212. package/node_modules/pino/CONTRIBUTING.md +30 -0
  213. package/node_modules/pino/LICENSE +21 -0
  214. package/node_modules/pino/README.md +177 -0
  215. package/node_modules/pino/SECURITY.md +87 -0
  216. package/node_modules/pino/benchmarks/basic.bench.js +95 -0
  217. package/node_modules/pino/benchmarks/child-child.bench.js +52 -0
  218. package/node_modules/pino/benchmarks/child-creation.bench.js +73 -0
  219. package/node_modules/pino/benchmarks/child.bench.js +62 -0
  220. package/node_modules/pino/benchmarks/deep-object.bench.js +88 -0
  221. package/node_modules/pino/benchmarks/formatters.bench.js +50 -0
  222. package/node_modules/pino/benchmarks/internal/custom-levels.js +67 -0
  223. package/node_modules/pino/benchmarks/internal/just-pino-heavy.bench.js +76 -0
  224. package/node_modules/pino/benchmarks/internal/just-pino.bench.js +182 -0
  225. package/node_modules/pino/benchmarks/internal/parent-vs-child.bench.js +75 -0
  226. package/node_modules/pino/benchmarks/internal/redact.bench.js +86 -0
  227. package/node_modules/pino/benchmarks/long-string.bench.js +81 -0
  228. package/node_modules/pino/benchmarks/multi-arg.bench.js +193 -0
  229. package/node_modules/pino/benchmarks/multistream.js +98 -0
  230. package/node_modules/pino/benchmarks/object.bench.js +82 -0
  231. package/node_modules/pino/benchmarks/utils/generate-benchmark-doc.js +36 -0
  232. package/node_modules/pino/benchmarks/utils/runbench.js +138 -0
  233. package/node_modules/pino/benchmarks/utils/wrap-log-level.js +55 -0
  234. package/node_modules/pino/bin.js +6 -0
  235. package/node_modules/pino/browser.js +547 -0
  236. package/node_modules/pino/build/sync-version.js +25 -0
  237. package/node_modules/pino/docs/api.md +1593 -0
  238. package/node_modules/pino/docs/asynchronous.md +40 -0
  239. package/node_modules/pino/docs/benchmarks.md +55 -0
  240. package/node_modules/pino/docs/browser.md +278 -0
  241. package/node_modules/pino/docs/bundling.md +40 -0
  242. package/node_modules/pino/docs/child-loggers.md +95 -0
  243. package/node_modules/pino/docs/diagnostics.md +16 -0
  244. package/node_modules/pino/docs/ecosystem.md +86 -0
  245. package/node_modules/pino/docs/help.md +345 -0
  246. package/node_modules/pino/docs/lts.md +64 -0
  247. package/node_modules/pino/docs/pretty.md +35 -0
  248. package/node_modules/pino/docs/redaction.md +135 -0
  249. package/node_modules/pino/docs/transports.md +1376 -0
  250. package/node_modules/pino/docs/web.md +309 -0
  251. package/node_modules/pino/eslint.config.js +28 -0
  252. package/node_modules/pino/examples/basic.js +43 -0
  253. package/node_modules/pino/examples/transport.js +68 -0
  254. package/node_modules/pino/favicon.ico +0 -0
  255. package/node_modules/pino/file.js +12 -0
  256. package/node_modules/pino/inc-version.sh +42 -0
  257. package/node_modules/pino/index.html +55 -0
  258. package/node_modules/pino/lib/caller.js +30 -0
  259. package/node_modules/pino/lib/constants.js +28 -0
  260. package/node_modules/pino/lib/deprecations.js +8 -0
  261. package/node_modules/pino/lib/levels.js +241 -0
  262. package/node_modules/pino/lib/meta.js +3 -0
  263. package/node_modules/pino/lib/multistream.js +203 -0
  264. package/node_modules/pino/lib/proto.js +256 -0
  265. package/node_modules/pino/lib/redaction.js +114 -0
  266. package/node_modules/pino/lib/symbols.js +74 -0
  267. package/node_modules/pino/lib/time.js +39 -0
  268. package/node_modules/pino/lib/tools.js +427 -0
  269. package/node_modules/pino/lib/transport-stream.js +56 -0
  270. package/node_modules/pino/lib/transport.js +289 -0
  271. package/node_modules/pino/lib/worker.js +194 -0
  272. package/node_modules/pino/package.json +120 -0
  273. package/node_modules/pino/pino.d.ts +908 -0
  274. package/node_modules/pino/pino.js +234 -0
  275. package/node_modules/pino/test/basic.test.js +886 -0
  276. package/node_modules/pino/test/broken-pipe.test.js +59 -0
  277. package/node_modules/pino/test/browser-child.test.js +132 -0
  278. package/node_modules/pino/test/browser-disabled.test.js +87 -0
  279. package/node_modules/pino/test/browser-early-console-freeze.test.js +12 -0
  280. package/node_modules/pino/test/browser-is-level-enabled.test.js +101 -0
  281. package/node_modules/pino/test/browser-levels.test.js +241 -0
  282. package/node_modules/pino/test/browser-serializers.test.js +352 -0
  283. package/node_modules/pino/test/browser-timestamp.test.js +88 -0
  284. package/node_modules/pino/test/browser-transmit.test.js +417 -0
  285. package/node_modules/pino/test/browser.test.js +698 -0
  286. package/node_modules/pino/test/complex-objects.test.js +36 -0
  287. package/node_modules/pino/test/crlf.test.js +34 -0
  288. package/node_modules/pino/test/custom-levels.test.js +267 -0
  289. package/node_modules/pino/test/diagnostics.test.js +107 -0
  290. package/node_modules/pino/test/error-key.test.js +37 -0
  291. package/node_modules/pino/test/error.test.js +403 -0
  292. package/node_modules/pino/test/escaping.test.js +93 -0
  293. package/node_modules/pino/test/esm/esm.mjs +14 -0
  294. package/node_modules/pino/test/esm/index.test.js +21 -0
  295. package/node_modules/pino/test/esm/named-exports.mjs +29 -0
  296. package/node_modules/pino/test/exit.test.js +79 -0
  297. package/node_modules/pino/test/fixtures/broken-pipe/basic.js +9 -0
  298. package/node_modules/pino/test/fixtures/broken-pipe/destination.js +10 -0
  299. package/node_modules/pino/test/fixtures/broken-pipe/syncfalse.js +12 -0
  300. package/node_modules/pino/test/fixtures/console-transport.js +13 -0
  301. package/node_modules/pino/test/fixtures/crashing-transport.js +13 -0
  302. package/node_modules/pino/test/fixtures/default-exit.js +8 -0
  303. package/node_modules/pino/test/fixtures/destination-exit.js +8 -0
  304. package/node_modules/pino/test/fixtures/eval/index.js +13 -0
  305. package/node_modules/pino/test/fixtures/eval/node_modules/14-files.js +3 -0
  306. package/node_modules/pino/test/fixtures/eval/node_modules/2-files.js +3 -0
  307. package/node_modules/pino/test/fixtures/eval/node_modules/file1.js +5 -0
  308. package/node_modules/pino/test/fixtures/eval/node_modules/file10.js +5 -0
  309. package/node_modules/pino/test/fixtures/eval/node_modules/file11.js +5 -0
  310. package/node_modules/pino/test/fixtures/eval/node_modules/file12.js +5 -0
  311. package/node_modules/pino/test/fixtures/eval/node_modules/file13.js +5 -0
  312. package/node_modules/pino/test/fixtures/eval/node_modules/file14.js +11 -0
  313. package/node_modules/pino/test/fixtures/eval/node_modules/file2.js +5 -0
  314. package/node_modules/pino/test/fixtures/eval/node_modules/file3.js +5 -0
  315. package/node_modules/pino/test/fixtures/eval/node_modules/file4.js +5 -0
  316. package/node_modules/pino/test/fixtures/eval/node_modules/file5.js +5 -0
  317. package/node_modules/pino/test/fixtures/eval/node_modules/file6.js +5 -0
  318. package/node_modules/pino/test/fixtures/eval/node_modules/file7.js +5 -0
  319. package/node_modules/pino/test/fixtures/eval/node_modules/file8.js +5 -0
  320. package/node_modules/pino/test/fixtures/eval/node_modules/file9.js +5 -0
  321. package/node_modules/pino/test/fixtures/noop-transport.js +10 -0
  322. package/node_modules/pino/test/fixtures/pretty/null-prototype.js +8 -0
  323. package/node_modules/pino/test/fixtures/stdout-hack-protection.js +11 -0
  324. package/node_modules/pino/test/fixtures/syncfalse-child.js +6 -0
  325. package/node_modules/pino/test/fixtures/syncfalse-exit.js +9 -0
  326. package/node_modules/pino/test/fixtures/syncfalse-flush-exit.js +10 -0
  327. package/node_modules/pino/test/fixtures/syncfalse.js +6 -0
  328. package/node_modules/pino/test/fixtures/syntax-error-esm.mjs +2 -0
  329. package/node_modules/pino/test/fixtures/to-file-transport-with-transform.js +20 -0
  330. package/node_modules/pino/test/fixtures/to-file-transport.js +13 -0
  331. package/node_modules/pino/test/fixtures/to-file-transport.mjs +8 -0
  332. package/node_modules/pino/test/fixtures/transport/index.js +12 -0
  333. package/node_modules/pino/test/fixtures/transport/package.json +5 -0
  334. package/node_modules/pino/test/fixtures/transport-exit-immediately-with-async-dest.js +16 -0
  335. package/node_modules/pino/test/fixtures/transport-exit-immediately.js +11 -0
  336. package/node_modules/pino/test/fixtures/transport-exit-on-ready.js +12 -0
  337. package/node_modules/pino/test/fixtures/transport-invalid-node-options.js +26 -0
  338. package/node_modules/pino/test/fixtures/transport-main.js +9 -0
  339. package/node_modules/pino/test/fixtures/transport-many-lines.js +29 -0
  340. package/node_modules/pino/test/fixtures/transport-preload-main.mjs +13 -0
  341. package/node_modules/pino/test/fixtures/transport-preload.mjs +13 -0
  342. package/node_modules/pino/test/fixtures/transport-string-stdout.js +9 -0
  343. package/node_modules/pino/test/fixtures/transport-transform.js +21 -0
  344. package/node_modules/pino/test/fixtures/transport-uses-pino-config.js +33 -0
  345. package/node_modules/pino/test/fixtures/transport-with-on-exit.js +12 -0
  346. package/node_modules/pino/test/fixtures/transport-worker-data.js +19 -0
  347. package/node_modules/pino/test/fixtures/transport-worker-name.js +24 -0
  348. package/node_modules/pino/test/fixtures/transport-worker.js +15 -0
  349. package/node_modules/pino/test/fixtures/transport-wrong-export-type.js +3 -0
  350. package/node_modules/pino/test/fixtures/ts/to-file-transport-native.mts +15 -0
  351. package/node_modules/pino/test/fixtures/ts/to-file-transport-with-transform.ts +18 -0
  352. package/node_modules/pino/test/fixtures/ts/to-file-transport.ts +11 -0
  353. package/node_modules/pino/test/fixtures/ts/transpile.cjs +36 -0
  354. package/node_modules/pino/test/fixtures/ts/transport-exit-immediately-with-async-dest.ts +15 -0
  355. package/node_modules/pino/test/fixtures/ts/transport-exit-immediately.ts +10 -0
  356. package/node_modules/pino/test/fixtures/ts/transport-exit-on-ready.ts +11 -0
  357. package/node_modules/pino/test/fixtures/ts/transport-main.ts +8 -0
  358. package/node_modules/pino/test/fixtures/ts/transport-string-stdout.ts +8 -0
  359. package/node_modules/pino/test/fixtures/ts/transport-worker.ts +14 -0
  360. package/node_modules/pino/test/formatters.test.js +364 -0
  361. package/node_modules/pino/test/helper.d.ts +4 -0
  362. package/node_modules/pino/test/helper.js +155 -0
  363. package/node_modules/pino/test/hooks.test.js +114 -0
  364. package/node_modules/pino/test/http.test.js +214 -0
  365. package/node_modules/pino/test/internals/version.test.js +17 -0
  366. package/node_modules/pino/test/is-level-enabled.test.js +179 -0
  367. package/node_modules/pino/test/jest/basic.spec.js +10 -0
  368. package/node_modules/pino/test/levels.test.js +810 -0
  369. package/node_modules/pino/test/metadata.test.js +120 -0
  370. package/node_modules/pino/test/mixin-merge-strategy.test.js +57 -0
  371. package/node_modules/pino/test/mixin.test.js +241 -0
  372. package/node_modules/pino/test/multistream.test.js +729 -0
  373. package/node_modules/pino/test/redact.test.js +893 -0
  374. package/node_modules/pino/test/serializers.test.js +257 -0
  375. package/node_modules/pino/test/stdout-protection.test.js +41 -0
  376. package/node_modules/pino/test/syncfalse.test.js +186 -0
  377. package/node_modules/pino/test/timestamp-nano.test.js +37 -0
  378. package/node_modules/pino/test/timestamp.test.js +124 -0
  379. package/node_modules/pino/test/transport/big.test.js +42 -0
  380. package/node_modules/pino/test/transport/bundlers-support.test.js +99 -0
  381. package/node_modules/pino/test/transport/caller.test.js +24 -0
  382. package/node_modules/pino/test/transport/core.test.js +733 -0
  383. package/node_modules/pino/test/transport/core.transpiled.test.ts +114 -0
  384. package/node_modules/pino/test/transport/crash.test.js +36 -0
  385. package/node_modules/pino/test/transport/module-link.test.js +241 -0
  386. package/node_modules/pino/test/transport/native-type-stripping.test.mjs +151 -0
  387. package/node_modules/pino/test/transport/node-options.test.js +116 -0
  388. package/node_modules/pino/test/transport/pipeline.test.js +137 -0
  389. package/node_modules/pino/test/transport/preload.test.js +54 -0
  390. package/node_modules/pino/test/transport/repl.test.js +15 -0
  391. package/node_modules/pino/test/transport/sync-false.test.js +67 -0
  392. package/node_modules/pino/test/transport/sync-true.test.js +57 -0
  393. package/node_modules/pino/test/transport/targets.test.js +48 -0
  394. package/node_modules/pino/test/transport/uses-pino-config.test.js +166 -0
  395. package/node_modules/pino/test/transport-stream.test.js +40 -0
  396. package/node_modules/pino/test/types/pino-import.test-d.cts +30 -0
  397. package/node_modules/pino/test/types/pino-multistream.test-d.ts +28 -0
  398. package/node_modules/pino/test/types/pino-top-export.test-d.ts +34 -0
  399. package/node_modules/pino/test/types/pino-transport.test-d.ts +156 -0
  400. package/node_modules/pino/test/types/pino-type-only.test-d.ts +75 -0
  401. package/node_modules/pino/test/types/pino.test-d.ts +683 -0
  402. package/node_modules/pino/test/types/pino.ts +91 -0
  403. package/node_modules/pino/tsconfig.json +14 -0
  404. package/node_modules/pino-abstract-transport/.github/dependabot.yml +13 -0
  405. package/node_modules/pino-abstract-transport/.github/workflows/ci.yml +80 -0
  406. package/node_modules/pino-abstract-transport/.husky/pre-commit +4 -0
  407. package/node_modules/pino-abstract-transport/LICENSE +21 -0
  408. package/node_modules/pino-abstract-transport/README.md +171 -0
  409. package/node_modules/pino-abstract-transport/index.d.ts +122 -0
  410. package/node_modules/pino-abstract-transport/index.js +128 -0
  411. package/node_modules/pino-abstract-transport/package.json +41 -0
  412. package/node_modules/pino-abstract-transport/test/base.test.js +473 -0
  413. package/node_modules/pino-abstract-transport/test/fixtures/transport-async-iteration.js +22 -0
  414. package/node_modules/pino-abstract-transport/test/fixtures/transport-on-data.js +22 -0
  415. package/node_modules/pino-abstract-transport/test/fixtures/transport-transform.js +24 -0
  416. package/node_modules/pino-abstract-transport/test/fixtures/worker-pipeline.js +15 -0
  417. package/node_modules/pino-abstract-transport/test/match.js +24 -0
  418. package/node_modules/pino-abstract-transport/test/types/index.test-d.ts +31 -0
  419. package/node_modules/pino-abstract-transport/test/worker.test.js +372 -0
  420. package/node_modules/pino-std-serializers/.editorconfig +13 -0
  421. package/node_modules/pino-std-serializers/.github/dependabot.yml +13 -0
  422. package/node_modules/pino-std-serializers/.github/workflows/ci.yml +81 -0
  423. package/node_modules/pino-std-serializers/LICENSE +7 -0
  424. package/node_modules/pino-std-serializers/Readme.md +182 -0
  425. package/node_modules/pino-std-serializers/eslint.config.js +7 -0
  426. package/node_modules/pino-std-serializers/index.d.ts +145 -0
  427. package/node_modules/pino-std-serializers/index.js +36 -0
  428. package/node_modules/pino-std-serializers/lib/err-helpers.js +118 -0
  429. package/node_modules/pino-std-serializers/lib/err-proto.js +48 -0
  430. package/node_modules/pino-std-serializers/lib/err-with-cause.js +48 -0
  431. package/node_modules/pino-std-serializers/lib/err.js +45 -0
  432. package/node_modules/pino-std-serializers/lib/req.js +100 -0
  433. package/node_modules/pino-std-serializers/lib/res.js +47 -0
  434. package/node_modules/pino-std-serializers/package.json +42 -0
  435. package/node_modules/pino-std-serializers/test/err-with-cause.test.js +187 -0
  436. package/node_modules/pino-std-serializers/test/err.test.js +200 -0
  437. package/node_modules/pino-std-serializers/test/req.test.js +477 -0
  438. package/node_modules/pino-std-serializers/test/res.test.js +120 -0
  439. package/node_modules/pino-std-serializers/test/types/index.test-d.ts +71 -0
  440. package/node_modules/pino-std-serializers/tsconfig.json +13 -0
  441. package/node_modules/process-warning/.gitattributes +2 -0
  442. package/node_modules/process-warning/.github/dependabot.yml +13 -0
  443. package/node_modules/process-warning/.github/workflows/ci.yml +22 -0
  444. package/node_modules/process-warning/LICENSE +21 -0
  445. package/node_modules/process-warning/README.md +118 -0
  446. package/node_modules/process-warning/benchmarks/warn.js +25 -0
  447. package/node_modules/process-warning/eslint.config.js +6 -0
  448. package/node_modules/process-warning/examples/example.js +11 -0
  449. package/node_modules/process-warning/index.js +124 -0
  450. package/node_modules/process-warning/package.json +73 -0
  451. package/node_modules/process-warning/test/emit-interpolated-string.test.js +34 -0
  452. package/node_modules/process-warning/test/emit-once-only.test.js +33 -0
  453. package/node_modules/process-warning/test/emit-reset.test.js +40 -0
  454. package/node_modules/process-warning/test/emit-set.test.js +35 -0
  455. package/node_modules/process-warning/test/emit-unlimited.test.js +42 -0
  456. package/node_modules/process-warning/test/index.test.js +99 -0
  457. package/node_modules/process-warning/test/issue-88.test.js +38 -0
  458. package/node_modules/process-warning/test/jest.test.js +24 -0
  459. package/node_modules/process-warning/test/no-warnings.test.js +80 -0
  460. package/node_modules/process-warning/test/promise.js +10 -0
  461. package/node_modules/process-warning/types/index.d.ts +37 -0
  462. package/node_modules/process-warning/types/index.test-d.ts +36 -0
  463. package/node_modules/quick-format-unescaped/.github/workflows/ci.yml +21 -0
  464. package/node_modules/quick-format-unescaped/LICENSE +21 -0
  465. package/node_modules/quick-format-unescaped/benchmark.js +24 -0
  466. package/node_modules/quick-format-unescaped/index.js +109 -0
  467. package/node_modules/quick-format-unescaped/package.json +29 -0
  468. package/node_modules/quick-format-unescaped/readme.md +66 -0
  469. package/node_modules/quick-format-unescaped/test/index.js +136 -0
  470. package/node_modules/real-require/LICENSE.md +21 -0
  471. package/node_modules/real-require/README.md +51 -0
  472. package/node_modules/real-require/package.json +49 -0
  473. package/node_modules/real-require/src/index.js +14 -0
  474. package/node_modules/safe-stable-stringify/LICENSE +21 -0
  475. package/node_modules/safe-stable-stringify/esm/package.json +4 -0
  476. package/node_modules/safe-stable-stringify/esm/wrapper.d.ts +4 -0
  477. package/node_modules/safe-stable-stringify/esm/wrapper.js +6 -0
  478. package/node_modules/safe-stable-stringify/index.d.ts +22 -0
  479. package/node_modules/safe-stable-stringify/index.js +612 -0
  480. package/node_modules/safe-stable-stringify/package.json +65 -0
  481. package/node_modules/safe-stable-stringify/readme.md +177 -0
  482. package/node_modules/sonic-boom/.eslintignore +2 -0
  483. package/node_modules/sonic-boom/.taprc +3 -0
  484. package/node_modules/sonic-boom/LICENSE +21 -0
  485. package/node_modules/sonic-boom/README.md +153 -0
  486. package/node_modules/sonic-boom/bench.js +98 -0
  487. package/node_modules/sonic-boom/check.js +18 -0
  488. package/node_modules/sonic-boom/example.js +8 -0
  489. package/node_modules/sonic-boom/fixtures/firehose.js +22 -0
  490. package/node_modules/sonic-boom/index.js +733 -0
  491. package/node_modules/sonic-boom/package.json +52 -0
  492. package/node_modules/sonic-boom/test/destroy.test.js +49 -0
  493. package/node_modules/sonic-boom/test/end.test.js +98 -0
  494. package/node_modules/sonic-boom/test/flush-sync.test.js +140 -0
  495. package/node_modules/sonic-boom/test/flush.test.js +419 -0
  496. package/node_modules/sonic-boom/test/fsync.test.js +63 -0
  497. package/node_modules/sonic-boom/test/helper.js +42 -0
  498. package/node_modules/sonic-boom/test/minlength.test.js +35 -0
  499. package/node_modules/sonic-boom/test/mode.test.js +116 -0
  500. package/node_modules/sonic-boom/test/periodicflush.test.js +61 -0
  501. package/node_modules/sonic-boom/test/reopen.test.js +239 -0
  502. package/node_modules/sonic-boom/test/retry.test.js +414 -0
  503. package/node_modules/sonic-boom/test/sync.test.js +261 -0
  504. package/node_modules/sonic-boom/test/write.test.js +515 -0
  505. package/node_modules/sonic-boom/types/index.d.ts +63 -0
  506. package/node_modules/sonic-boom/types/tests/test.ts +4 -0
  507. package/node_modules/split2/LICENSE +13 -0
  508. package/node_modules/split2/README.md +85 -0
  509. package/node_modules/split2/bench.js +27 -0
  510. package/node_modules/split2/index.js +141 -0
  511. package/node_modules/split2/package.json +39 -0
  512. package/node_modules/split2/test.js +409 -0
  513. package/node_modules/thread-stream/.github/dependabot.yml +13 -0
  514. package/node_modules/thread-stream/.github/workflows/ci.yml +74 -0
  515. package/node_modules/thread-stream/.husky/pre-commit +4 -0
  516. package/node_modules/thread-stream/CLAUDE.md +53 -0
  517. package/node_modules/thread-stream/LICENSE +21 -0
  518. package/node_modules/thread-stream/README.md +135 -0
  519. package/node_modules/thread-stream/bench.js +85 -0
  520. package/node_modules/thread-stream/eslint.config.js +10 -0
  521. package/node_modules/thread-stream/index.d.ts +92 -0
  522. package/node_modules/thread-stream/index.js +541 -0
  523. package/node_modules/thread-stream/lib/indexes.js +9 -0
  524. package/node_modules/thread-stream/lib/wait.js +68 -0
  525. package/node_modules/thread-stream/lib/worker.js +179 -0
  526. package/node_modules/thread-stream/package.json +52 -0
  527. package/node_modules/thread-stream/test/base.test.js +259 -0
  528. package/node_modules/thread-stream/test/bench.test.js +38 -0
  529. package/node_modules/thread-stream/test/bundlers.test.js +59 -0
  530. package/node_modules/thread-stream/test/close-on-gc.js +37 -0
  531. package/node_modules/thread-stream/test/commonjs-fallback.test.js +75 -0
  532. package/node_modules/thread-stream/test/context.test.js +21 -0
  533. package/node_modules/thread-stream/test/create-and-exit.js +16 -0
  534. package/node_modules/thread-stream/test/custom-worker.js +9 -0
  535. package/node_modules/thread-stream/test/dir with spaces/test-package.zip +0 -0
  536. package/node_modules/thread-stream/test/emit-event.js +22 -0
  537. package/node_modules/thread-stream/test/end.test.js +56 -0
  538. package/node_modules/thread-stream/test/error.js +14 -0
  539. package/node_modules/thread-stream/test/esm.test.mjs +46 -0
  540. package/node_modules/thread-stream/test/event.test.js +24 -0
  541. package/node_modules/thread-stream/test/exit.js +14 -0
  542. package/node_modules/thread-stream/test/get-context.js +22 -0
  543. package/node_modules/thread-stream/test/helper.d.ts +1 -0
  544. package/node_modules/thread-stream/test/helper.js +26 -0
  545. package/node_modules/thread-stream/test/indexes.test.js +11 -0
  546. package/node_modules/thread-stream/test/multibyte-chars.test.mjs +75 -0
  547. package/node_modules/thread-stream/test/on-message.js +18 -0
  548. package/node_modules/thread-stream/test/pkg/index.js +37 -0
  549. package/node_modules/thread-stream/test/pkg/pkg.config.json +14 -0
  550. package/node_modules/thread-stream/test/pkg/pkg.test.js +45 -0
  551. package/node_modules/thread-stream/test/port.js +16 -0
  552. package/node_modules/thread-stream/test/post-message.test.js +23 -0
  553. package/node_modules/thread-stream/test/string-limit-2.test.js +35 -0
  554. package/node_modules/thread-stream/test/string-limit.test.js +37 -0
  555. package/node_modules/thread-stream/test/syntax-error.mjs +2 -0
  556. package/node_modules/thread-stream/test/thread-management.test.js +138 -0
  557. package/node_modules/thread-stream/test/to-file-on-destroy.js +23 -0
  558. package/node_modules/thread-stream/test/to-file-on-final.js +24 -0
  559. package/node_modules/thread-stream/test/to-file.js +12 -0
  560. package/node_modules/thread-stream/test/to-file.mjs +8 -0
  561. package/node_modules/thread-stream/test/to-next.js +9 -0
  562. package/node_modules/thread-stream/test/transpiled.test.js +29 -0
  563. package/node_modules/thread-stream/test/ts/to-file.ts +10 -0
  564. package/node_modules/thread-stream/test/ts/transpile.sh +19 -0
  565. package/node_modules/thread-stream/test/ts-commonjs-default-export.zip +0 -0
  566. package/node_modules/thread-stream/test/ts-native.test.mjs +35 -0
  567. package/node_modules/thread-stream/test/ts-node-fallback.test.js +35 -0
  568. package/node_modules/thread-stream/test/uncaughtException.js +21 -0
  569. package/node_modules/thread-stream/test/unhandledRejection.js +21 -0
  570. package/node_modules/thread-stream/test/yarnrc.yml +7 -0
  571. package/node_modules/thread-stream/tsconfig.json +8 -0
  572. package/oclif.manifest.json +6 -7
  573. package/package.json +11 -3
  574. package/node_modules/@contrail/loader/lib/index.js.map +0 -1
@@ -0,0 +1,53 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Build & Test Commands
6
+
7
+ ```sh
8
+ npm test # Run linter (standard), type check, transpile, and all tests
9
+ npm run build # Type check only (tsc --noEmit)
10
+ npm run transpile # Generate transpiled test files for various ES targets
11
+
12
+ # Run a single test file
13
+ npx tap test/base.test.js
14
+
15
+ # Run only JavaScript tests (faster)
16
+ npx tap "test/**/*.test.*js"
17
+
18
+ # Run only TypeScript tests
19
+ npx tap --ts test/*.test.*ts
20
+ ```
21
+
22
+ ## Code Style
23
+
24
+ This project uses [Standard](https://standardjs.com/) for linting. No semicolons, 2-space indentation.
25
+
26
+ ## Architecture
27
+
28
+ thread-stream is a library for streaming data to a Node.js Worker Thread using SharedArrayBuffer for high-performance inter-thread communication.
29
+
30
+ ### Core Components
31
+
32
+ - **index.js** - Main `ThreadStream` class extending EventEmitter. Manages the worker lifecycle, handles writes via SharedArrayBuffer, and coordinates synchronization using Atomics.
33
+
34
+ - **lib/worker.js** - Runs in the Worker Thread. Loads the user-provided destination module, reads data from SharedArrayBuffer, and writes to the destination stream. Handles both ESM and CommonJS modules, including yarn PnP compatibility.
35
+
36
+ - **lib/indexes.js** - Defines SharedArrayBuffer index constants (`WRITE_INDEX`, `READ_INDEX`) used for Atomics coordination.
37
+
38
+ - **lib/wait.js** - Async polling utilities (`wait`, `waitDiff`) for cross-thread synchronization without blocking the main thread.
39
+
40
+ ### Data Flow
41
+
42
+ 1. Main thread writes strings to an internal buffer, then copies to SharedArrayBuffer
43
+ 2. Atomics.notify signals the worker that data is available
44
+ 3. Worker reads from SharedArrayBuffer via Atomics.load and writes to destination stream
45
+ 4. Worker updates READ_INDEX and notifies main thread when done
46
+ 5. Special index values (-1 for end, -2 for error) signal stream termination
47
+
48
+ ### Key Features
49
+
50
+ - **Sync/async modes** - `sync: true` blocks until data is written; async mode uses `setImmediate` batching
51
+ - **Backpressure** - Handles `drain` events from destination streams
52
+ - **GC cleanup** - Uses FinalizationRegistry to terminate orphaned workers
53
+ - **TypeScript support** - Workers can be `.ts` files (requires ts-node)
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 Matteo Collina
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,135 @@
1
+ # thread-stream
2
+ [![npm version](https://img.shields.io/npm/v/thread-stream)](https://www.npmjs.com/package/thread-stream)
3
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/pinojs/thread-stream/ci.yml?branch=main)](https://github.com/pinojs/thread-stream/actions)
4
+ [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://standardjs.com/)
5
+
6
+ A streaming way to send data to a Node.js Worker Thread.
7
+
8
+ ## install
9
+
10
+ ```sh
11
+ npm i thread-stream
12
+ ```
13
+
14
+ ## Usage
15
+
16
+ ```js
17
+ 'use strict'
18
+
19
+ const ThreadStream = require('thread-stream')
20
+ const { join } = require('path')
21
+
22
+ const stream = new ThreadStream({
23
+ filename: join(__dirname, 'worker.js'),
24
+ workerData: { dest },
25
+ workerOpts: {}, // Other options to be passed to Worker
26
+ sync: false, // default
27
+ })
28
+
29
+ stream.write('hello')
30
+
31
+ // Asynchronous flushing
32
+ stream.flush(function () {
33
+ stream.write(' ')
34
+ stream.write('world')
35
+
36
+ // Synchronous flushing
37
+ stream.flushSync()
38
+ stream.end()
39
+ })
40
+ ```
41
+
42
+ In `worker.js`:
43
+
44
+ ```js
45
+ 'use strict'
46
+
47
+ const fs = require('fs')
48
+ const { once } = require('events')
49
+
50
+ async function run (opts) {
51
+ const stream = fs.createWriteStream(opts.dest)
52
+ await once(stream, 'open')
53
+ return stream
54
+ }
55
+
56
+ module.exports = run
57
+ ```
58
+
59
+ Make sure that the stream emits `'close'` when the stream completes.
60
+ This can usually be achieved by passing the [`autoDestroy: true`](https://nodejs.org/api/stream.html#stream_new_stream_writable_options)
61
+ flag your stream classes.
62
+
63
+ The underlining worker is automatically closed if the stream is garbage collected.
64
+
65
+
66
+ ### External modules
67
+
68
+ You may use this module within compatible external modules, that exports the `worker.js` interface.
69
+
70
+ ```js
71
+ const ThreadStream = require('thread-stream')
72
+
73
+ const modulePath = require.resolve('pino-elasticsearch')
74
+
75
+ const stream = new ThreadStream({
76
+ filename: modulePath,
77
+ workerData: { node: 'http://localhost:9200' }
78
+ })
79
+
80
+ stream.write('log to elasticsearch!')
81
+ stream.flushSync()
82
+ stream.end()
83
+ ```
84
+
85
+ This module works with `yarn` in PnP (plug'n play) mode too!
86
+
87
+ ### Emit events
88
+
89
+ You can emit events on the ThreadStream from your worker using [`worker.parentPort.postMessage()`](https://nodejs.org/api/worker_threads.html#workerparentport).
90
+ The message (JSON object) must have the following data structure:
91
+
92
+ ```js
93
+ parentPort.postMessage({
94
+ code: 'EVENT',
95
+ name: 'eventName',
96
+ args: ['list', 'of', 'args', 123, new Error('Boom')]
97
+ })
98
+ ```
99
+
100
+ On your ThreadStream, you can add a listener function for this event name:
101
+
102
+ ```js
103
+ const stream = new ThreadStream({
104
+ filename: join(__dirname, 'worker.js'),
105
+ workerData: {},
106
+ })
107
+ stream.on('eventName', function (a, b, c, n, err) {
108
+ console.log('received:', a, b, c, n, err) // received: list of args 123 Error: Boom
109
+ })
110
+ ```
111
+
112
+ ### Post Messages
113
+
114
+ You can post messages to the worker by emitting a `message` event on the ThreadStream.
115
+
116
+ ```js
117
+ const stream = new ThreadStream({
118
+ filename: join(__dirname, 'worker.js'),
119
+ workerData: {},
120
+ })
121
+ stream.emit('message', message)
122
+ ```
123
+
124
+ On your worker, you can listen for this message using [`worker.parentPort.on('message', cb)`](https://nodejs.org/api/worker_threads.html#event-message).
125
+
126
+ ```js
127
+ const { parentPort } = require('worker_threads')
128
+ parentPort.on('message', function (message) {
129
+ console.log('received:', message)
130
+ })
131
+ ```
132
+
133
+ ## License
134
+
135
+ MIT
@@ -0,0 +1,85 @@
1
+ 'use strict'
2
+
3
+ const bench = require('fastbench')
4
+ const SonicBoom = require('sonic-boom')
5
+ const ThreadStream = require('.')
6
+ const Console = require('console').Console
7
+ const fs = require('fs')
8
+ const { join } = require('path')
9
+
10
+ const core = fs.createWriteStream('/dev/null')
11
+ const fd = fs.openSync('/dev/null', 'w')
12
+ const sonic = new SonicBoom({ fd })
13
+ const sonicSync = new SonicBoom({ fd, sync: true })
14
+ const out = fs.createWriteStream('/dev/null')
15
+ const dummyConsole = new Console(out)
16
+ const threadStreamSync = new ThreadStream({
17
+ filename: join(__dirname, 'test', 'to-file.js'),
18
+ workerData: { dest: '/dev/null' },
19
+ bufferSize: 4 * 1024 * 1024,
20
+ sync: true
21
+ })
22
+ const threadStreamAsync = new ThreadStream({
23
+ filename: join(__dirname, 'test', 'to-file.js'),
24
+ workerData: { dest: '/dev/null' },
25
+ bufferSize: 4 * 1024 * 1024,
26
+ sync: false
27
+ })
28
+
29
+ const MAX = 10000
30
+
31
+ let str = ''
32
+
33
+ for (let i = 0; i < 100; i++) {
34
+ str += 'hello'
35
+ }
36
+
37
+ setTimeout(doBench, 100)
38
+
39
+ const run = bench([
40
+ function benchThreadStreamSync (cb) {
41
+ for (let i = 0; i < MAX; i++) {
42
+ threadStreamSync.write(str)
43
+ }
44
+ setImmediate(cb)
45
+ },
46
+ function benchThreadStreamAsync (cb) {
47
+ threadStreamAsync.once('drain', cb)
48
+ for (let i = 0; i < MAX; i++) {
49
+ threadStreamAsync.write(str)
50
+ }
51
+ },
52
+ function benchSonic (cb) {
53
+ sonic.once('drain', cb)
54
+ for (let i = 0; i < MAX; i++) {
55
+ sonic.write(str)
56
+ }
57
+ },
58
+ function benchSonicSync (cb) {
59
+ sonicSync.once('drain', cb)
60
+ for (let i = 0; i < MAX; i++) {
61
+ sonicSync.write(str)
62
+ }
63
+ },
64
+ function benchCore (cb) {
65
+ core.once('drain', cb)
66
+ for (let i = 0; i < MAX; i++) {
67
+ core.write(str)
68
+ }
69
+ },
70
+ function benchConsole (cb) {
71
+ for (let i = 0; i < MAX; i++) {
72
+ dummyConsole.log(str)
73
+ }
74
+ setImmediate(cb)
75
+ }
76
+ ], 1000)
77
+
78
+ function doBench () {
79
+ run(function () {
80
+ run(function () {
81
+ // TODO figure out why it does not shut down
82
+ process.exit(0)
83
+ })
84
+ })
85
+ }
@@ -0,0 +1,10 @@
1
+ 'use strict'
2
+
3
+ const neostandard = require('neostandard')
4
+
5
+ module.exports = neostandard({
6
+ ignores: [
7
+ 'test/ts/**/*',
8
+ 'test/syntax-error.mjs'
9
+ ]
10
+ })
@@ -0,0 +1,92 @@
1
+ import { EventEmitter } from 'events'
2
+ import * as workerThreads from 'worker_threads'
3
+
4
+ interface ThreadStreamOptions {
5
+ /**
6
+ * The size (in bytes) of the buffer.
7
+ * Must be greater than 4 (i.e. it must at least fit a 4-byte utf-8 char).
8
+ *
9
+ * Default: `4 * 1024 * 1024` = `4194304`
10
+ */
11
+ bufferSize?: number,
12
+ /**
13
+ * The path to the Worker's main script or module.
14
+ * Must be either an absolute path or a relative path (i.e. relative to the current working directory) starting with ./ or ../, or a WHATWG URL object using file: or data: protocol.
15
+ * When using a data: URL, the data is interpreted based on MIME type using the ECMAScript module loader.
16
+ *
17
+ * {@link workerThreads.Worker()}
18
+ */
19
+ filename: string | URL,
20
+ /**
21
+ * If `true`, write data synchronously; otherwise write data asynchronously.
22
+ *
23
+ * Default: `false`.
24
+ */
25
+ sync?: boolean,
26
+ /**
27
+ * {@link workerThreads.WorkerOptions.workerData}
28
+ *
29
+ * Default: `{}`
30
+ */
31
+ workerData?: any,
32
+ /**
33
+ * {@link workerThreads.WorkerOptions}
34
+ *
35
+ * Default: `{}`
36
+ */
37
+ workerOpts?: workerThreads.WorkerOptions
38
+ }
39
+
40
+
41
+ declare class ThreadStream extends EventEmitter {
42
+ /**
43
+ * @param {ThreadStreamOptions} opts
44
+ */
45
+ constructor(opts: ThreadStreamOptions)
46
+ /**
47
+ * Write some data to the stream.
48
+ *
49
+ * **Please note that this method should not throw an {Error} if something goes wrong but emit an error event.**
50
+ * @param {string} data data to write.
51
+ * @returns {boolean} false if the stream wishes for the calling code to wait for the 'drain' event to be emitted before continuing to write additional data or if it fails to write; otherwise true.
52
+ */
53
+ write(data: string): boolean
54
+ /**
55
+ * Signal that no more data will be written.
56
+ *
57
+ * **Please note that this method should not throw an {Error} if something goes wrong but emit an error event.**
58
+ *
59
+ * Calling the {@link write()} method after calling {@link end()} will emit an error.
60
+ */
61
+ end(): void
62
+ /**
63
+ * Flush the stream synchronously.
64
+ * This method should be called in the shutdown phase to make sure that all data has been flushed.
65
+ *
66
+ * **Please note that this method will throw an {Error} if something goes wrong.**
67
+ *
68
+ * @throws {Error} if the stream is already flushing, if it fails to flush or if it takes more than 10 seconds to flush.
69
+ */
70
+ flushSync(): void
71
+ /**
72
+ * Synchronously calls each of the listeners registered for the event named`eventName`, in the order they were registered, passing the supplied arguments
73
+ * to each.
74
+ *
75
+ * @param eventName the name of the event.
76
+ * @param args the arguments to be passed to the event handlers.
77
+ * @returns {boolean} `true` if the event had listeners, `false` otherwise.
78
+ */
79
+ emit(eventName: string | symbol, ...args: any[]): boolean;
80
+
81
+ /**
82
+ * Post a message to the Worker with specified data and an optional list of transferable objects.
83
+ *
84
+ * @param eventName the name of the event, specifically 'message'.
85
+ * @param message message data to be sent to the Worker.
86
+ * @param transferList an optional list of transferable objects to be transferred to the Worker context.
87
+ * @returns {boolean} true if the event had listeners, false otherwise.
88
+ */
89
+ emit(eventName: 'message', message: any, transferList?: workerThreads.TransferListItem[]): boolean
90
+ }
91
+
92
+ export = ThreadStream;