@authrim/setup 0.1.140 → 0.1.142

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 (122) hide show
  1. package/dist/__tests__/keys.test.js +73 -2
  2. package/dist/__tests__/keys.test.js.map +1 -1
  3. package/dist/__tests__/migrate.test.js +4 -4
  4. package/dist/__tests__/migrate.test.js.map +1 -1
  5. package/dist/__tests__/paths.test.js +163 -1
  6. package/dist/__tests__/paths.test.js.map +1 -1
  7. package/dist/__tests__/source-context.test.d.ts +2 -0
  8. package/dist/__tests__/source-context.test.d.ts.map +1 -0
  9. package/dist/__tests__/source-context.test.js +72 -0
  10. package/dist/__tests__/source-context.test.js.map +1 -0
  11. package/dist/cli/commands/deploy.d.ts.map +1 -1
  12. package/dist/cli/commands/deploy.js +65 -37
  13. package/dist/cli/commands/deploy.js.map +1 -1
  14. package/dist/cli/commands/init.d.ts.map +1 -1
  15. package/dist/cli/commands/init.js +277 -198
  16. package/dist/cli/commands/init.js.map +1 -1
  17. package/dist/core/admin.d.ts +6 -1
  18. package/dist/core/admin.d.ts.map +1 -1
  19. package/dist/core/admin.js +45 -20
  20. package/dist/core/admin.js.map +1 -1
  21. package/dist/core/cloudflare.d.ts +38 -1
  22. package/dist/core/cloudflare.d.ts.map +1 -1
  23. package/dist/core/cloudflare.js +729 -115
  24. package/dist/core/cloudflare.js.map +1 -1
  25. package/dist/core/config.d.ts +164 -34
  26. package/dist/core/config.d.ts.map +1 -1
  27. package/dist/core/config.js +72 -18
  28. package/dist/core/config.js.map +1 -1
  29. package/dist/core/deploy.d.ts +18 -0
  30. package/dist/core/deploy.d.ts.map +1 -1
  31. package/dist/core/deploy.js +126 -25
  32. package/dist/core/deploy.js.map +1 -1
  33. package/dist/core/keys.d.ts +20 -4
  34. package/dist/core/keys.d.ts.map +1 -1
  35. package/dist/core/keys.js +77 -17
  36. package/dist/core/keys.js.map +1 -1
  37. package/dist/core/login-ui-client.d.ts +42 -0
  38. package/dist/core/login-ui-client.d.ts.map +1 -0
  39. package/dist/core/login-ui-client.js +173 -0
  40. package/dist/core/login-ui-client.js.map +1 -0
  41. package/dist/core/migrate.d.ts +37 -0
  42. package/dist/core/migrate.d.ts.map +1 -1
  43. package/dist/core/migrate.js +92 -2
  44. package/dist/core/migrate.js.map +1 -1
  45. package/dist/core/paths.d.ts +78 -13
  46. package/dist/core/paths.d.ts.map +1 -1
  47. package/dist/core/paths.js +135 -17
  48. package/dist/core/paths.js.map +1 -1
  49. package/dist/core/source-context.d.ts +22 -0
  50. package/dist/core/source-context.d.ts.map +1 -0
  51. package/dist/core/source-context.js +46 -0
  52. package/dist/core/source-context.js.map +1 -0
  53. package/dist/core/tenant-mode.d.ts +4 -0
  54. package/dist/core/tenant-mode.d.ts.map +1 -0
  55. package/dist/core/tenant-mode.js +17 -0
  56. package/dist/core/tenant-mode.js.map +1 -0
  57. package/dist/core/ui-deployment.d.ts +21 -0
  58. package/dist/core/ui-deployment.d.ts.map +1 -0
  59. package/dist/core/ui-deployment.js +90 -0
  60. package/dist/core/ui-deployment.js.map +1 -0
  61. package/dist/core/ui-env.d.ts +28 -0
  62. package/dist/core/ui-env.d.ts.map +1 -1
  63. package/dist/core/ui-env.js +16 -0
  64. package/dist/core/ui-env.js.map +1 -1
  65. package/dist/core/url-config.d.ts +16 -0
  66. package/dist/core/url-config.d.ts.map +1 -0
  67. package/dist/core/url-config.js +46 -0
  68. package/dist/core/url-config.js.map +1 -0
  69. package/dist/core/wrangler.d.ts +50 -1
  70. package/dist/core/wrangler.d.ts.map +1 -1
  71. package/dist/core/wrangler.js +171 -57
  72. package/dist/core/wrangler.js.map +1 -1
  73. package/dist/i18n/locales/de.d.ts.map +1 -1
  74. package/dist/i18n/locales/de.js +38 -1
  75. package/dist/i18n/locales/de.js.map +1 -1
  76. package/dist/i18n/locales/en.d.ts.map +1 -1
  77. package/dist/i18n/locales/en.js +38 -1
  78. package/dist/i18n/locales/en.js.map +1 -1
  79. package/dist/i18n/locales/es.d.ts.map +1 -1
  80. package/dist/i18n/locales/es.js +38 -1
  81. package/dist/i18n/locales/es.js.map +1 -1
  82. package/dist/i18n/locales/fr.d.ts.map +1 -1
  83. package/dist/i18n/locales/fr.js +38 -1
  84. package/dist/i18n/locales/fr.js.map +1 -1
  85. package/dist/i18n/locales/id.d.ts.map +1 -1
  86. package/dist/i18n/locales/id.js +38 -1
  87. package/dist/i18n/locales/id.js.map +1 -1
  88. package/dist/i18n/locales/ja.d.ts.map +1 -1
  89. package/dist/i18n/locales/ja.js +38 -1
  90. package/dist/i18n/locales/ja.js.map +1 -1
  91. package/dist/i18n/locales/ko.d.ts.map +1 -1
  92. package/dist/i18n/locales/ko.js +38 -1
  93. package/dist/i18n/locales/ko.js.map +1 -1
  94. package/dist/i18n/locales/pt.d.ts.map +1 -1
  95. package/dist/i18n/locales/pt.js +38 -1
  96. package/dist/i18n/locales/pt.js.map +1 -1
  97. package/dist/i18n/locales/ru.d.ts.map +1 -1
  98. package/dist/i18n/locales/ru.js +38 -1
  99. package/dist/i18n/locales/ru.js.map +1 -1
  100. package/dist/i18n/locales/zh-CN.d.ts.map +1 -1
  101. package/dist/i18n/locales/zh-CN.js +38 -1
  102. package/dist/i18n/locales/zh-CN.js.map +1 -1
  103. package/dist/i18n/locales/zh-TW.d.ts.map +1 -1
  104. package/dist/i18n/locales/zh-TW.js +38 -1
  105. package/dist/i18n/locales/zh-TW.js.map +1 -1
  106. package/dist/i18n/types.d.ts +8 -0
  107. package/dist/i18n/types.d.ts.map +1 -1
  108. package/dist/index.d.ts +8 -1
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +46 -30
  111. package/dist/index.js.map +1 -1
  112. package/dist/web/api.d.ts.map +1 -1
  113. package/dist/web/api.js +243 -116
  114. package/dist/web/api.js.map +1 -1
  115. package/dist/web/ui.d.ts.map +1 -1
  116. package/dist/web/ui.js +513 -115
  117. package/dist/web/ui.js.map +1 -1
  118. package/migrations/000_fresh_schema.sql +229 -10
  119. package/migrations/admin/007_admin_role_inheritance.sql +32 -0
  120. package/migrations/admin/008_admin_rebac_definitions.sql +117 -0
  121. package/migrations/admin/009_optimize_admin_audit_indexes.sql +15 -0
  122. package/package.json +5 -5
