create-100x-mobile 0.5.2 → 0.5.3

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.
@@ -329,6 +329,7 @@ async function promptClerkSetup(options) {
329
329
  async function promptInstantSetup(options, authMode) {
330
330
  let appId = options.instantAppId?.trim() ?? "";
331
331
  if ((0, scaffold_1.isMagicCodeInstantAuthMode)(authMode)) {
332
+ let adminToken = "";
332
333
  if (options.interactive) {
333
334
  prompts_1.log.info("");
334
335
  prompts_1.log.info(picocolors_1.default.bold((0, scaffold_1.isCloudflareInstantAuthMode)(authMode)
@@ -336,7 +337,7 @@ async function promptInstantSetup(options, authMode) {
336
337
  : "InstantDB Magic Code Setup"));
337
338
  prompts_1.log.info(picocolors_1.default.dim("Create an app id with: npx instant-cli init-without-files --title my-app"));
338
339
  if ((0, scaffold_1.isCloudflareInstantAuthMode)(authMode)) {
339
- prompts_1.log.info(picocolors_1.default.dim("Cloudflare Worker, R2, and D1 files will be generated. Run `bun run cloudflare:deploy` after installing dependencies."));
340
+ prompts_1.log.info(picocolors_1.default.dim("Cloudflare Worker, R2, and D1 files will be generated and deployed automatically."));
340
341
  }
341
342
  if (!appId) {
342
343
  prompts_1.log.info(picocolors_1.default.dim("Press Enter to skip and configure later."));
@@ -349,8 +350,21 @@ async function promptInstantSetup(options, authMode) {
349
350
  appId = appIdInput.trim();
350
351
  }
351
352
  }
353
+ if ((0, scaffold_1.isCloudflareInstantAuthMode)(authMode) && appId) {
354
+ prompts_1.log.info("");
355
+ prompts_1.log.info(picocolors_1.default.dim("The admin token lets the Cloudflare Worker sync upload metadata to InstantDB."));
356
+ prompts_1.log.info(picocolors_1.default.dim("Get it from: https://instantdb.com/dash → Your App → Admin Tokens"));
357
+ const adminTokenInput = await (0, prompts_1.text)({
358
+ message: "InstantDB Admin Token",
359
+ placeholder: "your-instant-admin-token",
360
+ defaultValue: "",
361
+ });
362
+ if (!(0, prompts_1.isCancel)(adminTokenInput) && adminTokenInput) {
363
+ adminToken = adminTokenInput.trim();
364
+ }
365
+ }
352
366
  }
353
- return { authMode, appId };
367
+ return { authMode, appId, adminToken };
354
368
  }
355
369
  let clerkPublishableKey = options.clerkPublishableKey?.trim() ?? "";
356
370
  let clerkClientName = options.instantClerkClientName?.trim() || "clerk";
@@ -445,7 +459,8 @@ async function writeInstantEnvironment(projectDir, instant) {
445
459
  }
446
460
  if ((0, scaffold_1.isCloudflareInstantAuthMode)(instant.authMode)) {
447
461
  envContents = (0, dotenv_1.upsertDotenvVar)(envContents, "INSTANT_APP_ID", instant.appId);
448
- envContents = (0, dotenv_1.upsertDotenvVar)(envContents, "INSTANT_ADMIN_TOKEN", "");
462
+ const adminToken = "adminToken" in instant ? instant.adminToken : "";
463
+ envContents = (0, dotenv_1.upsertDotenvVar)(envContents, "INSTANT_ADMIN_TOKEN", adminToken);
449
464
  envContents = (0, dotenv_1.upsertDotenvVar)(envContents, "ALLOWED_ORIGINS", "http://localhost:3000,http://localhost:8080,http://localhost:8081,http://localhost:19006");
450
465
  envContents = (0, dotenv_1.upsertDotenvVar)(envContents, "MAX_UPLOAD_BYTES", "26214400");
451
466
  envContents = (0, dotenv_1.upsertDotenvVar)(envContents, "USER_STORAGE_LIMIT_BYTES", "524288000");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-100x-mobile",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "Scaffold a full-stack mobile app with Expo + Convex + Clerk in seconds",
5
5
  "main": "dist/cli.js",
6
6
  "bin": {