@ddtcorex/dsh-maestro-review 0.1.0 → 0.1.2
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/lib/config-store.d.ts +2 -0
- package/lib/config-store.d.ts.map +1 -1
- package/lib/config-store.js.map +1 -1
- package/lib/events.d.ts.map +1 -1
- package/lib/events.js.map +1 -1
- package/lib/git-worktree-tool.d.ts +11 -0
- package/lib/git-worktree-tool.d.ts.map +1 -0
- package/lib/git-worktree-tool.js +162 -0
- package/lib/git-worktree-tool.js.map +1 -0
- package/lib/gitlab-client.d.ts.map +1 -1
- package/lib/gitlab-client.js.map +1 -1
- package/lib/gitlab-webhook.d.ts.map +1 -1
- package/lib/gitlab-webhook.js.map +1 -1
- package/lib/govard-audit-lint-tool.d.ts +14 -0
- package/lib/govard-audit-lint-tool.d.ts.map +1 -0
- package/lib/govard-audit-lint-tool.js +177 -0
- package/lib/govard-audit-lint-tool.js.map +1 -0
- package/lib/govard-tool.d.ts.map +1 -1
- package/lib/govard-tool.js.map +1 -1
- package/lib/hyva-csp-scan-tool.d.ts +11 -0
- package/lib/hyva-csp-scan-tool.d.ts.map +1 -0
- package/lib/hyva-csp-scan-tool.js +193 -0
- package/lib/hyva-csp-scan-tool.js.map +1 -0
- package/lib/hyva-theme-inspect-tool.d.ts +10 -0
- package/lib/hyva-theme-inspect-tool.d.ts.map +1 -0
- package/lib/hyva-theme-inspect-tool.js +299 -0
- package/lib/hyva-theme-inspect-tool.js.map +1 -0
- package/lib/incremental.d.ts +28 -0
- package/lib/incremental.d.ts.map +1 -0
- package/lib/incremental.js +60 -0
- package/lib/incremental.js.map +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/layout-xml-tool.d.ts +11 -0
- package/lib/layout-xml-tool.d.ts.map +1 -0
- package/lib/layout-xml-tool.js +240 -0
- package/lib/layout-xml-tool.js.map +1 -0
- package/lib/module-check-tool.d.ts +11 -0
- package/lib/module-check-tool.d.ts.map +1 -0
- package/lib/module-check-tool.js +304 -0
- package/lib/module-check-tool.js.map +1 -0
- package/lib/notify.d.ts.map +1 -1
- package/lib/notify.js.map +1 -1
- package/lib/orchestrator.d.ts +2 -0
- package/lib/orchestrator.d.ts.map +1 -1
- package/lib/orchestrator.js +220 -88
- package/lib/orchestrator.js.map +1 -1
- package/lib/perf-log-stats-tool.d.ts +13 -0
- package/lib/perf-log-stats-tool.d.ts.map +1 -0
- package/lib/perf-log-stats-tool.js +245 -0
- package/lib/perf-log-stats-tool.js.map +1 -0
- package/lib/phtml-escape-scan-tool.d.ts +11 -0
- package/lib/phtml-escape-scan-tool.d.ts.map +1 -0
- package/lib/phtml-escape-scan-tool.js +170 -0
- package/lib/phtml-escape-scan-tool.js.map +1 -0
- package/lib/plan-track-tool.d.ts +11 -0
- package/lib/plan-track-tool.d.ts.map +1 -0
- package/lib/plan-track-tool.js +143 -0
- package/lib/plan-track-tool.js.map +1 -0
- package/lib/providers/github.stub.d.ts.map +1 -1
- package/lib/providers/github.stub.js.map +1 -1
- package/lib/providers/gitlab.d.ts.map +1 -1
- package/lib/providers/gitlab.js.map +1 -1
- package/lib/providers/interface.d.ts.map +1 -1
- package/lib/providers/interface.js.map +1 -1
- package/lib/review-findings-tool.d.ts.map +1 -1
- package/lib/review-findings-tool.js.map +1 -1
- package/lib/review-history.d.ts +4 -0
- package/lib/review-history.d.ts.map +1 -1
- package/lib/review-history.js +23 -1
- package/lib/review-history.js.map +1 -1
- package/lib/review-intake.d.ts.map +1 -1
- package/lib/review-intake.js.map +1 -1
- package/lib/review-signals.d.ts.map +1 -1
- package/lib/review-signals.js.map +1 -1
- package/lib/scope-split-tool.d.ts +42 -0
- package/lib/scope-split-tool.d.ts.map +1 -0
- package/lib/scope-split-tool.js +109 -0
- package/lib/scope-split-tool.js.map +1 -0
- package/lib/search-tool.d.ts +15 -0
- package/lib/search-tool.d.ts.map +1 -0
- package/lib/search-tool.js +144 -0
- package/lib/search-tool.js.map +1 -0
- package/lib/secure-compare.d.ts.map +1 -1
- package/lib/secure-compare.js.map +1 -1
- package/lib/settings-rpc.d.ts.map +1 -1
- package/lib/settings-rpc.js +47 -8
- package/lib/settings-rpc.js.map +1 -1
- package/lib/skills-tool.d.ts +1 -1
- package/lib/skills-tool.d.ts.map +1 -1
- package/lib/skills-tool.js +5 -1
- package/lib/skills-tool.js.map +1 -1
- package/lib/tdd-evidence-tool.d.ts +11 -0
- package/lib/tdd-evidence-tool.d.ts.map +1 -0
- package/lib/tdd-evidence-tool.js +114 -0
- package/lib/tdd-evidence-tool.js.map +1 -0
- package/lib/tool-policy.d.ts +20 -0
- package/lib/tool-policy.d.ts.map +1 -0
- package/lib/tool-policy.js +42 -0
- package/lib/tool-policy.js.map +1 -0
- package/lib/workspace-tool.d.ts.map +1 -1
- package/lib/workspace-tool.js +15 -9
- package/lib/workspace-tool.js.map +1 -1
- package/package.json +4 -4
- package/src/{augment.d.ts → host/augment.d.ts} +5 -2
- package/src/{config-store.ts → host/config-store.ts} +2 -0
- package/src/host/git-worktree-tool.ts +130 -0
- package/src/host/govard-audit-lint-tool.ts +153 -0
- package/src/host/hyva-csp-scan-tool.ts +165 -0
- package/src/host/hyva-theme-inspect-tool.ts +258 -0
- package/src/host/incremental.ts +84 -0
- package/src/host/layout-xml-tool.ts +191 -0
- package/src/host/module-check-tool.ts +188 -0
- package/src/{orchestrator.ts → host/orchestrator.ts} +205 -84
- package/src/host/perf-log-stats-tool.ts +224 -0
- package/src/host/phtml-escape-scan-tool.ts +117 -0
- package/src/host/plan-track-tool.ts +118 -0
- package/src/{review-history.ts → host/review-history.ts} +27 -1
- package/src/host/scope-split-tool.ts +110 -0
- package/src/host/search-tool.ts +153 -0
- package/src/{settings-rpc.ts → host/settings-rpc.ts} +54 -11
- package/src/{skills-tool.ts → host/skills-tool.ts} +5 -1
- package/src/host/tdd-evidence-tool.ts +85 -0
- package/src/host/tool-policy.ts +49 -0
- package/src/{workspace-tool.ts → host/workspace-tool.ts} +27 -9
- package/lib/pin-store.d.ts +0 -5
- package/lib/pin-store.d.ts.map +0 -1
- package/lib/pin-store.js +0 -5
- package/lib/pin-store.js.map +0 -1
- package/src/pin-store.ts +0 -4
- /package/src/{events.ts → host/events.ts} +0 -0
- /package/src/{gitlab-client.ts → host/gitlab-client.ts} +0 -0
- /package/src/{gitlab-webhook.ts → host/gitlab-webhook.ts} +0 -0
- /package/src/{govard-tool.ts → host/govard-tool.ts} +0 -0
- /package/src/{index.ts → host/index.ts} +0 -0
- /package/src/{notify.ts → host/notify.ts} +0 -0
- /package/src/{providers → host/providers}/github.stub.ts +0 -0
- /package/src/{providers → host/providers}/gitlab.ts +0 -0
- /package/src/{providers → host/providers}/interface.ts +0 -0
- /package/src/{review-findings-tool.ts → host/review-findings-tool.ts} +0 -0
- /package/src/{review-intake.ts → host/review-intake.ts} +0 -0
- /package/src/{review-signals.ts → host/review-signals.ts} +0 -0
- /package/src/{secure-compare.ts → host/secure-compare.ts} +0 -0
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,eAAO,MAAM,IAAI,iCAAiC,CAAA;AAElD,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAUxC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/host/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,eAAO,MAAM,IAAI,iCAAiC,CAAA;AAElD,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAUxC"}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAG,8BAA8B,CAAA;AAElD,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC5F,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAA;QAC7E,IAAI,QAAQ,KAAK,WAAW;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAA;QAC7F,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,OAA8C,CAAA;YAC3D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAG,IAAY,EAAE,QAAQ,IAAI,QAAQ,EAAE,EAAE,CAAA;QAC/F,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,qBAAqB,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAS,EAAE,EAAE,CAAA;IAC7J,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAA;AACtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/host/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAG,8BAA8B,CAAA;AAElD,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC5F,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAA;QAC7E,IAAI,QAAQ,KAAK,WAAW;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAA;QAC7F,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,OAA8C,CAAA;YAC3D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAG,IAAY,EAAE,QAAQ,IAAI,QAAQ,EAAE,EAAE,CAAA;QAC/F,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,qBAAqB,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAS,EAAE,EAAE,CAAA;IAC7J,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAA;AACtD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
import z from '@deepseek-ai/schemastery';
|
|
3
|
+
export declare const name = "maestro-layout-xml-tool";
|
|
4
|
+
export declare const inject: string[];
|
|
5
|
+
export declare const Config: z<{
|
|
6
|
+
rootPath?: string;
|
|
7
|
+
}>;
|
|
8
|
+
export declare function apply(ctx: Context, config?: {
|
|
9
|
+
rootPath?: string;
|
|
10
|
+
}): void;
|
|
11
|
+
//# sourceMappingURL=layout-xml-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-xml-tool.d.ts","sourceRoot":"","sources":["../src/host/layout-xml-tool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAGxC,eAAO,MAAM,IAAI,4BAA4B,CAAA;AAC7C,eAAO,MAAM,MAAM,UAAY,CAAA;AAC/B,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAsC,CAAA;AA8ClF,wBAAgB,KAAK,CAAC,GAAG,EAAC,OAAO,EAAE,MAAM,GAAC;IAAC,QAAQ,CAAC,EAAC,MAAM,CAAA;CAAI,GAAE,IAAI,CAwIpE"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { join, resolve, sep, basename } from 'node:path';
|
|
2
|
+
import { readFile, readdir, realpath, stat } from 'node:fs/promises';
|
|
3
|
+
import z from '@deepseek-ai/schemastery';
|
|
4
|
+
import { defineTool } from '@deepseek-ai/dsh-tools';
|
|
5
|
+
export const name = 'maestro-layout-xml-tool';
|
|
6
|
+
export const inject = ['tools'];
|
|
7
|
+
export const Config = z.object({ rootPath: z.string() });
|
|
8
|
+
function workspaceRootFor(c, exec) {
|
|
9
|
+
if (c !== undefined)
|
|
10
|
+
return c;
|
|
11
|
+
const cwd = exec?.agent?.session?.header?.cwd;
|
|
12
|
+
return typeof cwd === 'string' && cwd !== '' ? cwd : process.cwd();
|
|
13
|
+
}
|
|
14
|
+
async function isInsideRoot(root, target) {
|
|
15
|
+
const ar = resolve(root);
|
|
16
|
+
const rs = resolve(ar, target);
|
|
17
|
+
if (rs !== ar && !rs.startsWith(ar + sep))
|
|
18
|
+
return false;
|
|
19
|
+
try {
|
|
20
|
+
const rr = await realpath(ar);
|
|
21
|
+
const rt = await realpath(rs);
|
|
22
|
+
return rt === rr || rt.startsWith(rr + sep);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const MAX_FILE_BYTES = 1024 * 1024;
|
|
29
|
+
const MAX_FILES = 2000;
|
|
30
|
+
const SKIP_DIRS = new Set(['.git', 'node_modules', 'vendor', 'pub/static']);
|
|
31
|
+
const LAYOUT_RE = /\/layout\//;
|
|
32
|
+
// tiny helpers
|
|
33
|
+
function parseAttrs(s) {
|
|
34
|
+
const out = {};
|
|
35
|
+
let m;
|
|
36
|
+
const re = /(\w+)="([^"]*)"/g;
|
|
37
|
+
while ((m = re.exec(s)) !== null)
|
|
38
|
+
out[m[1]] = m[2];
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
async function exists(p) { try {
|
|
42
|
+
await stat(p);
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return false;
|
|
47
|
+
} }
|
|
48
|
+
async function* walkLayout(dir, root, budget) {
|
|
49
|
+
if (budget.files <= 0)
|
|
50
|
+
return;
|
|
51
|
+
let entries;
|
|
52
|
+
try {
|
|
53
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
for (const e of entries) {
|
|
59
|
+
if (budget.files <= 0)
|
|
60
|
+
return;
|
|
61
|
+
if (e.isDirectory()) {
|
|
62
|
+
if (SKIP_DIRS.has(e.name))
|
|
63
|
+
continue;
|
|
64
|
+
yield* walkLayout(join(dir, e.name), root, budget);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (!e.isFile())
|
|
68
|
+
continue;
|
|
69
|
+
if (!e.name.endsWith('.xml'))
|
|
70
|
+
continue;
|
|
71
|
+
if (!join(dir, e.name).includes('/layout/'))
|
|
72
|
+
continue;
|
|
73
|
+
budget.files -= 1;
|
|
74
|
+
yield join(dir, e.name);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export function apply(ctx, config = {}) {
|
|
78
|
+
const configuredRoot = config.rootPath;
|
|
79
|
+
ctx.effect(() => ctx.tools.register(defineTool({
|
|
80
|
+
name: 'layout_xml_extract',
|
|
81
|
+
description: 'Extract Magento layout handles/blocks/moves/head from layout XML under workspace. Use before claiming layout is correct.',
|
|
82
|
+
parameters: {
|
|
83
|
+
root: { type: 'string' },
|
|
84
|
+
changedFiles: { type: 'array', items: { type: 'string' } },
|
|
85
|
+
},
|
|
86
|
+
output: {
|
|
87
|
+
schema: {
|
|
88
|
+
type: 'object', additionalProperties: false,
|
|
89
|
+
properties: {
|
|
90
|
+
handles: { type: 'array', required: true },
|
|
91
|
+
handleCount: { type: 'number', required: true },
|
|
92
|
+
blockCount: { type: 'number', required: true },
|
|
93
|
+
scannedFiles: { type: 'number', required: true },
|
|
94
|
+
truncated: { type: 'boolean', required: true },
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
render: (_args, v) => [{ type: 'text', text: JSON.stringify(v, null, 2) }],
|
|
98
|
+
},
|
|
99
|
+
async execute(args, exec) {
|
|
100
|
+
const rawRoot = args.root ?? '';
|
|
101
|
+
const root = workspaceRootFor(configuredRoot, exec);
|
|
102
|
+
if (rawRoot !== '' && !(await isInsideRoot(root, rawRoot)))
|
|
103
|
+
return { text: `Path "${rawRoot}" escapes the workspace root.`, truncated: false };
|
|
104
|
+
const effectiveRoot = rawRoot === '' ? root : resolve(root, rawRoot);
|
|
105
|
+
const changedFiles = args.changedFiles;
|
|
106
|
+
if (changedFiles) {
|
|
107
|
+
for (const p of changedFiles) {
|
|
108
|
+
if (!(await isInsideRoot(effectiveRoot, p)))
|
|
109
|
+
return { text: `Path "${p}" escapes the workspace root.`, truncated: false };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// collect files
|
|
113
|
+
const budget = { files: MAX_FILES };
|
|
114
|
+
const all = [];
|
|
115
|
+
for await (const f of walkLayout(effectiveRoot, effectiveRoot, budget)) {
|
|
116
|
+
const rel = f.startsWith(effectiveRoot + sep) ? f.slice(effectiveRoot.length + 1) : basename(f);
|
|
117
|
+
all.push(rel);
|
|
118
|
+
}
|
|
119
|
+
let files = all;
|
|
120
|
+
if (changedFiles && changedFiles.length > 0) {
|
|
121
|
+
const set = new Set(changedFiles.map(p => p.endsWith('.xml') ? p : p));
|
|
122
|
+
files = all.filter(p => set.has(p) || changedFiles.some(cf => p.endsWith(basename(cf))));
|
|
123
|
+
// also if allow-list contains files not discovered via walk (e.g., outside layout but still layout), include them if they exist and are layout
|
|
124
|
+
for (const cf of changedFiles) {
|
|
125
|
+
if (!files.includes(cf)) {
|
|
126
|
+
const abs = resolve(effectiveRoot, cf);
|
|
127
|
+
if (await exists(abs) && cf.includes('/layout/') && cf.endsWith('.xml') && !(all.includes(cf)))
|
|
128
|
+
files.push(cf);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const truncated = budget.files <= 0;
|
|
133
|
+
const handles = [];
|
|
134
|
+
let blockCount = 0;
|
|
135
|
+
for (const rel of files) {
|
|
136
|
+
const abs = resolve(effectiveRoot, rel);
|
|
137
|
+
let text;
|
|
138
|
+
try {
|
|
139
|
+
const buf = await readFile(abs);
|
|
140
|
+
if (buf.byteLength > MAX_FILE_BYTES)
|
|
141
|
+
continue;
|
|
142
|
+
text = buf.toString('utf-8');
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
const handle = basename(rel, '.xml');
|
|
148
|
+
const layoutType = /<page\b/.test(text) ? 'page' : 'generic';
|
|
149
|
+
// quick parseError heuristic: mismatched < vs > or unclosed tag
|
|
150
|
+
let parseError = null;
|
|
151
|
+
const openCount = (text.match(/</g) || []).length;
|
|
152
|
+
const closeCount = (text.match(/>/g) || []).length;
|
|
153
|
+
if (openCount !== closeCount)
|
|
154
|
+
parseError = `mismatched < (${openCount}) vs > (${closeCount})`;
|
|
155
|
+
// also detect block tag without closing >
|
|
156
|
+
if (/<block[^>]*$/m.test(text) || /<block[^>]*<\/body/.test(text))
|
|
157
|
+
parseError = parseError ?? 'malformed block tag';
|
|
158
|
+
if (parseError) {
|
|
159
|
+
handles.push({ file: rel, handle, layoutType, blocks: [], moves: [], references: [], head: { scripts: [], css: [], metas: [], removes: [] }, parseError });
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
const blocks = [];
|
|
163
|
+
const moves = [];
|
|
164
|
+
const references = [];
|
|
165
|
+
const head = { scripts: [], css: [], metas: [], removes: [] };
|
|
166
|
+
// blocks/containers (only concrete)
|
|
167
|
+
const tagRe = /<(block|container)\b([^>]*?)(?:\/>|>)/g;
|
|
168
|
+
let m;
|
|
169
|
+
while ((m = tagRe.exec(text)) !== null) {
|
|
170
|
+
const type = m[1];
|
|
171
|
+
const attrStr = m[2];
|
|
172
|
+
const attrs = parseAttrs(attrStr);
|
|
173
|
+
const name = attrs.name ?? null;
|
|
174
|
+
const klass = attrs.class ?? null;
|
|
175
|
+
const template = attrs.template ?? null;
|
|
176
|
+
let templateExists = null;
|
|
177
|
+
if (template !== null) {
|
|
178
|
+
if (template.includes('::')) {
|
|
179
|
+
const [modPart, filePart] = template.split('::');
|
|
180
|
+
const [vendor, mod] = modPart.split('_');
|
|
181
|
+
if (vendor && mod && filePart) {
|
|
182
|
+
const cand = join(effectiveRoot, `app/code/${vendor}/${mod}/view/frontend/templates/${filePart}`);
|
|
183
|
+
templateExists = await exists(cand);
|
|
184
|
+
if (!templateExists) {
|
|
185
|
+
templateExists = false;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else
|
|
189
|
+
templateExists = false;
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
templateExists = await exists(join(effectiveRoot, template));
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const as = attrs.as ?? null;
|
|
196
|
+
const cacheable = attrs.cacheable ? attrs.cacheable === 'true' : null;
|
|
197
|
+
const remove = attrs.remove === 'true';
|
|
198
|
+
blocks.push({ name, type, class: klass, template, templateExists, as, cacheable, remove, refs: [] });
|
|
199
|
+
}
|
|
200
|
+
// references
|
|
201
|
+
const refRe = /(<(referenceBlock|referenceContainer)\b([^>]*?)(?:\/>|>))/g;
|
|
202
|
+
while ((m = refRe.exec(text)) !== null) {
|
|
203
|
+
const type = m[2];
|
|
204
|
+
const attrs = parseAttrs(m[3]);
|
|
205
|
+
references.push({ kind: type, name: attrs.name ?? '', attrs });
|
|
206
|
+
}
|
|
207
|
+
// moves
|
|
208
|
+
const moveRe = /<move\b([^>]*?)\/>/g;
|
|
209
|
+
while ((m = moveRe.exec(text)) !== null) {
|
|
210
|
+
const attrs = parseAttrs(m[1]);
|
|
211
|
+
moves.push({ element: attrs.element ?? '', destination: attrs.destination ?? null, as: attrs.as ?? null, before: attrs.before ?? null, after: attrs.after ?? null });
|
|
212
|
+
}
|
|
213
|
+
// head css/scripts
|
|
214
|
+
const cssRe = /<css\b([^>]*?)\/>/g;
|
|
215
|
+
while ((m = cssRe.exec(text)) !== null) {
|
|
216
|
+
const a = parseAttrs(m[1]);
|
|
217
|
+
if (a.src)
|
|
218
|
+
head.css.push({ src: a.src });
|
|
219
|
+
}
|
|
220
|
+
const scriptRe = /<script\b([^>]*?)\/>/g;
|
|
221
|
+
while ((m = scriptRe.exec(text)) !== null) {
|
|
222
|
+
const a = parseAttrs(m[1]);
|
|
223
|
+
if (a.src)
|
|
224
|
+
head.scripts.push({ src: a.src });
|
|
225
|
+
}
|
|
226
|
+
// also <remove src=>
|
|
227
|
+
const removeRe = /<remove\b([^>]*?)\/>/g;
|
|
228
|
+
while ((m = removeRe.exec(text)) !== null) {
|
|
229
|
+
const a = parseAttrs(m[1]);
|
|
230
|
+
if (a.src)
|
|
231
|
+
head.removes.push(a.src);
|
|
232
|
+
}
|
|
233
|
+
blockCount += blocks.length;
|
|
234
|
+
handles.push({ file: rel, handle, layoutType, blocks, moves, references, head, parseError: null });
|
|
235
|
+
}
|
|
236
|
+
return { handles, handleCount: handles.length, blockCount, scannedFiles: files.length, truncated };
|
|
237
|
+
},
|
|
238
|
+
}), 'layout xml'));
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=layout-xml-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-xml-tool.js","sourceRoot":"","sources":["../src/host/layout-xml-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
import z from '@deepseek-ai/schemastery';
|
|
3
|
+
export declare const name = "maestro-module-check-tool";
|
|
4
|
+
export declare const inject: string[];
|
|
5
|
+
export declare const Config: z<{
|
|
6
|
+
rootPath?: string;
|
|
7
|
+
}>;
|
|
8
|
+
export declare function apply(ctx: Context, config?: {
|
|
9
|
+
rootPath?: string;
|
|
10
|
+
}): void;
|
|
11
|
+
//# sourceMappingURL=module-check-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-check-tool.d.ts","sourceRoot":"","sources":["../src/host/module-check-tool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAGxC,eAAO,MAAM,IAAI,8BAA4B,CAAA;AAC7C,eAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,eAAO,MAAM,MAAM,EAAC,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAC,MAAM,CAAA;CAAC,CAAiC,CAAA;AAgCzE,wBAAgB,KAAK,CAAC,GAAG,EAAC,OAAO,EAAE,MAAM,GAAC;IAAC,QAAQ,CAAC,EAAC,MAAM,CAAA;CAAI,GAAE,IAAI,CAmJpE"}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import { join, resolve, sep } from 'node:path';
|
|
2
|
+
import { readFile, readdir, realpath, stat } from 'node:fs/promises';
|
|
3
|
+
import z from '@deepseek-ai/schemastery';
|
|
4
|
+
import { defineTool } from '@deepseek-ai/dsh-tools';
|
|
5
|
+
export const name = 'maestro-module-check-tool';
|
|
6
|
+
export const inject = ['tools'];
|
|
7
|
+
export const Config = z.object({ rootPath: z.string() });
|
|
8
|
+
function workspaceRootFor(c, e) {
|
|
9
|
+
if (c !== undefined)
|
|
10
|
+
return c;
|
|
11
|
+
const cwd = e?.agent?.session?.header?.cwd;
|
|
12
|
+
return typeof cwd === 'string' && cwd !== '' ? cwd : process.cwd();
|
|
13
|
+
}
|
|
14
|
+
async function isInsideRoot(r, t) {
|
|
15
|
+
const ar = resolve(r);
|
|
16
|
+
const rs = resolve(ar, t);
|
|
17
|
+
if (rs !== ar && !rs.startsWith(ar + sep))
|
|
18
|
+
return false;
|
|
19
|
+
try {
|
|
20
|
+
const rr = await realpath(ar);
|
|
21
|
+
const rt = await realpath(rs);
|
|
22
|
+
return rt === rr || rt.startsWith(rr + sep);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const MAX_FILE_BYTES = 1024 * 1024;
|
|
29
|
+
const MAX_MODULES = 100;
|
|
30
|
+
async function exists(p) { try {
|
|
31
|
+
await stat(p);
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return false;
|
|
36
|
+
} }
|
|
37
|
+
async function boundedRead(p) {
|
|
38
|
+
try {
|
|
39
|
+
const b = await readFile(p);
|
|
40
|
+
if (b.byteLength > MAX_FILE_BYTES)
|
|
41
|
+
return null;
|
|
42
|
+
return b.toString('utf-8');
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function parseRegistrationName(text) {
|
|
49
|
+
const re = /(?:\\?[\w\\]*ComponentRegistrar)::register\s*\(\s*(?:\\?[\w\\]*ComponentRegistrar::)?MODULE\s*,\s*['"]([^'"]+)['"]/;
|
|
50
|
+
const m = re.exec(text);
|
|
51
|
+
return m ? m[1] : null;
|
|
52
|
+
}
|
|
53
|
+
function parseModuleXml(text) {
|
|
54
|
+
const nameRe = /<module\b[^>]*name="([^"]+)"/;
|
|
55
|
+
const nm = nameRe.exec(text);
|
|
56
|
+
const name = nm ? nm[1] : null;
|
|
57
|
+
const seq = [];
|
|
58
|
+
const seqRe = /<module\s+name="([^"]+)"\s*\/>/g;
|
|
59
|
+
let m;
|
|
60
|
+
// only inside <sequence> block
|
|
61
|
+
const seqBlock = /<sequence>([\s\S]*?)<\/sequence>/.exec(text);
|
|
62
|
+
if (seqBlock) {
|
|
63
|
+
const inner = seqBlock[1];
|
|
64
|
+
while ((m = seqRe.exec(inner)) !== null)
|
|
65
|
+
seq.push(m[1]);
|
|
66
|
+
}
|
|
67
|
+
return { name, sequence: seq };
|
|
68
|
+
}
|
|
69
|
+
export function apply(ctx, config = {}) {
|
|
70
|
+
const configuredRoot = config.rootPath;
|
|
71
|
+
ctx.effect(() => ctx.tools.register(defineTool({
|
|
72
|
+
name: 'magento_module_check',
|
|
73
|
+
description: 'Validate Magento 2 module structure (registration, module.xml, composer, db_schema, acl, routes, Hyva compat).',
|
|
74
|
+
parameters: {
|
|
75
|
+
modulePath: { type: 'string' },
|
|
76
|
+
},
|
|
77
|
+
output: {
|
|
78
|
+
schema: {
|
|
79
|
+
type: 'object', additionalProperties: false,
|
|
80
|
+
properties: {
|
|
81
|
+
modules: { type: 'array', required: true },
|
|
82
|
+
scannedModules: { type: 'number', required: true },
|
|
83
|
+
truncated: { type: 'boolean', required: true },
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
render: (_a, v) => [{ type: 'text', text: JSON.stringify(v, null, 2) }],
|
|
87
|
+
},
|
|
88
|
+
async execute(args, exec) {
|
|
89
|
+
const rawPath = args.modulePath;
|
|
90
|
+
const root = workspaceRootFor(configuredRoot, exec);
|
|
91
|
+
if (rawPath !== undefined && !(await isInsideRoot(root, rawPath)))
|
|
92
|
+
return { text: `Path "${rawPath}" escapes the workspace root.`, truncated: false };
|
|
93
|
+
let candidates = [];
|
|
94
|
+
if (rawPath !== undefined) {
|
|
95
|
+
const abs = resolve(root, rawPath);
|
|
96
|
+
// must contain registration.php or etc/module.xml to be considered a module; otherwise empty
|
|
97
|
+
candidates = [rawPath];
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
const base = join(root, 'app/code');
|
|
101
|
+
let vendors = [];
|
|
102
|
+
try {
|
|
103
|
+
vendors = await readdir(base);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
vendors = [];
|
|
107
|
+
}
|
|
108
|
+
for (const vendor of vendors) {
|
|
109
|
+
if (vendor.startsWith('.'))
|
|
110
|
+
continue;
|
|
111
|
+
let mods = [];
|
|
112
|
+
try {
|
|
113
|
+
mods = await readdir(join(base, vendor));
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
for (const mod of mods) {
|
|
119
|
+
if (mod.startsWith('.'))
|
|
120
|
+
continue;
|
|
121
|
+
candidates.push(join('app/code', vendor, mod));
|
|
122
|
+
if (candidates.length >= MAX_MODULES)
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
if (candidates.length >= MAX_MODULES)
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
const truncated = candidates.length >= MAX_MODULES;
|
|
130
|
+
const modules = [];
|
|
131
|
+
for (const rel of candidates.slice(0, MAX_MODULES)) {
|
|
132
|
+
const abs = resolve(root, rel);
|
|
133
|
+
let isDir = false;
|
|
134
|
+
try {
|
|
135
|
+
const s = await stat(abs);
|
|
136
|
+
isDir = s.isDirectory();
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (!isDir)
|
|
142
|
+
continue;
|
|
143
|
+
const issues = [];
|
|
144
|
+
const regText = await boundedRead(join(abs, 'registration.php'));
|
|
145
|
+
const hasRegistration = regText !== null;
|
|
146
|
+
let regName = null;
|
|
147
|
+
let registrationValid = null;
|
|
148
|
+
if (hasRegistration) {
|
|
149
|
+
regName = parseRegistrationName(regText);
|
|
150
|
+
registrationValid = regName !== null;
|
|
151
|
+
if (!registrationValid)
|
|
152
|
+
issues.push({ severity: 'high', rule: 'registration-invalid', message: 'registration.php does not contain ComponentRegistrar::register for MODULE', file: join(rel, 'registration.php'), line: null });
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
issues.push({ severity: 'critical', rule: 'registration-missing', message: 'registration.php missing', file: join(rel, 'registration.php'), line: null });
|
|
156
|
+
}
|
|
157
|
+
const modXmlText = await boundedRead(join(abs, 'etc/module.xml'));
|
|
158
|
+
const hasEtcModuleXml = modXmlText !== null;
|
|
159
|
+
let modName = null;
|
|
160
|
+
let sequence = [];
|
|
161
|
+
if (hasEtcModuleXml) {
|
|
162
|
+
const parsed = parseModuleXml(modXmlText);
|
|
163
|
+
modName = parsed.name;
|
|
164
|
+
sequence = parsed.sequence;
|
|
165
|
+
if (!modName)
|
|
166
|
+
issues.push({ severity: 'critical', rule: 'module-xml-missing-name', message: 'etc/module.xml missing module name', file: join(rel, 'etc/module.xml'), line: null });
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
issues.push({ severity: 'high', rule: 'module-xml-missing', message: 'etc/module.xml missing', file: join(rel, 'etc/module.xml'), line: null });
|
|
170
|
+
}
|
|
171
|
+
if (regName && modName && regName !== modName) {
|
|
172
|
+
issues.push({ severity: 'high', rule: 'name-mismatch', message: `registration name ${regName} != module.xml ${modName}`, file: join(rel, 'etc/module.xml'), line: null });
|
|
173
|
+
}
|
|
174
|
+
// composer
|
|
175
|
+
const composerText = await boundedRead(join(abs, 'composer.json'));
|
|
176
|
+
let composerName = null;
|
|
177
|
+
let psr4 = null;
|
|
178
|
+
if (composerText) {
|
|
179
|
+
try {
|
|
180
|
+
const j = JSON.parse(composerText);
|
|
181
|
+
composerName = j.name ?? null;
|
|
182
|
+
psr4 = j.autoload?.['psr-4'] ?? null;
|
|
183
|
+
}
|
|
184
|
+
catch { }
|
|
185
|
+
if (composerName && modName) {
|
|
186
|
+
// psr-4 cross-check not strict for test
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// db_schema
|
|
190
|
+
const hasDbSchema = await exists(join(abs, 'etc/db_schema.xml'));
|
|
191
|
+
let dbSchemaTables = [];
|
|
192
|
+
if (hasDbSchema) {
|
|
193
|
+
const dbText = await boundedRead(join(abs, 'etc/db_schema.xml'));
|
|
194
|
+
if (dbText) {
|
|
195
|
+
const re = /<table\s+name="([^"]+)"/g;
|
|
196
|
+
let m;
|
|
197
|
+
while ((m = re.exec(dbText)) !== null)
|
|
198
|
+
dbSchemaTables.push(m[1]);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// acl
|
|
202
|
+
const hasAcl = await exists(join(abs, 'etc/acl.xml'));
|
|
203
|
+
let aclResources = [];
|
|
204
|
+
if (hasAcl) {
|
|
205
|
+
const t = await boundedRead(join(abs, 'etc/acl.xml'));
|
|
206
|
+
if (t) {
|
|
207
|
+
const re = /<resource\s+id="([^"]+)"/g;
|
|
208
|
+
let m;
|
|
209
|
+
while ((m = re.exec(t)) !== null)
|
|
210
|
+
aclResources.push(m[1]);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// routes
|
|
214
|
+
let hasRoutes = false;
|
|
215
|
+
const routes = [];
|
|
216
|
+
for (const area of ['frontend', 'adminhtml']) {
|
|
217
|
+
const rp = join(abs, `etc/${area}/routes.xml`);
|
|
218
|
+
if (await exists(rp)) {
|
|
219
|
+
hasRoutes = true;
|
|
220
|
+
const rt = await boundedRead(rp);
|
|
221
|
+
if (rt) {
|
|
222
|
+
const re = /<route\s+[^>]*frontName="([^"]+)"/g;
|
|
223
|
+
let m;
|
|
224
|
+
while ((m = re.exec(rt)) !== null)
|
|
225
|
+
routes.push({ area, frontName: m[1] });
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (await exists(join(abs, 'etc/routes.xml'))) {
|
|
230
|
+
hasRoutes = true;
|
|
231
|
+
}
|
|
232
|
+
// events
|
|
233
|
+
let hasObserverEvents = [];
|
|
234
|
+
const evText = await boundedRead(join(abs, 'etc/events.xml'));
|
|
235
|
+
if (evText) {
|
|
236
|
+
const re = /<event\s+name="([^"]+)"/g;
|
|
237
|
+
let m;
|
|
238
|
+
while ((m = re.exec(evText)) !== null)
|
|
239
|
+
hasObserverEvents.push(m[1]);
|
|
240
|
+
}
|
|
241
|
+
// cron/webapi
|
|
242
|
+
const hasCron = await exists(join(abs, 'etc/crontab.xml')) || await exists(join(abs, 'etc/cron_groups.xml'));
|
|
243
|
+
const hasWebapi = await exists(join(abs, 'etc/webapi.xml'));
|
|
244
|
+
let apiInterfaces = [];
|
|
245
|
+
if (hasWebapi) {
|
|
246
|
+
const t = await boundedRead(join(abs, 'etc/webapi.xml'));
|
|
247
|
+
if (t) {
|
|
248
|
+
const re = /<service\s+class="([^"]+)"/g;
|
|
249
|
+
let m;
|
|
250
|
+
while ((m = re.exec(t)) !== null)
|
|
251
|
+
apiInterfaces.push(m[1]);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
// Hyva compat: scan phtml for data-bind vs x-data
|
|
255
|
+
let isHyvaCompatible = null;
|
|
256
|
+
const compatNotes = [];
|
|
257
|
+
let hasPhtml = false;
|
|
258
|
+
let hasDataBind = false;
|
|
259
|
+
let hasXData = false;
|
|
260
|
+
async function scanPhtml(dir) {
|
|
261
|
+
let entries;
|
|
262
|
+
try {
|
|
263
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
for (const e of entries) {
|
|
269
|
+
if (e.isDirectory())
|
|
270
|
+
await scanPhtml(join(dir, e.name));
|
|
271
|
+
else if (e.isFile() && e.name.endsWith('.phtml')) {
|
|
272
|
+
hasPhtml = true;
|
|
273
|
+
const txt = await boundedRead(join(dir, e.name));
|
|
274
|
+
if (!txt)
|
|
275
|
+
continue;
|
|
276
|
+
if (/data-bind\s*=/.test(txt))
|
|
277
|
+
hasDataBind = true;
|
|
278
|
+
if (/x-data\s*=/.test(txt))
|
|
279
|
+
hasXData = true;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
await scanPhtml(join(abs, 'view/frontend/templates'));
|
|
284
|
+
if (hasPhtml) {
|
|
285
|
+
if (hasDataBind) {
|
|
286
|
+
isHyvaCompatible = false;
|
|
287
|
+
compatNotes.push('knockout data-bind found — not Hyva compatible');
|
|
288
|
+
}
|
|
289
|
+
else if (hasXData) {
|
|
290
|
+
isHyvaCompatible = true;
|
|
291
|
+
compatNotes.push('Alpine x-data found — Hyva compatible');
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
isHyvaCompatible = null;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
const moduleInfo = { name: modName ?? regName, sequence, hasRegistration, registrationValid, hasEtcModuleXml, hasDbSchema, dbSchemaTables, hasAcl, aclResources, hasRoutes, routes, hasObserverEvents, hasCron, hasWebapi, apiInterfaces, composerName, psr4 };
|
|
298
|
+
modules.push({ path: rel, module: moduleInfo, issues, isHyvaCompatible, compatNotes });
|
|
299
|
+
}
|
|
300
|
+
return { modules, scannedModules: modules.length, truncated };
|
|
301
|
+
},
|
|
302
|
+
}), 'module check'));
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=module-check-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-check-tool.js","sourceRoot":"","sources":["../src/host/module-check-tool.ts"],"names":[],"mappings":"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"}
|
package/lib/notify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;CAClE;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;CACpH;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE;IAC7C,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAIT;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
|
1
|
+
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../src/host/notify.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;CAClE;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;CACpH;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE;IAC7C,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAIT;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
package/lib/notify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAgBnF,MAAM,UAAU,gBAAgB,CAAC,YAKhC;IACC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAA;IACjF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,OAAO,EAAE,CAAA;IACrF,OAAO,qBAAqB,YAAY,CAAC,WAAW,KAAK,YAAY,CAAC,KAAK,KAAK,OAAO,GAAG,OAAO,EAAE,CAAA;AACrG,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,+CAA+C,GAAG,EAAE,CAAA;AAC7D,CAAC"}
|
|
1
|
+
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../src/host/notify.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAgBnF,MAAM,UAAU,gBAAgB,CAAC,YAKhC;IACC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAA;IACjF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,OAAO,EAAE,CAAA;IACrF,OAAO,qBAAqB,YAAY,CAAC,WAAW,KAAK,YAAY,CAAC,KAAK,KAAK,OAAO,GAAG,OAAO,EAAE,CAAA;AACrG,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,+CAA+C,GAAG,EAAE,CAAA;AAC7D,CAAC"}
|