@poe-platform/safe-bash 0.1.78 → 0.1.80

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.
@@ -0,0 +1,17 @@
1
+ import type { ValueAllocation } from "../contracts/value.js";
2
+ export interface StringWork {
3
+ remaining: number;
4
+ signal: AbortSignal;
5
+ exhausted(): never;
6
+ allocation?: ValueAllocation;
7
+ steps?: number;
8
+ }
9
+ export declare function stringCheckpoint(work: StringWork, units?: number): Promise<void> | undefined;
10
+ export declare function nextCodePointOffset(value: string, offset: number): number;
11
+ export declare function previousCodePointOffset(value: string, offset: number): number;
12
+ export declare function scanString(value: string, work: StringWork, start?: number, end?: number, maximum?: number): Promise<{
13
+ end: number;
14
+ count: number;
15
+ bytes: number;
16
+ }>;
17
+ //# sourceMappingURL=string-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-operations.d.ts","sourceRoot":"","sources":["../../src/shell/string-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,IAAI,KAAK,CAAC;IACnB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAQvF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGzE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK7E;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,SAAI,EAAE,GAAG,SAAe,EAAE,OAAO,SAAW,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAe3K"}
@@ -0,0 +1,42 @@
1
+ import { yieldTurn } from "../contracts/yield.js";
2
+ export function stringCheckpoint(work, units = 1) {
3
+ work.signal.throwIfAborted();
4
+ work.remaining -= units;
5
+ if (work.remaining < 0)
6
+ work.exhausted();
7
+ work.steps = (work.steps ?? 0) + units;
8
+ if (work.steps < 128)
9
+ return undefined;
10
+ work.steps %= 128;
11
+ return yieldTurn(work.signal);
12
+ }
13
+ export function nextCodePointOffset(value, offset) {
14
+ if (offset >= value.length)
15
+ return value.length;
16
+ return offset + (value.codePointAt(offset) > 0xffff ? 2 : 1);
17
+ }
18
+ export function previousCodePointOffset(value, offset) {
19
+ if (offset <= 0)
20
+ return 0;
21
+ const last = value.charCodeAt(offset - 1);
22
+ const previous = value.charCodeAt(offset - 2);
23
+ return offset - (last >= 0xdc00 && last <= 0xdfff && previous >= 0xd800 && previous <= 0xdbff ? 2 : 1);
24
+ }
25
+ export async function scanString(value, work, start = 0, end = value.length, maximum = Infinity) {
26
+ let position = start;
27
+ let count = 0;
28
+ let bytes = 0;
29
+ while (position < end && count < maximum) {
30
+ const pending = stringCheckpoint(work);
31
+ if (pending)
32
+ await pending;
33
+ work.signal.throwIfAborted();
34
+ const point = position + 1 < end ? value.codePointAt(position) : value.charCodeAt(position);
35
+ position += point > 0xffff ? 2 : 1;
36
+ bytes += point <= 0x7f ? 1 : point <= 0x7ff ? 2 : point <= 0xffff ? 3 : 4;
37
+ count++;
38
+ }
39
+ work.signal.throwIfAborted();
40
+ return { end: position, count, bytes };
41
+ }
42
+ //# sourceMappingURL=string-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-operations.js","sourceRoot":"","sources":["../../src/shell/string-operations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAUlD,MAAM,UAAU,gBAAgB,CAAC,IAAgB,EAAE,KAAK,GAAG,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAC7B,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IACxB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;QAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;IACvC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;IAClB,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,MAAc;IAC/D,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IAChD,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,MAAc;IACnE,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,MAAM,GAAG,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAa,EAAE,IAAgB,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ;IACjH,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,QAAQ,GAAG,GAAG,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO;YAAE,MAAM,OAAO,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7F,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,KAAK,EAAE,CAAC;IACV,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAC7B,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@poe-platform/safe-bash",
3
- "version": "0.1.78",
3
+ "version": "0.1.80",
4
4
  "description": "Extensible virtual shell with pluggable filesystems and streaming commands",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -137,7 +137,7 @@
137
137
  "access": "public"
138
138
  },
139
139
  "dependencies": {
140
- "@poe-platform/safe-fs": "0.1.78",
140
+ "@poe-platform/safe-fs": "0.1.80",
141
141
  "@types/node": "^25.2.2"
142
142
  }
143
143
  }