ai-project-manage-cli 2.0.12 → 2.0.13

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 (91) hide show
  1. package/README.md +6 -6
  2. package/dist/api/cli.d.ts +62 -1
  3. package/dist/api/cli.d.ts.map +1 -1
  4. package/dist/api/client.d.ts +3 -0
  5. package/dist/api/client.d.ts.map +1 -1
  6. package/dist/api/request-config.d.ts +4 -1
  7. package/dist/api/request-config.d.ts.map +1 -1
  8. package/dist/api/request-config.js +12 -0
  9. package/dist/api/request-config.js.map +1 -1
  10. package/dist/cli/commands/deploy-backend.d.ts +7 -0
  11. package/dist/cli/commands/deploy-backend.d.ts.map +1 -0
  12. package/dist/cli/commands/deploy-backend.js +81 -0
  13. package/dist/cli/commands/deploy-backend.js.map +1 -0
  14. package/dist/cli/commands/deploy-frontend.d.ts +3 -0
  15. package/dist/cli/commands/deploy-frontend.d.ts.map +1 -0
  16. package/dist/cli/commands/deploy-frontend.js +98 -0
  17. package/dist/cli/commands/deploy-frontend.js.map +1 -0
  18. package/dist/cli/commands/get.d.ts.map +1 -1
  19. package/dist/cli/commands/get.js +1 -1
  20. package/dist/cli/commands/get.js.map +1 -1
  21. package/dist/cli/commands/init.js +1 -1
  22. package/dist/cli/commands/publish.d.ts.map +1 -1
  23. package/dist/cli/commands/publish.js +42 -127
  24. package/dist/cli/commands/publish.js.map +1 -1
  25. package/dist/cli/commands/release.d.ts +3 -0
  26. package/dist/cli/commands/release.d.ts.map +1 -0
  27. package/dist/cli/commands/release.js +39 -0
  28. package/dist/cli/commands/release.js.map +1 -0
  29. package/dist/cli/utils/parse.d.ts +2 -0
  30. package/dist/cli/utils/parse.d.ts.map +1 -0
  31. package/dist/cli/utils/parse.js +12 -0
  32. package/dist/cli/utils/parse.js.map +1 -0
  33. package/dist/cli.js +6 -2
  34. package/dist/cli.js.map +1 -1
  35. package/dist/core/apm-config.d.ts +60 -1
  36. package/dist/core/apm-config.d.ts.map +1 -1
  37. package/dist/core/apm-config.js +111 -3
  38. package/dist/core/apm-config.js.map +1 -1
  39. package/dist/core/backend-deploy/backend-deploy-workflow.d.ts +16 -0
  40. package/dist/core/backend-deploy/backend-deploy-workflow.d.ts.map +1 -0
  41. package/dist/core/backend-deploy/backend-deploy-workflow.js +53 -0
  42. package/dist/core/backend-deploy/backend-deploy-workflow.js.map +1 -0
  43. package/dist/core/backend-deploy/image-tag.d.ts +2 -0
  44. package/dist/core/backend-deploy/image-tag.d.ts.map +1 -0
  45. package/dist/core/backend-deploy/image-tag.js +15 -0
  46. package/dist/core/backend-deploy/image-tag.js.map +1 -0
  47. package/dist/core/backend-deploy/index.d.ts +12 -0
  48. package/dist/core/backend-deploy/index.d.ts.map +1 -0
  49. package/dist/core/backend-deploy/index.js +23 -0
  50. package/dist/core/backend-deploy/index.js.map +1 -0
  51. package/dist/core/backend-deploy/local-docker-build.d.ts +11 -0
  52. package/dist/core/backend-deploy/local-docker-build.d.ts.map +1 -0
  53. package/dist/core/backend-deploy/local-docker-build.js +29 -0
  54. package/dist/core/backend-deploy/local-docker-build.js.map +1 -0
  55. package/dist/core/backend-deploy/registry-login-push.d.ts +14 -0
  56. package/dist/core/backend-deploy/registry-login-push.d.ts.map +1 -0
  57. package/dist/core/backend-deploy/registry-login-push.js +48 -0
  58. package/dist/core/backend-deploy/registry-login-push.js.map +1 -0
  59. package/dist/core/backend-deploy/remote-docker-client.d.ts +11 -0
  60. package/dist/core/backend-deploy/remote-docker-client.d.ts.map +1 -0
  61. package/dist/core/backend-deploy/remote-docker-client.js +33 -0
  62. package/dist/core/backend-deploy/remote-docker-client.js.map +1 -0
  63. package/dist/core/backend-deploy/remote-pull-image.d.ts +9 -0
  64. package/dist/core/backend-deploy/remote-pull-image.d.ts.map +1 -0
  65. package/dist/core/backend-deploy/remote-pull-image.js +39 -0
  66. package/dist/core/backend-deploy/remote-pull-image.js.map +1 -0
  67. package/dist/core/backend-deploy/resolve-dockerfile.d.ts +12 -0
  68. package/dist/core/backend-deploy/resolve-dockerfile.d.ts.map +1 -0
  69. package/dist/core/backend-deploy/resolve-dockerfile.js +33 -0
  70. package/dist/core/backend-deploy/resolve-dockerfile.js.map +1 -0
  71. package/dist/core/backend-deploy/run-docker-cli.d.ts +14 -0
  72. package/dist/core/backend-deploy/run-docker-cli.d.ts.map +1 -0
  73. package/dist/core/backend-deploy/run-docker-cli.js +33 -0
  74. package/dist/core/backend-deploy/run-docker-cli.js.map +1 -0
  75. package/dist/core/backend-deploy/types.d.ts +69 -0
  76. package/dist/core/backend-deploy/types.d.ts.map +1 -0
  77. package/dist/core/backend-deploy/types.js +6 -0
  78. package/dist/core/backend-deploy/types.js.map +1 -0
  79. package/dist/core/branch-name.d.ts +8 -0
  80. package/dist/core/branch-name.d.ts.map +1 -0
  81. package/dist/core/branch-name.js +37 -0
  82. package/dist/core/branch-name.js.map +1 -0
  83. package/dist/core/cursor-cmd.d.ts.map +1 -1
  84. package/dist/core/cursor-cmd.js +2 -1
  85. package/dist/core/cursor-cmd.js.map +1 -1
  86. package/dist/core/minio.d.ts +35 -0
  87. package/dist/core/minio.d.ts.map +1 -0
  88. package/dist/core/minio.js +154 -0
  89. package/dist/core/minio.js.map +1 -0
  90. package/package.json +6 -5
  91. package/templates/skills/apm-release/SKILL.md +87 -0
