@camstack/system 1.2.424 → 1.2.425
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/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-databases.d.ts +51 -0
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +13 -0
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +248 -17
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +248 -17
- package/dist/builtins/backup-orchestrator/manifest-store.d.ts +23 -3
- package/dist/builtins/backup-orchestrator/run-queue.d.ts +3 -0
- package/dist/builtins/backup-orchestrator/schedule-store.d.ts +7 -1
- package/dist/builtins/backup-orchestrator/seed-marker-store.d.ts +34 -0
- 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-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/keychain/index.js +3 -3
- package/dist/builtins/keychain/index.mjs +3 -3
- 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 +2 -2
- package/dist/builtins/local-auth/local-auth.addon.mjs +2 -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/database-snapshot-provider.d.ts +18 -0
- 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/index.js +1 -1
- package/dist/builtins/sqlite-storage/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +49 -7
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +49 -7
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-backup/system-backup.service.d.ts +48 -15
- package/dist/builtins/system-config/system-config.addon.js +2 -2
- package/dist/builtins/system-config/system-config.addon.mjs +2 -2
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{composition-sources-BWNs-ZeH.js → composition-sources-197keifF.js} +1 -1
- package/dist/{composition-sources-tRG7nKWK.mjs → composition-sources-DmzTSy26.mjs} +1 -1
- package/dist/{constants-BBWZlnpQ.js → constants-B5Jd8Zch.js} +1 -1
- package/dist/{constants-DHhhVjkt.mjs → constants-CkNLi-XW.mjs} +1 -1
- package/dist/{dist-B-NmfvVC.mjs → dist-DMWeqeTF.mjs} +4341 -4308
- package/dist/{dist-CiUKtVkX.js → dist-DnALrQF-.js} +4341 -4308
- package/dist/file-host-worker.js +1 -1
- package/dist/file-host-worker.mjs +1 -1
- package/dist/index.js +5 -5
- package/dist/index.mjs +5 -5
- package/dist/{jwt-signing-key-CUpweD22.mjs → jwt-signing-key-CCHXAtrs.mjs} +1 -1
- package/dist/{jwt-signing-key-nwRpRgf_.js → jwt-signing-key-DeqG7LD9.js} +1 -1
- package/dist/{restore-archive-DA-aJtg7.js → restore-archive-C4UhQOsg.js} +156 -65
- package/dist/{restore-archive-CFmPVlWQ.mjs → restore-archive-GevpOHw8.mjs} +151 -66
- package/dist/{retired-settings-keys-D62kN_hT.js → retired-settings-keys-0FOsnzIE.js} +1 -1
- package/dist/{retired-settings-keys-DCGEI4Vi.mjs → retired-settings-keys-CdVFl7m2.mjs} +1 -1
- package/dist/{wal-maintenance-BlqNqaQ3.mjs → wal-maintenance-BtfyfuT5.mjs} +0 -0
- package/dist/{wal-maintenance-BzdCQGjH.js → wal-maintenance-DJV1rde2.js} +0 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as buildCapabilityLookup, Mr as hydrateSchema, Vn as validateComposition, Xn as composedDeviceRef, _n as replacedFieldKeys, bn as resolveCoreBlockEntry, cr as errMsg, ct as coreBlockComposition, d as CORE_BLOCKS_ADDON_ID, dt as coreBlocksCapability, f as CORE_BLOCK_ADDON_PREFIX, fn as planComposition, lr as BaseAddon, lt as coreBlockIdFromAddonId, m as CoreBlockSchema, on as normalizeCoreBlockWrite, ot as compositionSourceRefs, st as coreBlockAddonId, t as ALL_CAPABILITY_DEFINITIONS, tr as compositionSourceKey, u as COMPOSER_RUNNER_ID, ut as coreBlockSourceKind, x as DeclaredDevices, xn as resolveCoreBlockFiles, yt as describeComposableCaps } from "../../dist-
|
|
2
|
-
import { t as describeCompositionSources } from "../../composition-sources-
|
|
1
|
+
import { $ as buildCapabilityLookup, Mr as hydrateSchema, Vn as validateComposition, Xn as composedDeviceRef, _n as replacedFieldKeys, bn as resolveCoreBlockEntry, cr as errMsg, ct as coreBlockComposition, d as CORE_BLOCKS_ADDON_ID, dt as coreBlocksCapability, f as CORE_BLOCK_ADDON_PREFIX, fn as planComposition, lr as BaseAddon, lt as coreBlockIdFromAddonId, m as CoreBlockSchema, on as normalizeCoreBlockWrite, ot as compositionSourceRefs, st as coreBlockAddonId, t as ALL_CAPABILITY_DEFINITIONS, tr as compositionSourceKey, u as COMPOSER_RUNNER_ID, ut as coreBlockSourceKind, x as DeclaredDevices, xn as resolveCoreBlockFiles, yt as describeComposableCaps } from "../../dist-DMWeqeTF.mjs";
|
|
2
|
+
import { t as describeCompositionSources } from "../../composition-sources-DmzTSy26.mjs";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
5
|
import { customizationBlockName } from "@camstack/types/node";
|
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
7
|
-
const require_retired_settings_keys = require("../../retired-settings-keys-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
|
+
const require_retired_settings_keys = require("../../retired-settings-keys-0FOsnzIE.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
10
10
|
let _camstack_types_node = require("@camstack/types/node");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $r as toSecretFieldView, Ct as deviceStatusCapability, En as runtimeStatePolicyFor, Et as enumerateSchemaFields, Fr as isKeychainStoredField, Ir as isSecretClear, Kt as legacyAutoLinkIds, Lr as isSecretMarker, N as MINUTES_PER_DAY, Nr as isDeviceConfigCap, Pt as formatMinutes, R as STREAM_PROFILE_META, Rr as isSecretMarkerLike, S as DeviceStatusSchema, St as deviceStateCapability, T as FieldClaimSchema, Tt as enumerateItemArrayFields, Xt as locationIconKey, Yr as secretTreeFromPaths, Zr as sleep$1, _r as SECRET_CLEAR, _t as defineExtensionSlotProvider, ar as DeviceFeature, bt as deviceExtensionCapability, c as CAP_NAMES_WITH_STATUS, cr as errMsg, ei as transformSecretWrite, et as buildStreamParamsConfigSchema, ft as createDeviceExtensionProvider, j as LocationIconIdSchema, jn as siteZoneKey, kt as expandContainer, lr as BaseAddon, o as CAMERA_SWITCH_ORDER, or as DeviceRole, qr as resolveSecretMarkers, sn as normalizeUnit, sr as DeviceType, t as ALL_CAPABILITY_DEFINITIONS, ti as EventCategory, un as parseStreamParamsFormPatch, vr as WELL_KNOWN_TAB_MAP, w as FieldClaimModeSchema, wr as collectZodSecretPaths, xt as deviceManagerCapability, y as DAY_NAMES } from "../../dist-
|
|
2
|
-
import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-
|
|
1
|
+
import { $r as toSecretFieldView, Ct as deviceStatusCapability, En as runtimeStatePolicyFor, Et as enumerateSchemaFields, Fr as isKeychainStoredField, Ir as isSecretClear, Kt as legacyAutoLinkIds, Lr as isSecretMarker, N as MINUTES_PER_DAY, Nr as isDeviceConfigCap, Pt as formatMinutes, R as STREAM_PROFILE_META, Rr as isSecretMarkerLike, S as DeviceStatusSchema, St as deviceStateCapability, T as FieldClaimSchema, Tt as enumerateItemArrayFields, Xt as locationIconKey, Yr as secretTreeFromPaths, Zr as sleep$1, _r as SECRET_CLEAR, _t as defineExtensionSlotProvider, ar as DeviceFeature, bt as deviceExtensionCapability, c as CAP_NAMES_WITH_STATUS, cr as errMsg, ei as transformSecretWrite, et as buildStreamParamsConfigSchema, ft as createDeviceExtensionProvider, j as LocationIconIdSchema, jn as siteZoneKey, kt as expandContainer, lr as BaseAddon, o as CAMERA_SWITCH_ORDER, or as DeviceRole, qr as resolveSecretMarkers, sn as normalizeUnit, sr as DeviceType, t as ALL_CAPABILITY_DEFINITIONS, ti as EventCategory, un as parseStreamParamsFormPatch, vr as WELL_KNOWN_TAB_MAP, w as FieldClaimModeSchema, wr as collectZodSecretPaths, xt as deviceManagerCapability, y as DAY_NAMES } from "../../dist-DMWeqeTF.mjs";
|
|
2
|
+
import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-CdVFl7m2.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
5
|
import { canonicalDeviceFingerprint } from "@camstack/types/node";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
7
|
const require_formatter = require("../../formatter-DqAKDlvN.js");
|
|
8
8
|
//#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
|
|
9
9
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Zt as logDestinationCapability, lr as BaseAddon } from "../../dist-
|
|
1
|
+
import { Zt as logDestinationCapability, lr as BaseAddon } from "../../dist-DMWeqeTF.mjs";
|
|
2
2
|
import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
|
|
3
3
|
//#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
|
|
4
4
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
7
|
-
const require_jwt_signing_key = require("../../jwt-signing-key-
|
|
8
|
-
const require_constants = require("../../constants-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
|
+
const require_jwt_signing_key = require("../../jwt-signing-key-DeqG7LD9.js");
|
|
8
|
+
const require_constants = require("../../constants-B5Jd8Zch.js");
|
|
9
9
|
const require_platform_key_source = require("../../platform-key-source-Di7HrlGR.js");
|
|
10
10
|
let node_crypto = require("node:crypto");
|
|
11
11
|
let _camstack_types_node = require("@camstack/types/node");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Gt as keychainCapability, O as KEYCHAIN_RESET_TRIGGER_ACTOR, Vr as normalizeSecretOwner, Wr as parseSecretRef, Wt as keychainAdminCapability, jr as formatSecretScope, lr as BaseAddon, ti as EventCategory } from "../../dist-
|
|
2
|
-
import { r as SYSTEM_SECRET_OWNER, t as JWT_SIGNING_KEY_REF } from "../../jwt-signing-key-
|
|
3
|
-
import { a as MESH_CA_KEY_REF, p as CLUSTER_SECRET_SETTINGS_KEY } from "../../constants-
|
|
1
|
+
import { Gt as keychainCapability, O as KEYCHAIN_RESET_TRIGGER_ACTOR, Vr as normalizeSecretOwner, Wr as parseSecretRef, Wt as keychainAdminCapability, jr as formatSecretScope, lr as BaseAddon, ti as EventCategory } from "../../dist-DMWeqeTF.mjs";
|
|
2
|
+
import { r as SYSTEM_SECRET_OWNER, t as JWT_SIGNING_KEY_REF } from "../../jwt-signing-key-CCHXAtrs.mjs";
|
|
3
|
+
import { a as MESH_CA_KEY_REF, p as CLUSTER_SECRET_SETTINGS_KEY } from "../../constants-CkNLi-XW.mjs";
|
|
4
4
|
import { n as getPlatformKeychainKey } from "../../platform-key-source-BWlq0jjn.mjs";
|
|
5
5
|
import { createCipheriv, createDecipheriv, createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
|
|
6
6
|
import { restrictDirToOwnerSync, restrictFileToOwnerSync, writeOwnerOnlyFileSync } from "@camstack/types/node";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("../../dist-
|
|
3
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
4
4
|
//#region src/builtins/liveness-monitor/liveness-checks.ts
|
|
5
5
|
var NO_DEVICES = "liveness:no-devices";
|
|
6
6
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as RECORDING_SOURCE_CAMSTACK_ADDON, I as RecordingStatusSchema, Tr as createEvent, cr as errMsg, lr as BaseAddon, ti as EventCategory } from "../../dist-
|
|
1
|
+
import { F as RECORDING_SOURCE_CAMSTACK_ADDON, I as RecordingStatusSchema, Tr as createEvent, cr as errMsg, lr as BaseAddon, ti as EventCategory } from "../../dist-DMWeqeTF.mjs";
|
|
2
2
|
//#region src/builtins/liveness-monitor/liveness-checks.ts
|
|
3
3
|
var NO_DEVICES = "liveness:no-devices";
|
|
4
4
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
@@ -3,10 +3,10 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
7
|
const require_safe_buffer$1 = require("../../safe-buffer-D3aoa-7X.js");
|
|
8
8
|
const require_ms$1 = require("../../ms-LB3giGoU.js");
|
|
9
|
-
const require_jwt_signing_key = require("../../jwt-signing-key-
|
|
9
|
+
const require_jwt_signing_key = require("../../jwt-signing-key-DeqG7LD9.js");
|
|
10
10
|
let node_crypto = require("node:crypto");
|
|
11
11
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
12
12
|
let crypto$1 = require("crypto");
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { Bn as userManagementCapability, W as UserRecordSchema, Y as authProviderCapability, lr as BaseAddon, r as ApiKeyRecordSchema, z as ScopedTokenSchema } from "../../dist-
|
|
2
|
+
import { Bn as userManagementCapability, W as UserRecordSchema, Y as authProviderCapability, lr as BaseAddon, r as ApiKeyRecordSchema, z as ScopedTokenSchema } from "../../dist-DMWeqeTF.mjs";
|
|
3
3
|
import { t as require_safe_buffer } from "../../safe-buffer-B1OjL1I9.mjs";
|
|
4
4
|
import { t as require_ms } from "../../ms-CgH2OFlD.mjs";
|
|
5
|
-
import { a as loadJwtSigningKey, i as getProcessJwtSigningKeyState, o as processJwtSigningKey, s as setProcessJwtSigningKey, t as JWT_SIGNING_KEY_REF } from "../../jwt-signing-key-
|
|
5
|
+
import { a as loadJwtSigningKey, i as getProcessJwtSigningKeyState, o as processJwtSigningKey, s as setProcessJwtSigningKey, t as JWT_SIGNING_KEY_REF } from "../../jwt-signing-key-CCHXAtrs.mjs";
|
|
6
6
|
import * as crypto$1 from "node:crypto";
|
|
7
7
|
import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
|
|
8
8
|
import nodeCrypto from "crypto";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("../../dist-
|
|
3
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
4
4
|
const require_tls = require("../../tls-BgImdxCO.js");
|
|
5
5
|
let zod = require("zod");
|
|
6
6
|
let node_net = require("node:net");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { D as HUB_MDNS_TXT_KEYS, E as HUB_MDNS_SERVICE_TYPE, Hn as validateCustomAddress, It as isAppLinkBase, Sn as resolveHubAddressRoles, Tn as resolveNotificationTapAddress, Yt as localNetworkCapability, dn as pickAppLinkHub, lr as BaseAddon, rt as checkRoleAddress, s as CAMSTACK_APP_LINK_ORIGIN, ti as EventCategory, vn as resolveAppConnections, zt as isDefaultAppConnectionEndpoint } from "../../dist-
|
|
2
|
+
import { D as HUB_MDNS_TXT_KEYS, E as HUB_MDNS_SERVICE_TYPE, Hn as validateCustomAddress, It as isAppLinkBase, Sn as resolveHubAddressRoles, Tn as resolveNotificationTapAddress, Yt as localNetworkCapability, dn as pickAppLinkHub, lr as BaseAddon, rt as checkRoleAddress, s as CAMSTACK_APP_LINK_ORIGIN, ti as EventCategory, vn as resolveAppConnections, zt as isDefaultAppConnectionEndpoint } from "../../dist-DMWeqeTF.mjs";
|
|
3
3
|
import { P as readLanHttpState, _ as writeExtraSans, h as readTlsMode, i as storeUploadedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, m as readTlsAccessStatus, n as regenerateCertificate, p as readExtraSans, r as revertToGeneratedCertificate, t as applyCertificateToListener, u as servedHttpsLeafFingerprint, y as ensureTlsCert } from "../../tls-CaOLZ09W.mjs";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { isIP } from "node:net";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
7
|
//#region src/builtins/loki-logging/loki-payload.ts
|
|
8
8
|
/**
|
|
9
9
|
* Loki rejects a label name that is not a valid Prometheus label
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Zt as logDestinationCapability, lr as BaseAddon } from "../../dist-
|
|
1
|
+
import { Zt as logDestinationCapability, lr as BaseAddon } from "../../dist-DMWeqeTF.mjs";
|
|
2
2
|
//#region src/builtins/loki-logging/loki-payload.ts
|
|
3
3
|
/**
|
|
4
4
|
* Loki rejects a label name that is not a valid Prometheus label
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
7
|
let node_fs_promises = require("node:fs/promises");
|
|
8
8
|
let node_os = require("node:os");
|
|
9
9
|
node_os = require_chunk.__toESM(node_os);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Nt as foldSnapshotByFunction, Tr as createEvent, cr as errMsg, gn as reducePoints, lr as BaseAddon, rn as metricsProviderCapability, ti as EventCategory, yn as resolveBucketMs } from "../../dist-
|
|
1
|
+
import { Nt as foldSnapshotByFunction, Tr as createEvent, cr as errMsg, gn as reducePoints, lr as BaseAddon, rn as metricsProviderCapability, ti as EventCategory, yn as resolveBucketMs } from "../../dist-DMWeqeTF.mjs";
|
|
2
2
|
import { access, readFile, readdir } from "node:fs/promises";
|
|
3
3
|
import * as os from "node:os";
|
|
4
4
|
import { platform } from "node:os";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
7
|
let node_os = require("node:os");
|
|
8
8
|
node_os = require_chunk.__toESM(node_os);
|
|
9
9
|
let node_fs = require("node:fs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as __toESM, r as __exportAll } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { cr as errMsg, kn as scoreRuntimes, kr as emitReadiness, lr as BaseAddon, pn as platformProbeCapability, ti as EventCategory, wt as enumerateInferenceDevices } from "../../dist-
|
|
2
|
+
import { cr as errMsg, kn as scoreRuntimes, kr as emitReadiness, lr as BaseAddon, pn as platformProbeCapability, ti as EventCategory, wt as enumerateInferenceDevices } from "../../dist-DMWeqeTF.mjs";
|
|
3
3
|
import * as os from "node:os";
|
|
4
4
|
import * as fs from "node:fs";
|
|
5
5
|
import { execFile } from "node:child_process";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
7
|
//#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
|
|
8
8
|
/**
|
|
9
9
|
* Reconcile the durable `enabledProviders` set against authoritative
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { lr as BaseAddon, ti as EventCategory } from "../../dist-
|
|
1
|
+
import { lr as BaseAddon, ti as EventCategory } from "../../dist-DMWeqeTF.mjs";
|
|
2
2
|
//#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
|
|
3
3
|
/**
|
|
4
4
|
* Reconcile the durable `enabledProviders` set against authoritative
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
7
|
const require_snapshot_courtesy = require("../../snapshot-courtesy-D_C5-nC0.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Br as nodePin, Mn as snapshotCapability, Q as batteryCapability, Rn as streamQualityLabel, Z as bareAddonId, a as BatteryStatusSchema, ar as DeviceFeature, cr as errMsg, lr as BaseAddon, nn as memoizePinnedFfmpeg, sr as DeviceType, ti as EventCategory, vt as deriveBatteryPresence } from "../../dist-
|
|
1
|
+
import { Br as nodePin, Mn as snapshotCapability, Q as batteryCapability, Rn as streamQualityLabel, Z as bareAddonId, a as BatteryStatusSchema, ar as DeviceFeature, cr as errMsg, lr as BaseAddon, nn as memoizePinnedFfmpeg, sr as DeviceType, ti as EventCategory, vt as deriveBatteryPresence } from "../../dist-DMWeqeTF.mjs";
|
|
2
2
|
import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CyFs1M3I.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DatabaseSnapshotRequest, DatabaseSnapshotTargets, DatabaseSnapshotWritten, IDatabaseSnapshotProvider } from "@camstack/types";
|
|
2
|
+
import type { OwnedSqliteFile } from "./owned-sqlite-file.js";
|
|
3
|
+
/** What the provider needs from an owned file. */
|
|
4
|
+
export type SnapshotableFile = Pick<OwnedSqliteFile, "databaseId" | "livePath" | "snapshot">;
|
|
5
|
+
/** What the provider needs from the placement router. */
|
|
6
|
+
export interface OpenFileSource {
|
|
7
|
+
openFiles(): readonly SnapshotableFile[];
|
|
8
|
+
}
|
|
9
|
+
export declare class DatabaseSnapshotProvider implements IDatabaseSnapshotProvider {
|
|
10
|
+
private readonly source;
|
|
11
|
+
/** Same database asked twice: the second call joins the first. */
|
|
12
|
+
private readonly inFlight;
|
|
13
|
+
/** Different databases run one after the other: the disk reserve check is per copy. */
|
|
14
|
+
private tail;
|
|
15
|
+
constructor(source: OpenFileSource);
|
|
16
|
+
listDatabases(): Promise<DatabaseSnapshotTargets>;
|
|
17
|
+
writeSnapshot(input: DatabaseSnapshotRequest): Promise<DatabaseSnapshotWritten>;
|
|
18
|
+
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
let node_fs_promises = require("node:fs/promises");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { In as storageProviderCapability, Mt as filesystemBrowseCapability, lr as BaseAddon } from "../../dist-
|
|
1
|
+
import { In as storageProviderCapability, Mt as filesystemBrowseCapability, lr as BaseAddon } from "../../dist-DMWeqeTF.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { mkdir, readdir, realpath, statfs } from "node:fs/promises";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -4,7 +4,7 @@ Object.defineProperties(exports, {
|
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
6
|
const require_builtins_sqlite_storage_filesystem_storage_addon = require("./filesystem-storage.addon.js");
|
|
7
|
-
const require_wal_maintenance = require("../../wal-maintenance-
|
|
7
|
+
const require_wal_maintenance = require("../../wal-maintenance-DJV1rde2.js");
|
|
8
8
|
const require_builtins_sqlite_storage_sqlite_settings_addon = require("./sqlite-settings.addon.js");
|
|
9
9
|
//#region src/builtins/sqlite-storage/config-store.ts
|
|
10
10
|
var ConfigStore = class {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./filesystem-storage.addon.mjs";
|
|
2
|
-
import { A as SQLITE_PAGE_CACHE_CEILING_KIB, B as sqliteEngineStorm, D as SQLITE_JOURNAL_SIZE_LIMIT_BYTES, F as SQLITE_PROFILE_REPORT_FLOOR_MS, I as SQLITE_PROFILE_REPORT_INTERVAL_MS, L as SQLITE_PROFILE_TOP_N, M as sqliteMmapSizeFor, N as sqlitePageCacheKibFor, O as SQLITE_MMAP_CEILING_BYTES, P as SQLITE_ENGINE_STORM_WALL_SHARE, R as SQLITE_SLOW_CALL_MS, a as WalMaintenance, c as SqliteSettingsBackend, i as WAL_MAINTENANCE_INTERVAL_MS, j as SQLITE_PAGE_CACHE_FLOOR_KIB, k as SQLITE_MMAP_FLOOR_BYTES, n as WAL_HIGH_WATER_BYTES, r as WAL_IDLE_QUIET_MS, t as WAL_CHECKPOINT_BUSY_TIMEOUT_MS, z as SqliteOpProfiler } from "../../wal-maintenance-
|
|
2
|
+
import { A as SQLITE_PAGE_CACHE_CEILING_KIB, B as sqliteEngineStorm, D as SQLITE_JOURNAL_SIZE_LIMIT_BYTES, F as SQLITE_PROFILE_REPORT_FLOOR_MS, I as SQLITE_PROFILE_REPORT_INTERVAL_MS, L as SQLITE_PROFILE_TOP_N, M as sqliteMmapSizeFor, N as sqlitePageCacheKibFor, O as SQLITE_MMAP_CEILING_BYTES, P as SQLITE_ENGINE_STORM_WALL_SHARE, R as SQLITE_SLOW_CALL_MS, a as WalMaintenance, c as SqliteSettingsBackend, i as WAL_MAINTENANCE_INTERVAL_MS, j as SQLITE_PAGE_CACHE_FLOOR_KIB, k as SQLITE_MMAP_FLOOR_BYTES, n as WAL_HIGH_WATER_BYTES, r as WAL_IDLE_QUIET_MS, t as WAL_CHECKPOINT_BUSY_TIMEOUT_MS, z as SqliteOpProfiler } from "../../wal-maintenance-BtfyfuT5.mjs";
|
|
3
3
|
import { SqliteSettingsAddon } from "./sqlite-settings.addon.mjs";
|
|
4
4
|
//#region src/builtins/sqlite-storage/config-store.ts
|
|
5
5
|
var ConfigStore = class {
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
7
|
-
const require_retired_settings_keys = require("../../retired-settings-keys-
|
|
8
|
-
const require_wal_maintenance = require("../../wal-maintenance-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
|
+
const require_retired_settings_keys = require("../../retired-settings-keys-0FOsnzIE.js");
|
|
8
|
+
const require_wal_maintenance = require("../../wal-maintenance-DJV1rde2.js");
|
|
9
9
|
const require_sqlite_snapshot_protocol = require("../../sqlite-snapshot-protocol-B9OndqZv.js");
|
|
10
10
|
const require_wal_checkpoint_policy = require("../../wal-checkpoint-policy-d2z2qPqx.js");
|
|
11
11
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -969,6 +969,51 @@ async function openOwnedSqliteFile(spec, deps) {
|
|
|
969
969
|
return file;
|
|
970
970
|
}
|
|
971
971
|
//#endregion
|
|
972
|
+
//#region src/builtins/sqlite-storage/database-snapshot-provider.ts
|
|
973
|
+
/**
|
|
974
|
+
* The `database-snapshot` provider of the SQLite engine: every owned database
|
|
975
|
+
* file it has open is listed, and each is snapshotted through its OWN
|
|
976
|
+
* connection (D679, D693) — never by copying files.
|
|
977
|
+
*
|
|
978
|
+
* The list is read from the router at CALL time, not at boot: a file created at
|
|
979
|
+
* runtime (the first declaration that names `events` or `history`) is listed
|
|
980
|
+
* from the moment it opens, so no backup can leave it out.
|
|
981
|
+
*/
|
|
982
|
+
var DatabaseSnapshotProvider = class {
|
|
983
|
+
source;
|
|
984
|
+
/** Same database asked twice: the second call joins the first. */
|
|
985
|
+
inFlight = /* @__PURE__ */ new Map();
|
|
986
|
+
/** Different databases run one after the other: the disk reserve check is per copy. */
|
|
987
|
+
tail = Promise.resolve();
|
|
988
|
+
constructor(source) {
|
|
989
|
+
this.source = source;
|
|
990
|
+
}
|
|
991
|
+
async listDatabases() {
|
|
992
|
+
return { databases: this.source.openFiles().map((file) => ({
|
|
993
|
+
databaseId: file.databaseId,
|
|
994
|
+
livePath: node_path.default.resolve(file.livePath)
|
|
995
|
+
})) };
|
|
996
|
+
}
|
|
997
|
+
writeSnapshot(input) {
|
|
998
|
+
const running = this.inFlight.get(input.databaseId);
|
|
999
|
+
if (running !== void 0) return running;
|
|
1000
|
+
const file = this.source.openFiles().find((f) => f.databaseId === input.databaseId);
|
|
1001
|
+
if (file === void 0) return Promise.reject(/* @__PURE__ */ new Error(`database snapshot refused: database "${input.databaseId}" is not open`));
|
|
1002
|
+
const run = this.tail.catch(() => void 0).then(async () => {
|
|
1003
|
+
return {
|
|
1004
|
+
...await file.snapshot(),
|
|
1005
|
+
databaseId: file.databaseId
|
|
1006
|
+
};
|
|
1007
|
+
});
|
|
1008
|
+
this.tail = run;
|
|
1009
|
+
const tracked = run.finally(() => {
|
|
1010
|
+
this.inFlight.delete(input.databaseId);
|
|
1011
|
+
});
|
|
1012
|
+
this.inFlight.set(input.databaseId, tracked);
|
|
1013
|
+
return tracked;
|
|
1014
|
+
}
|
|
1015
|
+
};
|
|
1016
|
+
//#endregion
|
|
972
1017
|
//#region src/builtins/sqlite-storage/placement-router.ts
|
|
973
1018
|
function scopedName(namespace, collection) {
|
|
974
1019
|
return namespace ? `${namespace}:${collection}` : collection;
|
|
@@ -1344,10 +1389,7 @@ var SqliteSettingsAddon = class extends require_dist.BaseAddon {
|
|
|
1344
1389
|
},
|
|
1345
1390
|
{
|
|
1346
1391
|
capability: require_dist.databaseSnapshotCapability,
|
|
1347
|
-
provider:
|
|
1348
|
-
listDatabases: async () => ({ databases: [{ livePath: node_path.default.resolve(settings.livePath) }] }),
|
|
1349
|
-
writeSnapshot: async () => settings.snapshot()
|
|
1350
|
-
}
|
|
1392
|
+
provider: new DatabaseSnapshotProvider(router)
|
|
1351
1393
|
}
|
|
1352
1394
|
];
|
|
1353
1395
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Gn as vectorStoreCapability, Z as bareAddonId, _ as DATABASE_SNAPSHOT_TIMEOUT_MS, cr as errMsg, g as DATABASE_SNAPSHOT_SUFFIX, h as DATABASE_SNAPSHOT_PARTIAL_SUFFIX, lr as BaseAddon, mr as RUNTIME_DEFAULTS, mt as databaseSnapshotCapability, pt as dataStoreProviderCapability, v as DATA_STORE_DATABASES } from "../../dist-
|
|
2
|
-
import { r as retiredKeyStoreOf, t as purgeRetiredSettingsKeys } from "../../retired-settings-keys-
|
|
3
|
-
import { C as callControl, E as controlTargetOf, S as trustResult, T as callVector, _ as collectTransferables, a as WalMaintenance, c as SqliteSettingsBackend, d as CrossDatabaseTransactError, f as DatabaseBusyError, m as rehydrateError, o as createVectorIndex, p as DuplicatePlacementError, s as vectorProviderOf, u as CollectionPlacementError, v as isFileHostMessage, w as callData } from "../../wal-maintenance-
|
|
1
|
+
import { Gn as vectorStoreCapability, Z as bareAddonId, _ as DATABASE_SNAPSHOT_TIMEOUT_MS, cr as errMsg, g as DATABASE_SNAPSHOT_SUFFIX, h as DATABASE_SNAPSHOT_PARTIAL_SUFFIX, lr as BaseAddon, mr as RUNTIME_DEFAULTS, mt as databaseSnapshotCapability, pt as dataStoreProviderCapability, v as DATA_STORE_DATABASES } from "../../dist-DMWeqeTF.mjs";
|
|
2
|
+
import { r as retiredKeyStoreOf, t as purgeRetiredSettingsKeys } from "../../retired-settings-keys-CdVFl7m2.mjs";
|
|
3
|
+
import { C as callControl, E as controlTargetOf, S as trustResult, T as callVector, _ as collectTransferables, a as WalMaintenance, c as SqliteSettingsBackend, d as CrossDatabaseTransactError, f as DatabaseBusyError, m as rehydrateError, o as createVectorIndex, p as DuplicatePlacementError, s as vectorProviderOf, u as CollectionPlacementError, v as isFileHostMessage, w as callData } from "../../wal-maintenance-BtfyfuT5.mjs";
|
|
4
4
|
import { r as isSnapshotWorkerMessage } from "../../sqlite-snapshot-protocol-2QaTouWV.mjs";
|
|
5
5
|
import { a as isWorkerMessage, t as WAL_CHECKPOINT_LARGE_PASS_FRAMES } from "../../wal-checkpoint-policy-BahrTtyD.mjs";
|
|
6
6
|
import { createRequire } from "node:module";
|
|
@@ -963,6 +963,51 @@ async function openOwnedSqliteFile(spec, deps) {
|
|
|
963
963
|
return file;
|
|
964
964
|
}
|
|
965
965
|
//#endregion
|
|
966
|
+
//#region src/builtins/sqlite-storage/database-snapshot-provider.ts
|
|
967
|
+
/**
|
|
968
|
+
* The `database-snapshot` provider of the SQLite engine: every owned database
|
|
969
|
+
* file it has open is listed, and each is snapshotted through its OWN
|
|
970
|
+
* connection (D679, D693) — never by copying files.
|
|
971
|
+
*
|
|
972
|
+
* The list is read from the router at CALL time, not at boot: a file created at
|
|
973
|
+
* runtime (the first declaration that names `events` or `history`) is listed
|
|
974
|
+
* from the moment it opens, so no backup can leave it out.
|
|
975
|
+
*/
|
|
976
|
+
var DatabaseSnapshotProvider = class {
|
|
977
|
+
source;
|
|
978
|
+
/** Same database asked twice: the second call joins the first. */
|
|
979
|
+
inFlight = /* @__PURE__ */ new Map();
|
|
980
|
+
/** Different databases run one after the other: the disk reserve check is per copy. */
|
|
981
|
+
tail = Promise.resolve();
|
|
982
|
+
constructor(source) {
|
|
983
|
+
this.source = source;
|
|
984
|
+
}
|
|
985
|
+
async listDatabases() {
|
|
986
|
+
return { databases: this.source.openFiles().map((file) => ({
|
|
987
|
+
databaseId: file.databaseId,
|
|
988
|
+
livePath: path.resolve(file.livePath)
|
|
989
|
+
})) };
|
|
990
|
+
}
|
|
991
|
+
writeSnapshot(input) {
|
|
992
|
+
const running = this.inFlight.get(input.databaseId);
|
|
993
|
+
if (running !== void 0) return running;
|
|
994
|
+
const file = this.source.openFiles().find((f) => f.databaseId === input.databaseId);
|
|
995
|
+
if (file === void 0) return Promise.reject(/* @__PURE__ */ new Error(`database snapshot refused: database "${input.databaseId}" is not open`));
|
|
996
|
+
const run = this.tail.catch(() => void 0).then(async () => {
|
|
997
|
+
return {
|
|
998
|
+
...await file.snapshot(),
|
|
999
|
+
databaseId: file.databaseId
|
|
1000
|
+
};
|
|
1001
|
+
});
|
|
1002
|
+
this.tail = run;
|
|
1003
|
+
const tracked = run.finally(() => {
|
|
1004
|
+
this.inFlight.delete(input.databaseId);
|
|
1005
|
+
});
|
|
1006
|
+
this.inFlight.set(input.databaseId, tracked);
|
|
1007
|
+
return tracked;
|
|
1008
|
+
}
|
|
1009
|
+
};
|
|
1010
|
+
//#endregion
|
|
966
1011
|
//#region src/builtins/sqlite-storage/placement-router.ts
|
|
967
1012
|
function scopedName(namespace, collection) {
|
|
968
1013
|
return namespace ? `${namespace}:${collection}` : collection;
|
|
@@ -1338,10 +1383,7 @@ var SqliteSettingsAddon = class extends BaseAddon {
|
|
|
1338
1383
|
},
|
|
1339
1384
|
{
|
|
1340
1385
|
capability: databaseSnapshotCapability,
|
|
1341
|
-
provider:
|
|
1342
|
-
listDatabases: async () => ({ databases: [{ livePath: path.resolve(settings.livePath) }] }),
|
|
1343
|
-
writeSnapshot: async () => settings.snapshot()
|
|
1344
|
-
}
|
|
1386
|
+
provider: new DatabaseSnapshotProvider(router)
|
|
1345
1387
|
}
|
|
1346
1388
|
];
|
|
1347
1389
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
7
|
let zod = require("zod");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let _camstack_types_node = require("@camstack/types/node");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as LegacyStorageLocationDefaultSchema, An as settingsStoreCapability, B as StorageCleanupJobSchema, Bt as isLocationEnabled, Cn as resolveLocationMode, Cr as collectSecretConfigKeys, Ft as gbToBytes, H as StorageLocationTypeSchema, Hr as parseJsonObject, Kn as withLocationMode, Lr as isSecretMarker, Nn as storageCapability, Ot as evictionPolicyOfLocation, Pn as storageMigrationCapability, U as StorageMigrationJobSchema, V as StorageLocationModeSchema, Yr as secretTreeFromPaths, ei as transformSecretWrite, en as mayReadLocation, in as modeMayWrite, lr as BaseAddon, pr as REDACTED_SECRET, qr as resolveSecretMarkers, qt as legacyModeOf, ti as EventCategory, tn as mayWriteToLocation } from "../../dist-
|
|
1
|
+
import { A as LegacyStorageLocationDefaultSchema, An as settingsStoreCapability, B as StorageCleanupJobSchema, Bt as isLocationEnabled, Cn as resolveLocationMode, Cr as collectSecretConfigKeys, Ft as gbToBytes, H as StorageLocationTypeSchema, Hr as parseJsonObject, Kn as withLocationMode, Lr as isSecretMarker, Nn as storageCapability, Ot as evictionPolicyOfLocation, Pn as storageMigrationCapability, U as StorageMigrationJobSchema, V as StorageLocationModeSchema, Yr as secretTreeFromPaths, ei as transformSecretWrite, en as mayReadLocation, in as modeMayWrite, lr as BaseAddon, pr as REDACTED_SECRET, qr as resolveSecretMarkers, qt as legacyModeOf, ti as EventCategory, tn as mayWriteToLocation } from "../../dist-DMWeqeTF.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { containsOrEquals, physicalRootOf } from "@camstack/types/node";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ArchiveSqliteSnapshot, type
|
|
1
|
+
import { type ArchiveSqliteSnapshot, type DatabaseSnapshotWritten, type DataStoreDatabase, type IScopedLogger } from "@camstack/types";
|
|
2
2
|
import { BACKUP_ENCRYPTION_SCHEME } from "./backup-encryption.js";
|
|
3
3
|
/**
|
|
4
4
|
* Thrown when an archive build (or a backup run driving one) is
|
|
@@ -58,10 +58,21 @@ export declare function isExcludedFromBackup(relPath: string): boolean;
|
|
|
58
58
|
* the `database-snapshot` capability, pinned to its own node.
|
|
59
59
|
*/
|
|
60
60
|
export interface DatabaseOwner {
|
|
61
|
-
/**
|
|
62
|
-
listDatabases(): Promise<readonly
|
|
63
|
-
|
|
61
|
+
/** EVERY database the owner has open: its id, and its absolute path. */
|
|
62
|
+
listDatabases(): Promise<readonly OwnedDatabase[]>;
|
|
63
|
+
/** One verified snapshot of ONE database. */
|
|
64
|
+
writeSnapshot(databaseId: DataStoreDatabase): Promise<DatabaseSnapshotWritten>;
|
|
64
65
|
}
|
|
66
|
+
/** One database file the owner serves. */
|
|
67
|
+
export interface OwnedDatabase {
|
|
68
|
+
readonly databaseId: DataStoreDatabase;
|
|
69
|
+
readonly livePath: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The databases a run carries when it states none: the minimum (D382). A
|
|
73
|
+
* schedule, a manual run and `createArchive` all fall back to this one value.
|
|
74
|
+
*/
|
|
75
|
+
export declare const DEFAULT_BACKUP_DATABASES: readonly DataStoreDatabase[];
|
|
65
76
|
/** Path of the manifest file embedded inside every archive. */
|
|
66
77
|
export declare const ARCHIVE_MANIFEST_NAME = ".camstack-backup-manifest.json";
|
|
67
78
|
export type ArchiveEntryKind = "file" | "dir" | "symlink";
|
|
@@ -94,6 +105,12 @@ export interface ArchiveManifest {
|
|
|
94
105
|
* files (D693). Paths are archive-relative.
|
|
95
106
|
*/
|
|
96
107
|
sqliteSnapshots?: ArchiveSqliteSnapshot[];
|
|
108
|
+
/**
|
|
109
|
+
* Owned databases this run did NOT select: left out of the tar and of
|
|
110
|
+
* `entries` alike (a live file is never carried anyway). Absent when the
|
|
111
|
+
* run carried every owned database it found.
|
|
112
|
+
*/
|
|
113
|
+
omittedDatabases?: DataStoreDatabase[];
|
|
97
114
|
}
|
|
98
115
|
/** How an archive was encrypted — absent on a plain `.tar.gz`. */
|
|
99
116
|
export interface ArchiveEncryption {
|
|
@@ -207,6 +224,12 @@ export declare class SystemBackupService {
|
|
|
207
224
|
*/
|
|
208
225
|
owner?: DatabaseOwner;
|
|
209
226
|
/**
|
|
227
|
+
* Which owned databases this run carries as snapshots; the others are left
|
|
228
|
+
* out and listed in `manifest.omittedDatabases`. Absent = `['settings']`
|
|
229
|
+
* ({@link DEFAULT_BACKUP_DATABASES}): an unstated ask is the minimum.
|
|
230
|
+
*/
|
|
231
|
+
databases?: readonly DataStoreDatabase[];
|
|
232
|
+
/**
|
|
210
233
|
* A backup PUBLIC key: the gzip stream is encrypted to it as it is
|
|
211
234
|
* written, so no plaintext archive ever touches the staging disk. Parsed
|
|
212
235
|
* before any work — a bad key builds nothing.
|
|
@@ -214,6 +237,13 @@ export declare class SystemBackupService {
|
|
|
214
237
|
encryptTo?: string;
|
|
215
238
|
}): Promise<CreateArchiveResult>;
|
|
216
239
|
/**
|
|
240
|
+
* An archive of the selected databases' owner snapshots and the manifest —
|
|
241
|
+
* no data-root walk, no location, no settings (D852). Refused when the owner
|
|
242
|
+
* has none of the selected files: an archive of nothing must reach no
|
|
243
|
+
* destination, because its upload prunes an older archive that has them.
|
|
244
|
+
*/
|
|
245
|
+
private createSnapshotsOnlyArchive;
|
|
246
|
+
/**
|
|
217
247
|
* Tar `present` (filtered by `excluded`) plus the staged manifest into
|
|
218
248
|
* `archivePath`.
|
|
219
249
|
*/
|
|
@@ -240,20 +270,22 @@ export declare class SystemBackupService {
|
|
|
240
270
|
/** Drop the marker after a successful boot-time restore. */
|
|
241
271
|
clearPendingMarker(): void;
|
|
242
272
|
/**
|
|
243
|
-
* The databases the owner declares, archive-relative, that this walk found
|
|
244
|
-
* One outside this data root is not in scope. An owner
|
|
245
|
-
* stops the archive: without the answer, nothing says
|
|
273
|
+
* The databases the owner declares, archive-relative, that this walk found,
|
|
274
|
+
* with the id of each. One outside this data root is not in scope. An owner
|
|
275
|
+
* that cannot answer stops the archive: without the answer, nothing says
|
|
276
|
+
* which file is live.
|
|
246
277
|
*/
|
|
247
278
|
private ownedDatabasesInScope;
|
|
248
279
|
/**
|
|
249
|
-
* Ask the owner for
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
* database
|
|
280
|
+
* Ask the owner for one verified snapshot per SELECTED database, one after
|
|
281
|
+
* the other, and place each in this archive. A snapshot must sit on THIS data
|
|
282
|
+
* root — the call is pinned to this node, so a path elsewhere means it
|
|
283
|
+
* reached another host, and that file is not ours to read — beside the very
|
|
284
|
+
* database it was asked for. Anything else is refused, and the run builds
|
|
285
|
+
* nothing: the copies already taken are removed.
|
|
254
286
|
*
|
|
255
|
-
* Only ever DELETED here: `<
|
|
256
|
-
* a name this process derives itself. A path the owner ANSWERS is never
|
|
287
|
+
* Only ever DELETED here: `<selected db>.backup-snapshot` under this data
|
|
288
|
+
* root, a name this process derives itself. A path the owner ANSWERS is never
|
|
257
289
|
* deleted on its word — answering the live database as the snapshot would
|
|
258
290
|
* otherwise delete the live database. A file at any other path is left to
|
|
259
291
|
* the owner's own sweep.
|
|
@@ -261,7 +293,8 @@ export declare class SystemBackupService {
|
|
|
261
293
|
* A cancel is honoured while the owner is still copying; the copy it may
|
|
262
294
|
* finish afterwards is removed when that call settles.
|
|
263
295
|
*/
|
|
264
|
-
private
|
|
296
|
+
private takeOwnerSnapshots;
|
|
297
|
+
private takeOneSnapshot;
|
|
265
298
|
private removeSnapshot;
|
|
266
299
|
/** `abs` relative to the data root, or null when it lies outside it. */
|
|
267
300
|
private archiveRelative;
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
7
|
const require_safe_buffer$1 = require("../../safe-buffer-D3aoa-7X.js");
|
|
8
|
-
const require_constants$8 = require("../../constants-
|
|
8
|
+
const require_constants$8 = require("../../constants-B5Jd8Zch.js");
|
|
9
9
|
const require_x509_es = require("../../x509.es-Dzl0BbmG.js");
|
|
10
10
|
const require_src$1 = require("../../src-CnAqG6EF.js");
|
|
11
11
|
let zod = require("zod");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { Dr as defineCustomActions, Er as customAction, Ir as isSecretClear, Lr as isSecretMarker, Mr as hydrateSchema, Xr as secretTreeFromSchema, cr as errMsg, ei as transformSecretWrite, lr as BaseAddon, zr as makeSecretMarker } from "../../dist-
|
|
2
|
+
import { Dr as defineCustomActions, Er as customAction, Ir as isSecretClear, Lr as isSecretMarker, Mr as hydrateSchema, Xr as secretTreeFromSchema, cr as errMsg, ei as transformSecretWrite, lr as BaseAddon, zr as makeSecretMarker } from "../../dist-DMWeqeTF.mjs";
|
|
3
3
|
import { t as require_safe_buffer } from "../../safe-buffer-B1OjL1I9.mjs";
|
|
4
|
-
import { a as MESH_CA_KEY_REF, b as setProcessClusterSecretGate, c as MESH_JOIN_TOKEN_MAX_TTL_SEC, d as CLUSTER_SECRET_REF, i as MESH_CA_FIELD, l as SERVER_AUTH_OID, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, r as MESH_CA_COMMON_NAME, s as MESH_CA_VALIDITY_DAYS, t as CLIENT_AUTH_OID, v as hashClusterSecret } from "../../constants-
|
|
4
|
+
import { a as MESH_CA_KEY_REF, b as setProcessClusterSecretGate, c as MESH_JOIN_TOKEN_MAX_TTL_SEC, d as CLUSTER_SECRET_REF, i as MESH_CA_FIELD, l as SERVER_AUTH_OID, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, r as MESH_CA_COMMON_NAME, s as MESH_CA_VALIDITY_DAYS, t as CLIENT_AUTH_OID, v as hashClusterSecret } from "../../constants-CkNLi-XW.mjs";
|
|
5
5
|
import { a as KeyUsagesExtension, c as Pkcs10CertificateRequestGenerator, d as X509Certificate$1, f as X509CertificateGenerator, i as KeyUsageFlags, n as BasicConstraintsExtension, o as PemConverter, p as cryptoProvider, r as ExtendedKeyUsageExtension, s as Pkcs10CertificateRequest, t as AuthorityKeyIdentifierExtension, u as SubjectKeyIdentifierExtension } from "../../x509.es-CAjSsrkk.mjs";
|
|
6
6
|
import { t as require_src } from "../../src-hG4grMU4.mjs";
|
|
7
7
|
import { z } from "zod";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-DnALrQF-.js");
|
|
7
7
|
const require_formatter = require("../../formatter-DqAKDlvN.js");
|
|
8
8
|
let node_path = require("node:path");
|
|
9
9
|
node_path = require_chunk.__toESM(node_path);
|