poe-code 15.0.9 → 15.0.10

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 (74) hide show
  1. package/dist/metafile.json +1 -1
  2. package/package.json +7 -1
  3. package/packages/safe-bash/dist/chunks/{chunk-L2GZSOSJ.js → chunk-4NMFAR4Z.js} +2 -16
  4. package/packages/safe-bash/dist/chunks/{chunk-L2GZSOSJ.js.map → chunk-4NMFAR4Z.js.map} +4 -4
  5. package/packages/safe-bash/dist/chunks/{chunk-UZELUFGF.js → chunk-54EWSIBL.js} +5 -5
  6. package/packages/safe-bash/dist/chunks/{chunk-NVUC5B2R.js → chunk-5FNFA5ZV.js} +9 -7
  7. package/packages/safe-bash/dist/chunks/{chunk-NVUC5B2R.js.map → chunk-5FNFA5ZV.js.map} +1 -1
  8. package/packages/safe-bash/dist/chunks/{chunk-M7KZ7V4P.js → chunk-5X2TAR25.js} +2 -2
  9. package/packages/safe-bash/dist/chunks/{chunk-XROAIPKA.js → chunk-67TENRTW.js} +7 -5
  10. package/packages/safe-bash/dist/chunks/{chunk-XROAIPKA.js.map → chunk-67TENRTW.js.map} +1 -1
  11. package/packages/safe-bash/dist/chunks/{chunk-5Y4AEZB2.js → chunk-7XJVLU37.js} +6 -4
  12. package/packages/safe-bash/dist/chunks/{chunk-5Y4AEZB2.js.map → chunk-7XJVLU37.js.map} +1 -1
  13. package/packages/safe-bash/dist/chunks/chunk-CI42NIWL.js +21 -0
  14. package/packages/safe-bash/dist/chunks/chunk-CI42NIWL.js.map +7 -0
  15. package/packages/safe-bash/dist/chunks/{chunk-JWUT4LBW.js → chunk-ELK3CQTQ.js} +47 -16
  16. package/packages/safe-bash/dist/chunks/chunk-ELK3CQTQ.js.map +7 -0
  17. package/packages/safe-bash/dist/chunks/{chunk-PY37EOPJ.js → chunk-GZH6ILJC.js} +50 -15
  18. package/packages/safe-bash/dist/chunks/chunk-GZH6ILJC.js.map +7 -0
  19. package/packages/safe-bash/dist/chunks/chunk-LUIEXTN5.js +527 -0
  20. package/packages/safe-bash/dist/chunks/chunk-LUIEXTN5.js.map +7 -0
  21. package/packages/safe-bash/dist/chunks/{chunk-AVXYPKV7.js → chunk-QQHMFJHF.js} +4 -4
  22. package/packages/safe-bash/dist/chunks/{chunk-QY2XHZTE.js → chunk-RDIJ6M2D.js} +3 -3
  23. package/packages/safe-bash/dist/chunks/{chunk-PPVCI2F2.js → chunk-UL4TNDNV.js} +2 -2
  24. package/packages/safe-bash/dist/commands/csplit/index.browser.js +5 -4
  25. package/packages/safe-bash/dist/commands/factor/command.d.ts +4 -0
  26. package/packages/safe-bash/dist/commands/factor/command.d.ts.map +1 -0
  27. package/packages/safe-bash/dist/commands/factor/command.js +121 -0
  28. package/packages/safe-bash/dist/commands/factor/command.js.map +1 -0
  29. package/packages/safe-bash/dist/commands/factor/factor.d.ts +4 -0
  30. package/packages/safe-bash/dist/commands/factor/factor.d.ts.map +1 -0
  31. package/packages/safe-bash/dist/commands/factor/factor.js +54 -0
  32. package/packages/safe-bash/dist/commands/factor/factor.js.map +1 -0
  33. package/packages/safe-bash/dist/commands/factor/index.browser.js +13 -0
  34. package/packages/safe-bash/dist/commands/factor/index.browser.js.map +7 -0
  35. package/packages/safe-bash/dist/commands/factor/index.d.ts +7 -0
  36. package/packages/safe-bash/dist/commands/factor/index.d.ts.map +1 -0
  37. package/packages/safe-bash/dist/commands/factor/index.js +13 -0
  38. package/packages/safe-bash/dist/commands/factor/index.js.map +1 -0
  39. package/packages/safe-bash/dist/commands/factor/internal.d.ts +51 -0
  40. package/packages/safe-bash/dist/commands/factor/internal.d.ts.map +1 -0
  41. package/packages/safe-bash/dist/commands/factor/internal.js +138 -0
  42. package/packages/safe-bash/dist/commands/factor/internal.js.map +1 -0
  43. package/packages/safe-bash/dist/commands/factor/io.d.ts +36 -0
  44. package/packages/safe-bash/dist/commands/factor/io.d.ts.map +1 -0
  45. package/packages/safe-bash/dist/commands/factor/io.js +207 -0
  46. package/packages/safe-bash/dist/commands/factor/io.js.map +1 -0
  47. package/packages/safe-bash/dist/commands/network/index.browser.js +6 -5
  48. package/packages/safe-bash/dist/commands/pr/index.browser.js +4 -3
  49. package/packages/safe-bash/dist/commands/pr/io.d.ts.map +1 -1
  50. package/packages/safe-bash/dist/commands/pr/io.js +46 -11
  51. package/packages/safe-bash/dist/commands/pr/io.js.map +1 -1
  52. package/packages/safe-bash/dist/commands/tsort/index.browser.js +4 -3
  53. package/packages/safe-bash/dist/commands/tsort/io.d.ts.map +1 -1
  54. package/packages/safe-bash/dist/commands/tsort/io.js +43 -12
  55. package/packages/safe-bash/dist/commands/tsort/io.js.map +1 -1
  56. package/packages/safe-bash/dist/commands/xml/index.browser.js +5 -4
  57. package/packages/safe-bash/dist/commands/yq/index.browser.js +6 -5
  58. package/packages/safe-bash/dist/core.browser.js +32 -20
  59. package/packages/safe-bash/dist/core.browser.js.map +2 -2
  60. package/packages/safe-bash/dist/core.d.ts +1 -0
  61. package/packages/safe-bash/dist/core.d.ts.map +1 -1
  62. package/packages/safe-bash/dist/core.js +1 -0
  63. package/packages/safe-bash/dist/core.js.map +1 -1
  64. package/packages/safe-bash/dist/plugins/composition.d.ts +2 -0
  65. package/packages/safe-bash/dist/plugins/composition.d.ts.map +1 -1
  66. package/packages/safe-bash/dist/plugins/composition.js +3 -1
  67. package/packages/safe-bash/dist/plugins/composition.js.map +1 -1
  68. package/packages/safe-bash/dist/chunks/chunk-JWUT4LBW.js.map +0 -7
  69. package/packages/safe-bash/dist/chunks/chunk-PY37EOPJ.js.map +0 -7
  70. /package/packages/safe-bash/dist/chunks/{chunk-UZELUFGF.js.map → chunk-54EWSIBL.js.map} +0 -0
  71. /package/packages/safe-bash/dist/chunks/{chunk-M7KZ7V4P.js.map → chunk-5X2TAR25.js.map} +0 -0
  72. /package/packages/safe-bash/dist/chunks/{chunk-AVXYPKV7.js.map → chunk-QQHMFJHF.js.map} +0 -0
  73. /package/packages/safe-bash/dist/chunks/{chunk-QY2XHZTE.js.map → chunk-RDIJ6M2D.js.map} +0 -0
  74. /package/packages/safe-bash/dist/chunks/{chunk-PPVCI2F2.js.map → chunk-UL4TNDNV.js.map} +0 -0
@@ -39,6 +39,7 @@ export * from "./commands/xml/index.js";
39
39
  export * from "./commands/csplit/index.js";
40
40
  export * from "./commands/pr/index.js";
41
41
  export * from "./commands/tsort/index.js";
42
+ export * from "./commands/factor/index.js";
42
43
  export * from "./commands/yq/index.js";
43
44
  export * from "./fs/memory/index.js";
44
45
  export * from "./fs/webdav/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChM,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACnG,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChM,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACnG,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC"}
@@ -39,6 +39,7 @@ export * from "./commands/xml/index.js";
39
39
  export * from "./commands/csplit/index.js";
40
40
  export * from "./commands/pr/index.js";
41
41
  export * from "./commands/tsort/index.js";
42
+ export * from "./commands/factor/index.js";
42
43
  export * from "./commands/yq/index.js";
43
44
  export * from "./fs/memory/index.js";
44
45
  export * from "./fs/webdav/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChM,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAA8B,MAAM,+BAA+B,CAAC;AACnG,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChM,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAA8B,MAAM,+BAA+B,CAAC;AACnG,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC"}
@@ -26,6 +26,7 @@ import { type XmlCommandsOptions } from "../commands/xml/index.js";
26
26
  import type { CsplitCommandsOptions } from "../commands/csplit/internal.js";
27
27
  import { type PrCommandsOptions } from "../commands/pr/index.js";
28
28
  import { type TsortCommandsOptions } from "../commands/tsort/index.js";
29
+ import { type FactorCommandsOptions } from "../commands/factor/index.js";
29
30
  import type { RegexExecutionOptions } from "../commands/regex-execution/protocol.js";
30
31
  import type { BoundedRegexProvider } from "../commands/regex-execution/provider.js";
