@camstack/server 1.2.33 → 1.2.35
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.
|
@@ -1899,6 +1899,24 @@ function createCapRouter_dataStoreProvider(getProvider, createRemoteProxy) {
|
|
|
1899
1899
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
1900
1900
|
return p.delete(methodInput);
|
|
1901
1901
|
}),
|
|
1902
|
+
deleteWhere: trpc_middleware_js_1.protectedProcedure
|
|
1903
|
+
.input(types_33.dataStoreProviderCapability.methods.deleteWhere.input.loose())
|
|
1904
|
+
.output(types_33.dataStoreProviderCapability.methods.deleteWhere.output)
|
|
1905
|
+
.mutation(async ({ input, ctx }) => {
|
|
1906
|
+
const { nodeId, addonId, ...methodInput } = input;
|
|
1907
|
+
const p = resolveProvider('data-store-provider', nodeId, () => getProvider(ctx, addonId), createRemoteProxy);
|
|
1908
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
1909
|
+
return p.deleteWhere(methodInput);
|
|
1910
|
+
}),
|
|
1911
|
+
updateWhere: trpc_middleware_js_1.protectedProcedure
|
|
1912
|
+
.input(types_33.dataStoreProviderCapability.methods.updateWhere.input.loose())
|
|
1913
|
+
.output(types_33.dataStoreProviderCapability.methods.updateWhere.output)
|
|
1914
|
+
.mutation(async ({ input, ctx }) => {
|
|
1915
|
+
const { nodeId, addonId, ...methodInput } = input;
|
|
1916
|
+
const p = resolveProvider('data-store-provider', nodeId, () => getProvider(ctx, addonId), createRemoteProxy);
|
|
1917
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
1918
|
+
return p.updateWhere(methodInput);
|
|
1919
|
+
}),
|
|
1902
1920
|
count: trpc_middleware_js_1.protectedProcedure
|
|
1903
1921
|
.input(types_33.dataStoreProviderCapability.methods.count.input.loose())
|
|
1904
1922
|
.output(types_33.dataStoreProviderCapability.methods.count.output)
|
|
@@ -7189,6 +7207,24 @@ function createCapRouter_settingsStore(getProvider, createRemoteProxy) {
|
|
|
7189
7207
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
7190
7208
|
return p.delete(methodInput);
|
|
7191
7209
|
}),
|
|
7210
|
+
deleteWhere: trpc_middleware_js_1.protectedProcedure
|
|
7211
|
+
.input(types_94.settingsStoreCapability.methods.deleteWhere.input.loose())
|
|
7212
|
+
.output(types_94.settingsStoreCapability.methods.deleteWhere.output)
|
|
7213
|
+
.mutation(async ({ input, ctx }) => {
|
|
7214
|
+
const { nodeId, ...methodInput } = input;
|
|
7215
|
+
const p = resolveProvider('settings-store', nodeId, () => getProvider(ctx), createRemoteProxy);
|
|
7216
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
7217
|
+
return p.deleteWhere(methodInput);
|
|
7218
|
+
}),
|
|
7219
|
+
updateWhere: trpc_middleware_js_1.protectedProcedure
|
|
7220
|
+
.input(types_94.settingsStoreCapability.methods.updateWhere.input.loose())
|
|
7221
|
+
.output(types_94.settingsStoreCapability.methods.updateWhere.output)
|
|
7222
|
+
.mutation(async ({ input, ctx }) => {
|
|
7223
|
+
const { nodeId, ...methodInput } = input;
|
|
7224
|
+
const p = resolveProvider('settings-store', nodeId, () => getProvider(ctx), createRemoteProxy);
|
|
7225
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument
|
|
7226
|
+
return p.updateWhere(methodInput);
|
|
7227
|
+
}),
|
|
7192
7228
|
count: trpc_middleware_js_1.protectedProcedure
|
|
7193
7229
|
.input(types_94.settingsStoreCapability.methods.count.input.loose())
|
|
7194
7230
|
.output(types_94.settingsStoreCapability.methods.count.output)
|
|
@@ -2265,7 +2265,17 @@ class AddonRegistryService {
|
|
|
2265
2265
|
this.configService.setSettingsStore(provider);
|
|
2266
2266
|
}
|
|
2267
2267
|
this.storageService.setSettingsBackend(provider);
|
|
2268
|
-
|
|
2268
|
+
// The registry needs the DOOR's own shape, not `ISettingsBackend`.
|
|
2269
|
+
// `CapabilityProviderMap` still types this cap as the hand-written
|
|
2270
|
+
// interface, which has drifted from the cap definition it is meant
|
|
2271
|
+
// to describe — it never grew `deleteWhere` / `updateWhere`. The
|
|
2272
|
+
// same provider object satisfies both; reconciling the two types is
|
|
2273
|
+
// its own change (it makes `query` / `insert` non-generic for every
|
|
2274
|
+
// `ISettingsBackend` consumer in the backend).
|
|
2275
|
+
const store = this.capabilityRegistry.getProviderByAddon('settings-store', addonId);
|
|
2276
|
+
if (!store)
|
|
2277
|
+
return;
|
|
2278
|
+
this.integrationRegistry = new system_4.IntegrationRegistry(store);
|
|
2269
2279
|
void this.integrationRegistry.initialize().then(() => {
|
|
2270
2280
|
this.logger.info('IntegrationRegistry initialized', { meta: { phase: 'v2' } });
|
|
2271
2281
|
});
|
package/dist/launcher.js
CHANGED
|
@@ -413,6 +413,28 @@ async function launch() {
|
|
|
413
413
|
Module._initPaths();
|
|
414
414
|
console.log(`[launcher] NODE_PATH extended with: ${extraNodePaths.join(sep)}`);
|
|
415
415
|
}
|
|
416
|
+
// WHICH COPY did this node just commit to? ([D45](../../../docs/decisions/adr-0045.md))
|
|
417
|
+
//
|
|
418
|
+
// A node can hold several copies of a host-provided package — the image seed
|
|
419
|
+
// under /opt, a legacy /data/framework on NODE_PATH, the active closure, an
|
|
420
|
+
// installed copy under /data/addons. Which one wins is a resolution outcome,
|
|
421
|
+
// and on 2026-08-03 three consecutive deductions about it were each disproved
|
|
422
|
+
// by the next measurement, while every status surface reported the version of
|
|
423
|
+
// a copy nobody was running. Resolution happens HERE, right after NODE_PATH
|
|
424
|
+
// is final and before the runtime imports anything — so this is the one place
|
|
425
|
+
// that can answer it, and it costs a stat call per package.
|
|
426
|
+
//
|
|
427
|
+
// A version number without a path is not evidence. Log both.
|
|
428
|
+
for (const pkg of ['@camstack/system', '@camstack/types']) {
|
|
429
|
+
try {
|
|
430
|
+
const resolved = require.resolve(`${pkg}/package.json`);
|
|
431
|
+
const version = JSON.parse(fs.readFileSync(resolved, 'utf-8')).version;
|
|
432
|
+
console.log(`[launcher] resolved ${pkg}@${String(version)} from ${resolved}`);
|
|
433
|
+
}
|
|
434
|
+
catch (err) {
|
|
435
|
+
console.warn(`[launcher] could NOT resolve ${pkg}: ${err instanceof Error ? err.message : String(err)}`);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
416
438
|
// Now safe to load the role's runtime entry (both have static imports from
|
|
417
439
|
// @camstack/system, resolved only after the framework dir + NODE_PATH setup
|
|
418
440
|
// above). The agent boots from THIS same @camstack/server closure — there is
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/server",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.35",
|
|
4
4
|
"private": false,
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
"@camstack/addon-notifiers": "1.2.11",
|
|
41
41
|
"@camstack/addon-pipeline": "1.2.39",
|
|
42
42
|
"@camstack/addon-pipeline-orchestrator": "1.2.19",
|
|
43
|
-
"@camstack/addon-post-analysis": "1.2.
|
|
43
|
+
"@camstack/addon-post-analysis": "1.2.24",
|
|
44
44
|
"@camstack/sdk": "1.2.9",
|
|
45
45
|
"@camstack/shm-ring": "1.1.9",
|
|
46
|
-
"@camstack/system": "1.2.
|
|
47
|
-
"@camstack/types": "1.2.
|
|
48
|
-
"@camstack/ui-library": "1.2.
|
|
46
|
+
"@camstack/system": "1.2.31",
|
|
47
|
+
"@camstack/types": "1.2.23",
|
|
48
|
+
"@camstack/ui-library": "1.2.18",
|
|
49
49
|
"@fastify/compress": "^9.0.0",
|
|
50
50
|
"@fastify/cookie": "^11.0.2",
|
|
51
51
|
"@fastify/cors": "^11.2.0",
|