devflare 1.0.0-next.39 → 1.0.0-next.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 (277) hide show
  1. package/dist/_chunks/account-BtWcv3X9.js +462 -0
  2. package/dist/_chunks/account-resources-CsmVowJp.js +159 -0
  3. package/dist/_chunks/ai-CBEuLdoP.js +322 -0
  4. package/dist/_chunks/api-TzdliH-6.js +568 -0
  5. package/dist/_chunks/build-3T6O4uIg.js +24 -0
  6. package/dist/_chunks/build-artifacts-8TqBSQkG.js +483 -0
  7. package/dist/_chunks/cli-BTF1X4SG.js +1128 -0
  8. package/dist/_chunks/cloudflare-BaloqI3H.js +157 -0
  9. package/dist/_chunks/colors-DiK6wPJ5.js +13 -0
  10. package/dist/_chunks/command-utils-BsfkmTqh.js +45 -0
  11. package/dist/_chunks/compiler-uoyAQ8zW.js +424 -0
  12. package/dist/_chunks/config-D5u-bEkn.js +78 -0
  13. package/dist/_chunks/config-path-DCPto4XB.js +42 -0
  14. package/dist/_chunks/context-CX50Y2Kb.js +2250 -0
  15. package/dist/_chunks/decorators-QmV57ixr.js +19 -0
  16. package/dist/_chunks/dependencies-C2oxFjU_.js +57 -0
  17. package/dist/_chunks/deploy-DMTr6JeR.js +915 -0
  18. package/dist/_chunks/dev-CvRHmRFZ.js +3456 -0
  19. package/dist/_chunks/doctor-DIG8DoFU.js +219 -0
  20. package/dist/_chunks/durable-object-DMtH0XYX.js +234 -0
  21. package/dist/_chunks/env-S0_nMVz1.js +125 -0
  22. package/dist/_chunks/family-DXC5SdFK.js +143 -0
  23. package/dist/_chunks/generated-artifacts-dMJY4KAt.js +32 -0
  24. package/dist/_chunks/glob-CmQOvunB.js +56 -0
  25. package/dist/_chunks/init-3moXTgpb.js +165 -0
  26. package/dist/_chunks/loader-DLXO60RO.js +1153 -0
  27. package/dist/_chunks/local-dev-vars-CTSa-wvF.js +81 -0
  28. package/dist/_chunks/local-hyperdrive-CJ90j46O.js +119 -0
  29. package/dist/_chunks/local-media-bindings-DsAW4AMF.js +335 -0
  30. package/dist/_chunks/local-secrets-DMmEOygL.js +123 -0
  31. package/dist/_chunks/local-workflow-entrypoints-Wip3o1u8.js +90 -0
  32. package/dist/_chunks/login-BmnDzDlH.js +51 -0
  33. package/dist/_chunks/package-metadata-DAuCkyvK.js +39 -0
  34. package/dist/_chunks/preferences-BKp_7XJx.js +241 -0
  35. package/dist/_chunks/preview-BhqDmq8I.js +456 -0
  36. package/dist/_chunks/preview-registry-ClAbLTHH.js +1186 -0
  37. package/dist/_chunks/preview-resources-DdXj8LMM.js +358 -0
  38. package/dist/_chunks/previews-Dlr13x5M.js +1134 -0
  39. package/dist/_chunks/productions-D3AnOHac.js +411 -0
  40. package/dist/_chunks/ref-CYJNAAe_.js +178 -0
  41. package/dist/_chunks/remote-CZnP-HLJ.js +79 -0
  42. package/dist/_chunks/remote-config-D39BY9ji.js +132 -0
  43. package/dist/_chunks/resolve-package-Y84HB3Nt.js +133 -0
  44. package/dist/_chunks/rolldown-runtime-CvQ6eiug.js +14 -0
  45. package/dist/_chunks/routes-C3FqES2W.js +796 -0
  46. package/dist/_chunks/runtime-FvXvfuZ2.js +550 -0
  47. package/dist/_chunks/schema-normalization-DWVleVxo.js +477 -0
  48. package/dist/_chunks/secrets-70eN0Q6C.js +95 -0
  49. package/dist/_chunks/token-kguIDmej.js +333 -0
  50. package/dist/_chunks/tokens-iVcgNXi-.js +221 -0
  51. package/dist/_chunks/types-OrLbzv4I.js +476 -0
  52. package/dist/_chunks/ui-BUoZApvE.js +103 -0
  53. package/dist/_chunks/usage-BBTGzjon.js +272 -0
  54. package/dist/_chunks/vite-CsI0E-uV.js +1235 -0
  55. package/dist/_chunks/vite-utils-OVLMV605.js +183 -0
  56. package/dist/_chunks/worker-CS1jgNFE.js +410 -0
  57. package/dist/_chunks/worker-bundler-dTTnYU3n.js +458 -0
  58. package/dist/_chunks/worker-entrypoint-CQW77lG8.js +247 -0
  59. package/dist/_chunks/workerName-CFJsLZA-.js +23 -0
  60. package/dist/bridge/index.d.ts +6 -6
  61. package/dist/bridge/miniflare.d.ts +2 -2
  62. package/dist/bridge/proxy.d.ts +1 -1
  63. package/dist/bridge/v2/body-streams.d.ts +1 -1
  64. package/dist/bridge/v2/codec.d.ts +4 -4
  65. package/dist/bridge/v2/index.d.ts +10 -10
  66. package/dist/bridge/v2/serialization.d.ts +1 -1
  67. package/dist/bridge/v2/value-codec.d.ts +1 -1
  68. package/dist/bridge/v2/value-serialization.d.ts.map +1 -1
  69. package/dist/bridge/v2/ws-relay.d.ts +3 -3
  70. package/dist/browser-shim/index.d.ts +2 -2
  71. package/dist/browser.d.ts +70 -70
  72. package/dist/browser.js +74 -2462
  73. package/dist/bundler/do-bundler.d.ts +1 -1
  74. package/dist/bundler/index.d.ts +3 -3
  75. package/dist/bundler/rolldown-shared.d.ts +1 -1
  76. package/dist/bundler/worker-bundler.d.ts +1 -1
  77. package/dist/cli/build-manifest.d.ts +1 -1
  78. package/dist/cli/command-utils.d.ts +1 -1
  79. package/dist/cli/commands/account.d.ts +1 -1
  80. package/dist/cli/commands/ai.d.ts +1 -1
  81. package/dist/cli/commands/build-artifacts.d.ts +5 -5
  82. package/dist/cli/commands/build.d.ts +1 -1
  83. package/dist/cli/commands/config.d.ts +1 -1
  84. package/dist/cli/commands/deploy/prepare.d.ts +2 -2
  85. package/dist/cli/commands/deploy/runtime.d.ts +1 -1
  86. package/dist/cli/commands/deploy/verification.d.ts +1 -1
  87. package/dist/cli/commands/deploy.d.ts +1 -1
  88. package/dist/cli/commands/dev.d.ts +1 -1
  89. package/dist/cli/commands/doctor.d.ts +1 -1
  90. package/dist/cli/commands/init.d.ts +1 -1
  91. package/dist/cli/commands/login.d.ts +1 -1
  92. package/dist/cli/commands/previews-support/cleanup.d.ts +1 -1
  93. package/dist/cli/commands/previews-support/family.d.ts +3 -3
  94. package/dist/cli/commands/previews-support/render.d.ts +3 -3
  95. package/dist/cli/commands/previews-support/theme.d.ts +2 -2
  96. package/dist/cli/commands/previews-support/types.d.ts +2 -2
  97. package/dist/cli/commands/previews.d.ts +1 -1
  98. package/dist/cli/commands/productions.d.ts +1 -1
  99. package/dist/cli/commands/remote.d.ts +1 -1
  100. package/dist/cli/commands/secrets.d.ts +1 -1
  101. package/dist/cli/commands/token.d.ts +1 -1
  102. package/dist/cli/commands/type-generation/discovery.d.ts +2 -2
  103. package/dist/cli/commands/type-generation/generator.d.ts +3 -3
  104. package/dist/cli/commands/type-generation/models.d.ts +1 -1
  105. package/dist/cli/commands/types.d.ts +1 -1
  106. package/dist/cli/commands/worker.d.ts +1 -1
  107. package/dist/cli/deploy-strategy.d.ts +1 -1
  108. package/dist/cli/deploy-target.d.ts +1 -1
  109. package/dist/cli/help-pages/pages/account.d.ts +1 -1
  110. package/dist/cli/help-pages/pages/core.d.ts +1 -1
  111. package/dist/cli/help-pages/pages/index.d.ts +1 -1
  112. package/dist/cli/help-pages/pages/misc.d.ts +1 -1
  113. package/dist/cli/help-pages/pages/previews.d.ts +1 -1
  114. package/dist/cli/help-pages/pages/productions.d.ts +1 -1
  115. package/dist/cli/help-pages/render.d.ts +2 -2
  116. package/dist/cli/help-pages/shared.d.ts +1 -1
  117. package/dist/cli/help.d.ts +2 -2
  118. package/dist/cli/index.js +2 -1383
  119. package/dist/cli/preview-bindings.d.ts +3 -3
  120. package/dist/cli/preview.d.ts +1 -1
  121. package/dist/cli/wrangler-auth.d.ts +1 -1
  122. package/dist/cloudflare/account-core.d.ts +2 -2
  123. package/dist/cloudflare/account-resources.d.ts +2 -2
  124. package/dist/cloudflare/account-status.d.ts +1 -1
  125. package/dist/cloudflare/account-workers.d.ts +2 -2
  126. package/dist/cloudflare/account.d.ts +7 -7
  127. package/dist/cloudflare/auth.d.ts +1 -1
  128. package/dist/cloudflare/index.d.ts +13 -13
  129. package/dist/cloudflare/index.js +4 -59
  130. package/dist/cloudflare/kv-namespace.d.ts +1 -1
  131. package/dist/cloudflare/preview-registry-cache.d.ts +1 -1
  132. package/dist/cloudflare/preview-registry-inference.d.ts +2 -2
  133. package/dist/cloudflare/preview-registry-records.d.ts +3 -3
  134. package/dist/cloudflare/preview-registry-shape.d.ts +2 -2
  135. package/dist/cloudflare/preview-registry-store.d.ts +3 -3
  136. package/dist/cloudflare/preview-registry-transport.d.ts +2 -2
  137. package/dist/cloudflare/preview-registry-types.d.ts +2 -2
  138. package/dist/cloudflare/preview-registry.d.ts +5 -5
  139. package/dist/cloudflare/tokens.d.ts +2 -2
  140. package/dist/cloudflare/usage.d.ts +2 -2
  141. package/dist/config/binding-resolution-helpers.d.ts +1 -1
  142. package/dist/config/compiler/bindings.d.ts +2 -2
  143. package/dist/config/compiler/core-helpers.d.ts +2 -2
  144. package/dist/config/compiler/do-workers.d.ts +2 -2
  145. package/dist/config/compiler/paths.d.ts +1 -1
  146. package/dist/config/compiler.d.ts +6 -6
  147. package/dist/config/define.d.ts +2 -2
  148. package/dist/config/deploy-resources.d.ts +5 -5
  149. package/dist/config/env-vars.d.ts +1 -1
  150. package/dist/config/framework-providers.d.ts +1 -1
  151. package/dist/config/index.d.ts +12 -12
  152. package/dist/config/loader.d.ts +2 -2
  153. package/dist/config/local-dev-vars.d.ts +1 -1
  154. package/dist/config/preview-resources.d.ts +4 -4
  155. package/dist/config/preview.d.ts +1 -1
  156. package/dist/config/ref.d.ts +2 -2
  157. package/dist/config/resolve-phased.d.ts +4 -4
  158. package/dist/config/resolve.d.ts +1 -1
  159. package/dist/config/resource-resolution.d.ts +6 -6
  160. package/dist/config/schema-env.d.ts +20 -20
  161. package/dist/config/schema-normalization.d.ts +1 -1
  162. package/dist/config/schema-types-bindings.d.ts +4 -4
  163. package/dist/config/schema-types-build.d.ts +1 -1
  164. package/dist/config/schema-types.d.ts +7 -7
  165. package/dist/config/schema.d.ts +46 -46
  166. package/dist/config/service-bindings-validation.d.ts +1 -1
  167. package/dist/config-entry.d.ts +6 -6
  168. package/dist/config-entry.js +3 -8
  169. package/dist/decorators/index.d.ts +2 -2
  170. package/dist/decorators/index.js +2 -9
  171. package/dist/dev-server/d1-migrations.d.ts +1 -1
  172. package/dist/dev-server/dev-server-state.d.ts +6 -6
  173. package/dist/dev-server/gateway-script.d.ts +1 -1
  174. package/dist/dev-server/index.d.ts +1 -1
  175. package/dist/dev-server/miniflare-bindings.d.ts +1 -1
  176. package/dist/dev-server/miniflare-dev-config.d.ts +5 -5
  177. package/dist/dev-server/miniflare-worker-config.d.ts +3 -3
  178. package/dist/dev-server/server-startup-helpers.d.ts +6 -6
  179. package/dist/dev-server/worker-surface-paths.d.ts +2 -2
  180. package/dist/index.d.ts +8 -8
  181. package/dist/index.js +9 -22
  182. package/dist/runtime/context-events.d.ts +1 -1
  183. package/dist/runtime/context.d.ts +3 -3
  184. package/dist/runtime/exports.d.ts +2 -2
  185. package/dist/runtime/index.d.ts +10 -10
  186. package/dist/runtime/index.js +5 -57
  187. package/dist/runtime/middleware.d.ts +1 -1
  188. package/dist/runtime/router/index.d.ts +3 -3
  189. package/dist/runtime/validation.d.ts +1 -1
  190. package/dist/secrets/local-secrets.d.ts +1 -1
  191. package/dist/shims/local-media-bindings.d.ts +1 -1
  192. package/dist/sveltekit/index.d.ts +1 -1
  193. package/dist/sveltekit/index.js +327 -9
  194. package/dist/sveltekit/local-bindings.d.ts +1 -1
  195. package/dist/sveltekit/platform.d.ts +1 -1
  196. package/dist/test/binding-hints.d.ts +2 -2
  197. package/dist/test/cf.d.ts +19 -19
  198. package/dist/test/index.d.ts +18 -18
  199. package/dist/test/index.js +4495 -46
  200. package/dist/test/offline-bindings.d.ts +3 -3
  201. package/dist/test/resolve-service-bindings.d.ts +1 -1
  202. package/dist/test/simple-context-bindings.d.ts +1 -1
  203. package/dist/test/simple-context-durable-objects.d.ts +1 -1
  204. package/dist/test/simple-context-env.d.ts +2 -2
  205. package/dist/test/simple-context-handlers.d.ts +2 -2
  206. package/dist/test/simple-context-lifecycle.d.ts +2 -2
  207. package/dist/test/simple-context-mfconfig.d.ts +1 -1
  208. package/dist/test/simple-context-multi-worker.d.ts +2 -2
  209. package/dist/test/simple-context-runtime.d.ts +1 -1
  210. package/dist/test/simple-context-startup.d.ts +1 -1
  211. package/dist/test/simple-context.d.ts +1 -1
  212. package/dist/test/utilities/env.d.ts +3 -3
  213. package/dist/test/utilities.d.ts +10 -10
  214. package/dist/test/worker.d.ts +1 -1
  215. package/dist/transform/index.d.ts +2 -2
  216. package/dist/utils/send-email.js +163 -19
  217. package/dist/vite/config-file.d.ts +2 -2
  218. package/dist/vite/index.d.ts +3 -3
  219. package/dist/vite/index.js +2 -31
  220. package/dist/vite/plugin-config-hook.d.ts +1 -1
  221. package/dist/vite/plugin-context.d.ts +3 -3
  222. package/dist/vite/plugin-durable-objects.d.ts +2 -2
  223. package/dist/vite/plugin-programmatic.d.ts +1 -1
  224. package/dist/vite/plugin-service-bindings.d.ts +2 -2
  225. package/dist/vite/plugin.d.ts +3 -3
  226. package/dist/worker-entry/composed-worker.d.ts +1 -1
  227. package/dist/worker-entry/routes.d.ts +2 -2
  228. package/dist/worker-entry/surface-paths.d.ts +1 -1
  229. package/dist/workflows/local-workflow-entrypoints.d.ts +1 -1
  230. package/package.json +5 -3
  231. package/dist/account-4tgh03a8.js +0 -484
  232. package/dist/ai-r3zqmxan.js +0 -261
  233. package/dist/api-6z01z734.js +0 -33
  234. package/dist/build-kw625v84.js +0 -51
  235. package/dist/config-ghk2bxj3.js +0 -102
  236. package/dist/deploy-9kee65n9.js +0 -1062
  237. package/dist/dev-x8zr249a.js +0 -3569
  238. package/dist/doctor-0ng5qrr1.js +0 -258
  239. package/dist/durable-object-0ybmg08a.js +0 -13
  240. package/dist/index-04wh9bxx.js +0 -514
  241. package/dist/index-0cc05hzv.js +0 -74
  242. package/dist/index-2yv7w548.js +0 -185
  243. package/dist/index-37x76zdn.js +0 -4
  244. package/dist/index-3cpzsr47.js +0 -125
  245. package/dist/index-3t6rypgc.js +0 -13
  246. package/dist/index-4mmpccrb.js +0 -309
  247. package/dist/index-5dkjffqz.js +0 -25
  248. package/dist/index-5hy7jmv3.js +0 -890
  249. package/dist/index-627srx16.js +0 -45
  250. package/dist/index-7m557715.js +0 -283
  251. package/dist/index-a8pnvg3r.js +0 -52
  252. package/dist/index-aabgympv.js +0 -39
  253. package/dist/index-atwc3csp.js +0 -256
  254. package/dist/index-cv4cvrxe.js +0 -2046
  255. package/dist/index-h7r11y4a.js +0 -539
  256. package/dist/index-hvtd936d.js +0 -1229
  257. package/dist/index-kcp7y951.js +0 -136
  258. package/dist/index-maw0jjnn.js +0 -147
  259. package/dist/index-mek9msfv.js +0 -705
  260. package/dist/index-n4xkaymm.js +0 -236
  261. package/dist/index-nkk59p3y.js +0 -579
  262. package/dist/index-phcrvs6d.js +0 -342
  263. package/dist/index-se4kw8tm.js +0 -460
  264. package/dist/index-x8s9rwfh.js +0 -2020
  265. package/dist/index-y7w3x9p1.js +0 -18
  266. package/dist/index-z9gy8w6b.js +0 -57
  267. package/dist/index-zdd0d9qa.js +0 -199
  268. package/dist/init-tb8jqgvr.js +0 -180
  269. package/dist/login-4h1sfsed.js +0 -75
  270. package/dist/previews-qr7c5j8h.js +0 -1336
  271. package/dist/productions-xpmd6bw8.js +0 -505
  272. package/dist/remote-kqcvhnfx.js +0 -192
  273. package/dist/secrets-6wbdsdek.js +0 -89
  274. package/dist/token-yp1qa70y.js +0 -419
  275. package/dist/types-15yv4cj3.js +0 -701
  276. package/dist/worker-1yg72jxg.js +0 -510
  277. package/dist/worker-entrypoint-y8s9kdcx.js +0 -15
