@authrim/setup 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +303 -0
  2. package/dist/__tests__/config.test.d.ts +5 -0
  3. package/dist/__tests__/config.test.d.ts.map +1 -0
  4. package/dist/__tests__/config.test.js +115 -0
  5. package/dist/__tests__/config.test.js.map +1 -0
  6. package/dist/__tests__/keys.test.d.ts +5 -0
  7. package/dist/__tests__/keys.test.d.ts.map +1 -0
  8. package/dist/__tests__/keys.test.js +87 -0
  9. package/dist/__tests__/keys.test.js.map +1 -0
  10. package/dist/__tests__/naming.test.d.ts +5 -0
  11. package/dist/__tests__/naming.test.d.ts.map +1 -0
  12. package/dist/__tests__/naming.test.js +84 -0
  13. package/dist/__tests__/naming.test.js.map +1 -0
  14. package/dist/cli/commands/config.d.ts +13 -0
  15. package/dist/cli/commands/config.d.ts.map +1 -0
  16. package/dist/cli/commands/config.js +231 -0
  17. package/dist/cli/commands/config.js.map +1 -0
  18. package/dist/cli/commands/deploy.d.ts +21 -0
  19. package/dist/cli/commands/deploy.d.ts.map +1 -0
  20. package/dist/cli/commands/deploy.js +304 -0
  21. package/dist/cli/commands/deploy.js.map +1 -0
  22. package/dist/cli/commands/init.d.ts +14 -0
  23. package/dist/cli/commands/init.d.ts.map +1 -0
  24. package/dist/cli/commands/init.js +1248 -0
  25. package/dist/cli/commands/init.js.map +1 -0
  26. package/dist/core/admin.d.ts +64 -0
  27. package/dist/core/admin.d.ts.map +1 -0
  28. package/dist/core/admin.js +247 -0
  29. package/dist/core/admin.js.map +1 -0
  30. package/dist/core/cloudflare.d.ts +157 -0
  31. package/dist/core/cloudflare.d.ts.map +1 -0
  32. package/dist/core/cloudflare.js +452 -0
  33. package/dist/core/cloudflare.js.map +1 -0
  34. package/dist/core/config.d.ts +891 -0
  35. package/dist/core/config.d.ts.map +1 -0
  36. package/dist/core/config.js +208 -0
  37. package/dist/core/config.js.map +1 -0
  38. package/dist/core/deploy.d.ts +81 -0
  39. package/dist/core/deploy.d.ts.map +1 -0
  40. package/dist/core/deploy.js +389 -0
  41. package/dist/core/deploy.js.map +1 -0
  42. package/dist/core/keys.d.ts +111 -0
  43. package/dist/core/keys.d.ts.map +1 -0
  44. package/dist/core/keys.js +287 -0
  45. package/dist/core/keys.js.map +1 -0
  46. package/dist/core/lock.d.ts +220 -0
  47. package/dist/core/lock.d.ts.map +1 -0
  48. package/dist/core/lock.js +230 -0
  49. package/dist/core/lock.js.map +1 -0
  50. package/dist/core/naming.d.ts +151 -0
  51. package/dist/core/naming.d.ts.map +1 -0
  52. package/dist/core/naming.js +209 -0
  53. package/dist/core/naming.js.map +1 -0
  54. package/dist/core/source.d.ts +68 -0
  55. package/dist/core/source.d.ts.map +1 -0
  56. package/dist/core/source.js +285 -0
  57. package/dist/core/source.js.map +1 -0
  58. package/dist/core/wrangler.d.ts +87 -0
  59. package/dist/core/wrangler.d.ts.map +1 -0
  60. package/dist/core/wrangler.js +398 -0
  61. package/dist/core/wrangler.js.map +1 -0
  62. package/dist/index.d.ts +11 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +117 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/web/api.d.ts +21 -0
  67. package/dist/web/api.d.ts.map +1 -0
  68. package/dist/web/api.js +423 -0
  69. package/dist/web/api.js.map +1 -0
  70. package/dist/web/server.d.ts +12 -0
  71. package/dist/web/server.d.ts.map +1 -0
  72. package/dist/web/server.js +112 -0
  73. package/dist/web/server.js.map +1 -0
  74. package/dist/web/ui.d.ts +7 -0
  75. package/dist/web/ui.d.ts.map +1 -0
  76. package/dist/web/ui.js +765 -0
  77. package/dist/web/ui.js.map +1 -0
  78. package/package.json +61 -0
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Config Command - Manage Authrim configuration
3
+ *
4
+ * Provides options to show, validate, and modify Authrim configuration.
5
+ */
6
+ import chalk from 'chalk';
7
+ import ora from 'ora';
8
+ import { readFile } from 'node:fs/promises';
9
+ import { existsSync } from 'node:fs';
10
+ import { AuthrimConfigSchema, safeParseConfig } from '../../core/config.js';
11
+ import { loadLockFile } from '../../core/lock.js';
12
+ // =============================================================================
13
+ // Config Command
14
+ // =============================================================================
15
+ export async function configCommand(options) {
16
+ const configPath = options.config || 'authrim-config.json';
17
+ // Default to --show if no options provided
18
+ if (!options.show && !options.validate) {
19
+ options.show = true;
20
+ }
21
+ if (options.validate) {
22
+ await validateConfig(configPath, options.json);
23
+ }
24
+ else if (options.show) {
25
+ await showConfig(configPath, options.json);
26
+ }
27
+ }
28
+ // =============================================================================
29
+ // Show Config
30
+ // =============================================================================
31
+ async function showConfig(configPath, jsonOutput) {
32
+ if (!existsSync(configPath)) {
33
+ console.error(chalk.red(`Configuration file not found: ${configPath}`));
34
+ console.log(chalk.yellow('\nRun "authrim-setup init" first to create a configuration.'));
35
+ process.exitCode = 1;
36
+ return;
37
+ }
38
+ try {
39
+ const content = await readFile(configPath, 'utf-8');
40
+ const data = JSON.parse(content);
41
+ const config = AuthrimConfigSchema.parse(data);
42
+ if (jsonOutput) {
43
+ // Output raw JSON for scripting
44
+ console.log(JSON.stringify(config, null, 2));
45
+ return;
46
+ }
47
+ // Pretty print configuration
48
+ console.log(chalk.bold('\nšŸ“‹ Authrim Configuration\n'));
49
+ console.log(chalk.blue('━'.repeat(50)));
50
+ // Basic info
51
+ console.log(chalk.bold('\nšŸ“Œ Basic Information'));
52
+ console.log(` Version: ${chalk.cyan(config.version)}`);
53
+ console.log(` Created: ${chalk.gray(config.createdAt || 'N/A')}`);
54
+ console.log(` Updated: ${chalk.gray(config.updatedAt || 'N/A')}`);
55
+ // Environment
56
+ console.log(chalk.bold('\nšŸŒ Environment'));
57
+ console.log(` Prefix: ${chalk.cyan(config.environment.prefix)}`);
58
+ console.log(` Profile: ${chalk.cyan(config.profile)}`);
59
+ // URLs
60
+ if (config.urls) {
61
+ console.log(chalk.bold('\n🌐 URLs'));
62
+ const apiUrl = config.urls.api?.custom || config.urls.api?.auto || 'Not configured';
63
+ const loginUrl = config.urls.loginUi?.custom || config.urls.loginUi?.auto || 'Not configured';
64
+ const adminUrl = config.urls.adminUi?.custom || config.urls.adminUi?.auto || 'Not configured';
65
+ console.log(` API: ${chalk.cyan(apiUrl)}`);
66
+ console.log(` Login UI: ${chalk.cyan(loginUrl)}`);
67
+ console.log(` Admin UI: ${chalk.cyan(adminUrl)}`);
68
+ }
69
+ // Tenant
70
+ console.log(chalk.bold('\nšŸ‘„ Tenant'));
71
+ console.log(` Name: ${chalk.cyan(config.tenant.name)}`);
72
+ console.log(` Display: ${chalk.cyan(config.tenant.displayName)}`);
73
+ // Components
74
+ console.log(chalk.bold('\nšŸ“¦ Components'));
75
+ const components = config.components;
76
+ const componentStatus = (enabled) => enabled ? chalk.green('āœ“ Enabled') : chalk.gray('ā—‹ Disabled');
77
+ console.log(` API: ${componentStatus(components.api)}`);
78
+ console.log(` Login UI: ${componentStatus(components.loginUi)}`);
79
+ console.log(` Admin UI: ${componentStatus(components.adminUi)}`);
80
+ console.log(` SAML: ${componentStatus(components.saml)}`);
81
+ console.log(` Async: ${componentStatus(components.async)}`);
82
+ console.log(` VC: ${componentStatus(components.vc)}`);
83
+ console.log(` Bridge: ${componentStatus(components.bridge)}`);
84
+ console.log(` Policy: ${componentStatus(components.policy)}`);
85
+ // OIDC Settings
86
+ console.log(chalk.bold('\nšŸ” OIDC Settings'));
87
+ console.log(` Access Token TTL: ${chalk.cyan(formatDuration(config.oidc.accessTokenTtl))}`);
88
+ console.log(` Refresh Token TTL: ${chalk.cyan(formatDuration(config.oidc.refreshTokenTtl))}`);
89
+ console.log(` Auth Code TTL: ${chalk.cyan(formatDuration(config.oidc.authCodeTtl))}`);
90
+ console.log(` PKCE Required: ${config.oidc.pkceRequired ? chalk.green('Yes') : chalk.yellow('No')}`);
91
+ console.log(` Response Types: ${chalk.cyan(config.oidc.responseTypes.join(', '))}`);
92
+ console.log(` Grant Types: ${chalk.cyan(config.oidc.grantTypes.join(', '))}`);
93
+ // Sharding
94
+ console.log(chalk.bold('\nāš™ļø Sharding'));
95
+ console.log(` Auth Code Shards: ${chalk.cyan(config.sharding.authCodeShards)}`);
96
+ console.log(` Refresh Token Shards: ${chalk.cyan(config.sharding.refreshTokenShards)}`);
97
+ // Features
98
+ console.log(chalk.bold('\nšŸŽ›ļø Features'));
99
+ console.log(` Queue: ${config.features.queue?.enabled ? chalk.green('Enabled') : chalk.gray('Disabled')}`);
100
+ console.log(` R2: ${config.features.r2?.enabled ? chalk.green('Enabled') : chalk.gray('Disabled')}`);
101
+ console.log(` Email: ${chalk.cyan(config.features.email?.provider || 'none')}`);
102
+ // Keys
103
+ console.log(chalk.bold('\nšŸ”‘ Keys'));
104
+ console.log(` Key ID: ${chalk.cyan(config.keys.keyId || 'Not configured')}`);
105
+ console.log(` Secrets Path: ${chalk.gray(config.keys.secretsPath)}`);
106
+ // Cloudflare
107
+ if (config.cloudflare?.accountId) {
108
+ console.log(chalk.bold('\nā˜ļø Cloudflare'));
109
+ console.log(` Account ID: ${chalk.cyan(config.cloudflare.accountId.slice(0, 8) + '...')}`);
110
+ }
111
+ // Lock file summary
112
+ const lockPath = configPath.replace('authrim-config.json', 'authrim-lock.json');
113
+ const lock = await loadLockFile(lockPath);
114
+ if (lock) {
115
+ console.log(chalk.bold('\nšŸ“¦ Provisioned Resources'));
116
+ console.log(` D1 Databases: ${chalk.cyan(Object.keys(lock.d1).length)}`);
117
+ console.log(` KV Namespaces: ${chalk.cyan(Object.keys(lock.kv).length)}`);
118
+ if (lock.queues) {
119
+ console.log(` Queues: ${chalk.cyan(Object.keys(lock.queues).length)}`);
120
+ }
121
+ if (lock.r2) {
122
+ console.log(` R2 Buckets: ${chalk.cyan(Object.keys(lock.r2).length)}`);
123
+ }
124
+ if (lock.workers) {
125
+ const deployedWorkers = Object.values(lock.workers).filter((w) => w.deployedAt).length;
126
+ console.log(` Workers Deployed: ${chalk.cyan(deployedWorkers)}`);
127
+ }
128
+ }
129
+ console.log(chalk.blue('\n' + '━'.repeat(50)));
130
+ console.log('');
131
+ }
132
+ catch (error) {
133
+ if (error instanceof SyntaxError) {
134
+ console.error(chalk.red(`Invalid JSON in configuration file: ${configPath}`));
135
+ }
136
+ else {
137
+ console.error(chalk.red(`Failed to read configuration: ${error}`));
138
+ }
139
+ process.exitCode = 1;
140
+ }
141
+ }
142
+ // =============================================================================
143
+ // Validate Config
144
+ // =============================================================================
145
+ async function validateConfig(configPath, jsonOutput) {
146
+ const spinner = ora(`Validating configuration: ${configPath}`).start();
147
+ if (!existsSync(configPath)) {
148
+ spinner.fail(`Configuration file not found: ${configPath}`);
149
+ process.exitCode = 1;
150
+ return;
151
+ }
152
+ try {
153
+ const content = await readFile(configPath, 'utf-8');
154
+ let data;
155
+ try {
156
+ data = JSON.parse(content);
157
+ }
158
+ catch {
159
+ spinner.fail('Invalid JSON format');
160
+ console.error(chalk.red('\nThe configuration file is not valid JSON.'));
161
+ process.exitCode = 1;
162
+ return;
163
+ }
164
+ const result = safeParseConfig(data);
165
+ if (result.success) {
166
+ spinner.succeed('Configuration is valid');
167
+ if (jsonOutput) {
168
+ console.log(JSON.stringify({ valid: true, config: result.data }, null, 2));
169
+ }
170
+ else {
171
+ console.log(chalk.green('\nāœ“ Configuration passed all validation checks'));
172
+ console.log('');
173
+ // Show some key info
174
+ console.log(chalk.bold('Summary:'));
175
+ console.log(` Environment: ${chalk.cyan(result.data.environment.prefix)}`);
176
+ console.log(` Profile: ${chalk.cyan(result.data.profile)}`);
177
+ console.log(` Version: ${chalk.cyan(result.data.version)}`);
178
+ console.log('');
179
+ }
180
+ }
181
+ else {
182
+ spinner.fail('Configuration validation failed');
183
+ if (jsonOutput) {
184
+ console.log(JSON.stringify({
185
+ valid: false,
186
+ errors: result.error.errors.map((e) => ({
187
+ path: e.path.join('.'),
188
+ message: e.message,
189
+ })),
190
+ }, null, 2));
191
+ }
192
+ else {
193
+ console.log(chalk.red('\nāœ— Configuration has validation errors:\n'));
194
+ for (const error of result.error.errors) {
195
+ const path = error.path.length > 0 ? error.path.join('.') : '(root)';
196
+ console.log(chalk.red(` • ${path}: ${error.message}`));
197
+ }
198
+ console.log('');
199
+ console.log(chalk.yellow('Fix the errors above and run validation again.'));
200
+ console.log('');
201
+ }
202
+ process.exitCode = 1;
203
+ }
204
+ }
205
+ catch (error) {
206
+ spinner.fail('Failed to validate configuration');
207
+ console.error(chalk.red(`\nError: ${error}`));
208
+ process.exitCode = 1;
209
+ }
210
+ }
211
+ // =============================================================================
212
+ // Helpers
213
+ // =============================================================================
214
+ function formatDuration(seconds) {
215
+ if (seconds < 60) {
216
+ return `${seconds}s`;
217
+ }
218
+ else if (seconds < 3600) {
219
+ return `${Math.floor(seconds / 60)}m`;
220
+ }
221
+ else if (seconds < 86400) {
222
+ const hours = Math.floor(seconds / 3600);
223
+ const mins = Math.floor((seconds % 3600) / 60);
224
+ return mins > 0 ? `${hours}h ${mins}m` : `${hours}h`;
225
+ }
226
+ else {
227
+ const days = Math.floor(seconds / 86400);
228
+ return `${days}d`;
229
+ }
230
+ }
231
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Deploy Command
3
+ *
4
+ * Handles deployment of Authrim workers to Cloudflare.
5
+ */
6
+ export interface DeployCommandOptions {
7
+ config?: string;
8
+ env?: string;
9
+ component?: string;
10
+ dryRun?: boolean;
11
+ skipSecrets?: boolean;
12
+ skipUi?: boolean;
13
+ parallel?: boolean;
14
+ yes?: boolean;
15
+ keysDir?: string;
16
+ }
17
+ export declare function deployCommand(options: DeployCommandOptions): Promise<void>;
18
+ export declare function statusCommand(options: {
19
+ config?: string;
20
+ }): Promise<void>;
21
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0BH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6CD,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0OhF;AAMD,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD/E"}
@@ -0,0 +1,304 @@
1
+ /**
2
+ * Deploy Command
3
+ *
4
+ * Handles deployment of Authrim workers to Cloudflare.
5
+ */
6
+ import chalk from 'chalk';
7
+ import ora from 'ora';
8
+ import { confirm } from '@inquirer/prompts';
9
+ import { existsSync } from 'node:fs';
10
+ import { join, resolve } from 'node:path';
11
+ import { readFile } from 'node:fs/promises';
12
+ import { AuthrimConfigSchema } from '../../core/config.js';
13
+ import { loadLockFile, saveLockFile } from '../../core/lock.js';
14
+ import { deployAll, uploadSecrets, deployPages, updateLockWithDeployments, } from '../../core/deploy.js';
15
+ import { isWranglerInstalled, checkAuth } from '../../core/cloudflare.js';
16
+ import { completeInitialSetup, displaySetupInstructions } from '../../core/admin.js';
17
+ // =============================================================================
18
+ // Helpers
19
+ // =============================================================================
20
+ async function loadConfig(configPath) {
21
+ if (!existsSync(configPath)) {
22
+ return null;
23
+ }
24
+ try {
25
+ const content = await readFile(configPath, 'utf-8');
26
+ const data = JSON.parse(content);
27
+ return AuthrimConfigSchema.parse(data);
28
+ }
29
+ catch (error) {
30
+ console.error(chalk.red(`Failed to load config: ${error}`));
31
+ return null;
32
+ }
33
+ }
34
+ async function loadSecretsFromKeys(keysDir) {
35
+ const secrets = {};
36
+ const secretFiles = [
37
+ { file: 'private.pem', name: 'PRIVATE_KEY_PEM' },
38
+ { file: 'rp_token_encryption_key.txt', name: 'RP_TOKEN_ENCRYPTION_KEY' },
39
+ { file: 'admin_api_secret.txt', name: 'ADMIN_API_SECRET' },
40
+ { file: 'key_manager_secret.txt', name: 'KEY_MANAGER_SECRET' },
41
+ ];
42
+ for (const { file, name } of secretFiles) {
43
+ const filePath = join(keysDir, file);
44
+ if (existsSync(filePath)) {
45
+ secrets[name] = await readFile(filePath, 'utf-8');
46
+ }
47
+ }
48
+ return secrets;
49
+ }
50
+ // =============================================================================
51
+ // Deploy Command
52
+ // =============================================================================
53
+ export async function deployCommand(options) {
54
+ console.log(chalk.bold('\nšŸš€ Authrim Deploy\n'));
55
+ // Check prerequisites
56
+ const spinner = ora('Checking prerequisites...').start();
57
+ if (!(await isWranglerInstalled())) {
58
+ spinner.fail('Wrangler is not installed');
59
+ console.log(chalk.yellow('\nInstall wrangler:'));
60
+ console.log(' npm install -g wrangler');
61
+ process.exit(1);
62
+ }
63
+ const auth = await checkAuth();
64
+ if (!auth.isLoggedIn) {
65
+ spinner.fail('Not logged in to Cloudflare');
66
+ console.log(chalk.yellow('\nLogin with:'));
67
+ console.log(' wrangler login');
68
+ process.exit(1);
69
+ }
70
+ spinner.succeed(`Logged in as ${auth.email || 'unknown'}`);
71
+ // Find config file
72
+ const configPath = options.config || 'authrim-config.json';
73
+ const config = await loadConfig(configPath);
74
+ if (!config) {
75
+ console.error(chalk.red(`\nConfig file not found: ${configPath}`));
76
+ console.log(chalk.yellow('Run "authrim-setup init" first to create a config.'));
77
+ process.exit(1);
78
+ }
79
+ const env = options.env || config.environment.prefix;
80
+ const rootDir = resolve('.');
81
+ console.log(chalk.cyan(`\nEnvironment: ${env}`));
82
+ console.log(chalk.cyan(`Config: ${configPath}`));
83
+ // Load lock file
84
+ const lockPath = 'authrim-lock.json';
85
+ const lock = await loadLockFile(lockPath);
86
+ if (!lock) {
87
+ console.error(chalk.red(`\nLock file not found: ${lockPath}`));
88
+ console.log(chalk.yellow('Run "authrim-setup init" first to provision resources.'));
89
+ process.exit(1);
90
+ }
91
+ // Determine what to deploy
92
+ let componentsToDeply;
93
+ if (options.component) {
94
+ // Deploy single component
95
+ componentsToDeply = [options.component];
96
+ console.log(chalk.cyan(`\nDeploying single component: ${options.component}`));
97
+ }
98
+ else {
99
+ // Deploy all enabled components
100
+ const enabledComponents = ['ar-lib-core', 'ar-discovery'];
101
+ // Always include core components
102
+ enabledComponents.push('ar-auth', 'ar-token', 'ar-userinfo', 'ar-management');
103
+ // Add optional components based on config
104
+ if (config.components.saml)
105
+ enabledComponents.push('ar-saml');
106
+ if (config.components.async)
107
+ enabledComponents.push('ar-async');
108
+ if (config.components.vc)
109
+ enabledComponents.push('ar-vc');
110
+ if (config.components.bridge)
111
+ enabledComponents.push('ar-bridge');
112
+ // Router is always last
113
+ enabledComponents.push('ar-router');
114
+ componentsToDeply = enabledComponents;
115
+ console.log(chalk.cyan(`\nComponents to deploy: ${enabledComponents.length}`));
116
+ for (const comp of enabledComponents) {
117
+ console.log(chalk.gray(` • ${comp}`));
118
+ }
119
+ }
120
+ // Confirm deployment
121
+ if (!options.yes) {
122
+ const confirmed = await confirm({
123
+ message: options.dryRun ? 'Run deployment in dry-run mode?' : 'Start deployment?',
124
+ default: true,
125
+ });
126
+ if (!confirmed) {
127
+ console.log(chalk.yellow('Deployment cancelled.'));
128
+ return;
129
+ }
130
+ }
131
+ console.log('');
132
+ // Upload secrets first (if not skipped)
133
+ if (!options.skipSecrets && !options.component) {
134
+ const keysDir = config.keys.secretsPath || '.keys';
135
+ if (existsSync(keysDir)) {
136
+ console.log(chalk.bold('šŸ“¦ Uploading secrets...\n'));
137
+ const secrets = await loadSecretsFromKeys(keysDir);
138
+ if (Object.keys(secrets).length > 0) {
139
+ const secretResult = await uploadSecrets(secrets, {
140
+ env,
141
+ rootDir,
142
+ dryRun: options.dryRun,
143
+ onProgress: (msg) => console.log(msg),
144
+ });
145
+ if (!secretResult.success) {
146
+ console.log(chalk.yellow('\nāš ļø Some secrets failed to upload'));
147
+ for (const error of secretResult.errors) {
148
+ console.log(chalk.red(` • ${error}`));
149
+ }
150
+ }
151
+ }
152
+ else {
153
+ console.log(chalk.yellow('No secrets found in .keys directory'));
154
+ }
155
+ console.log('');
156
+ }
157
+ }
158
+ // Deploy workers
159
+ console.log(chalk.bold('šŸ”Ø Deploying workers...\n'));
160
+ const deployOptions = {
161
+ env,
162
+ rootDir,
163
+ dryRun: options.dryRun,
164
+ maxRetries: 3,
165
+ retryDelayMs: 5000,
166
+ onProgress: (msg) => console.log(msg),
167
+ onError: (component, error) => {
168
+ console.error(chalk.red(`Error in ${component}: ${error.message}`));
169
+ },
170
+ };
171
+ const summary = await deployAll(deployOptions, componentsToDeply);
172
+ // Update lock file with deployment results
173
+ if (!options.dryRun && summary.successCount > 0) {
174
+ const updatedLock = updateLockWithDeployments(lock, summary.results);
175
+ await saveLockFile(updatedLock, lockPath);
176
+ console.log(chalk.gray(`\nLock file updated: ${lockPath}`));
177
+ }
178
+ // Deploy Pages UI (if enabled and not skipped)
179
+ if (!options.skipUi &&
180
+ !options.component &&
181
+ (config.components.loginUi || config.components.adminUi)) {
182
+ console.log(chalk.bold('\nšŸ“± Deploying UI to Cloudflare Pages...\n'));
183
+ const pagesResult = await deployPages({
184
+ ...deployOptions,
185
+ projectName: `${env}-ar-ui`,
186
+ });
187
+ if (pagesResult.success) {
188
+ console.log(chalk.green(`\nāœ“ UI deployed: ${pagesResult.projectName}`));
189
+ }
190
+ else {
191
+ console.log(chalk.yellow(`\nāš ļø UI deployment failed: ${pagesResult.error}`));
192
+ }
193
+ }
194
+ // Final summary
195
+ console.log(chalk.bold('\n━━━ Deployment Complete ━━━\n'));
196
+ if (summary.failedCount === 0) {
197
+ console.log(chalk.green('āœ… All components deployed successfully!\n'));
198
+ }
199
+ else {
200
+ console.log(chalk.yellow(`āš ļø ${summary.successCount}/${summary.totalComponents} components deployed\n`));
201
+ }
202
+ // Print URLs
203
+ if (!options.dryRun && config.urls) {
204
+ console.log(chalk.bold('URLs:'));
205
+ const apiUrl = config.urls.api?.custom || config.urls.api?.auto;
206
+ const loginUrl = config.urls.loginUi?.custom || config.urls.loginUi?.auto;
207
+ const adminUrl = config.urls.adminUi?.custom || config.urls.adminUi?.auto;
208
+ if (apiUrl)
209
+ console.log(chalk.cyan(` API: ${apiUrl}`));
210
+ if (loginUrl)
211
+ console.log(chalk.cyan(` Login UI: ${loginUrl}`));
212
+ if (adminUrl)
213
+ console.log(chalk.cyan(` Admin UI: ${adminUrl}`));
214
+ console.log('');
215
+ }
216
+ // Initial admin setup (only if all components deployed successfully)
217
+ if (!options.dryRun && summary.failedCount === 0) {
218
+ const baseUrl = config.urls?.api?.custom || config.urls?.api?.auto;
219
+ if (baseUrl) {
220
+ const setupSpinner = ora('Setting up initial admin...').start();
221
+ try {
222
+ const setupResult = await completeInitialSetup({
223
+ env,
224
+ baseUrl,
225
+ keysDir: options.keysDir || '.keys',
226
+ onProgress: (msg) => {
227
+ setupSpinner.text = msg;
228
+ },
229
+ });
230
+ if (setupResult.alreadyCompleted) {
231
+ setupSpinner.succeed('Initial admin setup already completed');
232
+ }
233
+ else if (setupResult.success && setupResult.setupUrl) {
234
+ setupSpinner.succeed('Setup token stored');
235
+ displaySetupInstructions(setupResult.setupUrl, {
236
+ color: true,
237
+ onOutput: console.log,
238
+ });
239
+ }
240
+ else if (!setupResult.success) {
241
+ setupSpinner.warn(`Initial admin setup skipped: ${setupResult.error}`);
242
+ console.log(chalk.gray(' You can run this manually later with the setup token.'));
243
+ }
244
+ }
245
+ catch (error) {
246
+ setupSpinner.warn('Initial admin setup skipped');
247
+ console.log(chalk.gray(` Error: ${error instanceof Error ? error.message : String(error)}`));
248
+ console.log(chalk.gray(' You can run this manually later with the setup token.'));
249
+ }
250
+ }
251
+ }
252
+ }
253
+ // =============================================================================
254
+ // Status Command
255
+ // =============================================================================
256
+ export async function statusCommand(options) {
257
+ console.log(chalk.bold('\nšŸ“Š Authrim Deployment Status\n'));
258
+ const configPath = options.config || 'authrim-config.json';
259
+ const config = await loadConfig(configPath);
260
+ if (!config) {
261
+ console.log(chalk.yellow(`Config not found: ${configPath}`));
262
+ return;
263
+ }
264
+ const lockPath = 'authrim-lock.json';
265
+ const lock = await loadLockFile(lockPath);
266
+ if (!lock) {
267
+ console.log(chalk.yellow('No deployment found (authrim-lock.json not found)'));
268
+ return;
269
+ }
270
+ console.log(chalk.bold('Environment:'), lock.env);
271
+ console.log(chalk.bold('Created:'), lock.createdAt);
272
+ console.log(chalk.bold('Updated:'), lock.updatedAt || 'N/A');
273
+ // D1 Databases
274
+ console.log(chalk.bold('\nD1 Databases:'));
275
+ for (const [binding, db] of Object.entries(lock.d1)) {
276
+ console.log(chalk.cyan(` ${binding}: ${db.name}`));
277
+ console.log(chalk.gray(` ID: ${db.id}`));
278
+ }
279
+ // KV Namespaces
280
+ console.log(chalk.bold('\nKV Namespaces:'));
281
+ for (const [binding, kv] of Object.entries(lock.kv)) {
282
+ console.log(chalk.cyan(` ${binding}: ${kv.name}`));
283
+ console.log(chalk.gray(` ID: ${kv.id}`));
284
+ }
285
+ // Workers
286
+ if (lock.workers && Object.keys(lock.workers).length > 0) {
287
+ console.log(chalk.bold('\nWorkers:'));
288
+ for (const [name, worker] of Object.entries(lock.workers)) {
289
+ const status = worker.deployedAt ? chalk.green('āœ“') : chalk.yellow('ā—‹');
290
+ console.log(`${status} ${chalk.cyan(name)}: ${worker.name}`);
291
+ if (worker.deployedAt) {
292
+ console.log(chalk.gray(` Deployed: ${worker.deployedAt}`));
293
+ }
294
+ if (worker.version) {
295
+ console.log(chalk.gray(` Version: ${worker.version}`));
296
+ }
297
+ }
298
+ }
299
+ else {
300
+ console.log(chalk.yellow('\nNo workers deployed yet.'));
301
+ }
302
+ console.log('');
303
+ }
304
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Init Command - Setup wizard for Authrim
3
+ *
4
+ * Provides both CLI and Web UI modes for setting up Authrim.
5
+ */
6
+ interface InitOptions {
7
+ cli?: boolean;
8
+ config?: string;
9
+ keep?: string;
10
+ env?: string;
11
+ }
12
+ export declare function initCommand(options: InitOptions): Promise<void>;
13
+ export {};
14
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwCH,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAoHD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuErE"}