jtcsv 2.2.7 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/README.md +31 -1
  2. package/bin/jtcsv.js +891 -821
  3. package/bin/jtcsv.ts +2534 -0
  4. package/csv-to-json.js +168 -145
  5. package/dist/jtcsv-core.cjs.js +1407 -0
  6. package/dist/jtcsv-core.cjs.js.map +1 -0
  7. package/dist/jtcsv-core.esm.js +1379 -0
  8. package/dist/jtcsv-core.esm.js.map +1 -0
  9. package/dist/jtcsv-core.umd.js +1413 -0
  10. package/dist/jtcsv-core.umd.js.map +1 -0
  11. package/dist/jtcsv-full.cjs.js +1912 -0
  12. package/dist/jtcsv-full.cjs.js.map +1 -0
  13. package/dist/jtcsv-full.esm.js +1880 -0
  14. package/dist/jtcsv-full.esm.js.map +1 -0
  15. package/dist/jtcsv-full.umd.js +1918 -0
  16. package/dist/jtcsv-full.umd.js.map +1 -0
  17. package/dist/jtcsv-workers.esm.js +759 -0
  18. package/dist/jtcsv-workers.esm.js.map +1 -0
  19. package/dist/jtcsv-workers.umd.js +773 -0
  20. package/dist/jtcsv-workers.umd.js.map +1 -0
  21. package/dist/jtcsv.cjs.js +61 -19
  22. package/dist/jtcsv.cjs.js.map +1 -1
  23. package/dist/jtcsv.esm.js +61 -19
  24. package/dist/jtcsv.esm.js.map +1 -1
  25. package/dist/jtcsv.umd.js +61 -19
  26. package/dist/jtcsv.umd.js.map +1 -1
  27. package/errors.js +188 -2
  28. package/examples/advanced/conditional-transformations.js +446 -0
  29. package/examples/advanced/conditional-transformations.ts +446 -0
  30. package/examples/advanced/csv-parser.worker.js +89 -0
  31. package/examples/advanced/csv-parser.worker.ts +89 -0
  32. package/examples/advanced/nested-objects-example.js +306 -0
  33. package/examples/advanced/nested-objects-example.ts +306 -0
  34. package/examples/advanced/performance-optimization.js +504 -0
  35. package/examples/advanced/performance-optimization.ts +504 -0
  36. package/examples/advanced/run-demo-server.js +116 -0
  37. package/examples/advanced/run-demo-server.ts +116 -0
  38. package/examples/advanced/web-worker-usage.html +874 -0
  39. package/examples/async-multithreaded-example.ts +335 -0
  40. package/examples/cli-advanced-usage.md +288 -0
  41. package/examples/cli-batch-processing.ts +38 -0
  42. package/examples/cli-tool.js +0 -3
  43. package/examples/cli-tool.ts +183 -0
  44. package/examples/error-handling.js +21 -7
  45. package/examples/error-handling.ts +356 -0
  46. package/examples/express-api.js +0 -3
  47. package/examples/express-api.ts +164 -0
  48. package/examples/large-dataset-example.js +0 -3
  49. package/examples/large-dataset-example.ts +204 -0
  50. package/examples/ndjson-processing.js +1 -1
  51. package/examples/ndjson-processing.ts +456 -0
  52. package/examples/plugin-excel-exporter.js +3 -4
  53. package/examples/plugin-excel-exporter.ts +406 -0
  54. package/examples/react-integration.tsx +637 -0
  55. package/examples/schema-validation.ts +640 -0
  56. package/examples/simple-usage.js +254 -254
  57. package/examples/simple-usage.ts +194 -0
  58. package/examples/streaming-example.js +4 -5
  59. package/examples/streaming-example.ts +419 -0
  60. package/examples/web-workers-advanced.ts +28 -0
  61. package/index.d.ts +1 -3
  62. package/index.js +15 -1
  63. package/json-save.js +9 -3
  64. package/json-to-csv.js +168 -21
  65. package/package.json +69 -10
  66. package/plugins/express-middleware/README.md +21 -2
  67. package/plugins/express-middleware/example.js +3 -4
  68. package/plugins/express-middleware/example.ts +135 -0
  69. package/plugins/express-middleware/index.d.ts +1 -1
  70. package/plugins/express-middleware/index.js +270 -118
  71. package/plugins/express-middleware/index.ts +557 -0
  72. package/plugins/fastify-plugin/index.js +2 -4
  73. package/plugins/fastify-plugin/index.ts +443 -0
  74. package/plugins/hono/index.ts +226 -0
  75. package/plugins/nestjs/index.ts +201 -0
  76. package/plugins/nextjs-api/examples/ConverterComponent.tsx +386 -0
  77. package/plugins/nextjs-api/examples/api-convert.js +0 -2
  78. package/plugins/nextjs-api/examples/api-convert.ts +67 -0
  79. package/plugins/nextjs-api/index.tsx +339 -0
  80. package/plugins/nextjs-api/route.js +2 -3
  81. package/plugins/nextjs-api/route.ts +370 -0
  82. package/plugins/nuxt/index.ts +94 -0
  83. package/plugins/nuxt/runtime/composables/useJtcsv.ts +100 -0
  84. package/plugins/nuxt/runtime/plugin.ts +71 -0
  85. package/plugins/remix/index.js +1 -1
  86. package/plugins/remix/index.ts +260 -0
  87. package/plugins/sveltekit/index.js +1 -1
  88. package/plugins/sveltekit/index.ts +301 -0
  89. package/plugins/trpc/index.ts +267 -0
  90. package/src/browser/browser-functions.ts +402 -0
  91. package/src/browser/core.js +92 -0
  92. package/src/browser/core.ts +152 -0
  93. package/src/browser/csv-to-json-browser.d.ts +3 -0
  94. package/src/browser/csv-to-json-browser.js +36 -14
  95. package/src/browser/csv-to-json-browser.ts +264 -0
  96. package/src/browser/errors-browser.ts +303 -0
  97. package/src/browser/extensions/plugins.js +92 -0
  98. package/src/browser/extensions/plugins.ts +93 -0
  99. package/src/browser/extensions/workers.js +39 -0
  100. package/src/browser/extensions/workers.ts +39 -0
  101. package/src/browser/globals.d.ts +5 -0
  102. package/src/browser/index.ts +192 -0
  103. package/src/browser/json-to-csv-browser.d.ts +3 -0
  104. package/src/browser/json-to-csv-browser.js +13 -3
  105. package/src/browser/json-to-csv-browser.ts +262 -0
  106. package/src/browser/streams.js +12 -2
  107. package/src/browser/streams.ts +336 -0
  108. package/src/browser/workers/csv-parser.worker.ts +377 -0
  109. package/src/browser/workers/worker-pool.ts +548 -0
  110. package/src/core/delimiter-cache.js +22 -8
  111. package/src/core/delimiter-cache.ts +310 -0
  112. package/src/core/node-optimizations.ts +449 -0
  113. package/src/core/plugin-system.js +29 -11
  114. package/src/core/plugin-system.ts +400 -0
  115. package/src/core/transform-hooks.ts +558 -0
  116. package/src/engines/fast-path-engine-new.ts +347 -0
  117. package/src/engines/fast-path-engine.ts +854 -0
  118. package/src/errors.ts +72 -0
  119. package/src/formats/ndjson-parser.ts +469 -0
  120. package/src/formats/tsv-parser.ts +334 -0
  121. package/src/index-with-plugins.js +16 -9
  122. package/src/index-with-plugins.ts +395 -0
  123. package/src/types/index.ts +255 -0
  124. package/src/utils/bom-utils.js +259 -0
  125. package/src/utils/bom-utils.ts +373 -0
  126. package/src/utils/encoding-support.js +124 -0
  127. package/src/utils/encoding-support.ts +155 -0
  128. package/src/utils/schema-validator.js +19 -19
  129. package/src/utils/schema-validator.ts +819 -0
  130. package/src/utils/transform-loader.js +1 -1
  131. package/src/utils/transform-loader.ts +389 -0
  132. package/src/utils/zod-adapter.js +170 -0
  133. package/src/utils/zod-adapter.ts +280 -0
  134. package/src/web-server/index.js +10 -10
  135. package/src/web-server/index.ts +683 -0
  136. package/src/workers/csv-multithreaded.ts +310 -0
  137. package/src/workers/csv-parser.worker.ts +227 -0
  138. package/src/workers/worker-pool.ts +409 -0
  139. package/stream-csv-to-json.js +26 -8
  140. package/stream-json-to-csv.js +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jtcsv-workers.umd.js","sources":["../src/browser/errors-browser.ts","../src/browser/workers/worker-pool.ts","../src/browser/extensions/workers.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":";;;;;;IAAA;IACA;IAaA;;IAEG;IACG,MAAO,UAAW,SAAQ,KAAK,CAAA;IAInC,IAAA,WAAA,CAAY,OAAe,EAAE,IAAA,GAAe,aAAa,EAAE,UAAwB,EAAE,EAAA;YACnF,KAAK,CAAC,OAAO,CAAC;IACd,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY;IACxB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAChB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;IAGtB,QAAA,IAAI,KAAK,CAAC,iBAAiB,EAAE;IAC3B,YAAA,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC;YAC3C;QACF;IACD;IAED;;IAEG;IACG,MAAO,eAAgB,SAAQ,UAAU,CAAA;QAC7C,WAAA,CAAY,OAAe,EAAE,OAAA,GAAwB,EAAE,EAAA;IACrD,QAAA,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC;IAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB;QAC/B;IACD;IAED;;IAEG;IACG,MAAO,aAAc,SAAQ,UAAU,CAAA;QAC3C,WAAA,CAAY,OAAe,EAAE,OAAA,GAAwB,EAAE,EAAA;IACrD,QAAA,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC;IACzC,QAAA,IAAI,CAAC,IAAI,GAAG,eAAe;QAC7B;IACD;IAED;;IAEG;IACG,MAAO,eAAgB,SAAQ,UAAU,CAAA;IAC7C,IAAA,WAAA,CAAY,OAAe,EAAE,aAAqB,EAAE,UAAwB,EAAE,EAAA;IAC5E,QAAA,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,CAAC;IAClE,QAAA,IAAI,CAAC,IAAI,GAAG,iBAAiB;IAE7B,QAAA,IAAI,aAAa,IAAK,aAAqB,CAAC,IAAI,EAAE;IAChD,YAAA,IAAI,CAAC,IAAI,GAAI,aAAqB,CAAC,IAAI;YACzC;QACF;IACD;IAED;;IAEG;IACG,MAAO,YAAa,SAAQ,UAAU,CAAA;IAG1C,IAAA,WAAA,CAAY,OAAe,EAAE,UAAmB,EAAE,UAAwB,EAAE,EAAA;IAC1E,QAAA,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC;IAC3D,QAAA,IAAI,CAAC,IAAI,GAAG,cAAc;IAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;QAC9B;IACD;IAED;;IAEG;IACG,MAAO,UAAW,SAAQ,UAAU,CAAA;IAIxC,IAAA,WAAA,CAAY,OAAe,EAAE,KAAU,EAAE,MAAW,EAAE,UAAwB,EAAE,EAAA;IAC9E,QAAA,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC5D,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY;IACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IAClB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACtB;IACD;IAED;;IAEG;IACG,MAAO,kBAAmB,SAAQ,UAAU,CAAA;QAChD,WAAA,CAAY,OAAe,EAAE,OAAA,GAAwB,EAAE,EAAA;IACrD,QAAA,KAAK,CAAC,OAAO,EAAE,qBAAqB,EAAE,OAAO,CAAC;IAC9C,QAAA,IAAI,CAAC,IAAI,GAAG,oBAAoB;QAClC;IACD;IAED;;IAEG;IACI,MAAM,WAAW,GAAG;IACzB,IAAA,WAAW,EAAE,aAAa;IAC1B,IAAA,gBAAgB,EAAE,kBAAkB;IACpC,IAAA,cAAc,EAAE,gBAAgB;IAChC,IAAA,iBAAiB,EAAE,mBAAmB;IACtC,IAAA,aAAa,EAAE,eAAe;IAC9B,IAAA,WAAW,EAAE,aAAa;IAC1B,IAAA,mBAAmB,EAAE,qBAAqB;IAC1C,IAAA,aAAa,EAAE,eAAe;IAC9B,IAAA,kBAAkB,EAAE,oBAAoB;IACxC,IAAA,cAAc,EAAE,gBAAgB;IAChC,IAAA,YAAY,EAAE,cAAc;IAC5B,IAAA,UAAU,EAAE,YAAY;IACxB,IAAA,cAAc,EAAE,gBAAgB;IAChC,IAAA,aAAa,EAAE;KACP;IAIV;;;;;;;IAOG;IACG,SAAU,WAAW,CACzB,EAAW,EACX,SAAA,GAAuB,eAAe,EACtC,YAAA,GAA6B,EAAE,EAAA;IAE/B,IAAA,IAAI;IACF,QAAA,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;gBAC5B,OAAO,EAAE,EAAE;YACb;IACA,QAAA,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC;QAChD;QAAE,OAAO,KAAK,EAAE;;IAEd,QAAA,IAAI,KAAK,YAAY,UAAU,EAAE;IAC/B,YAAA,MAAM,KAAK;YACb;;IAGA,QAAA,IAAI,aAAyB;YAC7B,MAAM,YAAY,GAAI,KAAe,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;IAE9D,QAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;IAC9E,YAAA,aAAa,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YACvG;IAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;IACjF,YAAA,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YACrG;IAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;IAC/E,YAAA,aAAa,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YAC/G;IAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;IAC3E,YAAA,aAAa,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YAC9G;IAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;IAC3F,YAAA,aAAa,GAAG,IAAI,kBAAkB,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YAC1G;IAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACzE,aAAa,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,KAAc,EAAE,YAAY,CAAC;YACjF;iBAAO;;IAEL,YAAA,aAAa,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YAC7G;;IAGA,QAAA,IAAK,KAAe,CAAC,KAAK,EAAE;IAC1B,YAAA,aAAa,CAAC,KAAK,GAAI,KAAe,CAAC,KAAK;YAC9C;IAEA,QAAA,MAAM,aAAa;QACrB;IACF;IAEA;;IAEG;IACI,eAAe,gBAAgB,CACpC,EAAwB,EACxB,SAAA,GAAuB,eAAe,EACtC,YAAA,GAA6B,EAAE,EAAA;IAE/B,IAAA,IAAI;IACF,QAAA,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;gBAC5B,OAAO,MAAM,EAAE,EAAE;YACnB;IACA,QAAA,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC;QAChD;QAAE,OAAO,KAAK,EAAE;;IAEd,QAAA,IAAI,KAAK,YAAY,UAAU,EAAE;IAC/B,YAAA,MAAM,KAAK;YACb;;IAGA,QAAA,IAAI,aAAyB;YAC7B,MAAM,YAAY,GAAI,KAAe,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;IAE9D,QAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;IAC9E,YAAA,aAAa,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YACvG;IAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;IACjF,YAAA,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YACrG;IAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;IAC/E,YAAA,aAAa,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YAC/G;IAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;IAC3E,YAAA,aAAa,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YAC9G;IAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;IAC3F,YAAA,aAAa,GAAG,IAAI,kBAAkB,CAAC,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YAC1G;IAAO,aAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACzE,aAAa,GAAG,IAAI,eAAe,CAAC,YAAY,EAAE,KAAc,EAAE,YAAY,CAAC;YACjF;iBAAO;IACL,YAAA,aAAa,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,YAAY,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC;YAC7G;IAEA,QAAA,IAAK,KAAe,CAAC,KAAK,EAAE;IAC1B,YAAA,aAAa,CAAC,KAAK,GAAI,KAAe,CAAC,KAAK;YAC9C;IAEA,QAAA,MAAM,aAAa;QACrB;IACF;IAEA;;IAEG;aACa,kBAAkB,CAChC,KAAyB,EACzB,eAAwB,KAAK,EAAA;IAE7B,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,eAAe;IAE9C,IAAA,IAAI,KAAK,YAAY,UAAU,EAAE;YAC/B,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAA,EAAA,EAAK,OAAO,EAAE;YAEtC,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,UAAU,EAAE;IACrD,YAAA,OAAO,IAAI,CAAA,OAAA,EAAU,KAAK,CAAC,UAAU,GAAG;YAC1C;IAEA,QAAA,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;gBAC9D,OAAO,IAAI,CAAA,SAAA,EAAY,KAAK,CAAC,KAAK,aAAa,KAAK,CAAC,MAAM,CAAA,CAAA,CAAG;YAChE;QACF;IAEA,IAAA,IAAI,YAAY,IAAI,KAAK,CAAC,KAAK,EAAE;IAC/B,QAAA,OAAO,IAAI,CAAA,EAAA,EAAK,KAAK,CAAC,KAAK,EAAE;QAC/B;IAEA,IAAA,OAAO,OAAO;IAChB;IAEA;;IAEG;aACa,WAAW,CACzB,KAAyB,EACzB,UAII,EAAE,EAAA;IAEN,IAAA,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAO;IACzE,IAAA,MAAM,OAAO,GAAG,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO;QAElE,IAAI,GAAG,EAAE;IACP,QAAA,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;YAEnC,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE;gBAChD,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC;YAChD;QACF;QAEA,IAAI,WAAW,EAAE;IACf,QAAA,MAAM,KAAK;QACb;IAEA,IAAA,OAAO,OAAO;IAChB;IAEA;IACA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;QACnD,MAAM,CAAC,OAAO,GAAG;YACf,UAAU;YACV,eAAe;YACf,aAAa;YACb,eAAe;YACf,YAAY;YACZ,UAAU;YACV,kBAAkB;YAClB,WAAW;YACX,WAAW;YACX,gBAAgB;YAChB,kBAAkB;YAClB;SACD;IACH;;IC9SA;IACA;IAIA;IACA,MAAM,iBAAiB,GAAG,OAAO,MAAM,KAAK,WAAW;IAEvD,SAAS,oBAAoB,CAAC,KAAK,EAAA;IACjC,IAAA,IAAI,EAAE,KAAK,YAAY,WAAW,CAAC,EAAE;IACnC,QAAA,OAAO,KAAK;QACd;QACA,IAAI,OAAO,iBAAiB,KAAK,WAAW,IAAI,KAAK,YAAY,iBAAiB,EAAE;IAClF,QAAA,OAAO,KAAK;QACd;IACA,IAAA,OAAO,IAAI;IACb;IAEA,SAAS,oBAAoB,CAAC,IAAI,EAAA;QAChC,MAAM,aAAa,GAAG,EAAE;IAExB,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAI;YACjC,IAAI,CAAC,KAAK,EAAE;gBACV;YACF;IACA,QAAA,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE;IAC/B,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;gBACzB;YACF;IACA,QAAA,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;IACnE,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAChC;YACF;IACA,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IACxB,YAAA,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACjC;IACF,IAAA,CAAC;IAED,IAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC9B,OAAO,aAAa,CAAC,MAAM,GAAG,aAAa,GAAG,IAAI;IACpD;IASA;;;;;;;IAOG;IAEH;;;;;;;;;IASG;IAEH;;;;;;;IAOG;IAEH;;IAEG;UACU,UAAU,CAAA;IAOrB;;;;IAIG;IACH,IAAA,WAAA,CAAY,YAAY,EAAE,OAAO,GAAG,EAAE,EAAA;YACpC,IAAI,CAAC,iBAAiB,EAAE;IACtB,YAAA,MAAM,IAAI,eAAe,CAAC,+CAA+C,CAAC;YAC5E;IAEA,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;YAChC,IAAI,CAAC,OAAO,GAAG;IACb,YAAA,WAAW,EAAE,CAAC;IACd,YAAA,YAAY,EAAE,GAAG;IACjB,YAAA,SAAS,EAAE,IAAI;IACf,YAAA,WAAW,EAAE,KAAK;IAClB,YAAA,GAAG;aACJ;IAED,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACjB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACnB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE;YAC5B,IAAI,CAAC,KAAK,GAAG;IACX,YAAA,YAAY,EAAE,CAAC;IACf,YAAA,aAAa,EAAE,CAAC;IAChB,YAAA,WAAW,EAAE,CAAC;IACd,YAAA,SAAS,EAAE,CAAC;IACZ,YAAA,cAAc,EAAE,CAAC;IACjB,YAAA,WAAW,EAAE;aACd;YAED,IAAI,CAAC,iBAAiB,EAAE;QAC1B;IAEA;;;IAGG;QACH,iBAAiB,GAAA;IACf,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO;IAEpC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,YAAY,EAAE;YACrB;YAEA,IAAI,CAAC,WAAW,EAAE;QACpB;IAEA;;;IAGG;QACH,YAAY,GAAA;IACV,QAAA,IAAI;IACF,YAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAmB;gBAElF,MAAM,CAAC,EAAE,GAAG,CAAA,OAAA,EAAU,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA,CAAE;IAC3C,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM;IACtB,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;IAC5B,YAAA,MAAM,CAAC,MAAM,GAAG,IAAI;;IAGpB,YAAA,MAAM,CAAC,SAAS,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC;IACrE,YAAA,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC;IACjE,YAAA,MAAM,CAAC,cAAc,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC;IAE/E,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;IACzB,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;IAExB,YAAA,OAAO,MAAM;YACf;YAAE,OAAO,KAAK,EAAE;gBACd,MAAM,IAAI,kBAAkB,CAAC,CAAA,2BAAA,EAA8B,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;YAC7E;QACF;IAEA;;;IAGG;QACH,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAA;IAC/B,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK;IAEtB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;IAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;YACnC;IAAO,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;IACjC,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;YACjC;IAAO,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;IAChC,YAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC;YAC1C;QACF;IAEA;;;IAGG;QACH,cAAc,CAAC,MAAM,EAAE,YAAY,EAAA;IACjC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;YAC5B,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;IACzC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,IAAI,CAAC,UAAU,CAAC;wBACd,SAAS,EAAE,YAAY,CAAC,SAAS;wBACjC,KAAK,EAAE,YAAY,CAAC,KAAK;wBACzB,UAAU,EAAE,CAAC,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,KAAK,IAAI,GAAG;IAC/D,oBAAA,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI;IAC9B,iBAAA,CAAC;gBACJ;YACF;QACF;IAEA;;;IAGG;QACH,YAAY,CAAC,MAAM,EAAE,UAAU,EAAA;IAC7B,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;YAC5B,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;;IAGzC,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM;IACtB,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;IAC5B,YAAA,MAAM,CAAC,MAAM,GAAG,IAAI;IACpB,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;IAC1B,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;;IAGxB,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;IAC7B,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC/B,YAAA,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;;gBAG3B,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE;YACpB;QACF;IAEA;;;IAGG;QACH,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAA;IACrC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;YAC5B,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;;IAGzC,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM;IACtB,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;IAC5B,YAAA,MAAM,CAAC,MAAM,GAAG,IAAI;IACpB,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;IAC1B,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;;gBAGxB,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,IAAI,iBAAiB,CAAC;IACrE,YAAA,IAAK,SAAiB,CAAC,IAAI,EAAE;IAC1B,gBAAA,WAAmB,CAAC,IAAI,GAAI,SAAiB,CAAC,IAAI;gBACrD;IACA,YAAA,IAAK,SAAiB,CAAC,OAAO,EAAE;IAC7B,gBAAA,WAAmB,CAAC,OAAO,GAAI,SAAiB,CAAC,OAAO;gBAC3D;IACA,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACxB,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC/B,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;;gBAGxB,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE;YACpB;QACF;IAEA;;;IAGG;QACH,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAA;YAC7B,OAAO,CAAC,KAAK,CAAC,CAAA,OAAA,EAAU,MAAM,CAAC,EAAE,CAAA,OAAA,CAAS,EAAE,KAAK,CAAC;;IAGlD,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAC5B;IAEA;;;IAGG;QACH,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAA;YACpC,OAAO,CAAC,KAAK,CAAC,CAAA,OAAA,EAAU,MAAM,CAAC,EAAE,CAAA,eAAA,CAAiB,EAAE,KAAK,CAAC;QAC5D;IAEA;;;IAGG;IACH,IAAA,aAAa,CAAC,MAAM,EAAA;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;IAC1C,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;;gBAEhB,MAAM,CAAC,SAAS,EAAE;;IAGlB,YAAA,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;IAC9B,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;gBAC5B;qBAAO;IACL,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC1B;IACA,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;;IAGzB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;IACrC,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS;;IAG/B,YAAA,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;IACxD,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;IAChD,gBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;gBACnC;YACF;QACF;IAEA;;;IAGG;QACH,WAAW,CAAC,MAAM,EAAE,IAAI,EAAA;IACtB,QAAA,MAAM,CAAC,MAAM,GAAG,QAAQ;IACxB,QAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;IAC5B,QAAA,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;IAEvB,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;IACxB,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;;IAG1B,QAAA,MAAM,OAAO,GAAG;IACd,YAAA,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC;aACf;YAED,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBACjD,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;YAChD;iBAAO;IACL,YAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;YAC7B;QACF;IAEA;;;IAGG;QACH,YAAY,GAAA;YACV,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B;YACF;YAEA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;IAChC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;gBAC9D,IAAI,CAAC,UAAU,EAAE;IACf,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;wBAC7E,IAAI,CAAC,YAAY,EAAE;wBACnB;oBACF;oBACA;gBACF;gBAEA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IACnC,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;IACtB,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC;YACpC;YAEA,IAAI,CAAC,WAAW,EAAE;QACpB;IAEA;;;IAGG;QACH,WAAW,GAAA;YACT,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;QAC9C;IAEA;;;;;;;IAOG;IACH,IAAA,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAA,GAAe,EAAE,EAAE,UAAU,GAAG,IAAI,EAAA;YAChE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;;IAErC,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;IACtD,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;oBAC9C;gBACF;;gBAGA,MAAM,MAAM,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;gBAC9E,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE;gBAClD,MAAM,YAAY,GAAG,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC;IAC3D,YAAA,MAAM,IAAI,GAAG;IACX,gBAAA,EAAE,EAAE,MAAM;oBACV,MAAM;oBACN,IAAI;IACJ,gBAAA,OAAO,EAAE,WAAW;oBACpB,YAAY;oBACZ,UAAU;oBACV,OAAO;oBACP,MAAM;IACN,gBAAA,SAAS,EAAE,IAAI,CAAC,GAAG;iBACpB;;IAGD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;;gBAGtB,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE;IACpB,QAAA,CAAC,CAAC;QACJ;IAEA;;;IAGG;QACH,QAAQ,GAAA;IACN,QAAA,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;QAC1B;IAEA;;IAEG;QACH,kBAAkB,GAAA;IAChB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACtB,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO;IAEpC,QAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9B,YAAA,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAI,WAAW,EAAE;;oBAErE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3B,MAAM,CAAC,SAAS,EAAE;wBAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACzB,oBAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;IACzB,oBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;oBAC1B;gBACF;YACF;QACF;IAEA;;IAEG;QACH,SAAS,GAAA;IACP,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAG;gBAC5B,MAAM,CAAC,SAAS,EAAE;IACpB,QAAA,CAAC,CAAC;IAEF,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACjB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACnB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;;YAGxB,IAAI,CAAC,KAAK,GAAG;IACX,YAAA,YAAY,EAAE,CAAC;IACf,YAAA,aAAa,EAAE,CAAC;IAChB,YAAA,WAAW,EAAE,CAAC;IACd,YAAA,SAAS,EAAE,CAAC;IACZ,YAAA,cAAc,EAAE,CAAC;IACjB,YAAA,WAAW,EAAE;aACd;QACH;IACD;IAED;;;;IAIG;IACG,SAAU,gBAAgB,CAAC,OAAA,GAAe,EAAE,EAAA;;IAEhD,IAAA,MAAM,OAAO,GACX,OAAO,QAAQ,KAAK;cAChB,QAAQ,CAAC;eACR,OAAO,IAAI,KAAK,WAAW,IAAK,IAAY,CAAC;IAC5C,cAAG,IAAY,CAAC,QAAQ,CAAC;kBACvB,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC,IAAI;IACpE,IAAA,OAAO,IAAI,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC;IAC9C;IAEA;;;;;;IAMG;IACI,eAAe,kBAAkB,CAAC,QAAQ,EAAE,OAAA,GAAe,EAAE,EAAE,UAAU,GAAG,IAAI,EAAA;;QAErF,MAAM,UAAU,GAAG,kBAAyB;IAC5C,IAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;IACpB,QAAA,UAAU,CAAC,IAAI,GAAG,gBAAgB,EAAE;QACtC;IAEA,IAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI;;;QAI5B,IAAI,UAAU,GAAG,QAAQ;QACzB,IAAI,QAAQ,GAAG,IAAI;IAEnB,IAAA,IAAI,QAAQ,YAAY,IAAI,EAAE;IAC5B,QAAA,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC;IACpD,QAAA,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;IACnC,QAAA,QAAQ,GAAG,CAAC,MAAM,CAAC;QACrB;IAAO,SAAA,IAAI,QAAQ,YAAY,WAAW,EAAE;YAC1C,UAAU,GAAG,QAAQ;IACrB,QAAA,QAAQ,GAAG,CAAC,QAAQ,CAAC;QACvB;IAAO,SAAA,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YACvC,UAAU,GAAG,QAAQ;IACrB,QAAA,IAAI,QAAQ,CAAC,MAAM,YAAY,WAAW,EAAE;IAC1C,YAAA,QAAQ,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9B;QACF;IAAO,SAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;IACvC,QAAA,MAAM,IAAI,eAAe,CAAC,kDAAkD,CAAC;QAC/E;;IAGA,IAAA,MAAM,WAAW,GAAG,QAAQ,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;IAChD,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC;IAC9E;IAEA;;;IAGG;IACH,eAAe,qBAAqB,CAAC,IAAU,EAAA;QAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;IACrC,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;IAC/B,QAAA,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,KACpB,OAAO,CAAE,KAAK,CAAC,MAAqB,CAAC,MAAqB,CAAC;IAC7D,QAAA,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;IACzC,QAAA,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC;IAChC,IAAA,CAAC,CAAC;IACJ;IAEA;IACA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;QACnD,MAAM,CAAC,OAAO,GAAG;YACf,UAAU;YACV,gBAAgB;YAChB;SACD;IACH;;;;;;;;;ICniBA;IACA;IAIA,eAAe,oBAAoB,CAAC,OAAO,GAAG,EAAE,EAAA;IAC9C,IAAA,MAAM,GAAG,GAAG,MAAM,0DAAgC;IAClD,IAAA,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC;IACtC;IAEA,eAAe,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE,UAAU,GAAG,IAAI,EAAA;IAC7E,IAAA,MAAM,GAAG,GAAG,MAAM,0DAAgC;QAClD,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;IAC9D;AAEA,UAAM,YAAY,GAAG;QACnB,gBAAgB;QAChB,kBAAkB;QAClB,oBAAoB;QACpB;;IAGF;IACA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE;IACnD,IAAA,MAAM,CAAC,OAAO,GAAG,YAAY;IAC/B;SAAO,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,EAAE;QACrD,MAAM,CAAC,EAAE,EAAE,MAAM,YAAY,CAAC;IAChC;SAAO,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,EAAE;;QAExD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC;IAC3C;;;;;;;;;;;;;;"}
