@fulgurjs/federation 0.4.2 → 0.5.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/dist/config.cjs CHANGED
@@ -30,15 +30,15 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/config.ts
31
31
  var config_exports = {};
32
32
  __export(config_exports, {
33
- defineFulgurConfig: () => defineFulgurConfig,
34
- loadFulgurConfig: () => loadFulgurConfig
33
+ defineFulgurjsConfig: () => defineFulgurjsConfig,
34
+ loadFulgurjsConfig: () => loadFulgurjsConfig
35
35
  });
36
36
  module.exports = __toCommonJS(config_exports);
37
37
  var import_meta = {};
38
- function defineFulgurConfig(config) {
38
+ function defineFulgurjsConfig(config) {
39
39
  return config;
40
40
  }
41
- async function loadFulgurConfig(configPath) {
41
+ async function loadFulgurjsConfig(configPath) {
42
42
  const { pathToFileURL, fileURLToPath } = await import("url");
43
43
  const { createRequire } = await import("module");
44
44
  const fs = await import("fs");
@@ -46,8 +46,8 @@ async function loadFulgurConfig(configPath) {
46
46
  const path = await import("path");
47
47
  const selfDir = path.dirname(fileURLToPath(import_meta.url));
48
48
  const selfConfigJs = path.join(selfDir, "config.js");
49
- const SELF_SPEC = fs.existsSync(selfConfigJs) ? pathToFileURL(selfConfigJs).href : "@fulgur-federation-config-unavailable";
50
- const rewriteSelfImports = (source) => source.replace(/(['"])@fulgur\/federation\/config\1/g, (_m, q) => `${q}${SELF_SPEC}${q}`);
49
+ const SELF_SPEC = fs.existsSync(selfConfigJs) ? pathToFileURL(selfConfigJs).href : "@fulgurjs-federation-config-unavailable";
50
+ const rewriteSelfImports = (source) => source.replace(/(['"])@fulgurjs\/federation\/config\1/g, (_m, q) => `${q}${SELF_SPEC}${q}`);
51
51
  const importConfigs = async (cacheKey) => {
52
52
  return await import(`${cacheKey}?t=${Date.now()}`);
53
53
  };
@@ -56,7 +56,7 @@ async function loadFulgurConfig(configPath) {
56
56
  mod = { default: JSON.parse(fs.readFileSync(configPath, "utf8")) };
57
57
  } else {
58
58
  const source = rewriteSelfImports(fs.readFileSync(configPath, "utf8"));
59
- const tmpBase = path.join(os.tmpdir(), `fulgur-config-${Date.now()}`);
59
+ const tmpBase = path.join(os.tmpdir(), `fulgurjs-config-${Date.now()}`);
60
60
  if (/\.(ts|mts|cts)$/.test(configPath)) {
61
61
  try {
62
62
  const tmpTs = `${tmpBase}.ts`;
@@ -88,18 +88,18 @@ async function loadFulgurConfig(configPath) {
88
88
  const cfg = mod.default;
89
89
  if (!cfg?.root) {
90
90
  throw new Error(
91
- `[fulgur:init] \u914D\u7F6E\u7F3A\u5C11 root\uFF08\u5DE5\u7A0B\u6839\u76EE\u5F55\u7EDD\u5BF9\u8DEF\u5F84\uFF09
91
+ `[fulgurjs:init] \u914D\u7F6E\u7F3A\u5C11 root\uFF08\u5DE5\u7A0B\u6839\u76EE\u5F55\u7EDD\u5BF9\u8DEF\u5F84\uFF09
92
92
  \u6839\u56E0\uFF1ACLI \u9700\u8981\u77E5\u9053\u5728\u54EA\u4E2A\u5DE5\u7A0B\u4E0A\u505A\u96C6\u6210
93
- \u4FEE\u6CD5\uFF1Afulgur.config.ts \u9876\u5C42\u8865 root: '/abs/path/to/repo'\uFF08\u8D77\u6B65\u6A21\u677F\uFF1Afulgur init\uFF09`
93
+ \u4FEE\u6CD5\uFF1Afulgurjs.config.ts \u9876\u5C42\u8865 root: '/abs/path/to/repo'\uFF08\u8D77\u6B65\u6A21\u677F\uFF1Afulgurjs init\uFF09`
94
94
  );
95
95
  }
96
96
  if (!Array.isArray(cfg.apps) || cfg.apps.length === 0) {
97
- throw new Error("[fulgur:init] \u914D\u7F6E\u7F3A\u5C11 apps\uFF08\u81F3\u5C11\u4E00\u4E2A\u5BBF\u4E3B\u6216\u8FDC\u7A0B\u5E94\u7528\uFF09");
97
+ throw new Error("[fulgurjs:init] \u914D\u7F6E\u7F3A\u5C11 apps\uFF08\u81F3\u5C11\u4E00\u4E2A\u5BBF\u4E3B\u6216\u8FDC\u7A0B\u5E94\u7528\uFF09");
98
98
  }
99
99
  for (const app of cfg.apps) {
100
100
  if (!app.host && !app.remote) {
101
101
  throw new Error(
102
- `[fulgur:init] \u5E94\u7528 "${app.path}" \u65E2\u65E0 host \u4E5F\u65E0 remote \u89D2\u8272
102
+ `[fulgurjs:init] \u5E94\u7528 "${app.path}" \u65E2\u65E0 host \u4E5F\u65E0 remote \u89D2\u8272
103
103
  \u6839\u56E0\uFF1A\u5E94\u7528\u5FC5\u987B\u81F3\u5C11\u58F0\u660E\u4E00\u4E2A\u89D2\u8272
104
104
  \u4FEE\u6CD5\uFF1A\u5BBF\u4E3B\u8865 host: { pages, remotePrefixes, remotes }\uFF0C\u8FDC\u7A0B\u8865 remote: { exposes }`
105
105
  );
@@ -109,6 +109,6 @@ async function loadFulgurConfig(configPath) {
109
109
  }
110
110
  // Annotate the CommonJS export names for ESM import in node:
111
111
  0 && (module.exports = {
112
- defineFulgurConfig,
113
- loadFulgurConfig
112
+ defineFulgurjsConfig,
113
+ loadFulgurjsConfig
114
114
  });
package/dist/config.d.cts CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * W1 fulgur.config.ts:单配置文件驱动的 schema + 加载器(项目无关,决策见排期文档 §4:
2
+ * W1 fulgurjs.config.ts:单配置文件驱动的 schema + 加载器(项目无关,决策见排期文档 §4:
3
3
  * 主包内置 bin + 单配置文件驱动,可入库可复跑)。
4
4
  * init 只消费该配置生成通用样板(见 init.ts);插件运行时(federation())不读取本文件。
5
5
  */
6
- interface FulgurPageEntry {
6
+ interface FulgurjsPageEntry {
7
7
  /** 宿主路由路径(参数段用 :xx) */
8
8
  route: string;
9
9
  /** 路由 name(命名跳转依赖) */
@@ -13,25 +13,25 @@ interface FulgurPageEntry {
13
13
  /** 页签标题 */
14
14
  title?: string;
15
15
  }
16
- interface FulgurRemoteAddress {
16
+ interface FulgurjsRemoteAddress {
17
17
  dev: string;
18
18
  prod: string;
19
19
  }
20
- interface FulgurHostConfig {
20
+ interface FulgurjsHostConfig {
21
21
  /** 页面路由表 */
22
- pages: FulgurPageEntry[];
22
+ pages: FulgurjsPageEntry[];
23
23
  /** 路由前缀 → 远程名 */
24
24
  remotePrefixes: Record<string, string>;
25
25
  /** 消费的远程地址(键 = import 前缀;裸 URL,对象形式不支持 name@ 前缀) */
26
- remotes: Record<string, FulgurRemoteAddress>;
26
+ remotes: Record<string, FulgurjsRemoteAddress>;
27
27
  }
28
- interface FulgurRemoteConfig {
28
+ interface FulgurjsRemoteConfig {
29
29
  /** exposes:./键 → 源文件(独立页) */
30
30
  exposes: Record<string, string>;
31
31
  /** 反向消费的远程(双向联邦时;dev 下自身源码参与协商需 devSharedSelf: true) */
32
- remotes?: Record<string, FulgurRemoteAddress>;
32
+ remotes?: Record<string, FulgurjsRemoteAddress>;
33
33
  }
34
- interface FulgurAppConfig {
34
+ interface FulgurjsAppConfig {
35
35
  /** 相对 root 的应用目录 */
36
36
  path: string;
37
37
  /** 联邦容器名 */
@@ -43,37 +43,37 @@ interface FulgurAppConfig {
43
43
  /** 部署目录名(缺省取 base 去斜杠) */
44
44
  deployDir?: string;
45
45
  /** 宿主角色 */
46
- host?: FulgurHostConfig;
46
+ host?: FulgurjsHostConfig;
47
47
  /** 远程角色 */
48
- remote?: FulgurRemoteConfig;
48
+ remote?: FulgurjsRemoteConfig;
49
49
  /** 该应用的 shared 表(缺省建议 vue/vue-router/pinia singleton,见 init 输出的样板) */
50
50
  shared?: Record<string, {
51
51
  singleton?: boolean;
52
52
  requiredVersion?: string;
53
53
  }>;
54
54
  }
55
- interface FulgurDeployConfig {
55
+ interface FulgurjsDeployConfig {
56
56
  /** NGINX 站点根(样板输出用,可选) */
57
57
  webRoot?: string;
58
58
  /** 监听端口(样板输出用,可选) */
59
59
  listen?: number;
60
60
  }
61
- interface FulgurRepoConfig {
61
+ interface FulgurjsRepoConfig {
62
62
  /** 工程根(monorepo 根或单应用仓库根) */
63
63
  root: string;
64
- apps: FulgurAppConfig[];
65
- deploy?: FulgurDeployConfig;
64
+ apps: FulgurjsAppConfig[];
65
+ deploy?: FulgurjsDeployConfig;
66
66
  }
67
- type FulgurUserConfig = Partial<FulgurRepoConfig>;
67
+ type FulgurjsUserConfig = Partial<FulgurjsRepoConfig>;
68
68
  /** 用户配置文件入口:仅做类型收窄(identity),不引入运行时逻辑 */
69
- declare function defineFulgurConfig(config: FulgurUserConfig): FulgurUserConfig;
69
+ declare function defineFulgurjsConfig(config: FulgurjsUserConfig): FulgurjsUserConfig;
70
70
  /**
71
- * 加载 fulgur.config.ts(或 .js/.json)。
71
+ * 加载 fulgurjs.config.ts(或 .js/.json)。
72
72
  * - 配置内的 `@fulgurjs/federation/config` 导入被重写为本包 dist/config.js 绝对路径——
73
73
  * init 之前工程依赖尚未安装(鸡生蛋),重写后零依赖可加载;
74
74
  * - TS 走 Node 原生类型剥离(Node ≥23.6 默认开启;配置文件须用可擦除语法——纯对象无 enum/namespace);
75
75
  * 老版本 Node 回退 esbuild 转译(先试配置工程,再试 CLI 自带依赖树)。
76
76
  */
77
- declare function loadFulgurConfig(configPath: string): Promise<FulgurRepoConfig>;
77
+ declare function loadFulgurjsConfig(configPath: string): Promise<FulgurjsRepoConfig>;
78
78
 
79
- export { type FulgurAppConfig, type FulgurDeployConfig, type FulgurHostConfig, type FulgurPageEntry, type FulgurRemoteAddress, type FulgurRemoteConfig, type FulgurRepoConfig, type FulgurUserConfig, defineFulgurConfig, loadFulgurConfig };
79
+ export { type FulgurjsAppConfig, type FulgurjsDeployConfig, type FulgurjsHostConfig, type FulgurjsPageEntry, type FulgurjsRemoteAddress, type FulgurjsRemoteConfig, type FulgurjsRepoConfig, type FulgurjsUserConfig, defineFulgurjsConfig, loadFulgurjsConfig };
package/dist/config.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * W1 fulgur.config.ts:单配置文件驱动的 schema + 加载器(项目无关,决策见排期文档 §4:
2
+ * W1 fulgurjs.config.ts:单配置文件驱动的 schema + 加载器(项目无关,决策见排期文档 §4:
3
3
  * 主包内置 bin + 单配置文件驱动,可入库可复跑)。
4
4
  * init 只消费该配置生成通用样板(见 init.ts);插件运行时(federation())不读取本文件。
5
5
  */
6
- interface FulgurPageEntry {
6
+ interface FulgurjsPageEntry {
7
7
  /** 宿主路由路径(参数段用 :xx) */
8
8
  route: string;
9
9
  /** 路由 name(命名跳转依赖) */
@@ -13,25 +13,25 @@ interface FulgurPageEntry {
13
13
  /** 页签标题 */
14
14
  title?: string;
15
15
  }
16
- interface FulgurRemoteAddress {
16
+ interface FulgurjsRemoteAddress {
17
17
  dev: string;
18
18
  prod: string;
19
19
  }
20
- interface FulgurHostConfig {
20
+ interface FulgurjsHostConfig {
21
21
  /** 页面路由表 */
22
- pages: FulgurPageEntry[];
22
+ pages: FulgurjsPageEntry[];
23
23
  /** 路由前缀 → 远程名 */
24
24
  remotePrefixes: Record<string, string>;
25
25
  /** 消费的远程地址(键 = import 前缀;裸 URL,对象形式不支持 name@ 前缀) */
26
- remotes: Record<string, FulgurRemoteAddress>;
26
+ remotes: Record<string, FulgurjsRemoteAddress>;
27
27
  }
28
- interface FulgurRemoteConfig {
28
+ interface FulgurjsRemoteConfig {
29
29
  /** exposes:./键 → 源文件(独立页) */
30
30
  exposes: Record<string, string>;
31
31
  /** 反向消费的远程(双向联邦时;dev 下自身源码参与协商需 devSharedSelf: true) */
32
- remotes?: Record<string, FulgurRemoteAddress>;
32
+ remotes?: Record<string, FulgurjsRemoteAddress>;
33
33
  }
34
- interface FulgurAppConfig {
34
+ interface FulgurjsAppConfig {
35
35
  /** 相对 root 的应用目录 */
36
36
  path: string;
37
37
  /** 联邦容器名 */
@@ -43,37 +43,37 @@ interface FulgurAppConfig {
43
43
  /** 部署目录名(缺省取 base 去斜杠) */
44
44
  deployDir?: string;
45
45
  /** 宿主角色 */
46
- host?: FulgurHostConfig;
46
+ host?: FulgurjsHostConfig;
47
47
  /** 远程角色 */
48
- remote?: FulgurRemoteConfig;
48
+ remote?: FulgurjsRemoteConfig;
49
49
  /** 该应用的 shared 表(缺省建议 vue/vue-router/pinia singleton,见 init 输出的样板) */
50
50
  shared?: Record<string, {
51
51
  singleton?: boolean;
52
52
  requiredVersion?: string;
53
53
  }>;
54
54
  }
55
- interface FulgurDeployConfig {
55
+ interface FulgurjsDeployConfig {
56
56
  /** NGINX 站点根(样板输出用,可选) */
57
57
  webRoot?: string;
58
58
  /** 监听端口(样板输出用,可选) */
59
59
  listen?: number;
60
60
  }
61
- interface FulgurRepoConfig {
61
+ interface FulgurjsRepoConfig {
62
62
  /** 工程根(monorepo 根或单应用仓库根) */
63
63
  root: string;
64
- apps: FulgurAppConfig[];
65
- deploy?: FulgurDeployConfig;
64
+ apps: FulgurjsAppConfig[];
65
+ deploy?: FulgurjsDeployConfig;
66
66
  }
67
- type FulgurUserConfig = Partial<FulgurRepoConfig>;
67
+ type FulgurjsUserConfig = Partial<FulgurjsRepoConfig>;
68
68
  /** 用户配置文件入口:仅做类型收窄(identity),不引入运行时逻辑 */
69
- declare function defineFulgurConfig(config: FulgurUserConfig): FulgurUserConfig;
69
+ declare function defineFulgurjsConfig(config: FulgurjsUserConfig): FulgurjsUserConfig;
70
70
  /**
71
- * 加载 fulgur.config.ts(或 .js/.json)。
71
+ * 加载 fulgurjs.config.ts(或 .js/.json)。
72
72
  * - 配置内的 `@fulgurjs/federation/config` 导入被重写为本包 dist/config.js 绝对路径——
73
73
  * init 之前工程依赖尚未安装(鸡生蛋),重写后零依赖可加载;
74
74
  * - TS 走 Node 原生类型剥离(Node ≥23.6 默认开启;配置文件须用可擦除语法——纯对象无 enum/namespace);
75
75
  * 老版本 Node 回退 esbuild 转译(先试配置工程,再试 CLI 自带依赖树)。
76
76
  */
77
- declare function loadFulgurConfig(configPath: string): Promise<FulgurRepoConfig>;
77
+ declare function loadFulgurjsConfig(configPath: string): Promise<FulgurjsRepoConfig>;
78
78
 
79
- export { type FulgurAppConfig, type FulgurDeployConfig, type FulgurHostConfig, type FulgurPageEntry, type FulgurRemoteAddress, type FulgurRemoteConfig, type FulgurRepoConfig, type FulgurUserConfig, defineFulgurConfig, loadFulgurConfig };
79
+ export { type FulgurjsAppConfig, type FulgurjsDeployConfig, type FulgurjsHostConfig, type FulgurjsPageEntry, type FulgurjsRemoteAddress, type FulgurjsRemoteConfig, type FulgurjsRepoConfig, type FulgurjsUserConfig, defineFulgurjsConfig, loadFulgurjsConfig };
package/dist/config.js CHANGED
@@ -1,8 +1,8 @@
1
1
  // src/config.ts
2
- function defineFulgurConfig(config) {
2
+ function defineFulgurjsConfig(config) {
3
3
  return config;
4
4
  }
5
- async function loadFulgurConfig(configPath) {
5
+ async function loadFulgurjsConfig(configPath) {
6
6
  const { pathToFileURL, fileURLToPath } = await import("url");
7
7
  const { createRequire } = await import("module");
8
8
  const fs = await import("fs");
@@ -10,8 +10,8 @@ async function loadFulgurConfig(configPath) {
10
10
  const path = await import("path");
11
11
  const selfDir = path.dirname(fileURLToPath(import.meta.url));
12
12
  const selfConfigJs = path.join(selfDir, "config.js");
13
- const SELF_SPEC = fs.existsSync(selfConfigJs) ? pathToFileURL(selfConfigJs).href : "@fulgur-federation-config-unavailable";
14
- const rewriteSelfImports = (source) => source.replace(/(['"])@fulgur\/federation\/config\1/g, (_m, q) => `${q}${SELF_SPEC}${q}`);
13
+ const SELF_SPEC = fs.existsSync(selfConfigJs) ? pathToFileURL(selfConfigJs).href : "@fulgurjs-federation-config-unavailable";
14
+ const rewriteSelfImports = (source) => source.replace(/(['"])@fulgurjs\/federation\/config\1/g, (_m, q) => `${q}${SELF_SPEC}${q}`);
15
15
  const importConfigs = async (cacheKey) => {
16
16
  return await import(`${cacheKey}?t=${Date.now()}`);
17
17
  };
@@ -20,7 +20,7 @@ async function loadFulgurConfig(configPath) {
20
20
  mod = { default: JSON.parse(fs.readFileSync(configPath, "utf8")) };
21
21
  } else {
22
22
  const source = rewriteSelfImports(fs.readFileSync(configPath, "utf8"));
23
- const tmpBase = path.join(os.tmpdir(), `fulgur-config-${Date.now()}`);
23
+ const tmpBase = path.join(os.tmpdir(), `fulgurjs-config-${Date.now()}`);
24
24
  if (/\.(ts|mts|cts)$/.test(configPath)) {
25
25
  try {
26
26
  const tmpTs = `${tmpBase}.ts`;
@@ -52,18 +52,18 @@ async function loadFulgurConfig(configPath) {
52
52
  const cfg = mod.default;
53
53
  if (!cfg?.root) {
54
54
  throw new Error(
55
- `[fulgur:init] \u914D\u7F6E\u7F3A\u5C11 root\uFF08\u5DE5\u7A0B\u6839\u76EE\u5F55\u7EDD\u5BF9\u8DEF\u5F84\uFF09
55
+ `[fulgurjs:init] \u914D\u7F6E\u7F3A\u5C11 root\uFF08\u5DE5\u7A0B\u6839\u76EE\u5F55\u7EDD\u5BF9\u8DEF\u5F84\uFF09
56
56
  \u6839\u56E0\uFF1ACLI \u9700\u8981\u77E5\u9053\u5728\u54EA\u4E2A\u5DE5\u7A0B\u4E0A\u505A\u96C6\u6210
57
- \u4FEE\u6CD5\uFF1Afulgur.config.ts \u9876\u5C42\u8865 root: '/abs/path/to/repo'\uFF08\u8D77\u6B65\u6A21\u677F\uFF1Afulgur init\uFF09`
57
+ \u4FEE\u6CD5\uFF1Afulgurjs.config.ts \u9876\u5C42\u8865 root: '/abs/path/to/repo'\uFF08\u8D77\u6B65\u6A21\u677F\uFF1Afulgurjs init\uFF09`
58
58
  );
59
59
  }
60
60
  if (!Array.isArray(cfg.apps) || cfg.apps.length === 0) {
61
- throw new Error("[fulgur:init] \u914D\u7F6E\u7F3A\u5C11 apps\uFF08\u81F3\u5C11\u4E00\u4E2A\u5BBF\u4E3B\u6216\u8FDC\u7A0B\u5E94\u7528\uFF09");
61
+ throw new Error("[fulgurjs:init] \u914D\u7F6E\u7F3A\u5C11 apps\uFF08\u81F3\u5C11\u4E00\u4E2A\u5BBF\u4E3B\u6216\u8FDC\u7A0B\u5E94\u7528\uFF09");
62
62
  }
63
63
  for (const app of cfg.apps) {
64
64
  if (!app.host && !app.remote) {
65
65
  throw new Error(
66
- `[fulgur:init] \u5E94\u7528 "${app.path}" \u65E2\u65E0 host \u4E5F\u65E0 remote \u89D2\u8272
66
+ `[fulgurjs:init] \u5E94\u7528 "${app.path}" \u65E2\u65E0 host \u4E5F\u65E0 remote \u89D2\u8272
67
67
  \u6839\u56E0\uFF1A\u5E94\u7528\u5FC5\u987B\u81F3\u5C11\u58F0\u660E\u4E00\u4E2A\u89D2\u8272
68
68
  \u4FEE\u6CD5\uFF1A\u5BBF\u4E3B\u8865 host: { pages, remotePrefixes, remotes }\uFF0C\u8FDC\u7A0B\u8865 remote: { exposes }`
69
69
  );
@@ -72,6 +72,6 @@ async function loadFulgurConfig(configPath) {
72
72
  return cfg;
73
73
  }
74
74
  export {
75
- defineFulgurConfig,
76
- loadFulgurConfig
75
+ defineFulgurjsConfig,
76
+ loadFulgurjsConfig
77
77
  };