@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.
- package/README.md +303 -0
- package/dist/__tests__/config.test.d.ts +5 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +115 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/keys.test.d.ts +5 -0
- package/dist/__tests__/keys.test.d.ts.map +1 -0
- package/dist/__tests__/keys.test.js +87 -0
- package/dist/__tests__/keys.test.js.map +1 -0
- package/dist/__tests__/naming.test.d.ts +5 -0
- package/dist/__tests__/naming.test.d.ts.map +1 -0
- package/dist/__tests__/naming.test.js +84 -0
- package/dist/__tests__/naming.test.js.map +1 -0
- package/dist/cli/commands/config.d.ts +13 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +231 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/deploy.d.ts +21 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js +304 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/init.d.ts +14 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +1248 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/core/admin.d.ts +64 -0
- package/dist/core/admin.d.ts.map +1 -0
- package/dist/core/admin.js +247 -0
- package/dist/core/admin.js.map +1 -0
- package/dist/core/cloudflare.d.ts +157 -0
- package/dist/core/cloudflare.d.ts.map +1 -0
- package/dist/core/cloudflare.js +452 -0
- package/dist/core/cloudflare.js.map +1 -0
- package/dist/core/config.d.ts +891 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +208 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/deploy.d.ts +81 -0
- package/dist/core/deploy.d.ts.map +1 -0
- package/dist/core/deploy.js +389 -0
- package/dist/core/deploy.js.map +1 -0
- package/dist/core/keys.d.ts +111 -0
- package/dist/core/keys.d.ts.map +1 -0
- package/dist/core/keys.js +287 -0
- package/dist/core/keys.js.map +1 -0
- package/dist/core/lock.d.ts +220 -0
- package/dist/core/lock.d.ts.map +1 -0
- package/dist/core/lock.js +230 -0
- package/dist/core/lock.js.map +1 -0
- package/dist/core/naming.d.ts +151 -0
- package/dist/core/naming.d.ts.map +1 -0
- package/dist/core/naming.js +209 -0
- package/dist/core/naming.js.map +1 -0
- package/dist/core/source.d.ts +68 -0
- package/dist/core/source.d.ts.map +1 -0
- package/dist/core/source.js +285 -0
- package/dist/core/source.js.map +1 -0
- package/dist/core/wrangler.d.ts +87 -0
- package/dist/core/wrangler.d.ts.map +1 -0
- package/dist/core/wrangler.js +398 -0
- package/dist/core/wrangler.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +117 -0
- package/dist/index.js.map +1 -0
- package/dist/web/api.d.ts +21 -0
- package/dist/web/api.d.ts.map +1 -0
- package/dist/web/api.js +423 -0
- package/dist/web/api.js.map +1 -0
- package/dist/web/server.d.ts +12 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +112 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web/ui.d.ts +7 -0
- package/dist/web/ui.d.ts.map +1 -0
- package/dist/web/ui.js +765 -0
- package/dist/web/ui.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authrim Key Generation Module
|
|
3
|
+
*
|
|
4
|
+
* Generates RSA key pairs for JWT signing and other cryptographic secrets.
|
|
5
|
+
* Based on the existing setup-keys.sh script functionality.
|
|
6
|
+
*/
|
|
7
|
+
import { randomBytes, generateKeyPairSync, createPublicKey, createPrivateKey } from 'node:crypto';
|
|
8
|
+
import { writeFile, mkdir, readFile } from 'node:fs/promises';
|
|
9
|
+
import { existsSync } from 'node:fs';
|
|
10
|
+
import { join, resolve } from 'node:path';
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// Key ID Generation
|
|
13
|
+
// =============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Generate a unique key ID (kid)
|
|
16
|
+
*
|
|
17
|
+
* Format: {prefix}-key-{timestamp}-{random}
|
|
18
|
+
*/
|
|
19
|
+
export function generateKeyId(prefix = 'dev') {
|
|
20
|
+
const timestamp = Math.floor(Date.now() / 1000);
|
|
21
|
+
const randomStr = randomBytes(4).toString('base64url').slice(0, 6);
|
|
22
|
+
return `${prefix}-key-${timestamp}-${randomStr}`;
|
|
23
|
+
}
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// RSA Key Pair Generation
|
|
26
|
+
// =============================================================================
|
|
27
|
+
/**
|
|
28
|
+
* Generate an RSA key pair for JWT signing
|
|
29
|
+
*
|
|
30
|
+
* @param keyId - Custom key ID or auto-generated
|
|
31
|
+
* @param keySize - RSA key size in bits (default: 2048)
|
|
32
|
+
*/
|
|
33
|
+
export function generateRsaKeyPair(keyId, keySize = 2048) {
|
|
34
|
+
const kid = keyId || generateKeyId();
|
|
35
|
+
// Generate RSA key pair
|
|
36
|
+
const { privateKey, publicKey } = generateKeyPairSync('rsa', {
|
|
37
|
+
modulusLength: keySize,
|
|
38
|
+
publicKeyEncoding: {
|
|
39
|
+
type: 'spki',
|
|
40
|
+
format: 'pem',
|
|
41
|
+
},
|
|
42
|
+
privateKeyEncoding: {
|
|
43
|
+
type: 'pkcs8',
|
|
44
|
+
format: 'pem',
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
// Convert public key to JWK format
|
|
48
|
+
const publicKeyObject = createPublicKey({
|
|
49
|
+
key: publicKey,
|
|
50
|
+
format: 'pem',
|
|
51
|
+
});
|
|
52
|
+
const publicJwk = publicKeyObject.export({ format: 'jwk' });
|
|
53
|
+
// Add standard JWK properties
|
|
54
|
+
const jwkWithMetadata = {
|
|
55
|
+
...publicJwk,
|
|
56
|
+
kid,
|
|
57
|
+
use: 'sig',
|
|
58
|
+
alg: 'RS256',
|
|
59
|
+
};
|
|
60
|
+
return {
|
|
61
|
+
privateKeyPem: privateKey,
|
|
62
|
+
publicKeyJwk: jwkWithMetadata,
|
|
63
|
+
keyId: kid,
|
|
64
|
+
createdAt: new Date().toISOString(),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// =============================================================================
|
|
68
|
+
// Secret Generation
|
|
69
|
+
// =============================================================================
|
|
70
|
+
/**
|
|
71
|
+
* Generate a random hex-encoded secret
|
|
72
|
+
*
|
|
73
|
+
* @param bytes - Number of random bytes (default: 32 = 256 bits)
|
|
74
|
+
*/
|
|
75
|
+
export function generateHexSecret(bytes = 32) {
|
|
76
|
+
return randomBytes(bytes).toString('hex');
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Generate a random base64url-encoded secret
|
|
80
|
+
*
|
|
81
|
+
* @param bytes - Number of random bytes (default: 32 = 256 bits)
|
|
82
|
+
*/
|
|
83
|
+
export function generateBase64Secret(bytes = 32) {
|
|
84
|
+
return randomBytes(bytes).toString('base64url');
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Generate all required secrets for Authrim
|
|
88
|
+
*/
|
|
89
|
+
export function generateAllSecrets(keyId) {
|
|
90
|
+
const keyPair = generateRsaKeyPair(keyId);
|
|
91
|
+
return {
|
|
92
|
+
keyPair,
|
|
93
|
+
rpTokenEncryptionKey: generateHexSecret(32), // 256-bit key
|
|
94
|
+
adminApiSecret: generateBase64Secret(32), // 256-bit secret
|
|
95
|
+
keyManagerSecret: generateBase64Secret(32), // 256-bit secret
|
|
96
|
+
setupToken: generateHexSecret(32), // 256-bit token for initial setup
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
// =============================================================================
|
|
100
|
+
// File Operations
|
|
101
|
+
// =============================================================================
|
|
102
|
+
/**
|
|
103
|
+
* Validate that a directory path is safe for writing keys
|
|
104
|
+
* - Must not contain path traversal patterns
|
|
105
|
+
* - Must be within the current working directory or an absolute path that's safe
|
|
106
|
+
*/
|
|
107
|
+
function validateKeysDirectory(keysDir) {
|
|
108
|
+
// Reject path traversal patterns
|
|
109
|
+
if (keysDir.includes('..')) {
|
|
110
|
+
throw new Error('Invalid keys directory: path traversal (..) not allowed');
|
|
111
|
+
}
|
|
112
|
+
// Reject null bytes (path truncation attack)
|
|
113
|
+
if (keysDir.includes('\0')) {
|
|
114
|
+
throw new Error('Invalid keys directory: null bytes not allowed');
|
|
115
|
+
}
|
|
116
|
+
// Reject shell metacharacters
|
|
117
|
+
if (/[;&|`$(){}[\]<>!#*?]/.test(keysDir)) {
|
|
118
|
+
throw new Error('Invalid keys directory: shell metacharacters not allowed');
|
|
119
|
+
}
|
|
120
|
+
// Reject absolute paths to system directories (Unix)
|
|
121
|
+
const absolutePath = resolve(keysDir);
|
|
122
|
+
const dangerousPaths = ['/etc', '/usr', '/bin', '/sbin', '/var', '/tmp', '/root', '/home'];
|
|
123
|
+
for (const dangerous of dangerousPaths) {
|
|
124
|
+
if (absolutePath.startsWith(dangerous + '/') || absolutePath === dangerous) {
|
|
125
|
+
throw new Error(`Invalid keys directory: writing to ${dangerous} is not allowed`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// Reject Windows system directories
|
|
129
|
+
const windowsDangerous = ['C:\\Windows', 'C:\\Program Files', 'C:\\System32'];
|
|
130
|
+
for (const dangerous of windowsDangerous) {
|
|
131
|
+
if (absolutePath.toLowerCase().startsWith(dangerous.toLowerCase())) {
|
|
132
|
+
throw new Error(`Invalid keys directory: writing to system directories is not allowed`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Save keys and secrets to the .keys directory
|
|
138
|
+
*/
|
|
139
|
+
export async function saveKeysToDirectory(secrets, keysDir = '.keys') {
|
|
140
|
+
// Security: Validate directory path to prevent path traversal
|
|
141
|
+
validateKeysDirectory(keysDir);
|
|
142
|
+
// Ensure directory exists
|
|
143
|
+
if (!existsSync(keysDir)) {
|
|
144
|
+
await mkdir(keysDir, { recursive: true });
|
|
145
|
+
}
|
|
146
|
+
const paths = {
|
|
147
|
+
privateKey: join(keysDir, 'private.pem'),
|
|
148
|
+
publicKey: join(keysDir, 'public.jwk.json'),
|
|
149
|
+
rpTokenEncryptionKey: join(keysDir, 'rp_token_encryption_key.txt'),
|
|
150
|
+
adminApiSecret: join(keysDir, 'admin_api_secret.txt'),
|
|
151
|
+
keyManagerSecret: join(keysDir, 'key_manager_secret.txt'),
|
|
152
|
+
setupToken: join(keysDir, 'setup_token.txt'),
|
|
153
|
+
metadata: join(keysDir, 'metadata.json'),
|
|
154
|
+
};
|
|
155
|
+
// Write private key
|
|
156
|
+
await writeFile(paths.privateKey, secrets.keyPair.privateKeyPem, 'utf-8');
|
|
157
|
+
// Write public key (JWK)
|
|
158
|
+
await writeFile(paths.publicKey, JSON.stringify(secrets.keyPair.publicKeyJwk, null, 2), 'utf-8');
|
|
159
|
+
// Write other secrets
|
|
160
|
+
await writeFile(paths.rpTokenEncryptionKey, secrets.rpTokenEncryptionKey, 'utf-8');
|
|
161
|
+
await writeFile(paths.adminApiSecret, secrets.adminApiSecret, 'utf-8');
|
|
162
|
+
await writeFile(paths.keyManagerSecret, secrets.keyManagerSecret, 'utf-8');
|
|
163
|
+
if (secrets.setupToken) {
|
|
164
|
+
await writeFile(paths.setupToken, secrets.setupToken, 'utf-8');
|
|
165
|
+
}
|
|
166
|
+
// Write metadata
|
|
167
|
+
const metadata = {
|
|
168
|
+
kid: secrets.keyPair.keyId,
|
|
169
|
+
algorithm: 'RS256',
|
|
170
|
+
keySize: 2048,
|
|
171
|
+
createdAt: secrets.keyPair.createdAt,
|
|
172
|
+
files: {
|
|
173
|
+
privateKey: paths.privateKey,
|
|
174
|
+
publicKey: paths.publicKey,
|
|
175
|
+
rpTokenEncryptionKey: paths.rpTokenEncryptionKey,
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
await writeFile(paths.metadata, JSON.stringify(metadata, null, 2), 'utf-8');
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Load existing keys from directory
|
|
182
|
+
*/
|
|
183
|
+
export async function loadKeysFromDirectory(keysDir = '.keys') {
|
|
184
|
+
const metadataPath = join(keysDir, 'metadata.json');
|
|
185
|
+
if (!existsSync(metadataPath)) {
|
|
186
|
+
return {};
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
const metadataContent = await readFile(metadataPath, 'utf-8');
|
|
190
|
+
const metadata = JSON.parse(metadataContent);
|
|
191
|
+
// Load public key JWK
|
|
192
|
+
const publicKeyPath = join(keysDir, 'public.jwk.json');
|
|
193
|
+
let publicKeyJwk;
|
|
194
|
+
if (existsSync(publicKeyPath)) {
|
|
195
|
+
const publicKeyContent = await readFile(publicKeyPath, 'utf-8');
|
|
196
|
+
publicKeyJwk = JSON.parse(publicKeyContent);
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
keyPair: {
|
|
200
|
+
keyId: metadata.kid,
|
|
201
|
+
publicKeyJwk,
|
|
202
|
+
createdAt: metadata.createdAt,
|
|
203
|
+
},
|
|
204
|
+
metadata,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
return {};
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// =============================================================================
|
|
212
|
+
// Wrangler Secret Commands
|
|
213
|
+
// =============================================================================
|
|
214
|
+
/**
|
|
215
|
+
* Validate a path parameter to prevent path traversal attacks
|
|
216
|
+
*/
|
|
217
|
+
function validatePath(path, paramName) {
|
|
218
|
+
// Reject paths with traversal patterns
|
|
219
|
+
if (path.includes('..') || path.includes('\0')) {
|
|
220
|
+
throw new Error(`Invalid ${paramName}: path traversal detected`);
|
|
221
|
+
}
|
|
222
|
+
// Reject shell metacharacters
|
|
223
|
+
if (/[;&|`$(){}[\]<>!#*?]/.test(path)) {
|
|
224
|
+
throw new Error(`Invalid ${paramName}: shell metacharacters not allowed`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Validate environment name
|
|
229
|
+
*/
|
|
230
|
+
function validateEnvName(env) {
|
|
231
|
+
if (!/^[a-z][a-z0-9-]*$/.test(env)) {
|
|
232
|
+
throw new Error(`Invalid environment name: must be lowercase alphanumeric with hyphens`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Generate wrangler commands for uploading secrets
|
|
237
|
+
* @deprecated Use uploadSecrets from deploy.ts instead for programmatic upload
|
|
238
|
+
*/
|
|
239
|
+
export function generateWranglerSecretCommands(secrets, keysDir = '.keys', env) {
|
|
240
|
+
// Validate inputs to prevent command injection
|
|
241
|
+
validatePath(keysDir, 'keysDir');
|
|
242
|
+
if (env) {
|
|
243
|
+
validateEnvName(env);
|
|
244
|
+
}
|
|
245
|
+
const envFlag = env ? ` --env ${env}` : '';
|
|
246
|
+
const commands = [];
|
|
247
|
+
// Private key (multiline secret)
|
|
248
|
+
commands.push(`cat ${join(keysDir, 'private.pem')} | wrangler secret put PRIVATE_KEY_PEM${envFlag}`);
|
|
249
|
+
// RP Token encryption key
|
|
250
|
+
commands.push(`echo -n "$(cat ${join(keysDir, 'rp_token_encryption_key.txt')})" | wrangler secret put RP_TOKEN_ENCRYPTION_KEY${envFlag}`);
|
|
251
|
+
// Admin API secret
|
|
252
|
+
commands.push(`echo -n "$(cat ${join(keysDir, 'admin_api_secret.txt')})" | wrangler secret put ADMIN_API_SECRET${envFlag}`);
|
|
253
|
+
// Key Manager secret
|
|
254
|
+
commands.push(`echo -n "$(cat ${join(keysDir, 'key_manager_secret.txt')})" | wrangler secret put KEY_MANAGER_SECRET${envFlag}`);
|
|
255
|
+
return commands;
|
|
256
|
+
}
|
|
257
|
+
// =============================================================================
|
|
258
|
+
// Validation
|
|
259
|
+
// =============================================================================
|
|
260
|
+
/**
|
|
261
|
+
* Validate that a private key PEM is valid RSA
|
|
262
|
+
*/
|
|
263
|
+
export function validatePrivateKey(pem) {
|
|
264
|
+
try {
|
|
265
|
+
const key = createPrivateKey({
|
|
266
|
+
key: pem,
|
|
267
|
+
format: 'pem',
|
|
268
|
+
});
|
|
269
|
+
return key.type === 'private' && key.asymmetricKeyType === 'rsa';
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Validate that a public key JWK has required properties
|
|
277
|
+
*/
|
|
278
|
+
export function validatePublicKeyJwk(jwk) {
|
|
279
|
+
if (!jwk.kty || jwk.kty !== 'RSA')
|
|
280
|
+
return false;
|
|
281
|
+
if (!jwk.n || !jwk.e)
|
|
282
|
+
return false;
|
|
283
|
+
if (!jwk.kid)
|
|
284
|
+
return false;
|
|
285
|
+
return true;
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/core/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,220 @@
|
|
|
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 { z } from 'zod';
|
|
8
|
+
import type { ProvisionedResources } from './cloudflare.js';
|
|
9
|
+
declare const ResourceEntrySchema: z.ZodObject<{
|
|
10
|
+
name: z.ZodString;
|
|
11
|
+
id: z.ZodString;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
name: string;
|
|
14
|
+
id: string;
|
|
15
|
+
}, {
|
|
16
|
+
name: string;
|
|
17
|
+
id: string;
|
|
18
|
+
}>;
|
|
19
|
+
declare const KVResourceEntrySchema: z.ZodObject<{
|
|
20
|
+
name: z.ZodString;
|
|
21
|
+
id: z.ZodString;
|
|
22
|
+
} & {
|
|
23
|
+
previewId: z.ZodOptional<z.ZodString>;
|
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
|
+
name: string;
|
|
26
|
+
id: string;
|
|
27
|
+
previewId?: string | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
name: string;
|
|
30
|
+
id: string;
|
|
31
|
+
previewId?: string | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
declare const WorkerEntrySchema: z.ZodObject<{
|
|
34
|
+
name: z.ZodString;
|
|
35
|
+
deployedAt: z.ZodOptional<z.ZodString>;
|
|
36
|
+
version: z.ZodOptional<z.ZodString>;
|
|
37
|
+
}, "strip", z.ZodTypeAny, {
|
|
38
|
+
name: string;
|
|
39
|
+
version?: string | undefined;
|
|
40
|
+
deployedAt?: string | undefined;
|
|
41
|
+
}, {
|
|
42
|
+
name: string;
|
|
43
|
+
version?: string | undefined;
|
|
44
|
+
deployedAt?: string | undefined;
|
|
45
|
+
}>;
|
|
46
|
+
export declare const AuthrimLockSchema: z.ZodObject<{
|
|
47
|
+
version: z.ZodDefault<z.ZodString>;
|
|
48
|
+
createdAt: z.ZodString;
|
|
49
|
+
updatedAt: z.ZodOptional<z.ZodString>;
|
|
50
|
+
env: z.ZodString;
|
|
51
|
+
d1: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
52
|
+
name: z.ZodString;
|
|
53
|
+
id: z.ZodString;
|
|
54
|
+
}, "strip", z.ZodTypeAny, {
|
|
55
|
+
name: string;
|
|
56
|
+
id: string;
|
|
57
|
+
}, {
|
|
58
|
+
name: string;
|
|
59
|
+
id: string;
|
|
60
|
+
}>>>;
|
|
61
|
+
kv: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
62
|
+
name: z.ZodString;
|
|
63
|
+
id: z.ZodString;
|
|
64
|
+
} & {
|
|
65
|
+
previewId: z.ZodOptional<z.ZodString>;
|
|
66
|
+
}, "strip", z.ZodTypeAny, {
|
|
67
|
+
name: string;
|
|
68
|
+
id: string;
|
|
69
|
+
previewId?: string | undefined;
|
|
70
|
+
}, {
|
|
71
|
+
name: string;
|
|
72
|
+
id: string;
|
|
73
|
+
previewId?: string | undefined;
|
|
74
|
+
}>>>;
|
|
75
|
+
queues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
76
|
+
name: z.ZodString;
|
|
77
|
+
id: z.ZodString;
|
|
78
|
+
}, "strip", z.ZodTypeAny, {
|
|
79
|
+
name: string;
|
|
80
|
+
id: string;
|
|
81
|
+
}, {
|
|
82
|
+
name: string;
|
|
83
|
+
id: string;
|
|
84
|
+
}>>>;
|
|
85
|
+
r2: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
86
|
+
name: z.ZodString;
|
|
87
|
+
}, "strip", z.ZodTypeAny, {
|
|
88
|
+
name: string;
|
|
89
|
+
}, {
|
|
90
|
+
name: string;
|
|
91
|
+
}>>>;
|
|
92
|
+
workers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
93
|
+
name: z.ZodString;
|
|
94
|
+
deployedAt: z.ZodOptional<z.ZodString>;
|
|
95
|
+
version: z.ZodOptional<z.ZodString>;
|
|
96
|
+
}, "strip", z.ZodTypeAny, {
|
|
97
|
+
name: string;
|
|
98
|
+
version?: string | undefined;
|
|
99
|
+
deployedAt?: string | undefined;
|
|
100
|
+
}, {
|
|
101
|
+
name: string;
|
|
102
|
+
version?: string | undefined;
|
|
103
|
+
deployedAt?: string | undefined;
|
|
104
|
+
}>>>;
|
|
105
|
+
}, "strip", z.ZodTypeAny, {
|
|
106
|
+
version: string;
|
|
107
|
+
createdAt: string;
|
|
108
|
+
env: string;
|
|
109
|
+
d1: Record<string, {
|
|
110
|
+
name: string;
|
|
111
|
+
id: string;
|
|
112
|
+
}>;
|
|
113
|
+
kv: Record<string, {
|
|
114
|
+
name: string;
|
|
115
|
+
id: string;
|
|
116
|
+
previewId?: string | undefined;
|
|
117
|
+
}>;
|
|
118
|
+
r2?: Record<string, {
|
|
119
|
+
name: string;
|
|
120
|
+
}> | undefined;
|
|
121
|
+
updatedAt?: string | undefined;
|
|
122
|
+
queues?: Record<string, {
|
|
123
|
+
name: string;
|
|
124
|
+
id: string;
|
|
125
|
+
}> | undefined;
|
|
126
|
+
workers?: Record<string, {
|
|
127
|
+
name: string;
|
|
128
|
+
version?: string | undefined;
|
|
129
|
+
deployedAt?: string | undefined;
|
|
130
|
+
}> | undefined;
|
|
131
|
+
}, {
|
|
132
|
+
createdAt: string;
|
|
133
|
+
env: string;
|
|
134
|
+
r2?: Record<string, {
|
|
135
|
+
name: string;
|
|
136
|
+
}> | undefined;
|
|
137
|
+
version?: string | undefined;
|
|
138
|
+
updatedAt?: string | undefined;
|
|
139
|
+
d1?: Record<string, {
|
|
140
|
+
name: string;
|
|
141
|
+
id: string;
|
|
142
|
+
}> | undefined;
|
|
143
|
+
kv?: Record<string, {
|
|
144
|
+
name: string;
|
|
145
|
+
id: string;
|
|
146
|
+
previewId?: string | undefined;
|
|
147
|
+
}> | undefined;
|
|
148
|
+
queues?: Record<string, {
|
|
149
|
+
name: string;
|
|
150
|
+
id: string;
|
|
151
|
+
}> | undefined;
|
|
152
|
+
workers?: Record<string, {
|
|
153
|
+
name: string;
|
|
154
|
+
version?: string | undefined;
|
|
155
|
+
deployedAt?: string | undefined;
|
|
156
|
+
}> | undefined;
|
|
157
|
+
}>;
|
|
158
|
+
export type AuthrimLock = z.infer<typeof AuthrimLockSchema>;
|
|
159
|
+
export type ResourceEntry = z.infer<typeof ResourceEntrySchema>;
|
|
160
|
+
export type KVResourceEntry = z.infer<typeof KVResourceEntrySchema>;
|
|
161
|
+
export type WorkerEntry = z.infer<typeof WorkerEntrySchema>;
|
|
162
|
+
/**
|
|
163
|
+
* Create a new lock file from provisioned resources
|
|
164
|
+
*/
|
|
165
|
+
export declare function createLockFile(env: string, resources: ProvisionedResources): AuthrimLock;
|
|
166
|
+
/**
|
|
167
|
+
* Save lock file to disk
|
|
168
|
+
*/
|
|
169
|
+
export declare function saveLockFile(lock: AuthrimLock, path?: string): Promise<void>;
|
|
170
|
+
/** Error class for lock file operations */
|
|
171
|
+
export declare class LockFileError extends Error {
|
|
172
|
+
readonly cause?: Error | undefined;
|
|
173
|
+
constructor(message: string, cause?: Error | undefined);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Load lock file from disk
|
|
177
|
+
* @throws LockFileError if file exists but cannot be parsed
|
|
178
|
+
*/
|
|
179
|
+
export declare function loadLockFile(path?: string): Promise<AuthrimLock | null>;
|
|
180
|
+
/**
|
|
181
|
+
* Update worker deployment info in lock file
|
|
182
|
+
*/
|
|
183
|
+
export declare function updateWorkerDeployment(lock: AuthrimLock, workerName: string, deploymentName: string, version?: string): AuthrimLock;
|
|
184
|
+
/**
|
|
185
|
+
* Convert lock file to ResourceIds format for wrangler.ts
|
|
186
|
+
*/
|
|
187
|
+
export declare function lockToResourceIds(lock: AuthrimLock): {
|
|
188
|
+
d1: Record<string, {
|
|
189
|
+
id: string;
|
|
190
|
+
name: string;
|
|
191
|
+
}>;
|
|
192
|
+
kv: Record<string, {
|
|
193
|
+
id: string;
|
|
194
|
+
name: string;
|
|
195
|
+
}>;
|
|
196
|
+
queues?: Record<string, {
|
|
197
|
+
id: string;
|
|
198
|
+
name: string;
|
|
199
|
+
}>;
|
|
200
|
+
r2?: Record<string, {
|
|
201
|
+
name: string;
|
|
202
|
+
}>;
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Merge two lock files (for updating existing)
|
|
206
|
+
*/
|
|
207
|
+
export declare function mergeLockFiles(existing: AuthrimLock, newData: Partial<AuthrimLock>): AuthrimLock;
|
|
208
|
+
/**
|
|
209
|
+
* Validate that all required resources exist in lock file
|
|
210
|
+
*/
|
|
211
|
+
export declare function validateLockFile(lock: AuthrimLock): {
|
|
212
|
+
valid: boolean;
|
|
213
|
+
missing: string[];
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* Generate summary of resources in lock file
|
|
217
|
+
*/
|
|
218
|
+
export declare function getLockFileSummary(lock: AuthrimLock): string;
|
|
219
|
+
export {};
|
|
220
|
+
//# sourceMappingURL=lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/core/lock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAM5D,QAAA,MAAM,mBAAmB;;;;;;;;;EAGvB,CAAC;AAEH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;EAEzB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;EAIrB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAM5D;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,GAAG,WAAW,CAmDxF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,WAAW,EACjB,IAAI,GAAE,MAA4B,GACjC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,2CAA2C;AAC3C,qBAAa,aAAc,SAAQ,KAAK;aAGpB,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,IAAI,GAAE,MAA4B,GACjC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAsB7B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,WAAW,CAYb;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG;IACpD,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvC,CASA;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAWhG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAuBA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAwC5D"}
|