@authrim/setup 0.1.4 → 0.1.7

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.
@@ -166,6 +166,32 @@ export async function deleteD1Database(name) {
166
166
  return false;
167
167
  }
168
168
  }
169
+ export async function getD1Info(name) {
170
+ try {
171
+ const { stdout } = await wrangler(['d1', 'info', name]);
172
+ // Parse the table output
173
+ const createdAtMatch = stdout.match(/created_at\s*│\s*(\S+)/);
174
+ const sizeMatch = stdout.match(/database_size\s*│\s*([^\n│]+)/);
175
+ const tablesMatch = stdout.match(/num_tables\s*│\s*(\d+)/);
176
+ const regionMatch = stdout.match(/running_in_region\s*│\s*(\S+)/);
177
+ return {
178
+ name,
179
+ createdAt: createdAtMatch?.[1]?.trim() || null,
180
+ databaseSize: sizeMatch?.[1]?.trim() || null,
181
+ numTables: tablesMatch ? parseInt(tablesMatch[1], 10) : null,
182
+ region: regionMatch?.[1]?.trim() || null,
183
+ };
184
+ }
185
+ catch {
186
+ return {
187
+ name,
188
+ createdAt: null,
189
+ databaseSize: null,
190
+ numTables: null,
191
+ region: null,
192
+ };
193
+ }
194
+ }
169
195
  // =============================================================================
170
196
  // KV Namespace Operations
171
197
  // =============================================================================
@@ -361,11 +387,19 @@ export async function provisionResources(options) {
361
387
  queues: [],
362
388
  r2: [],
363
389
  };
390
+ // Calculate totals for progress tracking
391
+ const d1Count = D1_DATABASES.length;
392
+ const kvCount = KV_NAMESPACES.length;
393
+ const totalResources = d1Count + kvCount;
394
+ let completedResources = 0;
395
+ onProgress(`📦 Provisioning ${totalResources} resources...`);
396
+ onProgress('');
364
397
  // Provision D1 databases
