@adep/cli 0.4.5 → 0.4.6

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 (3) hide show
  1. package/dist/index.js +595 -518
  2. package/dist/vite.js +38 -2
  3. package/package.json +5 -5
package/dist/vite.js CHANGED
@@ -237,6 +237,9 @@ function depsKeyOf(dependencies) {
237
237
  const canonical = Object.entries(dependencies).map(([name, version]) => `${name}@${version}`).toSorted().join("\n");
238
238
  return createHash("sha256").update(canonical).digest("hex").slice(0, 16);
239
239
  }
240
+ function parseNameList(value) {
241
+ return value.split(",").map((item) => item.trim()).filter((item) => item.length > 0);
242
+ }
240
243
 
241
244
  // packages/runtime/src/functions/deps/resolve.ts
242
245
  function resolveExecutionDeps(config, projectId, manifestContent) {
@@ -3012,6 +3015,25 @@ async function loadSimEnv(cwd, config = {}) {
3012
3015
  return merged;
3013
3016
  }
3014
3017
 
3018
+ // packages/cli/src/sim/fetch-config.ts
3019
+ var LOCAL_FETCH_TIMEOUT_MS_DEFAULT = 1e4;
3020
+ function resolveLocalFetchConfig(simEnv) {
3021
+ const rawAllowlist = simEnv.FUNCTIONS_FETCH_ALLOWLIST;
3022
+ if (rawAllowlist === void 0) return void 0;
3023
+ const rawTimeout = simEnv.FUNCTIONS_FETCH_TIMEOUT_MS;
3024
+ let timeoutMs = LOCAL_FETCH_TIMEOUT_MS_DEFAULT;
3025
+ if (rawTimeout !== void 0 && rawTimeout.trim() !== "") {
3026
+ const parsed = Number(rawTimeout);
3027
+ if (!Number.isInteger(parsed) || parsed <= 0) {
3028
+ throw new Error(
3029
+ `[adep] FUNCTIONS_FETCH_TIMEOUT_MS \u975E\u6CD5\uFF1A"${rawTimeout}"\uFF08\u987B\u4E3A\u6B63\u6574\u6570\u6BEB\u79D2\u6570\uFF1B\u4E0D\u914D\u5219\u7F3A\u7701 ${LOCAL_FETCH_TIMEOUT_MS_DEFAULT}\uFF09`
3030
+ );
3031
+ }
3032
+ timeoutMs = parsed;
3033
+ }
3034
+ return { allowlist: parseNameList(rawAllowlist), timeoutMs };
3035
+ }
3036
+
3015
3037
  // packages/cli/src/sim/invoke.ts
3016
3038
  function resolveFunctionEntry(files, fnName) {
3017
3039
  const flat = `${fnName}.ts`;
@@ -3119,6 +3141,11 @@ var SIM_BOUNDARIES = [
3119
3141
  kind: "diff",
3120
3142
  title: "\u4E0D\u8BA1\u91CF",
3121
3143
  detail: "\u672C\u6A21\u62DF\u8FD0\u884C\u65F6\u4E0D\u4EA7\u51FA\u8BA1\u91CF\u4E8B\u4EF6\uFF0C\u4E5F\u4E0D\u5199 billing\uFF1B\u79BB\u7EBF\u5F00\u53D1\u4E0D\u8BA1\u8D39\u3002"
3144
+ },
3145
+ {
3146
+ kind: "diff",
3147
+ title: "\u51FA\u7F51\u7531\u767D\u540D\u5355\u63A7\u5236",
3148
+ detail: "cloud.fetch \u9ED8\u8BA4\u65E0\u7F51\u7EDC\uFF08\u672A\u914D\u7F6E\u65F6\u8C03\u7528\u629B FN_FETCH_DISABLED\uFF09\uFF1B.env \u914D FUNCTIONS_FETCH_ALLOWLIST\uFF08\u9017\u53F7\u5206\u9694\u4E3B\u673A\uFF0C*. \u901A\u914D\uFF1BFUNCTIONS_FETCH_TIMEOUT_MS \u7F3A\u7701 10s\uFF09\u540E\u91CD\u542F\u6CE8\u5165\u53D7\u63A7 fetch\u2014\u2014\u95E8\u7981\u4E0E\u7EBF\u4E0A\u4E00\u81F4\uFF08\u767D\u540D\u5355 / \u8D85\u65F6 / \u91CD\u5B9A\u5411\u9010\u8DF3\u590D\u68C0\uFF09\uFF0C\u4F46\u672C\u5730\u7531\u5F00\u53D1\u673A\u7F51\u7EDC\u6808\u76F4\u8FDE\uFF0C\u65E0\u5E73\u53F0\u51FA\u7F51\u4E2D\u7EE7\u4E0E\u5BA1\u8BA1\u3002"
3122
3149
  }
3123
3150
  ];
3124
3151
 
@@ -4998,9 +5025,18 @@ async function startDevServer(options) {
4998
5025
  ...options.dbFile === void 0 ? {} : { dbFile: options.dbFile }
4999
5026
  });
