@base44-preview/cli 0.0.1-pr.6.f28d227 → 0.0.1-pr.7.00b57d1

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 (86) hide show
  1. package/README.md +18 -14
  2. package/dist/cli/commands/auth/login.d.ts.map +1 -1
  3. package/dist/cli/commands/auth/login.js +3 -3
  4. package/dist/cli/commands/auth/login.js.map +1 -1
  5. package/dist/cli/commands/project/show-project.d.ts +3 -0
  6. package/dist/cli/commands/project/show-project.d.ts.map +1 -0
  7. package/dist/cli/commands/project/show-project.js +20 -0
  8. package/dist/cli/commands/project/show-project.js.map +1 -0
  9. package/dist/cli/index.js +10 -7
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/cli/utils/packageVersion.js +3 -3
  12. package/dist/cli/utils/packageVersion.js.map +1 -1
  13. package/dist/cli/utils/runCommand.d.ts.map +1 -1
  14. package/dist/cli/utils/runCommand.js +1 -4
  15. package/dist/cli/utils/runCommand.js.map +1 -1
  16. package/dist/core/api/auth/client.d.ts +1 -1
  17. package/dist/core/api/auth/client.d.ts.map +1 -1
  18. package/dist/core/api/auth/client.js +4 -4
  19. package/dist/core/api/auth/client.js.map +1 -1
  20. package/dist/core/api/auth/index.d.ts +3 -3
  21. package/dist/core/api/auth/index.js +3 -3
  22. package/dist/core/api/auth/schema.d.ts +1 -1
  23. package/dist/core/api/auth/schema.js +8 -8
  24. package/dist/core/api/index.d.ts +1 -1
  25. package/dist/core/api/index.js +1 -1
  26. package/dist/core/config/auth.d.ts +1 -1
  27. package/dist/core/config/auth.d.ts.map +1 -1
  28. package/dist/core/config/auth.js +5 -5
  29. package/dist/core/config/auth.js.map +1 -1
  30. package/dist/core/config/entities.d.ts +3 -0
  31. package/dist/core/config/entities.d.ts.map +1 -0
  32. package/dist/core/config/entities.js +25 -0
  33. package/dist/core/config/entities.js.map +1 -0
  34. package/dist/core/config/functions.d.ts +4 -0
  35. package/dist/core/config/functions.d.ts.map +1 -0
  36. package/dist/core/config/functions.js +26 -0
  37. package/dist/core/config/functions.js.map +1 -0
  38. package/dist/core/config/index.d.ts +5 -2
  39. package/dist/core/config/index.d.ts.map +1 -1
  40. package/dist/core/config/index.js +5 -2
  41. package/dist/core/config/index.js.map +1 -1
  42. package/dist/core/config/project.d.ts +15 -0
  43. package/dist/core/config/project.d.ts.map +1 -0
  44. package/dist/core/config/project.js +61 -0
  45. package/dist/core/config/project.js.map +1 -0
  46. package/dist/core/consts.d.ts +6 -0
  47. package/dist/core/consts.d.ts.map +1 -0
  48. package/dist/core/consts.js +19 -0
  49. package/dist/core/consts.js.map +1 -0
  50. package/dist/core/errors/index.d.ts +1 -1
  51. package/dist/core/errors/index.js +1 -1
  52. package/dist/core/index.d.ts +5 -5
  53. package/dist/core/index.js +5 -5
  54. package/dist/core/schemas/auth.d.ts +1 -1
  55. package/dist/core/schemas/auth.js +3 -3
  56. package/dist/core/schemas/config.d.ts +22 -0
  57. package/dist/core/schemas/config.d.ts.map +1 -0
  58. package/dist/core/schemas/config.js +14 -0
  59. package/dist/core/schemas/config.js.map +1 -0
  60. package/dist/core/schemas/entity.d.ts +47 -0
  61. package/dist/core/schemas/entity.d.ts.map +1 -0
  62. package/dist/core/schemas/entity.js +29 -0
  63. package/dist/core/schemas/entity.js.map +1 -0
  64. package/dist/core/schemas/function.d.ts +91 -0
  65. package/dist/core/schemas/function.d.ts.map +1 -0
  66. package/dist/core/schemas/function.js +36 -0
  67. package/dist/core/schemas/function.js.map +1 -0
  68. package/dist/core/schemas/index.d.ts +5 -1
  69. package/dist/core/schemas/index.d.ts.map +1 -1
  70. package/dist/core/schemas/index.js +5 -1
  71. package/dist/core/schemas/index.js.map +1 -1
  72. package/dist/core/schemas/project.d.ts +14 -0
  73. package/dist/core/schemas/project.d.ts.map +1 -0
  74. package/dist/core/schemas/project.js +9 -0
  75. package/dist/core/schemas/project.js.map +1 -0
  76. package/dist/core/utils/fs.d.ts +1 -1
  77. package/dist/core/utils/fs.d.ts.map +1 -1
  78. package/dist/core/utils/fs.js +21 -11
  79. package/dist/core/utils/fs.js.map +1 -1
  80. package/dist/core/utils/index.d.ts +1 -1
  81. package/dist/core/utils/index.js +1 -1
  82. package/package.json +11 -4
  83. package/dist/core/config/constants.d.ts +0 -4
  84. package/dist/core/config/constants.d.ts.map +0 -1
  85. package/dist/core/config/constants.js +0 -6
  86. package/dist/core/config/constants.js.map +0 -1
