@epilot/cli 0.1.9 → 0.1.11

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 (78) hide show
  1. package/README.md +3 -3
  2. package/definitions/app.json +56 -6
  3. package/definitions/blueprint-manifest.json +115 -1
  4. package/definitions/customer-portal.json +757 -81
  5. package/definitions/data-management.json +10 -0
  6. package/definitions/email-settings.json +121 -0
  7. package/definitions/email-template.json +25 -3
  8. package/definitions/entity.json +328 -10
  9. package/definitions/erp-integration.json +472 -13
  10. package/definitions/journey.json +274 -12
  11. package/definitions/kanban.json +654 -78
  12. package/definitions/organization.json +614 -51
  13. package/definitions/partner-directory.json +795 -229
  14. package/definitions/permissions.json +41 -6
  15. package/definitions/webhooks.json +111 -2
  16. package/definitions/workflow.json +40 -0
  17. package/dist/{access-token-PTTCRMGK.js → access-token-CIM4RLBP.js} +1 -1
  18. package/dist/add-component-IW4644NE.js +241 -0
  19. package/dist/{address-2FDPEPR6.js → address-EDRTUWTP.js} +1 -1
  20. package/dist/{address-suggestions-XBEK5DDQ.js → address-suggestions-S5WEST2N.js} +1 -1
  21. package/dist/{ai-agents-ZY5BNVTN.js → ai-agents-RXDDJDAR.js} +1 -1
  22. package/dist/{app-IT5FWGUK.js → api-36XROHLK.js} +5 -5
  23. package/dist/app-BKS7M4UQ.js +24 -0
  24. package/dist/{audit-logs-FB4TE4TI.js → audit-logs-PXGDGJGV.js} +1 -1
  25. package/dist/{automation-JE5LDKJM.js → automation-LS6MVLP2.js} +1 -1
  26. package/dist/{billing-GOFCP5T3.js → billing-KVYFUKZK.js} +1 -1
  27. package/dist/bin/epilot.js +52 -52
  28. package/dist/{blueprint-manifest-WJIQKFYK.js → blueprint-manifest-W4ZGJD2Z.js} +1 -1
  29. package/dist/{chunk-P5IZZW4Y.js → chunk-BYAEI4Z2.js} +1 -1
  30. package/dist/{chunk-PHXL66VA.js → chunk-K2UQOP3Q.js} +28 -11
  31. package/dist/chunk-POCU2J27.js +365 -0
  32. package/dist/{completion-EKFXGPNK.js → completion-HTO64G2S.js} +1 -1
  33. package/dist/{consent-DSMWWHUL.js → consent-M4QB2HPM.js} +1 -1
  34. package/dist/{customer-portal-IJYTJYUZ.js → customer-portal-SVO2YCXA.js} +1 -1
  35. package/dist/{dashboard-DOAX6XDG.js → dashboard-CYCXIX74.js} +1 -1
  36. package/dist/{data-management-C4JPPUPD.js → data-management-KXAPA7ZU.js} +1 -1
  37. package/dist/{deduplication-7OGLZLAC.js → deduplication-M3KEVJRG.js} +1 -1
  38. package/dist/deploy-UQZAUHAB.js +214 -0
  39. package/dist/{design-3CAYTWFY.js → design-UVJJ2KO2.js} +1 -1
  40. package/dist/{document-NT5JOJQV.js → document-5HB632XE.js} +1 -1
  41. package/dist/{email-settings-2M3WJTQS.js → email-settings-H7HQTDYE.js} +1 -1
  42. package/dist/{email-template-F4PLBPPC.js → email-template-2DHZ3VKF.js} +1 -1
  43. package/dist/{entity-32LKMZAU.js → entity-HED6QHG7.js} +1 -1
  44. package/dist/{entity-mapping-OBCZDYQJ.js → entity-mapping-QP22B65Z.js} +1 -1
  45. package/dist/{environments-H3TBCDQE.js → environments-6LLEIGWV.js} +1 -1
  46. package/dist/{erp-integration-UW6H55EK.js → erp-integration-DXFYJ2F3.js} +1 -1
  47. package/dist/{event-catalog-NVAPTZ4M.js → event-catalog-2ZCZTATY.js} +1 -1
  48. package/dist/export-US5GMHTS.js +44 -0
  49. package/dist/{file-US2HR4SV.js → file-R6IIXOIZ.js} +1 -1
  50. package/dist/{iban-7QUCOULB.js → iban-EQD2VROZ.js} +1 -1
  51. package/dist/init-DGPWBRRB.js +524 -0
  52. package/dist/{journey-E5T4BZZX.js → journey-V7X2KUKH.js} +1 -1
  53. package/dist/{kanban-7UHU5VE6.js → kanban-EPI6C3FR.js} +1 -1
  54. package/dist/{message-7KY33RJE.js → message-477EJ5JO.js} +1 -1
  55. package/dist/{metering-P7BZGMY7.js → metering-5EAEKRSL.js} +1 -1
  56. package/dist/{notes-TNJ7FPA3.js → notes-CVXNRULU.js} +1 -1
  57. package/dist/{notification-6KXEFVO5.js → notification-6HXS76XP.js} +1 -1
  58. package/dist/{organization-FF4Y3PBO.js → organization-O33CZQKD.js} +1 -1
  59. package/dist/{partner-directory-VH2SBAS2.js → partner-directory-NZWGCKSB.js} +2 -2
  60. package/dist/{permissions-KENZ4HNY.js → permissions-6QEOBJ6M.js} +1 -1
  61. package/dist/{pricing-P6QZ77VJ.js → pricing-KNYSULCW.js} +1 -1
  62. package/dist/{pricing-tier-2IRJMTM6.js → pricing-tier-OCHP6SHT.js} +1 -1
  63. package/dist/{purpose-IHROR6LQ.js → purpose-NGM42XWB.js} +1 -1
  64. package/dist/remove-component-B2GMICMD.js +89 -0
  65. package/dist/review-QFPON37R.js +69 -0
  66. package/dist/{sandbox-62XQPOU6.js → sandbox-YX3VVAQG.js} +1 -1
  67. package/dist/{submission-PUWGOYQB.js → submission-YOWVSZNA.js} +1 -1
  68. package/dist/{targeting-QB3DFYNI.js → targeting-BMZCOG72.js} +1 -1
  69. package/dist/{template-variables-IPKRUJ4E.js → template-variables-YTABZL3E.js} +1 -1
  70. package/dist/{upgrade-KDDTJRUC.js → upgrade-KZSOPDCR.js} +1 -1
  71. package/dist/{user-2CP75TFC.js → user-3N5ZOUYS.js} +1 -1
  72. package/dist/validate-G7K6AVBI.js +53 -0
  73. package/dist/{validation-rules-GNI4EEG5.js → validation-rules-QVS7LKEP.js} +1 -1
  74. package/dist/versions-UTPAWTIU.js +109 -0
  75. package/dist/{webhooks-2OWUX7UL.js → webhooks-6WMWACOW.js} +1 -1
  76. package/dist/{workflow-WSLERVJI.js → workflow-ZO2MKDBS.js} +1 -1
  77. package/dist/{workflow-definition-FP3WKHGG.js → workflow-definition-RCWKIPYI.js} +1 -1
  78. package/package.json +2 -1
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  API_LIST
4
- } from "./chunk-PHXL66VA.js";
4
+ } from "./chunk-K2UQOP3Q.js";
5
5
  import {
6
6
  DIM,
7
7
  GREEN,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -0,0 +1,214 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ createAppApiClient,
4
+ formatFileSize,
5
+ log,
6
+ readManifest,
7
+ uploadDirectoryAsZip,
8
+ uploadFileToPresignedUrl,
9
+ writeManifest
10
+ } from "./chunk-POCU2J27.js";
11
+ import "./chunk-RSA7K5HB.js";
12
+ import "./chunk-PDMWUCWD.js";
13
+ import "./chunk-7ZQ666ZQ.js";
14
+
15
+ // src/commands/app/deploy.ts
16
+ import { defineCommand } from "citty";
17
+ import { resolve, dirname, extname } from "path";
18
+ import { existsSync, statSync, readFileSync } from "fs";
19
+ var deploy_default = defineCommand({
20
+ meta: { name: "deploy", description: "Deploy an app from manifest.json" },
21
+ args: {
22
+ path: { type: "positional", description: "Path to manifest.json", required: false },
23
+ "new-version": { type: "boolean", description: "Create a new version" },
24
+ "dry-run": { type: "boolean", description: "Show what would change without applying" },
25
+ token: { type: "string", alias: "t", description: "Bearer token" },
26
+ server: { type: "string", alias: "s", description: "Override server base URL" },
27
+ profile: { type: "string", description: "Use a named profile" }
28
+ },
29
+ run: async ({ args }) => {
30
+ const manifestPath = resolve(args.path ?? "manifest.json");
31
+ const manifestDir = dirname(manifestPath);
32
+ const manifest = readManifest(manifestPath);
33
+ const client = createAppApiClient({ token: args.token, server: args.server, profile: args.profile });
34
+ const isNew = !manifest.app_id;
35
+ const dryRun = args["dry-run"] ?? false;
36
+ log.header(`Deploying ${manifest.name}...`);
37
+ let appId = manifest.app_id;
38
+ let targetVersion;
39
+ if (isNew) {
40
+ if (dryRun) {
41
+ log.info("[dry-run] Would create new app configuration");
42
+ appId = "<new-app-id>";
43
+ targetVersion = "0.0.1";
44
+ } else {
45
+ const result = await client.createConfiguration({
46
+ name: manifest.name,
47
+ description: manifest.description,
48
+ category: manifest.category
49
+ });
50
+ appId = result.app_id;
51
+ targetVersion = result.version ?? "0.0.1";
52
+ manifest.app_id = appId;
53
+ writeManifest(manifestPath, manifest);
54
+ log.success(`Created app ${appId}`);
55
+ log.dim(`app_id written back to ${manifestPath}`);
56
+ }
57
+ } else {
58
+ const config = await client.getConfiguration(appId);
59
+ targetVersion = config.latest_version;
60
+ const publicVersions = new Set(config.public_versions ?? []);
61
+ const latestIsPublic = publicVersions.has(targetVersion);
62
+ if (!dryRun) {
63
+ await client.patchMetadata(appId, {
64
+ name: manifest.name,
65
+ description: manifest.description,
66
+ ...manifest.category ? { category: manifest.category } : {},
67
+ ...manifest.documentation_url ? { documentation_url: manifest.documentation_url } : {},
68
+ ...manifest.support_email ? { support_email: manifest.support_email } : {},
69
+ ...manifest.pricing ? { pricing: manifest.pricing } : {},
70
+ ...manifest.notifications ? { notifications: manifest.notifications } : {}
71
+ });
72
+ log.success("Updated metadata");
73
+ } else {
74
+ log.info("[dry-run] Would update metadata");
75
+ }
76
+ if (latestIsPublic || args["new-version"]) {
77
+ if (latestIsPublic && !args["new-version"]) {
78
+ log.warn(`Version ${targetVersion} is public and locked. Creating a new version automatically.`);
79
+ }
80
+ if (dryRun) {
81
+ log.info(`[dry-run] Would create new version (cloned from ${targetVersion})`);
82
+ } else {
83
+ const result = await client.cloneVersion(appId, targetVersion);
84
+ targetVersion = result.version;
85
+ log.success(`Created version ${targetVersion}`);
86
+ }
87
+ }
88
+ }
89
+ if (manifest.assets?.logo) {
90
+ const logoPath = resolve(manifestDir, manifest.assets.logo);
91
+ if (existsSync(logoPath)) {
92
+ if (dryRun) {
93
+ log.info(`[dry-run] Would upload logo: ${manifest.assets.logo}`);
94
+ } else {
95
+ const ext = extname(logoPath).toLowerCase();
96
+ const mimeType = ext === ".png" ? "image/png" : "image/jpeg";
97
+ const filename = manifest.assets.logo.split("/").pop();
98
+ const { upload_url, s3_key } = await client.createLogoUploadUrl(appId, filename, mimeType);
99
+ await uploadFileToPresignedUrl(upload_url, logoPath);
100
+ await client.patchMetadata(appId, { logo_url_key: s3_key });
101
+ log.success(`Uploaded logo (${formatFileSize(statSync(logoPath).size)})`);
102
+ }
103
+ } else {
104
+ log.warn(`Logo not found: ${logoPath}`);
105
+ }
106
+ }
107
+ if (manifest.permissions?.length || manifest.blueprint?.manifest_id) {
108
+ if (dryRun) {
109
+ log.info("[dry-run] Would update version permissions/blueprint");
110
+ } else {
111
+ await client.patchVersion(appId, targetVersion, {
112
+ ...manifest.permissions?.length ? { grants: manifest.permissions } : {},
113
+ ...manifest.blueprint?.manifest_id ? { manifest_id: manifest.blueprint.manifest_id } : {}
114
+ });
115
+ log.success(`Updated version ${targetVersion} (permissions/blueprint)`);
116
+ }
117
+ }
118
+ for (const comp of manifest.components) {
119
+ const { assets, _dir, ...componentPayload } = comp;
120
+ for (const key of Object.keys(componentPayload)) {
121
+ if (key.startsWith("_")) delete componentPayload[key];
122
+ }
123
+ if (_dir) {
124
+ const configJsonPath = resolve(manifestDir, "components", _dir, "configuration.json");
125
+ if (existsSync(configJsonPath)) {
126
+ try {
127
+ const localConfig = JSON.parse(readFileSync(configJsonPath, "utf-8"));
128
+ componentPayload.configuration = localConfig;
129
+ log.dim(`Read configuration from components/${_dir}/configuration.json`);
130
+ } catch (err) {
131
+ log.warn(`Failed to parse components/${_dir}/configuration.json: ${err.message}`);
132
+ }
133
+ }
134
+ }
135
+ if (assets?.bundle) {
136
+ const bundlePath = resolve(manifestDir, assets.bundle);
137
+ if (existsSync(bundlePath)) {
138
+ if (dryRun) {
139
+ log.info(`[dry-run] Would upload bundle: ${assets.bundle}`);
140
+ } else {
141
+ const { upload_url, component_url } = await client.createBundleUploadUrl(appId, targetVersion, comp.id);
142
+ await uploadFileToPresignedUrl(upload_url, bundlePath);
143
+ log.success(`Uploaded bundle for ${comp.id} (${formatFileSize(statSync(bundlePath).size)})`);
144
+ const config = componentPayload.configuration;
145
+ if (config.component_url) {
146
+ config.component_url = component_url;
147
+ }
148
+ }
149
+ } else {
150
+ log.warn(`Bundle not found: ${bundlePath} \u2014 run "npm run build" first, skipping component`);
151
+ continue;
152
+ }
153
+ }
154
+ if (assets?.zip) {
155
+ const zipPath = resolve(manifestDir, assets.zip);
156
+ if (existsSync(zipPath)) {
157
+ if (dryRun) {
158
+ log.info(`[dry-run] Would zip and upload: ${assets.zip}`);
159
+ } else {
160
+ const { upload_url, artifact_url } = await client.createZipUploadUrl(appId, targetVersion, comp.id);
161
+ const zipSize = await uploadDirectoryAsZip(upload_url, zipPath);
162
+ log.success(`Uploaded zip for ${comp.id} (${formatFileSize(zipSize)})`);
163
+ if (componentPayload.surfaces && typeof componentPayload.surfaces === "object") {
164
+ for (const surface of Object.values(
165
+ componentPayload.surfaces
166
+ )) {
167
+ if (surface && typeof surface === "object") {
168
+ if ("app_url" in surface) {
169
+ surface.app_url = artifact_url;
170
+ }
171
+ if ("zip_url" in surface) {
172
+ surface.zip_url = artifact_url;
173
+ }
174
+ }
175
+ }
176
+ }
177
+ }
178
+ } else {
179
+ log.warn(`Directory not found: ${zipPath} \u2014 run "npm run build" first, skipping component`);
180
+ continue;
181
+ }
182
+ }
183
+ if (dryRun) {
184
+ log.info(`[dry-run] Would upsert component ${comp.id} (${comp.component_type})`);
185
+ } else {
186
+ await client.upsertComponent(appId, targetVersion, componentPayload);
187
+ log.success(`Upserted component ${comp.id}`);
188
+ }
189
+ }
190
+ if (!isNew) {
191
+ const remoteVersion = await client.getVersion(appId, targetVersion);
192
+ const remoteComponents = remoteVersion.components ?? [];
193
+ const localIds = new Set(manifest.components.map((c) => c.id));
194
+ for (const remote of remoteComponents) {
195
+ if (!localIds.has(remote.id)) {
196
+ if (dryRun) {
197
+ log.info(`[dry-run] Would delete remote component ${remote.id}`);
198
+ } else {
199
+ await client.deleteComponent(appId, targetVersion, remote.id);
200
+ log.success(`Deleted remote component ${remote.id}`);
201
+ }
202
+ }
203
+ }
204
+ }
205
+ if (dryRun) {
206
+ log.header("Dry run complete. No changes were made.");
207
+ } else {
208
+ log.header(`Deployed v${targetVersion} of ${manifest.name} (app_id: ${appId})`);
209
+ }
210
+ }
211
+ });
212
+ export {
213
+ deploy_default as default
214
+ };
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ createAppApiClient,
4
+ log,
5
+ toManifest,
6
+ writeManifest
7
+ } from "./chunk-POCU2J27.js";
8
+ import "./chunk-RSA7K5HB.js";
9
+ import "./chunk-PDMWUCWD.js";
10
+ import "./chunk-7ZQ666ZQ.js";
11
+
12
+ // src/commands/app/export.ts
13
+ import { defineCommand } from "citty";
14
+ import { resolve } from "path";
15
+ var export_default = defineCommand({
16
+ meta: { name: "export", description: "Export an existing app as manifest.json" },
17
+ args: {
18
+ "app-id": { type: "string", description: "App ID to export", required: true },
19
+ version: { type: "string", description: "Version to export (default: latest)" },
20
+ output: { type: "string", alias: "o", description: "Output path (default: manifest.json)" },
21
+ token: { type: "string", alias: "t", description: "Bearer token" },
22
+ server: { type: "string", alias: "s", description: "Override server base URL" },
23
+ profile: { type: "string", description: "Use a named profile" }
24
+ },
25
+ run: async ({ args }) => {
26
+ const client = createAppApiClient({ token: args.token, server: args.server, profile: args.profile });
27
+ const appId = args["app-id"];
28
+ log.header(`Exporting app ${appId}...`);
29
+ const config = await client.getConfiguration(appId);
30
+ const targetVersion = args.version ?? config.latest_version;
31
+ const version = await client.getVersion(appId, targetVersion);
32
+ log.info(`Version: ${targetVersion}`);
33
+ const manifest = toManifest(config, version);
34
+ const outputPath = resolve(args.output ?? "manifest.json");
35
+ writeManifest(outputPath, manifest);
36
+ log.success(`Exported to ${outputPath}`);
37
+ log.info(`App: ${manifest.name}`);
38
+ log.info(`Components: ${manifest.components.length}`);
39
+ log.dim("Asset paths are placeholders. Update them to point to your local files.");
40
+ }
41
+ });
42
+ export {
43
+ export_default as default
44
+ };
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  callApi
4
- } from "./chunk-P5IZZW4Y.js";
4
+ } from "./chunk-BYAEI4Z2.js";
5
5
  import "./chunk-RSA7K5HB.js";
6
6
  import "./chunk-PDMWUCWD.js";
7
7
  import "./chunk-IOLKUHUB.js";