31
32
  export interface AgentCommandsOptions {
@@ -39,6 +40,7 @@ export interface AgentCommandsOptions {
39
40
  readonly csplit?: Omit<CsplitCommandsOptions, "replace" | "regex" | "regexExecutor">;
40
41
  readonly pr?: Omit<PrCommandsOptions, "replace">;
41
42
  readonly tsort?: Omit<TsortCommandsOptions, "replace">;
43
+ readonly factor?: Omit<FactorCommandsOptions, "replace">;
42
44
  readonly du?: Omit<DuCommandsOptions, "replace">;
43
45
  readonly htmlToMarkdown?: Omit<HtmlToMarkdownCommandsOptions, "replace">;
44
46
  readonly replace?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../src/plugins/composition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../src/plugins/composition.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ import { createXmlCommands } from "../commands/xml/index.js";
29
29
  import { createCsplitCommandWithExecutor } from "../commands/csplit/command.js";
30
30
  import { createPrCommands } from "../commands/pr/index.js";
31
31
  import { createTsortCommands } from "../commands/tsort/index.js";
32
+ import { createFactorCommands } from "../commands/factor/index.js";
32
33
  export function commandExecutor(lookup) {
33
34
  return async (context) => {
34
35
  const command = lookup(context.command);
@@ -47,6 +48,7 @@ export function composeAgentCommands(options, executors) {
47
48
  const prLimits = prOptions?.limits;
48
49
  const prClock = prOptions?.clock;
49
50
  const tsortLimits = options.tsort?.limits;
51
+ const factorLimits = options.factor?.limits;
50
52
  const whichLimits = options.which?.limits;
51
53
  const timeoutOptions = options.timeout;
52
54
  const applyPatchLimits = options.applyPatch?.limits;
@@ -55,7 +57,7 @@ export function composeAgentCommands(options, executors) {
55
57
  invoke: timeoutOptions.invoke,
56
58
  scheduler: timeoutOptions.scheduler,
57
59
  maxTimerMilliseconds: timeoutOptions.maxTimerMilliseconds,
58
- }), ...createApplyPatchCommands(applyPatchLimits === undefined ? {} : { limits: applyPatchLimits }), ...createXmlCommands(xmlLimits === undefined ? {} : { limits: xmlLimits }), createCsplitCommandWithExecutor(executors.csplit, csplitLimits === undefined ? {} : { limits: csplitLimits }), ...createPrCommands({ ...(prLimits === undefined ? {} : { limits: prLimits }), ...(prClock === undefined ? {} : { clock: prClock }) }), ...createTsortCommands(tsortLimits === undefined ? {} : { limits: tsortLimits }));
60
+ }), ...createApplyPatchCommands(applyPatchLimits === undefined ? {} : { limits: applyPatchLimits }), ...createXmlCommands(xmlLimits === undefined ? {} : { limits: xmlLimits }), createCsplitCommandWithExecutor(executors.csplit, csplitLimits === undefined ? {} : { limits: csplitLimits }), ...createPrCommands({ ...(prLimits === undefined ? {} : { limits: prLimits }), ...(prClock === undefined ? {} : { clock: prClock }) }), ...createTsortCommands(tsortLimits === undefined ? {} : { limits: tsortLimits }), ...createFactorCommands(factorLimits === undefined ? {} : { limits: factorLimits }));
59
61
  return new CommandRegistry(commands).list();
60
62
  }
61
63
  //# sourceMappingURL=composition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"composition.js","sourceRoot":"","sources":["../../src/plugins/composition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composition.js","sourceRoot":"","sources":["../../src/plugins/composition.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/commands/tsort/index.ts", "../../src/commands/tsort/command.ts", "../../src/commands/tsort/internal.ts", "../../src/commands/tsort/io.ts", "../../src/commands/tsort/graph.ts"],
