@artblocks/abx-cli 0.1.0-alpha.4 → 0.1.0-alpha.40

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 (180) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/assets/renderer-scaffold/README.md +29 -11
  3. package/assets/renderer-scaffold/foundry.toml +1 -0
  4. package/assets/renderer-scaffold/remappings.txt +1 -1
  5. package/assets/renderer-scaffold/script/DeployHooks.s.sol +24 -0
  6. package/assets/renderer-scaffold/src/MyHooks.sol +20 -0
  7. package/assets/renderer-scaffold/src/MyRenderer.sol +4 -4
  8. package/assets/renderer-scaffold/src/MyTraits.sol +2 -2
  9. package/assets/renderer-scaffold/test/MyRenderer.t.sol +60 -3
  10. package/dist/bin.d.ts +26 -0
  11. package/dist/bin.d.ts.map +1 -0
  12. package/dist/bin.js +63 -0
  13. package/dist/bin.js.map +1 -0
  14. package/dist/capabilities.d.ts +94 -0
  15. package/dist/capabilities.d.ts.map +1 -0
  16. package/dist/capabilities.js +135 -0
  17. package/dist/capabilities.js.map +1 -0
  18. package/dist/commands/auth.d.ts +54 -0
  19. package/dist/commands/auth.d.ts.map +1 -0
  20. package/dist/commands/auth.js +447 -0
  21. package/dist/commands/auth.js.map +1 -0
  22. package/dist/commands/deploy.d.ts +242 -0
  23. package/dist/commands/deploy.d.ts.map +1 -0
  24. package/dist/commands/deploy.js +4763 -0
  25. package/dist/commands/deploy.js.map +1 -0
  26. package/dist/commands/feedback.d.ts +7 -0
  27. package/dist/commands/feedback.d.ts.map +1 -0
  28. package/dist/commands/feedback.js +147 -0
  29. package/dist/commands/feedback.js.map +1 -0
  30. package/dist/commands/project.d.ts +257 -0
  31. package/dist/commands/project.d.ts.map +1 -0
  32. package/dist/commands/project.js +1414 -0
  33. package/dist/commands/project.js.map +1 -0
  34. package/dist/commands/reads.d.ts +64 -0
  35. package/dist/commands/reads.d.ts.map +1 -0
  36. package/dist/commands/reads.js +701 -0
  37. package/dist/commands/reads.js.map +1 -0
  38. package/dist/commands/scaffold.d.ts +89 -0
  39. package/dist/commands/scaffold.d.ts.map +1 -0
  40. package/dist/commands/scaffold.js +733 -0
  41. package/dist/commands/scaffold.js.map +1 -0
  42. package/dist/commands/service.d.ts +67 -0
  43. package/dist/commands/service.d.ts.map +1 -0
  44. package/dist/commands/service.js +741 -0
  45. package/dist/commands/service.js.map +1 -0
  46. package/dist/commands/storage.d.ts +51 -0
  47. package/dist/commands/storage.d.ts.map +1 -0
  48. package/dist/commands/storage.js +370 -0
  49. package/dist/commands/storage.js.map +1 -0
  50. package/dist/commands/submit-app.d.ts +59 -0
  51. package/dist/commands/submit-app.d.ts.map +1 -0
  52. package/dist/commands/submit-app.js +513 -0
  53. package/dist/commands/submit-app.js.map +1 -0
  54. package/dist/config.d.ts +90 -2
  55. package/dist/config.d.ts.map +1 -1
  56. package/dist/config.js +284 -11
  57. package/dist/config.js.map +1 -1
  58. package/dist/conformance.d.ts +31 -0
  59. package/dist/conformance.d.ts.map +1 -0
  60. package/dist/conformance.js +390 -0
  61. package/dist/conformance.js.map +1 -0
  62. package/dist/contract-read-error.d.ts +5 -0
  63. package/dist/contract-read-error.d.ts.map +1 -0
  64. package/dist/contract-read-error.js +37 -0
  65. package/dist/contract-read-error.js.map +1 -0
  66. package/dist/deps.d.ts +6 -39
  67. package/dist/deps.d.ts.map +1 -1
  68. package/dist/deps.js +4 -68
  69. package/dist/deps.js.map +1 -1
  70. package/dist/errors.d.ts +20 -0
  71. package/dist/errors.d.ts.map +1 -0
  72. package/dist/errors.js +25 -0
  73. package/dist/errors.js.map +1 -0
  74. package/dist/flag-allowlists.d.ts +53 -0
  75. package/dist/flag-allowlists.d.ts.map +1 -0
  76. package/dist/flag-allowlists.js +180 -0
  77. package/dist/flag-allowlists.js.map +1 -0
  78. package/dist/flags.d.ts +41 -0
  79. package/dist/flags.d.ts.map +1 -1
  80. package/dist/flags.js +111 -1
  81. package/dist/flags.js.map +1 -1
  82. package/dist/jsonout.d.ts +37 -0
  83. package/dist/jsonout.d.ts.map +1 -0
  84. package/dist/jsonout.js +68 -0
  85. package/dist/jsonout.js.map +1 -0
  86. package/dist/kind.d.ts +57 -0
  87. package/dist/kind.d.ts.map +1 -0
  88. package/dist/kind.js +122 -0
  89. package/dist/kind.js.map +1 -0
  90. package/dist/main.js +747 -4838
  91. package/dist/main.js.map +1 -1
  92. package/dist/mintpage.d.ts +17 -2
  93. package/dist/mintpage.d.ts.map +1 -1
  94. package/dist/mintpage.js +241 -54
  95. package/dist/mintpage.js.map +1 -1
  96. package/dist/output.d.ts +179 -0
  97. package/dist/output.d.ts.map +1 -0
  98. package/dist/output.js +780 -0
  99. package/dist/output.js.map +1 -0
  100. package/dist/ownerops.d.ts +312 -57
  101. package/dist/ownerops.d.ts.map +1 -1
  102. package/dist/ownerops.js +1808 -357
  103. package/dist/ownerops.js.map +1 -1
  104. package/dist/preview.d.ts +23 -5
  105. package/dist/preview.d.ts.map +1 -1
  106. package/dist/preview.js +95 -43
  107. package/dist/preview.js.map +1 -1
  108. package/dist/prompt.d.ts +17 -0
  109. package/dist/prompt.d.ts.map +1 -0
  110. package/dist/prompt.js +19 -0
  111. package/dist/prompt.js.map +1 -0
  112. package/dist/provision.d.ts +3 -13
  113. package/dist/provision.d.ts.map +1 -1
  114. package/dist/provision.js +19 -21
  115. package/dist/provision.js.map +1 -1
  116. package/dist/remote.d.ts +157 -52
  117. package/dist/remote.d.ts.map +1 -1
  118. package/dist/remote.js +435 -46
  119. package/dist/remote.js.map +1 -1
  120. package/dist/riskgate.d.ts +62 -0
  121. package/dist/riskgate.d.ts.map +1 -0
  122. package/dist/riskgate.js +234 -0
  123. package/dist/riskgate.js.map +1 -0
  124. package/dist/scaffold.d.ts +12 -0
  125. package/dist/scaffold.d.ts.map +1 -0
  126. package/dist/scaffold.js +56 -0
  127. package/dist/scaffold.js.map +1 -0
  128. package/dist/schema.d.ts +36 -1
  129. package/dist/schema.d.ts.map +1 -1
  130. package/dist/schema.js +121 -26
  131. package/dist/schema.js.map +1 -1
  132. package/dist/script-chunks.d.ts +8 -0
  133. package/dist/script-chunks.d.ts.map +1 -0
  134. package/dist/script-chunks.js +35 -0
  135. package/dist/script-chunks.js.map +1 -0
  136. package/dist/served.d.ts +30 -0
  137. package/dist/served.d.ts.map +1 -0
  138. package/dist/served.js +112 -0
  139. package/dist/served.js.map +1 -0
  140. package/dist/signer.d.ts +13 -0
  141. package/dist/signer.d.ts.map +1 -1
  142. package/dist/signer.js +84 -15
  143. package/dist/signer.js.map +1 -1
  144. package/dist/update-check.d.ts +86 -5
  145. package/dist/update-check.d.ts.map +1 -1
  146. package/dist/update-check.js +161 -20
  147. package/dist/update-check.js.map +1 -1
  148. package/package.json +13 -12
  149. package/skill/SKILL.md +179 -347
  150. package/skill/agents/openai.yaml +4 -0
  151. package/skill/reference/capabilities.md +188 -0
  152. package/skill/reference/code.md +211 -0
  153. package/skill/reference/creator-token.md +94 -0
  154. package/skill/reference/deploy.md +167 -0
  155. package/skill/reference/diagnose.md +165 -0
  156. package/skill/reference/hosting.md +161 -94
  157. package/skill/reference/operate.md +181 -0
  158. package/skill/reference/services.md +121 -0
  159. package/skill/reference/setup.md +140 -36
  160. package/assets/renderer-scaffold/src/interfaces/IAbxFieldRenderer.sol +0 -32
  161. package/assets/renderer-scaffold/src/interfaces/IAbxParams.sol +0 -26
  162. package/dist/inspect.d.ts +0 -48
  163. package/dist/inspect.d.ts.map +0 -1
  164. package/dist/inspect.js +0 -184
  165. package/dist/inspect.js.map +0 -1
  166. package/dist/migrate.d.ts +0 -65
  167. package/dist/migrate.d.ts.map +0 -1
  168. package/dist/migrate.js +0 -180
  169. package/dist/migrate.js.map +0 -1
  170. package/dist/onchain-uri.d.ts +0 -97
  171. package/dist/onchain-uri.d.ts.map +0 -1
  172. package/dist/onchain-uri.js +0 -243
  173. package/dist/onchain-uri.js.map +0 -1
  174. package/dist/upload.d.ts +0 -28
  175. package/dist/upload.d.ts.map +0 -1
  176. package/dist/upload.js +0 -41
  177. package/dist/upload.js.map +0 -1
  178. package/skill/reference/code-projects.md +0 -246
  179. package/skill/reference/operating.md +0 -116
  180. package/skill/reference/troubleshooting.md +0 -28
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { type Flags } from '../flags.js';
2
+ /**
3
+ * `abx storage backup-key [--out <path>]` — back up the managed Turbo/Arweave key. It signs uploads
4
+ * AND holds prepaid credits, so losing it strands the credits. Low-stakes (a few $ of credit), but
5
+ * we still COPY the file rather than print it — a key pasted into a terminal / agent log is leaked.
6
+ * With no `--out`, just report where it lives and how to back it up.
7
+ */
8
+ export declare function cmdStorageBackupKey(flags: Flags): Promise<void>;
9
+ export declare function cmdStorage(rest: string[]): Promise<void>;
10
+ /**
11
+ * `abx storage status <locator>` — is it **retrievable** yet, not just accepted?
12
+ *
13
+ * The gap this closes: an upload service answers "accepted" the moment it holds your bytes, a gateway
14
+ * answers "serving" only once they reach it, and on Arweave that runs to minutes. Two independent
15
+ * integrators built their own version of this check eight days apart; the second saw 32/32 renders
16
+ * 404 on `arweave.net` while 22/32 already served elsewhere and the uploader said `CONFIRMED`. The
17
+ * expensive part is what a creator does next: a placeholder on a fresh drop reads as a failed render,
18
+ * so you re-run `abx render --force` and re-upload everything for nothing.
19
+ */
20
+ export declare const STORAGE_STATUS_FLAGS: Set<string>;
21
+ export declare function cmdStorageStatus(locator: string | undefined, flags: Flags): Promise<void>;
22
+ /**
23
+ * `abx storage upload <path> [--backend ipfs|arweave|cloud]` — upload one file to a durable
24
+ * backend and print the **locator** to point at. This is the missing first half of the data-plane
25
+ * attach flow (`abx attach` takes a URI it assumes you already have): it hands you an `ipfs://` /
26
+ * `ar://` (content-addressed) or `<publicBase>/<key>` (cloud) URI, then prints the ready-to-run
27
+ * `abx attach` line. Reuses the exact upload path a deploy uses (resolve backend → put → locator),
28
+ * so the locator is identical to what a deploy would bridge.
29
+ */
30
+ export declare function cmdStorageUpload(path: string | undefined, flags: Flags): Promise<void>;
31
+ /**
32
+ * The locator `abx attach` should be handed for an uploaded file.
33
+ *
34
+ * The backends return an UPLOAD-gateway https URL, because that is the production-safe form an NFT
35
+ * `image` needs. `attach` reads the scheme to pick the on-chain representation, so handing it that
36
+ * https URL stores the attachment as a plain `url` — the gateway host welded into the value, no
37
+ * `set-gateway` repoint, exactly the coupling the ipfs/arweave representations exist to avoid. An
38
+ * agent followed this command's own printed next step and silently downgraded the attachment.
39
+ *
40
+ * So for the two content-addressed backends we hand back the scheme form (`ipfs://<cid>/<name>`,
41
+ * `ar://<txid>/<name>`) and keep the https URL as the browsable one. `cloud` is unchanged: an https
42
+ * CDN locator IS its address, with no identity underneath to separate out.
43
+ */
44
+ export declare function attachLocator(backendId: string, locator: string): string;
45
+ /**
46
+ * `abx storage balance` / `abx storage topup --usd <n>` — dispatch to the active provider's
47
+ * funding capability. Generic verbs, provider chosen in config: Turbo exposes prepaid credits;
48
+ * a provider without funding (http-bundler) gets a clear "fund the wallet directly" instead.
49
+ */
50
+ export declare function cmdStorageFunding(sub: 'balance' | 'topup', flags: Flags): Promise<void>;
51
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/commands/storage.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAC,KAAK,KAAK,EAAuC,MAAM,aAAa,CAAC;AAO7E;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,KAAK,iBAuBrD;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,iBAiF9C;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,aAA6E,CAAC;AAE/G,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBA8E/E;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBA6E5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxE;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,iBAgD7E"}
@@ -0,0 +1,370 @@
1
+ /**
2
+ * `abx storage` — stateless byte-custody commands: show the resolved-effective config, check
3
+ * whether a locator is actually retrievable yet (not just accepted), upload one file and print
4
+ * its locator, and Turbo (arweave) balance/topup. See `abx storage --help` for the sub-commands.
5
+ */
6
+ import { copyFileSync, existsSync, readFileSync } from 'node:fs';
7
+ import { basename, resolve as resolvePath } from 'node:path';
8
+ import { contentIdFromLocator, makeWalletClient } from '@artblocks/abx-sdk';
9
+ import { arweaveAddress, arweaveFunding, contentTypeFromPath, locatorStatus, probeStorageBackend, resolveBackend, turboBalanceForAddress, uploadAndLocate, } from '@artblocks/abx-storage';
10
+ import { CHAIN, arweaveKeyFilePath, backendResolution, ensureArweaveIdentityForUpload, loadArweaveJwk, noteArweavePlan, storageOptions, storageOverrides, } from '../config.js';
11
+ import { isDryRun, parseFlags, warnStrayFlags } from '../flags.js';
12
+ import { bold, c, dim, g, info, ok, warn } from '../output.js';
13
+ // ── storage ────────────────────────────────────────────────────────────────--
14
+ // Storage is STATELESS — there's no config file. A backend is chosen per command via flags
15
+ // (`--backend …`) or declared in .env (ABX_STORAGE_BACKEND, …); secrets are env-only. `show`
16
+ // prints the resolved-effective config with provenance so there's never a hidden choice.
17
+ /**
18
+ * `abx storage backup-key [--out <path>]` — back up the managed Turbo/Arweave key. It signs uploads
19
+ * AND holds prepaid credits, so losing it strands the credits. Low-stakes (a few $ of credit), but
20
+ * we still COPY the file rather than print it — a key pasted into a terminal / agent log is leaked.
21
+ * With no `--out`, just report where it lives and how to back it up.
22
+ */
23
+ export async function cmdStorageBackupKey(flags) {
24
+ const src = arweaveKeyFilePath();
25
+ if (process.env.ARWEAVE_JWK) {
26
+ info('Turbo identity comes from ARWEAVE_JWK (env), not a managed file — back up that env value yourself.');
27
+ return;
28
+ }
29
+ if (!existsSync(src)) {
30
+ throw new Error(`no managed Arweave key yet at ${src} — it's created on your first Turbo upload (or set ARWEAVE_JWK / ABX_ARWEAVE_KEY_FILE to bring your own). Nothing to back up.`);
31
+ }
32
+ if (!flags.out) {
33
+ const jwk = loadArweaveJwk();
34
+ ok('Turbo/Arweave key — your storage credential');
35
+ if (jwk)
36
+ info(` address ${g(arweaveAddress(jwk))} ${dim('(holds your prepaid upload credits)')}`);
37
+ info(` file ${src}`);
38
+ info(` Back it up: ${bold('abx storage backup-key --out <path>')} ${dim('(copies the file; the key is never printed)')}`);
39
+ info(` ${dim('Low-stakes — only a few $ of upload credit — but lose it and those credits are stranded.')}`);
40
+ return;
41
+ }
42
+ const dest = resolvePath(flags.out);
43
+ if (existsSync(dest))
44
+ throw new Error(`refusing to overwrite ${dest} — choose a new path for the backup.`);
45
+ copyFileSync(src, dest);
46
+ ok(`backed up your Turbo/Arweave key → ${dest}`);
47
+ info(` ${dim(`Keep it private — it signs uploads + holds credits. Restore by setting ABX_ARWEAVE_KEY_FILE to it, or copying it back to ${src}.`)}`);
48
+ }
49
+ export async function cmdStorage(rest) {
50
+ const [sub, ...args] = rest;
51
+ const flags = parseFlags(args);
52
+ if (sub === 'set') {
53
+ throw new Error('`abx storage set` was removed — storage is now stateless (no config file). Choose a backend per command with ' +
54
+ 'flags (e.g. `abx deploy --backend ipfs --gateway https://…`), or declare defaults in .env ' +
55
+ '(ABX_STORAGE_BACKEND, ABX_IPFS_GATEWAY, ABX_S3_BUCKET, ABX_ARWEAVE_PROVIDER, …). See `abx storage show`.');
56
+ }
57
+ if (sub === 'balance' || sub === 'topup') {
58
+ return cmdStorageFunding(sub, flags);
59
+ }
60
+ if (sub === 'upload') {
61
+ return cmdStorageUpload(args[0], flags);
62
+ }
63
+ if (sub === 'backup-key') {
64
+ return cmdStorageBackupKey(flags);
65
+ }
66
+ if (sub === 'status') {
67
+ return cmdStorageStatus(args[0], flags);
68
+ }
69
+ // show (default) — the RESOLVED effective config + where each value came from. No persisted state.
70
+ //
71
+ // Per-command flags are honored here, exactly as `upload`/`status`/`balance` honor them. This used to
72
+ // read env-only, so `abx storage show --backend ipfs --gateway <url>` reported `backend: fs` while its
73
+ // OWN output said "choose per command: --backend … --gateway …" — advertising flags it then discarded.
74
+ // That was invisible until every command grew an unknown-flag notice, which correctly called it out
75
+ // (the flags really were ignored). Showing what a given set of flags WOULD resolve to is the whole
76
+ // point of a resolution preview, and `backendResolution` already reports `source: 'flag'` for it.
77
+ const overrides = storageOverrides(flags);
78
+ const { backend, source } = backendResolution(overrides);
79
+ const opts = storageOptions(overrides);
80
+ const prov = (v, env, dflt) => process.env[env] ? `${v} ${dim('(env ' + env + ')')}` : `${v ?? dflt} ${dim('(default)')}`;
81
+ console.log(bold('\n storage') + dim(' — resolved per-invocation; no config file, secrets in .env'));
82
+ console.log(` backend: ${g(backend)} ${dim('(' + (source === 'flag' ? '--backend' : source === 'env' ? 'env ABX_STORAGE_BACKEND' : 'default') + ')')}`);
83
+ if (opts.cloud)
84
+ info(`cloud: endpoint=${prov(opts.cloud.endpoint, 'ABX_S3_ENDPOINT', '-')} bucket=${prov(opts.cloud.bucket, 'ABX_S3_BUCKET', '-')} region=${prov(opts.cloud.region, 'ABX_S3_REGION', 'auto')} prefix=${prov(opts.cloud.prefix, 'ABX_S3_PREFIX', 'abx/content/')}`);
85
+ if (opts.ipfs)
86
+ info(`ipfs: mode=${prov(opts.ipfs.mode, 'ABX_IPFS_MODE', 'kubo')} gateway=${prov(opts.ipfs.gateway, 'ABX_IPFS_GATEWAY', '-')} apiUrl=${prov(opts.ipfs.apiUrl, 'ABX_IPFS_API_URL', '-')}`);
87
+ if (opts.arweave) {
88
+ info(`arweave: provider=${prov(opts.arweave.provider, 'ABX_ARWEAVE_PROVIDER', 'turbo')} gateway=${prov(opts.arweave.gateway, 'ABX_ARWEAVE_GATEWAY', 'https://arweave.net')}${opts.arweave.uploadUrl ? ` uploadUrl=${opts.arweave.uploadUrl}` : ''}`);
89
+ if ((opts.arweave.provider ?? 'turbo') === 'turbo') {
90
+ const jwk = loadArweaveJwk();
91
+ if (jwk)
92
+ info(` identity ${arweaveAddress(jwk)} ${dim(`(holds upload credits — back up ${arweaveKeyFilePath()})`)}`);
93
+ else
94
+ info(` ${dim('identity created on first upload; free under 100 KB. `abx storage balance` to view credits')}`);
95
+ }
96
+ }
97
+ console.log(dim('\n choose per command: --backend <fs|cloud|ipfs|arweave> [--gateway/--bucket/--region/…] · or declare in .env'));
98
+ console.log(dim(' secrets from env only: ABX_S3_ACCESS_KEY_ID · ABX_S3_SECRET_ACCESS_KEY · PINATA_JWT · ARWEAVE_UPLOAD_TOKEN · ARWEAVE_JWK'));
99
+ // --check goes beyond "is this CONFIGURED" to "does a write actually reach the URL a token
100
+ // would bake on-chain." cloud gets a real PUT (API) + GET (public base) round trip — the only
101
+ // check that catches the R2/S3 endpoint-vs-public-base trap; ipfs/fs reuse their own health()
102
+ // (gateway/API reachability, dir writability — no upload); arweave adds a balance READ, never a
103
+ // paid upload. Exit code is meaningful: 0 ok, 1 any ✗ — so a script can gate a launch on this.
104
+ if (flags.check !== undefined) {
105
+ console.log(dim('\n checking — a real read/write against the resolved config (no paid upload, no ipfs pin)…'));
106
+ try {
107
+ const result = await probeStorageBackend(opts);
108
+ if (result.ok) {
109
+ ok(`${result.backend}: ${result.detail}`);
110
+ }
111
+ else {
112
+ warn(`${result.backend}: ${result.detail}`);
113
+ if (result.putUrl)
114
+ info(` put ${result.putUrl}`);
115
+ if (result.publicUrl)
116
+ info(` get ${result.publicUrl}`);
117
+ process.exitCode = 1;
118
+ }
119
+ }
120
+ catch (err) {
121
+ warn(`${backend}: ${err.message}`);
122
+ process.exitCode = 1;
123
+ }
124
+ }
125
+ console.log('');
126
+ }
127
+ /**
128
+ * `abx storage status <locator>` — is it **retrievable** yet, not just accepted?
129
+ *
130
+ * The gap this closes: an upload service answers "accepted" the moment it holds your bytes, a gateway
131
+ * answers "serving" only once they reach it, and on Arweave that runs to minutes. Two independent
132
+ * integrators built their own version of this check eight days apart; the second saw 32/32 renders
133
+ * 404 on `arweave.net` while 22/32 already served elsewhere and the uploader said `CONFIRMED`. The
134
+ * expensive part is what a creator does next: a placeholder on a fresh drop reads as a failed render,
135
+ * so you re-run `abx render --force` and re-upload everything for nothing.
136
+ */
137
+ export const STORAGE_STATUS_FLAGS = new Set(['json', 'gateway', 'backend', 'primary-only', 'timeout']);
138
+ export async function cmdStorageStatus(locator, flags) {
139
+ if (!locator || locator.startsWith('--')) {
140
+ console.error('usage: abx storage status <locator> [--json] [--gateway <url>] [--primary-only]\n' +
141
+ ' <locator> — ar://<txid> · ipfs://<cid> · an https:// gateway URL · or a bare txid/CID\n');
142
+ process.exitCode = 1;
143
+ return;
144
+ }
145
+ warnStrayFlags(flags, STORAGE_STATUS_FLAGS, 'storage status');
146
+ const jsonMode = flags.json !== undefined;
147
+ // The gateway that matters is the one a baked locator resolves through, so default to the active
148
+ // backend's configured gateway rather than a hardcoded host — otherwise the verdict is about a
149
+ // gateway this project will never use.
150
+ const opts = storageOptions(storageOverrides(flags));
151
+ const configured = flags.gateway ?? opts.arweave?.gateway ?? opts.ipfs?.gateway ?? undefined;
152
+ const status = await locatorStatus(locator, {
153
+ gateway: configured,
154
+ primaryOnly: flags['primary-only'] !== undefined,
155
+ timeoutMs: flags.timeout === undefined ? undefined : Number(flags.timeout),
156
+ });
157
+ if (jsonMode) {
158
+ process.stdout.write(JSON.stringify(status, null, 2) + '\n');
159
+ // A program's whole reason to call this is to gate on it, so the verdict is also the exit code:
160
+ // 0 = ready, 1 = not yet. `until abx storage status <loc> --json; do sleep 10; done` just works.
161
+ if (status.readiness !== 'ready')
162
+ process.exitCode = 1;
163
+ return;
164
+ }
165
+ const probeLine = (p, label) => {
166
+ const verdict = p.serving
167
+ ? `${g('serving')}`
168
+ : p.status !== null
169
+ ? `${c.orange}${p.status}${c.reset}`
170
+ : `${c.orange}no response${c.reset}`;
171
+ const size = p.bytes !== null ? dim(` · ${p.bytes < 1024 ? `${p.bytes} B` : `${(p.bytes / 1024).toFixed(1)} KB`}`) : '';
172
+ const type = p.contentType ? dim(` · ${p.contentType.split(';')[0]}`) : '';
173
+ const why = p.error ? dim(` · ${p.error}`) : '';
174
+ console.log(` ${label} ${bold(p.gateway)} → ${verdict}${size}${type} ${dim(`${p.ms}ms`)}${why}`);
175
+ };
176
+ console.log(`\n ${bold('storage status')} ${dim(`— ${status.network} · ${status.id.length > 60 ? status.id.slice(0, 60) + '…' : status.id}`)}`);
177
+ probeLine(status.primary, dim('your gateway '));
178
+ for (const a of status.alternates)
179
+ probeLine(a, dim('also '));
180
+ console.log('');
181
+ if (status.readiness === 'ready') {
182
+ ok(`${bold('ready')} — your gateway serves these bytes. Safe to reference in a token.`);
183
+ }
184
+ else if (status.readiness === 'propagating') {
185
+ const where = status.alternates.filter((a) => a.serving).map((a) => a.gateway).join(', ');
186
+ warn(`${bold('propagating')} — the data is provably on the network (${where} serves it) but ${bold(status.primary.gateway)} hasn't caught up.`);
187
+ info('Waiting is the fix. Do NOT re-render or re-upload — the bytes are already stored, and a second upload just pays twice.');
188
+ if (status.network === 'arweave') {
189
+ info(`To serve sooner from a gateway that already has it, set ${bold('ABX_ARWEAVE_GATEWAY')} before the upload that bakes the locator ${dim('(it cannot be repaired afterwards — the gateway is part of the stored value).')}`);
190
+ }
191
+ }
192
+ else {
193
+ // Never call this "propagating": from outside, a settling locator and a wrong one look the same.
194
+ warn(`${bold('not retrievable')} — no gateway probed is serving it.`);
195
+ // One exception worth reading the statuses for. Gateways answer 404 for "I don't have these
196
+ // bytes" (settling and wrong are identical there) but 400 for "that isn't a valid id at all".
197
+ // Every probe agreeing on a non-404 client error is real evidence, and it matters because the
198
+ // inverse mistake — waiting out a typo — costs more than a needless re-upload.
199
+ const probes = [status.primary, ...status.alternates];
200
+ const answered = probes.filter((p) => p.status !== null);
201
+ const allInvalid = answered.length > 0 && answered.every((p) => p.status >= 400 && p.status < 500 && p.status !== 404);
202
+ if (allInvalid) {
203
+ info(`every gateway rejected the id itself (${answered.map((p) => p.status).join(', ')}), not merely "don't have it" — so this is very likely a ${bold('malformed locator')} (truncated txid/CID, or a stray character), not propagation. Re-check the value you stored; waiting will not fix it.`);
204
+ }
205
+ else {
206
+ info('Two causes, and this check cannot tell them apart: it is still settling (wait and re-run — minutes on Arweave), or the locator is wrong (a truncated txid/CID, or the upload never completed).');
207
+ }
208
+ }
209
+ console.log(`\n ${dim('gate a script on this:')} ${bold(`abx storage status ${locator} --json`)} ${dim('(exit 0 only when ready)')}\n`);
210
+ if (status.readiness !== 'ready')
211
+ process.exitCode = 1;
212
+ }
213
+ /**
214
+ * `abx storage upload <path> [--backend ipfs|arweave|cloud]` — upload one file to a durable
215
+ * backend and print the **locator** to point at. This is the missing first half of the data-plane
216
+ * attach flow (`abx attach` takes a URI it assumes you already have): it hands you an `ipfs://` /
217
+ * `ar://` (content-addressed) or `<publicBase>/<key>` (cloud) URI, then prints the ready-to-run
218
+ * `abx attach` line. Reuses the exact upload path a deploy uses (resolve backend → put → locator),
219
+ * so the locator is identical to what a deploy would bridge.
220
+ */
221
+ export async function cmdStorageUpload(path, flags) {
222
+ if (!path || path.startsWith('--')) {
223
+ console.error('usage: abx storage upload <path> [--backend ipfs|arweave|cloud] [--key <name>] [--json]\n uploads one file and prints its locator (the URI `abx attach` wants); --json emits it as data.\n');
224
+ process.exitCode = 1;
225
+ return;
226
+ }
227
+ const abs = resolvePath(path);
228
+ const bytes = new Uint8Array(readFileSync(abs));
229
+ const contentType = contentTypeFromPath(abs);
230
+ const opts = storageOptions(storageOverrides(flags));
231
+ const backend = resolveBackend(opts);
232
+ if (backend.id === 'fs') {
233
+ throw new Error("the 'fs' backend has no public URL — an attached file must be reachable off this machine. " +
234
+ 'Upload with `--backend arweave` (pay-once permanent) or `--backend ipfs` (keep it pinned), or `--backend cloud` (your S3/R2).');
235
+ }
236
+ const jsonMode = flags.json !== undefined;
237
+ if (!jsonMode)
238
+ noteArweavePlan(opts, bytes.length); // free-vs-credit readout for the arweave lane
239
+ const name = (flags.key && flags.key !== 'true' ? flags.key : basename(abs)).replace(/^\/+/, '');
240
+ // --dry-run: an upload is IRREVERSIBLE and can happen even keyless (Arweave's free tier under
241
+ // 100 KB auto-creates an identity), so a "preview" that actually uploaded would surprise. Show
242
+ // the plan (backend, size, declared type, locator shape) and upload nothing.
243
+ if (isDryRun(flags)) {
244
+ const shape = backend.publicBase ? `${backend.publicBase.replace(/\/+$/, '')}/${name}` : `<${backend.id}-gateway>/<root>/${name}`;
245
+ console.log(`\n ${bold('◆ storage upload')} ${dim('(dry run — nothing uploaded)')}`);
246
+ console.log(` ${dim('file'.padEnd(10))} ${basename(abs)} ${dim(`(${bytes.length} bytes, ${contentType})`)}`);
247
+ console.log(` ${dim('backend'.padEnd(10))} ${backend.id}`);
248
+ // Name the IPFS mode, and say what an absent credential actually means. There is no silent
249
+ // fallback to local `fs` (an earlier skill line wrongly claimed one) — without PINATA_JWT the
250
+ // backend resolves to kubo against a LOCAL node, so a dry run that looked fine would fail at
251
+ // upload for anyone not running one. A preview should surface that, not defer it to the failure.
252
+ if (backend.id === 'ipfs' && !process.env.PINATA_JWT && !process.env.ABX_IPFS_MODE) {
253
+ warn(`no ${bold('PINATA_JWT')} set → this resolves to a LOCAL IPFS node (kubo at ${process.env.ABX_IPFS_API_URL ?? 'http://127.0.0.1:5001'}). The real upload fails unless that node is running — set PINATA_JWT for the managed lane, or ${bold('--backend arweave')} for no-setup permanent storage.`);
254
+ }
255
+ console.log(` ${dim('locator'.padEnd(10))} ${shape} ${dim('(filename preserved → declared type survives)')}`);
256
+ const shapeForAttach = backend.id === 'ipfs' ? `ipfs://<cid>/${name}` : backend.id === 'arweave' ? `ar://<txid>/${name}` : shape;
257
+ console.log(dim(`\n Re-run without --dry-run to upload, then: `) + `${g(`abx attach <address> <key> ${shapeForAttach}`)}\n`);
258
+ return;
259
+ }
260
+ // In --json mode nothing but the JSON may touch stdout; progress still goes out, on stderr.
261
+ const progress = (line) => (jsonMode ? process.stderr.write(line + '\n') : console.log(line));
262
+ progress(` uploading ${bold(basename(abs))} ${dim(`(${bytes.length} bytes, ${contentType})`)} to '${backend.id}' …`);
263
+ // The returned locator MUST carry the filename so the declared mimeType survives when attached
264
+ // (the on-chain field has no MIME slot — the URL extension IS the declaration). uploadAndLocate
265
+ // encapsulates the capability-based branch (cloud key / dir-wrap / bare fallback).
266
+ const { locator, filenamePreserved, fallbackReason } = await uploadAndLocate(backend, name, { bytes, contentType });
267
+ if (!filenamePreserved && fallbackReason) {
268
+ const msg = `couldn't wrap the file with its name (${fallbackReason}) — the locator has no extension, so its declared type will be application/octet-stream when attached.`;
269
+ if (jsonMode)
270
+ process.stderr.write(` ⚠ ${msg}\n`);
271
+ else
272
+ warn(msg);
273
+ }
274
+ // --json: the locator as data, not as prose. An integrator scraped this line, captured the ANSI
275
+ // colour codes along with the URL, wrote the result into a STORED player URL, and only found out
276
+ // when it 404'd in production. A value a program needs must be obtainable without parsing output.
277
+ if (jsonMode) {
278
+ process.stdout.write(JSON.stringify({ locator, attachLocator: attachLocator(backend.id, locator), backend: backend.id, name, bytes: bytes.length, contentType, filenamePreserved }) + '\n');
279
+ return;
280
+ }
281
+ const forAttach = attachLocator(backend.id, locator);
282
+ console.log(` ${g('✓')} uploaded → ${bold(locator)}`);
283
+ if (contentType === 'application/octet-stream') {
284
+ warn(`no known extension on ${basename(abs)} → its declared type will be application/octet-stream when attached.`);
285
+ }
286
+ console.log(dim('\n attach it to a token (pick any key):\n') + ` ${g(`abx attach <address> <key> ${forAttach}`)}\n`);
287
+ if (forAttach !== locator) {
288
+ console.log(dim(` ${bold(forAttach)} — not the https URL above — is what attach wants: it stores the bare id, so a\n`) +
289
+ dim(` gateway change is later one ${bold('abx set-gateway')} tx instead of a re-attach.\n`));
290
+ }
291
+ }
292
+ /**
293
+ * The locator `abx attach` should be handed for an uploaded file.
294
+ *
295
+ * The backends return an UPLOAD-gateway https URL, because that is the production-safe form an NFT
296
+ * `image` needs. `attach` reads the scheme to pick the on-chain representation, so handing it that
297
+ * https URL stores the attachment as a plain `url` — the gateway host welded into the value, no
298
+ * `set-gateway` repoint, exactly the coupling the ipfs/arweave representations exist to avoid. An
299
+ * agent followed this command's own printed next step and silently downgraded the attachment.
300
+ *
301
+ * So for the two content-addressed backends we hand back the scheme form (`ipfs://<cid>/<name>`,
302
+ * `ar://<txid>/<name>`) and keep the https URL as the browsable one. `cloud` is unchanged: an https
303
+ * CDN locator IS its address, with no identity underneath to separate out.
304
+ */
305
+ export function attachLocator(backendId, locator) {
306
+ if (backendId !== 'ipfs' && backendId !== 'arweave')
307
+ return locator;
308
+ const contentId = contentIdFromLocator(backendId, locator);
309
+ if (!contentId)
310
+ return locator;
311
+ return `${backendId === 'ipfs' ? 'ipfs' : 'ar'}://${contentId}`;
312
+ }
313
+ /**
314
+ * `abx storage balance` / `abx storage topup --usd <n>` — dispatch to the active provider's
315
+ * funding capability. Generic verbs, provider chosen in config: Turbo exposes prepaid credits;
316
+ * a provider without funding (http-bundler) gets a clear "fund the wallet directly" instead.
317
+ */
318
+ export async function cmdStorageFunding(sub, flags) {
319
+ const opts = storageOptions(storageOverrides(flags));
320
+ if (opts.backend !== 'arweave') {
321
+ throw new Error(`\`abx storage ${sub}\` applies to the arweave backend; the active backend is '${opts.backend}'. Re-run with \`--backend arweave\` (e.g. \`abx storage ${sub} --backend arweave\`), or set \`ABX_STORAGE_BACKEND=arweave\` in .env.`);
322
+ }
323
+ ensureArweaveIdentityForUpload(opts); // so there's an address to fund / read
324
+ const funding = arweaveFunding(opts.arweave); // throws a clear reason if the provider has no balance
325
+ const address = await funding.address();
326
+ // The active identity determines what the address IS + how to read the fund note.
327
+ const isEthLane = !!(opts.arweave?.ethSignerKey || opts.arweave?.remoteEth);
328
+ const identityNote = isEthLane
329
+ ? 'This is your Ethereum wallet acting as a Turbo identity (--storage-signer eth) — credits attach to this address.'
330
+ : `This is your Turbo/Arweave key (${arweaveKeyFilePath()}), NOT your Ethereum wallet — credits attach to THIS key.`;
331
+ if (sub === 'balance') {
332
+ const { credits, winc } = await funding.balance();
333
+ ok(`Turbo balance for ${g(address)}`);
334
+ info(` ${bold(credits)} credits ${dim(`(${winc} winc)`)}`);
335
+ info(` ${dim(identityNote)}`);
336
+ // On the managed-key lane, ALSO show the creator's ETH wallet's Turbo balance (queryable by
337
+ // address, no key) so "use my wallet's credits" is visible without a failed upload first.
338
+ if (!isEthLane) {
339
+ let wallet = flags.for;
340
+ if (!wallet)
341
+ try {
342
+ wallet = makeWalletClient({ chainKey: CHAIN }).account.address;
343
+ }
344
+ catch { /* no key */ }
345
+ const wb = wallet ? await turboBalanceForAddress(wallet, 'ethereum') : null;
346
+ if (wb && Number(wb.winc) > 0) {
347
+ info(` ${dim('↳ your ETH wallet')} ${g(wallet)} ${dim('holds')} ${bold(wb.credits)} ${dim('Turbo credits — spend those with')} ${bold('--storage-signer eth')} ${dim('(no top-up needed).')}`);
348
+ }
349
+ else if (wallet) {
350
+ info(` ${dim(`↳ your ETH wallet ${wallet} has no Turbo credits either. (Pass --for <addr> to check a different wallet.)`)}`);
351
+ }
352
+ }
353
+ info(' Under 100 KB always uploads free; credits cover larger files. One-time cost — no recurring fee.');
354
+ return;
355
+ }
356
+ // topup
357
+ const usd = Number(flags.usd);
358
+ if (!Number.isFinite(usd) || usd <= 0) {
359
+ throw new Error('top-up needs a positive --usd amount, e.g. `abx storage topup --usd 10`.');
360
+ }
361
+ const { url } = await funding.topup({ usd });
362
+ ok(`Turbo top-up: $${usd} → ${g(address)}`);
363
+ info(` ${dim(`Funds the address above — ${identityNote}`)}`);
364
+ info(' Pay by card (Stripe) at the link below — one-time, funds permanent storage, no recurring fee:');
365
+ console.log(` ${url}`);
366
+ info(` ${dim('Link not opening? Fallback: go to')} ${bold('https://turbo-topup.com')} ${dim('and fund this exact address:')}`);
367
+ console.log(` ${g(address)}`);
368
+ info(' Credits land on the address above and persist for future uploads. Re-check with `abx storage balance`.');
369
+ }
370
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/commands/storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAC,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAC,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAC,oBAAoB,EAAE,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,iBAAiB,EACjB,8BAA8B,EAC9B,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAa,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAC,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAE7D,gFAAgF;AAChF,2FAA2F;AAC3F,6FAA6F;AAC7F,yFAAyF;AACzF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAY;IACpD,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IACjC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,oGAAoG,CAAC,CAAC;QAC3G,OAAO;IACT,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,+HAA+H,CAAC,CAAC;IACvL,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;QAC7B,EAAE,CAAC,6CAA6C,CAAC,CAAC;QAClD,IAAI,GAAG;YAAE,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,qCAAqC,CAAC,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,iBAAiB,IAAI,CAAC,qCAAqC,CAAC,IAAI,GAAG,CAAC,6CAA6C,CAAC,EAAE,CAAC,CAAC;QAC3H,IAAI,CAAC,KAAK,GAAG,CAAC,0FAA0F,CAAC,EAAE,CAAC,CAAC;QAC7G,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,sCAAsC,CAAC,CAAC;IAC3G,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxB,EAAE,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK,GAAG,CAAC,4HAA4H,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AACvJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,+GAA+G;YAC7G,4FAA4F;YAC5F,0GAA0G,CAC7G,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACzC,OAAO,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;QACzB,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,mGAAmG;IACnG,EAAE;IACF,sGAAsG;IACtG,uGAAuG;IACvG,uGAAuG;IACvG,oGAAoG;IACpG,mGAAmG;IACnG,kGAAkG;IAClG,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,CAAqB,EAAE,GAAW,EAAE,IAAY,EAAE,EAAE,CAChE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,8DAA8D,CAAC,CAAC,CAAC;IACvG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3J,IAAI,IAAI,CAAC,KAAK;QACZ,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IACrQ,IAAI,IAAI,CAAC,IAAI;QACX,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5L,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,sBAAsB,EAAE,OAAO,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;YACnD,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;YAC7B,IAAI,GAAG;gBAAE,IAAI,CAAC,cAAc,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,mCAAmC,kBAAkB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;;gBACjH,IAAI,CAAC,KAAK,GAAG,CAAC,4FAA4F,CAAC,EAAE,CAAC,CAAC;QACtH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,oHAAoH,CAAC,CAAC,CAAC;IACvI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,8HAA8H,CAAC,CAAC,CAAC;IAEjJ,2FAA2F;IAC3F,8FAA8F;IAC9F,8FAA8F;IAC9F,gGAAgG;IAChG,+FAA+F;IAC/F,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5C,IAAI,MAAM,CAAC,MAAM;oBAAE,IAAI,CAAC,UAAU,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnD,IAAI,MAAM,CAAC,SAAS;oBAAE,IAAI,CAAC,UAAU,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,OAAO,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;AAE/G,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA2B,EAAE,KAAY;IAC9E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CACX,mFAAmF;YACjF,2FAA2F,CAC9F,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;IAC1C,iGAAiG;IACjG,+FAA+F;IAC/F,uCAAuC;IACvC,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GACb,KAAK,CAAC,OAA8B,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,SAAS,CAAC;IAEpG,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE;QAC1C,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,SAAS;QAChD,SAAS,EAAE,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;KAC3E,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,gGAAgG;QAChG,iGAAiG;QACjG,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,CAAwB,EAAE,KAAa,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO;YACvB,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE;YACnB,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI;gBACjB,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;gBACpC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxH,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IACtG,CAAC,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,MAAM,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACjJ,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU;QAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QACjC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC;IAC1F,CAAC;SAAM,IAAI,MAAM,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,CACF,GAAG,IAAI,CAAC,aAAa,CAAC,2CAA2C,KAAK,mBAAmB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAC1I,CAAC;QACF,IAAI,CAAC,wHAAwH,CAAC,CAAC;QAC/H,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,2DAA2D,IAAI,CAAC,qBAAqB,CAAC,6CAA6C,GAAG,CAAC,+EAA+E,CAAC,EAAE,CAAC,CAAC;QAClO,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iGAAiG;QACjG,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,qCAAqC,CAAC,CAAC;QACtE,4FAA4F;QAC5F,8FAA8F;QAC9F,8FAA8F;QAC9F,+EAA+E;QAC/E,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAO,IAAI,GAAG,IAAI,CAAC,CAAC,MAAO,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;QACzH,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,yCAAyC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4DAA4D,IAAI,CAAC,mBAAmB,CAAC,uHAAuH,CAAC,CAAC;QACtS,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gMAAgM,CAAC,CAAC;QACzM,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,wBAAwB,CAAC,IAAI,IAAI,CAAC,sBAAsB,OAAO,SAAS,CAAC,IAAI,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACzI,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAwB,EAAE,KAAY;IAC3E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,6LAA6L,CAAC,CAAC;QAC7M,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,4FAA4F;YAC1F,+HAA+H,CAClI,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;IAC1C,IAAI,CAAC,QAAQ;QAAE,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,8CAA8C;IAClG,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEjG,8FAA8F;IAC9F,+FAA+F;IAC/F,6EAA6E;IAC7E,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,oBAAoB,IAAI,EAAE,CAAC;QAClI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,WAAW,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC;QAChH,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,2FAA2F;QAC3F,8FAA8F;QAC9F,6FAA6F;QAC7F,iGAAiG;QACjG,IAAI,OAAO,CAAC,EAAE,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACnF,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,sDAAsD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,uBAAuB,kGAAkG,IAAI,CAAC,mBAAmB,CAAC,kCAAkC,CAAC,CAAC;QAC3S,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,+CAA+C,CAAC,EAAE,CAAC,CAAC;QACjH,MAAM,cAAc,GAClB,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,gDAAgD,CAAC,GAAG,GAAG,CAAC,CAAC,8BAA8B,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9H,OAAO;IACT,CAAC;IACD,4FAA4F;IAC5F,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACtG,QAAQ,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,WAAW,WAAW,GAAG,CAAC,QAAQ,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAEtH,+FAA+F;IAC/F,gGAAgG;IAChG,mFAAmF;IACnF,MAAM,EAAC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAC,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,EAAC,KAAK,EAAE,WAAW,EAAC,CAAC,CAAC;IAChH,IAAI,CAAC,iBAAiB,IAAI,cAAc,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,yCAAyC,cAAc,wGAAwG,CAAC;QAC5K,IAAI,QAAQ;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;;YACjD,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,gGAAgG;IAChG,iGAAiG;IACjG,kGAAkG;IAClG,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAC,CAAC,GAAG,IAAI,CACpK,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvD,IAAI,WAAW,KAAK,0BAA0B,EAAE,CAAC;QAC/C,IAAI,CAAC,yBAAyB,QAAQ,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACrH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,4CAA4C,CAAC,GAAG,OAAO,CAAC,CAAC,8BAA8B,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;IACzH,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,kFAAkF,CAAC;YACzG,GAAG,CAAC,iCAAiC,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,CAC/F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,OAAe;IAC9D,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACpE,MAAM,SAAS,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC;IAC/B,OAAO,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,SAAS,EAAE,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAwB,EAAE,KAAY;IAC5E,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,6DAA6D,IAAI,CAAC,OAAO,4DAA4D,GAAG,wEAAwE,CAAC,CAAC;IACxP,CAAC;IACD,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,uCAAuC;IAC7E,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAC,CAAC,uDAAuD;IACtG,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxC,kFAAkF;IAClF,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,SAAS;QAC5B,CAAC,CAAC,kHAAkH;QACpH,CAAC,CAAC,mCAAmC,kBAAkB,EAAE,2DAA2D,CAAC;IAEvH,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,EAAC,OAAO,EAAE,IAAI,EAAC,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAChD,EAAE,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC/B,4FAA4F;QAC5F,0FAA0F;QAC1F,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,MAAM,GAAG,KAAK,CAAC,GAAyB,CAAC;YAC7C,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC;oBAAC,MAAM,GAAG,gBAAgB,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACzG,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5E,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,kCAAkC,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;YACnM,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC,KAAK,GAAG,CAAC,qBAAqB,MAAM,gFAAgF,CAAC,EAAE,CAAC,CAAC;YAChI,CAAC;QACH,CAAC;QACD,IAAI,CAAC,mGAAmG,CAAC,CAAC;QAC1G,OAAO;IACT,CAAC;IAED,QAAQ;IACR,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,EAAC,GAAG,EAAC,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC;IACzC,EAAE,CAAC,kBAAkB,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,GAAG,CAAC,6BAA6B,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,iGAAiG,CAAC,CAAC;IACxG,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,GAAG,CAAC,mCAAmC,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,GAAG,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;IAChI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,0GAA0G,CAAC,CAAC;AACnH,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * `abx submit-app` — optional post-deploy listing in the ABX App Store.
3
+ *
4
+ * Not part of deploy. A creator (or the agent driving them) opts in after the
5
+ * collection exists: mint one entry token through the store's gated minter, then
6
+ * write catalog copy as the registry's TokenOwner params. Same transactions as
7
+ * the store's `/submit` page; the CLI is the agent path.
8
+ *
9
+ * Catalog copy is NOT the collection's `--name` / `--description`. Those are NFT
10
+ * metadata. The store wants outcome copy — what someone can do — and this command
11
+ * requires those fields on purpose so an agent cannot silently reuse deploy flags.
12
+ */
13
+ import { type Address, type PreparedTx } from '@artblocks/abx-sdk';
14
+ import { type Flags } from '../flags.js';
15
+ /** Matches the App Store registry schema (`lib/submissions.ts` in abx-app-store). */
16
+ export declare const APP_CATEGORIES: readonly ["Create", "Games", "Physical world", "Records", "Coordination", "Utilities", "Developer tools"];
17
+ export declare const APP_STAGES: readonly ["Live", "Prototype", "Concept"];
18
+ export declare const APP_TONES: readonly ["acid", "coral", "blue", "violet", "amber", "mint"];
19
+ export declare const APP_RELATIONSHIP = "built-on-abx";
20
+ export declare const SUBMIT_APP_CATALOG_NOTE = "The on-chain listing is updated. Hosted catalog refresh timing is provider-owned; verify the displayed copy separately. Re-run this command to change the on-chain copy (no second mint).";
21
+ declare const PARAM_KEYS: readonly ["name", "summary", "description", "url", "urlLabel", "image", "mark", "tone", "category", "relationships", "stage", "tags"];
22
+ type ParamKey = (typeof PARAM_KEYS)[number];
23
+ /** Sequencer/RPC per-tx gas cap. A full param dump in one multicall exceeds it. */
24
+ export declare const MAX_CALLS_PER_TX = 3;
25
+ export type SubmitAppEntry = {
26
+ name: string;
27
+ summary: string;
28
+ description: string;
29
+ url: string;
30
+ urlLabel: string;
31
+ image: string;
32
+ mark: string;
33
+ tone: (typeof APP_TONES)[number];
34
+ category: (typeof APP_CATEGORIES)[number];
35
+ stage: (typeof APP_STAGES)[number];
36
+ tags: string[];
37
+ };
38
+ export type AppStoreAddresses = {
39
+ registry: Address;
40
+ minter: Address;
41
+ };
42
+ /**
43
+ * Catalog copy from flags. Requires name / summary / description so deploy identity
44
+ * cannot silently become the listing.
45
+ */
46
+ export declare function parseSubmitAppEntry(flags: Flags): SubmitAppEntry;
47
+ export declare function paramValues(entry: SubmitAppEntry): Record<ParamKey, string>;
48
+ export declare function resolveAppStoreAddresses(chainKey: string, flags?: Flags, env?: NodeJS.ProcessEnv): AppStoreAddresses;
49
+ export declare function chunkItems<T>(items: T[], size?: number): T[][];
50
+ export declare function buildParamOps(args: {
51
+ registry: Address;
52
+ tokenId: bigint;
53
+ entry: SubmitAppEntry;
54
+ chainId: number;
55
+ }): PreparedTx[];
56
+ export declare function batchParamOps(ops: PreparedTx[]): PreparedTx[];
57
+ export declare function cmdSubmitApp(address: string | undefined, flags: Flags): Promise<void>;
58
+ export {};
59
+ //# sourceMappingURL=submit-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit-app.d.ts","sourceRoot":"","sources":["../../src/commands/submit-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAOL,KAAK,OAAO,EAEZ,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAC,KAAK,KAAK,EAAW,MAAM,aAAa,CAAC;AAWjD,qFAAqF;AACrF,eAAO,MAAM,cAAc,2GAQjB,CAAC;AAEX,eAAO,MAAM,UAAU,2CAA4C,CAAC;AACpE,eAAO,MAAM,SAAS,+DAAgE,CAAC;AACvF,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,uBAAuB,8LACyJ,CAAC;AAE9L,QAAA,MAAM,UAAU,uIAaN,CAAC;AAEX,KAAK,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5C,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAgElC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,KAAK,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,CAAC;AA4DrE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,CAchE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAe3E;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,KAAU,EACjB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,iBAAiB,CAenB;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,SAAmB,GAAG,CAAC,EAAE,EAAE,CAKxE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,UAAU,EAAE,CA+Bf;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAQ7D;AA2CD,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAyO3F"}