@arcblock/payment-service 1.29.3-beta-frontend-serve.4 → 1.29.3
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/cf.js +89 -89
- package/dist/index.d.ts +36 -0
- package/dist/index.js +329 -163
- package/package.json +4 -3
package/dist/index.js
CHANGED
|
@@ -1026,36 +1026,6 @@ var init_serve_static_arc = __esm({
|
|
|
1026
1026
|
}
|
|
1027
1027
|
});
|
|
1028
1028
|
|
|
1029
|
-
// ../../blocklets/core/api/src/libs/logger.ts
|
|
1030
|
-
function resolveLogger() {
|
|
1031
|
-
if (resolved) return resolved;
|
|
1032
|
-
try {
|
|
1033
|
-
const createLogger = require("@blocklet/logger");
|
|
1034
|
-
resolved = createLogger("app");
|
|
1035
|
-
} catch {
|
|
1036
|
-
resolved = {
|
|
1037
|
-
debug: (...args) => console.debug(...args),
|
|
1038
|
-
info: (...args) => console.info(...args),
|
|
1039
|
-
error: (...args) => console.error(...args),
|
|
1040
|
-
warn: (...args) => console.warn(...args)
|
|
1041
|
-
};
|
|
1042
|
-
}
|
|
1043
|
-
return resolved;
|
|
1044
|
-
}
|
|
1045
|
-
var resolved, logger, logger_default;
|
|
1046
|
-
var init_logger = __esm({
|
|
1047
|
-
"../../blocklets/core/api/src/libs/logger.ts"() {
|
|
1048
|
-
"use strict";
|
|
1049
|
-
logger = {
|
|
1050
|
-
debug: (...args) => resolveLogger().debug(...args),
|
|
1051
|
-
info: (...args) => resolveLogger().info(...args),
|
|
1052
|
-
error: (...args) => resolveLogger().error(...args),
|
|
1053
|
-
warn: (...args) => resolveLogger().warn(...args)
|
|
1054
|
-
};
|
|
1055
|
-
logger_default = logger;
|
|
1056
|
-
}
|
|
1057
|
-
});
|
|
1058
|
-
|
|
1059
1029
|
// ../../blocklets/core/api/src/libs/context.ts
|
|
1060
1030
|
var context_exports = {};
|
|
1061
1031
|
__export(context_exports, {
|
|
@@ -1184,6 +1154,231 @@ var init_context = __esm({
|
|
|
1184
1154
|
}
|
|
1185
1155
|
});
|
|
1186
1156
|
|
|
1157
|
+
// ../../blocklets/core/api/src/libs/logger.ts
|
|
1158
|
+
function resolveLogger() {
|
|
1159
|
+
if (resolved) return resolved;
|
|
1160
|
+
try {
|
|
1161
|
+
const createLogger = require("@blocklet/logger");
|
|
1162
|
+
resolved = createLogger("app");
|
|
1163
|
+
} catch {
|
|
1164
|
+
resolved = {
|
|
1165
|
+
debug: (...args) => console.debug(...args),
|
|
1166
|
+
info: (...args) => console.info(...args),
|
|
1167
|
+
error: (...args) => console.error(...args),
|
|
1168
|
+
warn: (...args) => console.warn(...args)
|
|
1169
|
+
};
|
|
1170
|
+
}
|
|
1171
|
+
return resolved;
|
|
1172
|
+
}
|
|
1173
|
+
var resolved, logger, logger_default;
|
|
1174
|
+
var init_logger = __esm({
|
|
1175
|
+
"../../blocklets/core/api/src/libs/logger.ts"() {
|
|
1176
|
+
"use strict";
|
|
1177
|
+
logger = {
|
|
1178
|
+
debug: (...args) => resolveLogger().debug(...args),
|
|
1179
|
+
info: (...args) => resolveLogger().info(...args),
|
|
1180
|
+
error: (...args) => resolveLogger().error(...args),
|
|
1181
|
+
warn: (...args) => resolveLogger().warn(...args)
|
|
1182
|
+
};
|
|
1183
|
+
logger_default = logger;
|
|
1184
|
+
}
|
|
1185
|
+
});
|
|
1186
|
+
|
|
1187
|
+
// ../../blocklets/core/api/src/libs/did-connect/tenant-identity.ts
|
|
1188
|
+
var tenant_identity_exports = {};
|
|
1189
|
+
__export(tenant_identity_exports, {
|
|
1190
|
+
clearTenantIdentityCache: () => clearTenantIdentityCache,
|
|
1191
|
+
createEmbeddedIdentityServices: () => createEmbeddedIdentityServices,
|
|
1192
|
+
getCachedTenantIdentity: () => getCachedTenantIdentity,
|
|
1193
|
+
hasDynamicIdentity: () => hasDynamicIdentity,
|
|
1194
|
+
resolveTenantIdentity: () => resolveTenantIdentity,
|
|
1195
|
+
warmTenantIdentity: () => warmTenantIdentity
|
|
1196
|
+
});
|
|
1197
|
+
function cacheIdentity(instanceDid, value) {
|
|
1198
|
+
identityCache.set(instanceDid, { value, expiry: Date.now() + IDENTITY_TTL_MS });
|
|
1199
|
+
if (identityCache.size > IDENTITY_CACHE_MAX) {
|
|
1200
|
+
const oldest = identityCache.keys().next().value;
|
|
1201
|
+
if (oldest !== void 0) identityCache.delete(oldest);
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1204
|
+
function clearTenantIdentityCache(instanceDid) {
|
|
1205
|
+
if (instanceDid) identityCache.delete(instanceDid);
|
|
1206
|
+
else identityCache.clear();
|
|
1207
|
+
}
|
|
1208
|
+
function hasDynamicIdentity() {
|
|
1209
|
+
return typeof getIdentityDriver().getInstanceAppIdentity === "function";
|
|
1210
|
+
}
|
|
1211
|
+
async function resolveTenantIdentity(instanceDidArg) {
|
|
1212
|
+
const instanceDid = instanceDidArg ?? getInstanceDid();
|
|
1213
|
+
const cached = identityCache.get(instanceDid);
|
|
1214
|
+
if (cached && cached.expiry > Date.now()) return cached.value;
|
|
1215
|
+
const driver = getIdentityDriver();
|
|
1216
|
+
if (typeof driver.getInstanceAppIdentity !== "function") {
|
|
1217
|
+
throw new Error(
|
|
1218
|
+
"resolveTenantIdentity: the active IdentityDriver does not implement getInstanceAppIdentity \u2014 a non-blocklet-server DID-Connect runtime requires an AUTH_SERVICE-backed identity driver"
|
|
1219
|
+
);
|
|
1220
|
+
}
|
|
1221
|
+
const identity = await driver.getInstanceAppIdentity(instanceDid);
|
|
1222
|
+
if (!identity || !identity.appSk) {
|
|
1223
|
+
throw new Error(`resolveTenantIdentity: no app signing key for instance "${instanceDid}" (fail-closed)`);
|
|
1224
|
+
}
|
|
1225
|
+
if (identity.appSk.length < 66) {
|
|
1226
|
+
throw new Error(
|
|
1227
|
+
`resolveTenantIdentity: appSk for instance "${instanceDid}" is too short (${identity.appSk.length} chars) to derive a wallet (fail-closed)`
|
|
1228
|
+
);
|
|
1229
|
+
}
|
|
1230
|
+
const wallet2 = (0, import_wallet.fromSecretKey)(identity.appSk, walletType);
|
|
1231
|
+
const ethWallet2 = (0, import_wallet.fromSecretKey)(identity.appSk.slice(0, 66), ethWalletType);
|
|
1232
|
+
const permanentWallet = identity.appPsk ? (0, import_wallet.fromSecretKey)(identity.appPsk, walletType) : wallet2;
|
|
1233
|
+
const value = {
|
|
1234
|
+
instanceDid,
|
|
1235
|
+
wallet: wallet2,
|
|
1236
|
+
ethWallet: ethWallet2,
|
|
1237
|
+
permanentWallet,
|
|
1238
|
+
appInfo: identity.appInfo ?? {}
|
|
1239
|
+
};
|
|
1240
|
+
cacheIdentity(instanceDid, value);
|
|
1241
|
+
return value;
|
|
1242
|
+
}
|
|
1243
|
+
function getCachedTenantIdentity(instanceDidArg) {
|
|
1244
|
+
const instanceDid = instanceDidArg ?? getInstanceDid();
|
|
1245
|
+
const cached = identityCache.get(instanceDid);
|
|
1246
|
+
if (!cached || cached.expiry <= Date.now()) {
|
|
1247
|
+
throw new Error(
|
|
1248
|
+
`tenant identity for "${instanceDid}" is not resolved (fail-closed) \u2014 warmTenantIdentity must run in the request/job scope before any wallet access`
|
|
1249
|
+
);
|
|
1250
|
+
}
|
|
1251
|
+
return cached.value;
|
|
1252
|
+
}
|
|
1253
|
+
async function warmTenantIdentity(instanceDidArg) {
|
|
1254
|
+
if (!hasDynamicIdentity()) return;
|
|
1255
|
+
try {
|
|
1256
|
+
await resolveTenantIdentity(instanceDidArg);
|
|
1257
|
+
} catch (err) {
|
|
1258
|
+
logger_default.warn("[tenant-identity] warm failed \u2014 wallet access will fail-closed", {
|
|
1259
|
+
error: err instanceof Error ? err.message : String(err)
|
|
1260
|
+
});
|
|
1261
|
+
}
|
|
1262
|
+
}
|
|
1263
|
+
function createEmbeddedIdentityServices() {
|
|
1264
|
+
return {
|
|
1265
|
+
getBusinessWallet(chain) {
|
|
1266
|
+
const identity = getCachedTenantIdentity();
|
|
1267
|
+
return chain === "ethereum" ? identity.ethWallet : identity.wallet;
|
|
1268
|
+
},
|
|
1269
|
+
directory() {
|
|
1270
|
+
return EMBEDDED_DIRECTORY;
|
|
1271
|
+
}
|
|
1272
|
+
};
|
|
1273
|
+
}
|
|
1274
|
+
var Mcrypto, import_wallet, walletType, ethWalletType, IDENTITY_TTL_MS, IDENTITY_CACHE_MAX, identityCache, EMBEDDED_DIRECTORY;
|
|
1275
|
+
var init_tenant_identity = __esm({
|
|
1276
|
+
"../../blocklets/core/api/src/libs/did-connect/tenant-identity.ts"() {
|
|
1277
|
+
"use strict";
|
|
1278
|
+
Mcrypto = __toESM(require("@ocap/mcrypto"));
|
|
1279
|
+
import_wallet = require("@ocap/wallet");
|
|
1280
|
+
init_context();
|
|
1281
|
+
init_drivers();
|
|
1282
|
+
init_logger();
|
|
1283
|
+
walletType = {
|
|
1284
|
+
role: Mcrypto.types.RoleType.ROLE_APPLICATION,
|
|
1285
|
+
pk: Mcrypto.types.KeyType.ED25519,
|
|
1286
|
+
hash: Mcrypto.types.HashType.SHA3
|
|
1287
|
+
};
|
|
1288
|
+
ethWalletType = (0, import_wallet.WalletType)("ethereum");
|
|
1289
|
+
IDENTITY_TTL_MS = 5 * 60 * 1e3;
|
|
1290
|
+
IDENTITY_CACHE_MAX = 512;
|
|
1291
|
+
identityCache = /* @__PURE__ */ new Map();
|
|
1292
|
+
EMBEDDED_DIRECTORY = {
|
|
1293
|
+
getUser(did) {
|
|
1294
|
+
if (!did) return { user: null };
|
|
1295
|
+
return {
|
|
1296
|
+
user: { did, fullName: did, email: "", phone: "", remark: "", connectedAccounts: [{ provider: "wallet", did }] }
|
|
1297
|
+
};
|
|
1298
|
+
},
|
|
1299
|
+
getUsers() {
|
|
1300
|
+
return { users: [] };
|
|
1301
|
+
},
|
|
1302
|
+
getVault() {
|
|
1303
|
+
return null;
|
|
1304
|
+
},
|
|
1305
|
+
getBlocklet() {
|
|
1306
|
+
return { id: "", site: { id: "" } };
|
|
1307
|
+
}
|
|
1308
|
+
};
|
|
1309
|
+
}
|
|
1310
|
+
});
|
|
1311
|
+
|
|
1312
|
+
// ../../blocklets/core/api/src/libs/did-connect/runtime-did-connect-js.ts
|
|
1313
|
+
function createDidConnectJsRuntime(opts) {
|
|
1314
|
+
const fallbackAppInfo = { ...DEFAULT_APP_INFO, ...opts.defaultAppInfo ?? {} };
|
|
1315
|
+
return {
|
|
1316
|
+
tokenStorage: opts.tokenStorage,
|
|
1317
|
+
createAuthenticator() {
|
|
1318
|
+
const { WalletAuthenticator } = require("@arcblock/did-connect-js");
|
|
1319
|
+
const config4 = {
|
|
1320
|
+
// Function-valued, per-tenant: resolve the signing wallet from the host
|
|
1321
|
+
// IdentityDriver.getInstanceAppIdentity each time the authenticator signs.
|
|
1322
|
+
// `.toJSON()` matches the standalone worker (the SDK reconstructs the full
|
|
1323
|
+
// wallet — incl. sk — via fromJSON before signing).
|
|
1324
|
+
wallet: async () => {
|
|
1325
|
+
const { wallet: wallet2 } = await resolveTenantIdentity();
|
|
1326
|
+
return wallet2.toJSON();
|
|
1327
|
+
},
|
|
1328
|
+
appInfo: async ({ baseUrl } = {}) => {
|
|
1329
|
+
const { appInfo } = await resolveTenantIdentity();
|
|
1330
|
+
return {
|
|
1331
|
+
name: appInfo.name || fallbackAppInfo.name,
|
|
1332
|
+
description: appInfo.description || fallbackAppInfo.description,
|
|
1333
|
+
icon: appInfo.icon || fallbackAppInfo.icon,
|
|
1334
|
+
link: appInfo.link || baseUrl
|
|
1335
|
+
};
|
|
1336
|
+
},
|
|
1337
|
+
timeout: opts.timeout ?? 3e4
|
|
1338
|
+
};
|
|
1339
|
+
if (opts.chainInfo) config4.chainInfo = opts.chainInfo;
|
|
1340
|
+
if (opts.txEncoder) config4.txEncoder = opts.txEncoder;
|
|
1341
|
+
return new WalletAuthenticator(config4);
|
|
1342
|
+
},
|
|
1343
|
+
createHandlers({ authenticator: authenticator2, tokenStorage }) {
|
|
1344
|
+
const { WalletHandlers } = require("@arcblock/did-connect-js");
|
|
1345
|
+
return new WalletHandlers({ authenticator: authenticator2, tokenStorage });
|
|
1346
|
+
}
|
|
1347
|
+
};
|
|
1348
|
+
}
|
|
1349
|
+
var DEFAULT_APP_INFO;
|
|
1350
|
+
var init_runtime_did_connect_js = __esm({
|
|
1351
|
+
"../../blocklets/core/api/src/libs/did-connect/runtime-did-connect-js.ts"() {
|
|
1352
|
+
"use strict";
|
|
1353
|
+
init_tenant_identity();
|
|
1354
|
+
DEFAULT_APP_INFO = {
|
|
1355
|
+
name: "Payment Kit",
|
|
1356
|
+
description: "Payment Kit",
|
|
1357
|
+
icon: "https://www.arcblock.io/favicon.ico"
|
|
1358
|
+
};
|
|
1359
|
+
}
|
|
1360
|
+
});
|
|
1361
|
+
|
|
1362
|
+
// ../../blocklets/core/api/src/host-node/did-connect-runtime-node.ts
|
|
1363
|
+
var did_connect_runtime_node_exports = {};
|
|
1364
|
+
__export(did_connect_runtime_node_exports, {
|
|
1365
|
+
createNodeDidConnectRuntime: () => createNodeDidConnectRuntime
|
|
1366
|
+
});
|
|
1367
|
+
function createNodeDidConnectRuntime(opts) {
|
|
1368
|
+
const { createTxEncoder } = require("@ocap/client/encode");
|
|
1369
|
+
return createDidConnectJsRuntime({
|
|
1370
|
+
tokenStorage: opts?.tokenStorage,
|
|
1371
|
+
txEncoder: createTxEncoder(),
|
|
1372
|
+
timeout: opts?.timeout ?? 3e4
|
|
1373
|
+
});
|
|
1374
|
+
}
|
|
1375
|
+
var init_did_connect_runtime_node = __esm({
|
|
1376
|
+
"../../blocklets/core/api/src/host-node/did-connect-runtime-node.ts"() {
|
|
1377
|
+
"use strict";
|
|
1378
|
+
init_runtime_did_connect_js();
|
|
1379
|
+
}
|
|
1380
|
+
});
|
|
1381
|
+
|
|
1187
1382
|
// ../../blocklets/core/api/src/middlewares/hono/xss.ts
|
|
1188
1383
|
function xss() {
|
|
1189
1384
|
return async (c, next) => {
|
|
@@ -1398,89 +1593,6 @@ var init_dayjs = __esm({
|
|
|
1398
1593
|
}
|
|
1399
1594
|
});
|
|
1400
1595
|
|
|
1401
|
-
// ../../blocklets/core/api/src/libs/did-connect/tenant-identity.ts
|
|
1402
|
-
var tenant_identity_exports = {};
|
|
1403
|
-
__export(tenant_identity_exports, {
|
|
1404
|
-
clearTenantIdentityCache: () => clearTenantIdentityCache,
|
|
1405
|
-
getCachedTenantIdentity: () => getCachedTenantIdentity,
|
|
1406
|
-
hasDynamicIdentity: () => hasDynamicIdentity,
|
|
1407
|
-
resolveTenantIdentity: () => resolveTenantIdentity,
|
|
1408
|
-
warmTenantIdentity: () => warmTenantIdentity
|
|
1409
|
-
});
|
|
1410
|
-
function clearTenantIdentityCache(instanceDid) {
|
|
1411
|
-
if (instanceDid) identityCache.delete(instanceDid);
|
|
1412
|
-
else identityCache.clear();
|
|
1413
|
-
}
|
|
1414
|
-
function hasDynamicIdentity() {
|
|
1415
|
-
return typeof getIdentityDriver().getInstanceAppIdentity === "function";
|
|
1416
|
-
}
|
|
1417
|
-
async function resolveTenantIdentity(instanceDidArg) {
|
|
1418
|
-
const instanceDid = instanceDidArg ?? getInstanceDid();
|
|
1419
|
-
const cached = identityCache.get(instanceDid);
|
|
1420
|
-
if (cached && cached.expiry > Date.now()) return cached.value;
|
|
1421
|
-
const driver = getIdentityDriver();
|
|
1422
|
-
if (typeof driver.getInstanceAppIdentity !== "function") {
|
|
1423
|
-
throw new Error(
|
|
1424
|
-
"resolveTenantIdentity: the active IdentityDriver does not implement getInstanceAppIdentity \u2014 a non-blocklet-server DID-Connect runtime requires an AUTH_SERVICE-backed identity driver"
|
|
1425
|
-
);
|
|
1426
|
-
}
|
|
1427
|
-
const identity = await driver.getInstanceAppIdentity(instanceDid);
|
|
1428
|
-
if (!identity || !identity.appSk) {
|
|
1429
|
-
throw new Error(`resolveTenantIdentity: no app signing key for instance "${instanceDid}" (fail-closed)`);
|
|
1430
|
-
}
|
|
1431
|
-
const wallet3 = (0, import_wallet.fromSecretKey)(identity.appSk, walletType);
|
|
1432
|
-
const ethWallet2 = (0, import_wallet.fromSecretKey)(identity.appSk.slice(0, 66), ethWalletType);
|
|
1433
|
-
const permanentWallet = identity.appPsk ? (0, import_wallet.fromSecretKey)(identity.appPsk, walletType) : wallet3;
|
|
1434
|
-
const value = {
|
|
1435
|
-
instanceDid,
|
|
1436
|
-
wallet: wallet3,
|
|
1437
|
-
ethWallet: ethWallet2,
|
|
1438
|
-
permanentWallet,
|
|
1439
|
-
appInfo: identity.appInfo ?? {}
|
|
1440
|
-
};
|
|
1441
|
-
identityCache.set(instanceDid, { value, expiry: Date.now() + IDENTITY_TTL_MS });
|
|
1442
|
-
return value;
|
|
1443
|
-
}
|
|
1444
|
-
function getCachedTenantIdentity(instanceDidArg) {
|
|
1445
|
-
const instanceDid = instanceDidArg ?? getInstanceDid();
|
|
1446
|
-
const cached = identityCache.get(instanceDid);
|
|
1447
|
-
if (!cached || cached.expiry <= Date.now()) {
|
|
1448
|
-
throw new Error(
|
|
1449
|
-
`tenant identity for "${instanceDid}" is not resolved (fail-closed) \u2014 warmTenantIdentity must run in the request/job scope before any wallet access`
|
|
1450
|
-
);
|
|
1451
|
-
}
|
|
1452
|
-
return cached.value;
|
|
1453
|
-
}
|
|
1454
|
-
async function warmTenantIdentity(instanceDidArg) {
|
|
1455
|
-
if (!hasDynamicIdentity()) return;
|
|
1456
|
-
try {
|
|
1457
|
-
await resolveTenantIdentity(instanceDidArg);
|
|
1458
|
-
} catch (err) {
|
|
1459
|
-
logger_default.warn("[tenant-identity] warm failed \u2014 wallet access will fail-closed", {
|
|
1460
|
-
error: err?.message || String(err)
|
|
1461
|
-
});
|
|
1462
|
-
}
|
|
1463
|
-
}
|
|
1464
|
-
var Mcrypto, import_wallet, walletType, ethWalletType, IDENTITY_TTL_MS, identityCache;
|
|
1465
|
-
var init_tenant_identity = __esm({
|
|
1466
|
-
"../../blocklets/core/api/src/libs/did-connect/tenant-identity.ts"() {
|
|
1467
|
-
"use strict";
|
|
1468
|
-
Mcrypto = __toESM(require("@ocap/mcrypto"));
|
|
1469
|
-
import_wallet = require("@ocap/wallet");
|
|
1470
|
-
init_context();
|
|
1471
|
-
init_drivers();
|
|
1472
|
-
init_logger();
|
|
1473
|
-
walletType = {
|
|
1474
|
-
role: Mcrypto.types.RoleType.ROLE_APPLICATION,
|
|
1475
|
-
pk: Mcrypto.types.KeyType.ED25519,
|
|
1476
|
-
hash: Mcrypto.types.HashType.SHA3
|
|
1477
|
-
};
|
|
1478
|
-
ethWalletType = (0, import_wallet.WalletType)("ethereum");
|
|
1479
|
-
IDENTITY_TTL_MS = 5 * 60 * 1e3;
|
|
1480
|
-
identityCache = /* @__PURE__ */ new Map();
|
|
1481
|
-
}
|
|
1482
|
-
});
|
|
1483
|
-
|
|
1484
1596
|
// ../../blocklets/core/api/src/libs/auth.ts
|
|
1485
1597
|
var auth_exports = {};
|
|
1486
1598
|
__export(auth_exports, {
|
|
@@ -1534,10 +1646,9 @@ function makeWallet(...args) {
|
|
|
1534
1646
|
return getWallet(...args);
|
|
1535
1647
|
}
|
|
1536
1648
|
function activeBusinessWallet(chain) {
|
|
1537
|
-
const
|
|
1538
|
-
if (
|
|
1539
|
-
|
|
1540
|
-
return chain === "ethereum" ? identity.ethWallet : identity.wallet;
|
|
1649
|
+
const driver = getIdentityDriver();
|
|
1650
|
+
if (typeof driver.getBusinessWallet === "function") {
|
|
1651
|
+
return driver.getBusinessWallet(chain);
|
|
1541
1652
|
}
|
|
1542
1653
|
return chain === "ethereum" ? envEthWallet : envWallet;
|
|
1543
1654
|
}
|
|
@@ -1616,6 +1727,7 @@ var init_auth = __esm({
|
|
|
1616
1727
|
import_os = __toESM(require("os"));
|
|
1617
1728
|
import_path2 = __toESM(require("path"));
|
|
1618
1729
|
init_env();
|
|
1730
|
+
init_drivers();
|
|
1619
1731
|
init_logger();
|
|
1620
1732
|
notificationPatched = false;
|
|
1621
1733
|
envWallet = lazyProxy(() => makeWallet());
|
|
@@ -1630,6 +1742,10 @@ var init_auth = __esm({
|
|
|
1630
1742
|
return activeRuntime().createHandlers({ authenticator, tokenStorage });
|
|
1631
1743
|
});
|
|
1632
1744
|
blocklet = lazyProxy(() => {
|
|
1745
|
+
const driver = getIdentityDriver();
|
|
1746
|
+
if (typeof driver.directory === "function") {
|
|
1747
|
+
return driver.directory();
|
|
1748
|
+
}
|
|
1633
1749
|
ensureNotificationPatch();
|
|
1634
1750
|
const { BlockletService: BlockletService2 } = require("@blocklet/sdk/service/auth");
|
|
1635
1751
|
return new BlockletService2();
|
|
@@ -6528,7 +6644,7 @@ function authenticate({
|
|
|
6528
6644
|
if (embed && embedToken && embedId) {
|
|
6529
6645
|
let embedOk = false;
|
|
6530
6646
|
try {
|
|
6531
|
-
const w =
|
|
6647
|
+
const w = wallet;
|
|
6532
6648
|
const verified = await w.verify(embedId, embedToken);
|
|
6533
6649
|
if (!verified) {
|
|
6534
6650
|
return c.json({ error: `Invalid signature for embed: ${embedId}` }, 401);
|
|
@@ -6595,7 +6711,7 @@ function authenticate({
|
|
|
6595
6711
|
return c.json({ error: "Not authorized to perform this action" }, 403);
|
|
6596
6712
|
};
|
|
6597
6713
|
}
|
|
6598
|
-
var import_verify_sign, import_verify_session
|
|
6714
|
+
var import_verify_sign, import_verify_session;
|
|
6599
6715
|
var init_security = __esm({
|
|
6600
6716
|
"../../blocklets/core/api/src/middlewares/hono/security.ts"() {
|
|
6601
6717
|
"use strict";
|
|
@@ -6604,7 +6720,6 @@ var init_security = __esm({
|
|
|
6604
6720
|
init_env();
|
|
6605
6721
|
init_auth();
|
|
6606
6722
|
init_customer();
|
|
6607
|
-
wallet2 = () => wallet;
|
|
6608
6723
|
}
|
|
6609
6724
|
});
|
|
6610
6725
|
|
|
@@ -15072,9 +15187,9 @@ var init_remote_signer = __esm({
|
|
|
15072
15187
|
"use strict";
|
|
15073
15188
|
import_ethers = require("ethers");
|
|
15074
15189
|
RemoteSigner = class _RemoteSigner extends import_ethers.ethers.AbstractSigner {
|
|
15075
|
-
constructor(
|
|
15190
|
+
constructor(wallet2, provider) {
|
|
15076
15191
|
super(provider);
|
|
15077
|
-
this.wallet =
|
|
15192
|
+
this.wallet = wallet2;
|
|
15078
15193
|
}
|
|
15079
15194
|
/**
|
|
15080
15195
|
* Returns the address of the signer
|
|
@@ -29246,7 +29361,10 @@ function injectJobTenant(job) {
|
|
|
29246
29361
|
return { ...job, instance_did: context.getInstanceDid() };
|
|
29247
29362
|
}
|
|
29248
29363
|
async function warmThenRun(onJob, job) {
|
|
29249
|
-
const { warmTenantIdentity: warmTenantIdentity2 } = (
|
|
29364
|
+
const { warmTenantIdentity: warmTenantIdentity2 } = (
|
|
29365
|
+
// eslint-disable-next-line global-require
|
|
29366
|
+
(init_tenant_identity(), __toCommonJS(tenant_identity_exports))
|
|
29367
|
+
);
|
|
29250
29368
|
await warmTenantIdentity2();
|
|
29251
29369
|
return onJob(job);
|
|
29252
29370
|
}
|
|
@@ -39962,6 +40080,7 @@ var init_payment2 = __esm({
|
|
|
39962
40080
|
init_token();
|
|
39963
40081
|
init_audit();
|
|
39964
40082
|
init_auth();
|
|
40083
|
+
init_context();
|
|
39965
40084
|
init_dayjs();
|
|
39966
40085
|
init_error();
|
|
39967
40086
|
init_event2();
|
|
@@ -40905,16 +41024,23 @@ var init_payment2 = __esm({
|
|
|
40905
41024
|
capture_method: "automatic"
|
|
40906
41025
|
}
|
|
40907
41026
|
});
|
|
40908
|
-
|
|
40909
|
-
const
|
|
40910
|
-
|
|
40911
|
-
|
|
40912
|
-
|
|
40913
|
-
|
|
40914
|
-
|
|
40915
|
-
|
|
41027
|
+
for (const x of payments) {
|
|
41028
|
+
const dispatch = async () => {
|
|
41029
|
+
const supportAutoCharge = await PaymentMethod.supportAutoCharge(x.payment_method_id);
|
|
41030
|
+
if (supportAutoCharge === false) {
|
|
41031
|
+
return;
|
|
41032
|
+
}
|
|
41033
|
+
const exist = await paymentQueue.get(x.id);
|
|
41034
|
+
if (!exist) {
|
|
41035
|
+
paymentQueue.push({ id: x.id, job: { paymentIntentId: x.id } });
|
|
41036
|
+
}
|
|
41037
|
+
};
|
|
41038
|
+
try {
|
|
41039
|
+
await (x.instance_did ? withTenant(x.instance_did, dispatch) : dispatch());
|
|
41040
|
+
} catch (error) {
|
|
41041
|
+
logger_default.error("startPaymentQueue: re-queue failed", { id: x.id, error });
|
|
40916
41042
|
}
|
|
40917
|
-
}
|
|
41043
|
+
}
|
|
40918
41044
|
};
|
|
40919
41045
|
paymentQueue.on("failed", ({ id, job, error }) => {
|
|
40920
41046
|
logger_default.error("Payment job failed", { id, job, error });
|
|
@@ -72444,6 +72570,7 @@ var init_refund3 = __esm({
|
|
|
72444
72570
|
init_subscription2();
|
|
72445
72571
|
init_token();
|
|
72446
72572
|
init_auth();
|
|
72573
|
+
init_context();
|
|
72447
72574
|
init_error();
|
|
72448
72575
|
init_event2();
|
|
72449
72576
|
init_logger();
|
|
@@ -72821,13 +72948,20 @@ var init_refund3 = __esm({
|
|
|
72821
72948
|
});
|
|
72822
72949
|
startRefundQueue = async () => {
|
|
72823
72950
|
const refunds = await systemFindAll(Refund, { where: { status: ["pending"] } });
|
|
72824
|
-
|
|
72825
|
-
const
|
|
72826
|
-
|
|
72827
|
-
|
|
72828
|
-
|
|
72951
|
+
for (const x of refunds) {
|
|
72952
|
+
const dispatch = async () => {
|
|
72953
|
+
const exist = await refundQueue.get(x.id);
|
|
72954
|
+
if (!exist) {
|
|
72955
|
+
refundQueue.push({ id: x.id, job: { refundId: x.id } });
|
|
72956
|
+
logger_default.info("Re-queued pending refund", { id: x.id });
|
|
72957
|
+
}
|
|
72958
|
+
};
|
|
72959
|
+
try {
|
|
72960
|
+
await (x.instance_did ? withTenant(x.instance_did, dispatch) : dispatch());
|
|
72961
|
+
} catch (error) {
|
|
72962
|
+
logger_default.error("startRefundQueue: re-queue failed", { id: x.id, error });
|
|
72829
72963
|
}
|
|
72830
|
-
}
|
|
72964
|
+
}
|
|
72831
72965
|
};
|
|
72832
72966
|
refundQueue.on("failed", ({ id, job, error }) => {
|
|
72833
72967
|
logger_default.error("refund job failed", { id, job, error });
|
|
@@ -74779,6 +74913,7 @@ var init_payout3 = __esm({
|
|
|
74779
74913
|
init_payment();
|
|
74780
74914
|
init_queue2();
|
|
74781
74915
|
init_auth();
|
|
74916
|
+
init_context();
|
|
74782
74917
|
init_token();
|
|
74783
74918
|
init_payment_method();
|
|
74784
74919
|
init_payment_currency();
|
|
@@ -74825,23 +74960,30 @@ var init_payout3 = __esm({
|
|
|
74825
74960
|
status: "pending"
|
|
74826
74961
|
}
|
|
74827
74962
|
});
|
|
74828
|
-
|
|
74829
|
-
const
|
|
74830
|
-
|
|
74831
|
-
if (
|
|
74832
|
-
|
|
74833
|
-
|
|
74834
|
-
|
|
74835
|
-
|
|
74836
|
-
|
|
74837
|
-
|
|
74838
|
-
|
|
74839
|
-
|
|
74840
|
-
|
|
74841
|
-
|
|
74963
|
+
for (const payout of payouts) {
|
|
74964
|
+
const dispatch = async () => {
|
|
74965
|
+
const exist = await payoutQueue.get(payout.id);
|
|
74966
|
+
if (!exist) {
|
|
74967
|
+
if (payout.next_attempt && payout.next_attempt > dayjs_default().unix()) {
|
|
74968
|
+
payoutQueue.push({
|
|
74969
|
+
id: payout.id,
|
|
74970
|
+
job: { payoutId: payout.id, retryOnError: true },
|
|
74971
|
+
runAt: payout.next_attempt
|
|
74972
|
+
});
|
|
74973
|
+
} else {
|
|
74974
|
+
payoutQueue.push({
|
|
74975
|
+
id: payout.id,
|
|
74976
|
+
job: { payoutId: payout.id, retryOnError: true }
|
|
74977
|
+
});
|
|
74978
|
+
}
|
|
74842
74979
|
}
|
|
74980
|
+
};
|
|
74981
|
+
try {
|
|
74982
|
+
await (payout.instance_did ? withTenant(payout.instance_did, dispatch) : dispatch());
|
|
74983
|
+
} catch (error) {
|
|
74984
|
+
logger_default.error("startPayoutQueue: re-queue failed", { id: payout.id, error });
|
|
74843
74985
|
}
|
|
74844
|
-
}
|
|
74986
|
+
}
|
|
74845
74987
|
};
|
|
74846
74988
|
events.on("payout.created", async (payout) => {
|
|
74847
74989
|
if (payout.status === "pending") {
|
|
@@ -76183,16 +76325,23 @@ async function startCheckoutSessionQueue() {
|
|
|
76183
76325
|
expires_at: { [import_sequelize113.Op.lte]: now }
|
|
76184
76326
|
}
|
|
76185
76327
|
});
|
|
76186
|
-
|
|
76187
|
-
const
|
|
76188
|
-
|
|
76189
|
-
|
|
76190
|
-
|
|
76191
|
-
|
|
76192
|
-
|
|
76193
|
-
|
|
76328
|
+
for (const checkoutSession of checkoutSessions) {
|
|
76329
|
+
const dispatch = async () => {
|
|
76330
|
+
const exist = await checkoutSessionQueue.get(checkoutSession.id);
|
|
76331
|
+
if (!exist) {
|
|
76332
|
+
checkoutSessionQueue.push({
|
|
76333
|
+
id: checkoutSession.id,
|
|
76334
|
+
job: { id: checkoutSession.id, action: "expire" },
|
|
76335
|
+
runAt: checkoutSession.expires_at
|
|
76336
|
+
});
|
|
76337
|
+
}
|
|
76338
|
+
};
|
|
76339
|
+
try {
|
|
76340
|
+
await (checkoutSession.instance_did ? withTenant(checkoutSession.instance_did, dispatch) : dispatch());
|
|
76341
|
+
} catch (error) {
|
|
76342
|
+
logger_default.error("startCheckoutSessionQueue: re-queue failed", { id: checkoutSession.id, error });
|
|
76194
76343
|
}
|
|
76195
|
-
}
|
|
76344
|
+
}
|
|
76196
76345
|
}
|
|
76197
76346
|
var import_sequelize113, checkoutSessionQueue;
|
|
76198
76347
|
var init_checkout_session2 = __esm({
|
|
@@ -76203,6 +76352,7 @@ var init_checkout_session2 = __esm({
|
|
|
76203
76352
|
init_nft();
|
|
76204
76353
|
init_passport();
|
|
76205
76354
|
init_shared();
|
|
76355
|
+
init_context();
|
|
76206
76356
|
init_dayjs();
|
|
76207
76357
|
init_event2();
|
|
76208
76358
|
init_logger();
|
|
@@ -76974,7 +77124,9 @@ function createFetchHandler(app42) {
|
|
|
76974
77124
|
const method = request.method.toUpperCase();
|
|
76975
77125
|
const hasBody = method !== "GET" && method !== "HEAD";
|
|
76976
77126
|
const body = hasBody ? await request.arrayBuffer() : void 0;
|
|
76977
|
-
|
|
77127
|
+
const headers = new Headers(request.headers);
|
|
77128
|
+
if (!headers.has("x-path-prefix")) headers.set("x-path-prefix", basePath);
|
|
77129
|
+
return app42.fetch(new Request(url.toString(), { method, headers, body }));
|
|
76978
77130
|
}
|
|
76979
77131
|
return app42.fetch(request);
|
|
76980
77132
|
});
|
|
@@ -77095,7 +77247,9 @@ async function bootstrapTenant(instanceDid) {
|
|
|
77095
77247
|
const { ensureWebhookRegistered: ensureWebhookRegistered2 } = (init_setup(), __toCommonJS(setup_exports));
|
|
77096
77248
|
const { ensureCreateOverdraftProtectionPrices: ensureCreateOverdraftProtectionPrices2 } = (init_overdraft_protection(), __toCommonJS(overdraft_protection_exports));
|
|
77097
77249
|
const { scheduleHealthChecks: scheduleHealthChecks2 } = (init_exchange_rate_health(), __toCommonJS(exchange_rate_health_exports));
|
|
77250
|
+
const { warmTenantIdentity: warmTenantIdentity2 } = (init_tenant_identity(), __toCommonJS(tenant_identity_exports));
|
|
77098
77251
|
await context.withTenant(instanceDid, async () => {
|
|
77252
|
+
await warmTenantIdentity2(instanceDid);
|
|
77099
77253
|
await Promise.resolve(syncCurrencyLogo2()).catch(
|
|
77100
77254
|
(error) => logger_default.error("bootstrapTenant: syncCurrencyLogo failed", { instanceDid, error })
|
|
77101
77255
|
);
|
|
@@ -77407,10 +77561,12 @@ __export(src_exports, {
|
|
|
77407
77561
|
createD1LocksDriver: () => createD1LocksDriver2,
|
|
77408
77562
|
createDefaultIdentityDriver: () => createDefaultIdentityDriver2,
|
|
77409
77563
|
createDefaultSecretsDriver: () => createDefaultSecretsDriver2,
|
|
77564
|
+
createEmbeddedIdentityServices: () => createEmbeddedIdentityServices2,
|
|
77410
77565
|
createEmbeddedPaymentService: () => createEmbeddedPaymentService2,
|
|
77411
77566
|
createKeyringSecretsDriver: () => createKeyringSecretsDriver2,
|
|
77412
77567
|
createMemoryLocksDriver: () => createMemoryLocksDriver2,
|
|
77413
77568
|
createNodeDbDriver: () => createNodeDbDriver2,
|
|
77569
|
+
createNodeDidConnectRuntime: () => createNodeDidConnectRuntime2,
|
|
77414
77570
|
createNodeStaticHandler: () => createNodeStaticHandler2,
|
|
77415
77571
|
getCronDriver: () => getCronDriver2,
|
|
77416
77572
|
getIdentityDriver: () => getIdentityDriver2,
|
|
@@ -77511,6 +77667,14 @@ function createNodeStaticHandler2(webRoot) {
|
|
|
77511
77667
|
const mod = (init_serve_static_arc(), __toCommonJS(serve_static_arc_exports));
|
|
77512
77668
|
return mod.createNodeStaticHandler(webRoot);
|
|
77513
77669
|
}
|
|
77670
|
+
function createNodeDidConnectRuntime2(opts) {
|
|
77671
|
+
const mod = (init_did_connect_runtime_node(), __toCommonJS(did_connect_runtime_node_exports));
|
|
77672
|
+
return mod.createNodeDidConnectRuntime(opts);
|
|
77673
|
+
}
|
|
77674
|
+
function createEmbeddedIdentityServices2() {
|
|
77675
|
+
const mod = (init_tenant_identity(), __toCommonJS(tenant_identity_exports));
|
|
77676
|
+
return mod.createEmbeddedIdentityServices();
|
|
77677
|
+
}
|
|
77514
77678
|
function createEmbeddedPaymentService2(slots) {
|
|
77515
77679
|
const core = (init_service2(), __toCommonJS(service_exports));
|
|
77516
77680
|
return core.createEmbeddedPaymentService(slots);
|
|
@@ -77525,10 +77689,12 @@ function createEmbeddedPaymentService2(slots) {
|
|
|
77525
77689
|
createD1LocksDriver,
|
|
77526
77690
|
createDefaultIdentityDriver,
|
|
77527
77691
|
createDefaultSecretsDriver,
|
|
77692
|
+
createEmbeddedIdentityServices,
|
|
77528
77693
|
createEmbeddedPaymentService,
|
|
77529
77694
|
createKeyringSecretsDriver,
|
|
77530
77695
|
createMemoryLocksDriver,
|
|
77531
77696
|
createNodeDbDriver,
|
|
77697
|
+
createNodeDidConnectRuntime,
|
|
77532
77698
|
createNodeStaticHandler,
|
|
77533
77699
|
getCronDriver,
|
|
77534
77700
|
getIdentityDriver,
|