365
398
  if (options.createD1 !== false) {
399
+ onProgress(`📊 D1 Databases (0/${d1Count})`);
366
400
  for (const db of D1_DATABASES) {
367
401
  const dbName = getD1DatabaseName(env, db.dbType);
368
- onProgress(`Creating D1 database: ${dbName}`);
402
+ onProgress(`Creating: ${dbName}...`);
369
403
  try {
370
404
  const result = await createD1Database(dbName);
371
405
  resources.d1.push({
@@ -373,40 +407,51 @@ export async function provisionResources(options) {
373
407
  name: result.name,
374
408
  id: result.id,
375
409
  });
376
- onProgress(` ✓ ${dbName} created`);
410
+ completedResources++;
411
+ onProgress(` ✅ ${dbName} (ID: ${result.id.substring(0, 8)}...)`);
377
412
  }
378
413
  catch (error) {
379
- onProgress(` Failed to create ${dbName}: ${sanitizeError(error)}`);
414
+ onProgress(` Failed: ${dbName} - ${sanitizeError(error)}`);
380
415
  throw new Error(`Failed to create D1 database ${dbName}`);
381
416
  }
382
417
  }
418
+ onProgress(`📊 D1 Databases (${d1Count}/${d1Count}) ✓`);
419
+ onProgress('');
383
420
  }
384
421
  // Provision KV namespaces
385
422
  if (options.createKV !== false) {
423
+ onProgress(`🗄️ KV Namespaces (0/${kvCount})`);
424
+ let kvCreated = 0;
386
425
  for (const kvName of KV_NAMESPACES) {
387
426
  const nsName = getKVNamespaceName(env, kvName);
388
- onProgress(`Creating KV namespace: ${nsName}`);
427
+ onProgress(`Creating: ${nsName}...`);
389
428
  try {
390
429
  const result = await createKVNamespace(nsName);
391
- const previewResult = await createKVNamespace(nsName, true);
430
+ // Preview namespaces are auto-created by wrangler dev when needed
431
+ // const previewResult = await createKVNamespace(nsName, true);
392
432
  resources.kv.push({
393
433
  binding: kvName,
394
434
  name: result.name,
395
435
  id: result.id,
396
- previewId: previewResult.id,
436
+ // previewId: previewResult.id,
397
437
  });
398
- onProgress(` ✓ ${nsName} created`);
438
+ completedResources++;
439
+ kvCreated++;
440
+ onProgress(` ✅ ${nsName} (ID: ${result.id.substring(0, 8)}...)`);
399
441
  }
400
442
  catch (error) {
401
- onProgress(` Failed to create ${nsName}: ${sanitizeError(error)}`);
443
+ onProgress(` Failed: ${nsName} - ${sanitizeError(error)}`);
402
444
  throw new Error(`Failed to create KV namespace ${nsName}`);
403
445
  }
404
446
  }
447
+ onProgress(`🗄️ KV Namespaces (${kvCount}/${kvCount}) ✓`);
448
+ onProgress('');
405
449
  }
406
450
  // Provision Queues (optional)
407
451
  if (options.createQueues) {
452
+ onProgress('📨 Queues');
408
453
  const queueName = getQueueName(env, 'audit-queue');
409
- onProgress(`Creating Queue: ${queueName}`);
454
+ onProgress(`Creating: ${queueName}...`);
410
455
  try {
411
456
  const result = await createQueue(queueName);
412
457
  resources.queues.push({
@@ -414,28 +459,35 @@ export async function provisionResources(options) {
414
459
  name: result.name,
415
460
  id: result.id,
416
461
  });
417
- onProgress(` ${queueName} created`);
462
+ onProgress(` ${queueName} created`);
418
463
  }
419
464
  catch (error) {
420
- onProgress(` Failed to create ${queueName}: ${sanitizeError(error)}`);
465
+ onProgress(` ⚠️ Skipped: ${queueName} - ${sanitizeError(error)}`);
421
466
  }
467
+ onProgress('');
422
468
  }
423
469
  // Provision R2 buckets (optional)
424
470
  if (options.createR2) {
471
+ onProgress('📁 R2 Buckets');
425
472
  const bucketName = `${env}-authrim-avatars`;
426
- onProgress(`Creating R2 bucket: ${bucketName}`);
473
+ onProgress(`Creating: ${bucketName}...`);
427
474
  try {
428
475
  const result = await createR2Bucket(bucketName);
429
476
  resources.r2.push({
430
477
  binding: 'AVATARS',
431
478
  name: result.name,
432
479
  });
433
- onProgress(` ${bucketName} created`);
480
+ onProgress(` ${bucketName} created`);
434
481
  }
435
482
  catch (error) {
436
- onProgress(` Failed to create ${bucketName}: ${sanitizeError(error)}`);
483
+ onProgress(` ⚠️ Skipped: ${bucketName} - ${sanitizeError(error)}`);
437
484
  }
485
+ onProgress('');
438
486
  }
487
+ // Summary
488
+ onProgress('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
489
+ onProgress(`✅ Provisioning complete!`);
490
+ onProgress(` D1: ${resources.d1.length}, KV: ${resources.kv.length}, Queues: ${resources.queues.length}, R2: ${resources.r2.length}`);
439
491
  return resources;
440
492
  }
441
493
  /**
@@ -466,4 +518,403 @@ export function toResourceIds(resources) {
466
518
  }
467
519
  return result;
468
520
  }
521
+ // =============================================================================
522
+ // Environment Detection & Deletion
523
+ // =============================================================================
524
+ /**
525
+ * Pattern to detect Authrim resources by name
526
+ */
527
+ const AUTHRIM_PATTERNS = {
528
+ worker: /^([a-z][a-z0-9-]*)-ar-(auth|token|userinfo|discovery|management|router|async|saml|bridge|vc|lib-core|policy)$/,
529
+ d1: /^([a-z][a-z0-9-]*)-authrim-(core|pii)-db$/,
530
+ // KV can have either lowercase or uppercase env prefix (e.g., conformance-CLIENTS_CACHE or TESTENV-CLIENTS_CACHE)
531
+ kv: /^([a-zA-Z][a-zA-Z0-9-]*)-(?:CLIENTS_CACHE|INITIAL_ACCESS_TOKENS|SETTINGS|REBAC_CACHE|USER_CACHE|AUTHRIM_CONFIG|STATE_STORE|CONSENT_CACHE)(?:_preview)?$/i,
532
+ queue: /^([a-z][a-z0-9-]*)-audit-queue$/,
533
+ r2: /^([a-z][a-z0-9-]*)-authrim-avatars$/,
534
+ };
535
+ /**
536
+ * List all Workers
537
+ */
538
+ export async function listWorkers() {
539
+ try {
540
+ const { stdout } = await wrangler(['deployments', 'list', '--json']);
541
+ // Note: wrangler deployments list doesn't give us what we need
542
+ // We'll use wrangler whoami to get account and then list workers differently
543
+ // For now, return empty - we'll detect workers from D1/KV patterns
544
+ return [];
545
+ }
546
+ catch {
547
+ return [];
548
+ }
549
+ }
550
+ /**
551
+ * List R2 buckets
552
+ */
553
+ export async function listR2Buckets() {
554
+ try {
555
+ const { stdout } = await wrangler(['r2', 'bucket', 'list']);
556
+ // Parse the output - format is "name: bucket-name" per line
557
+ const lines = stdout.split('\n').filter((line) => line.trim());
558
+ const buckets = [];
559
+ for (const line of lines) {
560
+ // Parse "name: bucket-name" format
561
+ const match = line.match(/^name:\s+(.+)$/);
562
+ if (match && match[1]) {
563
+ buckets.push({ name: match[1].trim() });
564
+ }
565
+ }
566
+ return buckets;
567
+ }
568
+ catch {
569
+ return [];
570
+ }
571
+ }
572
+ /**
573
+ * List Queues
574
+ */
575
+ export async function listQueues() {
576
+ try {
577
+ const { stdout } = await wrangler(['queues', 'list']);
578
+ // Parse JSON output
579
+ const queues = JSON.parse(stdout);
580
+ return queues.map((q) => ({
581
+ name: q.queue_name || '',
582
+ id: q.queue_id,
583
+ }));
584
+ }
585
+ catch {
586
+ return [];
587
+ }
588
+ }
589
+ /**
590
+ * Detect all Authrim environments from existing resources
591
+ */
592
+ export async function detectEnvironments(onProgress) {
593
+ const environments = new Map();
594
+ const progress = onProgress || (() => { });
595
+ progress('Scanning D1 databases...');
596
+ try {
597
+ const databases = await listD1Databases();
598
+ for (const db of databases) {
599
+ const match = db.name.match(AUTHRIM_PATTERNS.d1);
600
+ if (match) {
601
+ const env = match[1].toLowerCase();
602
+ if (!environments.has(env)) {
603
+ environments.set(env, {
604
+ env,
605
+ workers: [],
606
+ d1: [],
607
+ kv: [],
608
+ queues: [],
609
+ r2: [],
610
+ });
611
+ }
612
+ environments.get(env).d1.push({ name: db.name, id: db.uuid });
613
+ }
614
+ }
615
+ }
616
+ catch (error) {
617
+ progress(` ⚠️ Could not scan D1: ${error instanceof Error ? error.message : error}`);
618
+ }
619
+ progress('Scanning KV namespaces...');
620
+ try {
621
+ const namespaces = await listKVNamespaces();
622
+ for (const ns of namespaces) {
623
+ const match = ns.title.match(AUTHRIM_PATTERNS.kv);
624
+ if (match) {
625
+ const env = match[1].toLowerCase();
626
+ if (!environments.has(env)) {
627
+ environments.set(env, {
628
+ env,
629
+ workers: [],
630
+ d1: [],
631
+ kv: [],
632
+ queues: [],
633
+ r2: [],
634
+ });
635
+ }
636
+ environments.get(env).kv.push({ name: ns.title, id: ns.id });
637
+ }
638
+ }
639
+ }
640
+ catch (error) {
641
+ progress(` ⚠️ Could not scan KV: ${error instanceof Error ? error.message : error}`);
642
+ }
643
+ progress('Scanning Queues...');
644
+ try {
645
+ const queues = await listQueues();
646
+ for (const q of queues) {
647
+ const match = q.name.match(AUTHRIM_PATTERNS.queue);
648
+ if (match) {
649
+ const env = match[1].toLowerCase();
650
+ if (!environments.has(env)) {
651
+ environments.set(env, {
652
+ env,
653
+ workers: [],
654
+ d1: [],
655
+ kv: [],
656
+ queues: [],
657
+ r2: [],
658
+ });
659
+ }
660
+ environments.get(env).queues.push({ name: q.name, id: q.id });
661
+ }
662
+ }
663
+ }
664
+ catch (error) {
665
+ progress(` ⚠️ Could not scan Queues: ${error instanceof Error ? error.message : error}`);
666
+ }
667
+ progress('Scanning R2 buckets...');
668
+ try {
669
+ const buckets = await listR2Buckets();
670
+ for (const bucket of buckets) {
671
+ const match = bucket.name.match(AUTHRIM_PATTERNS.r2);
672
+ if (match) {
673
+ const env = match[1].toLowerCase();
674
+ if (!environments.has(env)) {
675
+ environments.set(env, {
676
+ env,
677
+ workers: [],
678
+ d1: [],
679
+ kv: [],
680
+ queues: [],
681
+ r2: [],
682
+ });
683
+ }
684
+ environments.get(env).r2.push({ name: bucket.name });
685
+ }
686
+ }
687
+ }
688
+ catch (error) {
689
+ progress(` ⚠️ Could not scan R2: ${error instanceof Error ? error.message : error}`);
690
+ }
691
+ // Infer workers from detected environments
692
+ const workerComponents = [
693
+ 'ar-lib-core',
694
+ 'ar-auth',
695
+ 'ar-token',
696
+ 'ar-userinfo',
697
+ 'ar-discovery',
698
+ 'ar-management',
699
+ 'ar-router',
700
+ 'ar-async',
701
+ 'ar-saml',
702
+ 'ar-bridge',
703
+ 'ar-vc',
704
+ 'ar-policy',
705
+ ];
706
+ for (const [env, info] of environments) {
707
+ for (const comp of workerComponents) {
708
+ info.workers.push({ name: `${env}-${comp}` });
709
+ }
710
+ }
711
+ progress(`Found ${environments.size} environment(s)`);
712
+ return Array.from(environments.values()).sort((a, b) => a.env.localeCompare(b.env));
713
+ }
714
+ /**
715
+ * Delete a Worker
716
+ */
717
+ export async function deleteWorker(name) {
718
+ try {
719
+ await wrangler(['delete', '--name', name, '--force']);
720
+ return true;
721
+ }
722
+ catch {
723
+ // Worker might not exist
724
+ return false;
725
+ }
726
+ }
727
+ export async function getWorkerDeployments(name) {
728
+ try {
729
+ const { stdout, stderr } = await wrangler(['deployments', 'list', '--name', name]);
730
+ // Check if worker doesn't exist
731
+ if (stderr?.includes('does not exist') || stderr?.includes('10007')) {
732
+ return {
733
+ name,
734
+ exists: false,
735
+ lastDeployedAt: null,
736
+ author: null,
737
+ versionId: null,
738
+ };
739
+ }
740
+ // Parse deployment info - get the first (most recent) deployment
741
+ // Format: Created: 2025-12-31T16:05:56.164Z
742
+ const createdMatch = stdout.match(/Created:\s+(\d{4}-\d{2}-\d{2}T[\d:.]+Z)/);
743
+ const authorMatch = stdout.match(/Author:\s+(\S+)/);
744
+ const versionMatch = stdout.match(/Version\(s\):\s+\(\d+%\)\s+([a-f0-9-]+)/);
745
+ return {
746
+ name,
747
+ exists: true,
748
+ lastDeployedAt: createdMatch?.[1] || null,
749
+ author: authorMatch?.[1] || null,
750
+ versionId: versionMatch?.[1] || null,
751
+ };
752
+ }
753
+ catch {
754
+ return {
755
+ name,
756
+ exists: false,
757
+ lastDeployedAt: null,
758
+ author: null,
759
+ versionId: null,
760
+ };
761
+ }
762
+ }
763
+ /**
764
+ * Delete a Queue
765
+ */
766
+ export async function deleteQueue(name) {
767
+ try {
768
+ await wrangler(['queues', 'delete', name]);
769
+ return true;
770
+ }
771
+ catch {
772
+ return false;
773
+ }
774
+ }
775
+ /**
776
+ * Delete an R2 bucket
777
+ */
778
+ export async function deleteR2Bucket(name) {
779
+ try {
780
+ await wrangler(['r2', 'bucket', 'delete', name]);
781
+ return true;
782
+ }
783
+ catch {
784
+ return false;
785
+ }
786
+ }
787
+ /**
788
+ * Delete an environment and its resources
789
+ */
790
+ export async function deleteEnvironment(options) {
791
+ const { env, deleteWorkers = true, deleteD1 = true, deleteKV = true, deleteQueues = true, deleteR2 = true, onProgress = console.log, } = options;
792
+ validateEnvName(env);
793
+ const deleted = {
794
+ workers: [],
795
+ d1: [],
796
+ kv: [],
797
+ queues: [],
798
+ r2: [],
799
+ };
800
+ const errors = [];
801
+ // Get environment info first
802
+ const envs = await detectEnvironments();
803
+ const envInfo = envs.find((e) => e.env === env);
804
+ if (!envInfo) {
805
+ return {
806
+ success: false,
807
+ deleted,
808
+ errors: [`Environment '${env}' not found`],
809
+ };
810
+ }
811
+ onProgress(`🗑️ Deleting environment: ${env}`);
812
+ onProgress('');
813
+ // Delete Workers (must be done first as they reference D1/KV)
814
+ if (deleteWorkers && envInfo.workers.length > 0) {
815
+ onProgress(`🔧 Deleting Workers (${envInfo.workers.length})...`);
816
+ for (const worker of envInfo.workers) {
817
+ onProgress(` ⏳ Deleting: ${worker.name}...`);
818
+ const success = await deleteWorker(worker.name);
819
+ if (success) {
820
+ deleted.workers.push(worker.name);
821
+ onProgress(` ✅ ${worker.name}`);
822
+ }
823
+ else {
824
+ onProgress(` ⚠️ ${worker.name} (not found or already deleted)`);
825
+ }
826
+ }
827
+ onProgress('');
828
+ }
829
+ // Delete D1 databases
830
+ if (deleteD1 && envInfo.d1.length > 0) {
831
+ onProgress(`📊 Deleting D1 Databases (${envInfo.d1.length})...`);
832
+ for (const db of envInfo.d1) {
833
+ onProgress(` ⏳ Deleting: ${db.name}...`);
834
+ const success = await deleteD1Database(db.name);
835
+ if (success) {
836
+ deleted.d1.push(db.name);
837
+ onProgress(` ✅ ${db.name}`);
838
+ }
839
+ else {
840
+ errors.push(`Failed to delete D1: ${db.name}`);
841
+ onProgress(` ❌ ${db.name}`);
842
+ }
843
+ }
844
+ onProgress('');
845
+ }
846
+ // Delete KV namespaces
847
+ if (deleteKV && envInfo.kv.length > 0) {
848
+ onProgress(`🗄️ Deleting KV Namespaces (${envInfo.kv.length})...`);
849
+ for (const kv of envInfo.kv) {
850
+ onProgress(` ⏳ Deleting: ${kv.name}...`);
851
+ const success = await deleteKVNamespace(kv.id);
852
+ if (success) {
853
+ deleted.kv.push(kv.name);
854
+ onProgress(` ✅ ${kv.name}`);
855
+ }
856
+ else {
857
+ errors.push(`Failed to delete KV: ${kv.name}`);
858
+ onProgress(` ❌ ${kv.name}`);
859
+ }
860
+ }
861
+ onProgress('');
862
+ }
863
+ // Delete Queues
864
+ if (deleteQueues && envInfo.queues.length > 0) {
865
+ onProgress(`📨 Deleting Queues (${envInfo.queues.length})...`);
866
+ for (const queue of envInfo.queues) {
867
+ onProgress(` ⏳ Deleting: ${queue.name}...`);
868
+ const success = await deleteQueue(queue.name);
869
+ if (success) {
870
+ deleted.queues.push(queue.name);
871
+ onProgress(` ✅ ${queue.name}`);
872
+ }
873
+ else {
874
+ errors.push(`Failed to delete Queue: ${queue.name}`);
875
+ onProgress(` ❌ ${queue.name}`);
876
+ }
877
+ }
878
+ onProgress('');
879
+ }
880
+ // Delete R2 buckets
881
+ if (deleteR2 && envInfo.r2.length > 0) {
882
+ onProgress(`📁 Deleting R2 Buckets (${envInfo.r2.length})...`);
883
+ for (const bucket of envInfo.r2) {
884
+ onProgress(` ⏳ Deleting: ${bucket.name}...`);
885
+ const success = await deleteR2Bucket(bucket.name);
886
+ if (success) {
887
+ deleted.r2.push(bucket.name);
888
+ onProgress(` ✅ ${bucket.name}`);
889
+ }
890
+ else {
891
+ errors.push(`Failed to delete R2: ${bucket.name}`);
892
+ onProgress(` ❌ ${bucket.name}`);
893
+ }
894
+ }
895
+ onProgress('');
896
+ }
897
+ // Summary
898
+ const totalDeleted = deleted.workers.length +
899
+ deleted.d1.length +
900
+ deleted.kv.length +
901
+ deleted.queues.length +
902
+ deleted.r2.length;
903
+ onProgress('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
904
+ if (errors.length === 0) {
905
+ onProgress(`✅ Environment '${env}' deleted successfully!`);
906
+ }
907
+ else {
908
+ onProgress(`⚠️ Environment '${env}' partially deleted`);
909
+ }
910
+ onProgress(` Deleted: ${totalDeleted} resources`);
911
+ if (errors.length > 0) {
912
+ onProgress(` Errors: ${errors.length}`);
913
+ }
914
+ return {
915
+ success: errors.length === 0,
916
+ deleted,
917
+ errors,
918
+ };
919
+ }
469
920
  //# sourceMappingURL=cloudflare.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/core/cloudflare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/core/cloudflare.ts"],"names":[],"mappings":"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"}