package/dist/jtcsv.cjs.js CHANGED
@@ -389,8 +389,18 @@ function jsonToCsv(data, options = {}) {
389
389
 
390
390
  // Защита от CSV инъекций
391
391
  let escapedValue = stringValue;
392
- if (preventCsvInjection && /^[=+\-@]/.test(stringValue)) {
393
- escapedValue = "'" + stringValue;
392
+ if (preventCsvInjection) {
393
+ // Dangerous prefixes: =, +, -, @, tab (\t), carriage return (\r)
394
+ if (/^[=+\-@\t\r]/.test(stringValue)) {
395
+ escapedValue = "'" + stringValue;
396
+ }
397
+ // Unicode Bidi override characters
398
+ const bidiChars = ['\u202A', '\u202B', '\u202C', '\u202D', '\u202E'];
399
+ for (const bidi of bidiChars) {
400
+ if (stringValue.includes(bidi)) {
401
+ escapedValue = escapedValue.replace(new RegExp(bidi, 'g'), '');
402
+ }
403
+ }
394
404
  }
395
405
 
396
406
  // Соответствие RFC 4180
@@ -703,10 +713,18 @@ function parseCsvValue(value, options) {
703
713
  }
704
714
 
705
715
  // Парсинг чисел
706
- if (parseNumbers && /^-?\d+(\.\d+)?$/.test(result)) {
707
- const num = parseFloat(result);
708
- if (!isNaN(num)) {
709
- return num;
716
+ if (parseNumbers) {
717
+ // Быстрая проверка числа: первый символ цифра, минус или точка
718
+ const trimmed = result.trim();
719
+ const firstChar = trimmed.charAt(0);
720
+ if (firstChar >= '0' && firstChar <= '9' || firstChar === '-' || firstChar === '.') {
721
+ const num = parseFloat(trimmed);
722
+ if (!isNaN(num) && isFinite(num)) {
723
+ // Убедимся, что строка полностью соответствует числу (без лишних символов)
724
+ if (String(num) === trimmed || trimmed.includes('.') && !isNaN(Number(trimmed))) {
725
+ return num;
726
+ }
727
+ }
710
728
  }
711
729
  }
712
730
 
@@ -818,28 +836,42 @@ function autoDetectDelimiter(csv, candidates = [';', ',', '\t', '|']) {
818
836
 
819
837
  // Использование первой непустой строки для определения
820
838
  const firstLine = lines[0];
839
+
840
+ // Быстрый подсчёт вхождений кандидатов за один проход
821
841
  const counts = {};
822
- candidates.forEach(delim => {
823
- const escapedDelim = delim.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
824
- const regex = new RegExp(escapedDelim, 'g');
825
- const matches = firstLine.match(regex);
826
- counts[delim] = matches ? matches.length : 0;
827
- });
842
+ const candidateSet = new Set(candidates);
843
+ for (let i = 0; i < firstLine.length; i++) {
844
+ const char = firstLine[i];
845
+ if (candidateSet.has(char)) {
846
+ counts[char] = (counts[char] || 0) + 1;
847
+ }
848
+ }
849
+ // Убедимся, что все кандидаты присутствуют в counts (даже с нулём)
850
+ for (const delim of candidates) {
851
+ if (!(delim in counts)) {
852
+ counts[delim] = 0;
853
+ }
854
+ }
828
855
 
829
856
  // Поиск разделителя с максимальным количеством
830
857
  let maxCount = -1;
831
858
  let detectedDelimiter = ';'; // значение по умолчанию
832
-
859
+ const maxDelimiters = [];
833
860
  for (const [delim, count] of Object.entries(counts)) {
834
861
  if (count > maxCount) {
835
862
  maxCount = count;
836
- detectedDelimiter = delim;
863
+ maxDelimiters.length = 0;
864
+ maxDelimiters.push(delim);
865
+ } else if (count === maxCount) {
866
+ maxDelimiters.push(delim);
837
867
  }
838
868
  }
839
869
 
840
- // Если разделитель не найден или ничья
841
- if (maxCount === 0) {
842
- return ';'; // значение по умолчанию
870
+ // Если разделитель не найден или есть ничья, возвращаем стандартный
871
+ if (maxCount === 0 || maxDelimiters.length > 1) {
872
+ detectedDelimiter = ';';
873
+ } else {
874
+ detectedDelimiter = maxDelimiters[0];
843
875
  }
844
876
  return detectedDelimiter;
845
877
  }
@@ -1338,8 +1370,18 @@ function escapeCsvValue(value, options) {
1338
1370
  }
1339
1371
  const stringValue = String(value);
1340
1372
  let escapedValue = stringValue;
1341
- if (preventCsvInjection && /^[=+\-@]/.test(stringValue)) {
1342
- escapedValue = "'" + stringValue;
1373
+ if (preventCsvInjection) {
1374
+ // Dangerous prefixes: =, +, -, @, tab (\t), carriage return (\r)
1375
+ if (/^[=+\-@\t\r]/.test(stringValue)) {
1376
+ escapedValue = "'" + stringValue;
1377
+ }
1378
+ // Unicode Bidi override characters
1379
+ const bidiChars = ['\u202A', '\u202B', '\u202C', '\u202D', '\u202E'];
1380
+ for (const bidi of bidiChars) {
1381
+ if (stringValue.includes(bidi)) {
1382
+ escapedValue = escapedValue.replace(new RegExp(bidi, 'g'), '');
1383
+ }
1384
+ }
1343
1385
  }
1344
1386
  const needsQuoting = rfc4180Compliant ? escapedValue.includes(delimiter) || escapedValue.includes('"') || escapedValue.includes('\n') || escapedValue.includes('\r') : escapedValue.includes(delimiter) || escapedValue.includes('"') || escapedValue.includes('\n') || escapedValue.includes('\r');
1345
1387
  if (needsQuoting) {