@package-broker/cloudflare 0.10.4

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.
@@ -0,0 +1,295 @@
1
+ #!/usr/bin/env node
2
+ /*
3
+ * PACKAGE.broker - Cloudflare CLI - Wrangler Config Parser
4
+ * Copyright (C) 2025 Łukasz Bajsarowicz
5
+ * Licensed under AGPL-3.0
6
+ */
7
+ import { readFileSync, existsSync } from 'fs';
8
+ import { join } from 'path';
9
+ import TOML from '@iarna/toml';
10
+ /**
11
+ * Check if a wrangler.toml file exists at the given path
12
+ */
13
+ export function wranglerTomlExists(targetDir) {
14
+ const wranglerPath = join(targetDir, 'wrangler.toml');
15
+ return existsSync(wranglerPath);
16
+ }
17
+ /**
18
+ * Parse a wrangler.toml file and extract configuration
19
+ */
20
+ export function parseWranglerToml(targetDir) {
21
+ const wranglerPath = join(targetDir, 'wrangler.toml');
22
+ if (!existsSync(wranglerPath)) {
23
+ return null;
24
+ }
25
+ try {
26
+ const content = readFileSync(wranglerPath, 'utf-8');
27
+ const parsed = TOML.parse(content);
28
+ const config = {
29
+ name: parsed.name,
30
+ main: parsed.main,
31
+ compatibility_date: parsed.compatibility_date,
32
+ compatibility_flags: parsed.compatibility_flags,
33
+ _raw: content,
34
+ };
35
+ // Parse D1 databases
36
+ if (Array.isArray(parsed.d1_databases)) {
37
+ config.d1_databases = parsed.d1_databases.map((db) => ({
38
+ binding: db.binding,
39
+ database_name: db.database_name,
40
+ database_id: db.database_id,
41
+ }));
42
+ }
43
+ // Parse KV namespaces
44
+ if (Array.isArray(parsed.kv_namespaces)) {
45
+ config.kv_namespaces = parsed.kv_namespaces.map((kv) => ({
46
+ binding: kv.binding,
47
+ id: kv.id,
48
+ }));
49
+ }
50
+ // Parse R2 buckets
51
+ if (Array.isArray(parsed.r2_buckets)) {
52
+ config.r2_buckets = parsed.r2_buckets.map((bucket) => ({
53
+ binding: bucket.binding,
54
+ bucket_name: bucket.bucket_name,
55
+ }));
56
+ }
57
+ // Parse queues
58
+ const queues = parsed.queues;
59
+ if (queues) {
60
+ config.queues = {};
61
+ if (Array.isArray(queues.producers)) {
62
+ config.queues.producers = queues.producers.map((p) => ({
63
+ binding: p.binding,
64
+ queue: p.queue,
65
+ }));
66
+ }
67
+ if (Array.isArray(queues.consumers)) {
68
+ config.queues.consumers = queues.consumers.map((c) => ({
69
+ queue: c.queue,
70
+ max_batch_size: c.max_batch_size,
71
+ max_batch_timeout: c.max_batch_timeout,
72
+ }));
73
+ }
74
+ }
75
+ // Parse routes
76
+ if (Array.isArray(parsed.routes)) {
77
+ config.routes = parsed.routes.map((r) => ({
78
+ pattern: r.pattern,
79
+ zone_name: r.zone_name,
80
+ zone_id: r.zone_id,
81
+ custom_domain: r.custom_domain,
82
+ }));
83
+ }
84
+ if (typeof parsed.route === 'string') {
85
+ config.route = parsed.route;
86
+ }
87
+ // Parse assets
88
+ const assets = parsed.assets;
89
+ if (assets) {
90
+ config.assets = {
91
+ directory: assets.directory,
92
+ binding: assets.binding,
93
+ };
94
+ }
95
+ // Parse vars
96
+ const vars = parsed.vars;
97
+ if (vars) {
98
+ config.vars = {};
99
+ for (const [key, value] of Object.entries(vars)) {
100
+ if (typeof value === 'string') {
101
+ config.vars[key] = value;
102
+ }
103
+ }
104
+ }
105
+ return config;
106
+ }
107
+ catch (error) {
108
+ // Failed to parse, return null
109
+ return null;
110
+ }
111
+ }
112
+ /**
113
+ * Extract resource IDs from a parsed wrangler.toml config
114
+ */
115
+ export function extractResourceIds(config) {
116
+ const resources = {};
117
+ // Extract D1 database ID (use the first one with binding "DB")
118
+ const dbBinding = config.d1_databases?.find(db => db.binding === 'DB');
119
+ if (dbBinding) {
120
+ if (dbBinding.database_id && !dbBinding.database_id.includes('REPLACE')) {
121
+ resources.database_id = dbBinding.database_id;
122
+ }
123
+ if (dbBinding.database_name) {
124
+ resources.database_name = dbBinding.database_name;
125
+ }
126
+ }
127
+ // Extract KV namespace ID (use the first one with binding "KV")
128
+ const kvBinding = config.kv_namespaces?.find(kv => kv.binding === 'KV');
129
+ if (kvBinding?.id && !kvBinding.id.includes('REPLACE')) {
130
+ resources.kv_namespace_id = kvBinding.id;
131
+ }
132
+ // Extract R2 bucket name (use the first one with binding "R2_BUCKET")
133
+ const r2Binding = config.r2_buckets?.find(r2 => r2.binding === 'R2_BUCKET');
134
+ if (r2Binding?.bucket_name) {
135
+ resources.r2_bucket_name = r2Binding.bucket_name;
136
+ }
137
+ // Extract queue name (use the first producer with binding "QUEUE")
138
+ const queueProducer = config.queues?.producers?.find(q => q.binding === 'QUEUE');
139
+ if (queueProducer?.queue) {
140
+ resources.queue_name = queueProducer.queue;
141
+ }
142
+ return resources;
143
+ }
144
+ /**
145
+ * Check which resources are missing from a parsed config
146
+ */
147
+ export function findMissingResources(config, workerName, paidTier) {
148
+ const existingResources = config ? extractResourceIds(config) : {};
149
+ return {
150
+ needsDatabase: !existingResources.database_id,
151
+ needsKV: !existingResources.kv_namespace_id,
152
+ needsR2: !existingResources.r2_bucket_name,
153
+ needsQueue: paidTier && !existingResources.queue_name,
154
+ existingResources,
155
+ };
156
+ }
157
+ /**
158
+ * Generate TOML content for resource bindings
159
+ */
160
+ function generateResourceBindings(workerName, resources, paidTier) {
161
+ const lines = [];
162
+ // D1 Database
163
+ lines.push('# D1 Database');
164
+ lines.push('[[d1_databases]]');
165
+ lines.push('binding = "DB"');
166
+ lines.push(`database_name = "${resources.database_name || `${workerName}-db`}"`);
167
+ lines.push(`database_id = "${resources.database_id || 'REPLACE_WITH_YOUR_DATABASE_ID'}"`);
168
+ lines.push('');
169
+ // KV Namespace
170
+ lines.push('# KV Namespace for caching');
171
+ lines.push('[[kv_namespaces]]');
172
+ lines.push('binding = "KV"');
173
+ lines.push(`id = "${resources.kv_namespace_id || 'REPLACE_WITH_YOUR_KV_NAMESPACE_ID'}"`);
174
+ lines.push('');
175
+ // R2 Bucket
176
+ lines.push('# R2 Bucket for artifacts');
177
+ lines.push('[[r2_buckets]]');
178
+ lines.push('binding = "R2_BUCKET"');
179
+ lines.push(`bucket_name = "${resources.r2_bucket_name || `${workerName}-artifacts`}"`);
180
+ lines.push('');
181
+ // Queue (paid tier only)
182
+ if (paidTier && resources.queue_name) {
183
+ lines.push('# Queue for async operations');
184
+ lines.push('[[queues.producers]]');
185
+ lines.push('binding = "QUEUE"');
186
+ lines.push(`queue = "${resources.queue_name}"`);
187
+ lines.push('');
188
+ lines.push('[[queues.consumers]]');
189
+ lines.push(`queue = "${resources.queue_name}"`);
190
+ lines.push('max_batch_size = 10');
191
+ lines.push('max_batch_timeout = 30');
192
+ lines.push('');
193
+ }
194
+ else if (!paidTier) {
195
+ lines.push('# Queue for async operations (requires Workers Paid plan)');
196
+ lines.push('# Uncomment the following lines if you\'re on the paid tier:');
197
+ lines.push('# [[queues.producers]]');
198
+ lines.push('# binding = "QUEUE"');
199
+ lines.push(`# queue = "${workerName}-queue"`);
200
+ lines.push('#');
201
+ lines.push('# [[queues.consumers]]');
202
+ lines.push(`# queue = "${workerName}-queue"`);
203
+ lines.push('# max_batch_size = 10');
204
+ lines.push('# max_batch_timeout = 30');
205
+ lines.push('');
206
+ }
207
+ return lines.join('\n');
208
+ }
209
+ /**
210
+ * Generate a complete wrangler.toml configuration
211
+ */
212
+ export function generateWranglerToml(workerName, resources, options) {
213
+ const lines = [];
214
+ // Header
215
+ lines.push(`name = "${workerName}"`);
216
+ lines.push(`main = "${options.mainPath || 'node_modules/@package-broker/main/dist/index.js'}"`);
217
+ lines.push('compatibility_date = "2024-09-23"');
218
+ lines.push('compatibility_flags = ["nodejs_compat"]');
219
+ lines.push('');
220
+ // Assets configuration
221
+ if (options.uiAssetsPath) {
222
+ lines.push('# Static Assets (UI)');
223
+ lines.push('[assets]');
224
+ lines.push(`directory = "${options.uiAssetsPath}"`);
225
+ lines.push('binding = "ASSETS"');
226
+ lines.push('');
227
+ }
228
+ // Variables section
229
+ lines.push('[vars]');
230
+ lines.push('# ENCRYPTION_KEY is set as a Cloudflare secret, not in this file');
231
+ lines.push('# It was automatically set during initialization via: wrangler secret put ENCRYPTION_KEY');
232
+ lines.push('# To update it manually, use: wrangler secret put ENCRYPTION_KEY');
233
+ lines.push('# Or set it via Cloudflare dashboard: Workers & Pages → Settings → Variables and Secrets');
234
+ lines.push('');
235
+ // Resource bindings
236
+ lines.push(generateResourceBindings(workerName, resources, options.paidTier));
237
+ // Custom domain routes
238
+ if (options.domain) {
239
+ lines.push('# Custom domain route');
240
+ lines.push('[[routes]]');
241
+ lines.push(`pattern = "${options.domain}/*"`);
242
+ lines.push('custom_domain = true');
243
+ lines.push('');
244
+ }
245
+ return lines.join('\n');
246
+ }
247
+ /**
248
+ * Merge new resource IDs into an existing wrangler.toml content
249
+ */
250
+ export function mergeResourcesIntoConfig(existingContent, resources, workerName, options) {
251
+ let content = existingContent;
252
+ // Update database_id if provided
253
+ if (resources.database_id) {
254
+ content = content.replace(/database_id\s*=\s*["']?[^"'\n]*["']?/g, `database_id = "${resources.database_id}"`);
255
+ }
256
+ // Update KV namespace id if provided
257
+ if (resources.kv_namespace_id) {
258
+ // Find [[kv_namespaces]] section and update the id
259
+ content = content.replace(/(\[\[kv_namespaces\]\][^\[]*?)id\s*=\s*["'][^"']*["']/, `$1id = "${resources.kv_namespace_id}"`);
260
+ }
261
+ // Update R2 bucket name if provided
262
+ if (resources.r2_bucket_name) {
263
+ content = content.replace(/(\[\[r2_buckets\]\][^\[]*?)bucket_name\s*=\s*["'][^"']*["']/, `$1bucket_name = "${resources.r2_bucket_name}"`);
264
+ }
265
+ // Add queue configuration if paid tier and queue exists but not in config
266
+ if (options.paidTier && resources.queue_name) {
267
+ if (!content.includes('[[queues.producers]]') || content.includes('# [[queues.producers]]')) {
268
+ // Remove commented queue section and add active one
269
+ content = content.replace(/# Queue for async operations.*?# max_batch_timeout = \d+/s, `# Queue for async operations
270
+ [[queues.producers]]
271
+ binding = "QUEUE"
272
+ queue = "${resources.queue_name}"
273
+
274
+ [[queues.consumers]]
275
+ queue = "${resources.queue_name}"
276
+ max_batch_size = 10
277
+ max_batch_timeout = 30`);
278
+ }
279
+ }
280
+ // Add custom domain route if provided and not already present
281
+ if (options.domain && !content.includes(`pattern = "${options.domain}`)) {
282
+ // Check if routes section exists
283
+ if (!content.includes('[[routes]]')) {
284
+ content = content.trimEnd() + `
285
+
286
+ # Custom domain route
287
+ [[routes]]
288
+ pattern = "${options.domain}/*"
289
+ custom_domain = true
290
+ `;
291
+ }
292
+ }
293
+ return content;
294
+ }
295
+ //# sourceMappingURL=wrangler-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrangler-config.js","sourceRoot":"","sources":["../src/wrangler-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ #!/usr/bin/env node
2
+ export interface D1Database {
3
+ database_id: string;
4
+ database_name: string;
5
+ }
6
+ export interface KVNamespace {
7
+ id: string;
8
+ title: string;
9
+ }
10
+ export interface R2Bucket {
11
+ name: string;
12
+ }
13
+ export interface Queue {
14
+ name: string;
15
+ }
16
+ /**
17
+ * Common options for wrangler commands
18
+ */
19
+ export interface WranglerOptions {
20
+ cwd?: string;
21
+ apiToken?: string;
22
+ accountId?: string;
23
+ configPath?: string;
24
+ }
25
+ /**
26
+ * Check if user is authenticated with wrangler
27
+ * Supports both interactive (wrangler login) and CI (API token) authentication
28
+ */
29
+ export declare function checkAuth(options?: WranglerOptions): Promise<boolean>;
30
+ /**
31
+ * Verify that the API token has required permissions
32
+ * Checks by attempting to list resources
33
+ */
34
+ export declare function verifyTokenPermissions(options?: WranglerOptions & {
35
+ paidTier?: boolean;
36
+ }): Promise<{
37
+ valid: boolean;
38
+ errors: string[];
39
+ }>;
40
+ /**
41
+ * Create a D1 database and return its ID
42
+ */
43
+ export declare function createD1Database(name: string, options?: WranglerOptions): Promise<string>;
44
+ /**
45
+ * List existing D1 databases and find by name
46
+ */
47
+ export declare function findD1Database(name: string, options?: WranglerOptions): Promise<string | null>;
48
+ /**
49
+ * Create a KV namespace and return its ID
50
+ */
51
+ export declare function createKVNamespace(name: string, options?: WranglerOptions): Promise<string>;
52
+ /**
53
+ * List existing KV namespaces and find by title
54
+ */
55
+ export declare function findKVNamespace(title: string, options?: WranglerOptions): Promise<string | null>;
56
+ /**
57
+ * Create an R2 bucket
58
+ */
59
+ export declare function createR2Bucket(name: string, options?: WranglerOptions): Promise<void>;
60
+ /**
61
+ * Check if R2 bucket exists
62
+ */
63
+ export declare function findR2Bucket(name: string, options?: WranglerOptions): Promise<boolean>;
64
+ /**
65
+ * Create a Queue
66
+ */
67
+ export declare function createQueue(name: string, options?: WranglerOptions): Promise<void>;
68
+ /**
69
+ * Check if Queue exists
70
+ */
71
+ export declare function findQueue(name: string, options?: WranglerOptions): Promise<boolean>;
72
+ /**
73
+ * Set a Cloudflare Worker secret
74
+ */
75
+ export declare function setSecret(secretName: string, secretValue: string, options?: WranglerOptions & {
76
+ workerName?: string;
77
+ }): Promise<void>;
78
+ /**
79
+ * Apply D1 migrations
80
+ */
81
+ export declare function applyMigrations(databaseName: string, migrationsDir: string, options?: WranglerOptions & {
82
+ remote?: boolean;
83
+ }): Promise<void>;
84
+ /**
85
+ * Deploy a Worker
86
+ */
87
+ export declare function deployWorker(options?: WranglerOptions & {
88
+ workerName?: string;
89
+ }): Promise<string>;
90
+ //# sourceMappingURL=wrangler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrangler.d.ts","sourceRoot":"","sources":["../src/wrangler.ts"],"names":[],"mappings":"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"}