@arcblock/payment-service 1.29.7 → 1.29.8

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.
package/dist/index.d.ts CHANGED
@@ -166,3 +166,20 @@ export declare function createEmbeddedIdentityServices(): {
166
166
  directory(): any;
167
167
  };
168
168
  export declare function createEmbeddedPaymentService(slots: PaymentCoreSlots): PaymentCoreService;
169
+ /** The reserved mount prefix for the embedded payment service. */
170
+ export declare const PAYMENT_PREFIX = "/.well-known/payment";
171
+ /** The caller identity the host resolved (injected as `x-user-*`; no in-process login_token verify). */
172
+ export interface HostCallerIdentity {
173
+ did: string;
174
+ role?: string;
175
+ authMethod?: string;
176
+ displayName?: string;
177
+ }
178
+ /**
179
+ * Strip client-forged `x-user-*` and inject the host-resolved caller (raw role —
180
+ * the core strips any `blocklet-` prefix itself). See the core module for the
181
+ * full rationale.
182
+ */
183
+ export declare function injectCaller(headers: Headers, caller: HostCallerIdentity | null): void;
184
+ /** Build a lazy per-tenant provisioner with in-flight dedup (null tenant = no-op). */
185
+ export declare function createTenantProvisioner(provision: (instanceDid: string) => Promise<void>): (instanceDid: string | null) => Promise<void>;
package/dist/index.js CHANGED
@@ -360,7 +360,6 @@ __export(env_exports, {
360
360
  creditConsumptionCronTime: () => creditConsumptionCronTime,
361
361
  creditLowBalanceThresholdPercentage: () => creditLowBalanceThresholdPercentage,
362
362
  creditQueueConcurrency: () => creditQueueConcurrency,
363
- daysUntilCancel: () => daysUntilCancel,
364
363
  default: () => env_default,
365
364
  depositVaultCronTime: () => depositVaultCronTime,
366
365
  enableDevFakeAuth: () => enableDevFakeAuth,
@@ -437,7 +436,7 @@ function hasConfig(key) {
437
436
  const v = readConfig(key);
438
437
  return v !== void 0 && v !== "";
439
438
  }
440
- var import_env, activeConfig, numConfig, paymentStatCronTime, subscriptionCronTime, notificationCronTime, expiredSessionCleanupCronTime, notificationCronConcurrency, stripeInvoiceCronTime, stripePaymentCronTime, stripeSubscriptionCronTime, revokeStakeCronTime, daysUntilCancel, meteringSubscriptionDetectionCronTime, overdueDetectionCronTime, overdueThreshold, depositVaultCronTime, creditConsumptionCronTime, vendorStatusCheckCronTime, vendorReturnScanCronTime, iapReconcileCronTime, eventRetryCronTime, quoteCleanupCronTime, vendorTimeoutMinutes, webhookAlertWindowMinutes, webhookAlertMinFailures, shortUrlApiKey, shortUrlDomain, sequelizeOptionsPoolMin, sequelizeOptionsPoolMax, sequelizeOptionsPoolIdle, updateDataConcurrency, stopAcceptingOrders, exchangeRateCacheTTLSeconds, systemMaxPendingAmount, allowChangeLockedPrice, blockletMode, isProduction, nodeEnv, isTestEnv, isDevelopmentEnv, enableDevFakeAuth, tenantModeRaw, blockletAppPid, blockletAppId, blockletAppName, blockletAppUrl, blockletAppHost, blockletAppDir, blockletPort, blockletMountPoints, appStoreWriteEnabled, appStoreSkipSignatureVerify, googlePubsubSkipSignatureVerify, googlePubsubPushServiceAccount, googlePubsubAllowUnverifiedSender, googlePlayWebhookUrl, stripeWebhookSecret, iapReconcileBatchSize, paymentBillingThreshold, paymentMinStakeAmount, paymentDaysUntilDue, paymentDaysUntilCancel, paymentReloadSubscriptionJobs, paymentRateVolatilityThreshold, paymentLivemode, creditLowBalanceThresholdPercentage, creditBatchSize, creditBatchWindowMs, creditQueueConcurrency, exchangeRateCacheTTLFromEnv, sqlLog, sqlBenchmark, cfEnv, isCfWorker, isBlockletServer, env_default;
439
+ var import_env, activeConfig, numConfig, TRUTHY, FALSY, parseBool, readConfigAny, paymentStatCronTime, subscriptionCronTime, notificationCronTime, expiredSessionCleanupCronTime, notificationCronConcurrency, stripeInvoiceCronTime, stripePaymentCronTime, stripeSubscriptionCronTime, revokeStakeCronTime, meteringSubscriptionDetectionCronTime, overdueDetectionCronTime, overdueThreshold, depositVaultCronTime, creditConsumptionCronTime, vendorStatusCheckCronTime, vendorReturnScanCronTime, iapReconcileCronTime, eventRetryCronTime, quoteCleanupCronTime, vendorTimeoutMinutes, webhookAlertWindowMinutes, webhookAlertMinFailures, shortUrlApiKey, shortUrlDomain, sequelizeOptionsPoolMin, sequelizeOptionsPoolMax, sequelizeOptionsPoolIdle, updateDataConcurrency, stopAcceptingOrders, exchangeRateCacheTTLSeconds, systemMaxPendingAmount, allowChangeLockedPrice, blockletMode, isProduction, nodeEnv, isTestEnv, isDevelopmentEnv, enableDevFakeAuth, tenantModeRaw, blockletAppPid, blockletAppId, blockletAppName, blockletAppUrl, blockletAppHost, blockletAppDir, blockletPort, blockletMountPoints, appStoreWriteEnabled, appStoreSkipSignatureVerify, googlePubsubSkipSignatureVerify, googlePubsubPushServiceAccount, googlePubsubAllowUnverifiedSender, googlePlayWebhookUrl, stripeWebhookSecret, iapReconcileBatchSize, paymentBillingThreshold, paymentMinStakeAmount, paymentDaysUntilDue, paymentDaysUntilCancel, paymentReloadSubscriptionJobs, paymentRateVolatilityThreshold, paymentLivemode, creditLowBalanceThresholdPercentage, creditBatchSize, creditBatchWindowMs, creditQueueConcurrency, exchangeRateCacheTTLFromEnv, sqlLog, sqlBenchmark, cfEnv, isCfWorker, isBlockletServer, env_default;
441
440
  var init_env = __esm({
442
441
  "../../blocklets/core/api/src/libs/env.ts"() {
443
442
  "use strict";
@@ -446,6 +445,22 @@ var init_env = __esm({
446
445
  const v = readConfig(key);
447
446
  return v ? +v : fallback;
448
447
  };
448
+ TRUTHY = /* @__PURE__ */ new Set(["1", "true", "yes", "on"]);
449
+ FALSY = /* @__PURE__ */ new Set(["0", "false", "no", "off"]);
450
+ parseBool = (value, fallback = false) => {
451
+ if (value === void 0 || value === "") return fallback;
452
+ const v = value.trim().toLowerCase();
453
+ if (TRUTHY.has(v)) return true;
454
+ if (FALSY.has(v)) return false;
455
+ return fallback;
456
+ };
457
+ readConfigAny = (...keys) => {
458
+ for (const key of keys) {
459
+ const v = readConfig(key);
460
+ if (v !== void 0 && v !== "") return v;
461
+ }
462
+ return void 0;
463
+ };
449
464
  paymentStatCronTime = () => "0 1 0 * * *";
450
465
  subscriptionCronTime = () => readConfig("SUBSCRIPTION_CRON_TIME") || "0 */30 * * * *";
451
466
  notificationCronTime = () => readConfig("NOTIFICATION_CRON_TIME") || "0 5 */6 * * *";
@@ -455,7 +470,6 @@ var init_env = __esm({
455
470
  stripePaymentCronTime = () => readConfig("STRIPE_PAYMENT_CRON_TIME") || "0 */20 * * * *";
456
471
  stripeSubscriptionCronTime = () => readConfig("STRIPE_SUBSCRIPTION_CRON_TIME") || "0 10 */8 * * *";
457
472
  revokeStakeCronTime = () => readConfig("REVOKE_STAKE_CRON_TIME") || "0 */5 * * * *";
458
- daysUntilCancel = () => readConfig("DAYS_UNTIL_CANCEL");
459
473
  meteringSubscriptionDetectionCronTime = () => readConfig("METERING_SUBSCRIPTION_DETECTION_CRON_TIME") || "0 0 10 * * *";
460
474
  overdueDetectionCronTime = () => readConfig("OVERDUE_DETECTION_CRON_TIME") || "0 0 10 * * *";
461
475
  overdueThreshold = () => numConfig("OVERDUE_THRESHOLD", 5);
@@ -475,16 +489,19 @@ var init_env = __esm({
475
489
  sequelizeOptionsPoolMax = () => numConfig("SEQUELIZE_OPTIONS_POOL_MAX", 5);
476
490
  sequelizeOptionsPoolIdle = () => numConfig("SEQUELIZE_OPTIONS_POOL_IDLE", 10 * 1e3);
477
491
  updateDataConcurrency = () => numConfig("UPDATE_DATA_CONCURRENCY", 5);
478
- stopAcceptingOrders = () => readConfig("PAYMENT_KIT_STOP_ACCEPTING_ORDERS") === "true" || readConfig("PAYMENT_KIT_STOP_ACCEPTING_ORDERS") === "1";
492
+ stopAcceptingOrders = () => parseBool(readConfigAny("PAYMENT_STOP_ACCEPTING_ORDERS", "PAYMENT_KIT_STOP_ACCEPTING_ORDERS"));
479
493
  exchangeRateCacheTTLSeconds = () => numConfig("EXCHANGE_RATE_CACHE_TTL_SECONDS", 10 * 60);
480
- systemMaxPendingAmount = () => numConfig("PAYMENT_KIT_MAX_PENDING_AMOUNT", 5);
481
- allowChangeLockedPrice = () => readConfig("PAYMENT_CHANGE_LOCKED_PRICE") === "1";
494
+ systemMaxPendingAmount = () => {
495
+ const v = readConfigAny("PAYMENT_MAX_PENDING_AMOUNT", "PAYMENT_KIT_MAX_PENDING_AMOUNT");
496
+ return v ? +v : 5;
497
+ };
498
+ allowChangeLockedPrice = () => parseBool(readConfig("PAYMENT_CHANGE_LOCKED_PRICE"));
482
499
  blockletMode = () => readConfig("BLOCKLET_MODE");
483
500
  isProduction = () => blockletMode() === "production";
484
501
  nodeEnv = () => readConfig("NODE_ENV");
485
502
  isTestEnv = () => nodeEnv() === "test";
486
503
  isDevelopmentEnv = () => nodeEnv() === "development";
487
- enableDevFakeAuth = () => readConfig("ENABLE_DEV_FAKE_AUTH") === "1";
504
+ enableDevFakeAuth = () => parseBool(readConfig("ENABLE_DEV_FAKE_AUTH"));
488
505
  tenantModeRaw = () => readConfig("PAYMENT_TENANT_MODE");
489
506
  blockletAppPid = () => readConfig("BLOCKLET_APP_PID");
490
507
  blockletAppId = () => readConfig("BLOCKLET_APP_ID");
@@ -494,11 +511,11 @@ var init_env = __esm({
494
511
  blockletAppDir = () => readConfig("BLOCKLET_APP_DIR");
495
512
  blockletPort = () => readConfig("BLOCKLET_PORT");
496
513
  blockletMountPoints = () => readConfig("BLOCKLET_MOUNT_POINTS");
497
- appStoreWriteEnabled = () => readConfig("APP_STORE_WRITE_ENABLED") === "true";
498
- appStoreSkipSignatureVerify = () => readConfig("APP_STORE_SKIP_SIGNATURE_VERIFY") === "true";
499
- googlePubsubSkipSignatureVerify = () => readConfig("GOOGLE_PUBSUB_SKIP_SIGNATURE_VERIFY") === "true";
514
+ appStoreWriteEnabled = () => parseBool(readConfig("APP_STORE_WRITE_ENABLED"));
515
+ appStoreSkipSignatureVerify = () => parseBool(readConfig("APP_STORE_SKIP_SIGNATURE_VERIFY"));
516
+ googlePubsubSkipSignatureVerify = () => parseBool(readConfig("GOOGLE_PUBSUB_SKIP_SIGNATURE_VERIFY"));
500
517
  googlePubsubPushServiceAccount = () => readConfig("GOOGLE_PUBSUB_PUSH_SERVICE_ACCOUNT");
501
- googlePubsubAllowUnverifiedSender = () => readConfig("GOOGLE_PUBSUB_ALLOW_UNVERIFIED_SENDER") === "true";
518
+ googlePubsubAllowUnverifiedSender = () => parseBool(readConfig("GOOGLE_PUBSUB_ALLOW_UNVERIFIED_SENDER"));
502
519
  googlePlayWebhookUrl = () => readConfig("GOOGLE_PLAY_WEBHOOK_URL");
503
520
  stripeWebhookSecret = () => readConfig("STRIPE_WEBHOOK_SECRET");
504
521
  iapReconcileBatchSize = () => Number(readConfig("IAP_RECONCILE_BATCH_SIZE") ?? "100");
@@ -506,19 +523,19 @@ var init_env = __esm({
506
523
  paymentMinStakeAmount = () => +readConfig("PAYMENT_MIN_STAKE_AMOUNT");
507
524
  paymentDaysUntilDue = () => readConfig("PAYMENT_DAYS_UNTIL_DUE");
508
525
  paymentDaysUntilCancel = () => readConfig("PAYMENT_DAYS_UNTIL_CANCEL");
509
- paymentReloadSubscriptionJobs = () => readConfig("PAYMENT_RELOAD_SUBSCRIPTION_JOBS") === "1";
526
+ paymentReloadSubscriptionJobs = () => parseBool(readConfig("PAYMENT_RELOAD_SUBSCRIPTION_JOBS"));
510
527
  paymentRateVolatilityThreshold = () => readConfig("PAYMENT_RATE_VOLATILITY_THRESHOLD");
511
- paymentLivemode = () => readConfig("PAYMENT_LIVEMODE") !== "false";
528
+ paymentLivemode = () => parseBool(readConfig("PAYMENT_LIVEMODE"), true);
512
529
  creditLowBalanceThresholdPercentage = () => parseInt(readConfig("CREDIT_LOW_BALANCE_THRESHOLD_PERCENTAGE") || "10", 10);
513
530
  creditBatchSize = () => Math.max(1, parseInt(readConfig("CREDIT_BATCH_SIZE") || "50", 10));
514
531
  creditBatchWindowMs = () => Math.max(10, parseInt(readConfig("CREDIT_BATCH_WINDOW_MS") || "3000", 10));
515
532
  creditQueueConcurrency = () => Math.max(1, Math.min(20, parseInt(readConfig("CREDIT_QUEUE_CONCURRENCY") || "5", 10) || 5));
516
533
  exchangeRateCacheTTLFromEnv = () => hasConfig("EXCHANGE_RATE_CACHE_TTL_SECONDS");
517
- sqlLog = () => readConfig("SQL_LOG") === "1";
518
- sqlBenchmark = () => readConfig("SQL_BENCHMARK") === "1";
534
+ sqlLog = () => parseBool(readConfig("SQL_LOG"));
535
+ sqlBenchmark = () => parseBool(readConfig("SQL_BENCHMARK"));
519
536
  cfEnv = () => globalThis.__CF_ENV__;
520
537
  isCfWorker = () => !!cfEnv();
521
- isBlockletServer = () => hasConfig("BLOCKLET_APP_ID");
538
+ isBlockletServer = () => hasConfig("BLOCKLET_DID");
522
539
  env_default = {
523
540
  ...import_env.env
524
541
  };
@@ -33814,10 +33831,10 @@ async function handleSubscriptionOnPaymentFailure(subscription, eventType, clien
33814
33831
  const { interval } = subscription.pending_invoice_item_interval;
33815
33832
  const dueUnit = getDueUnit(interval);
33816
33833
  const cancelUpdates = {};
33817
- const daysUntilCancel2 = getDaysUntilCancel(subscription);
33834
+ const daysUntilCancel = getDaysUntilCancel(subscription);
33818
33835
  const cancelSubscription = shouldCancelSubscription(subscription);
33819
- if (daysUntilCancel2 > 0) {
33820
- cancelUpdates.cancel_at = subscription.current_period_start + daysUntilCancel2 * dueUnit;
33836
+ if (daysUntilCancel > 0) {
33837
+ cancelUpdates.cancel_at = subscription.current_period_start + daysUntilCancel * dueUnit;
33821
33838
  } else {
33822
33839
  cancelUpdates.cancel_at_period_end = true;
33823
33840
  }
@@ -40756,10 +40773,10 @@ var init_payment2 = __esm({
40756
40773
  return updates.terminate;
40757
40774
  }
40758
40775
  const dueUnit = getDueUnit(interval);
40759
- const daysUntilCancel2 = getDaysUntilCancel(subscription);
40776
+ const daysUntilCancel = getDaysUntilCancel(subscription);
40760
40777
  const cancelUpdates = {};
40761
- if (daysUntilCancel2 > 0) {
40762
- cancelUpdates.cancel_at = subscription.current_period_start + daysUntilCancel2 * dueUnit;
40778
+ if (daysUntilCancel > 0) {
40779
+ cancelUpdates.cancel_at = subscription.current_period_start + daysUntilCancel * dueUnit;
40763
40780
  } else {
40764
40781
  cancelUpdates.cancel_at_period_end = true;
40765
40782
  }
@@ -49152,7 +49169,7 @@ var init_subscriptions = __esm({
49152
49169
  description,
49153
49170
  metadata = {},
49154
49171
  days_until_due: daysUntilDue,
49155
- days_until_cancel: daysUntilCancel2,
49172
+ days_until_cancel: daysUntilCancel,
49156
49173
  billing_cycle_anchor: billingCycleAnchor,
49157
49174
  collection_method: collectionMethod,
49158
49175
  proration_behavior: prorationBehavior,
@@ -49244,7 +49261,7 @@ var init_subscriptions = __esm({
49244
49261
  proration_behavior: prorationBehavior,
49245
49262
  payment_behavior: "default_incomplete",
49246
49263
  days_until_due: daysUntilDue,
49247
- days_until_cancel: daysUntilCancel2,
49264
+ days_until_cancel: daysUntilCancel,
49248
49265
  metadata: formatMetadata(metadata),
49249
49266
  service_actions: serviceActions || []
49250
49267
  });
@@ -51706,10 +51723,10 @@ var init_subscriptions = __esm({
51706
51723
  updates.default_payment_method_id = arcblockMethod.id;
51707
51724
  if (body.recalculate_cancel_at !== false) {
51708
51725
  if (subscription.cancelation_details && !subscription.cancel_at) {
51709
- const daysUntilCancel2 = subscription.days_until_cancel || 0;
51710
- if (daysUntilCancel2 > 0) {
51726
+ const daysUntilCancel = subscription.days_until_cancel || 0;
51727
+ if (daysUntilCancel > 0) {
51711
51728
  const dueUnit = 24 * 60 * 60;
51712
- updates.cancel_at = subscription.current_period_start + daysUntilCancel2 * dueUnit;
51729
+ updates.cancel_at = subscription.current_period_start + daysUntilCancel * dueUnit;
51713
51730
  } else {
51714
51731
  updates.cancel_at_period_end = true;
51715
51732
  updates.cancel_at = subscription.current_period_end;
@@ -71702,9 +71719,9 @@ async function handlePostConsumptionEvents(context2, params) {
71702
71719
  const cancelUpdates = {};
71703
71720
  const { interval } = context2.subscription.pending_invoice_item_interval;
71704
71721
  const dueUnit = getDueUnit(interval);
71705
- const daysUntilCancel2 = getDaysUntilCancel(context2.subscription);
71706
- if (daysUntilCancel2 > 0) {
71707
- cancelUpdates.cancel_at = context2.subscription.current_period_start + daysUntilCancel2 * dueUnit;
71722
+ const daysUntilCancel = getDaysUntilCancel(context2.subscription);
71723
+ if (daysUntilCancel > 0) {
71724
+ cancelUpdates.cancel_at = context2.subscription.current_period_start + daysUntilCancel * dueUnit;
71708
71725
  } else {
71709
71726
  cancelUpdates.cancel_at_period_end = true;
71710
71727
  }
@@ -77921,9 +77938,52 @@ var init_service2 = __esm({
77921
77938
  }
77922
77939
  });
77923
77940
 
77941
+ // ../../blocklets/core/api/src/host-glue.ts
77942
+ var host_glue_exports = {};
77943
+ __export(host_glue_exports, {
77944
+ PAYMENT_PREFIX: () => PAYMENT_PREFIX,
77945
+ USER_HEADERS: () => USER_HEADERS,
77946
+ createTenantProvisioner: () => createTenantProvisioner,
77947
+ injectCaller: () => injectCaller
77948
+ });
77949
+ function injectCaller(headers, caller) {
77950
+ for (const h of USER_HEADERS) headers.delete(h);
77951
+ if (!caller) return;
77952
+ const canonicalDid2 = caller.did?.startsWith("did:abt:") ? caller.did : `did:abt:${caller.did}`;
77953
+ headers.set("x-user-did", canonicalDid2);
77954
+ headers.set("x-user-role", caller.role || "guest");
77955
+ headers.set("x-user-provider", caller.authMethod === "access-key" ? "access-key" : caller.authMethod || "wallet");
77956
+ headers.set("x-user-fullname", encodeURIComponent(caller.displayName || ""));
77957
+ headers.set("x-user-wallet-os", "");
77958
+ }
77959
+ function createTenantProvisioner(provision) {
77960
+ const inflight = /* @__PURE__ */ new Map();
77961
+ return (instanceDid) => {
77962
+ if (!instanceDid) return Promise.resolve();
77963
+ let p = inflight.get(instanceDid);
77964
+ if (!p) {
77965
+ p = provision(instanceDid).catch((err) => {
77966
+ inflight.delete(instanceDid);
77967
+ throw err;
77968
+ });
77969
+ inflight.set(instanceDid, p);
77970
+ }
77971
+ return p;
77972
+ };
77973
+ }
77974
+ var PAYMENT_PREFIX, USER_HEADERS;
77975
+ var init_host_glue = __esm({
77976
+ "../../blocklets/core/api/src/host-glue.ts"() {
77977
+ "use strict";
77978
+ PAYMENT_PREFIX = "/.well-known/payment";
77979
+ USER_HEADERS = ["x-user-did", "x-user-role", "x-user-provider", "x-user-fullname", "x-user-wallet-os"];
77980
+ }
77981
+ });
77982
+
77924
77983
  // src/index.ts
77925
77984
  var src_exports = {};
77926
77985
  __export(src_exports, {
77986
+ PAYMENT_PREFIX: () => PAYMENT_PREFIX2,
77927
77987
  applyPaymentCoreMigrations: () => applyPaymentCoreMigrations2,
77928
77988
  applySqlMigrations: () => applySqlMigrations2,
77929
77989
  createAuthStorage: () => createAuthStorage2,
@@ -77939,11 +77999,13 @@ __export(src_exports, {
77939
77999
  createNodeDbDriver: () => createNodeDbDriver2,
77940
78000
  createNodeDidConnectRuntime: () => createNodeDidConnectRuntime2,
77941
78001
  createNodeStaticHandler: () => createNodeStaticHandler2,
78002
+ createTenantProvisioner: () => createTenantProvisioner2,
77942
78003
  getCronDriver: () => getCronDriver2,
77943
78004
  getIdentityDriver: () => getIdentityDriver2,
77944
78005
  getPaymentCoreSqlMigrations: () => getPaymentCoreSqlMigrations,
77945
78006
  getQueueHostHooks: () => getQueueHostHooks2,
77946
78007
  getSecretsDriver: () => getSecretsDriver2,
78008
+ injectCaller: () => injectCaller2,
77947
78009
  matchesCron: () => matchesCron2,
77948
78010
  nodeQueueHostHooks: () => nodeQueueHostHooks2,
77949
78011
  scopedLockName: () => scopedLockName2,
@@ -78050,8 +78112,16 @@ function createEmbeddedPaymentService2(slots) {
78050
78112
  const core = (init_service2(), __toCommonJS(service_exports));
78051
78113
  return core.createEmbeddedPaymentService(slots);
78052
78114
  }
78115
+ var PAYMENT_PREFIX2 = "/.well-known/payment";
78116
+ function injectCaller2(headers, caller) {
78117
+ return (init_host_glue(), __toCommonJS(host_glue_exports)).injectCaller(headers, caller);
78118
+ }
78119
+ function createTenantProvisioner2(provision) {
78120
+ return (init_host_glue(), __toCommonJS(host_glue_exports)).createTenantProvisioner(provision);
78121
+ }
78053
78122
  // Annotate the CommonJS export names for ESM import in node:
78054
78123
  0 && (module.exports = {
78124
+ PAYMENT_PREFIX,
78055
78125
  applyPaymentCoreMigrations,
78056
78126
  applySqlMigrations,
78057
78127
  createAuthStorage,
@@ -78067,11 +78137,13 @@ function createEmbeddedPaymentService2(slots) {
78067
78137
  createNodeDbDriver,
78068
78138
  createNodeDidConnectRuntime,
78069
78139
  createNodeStaticHandler,
78140
+ createTenantProvisioner,
78070
78141
  getCronDriver,
78071
78142
  getIdentityDriver,
78072
78143
  getPaymentCoreSqlMigrations,
78073
78144
  getQueueHostHooks,
78074
78145
  getSecretsDriver,
78146
+ injectCaller,
78075
78147
  matchesCron,
78076
78148
  nodeQueueHostHooks,
78077
78149
  scopedLockName,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcblock/payment-service",
3
- "version": "1.29.7",
3
+ "version": "1.29.8",
4
4
  "description": "Embedded payment service factory (W2) — side-effect-free core for arc / blocklet server / standalone worker hosts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -44,7 +44,7 @@
44
44
  "@blocklet/constant": "^1.17.13-beta-20260613-094425-b81920c8",
45
45
  "@blocklet/error": "^0.3.5",
46
46
  "@blocklet/logger": "^1.17.13-beta-20260613-094425-b81920c8",
47
- "@blocklet/payment-vendor": "1.29.7",
47
+ "@blocklet/payment-vendor": "1.29.8",
48
48
  "@blocklet/sdk": "^1.17.13-beta-20260613-094425-b81920c8",
49
49
  "@blocklet/xss": "^0.3.16",
50
50
  "@hono/node-server": "^2.0.4",
@@ -90,5 +90,5 @@
90
90
  "ts-jest": "^29.1.2",
91
91
  "typescript": "^5.4.3"
92
92
  },
93
- "gitHead": "e1999aecfa9ce64bfd56da14bf47b255a19ef394"
93
+ "gitHead": "547c0614f1f83abad80ea08452d2f5a9f4f5aa07"
94
94
  }