@@ -1,136 +0,0 @@
1
- import {
2
- normalizeSecretsStoreBinding
3
- } from "./index-x8s9rwfh.js";
4
-
5
- // src/secrets/local-secrets.ts
6
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
7
- import { dirname, join } from "node:path";
8
- var LOCAL_SECRETS_PATH = join(".devflare", "secrets.local.json");
9
- var LOCAL_SECRET_WRAPPED_BINDING_SCRIPT = `
10
- class LocalSecretsStoreSecret {
11
- constructor(env) {
12
- this.value = env.value
13
- }
14
-
15
- async get() {
16
- return this.value
17
- }
18
- }
19
-
20
- export default function makeBinding(env) {
21
- return new LocalSecretsStoreSecret(env)
22
- }
23
- `;
24
- function createEmptyLocalSecretsFile() {
25
- return {
26
- version: 1,
27
- stores: {}
28
- };
29
- }
30
- function getLocalSecretsFilePath(cwd) {
31
- return join(cwd, LOCAL_SECRETS_PATH);
32
- }
33
- function parseLocalSecretsFile(raw) {
34
- const parsed = JSON.parse(raw);
35
- if (parsed.version !== 1 || !parsed.stores || typeof parsed.stores !== "object") {
36
- return createEmptyLocalSecretsFile();
37
- }
38
- return {
39
- version: 1,
40
- stores: parsed.stores
41
- };
42
- }
43
- function readLocalSecretsFile(cwd) {
44
- const filePath = getLocalSecretsFilePath(cwd);
45
- if (!existsSync(filePath)) {
46
- return createEmptyLocalSecretsFile();
47
- }
48
- return parseLocalSecretsFile(readFileSync(filePath, "utf8"));
49
- }
50
- function writeLocalSecretsFile(cwd, file) {
51
- const filePath = getLocalSecretsFilePath(cwd);
52
- mkdirSync(dirname(filePath), { recursive: true });
53
- writeFileSync(filePath, `${JSON.stringify(file, null, "\t")}
54
- `, {
55
- encoding: "utf8",
56
- mode: 384
57
- });
58
- }
59
- function writeLocalSecret({ cwd, storeId, name, value }) {
60
- const file = readLocalSecretsFile(cwd);
61
- file.stores[storeId] ??= {};
62
- file.stores[storeId][name] = {
63
- value,
64
- updatedAt: new Date().toISOString()
65
- };
66
- writeLocalSecretsFile(cwd, file);
67
- }
68
- function readLocalSecret({ cwd, storeId, name }) {
69
- return readLocalSecretsFile(cwd).stores[storeId]?.[name]?.value;
70
- }
71
- function deleteLocalSecret({ cwd, storeId, name }) {
72
- const file = readLocalSecretsFile(cwd);
73
- const store = file.stores[storeId];
74
- if (!store || !(name in store)) {
75
- return false;
76
- }
77
- delete store[name];
78
- if (Object.keys(store).length === 0) {
79
- delete file.stores[storeId];
80
- }
81
- writeLocalSecretsFile(cwd, file);
82
- return true;
83
- }
84
- function listLocalSecrets({ cwd, storeId }) {
85
- const file = readLocalSecretsFile(cwd);
86
- const stores = storeId ? { [storeId]: file.stores[storeId] ?? {} } : file.stores;
87
- return Object.entries(stores).flatMap(([currentStoreId, secrets]) => Object.entries(secrets).map(([name, secret]) => ({
88
- storeId: currentStoreId,
89
- name,
90
- hasValue: typeof secret.value === "string",
91
- updatedAt: secret.updatedAt
92
- })));
93
- }
94
- function resolveLocalSecretValuesForBindings(config, cwd) {
95
- const values = {};
96
- for (const [bindingName, binding] of Object.entries(config.bindings?.secretsStore ?? {})) {
97
- const normalized = normalizeSecretsStoreBinding(binding, config.secretsStoreId, bindingName);
98
- const value = readLocalSecret({
99
- cwd,
100
- storeId: normalized.storeId,
101
- name: normalized.secretName
102
- });
103
- if (value !== undefined) {
104
- values[bindingName] = value;
105
- }
106
- }
107
- return values;
108
- }
109
- function toLocalSecretWorkerName(bindingName, index) {
110
- const slug = bindingName.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || "secret";
111
- return `devflare-local-secret-${index}-${slug}`;
112
- }
113
- function buildLocalSecretWrappedBindingConfig(config, cwd) {
114
- const values = resolveLocalSecretValuesForBindings(config, cwd);
115
- const entries = Object.entries(values);
116
- return {
117
- localBindingNames: entries.map(([bindingName]) => bindingName),
118
- wrappedBindings: Object.fromEntries(entries.map(([bindingName, value], index) => {
119
- const scriptName = toLocalSecretWorkerName(bindingName, index);
120
- return [
121
- bindingName,
122
- {
123
- scriptName,
124
- bindings: { value }
125
- }
126
- ];
127
- })),
128
- workers: entries.map(([bindingName], index) => ({
129
- name: toLocalSecretWorkerName(bindingName, index),
130
- modules: true,
131
- script: LOCAL_SECRET_WRAPPED_BINDING_SCRIPT
132
- }))
133
- };
134
- }
135
-
136
- export { writeLocalSecret, deleteLocalSecret, listLocalSecrets, buildLocalSecretWrappedBindingConfig };
@@ -1,147 +0,0 @@
1
- import {
2
- BOLD,
3
- CYAN,
4
- CYAN_BOLD,
5
- DIM,
6
- GREEN,
7
- RED,
8
- RESET,
9
- WHITE,
10
- YELLOW
11
- } from "./index-3t6rypgc.js";
12
-
13
- // src/cli/ui.ts
14
- var ANSI_REGEX = /\x1b\[[0-9;]*m/g;
15
- function createCliTheme(options = {}) {
16
- if (options["no-color"] === true) {
17
- return { useColor: false };
18
- }
19
- if (process.env.NO_COLOR?.trim()) {
20
- return { useColor: false };
21
- }
22
- if (process.env.TERM === "dumb") {
23
- return { useColor: false };
24
- }
25
- return {
26
- useColor: process.stdout?.isTTY === true
27
- };
28
- }
29
- function paint(value, code, theme) {
30
- return theme.useColor ? `${code}${value}${RESET}` : value;
31
- }
32
- function dim(value, theme) {
33
- return paint(value, DIM, theme);
34
- }
35
- function bold(value, theme) {
36
- return paint(value, BOLD, theme);
37
- }
38
- function cyan(value, theme) {
39
- return paint(value, CYAN, theme);
40
- }
41
- function cyanBold(value, theme) {
42
- return paint(value, CYAN_BOLD, theme);
43
- }
44
- function green(value, theme) {
45
- return paint(value, GREEN, theme);
46
- }
47
- function yellow(value, theme) {
48
- return paint(value, YELLOW, theme);
49
- }
50
- function yellowBold(value, theme) {
51
- return paint(value, `${BOLD}${YELLOW}`, theme);
52
- }
53
- function red(value, theme) {
54
- return paint(value, RED, theme);
55
- }
56
- function whiteDim(value, theme) {
57
- return paint(value, `${DIM}${WHITE}`, theme);
58
- }
59
- function accent(value, theme, kind = "cyan") {
60
- switch (kind) {
61
- case "yellow":
62
- return yellowBold(value, theme);
63
- case "green":
64
- return green(value, theme);
65
- case "red":
66
- return red(value, theme);
67
- case "dim":
68
- return dim(value, theme);
69
- case "bold":
70
- return bold(value, theme);
71
- case "white-dim":
72
- return whiteDim(value, theme);
73
- default:
74
- return cyanBold(value, theme);
75
- }
76
- }
77
- function logLine(logger, message = "") {
78
- logger.log(message);
79
- }
80
- function stripAnsi(value) {
81
- return value.replace(ANSI_REGEX, "");
82
- }
83
- function truncateCell(value, width) {
84
- if (value.length <= width) {
85
- return value;
86
- }
87
- if (width <= 1) {
88
- return "…";
89
- }
90
- return `${value.slice(0, width - 1)}…`;
91
- }
92
- function truncateStyledCell(value, width) {
93
- const plainValue = stripAnsi(value);
94
- if (plainValue.length <= width) {
95
- return value;
96
- }
97
- const truncatedPlainValue = truncateCell(plainValue, width);
98
- const prefixMatch = value.match(/^((?:\x1b\[[0-9;]*m)+)/);
99
- const suffixMatch = value.match(/((?:\x1b\[[0-9;]*m)+)$/);
100
- const prefix = prefixMatch?.[1] ?? "";
101
- const suffix = prefix ? RESET : suffixMatch?.[1] ?? "";
102
- return `${prefix}${truncatedPlainValue}${suffix}`;
103
- }
104
- function padStyledCell(value, width) {
105
- const truncatedValue = truncateStyledCell(value, width);
106
- const visibleLength = stripAnsi(truncatedValue).length;
107
- return `${truncatedValue}${" ".repeat(Math.max(width - visibleLength, 0))}`;
108
- }
109
- function formatTableLine(values, widths) {
110
- return values.map((value, index) => {
111
- const width = widths[index];
112
- if (width === undefined || index === values.length - 1) {
113
- return value;
114
- }
115
- return padStyledCell(value, width);
116
- }).join(" ");
117
- }
118
- function renderTable(rows, columns, theme) {
119
- if (rows.length === 0) {
120
- return [];
121
- }
122
- const widths = columns.map((column) => column.width);
123
- return [
124
- formatTableLine(columns.map((column) => dim(column.label, theme)), widths),
125
- ...rows.map((row) => formatTableLine(columns.map((column) => column.value(row)), widths))
126
- ];
127
- }
128
- function logTable(logger, options) {
129
- if (options.rows.length === 0) {
130
- return;
131
- }
132
- logLine(logger, `${accent(options.title, options.theme, options.titleAccent)} ${dim(`(${options.rows.length})`, options.theme)}`);
133
- for (const line of renderTable(options.rows, options.columns, options.theme)) {
134
- logLine(logger, line);
135
- }
136
- }
137
- function formatLabelValue(label, value, theme, labelWidth = 12) {
138
- return `${dim(label.padEnd(labelWidth), theme)} ${value}`;
139
- }
140
- function formatCommand(command, description, theme) {
141
- return ` ${cyan(command, theme)}${dim(" — ", theme)}${description}`;
142
- }
143
- function formatBullet(text, theme, bullet = "•") {
144
- return ` ${dim(bullet, theme)} ${text}`;
145
- }
146
-
147
- export { createCliTheme, dim, bold, cyan, cyanBold, green, yellow, yellowBold, red, whiteDim, accent, logLine, formatTableLine, logTable, formatLabelValue, formatCommand, formatBullet };