@voyant-travel/auth 0.136.0 → 0.138.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.
Files changed (50) hide show
  1. package/dist/customer-business-accounts-contracts.d.ts +159 -0
  2. package/dist/customer-business-accounts-contracts.js +112 -0
  3. package/dist/customer-business-accounts-contracts.js.map +1 -0
  4. package/dist/customer-business-onboarding-graph-runtime.d.ts +13 -0
  5. package/dist/customer-business-onboarding-graph-runtime.js +8 -0
  6. package/dist/customer-business-onboarding-graph-runtime.js.map +1 -0
  7. package/dist/customer-business-onboarding-routes.d.ts +13 -0
  8. package/dist/customer-business-onboarding-routes.js +151 -0
  9. package/dist/customer-business-onboarding-routes.js.map +1 -0
  10. package/dist/customer-business-onboarding-runtime-port.d.ts +40 -0
  11. package/dist/customer-business-onboarding-runtime-port.js +25 -0
  12. package/dist/customer-business-onboarding-runtime-port.js.map +1 -0
  13. package/dist/customer-business-onboarding-service.d.ts +32 -0
  14. package/dist/customer-business-onboarding-service.js +237 -0
  15. package/dist/customer-business-onboarding-service.js.map +1 -0
  16. package/dist/customer-buyer-accounts.d.ts +0 -19
  17. package/dist/customer-buyer-accounts.js.map +1 -1
  18. package/dist/node-runtime.d.ts +13 -0
  19. package/dist/node-runtime.js +285 -1
  20. package/dist/node-runtime.js.map +1 -1
  21. package/dist/ports.d.ts +1 -0
  22. package/dist/ports.js +2 -0
  23. package/dist/ports.js.map +1 -0
  24. package/dist/runtime-contributor.js +11 -0
  25. package/dist/runtime-contributor.js.map +1 -1
  26. package/dist/server.d.ts +39 -3
  27. package/dist/server.js.map +1 -1
  28. package/dist/storefront-credentials.d.ts +31 -0
  29. package/dist/storefront-credentials.js +54 -0
  30. package/dist/storefront-credentials.js.map +1 -0
  31. package/dist/storefront-customer-auth-resolver.d.ts +30 -0
  32. package/dist/storefront-customer-auth-resolver.js +72 -0
  33. package/dist/storefront-customer-auth-resolver.js.map +1 -0
  34. package/dist/storefront-keys.d.ts +40 -0
  35. package/dist/storefront-keys.js +50 -0
  36. package/dist/storefront-keys.js.map +1 -0
  37. package/dist/storefront-local-adapter.d.ts +11 -0
  38. package/dist/storefront-local-adapter.js +313 -0
  39. package/dist/storefront-local-adapter.js.map +1 -0
  40. package/dist/storefront-origins.d.ts +34 -0
  41. package/dist/storefront-origins.js +132 -0
  42. package/dist/storefront-origins.js.map +1 -0
  43. package/dist/storefront-runtime-port.d.ts +93 -0
  44. package/dist/storefront-runtime-port.js +35 -0
  45. package/dist/storefront-runtime-port.js.map +1 -0
  46. package/dist/voyant.d.ts +2 -0
  47. package/dist/voyant.js +99 -0
  48. package/dist/voyant.js.map +1 -1
  49. package/openapi/admin/customer-business-accounts.json +44 -0
  50. package/package.json +50 -4
