@pellux/goodvibes-sdk 0.25.18 → 0.25.19

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.
@@ -3,7 +3,7 @@
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "0.25.18"
6
+ "version": "0.25.19"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -1,6 +1,6 @@
1
1
  export declare const FOUNDATION_METADATA: {
2
2
  readonly productId: "goodvibes";
3
- readonly productVersion: "0.25.18";
3
+ readonly productVersion: "0.25.19";
4
4
  readonly operatorMethodCount: 224;
5
5
  readonly operatorEventCount: 30;
6
6
  readonly peerEndpointCount: 6;
@@ -1,7 +1,7 @@
1
1
  // Synced from packages/contracts/src/generated/foundation-metadata.ts
2
2
  export const FOUNDATION_METADATA = {
3
3
  "productId": "goodvibes",
4
- "productVersion": "0.25.18",
4
+ "productVersion": "0.25.19",
5
5
  "operatorMethodCount": 224,
6
6
  "operatorEventCount": 30,
7
7
  "peerEndpointCount": 6
@@ -3,7 +3,7 @@ export const OPERATOR_CONTRACT = {
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "0.25.18"
6
+ "version": "0.25.19"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/manager.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAIV,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EAGvB,+BAA+B,EAC/B,gCAAgC,EAChC,wBAAwB,EACxB,yBAAyB,EAMzB,gCAAgC,EAChC,iCAAiC,EAEjC,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAkBpB,qBAAa,6BAA6B;IAI5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqD;IAClF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAEZ,OAAO,EAAE,6BAA6B;IAK7D,cAAc,IAAI,OAAO,CAAC,4BAA4B,CAAC;IA0C7D,iBAAiB,CAAC,KAAK,GAAE,gCAAqC,GAAG,iCAAiC;IAkB5F,sBAAsB,CAAC,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAqEzG,QAAQ,CAAC,KAAK,GAAE,uBAA4B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuEhF,QAAQ,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuB3E,SAAS,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA8S9E,MAAM,CAAC,KAAK,GAAE,qBAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAe1E,OAAO,CAAC,KAAK,GAAE,sBAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA0BnF,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,iBAAiB;YAYX,eAAe;YAaf,oBAAoB;YAapB,wBAAwB;YAaxB,gBAAgB;YAahB,WAAW;IAOzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,yBAAyB;YAQnB,WAAW;IAazB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,SAAS;CAMlB"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/manager.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAIV,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EAGvB,+BAA+B,EAC/B,gCAAgC,EAChC,wBAAwB,EACxB,yBAAyB,EAMzB,gCAAgC,EAChC,iCAAiC,EAEjC,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAyBpB,qBAAa,6BAA6B;IAI5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqD;IAClF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAEZ,OAAO,EAAE,6BAA6B;IAK7D,cAAc,IAAI,OAAO,CAAC,4BAA4B,CAAC;IA0C7D,iBAAiB,CAAC,KAAK,GAAE,gCAAqC,GAAG,iCAAiC;IAkB5F,sBAAsB,CAAC,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAqEzG,QAAQ,CAAC,KAAK,GAAE,uBAA4B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuEhF,QAAQ,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuB3E,SAAS,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA0S9E,MAAM,CAAC,KAAK,GAAE,qBAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAe1E,OAAO,CAAC,KAAK,GAAE,sBAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAwBnF,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,iBAAiB;YAYX,eAAe;YAaf,oBAAoB;YAapB,wBAAwB;YAaxB,gBAAgB;YAahB,WAAW;IAOzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,yBAAyB;YAQnB,WAAW;IAazB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,SAAS;CAMlB"}
@@ -4,9 +4,10 @@ import { createCloudflareApiClient } from './client.js';
4
4
  import { readCloudflareConfig } from './config.js';
5
5
  import { CLOUDFLARE_API_TOKEN_KEY, CLOUDFLARE_WORKER_CLIENT_TOKEN_KEY, CLOUDFLARE_WORKER_OPERATOR_TOKEN_KEY, DEFAULT_DLQ_NAME, DEFAULT_DO_NAMESPACE_NAME, DEFAULT_KV_NAMESPACE_NAME, DEFAULT_QUEUE_NAME, DEFAULT_R2_BUCKET_NAME, DEFAULT_SECRETS_STORE_NAME, DEFAULT_TUNNEL_NAME, DEFAULT_WORKER_CRON, DEFAULT_WORKER_NAME, } from './constants.js';
6
6
  import { discoverZones, resolveZone, selectDiscoveredZone, tryDiscover, } from './discovery.js';
7
- import { configureDns, configureWorkerSubdomain, ensureAccess, ensureKvNamespace, ensureQueue, ensureQueueConsumer, ensureR2Bucket, ensureSecretsStore, ensureTunnel, findDurableObjectNamespace, uploadWorker, } from './resources.js';
7
+ import { configureDns, ensureAccess, ensureKvNamespace, ensureQueue, ensureQueueConsumer, ensureR2Bucket, ensureSecretsStore, ensureTunnel, findDurableObjectNamespace, } from './resources.js';
8
8
  import { CloudflareControlPlaneError } from './types.js';
9
9
  import { buildTokenPolicies, buildTokenRequirements, clean, collectAsync, collectSingleAccount, hostnameFromUrl, requireKvNamespaceId, requireQueueId, resolveComponents, resolvePermissionGroups, safeResponseText, stripTrailingSlash, verifyCreatedTokenPolicies, } from './utils.js';
10
+ import { configureWorkerSchedule, configureWorkerSubdomain, disableWorkerSchedule, disableWorkerSubdomain, uploadWorker, } from './worker-settings.js';
10
11
  export class CloudflareControlPlaneManager {
11
12
  options;
12
13
  createClient;
@@ -378,11 +379,7 @@ export class CloudflareControlPlaneManager {
378
379
  });
379
380
  }
380
381
  if (workerCron) {
381
- await client.workers.scripts.schedules.update(workerName, {
382
- account_id: accountId,
383
- body: [{ cron: workerCron }],
384
- });
385
- steps.push({ name: 'configure-cron', status: 'ok', message: `Configured Worker cron ${workerCron}.` });
382
+ await configureWorkerSchedule(client, { accountId, workerName, workerCron, steps });
386
383
  }
387
384
  else {
388
385
  steps.push({ name: 'configure-cron', status: 'skipped', message: 'No Worker cron configured.' });
@@ -528,12 +525,10 @@ export class CloudflareControlPlaneManager {
528
525
  if (apiToken.value && accountId) {
529
526
  const client = await this.createClient(apiToken.value);
530
527
  if (input.disableCron !== false) {
531
- await client.workers.scripts.schedules.update(workerName, { account_id: accountId, body: [] });
532
- steps.push({ name: 'disable-cron', status: 'ok', message: `Removed Worker cron schedules from ${workerName}.` });
528
+ await disableWorkerSchedule(client, accountId, workerName, steps);
533
529
  }
534
530
  if (input.disableWorkerSubdomain) {
535
- await client.workers.scripts.subdomain.delete(workerName, { account_id: accountId });
536
- steps.push({ name: 'disable-worker-subdomain', status: 'ok', message: `Disabled workers.dev route for ${workerName}.` });
531
+ await disableWorkerSubdomain(client, accountId, workerName, steps);
537
532
  }
538
533
  }
539
534
  else {
@@ -50,24 +50,6 @@ export declare function configureDns(client: CloudflareApiClient, input: {
50
50
  readonly steps: CloudflareProvisionStep[];
51
51
  }): Promise<readonly CloudflareDnsRecordLike[]>;
52
52
  export declare function findDurableObjectNamespace(context: CloudflareProvisioningContext, client: CloudflareApiClient, accountId: string, namespaceName: string, persist: boolean, steps: CloudflareProvisionStep[]): Promise<CloudflareDurableObjectNamespaceLike | undefined>;
53
- export declare function uploadWorker(client: CloudflareApiClient, input: {
54
- readonly accountId: string;
55
- readonly workerName: string;
56
- readonly queueName: string;
57
- readonly daemonBaseUrl: string;
58
- readonly queueJobPayloads: boolean;
59
- readonly kvNamespaceId: string;
60
- readonly r2BucketName: string;
61
- readonly durableObject: boolean;
62
- }): Promise<void>;
63
- export declare function configureWorkerSubdomain(context: CloudflareProvisioningContext, client: CloudflareApiClient, input: {
64
- readonly accountId: string;
65
- readonly workerName: string;
66
- readonly requestedSubdomain?: string;
67
- readonly enableWorkersDev: boolean;
68
- readonly steps: CloudflareProvisionStep[];
69
- readonly persist: boolean;
70
- }): Promise<string>;
71
53
  export declare function ensureQueueConsumer(client: CloudflareApiClient, input: {
72
54
  readonly accountId: string;
73
55
  readonly queueId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/resources.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import { summarizeError } from '../utils/error-display.js';
2
- import { CLOUDFLARE_ACCESS_SERVICE_TOKEN_KEY, CLOUDFLARE_TUNNEL_TOKEN_KEY, DEFAULT_DO_NAMESPACE_NAME, } from './constants.js';
2
+ import { CLOUDFLARE_ACCESS_SERVICE_TOKEN_KEY, CLOUDFLARE_TUNNEL_TOKEN_KEY, } from './constants.js';
3
3
  import { CloudflareControlPlaneError } from './types.js';
4
4
  import { clean, collectAsync, hostnameFromUrl } from './utils.js';
5
- import { GOODVIBES_CLOUDFLARE_WORKER_MODULE } from './worker-source.js';
6
5
  export async function ensureQueue(client, accountId, queueName, steps, stepName) {
7
6
  const existing = await findQueueByName(client, accountId, queueName);
8
7
  if (existing) {
@@ -316,81 +315,6 @@ export async function findDurableObjectNamespace(context, client, accountId, nam
316
315
  steps.push({ name: 'durable-object-namespace', status: 'warning', message: 'Durable Object migration was included, but the namespace was not visible yet during confirmation.' });
317
316
  return { name: namespaceName };
318
317
  }
319
- export async function uploadWorker(client, input) {
320
- const file = new File([GOODVIBES_CLOUDFLARE_WORKER_MODULE], 'goodvibes-cloudflare-worker.mjs', { type: 'application/javascript+module' });
321
- const bindings = [
322
- ...(input.queueName ? [{ type: 'queue', name: 'GOODVIBES_BATCH_QUEUE', queue_name: input.queueName }] : []),
323
- { type: 'plain_text', name: 'GOODVIBES_DAEMON_URL', text: input.daemonBaseUrl },
324
- { type: 'plain_text', name: 'GOODVIBES_QUEUE_JOB_PAYLOADS', text: input.queueJobPayloads ? 'true' : 'false' },
325
- ...(input.kvNamespaceId ? [{ type: 'kv_namespace', name: 'GOODVIBES_KV', namespace_id: input.kvNamespaceId }] : []),
326
- ...(input.r2BucketName ? [{ type: 'r2_bucket', name: 'GOODVIBES_ARTIFACTS', bucket_name: input.r2BucketName }] : []),
327
- ...(input.durableObject ? [{ type: 'durable_object_namespace', name: 'GOODVIBES_COORDINATOR', class_name: DEFAULT_DO_NAMESPACE_NAME }] : []),
328
- ];
329
- await client.workers.scripts.update(input.workerName, {
330
- account_id: input.accountId,
331
- metadata: {
332
- main_module: 'goodvibes-cloudflare-worker.mjs',
333
- compatibility_date: '2026-04-25',
334
- bindings,
335
- ...(input.durableObject ? { migrations: { tag: 'goodvibes-coordinator-v1', new_sqlite_classes: [DEFAULT_DO_NAMESPACE_NAME] } } : {}),
336
- keep_bindings: ['secret_text'],
337
- },
338
- files: [file],
339
- });
340
- }
341
- export async function configureWorkerSubdomain(context, client, input) {
342
- if (!input.enableWorkersDev) {
343
- input.steps.push({ name: 'worker-subdomain', status: 'skipped', message: 'workers.dev subdomain enablement was skipped.' });
344
- return clean(input.requestedSubdomain) || context.readConfig().workerSubdomain;
345
- }
346
- let accountSubdomain = clean(input.requestedSubdomain) || context.readConfig().workerSubdomain;
347
- if (accountSubdomain) {
348
- const updated = await client.workers.subdomains.update({ account_id: input.accountId, subdomain: accountSubdomain });
349
- accountSubdomain = updated.subdomain;
350
- context.setConfig('cloudflare.workerSubdomain', accountSubdomain, input.persist);
351
- input.steps.push({ name: 'account-worker-subdomain', status: 'ok', message: `Configured account workers.dev subdomain ${accountSubdomain}.` });
352
- }
353
- else {
354
- try {
355
- const existing = await client.workers.subdomains.get({ account_id: input.accountId });
356
- accountSubdomain = existing.subdomain;
357
- context.setConfig('cloudflare.workerSubdomain', accountSubdomain, input.persist);
358
- input.steps.push({ name: 'account-worker-subdomain', status: 'ok', message: `Using account workers.dev subdomain ${accountSubdomain}.` });
359
- }
360
- catch (error) {
361
- input.steps.push({
362
- name: 'account-worker-subdomain',
363
- status: 'warning',
364
- message: `Could not read account workers.dev subdomain: ${summarizeError(error)}`,
365
- });
366
- }
367
- }
368
- try {
369
- const existing = await client.workers.scripts.subdomain.get(input.workerName, { account_id: input.accountId });
370
- if (existing.enabled) {
371
- input.steps.push({ name: 'worker-subdomain', status: 'ok', message: `Using existing workers.dev route for ${input.workerName}.` });
372
- return accountSubdomain;
373
- }
374
- }
375
- catch {
376
- // Older accounts may not return script-level subdomain state before it is enabled.
377
- }
378
- try {
379
- await client.workers.scripts.subdomain.create(input.workerName, {
380
- account_id: input.accountId,
381
- enabled: true,
382
- previews_enabled: false,
383
- });
384
- input.steps.push({ name: 'worker-subdomain', status: 'ok', message: `Enabled workers.dev route for ${input.workerName}.` });
385
- }
386
- catch (error) {
387
- const recovered = await client.workers.scripts.subdomain.get(input.workerName, { account_id: input.accountId });
388
- if (!recovered.enabled)
389
- throw error;
390
- input.steps.push({ name: 'worker-subdomain', status: 'ok', message: `Using existing workers.dev route for ${input.workerName} after enable retry: ${summarizeError(error)}` });
391
- }
392
- return accountSubdomain;
393
- }
394
318
  export async function ensureQueueConsumer(client, input) {
395
319
  const settings = {
396
320
  batch_size: 10,
@@ -0,0 +1,29 @@
1
+ import type { CloudflareApiClient, CloudflareProvisionStep } from './types.js';
2
+ import type { CloudflareProvisioningContext } from './resources.js';
3
+ export declare function uploadWorker(client: CloudflareApiClient, input: {
4
+ readonly accountId: string;
5
+ readonly workerName: string;
6
+ readonly queueName: string;
7
+ readonly daemonBaseUrl: string;
8
+ readonly queueJobPayloads: boolean;
9
+ readonly kvNamespaceId: string;
10
+ readonly r2BucketName: string;
11
+ readonly durableObject: boolean;
12
+ }): Promise<void>;
13
+ export declare function configureWorkerSubdomain(context: CloudflareProvisioningContext, client: CloudflareApiClient, input: {
14
+ readonly accountId: string;
15
+ readonly workerName: string;
16
+ readonly requestedSubdomain?: string;
17
+ readonly enableWorkersDev: boolean;
18
+ readonly steps: CloudflareProvisionStep[];
19
+ readonly persist: boolean;
20
+ }): Promise<string>;
21
+ export declare function configureWorkerSchedule(client: CloudflareApiClient, input: {
22
+ readonly accountId: string;
23
+ readonly workerName: string;
24
+ readonly workerCron: string;
25
+ readonly steps: CloudflareProvisionStep[];
26
+ }): Promise<void>;
27
+ export declare function disableWorkerSchedule(client: CloudflareApiClient, accountId: string, workerName: string, steps: CloudflareProvisionStep[]): Promise<void>;
28
+ export declare function disableWorkerSubdomain(client: CloudflareApiClient, accountId: string, workerName: string, steps: CloudflareProvisionStep[]): Promise<void>;
29
+ //# sourceMappingURL=worker-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-settings.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/worker-settings.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAEpE,wBAAsB,YAAY,CAChC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE;IACL,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC,GACA,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,6BAA6B,EACtC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE;IACL,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CAAC,MAAM,CAAC,CA4DjB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE;IACL,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC;CAC3C,GACA,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,uBAAuB,EAAE,GAC/B,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,uBAAuB,EAAE,GAC/B,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -0,0 +1,146 @@
1
+ import { summarizeError } from '../utils/error-display.js';
2
+ import { DEFAULT_DO_NAMESPACE_NAME } from './constants.js';
3
+ import { clean } from './utils.js';
4
+ import { GOODVIBES_CLOUDFLARE_WORKER_MODULE } from './worker-source.js';
5
+ export async function uploadWorker(client, input) {
6
+ const file = new File([GOODVIBES_CLOUDFLARE_WORKER_MODULE], 'goodvibes-cloudflare-worker.mjs', { type: 'application/javascript+module' });
7
+ const bindings = [
8
+ ...(input.queueName ? [{ type: 'queue', name: 'GOODVIBES_BATCH_QUEUE', queue_name: input.queueName }] : []),
9
+ { type: 'plain_text', name: 'GOODVIBES_DAEMON_URL', text: input.daemonBaseUrl },
10
+ { type: 'plain_text', name: 'GOODVIBES_QUEUE_JOB_PAYLOADS', text: input.queueJobPayloads ? 'true' : 'false' },
11
+ ...(input.kvNamespaceId ? [{ type: 'kv_namespace', name: 'GOODVIBES_KV', namespace_id: input.kvNamespaceId }] : []),
12
+ ...(input.r2BucketName ? [{ type: 'r2_bucket', name: 'GOODVIBES_ARTIFACTS', bucket_name: input.r2BucketName }] : []),
13
+ ...(input.durableObject ? [{ type: 'durable_object_namespace', name: 'GOODVIBES_COORDINATOR', class_name: DEFAULT_DO_NAMESPACE_NAME }] : []),
14
+ ];
15
+ await client.workers.scripts.update(input.workerName, {
16
+ account_id: input.accountId,
17
+ metadata: {
18
+ main_module: 'goodvibes-cloudflare-worker.mjs',
19
+ compatibility_date: '2026-04-25',
20
+ bindings,
21
+ ...(input.durableObject ? { migrations: { tag: 'goodvibes-coordinator-v1', new_sqlite_classes: [DEFAULT_DO_NAMESPACE_NAME] } } : {}),
22
+ keep_bindings: ['secret_text'],
23
+ },
24
+ files: [file],
25
+ });
26
+ }
27
+ export async function configureWorkerSubdomain(context, client, input) {
28
+ const requested = clean(input.requestedSubdomain) || context.readConfig().workerSubdomain;
29
+ if (!input.enableWorkersDev) {
30
+ input.steps.push({ name: 'worker-subdomain', status: 'skipped', message: 'workers.dev subdomain enablement was skipped.' });
31
+ return requested;
32
+ }
33
+ let accountSubdomain = await readAccountWorkerSubdomain(client, input.accountId);
34
+ if (accountSubdomain) {
35
+ context.setConfig('cloudflare.workerSubdomain', accountSubdomain, input.persist);
36
+ input.steps.push({
37
+ name: 'account-worker-subdomain',
38
+ status: requested && requested !== accountSubdomain ? 'warning' : 'ok',
39
+ message: requested && requested !== accountSubdomain
40
+ ? `Using existing account workers.dev subdomain ${accountSubdomain}; requested ${requested} was ignored because the account already has an associated subdomain.`
41
+ : `Using account workers.dev subdomain ${accountSubdomain}.`,
42
+ });
43
+ }
44
+ else if (requested) {
45
+ try {
46
+ const updated = await client.workers.subdomains.update({ account_id: input.accountId, subdomain: requested });
47
+ accountSubdomain = clean(updated.subdomain) || requested;
48
+ context.setConfig('cloudflare.workerSubdomain', accountSubdomain, input.persist);
49
+ input.steps.push({ name: 'account-worker-subdomain', status: 'ok', message: `Configured account workers.dev subdomain ${accountSubdomain}.` });
50
+ }
51
+ catch (error) {
52
+ const recovered = await readAccountWorkerSubdomain(client, input.accountId);
53
+ if (!recovered)
54
+ throw error;
55
+ accountSubdomain = recovered;
56
+ context.setConfig('cloudflare.workerSubdomain', accountSubdomain, input.persist);
57
+ input.steps.push({
58
+ name: 'account-worker-subdomain',
59
+ status: requested === recovered ? 'ok' : 'warning',
60
+ message: `Using existing account workers.dev subdomain ${accountSubdomain} after configure retry: ${summarizeError(error)}`,
61
+ });
62
+ }
63
+ }
64
+ else {
65
+ input.steps.push({ name: 'account-worker-subdomain', status: 'warning', message: 'No account workers.dev subdomain is configured.' });
66
+ }
67
+ try {
68
+ const existing = await client.workers.scripts.subdomain.get(input.workerName, { account_id: input.accountId });
69
+ if (existing.enabled) {
70
+ input.steps.push({ name: 'worker-subdomain', status: 'ok', message: `Using existing workers.dev route for ${input.workerName}.` });
71
+ return accountSubdomain;
72
+ }
73
+ }
74
+ catch {
75
+ // Older accounts may not return script-level subdomain state before it is enabled.
76
+ }
77
+ try {
78
+ await client.workers.scripts.subdomain.create(input.workerName, {
79
+ account_id: input.accountId,
80
+ enabled: true,
81
+ previews_enabled: false,
82
+ });
83
+ input.steps.push({ name: 'worker-subdomain', status: 'ok', message: `Enabled workers.dev route for ${input.workerName}.` });
84
+ }
85
+ catch (error) {
86
+ const recovered = await client.workers.scripts.subdomain.get(input.workerName, { account_id: input.accountId });
87
+ if (!recovered.enabled)
88
+ throw error;
89
+ input.steps.push({ name: 'worker-subdomain', status: 'ok', message: `Using existing workers.dev route for ${input.workerName} after enable retry: ${summarizeError(error)}` });
90
+ }
91
+ return accountSubdomain;
92
+ }
93
+ export async function configureWorkerSchedule(client, input) {
94
+ const body = [{ cron: input.workerCron }];
95
+ try {
96
+ const existing = await client.workers.scripts.schedules.get(input.workerName, { account_id: input.accountId });
97
+ if (sameSchedules(existing.schedules, body)) {
98
+ input.steps.push({ name: 'configure-cron', status: 'ok', message: `Using existing Worker cron ${input.workerCron}.` });
99
+ return;
100
+ }
101
+ }
102
+ catch {
103
+ // Some accounts return 404 until the script has its first schedule.
104
+ }
105
+ await client.workers.scripts.schedules.update(input.workerName, { account_id: input.accountId, body });
106
+ input.steps.push({ name: 'configure-cron', status: 'ok', message: `Configured Worker cron ${input.workerCron}.` });
107
+ }
108
+ export async function disableWorkerSchedule(client, accountId, workerName, steps) {
109
+ try {
110
+ const existing = await client.workers.scripts.schedules.get(workerName, { account_id: accountId });
111
+ if (existing.schedules.length === 0) {
112
+ steps.push({ name: 'disable-cron', status: 'skipped', message: `No Worker cron schedules were configured for ${workerName}.` });
113
+ return;
114
+ }
115
+ }
116
+ catch {
117
+ // Keep disable best-effort: if state cannot be read, clear schedules anyway.
118
+ }
119
+ await client.workers.scripts.schedules.update(workerName, { account_id: accountId, body: [] });
120
+ steps.push({ name: 'disable-cron', status: 'ok', message: `Removed Worker cron schedules from ${workerName}.` });
121
+ }
122
+ export async function disableWorkerSubdomain(client, accountId, workerName, steps) {
123
+ try {
124
+ const existing = await client.workers.scripts.subdomain.get(workerName, { account_id: accountId });
125
+ if (!existing.enabled) {
126
+ steps.push({ name: 'disable-worker-subdomain', status: 'skipped', message: `workers.dev route was already disabled for ${workerName}.` });
127
+ return;
128
+ }
129
+ }
130
+ catch {
131
+ // Keep disable best-effort: if state cannot be read, attempt deletion.
132
+ }
133
+ await client.workers.scripts.subdomain.delete(workerName, { account_id: accountId });
134
+ steps.push({ name: 'disable-worker-subdomain', status: 'ok', message: `Disabled workers.dev route for ${workerName}.` });
135
+ }
136
+ async function readAccountWorkerSubdomain(client, accountId) {
137
+ try {
138
+ return clean((await client.workers.subdomains.get({ account_id: accountId })).subdomain);
139
+ }
140
+ catch {
141
+ return '';
142
+ }
143
+ }
144
+ function sameSchedules(actual, expected) {
145
+ return actual.length === expected.length && actual.every((schedule, index) => schedule.cron === expected[index]?.cron);
146
+ }
@@ -1,6 +1,6 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- let version = '0.25.18';
3
+ let version = '0.25.19';
4
4
  try {
5
5
  const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', '..', 'package.json'), 'utf-8'));
6
6
  version = pkg.version ?? version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-sdk",
3
- "version": "0.25.18",
3
+ "version": "0.25.19",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/mgd34msu/goodvibes-sdk.git"