package/README.md CHANGED
@@ -11,32 +11,42 @@ npm install
11
11
  # Build the project
12
12
  npm run build
13
13
 
14
- # Run the CLI (multiple ways)
14
+ # Run the CLI
15
15
  npm start # Using node directly
16
- npm run base44 # Using npm (runs node_modules/.bin/base44)
17
16
  ./dist/cli/index.js # Run executable directly
18
17
  ```
19
18
 
20
19
  ## Development
21
20
 
22
21
  ```bash
23
- # Run in development mode with watch
22
+ # Run in development mode
24
23
  npm run dev
25
24
 
26
25
  # Build the project
27
26
  npm run build
28
27
 
28
+ # Run the built CLI
29
+ npm run start
30
+
29
31
  # Clean build artifacts
30
32
  npm run clean
33
+
34
+ # Lint the code
35
+ npm run lint
31
36
  ```
32
37
 
33
38
  ## Commands
34
39
 
35
40
  ### Authentication
36
- - `base44 login` - Authenticate with Base44
41
+
42
+ - `base44 login` - Authenticate with Base44 using device code flow
37
43
  - `base44 whoami` - Display current authenticated user
38
44
  - `base44 logout` - Logout from current device
39
45
 
46
+ ### Project
47
+
48
+ - `base44 show-project` - Display project configuration, entities, and functions
49
+
40
50
  ## Project Structure
41
51
 
42
52
  ```
@@ -45,28 +55,22 @@ cli/
45
55
  │ ├── core/ # Core module (shared code)
46
56
  │ │ ├── api/ # API client code
47
57
  │ │ ├── config/ # Configuration management
58
+ │ │ ├── errors/ # Custom error classes
48
59
  │ │ ├── schemas/ # Zod schemas
49
60
  │ │ ├── utils/ # Utility functions
50
61
  │ │ └── index.ts # Core module exports
51
62
  │ └── cli/ # CLI module (main CLI)
52
63
  │ ├── commands/ # Command implementations
53
- │ │ └── auth/ # Authentication commands
64
+ │ │ ├── auth/ # Authentication commands
65
+ │ │ └── project/ # Project commands
54
66
  │ ├── utils/ # CLI-specific utilities
55
- │ └── index.ts # Main CLI entry point (with shebang)
67
+ │ └── index.ts # Main CLI entry point
56
68
  ├── dist/ # Build output (compiled JavaScript)
57
69
  ├── package.json # Package configuration