@@ -0,0 +1,93 @@
1
+ import type { StorefrontApiKeyKind, StorefrontCustomerAccountPolicy, StorefrontCustomerAuthMethods, StorefrontCustomerAuthSocialProvider, StorefrontHostingKind } from "@voyant-travel/db/schema/iam";
2
+ import type { VoyantDb } from "@voyant-travel/hono";
3
+ export interface StorefrontDto {
4
+ id: string;
5
+ organizationId: string;
6
+ name: string;
7
+ slug: string;
8
+ hostingKind: StorefrontHostingKind;
9
+ siteId: string | null;
10
+ allowedOrigins: string[];
11
+ methods: StorefrontCustomerAuthMethods;
12
+ accountPolicy: StorefrontCustomerAccountPolicy;
13
+ hostOnlyCookies: boolean;
14
+ createdAt: string;
15
+ updatedAt: string;
16
+ }
17
+ export interface StorefrontApiKeyDto {
18
+ id: string;
19
+ storefrontId: string;
20
+ kind: StorefrontApiKeyKind;
21
+ tokenPreview: string;
22
+ name: string | null;
23
+ lastUsedAt: string | null;
24
+ revokedAt: string | null;
25
+ createdAt: string;
26
+ }
27
+ /** Issuance/rotation result: the plaintext token is present exactly once. */
28
+ export interface IssuedStorefrontApiKeyDto extends StorefrontApiKeyDto {
29
+ token: string;
30
+ }
31
+ export interface StorefrontProviderCredentialStatusDto {
32
+ provider: StorefrontCustomerAuthSocialProvider;
33
+ configured: boolean;
34
+ updatedAt: string | null;
35
+ }
36
+ export interface CreateStorefrontInput {
37
+ name: string;
38
+ slug: string;
39
+ hostingKind: StorefrontHostingKind;
40
+ siteId?: string | null;
41
+ allowedOrigins: readonly string[];
42
+ methods: StorefrontCustomerAuthMethods;
43
+ accountPolicy?: StorefrontCustomerAccountPolicy;
44
+ }
45
+ export interface UpdateStorefrontInput {
46
+ name?: string;
47
+ allowedOrigins?: readonly string[];
48
+ methods?: StorefrontCustomerAuthMethods;
49
+ accountPolicy?: StorefrontCustomerAccountPolicy;
50
+ }
51
+ /** Operator-scoped admin context: every write is bounded to one organization. */
52
+ export interface StorefrontRequestContext {
53
+ bindings: Record<string, unknown>;
54
+ db: VoyantDb;
55
+ organizationId: string;
56
+ }
57
+ /**
58
+ * Request-time resolve context. Customer-auth resolution runs without an
59
+ * operator user, so no organization scope is present — a token selects its
60
+ * storefront globally, then the declared-origin check authorizes it.
61
+ */
62
+ export interface StorefrontResolveContext {
63
+ bindings: Record<string, unknown>;
64
+ db: VoyantDb;
65
+ }
66
+ /** A token resolved to its storefront + the key row it authenticated with. */
67
+ export interface ResolvedStorefrontApiKey {
68
+ storefront: StorefrontDto;
69
+ key: StorefrontApiKeyDto;
70
+ }
71
+ /** Decrypted provider secrets, keyed by provider, for enabled social methods. */
72
+ export type ResolvedStorefrontProviderCredentials = Partial<Record<StorefrontCustomerAuthSocialProvider, Record<string, string>>>;
73
+ export interface StorefrontRuntimeProvider {
74
+ listStorefronts(context: StorefrontRequestContext): Promise<StorefrontDto[]>;
75
+ getStorefront(context: StorefrontRequestContext, storefrontId: string): Promise<StorefrontDto>;
76
+ createStorefront(context: StorefrontRequestContext, input: CreateStorefrontInput): Promise<StorefrontDto>;
77
+ updateStorefront(context: StorefrontRequestContext, storefrontId: string, patch: UpdateStorefrontInput): Promise<StorefrontDto>;
78
+ deleteStorefront(context: StorefrontRequestContext, storefrontId: string): Promise<void>;
79
+ setAllowedOrigins(context: StorefrontRequestContext, storefrontId: string, origins: readonly string[]): Promise<StorefrontDto>;
80
+ listApiKeys(context: StorefrontRequestContext, storefrontId: string): Promise<StorefrontApiKeyDto[]>;
81
+ issueApiKey(context: StorefrontRequestContext, storefrontId: string, kind: StorefrontApiKeyKind, name?: string | null): Promise<IssuedStorefrontApiKeyDto>;
82
+ rotateApiKey(context: StorefrontRequestContext, storefrontId: string, keyId: string): Promise<IssuedStorefrontApiKeyDto>;
83
+ revokeApiKey(context: StorefrontRequestContext, storefrontId: string, keyId: string): Promise<void>;
84
+ resolveStorefrontByApiKey(context: StorefrontResolveContext, token: string): Promise<ResolvedStorefrontApiKey | null>;
85
+ updateAccountPolicy(context: StorefrontRequestContext, storefrontId: string, policy: StorefrontCustomerAccountPolicy): Promise<StorefrontDto>;
86
+ updateMethods(context: StorefrontRequestContext, storefrontId: string, methods: StorefrontCustomerAuthMethods): Promise<StorefrontDto>;
87
+ listProviderCredentials(context: StorefrontRequestContext, storefrontId: string): Promise<StorefrontProviderCredentialStatusDto[]>;
88
+ putProviderCredential(context: StorefrontRequestContext, storefrontId: string, provider: StorefrontCustomerAuthSocialProvider, credentials: Record<string, unknown>): Promise<void>;
89
+ deleteProviderCredential(context: StorefrontRequestContext, storefrontId: string, provider: StorefrontCustomerAuthSocialProvider): Promise<void>;
90
+ /** Decrypt the stored secrets for the given providers (request-time seam). */
91
+ resolveProviderCredentials(context: StorefrontResolveContext, storefrontId: string, providers: readonly StorefrontCustomerAuthSocialProvider[]): Promise<ResolvedStorefrontProviderCredentials>;
92
+ }
93
+ export declare const storefrontRuntimePort: import("@voyant-travel/core/project").VoyantPort<StorefrontRuntimeProvider>;
@@ -0,0 +1,35 @@
1
+ import { definePort } from "@voyant-travel/core/project";
2
+ const REQUIRED_METHODS = [
3
+ "listStorefronts",
4
+ "getStorefront",
5
+ "createStorefront",
6
+ "updateStorefront",
7
+ "deleteStorefront",
8
+ "setAllowedOrigins",
9
+ "listApiKeys",
10
+ "issueApiKey",
11
+ "rotateApiKey",
12
+ "revokeApiKey",
13
+ "resolveStorefrontByApiKey",
14
+ "updateAccountPolicy",
15
+ "updateMethods",
16
+ "listProviderCredentials",
17
+ "putProviderCredential",
18
+ "deleteProviderCredential",
19
+ "resolveProviderCredentials",
20
+ ];
21
+ export const storefrontRuntimePort = definePort({
22
+ id: "auth.storefront-runtime",
23
+ test(provider) {
24
+ if (provider === null || typeof provider !== "object") {
25
+ throw new Error("auth.storefront-runtime provider must be an object.");
26
+ }
27
+ const impl = provider;
28
+ for (const method of REQUIRED_METHODS) {
29
+ if (typeof impl[method] !== "function") {
30
+ throw new Error(`auth.storefront-runtime provider must implement ${method}().`);
31
+ }
32
+ }
33
+ },
34
+ });
35
+ //# sourceMappingURL=storefront-runtime-port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storefront-runtime-port.js","sourceRoot":"","sources":["../src/storefront-runtime-port.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AA4KxD,MAAM,gBAAgB,GAAG;IACvB,iBAAiB;IACjB,eAAe;IACf,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,cAAc;IACd,cAAc;IACd,2BAA2B;IAC3B,qBAAqB;IACrB,eAAe;IACf,yBAAyB;IACzB,uBAAuB;IACvB,0BAA0B;IAC1B,4BAA4B;CACpB,CAAA;AAEV,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAA4B;IACzE,EAAE,EAAE,yBAAyB;IAC7B,IAAI,CAAC,QAAQ;QACX,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;QACxE,CAAC;QACD,MAAM,IAAI,GAAG,QAA8C,CAAA;QAC3D,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,mDAAmD,MAAM,KAAK,CAAC,CAAA;YACjF,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { definePort } from \"@voyant-travel/core/project\"\nimport type {\n StorefrontApiKeyKind,\n StorefrontCustomerAccountPolicy,\n StorefrontCustomerAuthMethods,\n StorefrontCustomerAuthSocialProvider,\n StorefrontHostingKind,\n} from \"@voyant-travel/db/schema/iam\"\nimport type { VoyantDb } from \"@voyant-travel/hono\"\n\nexport interface StorefrontDto {\n id: string\n organizationId: string\n name: string\n slug: string\n hostingKind: StorefrontHostingKind\n siteId: string | null\n allowedOrigins: string[]\n methods: StorefrontCustomerAuthMethods\n accountPolicy: StorefrontCustomerAccountPolicy\n hostOnlyCookies: boolean\n createdAt: string\n updatedAt: string\n}\n\nexport interface StorefrontApiKeyDto {\n id: string\n storefrontId: string\n kind: StorefrontApiKeyKind\n tokenPreview: string\n name: string | null\n lastUsedAt: string | null\n revokedAt: string | null\n createdAt: string\n}\n\n/** Issuance/rotation result: the plaintext token is present exactly once. */\nexport interface IssuedStorefrontApiKeyDto extends StorefrontApiKeyDto {\n token: string\n}\n\nexport interface StorefrontProviderCredentialStatusDto {\n provider: StorefrontCustomerAuthSocialProvider\n configured: boolean\n updatedAt: string | null\n}\n\nexport interface CreateStorefrontInput {\n name: string\n slug: string\n hostingKind: StorefrontHostingKind\n siteId?: string | null\n allowedOrigins: readonly string[]\n methods: StorefrontCustomerAuthMethods\n accountPolicy?: StorefrontCustomerAccountPolicy\n}\n\nexport interface UpdateStorefrontInput {\n name?: string\n allowedOrigins?: readonly string[]\n methods?: StorefrontCustomerAuthMethods\n accountPolicy?: StorefrontCustomerAccountPolicy\n}\n\n/** Operator-scoped admin context: every write is bounded to one organization. */\nexport interface StorefrontRequestContext {\n bindings: Record<string, unknown>\n db: VoyantDb\n organizationId: string\n}\n\n/**\n * Request-time resolve context. Customer-auth resolution runs without an\n * operator user, so no organization scope is present — a token selects its\n * storefront globally, then the declared-origin check authorizes it.\n */\nexport interface StorefrontResolveContext {\n bindings: Record<string, unknown>\n db: VoyantDb\n}\n\n/** A token resolved to its storefront + the key row it authenticated with. */\nexport interface ResolvedStorefrontApiKey {\n storefront: StorefrontDto\n key: StorefrontApiKeyDto\n}\n\n/** Decrypted provider secrets, keyed by provider, for enabled social methods. */\nexport type ResolvedStorefrontProviderCredentials = Partial<\n Record<StorefrontCustomerAuthSocialProvider, Record<string, string>>\n>\n\nexport interface StorefrontRuntimeProvider {\n // storefront CRUD ------------------------------------------------------\n listStorefronts(context: StorefrontRequestContext): Promise<StorefrontDto[]>\n getStorefront(context: StorefrontRequestContext, storefrontId: string): Promise<StorefrontDto>\n createStorefront(\n context: StorefrontRequestContext,\n input: CreateStorefrontInput,\n ): Promise<StorefrontDto>\n updateStorefront(\n context: StorefrontRequestContext,\n storefrontId: string,\n patch: UpdateStorefrontInput,\n ): Promise<StorefrontDto>\n deleteStorefront(context: StorefrontRequestContext, storefrontId: string): Promise<void>\n // allowed origins ------------------------------------------------------\n setAllowedOrigins(\n context: StorefrontRequestContext,\n storefrontId: string,\n origins: readonly string[],\n ): Promise<StorefrontDto>\n // access keys ----------------------------------------------------------\n listApiKeys(\n context: StorefrontRequestContext,\n storefrontId: string,\n ): Promise<StorefrontApiKeyDto[]>\n issueApiKey(\n context: StorefrontRequestContext,\n storefrontId: string,\n kind: StorefrontApiKeyKind,\n name?: string | null,\n ): Promise<IssuedStorefrontApiKeyDto>\n rotateApiKey(\n context: StorefrontRequestContext,\n storefrontId: string,\n keyId: string,\n ): Promise<IssuedStorefrontApiKeyDto>\n revokeApiKey(\n context: StorefrontRequestContext,\n storefrontId: string,\n keyId: string,\n ): Promise<void>\n resolveStorefrontByApiKey(\n context: StorefrontResolveContext,\n token: string,\n ): Promise<ResolvedStorefrontApiKey | null>\n // account policy + methods --------------------------------------------\n updateAccountPolicy(\n context: StorefrontRequestContext,\n storefrontId: string,\n policy: StorefrontCustomerAccountPolicy,\n ): Promise<StorefrontDto>\n updateMethods(\n context: StorefrontRequestContext,\n storefrontId: string,\n methods: StorefrontCustomerAuthMethods,\n ): Promise<StorefrontDto>\n // provider credentials -------------------------------------------------\n listProviderCredentials(\n context: StorefrontRequestContext,\n storefrontId: string,\n ): Promise<StorefrontProviderCredentialStatusDto[]>\n putProviderCredential(\n context: StorefrontRequestContext,\n storefrontId: string,\n provider: StorefrontCustomerAuthSocialProvider,\n credentials: Record<string, unknown>,\n ): Promise<void>\n deleteProviderCredential(\n context: StorefrontRequestContext,\n storefrontId: string,\n provider: StorefrontCustomerAuthSocialProvider,\n ): Promise<void>\n /** Decrypt the stored secrets for the given providers (request-time seam). */\n resolveProviderCredentials(\n context: StorefrontResolveContext,\n storefrontId: string,\n providers: readonly StorefrontCustomerAuthSocialProvider[],\n ): Promise<ResolvedStorefrontProviderCredentials>\n}\n\nconst REQUIRED_METHODS = [\n \"listStorefronts\",\n \"getStorefront\",\n \"createStorefront\",\n \"updateStorefront\",\n \"deleteStorefront\",\n \"setAllowedOrigins\",\n \"listApiKeys\",\n \"issueApiKey\",\n \"rotateApiKey\",\n \"revokeApiKey\",\n \"resolveStorefrontByApiKey\",\n \"updateAccountPolicy\",\n \"updateMethods\",\n \"listProviderCredentials\",\n \"putProviderCredential\",\n \"deleteProviderCredential\",\n \"resolveProviderCredentials\",\n] as const\n\nexport const storefrontRuntimePort = definePort<StorefrontRuntimeProvider>({\n id: \"auth.storefront-runtime\",\n test(provider) {\n if (provider === null || typeof provider !== \"object\") {\n throw new Error(\"auth.storefront-runtime provider must be an object.\")\n }\n const impl = provider as unknown as Record<string, unknown>\n for (const method of REQUIRED_METHODS) {\n if (typeof impl[method] !== \"function\") {\n throw new Error(`auth.storefront-runtime provider must implement ${method}().`)\n }\n }\n },\n})\n"]}
package/dist/voyant.d.ts CHANGED
@@ -1,2 +1,4 @@
1
+ export declare const authCustomerBusinessAccountsVoyantModule: import("@voyant-travel/core").VoyantGraphUnitManifest;
1
2
  export declare const authInvitationsVoyantModule: import("@voyant-travel/core").VoyantGraphUnitManifest;
