primitive-admin 1.0.21 → 1.0.23

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.
@@ -0,0 +1,366 @@
1
+ import { ApiClient } from "../lib/api-client.js";
2
+ import { getCurrentAppId } from "../lib/config.js";
3
+ import { success, error, info, keyValue, formatTable, formatId, formatDate, json, } from "../lib/output.js";
4
+ function resolveAppId(appId, options) {
5
+ const resolved = appId || options.app || getCurrentAppId();
6
+ if (!resolved) {
7
+ error("No app specified. Use <app-id>, --app, or 'primitive use <app-id>' to set context.");
8
+ process.exit(1);
9
+ }
10
+ return resolved;
11
+ }
12
+ export function registerGroupsCommands(program) {
13
+ const groups = program
14
+ .command("groups")
15
+ .description("Create and manage groups and their members")
16
+ .addHelpText("after", `
17
+ Examples:
18
+ $ primitive groups list
19
+ $ primitive groups create --type team --id engineering --name "Engineering"
20
+ $ primitive groups get team engineering
21
+ $ primitive groups members list team engineering
22
+ $ primitive groups memberships <user-id>
23
+ `);
24
+ // List groups
25
+ groups
26
+ .command("list")
27
+ .description("List groups in an app")
28
+ .argument("[app-id]", "App ID (uses current app if not specified)")
29
+ .option("--app <app-id>", "App ID")
30
+ .option("--type <type>", "Filter by group type")
31
+ .option("--json", "Output as JSON")
32
+ .action(async (appId, options) => {
33
+ const resolvedAppId = resolveAppId(appId, options);
34
+ const client = new ApiClient();
35
+ try {
36
+ const params = {};
37
+ if (options.type)
38
+ params.type = options.type;
39
+ const result = await client.listGroups(resolvedAppId, params);
40
+ const list = Array.isArray(result) ? result : result?.groups ?? [];
41
+ if (options.json) {
42
+ json(list);
43
+ return;
44
+ }
45
+ if (list.length === 0) {
46
+ info("No groups found.");
47
+ return;
48
+ }
49
+ console.log(formatTable(list, [
50
+ { header: "TYPE", key: "groupType" },
51
+ { header: "ID", key: "groupId" },
52
+ { header: "NAME", key: "name" },
53
+ { header: "MEMBERS", key: "memberCount" },
54
+ { header: "CREATED", key: "createdAt", format: formatDate },
55
+ ]));
56
+ }
57
+ catch (err) {
58
+ error(err.message);
59
+ process.exit(1);
60
+ }
61
+ });
62
+ // Create group
63
+ groups
64
+ .command("create")
65
+ .description("Create a new group")
66
+ .requiredOption("--type <type>", "Group type")
67
+ .requiredOption("--id <id>", "Group ID")
68
+ .requiredOption("--name <name>", "Group name")
69
+ .option("--description <description>", "Group description")
70
+ .option("--app <app-id>", "App ID")
71
+ .option("--json", "Output as JSON")
72
+ .action(async (options) => {
73
+ const resolvedAppId = resolveAppId(undefined, options);
74
+ const client = new ApiClient();
75
+ try {
76
+ const data = {
77
+ groupType: options.type,
78
+ groupId: options.id,
79
+ name: options.name,
80
+ };
81
+ if (options.description)
82
+ data.description = options.description;
83
+ const result = await client.createGroup(resolvedAppId, data);
84
+ if (options.json) {
85
+ json(result);
86
+ return;
87
+ }
88
+ success("Group created.");
89
+ keyValue("Type", result.groupType);
90
+ keyValue("ID", result.groupId);
91
+ keyValue("Name", result.name);
92
+ }
93
+ catch (err) {
94
+ error(err.message);
95
+ process.exit(1);
96
+ }
97
+ });
98
+ // Get group
99
+ groups
100
+ .command("get")
101
+ .description("Get group details")
102
+ .argument("<group-type>", "Group type")
103
+ .argument("<group-id>", "Group ID")
104
+ .option("--app <app-id>", "App ID")
105
+ .option("--json", "Output as JSON")
106
+ .action(async (groupType, groupId, options) => {
107
+ const resolvedAppId = resolveAppId(undefined, options);
108
+ const client = new ApiClient();
109
+ try {
110
+ const result = await client.getGroup(resolvedAppId, groupType, groupId);
111
+ if (options.json) {
112
+ json(result);
113
+ return;
114
+ }
115
+ keyValue("Type", result.groupType);
116
+ keyValue("ID", result.groupId);
117
+ keyValue("Name", result.name);
118
+ keyValue("Description", result.description);
119
+ keyValue("Members", result.memberCount);
120
+ keyValue("Created", formatDate(result.createdAt));
121
+ }
122
+ catch (err) {
123
+ error(err.message);
124
+ process.exit(1);
125
+ }
126
+ });
127
+ // Update group
128
+ groups
129
+ .command("update")
130
+ .description("Update a group")
131
+ .argument("<group-type>", "Group type")
132
+ .argument("<group-id>", "Group ID")
133
+ .option("--name <name>", "New group name")
134
+ .option("--description <description>", "New group description")
135
+ .option("--app <app-id>", "App ID")
136
+ .option("--json", "Output as JSON")
137
+ .action(async (groupType, groupId, options) => {
138
+ const resolvedAppId = resolveAppId(undefined, options);
139
+ const client = new ApiClient();
140
+ const data = {};
141
+ if (options.name)
142
+ data.name = options.name;
143
+ if (options.description)
144
+ data.description = options.description;
145
+ if (Object.keys(data).length === 0) {
146
+ error("Provide at least --name or --description to update.");
147
+ process.exit(1);
148
+ }
149
+ try {
150
+ const result = await client.updateGroup(resolvedAppId, groupType, groupId, data);
151
+ if (options.json) {
152
+ json(result);
153
+ return;
154
+ }
155
+ success(`Group ${groupType}/${groupId} updated.`);
156
+ }
157
+ catch (err) {
158
+ error(err.message);
159
+ process.exit(1);
160
+ }
161
+ });
162
+ // Delete group
163
+ groups
164
+ .command("delete")
165
+ .description("Delete a group")
166
+ .argument("<group-type>", "Group type")
167
+ .argument("<group-id>", "Group ID")
168
+ .option("--app <app-id>", "App ID")
169
+ .option("-y, --yes", "Skip confirmation prompt")
170
+ .action(async (groupType, groupId, options) => {
171
+ const resolvedAppId = resolveAppId(undefined, options);
172
+ if (!options.yes) {
173
+ const inquirer = await import("inquirer");
174
+ const { confirm } = await inquirer.default.prompt([
175
+ {
176
+ type: "confirm",
177
+ name: "confirm",
178
+ message: `Delete group ${groupType}/${groupId}? This will also remove all memberships.`,
179
+ default: false,
180
+ },
181
+ ]);
182
+ if (!confirm) {
183
+ info("Cancelled.");
184
+ return;
185
+ }
186
+ }
187
+ const client = new ApiClient();
188
+ try {
189
+ await client.deleteGroup(resolvedAppId, groupType, groupId);
190
+ success(`Group ${groupType}/${groupId} deleted.`);
191
+ }
192
+ catch (err) {
193
+ error(err.message);
194
+ process.exit(1);
195
+ }
196
+ });
197
+ // ---- Members subcommand group ----
198
+ const members = groups
199
+ .command("members")
200
+ .description("Manage group members");
201
+ // List members
202
+ members
203
+ .command("list")
204
+ .description("List members of a group")
205
+ .argument("<group-type>", "Group type")
206
+ .argument("<group-id>", "Group ID")
207
+ .option("--app <app-id>", "App ID")
208
+ .option("--json", "Output as JSON")
209
+ .action(async (groupType, groupId, options) => {
210
+ const resolvedAppId = resolveAppId(undefined, options);
211
+ const client = new ApiClient();
212
+ try {
213
+ const result = await client.listGroupMembers(resolvedAppId, groupType, groupId);
214
+ const list = Array.isArray(result) ? result : result?.members ?? [];
215
+ if (options.json) {
216
+ json(list);
217
+ return;
218
+ }
219
+ if (list.length === 0) {
220
+ info("No members found.");
221
+ return;
222
+ }
223
+ console.log(formatTable(list, [
224
+ { header: "USER_ID", key: "userId", format: formatId },
225
+ { header: "EMAIL", key: "userEmail" },
226
+ { header: "NAME", key: "userName" },
227
+ { header: "ADDED", key: "addedAt", format: formatDate },
228
+ ]));
229
+ }
230
+ catch (err) {
231
+ error(err.message);
232
+ process.exit(1);
233
+ }
234
+ });
235
+ // Add member
236
+ members
237
+ .command("add")
238
+ .description("Add a member to a group")
239
+ .argument("<group-type>", "Group type")
240
+ .argument("<group-id>", "Group ID")
241
+ .argument("<user-id>", "User ID to add")
242
+ .option("--app <app-id>", "App ID")
243
+ .option("--json", "Output as JSON")
244
+ .action(async (groupType, groupId, userId, options) => {
245
+ const resolvedAppId = resolveAppId(undefined, options);
246
+ const client = new ApiClient();
247
+ try {
248
+ const result = await client.addGroupMember(resolvedAppId, groupType, groupId, {
249
+ userId,
250
+ });
251
+ if (options.json) {
252
+ json(result);
253
+ return;
254
+ }
255
+ success(`User ${userId} added to group ${groupType}/${groupId}.`);
256
+ }
257
+ catch (err) {
258
+ error(err.message);
259
+ process.exit(1);
260
+ }
261
+ });
262
+ // Remove member
263
+ members
264
+ .command("remove")
265
+ .description("Remove a member from a group")
266
+ .argument("<group-type>", "Group type")
267
+ .argument("<group-id>", "Group ID")
268
+ .argument("<user-id>", "User ID to remove")
269
+ .option("--app <app-id>", "App ID")
270
+ .option("-y, --yes", "Skip confirmation prompt")
271
+ .action(async (groupType, groupId, userId, options) => {
272
+ const resolvedAppId = resolveAppId(undefined, options);
273
+ if (!options.yes) {
274
+ const inquirer = await import("inquirer");
275
+ const { confirm } = await inquirer.default.prompt([
276
+ {
277
+ type: "confirm",
278
+ name: "confirm",
279
+ message: `Remove user ${userId} from group ${groupType}/${groupId}?`,
280
+ default: false,
281
+ },
282
+ ]);
283
+ if (!confirm) {
284
+ info("Cancelled.");
285
+ return;
286
+ }
287
+ }
288
+ const client = new ApiClient();
289
+ try {
290
+ await client.removeGroupMember(resolvedAppId, groupType, groupId, userId);
291
+ success(`User ${userId} removed from group ${groupType}/${groupId}.`);
292
+ }
293
+ catch (err) {
294
+ error(err.message);
295
+ process.exit(1);
296
+ }
297
+ });
298
+ // ---- Resource listing commands ----
299
+ // List group documents
300
+ groups
301
+ .command("documents")
302
+ .description("List documents a group has access to")
303
+ .argument("<group-type>", "Group type")
304
+ .argument("<group-id>", "Group ID")
305
+ .option("--app <app-id>", "App ID")
306
+ .option("--json", "Output as JSON")
307
+ .action(async (groupType, groupId, options) => {
308
+ const resolvedAppId = resolveAppId(undefined, options);
309
+ const client = new ApiClient();
310
+ try {
311
+ const result = await client.listGroupDocuments(resolvedAppId, groupType, groupId);
312
+ const list = Array.isArray(result) ? result : result?.documents ?? [];
313
+ if (options.json) {
314
+ json(list);
315
+ return;
316
+ }
317
+ if (list.length === 0) {
318
+ info("No documents found for this group.");
319
+ return;
320
+ }
321
+ console.log(formatTable(list, [
322
+ { header: "ID", key: "documentId", format: formatId },
323
+ { header: "TITLE", key: "title" },
324
+ { header: "PERMISSION", key: "permission" },
325
+ { header: "GRANTED", key: "grantedAt", format: formatDate },
326
+ ]));
327
+ }
328
+ catch (err) {
329
+ error(err.message);
330
+ process.exit(1);
331
+ }
332
+ });
333
+ // ---- Memberships command ----
334
+ groups
335
+ .command("memberships")
336
+ .description("List a user's group memberships")
337
+ .argument("<user-id>", "User ID")
338
+ .option("--app <app-id>", "App ID")
339
+ .option("--json", "Output as JSON")
340
+ .action(async (userId, options) => {
341
+ const resolvedAppId = resolveAppId(undefined, options);
342
+ const client = new ApiClient();
343
+ try {
344
+ const result = await client.listUserMemberships(resolvedAppId, userId);
345
+ const list = Array.isArray(result) ? result : result?.memberships ?? [];
346
+ if (options.json) {
347
+ json(list);
348
+ return;
349
+ }
350
+ if (list.length === 0) {
351
+ info("No group memberships found.");
352
+ return;
353
+ }
354
+ console.log(formatTable(list, [
355
+ { header: "GROUP_TYPE", key: "groupType" },
356
+ { header: "GROUP_ID", key: "groupId" },
357
+ { header: "ADDED", key: "addedAt", format: formatDate },
358
+ ]));
359
+ }
360
+ catch (err) {
361
+ error(err.message);
362
+ process.exit(1);
363
+ }
364
+ });
365
+ }
366
+ //# sourceMappingURL=groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../src/commands/groups.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,OAAO,EACP,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,UAAU,EACV,IAAI,GACL,MAAM,kBAAkB,CAAC;AAE1B,SAAS,YAAY,CAAC,KAAyB,EAAE,OAAY;IAC3D,MAAM,QAAQ,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,oFAAoF,CAAC,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4CAA4C,CAAC;SACzD,WAAW,CAAC,OAAO,EAAE;;;;;;;CAOzB,CAAC,CAAC;IAED,cAAc;IACd,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uBAAuB,CAAC;SACpC,QAAQ,CAAC,UAAU,EAAE,4CAA4C,CAAC;SAClE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/B,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAsB,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAE7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAAc,EAAE,MAAM,IAAI,EAAE,CAAC;YAE5E,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACX,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,IAAI,EAAE;gBAChB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE;gBACpC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;gBAChC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC/B,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE;gBACzC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;aAC5D,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,eAAe;IACf,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oBAAoB,CAAC;SACjC,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC;SAC7C,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC;SACvC,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC;SAC7C,MAAM,CAAC,6BAA6B,EAAE,mBAAmB,CAAC;SAC1D,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,IAAI,GAA+E;gBACvF,SAAS,EAAE,OAAO,CAAC,IAAI;gBACvB,OAAO,EAAE,OAAO,CAAC,EAAE;gBACnB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC;YACF,IAAI,OAAO,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAEhE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAE7D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YAED,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,YAAY;IACZ,MAAM;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,mBAAmB,CAAC;SAChC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;SACtC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;SAClC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAC5C,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAExE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YACxC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,eAAe;IACf,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gBAAgB,CAAC;SAC7B,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;SACtC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;SAClC,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;SACzC,MAAM,CAAC,6BAA6B,EAAE,uBAAuB,CAAC;SAC9D,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAC5C,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,MAAM,IAAI,GAA4C,EAAE,CAAC;QACzD,IAAI,OAAO,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3C,IAAI,OAAO,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAEhE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAEjF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YAED,OAAO,CAAC,SAAS,SAAS,IAAI,OAAO,WAAW,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,eAAe;IACf,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gBAAgB,CAAC;SAC7B,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;SACtC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;SAClC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAC5C,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEvD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;gBAChD;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,gBAAgB,SAAS,IAAI,OAAO,0CAA0C;oBACvF,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,YAAY,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5D,OAAO,CAAC,SAAS,SAAS,IAAI,OAAO,WAAW,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,qCAAqC;IACrC,MAAM,OAAO,GAAG,MAAM;SACnB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAEvC,eAAe;IACf,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yBAAyB,CAAC;SACtC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;SACtC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;SAClC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAC5C,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAChF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAAc,EAAE,OAAO,IAAI,EAAE,CAAC;YAE7E,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACX,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,IAAI,EAAE;gBAChB,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;gBACtD,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;gBACrC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;gBACnC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE;aACxD,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,aAAa;IACb,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,yBAAyB,CAAC;SACtC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;SACtC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;SAClC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;SACvC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QACpD,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE;gBAC5E,MAAM;aACP,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;YAED,OAAO,CAAC,QAAQ,MAAM,mBAAmB,SAAS,IAAI,OAAO,GAAG,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,gBAAgB;IAChB,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;SACtC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;SAClC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QACpD,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEvD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;gBAChD;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,eAAe,MAAM,eAAe,SAAS,IAAI,OAAO,GAAG;oBACpE,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,YAAY,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1E,OAAO,CAAC,QAAQ,MAAM,uBAAuB,SAAS,IAAI,OAAO,GAAG,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,sCAAsC;IAEtC,uBAAuB;IACvB,MAAM;SACH,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,sCAAsC,CAAC;SACnD,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;SACtC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;SAClC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAC5C,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAClF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAAc,EAAE,SAAS,IAAI,EAAE,CAAC;YAE/E,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACX,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,IAAI,EAAE;gBAChB,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;gBACrD,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE;gBACjC,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC3C,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;aAC5D,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,gCAAgC;IAChC,MAAM;SACH,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;SAChC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SAClC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACvE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAAc,EAAE,WAAW,IAAI,EAAE,CAAC;YAEjF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACX,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,IAAI,EAAE;gBAChB,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE;gBAC1C,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;gBACtC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE;aACxD,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,19 +1,67 @@
1
1
  import { existsSync } from "fs";