58
70
  ├── tsconfig.json # TypeScript configuration
59
71
  └── README.md
60
72
  ```
61
73
 
62
- ## Technologies
63
-
64
- - **TypeScript** - Primary language
65
- - **Commander.js** - CLI framework
66
- - **@clack/prompts** - Interactive user prompts
67
- - **Zod** - Schema validation
68
-
69
74
  ## License
70
75
 
71
76
  ISC
72
-
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiGpC,eAAO,MAAM,YAAY,SAIrB,CAAC"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6FpC,eAAO,MAAM,YAAY,SAIrB,CAAC"}
@@ -2,7 +2,7 @@ import { Command } from "commander";
2
2
  import { log } from "@clack/prompts";
3
3
  import pWaitFor from "p-wait-for";
4
4
  import { writeAuth } from "../../../core/config/auth.js";
5
- import { generateDeviceCode, getTokenFromDeviceCode, } from "../../../core/api/auth/index.js";
5
+ import { generateDeviceCode, getTokenFromDeviceCode } from "../../../core/api/auth/index.js";
6
6
  import { runCommand, runTask } from "../../utils/index.js";
7
7
  async function generateAndDisplayDeviceCode() {
8
8
  const deviceCodeResponse = await runTask("Generating device code...", async () => {
@@ -16,7 +16,7 @@ async function generateAndDisplayDeviceCode() {
16
16
  return deviceCodeResponse;
17
17
  }
18
18
  async function waitForAuthentication(deviceCode, expiresIn) {
19
- let tokenResponse = null;
19
+ let tokenResponse;
20
20
  try {
21
21
  await runTask("Waiting for you to complete authentication...", async () => {
22
22
  await pWaitFor(async () => {
@@ -41,7 +41,7 @@ async function waitForAuthentication(deviceCode, expiresIn) {
41
41
  }
42
42
  throw error;
43
43
  }
44
- if (!tokenResponse) {
44
+ if (tokenResponse === undefined) {
45
45
  throw new Error("Failed to retrieve authentication token.");
46
46
  }
47
47
  return tokenResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/cli/commands/auth/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/cli/commands/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE3D,KAAK,UAAU,4BAA4B;IACzC,MAAM,kBAAkB,GAAG,MAAM,OAAO,CACtC,2BAA2B,EAC3B,KAAK,IAAI,EAAE;QACT,OAAO,MAAM,kBAAkB,EAAE,CAAC;IACpC,CAAC,EACD;QACE,cAAc,EAAE,uBAAuB;QACvC,YAAY,EAAE,gCAAgC;KAC/C,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,iBAAiB,kBAAkB,CAAC,eAAe,IAAI;QACrD,2BAA2B,kBAAkB,CAAC,QAAQ,EAAE,CAC3D,CAAC;IAEF,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,UAAkB,EAClB,SAAiB;IAEjB,IAAI,aAAwC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,OAAO,CACX,+CAA+C,EAC/C,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,CACZ,KAAK,IAAI,EAAE;gBACT,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;gBACxD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,aAAa,GAAG,MAAM,CAAC;oBACvB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,EACD;gBACE,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,SAAS,GAAG,IAAI;aAC1B,CACF,CAAC;QACJ,CAAC,EACD;YACE,cAAc,EAAE,2BAA2B;YAC3C,YAAY,EAAE,uBAAuB;SACtC,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAAoB;IAC9C,MAAM,SAAS,CAAC;QACd,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,MAAM,kBAAkB,GAAG,MAAM,4BAA4B,EAAE,CAAC;IAEhE,MAAM,KAAK,GAAG,MAAM,qBAAqB,CACvC,kBAAkB,CAAC,UAAU,EAC7B,kBAAkB,CAAC,SAAS,CAC7B,CAAC;IAEF,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;IAE1B,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const showProjectCommand: Command;
3
+ //# sourceMappingURL=show-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show-project.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/project/show-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,eAAO,MAAM,kBAAkB,SAI3B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Command } from "commander";
2
+ import { log } from "@clack/prompts";
3
+ import { readProjectConfig } from "../../../core/config/project.js";
4
+ import { runCommand, runTask } from "../../utils/index.js";
5
+ async function showProject() {
6
+ const projectData = await runTask("Reading project configuration", async () => {
7
+ return await readProjectConfig();
8
+ }, {
9
+ successMessage: "Project configuration loaded",
10
+ errorMessage: "Failed to load project configuration",
11
+ });
12
+ const jsonOutput = JSON.stringify(projectData, null, 2);
13
+ log.info(jsonOutput);
14
+ }
15
+ export const showProjectCommand = new Command("show-project")
16
+ .description("Display project configuration, entities, and functions")
17
+ .action(async () => {
18
+ await runCommand(showProject);
19
+ });
20
+ //# sourceMappingURL=show-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show-project.js","sourceRoot":"","sources":["../../../../src/cli/commands/project/show-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE3D,KAAK,UAAU,WAAW;IACxB,MAAM,WAAW,GAAG,MAAM,OAAO,CAC/B,+BAA+B,EAC/B,KAAK,IAAI,EAAE;QACT,OAAO,MAAM,iBAAiB,EAAE,CAAC;IACnC,CAAC,EACD;QACE,cAAc,EAAE,8BAA8B;QAC9C,YAAY,EAAE,sCAAsC;KACrD,CACF,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;KAC1D,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC"}
package/dist/cli/index.js CHANGED
@@ -1,18 +1,21 @@
1
1
  #!/usr/bin/env node
2
- import { Command } from 'commander';
3
- import { getPackageVersion } from './utils/index.js';
4
- import { loginCommand } from './commands/auth/login.js';
5
- import { whoamiCommand } from './commands/auth/whoami.js';
6
- import { logoutCommand } from './commands/auth/logout.js';
2
+ import { Command } from "commander";
3
+ import { getPackageVersion } from "./utils/index.js";
4
+ import { loginCommand } from "./commands/auth/login.js";
5
+ import { whoamiCommand } from "./commands/auth/whoami.js";
6
+ import { logoutCommand } from "./commands/auth/logout.js";
7
+ import { showProjectCommand } from "./commands/project/show-project.js";
7
8
  const program = new Command();
8
9
  program
9
- .name('base44')
10
- .description('Base44 CLI - Unified interface for managing Base44 applications')
10
+ .name("base44")
11
+ .description("Base44 CLI - Unified interface for managing Base44 applications")
11
12
  .version(getPackageVersion());
12
13
  // Register authentication commands
13
14
  program.addCommand(loginCommand);
14
15
  program.addCommand(whoamiCommand);
15
16
  program.addCommand(logoutCommand);
17
+ // Register project commands
18
+ program.addCommand(showProjectCommand);
16
19
  // Parse command line arguments
17
20
  program.parse();
18
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,iEAAiE,CAAC;KAC9E,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAEhC,mCAAmC;AACnC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,+BAA+B;AAC/B,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,iEAAiE,CAClE;KACA,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAEhC,mCAAmC;AACnC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,4BAA4B;AAC5B,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAEvC,+BAA+B;AAC/B,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
- import { readFileSync } from "fs";
2
- import { fileURLToPath } from "url";
3
- import { dirname, join } from "path";
1
+ import { readFileSync } from "node:fs";
2
+ import { fileURLToPath } from "node:url";
3
+ import { dirname, join } from "node:path";
4
4
  export function getPackageVersion() {
5
5
  const __filename = fileURLToPath(import.meta.url);
6
6
  const __dirname = dirname(__filename);
@@ -1 +1 @@
1
- {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../../../src/cli/utils/packageVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,UAAU,iBAAiB;IAC/B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtC,+CAA+C;IAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../../../src/cli/utils/packageVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,iBAAiB;IAC/B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtC,+CAA+C;IAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/runCommand.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAkBf"}
1
+ {"version":3,"file":"runCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/runCommand.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAgBf"}
@@ -18,10 +18,7 @@ export async function runCommand(commandFn) {
18
18
  const issues = e.issues.map((i) => i.message).join(", ");
19
19
  log.error(`Invalid response from server: ${issues}`);
20
20
  }
21
- else if (e instanceof AuthApiError) {
22
- log.error(e.message);
23
- }
24
- else if (e instanceof Error) {
21
+ else if (e instanceof AuthApiError || e instanceof Error) {
25
22
  log.error(e.message);
26
23
  }
27
24
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../../src/cli/utils/runCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAA8B;IAE9B,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,mBAAmB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,GAAG,CAAC,KAAK,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,CAAC,YAAY,YAAY,EAAE,CAAC;YACrC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YAC9B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../../src/cli/utils/runCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAA8B;IAE9B,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,mBAAmB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,GAAG,CAAC,KAAK,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YAC3D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type DeviceCodeResponse, type TokenResponse } from "./schema.js";
1
+ import type { DeviceCodeResponse, TokenResponse } from "./schema.js";
2
2
  export declare function generateDeviceCode(): Promise<DeviceCodeResponse>;
3
3
  export declare function getTokenFromDeviceCode(deviceCode: string): Promise<TokenResponse | null>;
4
4
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/core/api/auth/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAYrB,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAuCtE;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA4C/B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/core/api/auth/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWrE,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAuCtE;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA4C/B"}
@@ -1,5 +1,5 @@
1
- import { DeviceCodeResponseSchema, TokenResponseSchema, } from "./schema.js";
2
1
  import { AuthApiError, AuthValidationError } from "../../errors/index.js";
2
+ import { DeviceCodeResponseSchema, TokenResponseSchema } from "./schema.js";
3
3
  async function delay(ms) {
4
4
  return new Promise((resolve) => setTimeout(resolve, ms));
5
5
  }
@@ -46,9 +46,9 @@ export async function getTokenFromDeviceCode(deviceCode) {
46
46
  return null;
47
47
  }
48
48
  const mockResponse = {
49
- token: "mock-token-" + Date.now(),
50
- email: "stam@lala.com",
51
- name: "Test User",
49
+ token: `mock-token-${Date.now()}`,
50
+ email: "shahart@base44.com",
51
+ name: "Shahar Talmi",
52
52
  };
53
53
  const result = TokenResponseSchema.safeParse(mockResponse);
54
54
  if (!result.success) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/core/api/auth/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/core/api/auth/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAG5E,KAAK,UAAU,KAAK,CAAC,EAAU;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAGjC,CAAC;AAEJ,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAElB,MAAM,UAAU,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAE/C,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE;YACnC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAuB;YACvC,UAAU;YACV,QAAQ,EAAE,WAAW;YACrB,eAAe,EAAE,+BAA+B;YAChD,SAAS,EAAE,GAAG;SACf,CAAC;QAEF,MAAM,MAAM,GAAG,wBAAwB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,mBAAmB,CAC3B,0CAA0C,EAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;aAC7B,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;YACzC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,YAAY,CACpB,gCAAgC,EAChC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAElB,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC;QAElD,IAAI,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAkB;YAClC,KAAK,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE;YACjC,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,cAAc;SACrB,CAAC;QAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,mBAAmB,CAC3B,oCAAoC,EACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;aAC7B,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;QAED,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,mBAAmB,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAC1E,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,YAAY,CACpB,2CAA2C,EAC3C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- export * from './client.js';
2
- export * from './schema.js';
3
- export { AuthApiError, AuthValidationError } from '../../errors/index.js';
1
+ export * from "./client.js";
2
+ export * from "./schema.js";
3
+ export { AuthApiError, AuthValidationError } from "../../errors/index.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export * from './client.js';
2
- export * from './schema.js';
3
- export { AuthApiError, AuthValidationError } from '../../errors/index.js';
1
+ export * from "./client.js";
2
+ export * from "./schema.js";
3
+ export { AuthApiError, AuthValidationError } from "../../errors/index.js";
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { z } from 'zod';
1
+ import { z } from "zod";
2
2
  export declare const DeviceCodeResponseSchema: z.ZodObject<{
3
3
  deviceCode: z.ZodString;
4
4
  userCode: z.ZodString;
@@ -1,13 +1,13 @@
1
- import { z } from 'zod';
1
+ import { z } from "zod";
2
2
  export const DeviceCodeResponseSchema = z.object({
3
- deviceCode: z.string().min(1, 'Device code cannot be empty'),
4
- userCode: z.string().min(1, 'User code cannot be empty'),
5
- verificationUrl: z.url('Invalid verification URL'),
6
- expiresIn: z.number().int().positive('Expires in must be a positive integer'),
3
+ deviceCode: z.string().min(1, "Device code cannot be empty"),
4
+ userCode: z.string().min(1, "User code cannot be empty"),
5
+ verificationUrl: z.url("Invalid verification URL"),
6
+ expiresIn: z.number().int().positive("Expires in must be a positive integer"),
7
7
  });
8
8
  export const TokenResponseSchema = z.object({
9
- token: z.string().min(1, 'Token cannot be empty'),
10
- email: z.email('Invalid email address'),
11
- name: z.string().min(1, 'Name cannot be empty'),
9
+ token: z.string().min(1, "Token cannot be empty"),
10
+ email: z.email("Invalid email address"),
11
+ name: z.string().min(1, "Name cannot be empty"),
12
12
  });
13
13
  //# sourceMappingURL=schema.js.map
@@ -1,2 +1,2 @@
1
- export * from './auth/index.js';
1
+ export * from "./auth/index.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,2 @@
1
- export * from './auth/index.js';
1
+ export * from "./auth/index.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { type AuthData } from "../schemas/auth.js";
1
+ import type { AuthData } from "../schemas/auth.js";
2
2
  export declare function readAuth(): Promise<AuthData>;
3
3
  export declare function writeAuth(authData: AuthData): Promise<void>;
4
4
  export declare function deleteAuth(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/config/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AASnE,wBAAsB,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,CA2BlD;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBjE;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAUhD"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/config/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAInD,wBAAsB,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,CA2BlD;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBjE;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAUhD"}
@@ -1,9 +1,9 @@
1
1
  import { AuthDataSchema } from "../schemas/auth.js";
2
- import { AUTH_FILE_PATH } from "./constants.js";
3
- import { readJsonFile, writeJsonFile, deleteFile, } from "../utils/fs.js";
2
+ import { getAuthFilePath } from "../consts.js";
3
+ import { readJsonFile, writeJsonFile, deleteFile } from "../utils/fs.js";
4
4
  export async function readAuth() {
5
5
  try {
6
- const parsed = await readJsonFile(AUTH_FILE_PATH);
6
+ const parsed = await readJsonFile(getAuthFilePath());
7
7
  const result = AuthDataSchema.safeParse(parsed);
8
8
  if (!result.success) {
9
9
  throw new Error(`Invalid authentication data: ${result.error.issues
@@ -30,7 +30,7 @@ export async function writeAuth(authData) {
30
30
  .join(", ")}`);
31
31
  }
32
32
  try {
33
- await writeJsonFile(AUTH_FILE_PATH, result.data);
33
+ await writeJsonFile(getAuthFilePath(), result.data);
34
34
  }
35
35
  catch (error) {
36
36
  throw new Error(`Failed to write authentication file: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -38,7 +38,7 @@ export async function writeAuth(authData) {
38
38
  }
39
39
  export async function deleteAuth() {
40
40
  try {
41
- await deleteFile(AUTH_FILE_PATH);
41
+ await deleteFile(getAuthFilePath());
42
42
  }
43
43
  catch (error) {
44
44
  throw new Error(`Failed to delete authentication file: ${error instanceof Error ? error.message : "Unknown error"}`);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/config/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAEL,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,KAAK,CAAC,MAAM;iBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;iBACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvE,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,IAAI,KAAK,CACb,uCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAkB;IAChD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAElD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,KAAK,CAAC,MAAM;aAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,wCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,yCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/config/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,KAAK,CAAC,MAAM;iBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;iBACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvE,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,IAAI,KAAK,CACb,uCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAkB;IAChD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAElD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,KAAK,CAAC,MAAM;aAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,wCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,yCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Entity } from "../schemas/entity.js";
2
+ export declare function readAllEntities(entitiesDir: string): Promise<Entity[]>;
3
+ //# sourceMappingURL=entities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/core/config/entities.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAkBnD,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAe5E"}
@@ -0,0 +1,25 @@
1
+ import { globby } from "globby";
2
+ import { EntitySchema } from "../schemas/entity.js";
3
+ import { readJsonFile, pathExists } from "../utils/fs.js";
4
+ async function readEntityFile(entityPath) {
5
+ const parsed = await readJsonFile(entityPath);
6
+ const result = EntitySchema.safeParse(parsed);
7
+ if (!result.success) {
8
+ throw new Error(`Invalid entity configuration in ${entityPath}: ${result.error.issues
9
+ .map((e) => e.message)
10
+ .join(", ")}`);
11
+ }
12
+ return result.data;
13
+ }
14
+ export async function readAllEntities(entitiesDir) {
15
+ if (!(await pathExists(entitiesDir))) {
16
+ return [];
17
+ }
18
+ const files = await globby("*.{json,jsonc}", {
19
+ cwd: entitiesDir,
20
+ absolute: true,
21
+ });
22
+ const entities = await Promise.all(files.map((filePath) => readEntityFile(filePath)));
23
+ return entities;
24
+ }
25
+ //# sourceMappingURL=entities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../src/core/config/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE1D,KAAK,UAAU,cAAc,CAAC,UAAkB;IAC9C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,mCAAmC,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM;aAClE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE;QAC3C,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAClD,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { FunctionConfig } from "../schemas/function.js";
2
+ export declare function readFunctionConfig(configPath: string): Promise<FunctionConfig>;
3
+ export declare function readAllFunctions(functionsDir: string): Promise<FunctionConfig[]>;
4
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/core/config/functions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,CAazB;AAED,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,EAAE,CAAC,CAe3B"}
@@ -0,0 +1,26 @@
1
+ import { globby } from "globby";
2
+ import { FunctionConfigSchema } from "../schemas/function.js";
3
+ import { FUNCTION_CONFIG_FILE } from "../consts.js";
4
+ import { readJsonFile, pathExists } from "../utils/fs.js";
5
+ export async function readFunctionConfig(configPath) {
6
+ const parsed = await readJsonFile(configPath);
7
+ const result = FunctionConfigSchema.safeParse(parsed);
8
+ if (!result.success) {
9
+ throw new Error(`Invalid function configuration in ${configPath}: ${result.error.issues
10
+ .map((e) => e.message)
11
+ .join(", ")}`);
12
+ }
13
+ return result.data;
14
+ }
15
+ export async function readAllFunctions(functionsDir) {
16
+ if (!(await pathExists(functionsDir))) {
17
+ return [];
18
+ }
19
+ const configFiles = await globby(`*/${FUNCTION_CONFIG_FILE}`, {
20
+ cwd: functionsDir,
21
+ absolute: true,
22
+ });
23
+ const functionConfigs = await Promise.all(configFiles.map((configPath) => readFunctionConfig(configPath)));
24
+ return functionConfigs;
25
+ }
26
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/core/config/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,qCAAqC,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM;aACpE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAAoB;IAEpB,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,oBAAoB,EAAE,EAAE;QAC5D,GAAG,EAAE,YAAY;QACjB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAChE,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -1,3 +1,6 @@
1
- export * from './constants.js';
2
- export * from './auth.js';
1
+ export * from "../consts.js";
2
+ export * from "./auth.js";
3
+ export * from "./project.js";
4
+ export * from "./entities.js";
5
+ export * from "./functions.js";
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -1,3 +1,6 @@
1
- export * from './constants.js';
2
- export * from './auth.js';
1
+ export * from "../consts.js";
2
+ export * from "./auth.js";
3
+ export * from "./project.js";
4
+ export * from "./entities.js";
5
+ export * from "./functions.js";
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { ProjectWithPaths } from "../schemas/project.js";
2
+ import type { Entity } from "../schemas/entity.js";
3
+ import type { FunctionConfig } from "../schemas/function.js";
4
+ export interface ProjectRoot {
5
+ root: string;
6
+ configPath: string;
7
+ }
8
+ export interface ProjectData {
9
+ project: ProjectWithPaths;
10
+ entities: Entity[];
11
+ functions: FunctionConfig[];
12
+ }
13
+ export declare function findProjectRoot(startPath?: string): Promise<ProjectRoot | null>;
14
+ export declare function readProjectConfig(projectRoot?: string): Promise<ProjectData>;
15
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/core/config/project.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAYD,wBAAsB,eAAe,CACnC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAY7B;AAED,wBAAsB,iBAAiB,CACrC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,CAyCtB"}
@@ -0,0 +1,61 @@
1
+ import { join, dirname } from "node:path";
2
+ import { globby } from "globby";
3
+ import { ProjectConfigSchema } from "../schemas/project.js";
4
+ import { getProjectConfigPatterns, PROJECT_SUBDIR } from "../consts.js";
5
+ import { readJsonFile } from "../utils/fs.js";
6
+ import { readAllEntities } from "./entities.js";
7
+ import { readAllFunctions } from "./functions.js";
8
+ // Finds config file in a directory using globby, respecting priority order.
9
+ async function findConfigInDir(dir) {
10
+ const files = await globby(getProjectConfigPatterns(), {
11
+ cwd: dir,
12
+ absolute: true,
13
+ });
14
+ return files[0] ?? null;
15
+ }
16
+ // Walks up the directory tree to locate a Base44 project config file.
17
+ export async function findProjectRoot(startPath) {
18
+ let current = startPath || process.cwd();
19
+ while (current !== dirname(current)) {
20
+ const configPath = await findConfigInDir(current);
21
+ if (configPath) {
22
+ return { root: current, configPath };
23
+ }
24
+ current = dirname(current);
25
+ }
26
+ return null;
27
+ }
28
+ export async function readProjectConfig(projectRoot) {
29
+ let found;
30
+ if (projectRoot) {
31
+ const configPath = await findConfigInDir(projectRoot);
32
+ found = configPath ? { root: projectRoot, configPath } : null;
33
+ }
34
+ else {
35
+ found = await findProjectRoot();
36
+ }
37
+ if (!found) {
38
+ throw new Error(`Project root not found. Please ensure config.jsonc or config.json exists in the project directory or ${PROJECT_SUBDIR}/ subdirectory.`);
39
+ }
40
+ const { root, configPath } = found;
41
+ const parsed = await readJsonFile(configPath);
42
+ const result = ProjectConfigSchema.safeParse(parsed);
43
+ if (!result.success) {
44
+ const errors = result.error.issues.map((e) => e.message).join(", ");
45
+ throw new Error(`Invalid project configuration: ${errors}`);
46
+ }
47
+ const project = result.data;
48
+ const configDir = dirname(configPath);
49
+ const entitiesPath = join(configDir, project.entitySrc);
50
+ const functionsPath = join(configDir, project.functionSrc);
51
+ const [entities, functions] = await Promise.all([
52
+ readAllEntities(entitiesPath),
53
+ readAllFunctions(functionsPath),
54
+ ]);
55
+ return {
56
+ project: { ...project, root, configPath },
57
+ entities,
58
+ functions,
59
+ };
60
+ }
61
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/core/config/project.ts"],"names":[],"mappings":"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"}