@creeperhost/modlens-mcp 1.6.0 → 1.6.1

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 (89) hide show
  1. package/README.md +950 -938
  2. package/dist/cli.js +267 -267
  3. package/dist/generated/sqlite/internal/class.d.ts.map +1 -1
  4. package/dist/generated/sqlite/internal/class.js +4 -3
  5. package/dist/generated/sqlite/internal/class.js.map +1 -1
  6. package/dist/launcher.js +4 -1
  7. package/dist/launcher.js.map +1 -1
  8. package/dist/repositories/embeddings-sqlite.js +21 -21
  9. package/dist/repositories/embeddings.js +28 -28
  10. package/dist/repositories/mod.js +2 -2
  11. package/dist/search-adapter.js +51 -51
  12. package/dist/tools/compat-check.js +9 -9
  13. package/dist/tools/embed-registry.js +9 -9
  14. package/dist/tools/graphify.js +14 -14
  15. package/dist/tools/mc-fts.js +2 -2
  16. package/dist/tools/mixin-scan.d.ts +1 -1
  17. package/dist/tools/mixin-scan.js +16 -16
  18. package/dist/tools/version-diff.js +3 -3
  19. package/package.json +70 -62
  20. package/prisma/backends/schema.sqlite.prisma +215 -215
  21. package/prisma/schema.prisma +303 -303
  22. package/scripts/backup.mjs +151 -151
  23. package/scripts/check-atm10.mjs +27 -27
  24. package/scripts/check-sync.mjs +13 -13
  25. package/scripts/create-fts-index.mjs +50 -50
  26. package/scripts/enable-pgvector.mjs +90 -90
  27. package/scripts/enable-sqlite-vec.mjs +158 -158
  28. package/scripts/migrate-backend.mjs +188 -188
  29. package/scripts/migrate-embed-provenance.mjs +80 -80
  30. package/scripts/migrate-metadata-source.mjs +62 -62
  31. package/scripts/migrate-mod-source-files.mjs +67 -67
  32. package/scripts/post-update.mjs +77 -77
  33. package/scripts/verify-atm10.mjs +63 -63
  34. package/dist/access-flags.test.d.ts +0 -2
  35. package/dist/access-flags.test.d.ts.map +0 -1
  36. package/dist/access-flags.test.js +0 -189
  37. package/dist/access-flags.test.js.map +0 -1
  38. package/dist/fetch-utils.test.d.ts +0 -2
  39. package/dist/fetch-utils.test.d.ts.map +0 -1
  40. package/dist/fetch-utils.test.js +0 -133
  41. package/dist/fetch-utils.test.js.map +0 -1
  42. package/dist/mappings.test.d.ts +0 -2
  43. package/dist/mappings.test.d.ts.map +0 -1
  44. package/dist/mappings.test.js +0 -161
  45. package/dist/mappings.test.js.map +0 -1
  46. package/dist/processor.test.d.ts +0 -2
  47. package/dist/processor.test.d.ts.map +0 -1
  48. package/dist/processor.test.js +0 -629
  49. package/dist/processor.test.js.map +0 -1
  50. package/dist/search.test.d.ts +0 -2
  51. package/dist/search.test.d.ts.map +0 -1
  52. package/dist/search.test.js +0 -71
  53. package/dist/search.test.js.map +0 -1
  54. package/dist/security.test.d.ts +0 -2
  55. package/dist/security.test.d.ts.map +0 -1
  56. package/dist/security.test.js +0 -687
  57. package/dist/security.test.js.map +0 -1
  58. package/dist/tools/compat-check.test.d.ts +0 -2
  59. package/dist/tools/compat-check.test.d.ts.map +0 -1
  60. package/dist/tools/compat-check.test.js +0 -179
  61. package/dist/tools/compat-check.test.js.map +0 -1
  62. package/dist/tools/diagnostics.test.d.ts +0 -2
  63. package/dist/tools/diagnostics.test.d.ts.map +0 -1
  64. package/dist/tools/diagnostics.test.js +0 -168
  65. package/dist/tools/diagnostics.test.js.map +0 -1
  66. package/dist/tools/graphify.test.d.ts +0 -2
  67. package/dist/tools/graphify.test.d.ts.map +0 -1
  68. package/dist/tools/graphify.test.js +0 -39
  69. package/dist/tools/graphify.test.js.map +0 -1
  70. package/dist/tools/ingest.test.d.ts +0 -2
  71. package/dist/tools/ingest.test.d.ts.map +0 -1
  72. package/dist/tools/ingest.test.js +0 -340
  73. package/dist/tools/ingest.test.js.map +0 -1
  74. package/dist/tools/mod-tags.test.d.ts +0 -2
  75. package/dist/tools/mod-tags.test.d.ts.map +0 -1
  76. package/dist/tools/mod-tags.test.js +0 -75
  77. package/dist/tools/mod-tags.test.js.map +0 -1
  78. package/dist/tools/packtools.test.d.ts +0 -2
  79. package/dist/tools/packtools.test.d.ts.map +0 -1
  80. package/dist/tools/packtools.test.js +0 -99
  81. package/dist/tools/packtools.test.js.map +0 -1
  82. package/dist/tools/version-diff.test.d.ts +0 -2
  83. package/dist/tools/version-diff.test.d.ts.map +0 -1
  84. package/dist/tools/version-diff.test.js +0 -102
  85. package/dist/tools/version-diff.test.js.map +0 -1
  86. package/dist/validate.test.d.ts +0 -2
  87. package/dist/validate.test.d.ts.map +0 -1
  88. package/dist/validate.test.js +0 -73
  89. package/dist/validate.test.js.map +0 -1
