@xapps-platform/backend-kit 0.1.3 → 0.1.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/backend/policies/common.ts"],"names":[],"mappings":"AAqBA,wBAAgB,0BAA0B,CAAC,KAAK,KAAA,WAE/C;AAED,wBAAgB,oBAAoB,CAAC,YAAY,KAAA,2BAEhD;AAED,wBAAgB,kBAAkB,CAAC,WAAW,KAAA,EAAE,OAAO,KAAA,WAEtD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,KAAA,2DAExC;AAED,wBAAgB,uBAAuB,CAAC,WAAW,KAAA,EAAE,cAAc,KAAA,YAElE;AAED,wBAAgB,+BAA+B,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAK;;;;;;;;;;;;;;;EAiBnE;AAED,wBAAgB,iCAAiC,CAAC,cAAc,KAAA;;;;;;;;;;;;;;;;;;EAoB/D;AAED,wBAAsB,+BAA+B,CACnD,KAAK,KAAA,EACL,EAAE,eAAe,EAAE,6BAA6B,EAAE,QAAa,EAAE;;;;CAAA;;;;;;;;;;;;;;;;;;;;GAgClE;AAED,wBAAsB,uBAAuB,CAAC,EAC5C,YAAY,EACZ,GAAG,EACH,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,EACd,cAAmB,EACnB,eAAoB,EACpB,gBAA0C,GAC3C;;;;;;;;;CAAA;;;;;;;;;;;;;;;;;GAsHA;AAED,wBAAsB,0BAA0B,CAAC,EAC/C,YAAY,EACZ,GAAG,EACH,qBAAqB,EACrB,4BAA4B,EAC5B,iBAAiB,EACjB,cAAmB,EACnB,gBAAgB,GACjB;;;;;;;;CAAA,gBAYA"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/backend/policies/common.ts"],"names":[],"mappings":"AAsBA,wBAAgB,0BAA0B,CAAC,KAAK,KAAA,WAE/C;AAED,wBAAgB,oBAAoB,CAAC,YAAY,KAAA,2BAEhD;AAED,wBAAgB,kBAAkB,CAAC,WAAW,KAAA,EAAE,OAAO,KAAA,WAEtD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,KAAA,2DAExC;AAED,wBAAgB,uBAAuB,CAAC,WAAW,KAAA,EAAE,cAAc,KAAA,YAElE;AAED,wBAAgB,+BAA+B,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAK;;;;;;;;;;;;;;;EAiBnE;AAED,wBAAgB,iCAAiC,CAAC,cAAc,KAAA;;;;;;;;;;;;;;;;;;EAoB/D;AAED,wBAAsB,+BAA+B,CACnD,KAAK,KAAA,EACL,EAAE,eAAe,EAAE,6BAA6B,EAAE,QAAa,EAAE;;;;CAAA;;;;;;;;;;;;;;;;;;;;GAgClE;AAED,wBAAsB,uBAAuB,CAAC,EAC5C,YAAY,EACZ,GAAG,EACH,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,EACd,cAAmB,EACnB,eAAoB,EACpB,gBAA0C,GAC3C;;;;;;;;;CAAA;;;;;;;;;;;;;;;;;GAyHA;AAED,wBAAsB,0BAA0B,CAAC,EAC/C,YAAY,EACZ,GAAG,EACH,qBAAqB,EACrB,4BAA4B,EAC5B,iBAAiB,EACjB,cAAmB,EACnB,gBAAgB,GACjB;;;;;;;;CAAA,gBAYA"}
@@ -2,6 +2,7 @@ import {
2
2
  buildPaymentGuardAction,
3
3
  hasUpstreamPaymentVerified as hasUpstreamPaymentVerifiedFromSdk,
4
4
  normalizePaymentAllowedIssuers as normalizePaymentAllowedIssuersFromSdk,
5
+ resolveManifestLocalizedText,
5
6
  resolveMergedPaymentGuardContext,
6
7
  resolvePaymentGuardPriceAmount
7
8
  } from "@xapps-platform/server-sdk";
@@ -169,7 +170,8 @@ async function buildPaymentPolicyInput({
169
170
  );
170
171
  }
171
172
  const baseReason = String(policy.reason || "payment_required").trim() || "payment_required";
