@objectstack/cli 4.0.4 → 4.0.5

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 (241) hide show
  1. package/README.md +12 -25
  2. package/dist/commands/build.d.ts +5 -0
  3. package/dist/commands/build.d.ts.map +1 -0
  4. package/dist/commands/build.js +6 -0
  5. package/dist/commands/build.js.map +1 -0
  6. package/dist/commands/compile.d.ts +3 -0
  7. package/dist/commands/compile.d.ts.map +1 -1
  8. package/dist/commands/compile.js +128 -6
  9. package/dist/commands/compile.js.map +1 -1
  10. package/dist/commands/create.js +1 -1
  11. package/dist/commands/data/create.js +2 -2
  12. package/dist/commands/data/create.js.map +1 -1
  13. package/dist/commands/data/delete.js +2 -2
  14. package/dist/commands/data/delete.js.map +1 -1
  15. package/dist/commands/data/get.js +2 -2
  16. package/dist/commands/data/get.js.map +1 -1
  17. package/dist/commands/data/query.js +2 -2
  18. package/dist/commands/data/query.js.map +1 -1
  19. package/dist/commands/data/update.js +2 -2
  20. package/dist/commands/data/update.js.map +1 -1
  21. package/dist/commands/dev.d.ts +3 -0
  22. package/dist/commands/dev.d.ts.map +1 -1
  23. package/dist/commands/dev.js +48 -19
  24. package/dist/commands/dev.js.map +1 -1
  25. package/dist/commands/generate.js +9 -9
  26. package/dist/commands/generate.js.map +1 -1
  27. package/dist/commands/i18n/check.d.ts +18 -0
  28. package/dist/commands/i18n/check.d.ts.map +1 -0
  29. package/dist/commands/i18n/check.js +153 -0
  30. package/dist/commands/i18n/check.js.map +1 -0
  31. package/dist/commands/init.js +2 -2
  32. package/dist/commands/lint.d.ts +3 -0
  33. package/dist/commands/lint.d.ts.map +1 -1
  34. package/dist/commands/lint.js +24 -0
  35. package/dist/commands/lint.js.map +1 -1
  36. package/dist/commands/login.d.ts +17 -0
  37. package/dist/commands/login.d.ts.map +1 -0
  38. package/dist/commands/login.js +313 -0
  39. package/dist/commands/login.js.map +1 -0
  40. package/dist/commands/logout.d.ts.map +1 -0
  41. package/dist/commands/{auth/logout.js → logout.js} +14 -2
  42. package/dist/commands/logout.js.map +1 -0
  43. package/dist/commands/meta/delete.js +2 -2
  44. package/dist/commands/meta/delete.js.map +1 -1
  45. package/dist/commands/meta/get.js +2 -2
  46. package/dist/commands/meta/get.js.map +1 -1
  47. package/dist/commands/meta/list.js +2 -2
  48. package/dist/commands/meta/list.js.map +1 -1
  49. package/dist/commands/meta/register.js +2 -2
  50. package/dist/commands/meta/register.js.map +1 -1
  51. package/dist/commands/projects/bind.d.ts +30 -0
  52. package/dist/commands/projects/bind.d.ts.map +1 -0
  53. package/dist/commands/projects/bind.js +132 -0
  54. package/dist/commands/projects/bind.js.map +1 -0
  55. package/dist/commands/projects/create.d.ts +28 -0
  56. package/dist/commands/projects/create.d.ts.map +1 -0
  57. package/dist/commands/projects/create.js +120 -0
  58. package/dist/commands/projects/create.js.map +1 -0
  59. package/dist/commands/projects/list.d.ts +21 -0
  60. package/dist/commands/projects/list.d.ts.map +1 -0
  61. package/dist/commands/projects/list.js +79 -0
  62. package/dist/commands/projects/list.js.map +1 -0
  63. package/dist/commands/projects/projects.test.d.ts +2 -0
  64. package/dist/commands/projects/projects.test.d.ts.map +1 -0
  65. package/dist/commands/projects/projects.test.js +56 -0
  66. package/dist/commands/projects/projects.test.js.map +1 -0
  67. package/dist/commands/projects/show.d.ts +21 -0
  68. package/dist/commands/projects/show.d.ts.map +1 -0
  69. package/dist/commands/projects/show.js +72 -0
  70. package/dist/commands/projects/show.js.map +1 -0
  71. package/dist/commands/projects/switch.d.ts +24 -0
  72. package/dist/commands/projects/switch.d.ts.map +1 -0
  73. package/dist/commands/projects/switch.js +64 -0
  74. package/dist/commands/projects/switch.js.map +1 -0
  75. package/dist/commands/publish.d.ts +14 -0
  76. package/dist/commands/publish.d.ts.map +1 -0
  77. package/dist/commands/publish.js +91 -0
  78. package/dist/commands/publish.js.map +1 -0
  79. package/dist/commands/{auth/login.d.ts → register.d.ts} +3 -2
  80. package/dist/commands/register.d.ts.map +1 -0
  81. package/dist/commands/{auth/login.js → register.js} +44 -61
  82. package/dist/commands/register.js.map +1 -0
  83. package/dist/commands/serve.d.ts +8 -0
  84. package/dist/commands/serve.d.ts.map +1 -1
  85. package/dist/commands/serve.js +606 -44
  86. package/dist/commands/serve.js.map +1 -1
  87. package/dist/commands/start.d.ts +11 -0
  88. package/dist/commands/start.d.ts.map +1 -0
  89. package/dist/commands/start.js +43 -0
  90. package/dist/commands/start.js.map +1 -0
  91. package/dist/commands/whoami.d.ts.map +1 -0
  92. package/dist/commands/{auth/whoami.js → whoami.js} +5 -5
  93. package/dist/commands/whoami.js.map +1 -0
  94. package/dist/index.d.ts +7 -4
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +8 -5
  97. package/dist/index.js.map +1 -1
  98. package/dist/utils/account.d.ts +31 -0
  99. package/dist/utils/account.d.ts.map +1 -0
  100. package/dist/utils/account.js +154 -0
  101. package/dist/utils/account.js.map +1 -0
  102. package/dist/utils/api-client.d.ts +10 -4
  103. package/dist/utils/api-client.d.ts.map +1 -1
  104. package/dist/utils/api-client.js +13 -7
  105. package/dist/utils/api-client.js.map +1 -1
  106. package/dist/utils/auth-config.d.ts +6 -0
  107. package/dist/utils/auth-config.d.ts.map +1 -1
  108. package/dist/utils/auth-config.js.map +1 -1
  109. package/dist/utils/build-runtime.d.ts +45 -0
  110. package/dist/utils/build-runtime.d.ts.map +1 -0
  111. package/dist/utils/build-runtime.js +154 -0
  112. package/dist/utils/build-runtime.js.map +1 -0
  113. package/dist/utils/config.d.ts.map +1 -1
  114. package/dist/utils/config.js +17 -2
  115. package/dist/utils/config.js.map +1 -1
  116. package/dist/utils/console.d.ts +32 -0
  117. package/dist/utils/console.d.ts.map +1 -0
  118. package/dist/utils/console.js +169 -0
  119. package/dist/utils/console.js.map +1 -0
  120. package/dist/utils/extract-hook-body.d.ts +13 -0
  121. package/dist/utils/extract-hook-body.d.ts.map +1 -0
  122. package/dist/utils/extract-hook-body.js +175 -0
  123. package/dist/utils/extract-hook-body.js.map +1 -0
  124. package/dist/utils/format.d.ts +8 -0
  125. package/dist/utils/format.d.ts.map +1 -1
  126. package/dist/utils/format.js +15 -2
  127. package/dist/utils/format.js.map +1 -1
  128. package/dist/utils/i18n-coverage.d.ts +61 -0
  129. package/dist/utils/i18n-coverage.d.ts.map +1 -0
  130. package/dist/utils/i18n-coverage.js +176 -0
  131. package/dist/utils/i18n-coverage.js.map +1 -0
  132. package/dist/utils/lower-callables.d.ts +17 -0
  133. package/dist/utils/lower-callables.d.ts.map +1 -0
  134. package/dist/utils/lower-callables.js +181 -0
  135. package/dist/utils/lower-callables.js.map +1 -0
  136. package/dist/utils/plugin-detection.d.ts +1 -0
  137. package/dist/utils/plugin-detection.d.ts.map +1 -1
  138. package/dist/utils/plugin-detection.js +41 -0
  139. package/dist/utils/plugin-detection.js.map +1 -1
  140. package/dist/utils/studio.d.ts +1 -0
  141. package/dist/utils/studio.d.ts.map +1 -1
  142. package/dist/utils/studio.js +25 -9
  143. package/dist/utils/studio.js.map +1 -1
  144. package/package.json +55 -21
  145. package/.turbo/turbo-build.log +0 -4
  146. package/CHANGELOG.md +0 -821
  147. package/bin/run-dev.js +0 -5
  148. package/dist/commands/auth/login.d.ts.map +0 -1
  149. package/dist/commands/auth/login.js.map +0 -1
  150. package/dist/commands/auth/logout.d.ts.map +0 -1
  151. package/dist/commands/auth/logout.js.map +0 -1
  152. package/dist/commands/auth/whoami.d.ts.map +0 -1
  153. package/dist/commands/auth/whoami.js.map +0 -1
  154. package/dist/commands/codemod/v2-to-v3.d.ts +0 -10
  155. package/dist/commands/codemod/v2-to-v3.d.ts.map +0 -1
  156. package/dist/commands/codemod/v2-to-v3.js +0 -145
  157. package/dist/commands/codemod/v2-to-v3.js.map +0 -1
  158. package/dist/commands/plugin/add.d.ts +0 -22
  159. package/dist/commands/plugin/add.d.ts.map +0 -1
  160. package/dist/commands/plugin/add.js +0 -93
  161. package/dist/commands/plugin/add.js.map +0 -1
  162. package/dist/commands/plugin/build.d.ts +0 -29
  163. package/dist/commands/plugin/build.d.ts.map +0 -1
  164. package/dist/commands/plugin/build.js +0 -170
  165. package/dist/commands/plugin/build.js.map +0 -1
  166. package/dist/commands/plugin/info.d.ts +0 -10
  167. package/dist/commands/plugin/info.d.ts.map +0 -1
  168. package/dist/commands/plugin/info.js +0 -65
  169. package/dist/commands/plugin/info.js.map +0 -1
  170. package/dist/commands/plugin/list.d.ts +0 -13
  171. package/dist/commands/plugin/list.d.ts.map +0 -1
  172. package/dist/commands/plugin/list.js +0 -78
  173. package/dist/commands/plugin/list.js.map +0 -1
  174. package/dist/commands/plugin/publish.d.ts +0 -27
  175. package/dist/commands/plugin/publish.d.ts.map +0 -1
  176. package/dist/commands/plugin/publish.js +0 -152
  177. package/dist/commands/plugin/publish.js.map +0 -1
  178. package/dist/commands/plugin/remove.d.ts +0 -20
  179. package/dist/commands/plugin/remove.d.ts.map +0 -1
  180. package/dist/commands/plugin/remove.js +0 -79
  181. package/dist/commands/plugin/remove.js.map +0 -1
  182. package/dist/commands/plugin/validate.d.ts +0 -23
  183. package/dist/commands/plugin/validate.d.ts.map +0 -1
  184. package/dist/commands/plugin/validate.js +0 -251
  185. package/dist/commands/plugin/validate.js.map +0 -1
  186. package/src/bin.ts +0 -13
  187. package/src/commands/auth/login.ts +0 -188
  188. package/src/commands/auth/logout.ts +0 -51
  189. package/src/commands/auth/whoami.ts +0 -85
  190. package/src/commands/codemod/v2-to-v3.ts +0 -171
  191. package/src/commands/compile.ts +0 -114
  192. package/src/commands/create.ts +0 -281
  193. package/src/commands/data/create.ts +0 -110
  194. package/src/commands/data/delete.ts +0 -84
  195. package/src/commands/data/get.ts +0 -84
  196. package/src/commands/data/query.ts +0 -127
  197. package/src/commands/data/update.ts +0 -114
  198. package/src/commands/dev.ts +0 -83
  199. package/src/commands/diff.ts +0 -294
  200. package/src/commands/doctor.ts +0 -572
  201. package/src/commands/explain.ts +0 -412
  202. package/src/commands/generate.ts +0 -924
  203. package/src/commands/info.ts +0 -124
  204. package/src/commands/init.ts +0 -327
  205. package/src/commands/lint.ts +0 -315
  206. package/src/commands/meta/delete.ts +0 -79
  207. package/src/commands/meta/get.ts +0 -73
  208. package/src/commands/meta/list.ts +0 -105
  209. package/src/commands/meta/register.ts +0 -97
  210. package/src/commands/plugin/add.ts +0 -112
  211. package/src/commands/plugin/build.ts +0 -193
  212. package/src/commands/plugin/info.ts +0 -79
  213. package/src/commands/plugin/list.ts +0 -93
  214. package/src/commands/plugin/publish.ts +0 -176
  215. package/src/commands/plugin/remove.ts +0 -97
  216. package/src/commands/plugin/validate.ts +0 -268
  217. package/src/commands/serve.ts +0 -411
  218. package/src/commands/studio.ts +0 -52
  219. package/src/commands/test.ts +0 -135
  220. package/src/commands/validate.ts +0 -143
  221. package/src/index.ts +0 -22
  222. package/src/utils/api-client.ts +0 -88
  223. package/src/utils/auth-config.ts +0 -107
  224. package/src/utils/config.ts +0 -80
  225. package/src/utils/format.ts +0 -267
  226. package/src/utils/output-formatter.ts +0 -91
  227. package/src/utils/plugin-detection.ts +0 -16
  228. package/src/utils/plugin-helpers.ts +0 -37
  229. package/src/utils/studio.ts +0 -350
  230. package/test/commands.test.ts +0 -128
  231. package/test/create.test.ts +0 -25
  232. package/test/plugin-commands.test.ts +0 -44
  233. package/test/plugin.test.ts +0 -169
  234. package/test/remote-api-commands.test.ts +0 -188
  235. package/test/remote-api-utils.test.ts +0 -196
  236. package/test/serve-host-config.test.ts +0 -77
  237. package/tsconfig.build.json +0 -20
  238. package/tsconfig.json +0 -25
  239. package/tsup.config.ts +0 -23
  240. /package/dist/commands/{auth/logout.d.ts → logout.d.ts} +0 -0
  241. /package/dist/commands/{auth/whoami.d.ts → whoami.d.ts} +0 -0
