poe-code 15.0.15 → 15.0.17

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 (76) hide show
  1. package/dist/metafile.json +1 -1
  2. package/package.json +13 -1
  3. package/packages/safe-bash/dist/chunks/chunk-A4UXQKWZ.js +2609 -0
  4. package/packages/safe-bash/dist/chunks/chunk-A4UXQKWZ.js.map +7 -0
  5. package/packages/safe-bash/dist/chunks/chunk-MVVKEMEG.js +1069 -0
  6. package/packages/safe-bash/dist/chunks/chunk-MVVKEMEG.js.map +7 -0
  7. package/packages/safe-bash/dist/commands/iconv/codec.d.ts +10 -0
  8. package/packages/safe-bash/dist/commands/iconv/codec.d.ts.map +1 -0
  9. package/packages/safe-bash/dist/commands/iconv/codec.js +200 -0
  10. package/packages/safe-bash/dist/commands/iconv/codec.js.map +1 -0
  11. package/packages/safe-bash/dist/commands/iconv/command.d.ts +4 -0
  12. package/packages/safe-bash/dist/commands/iconv/command.d.ts.map +1 -0
  13. package/packages/safe-bash/dist/commands/iconv/command.js +116 -0
  14. package/packages/safe-bash/dist/commands/iconv/command.js.map +1 -0
  15. package/packages/safe-bash/dist/commands/iconv/index.browser.js +15 -0
  16. package/packages/safe-bash/dist/commands/iconv/index.browser.js.map +7 -0
  17. package/packages/safe-bash/dist/commands/iconv/index.d.ts +7 -0
  18. package/packages/safe-bash/dist/commands/iconv/index.d.ts.map +1 -0
  19. package/packages/safe-bash/dist/commands/iconv/index.js +11 -0
  20. package/packages/safe-bash/dist/commands/iconv/index.js.map +1 -0
  21. package/packages/safe-bash/dist/commands/iconv/internal.d.ts +54 -0
  22. package/packages/safe-bash/dist/commands/iconv/internal.d.ts.map +1 -0
  23. package/packages/safe-bash/dist/commands/iconv/internal.js +154 -0
  24. package/packages/safe-bash/dist/commands/iconv/internal.js.map +1 -0
  25. package/packages/safe-bash/dist/commands/iconv/lifecycle.d.ts +24 -0
  26. package/packages/safe-bash/dist/commands/iconv/lifecycle.d.ts.map +1 -0
  27. package/packages/safe-bash/dist/commands/iconv/lifecycle.js +111 -0
  28. package/packages/safe-bash/dist/commands/iconv/lifecycle.js.map +1 -0
  29. package/packages/safe-bash/dist/commands/iconv/options.d.ts +11 -0
  30. package/packages/safe-bash/dist/commands/iconv/options.d.ts.map +1 -0
  31. package/packages/safe-bash/dist/commands/iconv/options.js +82 -0
  32. package/packages/safe-bash/dist/commands/iconv/options.js.map +1 -0
  33. package/packages/safe-bash/dist/commands/iconv/reader.d.ts +21 -0
  34. package/packages/safe-bash/dist/commands/iconv/reader.d.ts.map +1 -0
  35. package/packages/safe-bash/dist/commands/iconv/reader.js +192 -0
  36. package/packages/safe-bash/dist/commands/iconv/reader.js.map +1 -0
  37. package/packages/safe-bash/dist/commands/iconv/transliterations.d.ts +2 -0
  38. package/packages/safe-bash/dist/commands/iconv/transliterations.d.ts.map +1 -0
  39. package/packages/safe-bash/dist/commands/iconv/transliterations.js +1785 -0
  40. package/packages/safe-bash/dist/commands/iconv/transliterations.js.map +1 -0
  41. package/packages/safe-bash/dist/commands/line-endings/command.d.ts +5 -0
  42. package/packages/safe-bash/dist/commands/line-endings/command.d.ts.map +1 -0
  43. package/packages/safe-bash/dist/commands/line-endings/command.js +320 -0
  44. package/packages/safe-bash/dist/commands/line-endings/command.js.map +1 -0
  45. package/packages/safe-bash/dist/commands/line-endings/convert.d.ts +11 -0
  46. package/packages/safe-bash/dist/commands/line-endings/convert.d.ts.map +1 -0
  47. package/packages/safe-bash/dist/commands/line-endings/convert.js +196 -0
  48. package/packages/safe-bash/dist/commands/line-endings/convert.js.map +1 -0
  49. package/packages/safe-bash/dist/commands/line-endings/index.browser.js +18 -0
  50. package/packages/safe-bash/dist/commands/line-endings/index.browser.js.map +7 -0
  51. package/packages/safe-bash/dist/commands/line-endings/index.d.ts +7 -0
  52. package/packages/safe-bash/dist/commands/line-endings/index.d.ts.map +1 -0
  53. package/packages/safe-bash/dist/commands/line-endings/index.js +9 -0
  54. package/packages/safe-bash/dist/commands/line-endings/index.js.map +1 -0
  55. package/packages/safe-bash/dist/commands/line-endings/internal.d.ts +67 -0
  56. package/packages/safe-bash/dist/commands/line-endings/internal.d.ts.map +1 -0
  57. package/packages/safe-bash/dist/commands/line-endings/internal.js +144 -0
  58. package/packages/safe-bash/dist/commands/line-endings/internal.js.map +1 -0
  59. package/packages/safe-bash/dist/commands/line-endings/io.d.ts +53 -0
  60. package/packages/safe-bash/dist/commands/line-endings/io.d.ts.map +1 -0
  61. package/packages/safe-bash/dist/commands/line-endings/io.js +267 -0
  62. package/packages/safe-bash/dist/commands/line-endings/io.js.map +1 -0
  63. package/packages/safe-bash/dist/commands/line-endings/stage.d.ts +30 -0
  64. package/packages/safe-bash/dist/commands/line-endings/stage.d.ts.map +1 -0
  65. package/packages/safe-bash/dist/commands/line-endings/stage.js +159 -0
  66. package/packages/safe-bash/dist/commands/line-endings/stage.js.map +1 -0
  67. package/packages/safe-bash/dist/core.browser.js +23 -1
  68. package/packages/safe-bash/dist/core.browser.js.map +2 -2
  69. package/packages/safe-bash/dist/core.d.ts +2 -0
  70. package/packages/safe-bash/dist/core.d.ts.map +1 -1
  71. package/packages/safe-bash/dist/core.js +2 -0
  72. package/packages/safe-bash/dist/core.js.map +1 -1
  73. package/packages/safe-bash/dist/plugins/composition.d.ts +4 -0
  74. package/packages/safe-bash/dist/plugins/composition.d.ts.map +1 -1
  75. package/packages/safe-bash/dist/plugins/composition.js +5 -1
  76. package/packages/safe-bash/dist/plugins/composition.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/commands/line-endings/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKpD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,SAAoB,EAAE,MAAc,EAAE,MAAc,EAAE,IAAe,EAAE,OAA0B,EAAE,KAAmB,EAAE,IAAY,EAAE,KAAc;IAChL,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,GAA0C,OAAO,CAAC;IACzD,MAAM,UAAU,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvG,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACjC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACxF,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;YAClC,IAAI,MAAM,KAAK,CAAC,CAAC;gBAAE,QAAQ,GAAG,IAAI,CAAC;iBAC9B,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI;gBAAE,GAAG,GAAG,IAAI,CAAC;iBAClD,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI;gBAAE,GAAG,GAAG,IAAI,CAAC;iBAClD,CAAC;gBACJ,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;gBACjC,IAAI,KAAK,KAAK,CAAC,CAAC;oBAAE,QAAQ,GAAG,IAAI,CAAC;qBAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;oBAAE,GAAG,GAAG,MAAM,CAAC;qBACtE,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBAClC,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACxD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;wBAClC,IAAI,MAAM,KAAK,CAAC,CAAC;4BAAE,QAAQ,GAAG,IAAI,CAAC;6BAC9B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;4BAAC,GAAG,GAAG,IAAI,CAAC;4BAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;wBAAC,CAAC;;4BACvD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,MAAM,UAAU,CAAC,uCAAuC,CAAC,CAAC;QAC9E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,GAAG,KAAK,OAAO;QAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;IAC7D,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,CAAC;IACzD,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,OAAO;QAAE,MAAM,IAAI,eAAe,CAAC,6DAA6D,CAAC,CAAC;IAC1K,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpJ,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrG,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,KAAK,IAAqB,EAAE;QACvC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAAC,MAAM,KAAK,GAAG,MAAM,CAAC;YAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QACvE,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;QAC3B,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;IACpF,CAAC,CAAC;IACF,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,MAAM,GAAuC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClE,MAAM,GAAG,GAAG,KAAK,EAAE,KAAa,EAAoB,EAAE;QACpD,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,KAAK,OAAO,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAC/G,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YAC1D,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;YACvF,MAAM,UAAU,CAAC,uDAAuD,CAAC,CAAC;YAAC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;YAAC,OAAO,KAAK,CAAC;QACnH,CAAC;QACD,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;YAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAC3E,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;gBACnD,MAAM,UAAU,CAAC,wDAAwD,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;gBAAC,OAAO,KAAK,CAAC;YACpH,CAAC;YACD,KAAK,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;YAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,KAAK;gBAAE,MAAM,UAAU,CAAC,mDAAmD,CAAC,CAAC;YAC1F,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;YAAC,OAAO,KAAK,CAAC;QACxC,CAAC;QACD,IAAI,KAAK,GAAG,GAAG;YAAE,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACpC,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;YAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;QAAC,CAAC;aAC/F,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;YAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;YAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;QAAC,CAAC;aAC3I,CAAC;YAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;YAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;QAAC,CAAC;QACxK,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,SAAS,CAAC;QACR,IAAI,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,MAAM;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,GAAG,EAAE,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC1G,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,KAAK;gBAAE,MAAM,UAAU,CAAC,mBAAmB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;YAChJ,MAAM;QACR,CAAC;QACD,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBACnB,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;gBACtB,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;oBAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAAE,MAAM;gBAAC,CAAC;qBAC5C,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAAE,MAAM;YACpD,CAAC;iBAAM,CAAC;gBACN,IAAI,OAAO,KAAK,EAAE;oBAAE,IAAI,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC;oBAAE,MAAM;YACjC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAAE,MAAM;YAAC,CAAC;iBAC7C,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBACxB,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;gBACvB,IAAI,OAAO,KAAK,CAAC,CAAC;oBAAE,OAAO,GAAG,EAAE,CAAC;qBAC5B,CAAC;oBAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAAE,MAAM;oBAAC,QAAQ,GAAG,EAAE,CAAC;gBAAC,CAAC;YACpD,CAAC;YACD,IAAI,OAAO,KAAK,EAAE;gBAAE,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC;gBAAE,MAAM;YAC/B,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBACzD,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAAE,MAAM;YAC9C,CAAC;YACD,QAAQ,GAAG,OAAO,CAAC;QACrB,CAAC;IACH,CAAC;IACD,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;QAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACxD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,UAAU,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAC/E,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,UAAU,CAAC,wBAAwB,IAAI,iDAAiD,IAAI,GAAG,CAAC,CAAC;IACxI,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;AACzC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import {
2
+ createDos2unixCommand,
3
+ createLineEndingCommands,
4
+ createUnix2dosCommand,
5
+ lineEndingCommands
6
+ } from "../../chunks/chunk-MVVKEMEG.js";
7
+ import "../../chunks/chunk-AZNI263O.js";
8
+ import "../../chunks/chunk-DPJWEGIX.js";
9
+ import "../../chunks/chunk-PZMJ4EC3.js";
10
+ import "../../chunks/chunk-5VBLSPNM.js";
11
+ import "../../chunks/chunk-2KL6W6NB.js";
12
+ export {
13
+ createDos2unixCommand,
14
+ createLineEndingCommands,
15
+ createUnix2dosCommand,
16
+ lineEndingCommands
17
+ };
18
+ //# sourceMappingURL=index.browser.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ import type { CommandDefinition, VirtualShellPlugin } from "../../contracts/index.js";
2
+ import type { LineEndingCommandsOptions } from "./internal.js";
3
+ export { createDos2unixCommand, createUnix2dosCommand } from "./command.js";
4
+ export type { LineEndingCommandsOptions, LineEndingLimits } from "./internal.js";
5
+ export declare function createLineEndingCommands(options?: LineEndingCommandsOptions): readonly CommandDefinition[];
6
+ export declare function lineEndingCommands(options?: LineEndingCommandsOptions): VirtualShellPlugin;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/line-endings/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC5E,YAAY,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjF,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,yBAA8B,GAAG,SAAS,iBAAiB,EAAE,CAA6E;AAC5L,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,yBAA8B,GAAG,kBAAkB,CAG9F"}
@@ -0,0 +1,9 @@
1
+ import { createDos2unixCommand, createUnix2dosCommand } from "./command.js";
2
+ export { createDos2unixCommand, createUnix2dosCommand } from "./command.js";
3
+ export function createLineEndingCommands(options = {}) { return [createDos2unixCommand(options), createUnix2dosCommand(options)]; }
4
+ export function lineEndingCommands(options = {}) {
5
+ const commands = createLineEndingCommands(options);
6
+ return { name: "line-ending-commands", setup(host) { for (const command of commands)
7
+ host.commands.register(command, { replace: options.replace ?? false }); } };
8
+ }
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/line-endings/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE5E,MAAM,UAAU,wBAAwB,CAAC,UAAqC,EAAE,IAAkC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5L,MAAM,UAAU,kBAAkB,CAAC,UAAqC,EAAE;IACxE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnK,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { type CommandContext, type FileStat } from "../../contracts/index.js";
2
+ import { PublicDiagnostic } from "../../diagnostics.js";
3
+ export interface LineEndingLimits {
4
+ readonly maxArguments: number;
5
+ readonly maxArgumentBytes: number;
6
+ readonly maxInputBytes: number;
7
+ readonly maxOutputBytes: number;
8
+ readonly maxBufferedBytes: number;
9
+ readonly maxDiagnosticBytes: number;
10
+ readonly maxFiles: number;
11
+ readonly maxWork: number;
12
+ readonly maxEmptyChunks: number;
13
+ readonly maxPathBytes: number;
14
+ readonly maxDepth: number;
15
+ readonly maxTempAttempts: number;
16
+ readonly chunkSize: number;
17
+ }
18
+ export interface LineEndingCommandsOptions {
19
+ readonly replace?: boolean;
20
+ readonly limits?: Partial<LineEndingLimits>;
21
+ }
22
+ export type Direction = "dos2unix" | "unix2dos";
23
+ export interface ConversionOptions {
24
+ keepBom: boolean;
25
+ addBom: boolean;
26
+ keepUtf16: boolean;
27
+ assume: "bytes" | "le" | "be";
28
+ force: boolean;
29
+ quiet: boolean;
30
+ newline: boolean;
31
+ sevenBit: boolean;
32
+ keepDate: boolean;
33
+ newFile: boolean;
34
+ }
35
+ export declare function settings(options: LineEndingCommandsOptions): LineEndingLimits;
36
+ export declare class LineEndingError extends PublicDiagnostic {
37
+ readonly status: number;
38
+ constructor(message: string, status?: number);
39
+ }
40
+ export declare class Budget {
41
+ readonly context: CommandContext;
42
+ readonly limits: LineEndingLimits;
43
+ readonly signal: AbortSignal;
44
+ private readonly caller;
45
+ private readonly admission;
46
+ private work;
47
+ private quantum;
48
+ private memory;
49
+ private input;
50
+ private output;
51
+ private diagnostics;
52
+ private files;
53
+ constructor(context: CommandContext, limits: LineEndingLimits, signal: AbortSignal, caller: AbortSignal, admission: {
54
+ closed: boolean;
55
+ });
56
+ private assertOpen;
57
+ check(value: number, maximum: number, label: string): void;
58
+ retain(amount: number): void;
59
+ incoming(amount: number): void;
60
+ emitted(amount: number, diagnostic?: boolean): void;
61
+ file(): void;
62
+ step(amount?: number): Promise<void>;
63
+ arguments(): Promise<string[]>;
64
+ }
65
+ export declare function sameIdentity(first: FileStat, second: FileStat): boolean;
66
+ export declare function missing(error: unknown): boolean;
67
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/commands/line-endings/internal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ import { getCommandArguments } from "../../contracts/index.js";
2
+ import { shellValueByteLength, shellValueBytes } from "../../contracts/value.js";
3
+ import { yieldTurn } from "../../contracts/yield.js";
4
+ import { PublicDiagnostic } from "../../diagnostics.js";
5
+ export function settings(options) {
6
+ const limits = {
7
+ maxArguments: 1024, maxArgumentBytes: 262_144, maxInputBytes: 16_777_216, maxOutputBytes: 33_554_432,
8
+ maxBufferedBytes: 2_097_152, maxDiagnosticBytes: 65_536, maxFiles: 128, maxWork: 134_217_728,
9
+ maxEmptyChunks: 1024, maxPathBytes: 4096, maxDepth: 64, maxTempAttempts: 128, chunkSize: 16_384,
10
+ ...options.limits,
11
+ };
12
+ for (const [name, value] of Object.entries(limits))
13
+ if (!Number.isSafeInteger(value) || value < 1)
14
+ throw new RangeError(`Invalid line-ending limit: ${name}`);
15
+ return Object.freeze(limits);
16
+ }
17
+ export class LineEndingError extends PublicDiagnostic {
18
+ status;
19
+ constructor(message, status = 1) {
20
+ super(message);
21
+ this.status = status;
22
+ }
23
+ }
24
+ export class Budget {
25
+ context;
26
+ limits;
27
+ signal;
28
+ caller;
29
+ admission;
30
+ work = 0;
31
+ quantum = 0;
32
+ memory = 0;
33
+ input = 0;
34
+ output = 0;
35
+ diagnostics = 0;
36
+ files = 0;
37
+ constructor(context, limits, signal, caller, admission) {
38
+ this.context = context;
39
+ this.limits = limits;
40
+ this.signal = signal;
41
+ this.caller = caller;
42
+ this.admission = admission;
43
+ }
44
+ assertOpen() {
45
+ this.signal.throwIfAborted();
46
+ if (this.admission.closed)
47
+ throw new LineEndingError("command is closed");
48
+ }
49
+ check(value, maximum, label) {
50
+ if (!Number.isSafeInteger(value) || value < 0 || value > maximum)
51
+ throw new LineEndingError(`${label} limit exceeded`);
52
+ }
53
+ retain(amount) { this.check(this.memory + amount, this.limits.maxBufferedBytes, "buffered bytes"); this.memory += amount; }
54
+ incoming(amount) { this.check(this.input + amount, this.limits.maxInputBytes, "input bytes"); this.input += amount; }
55
+ emitted(amount, diagnostic = false) {
56
+ if (diagnostic) {
57
+ this.check(this.diagnostics + amount, this.limits.maxDiagnosticBytes, "diagnostic bytes");
58
+ this.diagnostics += amount;
59
+ }
60
+ else {
61
+ this.check(this.output + amount, this.limits.maxOutputBytes, "output bytes");
62
+ this.output += amount;
63
+ }
64
+ }
65
+ file() { this.check(++this.files, this.limits.maxFiles, "file count"); }
66
+ async step(amount = 1) {
67
+ this.assertOpen();
68
+ this.check(this.work + amount, this.limits.maxWork, "work");
69
+ this.work += amount;
70
+ this.quantum += amount;
71
+ if (this.quantum >= 1024) {
72
+ this.quantum = 0;
73
+ await yieldTurn(this.caller);
74
+ this.assertOpen();
75
+ }
76
+ }
77
+ async arguments() {
78
+ const args = this.context.args;
79
+ this.assertOpen();
80
+ const count = args.length;
81
+ this.assertOpen();
82
+ this.check(count, this.limits.maxArguments, "argument count");
83
+ const argumentValues = this.context.argumentValues;
84
+ this.assertOpen();
85
+ const carrier = argumentValues === undefined ? undefined : getCommandArguments({ args, argumentValues });
86
+ const snapshot = [];
87
+ this.retain(count * 64);
88
+ let total = 0;
89
+ for (let index = 0; index < count; index++) {
90
+ const argument = args[index];
91
+ this.assertOpen();
92
+ if (typeof argument !== "string")
93
+ throw new LineEndingError("arguments must be strings");
94
+ this.check(argument.length, this.limits.maxPathBytes, "argument bytes");
95
+ total += argument.length;
96
+ this.check(total, this.limits.maxArgumentBytes, "argument bytes");
97
+ this.retain(argument.length * 12);
98
+ snapshot.push(argument);
99
+ }
100
+ for (const argument of snapshot) {
101
+ for (let index = 0; index < argument.length; index++) {
102
+ await this.step();
103
+ const unit = argument.charCodeAt(index);
104
+ if (unit >= 0xd800 && unit <= 0xdbff) {
105
+ const next = argument.charCodeAt(++index);
106
+ if (!(next >= 0xdc00 && next <= 0xdfff))
107
+ throw new LineEndingError("arguments must be valid UTF-8 paths");
108
+ }
109
+ else if (unit >= 0xdc00 && unit <= 0xdfff)
110
+ throw new LineEndingError("arguments must be valid UTF-8 paths");
111
+ }
112
+ }
113
+ const values = (carrier ?? getCommandArguments({ args: snapshot })).values;
114
+ total = 0;
115
+ for (const value of values) {
116
+ const length = shellValueByteLength(value);
117
+ this.check(length, this.limits.maxPathBytes, "argument bytes");
118
+ total += length;
119
+ this.check(total, this.limits.maxArgumentBytes, "argument bytes");
120
+ }
121
+ const result = [];
122
+ for (const value of values) {
123
+ await this.step(shellValueByteLength(value));
124
+ let text;
125
+ try {
126
+ text = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(shellValueBytes(value));
127
+ }
128
+ catch {
129
+ throw new LineEndingError("arguments must be valid UTF-8 paths");
130
+ }
131
+ if (text.includes("\0"))
132
+ throw new LineEndingError("NUL is not supported in paths");
133
+ result.push(text);
134
+ }
135
+ return result;
136
+ }
137
+ }
138
+ export function sameIdentity(first, second) {
139
+ return ((typeof first.identityScope === "object" && first.identityScope !== null) || typeof first.identityScope === "symbol")
140
+ && first.identityScope === second.identityScope && Number.isSafeInteger(first.dev) && Number.isSafeInteger(first.ino)
141
+ && first.dev >= 0 && first.ino >= 0 && first.dev === second.dev && first.ino === second.ino;
142
+ }
143
+ export function missing(error) { return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT"; }
144
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/commands/line-endings/internal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { ByteSink, FileStat } from "../../contracts/index.js";
2
+ import type { OutputOperation } from "../../contracts/output.js";
3
+ import { Budget } from "./internal.js";
4
+ export declare class Lifecycle {
5
+ readonly budget: Budget;
6
+ private readonly captured;
7
+ private readonly caller;
8
+ readonly admission: {
9
+ closed: boolean;
10
+ };
11
+ private readonly pending;
12
+ private readonly cleanups;
13
+ private closing;
14
+ private diagnosticDestination;
15
+ diagnosticCancellation: {
16
+ reason: unknown;
17
+ } | undefined;
18
+ constructor(budget: Budget, output: OutputOperation, captured: ByteSink, caller: AbortSignal, admission: {
19
+ closed: boolean;
20
+ });
21
+ assertOpen(): void;
22
+ private assertDiagnosticOpen;
23
+ cleanup(action: () => Promise<void>): void;
24
+ operation<Value>(action: () => Value | Promise<Value>): Promise<Value>;
25
+ close(): Promise<void>;
26
+ stdout(bytes: Uint8Array): Promise<void>;
27
+ diagnostic(text: string): Promise<void>;
28
+ }
29
+ export declare class Reader {
30
+ readonly life: Lifecycle;
31
+ private iterator;
32
+ private chunk;
33
+ private offset;
34
+ private ended;
35
+ private empties;
36
+ private snapshotBytes;
37
+ private closing;
38
+ constructor(life: Lifecycle);
39
+ close(): Promise<void>;
40
+ open(path?: string, stat?: FileStat): Promise<void>;
41
+ get(): Promise<number>;
42
+ }
43
+ export declare class Writer {
44
+ readonly life: Lifecycle;
45
+ readonly publish: (bytes: Uint8Array) => Promise<void>;
46
+ private buffer;
47
+ private used;
48
+ constructor(life: Lifecycle, publish: (bytes: Uint8Array) => Promise<void>);
49
+ release(): void;
50
+ put(byte: number): Promise<void>;
51
+ flush(): Promise<void>;
52
+ }
53
+ //# sourceMappingURL=io.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../../src/commands/line-endings/io.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAc,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAmB,MAAM,eAAe,CAAC;AAOxD,qBAAa,SAAS;IAMR,QAAQ,CAAC,MAAM,EAAE,MAAM;IAA2B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAY,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAe,QAAQ,CAAC,SAAS,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE;IALhL,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,qBAAqB,CAA2E;IACxG,sBAAsB,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;gBACnC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAmB,QAAQ,EAAE,QAAQ,EAAmB,MAAM,EAAE,WAAW,EAAW,SAAS,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE;IAChL,UAAU,IAAI,IAAI;IAClB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IACpC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAO5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAShB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAyB9C;AAED,qBAAa,MAAM;IAQL,QAAQ,CAAC,IAAI,EAAE,SAAS;IAPpC,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAA4B;gBACtB,IAAI,EAAE,SAAS;IACpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAehB,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CnD,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;CA+B7B;AAED,qBAAa,MAAM;IAGL,QAAQ,CAAC,IAAI,EAAE,SAAS;IAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC;IAF5F,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,IAAI,CAAK;gBACI,IAAI,EAAE,SAAS,EAAW,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC;IAM5F,OAAO,IAAI,IAAI;IACT,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
@@ -0,0 +1,267 @@
1
+ import { Budget, LineEndingError } from "./internal.js";
2
+ const typedArrayPrototype = Object.getPrototypeOf(Uint8Array.prototype);
3
+ const viewBuffer = Object.getOwnPropertyDescriptor(typedArrayPrototype, "buffer").get;
4
+ const viewOffset = Object.getOwnPropertyDescriptor(typedArrayPrototype, "byteOffset").get;
5
+ const viewLength = Object.getOwnPropertyDescriptor(typedArrayPrototype, "byteLength").get;
6
+ export class Lifecycle {
7
+ budget;
8
+ captured;
9
+ caller;
10
+ admission;
11
+ pending = new Set();
12
+ cleanups = [];
13
+ closing;
14
+ diagnosticDestination;
15
+ diagnosticCancellation;
16
+ constructor(budget, output, captured, caller, admission) {
17
+ this.budget = budget;
18
+ this.captured = captured;
19
+ this.caller = caller;
20
+ this.admission = admission;
21
+ output.registerCleanup(() => this.close());
22
+ }
23
+ assertOpen() { this.budget.signal.throwIfAborted(); if (this.closing || this.admission.closed)
24
+ throw new LineEndingError("command is closed"); }
25
+ assertDiagnosticOpen() {
26
+ this.caller.throwIfAborted();
27
+ const consumer = this.diagnosticDestination?.consumer;
28
+ if (consumer?.aborted) {
29
+ this.diagnosticCancellation = { reason: consumer.reason };
30
+ consumer.throwIfAborted();
31
+ }
32
+ }
33
+ cleanup(action) { this.assertOpen(); this.cleanups.push(action); }
34
+ async operation(action) {
35
+ this.assertOpen();
36
+ const pending = Promise.resolve().then(async () => { await this.budget.step(); this.assertOpen(); return action(); });
37
+ this.pending.add(pending);
38
+ try {
39
+ const value = await pending;
40
+ this.assertOpen();
41
+ return value;
42
+ }
43
+ finally {
44
+ this.pending.delete(pending);
45
+ }
46
+ }
47
+ close() {
48
+ return this.closing ??= Promise.resolve().then(async () => {
49
+ while (this.pending.size)
50
+ await Promise.allSettled([...this.pending]);
51
+ const failures = [];
52
+ for (const close of this.cleanups) {
53
+ try {
54
+ await close();
55
+ }
56
+ catch (error) {
57
+ failures.push(error);
58
+ }
59
+ }
60
+ if (failures.length === 1)
61
+ throw failures[0];
62
+ if (failures.length > 1)
63
+ throw new AggregateError(failures, "line-ending cleanup failed");
64
+ });
65
+ }
66
+ async stdout(bytes) {
67
+ await this.operation(async () => {
68
+ const write = this.captured.write;
69
+ this.assertOpen();
70
+ await Reflect.apply(write, this.captured, [bytes]);
71
+ });
72
+ }
73
+ async diagnostic(text) {
74
+ this.assertDiagnosticOpen();
75
+ if (this.closing || this.admission.closed)
76
+ throw new LineEndingError("command is closed");
77
+ this.budget.check(text.length * 3, this.budget.limits.maxDiagnosticBytes, "diagnostic buffer bytes");
78
+ const bytes = new TextEncoder().encode(text);
79
+ this.budget.emitted(bytes.length, true);
80
+ const pending = Promise.resolve().then(async () => {
81
+ this.assertDiagnosticOpen();
82
+ if (!this.diagnosticDestination) {
83
+ const sink = this.budget.context.stderr;
84
+ this.assertDiagnosticOpen();
85
+ const capability = sink.ownedOutput;
86
+ this.assertDiagnosticOpen();
87
+ const consumer = capability?.consumerClosed;
88
+ this.diagnosticDestination = { destination: capability ?? sink, consumer };
89
+ }
90
+ this.assertDiagnosticOpen();
91
+ const destination = this.diagnosticDestination.destination;
92
+ const write = destination.write;
93
+ this.assertDiagnosticOpen();
94
+ await Reflect.apply(write, destination, [bytes]);
95
+ });
96
+ this.pending.add(pending);
97
+ try {
98
+ await pending;
99
+ this.assertDiagnosticOpen();
100
+ }
101
+ finally {
102
+ this.pending.delete(pending);
103
+ }
104
+ }
105
+ }
106
+ export class Reader {
107
+ life;
108
+ iterator;
109
+ chunk = new Uint8Array();
110
+ offset = 0;
111
+ ended = false;
112
+ empties = 0;
113
+ snapshotBytes = 0;
114
+ closing;
115
+ constructor(life) {
116
+ this.life = life;
117
+ life.cleanup(() => this.close());
118
+ }
119
+ close() {
120
+ return this.closing ??= (async () => {
121
+ try {
122
+ if (!this.ended && this.iterator) {
123
+ const iterator = this.iterator;
124
+ const close = iterator.return;
125
+ if (close)
126
+ await Reflect.apply(close, iterator, []);
127
+ }
128
+ }
129
+ finally {
130
+ this.iterator = undefined;
131
+ this.life.budget.retain(-this.chunk.length - this.snapshotBytes);
132
+ this.chunk = new Uint8Array();
133
+ this.snapshotBytes = 0;
134
+ }
135
+ })();
136
+ }
137
+ async open(path, stat) {
138
+ const { context, signal, limits } = this.life.budget;
139
+ await this.life.operation(async () => {
140
+ let source;
141
+ let acquisitionAborted = false;
142
+ if (path === undefined)
143
+ source = context.stdin;
144
+ else {
145
+ const fs = context.fs;
146
+ const capabilitiesFor = fs.capabilitiesFor;
147
+ this.life.assertOpen();
148
+ const selected = capabilitiesFor ? await Reflect.apply(capabilitiesFor, fs, [path, { signal }]) : undefined;
149
+ this.life.assertOpen();
150
+ const capabilities = selected ?? fs.capabilities;
151
+ this.life.assertOpen();
152
+ const readStream = fs.readStream;
153
+ this.life.assertOpen();
154
+ const streaming = capabilities.streamingRead !== false;
155
+ this.life.assertOpen();
156
+ if (readStream && streaming) {
157
+ source = Reflect.apply(readStream, fs, [path, { signal, chunkSize: limits.chunkSize }]);
158
+ acquisitionAborted = signal.aborted || this.life.admission.closed;
159
+ }
160
+ else {
161
+ const maximum = Math.min(limits.maxInputBytes, Math.floor(limits.maxBufferedBytes / 3));
162
+ const size = stat.size;
163
+ this.life.assertOpen();
164
+ this.life.budget.check(size, maximum, "buffered input bytes");
165
+ this.life.budget.retain(maximum);
166
+ this.snapshotBytes = maximum;
167
+ const readFile = fs.readFile;
168
+ this.life.assertOpen();
169
+ const bytes = await Reflect.apply(readFile, fs, [path, { signal, maxBytes: maximum }]);
170
+ this.life.assertOpen();
171
+ if (!(bytes instanceof Uint8Array))
172
+ throw new TypeError("line-ending input requires bytes");
173
+ this.life.budget.check(viewLength.call(bytes), maximum, "buffered input bytes");
174
+ source = { [Symbol.asyncIterator]: (async function* () { try {
175
+ yield bytes;
176
+ }
177
+ finally {
178
+ this.life.budget.retain(-this.snapshotBytes);
179
+ this.snapshotBytes = 0;
180
+ } }).bind(this) };
181
+ }
182
+ }
183
+ if (!acquisitionAborted)
184
+ this.life.assertOpen();
185
+ const factory = source[Symbol.asyncIterator];
186
+ if (!acquisitionAborted)
187
+ this.life.assertOpen();
188
+ this.iterator = Reflect.apply(factory, source, []);
189
+ });
190
+ }
191
+ async get() {
192
+ await this.life.budget.step();
193
+ this.life.assertOpen();
194
+ while (this.offset === this.chunk.length) {
195
+ if (this.ended)
196
+ return -1;
197
+ const next = await this.life.operation(() => {
198
+ const iterator = this.iterator;
199
+ const advance = iterator.next;
200
+ this.life.assertOpen();
201
+ return Reflect.apply(advance, iterator, []);
202
+ });
203
+ this.life.budget.retain(-this.chunk.length);
204
+ this.chunk = new Uint8Array();
205
+ this.offset = 0;
206
+ const done = next.done;
207
+ this.life.assertOpen();
208
+ if (done) {
209
+ this.ended = true;
210
+ this.iterator = undefined;
211
+ return -1;
212
+ }
213
+ const value = next.value;
214
+ this.life.assertOpen();
215
+ if (!(value instanceof Uint8Array))
216
+ throw new TypeError("line-ending input requires bytes");
217
+ const buffer = viewBuffer.call(value);
218
+ const offset = viewOffset.call(value);
219
+ const length = viewLength.call(value);
220
+ this.life.budget.incoming(length);
221
+ this.life.budget.retain(length);
222
+ try {
223
+ if (viewOffset.call(value) !== offset || viewLength.call(value) < length)
224
+ throw new TypeError("line-ending input extent changed during admission");
225
+ this.chunk = new Uint8Array(new Uint8Array(buffer, offset, length));
226
+ }
227
+ catch (error) {
228
+ this.life.budget.retain(-length);
229
+ throw error;
230
+ }
231
+ if (!this.chunk.length)
232
+ this.life.budget.check(++this.empties, this.life.budget.limits.maxEmptyChunks, "empty input chunks");
233
+ }
234
+ return this.chunk[this.offset++];
235
+ }
236
+ }
237
+ export class Writer {
238
+ life;
239
+ publish;
240
+ buffer;
241
+ used = 0;
242
+ constructor(life, publish) {
243
+ this.life = life;
244
+ this.publish = publish;
245
+ const size = Math.min(life.budget.limits.chunkSize, life.budget.limits.maxBufferedBytes);
246
+ life.budget.retain(size);
247
+ this.buffer = new Uint8Array(size);
248
+ life.cleanup(async () => { this.release(); });
249
+ }
250
+ release() { this.life.budget.retain(-this.buffer.length); this.buffer = new Uint8Array(); this.used = 0; }
251
+ async put(byte) {
252
+ await this.life.budget.step();
253
+ this.life.assertOpen();
254
+ this.life.budget.emitted(1);
255
+ this.buffer[this.used++] = byte;
256
+ if (this.used === this.buffer.length)
257
+ await this.flush();
258
+ }
259
+ async flush() {
260
+ this.life.assertOpen();
261
+ if (this.used) {
262
+ await this.publish(this.buffer.subarray(0, this.used));
263
+ this.used = 0;
264
+ }
265
+ }
266
+ }
267
+ //# sourceMappingURL=io.js.map