@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.
Files changed (94) hide show
  1. package/README.md +8 -13
  2. package/dist/content/ContentFormat.d.ts +1 -0
  3. package/dist/content/ContentFormat.d.ts.map +1 -1
  4. package/dist/content/ContentFormat.js +5 -0
  5. package/dist/content/ContentFormat.js.map +1 -1
  6. package/dist/index.d.ts +2 -3
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/operation/OperationType.d.ts +0 -1
  11. package/dist/operation/OperationType.d.ts.map +1 -1
  12. package/dist/operation/OperationType.js +0 -3
  13. package/dist/operation/OperationType.js.map +1 -1
  14. package/dist/operation/Operation_Delete.d.ts +1 -1
  15. package/dist/operation/Operation_Delete.d.ts.map +1 -1
  16. package/dist/operation/Operation_Delete.js +1 -1
  17. package/dist/operation/Operation_Delete.js.map +1 -1
  18. package/dist/operation/Operation_InsertAfter.d.ts +1 -1
  19. package/dist/operation/Operation_InsertAfter.d.ts.map +1 -1
  20. package/dist/operation/Operation_InsertAfter.js +1 -1
  21. package/dist/operation/Operation_InsertAfter.js.map +1 -1
  22. package/dist/operation/Operation_InsertBefore.d.ts +1 -1
  23. package/dist/operation/Operation_InsertBefore.d.ts.map +1 -1
  24. package/dist/operation/Operation_InsertBefore.js +1 -1
  25. package/dist/operation/Operation_InsertBefore.js.map +1 -1
  26. package/dist/operation/Operation_Replace.d.ts +1 -1
  27. package/dist/operation/Operation_Replace.d.ts.map +1 -1
  28. package/dist/operation/Operation_Replace.js +1 -1
  29. package/dist/operation/Operation_Replace.js.map +1 -1
  30. package/dist/patch/{Edit.d.ts → Patch.d.ts} +5 -5
  31. package/dist/patch/Patch.d.ts.map +1 -0
  32. package/dist/patch/Patch.js +2 -0
  33. package/dist/patch/Patch.js.map +1 -0
  34. package/dist/patch/PatchIndex.d.ts +2 -0
  35. package/dist/patch/PatchIndex.d.ts.map +1 -0
  36. package/dist/patch/PatchIndex.js +2 -0
  37. package/dist/patch/PatchIndex.js.map +1 -0
  38. package/dist/{patch → patcher}/Patcher.d.ts +1 -1
  39. package/dist/patcher/Patcher.d.ts.map +1 -0
  40. package/dist/patcher/Patcher.js.map +1 -0
  41. package/dist/{patch → patcher}/Patcher_Text.d.ts +3 -3
  42. package/dist/patcher/Patcher_Text.d.ts.map +1 -0
  43. package/dist/{patch → patcher}/Patcher_Text.js +28 -29
  44. package/dist/patcher/Patcher_Text.js.map +1 -0
  45. package/dist/{target/Target.d.ts → patchlet/Patchlet.d.ts} +8 -7
  46. package/dist/patchlet/Patchlet.d.ts.map +1 -0
  47. package/dist/patchlet/Patchlet.js +45 -0
  48. package/dist/patchlet/Patchlet.js.map +1 -0
  49. package/dist/patchlet/test/Patchlet.apply.test.d.ts +2 -0
  50. package/dist/patchlet/test/Patchlet.apply.test.d.ts.map +1 -0
  51. package/dist/{target/test/Target.apply.test.js → patchlet/test/Patchlet.apply.test.js} +10 -14
  52. package/dist/patchlet/test/Patchlet.apply.test.js.map +1 -0
  53. package/dist/patchlet/test/Patchlet.complex.test.d.ts +2 -0
  54. package/dist/patchlet/test/Patchlet.complex.test.d.ts.map +1 -0
  55. package/dist/{target/test/Target.complex.test.js → patchlet/test/Patchlet.complex.test.js} +9 -15
  56. package/dist/patchlet/test/Patchlet.complex.test.js.map +1 -0
  57. package/dist/patchlet/test/Patchlet.schema.test.d.ts +2 -0
  58. package/dist/patchlet/test/Patchlet.schema.test.d.ts.map +1 -0
  59. package/dist/{target/test/Target.schema.test.js → patchlet/test/Patchlet.schema.test.js} +9 -12
  60. package/dist/patchlet/test/Patchlet.schema.test.js.map +1 -0
  61. package/docs/development.md +1 -1
  62. package/package.json +2 -2
  63. package/dist/error/PatchError.d.ts +0 -19
  64. package/dist/error/PatchError.d.ts.map +0 -1
  65. package/dist/error/PatchError.js +0 -26
  66. package/dist/error/PatchError.js.map +0 -1
  67. package/dist/patch/Edit.d.ts.map +0 -1
  68. package/dist/patch/Edit.js +0 -2
  69. package/dist/patch/Edit.js.map +0 -1
  70. package/dist/patch/InputIndex.d.ts +0 -2
  71. package/dist/patch/InputIndex.d.ts.map +0 -1
  72. package/dist/patch/InputIndex.js +0 -2
  73. package/dist/patch/InputIndex.js.map +0 -1
  74. package/dist/patch/Patcher.d.ts.map +0 -1
  75. package/dist/patch/Patcher.js.map +0 -1
  76. package/dist/patch/Patcher_Text.d.ts.map +0 -1
  77. package/dist/patch/Patcher_Text.js.map +0 -1
  78. package/dist/target/Target.d.ts.map +0 -1
  79. package/dist/target/Target.js +0 -64
  80. package/dist/target/Target.js.map +0 -1
  81. package/dist/target/test/Target.apply.test.d.ts +0 -2
  82. package/dist/target/test/Target.apply.test.d.ts.map +0 -1
  83. package/dist/target/test/Target.apply.test.js.map +0 -1
  84. package/dist/target/test/Target.complex.test.d.ts +0 -2
  85. package/dist/target/test/Target.complex.test.d.ts.map +0 -1
  86. package/dist/target/test/Target.complex.test.js.map +0 -1
  87. package/dist/target/test/Target.errors.test.d.ts +0 -2
  88. package/dist/target/test/Target.errors.test.d.ts.map +0 -1
  89. package/dist/target/test/Target.errors.test.js +0 -108
  90. package/dist/target/test/Target.errors.test.js.map +0 -1
  91. package/dist/target/test/Target.schema.test.d.ts +0 -2
  92. package/dist/target/test/Target.schema.test.d.ts.map +0 -1
  93. package/dist/target/test/Target.schema.test.js.map +0 -1
  94. /package/dist/{patch → patcher}/Patcher.js +0 -0