4
- "sourcesContent": ["import type { CommandDefinition, VirtualShellPlugin } from \"../../contracts/index.js\";\nimport { createTsortCommand } from \"./command.js\";\nimport type { TsortCommandsOptions } from \"./internal.js\";\n\nexport { createTsortCommand } from \"./command.js\";\nexport type { TsortCommandsOptions, TsortLimits } from \"./internal.js\";\n\nexport function createTsortCommands(options: TsortCommandsOptions = {}): readonly CommandDefinition[] {\n return [createTsortCommand(options)];\n}\n\nexport function tsortCommands(options: TsortCommandsOptions = {}): VirtualShellPlugin {\n const commands = createTsortCommands(options);\n return { name: \"tsort-commands\", setup(host) {\n for (const command of commands) host.commands.register(command, { replace: options.replace ?? false });\n } };\n}\n", "import type { CommandDefinition } from \"../../contracts/index.js\";\nimport { createOutputOperation } from \"../../contracts/output.js\";\nimport { Budget, TsortError, quote, settings, type TsortCommandsOptions } from \"./internal.js\";\nimport { Lifecycle, Reader } from \"./io.js\";\nimport { sort } from \"./graph.js\";\n\nexport function createTsortCommand(options: TsortCommandsOptions = {}): CommandDefinition {\n const limits = settings(options);\n return { name: \"tsort\", description: \"Topologically sort pairs of byte-valued node names\", async execute(context) {\n const output = createOutputOperation(context, context.stdout);\n const budget = new Budget(context, limits, output.signal);\n let lifecycle: Lifecycle | undefined;\n let failure: { reason: unknown } | undefined;\n let primary: { reason: unknown } | undefined;\n let exitCode = 0;\n try {\n lifecycle = new Lifecycle(budget, output);\n const args = budget.arguments();\n const lone = args.length === 1 ? args[0]! : \"\";\n if (lone.length > 2 && (\"--help\".startsWith(lone) || \"--version\".startsWith(lone))) {\n await lifecycle.write(\"--help\".startsWith(lone) ? \"Usage: tsort [OPTION] [FILE]\\nWrite a topological ordering of whitespace-separated node pairs.\\nWith no FILE, or FILE -, read standard input.\\nOptions: --help --version\\n\" : \"tsort (virtual-bash)\\n\");\n } else {\n let optionsEnded = false;\n const files: string[] = [];\n for (const argument of args) {\n if (!optionsEnded && argument === \"--\") { optionsEnded = true; continue; }\n if (!optionsEnded && argument.startsWith(\"--\")) throw new TsortError(`unrecognized option '${argument}'`, true);\n if (!optionsEnded && argument.length > 1 && argument.startsWith(\"-\")) throw new TsortError(`invalid option -- '${argument[1]}'`, true);\n files.push(argument);\n if (context.env.POSIXLY_CORRECT !== undefined) optionsEnded = true;\n }\n if (files.length > 1) throw new TsortError(`extra operand ${quote(files[1]!)}`, true);\n const reader = new Reader(files[0] ?? \"-\", lifecycle);\n await reader.open();\n exitCode = await sort(reader, lifecycle);\n }\n } catch (error) {\n primary = { reason: error };\n if (error instanceof TsortError && !output.signal.aborted && lifecycle) {\n exitCode = 1;\n try { await lifecycle.write(`tsort: ${error.message}\\n${error.usage ? \"Try 'tsort --help' for more information.\\n\" : \"\"}`, true); }\n catch (reporting) { failure = { reason: new AggregateError([error, reporting], \"tsort failure reporting failed\") }; }\n } else failure = { reason: error };\n }\n try { await output.close(); }\n catch (cleanup) {\n const previous = failure ?? primary;\n failure = { reason: previous ? new AggregateError([previous.reason, cleanup], \"tsort execution and cleanup failed\") : cleanup };\n }\n context.signal.throwIfAborted();\n output.signal.throwIfAborted();\n if (failure) throw failure.reason;\n return { exitCode };\n } };\n}\n", "import { getCommandArguments, type CommandContext } from \"../../contracts/index.js\";\nimport { shellValueByteLength, shellValueBytes } from \"../../contracts/value.js\";\nimport { yieldTurn } from \"../../contracts/yield.js\";\nimport { PublicDiagnostic } from \"../../diagnostics.js\";\n\nexport interface TsortLimits {\n readonly maxArguments: number;\n readonly maxArgumentBytes: number;\n readonly maxInputBytes: number;\n readonly maxTokenBytes: number;\n readonly maxTokens: number;\n readonly maxNodes: number;\n readonly maxEdges: number;\n readonly maxBufferedBytes: number;\n readonly maxOutputBytes: number;\n readonly maxDiagnosticBytes: number;\n readonly maxWork: number;\n readonly maxEmptyChunks: number;\n}\n\nexport interface TsortCommandsOptions {\n readonly replace?: boolean;\n readonly limits?: Partial<TsortLimits>;\n}\n\nexport function settings(options: TsortCommandsOptions): TsortLimits {\n const limits: TsortLimits = {\n maxArguments: 4096, maxArgumentBytes: 65_536, maxInputBytes: 33_554_432,\n maxTokenBytes: 1_048_576, maxTokens: 2_097_152, maxNodes: 131_072,\n maxEdges: 1_048_576, maxBufferedBytes: 33_554_432, maxOutputBytes: 67_108_864,\n maxDiagnosticBytes: 65_536, maxWork: 134_217_728, maxEmptyChunks: 4096, ...options.limits,\n };\n for (const [name, value] of Object.entries(limits)) {\n if (!Number.isSafeInteger(value) || value < 1) throw new RangeError(`Invalid tsort limit: ${name}`);\n }\n return Object.freeze(limits);\n}\n\nexport class TsortError extends PublicDiagnostic {\n constructor(message: string, readonly usage = false) { super(message); }\n}\n\nexport function raw(value: Uint8Array): string {\n let result = \"\";\n for (let offset = 0; offset < value.length; offset += 4096) result += String.fromCharCode(...value.subarray(offset, offset + 4096));\n return result;\n}\n\nexport function bytes(value: string): Uint8Array {\n return Uint8Array.from(value, character => character.charCodeAt(0));\n}\n\nexport function pathText(value: string): string {\n try { return new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true }).decode(bytes(value)); }\n catch { throw new TsortError(\"filesystem paths must be valid UTF-8\"); }\n}\n\nexport function quote(value: string): string {\n const escapes: Readonly<Record<string, string>> = { \"\\x07\": \"\\\\a\", \"\\b\": \"\\\\b\", \"\\f\": \"\\\\f\", \"\\n\": \"\\\\n\", \"\\r\": \"\\\\r\", \"\\t\": \"\\\\t\", \"\\v\": \"\\\\v\", \"\\\\\": \"\\\\\\\\\", \"'\": \"\\\\'\" };\n let result = \"'\";\n for (const character of value) {\n const code = character.charCodeAt(0);\n result += escapes[character] ?? (code >= 32 && code < 127 ? character : `\\\\${code.toString(8).padStart(3, \"0\")}`);\n }\n return `${result}'`;\n}\n\nexport function fileQuote(value: string): string {\n let safe = value.length > 0;\n let escaped = false;\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (!(character >= \"a\" && character <= \"z\" || character >= \"A\" && character <= \"Z\" || character >= \"0\" && character <= \"9\" || \"_./-\".includes(character))) safe = false;\n if (code < 32 || code >= 127) escaped = true;\n }\n if (safe) return value;\n if (!escaped) {\n if (value.includes(\"'\") && ![\"$\", \"`\", \"\\\\\", '\"'].some(character => value.includes(character))) return `\"${value}\"`;\n return `'${value.split(\"'\").join(\"'\\\\''\")}'`;\n }\n const escapes: Readonly<Record<string, string>> = { \"\\x07\": \"\\\\a\", \"\\b\": \"\\\\b\", \"\\f\": \"\\\\f\", \"\\n\": \"\\\\n\", \"\\r\": \"\\\\r\", \"\\t\": \"\\\\t\", \"\\v\": \"\\\\v\" };\n let result = \"'\", inEscape = false;\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (code < 32 || code >= 127) {\n if (!inEscape) { result += \"'$'\"; inEscape = true; }\n result += escapes[character] ?? `\\\\${code.toString(8).padStart(3, \"0\")}`;\n } else {\n if (inEscape) { result += \"''\"; inEscape = false; }\n result += character === \"'\" ? \"'\\\\''\" : character;\n }\n }\n return `${result}'`;\n}\n\nexport class Budget {\n private work = 0;\n private checkpoint = 0;\n private retained = 0;\n private input = 0;\n private output = 0;\n private diagnostics = 0;\n constructor(readonly context: CommandContext, readonly limits: TsortLimits, readonly signal: AbortSignal) {}\n check(value: number, maximum: number, label: string): void {\n if (!Number.isSafeInteger(value) || value < 0 || value > maximum) throw new TsortError(`${label} limit exceeded`);\n }\n charge(amount = 1): void {\n this.signal.throwIfAborted();\n this.check(this.work + amount, this.limits.maxWork, \"work\");\n this.work += amount;\n }\n async checkpointWork(): Promise<void> {\n this.signal.throwIfAborted();\n if (this.work - this.checkpoint >= 4096) { this.checkpoint = this.work; await yieldTurn(this.signal); }\n }\n retain(amount: number): void {\n this.check(this.retained + amount, this.limits.maxBufferedBytes, \"buffered bytes\");\n this.retained += amount;\n }\n inputBytes(amount: number): void {\n this.check(this.input + amount, this.limits.maxInputBytes, \"input bytes\");\n this.input += amount;\n }\n emitted(amount: number, diagnostic: boolean): void {\n if (diagnostic) {\n this.check(this.diagnostics + amount, this.limits.maxDiagnosticBytes, \"diagnostic bytes\");\n this.diagnostics += amount;\n } else {\n this.check(this.output + amount, this.limits.maxOutputBytes, \"output bytes\");\n this.output += amount;\n this.charge(amount);\n }\n }\n arguments(): string[] {\n this.check(this.context.args.length, this.limits.maxArguments, \"argument count\");\n let total = 0;\n for (const argument of this.context.args) {\n total += argument.length;\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n for (let offset = 0; offset < argument.length; offset++) {\n const unit = argument.charCodeAt(offset);\n if (unit >= 0xd800 && unit <= 0xdbff) {\n const next = argument.charCodeAt(++offset);\n if (!(next >= 0xdc00 && next <= 0xdfff)) throw new TsortError(\"arguments must contain well-formed Unicode\");\n } else if (unit >= 0xdc00 && unit <= 0xdfff) throw new TsortError(\"arguments must contain well-formed Unicode\");\n }\n }\n total = 0;\n const values = this.context.argumentValues === undefined ? this.context.args : getCommandArguments(this.context).values;\n for (const argument of values) {\n total += shellValueByteLength(argument);\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n }\n this.charge(total);\n this.retain(total * 8 + this.context.args.length * 64 + 128);\n total = 0;\n return getCommandArguments(this.context).values.map(argument => {\n total += shellValueByteLength(argument);\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n this.charge(shellValueByteLength(argument));\n const value = shellValueBytes(argument);\n if (value.includes(0)) throw new TsortError(\"NUL is not supported in arguments\");\n return raw(value);\n });\n }\n}\n", "import { FsError, resolvePath, type ByteSource } from \"../../contracts/index.js\";\nimport type { OutputOperation } from \"../../contracts/output.js\";\nimport { Budget, TsortError, bytes, fileQuote, pathText } from \"./internal.js\";\n\nexport class Lifecycle {\n private readonly pending = new Set<Promise<unknown>>();\n private readonly cleanups: (() => Promise<void>)[] = [];\n private closing: Promise<void> | undefined;\n constructor(readonly budget: Budget, output: OutputOperation) { output.registerCleanup(() => this.close()); }\n cleanup(action: () => Promise<void>): void { this.assertOpen(); this.cleanups.push(action); }\n assertOpen(): void {\n this.budget.signal.throwIfAborted();\n if (this.closing) throw new TsortError(\"command is closed\");\n }\n async operation<Value>(action: () => Value | Promise<Value>, diagnostic = false): Promise<Value> {\n this.assertOpen();\n if (!diagnostic) this.budget.charge();\n const pending = Promise.resolve().then(() => { this.assertOpen(); return action(); });\n this.pending.add(pending);\n try { const value = await pending; this.assertOpen(); return value; }\n finally { this.pending.delete(pending); }\n }\n close(): Promise<void> {\n return this.closing ??= Promise.resolve().then(async () => {\n while (this.pending.size) await Promise.allSettled([...this.pending]);\n const failures: unknown[] = [];\n for (const cleanup of this.cleanups) {\n try { await cleanup(); } catch (error) { failures.push(error); }\n }\n if (failures.length === 1) throw failures[0];\n if (failures.length > 1) throw new AggregateError(failures, \"tsort cleanup failed\");\n });\n }\n async write(value: string, diagnostic = false): Promise<void> {\n this.budget.emitted(value.length, diagnostic);\n await this.operation(async () => {\n if (!diagnostic) this.budget.retain(value.length * 3);\n try {\n const sink = diagnostic ? this.budget.context.stderr : this.budget.context.stdout;\n await (sink.ownedOutput ?? sink).write(bytes(value));\n } finally { if (!diagnostic) this.budget.retain(-value.length * 3); }\n }, diagnostic);\n }\n}\n\nexport class Reader {\n private iterator: AsyncIterator<Uint8Array> | undefined;\n private chunk: Uint8Array = new Uint8Array();\n private offset = 0;\n private ended = false;\n private empties = 0;\n private snapshotBytes = 0;\n constructor(readonly name: string, readonly lifecycle: Lifecycle) {\n lifecycle.cleanup(async () => {\n try { if (!this.ended) await this.iterator?.return?.(); }\n finally {\n this.iterator = undefined;\n this.releaseSnapshot();\n lifecycle.budget.retain(-this.chunk.length);\n this.chunk = new Uint8Array();\n }\n });\n }\n private readonly releaseSnapshot = (): void => {\n this.lifecycle.budget.retain(-this.snapshotBytes);\n this.snapshotBytes = 0;\n };\n async open(): Promise<void> {\n const { budget } = this.lifecycle;\n const { fs, stdin } = budget.context;\n try {\n await this.lifecycle.operation(async () => {\n let source: ByteSource;\n if (this.name === \"-\") source = stdin;\n else {\n const path = resolvePath(budget.context.cwd, pathText(this.name));\n const stat = await fs.stat(path, { signal: budget.signal });\n budget.signal.throwIfAborted();\n if (stat.type === \"directory\") { this.ended = true; return; }\n if (stat.type !== \"file\" && stat.type !== \"character\") throw new FsError(\"ENOTSUP\", { path });\n const capabilities = await fs.capabilitiesFor?.(path, { signal: budget.signal }) ?? fs.capabilities;\n budget.signal.throwIfAborted();\n if (fs.readStream && capabilities.streamingRead !== false) source = fs.readStream(path, { signal: budget.signal, chunkSize: 16_384 });\n else {\n const maximum = Math.min(budget.limits.maxInputBytes, Math.floor(budget.limits.maxBufferedBytes / 2));\n budget.check(stat.size, maximum, \"buffered input bytes\");\n budget.retain(maximum);\n this.snapshotBytes = maximum;\n const content = await fs.readFile(path, { signal: budget.signal, maxBytes: maximum });\n if (!(content instanceof Uint8Array)) throw new TypeError(\"tsort input requires bytes\");\n budget.check(content.length, maximum, \"buffered input bytes\");\n budget.retain(content.length - maximum);\n this.snapshotBytes = content.length;\n const { releaseSnapshot } = this;\n source = { async *[Symbol.asyncIterator]() { try { yield content; } finally { releaseSnapshot(); } } };\n }\n }\n this.iterator = source[Symbol.asyncIterator]();\n });\n } catch (error) {\n if (error instanceof FsError) throw new TsortError(`${fileQuote(this.name)}: ${fsDetail(error)}`);\n throw error;\n }\n }\n async get(): Promise<number> {\n const { budget } = this.lifecycle;\n budget.charge();\n await budget.checkpointWork();\n while (this.offset === this.chunk.length) {\n if (this.ended) return -1;\n let next: IteratorResult<Uint8Array>;\n try { next = await this.lifecycle.operation(() => this.iterator!.next()); }\n catch (error) {\n if (error instanceof FsError) throw new TsortError(`${fileQuote(this.name)}: ${fsDetail(error)}`);\n throw error;\n }\n budget.retain(-this.chunk.length);\n this.chunk = new Uint8Array();\n this.offset = 0;\n if (next.done) { this.ended = true; this.iterator = undefined; return -1; }\n if (!(next.value instanceof Uint8Array)) throw new TypeError(\"tsort input requires bytes\");\n budget.inputBytes(next.value.length);\n budget.charge(next.value.length);\n budget.retain(next.value.length);\n this.chunk = Uint8Array.from(next.value);\n if (!this.chunk.length) budget.check(++this.empties, budget.limits.maxEmptyChunks, \"empty input chunks\");\n }\n return this.chunk[this.offset++]!;\n }\n}\n\nfunction fsDetail(error: FsError): string {\n const details: Partial<Record<FsError[\"code\"], string>> = {\n EACCES: \"Permission denied\", EPERM: \"Operation not permitted\", ENOENT: \"No such file or directory\",\n EISDIR: \"Is a directory\", ENOTDIR: \"Not a directory\", EIO: \"Input/output error\", ELOOP: \"Too many levels of symbolic links\",\n ENAMETOOLONG: \"File name too long\", ENOTSUP: \"Operation not supported\",\n };\n return details[error.code] ?? error.message;\n}\n", "import { TsortError, fileQuote, raw } from \"./internal.js\";\nimport { Lifecycle, Reader } from \"./io.js\";\n\ninterface Edge { target: Node; next: Edge | undefined }\ninterface Node { name: string; count: number; printed: boolean; top: Edge | undefined; link: Node | undefined }\n\nexport async function sort(reader: Reader, lifecycle: Lifecycle): Promise<number> {\n const { budget } = lifecycle;\n const nodes = new Map<string, Node>();\n let tokens = 0, edges = 0, length = 0, nameLength = 0;\n let nul = false;\n let token: Uint8Array = new Uint8Array();\n let predecessor: Node | undefined;\n const admitToken = (): void => {\n budget.check(++tokens, budget.limits.maxTokens, \"tokens\");\n budget.charge(nameLength + 1);\n budget.retain(nameLength * 4);\n const name = raw(token.subarray(0, nameLength));\n let node = nodes.get(name);\n if (!node) {\n budget.check(nodes.size + 1, budget.limits.maxNodes, \"nodes\");\n budget.retain(160);\n node = { name, count: 0, printed: false, top: undefined, link: undefined };\n nodes.set(name, node);\n } else budget.retain(-nameLength * 4);\n if (!predecessor) predecessor = node;\n else {\n if (predecessor !== node) {\n budget.check(++edges, budget.limits.maxEdges, \"edges\");\n budget.retain(48);\n predecessor.top = { target: node, next: predecessor.top };\n node.count++;\n }\n predecessor = undefined;\n }\n length = 0;\n nameLength = 0;\n nul = false;\n };\n for (;;) {\n const value = await reader.get();\n if (value < 0 || value === 32 || value === 9 || value === 10) {\n if (length) admitToken();\n if (value < 0) break;\n } else {\n budget.check(++length, budget.limits.maxTokenBytes, \"token bytes\");\n if (value === 0) nul = true;\n if (!nul) {\n if (nameLength === token.length) {\n const capacity = Math.min(budget.limits.maxTokenBytes, Math.max(64, token.length * 2));\n budget.retain(capacity);\n budget.charge(token.length);\n const grown = new Uint8Array(capacity);\n grown.set(token);\n budget.retain(-token.length);\n token = grown;\n }\n token[nameLength++] = value;\n }\n }\n }\n budget.retain(-token.length);\n token = new Uint8Array();\n if (predecessor) throw new TsortError(`${fileQuote(reader.name)}: input contains an odd number of tokens`);\n budget.retain(nodes.size * 16);\n let ordered = [...nodes.values()];\n let scratch = new Array<Node>(ordered.length);\n for (let width = 1; width < ordered.length; width *= 2) {\n for (let start = 0; start < ordered.length; start += width * 2) {\n const middle = Math.min(start + width, ordered.length), end = Math.min(start + width * 2, ordered.length);\n let left = start, right = middle;\n for (let offset = start; offset < end; offset++) {\n budget.charge();\n let useLeft = right === end;\n if (left < middle && right < end) {\n budget.charge(Math.min(ordered[left]!.name.length, ordered[right]!.name.length) + 1);\n useLeft = ordered[left]!.name < ordered[right]!.name;\n }\n scratch[offset] = left < middle && useLeft ? ordered[left++]! : ordered[right++]!;\n await budget.checkpointWork();\n }\n }\n [ordered, scratch] = [scratch, ordered];\n }\n let remaining = ordered.length, status = 0;\n while (remaining) {\n let head: Node | undefined, tail: Node | undefined;\n for (const node of ordered) {\n budget.charge();\n if (!node.printed && !node.count) {\n if (tail) tail.link = node; else head = node;\n tail = node;\n node.link = undefined;\n }\n await budget.checkpointWork();\n }\n while (head) {\n const node: Node = head;\n budget.check(node.name.length + 1, budget.limits.maxOutputBytes, \"output bytes\");\n await lifecycle.write(`${node.name}\\n`);\n node.printed = true;\n remaining--;\n for (let edge = node.top; edge; edge = edge.next) {\n budget.charge();\n if (!--edge.target.count) {\n tail!.link = edge.target;\n tail = edge.target;\n tail.link = undefined;\n }\n await budget.checkpointWork();\n }\n head = node.link;\n node.link = undefined;\n }\n if (!remaining) break;\n status = 1;\n await lifecycle.write(`tsort: ${fileQuote(reader.name)}: input contains a loop:\\n`, true);\n let loop: Node | undefined;\n do {\n let found = false;\n for (const node of ordered) {\n budget.charge();\n await budget.checkpointWork();\n if (!node.count) continue;\n if (!loop) { loop = node; continue; }\n let previous: Edge | undefined;\n for (let edge = node.top; edge; edge = edge.next) {\n budget.charge();\n await budget.checkpointWork();\n if (edge.target === loop) {\n if (node.link) {\n while (loop) {\n budget.charge();\n const next: Node | undefined = loop.link;\n await lifecycle.write(`tsort: ${loop.name}\\n`, true);\n if (loop === node) {\n edge.target.count--;\n if (previous) previous.next = edge.next; else node.top = edge.next;\n break;\n }\n loop.link = undefined;\n loop = next;\n }\n while (loop) {\n budget.charge();\n const next: Node | undefined = loop.link;\n loop.link = undefined;\n loop = next;\n await budget.checkpointWork();\n }\n found = true;\n } else { node.link = loop; loop = node; }\n break;\n }\n previous = edge;\n }\n if (found) break;\n }\n } while (loop);\n }\n return status;\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/commands/pr/index.ts", "../../src/commands/pr/command.ts", "../../src/commands/pr/internal.ts", "../../src/commands/pr/io.ts", "../../src/commands/pr/options.ts", "../../src/commands/pr/format.ts"],
4
- "sourcesContent": ["import type { CommandDefinition, VirtualShellPlugin } from \"../../contracts/index.js\";\nimport { createPrCommand } from \"./command.js\";\nimport type { PrCommandsOptions } from \"./internal.js\";\n\nexport { createPrCommand } from \"./command.js\";\nexport type { PrCommandsOptions, PrLimits } from \"./internal.js\";\n\nexport function createPrCommands(options: PrCommandsOptions = {}): readonly CommandDefinition[] {\n return [createPrCommand(options)];\n}\n\nexport function prCommands(options: PrCommandsOptions = {}): VirtualShellPlugin {\n const commands = createPrCommands(options);\n return { name: \"pr-commands\", setup(host) {\n for (const command of commands) host.commands.register(command, { replace: options.replace ?? false });\n } };\n}\n", "import { FsError, type CommandDefinition } from \"../../contracts/index.js\";\nimport { createOutputOperation } from \"../../contracts/output.js\";\nimport { publicDiagnosticMessage } from \"../../diagnostics.js\";\nimport { Budget, PrError, fileQuote, quote, settings, type PrCommandsOptions } from \"./internal.js\";\nimport { Lifecycle, Reader, fsDetail } from \"./io.js\";\nimport { parseOptions } from \"./options.js\";\nimport { Formatter } from \"./format.js\";\n\nexport function createPrCommand(options: PrCommandsOptions = {}): CommandDefinition {\n const limits = settings(options);\n return { name: \"pr\", description: \"Paginate files and print balanced or merged columns\", async execute(context) {\n const output = createOutputOperation(context, context.stdout);\n const budget = new Budget(context, limits, output.signal);\n let lifecycle: Lifecycle | undefined;\n let failure: { reason: unknown } | undefined;\n let primary: { reason: unknown } | undefined;\n let exitCode = 0;\n try {\n lifecycle = new Lifecycle(budget, output);\n const parsed = parseOptions(budget.arguments(), budget);\n if (parsed.information) {\n await lifecycle.write(parsed.information === \"version\" ? \"pr (virtual-bash)\\n\" : \"Usage: pr [OPTION]... [FILE]...\\nPaginate or columnate files for printing.\\nOptions: -COLUMNS -h HEADER -l LENGTH -w WIDTH -t -n[SEP[DIGITS]] -m -s[SEP]\\n\");\n } else {\n const ctype = context.env.LC_ALL || context.env.LC_CTYPE || context.env.LANG || \"C\";\n const timeLocale = context.env.LC_ALL || context.env.LC_TIME || context.env.LANG || \"C\";\n for (const locale of [ctype, timeLocale]) if (![\"C\", \"POSIX\", \"C.UTF-8\", \"C.utf8\"].includes(locale)) throw new PrError(`unsupported locale ${quote(locale)}`);\n let sampled: number | undefined;\n const date = (reader: Reader | undefined): string => {\n let milliseconds: number;\n if (reader?.stat) milliseconds = reader.stat.mtimeMs;\n else milliseconds = sampled ??= (options.clock ?? Date.now)();\n const value = new Date(milliseconds);\n if (!Number.isFinite(milliseconds) || Number.isNaN(value.getTime())) throw new PrError(\"invalid header timestamp\");\n const year = String(value.getUTCFullYear()).padStart(4, \"0\");\n const month = String(value.getUTCMonth() + 1).padStart(2, \"0\");\n const day = String(value.getUTCDate()).padStart(2, \"0\");\n const time = `${String(value.getUTCHours()).padStart(2, \"0\")}:${String(value.getUTCMinutes()).padStart(2, \"0\")}`;\n if (context.env.POSIXLY_CORRECT !== undefined && (timeLocale === \"C\" || timeLocale === \"POSIX\")) return `${[\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"][value.getUTCMonth()]} ${String(value.getUTCDate()).padStart(2, \" \")} ${time} ${year}`;\n return `${year}-${month}-${day} ${time}`;\n };\n let stdin: Reader | undefined;\n const open = async (name: string): Promise<Reader | undefined> => {\n if (name === \"-\" && stdin) return stdin;\n const reader = new Reader(name, lifecycle!);\n try { await reader.open(); }\n catch (error) {\n if (!(error instanceof FsError)) throw error;\n exitCode = 1;\n if (!parsed.quiet) {\n await lifecycle!.write(`pr: ${fileQuote(name)}: ${fsDetail(error)}\\n`, true);\n }\n return undefined;\n }\n if (name === \"-\") stdin = reader;\n return reader;\n };\n const names = parsed.files.length ? parsed.files : [\"-\"];\n if (!parsed.files.length) parsed.merge = false;\n const groups = parsed.merge ? [names] : names.map(name => [name]);\n for (const group of groups) {\n const formatter = new Formatter({ ...parsed }, lifecycle, group.length);\n const readers: Reader[] = [];\n for (const name of group) { const reader = await open(name); if (reader) readers.push(reader); }\n if (!readers.length) continue;\n const title = parsed.header ?? (parsed.merge || readers[0]!.name === \"-\" ? \"\" : readers[0]!.name);\n await formatter.run(readers, date(parsed.merge ? undefined : readers[0]), title);\n }\n }\n } catch (error) {\n primary = { reason: error };\n failure = { reason: error };\n if (!output.signal.aborted && lifecycle && error instanceof PrError) {\n exitCode = 1;\n try {\n await lifecycle.write(`pr: ${publicDiagnosticMessage(error, context.onInternalError)}\\n`, true);\n if (error.usage) await lifecycle.write(\"Try 'pr --help' for more information.\\n\", true);\n failure = undefined;\n } catch (reporting) { failure = { reason: new AggregateError([error, reporting], \"pr failure reporting failed\") }; }\n }\n }\n try { await output.close(); }\n catch (cleanup) {\n const previous = failure ?? primary;\n failure = { reason: previous ? new AggregateError([previous.reason, cleanup], \"pr execution and cleanup failed\") : cleanup };\n }\n context.signal.throwIfAborted();\n output.signal.throwIfAborted();\n if (failure) throw failure.reason;\n return { exitCode };\n } };\n}\n", "import { getCommandArguments, type CommandContext } from \"../../contracts/index.js\";\nimport { shellValueByteLength, shellValueBytes } from \"../../contracts/value.js\";\nimport { yieldTurn } from \"../../contracts/yield.js\";\nimport { PublicDiagnostic } from \"../../diagnostics.js\";\n\nexport interface PrLimits {\n readonly maxArguments: number;\n readonly maxArgumentBytes: number;\n readonly maxFiles: number;\n readonly maxColumns: number;\n readonly maxPageLines: number;\n readonly maxPageWidth: number;\n readonly maxPages: number;\n readonly maxInputBytes: number;\n readonly maxBufferedBytes: number;\n readonly maxLineBytes: number;\n readonly maxLines: number;\n readonly maxOutputBytes: number;\n readonly maxDiagnosticBytes: number;\n readonly maxWork: number;\n readonly maxEmptyChunks: number;\n}\n\nexport interface PrCommandsOptions {\n readonly replace?: boolean;\n readonly clock?: () => number;\n readonly limits?: Partial<PrLimits>;\n}\n\nexport function settings(options: PrCommandsOptions): PrLimits {\n const limits: PrLimits = {\n maxArguments: 4096, maxArgumentBytes: 65_536, maxFiles: 128, maxColumns: 128,\n maxPageLines: 65_536, maxPageWidth: 65_536, maxPages: 65_536,\n maxInputBytes: 33_554_432, maxBufferedBytes: 16_777_216,\n maxLineBytes: 1_048_576, maxLines: 1_048_576, maxOutputBytes: 67_108_864,\n maxDiagnosticBytes: 65_536, maxWork: 134_217_728, maxEmptyChunks: 4096, ...options.limits,\n };\n for (const [name, value] of Object.entries(limits)) {\n if (!Number.isSafeInteger(value) || value < 1) throw new RangeError(`Invalid pr limit: ${name}`);\n }\n if (options.clock !== undefined && typeof options.clock !== \"function\") throw new TypeError(\"pr clock must be a function\");\n return Object.freeze(limits);\n}\n\nexport class PrError extends PublicDiagnostic {\n constructor(message: string, readonly usage = false) { super(message); }\n}\n\nexport class PrReadError extends PrError {}\n\nexport function raw(value: Uint8Array): string {\n let text = \"\";\n for (const byte of value) text += String.fromCharCode(byte);\n return text;\n}\n\nexport function bytes(value: string): Uint8Array {\n return Uint8Array.from(value, character => character.charCodeAt(0));\n}\n\nexport function pathText(value: string): string {\n try { return new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true }).decode(bytes(value)); }\n catch { throw new PrError(\"filesystem paths must be valid UTF-8\"); }\n}\n\nexport function quote(value: string): string {\n const escapes: Readonly<Record<string, string>> = { \"\\x07\": \"\\\\a\", \"\\b\": \"\\\\b\", \"\\f\": \"\\\\f\", \"\\n\": \"\\\\n\", \"\\r\": \"\\\\r\", \"\\t\": \"\\\\t\", \"\\v\": \"\\\\v\", \"\\\\\": \"\\\\\\\\\", \"'\": \"\\\\'\" };\n let result = \"'\";\n for (const character of value) {\n const code = character.charCodeAt(0);\n result += escapes[character] ?? (code >= 32 && code < 127 ? character : `\\\\${code.toString(8).padStart(3, \"0\")}`);\n }\n return `${result}'`;\n}\n\nexport function fileQuote(value: string): string {\n let safe = value.length > 0, escaped = false;\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (!(character >= \"a\" && character <= \"z\" || character >= \"A\" && character <= \"Z\" || character >= \"0\" && character <= \"9\" || \"_./-\".includes(character))) safe = false;\n if (code < 32 || code >= 127) escaped = true;\n }\n if (safe) return value;\n if (!escaped) {\n if (value.includes(\"'\") && ![\"$\", \"`\", \"\\\\\", '\"'].some(character => value.includes(character))) return `\"${value}\"`;\n return `'${value.split(\"'\").join(\"'\\\\''\")}'`;\n }\n let result = \"'\", inEscape = false;\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (code < 32 || code >= 127) {\n if (!inEscape) { result += \"'$'\"; inEscape = true; }\n result += quote(character).slice(1, -1);\n } else {\n if (inEscape) { result += \"''\"; inEscape = false; }\n result += character === \"'\" ? \"'\\\\''\" : character;\n }\n }\n return `${result}'`;\n}\n\nexport class Budget {\n private work = 0;\n private checkpoint = 0;\n private retained = 0;\n private input = 0;\n private lines = 0;\n private pages = 0;\n private output = 0;\n private diagnostics = 0;\n constructor(readonly context: CommandContext, readonly limits: PrLimits, readonly signal: AbortSignal) {}\n check(value: number, maximum: number, label: string): void {\n if (!Number.isSafeInteger(value) || value < 0 || value > maximum) throw new PrError(`${label} limit exceeded`);\n }\n charge(amount = 1): void {\n this.signal.throwIfAborted();\n this.work += amount;\n this.check(this.work, this.limits.maxWork, \"work\");\n }\n async checkpointWork(): Promise<void> {\n this.signal.throwIfAborted();\n if (this.work - this.checkpoint >= 4096) {\n this.checkpoint = this.work;\n await yieldTurn(this.signal);\n }\n }\n retain(amount: number): void {\n this.check(this.retained + amount, this.limits.maxBufferedBytes, \"buffered bytes\");\n this.retained += amount;\n }\n admitString(length: number): void {\n this.signal.throwIfAborted();\n this.check(length, this.limits.maxWork - this.work, \"work\");\n this.check(this.retained + length * 2, this.limits.maxBufferedBytes, \"buffered bytes\");\n }\n inputBytes(amount: number): void {\n this.input += amount;\n this.check(this.input, this.limits.maxInputBytes, \"input bytes\");\n }\n line(): void { this.check(++this.lines, this.limits.maxLines, \"input lines\"); }\n page(): void { this.check(++this.pages, this.limits.maxPages, \"pages\"); this.charge(); }\n emitted(amount: number, diagnostic: boolean): void {\n if (diagnostic) {\n this.diagnostics += amount;\n this.check(this.diagnostics, this.limits.maxDiagnosticBytes, \"diagnostic bytes\");\n } else {\n this.output += amount;\n this.check(this.output, this.limits.maxOutputBytes, \"output bytes\");\n }\n if (!diagnostic) this.charge(amount);\n }\n arguments(): string[] {\n this.check(this.context.args.length, this.limits.maxArguments, \"argument count\");\n let total = 0;\n for (const argument of this.context.args) {\n total += argument.length;\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n for (let offset = 0; offset < argument.length; offset++) {\n const unit = argument.charCodeAt(offset);\n if (unit >= 0xd800 && unit <= 0xdbff) {\n const next = argument.charCodeAt(++offset);\n if (!(next >= 0xdc00 && next <= 0xdfff)) throw new PrError(\"arguments must contain well-formed Unicode\");\n } else if (unit >= 0xdc00 && unit <= 0xdfff) throw new PrError(\"arguments must contain well-formed Unicode\");\n }\n }\n total = 0;\n return getCommandArguments(this.context).values.map(argument => {\n total += shellValueByteLength(argument);\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n const value = shellValueBytes(argument);\n this.charge(value.length);\n if (value.includes(0)) throw new PrError(\"NUL is not supported in arguments\");\n return raw(value);\n });\n }\n}\n", "import { FsError, resolvePath, type ByteSource, type FileStat } from \"../../contracts/index.js\";\nimport type { OutputOperation } from \"../../contracts/output.js\";\nimport { Budget, PrError, PrReadError, bytes, fileQuote, pathText } from \"./internal.js\";\n\nexport class Lifecycle {\n private readonly pending = new Set<Promise<unknown>>();\n private readonly cleanups: (() => Promise<void>)[] = [];\n private closing: Promise<void> | undefined;\n constructor(readonly budget: Budget, output: OutputOperation) { output.registerCleanup(() => this.close()); }\n cleanup(action: () => Promise<void>): void { this.assertOpen(); this.cleanups.push(action); }\n assertOpen(): void {\n this.budget.signal.throwIfAborted();\n if (this.closing) throw new PrError(\"command is closed\");\n }\n async operation<Value>(action: () => Value | Promise<Value>, diagnostic = false): Promise<Value> {\n this.assertOpen();\n if (!diagnostic) this.budget.charge();\n const pending = Promise.resolve().then(() => { this.assertOpen(); return action(); });\n this.pending.add(pending);\n try { const value = await pending; this.assertOpen(); return value; }\n finally { this.pending.delete(pending); }\n }\n close(): Promise<void> {\n return this.closing ??= Promise.resolve().then(async () => {\n while (this.pending.size) await Promise.allSettled([...this.pending]);\n const failures: unknown[] = [];\n for (const cleanup of this.cleanups) {\n try { await cleanup(); } catch (error) { failures.push(error); }\n }\n if (failures.length === 1) throw failures[0];\n if (failures.length > 1) throw new AggregateError(failures, \"pr cleanup failed\");\n });\n }\n async write(value: string, diagnostic = false): Promise<void> {\n const { budget } = this;\n budget.emitted(value.length, diagnostic);\n await this.operation(async () => {\n if (!diagnostic) budget.retain(value.length * 3);\n try {\n const sink = diagnostic ? budget.context.stderr : budget.context.stdout;\n await (sink.ownedOutput ?? sink).write(bytes(value));\n } finally { if (!diagnostic) budget.retain(-value.length * 3); }\n }, diagnostic);\n }\n}\n\nexport class Reader {\n private iterator: AsyncIterator<Uint8Array> | undefined;\n private chunk: Uint8Array = new Uint8Array();\n private offset = 0;\n private pushed = -1;\n private ended = false;\n private empties = 0;\n private length = 0;\n private snapshotBytes = 0;\n private path: string | undefined;\n stat: FileStat | undefined;\n constructor(readonly name: string, readonly lifecycle: Lifecycle) {\n lifecycle.cleanup(async () => {\n try { if (!this.ended) await this.iterator?.return?.(); }\n finally {\n this.iterator = undefined;\n this.releaseSnapshot();\n lifecycle.budget.retain(-this.chunk.length);\n this.chunk = new Uint8Array();\n }\n });\n }\n private readonly releaseSnapshot = (): void => {\n this.lifecycle.budget.retain(-this.snapshotBytes);\n this.snapshotBytes = 0;\n };\n async open(): Promise<void> {\n if (this.name === \"-\") return;\n const { budget } = this.lifecycle;\n this.path = resolvePath(budget.context.cwd, pathText(this.name));\n this.stat = await this.lifecycle.operation(() => budget.context.fs.stat(this.path!, { signal: budget.signal }));\n if (this.stat.type !== \"file\" && this.stat.type !== \"directory\" && this.stat.type !== \"character\") throw new FsError(\"ENOTSUP\", { path: this.path });\n }\n private async acquire(): Promise<void> {\n const { budget } = this.lifecycle;\n const { fs, stdin } = budget.context;\n await this.lifecycle.operation(async () => {\n let source: ByteSource;\n if (this.path === undefined) source = stdin;\n else {\n const capabilities = await fs.capabilitiesFor?.(this.path, { signal: budget.signal }) ?? fs.capabilities;\n budget.signal.throwIfAborted();\n if (fs.readStream && capabilities.streamingRead !== false) source = fs.readStream(this.path, { signal: budget.signal, chunkSize: 16_384 });\n else {\n const maximum = Math.min(budget.limits.maxInputBytes, Math.floor(budget.limits.maxBufferedBytes / 2));\n budget.check(this.stat!.size, maximum, \"buffered input bytes\");\n budget.retain(maximum);\n this.snapshotBytes = maximum;\n const content = await fs.readFile(this.path, { signal: budget.signal, maxBytes: maximum });\n if (!(content instanceof Uint8Array)) throw new TypeError(\"pr input requires bytes\");\n budget.check(content.length, maximum, \"buffered input bytes\");\n budget.retain(content.length - maximum);\n this.snapshotBytes = content.length;\n const { releaseSnapshot } = this;\n source = { async *[Symbol.asyncIterator]() { try { yield content; } finally { releaseSnapshot(); } } };\n }\n }\n this.iterator = source[Symbol.asyncIterator]();\n });\n }\n unget(value: number): void { this.pushed = value; }\n async get(): Promise<number> {\n const { budget } = this.lifecycle;\n budget.charge();\n await budget.checkpointWork();\n if (this.stat?.type === \"directory\") throw new PrReadError(`${fileQuote(this.name)}: Is a directory`);\n if (this.pushed >= 0) { const value = this.pushed; this.pushed = -1; return value; }\n while (this.offset === this.chunk.length) {\n if (this.ended) return -1;\n let next: IteratorResult<Uint8Array>;\n try {\n if (!this.iterator) await this.acquire();\n next = await this.lifecycle.operation(() => this.iterator!.next());\n } catch (error) {\n if (error instanceof FsError) throw new PrReadError(`${fileQuote(this.name === \"-\" ? \"standard input\" : this.name)}: ${fsDetail(error)}`);\n throw error;\n }\n budget.retain(-this.chunk.length);\n this.chunk = new Uint8Array();\n this.offset = 0;\n if (next.done) {\n this.ended = true;\n this.iterator = undefined;\n if (this.length > 0) { this.length = 0; budget.line(); }\n return -1;\n }\n if (!(next.value instanceof Uint8Array)) throw new TypeError(\"pr input requires bytes\");\n budget.inputBytes(next.value.length);\n budget.retain(next.value.length);\n this.chunk = Uint8Array.from(next.value);\n if (!this.chunk.length) budget.check(++this.empties, budget.limits.maxEmptyChunks, \"empty input chunks\");\n }\n const value = this.chunk[this.offset++]!;\n if (value === 10 || value === 12) { this.length = 0; budget.line(); }\n else budget.check(++this.length, budget.limits.maxLineBytes, \"input line bytes\");\n return value;\n }\n}\n\nexport function fsDetail(error: FsError): string {\n const details: Partial<Record<FsError[\"code\"], string>> = {\n EACCES: \"Permission denied\", EPERM: \"Operation not permitted\", ENOENT: \"No such file or directory\",\n EISDIR: \"Is a directory\", ENOTDIR: \"Not a directory\", EIO: \"Input/output error\", ELOOP: \"Too many levels of symbolic links\",\n ENAMETOOLONG: \"File name too long\", ENOTSUP: \"Operation not supported\",\n };\n return details[error.code] ?? error.message;\n}\n", "import { Budget, PrError, quote } from \"./internal.js\";\n\nexport interface Options {\n files: string[];\n columns: number;\n explicitColumns: boolean;\n merge: boolean;\n across: boolean;\n length: number;\n width: number;\n header: string | undefined;\n extremities: boolean;\n keepFF: boolean;\n formFeed: boolean;\n numbered: boolean;\n digits: number;\n numberSeparator: string;\n startNumber: number;\n separator: string;\n useSeparator: boolean;\n truncate: boolean;\n join: boolean;\n doubleSpace: boolean;\n margin: number;\n expand: boolean;\n tabify: boolean;\n inputTab: string;\n inputTabWidth: number;\n outputTab: string;\n outputTabWidth: number;\n control: boolean;\n octal: boolean;\n quiet: boolean;\n information: \"help\" | \"version\" | undefined;\n}\n\nfunction digit(value: string): boolean { return value >= \"0\" && value <= \"9\"; }\n\nfunction integer(value: string, minimum: number, label: string): number {\n let offset = 0;\n while (\" \\t\\r\\n\\v\\f\".includes(value[offset] ?? \"!\") && offset < value.length) offset++;\n if (value[offset] === \"+\" || value[offset] === \"-\") offset++;\n const start = offset;\n while (offset < value.length && digit(value[offset]!)) offset++;\n if (offset !== value.length || offset === start) throw new PrError(`${label}: ${quote(value)}`);\n const result = Number(value);\n if (result < minimum || result > 2147483647 || !Number.isSafeInteger(result)) throw new PrError(`${label}: ${quote(value)}: Numerical result out of range`);\n return result;\n}\n\nexport function parseOptions(args: string[], budget: Budget): Options {\n const options: Options = {\n files: [], columns: 1, explicitColumns: false, merge: false, across: false,\n length: 66, width: 72, header: undefined, extremities: true, keepFF: false,\n formFeed: false, numbered: false, digits: 5, numberSeparator: \"\\t\", startNumber: 1,\n separator: \"\", useSeparator: false, truncate: false, join: false, doubleSpace: false,\n margin: 0, expand: false, tabify: false, inputTab: \"\\t\", inputTabWidth: 8,\n outputTab: \"\\t\", outputTabWidth: 8, control: false, octal: false, quiet: false, information: undefined,\n };\n const long: Record<string, string> = {\n columns: \"#\", across: \"a\", \"show-control-chars\": \"c\", \"double-space\": \"d\", \"expand-tabs\": \"e\",\n \"form-feed\": \"f\", header: \"h\", \"output-tabs\": \"i\", \"join-lines\": \"J\", length: \"l\", merge: \"m\",\n \"number-lines\": \"n\", \"first-line-number\": \"N\", indent: \"o\", \"no-file-warnings\": \"r\", separator: \"s\",\n \"sep-string\": \"S\", \"omit-header\": \"t\", \"omit-pagination\": \"T\", \"show-nonprinting\": \"v\", width: \"w\", \"page-width\": \"W\",\n };\n let oldWidth = false, oldSeparator = false, oldOptions = false, stop = false;\n let columnDigits: string | undefined;\n let accumulating = false;\n for (let index = 0; index < args.length; index++) {\n const argument = args[index]!;\n budget.charge(argument.length);\n if (stop) { options.files.push(argument); continue; }\n if (argument === \"--\") { stop = true; continue; }\n if (argument === \"--help\" || argument === \"--version\") {\n options.information = argument === \"--help\" ? \"help\" : \"version\";\n return options;\n }\n if (!argument.startsWith(\"-\") || argument === \"-\") { accumulating = false; options.files.push(argument); continue; }\n const isLong = argument.startsWith(\"--\");\n let switches = argument.slice(1), attached: string | undefined;\n if (isLong) {\n const equal = argument.indexOf(\"=\");\n const name = argument.slice(2, equal < 0 ? undefined : equal);\n const candidates = Object.keys(long).filter(candidate => candidate.startsWith(name));\n if (!Object.hasOwn(long, name) && candidates.length > 1) throw new PrError(`option ${quote(argument)} is ambiguous; possibilities:${candidates.map(candidate => ` '--${candidate}'`).join(\"\")}`, true);\n switches = long[name] ?? (candidates.length === 1 ? long[candidates[0]!] : undefined) ?? \"\";\n if (!switches) throw new PrError(`unrecognized option ${quote(argument)}`, true);\n if (equal >= 0) attached = argument.slice(equal + 1);\n }\n for (let offset = 0; offset < switches.length; offset++) {\n const option = switches[offset]!;\n if (digit(option)) {\n columnDigits = (accumulating ? columnDigits ?? \"\" : \"\") + option;\n accumulating = true;\n continue;\n }\n accumulating = false;\n const required = \"#hlwWNo\".includes(option);\n const optional = \"nseiS\".includes(option);\n let value = attached;\n if (required || optional) {\n if (!isLong && offset + 1 < switches.length) value = switches.slice(offset + 1);\n if (required && value === undefined) {\n value = args[++index];\n if (value === undefined) throw new PrError(isLong ? `option ${quote(argument)} requires an argument` : `option requires an argument -- '${option}'`, true);\n }\n offset = switches.length;\n } else if (attached !== undefined) throw new PrError(`option ${quote(argument.slice(0, argument.indexOf(\"=\")))} doesn't allow an argument`, true);\n switch (option) {\n case \"#\": options.columns = integer(value!, 1, \"invalid number of columns\"); options.explicitColumns = true; columnDigits = undefined; break;\n case \"h\": options.header = value; break;\n case \"l\": options.length = integer(value!, 1, \"'-l PAGE_LENGTH' invalid number of lines\"); break;\n case \"w\": oldWidth = true; oldOptions = true; {\n const width = integer(value!, 1, \"'-w PAGE_WIDTH' invalid number of characters\");\n if (!options.truncate) options.width = width;\n } break;\n case \"W\": oldWidth = false; options.truncate = true; options.width = integer(value!, 1, \"'-W PAGE_WIDTH' invalid number of characters\"); break;\n case \"m\": options.merge = true; break;\n case \"a\": options.across = true; break;\n case \"b\": break;\n case \"d\": options.doubleSpace = true; break;\n case \"f\": case \"F\": options.formFeed = true; break;\n case \"J\": options.join = true; break;\n case \"N\": options.startNumber = integer(value!, -2147483648, \"'-N NUMBER' invalid starting line number\"); break;\n case \"o\": options.margin = integer(value!, 0, \"'-o MARGIN' invalid line offset\"); break;\n case \"r\": options.quiet = true; break;\n case \"s\": oldOptions = true; oldSeparator = true; if (!options.useSeparator && value !== undefined) options.separator = value; break;\n case \"S\": oldSeparator = false; options.useSeparator = true; options.separator = value ?? \"\"; break;\n case \"t\": options.extremities = false; options.keepFF = true; break;\n case \"T\": options.extremities = false; options.keepFF = false; break;\n case \"c\": options.control = true; break;\n case \"v\": options.octal = true; break;\n case \"n\": case \"e\": case \"i\": {\n if (option === \"n\") options.numbered = true;\n if (option === \"e\") options.expand = true;\n if (option === \"i\") options.tabify = true;\n if (value === undefined || !value.length) break;\n let character: string | undefined;\n if (!digit(value[0]!)) { character = value[0]; value = value.slice(1); }\n let count: number | undefined;\n if (value.length) {\n try { count = integer(value, 1, \"invalid number\"); }\n catch { throw new PrError(`'-${option}' extra characters or invalid number in the argument: ${quote(value)}${Number(value) > 2147483647 ? \": Value too large for defined data type\" : \"\"}`, true); }\n }\n if (option === \"n\") { options.numberSeparator = character ?? options.numberSeparator; options.digits = count ?? options.digits; }\n if (option === \"e\") { options.inputTab = character ?? options.inputTab; options.inputTabWidth = count ?? options.inputTabWidth; }\n if (option === \"i\") { options.outputTab = character ?? options.outputTab; options.outputTabWidth = count ?? options.outputTabWidth; }\n break;\n }\n default: throw new PrError(`invalid option -- '${option}'`, true);\n }\n }\n }\n if (columnDigits !== undefined) { options.columns = integer(columnDigits, 1, \"invalid number of columns\"); options.explicitColumns = true; }\n if (options.merge && options.explicitColumns) throw new PrError(\"cannot specify number of columns when printing in parallel\");\n if (options.merge && options.across) throw new PrError(\"cannot specify both printing across and printing in parallel\");\n if (oldOptions) {\n if (oldWidth) {\n if (options.merge || options.explicitColumns) { options.truncate = true; if (oldSeparator) options.useSeparator = true; }\n else options.join = true;\n } else if (!options.useSeparator && oldSeparator && (options.merge || options.explicitColumns)) {\n if (!options.truncate) { options.join = true; if (options.separator.length) options.useSeparator = true; }\n else options.useSeparator = true;\n }\n }\n const { limits } = budget;\n budget.check(options.files.length, limits.maxFiles, \"input files\");\n budget.check(options.merge ? Math.max(1, options.files.length) : options.columns, limits.maxColumns, \"columns\");\n budget.check(options.length, limits.maxPageLines, \"page lines\");\n for (const width of [options.width, options.margin, options.digits, options.inputTabWidth, options.outputTabWidth]) budget.check(width, limits.maxPageWidth, \"page width\");\n return options;\n}\n", "import { Budget, PrError, PrReadError } from \"./internal.js\";\nimport { Lifecycle, Reader } from \"./io.js\";\nimport type { Options } from \"./options.js\";\n\ninterface StoredLine { text: string; end: number }\ninterface Column {\n reader: Reader;\n status: \"open\" | \"held\" | \"feed\" | \"closed\";\n full: boolean;\n numbered: boolean;\n start: number;\n lines: StoredLine[];\n current: number;\n remaining: number;\n}\n\nexport class Formatter {\n private readonly budget: Budget;\n private readonly body: number;\n private readonly columnWidth: number;\n private readonly numberWidth: number;\n private readonly store: boolean;\n private columns: Column[] = [];\n private lineNumber: number;\n private pageNumber = 1;\n private inputPosition = 0;\n private outputPosition = 0;\n private spaces = 0;\n private separators = 0;\n private padding = 0;\n private vertical = false;\n private empty = true;\n private alignEmpty = false;\n private feedOnly = false;\n private printFeed = false;\n private needHeader = false;\n private storing = false;\n private stored = \"\";\n private rendered = \"\";\n private pageRetained = 0;\n\n constructor(private readonly options: Options, private readonly lifecycle: Lifecycle, count: number) {\n this.budget = lifecycle.budget;\n if (options.length <= 10) { options.extremities = false; options.keepFF = true; }\n this.body = Math.floor((options.extremities ? options.length - 10 : options.length) / (options.doubleSpace ? 2 : 1));\n if (this.body < 1) throw new PrError(\"page has no text lines\");\n options.columns = options.merge ? count : options.columns;\n if (options.columns > 1) {\n if (!options.useSeparator) { options.useSeparator = true; options.separator = options.join ? \"\\t\" : \" \"; }\n else if (!options.join && options.separator === \"\\t\") options.separator = \" \";\n options.truncate = true;\n options.tabify = true;\n }\n if (options.join) options.truncate = false;\n this.numberWidth = options.numberSeparator === \"\\t\" ? options.digits + 8 - options.digits % 8 : options.digits + 1;\n this.columnWidth = Math.trunc((options.width - (options.merge && options.numbered ? this.numberWidth : 0) - (options.columns - 1) * options.separator.length) / options.columns);\n if (this.columnWidth < 1) throw new PrError(\"page width too narrow\");\n this.store = options.columns > 1 && !options.merge && !options.across;\n this.lineNumber = options.startNumber;\n lifecycle.cleanup(async () => {\n this.budget.retain(-this.pageRetained - this.rendered.length * 2);\n this.pageRetained = 0;\n this.rendered = \"\";\n this.columns = [];\n });\n }\n\n private append(value: string): void {\n this.budget.charge(value.length);\n this.budget.retain(value.length * 2);\n this.rendered += value;\n }\n private repeat(value: string, count: number, construction = false): string {\n this.budget.admitString(value.length * count);\n if (construction) this.budget.charge(value.length * count);\n return value.repeat(count);\n }\n private async flush(): Promise<void> {\n const text = this.rendered;\n this.rendered = \"\";\n this.budget.retain(-text.length * 2);\n if (text) await this.lifecycle.write(text);\n }\n private white(): void {\n let position = this.outputPosition;\n const goal = position + this.spaces;\n this.budget.check(Math.max(0, this.spaces), this.budget.limits.maxBufferedBytes, \"horizontal padding\");\n while (goal - position > 1) {\n const next = position + this.options.outputTabWidth - position % this.options.outputTabWidth;\n if (next > goal) break;\n this.append(this.options.outputTab);\n position = next;\n }\n if (goal > position) this.append(this.repeat(\" \", goal - position));\n this.outputPosition = goal;\n this.spaces = 0;\n }\n private pad(position: number): void {\n if (this.options.tabify) this.spaces = position - this.outputPosition;\n else {\n if (position > this.outputPosition) this.append(this.repeat(\" \", position - this.outputPosition));\n this.outputPosition = position;\n }\n }\n private separator(): void {\n if (this.separators <= 0) { if (this.spaces > 0) this.white(); return; }\n let offset = 0;\n for (; this.separators > 0; this.separators--) {\n while (offset < this.options.separator.length) {\n const character = this.options.separator[offset++]!;\n if (character === \" \") this.spaces++;\n else { if (this.spaces > 0) this.white(); this.append(character); this.outputPosition++; }\n }\n if (this.spaces > 0) this.white();\n }\n }\n private character(character: string): void {\n if (this.storing) {\n this.budget.charge(character.length);\n this.budget.retain(character.length * 2);\n this.pageRetained += character.length * 2;\n this.stored += character;\n return;\n }\n if (this.options.tabify) {\n if (character === \" \") { this.spaces++; return; }\n if (this.spaces > 0) this.white();\n if (character >= \" \" && character <= \"~\") this.outputPosition++;\n else if (character === \"\\b\") this.outputPosition--;\n }\n this.append(character);\n }\n private number(column: Column): void {\n this.budget.admitString(this.options.digits);\n const text = String(this.lineNumber++).padStart(this.options.digits, \" \").slice(-this.options.digits);\n for (const character of text) this.character(character);\n if (this.columns.length > 1 && this.options.numberSeparator === \"\\t\") {\n for (let count = this.numberWidth - this.options.digits; count > 0; count--) this.character(\" \");\n } else {\n this.character(this.options.numberSeparator);\n if (this.columns.length === 1 && this.options.numberSeparator === \"\\t\") this.outputPosition += this.options.outputTabWidth - this.outputPosition % this.options.outputTabWidth;\n }\n if (this.options.truncate && !this.options.merge) this.inputPosition += this.numberWidth;\n this.budget.charge(column.numbered ? 1 : 0);\n }\n private align(column: Column): void {\n this.padding = column.start;\n if (this.options.separator.length < this.padding) { this.pad(this.padding - this.options.separator.length); this.padding = 0; }\n if (this.options.useSeparator) this.separator();\n if (column.numbered) this.number(column);\n }\n private clump(byte: number): string {\n const character = String.fromCharCode(byte);\n let width: number;\n let text = character;\n if (character === this.options.inputTab || byte === 9) {\n const tab = character === this.options.inputTab ? this.options.inputTabWidth : 8;\n width = tab - this.inputPosition % tab;\n if (this.options.expand) text = this.repeat(\" \", width, true);\n } else if (byte < 32 || byte > 126) {\n if (this.options.octal || this.options.control && byte >= 128) { text = `\\\\${byte.toString(8).padStart(3, \"0\")}`; width = 4; }\n else if (this.options.control) { text = `^${String.fromCharCode(byte ^ 64)}`; width = 2; }\n else width = byte === 8 ? -1 : 0;\n } else width = 1;\n if (width < 0 && this.inputPosition === 0) return \"\";\n this.inputPosition = Math.max(0, this.inputPosition + width);\n return text;\n }\n private close(column: Column): void {\n for (const current of this.options.merge ? [column] : this.columns) {\n current.status = \"closed\";\n if (!current.lines.length) current.remaining = 0;\n }\n }\n private hold(column: Column): void {\n for (const current of this.options.merge ? [column] : this.columns) current.status = this.store ? \"feed\" : \"held\";\n column.remaining = 0;\n }\n private async feed(column: Column): Promise<void> {\n const next = await column.reader.get();\n if (next !== 10) column.reader.unget(next);\n this.hold(column);\n }\n private async rest(column: Column): Promise<void> {\n for (;;) {\n const byte = await column.reader.get();\n if (byte === 10) return;\n if (byte === 12) { await this.feed(column); if (this.options.keepFF) this.printFeed = true; return; }\n if (byte < 0) { this.close(column); return; }\n }\n }\n private header(date: string, name: string): void {\n const { env } = this.budget.context;\n if (![undefined, \"\", \"UTC\", \"UTC0\", \":UTC\", \"GMT\", \"GMT0\"].includes(env.TZ)) throw new PrError(\"only UTC timezones are supported for headers\");\n const ctype = env.LC_ALL || env.LC_CTYPE || env.LANG || \"C\";\n if (ctype === \"C.UTF-8\" || ctype === \"C.utf8\") {\n for (const character of name) if (character.charCodeAt(0) >= 128) throw new PrError(\"non-ASCII headers require the C locale\");\n }\n this.outputPosition = 0;\n this.pad(this.options.margin);\n this.white();\n const width = (text: string): number => {\n this.budget.charge(text.length);\n let result = 0;\n for (const character of text) if (character >= \" \" && character !== \"\\x7f\") result++;\n return result;\n };\n const page = `Page ${this.pageNumber}`;\n const available = Math.max(0, this.options.width - width(date) - width(name) - width(page));\n const left = Math.floor(available / 2);\n this.budget.admitString(5 + this.options.margin + date.length + name.length + page.length + Math.max(1, left) + Math.max(1, available - left));\n this.append(`\\n\\n${this.repeat(\" \", this.options.margin)}${date}${this.repeat(\" \", Math.max(1, left))}${name}${this.repeat(\" \", Math.max(1, available - left))}${page}\\n\\n\\n`);\n this.needHeader = false;\n this.outputPosition = 0;\n }\n private async read(column: Column, date: string, name: string): Promise<void> {\n let byte = await column.reader.get();\n if (byte === 12 && column.full) { byte = await column.reader.get(); if (byte === 10) byte = await column.reader.get(); }\n column.full = false;\n if (byte === 12) {\n await this.feed(column);\n this.feedOnly = true;\n if (this.needHeader && !this.store) { this.vertical = true; this.header(date, name); }\n else if (this.options.keepFF) this.printFeed = true;\n return;\n }\n if (byte < 0) { this.close(column); return; }\n let clump = byte === 10 ? \"\" : this.clump(byte);\n if (this.options.truncate && this.inputPosition > this.columnWidth) { this.inputPosition = 0; await this.rest(column); return; }\n if (!this.storing) {\n this.vertical = true;\n if (this.needHeader && !this.store) this.header(date, name);\n if (this.options.merge && this.alignEmpty) {\n const pending = this.separators;\n this.separators = 0;\n for (let index = 0; index < pending; index++) { this.align(this.columns[index]!); this.separators++; }\n this.padding = column.start;\n this.spaces = this.options.truncate ? this.columnWidth : 0;\n this.alignEmpty = false;\n }\n if (this.options.separator.length < this.padding) { this.pad(this.padding - this.options.separator.length); this.padding = 0; }\n if (this.options.useSeparator) this.separator();\n }\n if (column.numbered) this.number(column);\n this.empty = false;\n if (byte === 10) return;\n for (const character of clump) this.character(character);\n for (;;) {\n byte = await column.reader.get();\n if (byte === 10) return;\n if (byte === 12) { await this.feed(column); if (this.options.keepFF) this.printFeed = true; return; }\n if (byte < 0) { this.close(column); return; }\n const previous = this.inputPosition;\n clump = this.clump(byte);\n if (this.options.truncate && this.inputPosition > this.columnWidth) { this.inputPosition = previous; await this.rest(column); return; }\n for (const character of clump) this.character(character);\n }\n }\n private ready(): boolean {\n return this.columns.some(column => column.status === \"open\" || column.status === \"feed\" || this.store && column.remaining > 0 && column.lines.length > 0);\n }\n private async storePage(date: string, name: string): Promise<void> {\n this.budget.retain(-this.pageRetained);\n this.pageRetained = 0;\n const lines: StoredLine[] = [];\n this.storing = true;\n for (const column of this.columns) { column.lines = []; column.current = 0; }\n try {\n for (const column of this.columns) {\n for (let count = 0; count < this.body && column.status === \"open\"; count++) {\n this.stored = \"\";\n this.inputPosition = 0;\n await this.read(column, date, name);\n if (column.status === \"open\" || this.stored.length) {\n this.budget.retain(32);\n this.pageRetained += 32;\n lines.push({ text: this.stored, end: this.inputPosition });\n }\n }\n }\n } finally { this.storing = false; }\n let start = 0;\n for (let index = 0; index < this.columns.length; index++) {\n const column = this.columns[index]!;\n const count = Math.floor(lines.length / this.columns.length) + (index < lines.length % this.columns.length ? 1 : 0);\n column.lines = lines.slice(start, start + count);\n column.remaining = count;\n start += count;\n }\n }\n private storedLine(column: Column, date: string, name: string): void {\n this.vertical = true;\n if (this.needHeader) this.header(date, name);\n if (column.status === \"feed\") {\n for (const current of this.columns) current.status = \"held\";\n if (this.columns[0]!.remaining <= 0) { if (!this.options.extremities) this.vertical = false; return; }\n }\n const line = column.lines[column.current++];\n if (!line) return;\n if (this.options.separator.length < this.padding) { this.pad(this.padding - this.options.separator.length); this.padding = 0; }\n if (this.options.useSeparator) this.separator();\n for (const character of line.text) this.character(character);\n if (this.spaces === 0) {\n this.outputPosition = column.start + line.end;\n if (column.start - this.options.separator.length === this.options.margin) this.outputPosition -= this.options.separator.length;\n }\n }\n async run(readers: Reader[], date: string, name: string): Promise<void> {\n const count = this.options.merge ? readers.length : this.options.columns;\n for (let index = 0; index < count; index++) {\n const start = index === 0 ? this.options.margin + this.options.separator.length : this.options.truncate\n ? this.options.margin + index * (this.columnWidth + this.options.separator.length) + (this.options.merge && this.options.numbered ? this.numberWidth : 0) : 0;\n this.columns.push({ reader: readers[this.options.merge ? index : 0]!, status: \"open\", full: false,\n numbered: this.options.numbered && (!this.options.merge || index === 0), start,\n lines: [], current: 0, remaining: 0 });\n }\n try { await this.pages(date, name); }\n catch (error) { if (error instanceof PrReadError) await this.flush(); throw error; }\n }\n private async pages(date: string, name: string): Promise<void> {\n for (;;) {\n if (this.store) await this.storePage(date, name);\n else for (const column of this.columns) column.remaining = column.status === \"open\" ? this.body : 0;\n if (!this.ready()) return;\n this.budget.page();\n this.needHeader = this.options.extremities;\n let printed = false;\n let left = this.body * (this.options.doubleSpace ? 2 : 1);\n while (left > 0 && this.ready()) {\n this.outputPosition = 0; this.spaces = 0; this.separators = 0; this.vertical = false; this.alignEmpty = false; this.empty = true;\n for (const column of this.columns) {\n this.budget.charge();\n this.inputPosition = 0;\n if (column.remaining > 0 || column.status === \"feed\") {\n this.feedOnly = false;\n this.padding = column.start;\n if (this.store) this.storedLine(column, date, name);\n else await this.read(column, date, name);\n printed ||= this.vertical;\n column.remaining--;\n if (column.remaining <= 0 && !this.ready()) break;\n if (this.options.merge && column.status !== \"open\") {\n if (this.empty) this.alignEmpty = true;\n else if (column.status === \"closed\" || this.feedOnly) this.align(column);\n }\n } else if (this.options.merge) { if (this.empty) this.alignEmpty = true; else this.align(column); }\n if (this.options.useSeparator) this.separators++;\n }\n if (this.vertical) { this.append(\"\\n\"); left--; }\n if (!this.ready() && !this.options.extremities) { await this.flush(); break; }\n if (this.options.doubleSpace && printed) { this.append(\"\\n\"); left--; }\n await this.flush();\n }\n if (left === 0) for (const column of this.columns) if (column.status === \"open\") column.full = true;\n if (printed && this.options.extremities) this.append(this.options.formFeed ? \"\\f\" : this.repeat(\"\\n\", left + 5));\n else if (this.options.keepFF && this.printFeed) { this.append(\"\\f\"); this.printFeed = false; }\n await this.flush();\n this.pageNumber++;\n for (const column of this.columns) if (column.status === \"held\") column.status = \"open\";\n }\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["value"]
7
- }