2
3
  export declare const authTeamVoyantModule: import("@voyant-travel/core").VoyantGraphUnitManifest;
4
+ export declare const authStorefrontVoyantModule: import("@voyant-travel/core").VoyantGraphUnitManifest;
package/dist/voyant.js CHANGED
@@ -1,6 +1,88 @@
1
1
  import { defineModule, providePort, requirePort } from "@voyant-travel/core/project";
2
+ import { customerBusinessAccountOnboardingRuntimePort } from "./customer-business-onboarding-runtime-port.js";
2
3
  import { identityAccessRuntimePort } from "./identity-access-runtime-port.js";
4
+ import { storefrontRuntimePort } from "./storefront-runtime-port.js";
3
5
  import { teamManagementRuntimePort } from "./team-management-runtime-port.js";
6
+ export const authCustomerBusinessAccountsVoyantModule = defineModule({
7
+ id: "@voyant-travel/auth#customer-business-accounts",
8
+ packageName: "@voyant-travel/auth",
9
+ localId: "auth.customer-business-accounts",
10
+ requires: { capabilities: ["storefront.data-owner"] },
11
+ runtimePorts: [requirePort(customerBusinessAccountOnboardingRuntimePort)],
12
+ api: [
13
+ {
14
+ id: "@voyant-travel/auth#customer-business-accounts.api.admin",
15
+ surface: "admin",
16
+ mount: "customer-business-accounts",
17
+ resource: "customer-business-accounts",
18
+ openapi: { document: "customer-business-accounts" },
19
+ transactional: true,
20
+ runtime: {
21
+ entry: "@voyant-travel/auth/customer-business-onboarding-graph-runtime",
22
+ export: "createCustomerBusinessAccountVoyantRuntime",
23
+ },
24
+ },
25
+ ],
26
+ access: {
27
+ resources: [
28
+ {
29
+ id: "@voyant-travel/auth#access.customer-business-accounts",
30
+ resource: "customer-business-accounts",
31
+ label: "Customer business accounts",
32
+ description: "Review onboarding requests and provision customer business accounts.",
33
+ actions: [
34
+ {
35
+ action: "read",
36
+ label: "View customer business accounts",
37
+ description: "View customer business-account capabilities and onboarding requests.",
38
+ },
39
+ {
40
+ action: "write",
41
+ label: "Manage customer business accounts",
42
+ description: "Approve, reject, and provision customer business accounts.",
43
+ sensitive: true,
44
+ },
45
+ ],
46
+ },
47
+ ],
48
+ },
49
+ admin: {
50
+ compositionOrder: 6,
51
+ runtime: {
52
+ entry: "@voyant-travel/auth-react/admin",
53
+ export: "createSelectedCustomerBusinessAccountsAdminExtension",
54
+ },
55
+ copy: [
56
+ {
57
+ id: "@voyant-travel/auth#customer-business-accounts.admin.copy",
58
+ namespace: "auth.admin.customer-business-accounts",
59
+ fallbackLocale: "en",
60
+ runtime: {
61
+ entry: "@voyant-travel/auth-react/i18n",
62
+ export: "authUiMessageDefinitions",
63
+ },
64
+ },
65
+ ],
66
+ routes: [
67
+ {
68
+ id: "@voyant-travel/auth#customer-business-accounts.admin.route",
69
+ path: "/business-accounts",
70
+ requiredScopes: ["customer-business-accounts:read"],
71
+ runtime: {
72
+ entry: "@voyant-travel/auth-react/admin",
73
+ export: "createSelectedCustomerBusinessAccountsAdminExtension",
74
+ },
75
+ },
76
+ ],
77
+ },
78
+ meta: {
79
+ ownership: "package",
80
+ agentTools: {
81
+ posture: "not-applicable",
82
+ rationale: "Business-account onboarding is exposed through staff-guarded admin routes.",
83
+ },
84
+ },
85
+ });
4
86
  export const authInvitationsVoyantModule = defineModule({
5
87
  id: "@voyant-travel/auth#invitations",
6
88
  packageName: "@voyant-travel/auth",
@@ -346,4 +428,21 @@ export const authTeamVoyantModule = defineModule({
346
428
  ownership: "package",
347
429
  },
348
430
  });
431
+ export const authStorefrontVoyantModule = defineModule({
432
+ id: "@voyant-travel/auth#storefront",
433
+ packageName: "@voyant-travel/auth",
434
+ localId: "auth.storefront",
435
+ // Self-host storefront access model: keys, operator-declared origins, and
436
+ // KMS-encrypted provider credentials backing the local customer-auth
437
+ // resolver. Admin routes/tools and the managed cloud adapter are follow-ups.
438
+ provides: { ports: [providePort(storefrontRuntimePort)] },
439
+ runtimePorts: [requirePort(storefrontRuntimePort)],
440
+ meta: {
441
+ ownership: "package",
442
+ agentTools: {
443
+ posture: "not-applicable",
444
+ rationale: "Storefront access configuration is operator-owned; it is exposed through guarded admin surfaces, not agent tools.",
445
+ },
446
+ },
447
+ });
349
448
  //# sourceMappingURL=voyant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"voyant.js","sourceRoot":"","sources":["../src/voyant.ts"],"names":[],"mappings":"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","sourcesContent":["import { defineModule, providePort, requirePort } from \"@voyant-travel/core/project\"\n\nimport { identityAccessRuntimePort } from \"./identity-access-runtime-port.js\"\nimport { teamManagementRuntimePort } from \"./team-management-runtime-port.js\"\n\nexport const authInvitationsVoyantModule = defineModule({\n id: \"@voyant-travel/auth#invitations\",\n packageName: \"@voyant-travel/auth\",\n localId: \"auth.invitations\",\n provides: { ports: [providePort(identityAccessRuntimePort)] },\n runtimePorts: [requirePort(identityAccessRuntimePort)],\n api: [\n {\n id: \"@voyant-travel/auth#invitations.api.admin\",\n surface: \"admin\",\n mount: \"invitations\",\n resource: \"team\",\n openapi: { document: \"invitations\" },\n transactional: true,\n runtime: {\n entry: \"@voyant-travel/auth/identity-access-graph-runtime\",\n export: \"createInvitationsVoyantRuntime\",\n },\n },\n {\n id: \"@voyant-travel/auth#invitations.api.public\",\n surface: \"public\",\n mount: \"invitations\",\n anonymous: true,\n openapi: { document: \"invitations\" },\n transactional: true,\n runtime: {\n entry: \"@voyant-travel/auth/identity-access-graph-runtime\",\n export: \"createInvitationsVoyantRuntime\",\n },\n },\n ],\n presentations: [\n {\n id: \"@voyant-travel/auth#presentation.local-auth\",\n runtime: {\n entry: \"@voyant-travel/auth-react/local-auth-routes\",\n export: \"createLocalAuthRouteContribution\",\n },\n },\n ],\n meta: {\n ownership: \"package\",\n agentTools: {\n posture: \"not-applicable\",\n rationale:\n \"This unit owns public invitation acceptance; staff invitation management is exposed by the guarded auth team runtime.\",\n },\n },\n})\n\nexport const authTeamVoyantModule = defineModule({\n id: \"@voyant-travel/auth#team\",\n packageName: \"@voyant-travel/auth\",\n localId: \"auth.team\",\n provides: { ports: [providePort(teamManagementRuntimePort)] },\n runtimePorts: [requirePort(teamManagementRuntimePort)],\n api: [\n {\n id: \"@voyant-travel/auth#team.api.admin\",\n surface: \"admin\",\n mount: \"team\",\n resource: \"team\",\n openapi: { document: \"team\" },\n transactional: true,\n runtime: {\n entry: \"@voyant-travel/auth/identity-access-graph-runtime\",\n export: \"createTeamVoyantRuntime\",\n },\n },\n ],\n access: {\n resources: [\n {\n id: \"@voyant-travel/auth#access.team\",\n resource: \"team\",\n label: \"Team\",\n description: \"Manage staff team members and their access.\",\n wildcard: \"explicit-resource\",\n actions: [\n {\n action: \"read\",\n label: \"View team\",\n description: \"View staff team members.\",\n },\n {\n action: \"write\",\n label: \"Manage team\",\n description: \"Invite staff and update roles or access.\",\n sensitive: true,\n wildcard: \"explicit\",\n },\n {\n action: \"delete\",\n label: \"Remove team access\",\n description: \"Revoke invitations or deactivate staff team members.\",\n sensitive: true,\n wildcard: \"explicit\",\n },\n ],\n },\n ],\n },\n tools: [\n {\n id: \"@voyant-travel/auth#team.tool.get-capabilities\",\n name: \"get_team_management_capabilities\",\n runtime: {\n entry: \"@voyant-travel/auth/tools\",\n export: \"getTeamManagementCapabilitiesTool\",\n },\n requiredScopes: [\"team:read\"],\n context: [\"teamManagement\"],\n risk: \"low\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.list-members\",\n name: \"list_team_members\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"listTeamMembersTool\" },\n requiredScopes: [\"team:read\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.list-roles\",\n name: \"list_team_roles\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"listTeamRolesTool\" },\n requiredScopes: [\"team:read\"],\n context: [\"teamManagement\"],\n risk: \"low\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.list-invitations\",\n name: \"list_team_invitations\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"listTeamInvitationsTool\" },\n requiredScopes: [\"team:read\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.invite-member\",\n name: \"invite_team_member\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"inviteTeamMemberTool\" },\n requiredScopes: [\"team:write\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.revoke-invitation\",\n name: \"revoke_team_invitation\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"revokeTeamInvitationTool\" },\n requiredScopes: [\"team:delete\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.update-member-role\",\n name: \"update_team_member_role\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"updateTeamMemberRoleTool\" },\n requiredScopes: [\"team:write\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.activate-member\",\n name: \"activate_team_member\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"activateTeamMemberTool\" },\n requiredScopes: [\"team:write\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.deactivate-member\",\n name: \"deactivate_team_member\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"deactivateTeamMemberTool\" },\n requiredScopes: [\"team:delete\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n ],\n actions: [\n {\n id: \"@voyant-travel/auth#team.action.get-capabilities\",\n version: \"v1\",\n kind: \"read\",\n targetType: \"team-capabilities\",\n resource: \"team\",\n action: \"read\",\n requiredScopes: [\"team:read\"],\n risk: \"low\",\n ledger: \"optional\",\n approval: \"never\",\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.get-capabilities\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.list-members\",\n version: \"v1\",\n kind: \"sensitive-read\",\n targetType: \"team-member\",\n resource: \"team\",\n action: \"read\",\n requiredScopes: [\"team:read\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"never\",\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.list-members\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.list-roles\",\n version: \"v1\",\n kind: \"read\",\n targetType: \"team-role\",\n resource: \"team\",\n action: \"read\",\n requiredScopes: [\"team:read\"],\n risk: \"low\",\n ledger: \"optional\",\n approval: \"never\",\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.list-roles\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.list-invitations\",\n version: \"v1\",\n kind: \"sensitive-read\",\n targetType: \"team-invitation\",\n resource: \"team\",\n action: \"read\",\n requiredScopes: [\"team:read\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"never\",\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.list-invitations\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.invite-member\",\n version: \"v1\",\n kind: \"execute\",\n targetType: \"team-invitation\",\n resource: \"team\",\n action: \"write\",\n requiredScopes: [\"team:write\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"required\",\n reversible: false,\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.invite-member\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.revoke-invitation\",\n version: \"v1\",\n kind: \"execute\",\n targetType: \"team-invitation\",\n resource: \"team\",\n action: \"delete\",\n requiredScopes: [\"team:delete\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"required\",\n reversible: false,\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.revoke-invitation\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.update-member-role\",\n version: \"v1\",\n kind: \"execute\",\n targetType: \"team-member\",\n resource: \"team\",\n action: \"write\",\n requiredScopes: [\"team:write\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"required\",\n reversible: true,\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.update-member-role\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.activate-member\",\n version: \"v1\",\n kind: \"execute\",\n targetType: \"team-member\",\n resource: \"team\",\n action: \"write\",\n requiredScopes: [\"team:write\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"required\",\n reversible: true,\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.activate-member\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.deactivate-member\",\n version: \"v1\",\n kind: \"execute\",\n targetType: \"team-member\",\n resource: \"team\",\n action: \"delete\",\n requiredScopes: [\"team:delete\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"required\",\n reversible: false,\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.deactivate-member\"] },\n },\n ],\n admin: {\n compositionOrder: 5,\n setupSteps: [{ id: \"@voyant-travel/auth#setup.team\", skippable: true }],\n runtime: {\n entry: \"@voyant-travel/auth-react/admin\",\n export: \"createSelectedAuthTeamAdminExtension\",\n },\n copy: [\n {\n id: \"@voyant-travel/auth#team.admin.copy\",\n namespace: \"auth.admin.team\",\n fallbackLocale: \"en\",\n runtime: {\n entry: \"@voyant-travel/auth-react/i18n\",\n export: \"authUiMessageDefinitions\",\n },\n },\n ],\n routes: [\n {\n id: \"@voyant-travel/auth#team.admin.route\",\n path: \"/settings/team\",\n requiredScopes: [\"team:read\"],\n runtime: {\n entry: \"@voyant-travel/auth-react/admin\",\n export: \"createSelectedAuthTeamAdminExtension\",\n },\n },\n ],\n },\n meta: {\n ownership: \"package\",\n },\n})\n"]}
1
+ {"version":3,"file":"voyant.js","sourceRoot":"","sources":["../src/voyant.ts"],"names":[],"mappings":"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","sourcesContent":["import { defineModule, providePort, requirePort } from \"@voyant-travel/core/project\"\nimport { customerBusinessAccountOnboardingRuntimePort } from \"./customer-business-onboarding-runtime-port.js\"\nimport { identityAccessRuntimePort } from \"./identity-access-runtime-port.js\"\nimport { storefrontRuntimePort } from \"./storefront-runtime-port.js\"\nimport { teamManagementRuntimePort } from \"./team-management-runtime-port.js\"\n\nexport const authCustomerBusinessAccountsVoyantModule = defineModule({\n id: \"@voyant-travel/auth#customer-business-accounts\",\n packageName: \"@voyant-travel/auth\",\n localId: \"auth.customer-business-accounts\",\n requires: { capabilities: [\"storefront.data-owner\"] },\n runtimePorts: [requirePort(customerBusinessAccountOnboardingRuntimePort)],\n api: [\n {\n id: \"@voyant-travel/auth#customer-business-accounts.api.admin\",\n surface: \"admin\",\n mount: \"customer-business-accounts\",\n resource: \"customer-business-accounts\",\n openapi: { document: \"customer-business-accounts\" },\n transactional: true,\n runtime: {\n entry: \"@voyant-travel/auth/customer-business-onboarding-graph-runtime\",\n export: \"createCustomerBusinessAccountVoyantRuntime\",\n },\n },\n ],\n access: {\n resources: [\n {\n id: \"@voyant-travel/auth#access.customer-business-accounts\",\n resource: \"customer-business-accounts\",\n label: \"Customer business accounts\",\n description: \"Review onboarding requests and provision customer business accounts.\",\n actions: [\n {\n action: \"read\",\n label: \"View customer business accounts\",\n description: \"View customer business-account capabilities and onboarding requests.\",\n },\n {\n action: \"write\",\n label: \"Manage customer business accounts\",\n description: \"Approve, reject, and provision customer business accounts.\",\n sensitive: true,\n },\n ],\n },\n ],\n },\n admin: {\n compositionOrder: 6,\n runtime: {\n entry: \"@voyant-travel/auth-react/admin\",\n export: \"createSelectedCustomerBusinessAccountsAdminExtension\",\n },\n copy: [\n {\n id: \"@voyant-travel/auth#customer-business-accounts.admin.copy\",\n namespace: \"auth.admin.customer-business-accounts\",\n fallbackLocale: \"en\",\n runtime: {\n entry: \"@voyant-travel/auth-react/i18n\",\n export: \"authUiMessageDefinitions\",\n },\n },\n ],\n routes: [\n {\n id: \"@voyant-travel/auth#customer-business-accounts.admin.route\",\n path: \"/business-accounts\",\n requiredScopes: [\"customer-business-accounts:read\"],\n runtime: {\n entry: \"@voyant-travel/auth-react/admin\",\n export: \"createSelectedCustomerBusinessAccountsAdminExtension\",\n },\n },\n ],\n },\n meta: {\n ownership: \"package\",\n agentTools: {\n posture: \"not-applicable\",\n rationale: \"Business-account onboarding is exposed through staff-guarded admin routes.\",\n },\n },\n})\n\nexport const authInvitationsVoyantModule = defineModule({\n id: \"@voyant-travel/auth#invitations\",\n packageName: \"@voyant-travel/auth\",\n localId: \"auth.invitations\",\n provides: { ports: [providePort(identityAccessRuntimePort)] },\n runtimePorts: [requirePort(identityAccessRuntimePort)],\n api: [\n {\n id: \"@voyant-travel/auth#invitations.api.admin\",\n surface: \"admin\",\n mount: \"invitations\",\n resource: \"team\",\n openapi: { document: \"invitations\" },\n transactional: true,\n runtime: {\n entry: \"@voyant-travel/auth/identity-access-graph-runtime\",\n export: \"createInvitationsVoyantRuntime\",\n },\n },\n {\n id: \"@voyant-travel/auth#invitations.api.public\",\n surface: \"public\",\n mount: \"invitations\",\n anonymous: true,\n openapi: { document: \"invitations\" },\n transactional: true,\n runtime: {\n entry: \"@voyant-travel/auth/identity-access-graph-runtime\",\n export: \"createInvitationsVoyantRuntime\",\n },\n },\n ],\n presentations: [\n {\n id: \"@voyant-travel/auth#presentation.local-auth\",\n runtime: {\n entry: \"@voyant-travel/auth-react/local-auth-routes\",\n export: \"createLocalAuthRouteContribution\",\n },\n },\n ],\n meta: {\n ownership: \"package\",\n agentTools: {\n posture: \"not-applicable\",\n rationale:\n \"This unit owns public invitation acceptance; staff invitation management is exposed by the guarded auth team runtime.\",\n },\n },\n})\n\nexport const authTeamVoyantModule = defineModule({\n id: \"@voyant-travel/auth#team\",\n packageName: \"@voyant-travel/auth\",\n localId: \"auth.team\",\n provides: { ports: [providePort(teamManagementRuntimePort)] },\n runtimePorts: [requirePort(teamManagementRuntimePort)],\n api: [\n {\n id: \"@voyant-travel/auth#team.api.admin\",\n surface: \"admin\",\n mount: \"team\",\n resource: \"team\",\n openapi: { document: \"team\" },\n transactional: true,\n runtime: {\n entry: \"@voyant-travel/auth/identity-access-graph-runtime\",\n export: \"createTeamVoyantRuntime\",\n },\n },\n ],\n access: {\n resources: [\n {\n id: \"@voyant-travel/auth#access.team\",\n resource: \"team\",\n label: \"Team\",\n description: \"Manage staff team members and their access.\",\n wildcard: \"explicit-resource\",\n actions: [\n {\n action: \"read\",\n label: \"View team\",\n description: \"View staff team members.\",\n },\n {\n action: \"write\",\n label: \"Manage team\",\n description: \"Invite staff and update roles or access.\",\n sensitive: true,\n wildcard: \"explicit\",\n },\n {\n action: \"delete\",\n label: \"Remove team access\",\n description: \"Revoke invitations or deactivate staff team members.\",\n sensitive: true,\n wildcard: \"explicit\",\n },\n ],\n },\n ],\n },\n tools: [\n {\n id: \"@voyant-travel/auth#team.tool.get-capabilities\",\n name: \"get_team_management_capabilities\",\n runtime: {\n entry: \"@voyant-travel/auth/tools\",\n export: \"getTeamManagementCapabilitiesTool\",\n },\n requiredScopes: [\"team:read\"],\n context: [\"teamManagement\"],\n risk: \"low\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.list-members\",\n name: \"list_team_members\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"listTeamMembersTool\" },\n requiredScopes: [\"team:read\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.list-roles\",\n name: \"list_team_roles\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"listTeamRolesTool\" },\n requiredScopes: [\"team:read\"],\n context: [\"teamManagement\"],\n risk: \"low\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.list-invitations\",\n name: \"list_team_invitations\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"listTeamInvitationsTool\" },\n requiredScopes: [\"team:read\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.invite-member\",\n name: \"invite_team_member\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"inviteTeamMemberTool\" },\n requiredScopes: [\"team:write\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.revoke-invitation\",\n name: \"revoke_team_invitation\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"revokeTeamInvitationTool\" },\n requiredScopes: [\"team:delete\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.update-member-role\",\n name: \"update_team_member_role\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"updateTeamMemberRoleTool\" },\n requiredScopes: [\"team:write\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.activate-member\",\n name: \"activate_team_member\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"activateTeamMemberTool\" },\n requiredScopes: [\"team:write\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n {\n id: \"@voyant-travel/auth#team.tool.deactivate-member\",\n name: \"deactivate_team_member\",\n runtime: { entry: \"@voyant-travel/auth/tools\", export: \"deactivateTeamMemberTool\" },\n requiredScopes: [\"team:delete\"],\n context: [\"teamManagement\"],\n risk: \"high\",\n },\n ],\n actions: [\n {\n id: \"@voyant-travel/auth#team.action.get-capabilities\",\n version: \"v1\",\n kind: \"read\",\n targetType: \"team-capabilities\",\n resource: \"team\",\n action: \"read\",\n requiredScopes: [\"team:read\"],\n risk: \"low\",\n ledger: \"optional\",\n approval: \"never\",\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.get-capabilities\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.list-members\",\n version: \"v1\",\n kind: \"sensitive-read\",\n targetType: \"team-member\",\n resource: \"team\",\n action: \"read\",\n requiredScopes: [\"team:read\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"never\",\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.list-members\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.list-roles\",\n version: \"v1\",\n kind: \"read\",\n targetType: \"team-role\",\n resource: \"team\",\n action: \"read\",\n requiredScopes: [\"team:read\"],\n risk: \"low\",\n ledger: \"optional\",\n approval: \"never\",\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.list-roles\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.list-invitations\",\n version: \"v1\",\n kind: \"sensitive-read\",\n targetType: \"team-invitation\",\n resource: \"team\",\n action: \"read\",\n requiredScopes: [\"team:read\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"never\",\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.list-invitations\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.invite-member\",\n version: \"v1\",\n kind: \"execute\",\n targetType: \"team-invitation\",\n resource: \"team\",\n action: \"write\",\n requiredScopes: [\"team:write\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"required\",\n reversible: false,\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.invite-member\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.revoke-invitation\",\n version: \"v1\",\n kind: \"execute\",\n targetType: \"team-invitation\",\n resource: \"team\",\n action: \"delete\",\n requiredScopes: [\"team:delete\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"required\",\n reversible: false,\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.revoke-invitation\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.update-member-role\",\n version: \"v1\",\n kind: \"execute\",\n targetType: \"team-member\",\n resource: \"team\",\n action: \"write\",\n requiredScopes: [\"team:write\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"required\",\n reversible: true,\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.update-member-role\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.activate-member\",\n version: \"v1\",\n kind: \"execute\",\n targetType: \"team-member\",\n resource: \"team\",\n action: \"write\",\n requiredScopes: [\"team:write\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"required\",\n reversible: true,\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.activate-member\"] },\n },\n {\n id: \"@voyant-travel/auth#team.action.deactivate-member\",\n version: \"v1\",\n kind: \"execute\",\n targetType: \"team-member\",\n resource: \"team\",\n action: \"delete\",\n requiredScopes: [\"team:delete\"],\n risk: \"high\",\n ledger: \"required\",\n approval: \"required\",\n reversible: false,\n allowedActorTypes: [\"staff\"],\n from: { tools: [\"@voyant-travel/auth#team.tool.deactivate-member\"] },\n },\n ],\n admin: {\n compositionOrder: 5,\n setupSteps: [{ id: \"@voyant-travel/auth#setup.team\", skippable: true }],\n runtime: {\n entry: \"@voyant-travel/auth-react/admin\",\n export: \"createSelectedAuthTeamAdminExtension\",\n },\n copy: [\n {\n id: \"@voyant-travel/auth#team.admin.copy\",\n namespace: \"auth.admin.team\",\n fallbackLocale: \"en\",\n runtime: {\n entry: \"@voyant-travel/auth-react/i18n\",\n export: \"authUiMessageDefinitions\",\n },\n },\n ],\n routes: [\n {\n id: \"@voyant-travel/auth#team.admin.route\",\n path: \"/settings/team\",\n requiredScopes: [\"team:read\"],\n runtime: {\n entry: \"@voyant-travel/auth-react/admin\",\n export: \"createSelectedAuthTeamAdminExtension\",\n },\n },\n ],\n },\n meta: {\n ownership: \"package\",\n },\n})\n\nexport const authStorefrontVoyantModule = defineModule({\n id: \"@voyant-travel/auth#storefront\",\n packageName: \"@voyant-travel/auth\",\n localId: \"auth.storefront\",\n // Self-host storefront access model: keys, operator-declared origins, and\n // KMS-encrypted provider credentials backing the local customer-auth\n // resolver. Admin routes/tools and the managed cloud adapter are follow-ups.\n provides: { ports: [providePort(storefrontRuntimePort)] },\n runtimePorts: [requirePort(storefrontRuntimePort)],\n meta: {\n ownership: \"package\",\n agentTools: {\n posture: \"not-applicable\",\n rationale:\n \"Storefront access configuration is operator-owned; it is exposed through guarded admin surfaces, not agent tools.\",\n },\n },\n})\n"]}
@@ -0,0 +1,44 @@
1
+ {
2
+ "openapi": "3.1.0",
3
+ "info": {
4
+ "title": "Voyant customer business accounts",
5
+ "version": "1.0.0"
6
+ },
7
+ "paths": {
8
+ "/v1/admin/customer-business-accounts/capabilities": {
9
+ "get": {
10
+ "operationId": "getCustomerBusinessAccountCapabilities",
11
+ "x-voyant-api-id": "@voyant-travel/auth#customer-business-accounts.api.admin",
12
+ "responses": { "200": { "description": "HTTP 200" } }
13
+ }
14
+ },
15
+ "/v1/admin/customer-business-accounts/requests": {
16
+ "get": {
17
+ "operationId": "listCustomerBusinessAccountRequests",
18
+ "x-voyant-api-id": "@voyant-travel/auth#customer-business-accounts.api.admin",
19
+ "responses": { "200": { "description": "HTTP 200" } }
20
+ }
21
+ },
22
+ "/v1/admin/customer-business-accounts/requests/{requestId}/approve": {
23
+ "post": {
24
+ "operationId": "approveCustomerBusinessAccountRequest",
25
+ "x-voyant-api-id": "@voyant-travel/auth#customer-business-accounts.api.admin",
26
+ "responses": { "200": { "description": "HTTP 200" } }
27
+ }
28
+ },
29
+ "/v1/admin/customer-business-accounts/requests/{requestId}/reject": {
30
+ "post": {
31
+ "operationId": "rejectCustomerBusinessAccountRequest",
32
+ "x-voyant-api-id": "@voyant-travel/auth#customer-business-accounts.api.admin",
33
+ "responses": { "200": { "description": "HTTP 200" } }
34
+ }
35
+ },
36
+ "/v1/admin/customer-business-accounts/accounts": {
37
+ "post": {
38
+ "operationId": "provisionCustomerBusinessAccount",
39
+ "x-voyant-api-id": "@voyant-travel/auth#customer-business-accounts.api.admin",
40
+ "responses": { "201": { "description": "HTTP 201" } }
41
+ }
42
+ }
43
+ }
44
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyant-travel/auth",
3
- "version": "0.136.0",
3
+ "version": "0.138.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -62,6 +62,31 @@
62
62
  "import": "./dist/auth-realms.js",
63
63
  "default": "./dist/auth-realms.js"
64
64
  },
65
+ "./customer-business-accounts": {
66
+ "types": "./dist/customer-business-accounts-contracts.d.ts",
67
+ "import": "./dist/customer-business-accounts-contracts.js",
68
+ "default": "./dist/customer-business-accounts-contracts.js"
69
+ },
70
+ "./customer-business-onboarding-runtime-port": {
71
+ "types": "./dist/customer-business-onboarding-runtime-port.d.ts",
72
+ "import": "./dist/customer-business-onboarding-runtime-port.js",
73
+ "default": "./dist/customer-business-onboarding-runtime-port.js"
74
+ },
75
+ "./ports": {
76
+ "types": "./dist/ports.d.ts",
77
+ "import": "./dist/ports.js",
78
+ "default": "./dist/ports.js"
79
+ },
80
+ "./customer-business-onboarding-service": {
81
+ "types": "./dist/customer-business-onboarding-service.d.ts",
82
+ "import": "./dist/customer-business-onboarding-service.js",
83
+ "default": "./dist/customer-business-onboarding-service.js"
84
+ },
85
+ "./customer-business-onboarding-graph-runtime": {
86
+ "types": "./dist/customer-business-onboarding-graph-runtime.d.ts",
87
+ "import": "./dist/customer-business-onboarding-graph-runtime.js",
88
+ "default": "./dist/customer-business-onboarding-graph-runtime.js"
89
+ },
65
90
  "./identity-access-runtime-port": {
66
91
  "types": "./dist/identity-access-runtime-port.d.ts",
67
92
  "import": "./dist/identity-access-runtime-port.js",
@@ -72,6 +97,26 @@
72
97
  "import": "./dist/identity-access-graph-runtime.js",
73
98
  "default": "./dist/identity-access-graph-runtime.js"
74
99
  },
100
+ "./storefront-runtime-port": {
101
+ "types": "./dist/storefront-runtime-port.d.ts",
102
+ "import": "./dist/storefront-runtime-port.js",
103
+ "default": "./dist/storefront-runtime-port.js"
104
+ },
105
+ "./storefront-local-adapter": {
106
+ "types": "./dist/storefront-local-adapter.d.ts",
107
+ "import": "./dist/storefront-local-adapter.js",
108
+ "default": "./dist/storefront-local-adapter.js"
109
+ },
110
+ "./storefront-customer-auth-resolver": {
111
+ "types": "./dist/storefront-customer-auth-resolver.d.ts",
112
+ "import": "./dist/storefront-customer-auth-resolver.js",
113
+ "default": "./dist/storefront-customer-auth-resolver.js"
114
+ },
115
+ "./storefront-credentials": {
116
+ "types": "./dist/storefront-credentials.d.ts",
117
+ "import": "./dist/storefront-credentials.js",
118
+ "default": "./dist/storefront-credentials.js"
119
+ },
75
120
  "./team-management-runtime-port": {
76
121
  "types": "./dist/team-management-runtime-port.d.ts",
77
122
  "import": "./dist/team-management-runtime-port.js",
@@ -89,6 +134,7 @@
89
134
  },
90
135
  "./openapi/admin/invitations": "./openapi/admin/invitations.json",
91
136
  "./openapi/admin/team": "./openapi/admin/team.json",
137
+ "./openapi/admin/customer-business-accounts": "./openapi/admin/customer-business-accounts.json",
92
138
  "./openapi/storefront/invitations": "./openapi/storefront/invitations.json",
93
139
  "./voyant": {
94
140
  "types": "./dist/voyant.d.ts",
@@ -111,10 +157,10 @@
111
157
  "hono": "^4.12.27",
112
158
  "zod": "^4.4.3",
113
159
  "@voyant-travel/core": "^0.130.0",
114
- "@voyant-travel/db": "^0.115.0",
115
- "@voyant-travel/hono": "^0.131.0",
160
+ "@voyant-travel/db": "^0.117.0",
161
+ "@voyant-travel/hono": "^0.131.2",
116
162
  "@voyant-travel/tools": "^0.3.0",
117
- "@voyant-travel/types": "^0.109.6",
163
+ "@voyant-travel/types": "^0.109.8",
118
164
  "@voyant-travel/utils": "^0.108.0"
119
165
  },
120
166
  "devDependencies": {