@vc-shell/config-generator 2.0.0-alpha.9 → 2.0.0-pr221.637b802

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.
Files changed (42) hide show
  1. package/CHANGELOG.md +85 -240
  2. package/README.md +7 -10
  3. package/dist/index.d.ts +2 -25
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +2 -47
  6. package/dist/index.js.map +1 -1
  7. package/dist/plugins/viteBladePlugin.d.ts +9 -0
  8. package/dist/plugins/viteBladePlugin.d.ts.map +1 -0
  9. package/dist/plugins/viteBladePlugin.js +94 -0
  10. package/dist/plugins/viteBladePlugin.js.map +1 -0
  11. package/dist/plugins/viteBladePlugin.test.d.ts +2 -0
  12. package/dist/plugins/viteBladePlugin.test.d.ts.map +1 -0
  13. package/dist/plugins/viteBladePlugin.test.js +90 -0
  14. package/dist/plugins/viteBladePlugin.test.js.map +1 -0
  15. package/dist/templates/vite.application.appconfig.d.ts.map +1 -1
  16. package/dist/templates/vite.application.appconfig.js +27 -5
  17. package/dist/templates/vite.application.appconfig.js.map +1 -1
  18. package/package.json +5 -6
  19. package/dist/templates/shared-deps.d.ts +0 -3
  20. package/dist/templates/shared-deps.d.ts.map +0 -1
  21. package/dist/templates/shared-deps.js +0 -3
  22. package/dist/templates/shared-deps.js.map +0 -1
  23. package/dist/templates/vite.dynamic-module.appconfig.d.ts +0 -7
  24. package/dist/templates/vite.dynamic-module.appconfig.d.ts.map +0 -1
  25. package/dist/templates/vite.dynamic-module.appconfig.js +0 -80
  26. package/dist/templates/vite.dynamic-module.appconfig.js.map +0 -1
  27. package/dist/templates/vite.dynamic-module.appconfig.test.d.ts +0 -2
  28. package/dist/templates/vite.dynamic-module.appconfig.test.d.ts.map +0 -1
  29. package/dist/templates/vite.dynamic-module.appconfig.test.js +0 -118
  30. package/dist/templates/vite.dynamic-module.appconfig.test.js.map +0 -1
  31. package/dist/templates/vite.host.appconfig.d.ts +0 -32
  32. package/dist/templates/vite.host.appconfig.d.ts.map +0 -1
  33. package/dist/templates/vite.host.appconfig.js +0 -43
  34. package/dist/templates/vite.host.appconfig.js.map +0 -1
  35. package/dist/templates/vite.host.appconfig.test.d.ts +0 -2
  36. package/dist/templates/vite.host.appconfig.test.d.ts.map +0 -1
  37. package/dist/templates/vite.host.appconfig.test.js +0 -51
  38. package/dist/templates/vite.host.appconfig.test.js.map +0 -1
  39. package/dist/types.d.ts +0 -36
  40. package/dist/types.d.ts.map +0 -1
  41. package/dist/types.js +0 -2
  42. package/dist/types.js.map +0 -1
