@take-out/cli 0.2.9 → 0.3.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 (114) hide show
  1. package/dist/cjs/cli.cjs +0 -0
  2. package/dist/esm/cli.mjs +0 -0
  3. package/dist/esm/index.js +1 -3
  4. package/dist/esm/index.js.map +1 -6
  5. package/package.json +7 -6
  6. package/src/commands/changed.ts +6 -6
  7. package/src/commands/onboard.ts +63 -63
  8. package/src/commands/run.ts +1 -1
  9. package/src/commands/script.ts +3 -3
  10. package/src/commands/skills.ts +6 -6
  11. package/src/commands/sync.ts +3 -3
  12. package/src/utils/env-setup.ts +8 -8
  13. package/src/utils/env.ts +3 -3
  14. package/src/utils/files.ts +6 -6
  15. package/src/utils/parallel-runner.ts +1 -1
  16. package/src/utils/prompts.ts +6 -6
  17. package/src/utils/script-listing.ts +5 -5
  18. package/src/utils/script-utils.ts +1 -1
  19. package/src/utils/sync.ts +1 -1
  20. package/src/withExpoModulesCoreSwift6Fix.cjs +58 -0
  21. package/dist/cjs/cli.js +0 -123
  22. package/dist/cjs/cli.js.map +0 -6
  23. package/dist/cjs/commands/changed.js +0 -214
  24. package/dist/cjs/commands/changed.js.map +0 -6
  25. package/dist/cjs/commands/docs.js +0 -174
  26. package/dist/cjs/commands/docs.js.map +0 -6
  27. package/dist/cjs/commands/env-setup.js +0 -78
  28. package/dist/cjs/commands/env-setup.js.map +0 -6
  29. package/dist/cjs/commands/onboard.js +0 -641
  30. package/dist/cjs/commands/onboard.js.map +0 -6
  31. package/dist/cjs/commands/run-all.js +0 -74
  32. package/dist/cjs/commands/run-all.js.map +0 -6
  33. package/dist/cjs/commands/run.js +0 -95
  34. package/dist/cjs/commands/run.js.map +0 -6
  35. package/dist/cjs/commands/script.js +0 -261
  36. package/dist/cjs/commands/script.js.map +0 -6
  37. package/dist/cjs/commands/skills.js +0 -168
  38. package/dist/cjs/commands/skills.js.map +0 -6
  39. package/dist/cjs/commands/sync.js +0 -187
  40. package/dist/cjs/commands/sync.js.map +0 -6
  41. package/dist/cjs/constants/ascii.js +0 -30
  42. package/dist/cjs/constants/ascii.js.map +0 -6
  43. package/dist/cjs/index.js +0 -21
  44. package/dist/cjs/index.js.map +0 -6
  45. package/dist/cjs/types.js +0 -14
  46. package/dist/cjs/types.js.map +0 -6
  47. package/dist/cjs/utils/env-categories.js +0 -296
  48. package/dist/cjs/utils/env-categories.js.map +0 -6
  49. package/dist/cjs/utils/env-setup.js +0 -190
  50. package/dist/cjs/utils/env-setup.js.map +0 -6
  51. package/dist/cjs/utils/env.js +0 -97
  52. package/dist/cjs/utils/env.js.map +0 -6
  53. package/dist/cjs/utils/files.js +0 -164
  54. package/dist/cjs/utils/files.js.map +0 -6
  55. package/dist/cjs/utils/parallel-runner.js +0 -113
  56. package/dist/cjs/utils/parallel-runner.js.map +0 -6
  57. package/dist/cjs/utils/ports.js +0 -81
  58. package/dist/cjs/utils/ports.js.map +0 -6
  59. package/dist/cjs/utils/prerequisites.js +0 -107
  60. package/dist/cjs/utils/prerequisites.js.map +0 -6
  61. package/dist/cjs/utils/prompts.js +0 -162
  62. package/dist/cjs/utils/prompts.js.map +0 -6
  63. package/dist/cjs/utils/script-listing.js +0 -97
  64. package/dist/cjs/utils/script-listing.js.map +0 -6
  65. package/dist/cjs/utils/script-utils.js +0 -82
  66. package/dist/cjs/utils/script-utils.js.map +0 -6
  67. package/dist/cjs/utils/sync.js +0 -70
  68. package/dist/cjs/utils/sync.js.map +0 -6
  69. package/dist/esm/cli.js +0 -106
  70. package/dist/esm/cli.js.map +0 -6
  71. package/dist/esm/commands/changed.js +0 -194
  72. package/dist/esm/commands/changed.js.map +0 -6
  73. package/dist/esm/commands/docs.js +0 -159
  74. package/dist/esm/commands/docs.js.map +0 -6
  75. package/dist/esm/commands/env-setup.js +0 -56
  76. package/dist/esm/commands/env-setup.js.map +0 -6
  77. package/dist/esm/commands/onboard.js +0 -655
  78. package/dist/esm/commands/onboard.js.map +0 -6
  79. package/dist/esm/commands/run-all.js +0 -53
  80. package/dist/esm/commands/run-all.js.map +0 -6
  81. package/dist/esm/commands/run.js +0 -74
  82. package/dist/esm/commands/run.js.map +0 -6
  83. package/dist/esm/commands/script.js +0 -255
  84. package/dist/esm/commands/script.js.map +0 -6
  85. package/dist/esm/commands/skills.js +0 -159
  86. package/dist/esm/commands/skills.js.map +0 -6
  87. package/dist/esm/commands/sync.js +0 -177
  88. package/dist/esm/commands/sync.js.map +0 -6
  89. package/dist/esm/constants/ascii.js +0 -14
  90. package/dist/esm/constants/ascii.js.map +0 -6
  91. package/dist/esm/types.js +0 -1
  92. package/dist/esm/types.js.map +0 -6
  93. package/dist/esm/utils/env-categories.js +0 -272
  94. package/dist/esm/utils/env-categories.js.map +0 -6
  95. package/dist/esm/utils/env-setup.js +0 -171
  96. package/dist/esm/utils/env-setup.js.map +0 -6
  97. package/dist/esm/utils/env.js +0 -83
  98. package/dist/esm/utils/env.js.map +0 -6
  99. package/dist/esm/utils/files.js +0 -150
  100. package/dist/esm/utils/files.js.map +0 -6
  101. package/dist/esm/utils/parallel-runner.js +0 -98
  102. package/dist/esm/utils/parallel-runner.js.map +0 -6
  103. package/dist/esm/utils/ports.js +0 -65
  104. package/dist/esm/utils/ports.js.map +0 -6
  105. package/dist/esm/utils/prerequisites.js +0 -91
  106. package/dist/esm/utils/prerequisites.js.map +0 -6
  107. package/dist/esm/utils/prompts.js +0 -139
  108. package/dist/esm/utils/prompts.js.map +0 -6
  109. package/dist/esm/utils/script-listing.js +0 -80
  110. package/dist/esm/utils/script-listing.js.map +0 -6
  111. package/dist/esm/utils/script-utils.js +0 -68
  112. package/dist/esm/utils/script-utils.js.map +0 -6
  113. package/dist/esm/utils/sync.js +0 -50
  114. package/dist/esm/utils/sync.js.map +0 -6