@@ -1,9 +1,6 @@
1
- import { ContentFormat, OperationType, Target } from "#src/index.js";
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(target("alpha\nbeta\ngamma").apply([example.patch]), example.expected);
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 = target(content).apply([
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 = target("one\ntwo\nthree\nfour").apply([
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 = target("one\r\ntwo\r\nthree").apply([
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(target("").apply([
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(target("first\nlast").apply([
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 = target("before");
114
- const result = patchTarget.apply([
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=Target.apply.test.js.map
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Patchlet.complex.test.d.ts.map
@@ -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 { ContentFormat, OperationType, Target } from "#src/index.js";
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 = target().apply(patches);
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(target().content, STARTING_PROMPT);
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 = target().apply(forward);
141
- const reversedResult = target().apply(reversed);
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 = target().apply([
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 = target().apply([
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 = target().apply([
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=Target.complex.test.js.map
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Patchlet.schema.test.d.ts.map
@@ -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 { ContentFormat, OperationType, Target } from "#src/index.js";
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 = target("content").toSchema();
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 = target("content").toSchema();
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 = target("content").toSchema();
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 = target("document");
75
- const summaryTarget = target("summary");
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.apply(value.documentPatches), "updated document");
100
- assert.equal(summaryTarget.apply(value.summaryPatches), "updated summary");
96
+ assert.equal(documentTarget.patch(value.documentPatches), "updated document");
97
+ assert.equal(summaryTarget.patch(value.summaryPatches), "updated summary");
101
98
  });
102
- //# sourceMappingURL=Target.schema.test.js.map
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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"}
@@ -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 `src/target/test/*.test.ts` with Node's test runner and `tsx`.
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.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/target/test/*.test.ts",
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"}
@@ -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"}
@@ -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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Edit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Edit.js","sourceRoot":"","sources":["../../src/patch/Edit.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export type InputIndex = number;
2
- //# sourceMappingURL=InputIndex.d.ts.map
@@ -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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=InputIndex.js.map
@@ -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"}
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Target.apply.test.d.ts.map
@@ -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":"AAAA,OAAO,EAAE,aAAa,EAAkB,aAAa,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,SAAS,MAAM,CAAC,OAAe;IAC9B,OAAO,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,IAAI,CAAC,oCAAoC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACtD,MAAM,KAAK,GAIN;QACJ;YACC,IAAI,EAAE,SAAS;YACf,KAAK,EAAE;gBACN,SAAS,EAAE,aAAa,CAAC,OAAO;gBAChC,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,QAAQ;aACjB;YACD,QAAQ,EAAE,sBAAsB;SAChC;QACD;YACC,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE;gBACN,SAAS,EAAE,aAAa,CAAC,YAAY;gBACrC,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,UAAU;aACnB;YACD,QAAQ,EAAE,4BAA4B;SACtC;QACD;YACC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE;gBACN,SAAS,EAAE,aAAa,CAAC,WAAW;gBACpC,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,SAAS;aAClB;YACD,QAAQ,EAAE,2BAA2B;SACrC;QACD;YACC,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE;gBACN,SAAS,EAAE,aAAa,CAAC,MAAM;gBAC/B,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,QAAQ;aACjB;YACD,QAAQ,EAAE,cAAc;SACxB;KACD,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;YAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACrD,MAAM,OAAO,GAAG,4CAA4C,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;QACpC;YACC,SAAS,EAAE,aAAa,CAAC,OAAO;YAChC,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,uBAAuB;YAChC,OAAO,EAAE,kCAAkC;SAC3C;KACD,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,uDAAuD,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC;QACpD;YACC,SAAS,EAAE,aAAa,CAAC,YAAY;YACrC,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,oBAAoB;SAC7B;QACD;YACC,SAAS,EAAE,aAAa,CAAC,MAAM;YAC/B,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,MAAM;SACf;KACD,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACvE,MAAM,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC;QAClD;YACC,SAAS,EAAE,aAAa,CAAC,OAAO;YAChC,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,uBAAuB;SAChC;KACD,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC5E,MAAM,CAAC,KAAK,CACX,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QAChB;YACC,SAAS,EAAE,aAAa,CAAC,YAAY;YACrC,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,aAAa;SACtB;KACD,CAAC,EACF,aAAa,CACb,CAAC;IAEF,MAAM,CAAC,KAAK,CACX,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QAC3B;YACC,SAAS,EAAE,aAAa,CAAC,OAAO;YAChC,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,OAAO;SAChB;KACD,CAAC,EACF,cAAc,CACd,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC;YACC,SAAS,EAAE,aAAa,CAAC,OAAO;YAChC,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,OAAO;SAChB;KACD,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Target.complex.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Target.errors.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Target.errors.test.d.ts","sourceRoot":"","sources":["../../../src/target/test/Target.errors.test.ts"],"names":[],"mappings":""}