@cimplify/cli 0.15.3 → 0.17.0

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 (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -2
  3. package/dist/add-C3DPTVH3.mjs +140 -0
  4. package/dist/{add-KRIIKAS4.mjs → add-JX2GXWXU.mjs} +4 -4
  5. package/dist/ai-HUZTVJIQ.mjs +17 -0
  6. package/dist/{assets-CWB72PZG.mjs → assets-MPESJSUV.mjs} +12 -7
  7. package/dist/{auth-step-up-Z6KOTTV7.mjs → auth-step-up-VJAFGSW6.mjs} +5 -5
  8. package/dist/build-E7RRQWVF.mjs +616 -0
  9. package/dist/{cancel-ZHVVILOU.mjs → cancel-UMKR274A.mjs} +4 -4
  10. package/dist/capture-TK4NIUYM.mjs +69 -0
  11. package/dist/chunk-25ZPFHLF.mjs +51 -0
  12. package/dist/{chunk-OLZKNUMK.mjs → chunk-3LJG22FS.mjs} +6 -6
  13. package/dist/chunk-454RQ6NR.mjs +10614 -0
  14. package/dist/{chunk-O2TO2J4I.mjs → chunk-6CQMRZ2W.mjs} +2 -2
  15. package/dist/chunk-6KKLF5KG.mjs +32 -0
  16. package/dist/chunk-74QZQSCL.mjs +84 -0
  17. package/dist/chunk-BGM7CH5G.mjs +81 -0
  18. package/dist/chunk-BTNVYAC4.mjs +5557 -0
  19. package/dist/{chunk-I2UP7YTG.mjs → chunk-ECGDRU56.mjs} +1 -1
  20. package/dist/{chunk-UTD34C2H.mjs → chunk-EOOOXVHR.mjs} +2 -4
  21. package/dist/chunk-EYEMPIMP.mjs +74 -0
  22. package/dist/{chunk-3RPR33MO.mjs → chunk-FV273ECI.mjs} +11 -7
  23. package/dist/{chunk-MLE4MVYC.mjs → chunk-GGPN4QYQ.mjs} +2 -2
  24. package/dist/chunk-HQPZQIWW.mjs +1456 -0
  25. package/dist/{chunk-3QUK5BPY.mjs → chunk-I7GEHLDD.mjs} +16 -1
  26. package/dist/chunk-ITDAICBY.mjs +363 -0
  27. package/dist/chunk-JKECUAAV.mjs +2169 -0
  28. package/dist/chunk-JNCEKW2Y.mjs +41 -0
  29. package/dist/chunk-JTYVGORV.mjs +101 -0
  30. package/dist/chunk-KQNZKV6E.mjs +535 -0
  31. package/dist/chunk-LJDIQ4PF.mjs +6463 -0
  32. package/dist/{chunk-2MKZKUVH.mjs → chunk-LLRUOIMU.mjs} +1 -2
  33. package/dist/chunk-MJMRIMR7.mjs +86 -0
  34. package/dist/chunk-N2WZJX5P.mjs +1989 -0
  35. package/dist/chunk-NEB372WD.mjs +1152 -0
  36. package/dist/chunk-OPX7KPOU.mjs +68 -0
  37. package/dist/chunk-PHUBMRAS.mjs +623 -0
  38. package/dist/chunk-PQBALZUH.mjs +1941 -0
  39. package/dist/chunk-PVW5D5AW.mjs +42 -0
  40. package/dist/{chunk-LZEG3FEY.mjs → chunk-QQWYQ2HS.mjs} +7 -7
  41. package/dist/chunk-QVR6V6QP.mjs +46 -0
  42. package/dist/chunk-SGT5IJVW.mjs +28 -0
  43. package/dist/chunk-SZXO6YSX.mjs +502 -0
  44. package/dist/chunk-THATLMEX.mjs +1227 -0
  45. package/dist/chunk-TYR4Q37L.mjs +391 -0
  46. package/dist/{chunk-DMLQBAGC.mjs → chunk-V3R2NYQR.mjs} +1 -1
  47. package/dist/chunk-VHK7WBO3.mjs +189 -0
  48. package/dist/{chunk-TH4XENKH.mjs → chunk-XASDB7YS.mjs} +1 -1
  49. package/dist/{chunk-NYXA6X56.mjs → chunk-XBQ4LO2N.mjs} +31 -11
  50. package/dist/chunk-XF3MGADK.mjs +2946 -0
  51. package/dist/{chunk-5KYR6WJB.mjs → chunk-XQAHREKO.mjs} +17 -1
  52. package/dist/chunk-XZG3DTXV.mjs +696 -0
  53. package/dist/chunk-Y4YGR2NY.mjs +52 -0
  54. package/dist/{chunk-LJEKKFC7.mjs → chunk-YS2JUNSQ.mjs} +19 -11
  55. package/dist/chunk-ZG7NJLXN.mjs +104 -0
  56. package/dist/create-3TGG7B3X.mjs +10 -0
  57. package/dist/credits-MEG7V5DI.mjs +33 -0
  58. package/dist/{deploy-STWZ3OSM.mjs → deploy-CNRORHJ7.mjs} +11 -11
  59. package/dist/dev-RXSBY7U4.mjs +8 -0
  60. package/dist/dev-YLYC6B7R.mjs +401 -0
  61. package/dist/dispatcher.mjs +131 -30
  62. package/dist/{doctor-3RW3OGZJ.mjs → doctor-XRTNG2IT.mjs} +13 -21
  63. package/dist/{domains-FTNK4IKY.mjs → domains-JIHFKDWR.mjs} +6 -6
  64. package/dist/engine-runtime-fetch-QVKJVC3W.mjs +10 -0
  65. package/dist/{env-TNCYUAMT.mjs → env-LJ3DCAA5.mjs} +7 -7
  66. package/dist/env-R72AHBT2.mjs +19 -0
  67. package/dist/explain-32RSXEXC.mjs +251 -0
  68. package/dist/inspect-PYLYN45K.mjs +86 -0
  69. package/dist/{inspect-X3M7WSTL.mjs → inspect-ZOLZHNSZ.mjs} +28 -13
  70. package/dist/introspect-27MMTACH.mjs +9 -0
  71. package/dist/kernel-IC4ZC54Z.mjs +662 -0
  72. package/dist/kernel-plugin.js +6862 -0
  73. package/dist/keys-WKOQ4KQE.mjs +71 -0
  74. package/dist/lines-I6ZB2IOU.mjs +56 -0
  75. package/dist/{link-76Z6V6CJ.mjs → link-TE2FUX74.mjs} +6 -6
  76. package/dist/{lint-DDZ7HUQN.mjs → lint-735IPMC6.mjs} +2 -2
  77. package/dist/{list-2MFOQKKQ.mjs → list-CHYY2P4T.mjs} +7 -11
  78. package/dist/lock-XVR3RRZ6.mjs +57 -0
  79. package/dist/{login-RLMDEWAL.mjs → login-LW7CHZDZ.mjs} +10 -8
  80. package/dist/{logout-Z57X6HPE.mjs → logout-6U6OP5DM.mjs} +2 -2
  81. package/dist/{logs-TNDM4RFE.mjs → logs-HKH4H6PT.mjs} +5 -5
  82. package/dist/logs-SCQC5HNO.mjs +44 -0
  83. package/dist/mcp-VRHQOEGG.mjs +1077 -0
  84. package/dist/{mock-EVER34IX.mjs → mock-5H3CVPHC.mjs} +2 -2
  85. package/dist/outdated-T7QW6F3Z.mjs +58 -0
  86. package/dist/port-24R7ZNP4.mjs +2408 -0
  87. package/dist/{projects-YL4T24VV.mjs → projects-HYITVEXS.mjs} +6 -6
  88. package/dist/publish-DZRR5A5X.mjs +20 -0
  89. package/dist/remix-4HVXRIEB.mjs +125 -0
  90. package/dist/repo-FG3CMZQS.mjs +9 -0
  91. package/dist/report-M7F4ZYP7.mjs +2 -0
  92. package/dist/rollback-H7Q4XYGX.mjs +43 -0
  93. package/dist/{rollback-47VQ4HJK.mjs → rollback-OM64O67F.mjs} +6 -6
  94. package/dist/scene-QTHT3ZPL.mjs +324 -0
  95. package/dist/{status-TWPOMWNA.mjs → status-5D4RR3MM.mjs} +5 -5
  96. package/dist/status-AKI6E3JK.mjs +18 -0
  97. package/dist/test-W6MURUGZ.mjs +233 -0
  98. package/dist/testers-EI32JB5F.mjs +49 -0
  99. package/dist/{unlink-H3BO3DOQ.mjs → unlink-BND47IWW.mjs} +2 -2
  100. package/dist/{update-FLY46XI3.mjs → update-XKKFREKH.mjs} +4 -4
  101. package/dist/{whoami-CQPPARRS.mjs → whoami-WHLGCVRC.mjs} +3 -3
  102. package/dist/workshop-F2T4IDOU.mjs +1703 -0
  103. package/package.json +11 -7
  104. package/templates/storefront-auto/app/products/[slug]/page.tsx +1 -1
  105. package/templates/storefront-auto/package.json +1 -1
  106. package/templates/storefront-bakery/package.json +1 -1
  107. package/templates/storefront-fashion/app/products/[slug]/page.tsx +1 -1
  108. package/templates/storefront-fashion/package.json +1 -1
  109. package/templates/storefront-grocery/package.json +1 -1
  110. package/templates/storefront-pharmacy/app/products/[slug]/page.tsx +1 -1
  111. package/templates/storefront-pharmacy/package.json +1 -1
  112. package/templates/storefront-restaurant/package.json +1 -1
  113. package/templates/storefront-retail/app/products/[slug]/page.tsx +1 -1
  114. package/templates/storefront-retail/package.json +1 -1
  115. package/templates/storefront-services/package.json +1 -1
  116. package/dist/chunk-ARIDYKLO.mjs +0 -6463
  117. package/dist/dev-7O65HY6C.mjs +0 -8
  118. package/dist/explain-DLRUUCNS.mjs +0 -251
  119. package/dist/introspect-RC265ACF.mjs +0 -9
  120. package/dist/repo-UUT3AZ3L.mjs +0 -9
@@ -35,14 +35,13 @@ var DOMAIN_TYPE = {
35
35
  var SECRET_MASK = "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022";
36
36
  var PUBLIC_ENV_PREFIX = "NEXT_PUBLIC_";
37
37
  var REPO_PROVIDER = {
38
- FREESTYLE: "freestyle",
39
38
  CODE_STORAGE: "code_storage",
40
39
  GITHUB: "github",
41
40
  GITEA: "gitea",
42
41
  EXTERNAL: "external"
43
42
  };
44
43
  function isManagedRepoProvider(provider) {
45
- return provider === REPO_PROVIDER.FREESTYLE || provider === REPO_PROVIDER.CODE_STORAGE;
44
+ return provider === REPO_PROVIDER.CODE_STORAGE;
46
45
  }
47
46
  var REPO_PROVIDER_VALUES = new Set(Object.values(REPO_PROVIDER));
48
47
  var TOKEN_PURPOSE = {
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env node
2
+ import { sha256 } from './chunk-25ZPFHLF.mjs';
3
+ import { resolveBaseUrl, ApiClient } from './chunk-XBQ4LO2N.mjs';
4
+ import { readAuthOrNull } from './chunk-GGPN4QYQ.mjs';
5
+ import { CliError, CLI_ERROR_CODE } from './chunk-I7GEHLDD.mjs';
6
+ import { existsSync, readFileSync } from 'fs';
7
+ import path from 'path';
8
+
9
+ var CONTENT_REMOTE_ENV = "CIMPLIFY_CONTENT_REMOTE";
10
+ var CONTENT_FAKE_ROOT_ENV = "CIMPLIFY_CONTENT_FAKE_ROOT";
11
+ var FAKE_REMOTE = "fake";
12
+ var RESOLVE_PATH = "/v1/content/resolve";
13
+ var BLOB_PATH = "/v1/content/blobs/";
14
+ var RESOLUTION_FILE = "resolution.json";
15
+ var BLOB_DIR = "blobs";
16
+ var HttpContentRemote = class {
17
+ client;
18
+ baseUrl;
19
+ constructor(client, baseUrl) {
20
+ this.client = client;
21
+ this.baseUrl = baseUrl;
22
+ }
23
+ async resolve(items) {
24
+ const resolution = await this.client.post(RESOLVE_PATH, { items });
25
+ return resolution.versions;
26
+ }
27
+ async blob(digest) {
28
+ const url = new URL(`${BLOB_PATH}${digest}`, this.baseUrl).toString();
29
+ const response = await fetch(url);
30
+ if (!response.ok) {
31
+ throw new CliError(CLI_ERROR_CODE.NOT_FOUND, `Workshop has no blob ${digest} (HTTP ${response.status})`);
32
+ }
33
+ const bytes = Buffer.from(await response.arrayBuffer());
34
+ if (sha256(bytes) !== digest) {
35
+ throw new CliError(CLI_ERROR_CODE.NETWORK_ERROR, `the Workshop blob ${digest} did not match its digest`);
36
+ }
37
+ return bytes;
38
+ }
39
+ };
40
+ var DirectoryContentRemote = class {
41
+ root;
42
+ constructor(root) {
43
+ this.root = root;
44
+ }
45
+ async resolve(items) {
46
+ const file = path.join(this.root, RESOLUTION_FILE);
47
+ if (!existsSync(file)) throw new CliError(CLI_ERROR_CODE.NOT_FOUND, `the local Workshop at ${this.root} has no ${RESOLUTION_FILE}`);
48
+ const all = JSON.parse(readFileSync(file, "utf8"));
49
+ const wanted = new Set(items.map((i) => i.item));
50
+ const chosen = /* @__PURE__ */ new Map();
51
+ const queue = all.filter((v) => wanted.has(v.item));
52
+ for (const item of wanted) {
53
+ if (!queue.some((v) => v.item === item)) throw new CliError(CLI_ERROR_CODE.NOT_FOUND, `the local Workshop has no ${item}`);
54
+ }
55
+ while (queue.length > 0) {
56
+ const next = queue.shift();
57
+ if (chosen.has(next.item)) continue;
58
+ chosen.set(next.item, { ...next, requested: wanted.has(next.item) });
59
+ const manifest = JSON.parse((await this.blob(next.version_digest)).toString("utf8"));
60
+ for (const dependency of manifest.dependencies ?? []) {
61
+ const found = all.find((v) => v.version_digest === dependency.version_digest);
62
+ if (found !== void 0) queue.push(found);
63
+ }
64
+ }
65
+ return [...chosen.values()];
66
+ }
67
+ async blob(digest) {
68
+ const file = path.join(this.root, BLOB_DIR, digest);
69
+ if (!existsSync(file)) throw new CliError(CLI_ERROR_CODE.NOT_FOUND, `the local Workshop has no blob ${digest}`);
70
+ return readFileSync(file);
71
+ }
72
+ };
73
+ async function contentRemoteFromEnv() {
74
+ if (process.env[CONTENT_REMOTE_ENV] === FAKE_REMOTE) {
75
+ const root = process.env[CONTENT_FAKE_ROOT_ENV];
76
+ if (root === void 0 || root.length === 0) {
77
+ throw new CliError(CLI_ERROR_CODE.INVALID_INPUT, `${CONTENT_REMOTE_ENV}=${FAKE_REMOTE} needs ${CONTENT_FAKE_ROOT_ENV} to name a local Workshop directory`);
78
+ }
79
+ return new DirectoryContentRemote(root);
80
+ }
81
+ const auth = await readAuthOrNull();
82
+ const baseUrl = auth?.apiBaseUrl ?? resolveBaseUrl();
83
+ return new HttpContentRemote(auth === null ? ApiClient.unauthenticated(baseUrl) : ApiClient.fromAuth(auth), baseUrl);
84
+ }
85
+
86
+ export { contentRemoteFromEnv };