@@ -1,133 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
2
- import { fetchWithRetry, DOWNLOAD_OPTS, safeJson } from "./fetch-utils.js";
3
- function mockFetch(...responses) {
4
- let call = 0;
5
- return vi.fn().mockImplementation(() => {
6
- const r = responses[Math.min(call++, responses.length - 1)];
7
- return Promise.resolve({
8
- ok: r.ok,
9
- status: r.status,
10
- text: async () => r.body ?? "",
11
- });
12
- });
13
- }
14
- beforeEach(() => {
15
- vi.useFakeTimers();
16
- });
17
- afterEach(() => {
18
- vi.useRealTimers();
19
- vi.unstubAllGlobals();
20
- });
21
- // ── Happy path ────────────────────────────────────────────────────────────────
22
- describe("fetchWithRetry — happy path", () => {
23
- it("returns a 200 response immediately", async () => {
24
- vi.stubGlobal("fetch", mockFetch({ status: 200, ok: true }));
25
- const res = await fetchWithRetry("https://example.com/api");
26
- expect(res.status).toBe(200);
27
- expect(fetch.mock.calls).toHaveLength(1);
28
- });
29
- });
30
- // ── 4xx pass-through (no retry) ───────────────────────────────────────────────
31
- describe("fetchWithRetry — 4xx pass-through (no retry)", () => {
32
- it("returns 404 without retrying", async () => {
33
- const fakeFetch = mockFetch({ status: 404, ok: false });
34
- vi.stubGlobal("fetch", fakeFetch);
35
- const res = await fetchWithRetry("https://example.com/api");
36
- expect(res.status).toBe(404);
37
- expect(fakeFetch.mock.calls).toHaveLength(1);
38
- });
39
- it("returns 401 without retrying", async () => {
40
- const fakeFetch = mockFetch({ status: 401, ok: false });
41
- vi.stubGlobal("fetch", fakeFetch);
42
- const res = await fetchWithRetry("https://example.com/api");
43
- expect(res.status).toBe(401);
44
- expect(fakeFetch.mock.calls).toHaveLength(1);
45
- });
46
- });
47
- // ── 5xx retry ────────────────────────────────────────────────────────────────
48
- describe("fetchWithRetry — 5xx retry", () => {
49
- it("retries up to MAX_RETRIES times on 5xx then returns last response", async () => {
50
- const fakeFetch = mockFetch({ status: 503, ok: false }, { status: 503, ok: false }, { status: 503, ok: false }, { status: 200, ok: true });
51
- vi.stubGlobal("fetch", fakeFetch);
52
- const promise = fetchWithRetry("https://example.com/api", undefined, { retries: 3, backoffMs: 100 });
53
- await vi.runAllTimersAsync();
54
- const res = await promise;
55
- expect(res.status).toBe(200);
56
- expect(fakeFetch.mock.calls).toHaveLength(4);
57
- });
58
- it("returns last 5xx response after all retries exhausted", async () => {
59
- const fakeFetch = mockFetch({ status: 503, ok: false }, { status: 503, ok: false }, { status: 503, ok: false }, { status: 503, ok: false });
60
- vi.stubGlobal("fetch", fakeFetch);
61
- const promise = fetchWithRetry("https://example.com/api", undefined, { retries: 3, backoffMs: 100 });
62
- await vi.runAllTimersAsync();
63
- const res = await promise;
64
- expect(res.status).toBe(503);
65
- expect(fakeFetch.mock.calls).toHaveLength(4);
66
- });
67
- it("succeeds on second attempt after one 5xx", async () => {
68
- const fakeFetch = mockFetch({ status: 500, ok: false }, { status: 200, ok: true });
69
- vi.stubGlobal("fetch", fakeFetch);
70
- const promise = fetchWithRetry("https://example.com/api", undefined, { retries: 2, backoffMs: 10 });
71
- await vi.runAllTimersAsync();
72
- const res = await promise;
73
- expect(res.status).toBe(200);
74
- expect(fakeFetch.mock.calls).toHaveLength(2);
75
- });
76
- });
77
- // ── Network error retry ───────────────────────────────────────────────────────
78
- describe("fetchWithRetry — network errors", () => {
79
- it("retries on network error (fetch rejects)", async () => {
80
- let call = 0;
81
- const fakeFetch = vi.fn().mockImplementation(() => {
82
- if (++call < 3)
83
- return Promise.reject(new Error("ECONNREFUSED"));
84
- return Promise.resolve({ ok: true, status: 200, text: async () => "" });
85
- });
86
- vi.stubGlobal("fetch", fakeFetch);
87
- const promise = fetchWithRetry("https://example.com/api", undefined, { retries: 3, backoffMs: 10 });
88
- await vi.runAllTimersAsync();
89
- const res = await promise;
90
- expect(res.status).toBe(200);
91
- expect(fakeFetch.mock.calls.length).toBeGreaterThanOrEqual(3);
92
- });
93
- it("throws the last network error after all retries exhausted", async () => {
94
- // retries: 0 avoids backoff timers — single fetch, immediate rejection
95
- const fakeFetch = vi.fn().mockImplementation(() => Promise.reject(new Error("ECONNREFUSED")));
96
- vi.stubGlobal("fetch", fakeFetch);
97
- await expect(fetchWithRetry("https://example.com/api", undefined, { retries: 0 })).rejects.toThrow("ECONNREFUSED");
98
- });
99
- });
100
- // ── Options ───────────────────────────────────────────────────────────────────
101
- describe("fetchWithRetry — options", () => {
102
- it("respects custom retries=0 — returns 5xx without retrying", async () => {
103
- const fakeFetch = mockFetch({ status: 500, ok: false }, { status: 200, ok: true });
104
- vi.stubGlobal("fetch", fakeFetch);
105
- const promise = fetchWithRetry("https://example.com/api", undefined, { retries: 0 });
106
- await vi.runAllTimersAsync();
107
- const res = await promise;
108
- // With retries=0, the 5xx is returned immediately (no second attempt)
109
- expect(res.status).toBe(500);
110
- expect(fakeFetch.mock.calls).toHaveLength(1);
111
- });
112
- it("DOWNLOAD_OPTS has increased timeout and fewer retries", () => {
113
- expect(DOWNLOAD_OPTS.timeoutMs).toBeGreaterThan(10_000);
114
- expect(DOWNLOAD_OPTS.retries).toBeLessThan(4);
115
- });
116
- });
117
- // ── safeJson ──────────────────────────────────────────────────────────────────
118
- describe("safeJson", () => {
119
- it("parses valid JSON from a Response", async () => {
120
- const res = new Response(JSON.stringify({ foo: 42 }));
121
- const data = await safeJson(res, "test");
122
- expect(data).toEqual({ foo: 42 });
123
- });
124
- it("throws with a clear message on HTML response", async () => {
125
- const res = new Response("<html><body>Error</body></html>");
126
- await expect(safeJson(res, "test API")).rejects.toThrow(/test API: expected JSON but got: <html>/);
127
- });
128
- it("throws with a clear message on empty response", async () => {
129
- const res = new Response("");
130
- await expect(safeJson(res, "test")).rejects.toThrow(/expected JSON but got:/);
131
- });
132
- });
133
- //# sourceMappingURL=fetch-utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-utils.test.js","sourceRoot":"","sources":["../src/fetch-utils.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=mappings.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mappings.test.d.ts","sourceRoot":"","sources":["../src/mappings.test.ts"],"names":[],"mappings":""}
@@ -1,161 +0,0 @@
1
- import { describe, it, expect, beforeAll } from "vitest";
2
- import { parseTinyV2, lookupInIndex, hasSrgMappings, hasRetroMcpMappings } from "./mappings.js";
3
- const FIXTURE_TINY = [
4
- "tiny\t2\t0\tofficial\tintermediary",
5
- "c\tnet/minecraft/world/World\tnet/minecraft/class_234",
6
- "\tf\tI\tfield_1234\tfield_1234_",
7
- "\tm\t()V\tmethod_1234\tmethod_1234_",
8
- "c\tnet/minecraft/entity/Entity\tnet/minecraft/class_100",
9
- "\tm\t(Ljava/lang/String;)Z\tmethod_5678\tmethod_5678_",
10
- ].join("\n");
11
- // ── parseTinyV2 ────────────────────────────────────────────────────────────
12
- describe("parseTinyV2", () => {
13
- it("reads namespace headers from first line", () => {
14
- const idx = parseTinyV2(FIXTURE_TINY);
15
- expect(idx.ns[0]).toBe("official");
16
- expect(idx.ns[1]).toBe("intermediary");
17
- });
18
- it("maps official class name to intermediary name", () => {
19
- const idx = parseTinyV2(FIXTURE_TINY);
20
- expect(idx.classes.get("net/minecraft/world/World")).toBe("net/minecraft/class_234");
21
- expect(idx.classes.get("net/minecraft/entity/Entity")).toBe("net/minecraft/class_100");
22
- });
23
- it("maps method key 'name+descriptor' within the correct class", () => {
24
- const idx = parseTinyV2(FIXTURE_TINY);
25
- const worldMethods = idx.methods.get("net/minecraft/world/World");
26
- expect(worldMethods).toBeDefined();
27
- expect(worldMethods.get("method_1234()V")).toBe("method_1234_");
28
- });
29
- it("maps field key 'name:descriptor' within the correct class", () => {
30
- const idx = parseTinyV2(FIXTURE_TINY);
31
- const worldFields = idx.fields.get("net/minecraft/world/World");
32
- expect(worldFields).toBeDefined();
33
- expect(worldFields.get("field_1234:I")).toBe("field_1234_");
34
- });
35
- it("handles class with no fields or methods", () => {
36
- const tiny = "tiny\t2\t0\tofficial\tintermediary\nc\tnet/minecraft/A\tnet/minecraft/class_1";
37
- const idx = parseTinyV2(tiny);
38
- expect(idx.classes.get("net/minecraft/A")).toBe("net/minecraft/class_1");
39
- expect(idx.methods.get("net/minecraft/A")).toBeDefined();
40
- expect(idx.methods.get("net/minecraft/A").size).toBe(0);
41
- });
42
- it("ignores comment lines starting with #", () => {
43
- const tiny = [
44
- "tiny\t2\t0\tofficial\tintermediary",
45
- "# this is a comment",
46
- "c\tnet/minecraft/A\tnet/minecraft/class_1",
47
- ].join("\n");
48
- const idx = parseTinyV2(tiny);
49
- expect(idx.classes.size).toBe(1);
50
- });
51
- });
52
- // ── lookupInIndex — forward ────────────────────────────────────────────────
53
- describe("lookupInIndex — forward (official → intermediary)", () => {
54
- let idx;
55
- beforeAll(() => { idx = parseTinyV2(FIXTURE_TINY); });
56
- it("finds a class by official name", () => {
57
- const r = lookupInIndex(idx, "net/minecraft/world/World", false);
58
- expect(r.found).toBe(true);
59
- expect(r.target).toBe("net/minecraft/class_234");
60
- expect(r.type).toBe("class");
61
- });
62
- it("finds a method by name only (no descriptor)", () => {
63
- const r = lookupInIndex(idx, "method_1234", false);
64
- expect(r.found).toBe(true);
65
- expect(r.target).toBe("method_1234_");
66
- expect(r.type).toBe("method");
67
- });
68
- it("finds a field by name", () => {
69
- const r = lookupInIndex(idx, "field_1234", false);
70
- expect(r.found).toBe(true);
71
- expect(r.target).toBe("field_1234_");
72
- expect(r.type).toBe("field");
73
- });
74
- it("returns found=false for unknown symbol", () => {
75
- const r = lookupInIndex(idx, "nonexistent_method", false);
76
- expect(r.found).toBe(false);
77
- });
78
- });
79
- // ── lookupInIndex — reverse ────────────────────────────────────────────────
80
- describe("lookupInIndex — reverse (intermediary → official)", () => {
81
- let idx;
82
- beforeAll(() => { idx = parseTinyV2(FIXTURE_TINY); });
83
- it("reverse-finds a class by intermediary name", () => {
84
- const r = lookupInIndex(idx, "net/minecraft/class_234", true);
85
- expect(r.found).toBe(true);
86
- expect(r.target).toBe("net/minecraft/world/World");
87
- expect(r.type).toBe("class");
88
- });
89
- it("reverse-finds a method by intermediary name", () => {
90
- const r = lookupInIndex(idx, "method_1234_", true);
91
- expect(r.found).toBe(true);
92
- expect(r.type).toBe("method");
93
- });
94
- it("reverse-finds a field by intermediary name", () => {
95
- const r = lookupInIndex(idx, "field_1234_", true);
96
- expect(r.found).toBe(true);
97
- expect(r.type).toBe("field");
98
- });
99
- it("returns found=false for unknown reverse symbol", () => {
100
- const r = lookupInIndex(idx, "class_9999_unknown", true);
101
- expect(r.found).toBe(false);
102
- });
103
- });
104
- // ── hasSrgMappings ─────────────────────────────────────────────────────────
105
- describe("hasSrgMappings", () => {
106
- it("returns true for known SRG versions", () => {
107
- expect(hasSrgMappings("1.7.10")).toBe(true);
108
- expect(hasSrgMappings("1.8")).toBe(true);
109
- expect(hasSrgMappings("1.8.9")).toBe(true);
110
- expect(hasSrgMappings("1.12.2")).toBe(true);
111
- expect(hasSrgMappings("1.10.2")).toBe(true);
112
- expect(hasSrgMappings("1.9.2")).toBe(true);
113
- expect(hasSrgMappings("1.10")).toBe(true);
114
- expect(hasSrgMappings("1.11.1")).toBe(true);
115
- expect(hasSrgMappings("1.13")).toBe(true);
116
- expect(hasSrgMappings("1.14.4")).toBe(true);
117
- expect(hasSrgMappings("1.15")).toBe(true);
118
- });
119
- it("returns false for post-MCP and newer versions", () => {
120
- expect(hasSrgMappings("1.15.1")).toBe(false);
121
- expect(hasSrgMappings("1.16.5")).toBe(false);
122
- expect(hasSrgMappings("1.20.1")).toBe(false);
123
- expect(hasSrgMappings("26.1.2")).toBe(false);
124
- });
125
- it("returns false for versions without SRG", () => {
126
- expect(hasSrgMappings("1.6.4")).toBe(false);
127
- expect(hasSrgMappings("1.5.2")).toBe(false);
128
- });
129
- });
130
- // ── hasRetroMcpMappings ────────────────────────────────────────────────────
131
- describe("hasRetroMcpMappings", () => {
132
- it("returns true for known RetroMCP release versions", () => {
133
- expect(hasRetroMcpMappings("1.5.2")).toBe(true);
134
- expect(hasRetroMcpMappings("1.2.5")).toBe(true);
135
- expect(hasRetroMcpMappings("1.1")).toBe(true);
136
- expect(hasRetroMcpMappings("1.0")).toBe(true);
137
- });
138
- it("returns true for known RetroMCP beta versions", () => {
139
- expect(hasRetroMcpMappings("b1.8.1")).toBe(true);
140
- expect(hasRetroMcpMappings("b1.7.3")).toBe(true);
141
- expect(hasRetroMcpMappings("b1.6")).toBe(true);
142
- });
143
- it("returns true for known RetroMCP alpha versions", () => {
144
- expect(hasRetroMcpMappings("a1.2.6")).toBe(true);
145
- expect(hasRetroMcpMappings("a1.0.4")).toBe(true);
146
- });
147
- it("returns false for versions without RetroMCP mappings", () => {
148
- expect(hasRetroMcpMappings("1.7.10")).toBe(false);
149
- expect(hasRetroMcpMappings("1.6.4")).toBe(false);
150
- expect(hasRetroMcpMappings("1.20.1")).toBe(false);
151
- expect(hasRetroMcpMappings("26.1.2")).toBe(false);
152
- });
153
- it("does not overlap with SRG versions", () => {
154
- // No version should be in both sets
155
- const retroVersions = ["1.5.2", "1.2.5", "1.1", "1.0", "b1.8.1", "a1.2.6"];
156
- for (const v of retroVersions) {
157
- expect(hasSrgMappings(v)).toBe(false);
158
- }
159
- });
160
- });
161
- //# sourceMappingURL=mappings.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mappings.test.js","sourceRoot":"","sources":["../src/mappings.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEhG,MAAM,YAAY,GAAG;IACjB,oCAAoC;IACpC,uDAAuD;IACvD,iCAAiC;IACjC,qCAAqC;IACrC,yDAAyD;IACzD,uDAAuD;CAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,8EAA8E;AAE9E,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACrF,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QAClE,MAAM,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAClE,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,CAAC,YAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACjE,MAAM,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAChE,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,CAAC,WAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,MAAM,IAAI,GAAG,+EAA+E,CAAC;QAC7F,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACzE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG;YACT,oCAAoC;YACpC,qBAAqB;YACrB,2CAA2C;SAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAE9E,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC/D,IAAI,GAAmC,CAAC;IACxC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,2BAA2B,EAAE,KAAK,CAAC,CAAC;QACjE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAE9E,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC/D,IAAI,GAAmC,CAAC;IACxC,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACnD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAE9E,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAE9E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,oCAAoC;QACpC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC5B,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=processor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processor.test.d.ts","sourceRoot":"","sources":["../src/processor.test.ts"],"names":[],"mappings":""}