@poe-platform/safe-bash 0.1.534 → 0.1.535

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 (92) hide show
  1. package/dist/safe-bash/chunks/chunk-5Y4AEZB2.js +517 -0
  2. package/dist/safe-bash/chunks/chunk-5Y4AEZB2.js.map +7 -0
  3. package/dist/safe-bash/chunks/{chunk-IKATLB4I.js → chunk-AVXYPKV7.js} +7 -5
  4. package/dist/safe-bash/chunks/{chunk-IKATLB4I.js.map → chunk-AVXYPKV7.js.map} +1 -1
  5. package/dist/safe-bash/chunks/{chunk-LUJYX5H5.js → chunk-L2GZSOSJ.js} +245 -747
  6. package/dist/safe-bash/chunks/chunk-L2GZSOSJ.js.map +7 -0
  7. package/dist/safe-bash/chunks/{chunk-54Z5EUCW.js → chunk-M7KZ7V4P.js} +2 -2
  8. package/dist/safe-bash/chunks/{chunk-UGMUVHIY.js → chunk-NVUC5B2R.js} +10 -188
  9. package/dist/safe-bash/chunks/{chunk-UGMUVHIY.js.map → chunk-NVUC5B2R.js.map} +3 -3
  10. package/dist/safe-bash/chunks/{chunk-2GV4WO7O.js → chunk-PPVCI2F2.js} +2 -2
  11. package/dist/safe-bash/chunks/chunk-QY2XHZTE.js +192 -0
  12. package/dist/safe-bash/chunks/chunk-QY2XHZTE.js.map +7 -0
  13. package/dist/safe-bash/chunks/{chunk-6MHYEBAJ.js → chunk-UZELUFGF.js} +8 -6
  14. package/dist/safe-bash/chunks/{chunk-6MHYEBAJ.js.map → chunk-UZELUFGF.js.map} +1 -1
  15. package/dist/safe-bash/chunks/chunk-XROAIPKA.js +12095 -0
  16. package/dist/safe-bash/chunks/chunk-XROAIPKA.js.map +7 -0
  17. package/dist/safe-bash/commands/csplit/command.d.ts +6 -0
  18. package/dist/safe-bash/commands/csplit/command.d.ts.map +1 -0
  19. package/dist/safe-bash/commands/csplit/command.js +78 -0
  20. package/dist/safe-bash/commands/csplit/command.js.map +1 -0
  21. package/dist/safe-bash/commands/csplit/index.browser.js +14 -0
  22. package/dist/safe-bash/commands/csplit/index.browser.js.map +7 -0
  23. package/dist/safe-bash/commands/csplit/index.d.ts +7 -0
  24. package/dist/safe-bash/commands/csplit/index.d.ts.map +1 -0
  25. package/dist/safe-bash/commands/csplit/index.js +21 -0
  26. package/dist/safe-bash/commands/csplit/index.js.map +1 -0
  27. package/dist/safe-bash/commands/csplit/internal.d.ts +61 -0
  28. package/dist/safe-bash/commands/csplit/internal.d.ts.map +1 -0
  29. package/dist/safe-bash/commands/csplit/internal.js +147 -0
  30. package/dist/safe-bash/commands/csplit/internal.js.map +1 -0
  31. package/dist/safe-bash/commands/csplit/io.d.ts +52 -0
  32. package/dist/safe-bash/commands/csplit/io.d.ts.map +1 -0
  33. package/dist/safe-bash/commands/csplit/io.js +330 -0
  34. package/dist/safe-bash/commands/csplit/io.js.map +1 -0
  35. package/dist/safe-bash/commands/csplit/options.d.ts +16 -0
  36. package/dist/safe-bash/commands/csplit/options.d.ts.map +1 -0
  37. package/dist/safe-bash/commands/csplit/options.js +178 -0
  38. package/dist/safe-bash/commands/csplit/options.js.map +1 -0
  39. package/dist/safe-bash/commands/csplit/patterns.d.ts +19 -0
  40. package/dist/safe-bash/commands/csplit/patterns.d.ts.map +1 -0
  41. package/dist/safe-bash/commands/csplit/patterns.js +92 -0
  42. package/dist/safe-bash/commands/csplit/patterns.js.map +1 -0
  43. package/dist/safe-bash/commands/csplit/quoting.d.ts +2 -0
  44. package/dist/safe-bash/commands/csplit/quoting.d.ts.map +1 -0
  45. package/dist/safe-bash/commands/csplit/quoting.js +138 -0
  46. package/dist/safe-bash/commands/csplit/quoting.js.map +1 -0
  47. package/dist/safe-bash/commands/csplit/split.d.ts +18 -0
  48. package/dist/safe-bash/commands/csplit/split.d.ts.map +1 -0
  49. package/dist/safe-bash/commands/csplit/split.js +122 -0
  50. package/dist/safe-bash/commands/csplit/split.js.map +1 -0
  51. package/dist/safe-bash/commands/expr/bre-engine.d.ts +4 -1
  52. package/dist/safe-bash/commands/expr/bre-engine.d.ts.map +1 -1
  53. package/dist/safe-bash/commands/expr/bre-engine.js +724 -13
  54. package/dist/safe-bash/commands/expr/bre-engine.js.map +1 -1
  55. package/dist/safe-bash/commands/expr/bre-worker.d.ts +2 -1
  56. package/dist/safe-bash/commands/expr/bre-worker.d.ts.map +1 -1
  57. package/dist/safe-bash/commands/expr/bre-worker.js +10 -1
  58. package/dist/safe-bash/commands/expr/bre-worker.js.map +1 -1
  59. package/dist/safe-bash/commands/network/index.browser.js +5 -3
  60. package/dist/safe-bash/commands/regex-execution/bounded-provider.d.ts.map +1 -1
  61. package/dist/safe-bash/commands/regex-execution/bounded-provider.js +16 -5
  62. package/dist/safe-bash/commands/regex-execution/bounded-provider.js.map +1 -1
  63. package/dist/safe-bash/commands/regex-execution/portable.d.ts +3 -1
  64. package/dist/safe-bash/commands/regex-execution/portable.d.ts.map +1 -1
  65. package/dist/safe-bash/commands/regex-execution/portable.js +17 -4
  66. package/dist/safe-bash/commands/regex-execution/portable.js.map +1 -1
  67. package/dist/safe-bash/commands/regex-execution/protocol.d.ts +31 -0
  68. package/dist/safe-bash/commands/regex-execution/protocol.d.ts.map +1 -1
  69. package/dist/safe-bash/commands/regex-execution/protocol.js +83 -0
  70. package/dist/safe-bash/commands/regex-execution/protocol.js.map +1 -1
  71. package/dist/safe-bash/commands/regex-execution/provider.d.ts +2 -2
  72. package/dist/safe-bash/commands/regex-execution/provider.d.ts.map +1 -1
  73. package/dist/safe-bash/commands/regex-execution/worker.js +16 -2
  74. package/dist/safe-bash/commands/regex-execution/worker.js.map +1 -1
  75. package/dist/safe-bash/commands/xml/index.browser.js +4 -3
  76. package/dist/safe-bash/commands/yq/index.browser.js +5 -4
  77. package/dist/safe-bash/core.browser.js +1918 -4077
  78. package/dist/safe-bash/core.browser.js.map +4 -4
  79. package/dist/safe-bash/core.d.ts +1 -0
  80. package/dist/safe-bash/core.d.ts.map +1 -1
  81. package/dist/safe-bash/core.js +1 -0
  82. package/dist/safe-bash/core.js.map +1 -1
  83. package/dist/safe-bash/plugins/composition.d.ts +3 -0
  84. package/dist/safe-bash/plugins/composition.d.ts.map +1 -1
  85. package/dist/safe-bash/plugins/composition.js +3 -1
  86. package/dist/safe-bash/plugins/composition.js.map +1 -1
  87. package/dist/safe-bash/plugins/index.js +1 -1
  88. package/dist/safe-bash/plugins/index.js.map +1 -1
  89. package/package.json +8 -2
  90. package/dist/safe-bash/chunks/chunk-LUJYX5H5.js.map +0 -7
  91. /package/dist/safe-bash/chunks/{chunk-54Z5EUCW.js.map → chunk-M7KZ7V4P.js.map} +0 -0
  92. /package/dist/safe-bash/chunks/{chunk-2GV4WO7O.js.map → chunk-PPVCI2F2.js.map} +0 -0
