@xapps-platform/backend-kit 0.1.1

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 (142) hide show
  1. package/README.md +196 -0
  2. package/dist/backend/modes/gateway-managed/payment.d.ts +23 -0
  3. package/dist/backend/modes/gateway-managed/payment.d.ts.map +1 -0
  4. package/dist/backend/modes/gateway-managed/payment.js +49 -0
  5. package/dist/backend/modes/gateway-managed/payment.js.map +7 -0
  6. package/dist/backend/modes/gateway-managed/paymentSession.d.ts +4 -0
  7. package/dist/backend/modes/gateway-managed/paymentSession.d.ts.map +1 -0
  8. package/dist/backend/modes/gateway-managed/paymentSession.js +16 -0
  9. package/dist/backend/modes/gateway-managed/paymentSession.js.map +7 -0
  10. package/dist/backend/modes/gateway-managed/policy.d.ts +68 -0
  11. package/dist/backend/modes/gateway-managed/policy.d.ts.map +1 -0
  12. package/dist/backend/modes/gateway-managed/policy.js +53 -0
  13. package/dist/backend/modes/gateway-managed/policy.js.map +7 -0
  14. package/dist/backend/modes/gateway-managed/policyContext.d.ts +5 -0
  15. package/dist/backend/modes/gateway-managed/policyContext.d.ts.map +1 -0
  16. package/dist/backend/modes/gateway-managed/policyContext.js +22 -0
  17. package/dist/backend/modes/gateway-managed/policyContext.js.map +7 -0
  18. package/dist/backend/modes/index.d.ts +72 -0
  19. package/dist/backend/modes/index.d.ts.map +1 -0
  20. package/dist/backend/modes/index.js +159 -0
  21. package/dist/backend/modes/index.js.map +7 -0
  22. package/dist/backend/modes/owner-managed/payment.d.ts +34 -0
  23. package/dist/backend/modes/owner-managed/payment.d.ts.map +1 -0
  24. package/dist/backend/modes/owner-managed/payment.js +75 -0
  25. package/dist/backend/modes/owner-managed/payment.js.map +7 -0
  26. package/dist/backend/modes/owner-managed/paymentAssets.d.ts +4 -0
  27. package/dist/backend/modes/owner-managed/paymentAssets.d.ts.map +1 -0
  28. package/dist/backend/modes/owner-managed/paymentAssets.js +11 -0
  29. package/dist/backend/modes/owner-managed/paymentAssets.js.map +7 -0
  30. package/dist/backend/modes/owner-managed/paymentPageApi.d.ts +4 -0
  31. package/dist/backend/modes/owner-managed/paymentPageApi.d.ts.map +1 -0
  32. package/dist/backend/modes/owner-managed/paymentPageApi.js +11 -0
  33. package/dist/backend/modes/owner-managed/paymentPageApi.js.map +7 -0
  34. package/dist/backend/modes/owner-managed/paymentSession.d.ts +4 -0
  35. package/dist/backend/modes/owner-managed/paymentSession.d.ts.map +1 -0
  36. package/dist/backend/modes/owner-managed/paymentSession.js +18 -0
  37. package/dist/backend/modes/owner-managed/paymentSession.js.map +7 -0
  38. package/dist/backend/modes/owner-managed/policy.d.ts +68 -0
  39. package/dist/backend/modes/owner-managed/policy.d.ts.map +1 -0
  40. package/dist/backend/modes/owner-managed/policy.js +53 -0
  41. package/dist/backend/modes/owner-managed/policy.js.map +7 -0
  42. package/dist/backend/modes/owner-managed/policyContext.d.ts +5 -0
  43. package/dist/backend/modes/owner-managed/policyContext.d.ts.map +1 -0
  44. package/dist/backend/modes/owner-managed/policyContext.js +26 -0
  45. package/dist/backend/modes/owner-managed/policyContext.js.map +7 -0
  46. package/dist/backend/modes/publisher-delegated/payment.d.ts +23 -0
  47. package/dist/backend/modes/publisher-delegated/payment.d.ts.map +1 -0
  48. package/dist/backend/modes/publisher-delegated/payment.js +50 -0
  49. package/dist/backend/modes/publisher-delegated/payment.js.map +7 -0
  50. package/dist/backend/modes/publisher-delegated/paymentSession.d.ts +4 -0
  51. package/dist/backend/modes/publisher-delegated/paymentSession.d.ts.map +1 -0
  52. package/dist/backend/modes/publisher-delegated/paymentSession.js +16 -0
  53. package/dist/backend/modes/publisher-delegated/paymentSession.js.map +7 -0
  54. package/dist/backend/modes/publisher-delegated/policy.d.ts +68 -0
  55. package/dist/backend/modes/publisher-delegated/policy.d.ts.map +1 -0
  56. package/dist/backend/modes/publisher-delegated/policy.js +53 -0
  57. package/dist/backend/modes/publisher-delegated/policy.js.map +7 -0
  58. package/dist/backend/modes/publisher-delegated/policyContext.d.ts +5 -0
  59. package/dist/backend/modes/publisher-delegated/policyContext.d.ts.map +1 -0
  60. package/dist/backend/modes/publisher-delegated/policyContext.js +22 -0
  61. package/dist/backend/modes/publisher-delegated/policyContext.js.map +7 -0
  62. package/dist/backend/modes/tenant-delegated/payment.d.ts +23 -0
  63. package/dist/backend/modes/tenant-delegated/payment.d.ts.map +1 -0
  64. package/dist/backend/modes/tenant-delegated/payment.js +50 -0
  65. package/dist/backend/modes/tenant-delegated/payment.js.map +7 -0
  66. package/dist/backend/modes/tenant-delegated/paymentSession.d.ts +4 -0
  67. package/dist/backend/modes/tenant-delegated/paymentSession.d.ts.map +1 -0
  68. package/dist/backend/modes/tenant-delegated/paymentSession.js +16 -0
  69. package/dist/backend/modes/tenant-delegated/paymentSession.js.map +7 -0
  70. package/dist/backend/modes/tenant-delegated/policy.d.ts +68 -0
  71. package/dist/backend/modes/tenant-delegated/policy.d.ts.map +1 -0
  72. package/dist/backend/modes/tenant-delegated/policy.js +53 -0
  73. package/dist/backend/modes/tenant-delegated/policy.js.map +7 -0
  74. package/dist/backend/modes/tenant-delegated/policyContext.d.ts +5 -0
  75. package/dist/backend/modes/tenant-delegated/policyContext.d.ts.map +1 -0
  76. package/dist/backend/modes/tenant-delegated/policyContext.js +22 -0
  77. package/dist/backend/modes/tenant-delegated/policyContext.js.map +7 -0
  78. package/dist/backend/modules.d.ts +33 -0
  79. package/dist/backend/modules.d.ts.map +1 -0
  80. package/dist/backend/modules.js +100 -0
  81. package/dist/backend/modules.js.map +7 -0
  82. package/dist/backend/options.d.ts +78 -0
  83. package/dist/backend/options.d.ts.map +1 -0
  84. package/dist/backend/options.js +153 -0
  85. package/dist/backend/options.js.map +7 -0
  86. package/dist/backend/paymentRuntime.d.ts +31 -0
  87. package/dist/backend/paymentRuntime.d.ts.map +1 -0
  88. package/dist/backend/paymentRuntime.js +231 -0
  89. package/dist/backend/paymentRuntime.js.map +7 -0
  90. package/dist/backend/policies/common.d.ts +102 -0
  91. package/dist/backend/policies/common.d.ts.map +1 -0
  92. package/dist/backend/policies/common.js +226 -0
  93. package/dist/backend/policies/common.js.map +7 -0
  94. package/dist/backend/routes/gateway/guard.d.ts +7 -0
  95. package/dist/backend/routes/gateway/guard.d.ts.map +1 -0
  96. package/dist/backend/routes/gateway/guard.js +89 -0
  97. package/dist/backend/routes/gateway/guard.js.map +7 -0
  98. package/dist/backend/routes/gateway/hostApi.d.ts +8 -0
  99. package/dist/backend/routes/gateway/hostApi.d.ts.map +1 -0
  100. package/dist/backend/routes/gateway/hostApi.js +45 -0
  101. package/dist/backend/routes/gateway/hostApi.js.map +7 -0
  102. package/dist/backend/routes/gateway/hostApiBridge.d.ts +5 -0
  103. package/dist/backend/routes/gateway/hostApiBridge.d.ts.map +1 -0
  104. package/dist/backend/routes/gateway/hostApiBridge.js +61 -0
  105. package/dist/backend/routes/gateway/hostApiBridge.js.map +7 -0
  106. package/dist/backend/routes/gateway/hostApiCore.d.ts +5 -0
  107. package/dist/backend/routes/gateway/hostApiCore.d.ts.map +1 -0
  108. package/dist/backend/routes/gateway/hostApiCore.js +95 -0
  109. package/dist/backend/routes/gateway/hostApiCore.js.map +7 -0
  110. package/dist/backend/routes/gateway/hostApiLifecycle.d.ts +5 -0
  111. package/dist/backend/routes/gateway/hostApiLifecycle.d.ts.map +1 -0
  112. package/dist/backend/routes/gateway/hostApiLifecycle.js +80 -0
  113. package/dist/backend/routes/gateway/hostApiLifecycle.js.map +7 -0
  114. package/dist/backend/routes/gateway/hostContractBoundary.d.ts +25 -0
  115. package/dist/backend/routes/gateway/hostContractBoundary.d.ts.map +1 -0
  116. package/dist/backend/routes/gateway/hostContractBoundary.js +43 -0
  117. package/dist/backend/routes/gateway/hostContractBoundary.js.map +7 -0
  118. package/dist/backend/routes/gateway/payment.d.ts +4 -0
  119. package/dist/backend/routes/gateway/payment.d.ts.map +1 -0
  120. package/dist/backend/routes/gateway/payment.js +10 -0
  121. package/dist/backend/routes/gateway/payment.js.map +7 -0
  122. package/dist/backend/routes/gateway/shared.d.ts +36 -0
  123. package/dist/backend/routes/gateway/shared.d.ts.map +1 -0
  124. package/dist/backend/routes/gateway/shared.js +208 -0
  125. package/dist/backend/routes/gateway/shared.js.map +7 -0
  126. package/dist/backend/routes/gateway/subjectProfiles.d.ts +2 -0
  127. package/dist/backend/routes/gateway/subjectProfiles.d.ts.map +1 -0
  128. package/dist/backend/routes/gateway/subjectProfiles.js +150 -0
  129. package/dist/backend/routes/gateway/subjectProfiles.js.map +7 -0
  130. package/dist/backend/routes/health.d.ts +2 -0
  131. package/dist/backend/routes/health.d.ts.map +1 -0
  132. package/dist/backend/routes/health.js +20 -0
  133. package/dist/backend/routes/health.js.map +7 -0
  134. package/dist/backend/routes/reference.d.ts +2 -0
  135. package/dist/backend/routes/reference.d.ts.map +1 -0
  136. package/dist/backend/routes/reference.js +414 -0
  137. package/dist/backend/routes/reference.js.map +7 -0
  138. package/dist/index.d.ts +10 -0
  139. package/dist/index.d.ts.map +1 -0
  140. package/dist/index.js +81 -0
  141. package/dist/index.js.map +7 -0
  142. package/package.json +42 -0
