openxiangda-cli 2.0.0-alpha.12 → 2.0.0-alpha.122

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 (271) hide show
  1. package/README.md +13 -14
  2. package/bin/run.js +79 -1
  3. package/dist/base.d.ts +40 -5
  4. package/dist/base.d.ts.map +1 -1
  5. package/dist/base.js +123 -10
  6. package/dist/base.js.map +1 -1
  7. package/dist/commands/accept.d.ts +25 -0
  8. package/dist/commands/accept.d.ts.map +1 -0
  9. package/dist/commands/accept.js +21 -0
  10. package/dist/commands/accept.js.map +1 -0
  11. package/dist/commands/cancel.d.ts +16 -1
  12. package/dist/commands/cancel.d.ts.map +1 -1
  13. package/dist/commands/cancel.js +1 -1
  14. package/dist/commands/cancel.js.map +1 -1
  15. package/dist/commands/check.d.ts +17 -1
  16. package/dist/commands/check.d.ts.map +1 -1
  17. package/dist/commands/check.js +15 -3
  18. package/dist/commands/check.js.map +1 -1
  19. package/dist/commands/create.d.ts +25 -0
  20. package/dist/commands/create.d.ts.map +1 -0
  21. package/dist/commands/create.js +101 -0
  22. package/dist/commands/create.js.map +1 -0
  23. package/dist/commands/deploy.d.ts +21 -8
  24. package/dist/commands/deploy.d.ts.map +1 -1
  25. package/dist/commands/deploy.js +29 -16
  26. package/dist/commands/deploy.js.map +1 -1
  27. package/dist/commands/dev.d.ts +18 -1
  28. package/dist/commands/dev.d.ts.map +1 -1
  29. package/dist/commands/dev.js +24 -3
  30. package/dist/commands/dev.js.map +1 -1
  31. package/dist/commands/login.d.ts +26 -0
  32. package/dist/commands/login.d.ts.map +1 -0
  33. package/dist/commands/login.js +73 -0
  34. package/dist/commands/login.js.map +1 -0
  35. package/dist/commands/logs.d.ts +17 -2
  36. package/dist/commands/logs.d.ts.map +1 -1
  37. package/dist/commands/logs.js +2 -2
  38. package/dist/commands/logs.js.map +1 -1
  39. package/dist/commands/retry.d.ts +16 -1
  40. package/dist/commands/retry.d.ts.map +1 -1
  41. package/dist/commands/retry.js +5 -2
  42. package/dist/commands/retry.js.map +1 -1
  43. package/dist/commands/rollback.d.ts +17 -4
  44. package/dist/commands/rollback.d.ts.map +1 -1
  45. package/dist/commands/rollback.js +11 -4
  46. package/dist/commands/rollback.js.map +1 -1
  47. package/dist/commands/skill.d.ts +28 -0
  48. package/dist/commands/skill.d.ts.map +1 -0
  49. package/dist/commands/skill.js +43 -0
  50. package/dist/commands/skill.js.map +1 -0
  51. package/dist/commands/spec.d.ts +36 -0
  52. package/dist/commands/spec.d.ts.map +1 -0
  53. package/dist/commands/spec.js +117 -0
  54. package/dist/commands/spec.js.map +1 -0
  55. package/dist/commands/start.d.ts +25 -0
  56. package/dist/commands/start.d.ts.map +1 -0
  57. package/dist/commands/start.js +18 -0
  58. package/dist/commands/start.js.map +1 -0
  59. package/dist/commands/status.d.ts +16 -1
  60. package/dist/commands/status.d.ts.map +1 -1
  61. package/dist/commands/status.js +1 -1
  62. package/dist/commands/status.js.map +1 -1
  63. package/dist/commands/stop.d.ts +25 -0
  64. package/dist/commands/stop.d.ts.map +1 -0
  65. package/dist/commands/stop.js +18 -0
  66. package/dist/commands/stop.js.map +1 -0
  67. package/dist/create-workspace.d.ts +31 -0
  68. package/dist/create-workspace.d.ts.map +1 -0
  69. package/dist/create-workspace.js +273 -0
  70. package/dist/create-workspace.js.map +1 -0
  71. package/dist/toolchain-capsule.d.ts +4 -0
  72. package/dist/toolchain-capsule.d.ts.map +1 -0
  73. package/dist/toolchain-capsule.js +116 -0
  74. package/dist/toolchain-capsule.js.map +1 -0
  75. package/package.json +16 -9
  76. package/template/.dockerignore +23 -0
  77. package/template/.env.example +3 -0
  78. package/template/AGENTS.md +25 -0
  79. package/template/README.md +43 -0
  80. package/template/_gitignore +14 -0
  81. package/template/apps/server/Dockerfile +20 -0
  82. package/template/apps/server/package.json +27 -0
  83. package/template/apps/server/src/app.module.ts +43 -0
  84. package/template/apps/server/src/main.ts +5 -0
  85. package/template/apps/server/test/smoke.test.ts +16 -0
  86. package/template/apps/server/tsconfig.json +9 -0
  87. package/template/apps/web/data-api-live.e2e.html +15 -0
  88. package/template/apps/web/e2e/client-fixture.ts +5 -0
  89. package/template/apps/web/e2e/data-api-live-fixture.tsx +162 -0
  90. package/template/apps/web/e2e/data-api-live.spec.ts +144 -0
  91. package/template/apps/web/e2e/field-protocol-fixture.tsx +347 -0
  92. package/template/apps/web/e2e/field-protocol.spec.ts +195 -0
  93. package/template/apps/web/e2e/resource-experience-fixture.tsx +415 -0
  94. package/template/apps/web/e2e/resources.spec.ts +578 -0
  95. package/template/apps/web/e2e/workflow-experience-fixture.tsx +144 -0
  96. package/template/apps/web/e2e/workflow.spec.ts +576 -0
  97. package/template/apps/web/field-protocol.e2e.html +15 -0
  98. package/template/apps/web/index.html +12 -0
  99. package/template/apps/web/package.json +32 -0
  100. package/template/apps/web/playwright.config.ts +47 -0
  101. package/template/apps/web/resource-experience.e2e.html +15 -0
  102. package/template/apps/web/scripts/check.mjs +43 -0
  103. package/template/apps/web/scripts/verify-build.mjs +6 -0
  104. package/template/apps/web/src/main.tsx +41 -0
  105. package/template/apps/web/test/contracts.test.ts +149 -0
  106. package/template/apps/web/test/loopback.test.ts +62 -0
  107. package/template/apps/web/tsconfig.json +12 -0
  108. package/template/apps/web/vite.config.ts +40 -0
  109. package/template/apps/web/workflow-experience.e2e.html +15 -0
  110. package/template/appspec/app.md +36 -0
  111. package/template/openxiangda.config.ts +34 -0
  112. package/template/package.json +28 -0
  113. package/template/packages/contracts/package.json +23 -0
  114. package/template/packages/contracts/src/generated.ts +135 -0
  115. package/template/packages/contracts/src/index.ts +1 -0
  116. package/template/packages/contracts/tsconfig.json +9 -0
  117. package/template/pnpm-workspace.yaml +7 -0
  118. package/template/scripts/verify-template-budget.mjs +49 -0
  119. package/template/tsconfig.base.json +13 -0
  120. package/dist/commands/app/create.d.ts +0 -15
  121. package/dist/commands/app/create.d.ts.map +0 -1
  122. package/dist/commands/app/create.js +0 -42
  123. package/dist/commands/app/create.js.map +0 -1
  124. package/dist/commands/app/info.d.ts +0 -9
  125. package/dist/commands/app/info.d.ts.map +0 -1
  126. package/dist/commands/app/info.js +0 -10
  127. package/dist/commands/app/info.js.map +0 -1
  128. package/dist/commands/app/link.d.ts +0 -10
  129. package/dist/commands/app/link.d.ts.map +0 -1
  130. package/dist/commands/app/link.js +0 -16
  131. package/dist/commands/app/link.js.map +0 -1
  132. package/dist/commands/app/provision.d.ts +0 -9
  133. package/dist/commands/app/provision.d.ts.map +0 -1
  134. package/dist/commands/app/provision.js +0 -10
  135. package/dist/commands/app/provision.js.map +0 -1
  136. package/dist/commands/auth/login.d.ts +0 -10
  137. package/dist/commands/auth/login.d.ts.map +0 -1
  138. package/dist/commands/auth/login.js +0 -34
  139. package/dist/commands/auth/login.js.map +0 -1
  140. package/dist/commands/auth/logout.d.ts +0 -6
  141. package/dist/commands/auth/logout.d.ts.map +0 -1
  142. package/dist/commands/auth/logout.js +0 -10
  143. package/dist/commands/auth/logout.js.map +0 -1
  144. package/dist/commands/auth/status.d.ts +0 -6
  145. package/dist/commands/auth/status.d.ts.map +0 -1
  146. package/dist/commands/auth/status.js +0 -19
  147. package/dist/commands/auth/status.js.map +0 -1
  148. package/dist/commands/build.d.ts +0 -11
  149. package/dist/commands/build.d.ts.map +0 -1
  150. package/dist/commands/build.js +0 -23
  151. package/dist/commands/build.js.map +0 -1
  152. package/dist/commands/doctor.d.ts +0 -9
  153. package/dist/commands/doctor.d.ts.map +0 -1
  154. package/dist/commands/doctor.js +0 -7
  155. package/dist/commands/doctor.js.map +0 -1
  156. package/dist/commands/event/delivery/list.d.ts +0 -10
  157. package/dist/commands/event/delivery/list.d.ts.map +0 -1
  158. package/dist/commands/event/delivery/list.js +0 -14
  159. package/dist/commands/event/delivery/list.js.map +0 -1
  160. package/dist/commands/event/delivery/replay.d.ts +0 -13
  161. package/dist/commands/event/delivery/replay.d.ts.map +0 -1
  162. package/dist/commands/event/delivery/replay.js +0 -16
  163. package/dist/commands/event/delivery/replay.js.map +0 -1
  164. package/dist/commands/event/subscription/list.d.ts +0 -9
  165. package/dist/commands/event/subscription/list.d.ts.map +0 -1
  166. package/dist/commands/event/subscription/list.js +0 -10
  167. package/dist/commands/event/subscription/list.js.map +0 -1
  168. package/dist/commands/event/subscription/rotate-secret.d.ts +0 -15
  169. package/dist/commands/event/subscription/rotate-secret.d.ts.map +0 -1
  170. package/dist/commands/event/subscription/rotate-secret.js +0 -33
  171. package/dist/commands/event/subscription/rotate-secret.js.map +0 -1
  172. package/dist/commands/event/subscription/status.d.ts +0 -14
  173. package/dist/commands/event/subscription/status.d.ts.map +0 -1
  174. package/dist/commands/event/subscription/status.js +0 -19
  175. package/dist/commands/event/subscription/status.js.map +0 -1
  176. package/dist/commands/event/timer/list.d.ts +0 -9
  177. package/dist/commands/event/timer/list.d.ts.map +0 -1
  178. package/dist/commands/event/timer/list.js +0 -10
  179. package/dist/commands/event/timer/list.js.map +0 -1
  180. package/dist/commands/event/timer/status.d.ts +0 -14
  181. package/dist/commands/event/timer/status.d.ts.map +0 -1
  182. package/dist/commands/event/timer/status.js +0 -19
  183. package/dist/commands/event/timer/status.js.map +0 -1
  184. package/dist/commands/generate.d.ts +0 -10
  185. package/dist/commands/generate.d.ts.map +0 -1
  186. package/dist/commands/generate.js +0 -8
  187. package/dist/commands/generate.js.map +0 -1
  188. package/dist/commands/oauth/audit/list.d.ts +0 -12
  189. package/dist/commands/oauth/audit/list.d.ts.map +0 -1
  190. package/dist/commands/oauth/audit/list.js +0 -20
  191. package/dist/commands/oauth/audit/list.js.map +0 -1
  192. package/dist/commands/oauth/client/create.d.ts +0 -13
  193. package/dist/commands/oauth/client/create.d.ts.map +0 -1
  194. package/dist/commands/oauth/client/create.js +0 -34
  195. package/dist/commands/oauth/client/create.js.map +0 -1
  196. package/dist/commands/oauth/client/list.d.ts +0 -9
  197. package/dist/commands/oauth/client/list.d.ts.map +0 -1
  198. package/dist/commands/oauth/client/list.js +0 -10
  199. package/dist/commands/oauth/client/list.js.map +0 -1
  200. package/dist/commands/oauth/client/revoke.d.ts +0 -12
  201. package/dist/commands/oauth/client/revoke.d.ts.map +0 -1
  202. package/dist/commands/oauth/client/revoke.js +0 -12
  203. package/dist/commands/oauth/client/revoke.js.map +0 -1
  204. package/dist/commands/oauth/client/rotate.d.ts +0 -13
  205. package/dist/commands/oauth/client/rotate.d.ts.map +0 -1
  206. package/dist/commands/oauth/client/rotate.js +0 -20
  207. package/dist/commands/oauth/client/rotate.js.map +0 -1
  208. package/dist/commands/oauth/client/update.d.ts +0 -15
  209. package/dist/commands/oauth/client/update.d.ts.map +0 -1
  210. package/dist/commands/oauth/client/update.js +0 -23
  211. package/dist/commands/oauth/client/update.js.map +0 -1
  212. package/dist/commands/oauth/runtime/rotate.d.ts +0 -12
  213. package/dist/commands/oauth/runtime/rotate.d.ts.map +0 -1
  214. package/dist/commands/oauth/runtime/rotate.js +0 -31
  215. package/dist/commands/oauth/runtime/rotate.js.map +0 -1
  216. package/dist/commands/oauth/runtime/status.d.ts +0 -10
  217. package/dist/commands/oauth/runtime/status.d.ts.map +0 -1
  218. package/dist/commands/oauth/runtime/status.js +0 -17
  219. package/dist/commands/oauth/runtime/status.js.map +0 -1
  220. package/dist/commands/promote.d.ts +0 -13
  221. package/dist/commands/promote.d.ts.map +0 -1
  222. package/dist/commands/promote.js +0 -9
  223. package/dist/commands/promote.js.map +0 -1
  224. package/dist/commands/secret/audit/list.d.ts +0 -14
  225. package/dist/commands/secret/audit/list.d.ts.map +0 -1
  226. package/dist/commands/secret/audit/list.js +0 -16
  227. package/dist/commands/secret/audit/list.js.map +0 -1
  228. package/dist/commands/secret/create.d.ts +0 -18
  229. package/dist/commands/secret/create.d.ts.map +0 -1
  230. package/dist/commands/secret/create.js +0 -33
  231. package/dist/commands/secret/create.js.map +0 -1
  232. package/dist/commands/secret/delete.d.ts +0 -15
  233. package/dist/commands/secret/delete.d.ts.map +0 -1
  234. package/dist/commands/secret/delete.js +0 -20
  235. package/dist/commands/secret/delete.js.map +0 -1
  236. package/dist/commands/secret/list.d.ts +0 -10
  237. package/dist/commands/secret/list.d.ts.map +0 -1
  238. package/dist/commands/secret/list.js +0 -14
  239. package/dist/commands/secret/list.js.map +0 -1
  240. package/dist/commands/secret/rotate.d.ts +0 -18
  241. package/dist/commands/secret/rotate.d.ts.map +0 -1
  242. package/dist/commands/secret/rotate.js +0 -30
  243. package/dist/commands/secret/rotate.js.map +0 -1
  244. package/dist/commands/secret/update.d.ts +0 -17
  245. package/dist/commands/secret/update.d.ts.map +0 -1
  246. package/dist/commands/secret/update.js +0 -37
  247. package/dist/commands/secret/update.js.map +0 -1
  248. package/dist/commands/skill/install.d.ts +0 -11
  249. package/dist/commands/skill/install.d.ts.map +0 -1
  250. package/dist/commands/skill/install.js +0 -52
  251. package/dist/commands/skill/install.js.map +0 -1
  252. package/dist/commands/skill/validate.d.ts +0 -9
  253. package/dist/commands/skill/validate.d.ts.map +0 -1
  254. package/dist/commands/skill/validate.js +0 -32
  255. package/dist/commands/skill/validate.js.map +0 -1
  256. package/dist/commands/test.d.ts +0 -9
  257. package/dist/commands/test.d.ts.map +0 -1
  258. package/dist/commands/test.js +0 -7
  259. package/dist/commands/test.js.map +0 -1
  260. package/dist/commands/workflow/provider/list.d.ts +0 -10
  261. package/dist/commands/workflow/provider/list.d.ts.map +0 -1
  262. package/dist/commands/workflow/provider/list.js +0 -14
  263. package/dist/commands/workflow/provider/list.js.map +0 -1
  264. package/dist/commands/workflow/provider/rotate.d.ts +0 -15
  265. package/dist/commands/workflow/provider/rotate.d.ts.map +0 -1
  266. package/dist/commands/workflow/provider/rotate.js +0 -24
  267. package/dist/commands/workflow/provider/rotate.js.map +0 -1
  268. package/dist/secret-value.d.ts +0 -5
  269. package/dist/secret-value.d.ts.map +0 -1
  270. package/dist/secret-value.js +0 -15
  271. package/dist/secret-value.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ import { readFileSync, readdirSync, statSync } from 'node:fs';
