@12ui/design 0.2.26 → 0.2.28

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 (361) hide show
  1. package/README.md +72 -87
  2. package/SKILL.md +5 -5
  3. package/dist/branch-client.d.ts +7 -0
  4. package/dist/branch-client.d.ts.map +1 -1
  5. package/dist/branch-client.js +1 -0
  6. package/dist/branch-client.js.map +1 -1
  7. package/dist/branch-completion.d.ts +8 -0
  8. package/dist/branch-completion.d.ts.map +1 -1
  9. package/dist/branch-completion.js +84 -16
  10. package/dist/branch-completion.js.map +1 -1
  11. package/dist/branch-execution.d.ts +8 -0
  12. package/dist/branch-execution.d.ts.map +1 -1
  13. package/dist/branch-execution.js +62 -11
  14. package/dist/branch-execution.js.map +1 -1
  15. package/dist/branch-identity.d.ts +10 -4
  16. package/dist/branch-identity.d.ts.map +1 -1
  17. package/dist/branch-identity.js +9 -6
  18. package/dist/branch-identity.js.map +1 -1
  19. package/dist/branch-page-conversion.d.ts +14 -8
  20. package/dist/branch-page-conversion.d.ts.map +1 -1
  21. package/dist/branch-page-conversion.js +32 -15
  22. package/dist/branch-page-conversion.js.map +1 -1
  23. package/dist/branch-page-packaging.d.ts +31 -0
  24. package/dist/branch-page-packaging.d.ts.map +1 -0
  25. package/dist/branch-page-packaging.js +86 -0
  26. package/dist/branch-page-packaging.js.map +1 -0
  27. package/dist/branch-plan.d.ts +44 -0
  28. package/dist/branch-plan.d.ts.map +1 -1
  29. package/dist/branch-plan.js +89 -18
  30. package/dist/branch-plan.js.map +1 -1
  31. package/dist/branch-progress.d.ts +22 -0
  32. package/dist/branch-progress.d.ts.map +1 -1
  33. package/dist/branch-progress.js +46 -8
  34. package/dist/branch-progress.js.map +1 -1
  35. package/dist/branch-run-record.d.ts +36 -1
  36. package/dist/branch-run-record.d.ts.map +1 -1
  37. package/dist/branch-run-record.js.map +1 -1
  38. package/dist/branch-status.d.ts +2 -0
  39. package/dist/branch-status.d.ts.map +1 -1
  40. package/dist/branch-status.js +60 -15
  41. package/dist/branch-status.js.map +1 -1
  42. package/dist/branch-winner.d.ts +13 -15
  43. package/dist/branch-winner.d.ts.map +1 -1
  44. package/dist/branch-winner.js +25 -77
  45. package/dist/branch-winner.js.map +1 -1
  46. package/dist/cli-auth-command.d.ts.map +1 -1
  47. package/dist/cli-auth-command.js +5 -0
  48. package/dist/cli-auth-command.js.map +1 -1
  49. package/dist/cli-auth-onboarding.d.ts +12 -0
  50. package/dist/cli-auth-onboarding.d.ts.map +1 -0
  51. package/dist/cli-auth-onboarding.js +21 -0
  52. package/dist/cli-auth-onboarding.js.map +1 -0
  53. package/dist/cli-branch-command.d.ts +14 -19
  54. package/dist/cli-branch-command.d.ts.map +1 -1
  55. package/dist/cli-branch-command.js +207 -137
  56. package/dist/cli-branch-command.js.map +1 -1
  57. package/dist/cli-capabilities.d.ts +10 -51
  58. package/dist/cli-capabilities.d.ts.map +1 -1
  59. package/dist/cli-capabilities.js +13 -26
  60. package/dist/cli-capabilities.js.map +1 -1
  61. package/dist/cli-cli-command.d.ts +3 -0
  62. package/dist/cli-cli-command.d.ts.map +1 -1
  63. package/dist/cli-cli-command.js +15 -3
  64. package/dist/cli-cli-command.js.map +1 -1
  65. package/dist/cli-conversion-derivation.d.ts +30 -0
  66. package/dist/cli-conversion-derivation.d.ts.map +1 -0
  67. package/dist/{cli-export-command.js → cli-conversion-derivation.js} +178 -110
  68. package/dist/cli-conversion-derivation.js.map +1 -0
  69. package/dist/cli-conversion-output-directory.d.ts +5 -0
  70. package/dist/cli-conversion-output-directory.d.ts.map +1 -0
  71. package/dist/{cli-export-output-directory.js → cli-conversion-output-directory.js} +10 -10
  72. package/dist/cli-conversion-output-directory.js.map +1 -0
  73. package/dist/cli-convert-command.d.ts +9 -0
  74. package/dist/cli-convert-command.d.ts.map +1 -1
  75. package/dist/cli-convert-command.js +528 -158
  76. package/dist/cli-convert-command.js.map +1 -1
  77. package/dist/cli-corpus-command.d.ts.map +1 -1
  78. package/dist/cli-corpus-command.js +77 -10
  79. package/dist/cli-corpus-command.js.map +1 -1
  80. package/dist/cli-corpus-reference-downloads.d.ts +5 -0
  81. package/dist/cli-corpus-reference-downloads.d.ts.map +1 -1
  82. package/dist/cli-corpus-reference-downloads.js +18 -7
  83. package/dist/cli-corpus-reference-downloads.js.map +1 -1
  84. package/dist/cli-corpus-run.d.ts +9 -0
  85. package/dist/cli-corpus-run.d.ts.map +1 -1
  86. package/dist/cli-corpus-run.js +18 -0
  87. package/dist/cli-corpus-run.js.map +1 -1
  88. package/dist/cli-detach.d.ts +12 -4
  89. package/dist/cli-detach.d.ts.map +1 -1
  90. package/dist/cli-detach.js +49 -17
  91. package/dist/cli-detach.js.map +1 -1
  92. package/dist/cli-draft-command.d.ts +44 -61
  93. package/dist/cli-draft-command.d.ts.map +1 -1
  94. package/dist/cli-draft-command.js +307 -180
  95. package/dist/cli-draft-command.js.map +1 -1
  96. package/dist/cli-help/conversion.d.ts +30 -0
  97. package/dist/cli-help/conversion.d.ts.map +1 -0
  98. package/dist/cli-help/conversion.js +55 -0
  99. package/dist/cli-help/conversion.js.map +1 -0
  100. package/dist/cli-help/design.d.ts +74 -0
  101. package/dist/cli-help/design.d.ts.map +1 -0
  102. package/dist/cli-help/design.js +131 -0
  103. package/dist/cli-help/design.js.map +1 -0
  104. package/dist/cli-help/index.d.ts +224 -0
  105. package/dist/cli-help/index.d.ts.map +1 -0
  106. package/dist/cli-help/index.js +32 -0
  107. package/dist/cli-help/index.js.map +1 -0
  108. package/dist/cli-help/meta.d.ts +24 -0
  109. package/dist/cli-help/meta.d.ts.map +1 -0
  110. package/dist/cli-help/meta.js +30 -0
  111. package/dist/cli-help/meta.js.map +1 -0
  112. package/dist/cli-help/render.d.ts +4 -0
  113. package/dist/cli-help/render.d.ts.map +1 -0
  114. package/dist/cli-help/render.js +28 -0
  115. package/dist/cli-help/render.js.map +1 -0
  116. package/dist/cli-help/setup.d.ts +93 -0
  117. package/dist/cli-help/setup.d.ts.map +1 -0
  118. package/dist/cli-help/setup.js +142 -0
  119. package/dist/cli-help/setup.js.map +1 -0
  120. package/dist/cli-help/types.d.ts +10 -0
  121. package/dist/cli-help/types.d.ts.map +1 -0
  122. package/dist/cli-help/types.js +2 -0
  123. package/dist/cli-help/types.js.map +1 -0
  124. package/dist/cli-next-command.d.ts +11 -8
  125. package/dist/cli-next-command.d.ts.map +1 -1
  126. package/dist/cli-next-command.js +288 -88
  127. package/dist/cli-next-command.js.map +1 -1
  128. package/dist/cli-output-paths.d.ts +2 -23
  129. package/dist/cli-output-paths.d.ts.map +1 -1
  130. package/dist/cli-output-paths.js +2 -36
  131. package/dist/cli-output-paths.js.map +1 -1
  132. package/dist/cli-package-command.d.ts +1 -0
  133. package/dist/cli-package-command.d.ts.map +1 -1
  134. package/dist/cli-package-command.js +107 -34
  135. package/dist/cli-package-command.js.map +1 -1
  136. package/dist/cli-pending-auth.d.ts +20 -0
  137. package/dist/cli-pending-auth.d.ts.map +1 -0
  138. package/dist/cli-pending-auth.js +160 -0
  139. package/dist/cli-pending-auth.js.map +1 -0
  140. package/dist/cli-progress.d.ts +256 -75
  141. package/dist/cli-progress.d.ts.map +1 -1
  142. package/dist/cli-progress.js +425 -98
  143. package/dist/cli-progress.js.map +1 -1
  144. package/dist/cli-run.d.ts +2 -0
  145. package/dist/cli-run.d.ts.map +1 -1
  146. package/dist/cli-run.js +56 -75
  147. package/dist/cli-run.js.map +1 -1
  148. package/dist/cli-skill-command.d.ts +3 -0
  149. package/dist/cli-skill-command.d.ts.map +1 -1
  150. package/dist/cli-skill-command.js +26 -3
  151. package/dist/cli-skill-command.js.map +1 -1
  152. package/dist/cli-usage.d.ts +17 -8
  153. package/dist/cli-usage.d.ts.map +1 -1
  154. package/dist/cli-usage.js +55 -40
  155. package/dist/cli-usage.js.map +1 -1
  156. package/dist/config.d.ts +1 -0
  157. package/dist/config.d.ts.map +1 -1
  158. package/dist/config.js +8 -2
  159. package/dist/config.js.map +1 -1
  160. package/dist/conversion-client.d.ts +4 -0
  161. package/dist/conversion-client.d.ts.map +1 -1
  162. package/dist/conversion-client.js +23 -3
  163. package/dist/conversion-client.js.map +1 -1
  164. package/dist/conversion-outputs.d.ts +11 -0
  165. package/dist/conversion-outputs.d.ts.map +1 -1
  166. package/dist/conversion-outputs.js +13 -1
  167. package/dist/conversion-outputs.js.map +1 -1
  168. package/dist/conversion-receipt.d.ts +1 -1
  169. package/dist/conversion-receipt.js +1 -1
  170. package/dist/conversion-recovery.d.ts +20 -0
  171. package/dist/conversion-recovery.d.ts.map +1 -0
  172. package/dist/conversion-recovery.js +61 -0
  173. package/dist/conversion-recovery.js.map +1 -0
  174. package/dist/conversion-status-contract.js +1 -1
  175. package/dist/conversion-status-contract.js.map +1 -1
  176. package/dist/credential-setup.d.ts +9 -1
  177. package/dist/credential-setup.d.ts.map +1 -1
  178. package/dist/credential-setup.js +13 -1
  179. package/dist/credential-setup.js.map +1 -1
  180. package/dist/draft-adoption.d.ts +9 -3
  181. package/dist/draft-adoption.d.ts.map +1 -1
  182. package/dist/draft-adoption.js +26 -41
  183. package/dist/draft-adoption.js.map +1 -1
  184. package/dist/draft-identity.d.ts +9 -12
  185. package/dist/draft-identity.d.ts.map +1 -1
  186. package/dist/draft-identity.js +0 -0
  187. package/dist/draft-identity.js.map +1 -1
  188. package/dist/draft-run.d.ts +9 -19
  189. package/dist/draft-run.d.ts.map +1 -1
  190. package/dist/draft-run.js +67 -95
  191. package/dist/draft-run.js.map +1 -1
  192. package/dist/draft-workspace.d.ts +26 -18
  193. package/dist/draft-workspace.d.ts.map +1 -1
  194. package/dist/draft-workspace.js +16 -5
  195. package/dist/draft-workspace.js.map +1 -1
  196. package/dist/hosted-draft-identity.d.ts +20 -0
  197. package/dist/hosted-draft-identity.d.ts.map +1 -0
  198. package/dist/hosted-draft-identity.js +30 -0
  199. package/dist/hosted-draft-identity.js.map +1 -0
  200. package/dist/hosted-draft-run.d.ts +60 -0
  201. package/dist/hosted-draft-run.d.ts.map +1 -0
  202. package/dist/hosted-draft-run.js +97 -0
  203. package/dist/hosted-draft-run.js.map +1 -0
  204. package/dist/legacy-codex-cleanup.d.ts +13 -0
  205. package/dist/legacy-codex-cleanup.d.ts.map +1 -1
  206. package/dist/legacy-codex-cleanup.js +83 -0
  207. package/dist/legacy-codex-cleanup.js.map +1 -1
  208. package/dist/legacy-skill-catalog.d.ts +2 -2
  209. package/dist/legacy-skill-catalog.d.ts.map +1 -1
  210. package/dist/legacy-skill-catalog.js +76 -5
  211. package/dist/legacy-skill-catalog.js.map +1 -1
  212. package/dist/login-auth.d.ts +38 -0
  213. package/dist/login-auth.d.ts.map +1 -1
  214. package/dist/login-auth.js +67 -16
  215. package/dist/login-auth.js.map +1 -1
  216. package/dist/mcp-tool-definitions.js +1 -1
  217. package/dist/mcp-tool-definitions.js.map +1 -1
  218. package/dist/next-target.d.ts +1 -4
  219. package/dist/next-target.d.ts.map +1 -1
  220. package/dist/next-target.js +5 -9
  221. package/dist/next-target.js.map +1 -1
  222. package/dist/next-wait-lease.d.ts +17 -0
  223. package/dist/next-wait-lease.d.ts.map +1 -0
  224. package/dist/next-wait-lease.js +92 -0
  225. package/dist/next-wait-lease.js.map +1 -0
  226. package/dist/operation-poll-policy.d.ts +89 -0
  227. package/dist/operation-poll-policy.d.ts.map +1 -0
  228. package/dist/operation-poll-policy.js +99 -0
  229. package/dist/operation-poll-policy.js.map +1 -0
  230. package/dist/package-client.d.ts +30 -0
  231. package/dist/package-client.d.ts.map +1 -1
  232. package/dist/package-client.js +48 -9
  233. package/dist/package-client.js.map +1 -1
  234. package/dist/package-submission.d.ts +17 -0
  235. package/dist/package-submission.d.ts.map +1 -1
  236. package/dist/package-submission.js +43 -2
  237. package/dist/package-submission.js.map +1 -1
  238. package/dist/pending-auth-store.d.ts +15 -0
  239. package/dist/pending-auth-store.d.ts.map +1 -0
  240. package/dist/pending-auth-store.js +90 -0
  241. package/dist/pending-auth-store.js.map +1 -0
  242. package/dist/responsive-quality.d.ts +2 -2
  243. package/dist/responsive-quality.js +2 -2
  244. package/dist/run-journal-commands.d.ts.map +1 -1
  245. package/dist/run-journal-commands.js +30 -78
  246. package/dist/run-journal-commands.js.map +1 -1
  247. package/dist/run-journal-in-flight.d.ts +2 -2
  248. package/dist/run-journal-in-flight.d.ts.map +1 -1
  249. package/dist/run-journal-in-flight.js +0 -0
  250. package/dist/run-journal-in-flight.js.map +1 -1
  251. package/dist/skill-installer.d.ts +2 -2
  252. package/dist/skill-installer.d.ts.map +1 -1
  253. package/dist/skill-installer.js +2 -2
  254. package/dist/skill-installer.js.map +1 -1
  255. package/open-design.json +3 -3
  256. package/package.json +1 -1
  257. package/skills/12ui-design/SKILL.md +62 -0
  258. package/skills/12ui-design/agents/openai.yaml +6 -0
  259. package/skills/12ui-design/inspire.md +11 -0
  260. package/dist/cli-create-command.d.ts +0 -59
  261. package/dist/cli-create-command.d.ts.map +0 -1
  262. package/dist/cli-create-command.js +0 -354
  263. package/dist/cli-create-command.js.map +0 -1
  264. package/dist/cli-export-command.d.ts +0 -26
  265. package/dist/cli-export-command.d.ts.map +0 -1
  266. package/dist/cli-export-command.js.map +0 -1
  267. package/dist/cli-export-output-directory.d.ts +0 -5
  268. package/dist/cli-export-output-directory.d.ts.map +0 -1
  269. package/dist/cli-export-output-directory.js.map +0 -1
  270. package/dist/cli-image-batch-command.d.ts +0 -29
  271. package/dist/cli-image-batch-command.d.ts.map +0 -1
  272. package/dist/cli-image-batch-command.js +0 -236
  273. package/dist/cli-image-batch-command.js.map +0 -1
  274. package/dist/cli-image-batch-materialize.d.ts +0 -27
  275. package/dist/cli-image-batch-materialize.d.ts.map +0 -1
  276. package/dist/cli-image-batch-materialize.js +0 -41
  277. package/dist/cli-image-batch-materialize.js.map +0 -1
  278. package/dist/cli-image-batch-resume.d.ts +0 -36
  279. package/dist/cli-image-batch-resume.d.ts.map +0 -1
  280. package/dist/cli-image-batch-resume.js +0 -176
  281. package/dist/cli-image-batch-resume.js.map +0 -1
  282. package/dist/cli-image-command.d.ts +0 -10
  283. package/dist/cli-image-command.d.ts.map +0 -1
  284. package/dist/cli-image-command.js +0 -106
  285. package/dist/cli-image-command.js.map +0 -1
  286. package/dist/cli-select-command.d.ts +0 -16
  287. package/dist/cli-select-command.d.ts.map +0 -1
  288. package/dist/cli-select-command.js +0 -60
  289. package/dist/cli-select-command.js.map +0 -1
  290. package/dist/create-identity.d.ts +0 -25
  291. package/dist/create-identity.d.ts.map +0 -1
  292. package/dist/create-identity.js +0 -0
  293. package/dist/create-identity.js.map +0 -1
  294. package/dist/draft-prompts.d.ts +0 -35
  295. package/dist/draft-prompts.d.ts.map +0 -1
  296. package/dist/draft-prompts.js +0 -51
  297. package/dist/draft-prompts.js.map +0 -1
  298. package/dist/image-batch-status.d.ts +0 -42
  299. package/dist/image-batch-status.d.ts.map +0 -1
  300. package/dist/image-batch-status.js +0 -143
  301. package/dist/image-batch-status.js.map +0 -1
  302. package/dist/image-generation-batch-attempt.d.ts +0 -28
  303. package/dist/image-generation-batch-attempt.d.ts.map +0 -1
  304. package/dist/image-generation-batch-attempt.js +0 -48
  305. package/dist/image-generation-batch-attempt.js.map +0 -1
  306. package/dist/image-generation-batch-manifest.d.ts +0 -25
  307. package/dist/image-generation-batch-manifest.d.ts.map +0 -1
  308. package/dist/image-generation-batch-manifest.js +0 -97
  309. package/dist/image-generation-batch-manifest.js.map +0 -1
  310. package/dist/image-generation-completion.d.ts +0 -43
  311. package/dist/image-generation-completion.d.ts.map +0 -1
  312. package/dist/image-generation-completion.js +0 -54
  313. package/dist/image-generation-completion.js.map +0 -1
  314. package/dist/image-generation-error.d.ts +0 -3
  315. package/dist/image-generation-error.d.ts.map +0 -1
  316. package/dist/image-generation-error.js +0 -30
  317. package/dist/image-generation-error.js.map +0 -1
  318. package/dist/image-generation-evidence.d.ts +0 -43
  319. package/dist/image-generation-evidence.d.ts.map +0 -1
  320. package/dist/image-generation-evidence.js +0 -28
  321. package/dist/image-generation-evidence.js.map +0 -1
  322. package/dist/image-generation-fs.d.ts +0 -3
  323. package/dist/image-generation-fs.d.ts.map +0 -1
  324. package/dist/image-generation-fs.js +0 -23
  325. package/dist/image-generation-fs.js.map +0 -1
  326. package/dist/image-generation-output.d.ts +0 -3
  327. package/dist/image-generation-output.d.ts.map +0 -1
  328. package/dist/image-generation-output.js +0 -51
  329. package/dist/image-generation-output.js.map +0 -1
  330. package/dist/image-generation-request.d.ts +0 -43
  331. package/dist/image-generation-request.d.ts.map +0 -1
  332. package/dist/image-generation-request.js +0 -52
  333. package/dist/image-generation-request.js.map +0 -1
  334. package/dist/image-generation-resume.d.ts +0 -49
  335. package/dist/image-generation-resume.d.ts.map +0 -1
  336. package/dist/image-generation-resume.js +0 -96
  337. package/dist/image-generation-resume.js.map +0 -1
  338. package/dist/image-generation-run.d.ts +0 -46
  339. package/dist/image-generation-run.d.ts.map +0 -1
  340. package/dist/image-generation-run.js +0 -158
  341. package/dist/image-generation-run.js.map +0 -1
  342. package/dist/image-generation-staging.d.ts +0 -25
  343. package/dist/image-generation-staging.d.ts.map +0 -1
  344. package/dist/image-generation-staging.js +0 -80
  345. package/dist/image-generation-staging.js.map +0 -1
  346. package/dist/image-generation-usage.d.ts +0 -75
  347. package/dist/image-generation-usage.d.ts.map +0 -1
  348. package/dist/image-generation-usage.js +0 -219
  349. package/dist/image-generation-usage.js.map +0 -1
  350. package/dist/image-provider-preflight.d.ts +0 -21
  351. package/dist/image-provider-preflight.d.ts.map +0 -1
  352. package/dist/image-provider-preflight.js +0 -184
  353. package/dist/image-provider-preflight.js.map +0 -1
  354. package/dist/selection-record.d.ts +0 -97
  355. package/dist/selection-record.d.ts.map +0 -1
  356. package/dist/selection-record.js +0 -138
  357. package/dist/selection-record.js.map +0 -1
  358. package/skills/design/SKILL.md +0 -116
  359. package/skills/design/agents/openai.yaml +0 -8
  360. package/skills/design/assets/large-logo.svg +0 -3
  361. package/skills/design/assets/small-400px.png +0 -0