@@ -0,0 +1,64 @@
1
+ // Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
2
+ import { Args, Command, Flags } from '@oclif/core';
3
+ import { printError } from '../../utils/format.js';
4
+ import { createApiClient, requireAuth } from '../../utils/api-client.js';
5
+ import { readAuthConfig, writeAuthConfig } from '../../utils/auth-config.js';
6
+ /**
7
+ * `os projects switch <id>` — set the active project for this CLI session.
8
+ *
9
+ * Calls `POST /api/v1/cloud/projects/:id/activate` to update the
10
+ * server-side session, then persists `activeProjectId` into
11
+ * `~/.objectstack/credentials.json` so subsequent CLI commands (and any
12
+ * client they create via `createApiClient`) automatically target this
13
+ * project.
14
+ */
15
+ export default class ProjectsSwitch extends Command {
16
+ static description = 'Activate a project for subsequent CLI calls';
17
+ static examples = [
18
+ '$ os projects switch 00000000-0000-0000-0000-000000000001',
19
+ '$ os projects switch proj-123 --no-remote',
20
+ ];
21
+ static args = {
22
+ id: Args.string({ description: 'Project id to activate', required: true }),
23
+ };
24
+ static flags = {
25
+ url: Flags.string({ char: 'u', description: 'Server URL', env: 'OS_CLOUD_URL' }),
26
+ token: Flags.string({ char: 't', description: 'Authentication token', env: 'OS_TOKEN' }),
27
+ remote: Flags.boolean({
28
+ description: 'Also call /activate on the server (updates the session row)',
29
+ default: true,
30
+ allowNo: true,
31
+ }),
32
+ };
33
+ async run() {
34
+ const { args, flags } = await this.parse(ProjectsSwitch);
35
+ try {
36
+ const { client, token } = await createApiClient({ url: flags.url, token: flags.token });
37
+ requireAuth(token);
38
+ // Sanity-check the id resolves — fail fast before writing the cred file
39
+ const lookup = await client.projects.get(args.id);
40
+ const project = lookup?.project;
41
+ if (!project?.id) {
42
+ throw new Error(`Project ${args.id} not found`);
43
+ }
44
+ if (flags.remote) {
45
+ await client.projects.activate(project.id);
46
+ }
47
+ const cfg = await readAuthConfig();
48
+ cfg.activeProjectId = project.id;
49
+ cfg.lastUsedAt = new Date().toISOString();
50
+ await writeAuthConfig(cfg);
51
+ console.log(`\n✓ Active project: ${project.display_name ?? project.id}`);
52
+ console.log(` id: ${project.id}`);
53
+ if (!flags.remote) {
54
+ console.log(' (local only — server session unchanged)');
55
+ }
56
+ console.log('');
57
+ }
58
+ catch (error) {
59
+ printError(error.message || String(error));
60
+ this.exit(1);
61
+ }
62
+ }
63
+ }
64
+ //# sourceMappingURL=switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/commands/projects/switch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Publish extends Command {
3
+ static description: string;
4
+ static args: {
5
+ artifact: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ server: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
+ project: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
+ token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAIA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAGnD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,OAAgB,WAAW,SAAsD;IAEjF,OAAgB,IAAI;;MAElB;IAEF,OAAgB,KAAK;;;;MAkBnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiE3B"}
@@ -0,0 +1,91 @@
1
+ // Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
2
+ import { readFile } from 'node:fs/promises';
3
+ import { resolve as resolvePath } from 'node:path';
4
+ import { Args, Command, Flags } from '@oclif/core';
5
+ import { printHeader, printKV, printSuccess, printError, printStep } from '../utils/format.js';
6
+ export default class Publish extends Command {
7
+ static description = 'Publish a compiled artifact to ObjectStack Cloud';
8
+ static args = {
9
+ artifact: Args.string({ description: 'Path to compiled artifact (default: dist/objectstack.json)', required: false }),
10
+ };
11
+ static flags = {
12
+ server: Flags.string({
13
+ char: 's',
14
+ description: 'ObjectStack Cloud control-plane URL',
15
+ env: 'OS_CLOUD_URL',
16
+ default: 'http://localhost:4000',
17
+ }),
18
+ project: Flags.string({
19
+ char: 'p',
20
+ description: 'Project ID (required)',
21
+ env: 'OS_PROJECT_ID',
22
+ required: true,
23
+ }),
24
+ token: Flags.string({
25
+ char: 't',
26
+ description: 'API key for ObjectStack Cloud',
27
+ env: 'OS_CLOUD_API_KEY',
28
+ }),
29
+ };
30
+ async run() {
31
+ const { args, flags } = await this.parse(Publish);
32
+ printHeader('Publish Artifact');
33
+ try {
34
+ // 1. Locate the compiled artifact
35
+ const artifactPath = args.artifact
36
+ ? resolvePath(process.cwd(), args.artifact)
37
+ : resolvePath(process.cwd(), 'dist/objectstack.json');
38
+ printStep(`Loading artifact from ${artifactPath}...`);
39
+ let artifactRaw;
40
+ try {
41
+ artifactRaw = await readFile(artifactPath, 'utf-8');
42
+ }
43
+ catch (err) {
44
+ printError(`Cannot read artifact: ${err.message}. Run \`objectstack build\` first.`);
45
+ this.exit(1);
46
+ return;
47
+ }
48
+ const artifact = JSON.parse(artifactRaw);
49
+ printSuccess(`Loaded artifact (${(artifactRaw.length / 1024).toFixed(1)} KB)`);
50
+ // 2. POST to the control-plane publish endpoint
51
+ const serverUrl = `${flags.server}/api/v1/cloud/projects/${flags.project}/metadata`;
52
+ printStep(`Publishing to ${serverUrl}...`);
53
+ const response = await fetch(serverUrl, {
54
+ method: 'POST',
55
+ headers: {
56
+ 'Content-Type': 'application/json',
57
+ ...(flags.token && { Authorization: `Bearer ${flags.token}` }),
58
+ },
59
+ body: artifactRaw,
60
+ });
61
+ if (!response.ok) {
62
+ let errMsg;
63
+ try {
64
+ const errBody = await response.json();
65
+ errMsg = errBody?.error ?? response.statusText;
66
+ }
67
+ catch {
68
+ errMsg = response.statusText;
69
+ }
70
+ printError(`Publish failed (${response.status}): ${errMsg}`);
71
+ this.exit(1);
72
+ return;
73
+ }
74
+ const result = await response.json();
75
+ const data = result?.data ?? result;
76
+ console.log('');
77
+ printSuccess('Artifact published successfully');
78
+ printKV(' Project', flags.project);
79
+ if (data?.commitId)
80
+ printKV(' Commit', data.commitId);
81
+ if (data?.checksum?.value)
82
+ printKV(' Checksum', data.checksum.value.slice(0, 16));
83
+ printKV(' Server', flags.server);
84
+ }
85
+ catch (error) {
86
+ printError(error.message);
87
+ this.exit(1);
88
+ }
89
+ }
90
+ }
91
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import { Command } from '@oclif/core';
2
- export default class AuthLogin extends Command {
2
+ export default class AuthRegister extends Command {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
6
6
  url: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
7
  email: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
9
  password: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
10
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
11
  };
11
12
  run(): Promise<void>;
12
13
  }
13
- //# sourceMappingURL=login.d.ts.map
14
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/commands/register.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AA2D7C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,OAAgB,WAAW,SAAgD;IAE3E,OAAgB,QAAQ,WAItB;IAEF,OAAgB,KAAK;;;;;;MAsBnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmE3B"}
@@ -1,14 +1,10 @@
1
1
  // Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.
2
2
  import { Command, Flags } from '@oclif/core';
3
- import { printHeader, printSuccess, printError, printKV } from '../../utils/format.js';
4
- import { writeAuthConfig } from '../../utils/auth-config.js';
3
+ import { printHeader, printSuccess, printError, printKV } from '../utils/format.js';
4
+ import { writeAuthConfig } from '../utils/auth-config.js';
5
5
  import { ObjectStackClient } from '@objectstack/client';
6
6
  import * as readline from 'node:readline/promises';
7
7
  import { stdin as input, stdout as output } from 'node:process';
8
- /**
9
- * Prompt for a password with masked input (shows * per character).
10
- * Falls back to plain readline.question() in non-TTY environments.
11
- */
12
8
  async function promptPassword(promptText) {
13
9
  if (!process.stdin.isTTY) {
14
10
  const rl = readline.createInterface({ input, output });
@@ -30,16 +26,16 @@ async function promptPassword(promptText) {
30
26
  };
31
27
  const handler = (char) => {
32
28
  switch (char) {
33
- case '\u0003': // Ctrl+C
29
+ case '': // Ctrl+C
34
30
  cleanup();
35
31
  process.kill(process.pid, 'SIGINT');
36
32
  break;
37
33
  case '\r':
38
- case '\n': // Enter
34
+ case '\n':
39
35
  cleanup();
40
36
  resolve(chars.join(''));
41
37
  break;
42
- case '\u007f': // Backspace
38
+ case '': // Backspace
43
39
  if (chars.length > 0) {
44
40
  chars.pop();
45
41
  process.stdout.clearLine(0);
@@ -56,24 +52,28 @@ async function promptPassword(promptText) {
56
52
  process.stdin.on('data', handler);
57
53
  });
58
54
  }
59
- export default class AuthLogin extends Command {
60
- static description = 'Authenticate and store session credentials';
55
+ export default class AuthRegister extends Command {
56
+ static description = 'Create a new account and store credentials';
61
57
  static examples = [
62
- '$ os auth login',
63
- '$ os auth login --url https://api.example.com',
64
- '$ os auth login --email user@example.com --password mypassword',
58
+ '$ os auth register',
59
+ '$ os auth register --email user@example.com --name "Jane Doe" --password mypassword',
60
+ '$ os auth register --url https://api.example.com',
65
61
  ];
66
62
  static flags = {
67
63
  url: Flags.string({
68
64
  char: 'u',
69
65
  description: 'Server URL',
70
66
  default: 'http://localhost:3000',
71
- env: 'OBJECTSTACK_URL',
67
+ env: 'OS_CLOUD_URL',
72
68
  }),
73
69
  email: Flags.string({
74
70
  char: 'e',
75
71
  description: 'Email address',
76
72
  }),
73
+ name: Flags.string({
74
+ char: 'n',
75
+ description: 'Display name',
76
+ }),
77
77
  password: Flags.string({
78
78
  char: 'p',
79
79
  description: 'Password',
@@ -83,49 +83,40 @@ export default class AuthLogin extends Command {
83
83
  }),
84
84
  };
85
85
  async run() {
86
- const { flags } = await this.parse(AuthLogin);
86
+ const { flags } = await this.parse(AuthRegister);
87
87
  try {
88
88
  if (!flags.json) {
89
- printHeader('ObjectStack Login');
89
+ printHeader('ObjectStack Register');
90
90
  printKV('Server', flags.url);
91
91
  console.log('');
92
92
  }
93
- // Prompt for credentials if not provided
93
+ const rl = readline.createInterface({ input, output });
94
94
  let email = flags.email;
95
+ let name = flags.name;
95
96
  let password = flags.password;
96
- if (!email || !password) {
97
- const rl = readline.createInterface({ input, output });
98
- if (!email) {
99
- email = await rl.question('Email: ');
100
- }
101
- rl.close();
102
- if (!password) {
103
- password = await promptPassword('Password: ');
104
- }
105
- }
106
- if (!email || !password) {
107
- throw new Error('Email and password are required');
97
+ if (!email) {
98
+ email = await rl.question('Email: ');
108
99
  }
109
- // Create client and authenticate
110
- const client = new ObjectStackClient({
111
- baseUrl: flags.url,
112
- });
113
- const response = await client.auth.login({
114
- type: 'email',
115
- email,
116
- password,
117
- });
118
- // Check if login was successful
119
- if (!response.data?.token && !response.data?.user) {
120
- throw new Error('Login failed: Invalid response from server');
100
+ if (!name) {
101
+ name = await rl.question('Name (optional): ');
121
102
  }
122
- // Extract token - it might be in different locations depending on the auth system
123
- const token = response.data?.token || response.token;
124
- const user = response.data?.user;
125
- if (!token) {
126
- throw new Error('Login failed: No token received from server');
103
+ rl.close();
104
+ if (!password) {
105
+ password = await promptPassword('Password: ');
127
106
  }
128
- // Store credentials
107
+ if (!email)
108
+ throw new Error('Email is required');
109
+ if (!password)
110
+ throw new Error('Password is required');
111
+ const client = new ObjectStackClient({ baseUrl: flags.url });
112
+ const registerPayload = { email, password };
113
+ if (name)
114
+ registerPayload.name = name;
115
+ const response = await client.auth.register(registerPayload);
116
+ const token = response.data?.token ?? response.token;
117
+ const user = response.data?.user ?? response.user;
118
+ if (!token)
119
+ throw new Error('Registration failed: No token received from server');
129
120
  await writeAuthConfig({
130
121
  url: flags.url,
131
122
  token,
@@ -134,18 +125,13 @@ export default class AuthLogin extends Command {
134
125
  createdAt: new Date().toISOString(),
135
126
  });
136
127
  if (flags.json) {
137
- console.log(JSON.stringify({
138
- success: true,
139
- email: user?.email || email,
140
- userId: user?.id,
141
- }, null, 2));
128
+ console.log(JSON.stringify({ success: true, email: user?.email || email, userId: user?.id }, null, 2));
142
129
  }
143
130
  else {
144
- printSuccess('Authentication successful');
131
+ printSuccess('Account created and logged in');
145
132
  printKV('Email', user?.email || email);
146
- if (user?.id) {
133
+ if (user?.id)
147
134
  printKV('User ID', user.id);
148
- }
149
135
  console.log('');
150
136
  console.log(' Credentials stored in ~/.objectstack/credentials.json');
151
137
  console.log('');
@@ -153,10 +139,7 @@ export default class AuthLogin extends Command {
153
139
  }
154
140
  catch (error) {
155
141
  if (flags.json) {
156
- console.log(JSON.stringify({
157
- success: false,
158
- error: error.message,
159
- }, null, 2));
142
+ console.log(JSON.stringify({ success: false, error: error.message }, null, 2));
160
143
  this.exit(1);
161
144
  }
162
145
  printError(error.message || String(error));
@@ -164,4 +147,4 @@ export default class AuthLogin extends Command {
164
147
  }
165
148
  }
166
149
  }
167
- //# sourceMappingURL=login.js.map
150
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/commands/register.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,15 @@ export default class Serve extends Command {
9
9
  dev: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
10
  ui: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
11
  server: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ prebuilt: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ preset: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
14
  };
15
+ /**
16
+ * Auto-registered plugin tiers. Plugins explicitly listed in
17
+ * `config.plugins` are always loaded — tiers only gate the optional
18
+ * auto-registration blocks below (AIService, I18n, Studio UI, etc.).
19
+ */
20
+ static readonly TIER_PRESETS: Record<string, string[]>;
13
21
  run(): Promise<void>;
14
22
  }
15
23
  //# sourceMappingURL=serve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAkDnD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,OAAgB,WAAW,SAA8D;IAEzF,OAAgB,IAAI;;MAElB;IAEF,OAAgB,KAAK;;;;;MAKnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwV3B"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AA8DnD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,OAAgB,WAAW,SAA8D;IAEzF,OAAgB,IAAI;;MAElB;IAEF,OAAgB,KAAK;;;;;;;MAUnB;IAEF;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAIpD;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA40B3B"}