@camstack/system 1.2.433 → 1.2.434
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/{agent-https-DtRU9A7I.mjs → agent-https-B8lKYVtU.mjs} +34 -6
- package/dist/{agent-https-CHZTxK-q.js → agent-https-BZIwS4xF.js} +34 -6
- package/dist/auth/device-ca.d.ts +0 -10
- 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 +2 -2
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
- 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 +9 -4
- package/dist/builtins/local-auth/local-auth.addon.mjs +9 -4
- package/dist/builtins/local-network/address-book.d.ts +13 -0
- package/dist/builtins/local-network/local-network.addon.js +56 -10
- package/dist/builtins/local-network/local-network.addon.mjs +56 -10
- 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/index.js +1 -1
- package/dist/builtins/sqlite-storage/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +3 -3
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +3 -3
- 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-config/system-config.addon.js +23 -8
- package/dist/builtins/system-config/system-config.addon.mjs +23 -8
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{composition-sources-BgJWQMjr.js → composition-sources-B7R1oQnY.js} +1 -1
- package/dist/{composition-sources-8-cpAt1c.mjs → composition-sources-CqrDyHM1.mjs} +1 -1
- package/dist/{constants-Cg9ve13y.mjs → constants-CrMPWOug.mjs} +1 -1
- package/dist/{constants-Ah3T_KAW.js → constants-CuOfMdYe.js} +1 -1
- package/dist/{device-ca-DUrcTW5h.mjs → device-ca-CDjGQQPd.mjs} +17 -6
- package/dist/{device-ca-NNP4Jz0P.js → device-ca-D21ZP00q.js} +17 -6
- package/dist/{dist-C6Yvfhpq.js → dist-CCH3XPqO.js} +43 -6
- package/dist/{dist-DJnlnL7P.mjs → dist-CYcBqnXk.mjs} +38 -7
- package/dist/file-host-worker.js +1 -1
- package/dist/file-host-worker.mjs +1 -1
- package/dist/{hub-mdns-ciao-B50jAU5C.js → hub-mdns-ciao-CBLvq2oj.js} +2 -2
- package/dist/{hub-mdns-ciao-8_Ed1Za5.mjs → hub-mdns-ciao-DJRwtlA8.mjs} +2 -2
- package/dist/index.js +7 -7
- package/dist/index.mjs +7 -7
- package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +0 -9
- package/dist/{lib-B_R6sPC3.mjs → lib-BeGzVQcd.mjs} +1 -1
- package/dist/{lib-DOJ5yyWA.js → lib-NNxHSOIE.js} +1 -1
- package/dist/{restore-archive-C3_rzOCx.mjs → restore-archive-5ml7uYMf.mjs} +1 -1
- package/dist/{restore-archive-DqPaRjjY.js → restore-archive-Do0QwAik.js} +1 -1
- package/dist/{retired-settings-keys-DJBQkZok.js → retired-settings-keys-CEiCaI_j.js} +1 -1
- package/dist/{retired-settings-keys-CAWHWDwy.mjs → retired-settings-keys-CyDdyjLP.mjs} +1 -1
- package/dist/tls/cert-backdate.d.ts +10 -0
- package/dist/tls/cert-issue.d.ts +0 -20
- package/dist/{wal-maintenance-Bc38yI3r.mjs → wal-maintenance-DgLLPK14.mjs} +0 -0
- package/dist/{wal-maintenance-CPLvZbzA.js → wal-maintenance-LZYd8iT-.js} +0 -0
- package/dist/{x509.es-CAjSsrkk.mjs → x509.es-CDvj67p1.mjs} +14 -1
- package/dist/{x509.es-Dzl0BbmG.js → x509.es-r7Ht1thA.js} +19 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { E as DEVICE_SAN_USER_PREFIX,
|
|
2
|
-
import { a as KeyUsagesExtension, d as X509Certificate$1, f as X509CertificateGenerator, i as KeyUsageFlags, l as SubjectAlternativeNameExtension, n as BasicConstraintsExtension, o as PemConverter, p as cryptoProvider, r as ExtendedKeyUsageExtension, t as AuthorityKeyIdentifierExtension, u as SubjectKeyIdentifierExtension } from "./x509.es-
|
|
1
|
+
import { E as DEVICE_SAN_USER_PREFIX, Nr as buildSecretRef, T as DEVICE_SAN_CREDENTIAL_PREFIX } from "./dist-CYcBqnXk.mjs";
|
|
2
|
+
import { a as KeyUsagesExtension, d as X509Certificate$1, f as X509CertificateGenerator, g as backdatedNotBefore, i as KeyUsageFlags, l as SubjectAlternativeNameExtension, n as BasicConstraintsExtension, o as PemConverter, p as cryptoProvider, r as ExtendedKeyUsageExtension, t as AuthorityKeyIdentifierExtension, u as SubjectKeyIdentifierExtension } from "./x509.es-CDvj67p1.mjs";
|
|
3
3
|
import { X509Certificate, createPublicKey, randomBytes, verify, webcrypto } from "node:crypto";
|
|
4
4
|
//#region src/auth/jwt-signing-key.ts
|
|
5
5
|
/**
|
|
@@ -126,6 +126,16 @@ async function loadJwtSigningKey(deps) {
|
|
|
126
126
|
}
|
|
127
127
|
//#endregion
|
|
128
128
|
//#region src/auth/device-ca.ts
|
|
129
|
+
/**
|
|
130
|
+
* Device CA (D855) — the THIRD certificate authority, distinct from the HTTPS
|
|
131
|
+
* local CA (`tls/cert-issue.ts`, RSA) and the mesh CA
|
|
132
|
+
* (`kernel/moleculer/mesh-mtls/mesh-ca.ts`). EC P-256, key in the keychain
|
|
133
|
+
* (owner `system`), certificate persisted like `cluster.meshCa`.
|
|
134
|
+
*
|
|
135
|
+
* It signs ONE kind of leaf: a device credential. The device generated the key
|
|
136
|
+
* pair; the hub only ever sees the public half (an SPKI). Same library and
|
|
137
|
+
* WebCrypto path as the other two CAs, same pinned `@peculiar/x509`.
|
|
138
|
+
*/
|
|
129
139
|
cryptoProvider.set(webcrypto);
|
|
130
140
|
var MS_PER_DAY = 864e5;
|
|
131
141
|
var CLIENT_AUTH_OID = "1.3.6.1.5.5.7.3.2";
|
|
@@ -164,7 +174,7 @@ async function generateDeviceCa(now = /* @__PURE__ */ new Date()) {
|
|
|
164
174
|
const cert = await X509CertificateGenerator.createSelfSigned({
|
|
165
175
|
serialNumber: freshSerial(),
|
|
166
176
|
name: `CN=${DEVICE_CA_COMMON_NAME}`,
|
|
167
|
-
notBefore: now,
|
|
177
|
+
notBefore: backdatedNotBefore(now),
|
|
168
178
|
notAfter: new Date(now.getTime() + DEVICE_CA_VALIDITY_DAYS * MS_PER_DAY),
|
|
169
179
|
keys,
|
|
170
180
|
signingAlgorithm: SIGNING_ALGORITHM,
|
|
@@ -204,7 +214,7 @@ async function rebuildDeviceCaCertificate(keyPem) {
|
|
|
204
214
|
const cert = await X509CertificateGenerator.createSelfSigned({
|
|
205
215
|
serialNumber: freshSerial(),
|
|
206
216
|
name: `CN=${DEVICE_CA_COMMON_NAME}`,
|
|
207
|
-
notBefore: now,
|
|
217
|
+
notBefore: backdatedNotBefore(now),
|
|
208
218
|
notAfter: new Date(now.getTime() + DEVICE_CA_VALIDITY_DAYS * MS_PER_DAY),
|
|
209
219
|
keys: {
|
|
210
220
|
privateKey,
|
|
@@ -234,8 +244,9 @@ async function importDevicePublicKey(spki) {
|
|
|
234
244
|
*/
|
|
235
245
|
async function issueDeviceLeaf(ca, input) {
|
|
236
246
|
const publicKey = await importDevicePublicKey(input.publicKeySpki);
|
|
237
|
-
const
|
|
238
|
-
const
|
|
247
|
+
const issuedAt = input.now ?? /* @__PURE__ */ new Date();
|
|
248
|
+
const notBefore = backdatedNotBefore(issuedAt);
|
|
249
|
+
const notAfter = new Date(issuedAt.getTime() + (input.validDays ?? 365) * MS_PER_DAY);
|
|
239
250
|
const serialNumber = freshSerial();
|
|
240
251
|
const extensions = [
|
|
241
252
|
new BasicConstraintsExtension(false, void 0, true),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_dist = require("./dist-
|
|
2
|
-
const require_x509_es = require("./x509.es-
|
|
1
|
+
const require_dist = require("./dist-CCH3XPqO.js");
|
|
2
|
+
const require_x509_es = require("./x509.es-r7Ht1thA.js");
|
|
3
3
|
let node_crypto = require("node:crypto");
|
|
4
4
|
//#region src/auth/jwt-signing-key.ts
|
|
5
5
|
/**
|
|
@@ -126,6 +126,16 @@ async function loadJwtSigningKey(deps) {
|
|
|
126
126
|
}
|
|
127
127
|
//#endregion
|
|
128
128
|
//#region src/auth/device-ca.ts
|
|
129
|
+
/**
|
|
130
|
+
* Device CA (D855) — the THIRD certificate authority, distinct from the HTTPS
|
|
131
|
+
* local CA (`tls/cert-issue.ts`, RSA) and the mesh CA
|
|
132
|
+
* (`kernel/moleculer/mesh-mtls/mesh-ca.ts`). EC P-256, key in the keychain
|
|
133
|
+
* (owner `system`), certificate persisted like `cluster.meshCa`.
|
|
134
|
+
*
|
|
135
|
+
* It signs ONE kind of leaf: a device credential. The device generated the key
|
|
136
|
+
* pair; the hub only ever sees the public half (an SPKI). Same library and
|
|
137
|
+
* WebCrypto path as the other two CAs, same pinned `@peculiar/x509`.
|
|
138
|
+
*/
|
|
129
139
|
require_x509_es.cryptoProvider.set(node_crypto.webcrypto);
|
|
130
140
|
var MS_PER_DAY = 864e5;
|
|
131
141
|
var CLIENT_AUTH_OID = "1.3.6.1.5.5.7.3.2";
|
|
@@ -164,7 +174,7 @@ async function generateDeviceCa(now = /* @__PURE__ */ new Date()) {
|
|
|
164
174
|
const cert = await require_x509_es.X509CertificateGenerator.createSelfSigned({
|
|
165
175
|
serialNumber: freshSerial(),
|
|
166
176
|
name: `CN=${DEVICE_CA_COMMON_NAME}`,
|
|
167
|
-
notBefore: now,
|
|
177
|
+
notBefore: require_x509_es.backdatedNotBefore(now),
|
|
168
178
|
notAfter: new Date(now.getTime() + DEVICE_CA_VALIDITY_DAYS * MS_PER_DAY),
|
|
169
179
|
keys,
|
|
170
180
|
signingAlgorithm: SIGNING_ALGORITHM,
|
|
@@ -204,7 +214,7 @@ async function rebuildDeviceCaCertificate(keyPem) {
|
|
|
204
214
|
const cert = await require_x509_es.X509CertificateGenerator.createSelfSigned({
|
|
205
215
|
serialNumber: freshSerial(),
|
|
206
216
|
name: `CN=${DEVICE_CA_COMMON_NAME}`,
|
|
207
|
-
notBefore: now,
|
|
217
|
+
notBefore: require_x509_es.backdatedNotBefore(now),
|
|
208
218
|
notAfter: new Date(now.getTime() + DEVICE_CA_VALIDITY_DAYS * MS_PER_DAY),
|
|
209
219
|
keys: {
|
|
210
220
|
privateKey,
|
|
@@ -234,8 +244,9 @@ async function importDevicePublicKey(spki) {
|
|
|
234
244
|
*/
|
|
235
245
|
async function issueDeviceLeaf(ca, input) {
|
|
236
246
|
const publicKey = await importDevicePublicKey(input.publicKeySpki);
|
|
237
|
-
const
|
|
238
|
-
const
|
|
247
|
+
const issuedAt = input.now ?? /* @__PURE__ */ new Date();
|
|
248
|
+
const notBefore = require_x509_es.backdatedNotBefore(issuedAt);
|
|
249
|
+
const notAfter = new Date(issuedAt.getTime() + (input.validDays ?? 365) * MS_PER_DAY);
|
|
239
250
|
const serialNumber = freshSerial();
|
|
240
251
|
const extensions = [
|
|
241
252
|
new require_x509_es.BasicConstraintsExtension(false, void 0, true),
|
|
@@ -718,7 +718,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
718
718
|
return EventCategory;
|
|
719
719
|
}({});
|
|
720
720
|
//#endregion
|
|
721
|
-
//#region ../types/dist/sleep
|
|
721
|
+
//#region ../types/dist/sleep-DAX0-2v9.mjs
|
|
722
722
|
/**
|
|
723
723
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
724
724
|
* window to float samples (D455).
|
|
@@ -9768,6 +9768,12 @@ function scopesAllowDeviceCap(scopes, access) {
|
|
|
9768
9768
|
function scopesAllowAddon(scopes, addonId, access) {
|
|
9769
9769
|
return scopes.some((s) => s.type === "addon" && s.target === addonId && s.access.includes(access));
|
|
9770
9770
|
}
|
|
9771
|
+
zod.z.enum(["new-session", "step-up"]);
|
|
9772
|
+
/** How a native app starts one login method (D858), as `auth.listLoginMethods` reports it. */
|
|
9773
|
+
var AppLoginPathSchema = zod.z.discriminatedUnion("kind", [zod.z.object({ kind: zod.z.literal("native") }), zod.z.object({
|
|
9774
|
+
kind: zod.z.literal("browser"),
|
|
9775
|
+
startPath: zod.z.string().startsWith("/")
|
|
9776
|
+
})]);
|
|
9771
9777
|
/**
|
|
9772
9778
|
* Device certificates (D855) — the wire contract shared by the hub, the admin
|
|
9773
9779
|
* UI and the native viewer.
|
|
@@ -9966,7 +9972,9 @@ zod.z.object({
|
|
|
9966
9972
|
signature: zod.z.literal(DEVICE_CERT_SIGNATURE),
|
|
9967
9973
|
messageVersion: zod.z.literal(DEVICE_SIGNATURE_MESSAGE_VERSION),
|
|
9968
9974
|
/** Which clients can execute it: a native app silently, a browser with a non-extractable WebCrypto key. */
|
|
9969
|
-
clients: zod.z.array(zod.z.enum(["native", "web"]))
|
|
9975
|
+
clients: zod.z.array(zod.z.enum(["native", "web"])),
|
|
9976
|
+
/** The app executes it itself, silently (D858). */
|
|
9977
|
+
app: AppLoginPathSchema.nullable()
|
|
9970
9978
|
});
|
|
9971
9979
|
/**
|
|
9972
9980
|
* What an expression's named bindings READ from.
|
|
@@ -41167,7 +41175,13 @@ var RedirectLoginMethodSchema = zod.z.object({
|
|
|
41167
41175
|
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
41168
41176
|
* whatever their id. Absent / false — a login button only.
|
|
41169
41177
|
*/
|
|
41170
|
-
linkable: zod.z.boolean().optional()
|
|
41178
|
+
linkable: zod.z.boolean().optional(),
|
|
41179
|
+
/**
|
|
41180
|
+
* How a NATIVE app starts this method (D858): `{ kind: 'browser', startPath }`
|
|
41181
|
+
* when the route understands the app flow query (`app=1&code_challenge=…`),
|
|
41182
|
+
* `null`/absent when there is no app path - the app hides the method.
|
|
41183
|
+
*/
|
|
41184
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
41171
41185
|
});
|
|
41172
41186
|
/**
|
|
41173
41187
|
* A Module-Federation widget the login page mounts for an in-page
|
|
@@ -41186,7 +41200,9 @@ var WidgetLoginMethodSchema = zod.z.object({
|
|
|
41186
41200
|
bundle: zod.z.string(),
|
|
41187
41201
|
/** MF remote descriptor — `{ remoteName, exposedModule, componentKey }`. */
|
|
41188
41202
|
remote: WidgetRemoteSchema,
|
|
41189
|
-
stage: LoginStageEnum
|
|
41203
|
+
stage: LoginStageEnum,
|
|
41204
|
+
/** Widgets are web ceremonies: no native app path (D858). Absent reads as `null`. */
|
|
41205
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
41190
41206
|
});
|
|
41191
41207
|
/**
|
|
41192
41208
|
* A declarative WebAuthn ceremony the shell renders natively (no remote
|
|
@@ -41204,7 +41220,9 @@ var PasskeyLoginMethodSchema = zod.z.object({
|
|
|
41204
41220
|
/** Effective WebAuthn RP ID (`resolveRpID()`) — the shell gates visibility on it. */
|
|
41205
41221
|
rpId: zod.z.string(),
|
|
41206
41222
|
/** Effective expected origin (`resolveOrigin()`), null when unconfigured. */
|
|
41207
|
-
origin: zod.z.string().nullable()
|
|
41223
|
+
origin: zod.z.string().nullable(),
|
|
41224
|
+
/** Set by the hub for the primary arm; a second-factor passkey has no app path (D858). */
|
|
41225
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
41208
41226
|
});
|
|
41209
41227
|
/** One login-method contribution — redirect button, pre-auth widget, or native passkey ceremony. */
|
|
41210
41228
|
var LoginMethodContributionSchema = zod.z.discriminatedUnion("kind", [
|
|
@@ -54140,7 +54158,20 @@ var SsoBridgeClaimsSchema = zod.z.object({
|
|
|
54140
54158
|
* request to present the matching cookie — a login bridge is useless in
|
|
54141
54159
|
* any other browser.
|
|
54142
54160
|
*/
|
|
54143
|
-
browserBinding: zod.z.string().optional()
|
|
54161
|
+
browserBinding: zod.z.string().optional(),
|
|
54162
|
+
/**
|
|
54163
|
+
* The native app that started this sign-in (D858): its PKCE challenge,
|
|
54164
|
+
* `state`, purpose and allow-listed return URL, copied from the server-side
|
|
54165
|
+
* pending OIDC state. A bridge carrying it is finished ONLY at
|
|
54166
|
+
* `/api/auth/sso/finish-app` (which mints a handoff code, never a web
|
|
54167
|
+
* session); `/api/auth/sso/finish` refuses it.
|
|
54168
|
+
*/
|
|
54169
|
+
app: zod.z.object({
|
|
54170
|
+
codeChallenge: zod.z.string(),
|
|
54171
|
+
state: zod.z.string(),
|
|
54172
|
+
purpose: zod.z.enum(["new-session", "step-up"]),
|
|
54173
|
+
redirect: zod.z.string()
|
|
54174
|
+
}).optional()
|
|
54144
54175
|
});
|
|
54145
54176
|
var ssoBridgeCapability = {
|
|
54146
54177
|
name: "sso-bridge",
|
|
@@ -85862,6 +85893,12 @@ Object.defineProperty(exports, "ScopedTokenSchema", {
|
|
|
85862
85893
|
return ScopedTokenSchema;
|
|
85863
85894
|
}
|
|
85864
85895
|
});
|
|
85896
|
+
Object.defineProperty(exports, "SsoBridgeClaimsSchema", {
|
|
85897
|
+
enumerable: true,
|
|
85898
|
+
get: function() {
|
|
85899
|
+
return SsoBridgeClaimsSchema;
|
|
85900
|
+
}
|
|
85901
|
+
});
|
|
85865
85902
|
Object.defineProperty(exports, "StorageCleanupJobSchema", {
|
|
85866
85903
|
enumerable: true,
|
|
85867
85904
|
get: function() {
|
|
@@ -718,7 +718,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
718
718
|
return EventCategory;
|
|
719
719
|
}({});
|
|
720
720
|
//#endregion
|
|
721
|
-
//#region ../types/dist/sleep
|
|
721
|
+
//#region ../types/dist/sleep-DAX0-2v9.mjs
|
|
722
722
|
/**
|
|
723
723
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
724
724
|
* window to float samples (D455).
|
|
@@ -9768,6 +9768,12 @@ function scopesAllowDeviceCap(scopes, access) {
|
|
|
9768
9768
|
function scopesAllowAddon(scopes, addonId, access) {
|
|
9769
9769
|
return scopes.some((s) => s.type === "addon" && s.target === addonId && s.access.includes(access));
|
|
9770
9770
|
}
|
|
9771
|
+
z.enum(["new-session", "step-up"]);
|
|
9772
|
+
/** How a native app starts one login method (D858), as `auth.listLoginMethods` reports it. */
|
|
9773
|
+
var AppLoginPathSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("native") }), z.object({
|
|
9774
|
+
kind: z.literal("browser"),
|
|
9775
|
+
startPath: z.string().startsWith("/")
|
|
9776
|
+
})]);
|
|
9771
9777
|
/**
|
|
9772
9778
|
* Device certificates (D855) — the wire contract shared by the hub, the admin
|
|
9773
9779
|
* UI and the native viewer.
|
|
@@ -9966,7 +9972,9 @@ z.object({
|
|
|
9966
9972
|
signature: z.literal(DEVICE_CERT_SIGNATURE),
|
|
9967
9973
|
messageVersion: z.literal(DEVICE_SIGNATURE_MESSAGE_VERSION),
|
|
9968
9974
|
/** Which clients can execute it: a native app silently, a browser with a non-extractable WebCrypto key. */
|
|
9969
|
-
clients: z.array(z.enum(["native", "web"]))
|
|
9975
|
+
clients: z.array(z.enum(["native", "web"])),
|
|
9976
|
+
/** The app executes it itself, silently (D858). */
|
|
9977
|
+
app: AppLoginPathSchema.nullable()
|
|
9970
9978
|
});
|
|
9971
9979
|
/**
|
|
9972
9980
|
* What an expression's named bindings READ from.
|
|
@@ -41167,7 +41175,13 @@ var RedirectLoginMethodSchema = z.object({
|
|
|
41167
41175
|
* `beginExternalLink` offer exactly the redirect methods that set this,
|
|
41168
41176
|
* whatever their id. Absent / false — a login button only.
|
|
41169
41177
|
*/
|
|
41170
|
-
linkable: z.boolean().optional()
|
|
41178
|
+
linkable: z.boolean().optional(),
|
|
41179
|
+
/**
|
|
41180
|
+
* How a NATIVE app starts this method (D858): `{ kind: 'browser', startPath }`
|
|
41181
|
+
* when the route understands the app flow query (`app=1&code_challenge=…`),
|
|
41182
|
+
* `null`/absent when there is no app path - the app hides the method.
|
|
41183
|
+
*/
|
|
41184
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
41171
41185
|
});
|
|
41172
41186
|
/**
|
|
41173
41187
|
* A Module-Federation widget the login page mounts for an in-page
|
|
@@ -41186,7 +41200,9 @@ var WidgetLoginMethodSchema = z.object({
|
|
|
41186
41200
|
bundle: z.string(),
|
|
41187
41201
|
/** MF remote descriptor — `{ remoteName, exposedModule, componentKey }`. */
|
|
41188
41202
|
remote: WidgetRemoteSchema,
|
|
41189
|
-
stage: LoginStageEnum
|
|
41203
|
+
stage: LoginStageEnum,
|
|
41204
|
+
/** Widgets are web ceremonies: no native app path (D858). Absent reads as `null`. */
|
|
41205
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
41190
41206
|
});
|
|
41191
41207
|
/**
|
|
41192
41208
|
* A declarative WebAuthn ceremony the shell renders natively (no remote
|
|
@@ -41204,7 +41220,9 @@ var PasskeyLoginMethodSchema = z.object({
|
|
|
41204
41220
|
/** Effective WebAuthn RP ID (`resolveRpID()`) — the shell gates visibility on it. */
|
|
41205
41221
|
rpId: z.string(),
|
|
41206
41222
|
/** Effective expected origin (`resolveOrigin()`), null when unconfigured. */
|
|
41207
|
-
origin: z.string().nullable()
|
|
41223
|
+
origin: z.string().nullable(),
|
|
41224
|
+
/** Set by the hub for the primary arm; a second-factor passkey has no app path (D858). */
|
|
41225
|
+
app: AppLoginPathSchema.nullable().optional()
|
|
41208
41226
|
});
|
|
41209
41227
|
/** One login-method contribution — redirect button, pre-auth widget, or native passkey ceremony. */
|
|
41210
41228
|
var LoginMethodContributionSchema = z.discriminatedUnion("kind", [
|
|
@@ -54140,7 +54158,20 @@ var SsoBridgeClaimsSchema = z.object({
|
|
|
54140
54158
|
* request to present the matching cookie — a login bridge is useless in
|
|
54141
54159
|
* any other browser.
|
|
54142
54160
|
*/
|
|
54143
|
-
browserBinding: z.string().optional()
|
|
54161
|
+
browserBinding: z.string().optional(),
|
|
54162
|
+
/**
|
|
54163
|
+
* The native app that started this sign-in (D858): its PKCE challenge,
|
|
54164
|
+
* `state`, purpose and allow-listed return URL, copied from the server-side
|
|
54165
|
+
* pending OIDC state. A bridge carrying it is finished ONLY at
|
|
54166
|
+
* `/api/auth/sso/finish-app` (which mints a handoff code, never a web
|
|
54167
|
+
* session); `/api/auth/sso/finish` refuses it.
|
|
54168
|
+
*/
|
|
54169
|
+
app: z.object({
|
|
54170
|
+
codeChallenge: z.string(),
|
|
54171
|
+
state: z.string(),
|
|
54172
|
+
purpose: z.enum(["new-session", "step-up"]),
|
|
54173
|
+
redirect: z.string()
|
|
54174
|
+
}).optional()
|
|
54144
54175
|
});
|
|
54145
54176
|
var ssoBridgeCapability = {
|
|
54146
54177
|
name: "sso-bridge",
|
|
@@ -85514,4 +85545,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
85514
85545
|
return out;
|
|
85515
85546
|
}
|
|
85516
85547
|
//#endregion
|
|
85517
|
-
export {
|
|
85548
|
+
export { addonWidgetsCapability as $, validateCustomAddress as $n, parseJsonObject as $r, isVoidInput as $t, FieldClaimModeSchema as A, resolveBucketMs as An, asJsonObject as Ar, deviceExtensionCapability as At, RECORDING_SOURCE_CAMSTACK_ADDON as B, scoreRuntimes as Bn, emitReadiness as Br, expressionContainsBuiltinCall as Bt, DEVICE_ENROLLMENT_TTL_MS as C, planComposition as Cn, DEVICE_STATUS_METHOD as Cr, databaseSnapshotCapability as Ct, DeclaredDevices as D, reducePoints as Dn, ReadinessTimeoutError as Dr, deriveBatteryPresence as Dt, DEVICE_SAN_USER_PREFIX as E, ptzAutotrackCapability as En, ReadinessRegistry as Er, defineExtensionSlotProvider as Et, LOG_LEVEL_RANK as F, resolveMethodAuth as Fn, collectZodSecretPaths as Fr, enumerateItemArrayFields as Ft, SsoBridgeClaimsSchema as G, storageMigrationCapability as Gn, isEvent as Gr, formatMinutes as Gt, STORAGE_ACCESS_FALLBACK as H, siteZoneKey as Hn, formatSecretScope as Hr, filesystemBrowseCapability as Ht, LegacyStorageLocationDefaultSchema as I, resolveNotificationTapAddress as In, createEvent as Ir, enumerateSchemaFields as It, StorageLocationTypeSchema as J, streamCatalogCapability as Jn, isSecretMarker as Jr, isArrayOutputSchema as Jt, StorageCleanupJobSchema as K, storageOccupancyCapability as Kn, isKeychainStoredField as Kr, gbToBytes as Kt, METHOD_ACCESS_MAP as L, runtimeStatePolicyFor as Ln, customAction as Lr, evaluateCompositionField as Lt, HUB_MDNS_SERVICE_TYPE as M, resolveCoreBlockFiles as Mn, asString$1 as Mr, deviceStateCapability as Mt, HUB_MDNS_TXT_KEYS as N, resolveHubAddressRoles as Nn, buildSecretRef as Nr, deviceStatusCapability as Nt, DeviceStatusSchema as O, replacedFieldKeys as On, SECRET_CLEAR as Or, describeComposableCaps as Ot, KEYCHAIN_RESET_TRIGGER_ACTOR as P, resolveLocationMode as Pn, collectSecretConfigKeys as Pr, enumerateInferenceDevices as Pt, addonSettingsCapability as Q, validateComposition as Qn, normalizeSecretOwner as Qr, isObjectInput as Qt, MINUTES_PER_DAY as R, scopesAllowAddon as Rn, defineCustomActions as Rr, evictionPolicyOfLocation as Rt, DERIVED_CAMERA_SILENCED_CAP_NAMES as S, pickAppLinkHub as Sn, DEVICE_SETTINGS_CONTRIBUTION_METHODS as Sr, dataStoreProviderCapability as St, DEVICE_SAN_CREDENTIAL_PREFIX as T, procedureAuthKey as Tn, RUNTIME_DEFAULTS as Tr, decodeVectorBase64 as Tt, STREAM_PROFILE_META as U, snapshotCapability as Un, hydrateSchema as Ur, foldSnapshotByFunction as Ut, RecordingStatusSchema as V, settingsStoreCapability as Vn, expandCapMethods as Vr, extractNestedAddonId as Vt, ScopedTokenSchema as W, storageCapability as Wn, isDeviceConfigCap as Wr, formatDeviceRevoker as Wt, UserRecordSchema as X, supportedRuntimes as Xn, makeSecretMarker as Xr, isDefaultAppConnectionEndpoint as Xt, StorageMigrationJobSchema as Y, streamQualityLabel as Yn, isSecretMarkerLike as Yr, isCollectionArrayMethod as Yt, addonPagesCapability as Z, userManagementCapability as Zn, nodePin as Zr, isLocationEnabled as Zt, DATABASE_SNAPSHOT_PARTIAL_SUFFIX as _, normalizeCoreBlockWrite as _n, DeviceRole as _r, coreBlockComposition as _t, ApiKeyRecordSchema as a, scopeKey as ai, lifecycleJobSchema as an, buildFfmpegArgs as ar, buildCapabilityLookup as at, DATA_STORE_DATABASES as b, objectInputDeclaresRequiredDeviceId as bn, BaseAddon as br, coreBlocksCapability as bt, CAMERA_SWITCH_ORDER as c, sleep as ci, logDestinationCapability as cn, composedDeviceStableId as cr, buildStreamParamsConfigSchema as ct, COMPOSED_ITEM_FIXED_FIELDS as d, transformSecretWrite as di, mayReadLocation as dn, compositionSliceKey as dr, canonicalIconKey as dt, parseJsonUnknown as ei, kebabToCamel as en, vectorDimFromBase64 as er, alertsCapability as et, COMPOSER_RUNNER_ID as f, EventCategory as fi, mayWriteToLocation as fn, compositionSourceKey as fr, checkRoleAddress as ft, CoreBlockSchema as g, motionCapability as gn, DeviceFeature as gr, coreBlockAddonId as gt, CalendarPreferencesSchema as h, modeMayWrite as hn, toExpressionValue as hr, compositionSourceRefs as ht, AlertSchema as i, resolveSecretMarkers as ii, legacyModeOf as in, COMPOSER_ADDON_ID as ir, batteryCapability as it, FieldClaimSchema as j, resolveCoreBlockEntry as jn, asNumber as jr, deviceManagerCapability as jt, FIRST_LEVEL_MACRO_CLASSES as k, resolveAppConnections as kn, WELL_KNOWN_TAB_MAP as kr, deviceCredentialsCapability as kt, CAMSTACK_APP_LINK_ORIGIN as l, toNodeId as li, logLevelAtMost as ln, compositionFeatureEnabled as lr, calendarsCapability as lt, CORE_BLOCK_ADDON_PREFIX as m, metricsProviderCapability as mn, disarmRoseMemory as mr, compositionFieldKey as mt, AGENT_MDNS_TXT_KEYS as n, readinessKey as ni, keychainCapability as nn, vectorStoreCapability as nr, backupCapability as nt, BaseDevice as o, secretTreeFromPaths as oi, localNetworkCapability as on, cloneStatefulExpressionMemory as or, buildDeviceEnrollmentLink as ot, CORE_BLOCKS_ADDON_ID as p, memoizePinnedFfmpeg as pn, createStatefulExpressionMemory as pr, composerCapability as pt, StorageLocationModeSchema as q, storageProviderCapability as qn, isSecretClear as qr, isAppLinkBase as qt, ALL_CAPABILITY_DEFINITIONS as r, resolveCapMount as ri, legacyAutoLinkIds as rn, withLocationMode as rr, bareAddonId as rt, BatteryStatusSchema as s, secretTreeFromSchema as si, locationIconKey as sn, composedDeviceRef as sr, buildDeviceSignatureMessage as st, AGENT_MDNS_SERVICE_TYPE as t, parseSecretRef as ti, keychainAdminCapability as tn, vectorIndexDimConflictError as tr, authProviderCapability as tt, CAP_NAMES_WITH_STATUS as u, toSecretFieldView as ui, looseSchema as un, compositionItemFieldPath as ur, cameraGridLayoutCapability as ut, DATABASE_SNAPSHOT_SUFFIX as v, normalizeUnit as vn, DeviceType as vr, coreBlockIdFromAddonId as vt, DEVICE_NONCE_TTL_MS as w, platformProbeCapability as wn, REDACTED_SECRET as wr, declarationOwnerNodeId as wt, DAY_NAMES as x, parseStreamParamsFormPatch as xn, DATAPLANE_SECRET_HEADER as xr, createDeviceExtensionProvider as xt, DATABASE_SNAPSHOT_TIMEOUT_MS as y, objectInputDeclaresAddonId as yn, errMsg as yr, coreBlockSourceKind as yt, MOTION_CLOSE_AFTER_MS as z, scopesAllowDeviceCap as zn, emitDownForOwnedCaps as zr, expandContainer as zt };
|
package/dist/file-host-worker.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_wal_maintenance = require("./wal-maintenance-
|
|
2
|
+
const require_wal_maintenance = require("./wal-maintenance-LZYd8iT-.js");
|
|
3
3
|
let node_worker_threads = require("node:worker_threads");
|
|
4
4
|
//#region src/builtins/sqlite-storage/file-host-worker.ts
|
|
5
5
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as callControl, E as controlTargetOf, T as callVector, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, c as SqliteSettingsBackend, h as serializeError, o as createVectorIndex, s as vectorProviderOf, w as callData, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-
|
|
1
|
+
import { C as callControl, E as controlTargetOf, T as callVector, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, c as SqliteSettingsBackend, h as serializeError, o as createVectorIndex, s as vectorProviderOf, w as callData, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-DgLLPK14.mjs";
|
|
2
2
|
import { parentPort, threadId, workerData } from "node:worker_threads";
|
|
3
3
|
//#region src/builtins/sqlite-storage/file-host-worker.ts
|
|
4
4
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_agent_https = require("./agent-https-
|
|
2
|
+
const require_agent_https = require("./agent-https-BZIwS4xF.js");
|
|
3
3
|
let node_crypto = require("node:crypto");
|
|
4
4
|
let _camstack_types_node = require("@camstack/types/node");
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -623,7 +623,7 @@ function applyCertificateToListener(dataDir) {
|
|
|
623
623
|
//#region src/builtins/local-network/hub-mdns-ciao.ts
|
|
624
624
|
function createCiaoPublisher() {
|
|
625
625
|
return { async publish(announcement) {
|
|
626
|
-
const { getResponder } = await Promise.resolve().then(() => /* @__PURE__ */ require_chunk.__toESM(require("./lib-
|
|
626
|
+
const { getResponder } = await Promise.resolve().then(() => /* @__PURE__ */ require_chunk.__toESM(require("./lib-NNxHSOIE.js").default));
|
|
627
627
|
const responder = getResponder();
|
|
628
628
|
const service = responder.createService({
|
|
629
629
|
name: announcement.name,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as __toESM } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { D as reasonRequiresNewCa, E as evaluateExistingCert, _ as generateCa, b as collectCertIdentity, v as issueLeaf, y as loadCa } from "./agent-https-
|
|
2
|
+
import { D as reasonRequiresNewCa, E as evaluateExistingCert, _ as generateCa, b as collectCertIdentity, v as issueLeaf, y as loadCa } from "./agent-https-B8lKYVtU.mjs";
|
|
3
3
|
import { X509Certificate, createPrivateKey } from "node:crypto";
|
|
4
4
|
import { writeOwnerOnlyFileSync } from "@camstack/types/node";
|
|
5
5
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
@@ -623,7 +623,7 @@ function applyCertificateToListener(dataDir) {
|
|
|
623
623
|
//#region src/builtins/local-network/hub-mdns-ciao.ts
|
|
624
624
|
function createCiaoPublisher() {
|
|
625
625
|
return { async publish(announcement) {
|
|
626
|
-
const { getResponder } = await import("./lib-
|
|
626
|
+
const { getResponder } = await import("./lib-BeGzVQcd.mjs").then((m) => /* @__PURE__ */ __toESM(m.default));
|
|
627
627
|
const responder = getResponder();
|
|
628
628
|
const service = responder.createService({
|
|
629
629
|
name: announcement.name,
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("./dist-
|
|
4
|
-
const require_device_ca = require("./device-ca-
|
|
3
|
+
const require_dist = require("./dist-CCH3XPqO.js");
|
|
4
|
+
const require_device_ca = require("./device-ca-D21ZP00q.js");
|
|
5
5
|
const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
|
|
6
6
|
require("./builtins/alerts/index.js");
|
|
7
7
|
const require_builtins_calendars_calendars_addon = require("./builtins/calendars/calendars.addon.js");
|
|
@@ -22,21 +22,21 @@ require("./builtins/local-auth/index.js");
|
|
|
22
22
|
const require_builtins_loki_logging_index = require("./builtins/loki-logging/index.js");
|
|
23
23
|
const require_builtins_native_metrics_native_metrics_addon = require("./builtins/native-metrics/native-metrics.addon.js");
|
|
24
24
|
const require_builtins_sqlite_storage_filesystem_storage_addon = require("./builtins/sqlite-storage/filesystem-storage.addon.js");
|
|
25
|
-
const require_wal_maintenance = require("./wal-maintenance-
|
|
25
|
+
const require_wal_maintenance = require("./wal-maintenance-LZYd8iT-.js");
|
|
26
26
|
const require_builtins_sqlite_storage_sqlite_settings_addon = require("./builtins/sqlite-storage/sqlite-settings.addon.js");
|
|
27
27
|
const require_builtins_sqlite_storage_index = require("./builtins/sqlite-storage/index.js");
|
|
28
28
|
const require_builtins_storage_orchestrator_storage_orchestrator_addon = require("./builtins/storage-orchestrator/storage-orchestrator.addon.js");
|
|
29
29
|
require("./builtins/storage-orchestrator/index.js");
|
|
30
|
-
const require_agent_https = require("./agent-https-
|
|
31
|
-
const require_constants = require("./constants-
|
|
30
|
+
const require_agent_https = require("./agent-https-BZIwS4xF.js");
|
|
31
|
+
const require_constants = require("./constants-CuOfMdYe.js");
|
|
32
32
|
const require_builtins_system_config_system_config_addon = require("./builtins/system-config/system-config.addon.js");
|
|
33
33
|
require("./builtins/system-config/index.js");
|
|
34
34
|
const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
|
|
35
35
|
const require_custom_action_registry = require("./custom-action-registry-Bf_YnagS.js");
|
|
36
|
-
const require_hub_mdns_ciao = require("./hub-mdns-ciao-
|
|
36
|
+
const require_hub_mdns_ciao = require("./hub-mdns-ciao-CBLvq2oj.js");
|
|
37
37
|
const require_platform_key_source = require("./platform-key-source-Di7HrlGR.js");
|
|
38
38
|
const require_resource_monitor = require("./resource-monitor-mio9dSCT.js");
|
|
39
|
-
const require_restore_archive = require("./restore-archive-
|
|
39
|
+
const require_restore_archive = require("./restore-archive-Do0QwAik.js");
|
|
40
40
|
let zod = require("zod");
|
|
41
41
|
let node_crypto = require("node:crypto");
|
|
42
42
|
node_crypto = require_chunk.__toESM(node_crypto);
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as __require } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { $r as
|
|
3
|
-
import { d as JWT_SIGNING_KEY_REF, f as JwtSigningKeyUnavailableError, g as processJwtSigningKey, i as generateDeviceCa, l as verifyDeviceLeaf, m as getProcessJwtSigningKeyState, n as DEVICE_CA_KEY_REF, o as issueDeviceLeaf, p as SYSTEM_SECRET_OWNER, s as loadDeviceCa, u as verifyDeviceSignature, v as staticJwtSigningKey } from "./device-ca-
|
|
2
|
+
import { $r as parseJsonObject, $t as isVoidInput, Ar as asJsonObject$1, Cr as DEVICE_STATUS_METHOD, Dr as ReadinessTimeoutError, Er as ReadinessRegistry, F as LOG_LEVEL_RANK, Fn as resolveMethodAuth, Ir as createEvent$1, Jt as isArrayOutputSchema, L as METHOD_ACCESS_MAP, Mr as asString$1, Q as addonSettingsCapability, Qt as isObjectInput, Rn as scopesAllowAddon, Sr as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Tn as procedureAuthKey, Tr as RUNTIME_DEFAULTS, Vr as expandCapMethods, Vt as extractNestedAddonId, Xn as supportedRuntimes, Yt as isCollectionArrayMethod, ai as scopeKey, an as lifecycleJobSchema, bn as objectInputDeclaresRequiredDeviceId, ei as parseJsonUnknown, en as kebabToCamel$1, fi as EventCategory$1, jr as asNumber, ln as logLevelAtMost, n as AGENT_MDNS_TXT_KEYS, ni as readinessKey, r as ALL_CAPABILITY_DEFINITIONS, ri as resolveCapMount, t as AGENT_MDNS_SERVICE_TYPE, un as looseSchema, xr as DATAPLANE_SECRET_HEADER$1, yn as objectInputDeclaresAddonId, yr as errMsg$1, zn as scopesAllowDeviceCap, zr as emitDownForOwnedCaps } from "./dist-CYcBqnXk.mjs";
|
|
3
|
+
import { d as JWT_SIGNING_KEY_REF, f as JwtSigningKeyUnavailableError, g as processJwtSigningKey, i as generateDeviceCa, l as verifyDeviceLeaf, m as getProcessJwtSigningKeyState, n as DEVICE_CA_KEY_REF, o as issueDeviceLeaf, p as SYSTEM_SECRET_OWNER, s as loadDeviceCa, u as verifyDeviceSignature, v as staticJwtSigningKey } from "./device-ca-CDjGQQPd.mjs";
|
|
4
4
|
import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
|
|
5
5
|
import "./builtins/alerts/index.mjs";
|
|
6
6
|
import { CalendarsAddon } from "./builtins/calendars/calendars.addon.mjs";
|
|
@@ -21,21 +21,21 @@ import "./builtins/local-auth/index.mjs";
|
|
|
21
21
|
import { LokiDestination, LokiLoggingAddon } from "./builtins/loki-logging/index.mjs";
|
|
22
22
|
import NativeMetricsAddon, { a as NativeMetricsProvider, n as nodeProcReader, r as parseProcStat } from "./builtins/native-metrics/native-metrics.addon.mjs";
|
|
23
23
|
import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./builtins/sqlite-storage/filesystem-storage.addon.mjs";
|
|
24
|
-
import { c as SqliteSettingsBackend, l as prefixRange } from "./wal-maintenance-
|
|
24
|
+
import { c as SqliteSettingsBackend, l as prefixRange } from "./wal-maintenance-DgLLPK14.mjs";
|
|
25
25
|
import { SqliteSettingsAddon } from "./builtins/sqlite-storage/sqlite-settings.addon.mjs";
|
|
26
26
|
import { ConfigStore, DeviceStore } from "./builtins/sqlite-storage/index.mjs";
|
|
27
27
|
import { StorageOrchestratorAddon, a as stripForwardedCaller, i as createHubCapForwardService, n as HUB_CAP_FWD_ACTION, o as buildStorageLocationRegistry, r as HUB_CAP_FWD_SERVICE, t as StorageOrchestratorService } from "./builtins/storage-orchestrator/storage-orchestrator.addon.mjs";
|
|
28
28
|
import "./builtins/storage-orchestrator/index.mjs";
|
|
29
|
-
import { A as AgentHttpsNames, C as LEAF_RENEWAL_WINDOW_DAYS, E as evaluateExistingCert, M as setProcessAgentHttpsNames, O as AGENT_HTTPS_NAMES_COLLECTION, S as CA_VALIDITY_DAYS, T as SERVER_AUTH_OID, a as collectAgentNames, b as collectCertIdentity, c as installAgentHttps, d as isPrivateAddress, f as issueAgentHttpsLeaf, g as CA_COMMON_NAME, h as pinnedHttpsCaFingerprint, i as certificateNames, j as getProcessAgentHttpsNames, k as AGENT_HTTPS_NAMES_COLUMNS, l as isContainerBridgeAddress, m as pemDigest, n as acceptAgentSans, o as createAgentHttpsRequest, p as loadAgentHttps, r as agentHttpsPaths, s as describeHttpsLeaf, t as AgentHttpsInstallError, u as isLocalOnlyHostname, w as MAX_LEAF_VALIDITY_DAYS, x as systemHostFacts } from "./agent-https-
|
|
30
|
-
import { _ as getProcessClusterSecretGate, a as MESH_CA_KEY_REF, b as setProcessClusterSecretGate, d as CLUSTER_SECRET_REF, f as CLUSTER_SECRET_REJECTED_EXIT_CODE, g as clusterSecretMatches, h as checkClusterSecret, i as MESH_CA_FIELD, m as CLUSTER_SECRET_UNAVAILABLE_TYPE, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, p as CLUSTER_SECRET_SETTINGS_KEY, u as CLUSTER_SECRET_MISMATCH_TYPE, v as hashClusterSecret, y as isClusterSecretMismatchError } from "./constants-
|
|
29
|
+
import { A as AgentHttpsNames, C as LEAF_RENEWAL_WINDOW_DAYS, E as evaluateExistingCert, M as setProcessAgentHttpsNames, O as AGENT_HTTPS_NAMES_COLLECTION, S as CA_VALIDITY_DAYS, T as SERVER_AUTH_OID, a as collectAgentNames, b as collectCertIdentity, c as installAgentHttps, d as isPrivateAddress, f as issueAgentHttpsLeaf, g as CA_COMMON_NAME, h as pinnedHttpsCaFingerprint, i as certificateNames, j as getProcessAgentHttpsNames, k as AGENT_HTTPS_NAMES_COLUMNS, l as isContainerBridgeAddress, m as pemDigest, n as acceptAgentSans, o as createAgentHttpsRequest, p as loadAgentHttps, r as agentHttpsPaths, s as describeHttpsLeaf, t as AgentHttpsInstallError, u as isLocalOnlyHostname, w as MAX_LEAF_VALIDITY_DAYS, x as systemHostFacts } from "./agent-https-B8lKYVtU.mjs";
|
|
30
|
+
import { _ as getProcessClusterSecretGate, a as MESH_CA_KEY_REF, b as setProcessClusterSecretGate, d as CLUSTER_SECRET_REF, f as CLUSTER_SECRET_REJECTED_EXIT_CODE, g as clusterSecretMatches, h as checkClusterSecret, i as MESH_CA_FIELD, m as CLUSTER_SECRET_UNAVAILABLE_TYPE, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, p as CLUSTER_SECRET_SETTINGS_KEY, u as CLUSTER_SECRET_MISMATCH_TYPE, v as hashClusterSecret, y as isClusterSecretMismatchError } from "./constants-CrMPWOug.mjs";
|
|
31
31
|
import { $ as requireProcessMeshCa, A as dropProcessPeer, At as setProcessMeshAuthStatusSource, B as openMeshTlsWhenRevocationsLoaded, C as Transporters, Ct as MESH_AUTH_MODE_FIELD, D as mintMeshJoinToken, Dt as parseMeshAuthMode, E as JoinTokenJtiStore, Et as isMeshAuthMode, F as onProcessNodeRegistered, Ft as readCidrSetting, G as RENEWAL_ABANDONED, H as MESH_NODE_CERTIFICATES_COLLECTION, I as setProcessMeshPeerTransportLookup, J as setProcessMeshCertificateRegistry, K as describeMeshLeaf, L as renewMeshCertificate, M as getProcessNodeMeshTransport, Mt as createCidrMatcher, N as getProcessPeerLeaf, Nt as normalizeIp, O as processJoinTokenJtiStore, Ot as requestProcessMeshEnforcement, P as isProcessVerifiedMeshPeer, Pt as parseCidrList, Q as getProcessMeshCaState, R as revokeMeshCertificate, S as ServiceBroker, St as verifyAgentUiUnlockTicketEs256, SystemConfigAddon, T as enrollMeshNode, Tt as getProcessMeshAuthStatus, U as MESH_NODE_CERTIFICATES_COLUMNS, V as setProcessMeshTlsListenerState, W as MeshCertificateRegistry, X as processMeshCrl, Y as MeshCrl, Z as MeshCaKeeper, _ as signPairingProof, _t as isAllowedAgentDashboardReturnTo, a as hubHostFromMeshAddress, at as generateMeshKeyPair, b as TlsTcpTransporter, bt as parseAgentDashboardOrigins, c as PAIRING_MAX_SESSIONS, ct as issueMeshLeafFromCsr, d as PAIRING_PROTOCOL, dt as AGENT_UI_UNLOCK_DOMAIN, et as caFingerprint, f as PAIRING_TTL_MS, ft as AGENT_UI_UNLOCK_TTL_MS, g as keyFingerprintShort, gt as UnlockTicketJtiStore, h as describeCsr, ht as AGENT_UI_UNLOCK_VERSION, i as AgentPairing, it as generateMeshCa, j as emitProcessNodeRegistered, jt as setProcessMeshEnforcer, k as verifyMeshJoinToken, kt as setProcessMeshAuthMode, l as PAIRING_PATHS, lt as loadMeshCa, m as computePairingSas, mt as AGENT_UI_UNLOCK_USE, n as HubPairing, nt as createMeshCsrPem, o as PAIRING_CODE_DIGITS, ot as isValidAgentNodeId, p as computePairingCommitment, pt as AGENT_UI_UNLOCK_TYP, q as getProcessMeshCertificateRegistry, r as PairingHttpError, rt as exportMeshPrivateKeyPem, s as PAIRING_MAX_CODE_ATTEMPTS, st as issueMeshLeafForNode, tt as caFingerprintCompact, u as PAIRING_PIN_DIGITS, ut as AGENT_DASHBOARD_ORIGINS_FIELD, v as verifyPairingProof, vt as mintAgentUiUnlockTicket, w as setProcessMeshTlsEnabler, wt as getProcessMeshAuthMode, x as Errors, xt as verifyAgentUiUnlockTicket, y as MESH_TLS_PORT_HELLO_FIELD, yt as mintAgentUiUnlockTicketEs256, z as getProcessMeshTlsListenerState } from "./builtins/system-config/system-config.addon.mjs";
|
|
32
32
|
import "./builtins/system-config/index.mjs";
|
|
33
33
|
import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
|
|
34
34
|
import { C as isModelDownloaded, T as revisionWeightUrl, _ as downloadFile, a as startEventLoopStallMonitor, b as fetchJson, c as createAuthenticatedFileServer, d as resolveFilePath, f as ModelDownloadService, g as deleteModelFromDisk, h as collectModelFiles, i as attributeStall, l as parseRangeHeader, m as adoptModelRevisions, n as STALL_REPORT_MS, o as createFileDataPlaneHandler, r as STALL_TICK_MS, s as contentTypeFor, t as CustomActionRegistry, u as parseTokenizedUrl, v as downloadModel, w as resolveFormatRevision, x as getModelFilePath, y as ensureModel } from "./custom-action-registry-BQnbN0DP.mjs";
|
|
35
|
-
import { C as DEFAULT_LAN_HTTP_PORT, D as closeLanHttp, E as bindPendingLanHttp, O as readLanHttpState, S as reissueTlsLeaf, T as applyLanHttp, _ as splitPemCertificates, a as storeUploadedCertificate, b as ensureTlsCert, c as leafFingerprintOf, d as servedHttpsLeafFingerprint, f as prepareBootTls, g as readTlsMode, h as readTlsAccessStatus, i as revertToGeneratedCertificate, k as registerLanHttpHandler, l as registerHttpsListener, m as readExtraSans, n as applyCertificateToListener, o as validateUploadedTls, p as UPLOADED_CA_FILE, r as regenerateCertificate, s as clearHttpsListener, t as createCiaoPublisher, u as reloadHttpsListener, v as writeExtraSans, w as allFamiliesListenHost, x as loadTlsCert, y as writeTlsMode } from "./hub-mdns-ciao-
|
|
35
|
+
import { C as DEFAULT_LAN_HTTP_PORT, D as closeLanHttp, E as bindPendingLanHttp, O as readLanHttpState, S as reissueTlsLeaf, T as applyLanHttp, _ as splitPemCertificates, a as storeUploadedCertificate, b as ensureTlsCert, c as leafFingerprintOf, d as servedHttpsLeafFingerprint, f as prepareBootTls, g as readTlsMode, h as readTlsAccessStatus, i as revertToGeneratedCertificate, k as registerLanHttpHandler, l as registerHttpsListener, m as readExtraSans, n as applyCertificateToListener, o as validateUploadedTls, p as UPLOADED_CA_FILE, r as regenerateCertificate, s as clearHttpsListener, t as createCiaoPublisher, u as reloadHttpsListener, v as writeExtraSans, w as allFamiliesListenHost, x as loadTlsCert, y as writeTlsMode } from "./hub-mdns-ciao-DJRwtlA8.mjs";
|
|
36
36
|
import { n as getPlatformKeychainKey, r as setPlatformKeychainKey, t as clearPlatformKeychainKey } from "./platform-key-source-BWlq0jjn.mjs";
|
|
37
37
|
import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Di9daRwI.mjs";
|
|
38
|
-
import { c as BackupDecryptError, f as generateBackupKeyPair, h as readBackupEncryptionHeader, l as BackupKeyFormatError, r as prepareRestoreArchive, s as SystemBackupService, t as BackupKeyRequiredError, u as BackupKeyMismatchError } from "./restore-archive-
|
|
38
|
+
import { c as BackupDecryptError, f as generateBackupKeyPair, h as readBackupEncryptionHeader, l as BackupKeyFormatError, r as prepareRestoreArchive, s as SystemBackupService, t as BackupKeyRequiredError, u as BackupKeyMismatchError } from "./restore-archive-5ml7uYMf.mjs";
|
|
39
39
|
import { z } from "zod";
|
|
40
40
|
import * as crypto$1 from "node:crypto";
|
|
41
41
|
import { createHash, createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hub mesh CA — EC P-256, key in the keychain, cert in `cluster.meshCa`.
|
|
3
|
-
*
|
|
4
|
-
* Distinct from the HTTPS local CA (`tls/cert-issue.ts`, RSA): the mesh CA
|
|
5
|
-
* signs node leaves (CN = nodeID) and join-token JWS (ES256). Issuance uses
|
|
6
|
-
* `@peculiar/x509` over WebCrypto — same library the HTTPS path already uses
|
|
7
|
-
* (installed `1.14.3`; registry latest at adoption time was `2.1.0` — stay on
|
|
8
|
-
* the pinned range already shipping).
|
|
9
|
-
*/
|
|
10
1
|
import type { webcrypto as WebCrypto } from "node:crypto";
|
|
11
2
|
import { X509Certificate as PeculiarCertificate } from "@peculiar/x509";
|
|
12
3
|
/** Key generation — EC P-256 (plan). WebCrypto DOM names are not in @types/node. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, n as __esmMin, r as __exportAll, t as __commonJSMin } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { h as tslib_es6_exports, m as init_tslib_es6 } from "./x509.es-
|
|
2
|
+
import { h as tslib_es6_exports, m as init_tslib_es6 } from "./x509.es-CDvj67p1.mjs";
|
|
3
3
|
import { t as require_src } from "./src-hG4grMU4.mjs";
|
|
4
4
|
//#region ../../node_modules/source-map/lib/base64.js
|
|
5
5
|
var require_base64 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_x509_es = require("./x509.es-
|
|
2
|
+
const require_x509_es = require("./x509.es-r7Ht1thA.js");
|
|
3
3
|
const require_src$1 = require("./src-CnAqG6EF.js");
|
|
4
4
|
//#region ../../node_modules/source-map/lib/base64.js
|
|
5
5
|
var require_base64 = /* @__PURE__ */ require_chunk.__commonJSMin(((exports) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { v as DATABASE_SNAPSHOT_SUFFIX } from "./dist-
|
|
1
|
+
import { v as DATABASE_SNAPSHOT_SUFFIX } from "./dist-CYcBqnXk.mjs";
|
|
2
2
|
import { createCipheriv, createDecipheriv, createHash, createPrivateKey, createPublicKey, diffieHellman, generateKeyPairSync, hkdfSync, randomBytes } from "node:crypto";
|
|
3
3
|
import { Buffer as Buffer$1 } from "buffer";
|
|
4
4
|
import * as fsp from "node:fs/promises";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-CCH3XPqO.js");
|
|
3
3
|
let node_crypto = require("node:crypto");
|
|
4
4
|
let buffer = require("buffer");
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How far a freshly issued certificate's `notBefore` is moved into the past.
|
|
3
|
+
*
|
|
4
|
+
* TLS refuses a certificate whose `notBefore` is in the verifier's future, and X.509 dates have
|
|
5
|
+
* one-second resolution, so a certificate dated "now" fails the handshake on any peer whose clock
|
|
6
|
+
* runs even slightly behind the issuer's. Expiry is always computed from the real `now`; only the
|
|
7
|
+
* start of validity moves.
|
|
8
|
+
*/
|
|
9
|
+
export declare const CERT_NOT_BEFORE_BACKDATE_MS: number;
|
|
10
|
+
export declare function backdatedNotBefore(now: Date): Date;
|
package/dist/tls/cert-issue.d.ts
CHANGED
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Certificate issuance. Isolated so `cert-manager.ts` reads as policy and
|
|
3
|
-
* this file reads as mechanics.
|
|
4
|
-
*
|
|
5
|
-
* **In-process, by decision (D551).** This used to shell out to `openssl`
|
|
6
|
-
* three times. The hub's own TLS identity is not allowed to be a function
|
|
7
|
-
* of which openssl happens to sit on the host: this fleet alone runs four
|
|
8
|
-
* of them, and one — Ubuntu 20.04's 1.1.1f — silently ADDED the ambient
|
|
9
|
-
* `/etc/ssl/openssl.cnf` `[req] x509_extensions = v3_ca` block on top of
|
|
10
|
-
* our `-addext` flags, producing a root with two `basicConstraints` and
|
|
11
|
-
* two `subjectKeyIdentifier` extensions. RFC 5280 §4.2 allows each at
|
|
12
|
-
* most once, so OpenSSL 3 (which is what `node:crypto` is) marked that
|
|
13
|
-
* root invalid: `X509Certificate.ca` read `false` on our own CA and
|
|
14
|
-
* `checkIssued()` refused the pair. Under D227 that means "not issued by
|
|
15
|
-
* the local CA", i.e. rotate the root — on every boot, forever, voiding
|
|
16
|
-
* every trust an operator had granted by hand.
|
|
17
|
-
*
|
|
18
|
-
* Keys come from WebCrypto (`node:crypto`'s own implementation) and the
|
|
19
|
-
* DER is assembled by `@peculiar/x509`. Nothing here reads the host.
|
|
20
|
-
*/
|
|
21
1
|
import type { webcrypto as WebCrypto } from "node:crypto";
|
|
22
2
|
import { X509Certificate as PeculiarCertificate } from "@peculiar/x509";
|
|
23
3
|
import type { CertIdentity } from "./cert-identity.js";
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import { n as __esmMin, r as __exportAll, t as __commonJSMin } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
+
//#region src/tls/cert-backdate.ts
|
|
3
|
+
/**
|
|
4
|
+
* How far a freshly issued certificate's `notBefore` is moved into the past.
|
|
5
|
+
*
|
|
6
|
+
* TLS refuses a certificate whose `notBefore` is in the verifier's future, and X.509 dates have
|
|
7
|
+
* one-second resolution, so a certificate dated "now" fails the handshake on any peer whose clock
|
|
8
|
+
* runs even slightly behind the issuer's. Expiry is always computed from the real `now`; only the
|
|
9
|
+
* start of validity moves.
|
|
10
|
+
*/
|
|
11
|
+
var CERT_NOT_BEFORE_BACKDATE_MS = 5 * 6e4;
|
|
12
|
+
function backdatedNotBefore(now) {
|
|
13
|
+
return /* @__PURE__ */ new Date(now.getTime() - CERT_NOT_BEFORE_BACKDATE_MS);
|
|
14
|
+
}
|
|
2
15
|
/*! *****************************************************************************
|
|
3
16
|
Copyright (C) Microsoft. All rights reserved.
|
|
4
17
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
@@ -11900,4 +11913,4 @@ AsnEcSignatureFormatter.namedCurveSize.set("K-256", 32);
|
|
|
11900
11913
|
AsnEcSignatureFormatter.namedCurveSize.set("P-384", 48);
|
|
11901
11914
|
AsnEcSignatureFormatter.namedCurveSize.set("P-521", 66);
|
|
11902
11915
|
//#endregion
|
|
11903
|
-
export { KeyUsagesExtension as a, Pkcs10CertificateRequestGenerator as c, X509Certificate as d, X509CertificateGenerator as f, tslib_es6_exports as h, KeyUsageFlags as i, SubjectAlternativeNameExtension as l, init_tslib_es6 as m, BasicConstraintsExtension as n, PemConverter as o, cryptoProvider as p, ExtendedKeyUsageExtension as r, Pkcs10CertificateRequest as s, AuthorityKeyIdentifierExtension as t, SubjectKeyIdentifierExtension as u };
|
|
11916
|
+
export { KeyUsagesExtension as a, Pkcs10CertificateRequestGenerator as c, X509Certificate as d, X509CertificateGenerator as f, backdatedNotBefore as g, tslib_es6_exports as h, KeyUsageFlags as i, SubjectAlternativeNameExtension as l, init_tslib_es6 as m, BasicConstraintsExtension as n, PemConverter as o, cryptoProvider as p, ExtendedKeyUsageExtension as r, Pkcs10CertificateRequest as s, AuthorityKeyIdentifierExtension as t, SubjectKeyIdentifierExtension as u };
|