@@ -48,8 +48,8 @@ export const prepareOutputDirectory = async (outDir) => {
48
48
  * checked, and the resolved absolute file path comes back.
49
49
  *
50
50
  * The parent check alone is not enough. A measured run named its working
51
- * directory as `--export-out`: the parent existed and was writable, the paid
52
- * export settled, and the write then died with a raw EISDIR — the exact
51
+ * directory where a file was required: the parent existed and was writable,
52
+ * the paid work settled, and the write then died with a raw EISDIR — the exact
53
53
  * money-first failure this module exists to prevent, under a different errno.
54
54
  * So a resolved target that IS an existing directory refuses before dispatch.
55
55
  */
@@ -64,38 +64,4 @@ export const prepareOutputFile = async (outFile) => {
64
64
  await prepareOutputDirectory(path.dirname(resolved));
65
65
  return resolved;
66
66
  };
67
- /**
68
- * `--out` on `12ui convert` names EITHER a file or a directory to write inside.
69
- *
70
- * WHY THE EXCEPTION. The fused convert takes two output paths that did not even
71
- * agree on their type: a measured run passed `--out build/target.layerdoc.json
72
- * --export-out build` — a file for one, a directory for the other — and spent
73
- * four recovery commands on the difference. The distance between the best run
74
- * of that wave and the worst was entirely where the output paths pointed. So
75
- * the happy path loses the decision: name a directory and both artifacts land
76
- * in it under names derived from the input.
77
- *
78
- * THE CONTRACT, stated once so nothing has to guess. A path that already exists
79
- * as a directory is a directory. A path written with a trailing separator is a
80
- * directory, whether or not it exists yet — that is the caller saying so, and
81
- * it is the case `prepareOutputFile` would otherwise turn into a file called
82
- * `build`. Anything else is a file. `--export-out` and `resume --out` stay
83
- * file-only and still refuse a directory: they name one artifact each, so there
84
- * is nothing to derive a name from.
85
- */
86
- export const namesDirectory = async (out) => {
87
- const named = out.trim();
88
- const resolved = path.resolve(named);
89
- const trailingSeparator = named.endsWith('/') || named.endsWith(path.sep);
90
- const existing = await stat(resolved).catch(() => null);
91
- return Boolean(existing?.isDirectory()) || (trailingSeparator && !existing);
92
- };
93
- export const prepareOutputTarget = async (out, deriveFilename) => {
94
- const resolved = path.resolve(out.trim());
95
- if (await namesDirectory(out)) {
96
- await prepareOutputDirectory(resolved);
97
- return path.join(resolved, deriveFilename());
98
- }
99
- return prepareOutputFile(resolved);
100
- };
101
67
  //# sourceMappingURL=cli-output-paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-output-paths.js","sourceRoot":"","sources":["../src/cli-output-paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-output-paths.js","sourceRoot":"","sources":["../src/cli-output-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,CAC3C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,MAAc,EAAmB,EAAE;IAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,UAAU,CAClB,mBAAmB,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG;cAChD,oEAAoE,EACtE,wBAAwB,EACxB,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAClB,GAAG,QAAQ,wDAAwD;cACjE,8CAA8C;cAC9C,2DAA2D,EAC7D,wBAAwB,CACzB,CAAC;IACJ,CAAC;IACD,MAAM,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
@@ -10,6 +10,7 @@ import { type PackageSubmissionResult } from './package-submission.js';
10
10
  */
11
11
  /** A multi-viewport page converts its viewports in parallel, then composes. */
12
12
  export declare const PACKAGE_DURATION_SECONDS = 360;
13
+ export declare const PACKAGE_TEMPLATE_NEXT_COMMAND = "Next: 12ui convert package --manifest package.json --out-dir <directory>";
13
14
  /**
14
15
  * `12ui convert package --template` prints the starting manifest and returns
15
16
  * before any config read or network call, so it works with no credentials.
@@ -1 +1 @@
1
- {"version":3,"file":"cli-package-command.d.ts","sourceRoot":"","sources":["../src/cli-package-command.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAInD,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AAMtE,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAOjC;;;;;GAKG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,MAAM,CAAC;AA2B5C;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GAAI,OAAO,QAAQ,KAAG,OAK3D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,QAAQ,EACf,eAAc;IACZ,UAAU,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACzC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,KAAK,+BAA+B,CAAC;IACpG,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,KACL,OAAO,CAAC,uBAAuB,CAiGjC,CAAC"}
1
+ {"version":3,"file":"cli-package-command.d.ts","sourceRoot":"","sources":["../src/cli-package-command.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAInD,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AAMtE,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAMjC;;;;;GAKG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,eAAO,MAAM,6BAA6B,6EACkC,CAAC;AA2B7E;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GAAI,OAAO,QAAQ,KAAG,OAK3D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,QAAQ,EACf,eAAc;IACZ,UAAU,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACzC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,KAAK,+BAA+B,CAAC;IACpG,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,KACL,OAAO,CAAC,uBAAuB,CAqKjC,CAAC"}
@@ -12,7 +12,7 @@ import { TwelveUiConversionPackageClient } from './package-client.js';
12
12
  import { readLocalPackageManifest } from './package-manifest-file.js';
13
13
  import { PACKAGE_MANIFEST_TEMPLATE_NOTES, renderPackageManifestTemplate, } from './package-manifest-template.js';
14
14
  import { PACKAGE_RESULT_FILENAME, submitConversionPackage, writePackageResultRecord, } from './package-submission.js';
15
- import { createPackageProgressReporter, formatDuration, nextActionLine, } from './cli-progress.js';
15
+ import { createLongRunningProgress, packageStageUnit, } from './cli-progress.js';
16
16
  /**
17
17
  * `12ui convert package` — the ordered-viewport submission that had no CLI at
18
18
  * all. Without it the terminal step of the branch path was the least supported
@@ -21,6 +21,7 @@ import { createPackageProgressReporter, formatDuration, nextActionLine, } from '
21
21
  */
22
22
  /** A multi-viewport page converts its viewports in parallel, then composes. */
23
23
  export const PACKAGE_DURATION_SECONDS = 360;
24
+ export const PACKAGE_TEMPLATE_NEXT_COMMAND = 'Next: 12ui convert package --manifest package.json --out-dir <directory>';
24
25
  const parseTimeoutMs = (value) => {
25
26
  if (value === undefined)
26
27
  return undefined;
@@ -57,7 +58,7 @@ const refuseExistingResult = async (outDir) => {
57
58
  export const runPackageTemplateCommand = (flags) => {
58
59
  if (!booleanFlag(flags, 'template'))
59
60
  return false;
60
- process.stderr.write(`${PACKAGE_MANIFEST_TEMPLATE_NOTES}\n`);
61
+ process.stderr.write(`${PACKAGE_MANIFEST_TEMPLATE_NOTES}\n${PACKAGE_TEMPLATE_NEXT_COMMAND}\n`);
61
62
  process.stdout.write(renderPackageManifestTemplate());
62
63
  return true;
63
64
  };
@@ -90,40 +91,97 @@ export const runPackageCommand = async (flags, dependencies = {}) => {
90
91
  });
91
92
  const client = (dependencies.createClient ?? ((value) => (new TwelveUiConversionPackageClient(value))))(config);
92
93
  const viewportCount = manifest.pages.reduce((total, page) => total + page.viewports.length, 0);
93
- if (!quiet) {
94
- process.stderr.write(`12ui convert package — ${manifest.pages.length} page(s), ${viewportCount} viewport(s)`
95
- + ` to ${manifest.output}; expect about ${formatDuration(PACKAGE_DURATION_SECONDS)}\n`);
96
- }
97
- const startedAt = Date.now();
98
- const reportProgress = createPackageProgressReporter({
99
- write: (line) => { process.stderr.write(`${line}\n`); },
100
- elapsed: () => formatDuration((Date.now() - startedAt) / 1000),
94
+ const progress = createLongRunningProgress({
95
+ label: 'convert package',
96
+ typicalSeconds: PACKAGE_DURATION_SECONDS,
97
+ quiet,
101
98
  });
102
- const result = await submitConversionPackage({
103
- client,
104
- outDir,
105
- submission: {
106
- output: manifest.output,
107
- ...(manifest.model ? { model: manifest.model } : {}),
108
- ...(manifest.responsiveQuality ? { responsiveQuality: manifest.responsiveQuality } : {}),
109
- pages: manifest.pages,
110
- idempotencyKey,
99
+ progress.brief({
100
+ request: `convert package: ${manifest.pages.length} page(s), ${viewportCount} viewport(s),`
101
+ + ` to ${manifest.output}`,
102
+ paid: 'one package conversion (new viewports paid; attached source conversions replay free)',
103
+ done: `one document per page + ${PACKAGE_RESULT_FILENAME} in ${outDir}`,
104
+ expectation: {
105
+ typicalSeconds: PACKAGE_DURATION_SECONDS,
106
+ basis: 'measured median for a one-page package; pages convert up to three at a time',
111
107
  },
112
- ...(parseTimeoutMs(stringFlag(flags, 'timeout-ms')) === undefined
113
- ? {}
114
- : { timeoutMs: parseTimeoutMs(stringFlag(flags, 'timeout-ms')) }),
115
- onSubmitted: quiet
116
- ? undefined
117
- : (packageId) => {
118
- process.stderr.write(`12ui convert package ${packageId} submitted.\n${nextActionLine({
119
- what: 'A multi-viewport page conversion',
120
- typicalSeconds: PACKAGE_DURATION_SECONDS,
121
- statusCommand: `GET /api/v1/convert/package/${packageId}`,
122
- waitHint: 'or leave this command running, which is what --wait already does by default',
123
- })}\n`);
124
- },
125
- onProgress: quiet ? undefined : (event) => { reportProgress(undefined, event); },
108
+ blocking: true,
126
109
  });
110
+ progress.update({
111
+ stage: 'prepare',
112
+ completed: 0,
113
+ total: manifest.pages.length,
114
+ unit: 'pages',
115
+ });
116
+ let result;
117
+ try {
118
+ result = await submitConversionPackage({
119
+ client,
120
+ outDir,
121
+ submission: {
122
+ output: manifest.output,
123
+ ...(manifest.model ? { model: manifest.model } : {}),
124
+ ...(manifest.responsiveQuality ? { responsiveQuality: manifest.responsiveQuality } : {}),
125
+ pages: manifest.pages,
126
+ idempotencyKey,
127
+ },
128
+ ...(parseTimeoutMs(stringFlag(flags, 'timeout-ms')) === undefined
129
+ ? {}
130
+ : { timeoutMs: parseTimeoutMs(stringFlag(flags, 'timeout-ms')) }),
131
+ onSubmitted: (packageId) => {
132
+ // Identity said once, not on every tick.
133
+ progress.note(`claimed package ${packageId}`);
134
+ progress.update({
135
+ stage: 'queued',
136
+ completed: 0,
137
+ total: manifest.pages.length,
138
+ unit: 'pages',
139
+ });
140
+ },
141
+ onProgress: (event) => {
142
+ progress.update({
143
+ stage: event.stage === 'succeeded' ? 'collecting' : event.stage,
144
+ // Raw percents (package scale AND per-child) never render — the
145
+ // owner's risk rule; children carry their advancing stage words.
146
+ // The elapsed clock anchors to the package's own age: an
147
+ // idempotent resubmission attaches to existing work, and quoting
148
+ // a fresh-run clock against a 13-minute-old package overstated
149
+ // the estimate and understated the progress (measured, board v2).
150
+ ...(event.createdAt
151
+ ? { elapsedSeconds: Math.max(0, (Date.now() - Date.parse(event.createdAt)) / 1000) || 0 }
152
+ : {}),
153
+ ...(event.completed === undefined ? {} : {
154
+ completed: event.completed,
155
+ total: event.total,
156
+ unit: packageStageUnit(event.stage),
157
+ }),
158
+ ...(event.running === undefined ? {} : { running: event.running }),
159
+ // The children ARE the news of a long phase: their stage and
160
+ // percent keep moving while the package percent plateaus. The
161
+ // board held `exporting pages 93%` for 2m8s while a child was
162
+ // mid-anchor — and rendered `1 child operation(s) reporting`.
163
+ ...(event.children?.length
164
+ ? { children: event.children.map((child) => ({ id: child.id, stage: child.stage })) }
165
+ : {}),
166
+ ...(event.stageSince ? { stageSince: event.stageSince } : {}),
167
+ ...(event.quotaParked
168
+ ? {
169
+ detail: `waiting on quota (${event.quotaParked.reason}${event.quotaParked.detail ? `: ${event.quotaParked.detail}` : ''})`,
170
+ }
171
+ : event.pagesAvailable
172
+ ? { detail: `${event.pagesAvailable} page(s) already fetchable` }
173
+ : {}),
174
+ });
175
+ },
176
+ });
177
+ }
178
+ catch (error) {
179
+ progress.finish('stopped', {
180
+ detail: error instanceof Error ? error.message : String(error),
181
+ next: `re-run with the same manifest and --out-dir: the idempotency key replays settled work free`,
182
+ });
183
+ throw error;
184
+ }
127
185
  const resultPath = await writePackageResultRecord(outDir, result);
128
186
  // Every viewport the package converted is a reusable artifact in its own
129
187
  // right, so the screenshots this manifest named are proved for the next run
@@ -136,8 +194,23 @@ export const runPackageCommand = async (flags, dependencies = {}) => {
136
194
  ...(quiet ? {} : { warn: (message) => { process.stderr.write(`${message}\n`); } }),
137
195
  });
138
196
  const reported = { ...result, resultPath };
139
- console.log(JSON.stringify({ manifestPath, outDir, ...reported }, null, 2));
140
197
  const failed = reported.pages.filter((page) => page.status === 'failed');
198
+ progress.finish(failed.length > 0 ? 'partial' : 'succeeded', {
199
+ ...(failed.length > 0
200
+ ? { detail: `${failed.length} of ${reported.pages.length} page(s) failed` }
201
+ : {}),
202
+ artifacts: [
203
+ ...reported.pages.map((page) => ({
204
+ name: `page ${page.id}`,
205
+ state: page.status,
206
+ ...(page.outFile ? { path: page.outFile } : {}),
207
+ })),
208
+ { name: 'package result', state: 'written', path: resultPath },
209
+ ],
210
+ spend: `package ${reported.packageId} purchased; attached source conversions replayed free`,
211
+ next: `every page and conversion id: ${resultPath}`,
212
+ });
213
+ console.log(JSON.stringify({ manifestPath, outDir, ...reported }, null, 2));
141
214
  if (failed.length > 0) {
142
215
  throw new Error(`Package ${reported.packageId} converted ${reported.pages.length - failed.length} of`
143
216
  + ` ${reported.pages.length} page(s). Failed: ${failed.map((page) => page.id).join(', ')}.`
@@ -1 +1 @@
1
- {"version":3,"file":"cli-package-command.js","sourceRoot":"","sources":["../src/cli-package-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-package-command.js","sourceRoot":"","sources":["../src/cli-package-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ type Fetch = typeof fetch;
2
+ export type AuthOnboardingLink = {
3
+ approvalUrl: string;
4
+ source: 'minted' | 'reused' | 'static';
5
+ };
6
+ export type PendingAuthOptions = {
7
+ origin?: string;
8
+ loginOrigin?: string;
9
+ fetch?: Fetch;
10
+ now?: () => number;
11
+ pendingFile?: string;
12
+ requestTimeoutMs?: number;
13
+ };
14
+ export declare const prepareAuthOnboardingLink: (options?: PendingAuthOptions) => Promise<AuthOnboardingLink>;
15
+ export declare const redeemPendingAuthOnce: (options?: PendingAuthOptions) => Promise<AuthOnboardingLink | {
16
+ authenticated: true;
17
+ }>;
18
+ export declare const runWithPendingAuthRedemption: <Result>(operation: () => Promise<Result>, options?: PendingAuthOptions) => Promise<Result>;
19
+ export {};
20
+ //# sourceMappingURL=cli-pending-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-pending-auth.d.ts","sourceRoot":"","sources":["../src/cli-pending-auth.ts"],"names":[],"mappings":"AAiBA,KAAK,KAAK,GAAG,OAAO,KAAK,CAAC;AAI1B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAkDF,eAAO,MAAM,yBAAyB,GACpC,UAAS,kBAAuB,KAC/B,OAAO,CAAC,kBAAkB,CAyC5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,UAAS,kBAAuB,KAC/B,OAAO,CAAC,kBAAkB,GAAG;IAAE,aAAa,EAAE,IAAI,CAAA;CAAE,CAmEtD,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAU,MAAM,EACvD,WAAW,MAAM,OAAO,CAAC,MAAM,CAAC,EAChC,UAAS,kBAAuB,KAC/B,OAAO,CAAC,MAAM,CAUhB,CAAC"}
@@ -0,0 +1,160 @@
1
+ import { MissingTwelveUiCredentialError, TWELVE_UI_CONNECT_CLI_URL } from './cli-auth-onboarding.js';
2
+ import { normalizeConversionOrigin } from './config.js';
3
+ import { storeRedeemedConversionCredentials } from './credential-setup.js';
4
+ import { createTwelveUiDeviceAuthorization, normalizeLoginOrigin, pollTwelveUiDeviceOnce, TWELVE_UI_DEVICE_SCOPES, } from './login-auth.js';
5
+ import { readPendingAuthorization, removePendingAuthorization, resolvePendingAuthFile, writePendingAuthorization, } from './pending-auth-store.js';
6
+ const AUTH_REQUEST_TIMEOUT_MS = 2_500;
7
+ const boundedFetch = (fetchImpl, timeoutMs) => (input, init = {}) => fetchImpl(input, {
8
+ ...init,
9
+ signal: init.signal ?? AbortSignal.timeout(timeoutMs),
10
+ });
11
+ const approvalUrlFor = (pending) => {
12
+ const url = new URL('/connect-cli', pending.connectOrigin);
13
+ url.searchParams.set('user_code', pending.userCode);
14
+ return url.toString();
15
+ };
16
+ const expectedOrigins = (options) => ({
17
+ connectOrigin: normalizeConversionOrigin(options.origin ?? process.env.TWELVE_UI_ORIGIN ?? 'https://12ui.com'),
18
+ loginOrigin: normalizeLoginOrigin(options.loginOrigin),
19
+ });
20
+ const matchesRequest = (pending, expected) => (pending.connectOrigin === expected.connectOrigin
21
+ && pending.loginOrigin === expected.loginOrigin
22
+ && pending.scopes.length === TWELVE_UI_DEVICE_SCOPES.length
23
+ && TWELVE_UI_DEVICE_SCOPES.every((scope) => pending.scopes.includes(scope)));
24
+ const staticLink = () => ({
25
+ approvalUrl: TWELVE_UI_CONNECT_CLI_URL,
26
+ source: 'static',
27
+ });
28
+ const discardUnreadablePending = async (pendingFile) => {
29
+ try {
30
+ await removePendingAuthorization(pendingFile);
31
+ }
32
+ catch {
33
+ // Rendering the static onboarding copy is safer than replacing the wrapped
34
+ // command's missing-credential failure with a local cleanup failure.
35
+ }
36
+ };
37
+ export const prepareAuthOnboardingLink = async (options = {}) => {
38
+ const pendingFile = options.pendingFile ?? resolvePendingAuthFile();
39
+ const now = options.now ?? Date.now;
40
+ try {
41
+ const expected = expectedOrigins(options);
42
+ let pending;
43
+ try {
44
+ pending = await readPendingAuthorization(pendingFile);
45
+ }
46
+ catch {
47
+ await discardUnreadablePending(pendingFile);
48
+ pending = null;
49
+ }
50
+ if (pending && matchesRequest(pending, expected) && pending.expiresAt > now()) {
51
+ return { approvalUrl: approvalUrlFor(pending), source: 'reused' };
52
+ }
53
+ if (pending)
54
+ await removePendingAuthorization(pendingFile);
55
+ const fetchImpl = boundedFetch(options.fetch ?? fetch, options.requestTimeoutMs ?? AUTH_REQUEST_TIMEOUT_MS);
56
+ const created = await createTwelveUiDeviceAuthorization({
57
+ loginOrigin: expected.loginOrigin,
58
+ clientName: '12ui CLI',
59
+ scopes: TWELVE_UI_DEVICE_SCOPES,
60
+ fetch: fetchImpl,
61
+ });
62
+ const record = {
63
+ version: 1,
64
+ deviceCode: created.authorization.deviceCode,
65
+ userCode: created.authorization.userCode,
66
+ expiresAt: created.authorization.expiresAt,
67
+ loginOrigin: created.loginOrigin,
68
+ connectOrigin: expected.connectOrigin,
69
+ scopes: created.scopes,
70
+ };
71
+ await writePendingAuthorization(record, pendingFile);
72
+ return { approvalUrl: approvalUrlFor(record), source: 'minted' };
73
+ }
74
+ catch {
75
+ return staticLink();
76
+ }
77
+ };
78
+ export const redeemPendingAuthOnce = async (options = {}) => {
79
+ const pendingFile = options.pendingFile ?? resolvePendingAuthFile();
80
+ const now = options.now ?? Date.now;
81
+ let pending;
82
+ try {
83
+ pending = await readPendingAuthorization(pendingFile);
84
+ }
85
+ catch {
86
+ await discardUnreadablePending(pendingFile);
87
+ return prepareAuthOnboardingLink(options);
88
+ }
89
+ if (!pending)
90
+ return prepareAuthOnboardingLink(options);
91
+ let expected;
92
+ try {
93
+ expected = expectedOrigins(options);
94
+ }
95
+ catch {
96
+ return staticLink();
97
+ }
98
+ if (!matchesRequest(pending, expected) || pending.expiresAt <= now()) {
99
+ try {
100
+ await removePendingAuthorization(pendingFile);
101
+ }
102
+ catch {
103
+ return staticLink();
104
+ }
105
+ return prepareAuthOnboardingLink(options);
106
+ }
107
+ const fetchImpl = boundedFetch(options.fetch ?? fetch, options.requestTimeoutMs ?? AUTH_REQUEST_TIMEOUT_MS);
108
+ let result;
109
+ try {
110
+ result = await pollTwelveUiDeviceOnce({
111
+ authorization: pending,
112
+ loginOrigin: pending.loginOrigin,
113
+ requiredScopes: pending.scopes,
114
+ fetch: fetchImpl,
115
+ });
116
+ }
117
+ catch {
118
+ return { approvalUrl: approvalUrlFor(pending), source: 'reused' };
119
+ }
120
+ if (result.status === 'pending') {
121
+ return { approvalUrl: approvalUrlFor(pending), source: 'reused' };
122
+ }
123
+ if (result.status === 'denied' || result.status === 'expired') {
124
+ try {
125
+ await removePendingAuthorization(pendingFile);
126
+ }
127
+ catch {
128
+ return staticLink();
129
+ }
130
+ return prepareAuthOnboardingLink(options);
131
+ }
132
+ try {
133
+ await storeRedeemedConversionCredentials({
134
+ credential: result.credential,
135
+ origin: pending.connectOrigin,
136
+ loginOrigin: pending.loginOrigin,
137
+ requiredScopes: pending.scopes,
138
+ fetch: fetchImpl,
139
+ });
140
+ await removePendingAuthorization(pendingFile);
141
+ return { authenticated: true };
142
+ }
143
+ catch {
144
+ return { approvalUrl: approvalUrlFor(pending), source: 'reused' };
145
+ }
146
+ };
147
+ export const runWithPendingAuthRedemption = async (operation, options = {}) => {
148
+ try {
149
+ return await operation();
150
+ }
151
+ catch (error) {
152
+ if (!(error instanceof MissingTwelveUiCredentialError))
153
+ throw error;
154
+ }
155
+ const redemption = await redeemPendingAuthOnce(options);
156
+ if ('authenticated' in redemption)
157
+ return operation();
158
+ throw new MissingTwelveUiCredentialError(redemption.approvalUrl);
159
+ };
160
+ //# sourceMappingURL=cli-pending-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-pending-auth.js","sourceRoot":"","sources":["../src/cli-pending-auth.ts"],"names":[],"mappings":"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"}