@@ -0,0 +1,21 @@
1
+ import type { AuthrimConfig } from './config.js';
2
+ import type { UiEnvConfig } from './ui-env.js';
3
+ export type UiComponent = 'ar-login-ui' | 'ar-admin-ui';
4
+ export declare const DISABLED_API_BACKEND_URL = "__DISABLED__";
5
+ export interface ResolveUiDeploymentOptions {
6
+ component: UiComponent;
7
+ config: AuthrimConfig;
8
+ apiBaseUrl?: string;
9
+ loginUiClientId?: string;
10
+ }
11
+ export interface UiDeploymentSettings {
12
+ apiBaseUrl: string;
13
+ uiUrl: string;
14
+ useRelativeApi: boolean;
15
+ needsProxy: boolean;
16
+ uiEnv: UiEnvConfig;
17
+ runtimeApiBackendUrl: string;
18
+ serviceBindingName: string | undefined;
19
+ }
20
+ export declare function resolveUiDeploymentSettings(options: ResolveUiDeploymentOptions): UiDeploymentSettings;
21
+ //# sourceMappingURL=ui-deployment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-deployment.d.ts","sourceRoot":"","sources":["../../src/core/ui-deployment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC;AAExD,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AAEvD,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AA8CD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,0BAA0B,GAClC,oBAAoB,CA0DtB"}
@@ -0,0 +1,90 @@
1
+ import { ensureHttps } from './url-config.js';
2
+ export const DISABLED_API_BACKEND_URL = '__DISABLED__';
3
+ function normalizeUrl(url) {
4
+ const normalized = ensureHttps(url);
5
+ if (!normalized) {
6
+ return undefined;
7
+ }
8
+ try {
9
+ return new URL(normalized).origin;
10
+ }
11
+ catch {
12
+ return undefined;
13
+ }
14
+ }
15
+ function normalizeHostname(urlOrDomain) {
16
+ const normalized = ensureHttps(urlOrDomain);
17
+ if (!normalized) {
18
+ return undefined;
19
+ }
20
+ try {
21
+ return new URL(normalized).hostname.toLowerCase();
22
+ }
23
+ catch {
24
+ return undefined;
25
+ }
26
+ }
27
+ function isWithinBaseDomain(hostname, baseDomain) {
28
+ if (!baseDomain) {
29
+ return false;
30
+ }
31
+ return hostname === baseDomain || hostname.endsWith(`.${baseDomain}`);
32
+ }
33
+ function getUiConfig(config, component) {
34
+ return component === 'ar-login-ui' ? config.urls?.loginUi : config.urls?.adminUi;
35
+ }
36
+ function getFallbackUiUrl(env, component) {
37
+ return component === 'ar-login-ui'
38
+ ? `https://${env}-ar-login-ui.pages.dev`
39
+ : `https://${env}-ar-admin-ui.pages.dev`;
40
+ }
41
+ export function resolveUiDeploymentSettings(options) {
42
+ const { component, config, loginUiClientId } = options;
43
+ const env = config.environment.prefix;
44
+ const apiBaseUrl = normalizeUrl(options.apiBaseUrl) ||
45
+ normalizeUrl(config.urls?.api?.custom) ||
46
+ normalizeUrl(config.urls?.api?.auto) ||
47
+ `https://${env}-ar-router.workers.dev`;
48
+ // Use apiBaseUrl (prefers custom domain over workers.dev) as the runtime backend URL.
49
+ // When a custom domain is set, workers_dev is false (disabled), so the workers.dev
50
+ // URL is unreachable. apiBaseUrl already resolves to the best available URL:
51
+ // custom domain → auto (workers.dev) → fallback.
52
+ const runtimeApiBackendUrl = apiBaseUrl;
53
+ const uiConfig = getUiConfig(config, component);
54
+ const uiUrl = uiConfig?.sameAsApi
55
+ ? apiBaseUrl
56
+ : normalizeUrl(uiConfig?.custom) ||
57
+ normalizeUrl(uiConfig?.auto) ||
58
+ getFallbackUiUrl(env, component);
59
+ const apiOrigin = new URL(apiBaseUrl);
60
+ const uiOrigin = new URL(uiUrl);
61
+ const configuredBaseDomain = normalizeHostname(config.tenant?.baseDomain);
62
+ const sameOrigin = apiOrigin.origin === uiOrigin.origin;
63
+ const sameConfiguredSite = isWithinBaseDomain(apiOrigin.hostname, configuredBaseDomain) &&
64
+ isWithinBaseDomain(uiOrigin.hostname, configuredBaseDomain);
65
+ // Use relative same-origin API calls whenever the UI is colocated with the API
66
+ // or when Pages needs to proxy requests to avoid cross-site cookie/CSP issues.
67
+ const needsProxy = !sameOrigin && !sameConfiguredSite;
68
+ const useRelativeApi = sameOrigin || needsProxy;
69
+ const uiEnv = {
70
+ PUBLIC_API_BASE_URL: useRelativeApi ? '' : apiBaseUrl,
71
+ PUBLIC_API_PROXY_BACKEND_URL: needsProxy ? runtimeApiBackendUrl : undefined,
72
+ API_BACKEND_URL: needsProxy ? runtimeApiBackendUrl : DISABLED_API_BACKEND_URL,
73
+ };
74
+ // Set PUBLIC_AUTHRIM_ISSUER for both components so hooks.server.ts can
75
+ // derive the correct X-Authrim-Forwarded-Host for Service Binding requests.
76
+ uiEnv.PUBLIC_AUTHRIM_ISSUER = apiBaseUrl;
77
+ if (component === 'ar-login-ui') {
78
+ uiEnv.PUBLIC_LOGIN_UI_CLIENT_ID = loginUiClientId;
79
+ }
80
+ return {
81
+ apiBaseUrl,
82
+ uiUrl,
83
+ useRelativeApi,
84
+ needsProxy,
85
+ uiEnv,
86
+ runtimeApiBackendUrl: needsProxy ? runtimeApiBackendUrl : DISABLED_API_BACKEND_URL,
87
+ serviceBindingName: needsProxy ? 'AR_ROUTER' : undefined,
88
+ };
89
+ }
90
+ //# sourceMappingURL=ui-deployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-deployment.js","sourceRoot":"","sources":["../../src/core/ui-deployment.ts"],"names":[],"mappings":"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"}
@@ -10,20 +10,48 @@
10
10
  * 3. Vite reads .env during build
