@walkeros/explorer 2.1.0 → 2.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/AGENT.md +19 -0
- package/STYLE.md +6 -0
- package/dist/chunk-3TPAJIVM.mjs +580 -0
- package/dist/chunk-3TPAJIVM.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 +53 -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 +191 -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 +1059 -43
- package/dist/index.mjs.map +1 -1
- package/dist/{monaco-types-OLSF6MIE.mjs → monaco-types-7HYTHECU.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-json-schema.d.ts +11 -0
- package/dist/utils/monaco-json-schema.d.ts.map +1 -1
- package/dist/utils/monaco-json-schema.js +13 -3
- package/dist/utils/monaco-json-schema.js.map +1 -1
- 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-7HYTHECU.mjs.map} +0 -0
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
removeDestinationType,
|
|
15
15
|
removeTypeLibrary,
|
|
16
16
|
updateTypeLibrary
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-3TPAJIVM.mjs";
|
|
18
18
|
export {
|
|
19
19
|
addDestinationType,
|
|
20
20
|
addFunctionContextTypes,
|
|
@@ -31,4 +31,4 @@ export {
|
|
|
31
31
|
removeTypeLibrary,
|
|
32
32
|
updateTypeLibrary
|
|
33
33
|
};
|
|
34
|
-
//# sourceMappingURL=monaco-types-
|
|
34
|
+
//# sourceMappingURL=monaco-types-7HYTHECU.mjs.map
|
package/dist/styles.css
CHANGED
|
@@ -1981,6 +1981,37 @@
|
|
|
1981
1981
|
margin: 0;
|
|
1982
1982
|
cursor: pointer;
|
|
1983
1983
|
}
|
|
1984
|
+
.elb-codebox-marker-badge {
|
|
1985
|
+
display: flex;
|
|
1986
|
+
align-items: center;
|
|
1987
|
+
gap: 3px;
|
|
1988
|
+
padding: 2px 6px;
|
|
1989
|
+
border: none;
|
|
1990
|
+
border-radius: var(--radius-button);
|
|
1991
|
+
cursor: pointer;
|
|
1992
|
+
font-size: calc(var(--font-size-base) - 2px);
|
|
1993
|
+
font-weight: var(--font-weight-semibold);
|
|
1994
|
+
font-family: var(--font-mono);
|
|
1995
|
+
line-height: 1;
|
|
1996
|
+
transition: all 0.15s;
|
|
1997
|
+
}
|
|
1998
|
+
.elb-codebox-marker-badge svg {
|
|
1999
|
+
flex-shrink: 0;
|
|
2000
|
+
}
|
|
2001
|
+
.elb-codebox-marker-badge--error {
|
|
2002
|
+
color: var(--color-alert-error-text);
|
|
2003
|
+
background: var(--color-alert-error-bg);
|
|
2004
|
+
}
|
|
2005
|
+
.elb-codebox-marker-badge--error:hover {
|
|
2006
|
+
background: var(--color-alert-error-border);
|
|
2007
|
+
}
|
|
2008
|
+
.elb-codebox-marker-badge--warning {
|
|
2009
|
+
color: var(--color-alert-warning-text);
|
|
2010
|
+
background: var(--color-alert-warning-bg);
|
|
2011
|
+
}
|
|
2012
|
+
.elb-codebox-marker-badge--warning:hover {
|
|
2013
|
+
background: var(--color-alert-warning-border);
|
|
2014
|
+
}
|
|
1984
2015
|
.elb-code-snippet {
|
|
1985
2016
|
min-height: var(--height-snippet-min);
|
|
1986
2017
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface PackageInfo {
|
|
2
|
+
package: string;
|
|
3
|
+
shortName: string;
|
|
4
|
+
type: 'source' | 'destination' | 'transformer';
|
|
5
|
+
platform: 'web' | 'server';
|
|
6
|
+
description?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface IntelliSenseContext {
|
|
9
|
+
/** Variable names and values from the flow's `variables` section */
|
|
10
|
+
variables?: Record<string, string | number | boolean>;
|
|
11
|
+
/** Definition names from the flow's `definitions` section */
|
|
12
|
+
definitions?: Record<string, unknown>;
|
|
13
|
+
/** Secret names available in the project (values are NOT included) */
|
|
14
|
+
secrets?: string[];
|
|
15
|
+
/** Step names from the current flow config, by type */
|
|
16
|
+
stepNames?: {
|
|
17
|
+
sources?: string[];
|
|
18
|
+
destinations?: string[];
|
|
19
|
+
transformers?: string[];
|
|
20
|
+
};
|
|
21
|
+
/** Contract entities and their actions */
|
|
22
|
+
contract?: Array<{
|
|
23
|
+
entity: string;
|
|
24
|
+
actions: string[];
|
|
25
|
+
}>;
|
|
26
|
+
/** Available packages for autocomplete */
|
|
27
|
+
packages?: PackageInfo[];
|
|
28
|
+
/** Current platform context (web or server) */
|
|
29
|
+
platform?: 'web' | 'server';
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=intellisense.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intellisense.d.ts","sourceRoot":"","sources":["../../src/types/intellisense.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAC;IAC/C,QAAQ,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAEtD,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtC,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,uDAAuD;IACvD,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IAEF,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;IAEH,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAEzB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intellisense.js","sourceRoot":"","sources":["../../src/types/intellisense.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IntelliSenseContext } from '../types/intellisense';
|
|
2
|
+
/**
|
|
3
|
+
* Extract IntelliSense context from a Flow.Setup JSON string.
|
|
4
|
+
*
|
|
5
|
+
* Parses the JSON, walks setup → configs → steps, and collects
|
|
6
|
+
* all discoverable variables, definitions, step names, packages,
|
|
7
|
+
* platform, and contract entities.
|
|
8
|
+
*
|
|
9
|
+
* Returns `{}` for invalid JSON or non-Flow structures.
|
|
10
|
+
* Pure function — no side effects, no state.
|
|
11
|
+
*/
|
|
12
|
+
export declare function extractFlowIntelliSenseContext(json: string): Partial<IntelliSenseContext>;
|
|
13
|
+
//# sourceMappingURL=monaco-intellisense-flow-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-intellisense-flow-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/monaco-intellisense-flow-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,uBAAuB,CAAC;AAE9E;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mBAAmB,CAAC,CA4G9B"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract IntelliSense context from a Flow.Setup JSON string.
|
|
3
|
+
*
|
|
4
|
+
* Parses the JSON, walks setup → configs → steps, and collects
|
|
5
|
+
* all discoverable variables, definitions, step names, packages,
|
|
6
|
+
* platform, and contract entities.
|
|
7
|
+
*
|
|
8
|
+
* Returns `{}` for invalid JSON or non-Flow structures.
|
|
9
|
+
* Pure function — no side effects, no state.
|
|
10
|
+
*/
|
|
11
|
+
export function extractFlowIntelliSenseContext(json) {
|
|
12
|
+
let parsed;
|
|
13
|
+
try {
|
|
14
|
+
parsed = JSON.parse(json);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return {};
|
|
18
|
+
}
|
|
19
|
+
if (!isFlowSetup(parsed))
|
|
20
|
+
return {};
|
|
21
|
+
const variables = {};
|
|
22
|
+
const definitions = {};
|
|
23
|
+
const sources = [];
|
|
24
|
+
const destinations = [];
|
|
25
|
+
const transformers = [];
|
|
26
|
+
const packages = [];
|
|
27
|
+
const contractEntities = [];
|
|
28
|
+
let platform;
|
|
29
|
+
// Setup-level
|
|
30
|
+
mergeVars(variables, parsed.variables);
|
|
31
|
+
mergeDefs(definitions, parsed.definitions);
|
|
32
|
+
extractContract(contractEntities, parsed.contract);
|
|
33
|
+
// Walk each flow config
|
|
34
|
+
for (const config of Object.values(parsed.flows)) {
|
|
35
|
+
if (!isObject(config))
|
|
36
|
+
continue;
|
|
37
|
+
// Platform detection (first match wins)
|
|
38
|
+
if (!platform) {
|
|
39
|
+
if ('web' in config)
|
|
40
|
+
platform = 'web';
|
|
41
|
+
else if ('server' in config)
|
|
42
|
+
platform = 'server';
|
|
43
|
+
}
|
|
44
|
+
// Config-level variables/definitions/contract
|
|
45
|
+
mergeVars(variables, config.variables);
|
|
46
|
+
mergeDefs(definitions, config.definitions);
|
|
47
|
+
extractContract(contractEntities, config.contract);
|
|
48
|
+
// Sources
|
|
49
|
+
if (isObject(config.sources)) {
|
|
50
|
+
for (const [name, ref] of Object.entries(config.sources)) {
|
|
51
|
+
sources.push(name);
|
|
52
|
+
if (isObject(ref)) {
|
|
53
|
+
mergeVars(variables, ref.variables);
|
|
54
|
+
mergeDefs(definitions, ref.definitions);
|
|
55
|
+
if (typeof ref.package === 'string') {
|
|
56
|
+
packages.push({
|
|
57
|
+
package: ref.package,
|
|
58
|
+
shortName: name,
|
|
59
|
+
type: 'source',
|
|
60
|
+
platform: platform || 'web',
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Destinations
|
|
67
|
+
if (isObject(config.destinations)) {
|
|
68
|
+
for (const [name, ref] of Object.entries(config.destinations)) {
|
|
69
|
+
destinations.push(name);
|
|
70
|
+
if (isObject(ref)) {
|
|
71
|
+
mergeVars(variables, ref.variables);
|
|
72
|
+
mergeDefs(definitions, ref.definitions);
|
|
73
|
+
if (typeof ref.package === 'string') {
|
|
74
|
+
packages.push({
|
|
75
|
+
package: ref.package,
|
|
76
|
+
shortName: name,
|
|
77
|
+
type: 'destination',
|
|
78
|
+
platform: platform || 'web',
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Transformers
|
|
85
|
+
if (isObject(config.transformers)) {
|
|
86
|
+
for (const [name, ref] of Object.entries(config.transformers)) {
|
|
87
|
+
transformers.push(name);
|
|
88
|
+
if (isObject(ref)) {
|
|
89
|
+
mergeVars(variables, ref.variables);
|
|
90
|
+
mergeDefs(definitions, ref.definitions);
|
|
91
|
+
if (typeof ref.package === 'string') {
|
|
92
|
+
packages.push({
|
|
93
|
+
package: ref.package,
|
|
94
|
+
shortName: name,
|
|
95
|
+
type: 'transformer',
|
|
96
|
+
platform: platform || 'web',
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const result = {
|
|
104
|
+
variables,
|
|
105
|
+
definitions,
|
|
106
|
+
stepNames: { sources, destinations, transformers },
|
|
107
|
+
};
|
|
108
|
+
if (platform)
|
|
109
|
+
result.platform = platform;
|
|
110
|
+
if (packages.length > 0)
|
|
111
|
+
result.packages = packages;
|
|
112
|
+
if (contractEntities.length > 0)
|
|
113
|
+
result.contract = contractEntities;
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
// --- Helpers ---
|
|
117
|
+
function isObject(v) {
|
|
118
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
119
|
+
}
|
|
120
|
+
function isFlowSetup(v) {
|
|
121
|
+
return isObject(v) && 'version' in v && 'flows' in v && isObject(v.flows);
|
|
122
|
+
}
|
|
123
|
+
function isPrimitive(v) {
|
|
124
|
+
return (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean');
|
|
125
|
+
}
|
|
126
|
+
function mergeVars(target, source) {
|
|
127
|
+
if (!isObject(source))
|
|
128
|
+
return;
|
|
129
|
+
for (const [k, v] of Object.entries(source)) {
|
|
130
|
+
if (isPrimitive(v))
|
|
131
|
+
target[k] = v;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function mergeDefs(target, source) {
|
|
135
|
+
if (!isObject(source))
|
|
136
|
+
return;
|
|
137
|
+
for (const [k, v] of Object.entries(source)) {
|
|
138
|
+
target[k] = v;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function extractContract(target, contract) {
|
|
142
|
+
if (!isObject(contract))
|
|
143
|
+
return;
|
|
144
|
+
for (const [key, value] of Object.entries(contract)) {
|
|
145
|
+
if (key.startsWith('$') || !isObject(value))
|
|
146
|
+
continue;
|
|
147
|
+
// Avoid duplicates when merging setup + config contracts
|
|
148
|
+
const existing = target.find((e) => e.entity === key);
|
|
149
|
+
const actions = Object.keys(value);
|
|
150
|
+
if (existing) {
|
|
151
|
+
for (const a of actions) {
|
|
152
|
+
if (!existing.actions.includes(a))
|
|
153
|
+
existing.actions.push(a);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
target.push({ entity: key, actions });
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=monaco-intellisense-flow-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-intellisense-flow-extractor.js","sourceRoot":"","sources":["../../src/utils/monaco-intellisense-flow-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Monaco JSON Schema Registry
|
|
3
|
+
*
|
|
4
|
+
* Manages JSON Schema registrations for Monaco's JSON language service.
|
|
5
|
+
* Multiple Code instances can register schemas concurrently — the registry
|
|
6
|
+
* accumulates all schemas and issues a single setDiagnosticsOptions() call.
|
|
7
|
+
*
|
|
8
|
+
* The monaco-editor `json` namespace is lazy-loaded on first use to keep
|
|
9
|
+
* this module SSR-safe. By the time registerJsonSchema() is called (from
|
|
10
|
+
* useEffect in the Code atom), Monaco is already loaded in the browser.
|
|
11
|
+
*/
|
|
1
12
|
/**
|
|
2
13
|
* Generate a unique model path for a Code instance.
|
|
3
14
|
* Used as the `path` prop for @monaco-editor/react Editor.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco-json-schema.d.ts","sourceRoot":"","sources":["../../src/utils/monaco-json-schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"monaco-json-schema.d.ts","sourceRoot":"","sources":["../../src/utils/monaco-json-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA0BH;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAON;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAG5D;AAeD;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAGtC"}
|
|
@@ -5,11 +5,21 @@
|
|
|
5
5
|
* Multiple Code instances can register schemas concurrently — the registry
|
|
6
6
|
* accumulates all schemas and issues a single setDiagnosticsOptions() call.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* The monaco-editor `json` namespace is lazy-loaded on first use to keep
|
|
9
|
+
* this module SSR-safe. By the time registerJsonSchema() is called (from
|
|
10
|
+
* useEffect in the Code atom), Monaco is already loaded in the browser.
|
|
9
11
|
*/
|
|
10
|
-
import { json } from 'monaco-editor';
|
|
11
12
|
const schemaRegistry = new Map();
|
|
12
13
|
let idCounter = 0;
|
|
14
|
+
// Lazy-loaded Monaco JSON namespace (cached after first access)
|
|
15
|
+
let _json;
|
|
16
|
+
function getJson() {
|
|
17
|
+
if (!_json) {
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
19
|
+
_json = require('monaco-editor').json;
|
|
20
|
+
}
|
|
21
|
+
return _json;
|
|
22
|
+
}
|
|
13
23
|
/**
|
|
14
24
|
* Generate a unique model path for a Code instance.
|
|
15
25
|
* Used as the `path` prop for @monaco-editor/react Editor.
|
|
@@ -41,7 +51,7 @@ export function unregisterJsonSchema(modelPath) {
|
|
|
41
51
|
* Apply all registered schemas to Monaco's JSON language service.
|
|
42
52
|
*/
|
|
43
53
|
function applySchemas() {
|
|
44
|
-
|
|
54
|
+
getJson().jsonDefaults.setDiagnosticsOptions({
|
|
45
55
|
validate: true,
|
|
46
56
|
schemaValidation: 'error',
|
|
47
57
|
schemaRequest: 'ignore',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco-json-schema.js","sourceRoot":"","sources":["../../src/utils/monaco-json-schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"monaco-json-schema.js","sourceRoot":"","sources":["../../src/utils/monaco-json-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,MAAM,cAAc,GAAG,IAAI,GAAG,EAA4B,CAAC;AAE3D,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB,gEAAgE;AAChE,IAAI,KAAsD,CAAC;AAE3D,SAAS,OAAO;IACd,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,iEAAiE;QACjE,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IACD,OAAO,KAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,4BAA4B,EAAE,SAAS,OAAO,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,MAA+B;IAE/B,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;QAC5B,GAAG,EAAE,qBAAqB,SAAS,EAAE;QACrC,SAAS,EAAE,CAAC,SAAS,CAAC;QACtB,MAAM;KACP,CAAC,CAAC;IACH,YAAY,EAAE,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY;IACnB,OAAO,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC;QAC3C,QAAQ,EAAE,IAAI;QACd,gBAAgB,EAAE,OAAO;QACzB,aAAa,EAAE,QAAQ;QACvB,mBAAmB,EAAE,KAAK;QAC1B,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;KAC7C,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,cAAc,CAAC,KAAK,EAAE,CAAC;IACvB,YAAY,EAAE,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type AnySchema = Record<string, any>;
|
|
2
|
+
/**
|
|
3
|
+
* Returns an enriched JSON Schema for the walkerOS Contract editor.
|
|
4
|
+
* Structure: { $tagging: number, entity: { action: JSONSchema } }
|
|
5
|
+
*/
|
|
6
|
+
export declare function getEnrichedContractSchema(): AnySchema;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=monaco-schema-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-schema-contract.d.ts","sourceRoot":"","sources":["../../src/utils/monaco-schema-contract.ts"],"names":[],"mappings":"AACA,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAErC;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,SAAS,CAsErD"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns an enriched JSON Schema for the walkerOS Contract editor.
|
|
3
|
+
* Structure: { $tagging: number, entity: { action: JSONSchema } }
|
|
4
|
+
*/
|
|
5
|
+
export function getEnrichedContractSchema() {
|
|
6
|
+
return {
|
|
7
|
+
type: 'object',
|
|
8
|
+
markdownDescription: 'walkerOS Data Contract. Defines entity→action schemas for event validation.\n\n' +
|
|
9
|
+
'```json\n{\n "$tagging": 1,\n "page": {\n' +
|
|
10
|
+
' "view": {\n "type": "object",\n "properties": {\n' +
|
|
11
|
+
' "title": { "type": "string" }\n }\n }\n }\n}\n```',
|
|
12
|
+
properties: {
|
|
13
|
+
$tagging: {
|
|
14
|
+
type: 'number',
|
|
15
|
+
markdownDescription: 'Contract version number. Increment when making breaking changes.\n\n```json\n"$tagging": 1\n```',
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
additionalProperties: {
|
|
19
|
+
type: 'object',
|
|
20
|
+
markdownDescription: 'Entity name. Contains action→schema mappings.',
|
|
21
|
+
additionalProperties: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
markdownDescription: 'Action schema (JSON Schema). Defines valid event data for this entity+action.\n\n' +
|
|
24
|
+
'```json\n{\n "type": "object",\n "properties": {\n' +
|
|
25
|
+
' "name": { "type": "string" },\n "price": { "type": "number" }\n' +
|
|
26
|
+
' },\n "required": ["name"]\n}\n```',
|
|
27
|
+
defaultSnippets: [
|
|
28
|
+
{
|
|
29
|
+
label: 'Object schema',
|
|
30
|
+
description: 'Schema with typed properties',
|
|
31
|
+
body: {
|
|
32
|
+
type: 'object',
|
|
33
|
+
properties: {
|
|
34
|
+
'${1:name}': { type: '${2:string}' },
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
defaultSnippets: [
|
|
41
|
+
{
|
|
42
|
+
label: 'Add action',
|
|
43
|
+
description: 'Action with event data schema',
|
|
44
|
+
body: {
|
|
45
|
+
'${1:action}': {
|
|
46
|
+
type: 'object',
|
|
47
|
+
properties: {
|
|
48
|
+
'${2:property}': { type: '${3:string}' },
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
defaultSnippets: [
|
|
56
|
+
{
|
|
57
|
+
label: 'Entity with action',
|
|
58
|
+
description: 'New entity with one action and properties',
|
|
59
|
+
body: {
|
|
60
|
+
'${1:entity}': {
|
|
61
|
+
'${2:action}': {
|
|
62
|
+
type: 'object',
|
|
63
|
+
properties: {
|
|
64
|
+
'${3:property}': { type: '${4:string}' },
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=monaco-schema-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-schema-contract.js","sourceRoot":"","sources":["../../src/utils/monaco-schema-contract.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,mBAAmB,EACjB,iFAAiF;YACjF,6CAA6C;YAC7C,iEAAiE;YACjE,8DAA8D;QAChE,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,mBAAmB,EACjB,iGAAiG;aACpG;SACF;QACD,oBAAoB,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE,+CAA+C;YACpE,oBAAoB,EAAE;gBACpB,IAAI,EAAE,QAAQ;gBACd,mBAAmB,EACjB,mFAAmF;oBACnF,sDAAsD;oBACtD,wEAAwE;oBACxE,sCAAsC;gBACxC,eAAe,EAAE;oBACf;wBACE,KAAK,EAAE,eAAe;wBACtB,WAAW,EAAE,8BAA8B;wBAC3C,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;6BACrC;yBACF;qBACF;iBACF;aACF;YACD,eAAe,EAAE;gBACf;oBACE,KAAK,EAAE,YAAY;oBACnB,WAAW,EAAE,+BAA+B;oBAC5C,IAAI,EAAE;wBACJ,aAAa,EAAE;4BACb,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;6BACzC;yBACF;qBACF;iBACF;aACF;SACF;QACD,eAAe,EAAE;YACf;gBACE,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EAAE,2CAA2C;gBACxD,IAAI,EAAE;oBACJ,aAAa,EAAE;wBACb,aAAa,EAAE;4BACb,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;6BACzC;yBACF;qBACF;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface MonacoSchemaExtension {
|
|
2
|
+
defaultSnippets?: Array<{
|
|
3
|
+
label: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
markdownDescription?: string;
|
|
6
|
+
body?: unknown;
|
|
7
|
+
bodyText?: string;
|
|
8
|
+
}>;
|
|
9
|
+
markdownDescription?: string;
|
|
10
|
+
enumDescriptions?: string[];
|
|
11
|
+
markdownEnumDescriptions?: string[];
|
|
12
|
+
deprecationMessage?: string;
|
|
13
|
+
errorMessage?: string;
|
|
14
|
+
patternErrorMessage?: string;
|
|
15
|
+
doNotSuggest?: boolean;
|
|
16
|
+
suggestSortText?: string;
|
|
17
|
+
}
|
|
18
|
+
type EnrichmentMap = Record<string, MonacoSchemaExtension>;
|
|
19
|
+
/**
|
|
20
|
+
* Deep-merges Monaco-specific JSON Schema extensions into a base schema.
|
|
21
|
+
* Keys in the enrichment map are dot-paths (e.g., 'properties.sources').
|
|
22
|
+
* Empty string '' targets the root. Does not mutate the original.
|
|
23
|
+
*/
|
|
24
|
+
export declare function enrichSchema(baseSchema: Record<string, unknown>, enrichments: EnrichmentMap): Record<string, unknown>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=monaco-schema-enrichment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-schema-enrichment.d.ts","sourceRoot":"","sources":["../../src/utils/monaco-schema-enrichment.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,WAAW,EAAE,aAAa,GACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWzB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep-merges Monaco-specific JSON Schema extensions into a base schema.
|
|
3
|
+
* Keys in the enrichment map are dot-paths (e.g., 'properties.sources').
|
|
4
|
+
* Empty string '' targets the root. Does not mutate the original.
|
|
5
|
+
*/
|
|
6
|
+
export function enrichSchema(baseSchema, enrichments) {
|
|
7
|
+
const schema = JSON.parse(JSON.stringify(baseSchema));
|
|
8
|
+
for (const [path, extensions] of Object.entries(enrichments)) {
|
|
9
|
+
const target = path === '' ? schema : getNestedObject(schema, path);
|
|
10
|
+
if (target && typeof target === 'object') {
|
|
11
|
+
Object.assign(target, extensions);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return schema;
|
|
15
|
+
}
|
|
16
|
+
function getNestedObject(obj, path) {
|
|
17
|
+
const keys = path.split('.');
|
|
18
|
+
let current = obj;
|
|
19
|
+
for (const key of keys) {
|
|
20
|
+
if (current &&
|
|
21
|
+
typeof current === 'object' &&
|
|
22
|
+
key in current) {
|
|
23
|
+
current = current[key];
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return current;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=monaco-schema-enrichment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-schema-enrichment.js","sourceRoot":"","sources":["../../src/utils/monaco-schema-enrichment.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAmC,EACnC,WAA0B;IAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAEtD,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CACtB,GAA4B,EAC5B,IAAY;IAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,OAAO,GAAY,GAAG,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IACE,OAAO;YACP,OAAO,OAAO,KAAK,QAAQ;YAC3B,GAAG,IAAK,OAAmC,EAC3C,CAAC;YACD,OAAO,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,OAA8C,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type AnySchema = Record<string, any>;
|
|
2
|
+
/**
|
|
3
|
+
* Takes the base Flow.Setup JSON Schema (from @walkeros/core z.toJSONSchema())
|
|
4
|
+
* and returns an enriched version with Monaco-specific extensions.
|
|
5
|
+
*
|
|
6
|
+
* The actual schema uses anyOf[0] at the top level.
|
|
7
|
+
*/
|
|
8
|
+
export declare function enrichFlowSetupSchema(baseSchema: AnySchema): AnySchema;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=monaco-schema-flow-setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco-schema-flow-setup.d.ts","sourceRoot":"","sources":["../../src/utils/monaco-schema-flow-setup.ts"],"names":[],"mappings":"AAGA,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAErC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,CA8MtE"}
|