@@ -0,0 +1,159 @@
1
+ import * as gatewayManagedPayment from "./gateway-managed/payment.js";
2
+ import * as gatewayManagedPolicy from "./gateway-managed/policy.js";
3
+ import * as tenantDelegatedPayment from "./tenant-delegated/payment.js";
4
+ import * as tenantDelegatedPolicy from "./tenant-delegated/policy.js";
5
+ import * as publisherDelegatedPayment from "./publisher-delegated/payment.js";
6
+ import * as publisherDelegatedPolicy from "./publisher-delegated/policy.js";
7
+ import * as ownerManagedPayment from "./owner-managed/payment.js";
8
+ import * as ownerManagedPolicy from "./owner-managed/policy.js";
9
+ const BACKEND_MODE_HANDLERS = {
10
+ gateway_managed: {
11
+ ...gatewayManagedPayment,
12
+ ...gatewayManagedPolicy
13
+ },
14
+ tenant_delegated: {
15
+ ...tenantDelegatedPayment,
16
+ ...tenantDelegatedPolicy
17
+ },
18
+ publisher_delegated: {
19
+ ...publisherDelegatedPayment,
20
+ ...publisherDelegatedPolicy
21
+ },
22
+ owner_managed: {
23
+ ...ownerManagedPayment,
24
+ ...ownerManagedPolicy
25
+ }
26
+ };
27
+ const BACKEND_MODE_ENDPOINT_GROUPS = [
28
+ gatewayManagedPayment.referenceEndpointGroup,
29
+ tenantDelegatedPayment.referenceEndpointGroup,
30
+ publisherDelegatedPayment.referenceEndpointGroup,
31
+ ownerManagedPayment.referenceEndpointGroup
32
+ ];
33
+ const BACKEND_MODE_REFERENCE_DETAILS = [
34
+ {
35
+ key: "gateway_managed",
36
+ label: gatewayManagedPayment.paymentModeLabel,
37
+ description: gatewayManagedPayment.paymentModeDescription,
38
+ payment_session_model: gatewayManagedPayment.paymentSessionModel,
39
+ required_settings: gatewayManagedPayment.requiredSettings,
40
+ payment_responsibilities: gatewayManagedPayment.paymentResponsibilities,
41
+ payment_endpoints: gatewayManagedPayment.paymentEndpoints,
42
+ policy_responsibilities: gatewayManagedPolicy.policyResponsibilities,
43
+ policy_endpoints: gatewayManagedPolicy.policyEndpoints,
44
+ guide_path: "packages/backend-kit/src/backend/modes/gateway-managed/payment.ts"
45
+ },
46
+ {
47
+ key: "tenant_delegated",
48
+ label: tenantDelegatedPayment.paymentModeLabel,
49
+ description: tenantDelegatedPayment.paymentModeDescription,
50
+ payment_session_model: tenantDelegatedPayment.paymentSessionModel,
51
+ required_settings: tenantDelegatedPayment.requiredSettings,
52
+ payment_responsibilities: tenantDelegatedPayment.paymentResponsibilities,
53
+ payment_endpoints: tenantDelegatedPayment.paymentEndpoints,
54
+ policy_responsibilities: tenantDelegatedPolicy.policyResponsibilities,
55
+ policy_endpoints: tenantDelegatedPolicy.policyEndpoints,
56
+ guide_path: "packages/backend-kit/src/backend/modes/tenant-delegated/payment.ts"
57
+ },
58
+ {
59
+ key: "publisher_delegated",
60
+ label: publisherDelegatedPayment.paymentModeLabel,
61
+ description: publisherDelegatedPayment.paymentModeDescription,
62
+ payment_session_model: publisherDelegatedPayment.paymentSessionModel,
63
+ required_settings: publisherDelegatedPayment.requiredSettings,
64
+ payment_responsibilities: publisherDelegatedPayment.paymentResponsibilities,
65
+ payment_endpoints: publisherDelegatedPayment.paymentEndpoints,
66
+ policy_responsibilities: publisherDelegatedPolicy.policyResponsibilities,
67
+ policy_endpoints: publisherDelegatedPolicy.policyEndpoints,
68
+ guide_path: "packages/backend-kit/src/backend/modes/publisher-delegated/payment.ts"
69
+ },
70
+ {
71
+ key: "owner_managed",
72
+ reference_key: ownerManagedPayment.referenceMode,
73
+ label: ownerManagedPayment.paymentModeLabel,
74
+ description: ownerManagedPayment.paymentModeDescription,
75
+ payment_session_model: ownerManagedPayment.paymentSessionModel,
76
+ required_settings: ownerManagedPayment.requiredSettings,
77
+ payment_responsibilities: ownerManagedPayment.paymentResponsibilities,
78
+ payment_endpoints: ownerManagedPayment.paymentEndpoints,
79
+ policy_responsibilities: ownerManagedPolicy.policyResponsibilities,
80
+ policy_endpoints: ownerManagedPolicy.policyEndpoints,
81
+ guide_path: "packages/backend-kit/src/backend/modes/owner-managed/payment.ts"
82
+ }
83
+ ];
84
+ const ALL_BACKEND_MODE_KEYS = Object.freeze(Object.keys(BACKEND_MODE_HANDLERS));
85
+ function normalizeModeKey(value) {
86
+ const mode = String(value || "").trim().toLowerCase();
87
+ if (mode === "tenant_managed") return "owner_managed";
88
+ return mode;
89
+ }
90
+ function normalizeEnabledBackendModes(enabledModes) {
91
+ if (!Array.isArray(enabledModes) || enabledModes.length === 0) {
92
+ return [...ALL_BACKEND_MODE_KEYS];
93
+ }
94
+ const selected = [];
95
+ for (const value of enabledModes) {
96
+ const mode = normalizeModeKey(value);
97
+ if (ALL_BACKEND_MODE_KEYS.includes(mode) && !selected.includes(mode)) {
98
+ selected.push(mode);
99
+ }
100
+ }
101
+ return selected.length > 0 ? selected : [...ALL_BACKEND_MODE_KEYS];
102
+ }
103
+ function getBackendModeHandlers(enabledModes) {
104
+ const selected = normalizeEnabledBackendModes(enabledModes);
105
+ return Object.fromEntries(selected.map((key) => [key, BACKEND_MODE_HANDLERS[key]]));
106
+ }
107
+ function getBackendModeEndpointGroups(enabledModes) {
108
+ const selected = new Set(normalizeEnabledBackendModes(enabledModes));
109
+ return BACKEND_MODE_ENDPOINT_GROUPS.filter((group) => {
110
+ if (group.key === "gateway_managed_payment_reference") return selected.has("gateway_managed");
111
+ if (group.key === "tenant_delegated_payment_reference") return selected.has("tenant_delegated");
112
+ if (group.key === "publisher_delegated_payment_reference") {
113
+ return selected.has("publisher_delegated");
114
+ }
115
+ if (group.key === "owner_managed_payment_reference") return selected.has("owner_managed");
116
+ return true;
117
+ });
118
+ }
119
+ function getBackendModeReferenceDetails(enabledModes) {
120
+ const selected = new Set(normalizeEnabledBackendModes(enabledModes));
121
+ return BACKEND_MODE_REFERENCE_DETAILS.filter((detail) => selected.has(detail.key));
122
+ }
123
+ function resolveCanonicalPaymentMode(payloadInput) {
124
+ const payload = payloadInput && typeof payloadInput === "object" ? payloadInput : {};
125
+ const guard = payload.guard && typeof payload.guard === "object" ? payload.guard : {};
126
+ const guardConfig = guard.config && typeof guard.config === "object" ? guard.config : {};
127
+ const mode = String(guardConfig?.payment_issuer_mode || guardConfig?.paymentIssuerMode || "").trim().toLowerCase();
128
+ if (mode === "gateway_managed") return "gateway_managed";
129
+ if (mode === "tenant_delegated") return "tenant_delegated";
130
+ if (mode === "publisher_delegated") return "publisher_delegated";
131
+ return "owner_managed";
132
+ }
133
+ async function resolveBackendPaymentPolicy(payloadInput, { log, enabledModes, paymentRuntime = {} } = {}) {
134
+ const paymentMode = resolveCanonicalPaymentMode(payloadInput);
135
+ const normalizedEnabledModes = normalizeEnabledBackendModes(enabledModes);
136
+ if (!normalizedEnabledModes.includes(paymentMode)) {
137
+ return {
138
+ allowed: false,
139
+ reason: "payment_mode_not_enabled",
140
+ message: "Payment mode is not enabled for this backend.",
141
+ details: {
142
+ payment_mode: paymentMode,
143
+ enabled_payment_modes: normalizedEnabledModes
144
+ }
145
+ };
146
+ }
147
+ const backendModeHandlers = getBackendModeHandlers(normalizedEnabledModes);
148
+ const backendModeHandler = backendModeHandlers[paymentMode] || backendModeHandlers.owner_managed || BACKEND_MODE_HANDLERS.owner_managed;
149
+ return backendModeHandler.resolvePolicyRequest(payloadInput, { log, paymentRuntime });
150
+ }
151
+ export {
152
+ ALL_BACKEND_MODE_KEYS,
153
+ getBackendModeEndpointGroups,
154
+ getBackendModeHandlers,
155
+ getBackendModeReferenceDetails,
156
+ normalizeEnabledBackendModes,
157
+ resolveBackendPaymentPolicy
158
+ };
159
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/backend/modes/index.ts"],
4
+ "sourcesContent": ["// @ts-nocheck\nimport * as gatewayManagedPayment from \"./gateway-managed/payment.js\";\nimport * as gatewayManagedPolicy from \"./gateway-managed/policy.js\";\nimport * as tenantDelegatedPayment from \"./tenant-delegated/payment.js\";\nimport * as tenantDelegatedPolicy from \"./tenant-delegated/policy.js\";\nimport * as publisherDelegatedPayment from \"./publisher-delegated/payment.js\";\nimport * as publisherDelegatedPolicy from \"./publisher-delegated/policy.js\";\nimport * as ownerManagedPayment from \"./owner-managed/payment.js\";\nimport * as ownerManagedPolicy from \"./owner-managed/policy.js\";\n\nconst BACKEND_MODE_HANDLERS = {\n gateway_managed: {\n ...gatewayManagedPayment,\n ...gatewayManagedPolicy,\n },\n tenant_delegated: {\n ...tenantDelegatedPayment,\n ...tenantDelegatedPolicy,\n },\n publisher_delegated: {\n ...publisherDelegatedPayment,\n ...publisherDelegatedPolicy,\n },\n owner_managed: {\n ...ownerManagedPayment,\n ...ownerManagedPolicy,\n },\n};\n\nconst BACKEND_MODE_ENDPOINT_GROUPS = [\n gatewayManagedPayment.referenceEndpointGroup,\n tenantDelegatedPayment.referenceEndpointGroup,\n publisherDelegatedPayment.referenceEndpointGroup,\n ownerManagedPayment.referenceEndpointGroup,\n];\n\nconst BACKEND_MODE_REFERENCE_DETAILS = [\n {\n key: \"gateway_managed\",\n label: gatewayManagedPayment.paymentModeLabel,\n description: gatewayManagedPayment.paymentModeDescription,\n payment_session_model: gatewayManagedPayment.paymentSessionModel,\n required_settings: gatewayManagedPayment.requiredSettings,\n payment_responsibilities: gatewayManagedPayment.paymentResponsibilities,\n payment_endpoints: gatewayManagedPayment.paymentEndpoints,\n policy_responsibilities: gatewayManagedPolicy.policyResponsibilities,\n policy_endpoints: gatewayManagedPolicy.policyEndpoints,\n guide_path: \"packages/backend-kit/src/backend/modes/gateway-managed/payment.ts\",\n },\n {\n key: \"tenant_delegated\",\n label: tenantDelegatedPayment.paymentModeLabel,\n description: tenantDelegatedPayment.paymentModeDescription,\n payment_session_model: tenantDelegatedPayment.paymentSessionModel,\n required_settings: tenantDelegatedPayment.requiredSettings,\n payment_responsibilities: tenantDelegatedPayment.paymentResponsibilities,\n payment_endpoints: tenantDelegatedPayment.paymentEndpoints,\n policy_responsibilities: tenantDelegatedPolicy.policyResponsibilities,\n policy_endpoints: tenantDelegatedPolicy.policyEndpoints,\n guide_path: \"packages/backend-kit/src/backend/modes/tenant-delegated/payment.ts\",\n },\n {\n key: \"publisher_delegated\",\n label: publisherDelegatedPayment.paymentModeLabel,\n description: publisherDelegatedPayment.paymentModeDescription,\n payment_session_model: publisherDelegatedPayment.paymentSessionModel,\n required_settings: publisherDelegatedPayment.requiredSettings,\n payment_responsibilities: publisherDelegatedPayment.paymentResponsibilities,\n payment_endpoints: publisherDelegatedPayment.paymentEndpoints,\n policy_responsibilities: publisherDelegatedPolicy.policyResponsibilities,\n policy_endpoints: publisherDelegatedPolicy.policyEndpoints,\n guide_path: \"packages/backend-kit/src/backend/modes/publisher-delegated/payment.ts\",\n },\n {\n key: \"owner_managed\",\n reference_key: ownerManagedPayment.referenceMode,\n label: ownerManagedPayment.paymentModeLabel,\n description: ownerManagedPayment.paymentModeDescription,\n payment_session_model: ownerManagedPayment.paymentSessionModel,\n required_settings: ownerManagedPayment.requiredSettings,\n payment_responsibilities: ownerManagedPayment.paymentResponsibilities,\n payment_endpoints: ownerManagedPayment.paymentEndpoints,\n policy_responsibilities: ownerManagedPolicy.policyResponsibilities,\n policy_endpoints: ownerManagedPolicy.policyEndpoints,\n guide_path: \"packages/backend-kit/src/backend/modes/owner-managed/payment.ts\",\n },\n];\n\nexport const ALL_BACKEND_MODE_KEYS = Object.freeze(Object.keys(BACKEND_MODE_HANDLERS));\n\nfunction normalizeModeKey(value) {\n const mode = String(value || \"\")\n .trim()\n .toLowerCase();\n if (mode === \"tenant_managed\") return \"owner_managed\";\n return mode;\n}\n\nexport function normalizeEnabledBackendModes(enabledModes) {\n if (!Array.isArray(enabledModes) || enabledModes.length === 0) {\n return [...ALL_BACKEND_MODE_KEYS];\n }\n const selected = [];\n for (const value of enabledModes) {\n const mode = normalizeModeKey(value);\n if (ALL_BACKEND_MODE_KEYS.includes(mode) && !selected.includes(mode)) {\n selected.push(mode);\n }\n }\n return selected.length > 0 ? selected : [...ALL_BACKEND_MODE_KEYS];\n}\n\nexport function getBackendModeHandlers(enabledModes) {\n const selected = normalizeEnabledBackendModes(enabledModes);\n return Object.fromEntries(selected.map((key) => [key, BACKEND_MODE_HANDLERS[key]]));\n}\n\nexport function getBackendModeEndpointGroups(enabledModes) {\n const selected = new Set(normalizeEnabledBackendModes(enabledModes));\n return BACKEND_MODE_ENDPOINT_GROUPS.filter((group) => {\n if (group.key === \"gateway_managed_payment_reference\") return selected.has(\"gateway_managed\");\n if (group.key === \"tenant_delegated_payment_reference\") return selected.has(\"tenant_delegated\");\n if (group.key === \"publisher_delegated_payment_reference\") {\n return selected.has(\"publisher_delegated\");\n }\n if (group.key === \"owner_managed_payment_reference\") return selected.has(\"owner_managed\");\n return true;\n });\n}\n\nexport function getBackendModeReferenceDetails(enabledModes) {\n const selected = new Set(normalizeEnabledBackendModes(enabledModes));\n return BACKEND_MODE_REFERENCE_DETAILS.filter((detail) => selected.has(detail.key));\n}\n\nfunction resolveCanonicalPaymentMode(payloadInput) {\n const payload = payloadInput && typeof payloadInput === \"object\" ? payloadInput : {};\n const guard = payload.guard && typeof payload.guard === \"object\" ? payload.guard : {};\n const guardConfig = guard.config && typeof guard.config === \"object\" ? guard.config : {};\n const mode = String(guardConfig?.payment_issuer_mode || guardConfig?.paymentIssuerMode || \"\")\n .trim()\n .toLowerCase();\n if (mode === \"gateway_managed\") return \"gateway_managed\";\n if (mode === \"tenant_delegated\") return \"tenant_delegated\";\n if (mode === \"publisher_delegated\") return \"publisher_delegated\";\n return \"owner_managed\";\n}\n\nexport async function resolveBackendPaymentPolicy(\n payloadInput,\n { log, enabledModes, paymentRuntime = {} } = {},\n) {\n const paymentMode = resolveCanonicalPaymentMode(payloadInput);\n const normalizedEnabledModes = normalizeEnabledBackendModes(enabledModes);\n if (!normalizedEnabledModes.includes(paymentMode)) {\n return {\n allowed: false,\n reason: \"payment_mode_not_enabled\",\n message: \"Payment mode is not enabled for this backend.\",\n details: {\n payment_mode: paymentMode,\n enabled_payment_modes: normalizedEnabledModes,\n },\n };\n }\n const backendModeHandlers = getBackendModeHandlers(normalizedEnabledModes);\n const backendModeHandler =\n backendModeHandlers[paymentMode] ||\n backendModeHandlers.owner_managed ||\n BACKEND_MODE_HANDLERS.owner_managed;\n return backendModeHandler.resolvePolicyRequest(payloadInput, { log, paymentRuntime });\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,34 @@
1
+ export declare const paymentMode = "owner_managed";
2
+ export declare const referenceMode = "owner_managed";
3
+ export declare const paymentModeLabel = "Owner managed";
4
+ export declare const paymentModeDescription = "The owner controls the payment page flow. The packaged sample payment page is the default reference seam for this path.";
5
+ export declare const paymentPagePath = "/tenant-payment.html";
6
+ export declare const paymentSessionModel: {
7
+ uses_gateway_payment_session: boolean;
8
+ tenant_owns_payment_page: boolean;
9
+ tenant_owns_payment_session_endpoints: boolean;
10
+ tenant_calls_gateway_payment_session_api_directly: boolean;
11
+ tenant_session_reference: string;
12
+ };
13
+ export declare const requiredSettings: string[];
14
+ export declare const paymentResponsibilities: string[];
15
+ export declare const paymentEndpoints: {
16
+ method: string;
17
+ path: string;
18
+ purpose: string;
19
+ }[];
20
+ export declare const referenceEndpointGroup: {
21
+ key: string;
22
+ label: string;
23
+ when_to_use: string;
24
+ endpoints: {
25
+ method: string;
26
+ path: string;
27
+ purpose: string;
28
+ }[];
29
+ };
30
+ export declare function buildPaymentUrl(input: any, runtime?: {}): Promise<string>;
31
+ export declare function registerRoutes(fastify: any, { paymentRuntime }?: {
32
+ paymentRuntime?: {};
33
+ }): Promise<void>;
34
+ //# sourceMappingURL=payment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../../src/backend/modes/owner-managed/payment.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,kBAAkB,CAAC;AAC3C,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,eAAO,MAAM,sBAAsB,4HACwF,CAAC;AAC5H,eAAO,MAAM,eAAe,yBAAyB,CAAC;AACtD,eAAO,MAAM,mBAAmB;;;;;;CAM/B,CAAC;AACF,eAAO,MAAM,gBAAgB,UAI5B,CAAC;AACF,eAAO,MAAM,uBAAuB,UAInC,CAAC;AACF,eAAO,MAAM,gBAAgB;;;;GAqB5B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;CAMlC,CAAC;AAEF,wBAAsB,eAAe,CAAC,KAAK,KAAA,EAAE,OAAO,KAAK,mBAExD;AAED,wBAAsB,cAAc,CAAC,OAAO,KAAA,EAAE,EAAE,cAAmB,EAAE;;CAAK,iBAGzE"}
@@ -0,0 +1,75 @@
1
+ import { buildPaymentUrl as buildOwnerManagedPaymentUrl } from "./paymentSession.js";
2
+ import paymentAssetRoutes from "./paymentAssets.js";
3
+ import paymentPageApiRoutes from "./paymentPageApi.js";
4
+ const paymentMode = "owner_managed";
5
+ const referenceMode = "owner_managed";
6
+ const paymentModeLabel = "Owner managed";
7
+ const paymentModeDescription = "The owner controls the payment page flow. The packaged sample payment page is the default reference seam for this path.";
8
+ const paymentPagePath = "/tenant-payment.html";
9
+ const paymentSessionModel = {
10
+ uses_gateway_payment_session: true,
11
+ tenant_owns_payment_page: true,
12
+ tenant_owns_payment_session_endpoints: true,
13
+ tenant_calls_gateway_payment_session_api_directly: true,
14
+ tenant_session_reference: "tenant page proxies gateway session through /api/tenant-payment/*"
15
+ };
16
+ const requiredSettings = [
17
+ "XCONECT_GUARD_INGEST_API_KEY",
18
+ "XCONECT_TENANT_PAYMENT_URL",
19
+ "XCONECT_TENANT_PAYMENT_RETURN_SECRET or XCONECT_TENANT_PAYMENT_RETURN_SECRET_REF"
20
+ ];
21
+ const paymentResponsibilities = [
22
+ "serve the tenant payment page",
23
+ "implement tenant payment session endpoints",
24
+ "complete/client-settle the hosted gateway session from the tenant page"
25
+ ];
26
+ const paymentEndpoints = [
27
+ {
28
+ method: "GET",
29
+ path: "/tenant-payment.html",
30
+ purpose: "Serves the tenant-owned payment page."
31
+ },
32
+ {
33
+ method: "GET",
34
+ path: "/api/tenant-payment/session",
35
+ purpose: "Loads the current hosted gateway session for the tenant page."
36
+ },
37
+ {
38
+ method: "POST",
39
+ path: "/api/tenant-payment/complete",
40
+ purpose: "Advances the hosted gateway session from the tenant page."
41
+ },
42
+ {
43
+ method: "POST",
44
+ path: "/api/tenant-payment/client-settle",
45
+ purpose: "Fallback client settlement for the tenant page flow."
46
+ }
47
+ ];
48
+ const referenceEndpointGroup = {
49
+ key: "owner_managed_payment_reference",
50
+ label: "Owner-managed payment page reference",
51
+ when_to_use: "Use this when the owner keeps the owner-managed lane and the packaged sample payment page is used.",
52
+ endpoints: paymentEndpoints
53
+ };
54
+ async function buildPaymentUrl(input, runtime = {}) {
55
+ return buildOwnerManagedPaymentUrl(input, runtime);
56
+ }
57
+ async function registerRoutes(fastify, { paymentRuntime = {} } = {}) {
58
+ await fastify.register(paymentAssetRoutes, { paymentRuntime });
59
+ await fastify.register(paymentPageApiRoutes, { paymentRuntime });
60
+ }
61
+ export {
62
+ buildPaymentUrl,
63
+ paymentEndpoints,
64
+ paymentMode,
65
+ paymentModeDescription,
66
+ paymentModeLabel,
67
+ paymentPagePath,
68
+ paymentResponsibilities,
69
+ paymentSessionModel,
70
+ referenceEndpointGroup,
71
+ referenceMode,
72
+ registerRoutes,
73
+ requiredSettings
74
+ };
75
+ //# sourceMappingURL=payment.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/backend/modes/owner-managed/payment.ts"],
4
+ "sourcesContent": ["// @ts-nocheck\nimport { buildPaymentUrl as buildOwnerManagedPaymentUrl } from \"./paymentSession.js\";\nimport paymentAssetRoutes from \"./paymentAssets.js\";\nimport paymentPageApiRoutes from \"./paymentPageApi.js\";\n\nexport const paymentMode = \"owner_managed\";\nexport const referenceMode = \"owner_managed\";\nexport const paymentModeLabel = \"Owner managed\";\nexport const paymentModeDescription =\n \"The owner controls the payment page flow. The packaged sample payment page is the default reference seam for this path.\";\nexport const paymentPagePath = \"/tenant-payment.html\";\nexport const paymentSessionModel = {\n uses_gateway_payment_session: true,\n tenant_owns_payment_page: true,\n tenant_owns_payment_session_endpoints: true,\n tenant_calls_gateway_payment_session_api_directly: true,\n tenant_session_reference: \"tenant page proxies gateway session through /api/tenant-payment/*\",\n};\nexport const requiredSettings = [\n \"XCONECT_GUARD_INGEST_API_KEY\",\n \"XCONECT_TENANT_PAYMENT_URL\",\n \"XCONECT_TENANT_PAYMENT_RETURN_SECRET or XCONECT_TENANT_PAYMENT_RETURN_SECRET_REF\",\n];\nexport const paymentResponsibilities = [\n \"serve the tenant payment page\",\n \"implement tenant payment session endpoints\",\n \"complete/client-settle the hosted gateway session from the tenant page\",\n];\nexport const paymentEndpoints = [\n {\n method: \"GET\",\n path: \"/tenant-payment.html\",\n purpose: \"Serves the tenant-owned payment page.\",\n },\n {\n method: \"GET\",\n path: \"/api/tenant-payment/session\",\n purpose: \"Loads the current hosted gateway session for the tenant page.\",\n },\n {\n method: \"POST\",\n path: \"/api/tenant-payment/complete\",\n purpose: \"Advances the hosted gateway session from the tenant page.\",\n },\n {\n method: \"POST\",\n path: \"/api/tenant-payment/client-settle\",\n purpose: \"Fallback client settlement for the tenant page flow.\",\n },\n];\n\nexport const referenceEndpointGroup = {\n key: \"owner_managed_payment_reference\",\n label: \"Owner-managed payment page reference\",\n when_to_use:\n \"Use this when the owner keeps the owner-managed lane and the packaged sample payment page is used.\",\n endpoints: paymentEndpoints,\n};\n\nexport async function buildPaymentUrl(input, runtime = {}) {\n return buildOwnerManagedPaymentUrl(input, runtime);\n}\n\nexport async function registerRoutes(fastify, { paymentRuntime = {} } = {}) {\n await fastify.register(paymentAssetRoutes, { paymentRuntime });\n await fastify.register(paymentPageApiRoutes, { paymentRuntime });\n}\n"],
5
+ "mappings": "AACA,SAAS,mBAAmB,mCAAmC;AAC/D,OAAO,wBAAwB;AAC/B,OAAO,0BAA0B;AAE1B,MAAM,cAAc;AACpB,MAAM,gBAAgB;AACtB,MAAM,mBAAmB;AACzB,MAAM,yBACX;AACK,MAAM,kBAAkB;AACxB,MAAM,sBAAsB;AAAA,EACjC,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,uCAAuC;AAAA,EACvC,mDAAmD;AAAA,EACnD,0BAA0B;AAC5B;AACO,MAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AACF;AACO,MAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AACF;AACO,MAAM,mBAAmB;AAAA,EAC9B;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF;AAEO,MAAM,yBAAyB;AAAA,EACpC,KAAK;AAAA,EACL,OAAO;AAAA,EACP,aACE;AAAA,EACF,WAAW;AACb;AAEA,eAAsB,gBAAgB,OAAO,UAAU,CAAC,GAAG;AACzD,SAAO,4BAA4B,OAAO,OAAO;AACnD;AAEA,eAAsB,eAAe,SAAS,EAAE,iBAAiB,CAAC,EAAE,IAAI,CAAC,GAAG;AAC1E,QAAM,QAAQ,SAAS,oBAAoB,EAAE,eAAe,CAAC;AAC7D,QAAM,QAAQ,SAAS,sBAAsB,EAAE,eAAe,CAAC;AACjE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,4 @@
1
+ export default function paymentAssetRoutes(fastify: any, { paymentRuntime }?: {
2
+ paymentRuntime?: {};
3
+ }): Promise<void>;
4
+ //# sourceMappingURL=paymentAssets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentAssets.d.ts","sourceRoot":"","sources":["../../../../src/backend/modes/owner-managed/paymentAssets.ts"],"names":[],"mappings":"AAGA,wBAA8B,kBAAkB,CAAC,OAAO,KAAA,EAAE,EAAE,cAAmB,EAAE;;CAAK,iBAKrF"}
@@ -0,0 +1,11 @@
1
+ import { registerPaymentPageAssetRoute } from "../../../index.js";
2
+ async function paymentAssetRoutes(fastify, { paymentRuntime = {} } = {}) {
3
+ await registerPaymentPageAssetRoute(fastify, {
4
+ pagePath: "/tenant-payment.html",
5
+ pageFile: paymentRuntime.paymentPageFile
6
+ });
7
+ }
8
+ export {
9
+ paymentAssetRoutes as default
10
+ };
11
+ //# sourceMappingURL=paymentAssets.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/backend/modes/owner-managed/paymentAssets.ts"],
4
+ "sourcesContent": ["// @ts-nocheck\nimport { registerPaymentPageAssetRoute } from \"../../../index.js\";\n\nexport default async function paymentAssetRoutes(fastify, { paymentRuntime = {} } = {}) {\n await registerPaymentPageAssetRoute(fastify, {\n pagePath: \"/tenant-payment.html\",\n pageFile: paymentRuntime.paymentPageFile,\n });\n}\n"],
5
+ "mappings": "AACA,SAAS,qCAAqC;AAE9C,eAAO,mBAA0C,SAAS,EAAE,iBAAiB,CAAC,EAAE,IAAI,CAAC,GAAG;AACtF,QAAM,8BAA8B,SAAS;AAAA,IAC3C,UAAU;AAAA,IACV,UAAU,eAAe;AAAA,EAC3B,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -0,0 +1,4 @@
1
+ export default function paymentPageApiRoutes(fastify: any, { paymentRuntime }?: {
2
+ paymentRuntime?: {};
3
+ }): Promise<void>;
4
+ //# sourceMappingURL=paymentPageApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentPageApi.d.ts","sourceRoot":"","sources":["../../../../src/backend/modes/owner-managed/paymentPageApi.ts"],"names":[],"mappings":"AAGA,wBAA8B,oBAAoB,CAAC,OAAO,KAAA,EAAE,EAAE,cAAmB,EAAE;;CAAK,iBAKvF"}
@@ -0,0 +1,11 @@
1
+ import { registerPaymentPageApiRoutes } from "../../../index.js";
2
+ async function paymentPageApiRoutes(fastify, { paymentRuntime = {} } = {}) {
3
+ await registerPaymentPageApiRoutes(fastify, {
4
+ gatewayClient: paymentRuntime.gatewayClient || null,
5
+ pathPrefix: "/api/tenant-payment"
6
+ });
7
+ }
8
+ export {
9
+ paymentPageApiRoutes as default
10
+ };
11
+ //# sourceMappingURL=paymentPageApi.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/backend/modes/owner-managed/paymentPageApi.ts"],
4
+ "sourcesContent": ["// @ts-nocheck\nimport { registerPaymentPageApiRoutes } from \"../../../index.js\";\n\nexport default async function paymentPageApiRoutes(fastify, { paymentRuntime = {} } = {}) {\n await registerPaymentPageApiRoutes(fastify, {\n gatewayClient: paymentRuntime.gatewayClient || null,\n pathPrefix: \"/api/tenant-payment\",\n });\n}\n"],
5
+ "mappings": "AACA,SAAS,oCAAoC;AAE7C,eAAO,qBAA4C,SAAS,EAAE,iBAAiB,CAAC,EAAE,IAAI,CAAC,GAAG;AACxF,QAAM,6BAA6B,SAAS;AAAA,IAC1C,eAAe,eAAe,iBAAiB;AAAA,IAC/C,YAAY;AAAA,EACd,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -0,0 +1,4 @@
1
+ import { extractHostedPaymentSessionId } from "../../../index.js";
2
+ export declare function buildPaymentUrl(input: any, runtime?: {}): Promise<string>;
3
+ export { extractHostedPaymentSessionId };
4
+ //# sourceMappingURL=paymentSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentSession.d.ts","sourceRoot":"","sources":["../../../../src/backend/modes/owner-managed/paymentSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEpG,wBAAsB,eAAe,CAAC,KAAK,KAAA,EAAE,OAAO,KAAK,mBAgBxD;AAED,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { buildModeHostedGatewayPaymentUrl, extractHostedPaymentSessionId } from "../../../index.js";
2
+ async function buildPaymentUrl(input, runtime = {}) {
3
+ const ownerIssuer = String(runtime?.paymentSettings?.ownerIssuer || "").trim().toLowerCase() === "publisher" ? "publisher" : "tenant";
4
+ return buildModeHostedGatewayPaymentUrl(
5
+ input,
6
+ {
7
+ fallbackIssuer: ownerIssuer,
8
+ storedIssuer: ownerIssuer,
9
+ allowDefaultSecretFallback: true
10
+ },
11
+ runtime
12
+ );
13
+ }
14
+ export {
15
+ buildPaymentUrl,
16
+ extractHostedPaymentSessionId
17
+ };
18
+ //# sourceMappingURL=paymentSession.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/backend/modes/owner-managed/paymentSession.ts"],
4
+ "sourcesContent": ["// @ts-nocheck\nimport { buildModeHostedGatewayPaymentUrl, extractHostedPaymentSessionId } from \"../../../index.js\";\n\nexport async function buildPaymentUrl(input, runtime = {}) {\n const ownerIssuer =\n String(runtime?.paymentSettings?.ownerIssuer || \"\")\n .trim()\n .toLowerCase() === \"publisher\"\n ? \"publisher\"\n : \"tenant\";\n return buildModeHostedGatewayPaymentUrl(\n input,\n {\n fallbackIssuer: ownerIssuer,\n storedIssuer: ownerIssuer,\n allowDefaultSecretFallback: true,\n },\n runtime,\n );\n}\n\nexport { extractHostedPaymentSessionId };\n"],
5
+ "mappings": "AACA,SAAS,kCAAkC,qCAAqC;AAEhF,eAAsB,gBAAgB,OAAO,UAAU,CAAC,GAAG;AACzD,QAAM,cACJ,OAAO,SAAS,iBAAiB,eAAe,EAAE,EAC/C,KAAK,EACL,YAAY,MAAM,cACjB,cACA;AACN,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,gBAAgB;AAAA,MAChB,cAAc;AAAA,MACd,4BAA4B;AAAA,IAC9B;AAAA,IACA;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,68 @@
1
+ export declare const policyResponsibilities: string[];
2
+ export declare const policyEndpoints: {
3
+ method: string;
4
+ path: string;
5
+ purpose: string;
6
+ }[];
7
+ export declare function buildBlockedResult(input: any, runtime?: {}): Promise<{
8
+ allowed: boolean;
9
+ reason: any;
10
+ message: any;
11
+ action: import("@xapps/server-sdk").PaymentGuardAction;
12
+ details: {
13
+ verification_failure?: any;
14
+ uiRequired: boolean;
15
+ orchestration: {
16
+ reference_mode?: any;
17
+ mode: string;
18
+ surface: string;
19
+ status: string;
20
+ payment_session_id: any;
21
+ payment_mode: any;
22
+ };
23
+ payment_status: any;
24
+ expected_amount: any;
25
+ expected_currency: any;
26
+ };
27
+ }>;
28
+ export declare function resolvePolicyResult(input: any, runtime?: {}): Promise<{
29
+ allowed: boolean;
30
+ reason: string;
31
+ message: string;
32
+ details: {
33
+ reference_mode?: any;
34
+ payment_status: any;
35
+ orchestrationApproved: any;
36
+ gatewayPaymentVerified: any;
37
+ paidByGatewayHint: boolean;
38
+ paidByPlainStatusFallback: boolean;
39
+ paidByVerifiedEvidence: any;
40
+ verified_contract: any;
41
+ payment_mode: any;
42
+ };
43
+ } | {
44
+ allowed: boolean;
45
+ reason: any;
46
+ message: any;
47
+ action: import("@xapps/server-sdk").PaymentGuardAction;
48
+ details: {
49
+ verification_failure?: any;
50
+ uiRequired: boolean;
51
+ orchestration: {
52
+ reference_mode?: any;
53
+ mode: string;
54
+ surface: string;
55
+ status: string;
56
+ payment_session_id: any;
57
+ payment_mode: any;
58
+ };
59
+ payment_status: any;
60
+ expected_amount: any;
61
+ expected_currency: any;
62
+ };
63
+ }>;
64
+ export declare function resolvePolicyRequest(payloadInput: any, { log, paymentRuntime }: {
65
+ log: any;
66
+ paymentRuntime?: {};
67
+ }): Promise<any>;
68
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../../src/backend/modes/owner-managed/policy.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,sBAAsB,UAGlC,CAAC;AACF,eAAO,MAAM,eAAe;;;;GAM3B,CAAC;AAMF,wBAAsB,kBAAkB,CAAC,KAAK,KAAA,EAAE,OAAO,KAAK;;;;;;;;;;;;;;;;;;;;GAM3D;AAED,wBAAsB,mBAAmB,CAAC,KAAK,KAAA,EAAE,OAAO,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAK5D;AAED,wBAAsB,oBAAoB,CAAC,YAAY,KAAA,EAAE,EAAE,GAAG,EAAE,cAAmB,EAAE;;;CAAA,gBASpF"}
@@ -0,0 +1,53 @@
1
+ import { resolveAllowedIssuers, resolveExpectedPaymentIssuer } from "./policyContext.js";
2
+ import {
3
+ buildPaymentPolicyAllowedResult,
4
+ buildPaymentPolicyBlockedResult,
5
+ resolvePolicyRequestCommon
6
+ } from "../../policies/common.js";
7
+ import { extractHostedPaymentSessionId } from "./paymentSession.js";
8
+ import { buildPaymentUrl, paymentMode, referenceMode } from "./payment.js";
9
+ const policyResponsibilities = [
10
+ "verify signed payment evidence for the owner-managed lane",
11
+ "block and return the tenant payment page action when evidence is missing"
12
+ ];
13
+ const policyEndpoints = [
14
+ {
15
+ method: "POST",
16
+ path: "/xapps/requests",
17
+ purpose: "Runs the tenant payment policy for owner-managed xapps."
18
+ }
19
+ ];
20
+ function buildAllowedResult(input) {
21
+ return buildPaymentPolicyAllowedResult(input, { paymentMode, referenceMode });
22
+ }
23
+ async function buildBlockedResult(input, runtime = {}) {
24
+ return buildPaymentPolicyBlockedResult(input, {
25
+ buildPaymentUrl: (payload) => buildPaymentUrl(payload, runtime),
26
+ extractHostedPaymentSessionId,
27
+ modeMeta: { paymentMode, referenceMode }
28
+ });
29
+ }
30
+ async function resolvePolicyResult(input, runtime = {}) {
31
+ if (input.paidByVerifiedEvidence && !input.verificationFailure) {
32
+ return buildAllowedResult(input);
33
+ }
34
+ return buildBlockedResult(input, runtime);
35
+ }
36
+ async function resolvePolicyRequest(payloadInput, { log, paymentRuntime = {} }) {
37
+ return resolvePolicyRequestCommon({
38
+ payloadInput,
39
+ log,
40
+ resolveAllowedIssuers,
41
+ resolveExpectedPaymentIssuer,
42
+ resolveModeResult: resolvePolicyResult,
43
+ paymentRuntime
44
+ });
45
+ }
46
+ export {
47
+ buildBlockedResult,
48
+ policyEndpoints,
49
+ policyResponsibilities,
50
+ resolvePolicyRequest,
51
+ resolvePolicyResult
52
+ };
53
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/backend/modes/owner-managed/policy.ts"],
4
+ "sourcesContent": ["// @ts-nocheck\nimport { resolveAllowedIssuers, resolveExpectedPaymentIssuer } from \"./policyContext.js\";\nimport {\n buildPaymentPolicyAllowedResult,\n buildPaymentPolicyBlockedResult,\n resolvePolicyRequestCommon,\n} from \"../../policies/common.js\";\nimport { extractHostedPaymentSessionId } from \"./paymentSession.js\";\nimport { buildPaymentUrl, paymentMode, referenceMode } from \"./payment.js\";\n\nexport const policyResponsibilities = [\n \"verify signed payment evidence for the owner-managed lane\",\n \"block and return the tenant payment page action when evidence is missing\",\n];\nexport const policyEndpoints = [\n {\n method: \"POST\",\n path: \"/xapps/requests\",\n purpose: \"Runs the tenant payment policy for owner-managed xapps.\",\n },\n];\n\nfunction buildAllowedResult(input) {\n return buildPaymentPolicyAllowedResult(input, { paymentMode, referenceMode });\n}\n\nexport async function buildBlockedResult(input, runtime = {}) {\n return buildPaymentPolicyBlockedResult(input, {\n buildPaymentUrl: (payload) => buildPaymentUrl(payload, runtime),\n extractHostedPaymentSessionId,\n modeMeta: { paymentMode, referenceMode },\n });\n}\n\nexport async function resolvePolicyResult(input, runtime = {}) {\n if (input.paidByVerifiedEvidence && !input.verificationFailure) {\n return buildAllowedResult(input);\n }\n return buildBlockedResult(input, runtime);\n}\n\nexport async function resolvePolicyRequest(payloadInput, { log, paymentRuntime = {} }) {\n return resolvePolicyRequestCommon({\n payloadInput,\n log,\n resolveAllowedIssuers,\n resolveExpectedPaymentIssuer,\n resolveModeResult: resolvePolicyResult,\n paymentRuntime,\n });\n}\n"],
5
+ "mappings": "AACA,SAAS,uBAAuB,oCAAoC;AACpE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,qCAAqC;AAC9C,SAAS,iBAAiB,aAAa,qBAAqB;AAErD,MAAM,yBAAyB;AAAA,EACpC;AAAA,EACA;AACF;AACO,MAAM,kBAAkB;AAAA,EAC7B;AAAA,IACE,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF;AAEA,SAAS,mBAAmB,OAAO;AACjC,SAAO,gCAAgC,OAAO,EAAE,aAAa,cAAc,CAAC;AAC9E;AAEA,eAAsB,mBAAmB,OAAO,UAAU,CAAC,GAAG;AAC5D,SAAO,gCAAgC,OAAO;AAAA,IAC5C,iBAAiB,CAAC,YAAY,gBAAgB,SAAS,OAAO;AAAA,IAC9D;AAAA,IACA,UAAU,EAAE,aAAa,cAAc;AAAA,EACzC,CAAC;AACH;AAEA,eAAsB,oBAAoB,OAAO,UAAU,CAAC,GAAG;AAC7D,MAAI,MAAM,0BAA0B,CAAC,MAAM,qBAAqB;AAC9D,WAAO,mBAAmB,KAAK;AAAA,EACjC;AACA,SAAO,mBAAmB,OAAO,OAAO;AAC1C;AAEA,eAAsB,qBAAqB,cAAc,EAAE,KAAK,iBAAiB,CAAC,EAAE,GAAG;AACrF,SAAO,2BAA2B;AAAA,IAChC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,IACnB;AAAA,EACF,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -0,0 +1,5 @@
1
+ import { buildPaymentAction, hasUpstreamPaymentVerified, resolveMergedContext, resolvePriceAmount } from "../../policies/common.js";
2
+ export { buildPaymentAction, hasUpstreamPaymentVerified, resolveMergedContext, resolvePriceAmount };
3
+ export declare function resolveExpectedPaymentIssuer(_guardConfig: any, paymentSettings?: {}): "tenant" | "publisher";
4
+ export declare function resolveAllowedIssuers(guardConfig: any, paymentSettings?: {}): string[];
5
+ //# sourceMappingURL=policyContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policyContext.d.ts","sourceRoot":"","sources":["../../../../src/backend/modes/owner-managed/policyContext.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAE1B,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;AASpG,wBAAgB,4BAA4B,CAAC,YAAY,KAAA,EAAE,eAAe,KAAK,0BAE9E;AAED,wBAAgB,qBAAqB,CAAC,WAAW,KAAA,EAAE,eAAe,KAAK,YAEtE"}
@@ -0,0 +1,26 @@
1
+ import {
2
+ buildPaymentAction,
3
+ hasUpstreamPaymentVerified,
4
+ normalizeAllowedIssuers,
5
+ resolveMergedContext,
6
+ resolvePriceAmount
7
+ } from "../../policies/common.js";
8
+ function readOwnerIssuer(paymentSettings) {
9
+ const raw = String(paymentSettings?.ownerIssuer || "").trim().toLowerCase();
10
+ return raw === "publisher" ? "publisher" : "tenant";
11
+ }
12
+ function resolveExpectedPaymentIssuer(_guardConfig, paymentSettings = {}) {
13
+ return readOwnerIssuer(paymentSettings);
14
+ }
15
+ function resolveAllowedIssuers(guardConfig, paymentSettings = {}) {
16
+ return normalizeAllowedIssuers(guardConfig, readOwnerIssuer(paymentSettings));
17
+ }
18
+ export {
19
+ buildPaymentAction,
20
+ hasUpstreamPaymentVerified,
21
+ resolveAllowedIssuers,
22
+ resolveExpectedPaymentIssuer,
23
+ resolveMergedContext,
24
+ resolvePriceAmount
25
+ };
26
+ //# sourceMappingURL=policyContext.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/backend/modes/owner-managed/policyContext.ts"],
4
+ "sourcesContent": ["// @ts-nocheck\nimport {\n buildPaymentAction,\n hasUpstreamPaymentVerified,\n normalizeAllowedIssuers,\n resolveMergedContext,\n resolvePriceAmount,\n} from \"../../policies/common.js\";\n\nexport { buildPaymentAction, hasUpstreamPaymentVerified, resolveMergedContext, resolvePriceAmount };\n\nfunction readOwnerIssuer(paymentSettings) {\n const raw = String(paymentSettings?.ownerIssuer || \"\")\n .trim()\n .toLowerCase();\n return raw === \"publisher\" ? \"publisher\" : \"tenant\";\n}\n\nexport function resolveExpectedPaymentIssuer(_guardConfig, paymentSettings = {}) {\n return readOwnerIssuer(paymentSettings);\n}\n\nexport function resolveAllowedIssuers(guardConfig, paymentSettings = {}) {\n return normalizeAllowedIssuers(guardConfig, readOwnerIssuer(paymentSettings));\n}\n"],
5
+ "mappings": "AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP,SAAS,gBAAgB,iBAAiB;AACxC,QAAM,MAAM,OAAO,iBAAiB,eAAe,EAAE,EAClD,KAAK,EACL,YAAY;AACf,SAAO,QAAQ,cAAc,cAAc;AAC7C;AAEO,SAAS,6BAA6B,cAAc,kBAAkB,CAAC,GAAG;AAC/E,SAAO,gBAAgB,eAAe;AACxC;AAEO,SAAS,sBAAsB,aAAa,kBAAkB,CAAC,GAAG;AACvE,SAAO,wBAAwB,aAAa,gBAAgB,eAAe,CAAC;AAC9E;",
6
+ "names": []
7
+ }
@@ -0,0 +1,23 @@
1
+ export declare const paymentMode = "publisher_delegated";
2
+ export declare const paymentModeLabel = "Gateway delegated by publisher";
3
+ export declare const paymentModeDescription = "Gateway executes checkout with publisher-scoped delegated credentials and delegated signing.";
4
+ export declare const paymentSessionModel: {
5
+ uses_gateway_payment_session: boolean;
6
+ tenant_owns_payment_page: boolean;
7
+ tenant_owns_payment_session_endpoints: boolean;
8
+ tenant_calls_gateway_payment_session_api_directly: boolean;
9
+ tenant_session_reference: string;
10
+ };
11
+ export declare const requiredSettings: string[];
12
+ export declare const paymentResponsibilities: string[];
13
+ export declare const paymentEndpoints: any[];
14
+ export declare const referenceEndpointGroup: {
15
+ key: string;
16
+ label: string;
17
+ when_to_use: string;
18
+ endpoints: any[];
19
+ notes: string[];
20
+ };
21
+ export declare function buildPaymentUrl(input: any, runtime?: {}): Promise<string>;
22
+ export declare function registerRoutes(): Promise<void>;
23
+ //# sourceMappingURL=payment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../../src/backend/modes/publisher-delegated/payment.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AACjE,eAAO,MAAM,sBAAsB,iGAC6D,CAAC;AACjG,eAAO,MAAM,mBAAmB;;;;;;CAM/B,CAAC;AACF,eAAO,MAAM,gBAAgB,UAI5B,CAAC;AACF,eAAO,MAAM,uBAAuB,UAInC,CAAC;AACF,eAAO,MAAM,gBAAgB,OAAK,CAAC;AAEnC,eAAO,MAAM,sBAAsB;;;;;;CAUlC,CAAC;AAEF,wBAAsB,eAAe,CAAC,KAAK,KAAA,EAAE,OAAO,KAAK,mBAExD;AAED,wBAAsB,cAAc,kBAAK"}