11
11
  * 4. deploy command cleans up .env after build
12
12
  */
13
+ import type { AuthrimConfig } from './config.js';
13
14
  export interface UiEnvConfig {
14
15
  /** API base URL for UI to connect to (e.g., https://prod-ar-router.workers.dev) */
15
16
  PUBLIC_API_BASE_URL: string;
17
+ /**
18
+ * Public fallback backend URL for the Pages proxy.
19
+ * Used when the runtime API_BACKEND_URL secret is missing or stale.
20
+ */
21
+ PUBLIC_API_PROXY_BACKEND_URL?: string;
16
22
  /**
17
23
  * Backend API URL for server-side proxy (Safari ITP compatibility)
18
24
  * Used by SvelteKit hooks.server.ts to proxy /api/* requests
19
25
  * If not set, defaults to PUBLIC_API_BASE_URL
20
26
  */
21
27
  API_BACKEND_URL?: string;
28
+ /**
29
+ * Authrim issuer URL for SDK initialization
30
+ * Used by Login UI to configure the SDK client
31
+ * Typically the same as the API base URL
32
+ */
33
+ PUBLIC_AUTHRIM_ISSUER?: string;
34
+ /**
35
+ * Login UI OAuth client ID
36
+ * Auto-created during deployment via ensureLoginUiClient()
37
+ */
38
+ PUBLIC_LOGIN_UI_CLIENT_ID?: string;
39
+ /**
40
+ * Enable Diagnostic Logging in the Login UI.
41
+ * When 'true', DiagnosticLogger is initialized and logs are sent to the ingest endpoint.
42
+ * Defaults to 'false' to avoid affecting OIDC conformance test results.
43
+ */
44
+ PUBLIC_DIAGNOSTIC_LOGGING_ENABLED?: string;
22
45
  }