172
- const baseMessage = String(policy.message || "Payment is required before continuing.").trim();
173
+ const locale = String(context.locale || payload.locale || "en").trim() || "en";
174
+ const baseMessage = resolveManifestLocalizedText(policy.message, locale) || "Payment is required before continuing.";
173
175
  const failReason = verificationFailure?.ok === false ? verificationFailure.reason : baseReason;
174
176
  return {
175
177
  payload: payloadWithContext,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/backend/policies/common.ts"],
4
- "sourcesContent": ["// @ts-nocheck\nimport {\n buildPaymentGuardAction,\n hasUpstreamPaymentVerified as hasUpstreamPaymentVerifiedFromSdk,\n normalizePaymentAllowedIssuers as normalizePaymentAllowedIssuersFromSdk,\n resolveMergedPaymentGuardContext,\n resolvePaymentGuardPriceAmount,\n} from \"@xapps-platform/server-sdk\";\n\nfunction asObject(value) {\n return value && typeof value === \"object\" && !Array.isArray(value) ? value : {};\n}\n\nfunction toNumericAmount(amount) {\n if (typeof amount === \"number\") return amount;\n if (typeof amount === \"string\" && amount.trim() && Number.isFinite(Number(amount))) {\n return Number(amount);\n }\n return amount;\n}\n\nexport function hasUpstreamPaymentVerified(value) {\n return hasUpstreamPaymentVerifiedFromSdk(value);\n}\n\nexport function resolveMergedContext(payloadInput) {\n return resolveMergedPaymentGuardContext(asObject(payloadInput));\n}\n\nexport function resolvePriceAmount(guardConfig, context) {\n return resolvePaymentGuardPriceAmount(asObject(guardConfig), asObject(context));\n}\n\nexport function buildPaymentAction(action) {\n return buildPaymentGuardAction(asObject(action));\n}\n\nexport function normalizeAllowedIssuers(guardConfig, fallbackIssuer) {\n return normalizePaymentAllowedIssuersFromSdk(asObject(guardConfig), String(fallbackIssuer || \"\"));\n}\n\nexport function buildPaymentPolicyAllowedResult(input, modeMeta = {}) {\n return {\n allowed: true,\n reason: String(input.policy?.reason || \"tenant_payment_passed\"),\n message: \"Tenant payment policy satisfied\",\n details: {\n payment_status: input.verifiedPayment?.status || input.plainStatus || \"paid\",\n orchestrationApproved: input.orchestrationApproved,\n gatewayPaymentVerified: input.gatewayPaymentVerified,\n paidByGatewayHint: false,\n paidByPlainStatusFallback: false,\n paidByVerifiedEvidence: input.paidByVerifiedEvidence,\n verified_contract: input.verifiedPayment?.contract || null,\n payment_mode: modeMeta.paymentMode || null,\n ...(modeMeta.referenceMode ? { reference_mode: modeMeta.referenceMode } : {}),\n },\n };\n}\n\nexport function buildPaymentGuardFailClosedResult(upstreamStatus) {\n return {\n allowed: false,\n reason: \"payment_session_create_failed\",\n message: \"Payment session could not be created at this time\",\n action: {\n kind: \"complete_payment\",\n label: \"Open Payment\",\n title: \"Complete Payment\",\n },\n details: {\n uiRequired: true,\n orchestration: {\n mode: \"blocking\",\n surface: \"redirect\",\n status: \"failed_dependency\",\n },\n upstream_status: Number(upstreamStatus || 500) || 500,\n },\n };\n}\n\nexport async function buildPaymentPolicyBlockedResult(\n input,\n { buildPaymentUrl, extractHostedPaymentSessionId, modeMeta = {} },\n) {\n const paymentUrl = await buildPaymentUrl(input);\n return {\n allowed: false,\n reason: input.failReason,\n message:\n input.verificationFailure?.ok === false ? \"Payment verification failed\" : input.baseMessage,\n action: buildPaymentAction({\n url: paymentUrl,\n label: input.actionCfg?.label,\n title: input.actionCfg?.title,\n target: input.actionCfg?.target,\n }),\n details: {\n uiRequired: true,\n orchestration: {\n mode: \"blocking\",\n surface: String(input.guardConfig?.ui_mode || \"redirect\"),\n status: \"pending_user_action\",\n payment_session_id: extractHostedPaymentSessionId(paymentUrl),\n payment_mode: modeMeta.paymentMode || null,\n ...(modeMeta.referenceMode ? { reference_mode: modeMeta.referenceMode } : {}),\n },\n payment_status: input.plainStatus || null,\n expected_amount: toNumericAmount(input.amount),\n expected_currency: input.currency,\n ...(input.verificationFailure?.ok === false\n ? { verification_failure: input.verificationFailure }\n : {}),\n },\n };\n}\n\nexport async function buildPaymentPolicyInput({\n payloadInput,\n log,\n resolveAllowedIssuers,\n resolveExpectedPaymentIssuer,\n paymentHandler,\n paymentRuntime = {},\n paymentSettings = {},\n guardSlugDefault = \"tenant-payment-policy\",\n}) {\n const payload = payloadInput && typeof payloadInput === \"object\" ? payloadInput : {};\n const context = resolveMergedContext(payload);\n const policyContext = asObject(payload.policyContext);\n const payloadWithContext = { ...payload, context };\n const guard = payload.guard && typeof payload.guard === \"object\" ? payload.guard : {};\n const guardConfig = guard.config && typeof guard.config === \"object\" ? guard.config : {};\n const policy =\n guardConfig.policy && typeof guardConfig.policy === \"object\" ? guardConfig.policy : {};\n const actionCfg =\n guardConfig.action && typeof guardConfig.action === \"object\" ? guardConfig.action : {};\n const guardSlug = String(guard.slug || guardSlugDefault).trim();\n const orchestration =\n context.orchestration && typeof context.orchestration === \"object\" ? context.orchestration : {};\n const orchestrationEntry =\n orchestration[guardSlug] && typeof orchestration[guardSlug] === \"object\"\n ? orchestration[guardSlug]\n : {};\n const orchestrationPayment =\n orchestrationEntry.payment && typeof orchestrationEntry.payment === \"object\"\n ? orchestrationEntry.payment\n : null;\n\n const allowOrchestrationBypassConfigured = Boolean(\n guardConfig.allow_orchestration_bypass ?? guardConfig.allowOrchestrationBypass,\n );\n if (allowOrchestrationBypassConfigured) {\n log.warn(\"Ignoring allow_orchestration_bypass in canonical payment verification mode.\");\n }\n const orchestrationApproved = false;\n\n const amount = resolvePriceAmount(guardConfig, context);\n const currency = String(guardConfig?.pricing?.currency || guardConfig.currency || \"USD\")\n .trim()\n .toUpperCase();\n const settings = asObject(paymentSettings);\n const allowedIssuers = resolveAllowedIssuers(guardConfig, settings, paymentRuntime);\n const expectedIssuer =\n allowedIssuers[0] || resolveExpectedPaymentIssuer(guardConfig, settings, paymentRuntime);\n const plainStatus = String(payload.payment_status || payload?.payment?.status || \"\")\n .trim()\n .toLowerCase();\n const gatewayPaymentVerified =\n hasUpstreamPaymentVerified(payload.payment_verified) ||\n hasUpstreamPaymentVerified(payload.paymentVerified) ||\n hasUpstreamPaymentVerified(policyContext.payment_verified) ||\n hasUpstreamPaymentVerified(policyContext.paymentVerified);\n let verifiedPayment = null;\n let verificationFailure = null;\n\n const hasVerificationSecret =\n String(settings.returnSecret || \"\").trim().length > 0 ||\n String(settings.returnSecretRef || \"\").trim().length > 0 ||\n Boolean(paymentHandler && typeof paymentHandler.handleVerifyEvidence === \"function\");\n\n if (\n gatewayPaymentVerified &&\n orchestrationPayment &&\n String(orchestrationPayment.status || \"\")\n .trim()\n .toLowerCase() === \"paid\"\n ) {\n verifiedPayment = orchestrationPayment;\n } else if (hasVerificationSecret && paymentHandler?.handleVerifyEvidence) {\n const verificationPayload = orchestrationPayment\n ? { ...payloadWithContext, ...(orchestrationPayment || {}) }\n : payloadWithContext;\n const verifyResult = await paymentHandler.handleVerifyEvidence({\n payload: verificationPayload,\n maxAgeSeconds: Number(guardConfig.payment_return_max_age_s || 900) || 900,\n expected: {\n issuer: expectedIssuer,\n issuers: allowedIssuers,\n amount,\n currency,\n xapp_id: String(context.xappId || context.xapp_id || \"\") || undefined,\n tool_name: String(context.toolName || context.tool_name || \"\") || undefined,\n subject_id: String(context.subjectId || context.subject_id || \"\") || undefined,\n installation_id:\n String(context.installationId || context.installation_id || \"\") || undefined,\n client_id: String(context.clientId || context.client_id || \"\") || undefined,\n },\n });\n if (verifyResult.ok) {\n verifiedPayment = verifyResult.evidence;\n } else if (verifyResult.reason !== \"payment_evidence_not_found\") {\n verificationFailure = verifyResult;\n }\n }\n\n const paidByVerifiedEvidence = Boolean(verifiedPayment);\n if (!hasVerificationSecret) {\n log.warn(\n \"Payment guard verification secret/secret_ref is not configured; canonical mode is fail-closed.\",\n );\n }\n\n const baseReason = String(policy.reason || \"payment_required\").trim() || \"payment_required\";\n const baseMessage = String(policy.message || \"Payment is required before continuing.\").trim();\n const failReason = verificationFailure?.ok === false ? verificationFailure.reason : baseReason;\n return {\n payload: payloadWithContext,\n context,\n guard,\n guardConfig,\n policy,\n amount,\n currency,\n plainStatus,\n orchestrationApproved,\n gatewayPaymentVerified,\n verifiedPayment,\n paidByVerifiedEvidence,\n verificationFailure,\n failReason,\n baseMessage,\n actionCfg,\n };\n}\n\nexport async function resolvePolicyRequestCommon({\n payloadInput,\n log,\n resolveAllowedIssuers,\n resolveExpectedPaymentIssuer,\n resolveModeResult,\n paymentRuntime = {},\n guardSlugDefault,\n}) {\n const input = await buildPaymentPolicyInput({\n payloadInput,\n log,\n resolveAllowedIssuers,\n resolveExpectedPaymentIssuer,\n paymentHandler: paymentRuntime.paymentHandler,\n paymentRuntime,\n paymentSettings: paymentRuntime.paymentSettings,\n guardSlugDefault,\n });\n return resolveModeResult(input, paymentRuntime);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// @ts-nocheck\nimport {\n buildPaymentGuardAction,\n hasUpstreamPaymentVerified as hasUpstreamPaymentVerifiedFromSdk,\n normalizePaymentAllowedIssuers as normalizePaymentAllowedIssuersFromSdk,\n resolveManifestLocalizedText,\n resolveMergedPaymentGuardContext,\n resolvePaymentGuardPriceAmount,\n} from \"@xapps-platform/server-sdk\";\n\nfunction asObject(value) {\n return value && typeof value === \"object\" && !Array.isArray(value) ? value : {};\n}\n\nfunction toNumericAmount(amount) {\n if (typeof amount === \"number\") return amount;\n if (typeof amount === \"string\" && amount.trim() && Number.isFinite(Number(amount))) {\n return Number(amount);\n }\n return amount;\n}\n\nexport function hasUpstreamPaymentVerified(value) {\n return hasUpstreamPaymentVerifiedFromSdk(value);\n}\n\nexport function resolveMergedContext(payloadInput) {\n return resolveMergedPaymentGuardContext(asObject(payloadInput));\n}\n\nexport function resolvePriceAmount(guardConfig, context) {\n return resolvePaymentGuardPriceAmount(asObject(guardConfig), asObject(context));\n}\n\nexport function buildPaymentAction(action) {\n return buildPaymentGuardAction(asObject(action));\n}\n\nexport function normalizeAllowedIssuers(guardConfig, fallbackIssuer) {\n return normalizePaymentAllowedIssuersFromSdk(asObject(guardConfig), String(fallbackIssuer || \"\"));\n}\n\nexport function buildPaymentPolicyAllowedResult(input, modeMeta = {}) {\n return {\n allowed: true,\n reason: String(input.policy?.reason || \"tenant_payment_passed\"),\n message: \"Tenant payment policy satisfied\",\n details: {\n payment_status: input.verifiedPayment?.status || input.plainStatus || \"paid\",\n orchestrationApproved: input.orchestrationApproved,\n gatewayPaymentVerified: input.gatewayPaymentVerified,\n paidByGatewayHint: false,\n paidByPlainStatusFallback: false,\n paidByVerifiedEvidence: input.paidByVerifiedEvidence,\n verified_contract: input.verifiedPayment?.contract || null,\n payment_mode: modeMeta.paymentMode || null,\n ...(modeMeta.referenceMode ? { reference_mode: modeMeta.referenceMode } : {}),\n },\n };\n}\n\nexport function buildPaymentGuardFailClosedResult(upstreamStatus) {\n return {\n allowed: false,\n reason: \"payment_session_create_failed\",\n message: \"Payment session could not be created at this time\",\n action: {\n kind: \"complete_payment\",\n label: \"Open Payment\",\n title: \"Complete Payment\",\n },\n details: {\n uiRequired: true,\n orchestration: {\n mode: \"blocking\",\n surface: \"redirect\",\n status: \"failed_dependency\",\n },\n upstream_status: Number(upstreamStatus || 500) || 500,\n },\n };\n}\n\nexport async function buildPaymentPolicyBlockedResult(\n input,\n { buildPaymentUrl, extractHostedPaymentSessionId, modeMeta = {} },\n) {\n const paymentUrl = await buildPaymentUrl(input);\n return {\n allowed: false,\n reason: input.failReason,\n message:\n input.verificationFailure?.ok === false ? \"Payment verification failed\" : input.baseMessage,\n action: buildPaymentAction({\n url: paymentUrl,\n label: input.actionCfg?.label,\n title: input.actionCfg?.title,\n target: input.actionCfg?.target,\n }),\n details: {\n uiRequired: true,\n orchestration: {\n mode: \"blocking\",\n surface: String(input.guardConfig?.ui_mode || \"redirect\"),\n status: \"pending_user_action\",\n payment_session_id: extractHostedPaymentSessionId(paymentUrl),\n payment_mode: modeMeta.paymentMode || null,\n ...(modeMeta.referenceMode ? { reference_mode: modeMeta.referenceMode } : {}),\n },\n payment_status: input.plainStatus || null,\n expected_amount: toNumericAmount(input.amount),\n expected_currency: input.currency,\n ...(input.verificationFailure?.ok === false\n ? { verification_failure: input.verificationFailure }\n : {}),\n },\n };\n}\n\nexport async function buildPaymentPolicyInput({\n payloadInput,\n log,\n resolveAllowedIssuers,\n resolveExpectedPaymentIssuer,\n paymentHandler,\n paymentRuntime = {},\n paymentSettings = {},\n guardSlugDefault = \"tenant-payment-policy\",\n}) {\n const payload = payloadInput && typeof payloadInput === \"object\" ? payloadInput : {};\n const context = resolveMergedContext(payload);\n const policyContext = asObject(payload.policyContext);\n const payloadWithContext = { ...payload, context };\n const guard = payload.guard && typeof payload.guard === \"object\" ? payload.guard : {};\n const guardConfig = guard.config && typeof guard.config === \"object\" ? guard.config : {};\n const policy =\n guardConfig.policy && typeof guardConfig.policy === \"object\" ? guardConfig.policy : {};\n const actionCfg =\n guardConfig.action && typeof guardConfig.action === \"object\" ? guardConfig.action : {};\n const guardSlug = String(guard.slug || guardSlugDefault).trim();\n const orchestration =\n context.orchestration && typeof context.orchestration === \"object\" ? context.orchestration : {};\n const orchestrationEntry =\n orchestration[guardSlug] && typeof orchestration[guardSlug] === \"object\"\n ? orchestration[guardSlug]\n : {};\n const orchestrationPayment =\n orchestrationEntry.payment && typeof orchestrationEntry.payment === \"object\"\n ? orchestrationEntry.payment\n : null;\n\n const allowOrchestrationBypassConfigured = Boolean(\n guardConfig.allow_orchestration_bypass ?? guardConfig.allowOrchestrationBypass,\n );\n if (allowOrchestrationBypassConfigured) {\n log.warn(\"Ignoring allow_orchestration_bypass in canonical payment verification mode.\");\n }\n const orchestrationApproved = false;\n\n const amount = resolvePriceAmount(guardConfig, context);\n const currency = String(guardConfig?.pricing?.currency || guardConfig.currency || \"USD\")\n .trim()\n .toUpperCase();\n const settings = asObject(paymentSettings);\n const allowedIssuers = resolveAllowedIssuers(guardConfig, settings, paymentRuntime);\n const expectedIssuer =\n allowedIssuers[0] || resolveExpectedPaymentIssuer(guardConfig, settings, paymentRuntime);\n const plainStatus = String(payload.payment_status || payload?.payment?.status || \"\")\n .trim()\n .toLowerCase();\n const gatewayPaymentVerified =\n hasUpstreamPaymentVerified(payload.payment_verified) ||\n hasUpstreamPaymentVerified(payload.paymentVerified) ||\n hasUpstreamPaymentVerified(policyContext.payment_verified) ||\n hasUpstreamPaymentVerified(policyContext.paymentVerified);\n let verifiedPayment = null;\n let verificationFailure = null;\n\n const hasVerificationSecret =\n String(settings.returnSecret || \"\").trim().length > 0 ||\n String(settings.returnSecretRef || \"\").trim().length > 0 ||\n Boolean(paymentHandler && typeof paymentHandler.handleVerifyEvidence === \"function\");\n\n if (\n gatewayPaymentVerified &&\n orchestrationPayment &&\n String(orchestrationPayment.status || \"\")\n .trim()\n .toLowerCase() === \"paid\"\n ) {\n verifiedPayment = orchestrationPayment;\n } else if (hasVerificationSecret && paymentHandler?.handleVerifyEvidence) {\n const verificationPayload = orchestrationPayment\n ? { ...payloadWithContext, ...(orchestrationPayment || {}) }\n : payloadWithContext;\n const verifyResult = await paymentHandler.handleVerifyEvidence({\n payload: verificationPayload,\n maxAgeSeconds: Number(guardConfig.payment_return_max_age_s || 900) || 900,\n expected: {\n issuer: expectedIssuer,\n issuers: allowedIssuers,\n amount,\n currency,\n xapp_id: String(context.xappId || context.xapp_id || \"\") || undefined,\n tool_name: String(context.toolName || context.tool_name || \"\") || undefined,\n subject_id: String(context.subjectId || context.subject_id || \"\") || undefined,\n installation_id:\n String(context.installationId || context.installation_id || \"\") || undefined,\n client_id: String(context.clientId || context.client_id || \"\") || undefined,\n },\n });\n if (verifyResult.ok) {\n verifiedPayment = verifyResult.evidence;\n } else if (verifyResult.reason !== \"payment_evidence_not_found\") {\n verificationFailure = verifyResult;\n }\n }\n\n const paidByVerifiedEvidence = Boolean(verifiedPayment);\n if (!hasVerificationSecret) {\n log.warn(\n \"Payment guard verification secret/secret_ref is not configured; canonical mode is fail-closed.\",\n );\n }\n\n const baseReason = String(policy.reason || \"payment_required\").trim() || \"payment_required\";\n const locale = String(context.locale || payload.locale || \"en\").trim() || \"en\";\n const baseMessage =\n resolveManifestLocalizedText(policy.message, locale) ||\n \"Payment is required before continuing.\";\n const failReason = verificationFailure?.ok === false ? verificationFailure.reason : baseReason;\n return {\n payload: payloadWithContext,\n context,\n guard,\n guardConfig,\n policy,\n amount,\n currency,\n plainStatus,\n orchestrationApproved,\n gatewayPaymentVerified,\n verifiedPayment,\n paidByVerifiedEvidence,\n verificationFailure,\n failReason,\n baseMessage,\n actionCfg,\n };\n}\n\nexport async function resolvePolicyRequestCommon({\n payloadInput,\n log,\n resolveAllowedIssuers,\n resolveExpectedPaymentIssuer,\n resolveModeResult,\n paymentRuntime = {},\n guardSlugDefault,\n}) {\n const input = await buildPaymentPolicyInput({\n payloadInput,\n log,\n resolveAllowedIssuers,\n resolveExpectedPaymentIssuer,\n paymentHandler: paymentRuntime.paymentHandler,\n paymentRuntime,\n paymentSettings: paymentRuntime.paymentSettings,\n guardSlugDefault,\n });\n return resolveModeResult(input, paymentRuntime);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xapps-platform/backend-kit",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "license": "MIT",
5
5
  "author": "Daniel Vladescu <daniel.vladescu@gmail.com>",
6
6
  "description": "Modular Node backend kit for the current Xapps backend contract (tenant surface today, shared actor-adapter direction later)",