@camstack/system 1.2.376 → 1.2.377
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/addon-runner.js +9 -4
- package/dist/addon-runner.mjs +10 -5
- package/dist/addon-utils.js +1 -1
- package/dist/addon-utils.mjs +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/calendars/calendars.addon.js +1 -1
- package/dist/builtins/calendars/calendars.addon.mjs +1 -1
- package/dist/builtins/camera-grid/index.js +1 -1
- package/dist/builtins/camera-grid/index.mjs +1 -1
- package/dist/builtins/composer/composer.addon.js +2 -2
- package/dist/builtins/composer/composer.addon.mjs +2 -2
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
- package/dist/builtins/device-manager/device-config-secrets.d.ts +21 -0
- package/dist/builtins/device-manager/device-manager.addon.js +85 -6
- package/dist/builtins/device-manager/device-manager.addon.mjs +85 -6
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/keychain/index.d.ts +1 -0
- package/dist/builtins/keychain/index.js +1416 -0
- package/dist/builtins/keychain/index.mjs +1409 -0
- package/dist/builtins/keychain/key-sources.d.ts +37 -0
- package/dist/builtins/keychain/keychain-crypto.d.ts +28 -0
- package/dist/builtins/keychain/keychain-service.d.ts +103 -0
- package/dist/builtins/keychain/keychain-store.d.ts +82 -0
- package/dist/builtins/keychain/keychain-usage.d.ts +6 -0
- package/dist/builtins/keychain/keychain.addon.d.ts +11 -0
- package/dist/builtins/keychain/platform-key-source.d.ts +24 -0
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +19 -2
- package/dist/builtins/local-auth/local-auth.addon.mjs +19 -2
- package/dist/builtins/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- package/dist/builtins/storage-orchestrator/location-store.d.ts +6 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +15 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +74 -14
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +74 -14
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{child-cap-dispatch-8qMgog1O.mjs → child-cap-dispatch-CgmOo0yl.mjs} +170 -27
- package/dist/{child-cap-dispatch-BWtaSmWf.js → child-cap-dispatch-DlDSoqm1.js} +198 -25
- package/dist/{composition-sources-DW7CgMsg.js → composition-sources-BNyXPSs_.js} +1 -1
- package/dist/{composition-sources-zxQPPtP_.mjs → composition-sources-D39bl0nP.mjs} +1 -1
- package/dist/{dist-D732NygW.mjs → dist-BWNoS-1S.mjs} +2195 -105
- package/dist/{dist-BcUWQGr9.js → dist-D_a9mUiM.js} +2260 -104
- package/dist/{event-loop-stall-monitor-8W4yWNVW.mjs → event-loop-stall-monitor-ClPhfx7Y.mjs} +1 -1
- package/dist/{event-loop-stall-monitor-QX4RjNe7.js → event-loop-stall-monitor-DuOn8H1n.js} +1 -1
- package/dist/{hub-cap-forward-BdT320dq.mjs → hub-cap-forward-CH6_VWVO.mjs} +13 -4
- package/dist/{hub-cap-forward-DmHNjbB0.js → hub-cap-forward-COCmYaup.js} +13 -4
- package/dist/index.d.ts +2 -0
- package/dist/index.js +20 -6
- package/dist/index.mjs +13 -7
- package/dist/kernel/config-schema.d.ts +4 -0
- package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +6 -0
- package/dist/kernel/transport/cap-route-resolver.d.ts +19 -0
- package/dist/kernel/transport/hub-cap-forward.d.ts +22 -1
- package/dist/kernel/transport/index.d.ts +2 -2
- package/dist/kernel/transport/local-child-registry.d.ts +4 -3
- package/dist/logging/log-redactor.d.ts +9 -0
- package/dist/platform-key-source-BWlq0jjn.mjs +23 -0
- package/dist/platform-key-source-Di7HrlGR.js +40 -0
- package/dist/{retired-settings-keys-MaESpO18.js → retired-settings-keys-CDyOGAje.js} +1 -1
- package/dist/{retired-settings-keys-CxPOg7BF.mjs → retired-settings-keys-iGcmzwLV.mjs} +1 -1
- package/package.json +17 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-D_a9mUiM.js");
|
|
3
3
|
const require_proc_stat = require("./proc-stat-DL-WUOhl.js");
|
|
4
|
-
require("./hub-cap-forward-
|
|
4
|
+
require("./hub-cap-forward-COCmYaup.js");
|
|
5
5
|
let node_crypto = require("node:crypto");
|
|
6
6
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
7
7
|
let _camstack_types_node = require("@camstack/types/node");
|
|
@@ -3178,6 +3178,118 @@ function createAddonPeerBytesFacility(args) {
|
|
|
3178
3178
|
};
|
|
3179
3179
|
}
|
|
3180
3180
|
//#endregion
|
|
3181
|
+
//#region src/logging/log-redactor.ts
|
|
3182
|
+
/**
|
|
3183
|
+
* The central log redactor (D787 §8). Every line passes through it before any
|
|
3184
|
+
* destination, ring buffer or subscriber sees it — in hub-main's `LogManager`,
|
|
3185
|
+
* in a forked runner's UDS logger (which alone knows the values that runner
|
|
3186
|
+
* resolved), and on an agent before a child's line is forwarded to the hub.
|
|
3187
|
+
*
|
|
3188
|
+
* Three nets, cheapest first:
|
|
3189
|
+
* 1. KNOWN VALUES — every secret this process resolved through `ctx.secrets`
|
|
3190
|
+
* is replaced wherever it appears (`‹secret:<ref hash>›`). The only net
|
|
3191
|
+
* that catches a value inside a library's error message.
|
|
3192
|
+
* 2. URL CREDENTIALS — `user:pass@` and credential query params in any URL
|
|
3193
|
+
* inside a string (`maskUrlCredentials`), and the value after a
|
|
3194
|
+
* credential-looking CLI flag (`--token X`, `--auth-key=X`).
|
|
3195
|
+
* 3. KEY NAMES — a `meta` value under a credential-named key, at any depth.
|
|
3196
|
+
*
|
|
3197
|
+
* Key names are a LOG heuristic only: whether a field is STORED in the
|
|
3198
|
+
* keychain is decided by its schema type, never by its name.
|
|
3199
|
+
*
|
|
3200
|
+
* Hot path: a line with no meta, no `://`, no `--` and no registered values
|
|
3201
|
+
* costs a few `includes` checks.
|
|
3202
|
+
*/
|
|
3203
|
+
var REDACTED = "***";
|
|
3204
|
+
/** Credential-named keys. Substring, case-insensitive; only STRING values are replaced. */
|
|
3205
|
+
var SECRET_KEY_SUBSTRINGS = [
|
|
3206
|
+
"password",
|
|
3207
|
+
"passwd",
|
|
3208
|
+
"secret",
|
|
3209
|
+
"token",
|
|
3210
|
+
"apikey",
|
|
3211
|
+
"api_key",
|
|
3212
|
+
"authkey",
|
|
3213
|
+
"auth_key",
|
|
3214
|
+
"privatekey",
|
|
3215
|
+
"private_key",
|
|
3216
|
+
"passphrase",
|
|
3217
|
+
"credential",
|
|
3218
|
+
"cookie"
|
|
3219
|
+
];
|
|
3220
|
+
/** True when a meta key names a credential. */
|
|
3221
|
+
function isCredentialKeyName(key) {
|
|
3222
|
+
const lower = key.toLowerCase();
|
|
3223
|
+
return SECRET_KEY_SUBSTRINGS.some((needle) => lower.includes(needle));
|
|
3224
|
+
}
|
|
3225
|
+
var URL_IN_TEXT = /\b[a-z][a-z0-9+.-]*:\/\/[^\s"'<>`]+/gi;
|
|
3226
|
+
var CREDENTIAL_FLAG = /(--(?:token|auth-?key|password|passwd|pass|secret|api-?key|access-?token|refresh-?token)(?:=|\s+))(\S+)/gi;
|
|
3227
|
+
/** Redact one free-form string. */
|
|
3228
|
+
function redactLogText(text) {
|
|
3229
|
+
let out = require_dist.scrubKnownSecrets(text);
|
|
3230
|
+
if (out.includes("://")) out = out.replace(URL_IN_TEXT, (url) => require_dist.maskUrlCredentials(url));
|
|
3231
|
+
if (out.includes("--")) out = out.replace(CREDENTIAL_FLAG, (_m, flag, value) => value.startsWith("‹secret:") ? `${flag}${value}` : `${flag}${REDACTED}`);
|
|
3232
|
+
return out;
|
|
3233
|
+
}
|
|
3234
|
+
/** Bounds on the meta walk — a log line is not a place to traverse a graph. */
|
|
3235
|
+
var MAX_DEPTH = 8;
|
|
3236
|
+
var MAX_NODES = 2e3;
|
|
3237
|
+
/**
|
|
3238
|
+
* Redact a value, returning the SAME reference when nothing in it changed —
|
|
3239
|
+
* most lines carry clean meta, and copying every one would put an allocation
|
|
3240
|
+
* per log line on hub-main's event loop.
|
|
3241
|
+
*/
|
|
3242
|
+
function redactValue(value, depth, budget, seen) {
|
|
3243
|
+
if (budget.nodes++ > MAX_NODES) return value;
|
|
3244
|
+
if (typeof value === "string") return redactLogText(value);
|
|
3245
|
+
if (value === null || typeof value !== "object") return value;
|
|
3246
|
+
if (depth >= MAX_DEPTH || seen.has(value)) return value;
|
|
3247
|
+
if (value instanceof Error) {
|
|
3248
|
+
const message = redactLogText(value.message);
|
|
3249
|
+
return message === value.message ? value : message;
|
|
3250
|
+
}
|
|
3251
|
+
if (value instanceof Date || ArrayBuffer.isView(value) || value instanceof ArrayBuffer) return value;
|
|
3252
|
+
seen.add(value);
|
|
3253
|
+
if (Array.isArray(value)) {
|
|
3254
|
+
let copy = null;
|
|
3255
|
+
for (let i = 0; i < value.length; i++) {
|
|
3256
|
+
const item = value[i];
|
|
3257
|
+
const next = redactValue(item, depth + 1, budget, seen);
|
|
3258
|
+
if (next !== item) {
|
|
3259
|
+
copy ??= [...value];
|
|
3260
|
+
copy[i] = next;
|
|
3261
|
+
}
|
|
3262
|
+
}
|
|
3263
|
+
return copy ?? value;
|
|
3264
|
+
}
|
|
3265
|
+
let copy = null;
|
|
3266
|
+
for (const [key, child] of Object.entries(value)) {
|
|
3267
|
+
const next = typeof child === "string" && child.length > 0 && isCredentialKeyName(key) ? REDACTED : redactValue(child, depth + 1, budget, seen);
|
|
3268
|
+
if (next !== child) {
|
|
3269
|
+
copy ??= { ...value };
|
|
3270
|
+
copy[key] = next;
|
|
3271
|
+
}
|
|
3272
|
+
}
|
|
3273
|
+
return copy ?? value;
|
|
3274
|
+
}
|
|
3275
|
+
/** Redact a `meta` record; the same object back when it was already clean. */
|
|
3276
|
+
function redactLogMeta(meta) {
|
|
3277
|
+
const out = redactValue(meta, 0, { nodes: 0 }, /* @__PURE__ */ new WeakSet());
|
|
3278
|
+
if (out === meta) return meta;
|
|
3279
|
+
return out !== null && typeof out === "object" && !Array.isArray(out) ? Object.fromEntries(Object.entries(out)) : meta;
|
|
3280
|
+
}
|
|
3281
|
+
/** Redact a whole entry: message and meta. Tags are identifiers, left alone. */
|
|
3282
|
+
function redactLogEntry(entry) {
|
|
3283
|
+
const message = redactLogText(entry.message);
|
|
3284
|
+
const meta = entry.meta !== void 0 ? redactLogMeta(entry.meta) : void 0;
|
|
3285
|
+
if (message === entry.message && meta === entry.meta) return entry;
|
|
3286
|
+
return {
|
|
3287
|
+
...entry,
|
|
3288
|
+
message,
|
|
3289
|
+
...meta !== void 0 ? { meta } : {}
|
|
3290
|
+
};
|
|
3291
|
+
}
|
|
3292
|
+
//#endregion
|
|
3181
3293
|
//#region src/kernel/deps/npm-command.ts
|
|
3182
3294
|
/**
|
|
3183
3295
|
* npm invocation resolver — makes "is npm available?" a solved problem for
|
|
@@ -4773,12 +4885,13 @@ function createBrokerDeviceManagerApi(opts) {
|
|
|
4773
4885
|
bindRuntimeState: (state) => {
|
|
4774
4886
|
runtimeStateRef = state;
|
|
4775
4887
|
},
|
|
4776
|
-
persistConfig: async (data) => {
|
|
4888
|
+
persistConfig: async (data, options) => {
|
|
4777
4889
|
const dataRecord = toPlainRecord(data);
|
|
4778
4890
|
if (!dataRecord) throw new Error(`worker-device-manager: persistConfig expected a plain object, got ${data === null ? "null" : typeof data}`);
|
|
4779
4891
|
await callDeviceManager(api, "persistConfig", {
|
|
4780
4892
|
deviceId: id,
|
|
4781
|
-
data: dataRecord
|
|
4893
|
+
data: dataRecord,
|
|
4894
|
+
...options?.secretConfigPaths !== void 0 ? { secretConfigPaths: [...options.secretConfigPaths] } : {}
|
|
4782
4895
|
});
|
|
4783
4896
|
},
|
|
4784
4897
|
initialRuntimeState,
|
|
@@ -8301,22 +8414,33 @@ function extractNodeId(args) {
|
|
|
8301
8414
|
return typeof raw === "string" && raw.length > 0 ? raw : void 0;
|
|
8302
8415
|
}
|
|
8303
8416
|
/**
|
|
8304
|
-
*
|
|
8417
|
+
* Stamp the CALLER identity into a cap call's args — the SAME "provider
|
|
8305
8418
|
* destructures what it needs and ignores the rest" convention
|
|
8306
8419
|
* {@link extractNodeId} already relies on for the inline `nodeId` pin.
|
|
8307
|
-
*
|
|
8308
|
-
*
|
|
8309
|
-
*
|
|
8310
|
-
*
|
|
8311
|
-
*
|
|
8312
|
-
|
|
8313
|
-
|
|
8314
|
-
|
|
8420
|
+
*
|
|
8421
|
+
* The stamp is the transport's, never the caller's (D787):
|
|
8422
|
+
* - a stamp (`callerAddonId` known to the transport) OVERWRITES whatever the
|
|
8423
|
+
* args carry under that key;
|
|
8424
|
+
* - NO stamp STRIPS the key: a call that crossed a wire with no identity the
|
|
8425
|
+
* transport can vouch for must not arrive carrying a claimed one. The
|
|
8426
|
+
* keychain owner-checks on this field, and until 2026-10-08 an unstamped
|
|
8427
|
+
* call let a child's own `callerAddonId` through untouched.
|
|
8428
|
+
*
|
|
8429
|
+
* A hub in-process caller never reaches this function (`localProviderLink`
|
|
8430
|
+
* calls the provider directly), which is the one place a stated identity is
|
|
8431
|
+
* trusted. A non-object `args` (or `null`/array) is returned unchanged: there
|
|
8432
|
+
* is nowhere to attach a key, and nowhere one could hide.
|
|
8433
|
+
*/
|
|
8434
|
+
function stampCallerAddonId(args, callerAddonId) {
|
|
8315
8435
|
if (args === null || typeof args !== "object" || Array.isArray(args)) return args;
|
|
8316
|
-
return {
|
|
8436
|
+
if (callerAddonId !== void 0) return {
|
|
8317
8437
|
...args,
|
|
8318
8438
|
callerAddonId
|
|
8319
8439
|
};
|
|
8440
|
+
if (!Object.prototype.hasOwnProperty.call(args, "callerAddonId")) return args;
|
|
8441
|
+
const rest = {};
|
|
8442
|
+
for (const [key, value] of Object.entries(args)) if (key !== "callerAddonId") rest[key] = value;
|
|
8443
|
+
return rest;
|
|
8320
8444
|
}
|
|
8321
8445
|
var CapRouteResolver = class {
|
|
8322
8446
|
hubNodeId;
|
|
@@ -8420,7 +8544,7 @@ var CapRouteResolver = class {
|
|
|
8420
8544
|
*/
|
|
8421
8545
|
async dispatchInner(route, method, args, addonId, callerAddonId) {
|
|
8422
8546
|
switch (route.kind) {
|
|
8423
|
-
case "hub-in-process": return route.ref.invoke(method,
|
|
8547
|
+
case "hub-in-process": return route.ref.invoke(method, stampCallerAddonId(args, callerAddonId));
|
|
8424
8548
|
case "hub-local-uds": {
|
|
8425
8549
|
const registry = this.hubLocalRegistry;
|
|
8426
8550
|
if (registry === null) throw new CapRouteError(route.capName, method, {
|
|
@@ -8980,7 +9104,8 @@ var LocalChildRegistry = class {
|
|
|
8980
9104
|
method: input.method,
|
|
8981
9105
|
args: input.args,
|
|
8982
9106
|
...input.deviceId !== void 0 ? { deviceId: input.deviceId } : {},
|
|
8983
|
-
...input.addonId !== void 0 ? { addonId: input.addonId } : {}
|
|
9107
|
+
...input.addonId !== void 0 ? { addonId: input.addonId } : {},
|
|
9108
|
+
...input.callerAddonId !== void 0 ? { callerAddonId: input.callerAddonId } : {}
|
|
8984
9109
|
};
|
|
8985
9110
|
}
|
|
8986
9111
|
listChildren() {
|
|
@@ -9254,7 +9379,8 @@ var LocalChildRegistry = class {
|
|
|
9254
9379
|
capName: out.capName,
|
|
9255
9380
|
method: out.method,
|
|
9256
9381
|
args: void 0,
|
|
9257
|
-
...out.deviceId !== void 0 ? { deviceId: out.deviceId } : {}
|
|
9382
|
+
...out.deviceId !== void 0 ? { deviceId: out.deviceId } : {},
|
|
9383
|
+
...childId !== null ? { callerAddonId: childId } : {}
|
|
9258
9384
|
};
|
|
9259
9385
|
const declared = this.capTimeoutMs?.(out.capName, out.method);
|
|
9260
9386
|
return entry.channel.request(forward, {
|
|
@@ -9479,13 +9605,14 @@ var LocalChildClient = class {
|
|
|
9479
9605
|
channel.onRequest(async (body, payload) => {
|
|
9480
9606
|
const msg = body;
|
|
9481
9607
|
if (msg.kind === "cap-call") {
|
|
9482
|
-
const args = payload !== void 0 ? unpackPayload(payload) : msg.args;
|
|
9608
|
+
const args = stampCallerAddonId(payload !== void 0 ? unpackPayload(payload) : msg.args, msg.callerAddonId);
|
|
9483
9609
|
const result = await this.options.dispatch({
|
|
9484
9610
|
capName: msg.capName,
|
|
9485
9611
|
method: msg.method,
|
|
9486
9612
|
args,
|
|
9487
9613
|
...msg.deviceId !== void 0 ? { deviceId: msg.deviceId } : {},
|
|
9488
|
-
...msg.addonId !== void 0 ? { addonId: msg.addonId } : {}
|
|
9614
|
+
...msg.addonId !== void 0 ? { addonId: msg.addonId } : {},
|
|
9615
|
+
...msg.callerAddonId !== void 0 ? { callerAddonId: msg.callerAddonId } : {}
|
|
9489
9616
|
});
|
|
9490
9617
|
if (payload !== void 0 && result !== void 0) return new PayloadReply(void 0, packPayload(result));
|
|
9491
9618
|
return result;
|
|
@@ -9668,12 +9795,12 @@ function createUdsLoggerWithState(client, addonId, nodeId, levelState, scope, ta
|
|
|
9668
9795
|
} : baseTags;
|
|
9669
9796
|
const entry = {
|
|
9670
9797
|
level,
|
|
9671
|
-
message,
|
|
9798
|
+
message: redactLogText(message),
|
|
9672
9799
|
addonId,
|
|
9673
9800
|
nodeId,
|
|
9674
9801
|
...scope !== void 0 ? { scope } : {},
|
|
9675
9802
|
tags: mergedTags,
|
|
9676
|
-
...extras?.meta !== void 0 ? { meta: extras.meta } : {}
|
|
9803
|
+
...extras?.meta !== void 0 ? { meta: redactLogMeta(extras.meta) } : {}
|
|
9677
9804
|
};
|
|
9678
9805
|
client.sendLog(entry);
|
|
9679
9806
|
}
|
|
@@ -9895,7 +10022,8 @@ function createParentUnownedCallHandler(deps) {
|
|
|
9895
10022
|
method: input.method,
|
|
9896
10023
|
args: input.args,
|
|
9897
10024
|
deviceId,
|
|
9898
|
-
native: true
|
|
10025
|
+
native: true,
|
|
10026
|
+
...input.callerAddonId !== void 0 ? { callerAddonId: input.callerAddonId } : {}
|
|
9899
10027
|
});
|
|
9900
10028
|
throw new Error(`no native provider for capability "${input.capName}" on device ${String(deviceId)}`);
|
|
9901
10029
|
}
|
|
@@ -9955,7 +10083,8 @@ function createParentUnownedCallHandler(deps) {
|
|
|
9955
10083
|
method: input.method,
|
|
9956
10084
|
args: input.args,
|
|
9957
10085
|
deviceId,
|
|
9958
|
-
nodeId: owner.nodeId
|
|
10086
|
+
nodeId: owner.nodeId,
|
|
10087
|
+
...input.callerAddonId !== void 0 ? { callerAddonId: input.callerAddonId } : {}
|
|
9959
10088
|
});
|
|
9960
10089
|
return await brokerCallForCap(deps.broker, input.capName, input.method, input.args, { nodeId: owner.nodeId });
|
|
9961
10090
|
}
|
|
@@ -9965,7 +10094,8 @@ function createParentUnownedCallHandler(deps) {
|
|
|
9965
10094
|
method: input.method,
|
|
9966
10095
|
args: input.args,
|
|
9967
10096
|
...deviceId !== void 0 ? { deviceId } : {},
|
|
9968
|
-
...nodeId !== void 0 ? { nodeId } : {}
|
|
10097
|
+
...nodeId !== void 0 ? { nodeId } : {},
|
|
10098
|
+
...input.callerAddonId !== void 0 ? { callerAddonId: input.callerAddonId } : {}
|
|
9969
10099
|
});
|
|
9970
10100
|
if (deps.isCoreServiceCap !== void 0 && !deps.isCoreServiceCap(input.capName)) {
|
|
9971
10101
|
for (let attempt = 1; attempt <= ADDON_CAP_RETRY_ATTEMPTS; attempt++) {
|
|
@@ -9976,7 +10106,7 @@ function createParentUnownedCallHandler(deps) {
|
|
|
9976
10106
|
...nodeId !== void 0 ? { nodeId } : {},
|
|
9977
10107
|
...deviceId !== void 0 ? { deviceId } : {}
|
|
9978
10108
|
});
|
|
9979
|
-
return await retryResolver.dispatch(route, input.method, input.args);
|
|
10109
|
+
return input.callerAddonId !== void 0 ? await retryResolver.dispatch(route, input.method, input.args, void 0, input.callerAddonId) : await retryResolver.dispatch(route, input.method, input.args);
|
|
9980
10110
|
} catch (err) {
|
|
9981
10111
|
if (!(err instanceof CapRouteError) || err.reason !== "no-provider") throw err;
|
|
9982
10112
|
}
|
|
@@ -11939,6 +12069,19 @@ async function buildAddonContext(runtime, declaration, dataDir, options) {
|
|
|
11939
12069
|
api,
|
|
11940
12070
|
deps: new AddonDepsManager(addonDataDir, scopedLogger),
|
|
11941
12071
|
settings: settingsView,
|
|
12072
|
+
secrets: (0, _camstack_types_addon.createSecretsAccess)({
|
|
12073
|
+
owner: addonId,
|
|
12074
|
+
transport: {
|
|
12075
|
+
put: (input) => api.keychain.put.mutate({
|
|
12076
|
+
ref: input.ref,
|
|
12077
|
+
value: input.value
|
|
12078
|
+
}),
|
|
12079
|
+
resolve: (input) => api.keychain.resolve.query({ refs: [...input.refs] }),
|
|
12080
|
+
delete: (input) => api.keychain.delete.mutate({ refs: [...input.refs] }),
|
|
12081
|
+
getState: () => api.keychain.getState.query({})
|
|
12082
|
+
},
|
|
12083
|
+
eventBus: scopedEventBus
|
|
12084
|
+
}),
|
|
11942
12085
|
kernel: (() => {
|
|
11943
12086
|
const streamProbe = runtime.mode === "broker" ? {
|
|
11944
12087
|
probe: (url, probeOptions) => runtime.broker.call("$stream-probe.probe", {
|
|
@@ -13557,6 +13700,12 @@ Object.defineProperty(exports, "isArrayBufferCensusReport", {
|
|
|
13557
13700
|
return isArrayBufferCensusReport;
|
|
13558
13701
|
}
|
|
13559
13702
|
});
|
|
13703
|
+
Object.defineProperty(exports, "isCredentialKeyName", {
|
|
13704
|
+
enumerable: true,
|
|
13705
|
+
get: function() {
|
|
13706
|
+
return isCredentialKeyName;
|
|
13707
|
+
}
|
|
13708
|
+
});
|
|
13560
13709
|
Object.defineProperty(exports, "killOwnRunnerGroupAfterParentLoss", {
|
|
13561
13710
|
enumerable: true,
|
|
13562
13711
|
get: function() {
|
|
@@ -13629,6 +13778,24 @@ Object.defineProperty(exports, "recordSocketFrame", {
|
|
|
13629
13778
|
return recordSocketFrame;
|
|
13630
13779
|
}
|
|
13631
13780
|
});
|
|
13781
|
+
Object.defineProperty(exports, "redactLogEntry", {
|
|
13782
|
+
enumerable: true,
|
|
13783
|
+
get: function() {
|
|
13784
|
+
return redactLogEntry;
|
|
13785
|
+
}
|
|
13786
|
+
});
|
|
13787
|
+
Object.defineProperty(exports, "redactLogMeta", {
|
|
13788
|
+
enumerable: true,
|
|
13789
|
+
get: function() {
|
|
13790
|
+
return redactLogMeta;
|
|
13791
|
+
}
|
|
13792
|
+
});
|
|
13793
|
+
Object.defineProperty(exports, "redactLogText", {
|
|
13794
|
+
enumerable: true,
|
|
13795
|
+
get: function() {
|
|
13796
|
+
return redactLogText;
|
|
13797
|
+
}
|
|
13798
|
+
});
|
|
13632
13799
|
Object.defineProperty(exports, "registerEventBusService", {
|
|
13633
13800
|
enumerable: true,
|
|
13634
13801
|
get: function() {
|
|
@@ -13737,6 +13904,12 @@ Object.defineProperty(exports, "socketDirectionMessages", {
|
|
|
13737
13904
|
return socketDirectionMessages;
|
|
13738
13905
|
}
|
|
13739
13906
|
});
|
|
13907
|
+
Object.defineProperty(exports, "stampCallerAddonId", {
|
|
13908
|
+
enumerable: true,
|
|
13909
|
+
get: function() {
|
|
13910
|
+
return stampCallerAddonId;
|
|
13911
|
+
}
|
|
13912
|
+
});
|
|
13740
13913
|
Object.defineProperty(exports, "startHeapWatch", {
|
|
13741
13914
|
enumerable: true,
|
|
13742
13915
|
get: function() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { cr as errMsg, tr as compositionSourceKey } from "./dist-BWNoS-1S.mjs";
|
|
2
2
|
//#region src/builtins/core-blocks/composition-sources.ts
|
|
3
3
|
/**
|
|
4
4
|
* Describe what a composition reads and writes for SAVE-time validation
|