@jskit-ai/shell-web 0.1.215 → 0.1.217
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jskit-ai/shell-web",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.217",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "node --test"
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@mdi/js": "^7.4.47"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@jskit-ai/kernel": "0.1.
|
|
34
|
+
"@jskit-ai/kernel": "0.1.213",
|
|
35
35
|
"pinia": "^4.0.3",
|
|
36
36
|
"vue": "^3.5.43",
|
|
37
37
|
"vue-router": "^5.3.1",
|
|
@@ -64,7 +64,14 @@
|
|
|
64
64
|
"optimizeDeps": {
|
|
65
65
|
"include": [
|
|
66
66
|
"@jskit-ai/shell-web/client/placement",
|
|
67
|
-
"@jskit-ai/shell-web/client/error"
|
|
67
|
+
"@jskit-ai/shell-web/client/error",
|
|
68
|
+
"@jskit-ai/shell-web/client/asyncModuleRecovery",
|
|
69
|
+
"@jskit-ai/shell-web/client/requestRecovery",
|
|
70
|
+
"@jskit-ai/shell-web/client/bootstrap",
|
|
71
|
+
"@jskit-ai/shell-web/client/navigation/linkResolver",
|
|
72
|
+
"@jskit-ai/shell-web/client/navigation/usePaths",
|
|
73
|
+
"@jskit-ai/shell-web/client/navigation/useSurfaceRouteContext",
|
|
74
|
+
"@jskit-ai/shell-web/client/composables/useShellLayoutState"
|
|
68
75
|
],
|
|
69
76
|
"exclude": [
|
|
70
77
|
"@jskit-ai/shell-web/client"
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import assert from "node:assert/strict";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import os from "node:os";
|
|
3
4
|
import test from "node:test";
|
|
4
|
-
import { readFile } from "node:fs/promises";
|
|
5
|
+
import { mkdtemp, readFile, rm, symlink, writeFile } from "node:fs/promises";
|
|
5
6
|
import { fileURLToPath } from "node:url";
|
|
7
|
+
import { optimizeDeps, resolveConfig } from "vite";
|
|
6
8
|
import packageJson from "../package.json" with { type: "json" };
|
|
7
9
|
|
|
8
10
|
const packageMetadata = packageJson.jskit;
|
|
@@ -409,15 +411,44 @@ test("shell-web packageMetadata pre-optimizes package subpaths reached through d
|
|
|
409
411
|
"@jskit-ai/shell-web/client/error"
|
|
410
412
|
]);
|
|
411
413
|
|
|
412
|
-
assert.deepEqual(packageMetadata?.metadata?.client?.optimizeDeps?.include, [
|
|
413
|
-
"@jskit-ai/shell-web/client/placement",
|
|
414
|
-
"@jskit-ai/shell-web/client/error"
|
|
415
|
-
]);
|
|
416
414
|
assert.deepEqual(packageMetadata?.metadata?.client?.optimizeDeps?.exclude, [
|
|
417
415
|
"@jskit-ai/shell-web/client"
|
|
418
416
|
]);
|
|
419
417
|
});
|
|
420
418
|
|
|
419
|
+
test("all public shell JavaScript helpers are ready in a cold dependency scan", async () => {
|
|
420
|
+
// The provider loads application-owned /src modules. It and Vue components stay source.
|
|
421
|
+
const sourceEntries = new Set(["./client", "./client/providers/ShellWebClientProvider"]);
|
|
422
|
+
const helpers = Object.entries(packageJson.exports)
|
|
423
|
+
.filter(([entry, target]) => entry.startsWith("./client/") && target.endsWith(".js") && !sourceEntries.has(entry))
|
|
424
|
+
.map(([entry]) => `${packageJson.name}${entry.slice(1)}`)
|
|
425
|
+
.sort();
|
|
426
|
+
const optimization = packageMetadata.metadata.client.optimizeDeps;
|
|
427
|
+
assert.deepEqual([...optimization.include].sort(), helpers,
|
|
428
|
+
"Every exported JavaScript helper needs prebundling beneath the excluded client entry.");
|
|
429
|
+
|
|
430
|
+
const root = await mkdtemp(path.join(os.tmpdir(), "shell-cold-scan-"));
|
|
431
|
+
try {
|
|
432
|
+
await writeFile(path.join(root, "package.json"), JSON.stringify({ name: "shell-cold-scan", type: "module" }));
|
|
433
|
+
await symlink(path.resolve(PACKAGE_DIR, "../../node_modules"), path.join(root, "node_modules"), "dir");
|
|
434
|
+
const config = await resolveConfig({
|
|
435
|
+
root,
|
|
436
|
+
configFile: false,
|
|
437
|
+
cacheDir: path.join(root, "cache"),
|
|
438
|
+
logLevel: "silent",
|
|
439
|
+
optimizeDeps: { ...optimization, noDiscovery: true }
|
|
440
|
+
}, "serve");
|
|
441
|
+
const metadata = await optimizeDeps(config, true);
|
|
442
|
+
for (const helper of helpers) {
|
|
443
|
+
assert.ok(metadata.optimized[helper], `${helper} must be prepared before page loading.`);
|
|
444
|
+
}
|
|
445
|
+
assert.equal(metadata.optimized[`${packageJson.name}/client`], undefined);
|
|
446
|
+
assert.equal(metadata.optimized[`${packageJson.name}/client/providers/ShellWebClientProvider`], undefined);
|
|
447
|
+
} finally {
|
|
448
|
+
await rm(root, { recursive: true, force: true });
|
|
449
|
+
}
|
|
450
|
+
});
|
|
451
|
+
|
|
421
452
|
test("shell-web metadata advertises adaptive shell outlets and pattern-backed links", () => {
|
|
422
453
|
assert.equal(packageMetadata?.mutations, undefined);
|
|
423
454
|
assert.equal(Object.hasOwn(packageMetadata?.metadata?.apiSummary || {}, "containerTokens"), false);
|