5000
5027
  const bearerUser = bearerUserResolverFromEnv();
5028
+ const simEnv = await loadSimEnv(cwd).catch(() => ({}));
5029
+ const fetchConfig = resolveLocalFetchConfig(simEnv);
5001
5030
  const executor = new WorkerFunctionExecutor({
5002
- deps: { rootDir: cwd, builtin: LOCAL_BUILTIN_DEPS }
5031
+ deps: { rootDir: cwd, builtin: LOCAL_BUILTIN_DEPS },
5032
+ // GAME-007 本地接线:配置白名单才注入受控 fetch,语义与线上逐字一致。
5033
+ ...fetchConfig === void 0 ? {} : { fetch: fetchConfig }
5003
5034
  });
5035
+ if (fetchConfig !== void 0) {
5036
+ log(
5037
+ `[adep] \u53D7\u63A7 fetch \u5DF2\u6CE8\u5165\uFF08FUNCTIONS_FETCH_ALLOWLIST\uFF09\uFF1A\u767D\u540D\u5355 ${fetchConfig.allowlist.length} \u9879\uFF0C\u8D85\u65F6 ${fetchConfig.timeoutMs}ms`
5038
+ );
5039
+ }
5004
5040
  await mkdir4(functionsDir, { recursive: true });
5005
5041
  const db = await openLocalDbDriver(dbTarget, { cwd, tag: "adep", log });
5006
5042
  const runtime = await createSimRuntime({
@@ -5023,7 +5059,7 @@ async function startDevServer(options) {
5023
5059
  let files = mergeSharedIntoFunctions(await collectFunctions(functionsDir));
5024
5060
  let env = {
5025
5061
  ...config.environment,
5026
- ...await loadSimEnv(cwd).catch(() => ({}))
5062
+ ...simEnv
5027
5063
  };
5028
5064
  const dbBundle = runtime.bundle;
5029
5065
  const invokeHandler = createSimInvokeHandler({ executor, files });
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "homepage": "https://adep.top",
9
9
  "bugs": "https://gitcode.com/yunqiang_wu/ai-yunke/issues",
10
- "version": "0.4.5",
10
+ "version": "0.4.6",
11
11
  "type": "module",
12
12
  "description": "`adep` 命令行工具包位:登录 / 初始化 / 本地调试 / 部署 / 数据库维护 / 云存储 / 静态托管 / 微前端组件(widget),实现见任务单 CLI-001 ~ CLI-003 与 FE-002;子路径 `@adep/cli/vite` 提供云函数 vite 插件(CLI-014)",
13
13
  "bin": {
@@ -30,11 +30,11 @@
30
30
  "esbuild": "0.25.12",
31
31
  "yaml": "2.9.1",
32
32
  "zod": "^4.6.6",
33
- "@adep/cf-compat": "0.1.4",
34
- "@adep/app-runtime": "0.1.1",
35
33
  "@adep/runtime": "0.3.5",
36
- "@adep/crypto": "0.1.1",
37
- "@adep/vite-plugin": "0.1.9"
34
+ "@adep/app-runtime": "0.1.1",
35
+ "@adep/cf-compat": "0.1.4",
36
+ "@adep/vite-plugin": "0.1.9",
37
+ "@adep/crypto": "0.1.1"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@adep/types": "0.3.2"