@@ -1,296 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: !0 });
9
- }, __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from == "object" || typeof from == "function")
11
- for (let key of __getOwnPropNames(from))
12
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- return to;
14
- };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
- mod
22
- )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
- var env_categories_exports = {};
24
- __export(env_categories_exports, {
25
- envCategories: () => envCategories,
26
- getAllVariables: () => getAllVariables,
27
- getCategoryById: () => getCategoryById,
28
- getOptionalCategories: () => getOptionalCategories,
29
- getRequiredCategories: () => getRequiredCategories,
30
- getVariableByKey: () => getVariableByKey
31
- });
32
- module.exports = __toCommonJS(env_categories_exports);
33
- var import_picocolors = __toESM(require("picocolors"), 1);
34
- const envCategories = [
35
- {
36
- id: "core",
37
- name: "Core Configuration",
38
- description: "Essential configuration for your production deployment",
39
- required: !0,
40
- variables: [
41
- {
42
- key: "BETTER_AUTH_SECRET",
43
- label: "Authentication Secret",
44
- description: "Secret key for session encryption and JWT signing",
45
- instructions: `Generate a secure random key:
46
- ${import_picocolors.default.cyan("openssl rand -hex 32")}`,
47
- required: !0,
48
- type: "secret",
49
- generator: () => require("node:crypto").randomBytes(32).toString("hex")
50
- },
51
- {
52
- key: "BETTER_AUTH_URL",
53
- label: "Authentication URL",
54
- description: "The public URL where your app will be hosted",
55
- instructions: "Enter your production domain (e.g., https://your-app.com)",
56
- required: !0,
57
- type: "text",
58
- placeholder: "https://your-app.com"
59
- },
60
- {
61
- key: "ONE_SERVER_URL",
62
- label: "Server URL",
63
- description: "The URL for your main server",
64
- instructions: "Usually the same as your authentication URL",
65
- required: !0,
66
- type: "text",
67
- placeholder: "https://your-app.com"
68
- },
69
- {
70
- key: "VITE_ZERO_HOSTNAME",
71
- label: "Zero Sync Server Host",
72
- description: "Hostname for real-time sync server",
73
- instructions: "Just the hostname, e.g., zero.your-app.com (https:// assumed in production)",
74
- required: !0,
75
- type: "text",
76
- placeholder: "zero.your-app.com"
77
- }
78
- ]
79
- },
80
- {
81
- id: "database",
82
- name: "Database (PostgreSQL)",
83
- description: "Production database configuration - set by deployment platform (SST/uncloud)",
84
- required: !1,
85
- variables: [
86
- // Note: ZERO_UPSTREAM_DB, ZERO_CVR_DB, and ZERO_CHANGE_DB are set dynamically
87
- // by the deployment platform (SST or uncloud) and should NOT be configured here
88
- ]
89
- },
90
- {
91
- id: "storage",
92
- name: "File Storage (S3/R2)",
93
- description: "Object storage for user uploads and media files",
94
- required: !1,
95
- variables: [
96
- {
97
- key: "CLOUDFLARE_R2_ENDPOINT",
98
- label: "Storage Endpoint",
99
- description: "S3-compatible storage endpoint",
100
- instructions: `Options:
101
- ${import_picocolors.default.cyan("Cloudflare R2")}: https://[account-id].r2.cloudflarestorage.com
102
- ${import_picocolors.default.cyan("AWS S3")}: https://s3.[region].amazonaws.com
103
- ${import_picocolors.default.cyan("DigitalOcean Spaces")}: https://[region].digitaloceanspaces.com`,
104
- required: !1,
105
- type: "text",
106
- placeholder: "https://account-id.r2.cloudflarestorage.com"
107
- },
108
- {
109
- key: "CLOUDFLARE_R2_ACCESS_KEY",
110
- label: "Storage Access Key",
111
- description: "Access key ID for your storage service",
112
- instructions: "Get this from your storage provider dashboard",
113
- required: !1,
114
- type: "text"
115
- },
116
- {
117
- key: "CLOUDFLARE_R2_SECRET_KEY",
118
- label: "Storage Secret Key",
119
- description: "Secret access key for your storage service",
120
- instructions: "Keep this secure - it provides full access to your storage",
121
- required: !1,
122
- type: "secret"
123
- },
124
- {
125
- key: "CLOUDFLARE_R2_PUBLIC_URL",
126
- label: "Public Storage URL",
127
- description: "Public URL for serving stored files",
128
- instructions: "Usually a CDN URL or custom domain pointing to your bucket",
129
- required: !1,
130
- type: "text",
131
- placeholder: "https://cdn.your-app.com"
132
- }
133
- ]
134
- },
135
- {
136
- id: "apple",
137
- name: "Apple App Store",
138
- description: "Configuration for iOS app and push notifications",
139
- required: !1,
140
- variables: [
141
- {
142
- key: "APNS_TEAM_ID",
143
- label: "Apple Team ID",
144
- description: "Your Apple Developer Team ID",
145
- instructions: `Find in Apple Developer Portal:
146
- 1. Go to ${import_picocolors.default.cyan("https://developer.apple.com/account")}
147
- 2. Look for "Team ID" in Membership Details`,
148
- required: !1,
149
- type: "text",
150
- placeholder: "XXXXXXXXXX"
151
- },
152
- {
153
- key: "APNS_KEY_ID",
154
- label: "APNs Key ID",
155
- description: "Push notification authentication key ID",
156
- instructions: `Create in Apple Developer Portal:
157
- 1. Go to Certificates, Identifiers & Profiles
158
- 2. Keys \u2192 Create a Key
159
- 3. Check "Apple Push Notifications service (APNs)"
160
- 4. Download the .p8 file and note the Key ID`,
161
- required: !1,
162
- type: "text",
163
- placeholder: "XXXXXXXXXX"
164
- },
165
- {
166
- key: "APNS_KEY",
167
- label: "APNs Key Content",
168
- description: "Contents of your APNs .p8 key file",
169
- instructions: "Paste the entire contents of the .p8 file you downloaded",
170
- required: !1,
171
- type: "multiline"
172
- },
173
- {
174
- key: "APNS_ENDPOINT",
175
- label: "APNs Endpoint",
176
- description: "Apple Push Notification service endpoint",
177
- instructions: `Production: ${import_picocolors.default.green("https://api.push.apple.com")}
178
- Sandbox: ${import_picocolors.default.yellow("https://api.sandbox.push.apple.com")}`,
179
- required: !1,
180
- type: "text",
181
- default: "https://api.push.apple.com"
182
- }
183
- ]
184
- },
185
- {
186
- id: "email",
187
- name: "Email Service",
188
- description: "Transactional email configuration",
189
- required: !1,
190
- variables: [
191
- {
192
- key: "POSTMARK_SERVER_TOKEN",
193
- label: "Postmark Server Token",
194
- description: "API token for sending emails via Postmark",
195
- instructions: `Get your token:
196
- 1. Sign up at ${import_picocolors.default.cyan("https://postmarkapp.com")}
197
- 2. Create a Server
198
- 3. Go to Servers \u2192 API Tokens
199
- 4. Copy your Server API Token
200
-
201
- ${import_picocolors.default.yellow("Note: Free tier includes 100 emails/month")}`,
202
- required: !1,
203
- type: "text"
204
- }
205
- ]
206
- },
207
- {
208
- id: "github",
209
- name: "GitHub OAuth",
210
- description: "Enable GitHub sign-in for your app",
211
- required: !1,
212
- variables: [
213
- {
214
- key: "ONECHAT_GITHUB_CLIENT_ID",
215
- label: "GitHub OAuth Client ID",
216
- description: "Client ID for GitHub OAuth application",
217
- instructions: `Create GitHub OAuth App:
218
- 1. Go to ${import_picocolors.default.cyan("https://github.com/settings/developers")}
219
- 2. New OAuth App
220
- 3. Set Authorization callback URL:
221
- ${import_picocolors.default.green("https://your-app.com/api/auth/callback/github")}
222
- 4. Copy the Client ID`,
223
- required: !1,
224
- type: "text"
225
- },
226
- {
227
- key: "ONECHAT_GITHUB_CLIENT_SECRET",
228
- label: "GitHub OAuth Client Secret",
229
- description: "Client secret for GitHub OAuth application",
230
- instructions: "Copy the Client Secret from your GitHub OAuth App settings",
231
- required: !1,
232
- type: "secret"
233
- }
234
- ]
235
- },
236
- {
237
- id: "aws",
238
- name: "AWS Deployment",
239
- description: "AWS credentials for SST deployment",
240
- required: !1,
241
- setupTime: "~30 minutes",
242
- variables: [
243
- {
244
- key: "AWS_ACCESS_KEY_ID",
245
- label: "AWS Access Key ID",
246
- description: "Access key for AWS deployment",
247
- instructions: `${import_picocolors.default.yellow("\u26A0\uFE0F Setting up AWS takes about 30 minutes")}
248
-
249
- Follow the SST guide for AWS setup:
250
- ${import_picocolors.default.cyan("https://sst.dev/docs/aws-accounts/")}
251
-
252
- Quick steps:
253
- 1. Create AWS account or use existing
254
- 2. Create IAM user with AdministratorAccess
255
- 3. Generate access keys
256
- 4. Copy Access Key ID`,
257
- required: !1,
258
- type: "text"
259
- },
260
- {
261
- key: "AWS_SECRET_ACCESS_KEY",
262
- label: "AWS Secret Access Key",
263
- description: "Secret key for AWS deployment",
264
- instructions: "Copy the Secret Access Key from IAM user creation",
265
- required: !1,
266
- type: "secret"
267
- },
268
- {
269
- key: "AWS_REGION",
270
- label: "AWS Region",
271
- description: "AWS region for deployment",
272
- instructions: "Choose a region close to your users (e.g., us-west-1, us-east-1, eu-west-1)",
273
- required: !1,
274
- type: "text",
275
- default: "us-west-1",
276
- placeholder: "us-west-1"
277
- }
278
- ]
279
- }
280
- ];
281
- function getCategoryById(id) {
282
- return envCategories.find((cat) => cat.id === id);
283
- }
284
- function getRequiredCategories() {
285
- return envCategories.filter((cat) => cat.required);
286
- }
287
- function getOptionalCategories() {
288
- return envCategories.filter((cat) => !cat.required);
289
- }
290
- function getAllVariables() {
291
- return envCategories.flatMap((cat) => cat.variables);
292
- }
293
- function getVariableByKey(key) {
294
- return getAllVariables().find((v) => v.key === key);
295
- }
296
- //# sourceMappingURL=env-categories.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/utils/env-categories.ts"],
4
- "mappings": "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",
5
- "names": ["pc"]
6
- }
@@ -1,190 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: !0 });
9
- }, __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from == "object" || typeof from == "function")
11
- for (let key of __getOwnPropNames(from))
12
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- return to;
14
- };
15
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
- // If the importer is in node compatibility mode or this is not an ESM
17
- // file that has been converted to a CommonJS file using a Babel-
18
- // compatible transform (i.e. "__esModule" has not been set), then set
19
- // "default" to the CommonJS "module.exports" for node compatibility.
20
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
21
- mod
22
- )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
23
- var env_setup_exports = {};
24
- __export(env_setup_exports, {
25
- listCategories: () => listCategories,
26
- setupProductionEnv: () => setupProductionEnv
27
- });
28
- module.exports = __toCommonJS(env_setup_exports);
29
- var import_node_fs = require("node:fs"), import_node_path = require("node:path"), clack = __toESM(require("@clack/prompts"), 1), import_picocolors = __toESM(require("picocolors"), 1), import_env = require("./env"), import_env_categories = require("./env-categories");
30
- async function setupProductionEnv(cwd, options = {}) {
31
- const envFile = options.envFile || ".env.production", fullPath = (0, import_node_path.resolve)(cwd, envFile), cleanup = () => {
32
- console.info(`
33
- ` + import_picocolors.default.yellow("Setup interrupted. You can resume anytime with:")), console.info(import_picocolors.default.cyan(" bun takeout env:setup")), console.info(
34
- import_picocolors.default.gray(`
35
- Note: All environment variables are optional for local development.`)
36
- ), process.exit(0);
37
- };
38
- process.on("SIGINT", cleanup), process.on("SIGTERM", cleanup);
39
- try {
40
- if (clack.intro(import_picocolors.default.bgCyan(import_picocolors.default.black(" Production Environment Setup "))), console.info(import_picocolors.default.gray("All environment variables are optional.")), console.info(import_picocolors.default.gray(`You can skip any section or re-run this setup anytime.
41
- `)), !(0, import_env.envFileExists)(cwd, envFile)) {
42
- const createFile = await clack.confirm({
43
- message: `${envFile} doesn't exist. Create it from example?`,
44
- initialValue: !0
45
- });
46
- if (clack.isCancel(createFile) || !createFile)
47
- return clack.cancel("Setup cancelled"), process.removeListener("SIGINT", cleanup), process.removeListener("SIGTERM", cleanup), !1;
48
- const exampleFile = ".env.production.example";
49
- (0, import_env.envFileExists)(cwd, exampleFile) ? ((0, import_env.copyEnvFile)(cwd, exampleFile, envFile), console.info(import_picocolors.default.green(`\u2713 Created ${envFile} from example
50
- `))) : ((0, import_node_fs.writeFileSync)(fullPath, `# Production Environment Variables
51
- `), console.info(import_picocolors.default.green(`\u2713 Created empty ${envFile}
52
- `)));
53
- }
54
- let categoriesToSetup = options.onlyCategory ? import_env_categories.envCategories.filter((cat) => cat.id === options.onlyCategory) : import_env_categories.envCategories;
55
- if (categoriesToSetup.length === 0)
56
- return clack.cancel(`Category "${options.onlyCategory}" not found`), process.removeListener("SIGINT", cleanup), process.removeListener("SIGTERM", cleanup), !1;
57
- if (options.interactive !== !1 && !options.onlyCategory) {
58
- const setupProd = await clack.confirm({
59
- message: "Do you want to set up production environment variables?",
60
- initialValue: !1
61
- });
62
- if (clack.isCancel(setupProd) || !setupProd)
63
- return clack.note(
64
- `You can set up production environment later with:
65
- ${import_picocolors.default.cyan("bun takeout env:setup")}`,
66
- import_picocolors.default.yellow("Skipping production setup")
67
- ), process.removeListener("SIGINT", cleanup), process.removeListener("SIGTERM", cleanup), !0;
68
- }
69
- for (const category of categoriesToSetup)
70
- await setupCategory(category, envFile, cwd, options);
71
- const configuredVars = [], skippedVars = [];
72
- for (const category of categoriesToSetup)
73
- for (const variable of category.variables) {
74
- const value = (0, import_env.readEnvVariable)(cwd, variable.key, envFile);
75
- value && value !== "" && !value.includes("your-") ? configuredVars.push(variable.key) : variable.required && skippedVars.push(variable.key);
76
- }
77
- return configuredVars.length > 0 ? (clack.outro(import_picocolors.default.green("\u2713 Environment setup complete!")), console.info(
78
- import_picocolors.default.gray(`
79
- Configured ${configuredVars.length} variables in ${envFile}`)
80
- ), skippedVars.length > 0 && (console.info(
81
- import_picocolors.default.yellow(
82
- `
83
- Note: Some required variables were skipped. You'll need to configure these before deploying:`
84
- )
85
- ), skippedVars.forEach((v) => console.info(import_picocolors.default.gray(` - ${v}`)))), console.info(import_picocolors.default.cyan(`
86
- You can re-run this setup anytime with:`)), console.info(import_picocolors.default.gray(" bun takeout env:setup")), console.info(import_picocolors.default.cyan(`
87
- Or set up specific categories:`)), console.info(import_picocolors.default.gray(" bun takeout env:setup --category aws")), console.info(import_picocolors.default.gray(" bun takeout env:setup --category apple"))) : (clack.outro(import_picocolors.default.yellow("No variables configured")), console.info(import_picocolors.default.gray(`
88
- You can re-run this setup anytime with:`)), console.info(import_picocolors.default.gray(" bun takeout env:setup"))), process.removeListener("SIGINT", cleanup), process.removeListener("SIGTERM", cleanup), !0;
89
- } catch (error) {
90
- if (process.removeListener("SIGINT", cleanup), process.removeListener("SIGTERM", cleanup), error instanceof Error && error.message.includes("cancelled"))
91
- return !1;
92
- throw error;
93
- }
94
- }
95
- async function setupCategory(category, envFile, cwd, options) {
96
- const spinner = clack.spinner();
97
- let message = `Set up ${import_picocolors.default.bold(category.name)}?`;
98
- category.required || (message += import_picocolors.default.gray(" (optional)")), category.setupTime && (message += import_picocolors.default.yellow(` ${category.setupTime}`)), console.info("");
99
- const setupCategory2 = await clack.confirm({
100
- message,
101
- initialValue: category.required
102
- });
103
- if (clack.isCancel(setupCategory2) || !setupCategory2)
104
- return console.info(import_picocolors.default.gray(` Skipping ${category.name}`)), !1;
105
- console.info(import_picocolors.default.gray(`
106
- ${category.description}
107
- `));
108
- for (const variable of category.variables)
109
- await setupVariable(variable, envFile, cwd);
110
- return !0;
111
- }
112
- async function setupVariable(variable, envFile, cwd) {
113
- const existingValue = (0, import_env.readEnvVariable)(cwd, variable.key, envFile), hasValue = existingValue && existingValue !== "" && !existingValue.includes("your-");
114
- if (console.info(""), console.info(import_picocolors.default.bold(variable.label)), console.info(import_picocolors.default.gray(variable.description)), hasValue) {
115
- const update = await clack.confirm({
116
- message: `${import_picocolors.default.green("\u2713")} Already configured. Update?`,
117
- initialValue: !1
118
- });
119
- if (clack.isCancel(update) || !update)
120
- return;
121
- }
122
- console.info(""), console.info(import_picocolors.default.cyan("Instructions:")), variable.instructions.split(`
123
- `).forEach((line) => {
124
- console.info(import_picocolors.default.gray(` ${line}`));
125
- }), console.info("");
126
- let value;
127
- if (variable.generator) {
128
- const generate = await clack.confirm({
129
- message: `Generate ${variable.label} automatically?`,
130
- initialValue: !0
131
- });
132
- !clack.isCancel(generate) && generate && (value = variable.generator(), console.info(import_picocolors.default.green(`\u2713 Generated ${variable.label}`)));
133
- }
134
- if (!value)
135
- if (variable.type === "multiline")
136
- console.info(import_picocolors.default.gray("Paste content (press Enter twice when done):")), value = await readMultilineInput();
137
- else if (variable.type === "secret") {
138
- const result = await clack.password({
139
- message: `Enter ${variable.label}:`,
140
- mask: "*"
141
- });
142
- clack.isCancel(result) || (value = result);
143
- } else {
144
- const result = await clack.text({
145
- message: `Enter ${variable.label}:`,
146
- placeholder: variable.placeholder,
147
- defaultValue: variable.default,
148
- validate: (val) => {
149
- if (variable.required && !val)
150
- return "This field is required";
151
- }
152
- });
153
- clack.isCancel(result) || (value = result);
154
- }
155
- value && !clack.isCancel(value) ? ((0, import_env.updateEnvVariable)(cwd, variable.key, value, envFile), console.info(import_picocolors.default.green(`\u2713 Saved ${variable.key}`))) : variable.required ? console.info(import_picocolors.default.yellow(`\u26A0 Skipped required variable: ${variable.key}`)) : console.info(import_picocolors.default.gray(` Skipped ${variable.key}`));
156
- }
157
- async function readMultilineInput() {
158
- return new Promise((resolve2) => {
159
- const lines = [];
160
- let emptyLineCount = 0;
161
- const reader = process.stdin;
162
- reader.setEncoding("utf8");
163
- const onData = (chunk) => {
164
- const chunkLines = chunk.split(`
165
- `);
166
- for (const line of chunkLines)
167
- if (line === "") {
168
- if (emptyLineCount++, emptyLineCount >= 2) {
169
- reader.removeListener("data", onData), resolve2(lines.join(`
170
- `));
171
- return;
172
- }
173
- } else
174
- emptyLineCount === 1 && lines.push(""), emptyLineCount = 0, lines.push(line);
175
- };
176
- reader.on("data", onData);
177
- });
178
- }
179
- function listCategories() {
180
- console.info(import_picocolors.default.bold(`
181
- Available environment categories:
182
- `));
183
- for (const category of import_env_categories.envCategories) {
184
- const status = category.required ? import_picocolors.default.red("required") : import_picocolors.default.gray("optional");
185
- console.info(` ${import_picocolors.default.cyan(category.id.padEnd(12))} - ${category.name} ${status}`), console.info(` ${import_picocolors.default.gray(category.description)}`), category.setupTime && console.info(` ${import_picocolors.default.yellow(category.setupTime)}`), console.info("");
186
- }
187
- console.info(import_picocolors.default.gray("Run setup for a specific category:")), console.info(import_picocolors.default.cyan(` bun takeout env:setup --category <id>
188
- `));
189
- }
190
- //# sourceMappingURL=env-setup.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/utils/env-setup.ts"],
4
- "mappings": "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",
5
- "names": ["pc", "setupCategory", "resolve"]
6
- }
@@ -1,97 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: !0 });
8
- }, __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from == "object" || typeof from == "function")
10
- for (let key of __getOwnPropNames(from))
11
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- return to;
13
- };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
- var env_exports = {};
16
- __export(env_exports, {
17
- copyEnvFile: () => copyEnvFile,
18
- createEnvLocal: () => createEnvLocal,
19
- envFileExists: () => envFileExists,
20
- generateSecret: () => generateSecret,
21
- readEnvVariable: () => readEnvVariable,
22
- updateEnvVariable: () => updateEnvVariable
23
- });
24
- module.exports = __toCommonJS(env_exports);
25
- var import_node_crypto = require("node:crypto"), import_node_fs = require("node:fs"), import_node_path = require("node:path");
26
- function generateSecret(length = 32) {
27
- return (0, import_node_crypto.randomBytes)(length).toString("hex");
28
- }
29
- function envFileExists(cwd, filename = ".env") {
30
- return (0, import_node_fs.existsSync)((0, import_node_path.join)(cwd, filename));
31
- }
32
- function copyEnvFile(cwd, source, target) {
33
- const sourcePath = (0, import_node_path.join)(cwd, source), targetPath = (0, import_node_path.join)(cwd, target);
34
- if (!(0, import_node_fs.existsSync)(sourcePath))
35
- return { success: !1, error: `Source file ${source} not found` };
36
- if ((0, import_node_fs.existsSync)(targetPath))
37
- return { success: !1, error: `Target file ${target} already exists` };
38
- try {
39
- return (0, import_node_fs.copyFileSync)(sourcePath, targetPath), { success: !0 };
40
- } catch (error) {
41
- return {
42
- success: !1,
43
- error: error instanceof Error ? error.message : "Unknown error"
44
- };
45
- }
46
- }
47
- function updateEnvVariable(cwd, key, value, filename = ".env") {
48
- const envPath = (0, import_node_path.join)(cwd, filename);
49
- if (!(0, import_node_fs.existsSync)(envPath))
50
- return { success: !1, error: `${filename} not found` };
51
- try {
52
- let content = (0, import_node_fs.readFileSync)(envPath, "utf-8");
53
- const keyRegex = new RegExp(`^${key}=.*$`, "m");
54
- return keyRegex.test(content) ? content = content.replace(keyRegex, `${key}=${value}`) : content = content.trimEnd() + `
55
- ${key}=${value}
56
- `, (0, import_node_fs.writeFileSync)(envPath, content, "utf-8"), { success: !0 };
57
- } catch (error) {
58
- return {
59
- success: !1,
60
- error: error instanceof Error ? error.message : "Unknown error"
61
- };
62
- }
63
- }
64
- function createEnvLocal(cwd) {
65
- const envLocalPath = (0, import_node_path.join)(cwd, ".env.local");
66
- if ((0, import_node_fs.existsSync)(envLocalPath))
67
- return { success: !0 };
68
- const template = `# Local environment overrides
69
- # This file is gitignored and never committed
70
- # Add your personal secrets and local configuration here
71
- # These values override .env
72
-
73
- # Example:
74
- # BETTER_AUTH_SECRET=your-secret-here
75
- # AWS_ACCESS_KEY_ID=your-key-here
76
- `;
77
- try {
78
- return (0, import_node_fs.writeFileSync)(envLocalPath, template, "utf-8"), { success: !0 };
79
- } catch (error) {
80
- return {
81
- success: !1,
82
- error: error instanceof Error ? error.message : "Unknown error"
83
- };
84
- }
85
- }
86
- function readEnvVariable(cwd, key, filename = ".env") {
87
- const envPath = (0, import_node_path.join)(cwd, filename);
88
- if (!(0, import_node_fs.existsSync)(envPath))
89
- return null;
90
- try {
91
- const content = (0, import_node_fs.readFileSync)(envPath, "utf-8"), keyRegex = new RegExp(`^${key}=(.*)$`, "m");
92
- return content.match(keyRegex)?.[1]?.trim().replace(/^["']|["']$/g, "") || null;
93
- } catch {
94
- return null;
95
- }
96
- }
97
- //# sourceMappingURL=env.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/utils/env.ts"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,yBAA4B,wBAC5B,iBAAsE,oBACtE,mBAAqB;AAEd,SAAS,eAAe,SAAS,IAAY;AAClD,aAAO,gCAAY,MAAM,EAAE,SAAS,KAAK;AAC3C;AAEO,SAAS,cAAc,KAAa,WAAW,QAAiB;AACrE,aAAO,+BAAW,uBAAK,KAAK,QAAQ,CAAC;AACvC;AAEO,SAAS,YACd,KACA,QACA,QACsC;AACtC,QAAM,iBAAa,uBAAK,KAAK,MAAM,GAC7B,iBAAa,uBAAK,KAAK,MAAM;AAEnC,MAAI,KAAC,2BAAW,UAAU;AACxB,WAAO,EAAE,SAAS,IAAO,OAAO,eAAe,MAAM,aAAa;AAGpE,UAAI,2BAAW,UAAU;AACvB,WAAO,EAAE,SAAS,IAAO,OAAO,eAAe,MAAM,kBAAkB;AAGzE,MAAI;AACF,4CAAa,YAAY,UAAU,GAC5B,EAAE,SAAS,GAAK;AAAA,EACzB,SAAS,OAAO;AACd,WAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,IAClD;AAAA,EACF;AACF;AAEO,SAAS,kBACd,KACA,KACA,OACA,WAAW,QAC2B;AACtC,QAAM,cAAU,uBAAK,KAAK,QAAQ;AAElC,MAAI,KAAC,2BAAW,OAAO;AACrB,WAAO,EAAE,SAAS,IAAO,OAAO,GAAG,QAAQ,aAAa;AAG1D,MAAI;AACF,QAAI,cAAU,6BAAa,SAAS,OAAO;AAG3C,UAAM,WAAW,IAAI,OAAO,IAAI,GAAG,QAAQ,GAAG;AAE9C,WAAI,SAAS,KAAK,OAAO,IAEvB,UAAU,QAAQ,QAAQ,UAAU,GAAG,GAAG,IAAI,KAAK,EAAE,IAGrD,UAAU,QAAQ,QAAQ,IAAI;AAAA,EAAK,GAAG,IAAI,KAAK;AAAA,OAGjD,8BAAc,SAAS,SAAS,OAAO,GAChC,EAAE,SAAS,GAAK;AAAA,EACzB,SAAS,OAAO;AACd,WAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,IAClD;AAAA,EACF;AACF;AAEO,SAAS,eAAe,KAAmD;AAChF,QAAM,mBAAe,uBAAK,KAAK,YAAY;AAE3C,UAAI,2BAAW,YAAY;AACzB,WAAO,EAAE,SAAS,GAAK;AAGzB,QAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUjB,MAAI;AACF,6CAAc,cAAc,UAAU,OAAO,GACtC,EAAE,SAAS,GAAK;AAAA,EACzB,SAAS,OAAO;AACd,WAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,IAClD;AAAA,EACF;AACF;AAEO,SAAS,gBACd,KACA,KACA,WAAW,QACI;AACf,QAAM,cAAU,uBAAK,KAAK,QAAQ;AAElC,MAAI,KAAC,2BAAW,OAAO;AACrB,WAAO;AAGT,MAAI;AACF,UAAM,cAAU,6BAAa,SAAS,OAAO,GACvC,WAAW,IAAI,OAAO,IAAI,GAAG,UAAU,GAAG;AAEhD,WADc,QAAQ,MAAM,QAAQ,IACrB,CAAC,GAAG,KAAK,EAAE,QAAQ,gBAAgB,EAAE,KAAK;AAAA,EAC3D,QAAQ;AACN,WAAO;AAAA,EACT;AACF;",
5
- "names": []
6
- }