@@ -0,0 +1,6 @@
1
+ import { type CommandDefinition } from "../../contracts/index.js";
2
+ import { RegexExecutor } from "../regex-execution/portable.js";
3
+ import { type CsplitCommandsOptions } from "./internal.js";
4
+ export type { CsplitCommandsOptions, CsplitLimits } from "./internal.js";
5
+ export declare function createCsplitCommandWithExecutor(executor: RegexExecutor, options?: CsplitCommandsOptions): CommandDefinition;
6
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/csplit/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAoB,MAAM,gCAAgC,CAAC;AAEjF,OAAO,EAA2C,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAMpG,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEzE,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAE,qBAA0B,GAAG,iBAAiB,CAqD/H"}
@@ -0,0 +1,78 @@
1
+ import { FsError } from "../../contracts/index.js";
2
+ import { publicDiagnosticMessage } from "../../diagnostics.js";
3
+ import { RegexExecutor, withRegexSession } from "../regex-execution/portable.js";
4
+ import { ExprMatchError } from "../regex-execution/protocol.js";
5
+ import { Budget, CsplitError, fsDetail, settings } from "./internal.js";
6
+ import { Lifecycle, Lines, Outputs } from "./io.js";
7
+ import { parseOptions, suffixFormatter } from "./options.js";
8
+ import { Matcher, preparePatterns } from "./patterns.js";
9
+ import { Splitter } from "./split.js";
10
+ export function createCsplitCommandWithExecutor(executor, options = {}) {
11
+ const limits = settings(options);
12
+ return { name: "csplit", description: "Split files at bounded line and BRE boundaries", async execute(context) {
13
+ return withRegexSession(context, executor, async (session) => {
14
+ const budget = new Budget(context, limits);
15
+ const lifecycle = new Lifecycle(budget);
16
+ let output;
17
+ let failure;
18
+ let primary;
19
+ let exitCode = 0;
20
+ try {
21
+ const parsed = parseOptions(budget.arguments(), budget);
22
+ if (parsed.information) {
23
+ await budget.print(parsed.information === "version" ? "csplit (virtual-bash)\n" : "Usage: csplit [OPTION]... FILE PATTERN...\nOptions: -f PREFIX, -b SUFFIX, -k, -z, -n DIGITS, -s, --suppress-matched\nPatterns: INTEGER, /REGEXP/[OFFSET], %REGEXP%[OFFSET], {INTEGER}, {*}\n");
24
+ }
25
+ else {
26
+ const format = suffixFormatter(parsed, budget);
27
+ const input = new Lines(lifecycle);
28
+ try {
29
+ await input.open(parsed.operands[0]);
30
+ }
31
+ catch (error) {
32
+ if (error instanceof FsError)
33
+ throw new CsplitError(`cannot open ${budget.quote(parsed.operands[0])} for reading: ${fsDetail(error)}`);
34
+ throw error;
35
+ }
36
+ const matcher = new Matcher(session, budget);
37
+ const patterns = await preparePatterns(parsed.operands.slice(1), matcher);
38
+ output = new Outputs(lifecycle, parsed, format, input);
39
+ await new Splitter(input, output, matcher).run(patterns);
40
+ output.succeeded = true;
41
+ }
42
+ }
43
+ catch (error) {
44
+ primary = { reason: error };
45
+ failure = { reason: error };
46
+ if (output && error instanceof CsplitError && error.preserve)
47
+ output.preserve = true;
48
+ if (!context.signal.aborted) {
49
+ exitCode = 1;
50
+ try {
51
+ const message = error instanceof ExprMatchError ? error.message : error instanceof FsError ? fsDetail(error) : publicDiagnosticMessage(error, context.onInternalError);
52
+ await budget.print(`csplit: ${message}\n`, true);
53
+ if (error instanceof CsplitError && error.usage)
54
+ await budget.print("Try 'csplit --help' for more information.\n", true);
55
+ if (!(error instanceof CsplitError && error.preserve))
56
+ await output?.finish();
57
+ failure = undefined;
58
+ }
59
+ catch (reporting) {
60
+ failure = { reason: new AggregateError([error, reporting], "csplit failure reporting failed") };
61
+ }
62
+ }
63
+ }
64
+ try {
65
+ await lifecycle.close();
66
+ }
67
+ catch (cleanup) {
68
+ const previous = failure ?? primary;
69
+ failure = { reason: previous ? new AggregateError([previous.reason, cleanup], "csplit execution and cleanup failed") : cleanup };
70
+ }
71
+ context.signal.throwIfAborted();
72
+ if (failure)
73
+ throw failure.reason;
74
+ return { exitCode };
75
+ });
76
+ } };
77
+ }
78
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/csplit/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import {
2
+ createCsplitCommand,
3
+ createCsplitCommands,
4
+ csplitCommands
5
+ } from "../../chunks/chunk-XROAIPKA.js";
6
+ import "../../chunks/chunk-QY2XHZTE.js";
7
+ import "../../chunks/chunk-PPVCI2F2.js";
8
+ import "../../chunks/chunk-L2GZSOSJ.js";
9
+ export {
10
+ createCsplitCommand,
11
+ createCsplitCommands,
12
+ csplitCommands
13
+ };
14
+ //# 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 { CsplitCommandsOptions } from "./internal.js";
3
+ export type { CsplitCommandsOptions, CsplitLimits } from "./internal.js";
4
+ export declare function createCsplitCommand(options?: CsplitCommandsOptions): CommandDefinition;
5
+ export declare function createCsplitCommands(options?: CsplitCommandsOptions): readonly CommandDefinition[];
6
+ export declare function csplitCommands(options?: CsplitCommandsOptions): VirtualShellPlugin;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/csplit/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAItF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEzE,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,qBAA0B,GAAG,iBAAiB,CAG1F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,SAAS,iBAAiB,EAAE,CAEtG;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,kBAAkB,CAQtF"}
@@ -0,0 +1,21 @@
1
+ import { createBoundedRegexProvider } from "../regex-execution/bounded-provider.js";
2
+ import { RegexExecutor } from "../regex-execution/portable.js";
3
+ import { createCsplitCommandWithExecutor } from "./command.js";
4
+ export function createCsplitCommand(options = {}) {
5
+ const provider = options.regexExecutor === undefined ? createBoundedRegexProvider() : options.regexExecutor;
6
+ return createCsplitCommandWithExecutor(new RegexExecutor(provider, options.regex), options);
7
+ }
8
+ export function createCsplitCommands(options = {}) {
9
+ return [createCsplitCommand(options)];
10
+ }
11
+ export function csplitCommands(options = {}) {
12
+ const provider = options.regexExecutor === undefined ? createBoundedRegexProvider() : options.regexExecutor;
13
+ const executor = new RegexExecutor(provider, options.regex);
14
+ const command = createCsplitCommandWithExecutor(executor, options);
15
+ return { name: "csplit-commands", setup(host) {
16
+ if (!options.replace && host.commands.has("csplit"))
17
+ throw new Error("Command already registered: csplit");
18
+ host.commands.register(command, { replace: options.replace ?? false });
19
+ }, async dispose() { await executor.dispose(); } };
20
+ }
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/csplit/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAK/D,MAAM,UAAU,mBAAmB,CAAC,UAAiC,EAAE;IACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAC5G,OAAO,+BAA+B,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAAiC,EAAE;IACtE,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAiC,EAAE;IAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAC5G,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,+BAA+B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,IAAI;YAC1C,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC3G,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC,EAAE,KAAK,CAAC,OAAO,KAAK,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { FsError, type CommandContext } from "../../contracts/index.js";
2
+ import { PublicDiagnostic } from "../../diagnostics.js";
3
+ import type { RegexExecutionOptions } from "../regex-execution/portable.js";
4
+ import type { BoundedRegexProvider } from "../regex-execution/provider.js";
5
+ export interface CsplitLimits {
6
+ readonly maxArguments: number;
7
+ readonly maxArgumentBytes: number;
8
+ readonly maxPatterns: number;
9
+ readonly maxInputBytes: number;
10
+ readonly maxBufferedBytes: number;
11
+ readonly maxLines: number;
12
+ readonly maxLineBytes: number;
13
+ readonly maxFiles: number;
14
+ readonly maxFileAttempts: number;
15
+ readonly maxOutputBytes: number;
16
+ readonly maxDiagnosticBytes: number;
17
+ readonly maxPathBytes: number;
18
+ readonly maxPathDepth: number;
19
+ readonly maxWork: number;
20
+ readonly maxEmptyChunks: number;
21
+ readonly maxRegexPatternBytes: number;
22
+ readonly maxRegexNodes: number;
23
+ readonly maxRegexDepth: number;
24
+ readonly maxRegexStates: number;
25
+ readonly maxRegexAllocatedUnits: number;
26
+ }
27
+ export interface CsplitCommandsOptions {
28
+ readonly replace?: boolean;
29
+ readonly limits?: Partial<CsplitLimits>;
30
+ readonly regex?: RegexExecutionOptions;
31
+ readonly regexExecutor?: BoundedRegexProvider;
32
+ }
33
+ export declare class CsplitError extends PublicDiagnostic {
34
+ readonly usage: boolean;
35
+ readonly preserve: boolean;
36
+ constructor(message: string, usage?: boolean, preserve?: boolean);
37
+ }
38
+ export declare function settings(options: CsplitCommandsOptions): CsplitLimits;
39
+ export declare function raw(bytes: Uint8Array): string;
40
+ export declare function bytes(value: string): Uint8Array;
41
+ export declare function pathText(value: string): string;
42
+ export declare function missing(error: unknown): boolean;
43
+ export declare class Budget {
44
+ readonly context: CommandContext;
45
+ readonly limits: CsplitLimits;
46
+ private work;
47
+ private checkpoint;
48
+ private diagnostics;
49
+ private output;
50
+ constructor(context: CommandContext, limits: CsplitLimits);
51
+ quote(value: string): string;
52
+ check(value: number, maximum: number, label: string): void;
53
+ charge(amount?: number): void;
54
+ remaining(): number;
55
+ checkpointWork(): Promise<void>;
56
+ arguments(): string[];
57
+ fileBytes(amount: number): void;
58
+ print(value: string, stderr?: boolean): Promise<void>;
59
+ }
60
+ export declare function fsDetail(error: FsError): string;
61
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/commands/csplit/internal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ import { FsError, getCommandArguments, writeBytes } 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
+ import { exprMatchCeilings } from "../regex-execution/protocol.js";
6
+ import { quoteBytes } from "./quoting.js";
7
+ export class CsplitError extends PublicDiagnostic {
8
+ usage;
9
+ preserve;
10
+ constructor(message, usage = false, preserve = false) {
11
+ super(message);
12
+ this.usage = usage;
13
+ this.preserve = preserve;
14
+ }
15
+ }
16
+ export function settings(options) {
17
+ const limits = {
18
+ maxArguments: 4096, maxArgumentBytes: 65_536, maxPatterns: 1024,
19
+ maxInputBytes: 33_554_432, maxBufferedBytes: 67_108_864, maxLines: 262_144,
20
+ maxLineBytes: 1_048_576, maxFiles: 4096, maxFileAttempts: 8192,
21
+ maxOutputBytes: 33_554_432, maxDiagnosticBytes: 65_536,
22
+ maxPathBytes: 4096, maxPathDepth: 128, maxWork: 67_108_864, maxEmptyChunks: 4096,
23
+ maxRegexPatternBytes: 8192, maxRegexNodes: 4096, maxRegexDepth: 64,
24
+ maxRegexStates: 16_384, maxRegexAllocatedUnits: 1_000_000, ...options.limits,
25
+ };
26
+ for (const [name, value] of Object.entries(limits)) {
27
+ if (!Number.isSafeInteger(value) || value < 1)
28
+ throw new RangeError(`Invalid csplit limit: ${name}`);
29
+ }
30
+ if (limits.maxPathDepth > 4090)
31
+ throw new RangeError("csplit path depth exceeds cleanup ceiling");
32
+ for (const [name, maximum] of [
33
+ ["maxRegexPatternBytes", exprMatchCeilings.maxPatternBytes], ["maxRegexNodes", exprMatchCeilings.maxNodes],
34
+ ["maxRegexDepth", exprMatchCeilings.maxDepth], ["maxRegexStates", exprMatchCeilings.maxStates],
35
+ ["maxRegexAllocatedUnits", exprMatchCeilings.maxAllocatedUnits],
36
+ ])
37
+ if (limits[name] > maximum)
38
+ throw new RangeError(`csplit ${name} exceeds regex ceiling`);
39
+ return Object.freeze(limits);
40
+ }
41
+ export function raw(bytes) {
42
+ let result = "";
43
+ for (const byte of bytes)
44
+ result += String.fromCharCode(byte);
45
+ return result;
46
+ }
47
+ export function bytes(value) {
48
+ return Uint8Array.from(value, character => character.charCodeAt(0));
49
+ }
50
+ export function pathText(value) {
51
+ if (value.includes("\0"))
52
+ throw new CsplitError("NUL is not supported in paths");
53
+ try {
54
+ return new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(bytes(value));
55
+ }
56
+ catch {
57
+ throw new CsplitError("filesystem paths must be valid UTF-8");
58
+ }
59
+ }
60
+ export function missing(error) {
61
+ return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
62
+ }
63
+ export class Budget {
64
+ context;
65
+ limits;
66
+ work = 0;
67
+ checkpoint = 0;
68
+ diagnostics = 0;
69
+ output = 0;
70
+ constructor(context, limits) {
71
+ this.context = context;
72
+ this.limits = limits;
73
+ }
74
+ quote(value) {
75
+ const locale = this.context.env.LC_ALL || this.context.env.LC_CTYPE || this.context.env.LANG || "C";
76
+ this.charge(value.length);
77
+ this.check(value.length * 4 + 6, this.limits.maxDiagnosticBytes, "quoted diagnostic bytes");
78
+ return quoteBytes(value, locale === "C.UTF-8" || locale === "C.utf8");
79
+ }
80
+ check(value, maximum, label) {
81
+ if (!Number.isSafeInteger(value) || value < 0 || value > maximum)
82
+ throw new CsplitError(`${label} limit exceeded`);
83
+ }
84
+ charge(amount = 1) {
85
+ this.context.signal.throwIfAborted();
86
+ this.work += amount;
87
+ this.check(this.work, this.limits.maxWork, "work");
88
+ }
89
+ remaining() { return this.limits.maxWork - this.work; }
90
+ async checkpointWork() {
91
+ this.charge();
92
+ if (this.work - this.checkpoint >= 4096) {
93
+ this.checkpoint = this.work;
94
+ await yieldTurn(this.context.signal);
95
+ }
96
+ }
97
+ arguments() {
98
+ this.check(this.context.args.length, this.limits.maxArguments, "argument count");
99
+ let total = 0;
100
+ for (const argument of this.context.args) {
101
+ total += argument.length;
102
+ this.check(total, this.limits.maxArgumentBytes, "argument bytes");
103
+ for (let offset = 0; offset < argument.length; offset++) {
104
+ const unit = argument.charCodeAt(offset);
105
+ if (unit >= 0xd800 && unit <= 0xdbff) {
106
+ const next = argument.charCodeAt(++offset);
107
+ if (!(next >= 0xdc00 && next <= 0xdfff))
108
+ throw new CsplitError("arguments must contain well-formed Unicode");
109
+ }
110
+ else if (unit >= 0xdc00 && unit <= 0xdfff)
111
+ throw new CsplitError("arguments must contain well-formed Unicode");
112
+ }
113
+ }
114
+ const argumentsWithBytes = getCommandArguments(this.context);
115
+ total = 0;
116
+ const result = [];
117
+ for (const argument of argumentsWithBytes.values) {
118
+ total += shellValueByteLength(argument);
119
+ this.check(total, this.limits.maxArgumentBytes, "argument bytes");
120
+ const value = shellValueBytes(argument);
121
+ this.charge(value.length);
122
+ if (value.includes(0))
123
+ throw new CsplitError("NUL is not supported in arguments");
124
+ result.push(raw(value));
125
+ }
126
+ return result;
127
+ }
128
+ fileBytes(amount) {
129
+ this.output += amount;
130
+ this.check(this.output, this.limits.maxOutputBytes, "output bytes");
131
+ this.charge(amount);
132
+ }
133
+ async print(value, stderr = false) {
134
+ this.diagnostics += value.length;
135
+ this.check(this.diagnostics, this.limits.maxDiagnosticBytes, "count and diagnostic bytes");
136
+ await writeBytes(stderr ? this.context.stderr : this.context.stdout, bytes(value), this.context.signal);
137
+ }
138
+ }
139
+ export function fsDetail(error) {
140
+ const details = {
141
+ EACCES: "Permission denied", EPERM: "Operation not permitted", EIO: "Input/output error", ENOENT: "No such file or directory",
142
+ EISDIR: "Is a directory", ENOTDIR: "Not a directory", ELOOP: "Too many levels of symbolic links", EROFS: "Read-only file system",
143
+ ENOSPC: "No space left on device", ENAMETOOLONG: "File name too long", ENOTSUP: "Operation not supported", EEXIST: "File exists",
144
+ };
145
+ return details[error.code] ?? error.message;
146
+ }
147
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/commands/csplit/internal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { type FileStat } from "../../contracts/index.js";
2
+ import { Budget } from "./internal.js";
3
+ import type { Options } from "./options.js";
4
+ export declare function sameIdentity(first: FileStat, second: FileStat): boolean;
5
+ export declare class Lifecycle {
6
+ readonly budget: Budget;
7
+ private readonly pending;
8
+ private readonly cleanups;
9
+ private closing;
10
+ constructor(budget: Budget);
11
+ cleanup(action: () => Promise<void>): void;
12
+ assertOpen(): void;
13
+ operation<Value>(action: () => Promise<Value>): Promise<Value>;
14
+ close(): Promise<void>;
15
+ }
16
+ export declare class Lines {
17
+ readonly lifecycle: Lifecycle;
18
+ private readonly lines;
19
+ private partial;
20
+ private partialBytes;
21
+ private total;
22
+ private emptyChunks;
23
+ private iterator;
24
+ private ended;
25
+ private path;
26
+ identity: FileStat | undefined;
27
+ constructor(lifecycle: Lifecycle);
28
+ open(name: string): Promise<void>;
29
+ assertOutput(path: string, existing: FileStat | undefined): void;
30
+ private source;
31
+ private appendLine;
32
+ get(number: number): Promise<Uint8Array | undefined>;
33
+ }
34
+ export declare class Outputs {
35
+ readonly lifecycle: Lifecycle;
36
+ readonly options: Options;
37
+ readonly format: (index: number) => string;
38
+ readonly input: Lines;
39
+ private index;
40
+ private attempts;
41
+ private current;
42
+ preserve: boolean;
43
+ succeeded: boolean;
44
+ constructor(lifecycle: Lifecycle, options: Options, format: (index: number) => string, input: Lines);
45
+ private parents;
46
+ private checked;
47
+ private checkedParents;
48
+ open(): Promise<void>;
49
+ write(value: Uint8Array): Promise<void>;
50
+ finish(): Promise<void>;
51
+ }
52
+ //# sourceMappingURL=io.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../../src/commands/csplit/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzG,OAAO,EAAE,MAAM,EAA4C,MAAM,eAAe,CAAC;AACjF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAIvE;AAED,qBAAa,SAAS;IAIR,QAAQ,CAAC,MAAM,EAAE,MAAM;IAHnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,OAAO,CAA4B;gBACtB,MAAM,EAAE,MAAM;IACnC,OAAO,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI1C,UAAU,IAAI,IAAI;IAIZ,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAQpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAYvB;AAED,qBAAa,KAAK;IAUJ,QAAQ,CAAC,SAAS,EAAE,SAAS;IATzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAqB;IACjC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;gBACV,SAAS,EAAE,SAAS;IAGnC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;YAIlD,MAAM;IAUpB,OAAO,CAAC,UAAU;IAUZ,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CA2C3D;AAeD,qBAAa,OAAO;IAMN,QAAQ,CAAC,SAAS,EAAE,SAAS;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO;IAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK;IALvI,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,OAAO,CAAqB;IACpC,QAAQ,UAAS;IACjB,SAAS,UAAS;gBACG,SAAS,EAAE,SAAS,EAAW,OAAO,EAAE,OAAO,EAAW,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EAAW,KAAK,EAAE,KAAK;YACzH,OAAO;YAeP,OAAO;YAMP,cAAc;IAOtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoDrB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAa9B"}