@@ -1,118 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from "vitest";
2
- vi.mock("@module-federation/vite", () => ({
3
- federation: vi.fn((config) => ({ name: "mf-plugin", _config: config })),
4
- }));
5
- vi.mock("@vitejs/plugin-vue", () => ({
6
- default: vi.fn(() => ({ name: "vue-plugin" })),
7
- }));
8
- import dynamicModuleConfiguration from "./vite.dynamic-module.appconfig.js";
9
- import { SHARED_DEP_NAMES } from "./shared-deps.js";
10
- describe("dynamicModuleConfiguration (MF)", () => {
11
- const pkg = { name: "reviews", version: "1.0.0" };
12
- it("produces MF remote config with correct name and exposes", () => {
13
- const config = dynamicModuleConfiguration(pkg, {
14
- compatibility: { framework: "^2.0.0" },
15
- });
16
- expect(config.plugins).toBeDefined();
17
- const mfPlugin = config.plugins.find((p) => p._config);
18
- expect(mfPlugin._config.name).toBe("reviews");
19
- expect(mfPlugin._config.filename).toBe("remoteEntry.js");
20
- expect(mfPlugin._config.exposes["./module"]).toBe("./src/modules/index.ts");
21
- });
22
- it("uses custom entry point when provided", () => {
23
- const config = dynamicModuleConfiguration(pkg, {
24
- entry: "./src/custom.ts",
25
- compatibility: { framework: "^2.0.0" },
26
- });
27
- const mfPlugin = config.plugins.find((p) => p._config);
28
- expect(mfPlugin._config.exposes["./module"]).toBe("./src/custom.ts");
29
- });
30
- it("sets build target to esnext", () => {
31
- const config = dynamicModuleConfiguration(pkg, {
32
- compatibility: { framework: "^2.0.0" },
33
- });
34
- expect(config.build?.target).toBe("esnext");
35
- });
36
- it("includes shared deps with singleton: true", () => {
37
- const config = dynamicModuleConfiguration(pkg, {
38
- compatibility: { framework: "^2.0.0" },
39
- });
40
- const mfPlugin = config.plugins.find((p) => p._config);
41
- expect(mfPlugin._config.shared.vue.singleton).toBe(true);
42
- expect(mfPlugin._config.shared["@vc-shell/framework"].singleton).toBe(true);
43
- });
44
- it("stripExternalStyles plugin has buildStart hook for path normalization", () => {
45
- const config = dynamicModuleConfiguration({ name: "test-module", version: "1.0.0" }, {});
46
- const stripPlugin = config.plugins?.flat().find((p) => p?.name === "strip-external-styles");
47
- expect(stripPlugin).toBeDefined();
48
- expect(typeof stripPlugin.buildStart).toBe("function");
49
- expect(typeof stripPlugin.transform).toBe("function");
50
- });
51
- it("uses custom exposes when provided", () => {
52
- const config = dynamicModuleConfiguration(pkg, {
53
- exposes: { "./custom": "./src/custom.ts" },
54
- compatibility: { framework: "^2.0.0" },
55
- });
56
- const mfPlugin = config.plugins.find((p) => p._config);
57
- expect(mfPlugin._config.exposes["./custom"]).toBe("./src/custom.ts");
58
- expect(mfPlugin._config.exposes["./module"]).toBeUndefined();
59
- });
60
- });
61
- describe("stripExternalStyles transform", () => {
62
- let stripPlugin;
63
- beforeEach(() => {
64
- const config = dynamicModuleConfiguration({ name: "test-module", version: "1.0.0" }, {});
65
- stripPlugin = config.plugins
66
- ?.flat()
67
- .find((p) => p?.name === "strip-external-styles");
68
- stripPlugin.buildStart.call({});
69
- });
70
- it("strips CSS from shared dep in node_modules", () => {
71
- const result = stripPlugin.transform("body{}", `${process.cwd()}/node_modules/@vc-shell/framework/assets/styles/index.css`);
72
- expect(result).toEqual({ code: "", map: null });
73
- });
74
- it("strips Vue SFC style from shared dep in node_modules", () => {
75
- const result = stripPlugin.transform(".comp{}", `${process.cwd()}/node_modules/@vc-shell/framework/ui/Component.vue?type=style&index=0`);
76
- expect(result).toEqual({ code: "", map: null });
77
- });
78
- it("strips SCSS from scoped shared dep", () => {
79
- const result = stripPlugin.transform("$var: red;", `${process.cwd()}/node_modules/@vc-shell/framework/assets/theme.scss`);
80
- expect(result).toEqual({ code: "", map: null });
81
- });
82
- it("strips CSS from non-scoped shared dep (e.g. vue-i18n)", () => {
83
- const result = stripPlugin.transform("div{}", `${process.cwd()}/node_modules/vue-i18n/dist/style.css`);
84
- expect(result).toEqual({ code: "", map: null });
85
- });
86
- it("keeps CSS from non-shared npm package", () => {
87
- const result = stripPlugin.transform(".picker{}", `${process.cwd()}/node_modules/some-datepicker/dist/style.css`);
88
- expect(result).toBeNull();
89
- });
90
- it("keeps module's own CSS in src/", () => {
91
- const result = stripPlugin.transform(".my{}", `${process.cwd()}/src/components/MyComponent.scss`);
92
- expect(result).toBeNull();
93
- });
94
- it("keeps module's own Vue SFC style", () => {
95
- const result = stripPlugin.transform(".my{}", `${process.cwd()}/src/components/MyComponent.vue?type=style&index=0`);
96
- expect(result).toBeNull();
97
- });
98
- it("strips CSS from path outside project root (symlink/portal scenario)", () => {
99
- const result = stripPlugin.transform(".ext{}", `/some/other/project/node_modules/some-private-pkg/dist/style.css`);
100
- expect(result).toEqual({ code: "", map: null });
101
- });
102
- it("keeps Vue SFC style from non-shared dep in node_modules", () => {
103
- const result = stripPlugin.transform(".picker{}", `${process.cwd()}/node_modules/some-datepicker/SomeComponent.vue?type=style&index=0`);
104
- expect(result).toBeNull();
105
- });
106
- it("returns null for non-style files", () => {
107
- const result = stripPlugin.transform("export default {}", `${process.cwd()}/node_modules/@vc-shell/framework/index.ts`);
108
- expect(result).toBeNull();
109
- });
110
- it("strips all shared deps from SHARED_DEP_NAMES", () => {
111
- expect(SHARED_DEP_NAMES.length).toBeGreaterThan(0);
112
- for (const dep of SHARED_DEP_NAMES) {
113
- const result = stripPlugin.transform("body{}", `${process.cwd()}/node_modules/${dep}/dist/style.css`);
114
- expect(result).toEqual({ code: "", map: null });
115
- }
116
- });
117
- });
118
- //# sourceMappingURL=vite.dynamic-module.appconfig.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vite.dynamic-module.appconfig.test.js","sourceRoot":"","sources":["../../src/templates/vite.dynamic-module.appconfig.test.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import type { UserConfig } from "vite";
2
- import { type SharedDepConfig } from "./shared-deps.js";
3
- export interface HostFederationOptions {
4
- sharedDeps?: Record<string, SharedDepConfig>;
5
- }
6
- /**
7
- * Vite plugin configuration for Module Federation HOST apps.
8
- *
9
- * **Build-time only.** This configures the MF build plugin so Vite can:
10
- * - Resolve `import` statements to shared deps without bundling duplicates
11
- * - Generate proper chunk structure for MF host semantics
12
- *
13
- * **Does NOT replace runtime init().** The runtime loader (`loader-mf.ts`)
14
- * still calls `@module-federation/enhanced/runtime` `init()` to register
15
- * actual module instances (`lib: () => Vue`, etc.) and discover remotes
16
- * from the server registry. Build-time plugin handles bundling;
17
- * runtime init handles module provision.
18
- *
19
- * @example
20
- * ```ts
21
- * // vite.config.ts (host app)
22
- * import { getApplicationConfiguration, getHostFederationConfig } from "@vc-shell/config-generator";
23
- * import { mergeConfig } from "vite";
24
- *
25
- * export default mergeConfig(
26
- * getApplicationConfiguration(),
27
- * getHostFederationConfig(),
28
- * );
29
- * ```
30
- */
31
- export declare function getHostFederationConfig(options?: HostFederationOptions): UserConfig;
32
- //# sourceMappingURL=vite.host.appconfig.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vite.host.appconfig.d.ts","sourceRoot":"","sources":["../../src/templates/vite.host.appconfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAErE,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,UAAU,CAcZ"}
@@ -1,43 +0,0 @@
1
- import { federation } from "@module-federation/vite";
2
- import { DEFAULT_SHARED } from "./shared-deps.js";
3
- /**
4
- * Vite plugin configuration for Module Federation HOST apps.
5
- *
6
- * **Build-time only.** This configures the MF build plugin so Vite can:
7
- * - Resolve `import` statements to shared deps without bundling duplicates
8
- * - Generate proper chunk structure for MF host semantics
9
- *
10
- * **Does NOT replace runtime init().** The runtime loader (`loader-mf.ts`)
11
- * still calls `@module-federation/enhanced/runtime` `init()` to register
12
- * actual module instances (`lib: () => Vue`, etc.) and discover remotes
13
- * from the server registry. Build-time plugin handles bundling;
14
- * runtime init handles module provision.
15
- *
16
- * @example
17
- * ```ts
18
- * // vite.config.ts (host app)
19
- * import { getApplicationConfiguration, getHostFederationConfig } from "@vc-shell/config-generator";
20
- * import { mergeConfig } from "vite";
21
- *
22
- * export default mergeConfig(
23
- * getApplicationConfiguration(),
24
- * getHostFederationConfig(),
25
- * );
26
- * ```
27
- */
28
- export function getHostFederationConfig(options) {
29
- return {
30
- plugins: [
31
- federation({
32
- name: "host",
33
- remotes: {},
34
- shared: {
35
- ...DEFAULT_SHARED,
36
- ...options?.sharedDeps,
37
- },
38
- dts: false,
39
- }),
40
- ],
41
- };
42
- }
43
- //# sourceMappingURL=vite.host.appconfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vite.host.appconfig.js","sourceRoot":"","sources":["../../src/templates/vite.host.appconfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAwB,MAAM,eAAe,CAAC;AAMrE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAA+B;IAE/B,OAAO;QACL,OAAO,EAAE;YACP,UAAU,CAAC;gBACT,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE;oBACN,GAAG,cAAc;oBACjB,GAAG,OAAO,EAAE,UAAU;iBACvB;gBACD,GAAG,EAAE,KAAK;aACX,CAAC;SACH;KACF,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=vite.host.appconfig.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vite.host.appconfig.test.d.ts","sourceRoot":"","sources":["../../src/templates/vite.host.appconfig.test.ts"],"names":[],"mappings":""}
@@ -1,51 +0,0 @@
1
- import { describe, it, expect, vi } from "vitest";
2
- import { SHARED_DEP_NAMES } from "./shared-deps.js";
3
- vi.mock("@module-federation/vite", () => ({
4
- federation: vi.fn((config) => ({ name: "mf-plugin", _config: config })),
5
- }));
6
- import { getHostFederationConfig } from "./vite.host.appconfig.js";
7
- it("SHARED_DEP_NAMES matches SHARED_DEPS_BASE keys", () => {
8
- expect(SHARED_DEP_NAMES).toEqual(expect.arrayContaining([
9
- "vue", "vue-router", "vue-i18n", "vee-validate",
10
- "lodash-es", "@vueuse/core", "@vc-shell/framework",
11
- ]));
12
- expect(SHARED_DEP_NAMES.length).toBe(7);
13
- });
14
- describe("getHostFederationConfig", () => {
15
- it("returns config with MF plugin containing default shared deps", () => {
16
- const config = getHostFederationConfig();
17
- expect(config.plugins).toBeDefined();
18
- expect(config.plugins).toHaveLength(1);
19
- const plugin = config.plugins[0];
20
- expect(plugin.name).toBe("mf-plugin");
21
- const mfConfig = plugin._config;
22
- expect(mfConfig.name).toBe("host");
23
- expect(mfConfig.remotes).toEqual({});
24
- const shared = mfConfig.shared;
25
- expect(shared.vue).toEqual({ singleton: true, requiredVersion: "^3.4.0" });
26
- expect(shared["vue-router"]).toEqual({ singleton: true, requiredVersion: "^4.0.0" });
27
- expect(shared["vue-i18n"]).toEqual({ singleton: true, requiredVersion: "^9.0.0" });
28
- expect(shared["@vc-shell/framework"]).toEqual({ singleton: true });
29
- expect(shared["vee-validate"]).toEqual({ singleton: true });
30
- expect(shared["lodash-es"]).toEqual({ singleton: true });
31
- expect(shared["@vueuse/core"]).toEqual({ singleton: true });
32
- });
33
- it("merges custom sharedDeps while keeping defaults", () => {
34
- const config = getHostFederationConfig({
35
- sharedDeps: {
36
- "my-lib": { singleton: true, requiredVersion: "^2.0.0" },
37
- vue: { singleton: true, requiredVersion: "^3.5.0", eager: true },
38
- },
39
- });
40
- const plugin = config.plugins[0];
41
- const shared = plugin._config.shared;
42
- // Custom dep added
43
- expect(shared["my-lib"]).toEqual({ singleton: true, requiredVersion: "^2.0.0" });
44
- // Vue overridden by custom
45
- expect(shared.vue).toEqual({ singleton: true, requiredVersion: "^3.5.0", eager: true });
46
- // Other defaults preserved
47
- expect(shared["vue-router"]).toEqual({ singleton: true, requiredVersion: "^4.0.0" });
48
- expect(shared["@vc-shell/framework"]).toEqual({ singleton: true });
49
- });
50
- });
51
- //# sourceMappingURL=vite.host.appconfig.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vite.host.appconfig.test.js","sourceRoot":"","sources":["../../src/templates/vite.host.appconfig.test.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts DELETED
@@ -1,36 +0,0 @@
1
- import { UserConfig } from "vite";
2
- /**
3
- * Compatibility options for dynamic modules
4
- */
5
- export interface CompatibilityOptions {
6
- /**
7
- * Compatible framework version range
8
- * @example "^1.1.0"
9
- */
10
- framework: string;
11
- /**
12
- * Compatible modules version ranges
13
- * @example { "@vc-shell/module-catalog": "^1.0.0" }
14
- */
15
- modules?: Record<string, string>;
16
- }
17
- /**
18
- * Dynamic module configuration options (Module Federation)
19
- */
20
- export interface DynamicModuleOptions extends UserConfig {
21
- /**
22
- * Entry point for the module
23
- * @default "./src/modules/index.ts"
24
- */
25
- entry?: string;
26
- /**
27
- * Custom MF exposes map. Overrides default `{ "./module": entry }`.
28
- */
29
- exposes?: Record<string, string>;
30
- /**
31
- * Compatibility constraints (metadata only — not used during build).
32
- * Used by the runtime registry API for version filtering.
33
- */
34
- compatibility?: CompatibilityOptions;
35
- }
36
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC"}
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}