23
46
  /**
24
47
  * Generate ui.env file content from configuration
25
48
  */
26
49
  export declare function generateUiEnvContent(config: UiEnvConfig): string;
50
+ /**
51
+ * Build the minimal UI env used before component-specific deploy-time env exists.
52
+ * This keeps CLI init and Web setup bootstrap behavior identical.
53
+ */
54
+ export declare function buildInitialUiEnvConfig(config: AuthrimConfig): UiEnvConfig | null;
27
55
  /**
28
56
  * Save ui.env to .authrim/{env}/ directory
29
57
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ui-env.d.ts","sourceRoot":"","sources":["../../src/core/ui-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,MAAM,WAAW,WAAW;IAC1B,mFAAmF;IACnF,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAqBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAchE;AAMD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnF;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7F;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWzE;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE"}
1
+ {"version":3,"file":"ui-env.d.ts","sourceRoot":"","sources":["../../src/core/ui-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAOjD,MAAM,WAAW,WAAW;IAC1B,mFAAmF;IACnF,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;OAIG;IACH,iCAAiC,CAAC,EAAE,MAAM,CAAC;CAC5C;AAqBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAchE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,IAAI,CAWjF;AAMD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnF;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7F;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWzE;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE"}
@@ -13,6 +13,7 @@
13
13
  import { writeFile, copyFile, unlink, access, mkdir } from 'node:fs/promises';
14
14
  import { join, dirname } from 'node:path';
15
15
  import { constants } from 'node:fs';
16
+ import { ensureHttps } from './url-config.js';
16
17
  // =============================================================================
17
18
  // Content Generation
18
19
  // =============================================================================
@@ -46,6 +47,21 @@ export function generateUiEnvContent(config) {
46
47
  }
47
48
  return lines.join('\n') + '\n';
48
49
  }
50
+ /**
51
+ * Build the minimal UI env used before component-specific deploy-time env exists.
52
+ * This keeps CLI init and Web setup bootstrap behavior identical.
53
+ */
54
+ export function buildInitialUiEnvConfig(config) {
55
+ const apiUrl = ensureHttps(config.urls?.api?.custom || config.urls?.api?.auto);
56
+ if (!apiUrl) {
57
+ return null;
58
+ }
59
+ return {
60
+ PUBLIC_API_BASE_URL: apiUrl,
61
+ PUBLIC_AUTHRIM_ISSUER: apiUrl,
62
+ PUBLIC_DIAGNOSTIC_LOGGING_ENABLED: 'false',
63
+ };
64
+ }
49
65
  // =============================================================================