2
+ import { join, relative, resolve } from 'node:path';
3
+
4
+ const root = resolve(import.meta.dirname, '..');
5
+ const generated = /(?:^|\/)(?:node_modules|dist|coverage|playwright-report|test-results|\.openxiangda|\.turbo|\.turbopack|\.umi|\.umi-production)(?:\/|$)/;
6
+ const sourceExtensions = /\.(?:[cm]?[jt]sx?|css|html|json|md|ya?ml)$/;
7
+ const files = [];
8
+ function visit(directory) {
9
+ for (const entry of readdirSync(directory, { withFileTypes: true })) {
10
+ const path = join(directory, entry.name);
11
+ const name = relative(root, path).replaceAll('\\', '/');
12
+ if (
13
+ generated.test(name) ||
14
+ name === 'pnpm-lock.yaml' ||
15
+ name === 'packages/contracts/src/generated.ts'
16
+ ) continue;
17
+ if (entry.isDirectory()) visit(path);
18
+ else if (entry.isFile() && sourceExtensions.test(name)) files.push(path);
19
+ }
20
+ }
21
+ visit(root);
22
+ const bytes = files.reduce((total, file) => total + statSync(file).size, 0);
23
+ if (files.length > 50) throw new Error(`TEMPLATE_SOURCE_FILE_BUDGET_EXCEEDED:${files.length}>50`);
24
+ if (bytes > 500_000) throw new Error(`TEMPLATE_SOURCE_BYTE_BUDGET_EXCEEDED:${bytes}>500000`);
25
+ const productionFiles = files.filter(file => {
26
+ const name = relative(root, file).replaceAll('\\', '/');
27
+ return (
28
+ name === 'package.json' ||
29
+ name === 'openxiangda.config.ts' ||
30
+ name.startsWith('platform/') ||
31
+ (name.startsWith('apps/') &&
32
+ !name.includes('/test/') &&
33
+ !name.includes('/e2e/') &&
34
+ !name.includes('/scripts/'))
35
+ );
36
+ });
37
+ const source = productionFiles.map(file => readFileSync(file, 'utf8')).join('\n');
38
+ const agents = readFileSync(resolve(root, 'AGENTS.md'), 'utf8');
39
+ if (!agents.includes('pnpm openxiangda')) throw new Error('TEMPLATE_AGENT_PINNED_CLI_MISSING');
40
+ if (
41
+ !agents.includes("union of that user's application roles") ||
42
+ !agents.includes('Perspective projects only read visibility')
43
+ ) {
44
+ throw new Error('TEMPLATE_AGENT_ROLE_UNION_BOUNDARY_MISSING');
45
+ }
46
+ for (const marker of ['@umijs/', 'openxiangda-' + 'admin', 'openxiangda-' + 'user', 'instrument_query', 'instrument_save', 'function.invoke', 'departmentScopeKey', 'instrumentScopeKey', 'adminUserIds', 'college-' + 'am', 'user-' + 'wang', 'dept-' + 'am-test']) {
47
+ if (source.includes(marker)) throw new Error(`TEMPLATE_FORBIDDEN_MARKER:${marker}`);
48
+ }
49
+ process.stdout.write(`Verified compact template: ${files.length} source files, ${bytes} bytes.\n`);
@@ -0,0 +1,13 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "strict": true,
7
+ "noUncheckedIndexedAccess": true,
8
+ "exactOptionalPropertyTypes": true,
9
+ "skipLibCheck": true,
10
+ "experimentalDecorators": true,
11
+ "emitDecoratorMetadata": true
12
+ }
13
+ }
@@ -1,15 +0,0 @@
1
- import { OpenXiangdaCommand } from "../../base.js";
2
- export default class AppCreate extends OpenXiangdaCommand {
3
- static summary: string;
4
- static args: {
5
- directory: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
6
- };
7
- static flags: {
8
- "app-code": import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
- name: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
- install: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
- "local-sdk": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
- };
13
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
14
- }
15
- //# sourceMappingURL=create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/app/create.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,kBAAkB;IACvD,MAAM,CAAC,OAAO,SAA+B;IAC7C,MAAM,CAAC,IAAI;;MAAkD;IAC7D,MAAM,CAAC,KAAK;;;;;MAOV;IAEI,GAAG;CA0BV"}
@@ -1,42 +0,0 @@
1
- import { Args, Flags } from "@oclif/core";
2
- import { createWorkspace } from "create-openxiangda";
3
- import { OpenXiangdaCommand } from "../../base.js";
4
- export default class AppCreate extends OpenXiangdaCommand {
5
- static summary = "从官方模板创建 React + NestJS 应用";
6
- static args = { directory: Args.string({ required: true }) };
7
- static flags = {
8
- "app-code": Flags.string({ required: true, summary: "稳定应用代码" }),
9
- name: Flags.string({ required: true, summary: "应用名称" }),
10
- install: Flags.boolean({ summary: "创建后安装依赖" }),
11
- "local-sdk": Flags.string({
12
- summary: "使用本地 OpenXiangda 2.0 源码包,不经过 npm 发布",
13
- }),
14
- };
15
- async run() {
16
- const { args, flags } = await this.parse(AppCreate);
17
- const data = await createWorkspace({
18
- directory: args.directory,
19
- appCode: flags["app-code"],
20
- name: flags.name,
21
- install: flags.install,
22
- ...(flags["local-sdk"]
23
- ? { localSdkRoot: flags["local-sdk"] }
24
- : {}),
25
- });
26
- return this.present({
27
- ok: true,
28
- operation: "app.create",
29
- workspace: { appCode: data.appCode, name: data.name, root: data.root },
30
- data,
31
- diagnostics: [],
32
- nextActions: [
33
- {
34
- code: "check",
35
- label: "检查应用",
36
- command: `cd ${data.root} && openxiangda check`,
37
- },
38
- ],
39
- });
40
- }
41
- }
42
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/app/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,kBAAkB;IACvD,MAAM,CAAC,OAAO,GAAG,2BAA2B,CAAC;IAC7C,MAAM,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC7D,MAAM,CAAC,KAAK,GAAG;QACb,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC/D,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACvD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAC9C,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,qCAAqC;SAC/C,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;gBACpB,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE;gBACtC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,EAAE,EAAE,IAAI;YACR,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACtE,IAAI;YACJ,WAAW,EAAE,EAAE;YACf,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,uBAAuB;iBAChD;aACF;SACF,CAAC,CAAC;IACL,CAAC"}
@@ -1,9 +0,0 @@
1
- import { OpenXiangdaCommand } from '../../base.js';
2
- export default class AppInfo extends OpenXiangdaCommand {
3
- static summary: string;
4
- static flags: {
5
- cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
6
- };
7
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
8
- }
9
- //# sourceMappingURL=info.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/commands/app/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,eAAe,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,kBAAkB;IACrD,MAAM,CAAC,OAAO,SAAqB;IACnC,MAAM,CAAC,KAAK;;MAAkB;IACxB,GAAG;CAIV"}
@@ -1,10 +0,0 @@
1
- import { OpenXiangdaCommand, workspaceFlags } from '../../base.js';
2
- export default class AppInfo extends OpenXiangdaCommand {
3
- static summary = '读取 2.0 应用工作区上下文';
4
- static flags = workspaceFlags;
5
- async run() {
6
- const { flags } = await this.parse(AppInfo);
7
- return this.present(await this.services.workspaceContext(flags.cwd));
8
- }
9
- }
10
- //# sourceMappingURL=info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/app/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,kBAAkB;IACrD,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC;IACnC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC;IAC9B,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC"}
@@ -1,10 +0,0 @@
1
- import { OpenXiangdaCommand } from '../../base.js';
2
- export default class AppLink extends OpenXiangdaCommand {
3
- static summary: string;
4
- static flags: {
5
- 'base-url': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
6
- cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
- };
8
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
9
- }
10
- //# sourceMappingURL=link.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/commands/app/link.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,eAAe,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,kBAAkB;IACrD,MAAM,CAAC,OAAO,SAAiB;IAC/B,MAAM,CAAC,KAAK;;;MAGV;IAEI,GAAG;CAQV"}
@@ -1,16 +0,0 @@
1
- import { Flags } from '@oclif/core';
2
- import { OpenXiangdaCommand, workspaceFlags } from '../../base.js';
3
- export default class AppLink extends OpenXiangdaCommand {
4
- static summary = '绑定 2.0 平台地址';
5
- static flags = {
6
- ...workspaceFlags,
7
- 'base-url': Flags.string({ required: true }),
8
- };
9
- async run() {
10
- const { flags } = await this.parse(AppLink);
11
- return this.present(await this.services.linkApplication(flags.cwd, {
12
- baseUrl: flags['base-url'],
13
- }));
14
- }
15
- }
16
- //# sourceMappingURL=link.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/commands/app/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,kBAAkB;IACrD,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC;IAC/B,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,cAAc;QACjB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAC7C,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7C,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;SAC3B,CAAC,CACH,CAAC;IACJ,CAAC"}
@@ -1,9 +0,0 @@
1
- import { OpenXiangdaCommand } from "../../base.js";
2
- export default class AppProvision extends OpenXiangdaCommand {
3
- static summary: string;
4
- static flags: {
5
- cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
6
- };
7
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
8
- }
9
- //# sourceMappingURL=provision.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../../src/commands/app/provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,eAAe,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,kBAAkB;IAC1D,MAAM,CAAC,OAAO,SAAsB;IACpC,MAAM,CAAC,KAAK;;MAAkB;IAExB,GAAG;CAIV"}
@@ -1,10 +0,0 @@
1
- import { OpenXiangdaCommand, workspaceFlags } from "../../base.js";
2
- export default class AppProvision extends OpenXiangdaCommand {
3
- static summary = "在平台幂等创建 2.0 应用身份";
4
- static flags = workspaceFlags;
5
- async run() {
6
- const { flags } = await this.parse(AppProvision);
7
- return this.present(await this.services.provisionApplication(flags.cwd));
8
- }
9
- }
10
- //# sourceMappingURL=provision.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../src/commands/app/provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEnE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,kBAAkB;IAC1D,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAC;IACpC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC;IAE9B,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC"}
@@ -1,10 +0,0 @@
1
- import { OpenXiangdaCommand } from '../../base.js';
2
- export default class AuthLogin extends OpenXiangdaCommand {
3
- static summary: string;
4
- static flags: {
5
- 'base-url': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
6
- token: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
- };
8
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
9
- }
10
- //# sourceMappingURL=login.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,kBAAkB;IACvD,MAAM,CAAC,OAAO,SAA+B;IAC7C,MAAM,CAAC,KAAK;;;MAWV;IAEI,GAAG;CAeV"}
@@ -1,34 +0,0 @@
1
- import { Flags } from '@oclif/core';
2
- import { saveSession } from 'openxiangda-devkit-core';
3
- import { OpenXiangdaCommand } from '../../base.js';
4
- export default class AuthLogin extends OpenXiangdaCommand {
5
- static summary = '保存 OpenXiangda 2.0 平台登录会话';
6
- static flags = {
7
- 'base-url': Flags.string({
8
- required: true,
9
- summary: '平台 service 基地址',
10
- }),
11
- token: Flags.string({
12
- required: true,
13
- allowStdin: true,
14
- env: 'OPENXIANGDA_TOKEN',
15
- summary: '用户访问 token;优先使用环境变量或 stdin',
16
- }),
17
- };
18
- async run() {
19
- const { flags } = await this.parse(AuthLogin);
20
- const data = await saveSession({
21
- baseUrl: flags['base-url'],
22
- token: flags.token,
23
- });
24
- return this.present({
25
- ok: true,
26
- operation: 'auth.login',
27
- workspace: { appCode: 'global', root: process.cwd() },
28
- data,
29
- diagnostics: [],
30
- nextActions: [],
31
- });
32
- }
33
- }
34
- //# sourceMappingURL=login.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,kBAAkB;IACvD,MAAM,CAAC,OAAO,GAAG,2BAA2B,CAAC;IAC7C,MAAM,CAAC,KAAK,GAAG;QACb,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,gBAAgB;SAC1B,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,GAAG,EAAE,mBAAmB;YACxB,OAAO,EAAE,4BAA4B;SACtC,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,EAAE,EAAE,IAAI;YACR,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;YACrD,IAAI;YACJ,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;IACL,CAAC"}
@@ -1,6 +0,0 @@
1
- import { OpenXiangdaCommand } from '../../base.js';
2
- export default class AuthLogout extends OpenXiangdaCommand {
3
- static summary: string;
4
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
5
- }
6
- //# sourceMappingURL=logout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/logout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,kBAAkB;IACxD,MAAM,CAAC,OAAO,SAA6B;IAErC,GAAG;CAIV"}
@@ -1,10 +0,0 @@
1
- import { clearSession } from 'openxiangda-devkit-core';
2
- import { OpenXiangdaCommand } from '../../base.js';
3
- export default class AuthLogout extends OpenXiangdaCommand {
4
- static summary = '删除 OpenXiangda 2.0 登录会话';
5
- async run() {
6
- await clearSession();
7
- return this.present({ ok: true, operation: 'auth.logout', workspace: { appCode: 'global', root: process.cwd() }, data: { loggedOut: true }, diagnostics: [], nextActions: [] });
8
- }
9
- }
10
- //# sourceMappingURL=logout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/commands/auth/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,kBAAkB;IACxD,MAAM,CAAC,OAAO,GAAG,yBAAyB,CAAC;IAE3C,KAAK,CAAC,GAAG;QACP,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IAClL,CAAC"}
@@ -1,6 +0,0 @@
1
- import { OpenXiangdaCommand } from '../../base.js';
2
- export default class AuthStatus extends OpenXiangdaCommand {
3
- static summary: string;
4
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
5
- }
6
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,kBAAkB;IACxD,MAAM,CAAC,OAAO,SAA6B;IAErC,GAAG;CAaV"}
@@ -1,19 +0,0 @@
1
- import { loadSession, redactToken } from 'openxiangda-devkit-core';
2
- import { OpenXiangdaCommand } from '../../base.js';
3
- export default class AuthStatus extends OpenXiangdaCommand {
4
- static summary = '查看 OpenXiangda 2.0 登录状态';
5
- async run() {
6
- const session = await loadSession();
7
- return this.present({
8
- ok: Boolean(session),
9
- operation: 'auth.status',
10
- workspace: { appCode: 'global', root: process.cwd() },
11
- ...(session ? { data: { ...session, token: redactToken(session.token) } } : {}),
12
- diagnostics: session
13
- ? []
14
- : [{ schemaVersion: 'openxiangda.diagnostic/v2', code: 'OPENXIANGDA_AUTH_REQUIRED', severity: 'error', message: '尚未登录', retryable: false }],
15
- nextActions: session ? [] : [{ code: 'login', label: '登录平台', command: 'openxiangda auth login' }],
16
- });
17
- }
18
- }
19
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/auth/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,kBAAkB;IACxD,MAAM,CAAC,OAAO,GAAG,yBAAyB,CAAC;IAE3C,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC;YACpB,SAAS,EAAE,aAAa;YACxB,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;YACrD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,WAAW,EAAE,OAAO;gBAClB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,2BAA2B,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC7I,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;SAClG,CAAC,CAAC;IACL,CAAC"}
@@ -1,11 +0,0 @@
1
- import { OpenXiangdaCommand } from '../base.js';
2
- export default class Build extends OpenXiangdaCommand {
3
- static summary: string;
4
- static flags: {
5
- 'backend-image': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
6
- 'skip-workspace-build': import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
- cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
- };
9
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
10
- }
11
- //# sourceMappingURL=build.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAoC,MAAM,YAAY,CAAC;AAClF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB;IACnD,MAAM,CAAC,OAAO,SAAwB;IACtC,MAAM,CAAC,KAAK;;;;MAMV;IACI,GAAG;CAYV"}
@@ -1,23 +0,0 @@
1
- import { Flags } from '@oclif/core';
2
- import { OpenXiangdaCommand, backendImageFlag, workspaceFlags } from '../base.js';
3
- export default class Build extends OpenXiangdaCommand {
4
- static summary = '构建并密封一个 AppPackage';
5
- static flags = {
6
- ...workspaceFlags,
7
- 'backend-image': backendImageFlag,
8
- 'skip-workspace-build': Flags.boolean({
9
- summary: '仅供已完成构建的 CI 使用',
10
- }),
11
- };
12
- async run() {
13
- const { flags } = await this.parse(Build);
14
- return this.present(await this.services.build({
15
- ...(flags.cwd ? { root: flags.cwd } : {}),
16
- ...(flags['backend-image']
17
- ? { backendImage: flags['backend-image'] }
18
- : {}),
19
- skipWorkspaceBuild: flags['skip-workspace-build'],
20
- }));
21
- }
22
- }
23
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,kBAAkB;IACnD,MAAM,CAAC,OAAO,GAAG,oBAAoB,CAAC;IACtC,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,cAAc;QACjB,eAAe,EAAE,gBAAgB;QACjC,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC;YACpC,OAAO,EAAE,gBAAgB;SAC1B,CAAC;KACH,CAAC;IACF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC;gBACxB,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE;gBAC1C,CAAC,CAAC,EAAE,CAAC;YACP,kBAAkB,EAAE,KAAK,CAAC,sBAAsB,CAAC;SAClD,CAAC,CACH,CAAC;IACJ,CAAC"}
@@ -1,9 +0,0 @@
1
- import { OpenXiangdaCommand } from '../base.js';
2
- export default class Doctor extends OpenXiangdaCommand {
3
- static summary: string;
4
- static flags: {
5
- cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
6
- };
7
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
8
- }
9
- //# sourceMappingURL=doctor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,YAAY,CAAC;AAChE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,SAAmB;IACjC,MAAM,CAAC,KAAK;;MAAkB;IACxB,GAAG;CACV"}
@@ -1,7 +0,0 @@
1
- import { OpenXiangdaCommand, workspaceFlags } from '../base.js';
2
- export default class Doctor extends OpenXiangdaCommand {
3
- static summary = '诊断本地工具链和平台兼容性';
4
- static flags = workspaceFlags;
5
- async run() { const { flags } = await this.parse(Doctor); return this.present(await this.services.doctor(flags.cwd)); }
6
- }
7
- //# sourceMappingURL=doctor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,kBAAkB;IACpD,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC;IACjC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC;IAC9B,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { OpenXiangdaCommand } from "../../../base.js";
2
- export default class EventDeliveryList extends OpenXiangdaCommand {
3
- static summary: string;
4
- static flags: {
5
- limit: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
6
- cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
- };
8
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
9
- }
10
- //# sourceMappingURL=list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/event/delivery/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,kBAAkB,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,kBAAkB;IAC/D,MAAM,CAAC,OAAO,SAAoB;IAClC,MAAM,CAAC,KAAK;;;MAGV;IAEI,GAAG;CAIV"}
@@ -1,14 +0,0 @@
1
- import { Flags } from "@oclif/core";
2
- import { OpenXiangdaCommand, workspaceFlags } from "../../../base.js";
3
- export default class EventDeliveryList extends OpenXiangdaCommand {
4
- static summary = "查询事件投递、重试和死信状态";
5
- static flags = {
6
- ...workspaceFlags,
7
- limit: Flags.integer({ default: 100, min: 1, max: 500, summary: "最大返回数量" }),
8
- };
9
- async run() {
10
- const { flags } = await this.parse(EventDeliveryList);
11
- return this.present(await this.services.eventDeliveries(flags.cwd, flags.limit));
12
- }
13
- }
14
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/event/delivery/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,kBAAkB;IAC/D,MAAM,CAAC,OAAO,GAAG,gBAAgB,CAAC;IAClC,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,cAAc;QACjB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;KAC5E,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,CAAC"}
@@ -1,13 +0,0 @@
1
- import { OpenXiangdaCommand } from "../../../base.js";
2
- export default class EventDeliveryReplay extends OpenXiangdaCommand {
3
- static summary: string;
4
- static args: {
5
- deliveryId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
6
- };
7
- static flags: {
8
- "idempotency-key": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
- cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
- };
11
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
12
- }
13
- //# sourceMappingURL=replay.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../../../../src/commands/event/delivery/replay.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,kBAAkB,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,kBAAkB;IACjE,MAAM,CAAC,OAAO,SAAsB;IACpC,MAAM,CAAC,IAAI;;MAAmD;IAC9D,MAAM,CAAC,KAAK;;;MAGV;IAEI,GAAG;CAUV"}
@@ -1,16 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- import { Args, Flags } from "@oclif/core";
3
- import { OpenXiangdaCommand, workspaceFlags } from "../../../base.js";
4
- export default class EventDeliveryReplay extends OpenXiangdaCommand {
5
- static summary = "以幂等操作键回放一次历史事件投递";
6
- static args = { deliveryId: Args.string({ required: true }) };
7
- static flags = {
8
- ...workspaceFlags,
9
- "idempotency-key": Flags.string({ summary: "重复执行时复用的操作键" }),
10
- };
11
- async run() {
12
- const { args, flags } = await this.parse(EventDeliveryReplay);
13
- return this.present(await this.services.replayEventDelivery(flags.cwd, args.deliveryId, flags["idempotency-key"] || `event-replay:${randomUUID()}`));
14
- }
15
- }
16
- //# sourceMappingURL=replay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"replay.js","sourceRoot":"","sources":["../../../../src/commands/event/delivery/replay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,kBAAkB;IACjE,MAAM,CAAC,OAAO,GAAG,kBAAkB,CAAC;IACpC,MAAM,CAAC,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC9D,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,cAAc;QACjB,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KAC5D,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CACrC,KAAK,CAAC,GAAG,EACT,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,iBAAiB,CAAC,IAAI,gBAAgB,UAAU,EAAE,EAAE,CAC3D,CACF,CAAC;IACJ,CAAC"}
@@ -1,9 +0,0 @@
1
- import { OpenXiangdaCommand } from "../../../base.js";
2
- export default class EventSubscriptionList extends OpenXiangdaCommand {
3
- static summary: string;
4
- static flags: {
5
- cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
6
- };
7
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
8
- }
9
- //# sourceMappingURL=list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/event/subscription/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,kBAAkB,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,kBAAkB;IACnE,MAAM,CAAC,OAAO,SAAqB;IACnC,MAAM,CAAC,KAAK;;MAAyB;IAE/B,GAAG;CAIV"}
@@ -1,10 +0,0 @@
1
- import { OpenXiangdaCommand, workspaceFlags } from "../../../base.js";
2
- export default class EventSubscriptionList extends OpenXiangdaCommand {
3
- static summary = "查询声明式事件订阅及其运行状态";
4
- static flags = { ...workspaceFlags };
5
- async run() {
6
- const { flags } = await this.parse(EventSubscriptionList);
7
- return this.present(await this.services.eventSubscriptions(flags.cwd));
8
- }
9
- }
10
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/event/subscription/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,kBAAkB;IACnE,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC;IACnC,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IAErC,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC"}
@@ -1,15 +0,0 @@
1
- import { OpenXiangdaCommand } from "../../../base.js";
2
- export default class EventSubscriptionRotateSecret extends OpenXiangdaCommand {
3
- static summary: string;
4
- static args: {
5
- subscriptionId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
6
- };
7
- static flags: {
8
- revision: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
9
- "idempotency-key": import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
- "grace-period-seconds": import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
11
- cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
- };
13
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
14
- }
15
- //# sourceMappingURL=rotate-secret.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rotate-secret.d.ts","sourceRoot":"","sources":["../../../../src/commands/event/subscription/rotate-secret.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAkB,MAAM,kBAAkB,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,kBAAkB;IAC3E,MAAM,CAAC,OAAO,SAA0B;IACxC,MAAM,CAAC,IAAI;;MAAuD;IAClE,MAAM,CAAC,KAAK;;;;;MAiBV;IAEI,GAAG;CAcV"}
@@ -1,33 +0,0 @@
1
- import { Args, Flags } from "@oclif/core";
2
- import { OpenXiangdaCommand, workspaceFlags } from "../../../base.js";
3
- export default class EventSubscriptionRotateSecret extends OpenXiangdaCommand {
4
- static summary = "暂存下一版本事件签名密钥并随下次部署激活";
5
- static args = { subscriptionId: Args.string({ required: true }) };
6
- static flags = {
7
- ...workspaceFlags,
8
- revision: Flags.integer({
9
- required: true,
10
- min: 1,
11
- summary: "当前 revision",
12
- }),
13
- "idempotency-key": Flags.string({
14
- required: true,
15
- summary: "可重复使用的轮换幂等键",
16
- }),
17
- "grace-period-seconds": Flags.integer({
18
- min: 60,
19
- max: 604800,
20
- default: 86400,
21
- summary: "激活后旧密钥仍可签署回执的宽限秒数",
22
- }),
23
- };
24
- async run() {
25
- const { args, flags } = await this.parse(EventSubscriptionRotateSecret);
26
- return this.present(await this.services.rotateEventSubscriptionSecret(flags.cwd, args.subscriptionId, {
27
- expectedRevision: flags.revision,
28
- idempotencyKey: flags["idempotency-key"],
29
- gracePeriodSeconds: flags["grace-period-seconds"],
30
- }));
31
- }
32
- }
33
- //# sourceMappingURL=rotate-secret.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rotate-secret.js","sourceRoot":"","sources":["../../../../src/commands/event/subscription/rotate-secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,kBAAkB;IAC3E,MAAM,CAAC,OAAO,GAAG,sBAAsB,CAAC;IACxC,MAAM,CAAC,IAAI,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAClE,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,cAAc;QACjB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,CAAC;YACN,OAAO,EAAE,aAAa;SACvB,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC9B,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,aAAa;SACvB,CAAC;QACF,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC;YACpC,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,MAAM;YACX,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,mBAAmB;SAC7B,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAC/C,KAAK,CAAC,GAAG,EACT,IAAI,CAAC,cAAc,EACnB;YACE,gBAAgB,EAAE,KAAK,CAAC,QAAQ;YAChC,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC;YACxC,kBAAkB,EAAE,KAAK,CAAC,sBAAsB,CAAC;SAClD,CACF,CACF,CAAC;IACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- import { OpenXiangdaCommand } from "../../../base.js";
2
- export default class EventSubscriptionStatus extends OpenXiangdaCommand {
3
- static summary: string;
4
- static args: {
5
- subscriptionId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
6
- };
7
- static flags: {
8
- revision: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
9
- status: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
- cwd: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
- };
12
- run(): Promise<import("openxiangda-contracts").DevkitResult<unknown>>;
13
- }
14
- //# sourceMappingURL=status.d.ts.map