2
2
  import { resolve, basename } from "path";
3
3
  import { input, confirm, select } from "@inquirer/prompts";
4
- import { loadCredentials } from "../lib/config.js";
4
+ import { loadCredentials, setCurrentApp } from "../lib/config.js";
5
5
  import { browserLogin } from "../lib/auth-flow.js";
6
6
  import { ApiClient } from "../lib/api-client.js";
7
7
  import { downloadAndExtractTemplate, updateEnvFile, runPnpmInstall, isDirectoryEmpty, isPnpmInstalled, installPnpmGlobally, isPrimitiveCliInstalled, installPrimitiveCli, } from "../lib/template.js";
8
8
  import { success, error, info, warn, keyValue, divider, } from "../lib/output.js";
9
- const DEFAULT_SERVER_URL = process.env.PRIMITIVE_SERVER_URL || "https://primitiveapi.com";
9
+ import { DEFAULT_SERVER_URL } from "../lib/constants.js";
10
+ function validateServerUrl(url) {
11
+ if (!url.trim())
12
+ return "Server URL cannot be empty";
13
+ try {
14
+ new URL(url);
15
+ return true;
16
+ }
17
+ catch {
18
+ return "Please enter a valid URL (e.g., https://example.com)";
19
+ }
20
+ }
21
+ /**
22
+ * Prompts for login when credentials are missing or the server has changed.
23
+ * Returns updated credentials on success, or exits/warns on failure.
24
+ */
25
+ async function ensureAuthenticated(credentials, serverUrl, serverChanged, context) {
26
+ if (credentials && !serverChanged)
27
+ return credentials;
28
+ if (serverChanged) {
29
+ info(`Switching to ${serverUrl}. You need to log in.`);
30
+ }
31
+ else {
32
+ info(`You need to log in to ${context.reason}.`);
33
+ }
34
+ const shouldLogin = await confirm({
35
+ message: "Log in now?",
36
+ default: true,
37
+ });
38
+ if (!shouldLogin) {
39
+ if (!context.allowSkip) {
40
+ error(`Cannot ${context.reason} without authentication. Use --use-existing-app-id to skip app creation.`);
41
+ warn(`Template files were extracted to "${context.targetDir}" but VITE_APP_ID is not configured.`);
42
+ warn("You'll need to manually set VITE_APP_ID in your .env file to use this project.");
43
+ process.exit(1);
44
+ }
45
+ warn(`Skipping. Make sure the app ID is correct.`);
46
+ return null;
47
+ }
48
+ const result = await browserLogin(serverUrl);
49
+ if (!result.success) {
50
+ error(`Login failed: ${result.error}`);
51
+ warn(`Template files were extracted to "${context.targetDir}" but VITE_APP_ID is not configured.`);
52
+ warn("You'll need to manually set VITE_APP_ID in your .env file to use this project.");
53
+ process.exit(1);
54
+ }
55
+ success(`Logged in as ${result.credentials.email}`);
56
+ return result.credentials;
57
+ }
10
58
  export function registerInitCommand(program) {
11
59
  program
12
60
  .command("init")
13
61
  .description("Create a new Primitive app from template")
14
62
  .argument("[directory]", "Directory to create the project in (default: current directory)")
15
63
  .option("--use-existing-app-id <id>", "Use an existing app ID instead of creating a new one")
16
- .option("-s, --server <url>", "Server URL", DEFAULT_SERVER_URL)
64
+ .option("-s, --server <url>", "Server URL (default: current CLI server or https://primitiveapi.com)")
17
65
  .option("--skip-install", "Skip running pnpm install")
18
66
  .addHelpText("after", `
19
67
  Examples:
@@ -31,7 +79,6 @@ This command will:
31
79
  .action(handleInit);
32
80
  }
33
81
  async function handleInit(projectDirArg, options) {
34
- const serverUrl = options.server || DEFAULT_SERVER_URL;
35
82
  // Step 1: Determine project directory
36
83
  let projectDir = projectDirArg;
37
84
  if (!projectDir) {
@@ -60,6 +107,60 @@ async function handleInit(projectDirArg, options) {
60
107
  process.exit(1);
61
108
  }
62
109
  }
110
+ // Step 2.5: Determine target server
111
+ let serverUrl;
112
+ let serverChanged = false;
113
+ if (options.server) {
114
+ const validation = validateServerUrl(options.server);
115
+ if (validation !== true) {
116
+ error(validation);
117
+ process.exit(1);
118
+ }
119
+ serverUrl = options.server;
120
+ // Check if explicit --server differs from current credentials
121
+ const existingCredentials = loadCredentials();
122
+ if (existingCredentials?.serverUrl && existingCredentials.serverUrl !== options.server) {
123
+ serverChanged = true;
124
+ }
125
+ }
126
+ else {
127
+ const existingCredentials = loadCredentials();
128
+ const currentServer = existingCredentials?.serverUrl;
129
+ if (currentServer && currentServer !== DEFAULT_SERVER_URL) {
130
+ console.log();
131
+ const serverChoice = await select({
132
+ message: `The Primitive CLI is currently using ${currentServer}.\nWhere do you want to create this app?`,
133
+ choices: [
134
+ {
135
+ value: currentServer,
136
+ name: `Current server (${currentServer})`,
137
+ },
138
+ {
139
+ value: DEFAULT_SERVER_URL,
140
+ name: `Production (${DEFAULT_SERVER_URL})`,
141
+ },
142
+ {
143
+ value: "__custom__",
144
+ name: "Other server",
145
+ },
146
+ ],
147
+ default: currentServer,
148
+ });
149
+ if (serverChoice === "__custom__") {
150
+ serverUrl = await input({
151
+ message: "Enter the server URL:",
152
+ validate: validateServerUrl,
153
+ });
154
+ }
155
+ else {
156
+ serverUrl = serverChoice;
157
+ }
158
+ serverChanged = currentServer !== serverUrl;
159
+ }
160
+ else {
161
+ serverUrl = currentServer || DEFAULT_SERVER_URL;
162
+ }
163
+ }
63
164
  // Step 3: Download template
64
165
  info("Setting up your project...");
65
166
  try {
@@ -81,27 +182,11 @@ async function handleInit(projectDirArg, options) {
81
182
  // Using existing app ID - verify it exists
82
183
  appId = options.useExistingAppId;
83
184
  appName = "(existing app)"; // Default if we can't verify
84
- if (!credentials) {
85
- info("You need to log in to verify the app.");
86
- const shouldLogin = await confirm({
87
- message: "Log in now?",
88
- default: true,
89
- });
90
- if (shouldLogin) {
91
- const result = await browserLogin(serverUrl);
92
- if (!result.success) {
93
- error(`Login failed: ${result.error}`);
94
- warn(`Template files were extracted to "${targetDir}" but VITE_APP_ID is not configured.`);
95
- warn("You'll need to manually set VITE_APP_ID in your .env file to use this project.");
96
- process.exit(1);
97
- }
98
- credentials = result.credentials;
99
- success(`Logged in as ${credentials.email}`);
100
- }
101
- else {
102
- warn("Skipping app verification. Make sure the app ID is correct.");
103
- }
104
- }
185
+ credentials = await ensureAuthenticated(credentials, serverUrl, serverChanged, {
186
+ reason: "verify the app",
187
+ targetDir,
188
+ allowSkip: true,
189
+ });
105
190
  if (credentials) {
106
191
  try {
107
192
  const client = new ApiClient();
@@ -116,28 +201,11 @@ async function handleInit(projectDirArg, options) {
116
201
  }
117
202
  else {
118
203
  // Creating new app - authentication required
119
- if (!credentials) {
120
- info("You need to log in to create an app.");
121
- const shouldLogin = await confirm({
122
- message: "Log in now?",
123
- default: true,
124
- });
125
- if (!shouldLogin) {
126
- error("Cannot create app without authentication. Use --use-existing-app-id to skip app creation.");
127
- warn(`Template files were extracted to "${targetDir}" but VITE_APP_ID is not configured.`);
128
- warn("You'll need to manually set VITE_APP_ID in your .env file to use this project.");
129
- process.exit(1);
130
- }
131
- const result = await browserLogin(serverUrl);
132
- if (!result.success) {
133
- error(`Login failed: ${result.error}`);
134
- warn(`Template files were extracted to "${targetDir}" but VITE_APP_ID is not configured.`);
135
- warn("You'll need to manually set VITE_APP_ID in your .env file to use this project.");
136
- process.exit(1);
137
- }
138
- credentials = result.credentials;
139
- success(`Logged in as ${credentials.email}`);
140
- }
204
+ credentials = await ensureAuthenticated(credentials, serverUrl, serverChanged, {
205
+ reason: "create an app",
206
+ targetDir,
207
+ allowSkip: false,
208
+ });
141
209
  // Prompt for app name
142
210
  appName = await input({
143
211
  message: "What would you like to name your app?",
@@ -264,10 +332,19 @@ async function handleInit(projectDirArg, options) {
264
332
  }
265
333
  }
266
334
  }
335
+ // Step 4.5: Update CLI to point at this app
336
+ try {
337
+ setCurrentApp(appId, appName);
338
+ info(`CLI now using app: ${appName} (${appId})`);
339
+ }
340
+ catch (err) {
341
+ // Not critical - user may not be logged in (e.g. used --use-existing-app-id without login)
342
+ warn(`Could not set current app in CLI config: ${err.message}`);
343
+ }
267
344
  // Step 5: Update .env file
268
345
  info("Configuring environment...");
269
346
  try {
270
- const envResult = updateEnvFile(targetDir, appId);
347
+ const envResult = updateEnvFile(targetDir, appId, serverUrl);
271
348
  if (!envResult.envUpdated) {
272
349
  warn("No .env or .env.example file found in template.");
273
350
  warn(`Please manually set VITE_APP_ID=${appId} in your .env file.`);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}