payment-kit 1.29.10 → 1.29.12

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.
@@ -34,6 +34,10 @@ export async function ensureStakedForGas() {
34
34
  continue;
35
35
  }
36
36
 
37
+ // ensure context for stake (mirror integrations/arcblock/token.ts): client.stake
38
+ // -> getTokenStateMap reads client.context, which only getContext() populates.
39
+ await client.getContext();
40
+
37
41
  const result = await client.getForgeState({});
38
42
  const { token, txConfig } = result.state;
39
43
  const holding = (account?.tokens || []).find((x: any) => x.address === token.address);
@@ -9,7 +9,7 @@
9
9
  // The blocklet server (BLOCKLET_LOG_DIR set) and the CF worker (aliased shim)
10
10
  // still get the real logger on first call — behavior unchanged for them.
11
11
 
12
- interface Logger {
12
+ export interface Logger {
13
13
  debug: (...args: any[]) => void;
14
14
  info: (...args: any[]) => void;
15
15
  error: (...args: any[]) => void;
@@ -18,6 +18,15 @@ interface Logger {
18
18
 
19
19
  let resolved: Logger | undefined;
20
20
 
21
+ // Host-injection seam: an embedding host (e.g. arc) can supply its own structured
22
+ // logger so payment's lines join the host's unified log stream instead of the lazy
23
+ // @blocklet/logger / console fallback. MUST be set before the first log call (the
24
+ // embedded factory does this from its `logger` slot as its first action) so it wins
25
+ // over `resolveLogger()`'s lazy default.
26
+ export function setResolvedLogger(l: Logger): void {
27
+ resolved = l;
28
+ }
29
+
21
30
  function resolveLogger(): Logger {
22
31
  if (resolved) return resolved;
23
32
  try {
@@ -5,7 +5,7 @@ import { Hono } from 'hono';
5
5
  import type { ContentfulStatusCode } from 'hono/utils/http-status';
6
6
  import { isProduction } from './libs/env';
7
7
 
8
- import logger from './libs/logger';
8
+ import logger, { type Logger, setResolvedLogger } from './libs/logger';
9
9
  import { context as requestContext } from './libs/context';
10
10
  import { TENANT_CONTEXT_MISSING, TenantError, getTenantMode, getDefaultInstanceDid } from './libs/tenant';
11
11
  import type { LocksDriver, QueueHostHooks, CronDriver, IdentityDriver, SecretsDriver } from './libs/drivers';
@@ -79,6 +79,14 @@ export interface PaymentCoreSlots {
79
79
  * keeping the runtime-neutral `http.fetch` free of node:fs.
80
80
  */
81
81
  staticHandler?: (app: Hono) => void;
82
+ /**
83
+ * Host-injected logger (e.g. arc's structured `ns:"payment"` logger). When set,
84
+ * payment's lines join the host's unified log stream instead of the lazy
85
+ * @blocklet/logger / console fallback. Applied via `setResolvedLogger` as the
86
+ * factory's first action, before any core module logs. Omit on blocklet-server
87
+ * (keeps the @blocklet/logger default).
88
+ */
89
+ logger?: Logger;
82
90
  }
83
91
 
84
92
  export interface PaymentCoreLifecycle {
@@ -661,6 +669,9 @@ async function stopBackgroundServices(): Promise<void> {
661
669
  */
662
670
  export function createEmbeddedPaymentService(slots: PaymentCoreSlots): EmbeddedPaymentService {
663
671
  if (!slots || typeof slots !== 'object') throw new PaymentCoreSlotError('config');
672
+ // Host-injected logger wins over the lazy @blocklet/logger / console fallback.
673
+ // Set FIRST so even slot-validation/init logging routes to the host stream.
674
+ if (slots.logger) setResolvedLogger(slots.logger);
664
675
  if (!slots.config) throw new PaymentCoreSlotError('config');
665
676
  if (!slots.db || !slots.db.sequelize) throw new PaymentCoreSlotError('db');
666
677
  // D1 (S3.0): validate the tenancy slot and derive the effective config BEFORE
package/blocklet.yml CHANGED
@@ -14,7 +14,7 @@ repository:
14
14
  type: git
15
15
  url: git+https://github.com/blocklet/payment-kit.git
16
16
  specVersion: 1.2.8
17
- version: 1.29.10
17
+ version: 1.29.12
18
18
  logo: logo.png
19
19
  files:
20
20
  - dist
@@ -347,6 +347,9 @@ export async function createCloudflarePaymentAdapter(
347
347
  };
348
348
 
349
349
  const svc: EmbeddedPaymentService = createEmbeddedPaymentService({
350
+ // Forward the host-injected logger so CF payment lines join the worker's
351
+ // unified log stream (omit → lazy @blocklet/logger / console fallback).
352
+ logger: options.logger,
350
353
  // Host-global csrf secret via the config boundary (payment-core's csrf reads
351
354
  // PAYMENT_CSRF_SECRET through readConfig). NO sessionSecret (decision #5).
352
355
  config: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payment-kit",
3
- "version": "1.29.10",
3
+ "version": "1.29.12",
4
4
  "scripts": {
5
5
  "dev": "blocklet dev --open",
6
6
  "prelint": "npm run types",
@@ -48,7 +48,7 @@
48
48
  "dependencies": {
49
49
  "@abtnode/cron": "^1.17.13-beta-20260613-094425-b81920c8",
50
50
  "@arcblock/did": "^1.30.24",
51
- "@arcblock/did-connect-js": "^4.1.2",
51
+ "@arcblock/did-connect-js": "^4.1.5",
52
52
  "@arcblock/did-connect-react": "^3.5.4",
53
53
  "@arcblock/did-connect-storage-nedb": "^1.8.0",
54
54
  "@arcblock/did-util": "^1.30.24",
@@ -60,9 +60,9 @@
60
60
  "@blocklet/error": "^0.3.5",
61
61
  "@blocklet/js-sdk": "^1.17.13-beta-20260613-094425-b81920c8",
62
62
  "@blocklet/logger": "^1.17.13-beta-20260613-094425-b81920c8",
63
- "@blocklet/payment-broker-client": "1.29.10",
64
- "@blocklet/payment-react": "1.29.10",
65
- "@blocklet/payment-vendor": "1.29.10",
63
+ "@blocklet/payment-broker-client": "1.29.12",
64
+ "@blocklet/payment-react": "1.29.12",
65
+ "@blocklet/payment-vendor": "1.29.12",
66
66
  "@blocklet/sdk": "^1.17.13-beta-20260613-094425-b81920c8",
67
67
  "@blocklet/ui-react": "^3.5.4",
68
68
  "@blocklet/uploader": "^0.15.4",
@@ -133,7 +133,7 @@
133
133
  "devDependencies": {
134
134
  "@abtnode/types": "^1.17.13-beta-20260613-094425-b81920c8",
135
135
  "@arcblock/eslint-config-ts": "^0.3.3",
136
- "@blocklet/payment-types": "1.29.10",
136
+ "@blocklet/payment-types": "1.29.12",
137
137
  "@types/connect": "^3.4.38",
138
138
  "@types/debug": "^4.1.12",
139
139
  "@types/dotenv-flow": "^3.3.3",
@@ -180,5 +180,5 @@
180
180
  "parser": "typescript"
181
181
  }
182
182
  },
183
- "gitHead": "18c831f5dbdfb271a96640befb06f589adbeeab0"
183
+ "gitHead": "8473f4c5a7716d03d53f253563229f31e63ec0c4"
184
184
  }