@adonis-agora/agent 0.74.0 → 0.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/dist/providers/agent_provider.d.ts.map +1 -1
- package/dist/providers/agent_provider.js +10 -0
- package/dist/providers/agent_provider.js.map +1 -1
- package/dist/src/agent-deps-factory.d.ts +3 -1
- package/dist/src/agent-deps-factory.d.ts.map +1 -1
- package/dist/src/agent-deps-factory.js +3 -0
- package/dist/src/agent-deps-factory.js.map +1 -1
- package/dist/src/agent-deps.d.ts +3 -1
- package/dist/src/agent-deps.d.ts.map +1 -1
- package/dist/src/agent-deps.js.map +1 -1
- package/dist/src/agent-loop.d.ts +7 -1
- package/dist/src/agent-loop.d.ts.map +1 -1
- package/dist/src/agent-loop.js +34 -2
- package/dist/src/agent-loop.js.map +1 -1
- package/dist/src/channels/handler.d.ts +8 -0
- package/dist/src/channels/handler.d.ts.map +1 -1
- package/dist/src/channels/handler.js +11 -0
- package/dist/src/channels/handler.js.map +1 -1
- package/dist/src/channels/texts.d.ts +2 -0
- package/dist/src/channels/texts.d.ts.map +1 -1
- package/dist/src/channels/texts.js.map +1 -1
- package/dist/src/genui/catalog.d.ts.map +1 -1
- package/dist/src/genui/catalog.js +10 -2
- package/dist/src/genui/catalog.js.map +1 -1
- package/dist/src/genui/channels.d.ts +80 -7
- package/dist/src/genui/channels.d.ts.map +1 -1
- package/dist/src/genui/channels.js +209 -4
- package/dist/src/genui/channels.js.map +1 -1
- package/dist/src/genui/index.d.ts.map +1 -1
- package/dist/src/genui/index.js +7 -7
- package/dist/src/genui/index.js.map +1 -1
- package/dist/src/genui/kit/bundle.d.ts +12 -0
- package/dist/src/genui/kit/bundle.d.ts.map +1 -1
- package/dist/src/genui/kit/bundle.js +124 -133
- package/dist/src/genui/kit/bundle.js.map +1 -1
- package/dist/src/genui/kit/discover.d.ts +8 -5
- package/dist/src/genui/kit/discover.d.ts.map +1 -1
- package/dist/src/genui/kit/discover.js +45 -18
- package/dist/src/genui/kit/discover.js.map +1 -1
- package/dist/src/genui/kit/docs.d.ts +3 -1
- package/dist/src/genui/kit/docs.d.ts.map +1 -1
- package/dist/src/genui/kit/docs.js +22 -5
- package/dist/src/genui/kit/docs.js.map +1 -1
- package/dist/src/genui/kit/files.d.ts +22 -10
- package/dist/src/genui/kit/files.d.ts.map +1 -1
- package/dist/src/genui/kit/files.js +117 -19
- package/dist/src/genui/kit/files.js.map +1 -1
- package/dist/src/genui/kit/index.d.ts +5 -3
- package/dist/src/genui/kit/index.d.ts.map +1 -1
- package/dist/src/genui/kit/index.js +4 -2
- package/dist/src/genui/kit/index.js.map +1 -1
- package/dist/src/genui/kit/plugin.d.ts +17 -9
- package/dist/src/genui/kit/plugin.d.ts.map +1 -1
- package/dist/src/genui/kit/plugin.js +196 -129
- package/dist/src/genui/kit/plugin.js.map +1 -1
- package/dist/src/genui/kit/styles.d.ts +83 -0
- package/dist/src/genui/kit/styles.d.ts.map +1 -0
- package/dist/src/genui/kit/styles.js +406 -0
- package/dist/src/genui/kit/styles.js.map +1 -0
- package/dist/src/genui/kit/vite-build.d.ts +33 -0
- package/dist/src/genui/kit/vite-build.d.ts.map +1 -0
- package/dist/src/genui/kit/vite-build.js +195 -0
- package/dist/src/genui/kit/vite-build.js.map +1 -0
- package/dist/src/genui/kit/write.d.ts +20 -8
- package/dist/src/genui/kit/write.d.ts.map +1 -1
- package/dist/src/genui/kit/write.js +54 -16
- package/dist/src/genui/kit/write.js.map +1 -1
- package/dist/src/genui/public.d.ts +5 -4
- package/dist/src/genui/public.d.ts.map +1 -1
- package/dist/src/genui/public.js +5 -4
- package/dist/src/genui/public.js.map +1 -1
- package/dist/src/genui/sandbox-jsx-frame-generated.d.ts +2 -0
- package/dist/src/genui/sandbox-jsx-frame-generated.d.ts.map +1 -0
- package/dist/src/genui/sandbox-jsx-frame-generated.js +4 -0
- package/dist/src/genui/sandbox-jsx-frame-generated.js.map +1 -0
- package/dist/src/genui/sandbox-kit.d.ts +50 -17
- package/dist/src/genui/sandbox-kit.d.ts.map +1 -1
- package/dist/src/genui/sandbox-kit.js +20 -10
- package/dist/src/genui/sandbox-kit.js.map +1 -1
- package/dist/src/genui/sandbox-styles.d.ts +113 -0
- package/dist/src/genui/sandbox-styles.d.ts.map +1 -0
- package/dist/src/genui/sandbox-styles.js +487 -0
- package/dist/src/genui/sandbox-styles.js.map +1 -0
- package/dist/src/genui/sandbox-theme.d.ts +13 -9
- package/dist/src/genui/sandbox-theme.d.ts.map +1 -1
- package/dist/src/genui/sandbox-theme.js +52 -60
- package/dist/src/genui/sandbox-theme.js.map +1 -1
- package/dist/src/genui/sandbox.d.ts +14 -15
- package/dist/src/genui/sandbox.d.ts.map +1 -1
- package/dist/src/genui/sandbox.js +74 -15
- package/dist/src/genui/sandbox.js.map +1 -1
- package/dist/src/genui/tools.d.ts +20 -0
- package/dist/src/genui/tools.d.ts.map +1 -1
- package/dist/src/genui/tools.js +19 -4
- package/dist/src/genui/tools.js.map +1 -1
- package/dist/src/hooks/genui_kit.d.ts +6 -2
- package/dist/src/hooks/genui_kit.d.ts.map +1 -1
- package/dist/src/hooks/genui_kit.js +21 -9
- package/dist/src/hooks/genui_kit.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/negotiated-tool-ui.d.ts +27 -0
- package/dist/src/negotiated-tool-ui.d.ts.map +1 -1
- package/dist/src/negotiated-tool-ui.js +56 -0
- package/dist/src/negotiated-tool-ui.js.map +1 -1
- package/dist/src/react/core/genui/sandbox-assets.d.ts +4 -1
- package/dist/src/react/core/genui/sandbox-assets.d.ts.map +1 -1
- package/dist/src/react/core/genui/sandbox-assets.js +17 -5
- package/dist/src/react/core/genui/sandbox-assets.js.map +1 -1
- package/dist/src/react/core/genui/sandbox.d.ts +1 -1
- package/dist/src/react/core/genui/sandbox.d.ts.map +1 -1
- package/dist/src/react/core/genui/sandbox.js +24 -4
- package/dist/src/react/core/genui/sandbox.js.map +1 -1
- package/dist/src/vite/index.d.ts +10 -7
- package/dist/src/vite/index.d.ts.map +1 -1
- package/dist/src/vite/index.js +10 -7
- package/dist/src/vite/index.js.map +1 -1
- package/package.json +13 -2
|
@@ -1,144 +1,135 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The kit bundle: the app's
|
|
3
|
-
* IIFE) that sets `window.Kit`, `window.React` and `window.ReactDOM` — what the
|
|
4
|
-
* so it needs no network and no module loader. Built with the app's own Vite
|
|
5
|
-
* written), its aliases kept, so `@/lib/utils` resolves as it does in the app.
|
|
2
|
+
* The kit bundle: the app's components, its wrapper, React and ReactDOM as ONE classic script (an
|
|
3
|
+
* IIFE) that sets `window.Kit`, `window.KitWrapper`, `window.React` and `window.ReactDOM` — what the
|
|
4
|
+
* sandbox frame inlines, so it needs no network and no module loader. Built with the app's own Vite
|
|
5
|
+
* (nothing written), its aliases kept, so `@/lib/utils` resolves as it does in the app.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
import { readFileSync } from 'node:fs';
|
|
8
|
+
import { runInNewContext } from 'node:vm';
|
|
9
|
+
import { contentHash, runKitViteBuild } from './vite-build.js';
|
|
10
|
+
function entryCode(files) {
|
|
11
|
+
const modules = [...files.files, ...files.packages];
|
|
12
|
+
return [
|
|
13
|
+
'import * as React from "react";',
|
|
14
|
+
'import * as ReactDOMClient from "react-dom/client";',
|
|
15
|
+
...modules.map((module, index) => `import * as __kit${index} from ${JSON.stringify(module)};`),
|
|
16
|
+
...(files.wrapper !== undefined
|
|
17
|
+
? [`import __KitWrapper from ${JSON.stringify(files.wrapper)};`]
|
|
18
|
+
: []),
|
|
19
|
+
'var Kit = {};',
|
|
20
|
+
// In order, the first module naming a component wins (what `export *` would leave ambiguous).
|
|
21
|
+
...modules.map((_, index) => `for (var k in __kit${index}) { if (!(k in Kit) && k !== "default") Kit[k] = __kit${index}[k]; }`),
|
|
22
|
+
'window.React = React;',
|
|
23
|
+
'window.ReactDOM = ReactDOMClient;',
|
|
24
|
+
'window.Kit = Kit;',
|
|
25
|
+
...(files.wrapper !== undefined ? ['window.KitWrapper = __KitWrapper;'] : []),
|
|
26
|
+
].join('\n');
|
|
27
|
+
}
|
|
28
|
+
/** The names the kit's source files export in PascalCase (read off the text: no TypeScript needed). */
|
|
29
|
+
function sourceExportNames(files) {
|
|
30
|
+
const names = new Set();
|
|
31
|
+
for (const file of files) {
|
|
32
|
+
let text;
|
|
33
|
+
try {
|
|
34
|
+
text = readFileSync(file, 'utf8');
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
for (const match of text.matchAll(/export\s+(?:const|function|class|let|var)\s+([A-Z][A-Za-z0-9]*)/g))
|
|
40
|
+
names.add(match[1]);
|
|
41
|
+
for (const match of text.matchAll(/export\s*\{([^}]*)\}/g)) {
|
|
42
|
+
for (const part of match[1].split(',')) {
|
|
43
|
+
const name = part
|
|
44
|
+
.split(/\s+as\s+/)
|
|
45
|
+
.pop()
|
|
46
|
+
?.trim();
|
|
47
|
+
if (name !== undefined && /^[A-Z][A-Za-z0-9]*$/.test(name))
|
|
48
|
+
names.add(name);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return [...names];
|
|
16
53
|
}
|
|
17
54
|
/** Build the kit bundle with the app's Vite. */
|
|
18
55
|
export async function buildSandboxKitBundle(options) {
|
|
19
|
-
const
|
|
20
|
-
const major = Number.parseInt(String(vite.version).split('.')[0] ?? '0', 10);
|
|
21
|
-
const files = options.files;
|
|
22
|
-
const kitExports = new Set();
|
|
23
|
-
const result = await vite.build({
|
|
24
|
-
configFile: false,
|
|
56
|
+
const built = await runKitViteBuild({
|
|
25
57
|
root: options.root,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
},
|
|
39
|
-
define: { 'process.env.NODE_ENV': JSON.stringify('production') },
|
|
40
|
-
// Vite 8 compiles with Oxc, earlier versions with esbuild: the automatic JSX runtime on both.
|
|
41
|
-
// Production JSX (`jsx`, never `jsxDEV`) whatever NODE_ENV the dev server runs under.
|
|
42
|
-
...(major >= 8
|
|
43
|
-
? { oxc: { jsx: { runtime: 'automatic', development: false } } }
|
|
44
|
-
: { esbuild: { jsx: 'automatic', jsxDev: false } }),
|
|
45
|
-
plugins: [
|
|
46
|
-
{
|
|
47
|
-
name: 'genui-sandbox-kit-entry',
|
|
48
|
-
resolveId(id) {
|
|
49
|
-
if (id === ENTRY_ID || id.endsWith(ENTRY_FILE))
|
|
50
|
-
return ENTRY_ID;
|
|
51
|
-
if (id === EXPORTS_ID)
|
|
52
|
-
return EXPORTS_ID;
|
|
53
|
-
return null;
|
|
54
|
-
},
|
|
55
|
-
load(id) {
|
|
56
|
-
if (id === ENTRY_ID) {
|
|
57
|
-
return [
|
|
58
|
-
'import * as React from "react";',
|
|
59
|
-
'import * as ReactDOMClient from "react-dom/client";',
|
|
60
|
-
'import * as Kit from "\\0genui-sandbox-kit-exports";',
|
|
61
|
-
'window.React = React;',
|
|
62
|
-
'window.ReactDOM = ReactDOMClient;',
|
|
63
|
-
'window.Kit = Kit;',
|
|
64
|
-
].join('\n');
|
|
65
|
-
}
|
|
66
|
-
if (id === EXPORTS_ID)
|
|
67
|
-
return exportsCode(files);
|
|
68
|
-
return null;
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
...(options.plugins ?? []),
|
|
72
|
-
],
|
|
73
|
-
build: {
|
|
74
|
-
write: false,
|
|
75
|
-
emptyOutDir: false,
|
|
76
|
-
copyPublicDir: false,
|
|
77
|
-
minify: options.minify ?? true,
|
|
78
|
-
sourcemap: false,
|
|
79
|
-
cssCodeSplit: false,
|
|
80
|
-
reportCompressedSize: false,
|
|
81
|
-
modulePreload: false,
|
|
82
|
-
lib: {
|
|
83
|
-
entry: ENTRY_FILE,
|
|
84
|
-
formats: ['iife'],
|
|
85
|
-
name: '__genuiSandboxKit',
|
|
86
|
-
fileName: () => 'genui-sandbox-kit.js',
|
|
87
|
-
},
|
|
88
|
-
rollupOptions: { output: { inlineDynamicImports: true } },
|
|
89
|
-
},
|
|
58
|
+
entry: entryCode(options.files),
|
|
59
|
+
...(options.resolve !== undefined ? { resolve: options.resolve } : {}),
|
|
60
|
+
...(options.css !== undefined ? { css: options.css } : {}),
|
|
61
|
+
...(options.plugins !== undefined ? { plugins: options.plugins } : {}),
|
|
62
|
+
...(options.inlineAssetLimit !== undefined
|
|
63
|
+
? { inlineAssetLimit: options.inlineAssetLimit }
|
|
64
|
+
: {}),
|
|
65
|
+
...(options.inlineAssetBudget !== undefined
|
|
66
|
+
? { inlineAssetBudget: options.inlineAssetBudget }
|
|
67
|
+
: {}),
|
|
68
|
+
...(options.warn !== undefined ? { warn: options.warn } : {}),
|
|
69
|
+
...(options.minify !== undefined ? { minify: options.minify } : {}),
|
|
90
70
|
});
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
|
|
71
|
+
let code = built.code;
|
|
72
|
+
if (built.css !== '')
|
|
73
|
+
code = `window.__GENUI_KIT_CSS__=${JSON.stringify(built.css)};\n${code}`;
|
|
74
|
+
const exports = sourceExportNames(options.files.files);
|
|
75
|
+
return { code, hash: contentHash(code), exports, modules: built.modules };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The kit's components as a JavaScript project can document them, without TypeScript: run the
|
|
79
|
+
* bundle in a bare context (no DOM) and read each PascalCase export's `propTypes` keys and
|
|
80
|
+
* `defaultProps`. `[]` when the bundle does not run outside a browser.
|
|
81
|
+
*/
|
|
82
|
+
export function kitDocsFromBundle(code) {
|
|
83
|
+
const window = {};
|
|
84
|
+
try {
|
|
85
|
+
runInNewContext(code, {
|
|
86
|
+
window,
|
|
87
|
+
self: window,
|
|
88
|
+
globalThis: window,
|
|
89
|
+
console: { log() { }, warn() { }, error() { } },
|
|
90
|
+
setTimeout,
|
|
91
|
+
clearTimeout,
|
|
92
|
+
queueMicrotask,
|
|
93
|
+
}, { timeout: 2000 });
|
|
111
94
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
95
|
+
catch {
|
|
96
|
+
if (window.Kit === undefined)
|
|
97
|
+
return [];
|
|
98
|
+
}
|
|
99
|
+
const kit = (window.Kit ?? {});
|
|
100
|
+
const docs = [];
|
|
101
|
+
for (const [name, value] of Object.entries(kit)) {
|
|
102
|
+
if (!/^[A-Z][A-Za-z0-9]*$/.test(name))
|
|
103
|
+
continue;
|
|
104
|
+
if (typeof value !== 'function' && (typeof value !== 'object' || value === null))
|
|
105
|
+
continue;
|
|
106
|
+
const component = value;
|
|
107
|
+
const propTypes = (component.propTypes ?? component.render?.propTypes ?? {});
|
|
108
|
+
const defaults = (component.defaultProps ?? component.render?.defaultProps ?? {});
|
|
109
|
+
const names = [...new Set([...Object.keys(propTypes), ...Object.keys(defaults)])];
|
|
110
|
+
docs.push({
|
|
111
|
+
name,
|
|
112
|
+
props: names.slice(0, 40).map((prop) => {
|
|
113
|
+
const value = defaults[prop];
|
|
114
|
+
const shown = value === undefined || typeof value === 'function'
|
|
115
|
+
? undefined
|
|
116
|
+
: (() => {
|
|
117
|
+
try {
|
|
118
|
+
return JSON.stringify(value);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
})();
|
|
124
|
+
return {
|
|
125
|
+
name: prop,
|
|
126
|
+
type: value === undefined ? 'unknown' : Array.isArray(value) ? 'array' : typeof value,
|
|
127
|
+
required: false,
|
|
128
|
+
...(shown !== undefined && shown.length <= 80 ? { default: shown } : {}),
|
|
129
|
+
};
|
|
130
|
+
}),
|
|
131
|
+
});
|
|
136
132
|
}
|
|
137
|
-
return
|
|
138
|
-
code,
|
|
139
|
-
hash: createHash('sha256').update(code).digest('hex').slice(0, 12),
|
|
140
|
-
exports: [...kitExports],
|
|
141
|
-
modules: [...modules],
|
|
142
|
-
};
|
|
133
|
+
return docs;
|
|
143
134
|
}
|
|
144
135
|
//# sourceMappingURL=bundle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../../src/genui/kit/bundle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../../src/genui/kit/bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,10 @@ export interface SandboxKitDiscoveryOptions {
|
|
|
13
13
|
};
|
|
14
14
|
/** The plugin's live API, when Vite runs in this process (the Adonis dev server). */
|
|
15
15
|
plugin?: () => GenuiSandboxKitApi | undefined;
|
|
16
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Production: the manifest first. Otherwise the in-process dev server, else whichever of the dev
|
|
18
|
+
* descriptor and the build's descriptor was written last. Default: `NODE_ENV === 'production'`.
|
|
19
|
+
*/
|
|
17
20
|
production?: boolean;
|
|
18
21
|
/** An explicit kit url (an SPA served from elsewhere), over what is found. */
|
|
19
22
|
kitUrl?: string;
|
|
@@ -32,10 +35,10 @@ export interface ResolvedSandboxServer {
|
|
|
32
35
|
client(): SandboxClientConfig;
|
|
33
36
|
}
|
|
34
37
|
/**
|
|
35
|
-
* `sandbox: { kit: true
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
38
|
+
* `sandbox: { kit: true }` (or `true`) as the definition and the browser need it: docs and theme
|
|
39
|
+
* names from the discovery, asset urls for the client. What was asked for but not found is left out
|
|
40
|
+
* of what the browser is told (and of what the model is told), so a missing build degrades to the
|
|
41
|
+
* plain sandbox.
|
|
39
42
|
*/
|
|
40
43
|
export declare function resolveSandboxServer(sandbox: true | DefineSandboxOptions, discovery: SandboxKitDiscovery): ResolvedSandboxServer;
|
|
41
44
|
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../../src/genui/kit/discover.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAkB,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,KAAK,kBAAkB,EAA6B,MAAM,aAAa,CAAC;AAEjF,MAAM,WAAW,0BAA0B;IACzC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,kBAAkB,GAAG,SAAS,CAAC;IAC9C
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../../src/genui/kit/discover.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAkB,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,KAAK,kBAAkB,EAA6B,MAAM,aAAa,CAAC;AAEjF,MAAM,WAAW,0BAA0B;IACzC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,kBAAkB,GAAG,SAAS,CAAC;IAC9C;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,UAAU,IAAI,oBAAoB,GAAG,IAAI,CAAC;CAC3C;AAoBD,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,mBAAmB,CAyD5F;AAED,0EAA0E;AAC1E,MAAM,WAAW,qBAAqB;IACpC,mGAAmG;IACnG,MAAM,EAAE,oBAAoB,CAAC;IAC7B,kDAAkD;IAClD,MAAM,IAAI,mBAAmB,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,IAAI,GAAG,oBAAoB,EACpC,SAAS,EAAE,mBAAmB,GAC7B,qBAAqB,CA4BvB"}
|
|
@@ -18,8 +18,9 @@ function readJson(path) {
|
|
|
18
18
|
function isDescriptor(value) {
|
|
19
19
|
return (typeof value === 'object' &&
|
|
20
20
|
value !== null &&
|
|
21
|
-
value.version ===
|
|
22
|
-
Array.isArray(value.components)
|
|
21
|
+
value.version === 2 &&
|
|
22
|
+
Array.isArray(value.components) &&
|
|
23
|
+
typeof value.assets === 'object');
|
|
23
24
|
}
|
|
24
25
|
/** Find the kit (re-read when the files change — dev rewrites them). */
|
|
25
26
|
export function sandboxKitDiscovery(options) {
|
|
@@ -36,6 +37,15 @@ export function sandboxKitDiscovery(options) {
|
|
|
36
37
|
cache.set(path, { mtime, value });
|
|
37
38
|
return value;
|
|
38
39
|
};
|
|
40
|
+
const mtimeOf = (path) => {
|
|
41
|
+
try {
|
|
42
|
+
return statSync(path).mtimeMs;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return 0;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
/** The build's descriptor, and when it was written. */
|
|
39
49
|
const fromManifest = () => {
|
|
40
50
|
if (options.manifest === undefined)
|
|
41
51
|
return null;
|
|
@@ -43,32 +53,47 @@ export function sandboxKitDiscovery(options) {
|
|
|
43
53
|
const file = manifest?.[SANDBOX_KIT_MANIFEST_KEYS.descriptor]?.file;
|
|
44
54
|
if (file === undefined)
|
|
45
55
|
return null;
|
|
46
|
-
const
|
|
47
|
-
|
|
56
|
+
const path = join(resolve(options.root, options.manifest.outDir), file);
|
|
57
|
+
const value = cached(path);
|
|
58
|
+
return isDescriptor(value) ? { value, mtime: mtimeOf(path) } : null;
|
|
59
|
+
};
|
|
60
|
+
/** The dev server's descriptor file, and when it was written. */
|
|
61
|
+
const fromDevFile = () => {
|
|
62
|
+
if (options.descriptor === undefined)
|
|
63
|
+
return null;
|
|
64
|
+
const path = resolve(options.root, options.descriptor);
|
|
65
|
+
const value = cached(path);
|
|
66
|
+
return isDescriptor(value) ? { value, mtime: mtimeOf(path) } : null;
|
|
48
67
|
};
|
|
49
|
-
const
|
|
68
|
+
const find = () => {
|
|
69
|
+
// A dev server in this process is current by definition.
|
|
50
70
|
const live = options.plugin?.()?.descriptor();
|
|
51
71
|
if (live !== undefined && live !== null)
|
|
52
72
|
return live;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
73
|
+
const built = fromManifest();
|
|
74
|
+
if (production)
|
|
75
|
+
return built?.value ?? fromDevFile()?.value ?? null;
|
|
76
|
+
// Outside production, a dev descriptor left over from an earlier `vite dev` must not shadow a
|
|
77
|
+
// newer build (or the other way round): the one written last wins.
|
|
78
|
+
const dev = fromDevFile();
|
|
79
|
+
if (dev === null || built === null)
|
|
80
|
+
return dev?.value ?? built?.value ?? null;
|
|
81
|
+
return dev.mtime >= built.mtime ? dev.value : built.value;
|
|
57
82
|
};
|
|
58
83
|
return {
|
|
59
84
|
descriptor() {
|
|
60
|
-
const found =
|
|
85
|
+
const found = find();
|
|
61
86
|
if (found === null || options.kitUrl === undefined)
|
|
62
87
|
return found;
|
|
63
|
-
return { ...found, kit: { url: options.kitUrl } };
|
|
88
|
+
return { ...found, jsx: true, assets: { ...found.assets, kit: { url: options.kitUrl } } };
|
|
64
89
|
},
|
|
65
90
|
};
|
|
66
91
|
}
|
|
67
92
|
/**
|
|
68
|
-
* `sandbox: { kit: true
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
93
|
+
* `sandbox: { kit: true }` (or `true`) as the definition and the browser need it: docs and theme
|
|
94
|
+
* names from the discovery, asset urls for the client. What was asked for but not found is left out
|
|
95
|
+
* of what the browser is told (and of what the model is told), so a missing build degrades to the
|
|
96
|
+
* plain sandbox.
|
|
72
97
|
*/
|
|
73
98
|
export function resolveSandboxServer(sandbox, discovery) {
|
|
74
99
|
const given = sandbox === true ? {} : sandbox;
|
|
@@ -88,11 +113,13 @@ export function resolveSandboxServer(sandbox, discovery) {
|
|
|
88
113
|
return {
|
|
89
114
|
define,
|
|
90
115
|
client() {
|
|
91
|
-
const
|
|
116
|
+
const kitOn = given.kit !== undefined && given.kit !== false;
|
|
117
|
+
const assets = kitOn ? discovery.descriptor()?.assets : undefined;
|
|
92
118
|
return {
|
|
93
119
|
theme: themeOn,
|
|
94
|
-
...(
|
|
95
|
-
...(
|
|
120
|
+
...(assets?.kit ? { kit: assets.kit } : {}),
|
|
121
|
+
...(assets?.css ? { css: assets.css } : {}),
|
|
122
|
+
...(assets?.tailwind ? { tailwind: assets.tailwind } : {}),
|
|
96
123
|
};
|
|
97
124
|
},
|
|
98
125
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../../src/genui/kit/discover.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAA2B,yBAAyB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../../src/genui/kit/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,10 @@ export interface GenerateSandboxKitDocsOptions extends SandboxKitSourceOptions {
|
|
|
5
5
|
root?: string;
|
|
6
6
|
/** The tsconfig the kit compiles under. Default: the nearest to the kit's first file. */
|
|
7
7
|
tsconfig?: string;
|
|
8
|
-
/** Already resolved files (skips `
|
|
8
|
+
/** Already resolved files (skips `components`). */
|
|
9
9
|
files?: SandboxKitFiles;
|
|
10
|
+
/** Most components documented (a whole package can export hundreds). Default 120. */
|
|
11
|
+
maxComponents?: number;
|
|
10
12
|
/**
|
|
11
13
|
* The TypeScript module to read the types with. Default: the project's own `typescript` — one with
|
|
12
14
|
* the JavaScript compiler API (5.x/6.x; TypeScript 7's native compiler has none).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../src/genui/kit/docs.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,sBAAsB,EAAqB,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,6BAA8B,SAAQ,uBAAuB;IAC5E,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../src/genui/kit/docs.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,sBAAsB,EAAqB,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,6BAA8B,SAAQ,uBAAuB;IAC5E,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAkID;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA+HnC"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* `typescript` is an optional peer dependency (every TypeScript project has it).
|
|
7
7
|
*/
|
|
8
|
-
import { existsSync } from 'node:fs';
|
|
9
|
-
import { dirname, resolve } from 'node:path';
|
|
8
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
9
|
+
import { dirname, join, resolve } from 'node:path';
|
|
10
10
|
import { resolveSandboxKitFiles, } from './files.js';
|
|
11
11
|
/** React's own DOM props a component inherits — listed only when they say something. */
|
|
12
12
|
const KEPT_DOM_PROPS = new Set([
|
|
@@ -126,17 +126,32 @@ const fromReactTypes = (fileName) => /[\\/]node_modules[\\/](?:\.pnpm[\\/][^\\/]
|
|
|
126
126
|
export async function generateSandboxKitDocs(options = {}) {
|
|
127
127
|
const root = options.root ?? process.cwd();
|
|
128
128
|
const files = options.files ?? resolveSandboxKitFiles(root, options);
|
|
129
|
-
if (files === null || files.files.length === 0)
|
|
129
|
+
if (files === null || (files.files.length === 0 && files.packages.length === 0))
|
|
130
130
|
return [];
|
|
131
131
|
const ts = await loadTypescript(root, options.typescript);
|
|
132
|
-
|
|
132
|
+
// Packages (`@mui/material`) are read through a module re-exporting them, inside the app's
|
|
133
|
+
// node_modules so they resolve as the app's imports do.
|
|
134
|
+
const roots = [...files.files];
|
|
135
|
+
if (files.packages.length > 0) {
|
|
136
|
+
const dir = join(root, 'node_modules', '.cache', 'genui-sandbox-kit');
|
|
137
|
+
const path = join(dir, 'kit-packages.ts');
|
|
138
|
+
const text = `${files.packages.map((spec) => `export * from ${JSON.stringify(spec)};`).join('\n')}\n`;
|
|
139
|
+
mkdirSync(dir, { recursive: true });
|
|
140
|
+
if (!existsSync(path) || readFileSync(path, 'utf8') !== text)
|
|
141
|
+
writeFileSync(path, text);
|
|
142
|
+
roots.push(path);
|
|
143
|
+
}
|
|
144
|
+
const program = ts.createProgram(roots, compilerOptionsFor(ts, files, options.tsconfig, root));
|
|
133
145
|
const checker = program.getTypeChecker();
|
|
134
146
|
const format = ts.TypeFormatFlags.NoTruncation |
|
|
135
147
|
ts.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope |
|
|
136
148
|
ts.TypeFormatFlags.WriteArrowStyleSignature;
|
|
137
149
|
const docs = [];
|
|
138
150
|
const seen = new Set();
|
|
139
|
-
|
|
151
|
+
const maxComponents = options.maxComponents ?? 120;
|
|
152
|
+
for (const file of roots) {
|
|
153
|
+
if (docs.length >= maxComponents)
|
|
154
|
+
break;
|
|
140
155
|
const source = program.getSourceFile(file);
|
|
141
156
|
if (source === undefined)
|
|
142
157
|
continue;
|
|
@@ -144,6 +159,8 @@ export async function generateSandboxKitDocs(options = {}) {
|
|
|
144
159
|
if (moduleSymbol === undefined)
|
|
145
160
|
continue;
|
|
146
161
|
for (const exported of checker.getExportsOfModule(moduleSymbol)) {
|
|
162
|
+
if (docs.length >= maxComponents)
|
|
163
|
+
break;
|
|
147
164
|
const name = exported.getName();
|
|
148
165
|
if (!/^[A-Z][A-Za-z0-9]*$/.test(name) || seen.has(name))
|
|
149
166
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../../src/genui/kit/docs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../../src/genui/kit/docs.ts"],"names":[],"mappings":"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"}
|