@walkeros/explorer 2.1.0 → 2.1.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.
- package/AGENT.md +14 -0
- package/STYLE.md +6 -0
- package/dist/chunk-4AJX6MFW.mjs +573 -0
- package/dist/chunk-4AJX6MFW.mjs.map +1 -0
- package/dist/components/atoms/button-link.stories.d.ts +1 -3
- package/dist/components/atoms/button-link.stories.d.ts.map +1 -1
- package/dist/components/atoms/button-link.stories.js +1 -15
- package/dist/components/atoms/button-link.stories.js.map +1 -1
- package/dist/components/atoms/code.d.ts +29 -1
- package/dist/components/atoms/code.d.ts.map +1 -1
- package/dist/components/atoms/code.js +76 -8
- package/dist/components/atoms/code.js.map +1 -1
- package/dist/components/atoms/code.stories.d.ts +0 -7
- package/dist/components/atoms/code.stories.d.ts.map +1 -1
- package/dist/components/atoms/code.stories.js +0 -34
- package/dist/components/atoms/code.stories.js.map +1 -1
- package/dist/components/molecules/code-box.d.ts +6 -1
- package/dist/components/molecules/code-box.d.ts.map +1 -1
- package/dist/components/molecules/code-box.js +45 -3
- package/dist/components/molecules/code-box.js.map +1 -1
- package/dist/components/molecules/code-box.stories.d.ts +45 -9
- package/dist/components/molecules/code-box.stories.d.ts.map +1 -1
- package/dist/components/molecules/code-box.stories.js +106 -45
- package/dist/components/molecules/code-box.stories.js.map +1 -1
- package/dist/components/molecules/code-snippet.stories.d.ts +0 -8
- package/dist/components/molecules/code-snippet.stories.d.ts.map +1 -1
- package/dist/components/molecules/code-snippet.stories.js +0 -19
- package/dist/components/molecules/code-snippet.stories.js.map +1 -1
- package/dist/components/molecules/flow-map/FlowMap.stories.d.ts +0 -32
- package/dist/components/molecules/flow-map/FlowMap.stories.d.ts.map +1 -1
- package/dist/components/molecules/flow-map/FlowMap.stories.js +0 -330
- package/dist/components/molecules/flow-map/FlowMap.stories.js.map +1 -1
- package/dist/components/molecules/flow-map/FlowMap.transformers.stories.d.ts +0 -16
- package/dist/components/molecules/flow-map/FlowMap.transformers.stories.d.ts.map +1 -1
- package/dist/components/molecules/flow-map/FlowMap.transformers.stories.js +0 -78
- package/dist/components/molecules/flow-map/FlowMap.transformers.stories.js.map +1 -1
- package/dist/components/molecules/preview.d.ts.map +1 -1
- package/dist/components/molecules/preview.js +32 -22
- package/dist/components/molecules/preview.js.map +1 -1
- package/dist/index.d.cts +180 -3
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1052 -49
- package/dist/index.mjs.map +1 -1
- package/dist/{monaco-types-OLSF6MIE.mjs → monaco-types-KN2DINPW.mjs} +2 -2
- package/dist/styles.css +31 -0
- package/dist/types/intellisense.d.ts +31 -0
- package/dist/types/intellisense.d.ts.map +1 -0
- package/dist/types/intellisense.js +2 -0
- package/dist/types/intellisense.js.map +1 -0
- package/dist/utils/monaco-intellisense-flow-extractor.d.ts +13 -0
- package/dist/utils/monaco-intellisense-flow-extractor.d.ts.map +1 -0
- package/dist/utils/monaco-intellisense-flow-extractor.js +161 -0
- package/dist/utils/monaco-intellisense-flow-extractor.js.map +1 -0
- package/dist/utils/monaco-schema-contract.d.ts +8 -0
- package/dist/utils/monaco-schema-contract.d.ts.map +1 -0
- package/dist/utils/monaco-schema-contract.js +73 -0
- package/dist/utils/monaco-schema-contract.js.map +1 -0
- package/dist/utils/monaco-schema-enrichment.d.ts +26 -0
- package/dist/utils/monaco-schema-enrichment.d.ts.map +1 -0
- package/dist/utils/monaco-schema-enrichment.js +31 -0
- package/dist/utils/monaco-schema-enrichment.js.map +1 -0
- package/dist/utils/monaco-schema-flow-setup.d.ts +10 -0
- package/dist/utils/monaco-schema-flow-setup.d.ts.map +1 -0
- package/dist/utils/monaco-schema-flow-setup.js +201 -0
- package/dist/utils/monaco-schema-flow-setup.js.map +1 -0
- package/dist/utils/monaco-schema-variables.d.ts +4 -0
- package/dist/utils/monaco-schema-variables.d.ts.map +1 -0
- package/dist/utils/monaco-schema-variables.js +26 -0
- package/dist/utils/monaco-schema-variables.js.map +1 -0
- package/dist/utils/monaco-walkeros-completions.d.ts +15 -0
- package/dist/utils/monaco-walkeros-completions.d.ts.map +1 -0
- package/dist/utils/monaco-walkeros-completions.js +65 -0
- package/dist/utils/monaco-walkeros-completions.js.map +1 -0
- package/dist/utils/monaco-walkeros-decorations.d.ts +29 -0
- package/dist/utils/monaco-walkeros-decorations.d.ts.map +1 -0
- package/dist/utils/monaco-walkeros-decorations.js +87 -0
- package/dist/utils/monaco-walkeros-decorations.js.map +1 -0
- package/dist/utils/monaco-walkeros-markers.d.ts +13 -0
- package/dist/utils/monaco-walkeros-markers.d.ts.map +1 -0
- package/dist/utils/monaco-walkeros-markers.js +69 -0
- package/dist/utils/monaco-walkeros-markers.js.map +1 -0
- package/dist/utils/monaco-walkeros-providers.d.ts +19 -0
- package/dist/utils/monaco-walkeros-providers.d.ts.map +1 -0
- package/dist/utils/monaco-walkeros-providers.js +229 -0
- package/dist/utils/monaco-walkeros-providers.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-YKT4D7MG.mjs +0 -3087
- package/dist/chunk-YKT4D7MG.mjs.map +0 -1
- /package/dist/{monaco-types-OLSF6MIE.mjs.map → monaco-types-KN2DINPW.mjs.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-schema-flow-setup.js","sourceRoot":"","sources":["../../src/utils/monaco-schema-flow-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-schema-variables.d.ts","sourceRoot":"","sources":["../../src/utils/monaco-schema-variables.ts"],"names":[],"mappings":"AACA,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAErC,wBAAgB,kBAAkB,IAAI,SAAS,CAyB9C"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function getVariablesSchema() {
|
|
2
|
+
return {
|
|
3
|
+
type: 'object',
|
|
4
|
+
markdownDescription: 'Flow variables for `$var.name` interpolation. Values must be string, number, or boolean.\n\n' +
|
|
5
|
+
'```json\n{\n "measurementId": "G-XXXXXXXXXX",\n "debug": false,\n "batchSize": 10\n}\n```\n\n' +
|
|
6
|
+
'Reference in any config value: `"$var.measurementId"`',
|
|
7
|
+
additionalProperties: {
|
|
8
|
+
oneOf: [{ type: 'string' }, { type: 'number' }, { type: 'boolean' }],
|
|
9
|
+
},
|
|
10
|
+
defaultSnippets: [
|
|
11
|
+
{
|
|
12
|
+
label: 'Add string variable',
|
|
13
|
+
body: { '${1:name}': '${2:value}' },
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
label: 'Add boolean variable',
|
|
17
|
+
body: { '${1:name}': '${2|true,false|}' },
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
label: 'Add number variable',
|
|
21
|
+
body: { '${1:name}': 0 },
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=monaco-schema-variables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-schema-variables.js","sourceRoot":"","sources":["../../src/utils/monaco-schema-variables.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,mBAAmB,EACjB,8FAA8F;YAC9F,kGAAkG;YAClG,uDAAuD;QACzD,oBAAoB,EAAE;YACpB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SACrE;QACD,eAAe,EAAE;YACf;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;aACpC;YACD;gBACE,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE;aAC1C;YACD;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;aACzB;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { IntelliSenseContext, PackageInfo } from '../types/intellisense';
|
|
2
|
+
export interface CompletionEntry {
|
|
3
|
+
label: string;
|
|
4
|
+
insertText: string;
|
|
5
|
+
detail?: string;
|
|
6
|
+
documentation?: string;
|
|
7
|
+
kind: 'variable' | 'reference' | 'secret' | 'module' | 'property';
|
|
8
|
+
sortText?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function getVariableCompletions(variables: IntelliSenseContext['variables']): CompletionEntry[];
|
|
11
|
+
export declare function getDefinitionCompletions(definitions: IntelliSenseContext['definitions']): CompletionEntry[];
|
|
12
|
+
export declare function getSecretCompletions(secrets: IntelliSenseContext['secrets']): CompletionEntry[];
|
|
13
|
+
export declare function getPackageCompletions(packages: PackageInfo[] | undefined, platform: IntelliSenseContext['platform']): CompletionEntry[];
|
|
14
|
+
export declare function getStepNameCompletions(stepNames: IntelliSenseContext['stepNames'], context: 'next' | 'before'): CompletionEntry[];
|
|
15
|
+
//# sourceMappingURL=monaco-walkeros-completions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-walkeros-completions.d.ts","sourceRoot":"","sources":["../../src/utils/monaco-walkeros-completions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,GAC1C,eAAe,EAAE,CAUnB;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,GAC9C,eAAe,EAAE,CAUnB;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,GACtC,eAAe,EAAE,CAWnB;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,WAAW,EAAE,GAAG,SAAS,EACnC,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,GACxC,eAAe,EAAE,CAanB;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,EAC3C,OAAO,EAAE,MAAM,GAAG,QAAQ,GACzB,eAAe,EAAE,CAWnB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export function getVariableCompletions(variables) {
|
|
2
|
+
if (!variables || Object.keys(variables).length === 0)
|
|
3
|
+
return [];
|
|
4
|
+
return Object.entries(variables).map(([name, value]) => ({
|
|
5
|
+
label: `$var.${name}`,
|
|
6
|
+
insertText: `$var.${name}`,
|
|
7
|
+
detail: `= ${JSON.stringify(value)}`,
|
|
8
|
+
documentation: `Variable reference. Resolves to \`${JSON.stringify(value)}\` at runtime.`,
|
|
9
|
+
kind: 'variable',
|
|
10
|
+
sortText: '0_var_' + name,
|
|
11
|
+
}));
|
|
12
|
+
}
|
|
13
|
+
export function getDefinitionCompletions(definitions) {
|
|
14
|
+
if (!definitions || Object.keys(definitions).length === 0)
|
|
15
|
+
return [];
|
|
16
|
+
return Object.keys(definitions).map((name) => ({
|
|
17
|
+
label: `$def.${name}`,
|
|
18
|
+
insertText: `$def.${name}`,
|
|
19
|
+
detail: '(definition)',
|
|
20
|
+
documentation: `Definition reference. Injects the reusable config fragment "${name}" at runtime.`,
|
|
21
|
+
kind: 'reference',
|
|
22
|
+
sortText: '0_def_' + name,
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
export function getSecretCompletions(secrets) {
|
|
26
|
+
if (!secrets || secrets.length === 0)
|
|
27
|
+
return [];
|
|
28
|
+
return secrets.map((name) => ({
|
|
29
|
+
label: `$secret.${name}`,
|
|
30
|
+
insertText: `$secret.${name}`,
|
|
31
|
+
detail: '(secret)',
|
|
32
|
+
documentation: 'Secret reference. Value is securely injected at runtime. Never stored in config.',
|
|
33
|
+
kind: 'secret',
|
|
34
|
+
sortText: '0_secret_' + name,
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
export function getPackageCompletions(packages, platform) {
|
|
38
|
+
if (!packages || packages.length === 0)
|
|
39
|
+
return [];
|
|
40
|
+
const filtered = platform
|
|
41
|
+
? packages.filter((p) => p.platform === platform)
|
|
42
|
+
: packages;
|
|
43
|
+
return filtered.map((pkg) => ({
|
|
44
|
+
label: pkg.package,
|
|
45
|
+
insertText: pkg.package,
|
|
46
|
+
detail: `${pkg.type} (${pkg.platform})`,
|
|
47
|
+
documentation: `walkerOS ${pkg.type}: ${pkg.shortName}`,
|
|
48
|
+
kind: 'module',
|
|
49
|
+
sortText: '1_pkg_' + pkg.shortName,
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
export function getStepNameCompletions(stepNames, context) {
|
|
53
|
+
if (!stepNames)
|
|
54
|
+
return [];
|
|
55
|
+
const names = stepNames.transformers || [];
|
|
56
|
+
return names.map((name) => ({
|
|
57
|
+
label: name,
|
|
58
|
+
insertText: name,
|
|
59
|
+
detail: `transformer (${context} chain)`,
|
|
60
|
+
documentation: `Reference to transformer step "${name}" in this flow config.`,
|
|
61
|
+
kind: 'reference',
|
|
62
|
+
sortText: '0_step_' + name,
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=monaco-walkeros-completions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-walkeros-completions.js","sourceRoot":"","sources":["../../src/utils/monaco-walkeros-completions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { editor } from 'monaco-editor';
|
|
2
|
+
export type ReferenceType = 'variable' | 'definition' | 'secret' | 'env' | 'code';
|
|
3
|
+
export interface WalkerOSReference {
|
|
4
|
+
type: ReferenceType;
|
|
5
|
+
name: string;
|
|
6
|
+
startIndex: number;
|
|
7
|
+
endIndex: number;
|
|
8
|
+
}
|
|
9
|
+
export declare const REFERENCE_PATTERNS: Array<{
|
|
10
|
+
type: ReferenceType;
|
|
11
|
+
regex: RegExp;
|
|
12
|
+
className: string;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Find all walkerOS reference patterns in text.
|
|
16
|
+
* Used for both decorations and validation.
|
|
17
|
+
*/
|
|
18
|
+
export declare function findWalkerOSReferences(text: string): WalkerOSReference[];
|
|
19
|
+
/**
|
|
20
|
+
* Apply walkerOS reference decorations to a Monaco editor.
|
|
21
|
+
* Returns a cleanup function.
|
|
22
|
+
*/
|
|
23
|
+
export declare function applyWalkerOSDecorations(editorInstance: editor.IStandaloneCodeEditor): () => void;
|
|
24
|
+
/**
|
|
25
|
+
* Register CSS styles for walkerOS reference decorations.
|
|
26
|
+
* Call once on app init.
|
|
27
|
+
*/
|
|
28
|
+
export declare function registerWalkerOSDecorationStyles(): void;
|
|
29
|
+
//# sourceMappingURL=monaco-walkeros-decorations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-walkeros-decorations.d.ts","sourceRoot":"","sources":["../../src/utils/monaco-walkeros-decorations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,YAAY,GACZ,QAAQ,GACR,KAAK,GACL,MAAM,CAAC;AAEX,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC;IACrC,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAUA,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAiBxE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,CAAC,qBAAqB,GAC3C,MAAM,IAAI,CAsCZ;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,IAAI,IAAI,CAcvD"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
export const REFERENCE_PATTERNS = [
|
|
2
|
+
{ type: 'variable', regex: /\$var\.(\w*)/g, className: 'elb-ref-variable' },
|
|
3
|
+
{
|
|
4
|
+
type: 'definition',
|
|
5
|
+
regex: /\$def\.(\w*)/g,
|
|
6
|
+
className: 'elb-ref-definition',
|
|
7
|
+
},
|
|
8
|
+
{ type: 'secret', regex: /\$secret\.(\w*)/g, className: 'elb-ref-secret' },
|
|
9
|
+
{ type: 'env', regex: /\$env\.(\w*)/g, className: 'elb-ref-env' },
|
|
10
|
+
{ type: 'code', regex: /\$code:/g, className: 'elb-ref-code' },
|
|
11
|
+
];
|
|
12
|
+
/**
|
|
13
|
+
* Find all walkerOS reference patterns in text.
|
|
14
|
+
* Used for both decorations and validation.
|
|
15
|
+
*/
|
|
16
|
+
export function findWalkerOSReferences(text) {
|
|
17
|
+
const references = [];
|
|
18
|
+
for (const pattern of REFERENCE_PATTERNS) {
|
|
19
|
+
const regex = new RegExp(pattern.regex.source, pattern.regex.flags);
|
|
20
|
+
let match;
|
|
21
|
+
while ((match = regex.exec(text)) !== null) {
|
|
22
|
+
references.push({
|
|
23
|
+
type: pattern.type,
|
|
24
|
+
name: pattern.type === 'code' ? '' : match[1] || '',
|
|
25
|
+
startIndex: match.index,
|
|
26
|
+
endIndex: match.index + match[0].length,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return references;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Apply walkerOS reference decorations to a Monaco editor.
|
|
34
|
+
* Returns a cleanup function.
|
|
35
|
+
*/
|
|
36
|
+
export function applyWalkerOSDecorations(editorInstance) {
|
|
37
|
+
let decorationIds = [];
|
|
38
|
+
function update() {
|
|
39
|
+
const model = editorInstance.getModel();
|
|
40
|
+
if (!model)
|
|
41
|
+
return;
|
|
42
|
+
const text = model.getValue();
|
|
43
|
+
const references = findWalkerOSReferences(text);
|
|
44
|
+
const decorations = references.map((ref) => {
|
|
45
|
+
const startPos = model.getPositionAt(ref.startIndex);
|
|
46
|
+
const endPos = model.getPositionAt(ref.endIndex);
|
|
47
|
+
const pattern = REFERENCE_PATTERNS.find((p) => p.type === ref.type);
|
|
48
|
+
return {
|
|
49
|
+
range: {
|
|
50
|
+
startLineNumber: startPos.lineNumber,
|
|
51
|
+
startColumn: startPos.column,
|
|
52
|
+
endLineNumber: endPos.lineNumber,
|
|
53
|
+
endColumn: endPos.column,
|
|
54
|
+
},
|
|
55
|
+
options: { inlineClassName: pattern.className },
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
decorationIds = editorInstance.deltaDecorations(decorationIds, decorations);
|
|
59
|
+
}
|
|
60
|
+
update();
|
|
61
|
+
const disposable = editorInstance.onDidChangeModelContent(() => update());
|
|
62
|
+
return () => {
|
|
63
|
+
disposable.dispose();
|
|
64
|
+
editorInstance.deltaDecorations(decorationIds, []);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Register CSS styles for walkerOS reference decorations.
|
|
69
|
+
* Call once on app init.
|
|
70
|
+
*/
|
|
71
|
+
export function registerWalkerOSDecorationStyles() {
|
|
72
|
+
if (typeof document === 'undefined')
|
|
73
|
+
return;
|
|
74
|
+
if (document.getElementById('walkeros-ref-styles'))
|
|
75
|
+
return;
|
|
76
|
+
const style = document.createElement('style');
|
|
77
|
+
style.id = 'walkeros-ref-styles';
|
|
78
|
+
style.textContent = `
|
|
79
|
+
.monaco-editor .elb-ref-variable { color: #89ddff !important; font-style: italic; }
|
|
80
|
+
.monaco-editor .elb-ref-definition { color: #c3e88d !important; font-style: italic; }
|
|
81
|
+
.monaco-editor .elb-ref-secret { color: #ffcb6b !important; font-style: italic; }
|
|
82
|
+
.monaco-editor .elb-ref-env { color: #ffcb6b !important; font-style: italic; }
|
|
83
|
+
.monaco-editor .elb-ref-code { color: #c084fc !important; }
|
|
84
|
+
`;
|
|
85
|
+
document.head.appendChild(style);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=monaco-walkeros-decorations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-walkeros-decorations.js","sourceRoot":"","sources":["../../src/utils/monaco-walkeros-decorations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IntelliSenseContext } from '../types/intellisense';
|
|
2
|
+
export interface ValidationIssue {
|
|
3
|
+
message: string;
|
|
4
|
+
severity: 'error' | 'warning' | 'info';
|
|
5
|
+
startIndex: number;
|
|
6
|
+
endIndex: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Validate walkerOS references in JSON text against the current context.
|
|
10
|
+
* Returns issues for dangling references and invalid cross-references.
|
|
11
|
+
*/
|
|
12
|
+
export declare function validateWalkerOSReferences(text: string, context: Partial<IntelliSenseContext>): ValidationIssue[];
|
|
13
|
+
//# sourceMappingURL=monaco-walkeros-markers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-walkeros-markers.d.ts","sourceRoot":"","sources":["../../src/utils/monaco-walkeros-markers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACpC,eAAe,EAAE,CAoEnB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate walkerOS references in JSON text against the current context.
|
|
3
|
+
* Returns issues for dangling references and invalid cross-references.
|
|
4
|
+
*/
|
|
5
|
+
export function validateWalkerOSReferences(text, context) {
|
|
6
|
+
const issues = [];
|
|
7
|
+
// Check $var. references
|
|
8
|
+
if (context.variables) {
|
|
9
|
+
const varRegex = /\$var\.(\w+)/g;
|
|
10
|
+
let match;
|
|
11
|
+
while ((match = varRegex.exec(text)) !== null) {
|
|
12
|
+
if (!(match[1] in context.variables)) {
|
|
13
|
+
issues.push({
|
|
14
|
+
message: `Unknown variable "$var.${match[1]}". Defined variables: ${Object.keys(context.variables).join(', ') || 'none'}`,
|
|
15
|
+
severity: 'warning',
|
|
16
|
+
startIndex: match.index,
|
|
17
|
+
endIndex: match.index + match[0].length,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// Check $def. references
|
|
23
|
+
if (context.definitions) {
|
|
24
|
+
const defRegex = /\$def\.(\w+)/g;
|
|
25
|
+
let match;
|
|
26
|
+
while ((match = defRegex.exec(text)) !== null) {
|
|
27
|
+
if (!(match[1] in context.definitions)) {
|
|
28
|
+
issues.push({
|
|
29
|
+
message: `Unknown definition "$def.${match[1]}". Defined: ${Object.keys(context.definitions).join(', ') || 'none'}`,
|
|
30
|
+
severity: 'warning',
|
|
31
|
+
startIndex: match.index,
|
|
32
|
+
endIndex: match.index + match[0].length,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// Check $secret. references
|
|
38
|
+
if (context.secrets) {
|
|
39
|
+
const secretRegex = /\$secret\.(\w+)/g;
|
|
40
|
+
let match;
|
|
41
|
+
while ((match = secretRegex.exec(text)) !== null) {
|
|
42
|
+
if (!context.secrets.includes(match[1])) {
|
|
43
|
+
issues.push({
|
|
44
|
+
message: `Unknown secret "$secret.${match[1]}". Available: ${context.secrets.join(', ') || 'none'}`,
|
|
45
|
+
severity: 'warning',
|
|
46
|
+
startIndex: match.index,
|
|
47
|
+
endIndex: match.index + match[0].length,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Check next/before cross-references
|
|
53
|
+
if (context.stepNames?.transformers) {
|
|
54
|
+
const nextRegex = /"(?:next|before)"\s*:\s*"(\w+)"/g;
|
|
55
|
+
let match;
|
|
56
|
+
while ((match = nextRegex.exec(text)) !== null) {
|
|
57
|
+
if (!context.stepNames.transformers.includes(match[1])) {
|
|
58
|
+
issues.push({
|
|
59
|
+
message: `Unknown transformer "${match[1]}". Available: ${context.stepNames.transformers.join(', ') || 'none'}`,
|
|
60
|
+
severity: 'warning',
|
|
61
|
+
startIndex: match.index,
|
|
62
|
+
endIndex: match.index + match[0].length,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return issues;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=monaco-walkeros-markers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-walkeros-markers.js","sourceRoot":"","sources":["../../src/utils/monaco-walkeros-markers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IntelliSenseContext } from '../types/intellisense';
|
|
2
|
+
/**
|
|
3
|
+
* Update the IntelliSense context for a specific editor model.
|
|
4
|
+
*/
|
|
5
|
+
export declare function setIntelliSenseContext(modelPath: string, context: IntelliSenseContext): void;
|
|
6
|
+
/**
|
|
7
|
+
* Remove context when editor unmounts.
|
|
8
|
+
*/
|
|
9
|
+
export declare function removeIntelliSenseContext(modelPath: string): void;
|
|
10
|
+
/**
|
|
11
|
+
* Register the walkerOS CompletionItemProvider and HoverProvider for JSON.
|
|
12
|
+
* Call once on app initialization. Safe to call multiple times (idempotent).
|
|
13
|
+
*/
|
|
14
|
+
export declare function registerWalkerOSProviders(monaco: typeof import('monaco-editor')): void;
|
|
15
|
+
/**
|
|
16
|
+
* Dispose all registered providers. Call on app teardown.
|
|
17
|
+
*/
|
|
18
|
+
export declare function disposeWalkerOSProviders(): void;
|
|
19
|
+
//# sourceMappingURL=monaco-walkeros-providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-walkeros-providers.d.ts","sourceRoot":"","sources":["../../src/utils/monaco-walkeros-providers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAejE;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,mBAAmB,GAC3B,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,cAAc,eAAe,CAAC,GACrC,IAAI,CAqMN;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAK/C"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { getVariableCompletions, getDefinitionCompletions, getSecretCompletions, getPackageCompletions, getStepNameCompletions, } from './monaco-walkeros-completions';
|
|
2
|
+
// Store context per model path for scoped completions
|
|
3
|
+
const contextRegistry = new Map();
|
|
4
|
+
const disposables = [];
|
|
5
|
+
let registered = false;
|
|
6
|
+
/**
|
|
7
|
+
* Update the IntelliSense context for a specific editor model.
|
|
8
|
+
*/
|
|
9
|
+
export function setIntelliSenseContext(modelPath, context) {
|
|
10
|
+
contextRegistry.set(modelPath, context);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Remove context when editor unmounts.
|
|
14
|
+
*/
|
|
15
|
+
export function removeIntelliSenseContext(modelPath) {
|
|
16
|
+
contextRegistry.delete(modelPath);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Register the walkerOS CompletionItemProvider and HoverProvider for JSON.
|
|
20
|
+
* Call once on app initialization. Safe to call multiple times (idempotent).
|
|
21
|
+
*/
|
|
22
|
+
export function registerWalkerOSProviders(monaco) {
|
|
23
|
+
if (registered)
|
|
24
|
+
return;
|
|
25
|
+
registered = true;
|
|
26
|
+
// CompletionItemProvider
|
|
27
|
+
disposables.push(monaco.languages.registerCompletionItemProvider('json', {
|
|
28
|
+
triggerCharacters: ['"', '.', '$'],
|
|
29
|
+
provideCompletionItems(model, position) {
|
|
30
|
+
const modelPath = model.uri.toString();
|
|
31
|
+
const context = contextRegistry.get(modelPath);
|
|
32
|
+
if (!context)
|
|
33
|
+
return { suggestions: [] };
|
|
34
|
+
const lineContent = model.getLineContent(position.lineNumber);
|
|
35
|
+
const textBeforeCursor = lineContent.substring(0, position.column - 1);
|
|
36
|
+
const entries = [];
|
|
37
|
+
if (textBeforeCursor.includes('$var.') ||
|
|
38
|
+
textBeforeCursor.endsWith('"$var')) {
|
|
39
|
+
entries.push(...getVariableCompletions(context.variables));
|
|
40
|
+
}
|
|
41
|
+
else if (textBeforeCursor.includes('$def.') ||
|
|
42
|
+
textBeforeCursor.endsWith('"$def')) {
|
|
43
|
+
entries.push(...getDefinitionCompletions(context.definitions));
|
|
44
|
+
}
|
|
45
|
+
else if (textBeforeCursor.includes('$secret.') ||
|
|
46
|
+
textBeforeCursor.endsWith('"$secret')) {
|
|
47
|
+
entries.push(...getSecretCompletions(context.secrets));
|
|
48
|
+
}
|
|
49
|
+
else if (isInsideKey(model, position, 'package')) {
|
|
50
|
+
entries.push(...getPackageCompletions(context.packages, context.platform));
|
|
51
|
+
}
|
|
52
|
+
else if (isInsideKey(model, position, 'next') ||
|
|
53
|
+
isInsideKey(model, position, 'before')) {
|
|
54
|
+
const key = isInsideKey(model, position, 'next') ? 'next' : 'before';
|
|
55
|
+
entries.push(...getStepNameCompletions(context.stepNames, key));
|
|
56
|
+
}
|
|
57
|
+
else if (textBeforeCursor.endsWith('"$') ||
|
|
58
|
+
textBeforeCursor.endsWith('"')) {
|
|
59
|
+
entries.push(...getVariableCompletions(context.variables));
|
|
60
|
+
entries.push(...getDefinitionCompletions(context.definitions));
|
|
61
|
+
entries.push(...getSecretCompletions(context.secrets));
|
|
62
|
+
}
|
|
63
|
+
// Calculate range that covers the full $ref.name token.
|
|
64
|
+
// Monaco's getWordUntilPosition doesn't understand $ or . as word chars,
|
|
65
|
+
// so we scan backwards to find the $ that starts the reference.
|
|
66
|
+
const refStartMatch = textBeforeCursor.match(/\$(?:var|def|secret|env|code)[.:]?\w*$/);
|
|
67
|
+
const word = model.getWordUntilPosition(position);
|
|
68
|
+
const startCol = refStartMatch
|
|
69
|
+
? position.column - refStartMatch[0].length
|
|
70
|
+
: word.startColumn;
|
|
71
|
+
const range = {
|
|
72
|
+
startLineNumber: position.lineNumber,
|
|
73
|
+
endLineNumber: position.lineNumber,
|
|
74
|
+
startColumn: startCol,
|
|
75
|
+
endColumn: position.column,
|
|
76
|
+
};
|
|
77
|
+
return {
|
|
78
|
+
suggestions: entries.map((entry) => ({
|
|
79
|
+
label: entry.label,
|
|
80
|
+
insertText: entry.insertText,
|
|
81
|
+
detail: entry.detail,
|
|
82
|
+
documentation: entry.documentation,
|
|
83
|
+
kind: mapCompletionKind(monaco, entry.kind),
|
|
84
|
+
sortText: entry.sortText,
|
|
85
|
+
range,
|
|
86
|
+
})),
|
|
87
|
+
};
|
|
88
|
+
},
|
|
89
|
+
}));
|
|
90
|
+
// HoverProvider
|
|
91
|
+
disposables.push(monaco.languages.registerHoverProvider('json', {
|
|
92
|
+
provideHover(model, position) {
|
|
93
|
+
const modelPath = model.uri.toString();
|
|
94
|
+
const context = contextRegistry.get(modelPath);
|
|
95
|
+
if (!context)
|
|
96
|
+
return null;
|
|
97
|
+
const lineContent = model.getLineContent(position.lineNumber);
|
|
98
|
+
const col = position.column - 1; // 0-based index into line
|
|
99
|
+
// Helper: find a reference match at cursor position
|
|
100
|
+
function matchAtCursor(pattern) {
|
|
101
|
+
const regex = new RegExp(pattern.source, 'g');
|
|
102
|
+
let m;
|
|
103
|
+
while ((m = regex.exec(lineContent)) !== null) {
|
|
104
|
+
if (col >= m.index && col <= m.index + m[0].length)
|
|
105
|
+
return m;
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
// $var.name
|
|
110
|
+
const varMatch = matchAtCursor(/\$var\.(\w+)/);
|
|
111
|
+
if (varMatch && context.variables) {
|
|
112
|
+
const name = varMatch[1];
|
|
113
|
+
if (name in context.variables) {
|
|
114
|
+
const value = context.variables[name];
|
|
115
|
+
return {
|
|
116
|
+
range: {
|
|
117
|
+
startLineNumber: position.lineNumber,
|
|
118
|
+
startColumn: varMatch.index + 1,
|
|
119
|
+
endLineNumber: position.lineNumber,
|
|
120
|
+
endColumn: varMatch.index + varMatch[0].length + 1,
|
|
121
|
+
},
|
|
122
|
+
contents: [
|
|
123
|
+
{
|
|
124
|
+
value: `**Variable:** \`$var.${name}\`\n\n**Value:** \`${JSON.stringify(value)}\`\n\n*Resolved at runtime via variable interpolation*`,
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
contents: [
|
|
131
|
+
{
|
|
132
|
+
value: `**Unknown variable** \`$var.${name}\`\n\nDefined variables: ${Object.keys(context.variables).join(', ') || 'none'}`,
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
// $def.name
|
|
138
|
+
const defMatch = matchAtCursor(/\$def\.(\w+)/);
|
|
139
|
+
if (defMatch && context.definitions) {
|
|
140
|
+
const name = defMatch[1];
|
|
141
|
+
if (name in context.definitions) {
|
|
142
|
+
return {
|
|
143
|
+
range: {
|
|
144
|
+
startLineNumber: position.lineNumber,
|
|
145
|
+
startColumn: defMatch.index + 1,
|
|
146
|
+
endLineNumber: position.lineNumber,
|
|
147
|
+
endColumn: defMatch.index + defMatch[0].length + 1,
|
|
148
|
+
},
|
|
149
|
+
contents: [
|
|
150
|
+
{
|
|
151
|
+
value: `**Definition:** \`$def.${name}\`\n\n*Injects reusable config fragment at runtime*`,
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
contents: [
|
|
158
|
+
{
|
|
159
|
+
value: `**Unknown definition** \`$def.${name}\`\n\nDefined: ${Object.keys(context.definitions).join(', ') || 'none'}`,
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
// $secret.name
|
|
165
|
+
const secretMatch = matchAtCursor(/\$secret\.(\w+)/);
|
|
166
|
+
if (secretMatch) {
|
|
167
|
+
const name = secretMatch[1];
|
|
168
|
+
if (context.secrets?.includes(name)) {
|
|
169
|
+
return {
|
|
170
|
+
range: {
|
|
171
|
+
startLineNumber: position.lineNumber,
|
|
172
|
+
startColumn: secretMatch.index + 1,
|
|
173
|
+
endLineNumber: position.lineNumber,
|
|
174
|
+
endColumn: secretMatch.index + secretMatch[0].length + 1,
|
|
175
|
+
},
|
|
176
|
+
contents: [
|
|
177
|
+
{
|
|
178
|
+
value: `**Secret:** \`$secret.${name}\`\n\n*Securely injected at runtime. Value not stored in config.*`,
|
|
179
|
+
},
|
|
180
|
+
],
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
contents: [
|
|
185
|
+
{
|
|
186
|
+
value: `**Unknown secret** \`$secret.${name}\`\n\nAvailable secrets: ${context.secrets?.join(', ') || 'none'}`,
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
return null;
|
|
192
|
+
},
|
|
193
|
+
}));
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Dispose all registered providers. Call on app teardown.
|
|
197
|
+
*/
|
|
198
|
+
export function disposeWalkerOSProviders() {
|
|
199
|
+
for (const d of disposables)
|
|
200
|
+
d.dispose();
|
|
201
|
+
disposables.length = 0;
|
|
202
|
+
registered = false;
|
|
203
|
+
contextRegistry.clear();
|
|
204
|
+
}
|
|
205
|
+
function mapCompletionKind(monaco, kind) {
|
|
206
|
+
switch (kind) {
|
|
207
|
+
case 'variable':
|
|
208
|
+
return monaco.languages.CompletionItemKind.Variable;
|
|
209
|
+
case 'reference':
|
|
210
|
+
return monaco.languages.CompletionItemKind.Reference;
|
|
211
|
+
case 'secret':
|
|
212
|
+
return monaco.languages.CompletionItemKind.Constant;
|
|
213
|
+
case 'module':
|
|
214
|
+
return monaco.languages.CompletionItemKind.Module;
|
|
215
|
+
case 'property':
|
|
216
|
+
return monaco.languages.CompletionItemKind.Property;
|
|
217
|
+
default:
|
|
218
|
+
return monaco.languages.CompletionItemKind.Text;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Check if cursor is inside the value of a specific JSON key.
|
|
223
|
+
*/
|
|
224
|
+
function isInsideKey(model, position, key) {
|
|
225
|
+
const lineContent = model.getLineContent(position.lineNumber);
|
|
226
|
+
const pattern = new RegExp(`"${key}"\\s*:\\s*"`);
|
|
227
|
+
return pattern.test(lineContent);
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=monaco-walkeros-providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-walkeros-providers.js","sourceRoot":"","sources":["../../src/utils/monaco-walkeros-providers.ts"],"names":[],"mappings":"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"}
|