@@ -4,40 +4,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.registerPublishCommands = registerPublishCommands;
7
- const promises_1 = require("node:fs/promises");
8
7
  const node_path_1 = __importDefault(require("node:path"));
9
- const minio_1 = require("minio");
8
+ const client_1 = __importDefault(require("../../api/client"));
10
9
  const apm_config_1 = require("../../core/apm-config");
11
- const MIME_BY_EXT = {
12
- ".html": "text/html; charset=utf-8",
13
- ".js": "application/javascript; charset=utf-8",
14
- ".mjs": "application/javascript; charset=utf-8",
15
- ".css": "text/css; charset=utf-8",
16
- ".json": "application/json; charset=utf-8",
17
- ".map": "application/json; charset=utf-8",
18
- ".txt": "text/plain; charset=utf-8",
19
- ".svg": "image/svg+xml",
20
- ".png": "image/png",
21
- ".jpg": "image/jpeg",
22
- ".jpeg": "image/jpeg",
23
- ".webp": "image/webp",
24
- ".gif": "image/gif",
25
- ".ico": "image/x-icon",
26
- ".woff": "font/woff",
27
- ".woff2": "font/woff2",
28
- ".ttf": "font/ttf",
29
- };
30
- const DEFAULT_MAX_FILE_SIZE_MB = 100;
10
+ const minio_1 = require("../../core/minio");
31
11
  function registerPublishCommands(program) {
32
12
  program
33
13
  .command("publish")
34
14
  .description("递归上传前端产物目录到 MinIO,并在成功后为该桶设置匿名可读策略(仅读取当前目录下 `.apm/.env` 中的 MINIO_*,已有环境变量优先)")
35
15
  .argument("<name>", "分支名,作为对象键顶层目录")
16
+ .option("--env <env_tag>", "环境标签", "测试环境,正式环境")
36
17
  .option("--dir <dir>", "产物目录(默认 dist)", "dist")
37
- .option("--max-file-size-mb <mb>", `单文件大小上限,默认 ${DEFAULT_MAX_FILE_SIZE_MB}`, (v) => Number.parseInt(String(v), 10))
18
+ .option("--requirement-id <requirement_id>", "需求 ID(上传成功后登记前端环境)", (v) => {
19
+ const n = Number.parseInt(String(v), 10);
20
+ if (!Number.isFinite(n) || n < 1) {
21
+ throw new Error("--requirement-id 须为正整数");
22
+ }
23
+ return n;
24
+ })
25
+ .option("--max-file-size-mb <mb>", `单文件大小上限,默认 ${minio_1.DEFAULT_MAX_FILE_SIZE_MB}`, (v) => Number.parseInt(String(v), 10))
38
26
  .action(async (name, opts) => {
39
- const { deploy: settings } = (0, apm_config_1.loadApmConfig)();
40
- const client = new minio_1.Client({
27
+ const { frontendDeploy: settings } = (0, apm_config_1.loadApmConfig)();
28
+ const minio = new minio_1.MinioClient({
41
29
  endPoint: settings.endpoint,
42
30
  port: settings.port,
43
31
  useSSL: settings.useSsl,
@@ -52,15 +40,14 @@ function registerPublishCommands(program) {
52
40
  }
53
41
  const cleanBranch = sanitizeBranchName(branchName);
54
42
  const root = node_path_1.default.resolve(process.cwd(), opts.dir || "dist");
55
- const rootStat = await (0, promises_1.stat)(root).catch(() => null);
56
- if (!rootStat || !rootStat.isDirectory()) {
43
+ if (!(await (0, minio_1.isDirectoryPath)(root))) {
57
44
  console.error(`产物目录不存在:${root}`);
58
45
  process.exit(1);
59
46
  }
60
47
  const maxBytes = Math.max(1, Number.isFinite(opts.maxFileSizeMb)
61
- ? Math.floor((opts.maxFileSizeMb ?? DEFAULT_MAX_FILE_SIZE_MB) * 1024 * 1024)
62
- : DEFAULT_MAX_FILE_SIZE_MB * 1024 * 1024);
63
- const files = await collectFiles(root);
48
+ ? Math.floor((opts.maxFileSizeMb ?? minio_1.DEFAULT_MAX_FILE_SIZE_MB) * 1024 * 1024)
49
+ : minio_1.DEFAULT_MAX_FILE_SIZE_MB * 1024 * 1024);
50
+ const files = await (0, minio_1.collectFiles)(root);
64
51
  if (files.length === 0) {
65
52
  console.error(`目录为空:${root}`);
66
53
  process.exit(1);
@@ -68,23 +55,23 @@ function registerPublishCommands(program) {
68
55
  let uploaded = 0;
69
56
  let totalBytes = 0;
70
57
  console.error(`开始直连 MinIO 上传,共 ${files.length} 个文件…`);
71
- await ensureBucket(client, bucket);
58
+ await minio.ensureBucket(bucket);
72
59
  // 只清理与上传目录对应的对象前缀,避免误删同一分支下其它目录内容
73
- await deleteObjectsByPrefix(client, bucket, `${cleanBranch}/dist/`);
60
+ await minio.deleteObjectsByPrefix(bucket, `${cleanBranch}/dist/`);
74
61
  for (const f of files) {
75
62
  if (f.size > maxBytes) {
76
- console.error(`文件过大,已拒绝:${f.relativePath}(${toMB(f.size)}MB > ${toMB(maxBytes)}MB)`);
63
+ console.error(`文件过大,已拒绝:${f.relativePath}(${(0, minio_1.toMB)(f.size)}MB > ${(0, minio_1.toMB)(maxBytes)}MB)`);
77
64
  process.exit(1);
78
65
  }
79
- const buf = await (0, promises_1.readFile)(f.absPath);
80
- const cleanRel = sanitizeRelativePath(f.relativePath);
81
- const objectKey = toArtifactObjectKey({
66
+ const buf = await (0, minio_1.readArtifactFile)(f.absPath);
67
+ const cleanRel = (0, minio_1.sanitizeRelativePath)(f.relativePath);
68
+ const objectKey = (0, minio_1.toArtifactObjectKey)({
82
69
  branchName: cleanBranch,
83
70
  relativePath: cleanRel,
84
71
  });
85
- const mimeType = detectMimeType(f.relativePath).trim().toLowerCase() ||
72
+ const mimeType = (0, minio_1.detectMimeType)(f.relativePath).trim().toLowerCase() ||
86
73
  "application/octet-stream";
87
- await client.putObject(bucket, objectKey, buf, buf.length, {
74
+ await minio.putObject(bucket, objectKey, buf, {
88
75
  "Content-Type": mimeType,
89
76
  });
90
77
  uploaded += 1;
@@ -92,7 +79,7 @@ function registerPublishCommands(program) {
92
79
  console.error(`[${uploaded}/${files.length}] ${f.relativePath} -> ${objectKey}`);
93
80
  }
94
81
  console.error("正在设置桶策略(匿名可读对象,便于 HTTP 直链)…");
95
- await setBucketPublicRead(client, bucket);
82
+ await minio.setBucketPublicRead(bucket);
96
83
  console.log(JSON.stringify({
97
84
  ok: true,
98
85
  branchName: cleanBranch,
@@ -101,57 +88,16 @@ function registerPublishCommands(program) {
101
88
  totalBytes,
102
89
  bucketPublicRead: true,
103
90
  }, null, 2));
104
- });
105
- }
106
- async function ensureBucket(client, bucket) {
107
- const exists = await client.bucketExists(bucket);
108
- if (!exists) {
109
- await client.makeBucket(bucket);
110
- }
111
- }
112
- /** 匿名可读桶内所有对象(仅 s3:GetObject),用于路径直链 */
113
- function buildPublicReadPolicy(bucket) {
114
- const policy = {
115
- Version: "2012-10-17",
116
- Statement: [
117
- {
118
- Effect: "Allow",
119
- Principal: { AWS: ["*"] },
120
- Action: ["s3:GetObject"],
121
- Resource: [`arn:aws:s3:::${bucket}/*`],
122
- },
123
- ],
124
- };
125
- return JSON.stringify(policy);
126
- }
127
- async function setBucketPublicRead(client, bucket) {
128
- await client.setBucketPolicy(bucket, buildPublicReadPolicy(bucket));
129
- }
130
- /**
131
- * minio 默认 listObjectsV2 每页最多 1000 条,单页 XML 在 fast-xml-parser 中会触发
132
- * Entity expansion limit exceeded。用 listObjectsV2Query 缩小每页条数并分页列举。
133
- */
134
- const LIST_OBJECTS_PAGE_MAX_KEYS = 500;
135
- async function deleteObjectsByPrefix(client, bucket, prefix) {
136
- let continuationToken = "";
137
- const removeBatchSize = 1000;
138
- for (;;) {
139
- const result = await client.listObjectsV2Query(bucket, prefix, continuationToken, "", LIST_OBJECTS_PAGE_MAX_KEYS, "");
140
- const keys = result.objects
141
- .map((obj) => ("name" in obj && obj.name ? obj.name.trim() : ""))
142
- .filter((name) => name.length > 0);
143
- for (let i = 0; i < keys.length; i += removeBatchSize) {
144
- await client.removeObjects(bucket, keys.slice(i, i + removeBatchSize));
91
+ const envTag = resolveEnvTag(opts.env ?? "测试环境");
92
+ if (opts.requirementId) {
93
+ await client_1.default.cli.resourceEnvironmentCreate({
94
+ requirementId: opts.requirementId,
95
+ name: cleanBranch,
96
+ tag: envTag,
97
+ type: "FRONTEND",
98
+ });
145
99
  }
146
- if (!result.isTruncated)
147
- break;
148
- continuationToken = result.nextContinuationToken ?? "";
149
- }
150
- }
151
- function toArtifactObjectKey(input) {
152
- return `${input.branchName}/dist/${input.relativePath}`
153
- .replace(/\/+/g, "/")
154
- .replace(/^\//, "");
100
+ });
155
101
  }
156
102
  function sanitizeBranchName(raw) {
157
103
  const normalized = raw.replace(/\\/g, "/").replace(/^\/+/, "").trim();
@@ -164,38 +110,6 @@ function sanitizeBranchName(raw) {
164
110
  }
165
111
  return segs[segs.length - 1] ?? "";
166
112
  }
167
- function sanitizeRelativePath(raw) {
168
- const normalized = raw.replace(/\\/g, "/").replace(/^\/+/, "").trim();
169
- if (!normalized) {
170
- throw new Error("relativePath 不能为空");
171
- }
172
- const segs = normalized.split("/");
173
- if (segs.some((s) => s === "" || s === "." || s === "..")) {
174
- throw new Error("relativePath 非法");
175
- }
176
- return segs.join("/");
177
- }
178
- async function collectFiles(rootDir) {
179
- const out = [];
180
- await walk(rootDir, rootDir, out);
181
- out.sort((a, b) => a.relativePath.localeCompare(b.relativePath));
182
- return out;
183
- }
184
- async function walk(rootDir, currentDir, out) {
185
- const entries = await (0, promises_1.readdir)(currentDir, { withFileTypes: true });
186
- for (const ent of entries) {
187
- const absPath = node_path_1.default.join(currentDir, ent.name);
188
- if (ent.isDirectory()) {
189
- await walk(rootDir, absPath, out);
190
- continue;
191
- }
192
- if (!ent.isFile())
193
- continue;
194
- const st = await (0, promises_1.stat)(absPath);
195
- const rel = node_path_1.default.relative(rootDir, absPath).split(node_path_1.default.sep).join("/");
196
- out.push({ absPath, relativePath: rel, size: st.size });
197
- }
198
- }
199
113
  function normalizeBranchName(raw) {
200
114
  const normalized = raw.trim().replace(/\\/g, "/").replace(/^\/+/, "");
201
115
  if (!normalized)
@@ -205,11 +119,12 @@ function normalizeBranchName(raw) {
205
119
  return "";
206
120
  return segs[segs.length - 1] ?? "";
207
121
  }
208
- function detectMimeType(filePath) {
209
- const ext = node_path_1.default.extname(filePath).toLowerCase();
210
- return MIME_BY_EXT[ext] || "application/octet-stream";
211
- }
212
- function toMB(bytes) {
213
- return (bytes / 1024 / 1024).toFixed(2);
122
+ /** `--env` 默认含逗号时取第一段作为标签(如「测试环境」) */
123
+ function resolveEnvTag(raw) {
124
+ const parts = raw
125
+ .split(",")
126
+ .map((s) => s.trim())
127
+ .filter((s) => s.length > 0);
128
+ return parts[0] ?? "测试环境";
214
129
  }
215
130
  //# sourceMappingURL=publish.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerReleaseCommands(program: Command): void;
3
+ //# sourceMappingURL=release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/release.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqC9D"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerReleaseCommands = registerReleaseCommands;
7
+ const client_1 = __importDefault(require("../../api/client"));
8
+ function parsePositiveInt(value, name) {
9
+ const n = Number.parseInt(value, 10);
10
+ if (!Number.isFinite(n) || n < 1) {
11
+ throw new Error(`无效的${name}: ${value}`);
12
+ }
13
+ return n;
14
+ }
15
+ function registerReleaseCommands(program) {
16
+ program
17
+ .command("release")
18
+ .description("测试通过:需求进入待上线并创建 PR(与飞书「测试通过」一致);使用 -f / --force 时另对该 PR 执行 squash 合并")
19
+ .argument("<requirementId>", "需求主键 ID")
20
+ .option("-f, --force", "创建 PR 后合并(squash)")
21
+ .requiredOption("-b, --branch <name>", "必填:仅对该分支名对应的开发者创建/合并 PR,或标记失败时指定同一开发分支")
22
+ .option("-r, --reason <reason>", "带有该参数表示上线流程失败,并给出失败原因,一般是合并代码出现冲突了(须与 -b 同用)")
23
+ .action(async (requirementIdStr, opts) => {
24
+ const id = parsePositiveInt(requirementIdStr, "需求 ID");
25
+ const branchName = opts.branch.trim();
26
+ if (!branchName) {
27
+ throw new Error("无效的 -b:分支名不能为空");
28
+ }
29
+ const reason = opts.reason?.trim();
30
+ await client_1.default.cli.resourceRequirementRelease({
31
+ id,
32
+ forceMerge: Boolean(opts.force),
33
+ branchName,
34
+ failureReason: reason,
35
+ });
36
+ console.log("操作完成");
37
+ });
38
+ }
39
+ //# sourceMappingURL=release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../../src/cli/commands/release.ts"],"names":[],"mappings":";;;;;AAWA,0DAqCC;AA/CD,8DAAmC;AAEnC,SAAS,gBAAgB,CAAC,KAAa,EAAE,IAAY;IACnD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CACV,sEAAsE,CACvE;SACA,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC;SACtC,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;SAC1C,cAAc,CACb,qBAAqB,EACrB,wCAAwC,CACzC;SACA,MAAM,CACL,uBAAuB,EACvB,8CAA8C,CAC/C;SACA,MAAM,CACL,KAAK,EACH,gBAAwB,EACxB,IAA0D,EAC1D,EAAE;QACF,MAAM,EAAE,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QAEnC,MAAM,gBAAG,CAAC,GAAG,CAAC,0BAA0B,CAAC;YACvC,EAAE;YACF,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/B,UAAU;YACV,aAAa,EAAE,MAAM;SACtB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CACF,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const parsePositiveInt: (v: string) => number;
2
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/parse.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,MAAO,MAAM,KAAG,MAM5C,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePositiveInt = void 0;
4
+ const parsePositiveInt = (v) => {
5
+ const n = Number.parseInt(String(v), 10);
6
+ if (!Number.isFinite(n) || n < 1) {
7
+ throw new Error("--requirement-id 须为正整数");
8
+ }
9
+ return n;
10
+ };
11
+ exports.parsePositiveInt = parsePositiveInt;
12
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/cli/utils/parse.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAU,EAAE;IACpD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AANW,QAAA,gBAAgB,oBAM3B"}
package/dist/cli.js CHANGED
@@ -6,7 +6,9 @@ const auth_1 = require("./cli/commands/auth");
6
6
  const config_1 = require("./cli/commands/config");
7
7
  const get_1 = require("./cli/commands/get");
8
8
  const init_1 = require("./cli/commands/init");
9
- const publish_1 = require("./cli/commands/publish");
9
+ const deploy_backend_1 = require("./cli/commands/deploy-backend");
10
+ const deploy_frontend_1 = require("./cli/commands/deploy-frontend");
11
+ const release_1 = require("./cli/commands/release");
10
12
  const set_1 = require("./cli/commands/set");
11
13
  const status_1 = require("./cli/commands/status");
12
14
  const update_1 = require("./cli/commands/update");
@@ -24,7 +26,9 @@ const program = new commander_1.Command()
24
26
  (0, ws_1.registerWsCommands)(program);
25
27
  (0, update_1.registerUpdateCommands)(program);
26
28
  (0, init_1.registerInitCommands)(program);
27
- (0, publish_1.registerPublishCommands)(program);
29
+ (0, deploy_frontend_1.registerDeployFrontendCommands)(program);
30
+ (0, deploy_backend_1.registerDeployBackendCommands)(program);
31
+ (0, release_1.registerReleaseCommands)(program);
28
32
  program.parseAsync(process.argv).catch((err) => {
29
33
  console.error(err);
30
34
  process.exit(1);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,8CAA2D;AAC3D,kDAA+D;AAC/D,4CAAyD;AACzD,8CAA2D;AAC3D,oDAAiE;AACjE,4CAAyD;AACzD,kDAA+D;AAC/D,kDAA+D;AAC/D,0CAAuD;AACvD,gDAAwE;AAExE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE;KAC1B,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,+BAAmB,CAAC;KAChC,OAAO,CAAC,2BAAe,CAAC,CAAC;AAE5B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,2BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,yBAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,yBAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,uBAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,2BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;AAEjC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,8CAA2D;AAC3D,kDAA+D;AAC/D,4CAAyD;AACzD,8CAA2D;AAC3D,kEAA8E;AAC9E,oEAAgF;AAChF,oDAAiE;AACjE,4CAAyD;AACzD,kDAA+D;AAC/D,kDAA+D;AAC/D,0CAAuD;AACvD,gDAAwE;AAExE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE;KAC1B,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,+BAAmB,CAAC;KAChC,OAAO,CAAC,2BAAe,CAAC,CAAC;AAE5B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,2BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,yBAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,yBAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,uBAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,+BAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,2BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,gDAA8B,EAAC,OAAO,CAAC,CAAC;AACxC,IAAA,8CAA6B,EAAC,OAAO,CAAC,CAAC;AACvC,IAAA,iCAAuB,EAAC,OAAO,CAAC,CAAC;AAEjC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,3 +1,31 @@
1
+ /** 后端镜像部署(`apm deploy-backend`),连接信息放在此节,由你在 `.apm/apm.config.json` 中填写 */
2
+ export type ApmBackendDeploy = {
3
+ registryHost: string;
4
+ registryUser: string;
5
+ registryPassword: string;
6
+ remoteHost: string;
7
+ remotePort: number;
8
+ remoteProtocol: "https" | "http";
9
+ /** 可选;空字符串表示未配置 */
10
+ caPath?: string;
11
+ certPath?: string;
12
+ keyPath?: string;
13
+ /** 远程 pull 的 registry serveraddress;空则使用 `https://{registryHost}` */
14
+ remotePullServeraddress?: string;
15
+ /** 空则使用 registryUser */
16
+ remotePullUser?: string;
17
+ /** 空则使用 registryPassword */
18
+ remotePullPassword?: string;
19
+ /**
20
+ * 镜像仓库完整路径(**不含 tag**),与后续容器名一致时仅 tag 不同。
21
+ * 例:registry.cn-hangzhou.aliyuncs.com/my-ns/my-service
22
+ */
23
+ imageRepository: string;
24
+ /**
25
+ * 与镜像对应的容器名;空则使用 imageRepository 路径最后一段(与镜像「短名」一致)。
26
+ */
27
+ containerName?: string;
28
+ };
1
29
  export type ApmConfig = {
2
30
  auth: {
3
31
  id: number;
@@ -7,7 +35,8 @@ export type ApmConfig = {
7
35
  url: string;
8
36
  wsPort: number;
9
37
  };
10
- deploy: {
38
+ /** 前端发布(MinIO 等),与 `apm deploy-frontend` 一致;服务端 `/cli/variables/get` 同步此节 */
39
+ frontendDeploy: {
11
40
  endpoint: string;
12
41
  port: number;
13
42
  useSsl: boolean;
@@ -15,6 +44,36 @@ export type ApmConfig = {
15
44
  accessKey: string;
16
45
  secretKey: string;
17
46
  };
47
+ /** 缺省时在解析时与默认合并 */
48
+ backendDeploy?: ApmBackendDeploy;
49
+ };
50
+ /**
51
+ * 读取并校验 `apm.config.json` 中的 `backendDeploy`,供 `deploy-backend` 使用。
52
+ * 必填项缺失或非法时抛出带说明的 Error。
53
+ */
54
+ export declare function resolveBackendDeployFromApmConfig(cfg: ApmConfig): {
55
+ registry: {
56
+ registryHost: string;
57
+ username: string;
58
+ password: string;
59
+ };
60
+ remoteDocker: {
61
+ host: string;
62
+ port: number;
63
+ protocol: "https" | "http";
64
+ caPath?: string;
65
+ certPath?: string;
66
+ keyPath?: string;
67
+ };
68
+ remotePullAuth: {
69
+ username: string;
70
+ password: string;
71
+ serveraddress: string;
72
+ };
73
+ /** 不含 tag,如 registry.cn-xxx.aliyuncs.com/ns/app */
74
+ imageRepository: string;
75
+ /** 与镜像短名一致,供后续 docker run --name 等使用 */
76
+ containerName: string;
18
77
  };
19
78
  export declare function loadApmConfig(): ApmConfig;
20
79
  export declare function syncApmConfig(options: {
@@ -1 +1 @@
1
- {"version":3,"file":"apm-config.d.ts","sourceRoot":"","sources":["../../src/core/apm-config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE;QAEJ,EAAE,EAAE,MAAM,CAAC;QAEX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE;QAEN,GAAG,EAAE,MAAM,CAAC;QAEZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,IAAI,SAAS,CAYzC;AAGD,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,iBAYxE;AAMD,wBAAgB,iBAAiB,IAAI,OAAO,CAO3C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,QAKzC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,QA2BpE"}
1
+ {"version":3,"file":"apm-config.d.ts","sourceRoot":"","sources":["../../src/core/apm-config.ts"],"names":[],"mappings":"AAKA,2EAA2E;AAC3E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE;QAEJ,EAAE,EAAE,MAAM,CAAC;QAEX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE;QAEN,GAAG,EAAE,MAAM,CAAC;QAEZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,6EAA6E;IAC7E,cAAc,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,mBAAmB;IACnB,aAAa,CAAC,EAAE,gBAAgB,CAAC;CAClC,CAAC;AAkBF;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,SAAS,GAAG;IACjE,QAAQ,EAAE;QACR,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,cAAc,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;CACvB,CAkGA;AAoBD,wBAAgB,aAAa,IAAI,SAAS,CAazC;AAGD,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,iBAYxE;AAMD,wBAAgB,iBAAiB,IAAI,OAAO,CAO3C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,QAKzC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,QA4BpE"}
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.resolveBackendDeployFromApmConfig = resolveBackendDeployFromApmConfig;
6
7
  exports.loadApmConfig = loadApmConfig;
7
8
  exports.syncApmConfig = syncApmConfig;
8
9
  exports.isApmConfigExists = isApmConfigExists;
@@ -12,14 +13,120 @@ const node_path_1 = __importDefault(require("node:path"));
12
13
  const node_fs_1 = require("node:fs");
13
14
  const node_process_1 = require("node:process");
14
15
  const client_1 = __importDefault(require("../api/client"));
16
+ const DEFAULT_BACKEND_DEPLOY = {
17
+ registryHost: "",
18
+ registryUser: "",
19
+ registryPassword: "",
20
+ remoteHost: "",
21
+ remotePort: 2376,
22
+ remoteProtocol: "https",
23
+ caPath: "",
24
+ certPath: "",
25
+ keyPath: "",
26
+ remotePullServeraddress: "",
27
+ remotePullUser: "",
28
+ remotePullPassword: "",
29
+ imageRepository: "",
30
+ };
31
+ /**
32
+ * 读取并校验 `apm.config.json` 中的 `backendDeploy`,供 `deploy-backend` 使用。
33
+ * 必填项缺失或非法时抛出带说明的 Error。
34
+ */
35
+ function resolveBackendDeployFromApmConfig(cfg) {
36
+ const b = { ...DEFAULT_BACKEND_DEPLOY, ...cfg.backendDeploy };
37
+ const registryHost = b.registryHost.trim();
38
+ const registryUser = b.registryUser.trim();
39
+ const registryPassword = b.registryPassword.trim();
40
+ const remoteHost = b.remoteHost.trim();
41
+ if (!registryHost) {
42
+ throw new Error("请在 .apm/apm.config.json 的 backendDeploy.registryHost 中配置镜像仓库主机名");
43
+ }
44
+ if (!registryUser) {
45
+ throw new Error("请在 .apm/apm.config.json 的 backendDeploy.registryUser 中配置 Registry 用户名");
46
+ }
47
+ if (!registryPassword) {
48
+ throw new Error("请在 .apm/apm.config.json 的 backendDeploy.registryPassword 中配置 Registry 密码");
49
+ }
50
+ if (!remoteHost) {
51
+ throw new Error("请在 .apm/apm.config.json 的 backendDeploy.remoteHost 中配置远程 Docker 地址");
52
+ }
53
+ const remotePort = Number(b.remotePort);
54
+ if (!Number.isFinite(remotePort) ||
55
+ remotePort < 1 ||
56
+ remotePort > 65535) {
57
+ throw new Error("请在 .apm/apm.config.json 的 backendDeploy.remotePort 中配置合法端口(1–65535)");
58
+ }
59
+ const protocol = b.remoteProtocol === "http"
60
+ ? "http"
61
+ : b.remoteProtocol === "https"
62
+ ? "https"
63
+ : (() => {
64
+ throw new Error("backendDeploy.remoteProtocol 仅支持 https 或 http");
65
+ })();
66
+ const trimOrUndef = (s) => {
67
+ const t = (s ?? "").trim();
68
+ return t.length > 0 ? t : undefined;
69
+ };
70
+ const remotePullServeraddress = trimOrUndef(b.remotePullServeraddress) ??
71
+ `https://${registryHost}`;
72
+ const remotePullUser = trimOrUndef(b.remotePullUser) ?? registryUser;
73
+ const remotePullPassword = trimOrUndef(b.remotePullPassword) ?? registryPassword;
74
+ const imageRepository = b.imageRepository.trim();
75
+ if (!imageRepository) {
76
+ throw new Error("请在 .apm/apm.config.json 的 backendDeploy.imageRepository 中配置镜像名(完整仓库路径,不含 tag)");
77
+ }
78
+ if (imageRepository.includes(":")) {
79
+ throw new Error("backendDeploy.imageRepository 不应包含 tag(不能出现 ':'),tag 由 `apm deploy-backend` 的位置参数 `<name>` 指定");
80
+ }
81
+ const containerName = trimOrUndef(b.containerName) ?? repositoryBaseName(imageRepository);
82
+ return {
83
+ registry: {
84
+ registryHost,
85
+ username: registryUser,
86
+ password: registryPassword,
87
+ },
88
+ remoteDocker: {
89
+ host: remoteHost,
90
+ port: remotePort,
91
+ protocol,
92
+ caPath: trimOrUndef(b.caPath),
93
+ certPath: trimOrUndef(b.certPath),
94
+ keyPath: trimOrUndef(b.keyPath),
95
+ },
96
+ remotePullAuth: {
97
+ username: remotePullUser,
98
+ password: remotePullPassword,
99
+ serveraddress: remotePullServeraddress,
100
+ },
101
+ imageRepository,
102
+ containerName,
103
+ };
104
+ }
105
+ function repositoryBaseName(imageRepositoryWithoutTag) {
106
+ const s = imageRepositoryWithoutTag.trim();
107
+ const i = s.lastIndexOf("/");
108
+ return i >= 0 ? s.slice(i + 1) : s;
109
+ }
110
+ /**
111
+ * 将历史键名 `deploy` 迁到 `frontendDeploy`(读入后删除旧键,下次写回即为新协议)。
112
+ */
113
+ function migrateLegacyDeployKeyInPlace(raw) {
114
+ if (raw.frontendDeploy === undefined && raw.deploy !== undefined) {
115
+ raw.frontendDeploy = raw.deploy;
116
+ }
117
+ if (raw.deploy !== undefined) {
118
+ delete raw.deploy;
119
+ }
120
+ }
15
121
  function loadApmConfig() {
16
122
  try {
17
123
  const p = getApmConfigPath();
18
124
  if (!(0, node_fs_1.existsSync)(p)) {
19
125
  createApmConfig({ id: 0 });
20
126
  }
21
- const j = JSON.parse((0, node_fs_1.readFileSync)(p, "utf8"));
22
- return j;
127
+ const raw = JSON.parse((0, node_fs_1.readFileSync)(p, "utf8"));
128
+ migrateLegacyDeployKeyInPlace(raw);
129
+ return raw;
23
130
  }
24
131
  catch (e) {
25
132
  console.error(e);
@@ -69,7 +176,7 @@ function createApmConfig(options) {
69
176
  url: options.url || "http://localhost:3000",
70
177
  wsPort: 4000,
71
178
  },
72
- deploy: {
179
+ frontendDeploy: {
73
180
  endpoint: "",
74
181
  port: 0,
75
182
  useSsl: false,
@@ -77,6 +184,7 @@ function createApmConfig(options) {
77
184
  accessKey: "",
78
185
  secretKey: "",
79
186
  },
187
+ backendDeploy: DEFAULT_BACKEND_DEPLOY,
80
188
  }, null, 2));
81
189
  }
82
190
  //# sourceMappingURL=apm-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apm-config.js","sourceRoot":"","sources":["../../src/core/apm-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apm-config.js","sourceRoot":"","sources":["../../src/core/apm-config.ts"],"names":[],"mappings":"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"}