@romandmitri/ai-patch 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -13
- package/dist/content/ContentFormat.d.ts +1 -0
- package/dist/content/ContentFormat.d.ts.map +1 -1
- package/dist/content/ContentFormat.js +5 -0
- package/dist/content/ContentFormat.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/operation/OperationType.d.ts +0 -1
- package/dist/operation/OperationType.d.ts.map +1 -1
- package/dist/operation/OperationType.js +0 -3
- package/dist/operation/OperationType.js.map +1 -1
- package/dist/operation/Operation_Delete.d.ts +1 -1
- package/dist/operation/Operation_Delete.d.ts.map +1 -1
- package/dist/operation/Operation_Delete.js +1 -1
- package/dist/operation/Operation_Delete.js.map +1 -1
- package/dist/operation/Operation_InsertAfter.d.ts +1 -1
- package/dist/operation/Operation_InsertAfter.d.ts.map +1 -1
- package/dist/operation/Operation_InsertAfter.js +1 -1
- package/dist/operation/Operation_InsertAfter.js.map +1 -1
- package/dist/operation/Operation_InsertBefore.d.ts +1 -1
- package/dist/operation/Operation_InsertBefore.d.ts.map +1 -1
- package/dist/operation/Operation_InsertBefore.js +1 -1
- package/dist/operation/Operation_InsertBefore.js.map +1 -1
- package/dist/operation/Operation_Replace.d.ts +1 -1
- package/dist/operation/Operation_Replace.d.ts.map +1 -1
- package/dist/operation/Operation_Replace.js +1 -1
- package/dist/operation/Operation_Replace.js.map +1 -1
- package/dist/patch/{Edit.d.ts → Patch.d.ts} +5 -5
- package/dist/patch/Patch.d.ts.map +1 -0
- package/dist/patch/Patch.js +2 -0
- package/dist/patch/Patch.js.map +1 -0
- package/dist/patch/PatchIndex.d.ts +2 -0
- package/dist/patch/PatchIndex.d.ts.map +1 -0
- package/dist/patch/PatchIndex.js +2 -0
- package/dist/patch/PatchIndex.js.map +1 -0
- package/dist/{patch → patcher}/Patcher.d.ts +1 -1
- package/dist/patcher/Patcher.d.ts.map +1 -0
- package/dist/patcher/Patcher.js.map +1 -0
- package/dist/{patch → patcher}/Patcher_Text.d.ts +3 -3
- package/dist/patcher/Patcher_Text.d.ts.map +1 -0
- package/dist/{patch → patcher}/Patcher_Text.js +28 -29
- package/dist/patcher/Patcher_Text.js.map +1 -0
- package/dist/{target/Target.d.ts → patchlet/Patchlet.d.ts} +8 -7
- package/dist/patchlet/Patchlet.d.ts.map +1 -0
- package/dist/patchlet/Patchlet.js +45 -0
- package/dist/patchlet/Patchlet.js.map +1 -0
- package/dist/patchlet/test/Patchlet.apply.test.d.ts +2 -0
- package/dist/patchlet/test/Patchlet.apply.test.d.ts.map +1 -0
- package/dist/{target/test/Target.apply.test.js → patchlet/test/Patchlet.apply.test.js} +10 -14
- package/dist/patchlet/test/Patchlet.apply.test.js.map +1 -0
- package/dist/patchlet/test/Patchlet.complex.test.d.ts +2 -0
- package/dist/patchlet/test/Patchlet.complex.test.d.ts.map +1 -0
- package/dist/{target/test/Target.complex.test.js → patchlet/test/Patchlet.complex.test.js} +9 -15
- package/dist/patchlet/test/Patchlet.complex.test.js.map +1 -0
- package/dist/patchlet/test/Patchlet.schema.test.d.ts +2 -0
- package/dist/patchlet/test/Patchlet.schema.test.d.ts.map +1 -0
- package/dist/{target/test/Target.schema.test.js → patchlet/test/Patchlet.schema.test.js} +9 -12
- package/dist/patchlet/test/Patchlet.schema.test.js.map +1 -0
- package/docs/development.md +1 -1
- package/package.json +2 -2
- package/dist/error/PatchError.d.ts +0 -19
- package/dist/error/PatchError.d.ts.map +0 -1
- package/dist/error/PatchError.js +0 -26
- package/dist/error/PatchError.js.map +0 -1
- package/dist/patch/Edit.d.ts.map +0 -1
- package/dist/patch/Edit.js +0 -2
- package/dist/patch/Edit.js.map +0 -1
- package/dist/patch/InputIndex.d.ts +0 -2
- package/dist/patch/InputIndex.d.ts.map +0 -1
- package/dist/patch/InputIndex.js +0 -2
- package/dist/patch/InputIndex.js.map +0 -1
- package/dist/patch/Patcher.d.ts.map +0 -1
- package/dist/patch/Patcher.js.map +0 -1
- package/dist/patch/Patcher_Text.d.ts.map +0 -1
- package/dist/patch/Patcher_Text.js.map +0 -1
- package/dist/target/Target.d.ts.map +0 -1
- package/dist/target/Target.js +0 -64
- package/dist/target/Target.js.map +0 -1
- package/dist/target/test/Target.apply.test.d.ts +0 -2
- package/dist/target/test/Target.apply.test.d.ts.map +0 -1
- package/dist/target/test/Target.apply.test.js.map +0 -1
- package/dist/target/test/Target.complex.test.d.ts +0 -2
- package/dist/target/test/Target.complex.test.d.ts.map +0 -1
- package/dist/target/test/Target.complex.test.js.map +0 -1
- package/dist/target/test/Target.errors.test.d.ts +0 -2
- package/dist/target/test/Target.errors.test.d.ts.map +0 -1
- package/dist/target/test/Target.errors.test.js +0 -108
- package/dist/target/test/Target.errors.test.js.map +0 -1
- package/dist/target/test/Target.schema.test.d.ts +0 -2
- package/dist/target/test/Target.schema.test.d.ts.map +0 -1
- package/dist/target/test/Target.schema.test.js.map +0 -1
- /package/dist/{patch → patcher}/Patcher.js +0 -0
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { ContentFormat, OperationType,
|
|
1
|
+
import { ContentFormat, OperationType, Patchlet } from "#src/index.js";
|
|
2
2
|
import assert from "node:assert/strict";
|
|
3
3
|
import { test } from "node:test";
|
|
4
|
-
function target(content) {
|
|
5
|
-
return new Target({ content, format: ContentFormat.Text });
|
|
6
|
-
}
|
|
7
4
|
test("apply supports all four operations", async (t) => {
|
|
8
5
|
const cases = [
|
|
9
6
|
{
|
|
@@ -48,13 +45,13 @@ test("apply supports all four operations", async (t) => {
|
|
|
48
45
|
];
|
|
49
46
|
for (const example of cases) {
|
|
50
47
|
await t.test(example.name, () => {
|
|
51
|
-
assert.equal(
|
|
48
|
+
assert.equal(Patchlet.from("alpha\nbeta\ngamma").patch([example.patch]), example.expected);
|
|
52
49
|
});
|
|
53
50
|
}
|
|
54
51
|
});
|
|
55
52
|
test("apply replaces multiline anchors exactly", () => {
|
|
56
53
|
const content = "# Heading\nold first\nold second\nfooter\n";
|
|
57
|
-
const result =
|
|
54
|
+
const result = Patchlet.from(content).patch([
|
|
58
55
|
{
|
|
59
56
|
operation: OperationType.Replace,
|
|
60
57
|
expectedLine: 2,
|
|
@@ -65,7 +62,7 @@ test("apply replaces multiline anchors exactly", () => {
|
|
|
65
62
|
assert.equal(result, "# Heading\nnew first\nnew second\nnew third\nfooter\n");
|
|
66
63
|
});
|
|
67
64
|
test("a batch uses original line coordinates after line-changing edits", () => {
|
|
68
|
-
const result =
|
|
65
|
+
const result = Patchlet.from("one\ntwo\nthree\nfour").patch([
|
|
69
66
|
{
|
|
70
67
|
operation: OperationType.InsertBefore,
|
|
71
68
|
expectedLine: 2,
|
|
@@ -81,7 +78,7 @@ test("a batch uses original line coordinates after line-changing edits", () => {
|
|
|
81
78
|
assert.equal(result, "one\nadded-a\nadded-b\ntwo\nthree\n");
|
|
82
79
|
});
|
|
83
80
|
test("CRLF anchors match LF patches and CRLF output is preserved", () => {
|
|
84
|
-
const result =
|
|
81
|
+
const result = Patchlet.from("one\r\ntwo\r\nthree").patch([
|
|
85
82
|
{
|
|
86
83
|
operation: OperationType.Replace,
|
|
87
84
|
expectedLine: 2,
|
|
@@ -92,7 +89,7 @@ test("CRLF anchors match LF patches and CRLF output is preserved", () => {
|
|
|
92
89
|
assert.equal(result, "one\r\nsecond\r\nthird\r\nfourth");
|
|
93
90
|
});
|
|
94
91
|
test("empty content and a final line without a newline can be patched", () => {
|
|
95
|
-
assert.equal(
|
|
92
|
+
assert.equal(Patchlet.from("").patch([
|
|
96
93
|
{
|
|
97
94
|
operation: OperationType.InsertBefore,
|
|
98
95
|
expectedLine: 1,
|
|
@@ -100,7 +97,7 @@ test("empty content and a final line without a newline can be patched", () => {
|
|
|
100
97
|
newText: "# Created\n",
|
|
101
98
|
},
|
|
102
99
|
]), "# Created\n");
|
|
103
|
-
assert.equal(
|
|
100
|
+
assert.equal(Patchlet.from("first\nlast").patch([
|
|
104
101
|
{
|
|
105
102
|
operation: OperationType.Replace,
|
|
106
103
|
expectedLine: 2,
|
|
@@ -110,8 +107,8 @@ test("empty content and a final line without a newline can be patched", () => {
|
|
|
110
107
|
]), "first\nfinal");
|
|
111
108
|
});
|
|
112
109
|
test("Target remains immutable after applying patches", () => {
|
|
113
|
-
const patchTarget =
|
|
114
|
-
const result = patchTarget.
|
|
110
|
+
const patchTarget = Patchlet.from("before");
|
|
111
|
+
const result = patchTarget.patch([
|
|
115
112
|
{
|
|
116
113
|
operation: OperationType.Replace,
|
|
117
114
|
expectedLine: 1,
|
|
@@ -122,6 +119,5 @@ test("Target remains immutable after applying patches", () => {
|
|
|
122
119
|
assert.equal(result, "after");
|
|
123
120
|
assert.equal(patchTarget.content, "before");
|
|
124
121
|
assert.equal(patchTarget.format, ContentFormat.Text);
|
|
125
|
-
assert.equal(Object.isFrozen(patchTarget), true);
|
|
126
122
|
});
|
|
127
|
-
//# sourceMappingURL=
|
|
123
|
+
//# sourceMappingURL=Patchlet.apply.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Patchlet.apply.test.js","sourceRoot":"","sources":["../../../src/patchlet/test/Patchlet.apply.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Patchlet.complex.test.d.ts","sourceRoot":"","sources":["../../../src/patchlet/test/Patchlet.complex.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OperationType, Patchlet } from "#src/index.js";
|
|
2
2
|
import assert from "node:assert/strict";
|
|
3
3
|
import { test } from "node:test";
|
|
4
4
|
const STARTING_PROMPT = `# Atlas Release Assistant
|
|
@@ -67,12 +67,6 @@ Return a concise checklist grouped by phase.
|
|
|
67
67
|
For each step include the owner, expected signal, and failure action.
|
|
68
68
|
Finish with an explicit GO or NO-GO recommendation.
|
|
69
69
|
`;
|
|
70
|
-
function target() {
|
|
71
|
-
return new Target({
|
|
72
|
-
content: STARTING_PROMPT,
|
|
73
|
-
format: ContentFormat.Text,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
70
|
test("applies a complex batch in deliberately non-document order", () => {
|
|
77
71
|
const patches = [
|
|
78
72
|
{
|
|
@@ -105,7 +99,7 @@ test("applies a complex batch in deliberately non-document order", () => {
|
|
|
105
99
|
newText: "Wait ten minutes before evaluating health signals.\nContinue when error rate remains below one percent.\nAbort when p95 latency exceeds 750 milliseconds.",
|
|
106
100
|
},
|
|
107
101
|
];
|
|
108
|
-
const result =
|
|
102
|
+
const result = Patchlet.from(STARTING_PROMPT).patch(patches);
|
|
109
103
|
assert.match(result, /Always state assumptions before presenting the deployment plan\./);
|
|
110
104
|
assert.match(result, /Wait ten minutes before evaluating health signals\./);
|
|
111
105
|
assert.match(result, /error rate remains below one percent/);
|
|
@@ -114,7 +108,7 @@ test("applies a complex batch in deliberately non-document order", () => {
|
|
|
114
108
|
assert.match(result, /Require sign-off from the regional service owner\./);
|
|
115
109
|
assert.doesNotMatch(result, /Do not retry the deployment/);
|
|
116
110
|
assert.match(result, /State the release identifier at the top/);
|
|
117
|
-
assert.equal(
|
|
111
|
+
assert.equal(Patchlet.from(STARTING_PROMPT).content, STARTING_PROMPT);
|
|
118
112
|
});
|
|
119
113
|
test("produces identical output when independent operations are reversed", () => {
|
|
120
114
|
const forward = [
|
|
@@ -137,15 +131,15 @@ test("produces identical output when independent operations are reversed", () =>
|
|
|
137
131
|
},
|
|
138
132
|
];
|
|
139
133
|
const reversed = [...forward].reverse();
|
|
140
|
-
const forwardResult =
|
|
141
|
-
const reversedResult =
|
|
134
|
+
const forwardResult = Patchlet.from(STARTING_PROMPT).patch(forward);
|
|
135
|
+
const reversedResult = Patchlet.from(STARTING_PROMPT).patch(reversed);
|
|
142
136
|
assert.equal(reversedResult, forwardResult);
|
|
143
137
|
assert.match(forwardResult, /^# Atlas Deployment Controller/);
|
|
144
138
|
assert.doesNotMatch(forwardResult, /rollback owner is on call/);
|
|
145
139
|
assert.match(forwardResult, /Publish a post-deployment summary/);
|
|
146
140
|
});
|
|
147
141
|
test("combines adjacent boundary insertions with multiline replacement", () => {
|
|
148
|
-
const result =
|
|
142
|
+
const result = Patchlet.from(STARTING_PROMPT).patch([
|
|
149
143
|
{
|
|
150
144
|
operation: OperationType.InsertBefore,
|
|
151
145
|
expectedLine: 34,
|
|
@@ -168,7 +162,7 @@ test("combines adjacent boundary insertions with multiline replacement", () => {
|
|
|
168
162
|
assert.match(result, /> Canary execution requires an active incident commander\.\n\n### Phase 2: Controlled canary\n\nCanary changes must be reversible without a rebuild\./);
|
|
169
163
|
});
|
|
170
164
|
test("deletes an early section while later patches retain original line numbers", () => {
|
|
171
|
-
const result =
|
|
165
|
+
const result = Patchlet.from(STARTING_PROMPT).patch([
|
|
172
166
|
{
|
|
173
167
|
operation: OperationType.Delete,
|
|
174
168
|
expectedLine: 13,
|
|
@@ -194,7 +188,7 @@ test("deletes an early section while later patches retain original line numbers"
|
|
|
194
188
|
assert.match(result, /## Rollback policy/);
|
|
195
189
|
});
|
|
196
190
|
test("replaces the complete response contract and edits distant safeguards", () => {
|
|
197
|
-
const result =
|
|
191
|
+
const result = Patchlet.from(STARTING_PROMPT).patch([
|
|
198
192
|
{
|
|
199
193
|
operation: OperationType.Replace,
|
|
200
194
|
expectedLine: 63,
|
|
@@ -214,4 +208,4 @@ test("replaces the complete response contract and edits distant safeguards", ()
|
|
|
214
208
|
assert.match(result, /list unresolved risks/);
|
|
215
209
|
assert.match(result, /GO, HOLD, or ROLLBACK/);
|
|
216
210
|
});
|
|
217
|
-
//# sourceMappingURL=
|
|
211
|
+
//# sourceMappingURL=Patchlet.complex.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Patchlet.complex.test.js","sourceRoot":"","sources":["../../../src/patchlet/test/Patchlet.complex.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Patchlet.schema.test.d.ts","sourceRoot":"","sources":["../../../src/patchlet/test/Patchlet.schema.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OperationType, Patchlet } from "#src/index.js";
|
|
2
2
|
import assert from "node:assert/strict";
|
|
3
3
|
import { test } from "node:test";
|
|
4
4
|
import { z } from "zod";
|
|
5
|
-
function target(content) {
|
|
6
|
-
return new Target({ content, format: ContentFormat.Text });
|
|
7
|
-
}
|
|
8
5
|
test("toSchema parses every operation variant", () => {
|
|
9
|
-
const schema =
|
|
6
|
+
const schema = Patchlet.from("content").toSchema();
|
|
10
7
|
const patches = [
|
|
11
8
|
{
|
|
12
9
|
operation: OperationType.Replace,
|
|
@@ -35,7 +32,7 @@ test("toSchema parses every operation variant", () => {
|
|
|
35
32
|
assert.deepEqual(schema.parse(patches), patches);
|
|
36
33
|
});
|
|
37
34
|
test("toSchema rejects malformed operation-specific fields", () => {
|
|
38
|
-
const schema =
|
|
35
|
+
const schema = Patchlet.from("content").toSchema();
|
|
39
36
|
assert.equal(schema.safeParse([
|
|
40
37
|
{
|
|
41
38
|
operation: OperationType.Replace,
|
|
@@ -61,7 +58,7 @@ test("toSchema rejects malformed operation-specific fields", () => {
|
|
|
61
58
|
assert.equal(schema.safeParse({ patches: [] }).success, false);
|
|
62
59
|
});
|
|
63
60
|
test("schema descriptions document target scope and exact atomic semantics", () => {
|
|
64
|
-
const schema =
|
|
61
|
+
const schema = Patchlet.from("content").toSchema();
|
|
65
62
|
const jsonSchema = JSON.stringify(z.toJSONSchema(schema));
|
|
66
63
|
assert.match(schema.description ?? "", /Atomically update this target only/);
|
|
67
64
|
assert.match(jsonSchema, /1-based line/);
|
|
@@ -71,8 +68,8 @@ test("schema descriptions document target scope and exact atomic semantics", ()
|
|
|
71
68
|
assert.match(jsonSchema, /original content coordinates/);
|
|
72
69
|
});
|
|
73
70
|
test("two target schemas compose as independent object properties", () => {
|
|
74
|
-
const documentTarget =
|
|
75
|
-
const summaryTarget =
|
|
71
|
+
const documentTarget = Patchlet.from("document");
|
|
72
|
+
const summaryTarget = Patchlet.from("summary");
|
|
76
73
|
const schema = z.object({
|
|
77
74
|
documentPatches: documentTarget.toSchema(),
|
|
78
75
|
summaryPatches: summaryTarget.toSchema(),
|
|
@@ -96,7 +93,7 @@ test("two target schemas compose as independent object properties", () => {
|
|
|
96
93
|
],
|
|
97
94
|
};
|
|
98
95
|
assert.deepEqual(schema.parse(value), value);
|
|
99
|
-
assert.equal(documentTarget.
|
|
100
|
-
assert.equal(summaryTarget.
|
|
96
|
+
assert.equal(documentTarget.patch(value.documentPatches), "updated document");
|
|
97
|
+
assert.equal(summaryTarget.patch(value.summaryPatches), "updated summary");
|
|
101
98
|
});
|
|
102
|
-
//# sourceMappingURL=
|
|
99
|
+
//# sourceMappingURL=Patchlet.schema.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Patchlet.schema.test.js","sourceRoot":"","sources":["../../../src/patchlet/test/Patchlet.schema.test.ts"],"names":[],"mappings":"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"}
|
package/docs/development.md
CHANGED
|
@@ -17,7 +17,7 @@ rebuilds `dist/` whenever a source file changes. Stop the watcher with Ctrl+C.
|
|
|
17
17
|
|
|
18
18
|
## Package Scripts
|
|
19
19
|
|
|
20
|
-
- `npm test`: runs
|
|
20
|
+
- `npm test`: runs `../src/patchlet/test/*.test.ts` with Node's test runner and `tsx`.
|
|
21
21
|
- `npm run typecheck`: checks source and test TypeScript configurations without emitting output.
|
|
22
22
|
- `npm run build`: removes `dist/` and compiles JavaScript, declarations, and maps.
|
|
23
23
|
- `npm run dev`: watches source files and rebuilds `dist/` after each change.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@romandmitri/ai-patch",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"author": "Roman Eidenzon <romandmitri@gmail.com> (https://www.romandmitri.com)",
|
|
5
5
|
"description": "Validated, atomic text patches for precise AI and LLM edits to large text prompts/documents.",
|
|
6
6
|
"repository": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"dev": "tsc --watch --preserveWatchOutput",
|
|
47
47
|
"format": "prettier --write .",
|
|
48
48
|
"format:check": "prettier --check .",
|
|
49
|
-
"test": "node --import tsx --test src/
|
|
49
|
+
"test": "node --import tsx --test src/patchlet/test/*.test.ts",
|
|
50
50
|
"typecheck": "tsc --noEmit && tsc --project tsconfig.test.json",
|
|
51
51
|
"prepublishOnly": "npm run typecheck && npm run build"
|
|
52
52
|
},
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export declare enum PatchErrorCode {
|
|
2
|
-
AnchorMismatch = "anchor_mismatch",
|
|
3
|
-
ConflictingInsertion = "conflicting_insertion",
|
|
4
|
-
InsertionInsideRange = "insertion_inside_range",
|
|
5
|
-
InvalidExpectedLine = "invalid_expected_line",
|
|
6
|
-
InvalidOperation = "invalid_operation",
|
|
7
|
-
InvalidNewText = "invalid_new_text",
|
|
8
|
-
InvalidOldText = "invalid_old_text",
|
|
9
|
-
InvalidPatch = "invalid_patch",
|
|
10
|
-
OverlappingRange = "overlapping_range"
|
|
11
|
-
}
|
|
12
|
-
export declare class PatchError extends Error {
|
|
13
|
-
readonly code: PatchErrorCode;
|
|
14
|
-
readonly patchIndex: number;
|
|
15
|
-
readonly name = "PatchError";
|
|
16
|
-
constructor(code: PatchErrorCode, patchIndex: number, message: string);
|
|
17
|
-
}
|
|
18
|
-
export declare const fail: (patchIndex: number, code: PatchErrorCode, message: string) => never;
|
|
19
|
-
//# sourceMappingURL=PatchError.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PatchError.d.ts","sourceRoot":"","sources":["../../src/error/PatchError.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACzB,cAAc,oBAAoB;IAClC,oBAAoB,0BAA0B;IAC9C,oBAAoB,2BAA2B;IAC/C,mBAAmB,0BAA0B;IAC7C,gBAAgB,sBAAsB;IACtC,cAAc,qBAAqB;IACnC,cAAc,qBAAqB;IACnC,YAAY,kBAAkB;IAC9B,gBAAgB,sBAAsB;CACtC;AAED,qBAAa,UAAW,SAAQ,KAAK;IAInC,QAAQ,CAAC,IAAI,EAAE,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM;IAJ5B,QAAQ,CAAC,IAAI,gBAAgB;IAE7B,YACU,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,MAAM,EAC3B,OAAO,EAAE,MAAM,EAGf;CACD;AAED,eAAO,MAAM,IAAI,eAAgB,MAAM,QAAQ,cAAc,WAAW,MAAM,KAAG,KAEhF,CAAC"}
|
package/dist/error/PatchError.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export var PatchErrorCode;
|
|
2
|
-
(function (PatchErrorCode) {
|
|
3
|
-
PatchErrorCode["AnchorMismatch"] = "anchor_mismatch";
|
|
4
|
-
PatchErrorCode["ConflictingInsertion"] = "conflicting_insertion";
|
|
5
|
-
PatchErrorCode["InsertionInsideRange"] = "insertion_inside_range";
|
|
6
|
-
PatchErrorCode["InvalidExpectedLine"] = "invalid_expected_line";
|
|
7
|
-
PatchErrorCode["InvalidOperation"] = "invalid_operation";
|
|
8
|
-
PatchErrorCode["InvalidNewText"] = "invalid_new_text";
|
|
9
|
-
PatchErrorCode["InvalidOldText"] = "invalid_old_text";
|
|
10
|
-
PatchErrorCode["InvalidPatch"] = "invalid_patch";
|
|
11
|
-
PatchErrorCode["OverlappingRange"] = "overlapping_range";
|
|
12
|
-
})(PatchErrorCode || (PatchErrorCode = {}));
|
|
13
|
-
export class PatchError extends Error {
|
|
14
|
-
code;
|
|
15
|
-
patchIndex;
|
|
16
|
-
name = "PatchError";
|
|
17
|
-
constructor(code, patchIndex, message) {
|
|
18
|
-
super(`Patch at index ${patchIndex}: ${message}`);
|
|
19
|
-
this.code = code;
|
|
20
|
-
this.patchIndex = patchIndex;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
export const fail = (patchIndex, code, message) => {
|
|
24
|
-
throw new PatchError(code, patchIndex, message);
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=PatchError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PatchError.js","sourceRoot":"","sources":["../../src/error/PatchError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAUX;AAVD,WAAY,cAAc;IACzB,oDAAkC,CAAA;IAClC,gEAA8C,CAAA;IAC9C,iEAA+C,CAAA;IAC/C,+DAA6C,CAAA;IAC7C,wDAAsC,CAAA;IACtC,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,gDAA8B,CAAA;IAC9B,wDAAsC,CAAA;AACvC,CAAC,EAVW,cAAc,KAAd,cAAc,QAUzB;AAED,MAAM,OAAO,UAAW,SAAQ,KAAK;IAI1B,IAAI;IACJ,UAAU;IAJX,IAAI,GAAG,YAAY,CAAC;IAE7B,YACU,IAAoB,EACpB,UAAkB,EAC3B,OAAe;QAEf,KAAK,CAAC,kBAAkB,UAAU,KAAK,OAAO,EAAE,CAAC,CAAC;oBAJzC,IAAI;0BACJ,UAAU;IAIpB,CAAC;CACD;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,UAAkB,EAAE,IAAoB,EAAE,OAAe,EAAS,EAAE;IACxF,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC"}
|
package/dist/patch/Edit.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Edit.d.ts","sourceRoot":"","sources":["../../src/patch/Edit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,WAAW,IAAI;IACpB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC9B"}
|
package/dist/patch/Edit.js
DELETED
package/dist/patch/Edit.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Edit.js","sourceRoot":"","sources":["../../src/patch/Edit.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputIndex.d.ts","sourceRoot":"","sources":["../../src/patch/InputIndex.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC"}
|
package/dist/patch/InputIndex.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputIndex.js","sourceRoot":"","sources":["../../src/patch/InputIndex.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Patcher.d.ts","sourceRoot":"","sources":["../../src/patch/Patcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,8BAAsB,OAAO;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,YAAY,OAAO,EAAE,OAAO,EAE3B;IAED,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC;CAC1D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Patcher.js","sourceRoot":"","sources":["../../src/patch/Patcher.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,OAAO;IACnB,OAAO,CAAU;IAE1B,YAAY,OAAgB;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;CAGD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Patcher_Text.d.ts","sourceRoot":"","sources":["../../src/patch/Patcher_Text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAI7D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,qBAAa,YAAa,SAAQ,OAAO;IACxC,KAAK,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAoB/C;IAED,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,UAAU;IAiDlB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;CA8BzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Patcher_Text.js","sourceRoot":"","sources":["../../src/patch/Patcher_Text.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Target.d.ts","sourceRoot":"","sources":["../../src/target/Target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAM7D,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAErD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAC/B;AAED,qBAAa,MAAM;IAClB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAE/B,YAAY,CAAC,EAAE,aAAa,EAQ3B;IAED,MAAM,CAAC,WAAW,YAAa,OAAO,WAAW,aAAa,YAK5D;IAEF,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAa/B;IAED,KAAK,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAU5C;IAED,OAAO,CAAC,cAAc;CAiBtB"}
|
package/dist/target/Target.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { ContentFormat } from "#src/content/ContentFormat.js";
|
|
2
|
-
import { fail, PatchErrorCode } from "#src/error/PatchError.js";
|
|
3
|
-
import { PatchOperation_Delete_Schema } from "#src/operation/Operation_Delete.js";
|
|
4
|
-
import { PatchOperation_InsertAfter_Schema } from "#src/operation/Operation_InsertAfter.js";
|
|
5
|
-
import { PatchOperation_InsertBefore_Schema } from "#src/operation/Operation_InsertBefore.js";
|
|
6
|
-
import { PatchOperation_Replace_Schema } from "#src/operation/Operation_Replace.js";
|
|
7
|
-
import { Patcher_Text } from "#src/patch/Patcher_Text.js";
|
|
8
|
-
import { z } from "zod";
|
|
9
|
-
export class Target {
|
|
10
|
-
content;
|
|
11
|
-
format;
|
|
12
|
-
constructor(p) {
|
|
13
|
-
if (p.format !== ContentFormat.Text) {
|
|
14
|
-
throw new RangeError(`Unsupported content format: ${p.format}`);
|
|
15
|
-
}
|
|
16
|
-
this.content = p.content;
|
|
17
|
-
this.format = p.format;
|
|
18
|
-
Object.freeze(this);
|
|
19
|
-
}
|
|
20
|
-
static fromContent = (content, format) => {
|
|
21
|
-
return new Target({
|
|
22
|
-
content: content,
|
|
23
|
-
format: format ?? ContentFormat.Text,
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
toSchema() {
|
|
27
|
-
const operationSchema = z.union([
|
|
28
|
-
PatchOperation_Replace_Schema,
|
|
29
|
-
PatchOperation_InsertBefore_Schema,
|
|
30
|
-
PatchOperation_InsertAfter_Schema,
|
|
31
|
-
PatchOperation_Delete_Schema,
|
|
32
|
-
]);
|
|
33
|
-
return z
|
|
34
|
-
.array(operationSchema)
|
|
35
|
-
.describe("Atomically update this target only. Every anchor and conflict is validated against the original content coordinates, and any invalid patch rejects the entire list.");
|
|
36
|
-
}
|
|
37
|
-
apply(patches) {
|
|
38
|
-
const parsed = this.toSchema().safeParse(patches);
|
|
39
|
-
if (!parsed.success) {
|
|
40
|
-
this.failValidation(parsed.error.issues[0]);
|
|
41
|
-
}
|
|
42
|
-
switch (this.format) {
|
|
43
|
-
case ContentFormat.Text:
|
|
44
|
-
return new Patcher_Text(this.content).apply(parsed.data);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
failValidation(issue) {
|
|
48
|
-
const inputIndex = typeof issue.path[0] === "number" ? issue.path[0] : 0;
|
|
49
|
-
const field = issue.path[1];
|
|
50
|
-
switch (field) {
|
|
51
|
-
case "operation":
|
|
52
|
-
return fail(inputIndex, PatchErrorCode.InvalidOperation, "has an unsupported operation");
|
|
53
|
-
case "expectedLine":
|
|
54
|
-
return fail(inputIndex, PatchErrorCode.InvalidExpectedLine, "expectedLine must be a positive 1-based line number");
|
|
55
|
-
case "oldText":
|
|
56
|
-
return fail(inputIndex, PatchErrorCode.InvalidOldText, "oldText must be a string");
|
|
57
|
-
case "newText":
|
|
58
|
-
return fail(inputIndex, PatchErrorCode.InvalidNewText, "newText must be a string");
|
|
59
|
-
default:
|
|
60
|
-
return fail(inputIndex, PatchErrorCode.InvalidPatch, "must match a supported patch operation");
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=Target.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Target.js","sourceRoot":"","sources":["../../src/target/Target.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Target.apply.test.d.ts","sourceRoot":"","sources":["../../../src/target/test/Target.apply.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Target.apply.test.js","sourceRoot":"","sources":["../../../src/target/test/Target.apply.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Target.complex.test.d.ts","sourceRoot":"","sources":["../../../src/target/test/Target.complex.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Target.complex.test.js","sourceRoot":"","sources":["../../../src/target/test/Target.complex.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Target.errors.test.d.ts","sourceRoot":"","sources":["../../../src/target/test/Target.errors.test.ts"],"names":[],"mappings":""}
|