@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,230 @@
1
+ /**
2
+ * Authrim Lock File Module
3
+ *
4
+ * Manages authrim-lock.json which records created resource IDs.
5
+ * This file allows re-deployment and resource management.
6
+ */
7
+ import { writeFile, readFile } from 'node:fs/promises';
8
+ import { existsSync } from 'node:fs';
9
+ import { z } from 'zod';
10
+ // =============================================================================
11
+ // Schema
12
+ // =============================================================================
13
+ const ResourceEntrySchema = z.object({
14
+ name: z.string(),
15
+ id: z.string(),
16
+ });
17
+ const KVResourceEntrySchema = ResourceEntrySchema.extend({
18
+ previewId: z.string().optional(),
19
+ });
20
+ const WorkerEntrySchema = z.object({
21
+ name: z.string(),
22
+ deployedAt: z.string().datetime().optional(),
23
+ version: z.string().optional(),
24
+ });
25
+ export const AuthrimLockSchema = z.object({
26
+ version: z.string().default('1.0.0'),
27
+ createdAt: z.string().datetime(),
28
+ updatedAt: z.string().datetime().optional(),
29
+ env: z.string(),
30
+ d1: z.record(ResourceEntrySchema).default({}),
31
+ kv: z.record(KVResourceEntrySchema).default({}),
32
+ queues: z.record(ResourceEntrySchema).optional(),
33
+ r2: z.record(z.object({ name: z.string() })).optional(),
34
+ workers: z.record(WorkerEntrySchema).optional(),
35
+ });
36
+ // =============================================================================
37
+ // Lock File Operations
38
+ // =============================================================================
39
+ /**
40
+ * Create a new lock file from provisioned resources
41
+ */
42
+ export function createLockFile(env, resources) {
43
+ const now = new Date().toISOString();
44
+ const lock = {
45
+ version: '1.0.0',
46
+ createdAt: now,
47
+ updatedAt: now,
48
+ env,
49
+ d1: {},
50
+ kv: {},
51
+ };
52
+ // Add D1 databases
53
+ for (const db of resources.d1) {
54
+ lock.d1[db.binding] = {
55
+ name: db.name,
56
+ id: db.id,
57
+ };
58
+ }
59
+ // Add KV namespaces
60
+ for (const kv of resources.kv) {
61
+ lock.kv[kv.binding] = {
62
+ name: kv.name,
63
+ id: kv.id,
64
+ previewId: kv.previewId,
65
+ };
66
+ }
67
+ // Add Queues
68
+ if (resources.queues.length > 0) {
69
+ lock.queues = {};
70
+ for (const q of resources.queues) {
71
+ lock.queues[q.binding] = {
72
+ name: q.name,
73
+ id: q.id,
74
+ };
75
+ }
76
+ }
77
+ // Add R2 buckets
78
+ if (resources.r2.length > 0) {
79
+ lock.r2 = {};
80
+ for (const r of resources.r2) {
81
+ lock.r2[r.binding] = {
82
+ name: r.name,
83
+ };
84
+ }
85
+ }
86
+ return lock;
87
+ }
88
+ /**
89
+ * Save lock file to disk
90
+ */
91
+ export async function saveLockFile(lock, path = 'authrim-lock.json') {
92
+ lock.updatedAt = new Date().toISOString();
93
+ await writeFile(path, JSON.stringify(lock, null, 2), 'utf-8');
94
+ }
95
+ /** Error class for lock file operations */
96
+ export class LockFileError extends Error {
97
+ cause;
98
+ constructor(message, cause) {
99
+ super(message);
100
+ this.cause = cause;
101
+ this.name = 'LockFileError';
102
+ }
103
+ }
104
+ /**
105
+ * Load lock file from disk
106
+ * @throws LockFileError if file exists but cannot be parsed
107
+ */
108
+ export async function loadLockFile(path = 'authrim-lock.json') {
109
+ if (!existsSync(path)) {
110
+ return null;
111
+ }
112
+ try {
113
+ const content = await readFile(path, 'utf-8');
114
+ const data = JSON.parse(content);
115
+ return AuthrimLockSchema.parse(data);
116
+ }
117
+ catch (error) {
118
+ // Re-throw with context for better debugging
119
+ if (error instanceof SyntaxError) {
120
+ throw new LockFileError('Invalid JSON in lock file', error);
121
+ }
122
+ if (error instanceof z.ZodError) {
123
+ throw new LockFileError(`Invalid lock file schema: ${error.issues.map((i) => i.message).join(', ')}`, error);
124
+ }
125
+ throw new LockFileError('Failed to read lock file', error instanceof Error ? error : undefined);
126
+ }
127
+ }
128
+ /**
129
+ * Update worker deployment info in lock file
130
+ */
131
+ export function updateWorkerDeployment(lock, workerName, deploymentName, version) {
132
+ if (!lock.workers) {
133
+ lock.workers = {};
134
+ }
135
+ lock.workers[workerName] = {
136
+ name: deploymentName,
137
+ deployedAt: new Date().toISOString(),
138
+ version,
139
+ };
140
+ return lock;
141
+ }
142
+ /**
143
+ * Convert lock file to ResourceIds format for wrangler.ts
144
+ */
145
+ export function lockToResourceIds(lock) {
146
+ return {
147
+ d1: lock.d1,
148
+ kv: Object.fromEntries(Object.entries(lock.kv).map(([key, value]) => [key, { id: value.id, name: value.name }])),
149
+ queues: lock.queues,
150
+ r2: lock.r2,
151
+ };
152
+ }
153
+ /**
154
+ * Merge two lock files (for updating existing)
155
+ */
156
+ export function mergeLockFiles(existing, newData) {
157
+ return {
158
+ ...existing,
159
+ ...newData,
160
+ d1: { ...existing.d1, ...newData.d1 },
161
+ kv: { ...existing.kv, ...newData.kv },
162
+ queues: { ...existing.queues, ...newData.queues },
163
+ r2: { ...existing.r2, ...newData.r2 },
164
+ workers: { ...existing.workers, ...newData.workers },
165
+ updatedAt: new Date().toISOString(),
166
+ };
167
+ }
168
+ /**
169
+ * Validate that all required resources exist in lock file
170
+ */
171
+ export function validateLockFile(lock) {
172
+ const missing = [];
173
+ // Check required D1 databases
174
+ const requiredD1 = ['DB', 'PII_DB'];
175
+ for (const binding of requiredD1) {
176
+ if (!lock.d1[binding]) {
177
+ missing.push(`D1: ${binding}`);
178
+ }
179
+ }
180
+ // Check required KV namespaces
181
+ const requiredKV = ['CLIENTS_CACHE', 'SETTINGS', 'AUTHRIM_CONFIG', 'USER_CACHE'];
182
+ for (const binding of requiredKV) {
183
+ if (!lock.kv[binding]) {
184
+ missing.push(`KV: ${binding}`);
185
+ }
186
+ }
187
+ return {
188
+ valid: missing.length === 0,
189
+ missing,
190
+ };
191
+ }
192
+ /**
193
+ * Generate summary of resources in lock file
194
+ */
195
+ export function getLockFileSummary(lock) {
196
+ const lines = [
197
+ `Environment: ${lock.env}`,
198
+ `Created: ${lock.createdAt}`,
199
+ `Updated: ${lock.updatedAt || 'N/A'}`,
200
+ '',
201
+ 'D1 Databases:',
202
+ ];
203
+ for (const [binding, db] of Object.entries(lock.d1)) {
204
+ lines.push(` • ${binding}: ${db.name} (${db.id.slice(0, 8)}...)`);
205
+ }
206
+ lines.push('', 'KV Namespaces:');
207
+ for (const [binding, kv] of Object.entries(lock.kv)) {
208
+ lines.push(` • ${binding}: ${kv.name} (${kv.id.slice(0, 8)}...)`);
209
+ }
210
+ if (lock.queues && Object.keys(lock.queues).length > 0) {
211
+ lines.push('', 'Queues:');
212
+ for (const [binding, q] of Object.entries(lock.queues)) {
213
+ lines.push(` • ${binding}: ${q.name}`);
214
+ }
215
+ }
216
+ if (lock.r2 && Object.keys(lock.r2).length > 0) {
217
+ lines.push('', 'R2 Buckets:');
218
+ for (const [binding, r] of Object.entries(lock.r2)) {
219
+ lines.push(` • ${binding}: ${r.name}`);
220
+ }
221
+ }
222
+ if (lock.workers && Object.keys(lock.workers).length > 0) {
223
+ lines.push('', 'Workers:');
224
+ for (const [name, w] of Object.entries(lock.workers)) {
225
+ lines.push(` • ${name}: ${w.name} (deployed: ${w.deployedAt || 'N/A'})`);
226
+ }
227
+ }
228
+ return lines.join('\n');
229
+ }
230
+ //# sourceMappingURL=lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/core/lock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Authrim Naming Convention Module
3
+ *
4
+ * Implements naming conventions consistent with existing source code:
5
+ * - Workers: {env}-ar-{component}
6
+ * - D1 Databases: {env}-authrim-{db-type}
7
+ * - KV Namespaces: {ENV}-{BINDING_NAME} (uppercase)
8
+ */
9
+ export declare const WORKER_COMPONENTS: readonly ["ar-lib-core", "ar-discovery", "ar-auth", "ar-token", "ar-userinfo", "ar-management", "ar-router", "ar-async", "ar-policy", "ar-saml", "ar-bridge", "ar-vc"];
10
+ export type WorkerComponent = (typeof WORKER_COMPONENTS)[number];
11
+ export declare const CORE_WORKER_COMPONENTS: WorkerComponent[];
12
+ export declare const OPTIONAL_WORKER_COMPONENTS: WorkerComponent[];
13
+ export declare const DURABLE_OBJECTS: readonly [{
14
+ readonly name: "SESSION_STORE";
15
+ readonly className: "SessionStore";
16
+ }, {
17
+ readonly name: "KEY_MANAGER";
18
+ readonly className: "KeyManager";
19
+ }, {
20
+ readonly name: "AUTH_CODE_STORE";
21
+ readonly className: "AuthorizationCodeStore";
22
+ }, {
23
+ readonly name: "REFRESH_TOKEN_ROTATOR";
24
+ readonly className: "RefreshTokenRotator";
25
+ }, {
26
+ readonly name: "CHALLENGE_STORE";
27
+ readonly className: "ChallengeStore";
28
+ }, {
29
+ readonly name: "RATE_LIMITER";
30
+ readonly className: "RateLimiterCounter";
31
+ }, {
32
+ readonly name: "PAR_REQUEST_STORE";
33
+ readonly className: "PARRequestStore";
34
+ }, {
35
+ readonly name: "DPOP_JTI_STORE";
36
+ readonly className: "DPoPJTIStore";
37
+ }, {
38
+ readonly name: "DEVICE_CODE_STORE";
39
+ readonly className: "DeviceCodeStore";
40
+ }, {
41
+ readonly name: "CIBA_REQUEST_STORE";
42
+ readonly className: "CIBARequestStore";
43
+ }, {
44
+ readonly name: "TOKEN_REVOCATION_STORE";
45
+ readonly className: "TokenRevocationStore";
46
+ }, {
47
+ readonly name: "VERSION_MANAGER";
48
+ readonly className: "VersionManager";
49
+ }, {
50
+ readonly name: "SAML_REQUEST_STORE";
51
+ readonly className: "SAMLRequestStore";
52
+ }, {
53
+ readonly name: "PERMISSION_CHANGE_HUB";
54
+ readonly className: "PermissionChangeHub";
55
+ }];
56
+ export type DurableObjectBinding = (typeof DURABLE_OBJECTS)[number];
57
+ export declare const KV_NAMESPACES: readonly ["CLIENTS_CACHE", "INITIAL_ACCESS_TOKENS", "SETTINGS", "REBAC_CACHE", "USER_CACHE", "AUTHRIM_CONFIG", "STATE_STORE", "CONSENT_CACHE"];
58
+ export type KVNamespace = (typeof KV_NAMESPACES)[number];
59
+ export declare const D1_DATABASES: readonly [{
60
+ readonly binding: "DB";
61
+ readonly dbType: "core-db";
62
+ }, {
63
+ readonly binding: "PII_DB";
64
+ readonly dbType: "pii-db";
65
+ }];
66
+ export type D1Database = (typeof D1_DATABASES)[number];
67
+ /**
68
+ * Generate Worker name
69
+ * Pattern: {env}-ar-{component}
70
+ *
71
+ * @example
72
+ * getWorkerName('prod', 'ar-auth') => 'prod-ar-auth'
73
+ * getWorkerName('conformance', 'ar-lib-core') => 'conformance-ar-lib-core'
74
+ */
75
+ export declare function getWorkerName(env: string, component: WorkerComponent): string;
76
+ /**
77
+ * Generate D1 Database name
78
+ * Pattern: {env}-authrim-{db-type}
79
+ *
80
+ * @example
81
+ * getD1DatabaseName('prod', 'core-db') => 'prod-authrim-core-db'
82
+ * getD1DatabaseName('staging', 'pii-db') => 'staging-authrim-pii-db'
83
+ */
84
+ export declare function getD1DatabaseName(env: string, dbType: string): string;
85
+ /**
86
+ * Generate KV Namespace name
87
+ * Pattern: {ENV}-{BINDING_NAME} (uppercase env)
88
+ *
89
+ * @example
90
+ * getKVNamespaceName('prod', 'CLIENTS_CACHE') => 'PROD-CLIENTS_CACHE'
91
+ * getKVNamespaceName('conformance', 'SETTINGS') => 'CONFORMANCE-SETTINGS'
92
+ */
93
+ export declare function getKVNamespaceName(env: string, bindingName: KVNamespace): string;
94
+ /**
95
+ * Generate Queue name
96
+ * Pattern: {env}-{queue-name}
97
+ *
98
+ * @example
99
+ * getQueueName('prod', 'audit-queue') => 'prod-audit-queue'
100
+ */
101
+ export declare function getQueueName(env: string, queueName: string): string;
102
+ /**
103
+ * Generate wrangler.toml filename for an environment
104
+ *
105
+ * @example
106
+ * getWranglerConfigFilename('prod') => 'wrangler.prod.toml'
107
+ * getWranglerConfigFilename('conformance') => 'wrangler.conformance.toml'
108
+ */
109
+ export declare function getWranglerConfigFilename(env: string): string;
110
+ /**
111
+ * Get the script_name for Durable Object bindings
112
+ * All DOs are defined in ar-lib-core
113
+ *
114
+ * @example
115
+ * getDOScriptName('prod') => 'prod-ar-lib-core'
116
+ */
117
+ export declare function getDOScriptName(env: string): string;
118
+ /**
119
+ * Generate auto URL for Workers (workers.dev domain)
120
+ *
121
+ * @example
122
+ * getAutoWorkerUrl('prod', 'ar-router', 'abc123') => 'https://prod-ar-router.abc123.workers.dev'
123
+ */
124
+ export declare function getAutoWorkerUrl(env: string, component: WorkerComponent, accountSubdomain: string): string;
125
+ /**
126
+ * Generate auto URL for Pages (pages.dev domain)
127
+ *
128
+ * @example
129
+ * getAutoPagesUrl('prod', 'ar-ui') => 'https://prod-ar-ui.pages.dev'
130
+ */
131
+ export declare function getAutoPagesUrl(env: string, projectName: string): string;
132
+ /**
133
+ * Deployment levels - components at the same level can be deployed in parallel
134
+ */
135
+ export declare const DEPLOYMENT_LEVELS: WorkerComponent[][];
136
+ /**
137
+ * Get deployment order for specified components
138
+ * Returns array of levels, each level contains components that can be deployed in parallel
139
+ */
140
+ export declare function getDeploymentOrder(enabledComponents: Set<WorkerComponent>): WorkerComponent[][];
141
+ /**
142
+ * Get all components that should be enabled based on configuration
143
+ */
144
+ export declare function getEnabledComponents(options: {
145
+ saml?: boolean;
146
+ async?: boolean;
147
+ vc?: boolean;
148
+ bridge?: boolean;
149
+ policy?: boolean;
150
+ }): Set<WorkerComponent>;
151
+ //# sourceMappingURL=naming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/core/naming.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,eAAO,MAAM,iBAAiB,wKAapB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAGjE,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAQnD,CAAC;AAGF,eAAO,MAAM,0BAA0B,EAAE,eAAe,EAMvD,CAAC;AAMF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAelB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAMpE,eAAO,MAAM,aAAa,gJAShB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAMzD,eAAO,MAAM,YAAY;;;;;;EAGf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAMvD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,MAAM,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAEhF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,eAAe,EAC1B,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAExE;AAMD;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAAe,EAAE,EAWhD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,iBAAiB,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,eAAe,EAAE,EAAE,CAI/F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,GAAG,CAAC,eAAe,CAAC,CAUvB"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Authrim Naming Convention Module
3
+ *
4
+ * Implements naming conventions consistent with existing source code:
5
+ * - Workers: {env}-ar-{component}
6
+ * - D1 Databases: {env}-authrim-{db-type}
7
+ * - KV Namespaces: {ENV}-{BINDING_NAME} (uppercase)
8
+ */
9
+ // =============================================================================
10
+ // Worker Components
11
+ // =============================================================================
12
+ export const WORKER_COMPONENTS = [
13
+ 'ar-lib-core', // Durable Objects definition (must deploy first)
14
+ 'ar-discovery', // OpenID Discovery
15
+ 'ar-auth', // Authorization endpoint
16
+ 'ar-token', // Token endpoint
17
+ 'ar-userinfo', // UserInfo endpoint
18
+ 'ar-management', // Management API
19
+ 'ar-router', // Service Bindings router (must deploy last)
20
+ 'ar-async', // Async queue processing
21
+ 'ar-policy', // Policy service (ReBAC)
22
+ 'ar-saml', // SAML IdP/SP
23
+ 'ar-bridge', // External IdP bridge
24
+ 'ar-vc', // Verifiable Credentials
25
+ ];
26
+ // Core components that are always deployed
27
+ export const CORE_WORKER_COMPONENTS = [
28
+ 'ar-lib-core',
29
+ 'ar-discovery',
30
+ 'ar-auth',
31
+ 'ar-token',
32
+ 'ar-userinfo',
33
+ 'ar-management',
34
+ 'ar-router',
35
+ ];
36
+ // Optional components
37
+ export const OPTIONAL_WORKER_COMPONENTS = [
38
+ 'ar-async',
39
+ 'ar-policy',
40
+ 'ar-saml',
41
+ 'ar-bridge',
42
+ 'ar-vc',
43
+ ];
44
+ // =============================================================================
45
+ // Durable Objects
46
+ // =============================================================================
47
+ export const DURABLE_OBJECTS = [
48
+ { name: 'SESSION_STORE', className: 'SessionStore' },
49
+ { name: 'KEY_MANAGER', className: 'KeyManager' },
50
+ { name: 'AUTH_CODE_STORE', className: 'AuthorizationCodeStore' },
51
+ { name: 'REFRESH_TOKEN_ROTATOR', className: 'RefreshTokenRotator' },
52
+ { name: 'CHALLENGE_STORE', className: 'ChallengeStore' },
53
+ { name: 'RATE_LIMITER', className: 'RateLimiterCounter' },
54
+ { name: 'PAR_REQUEST_STORE', className: 'PARRequestStore' },
55
+ { name: 'DPOP_JTI_STORE', className: 'DPoPJTIStore' },
56
+ { name: 'DEVICE_CODE_STORE', className: 'DeviceCodeStore' },
57
+ { name: 'CIBA_REQUEST_STORE', className: 'CIBARequestStore' },
58
+ { name: 'TOKEN_REVOCATION_STORE', className: 'TokenRevocationStore' },
59
+ { name: 'VERSION_MANAGER', className: 'VersionManager' },
60
+ { name: 'SAML_REQUEST_STORE', className: 'SAMLRequestStore' },
61
+ { name: 'PERMISSION_CHANGE_HUB', className: 'PermissionChangeHub' },
62
+ ];
63
+ // =============================================================================
64
+ // KV Namespaces
65
+ // =============================================================================
66
+ export const KV_NAMESPACES = [
67
+ 'CLIENTS_CACHE',
68
+ 'INITIAL_ACCESS_TOKENS',
69
+ 'SETTINGS',
70
+ 'REBAC_CACHE',
71
+ 'USER_CACHE',
72
+ 'AUTHRIM_CONFIG',
73
+ 'STATE_STORE',
74
+ 'CONSENT_CACHE',
75
+ ];
76
+ // =============================================================================
77
+ // D1 Databases
78
+ // =============================================================================
79
+ export const D1_DATABASES = [
80
+ { binding: 'DB', dbType: 'core-db' },
81
+ { binding: 'PII_DB', dbType: 'pii-db' },
82
+ ];
83
+ // =============================================================================
84
+ // Naming Functions
85
+ // =============================================================================
86
+ /**
87
+ * Generate Worker name
88
+ * Pattern: {env}-ar-{component}
89
+ *
90
+ * @example
91
+ * getWorkerName('prod', 'ar-auth') => 'prod-ar-auth'
92
+ * getWorkerName('conformance', 'ar-lib-core') => 'conformance-ar-lib-core'
93
+ */
94
+ export function getWorkerName(env, component) {
95
+ return `${env}-${component}`;
96
+ }
97
+ /**
98
+ * Generate D1 Database name
99
+ * Pattern: {env}-authrim-{db-type}
100
+ *
101
+ * @example
102
+ * getD1DatabaseName('prod', 'core-db') => 'prod-authrim-core-db'
103
+ * getD1DatabaseName('staging', 'pii-db') => 'staging-authrim-pii-db'
104
+ */
105
+ export function getD1DatabaseName(env, dbType) {
106
+ return `${env}-authrim-${dbType}`;
107
+ }
108
+ /**
109
+ * Generate KV Namespace name
110
+ * Pattern: {ENV}-{BINDING_NAME} (uppercase env)
111
+ *
112
+ * @example
113
+ * getKVNamespaceName('prod', 'CLIENTS_CACHE') => 'PROD-CLIENTS_CACHE'
114
+ * getKVNamespaceName('conformance', 'SETTINGS') => 'CONFORMANCE-SETTINGS'
115
+ */
116
+ export function getKVNamespaceName(env, bindingName) {
117
+ return `${env.toUpperCase()}-${bindingName}`;
118
+ }
119
+ /**
120
+ * Generate Queue name
121
+ * Pattern: {env}-{queue-name}
122
+ *
123
+ * @example
124
+ * getQueueName('prod', 'audit-queue') => 'prod-audit-queue'
125
+ */
126
+ export function getQueueName(env, queueName) {
127
+ return `${env}-${queueName}`;
128
+ }
129
+ /**
130
+ * Generate wrangler.toml filename for an environment
131
+ *
132
+ * @example
133
+ * getWranglerConfigFilename('prod') => 'wrangler.prod.toml'
134
+ * getWranglerConfigFilename('conformance') => 'wrangler.conformance.toml'
135
+ */
136
+ export function getWranglerConfigFilename(env) {
137
+ return `wrangler.${env}.toml`;
138
+ }
139
+ /**
140
+ * Get the script_name for Durable Object bindings
141
+ * All DOs are defined in ar-lib-core
142
+ *
143
+ * @example
144
+ * getDOScriptName('prod') => 'prod-ar-lib-core'
145
+ */
146
+ export function getDOScriptName(env) {
147
+ return getWorkerName(env, 'ar-lib-core');
148
+ }
149
+ /**
150
+ * Generate auto URL for Workers (workers.dev domain)
151
+ *
152
+ * @example
153
+ * getAutoWorkerUrl('prod', 'ar-router', 'abc123') => 'https://prod-ar-router.abc123.workers.dev'
154
+ */
155
+ export function getAutoWorkerUrl(env, component, accountSubdomain) {
156
+ return `https://${getWorkerName(env, component)}.${accountSubdomain}.workers.dev`;
157
+ }
158
+ /**
159
+ * Generate auto URL for Pages (pages.dev domain)
160
+ *
161
+ * @example
162
+ * getAutoPagesUrl('prod', 'ar-ui') => 'https://prod-ar-ui.pages.dev'
163
+ */
164
+ export function getAutoPagesUrl(env, projectName) {
165
+ return `https://${env}-${projectName}.pages.dev`;
166
+ }
167
+ // =============================================================================
168
+ // Deployment Order
169
+ // =============================================================================
170
+ /**
171
+ * Deployment levels - components at the same level can be deployed in parallel
172
+ */
173
+ export const DEPLOYMENT_LEVELS = [
174
+ // Level 0: DO definitions (must be first)
175
+ ['ar-lib-core'],
176
+ // Level 1: Discovery
177
+ ['ar-discovery'],
178
+ // Level 2: Core OIDC endpoints (parallel)
179
+ ['ar-auth', 'ar-token', 'ar-userinfo', 'ar-management'],
180
+ // Level 3: Optional components (parallel)
181
+ ['ar-async', 'ar-policy', 'ar-saml', 'ar-bridge', 'ar-vc'],
182
+ // Level 4: Router with Service Bindings (must be last)
183
+ ['ar-router'],
184
+ ];
185
+ /**
186
+ * Get deployment order for specified components
187
+ * Returns array of levels, each level contains components that can be deployed in parallel
188
+ */
189
+ export function getDeploymentOrder(enabledComponents) {
190
+ return DEPLOYMENT_LEVELS.map((level) => level.filter((component) => enabledComponents.has(component))).filter((level) => level.length > 0);
191
+ }
192
+ /**
193
+ * Get all components that should be enabled based on configuration
194
+ */
195
+ export function getEnabledComponents(options) {
196
+ const components = new Set(CORE_WORKER_COMPONENTS);
197
+ if (options.saml)
198
+ components.add('ar-saml');
199
+ if (options.async)
200
+ components.add('ar-async');
201
+ if (options.vc)
202
+ components.add('ar-vc');
203
+ if (options.bridge)
204
+ components.add('ar-bridge');
205
+ if (options.policy)
206
+ components.add('ar-policy');
207
+ return components;
208
+ }
209
+ //# sourceMappingURL=naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/core/naming.ts"],"names":[],"mappings":"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"}