50
66
  // File Operations
51
67
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"ui-env.js","sourceRoot":"","sources":["../../src/core/ui-env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-env.js","sourceRoot":"","sources":["../../src/core/ui-env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { UrlsConfig } from './config.js';
2
+ export interface BuildUrlsConfigOptions {
3
+ env: string;
4
+ apiDomain?: string | null;
5
+ loginUiDomain?: string | null;
6
+ adminUiDomain?: string | null;
7
+ zoneId?: string | null;
8
+ customDomainBinding?: boolean;
9
+ workersSubdomain?: string | null;
10
+ existingUrls?: Partial<UrlsConfig>;
11
+ }
12
+ export declare function ensureHttps(domain: string | null | undefined): string | null;
13
+ export declare function getWorkersDevUrl(workerName: string, workersSubdomain?: string | null): string;
14
+ export declare function getPagesDevUrl(projectName: string): string;
15
+ export declare function buildUrlsConfig(options: BuildUrlsConfigOptions): UrlsConfig;
16
+ //# sourceMappingURL=url-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-config.d.ts","sourceRoot":"","sources":["../../src/core/url-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACpC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAK5E;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAK7F;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,UAAU,CAyC3E"}
@@ -0,0 +1,46 @@
1
+ export function ensureHttps(domain) {
2
+ if (!domain)
3
+ return null;
4
+ return domain.startsWith('http://') || domain.startsWith('https://')
5
+ ? domain
6
+ : `https://${domain}`;
7
+ }
8
+ export function getWorkersDevUrl(workerName, workersSubdomain) {
9
+ if (workersSubdomain) {
10
+ return `https://${workerName}.${workersSubdomain}.workers.dev`;
11
+ }
12
+ return `https://${workerName}.workers.dev`;
13
+ }
14
+ export function getPagesDevUrl(projectName) {
15
+ return `https://${projectName}.pages.dev`;
16
+ }
17
+ export function buildUrlsConfig(options) {
18
+ const { env, apiDomain, loginUiDomain, adminUiDomain, zoneId, customDomainBinding, workersSubdomain, existingUrls, } = options;
19
+ const apiCustomUrl = ensureHttps(apiDomain);
20
+ const loginUiCustomUrl = ensureHttps(loginUiDomain);
21
+ const adminUiCustomUrl = ensureHttps(adminUiDomain);
22
+ // If existingUrls.api.auto matches the custom domain, it was incorrectly set — regenerate.
23
+ const existingAutoUrl = existingUrls?.api?.auto;
24
+ const autoUrlIsCustomDomain = existingAutoUrl && apiCustomUrl && existingAutoUrl === apiCustomUrl;
25
+ const resolvedAutoUrl = (!autoUrlIsCustomDomain && existingAutoUrl) ||
26
+ getWorkersDevUrl(`${env}-ar-router`, workersSubdomain);
27
+ return {
28
+ api: {
29
+ custom: apiCustomUrl,
30
+ auto: resolvedAutoUrl,
31
+ zoneId: zoneId ?? existingUrls?.api?.zoneId ?? null,
32
+ customDomainBinding: customDomainBinding ?? existingUrls?.api?.customDomainBinding ?? false,
33
+ },
34
+ loginUi: {
35
+ custom: loginUiCustomUrl,
36
+ auto: existingUrls?.loginUi?.auto || getPagesDevUrl(`${env}-ar-login-ui`),
37
+ sameAsApi: apiCustomUrl !== null && loginUiCustomUrl === apiCustomUrl,
38
+ },
39
+ adminUi: {
40
+ custom: adminUiCustomUrl,
41
+ auto: existingUrls?.adminUi?.auto || getPagesDevUrl(`${env}-ar-admin-ui`),
42
+ sameAsApi: apiCustomUrl !== null && adminUiCustomUrl === apiCustomUrl,
43
+ },
44
+ };
45
+ }
46
+ //# sourceMappingURL=url-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-config.js","sourceRoot":"","sources":["../../src/core/url-config.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,WAAW,CAAC,MAAiC;IAC3D,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;QAClE,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,gBAAgC;IACnF,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,WAAW,UAAU,IAAI,gBAAgB,cAAc,CAAC;IACjE,CAAC;IACD,OAAO,WAAW,UAAU,cAAc,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,OAAO,WAAW,WAAW,YAAY,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,MAAM,EACJ,GAAG,EACH,SAAS,EACT,aAAa,EACb,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,GACb,GAAG,OAAO,CAAC;IAEZ,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAEpD,2FAA2F;IAC3F,MAAM,eAAe,GAAG,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC;IAChD,MAAM,qBAAqB,GAAG,eAAe,IAAI,YAAY,IAAI,eAAe,KAAK,YAAY,CAAC;IAClG,MAAM,eAAe,GACnB,CAAC,CAAC,qBAAqB,IAAI,eAAe,CAAC;QAC3C,gBAAgB,CAAC,GAAG,GAAG,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAEzD,OAAO;QACL,GAAG,EAAE;YACH,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,MAAM,IAAI,YAAY,EAAE,GAAG,EAAE,MAAM,IAAI,IAAI;YACnD,mBAAmB,EAAE,mBAAmB,IAAI,YAAY,EAAE,GAAG,EAAE,mBAAmB,IAAI,KAAK;SAC5F;QACD,OAAO,EAAE;YACP,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,IAAI,cAAc,CAAC,GAAG,GAAG,cAAc,CAAC;YACzE,SAAS,EAAE,YAAY,KAAK,IAAI,IAAI,gBAAgB,KAAK,YAAY;SACtE;QACD,OAAO,EAAE;YACP,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,IAAI,cAAc,CAAC,GAAG,GAAG,cAAc,CAAC;YACzE,SAAS,EAAE,YAAY,KAAK,IAAI,IAAI,gBAAgB,KAAK,YAAY;SACtE;KACF,CAAC;AACJ,CAAC"}
@@ -60,7 +60,8 @@ export interface WranglerConfig {
60
60
  vars: Record<string, string>;
61
61
  routes?: Array<{
62
62
  pattern: string;
63
- zone_name: string;
63
+ zone_name?: string;
64
+ custom_domain?: boolean;
64
65
  }>;
65
66
  queues?: {
66
67
  producers?: Array<{
@@ -73,6 +74,31 @@ export interface WranglerConfig {
73
74
  service: string;
74
75
  }>;
75
76
  }
77
+ /**
78
+ * Normalize workers.dev URL to include account subdomain
79
+ *
80
+ * Cloudflare Workers.dev URLs always follow the format:
81
+ * {name}.{subdomain}.workers.dev
82
+ *
83
+ * There is NO short form like {name}.workers.dev - this format does not exist.
84
+ * If config contains such a URL (e.g., from older setup or manual entry),
85
+ * we need to expand it to the correct full form.
86
+ *
87
+ * @see https://developers.cloudflare.com/workers/configuration/routing/workers-dev/
88
+ */
89
+ export declare function normalizeWorkersDevUrl(url: string, workersSubdomain?: string): string;
90
+ /**
91
+ * Derive CORS allowed origins from config URLs
92
+ *
93
+ * Includes:
94
+ * - API origin (router) - needed for admin-init-setup WebAuthn operations
95
+ * - LoginUI origin - for cross-origin requests from login UI
96
+ * - AdminUI origin - for cross-origin requests from admin UI
97
+ *
98
+ * Workers.dev URLs are normalized to the correct format:
99
+ * {name}.{subdomain}.workers.dev
100
+ */
101
+ export declare function deriveAllowedOrigins(config: AuthrimConfig, workersSubdomain?: string): string[];
76
102
  /**
77
103
  * Generate wrangler.toml configuration for a component
78
104
  *
@@ -82,6 +108,14 @@ export interface WranglerConfig {
82
108
  * @param workersSubdomain - Account subdomain for workers.dev (e.g., "sgrastar")
83
109
  */
84
110
  export declare function generateWranglerConfig(component: WorkerComponent, config: AuthrimConfig, resourceIds: ResourceIds, workersSubdomain?: string): WranglerConfig;
111
+ /**
112
+ * Generate environment variables for a component
113
+ *
114
+ * @param component - Worker component name
115
+ * @param config - Authrim configuration
116
+ * @param workersSubdomain - Account subdomain for workers.dev (e.g., "sgrastar")
117
+ */
118
+ export declare function generateEnvVars(component: WorkerComponent, config: AuthrimConfig, workersSubdomain?: string): Record<string, string>;
85
119
  /**
86
120
  * Convert WranglerConfig to TOML string
87
121
  *
@@ -123,4 +157,19 @@ export declare function parseWranglerToml(content: string, env: string): {
123
157
  * Validate wrangler.toml files against lock file resource IDs
124
158
  */
125
159
  export declare function validateWranglerConfigs(rootDir: string, env: string, lockResourceIds: ResourceIds, components: WorkerComponent[]): Promise<WranglerValidationResult>;
160
+ export interface PagesWranglerOptions {
161
+ component: 'ar-login-ui' | 'ar-admin-ui';
162
+ env: string;
163
+ needsProxy: boolean;
164
+ }
165
+ /**
166
+ * Generate wrangler.toml content for a Cloudflare Pages component.
167
+ *
168
+ * When needsProxy=true, includes a [[services]] binding so the Pages Function
169
+ * can reach ar-router via Service Binding (no workers.dev needed, ITP-safe).
170
+ *
171
+ * Pages projects are separate per environment (e.g., test-ar-login-ui,
172
+ * prod-ar-login-ui), so no [env.*] sections are required — the file is flat.
173
+ */
174
+ export declare function generatePagesWranglerConfig(options: PagesWranglerOptions): string;
126
175
  //# sourceMappingURL=wrangler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrangler.d.ts","sourceRoot":"","sources":["../../src/core/wrangler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrangler.d.ts","sourceRoot":"","sources":["../../src/core/wrangler.ts"],"names":[],"mappings":"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"}