@camstack/types 1.2.380 → 1.2.381
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addon.d.ts +2 -0
- package/dist/addon.js +11 -1
- package/dist/addon.mjs +2 -2
- package/dist/capabilities/storage-admin.cap.d.ts +22 -0
- package/dist/client.js +51 -32
- package/dist/client.mjs +51 -32
- package/dist/device/device-context.d.ts +2 -0
- package/dist/ffmpeg/fmp4-fragment-child.d.ts +2 -2
- package/dist/ffmpeg/process.d.ts +21 -0
- package/dist/generated/addon-api.d.ts +14 -0
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/helpers/addon-slice-handle.d.ts +4 -0
- package/dist/helpers/trpc-leaf.d.ts +17 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +69 -60
- package/dist/index.mjs +58 -59
- package/dist/interfaces/addon-peer-bytes.d.ts +19 -2
- package/dist/interfaces/config-ui.d.ts +4 -0
- package/dist/node.d.ts +2 -2
- package/dist/node.js +4 -0
- package/dist/node.mjs +4 -1
- package/dist/records/in-memory-records.d.ts +21 -0
- package/dist/records/index.d.ts +3 -0
- package/dist/records/settings-array-adopts-from.d.ts +12 -0
- package/dist/records/settings-brokers-adopts-from.d.ts +10 -0
- package/dist/{sleep-CIGOw58l.js → sleep-D8yJVc4r.js} +522 -46
- package/dist/{sleep-WsrozGDL.mjs → sleep-bZIhUvjd.mjs} +445 -47
- package/package.json +1 -1
package/dist/addon.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export type { IAdminUiProvider } from './capabilities/admin-ui.cap.js';
|
|
|
24
24
|
export { adminUiCapability } from './capabilities/admin-ui.cap.js';
|
|
25
25
|
export { expandCapMethods } from './capabilities/capability-definition.js';
|
|
26
26
|
export { describeCustomActions } from './capabilities/custom-actions.js';
|
|
27
|
+
export { CALLER_STAMPED_CAPABILITIES, withoutCallerStamp, } from './capabilities/caller-stamp.js';
|
|
27
28
|
export { deviceOpsCapability } from './capabilities/device-ops.cap.js';
|
|
28
29
|
export type { IViewerUiProvider } from './capabilities/viewer-ui.cap.js';
|
|
29
30
|
export { viewerUiCapability } from './capabilities/viewer-ui.cap.js';
|
|
@@ -44,6 +45,7 @@ export type { CapStateLeaf } from './generated/addon-cap-facts.js';
|
|
|
44
45
|
export { createDeviceProxy } from './generated/device-proxy.js';
|
|
45
46
|
export { createEventBusSliceSource } from './device/device-state-handle.js';
|
|
46
47
|
export type { SliceEventBus, SliceHandleApi } from './device/device-state-handle.js';
|
|
48
|
+
export { addonSliceHandleApi } from './helpers/addon-slice-handle.js';
|
|
47
49
|
export { DEVICE_SCOPED_CAPS, isDeviceScopedCap } from './generated/device-scoped-caps.js';
|
|
48
50
|
export type { AddonDeclaration, AddonInitResult, ICamstackAddon, ProviderRegistration, } from './interfaces/addon.js';
|
|
49
51
|
export { DATAPLANE_SECRET_HEADER } from './interfaces/addon-data-plane.js';
|
package/dist/addon.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_sleep = require("./sleep-
|
|
2
|
+
const require_sleep = require("./sleep-D8yJVc4r.js");
|
|
3
3
|
const require_event_category = require("./event-category-Hoe-mqbd.js");
|
|
4
4
|
const require_err_msg = require("./err-msg-Bb-s4Xuj.js");
|
|
5
5
|
//#region src/generated/cap-input-defaults.ts
|
|
@@ -2139,6 +2139,7 @@ exports.AdoptionPendingError = require_sleep.AdoptionPendingError;
|
|
|
2139
2139
|
exports.BOOT_RECOVERY_BACKOFF_MS = require_sleep.BOOT_RECOVERY_BACKOFF_MS;
|
|
2140
2140
|
exports.BaseAddon = require_sleep.BaseAddon;
|
|
2141
2141
|
exports.BatchTooLargeError = require_sleep.BatchTooLargeError;
|
|
2142
|
+
exports.CALLER_STAMPED_CAPABILITIES = require_sleep.CALLER_STAMPED_CAPABILITIES;
|
|
2142
2143
|
exports.CAP_ADVANCE_FIELDS = CAP_ADVANCE_FIELDS;
|
|
2143
2144
|
exports.CAP_INPUT_DEFAULTS = CAP_INPUT_DEFAULTS;
|
|
2144
2145
|
exports.CAP_STATE_LEAVES = CAP_STATE_LEAVES;
|
|
@@ -2197,8 +2198,11 @@ exports.RecordsError = require_sleep.RecordsError;
|
|
|
2197
2198
|
exports.RevConflictError = require_sleep.RevConflictError;
|
|
2198
2199
|
exports.SECRET_CLEAR = require_sleep.SECRET_CLEAR;
|
|
2199
2200
|
exports.SECRET_REF_SCHEME = require_sleep.SECRET_REF_SCHEME;
|
|
2201
|
+
exports.SETTINGS_ARRAY_ADOPTS_PREFIX = require_sleep.SETTINGS_ARRAY_ADOPTS_PREFIX;
|
|
2202
|
+
exports.SETTINGS_BROKERS_ADOPTS_PREFIX = require_sleep.SETTINGS_BROKERS_ADOPTS_PREFIX;
|
|
2200
2203
|
exports.UnindexedFilterError = require_sleep.UnindexedFilterError;
|
|
2201
2204
|
exports.UnknownRecordKindError = require_sleep.UnknownRecordKindError;
|
|
2205
|
+
exports.addonSliceHandleApi = require_sleep.addonSliceHandleApi;
|
|
2202
2206
|
exports.adminUiCapability = require_sleep.adminUiCapability;
|
|
2203
2207
|
exports.arrayItemFieldPath = require_sleep.arrayItemFieldPath;
|
|
2204
2208
|
exports.asJsonObject = require_sleep.asJsonObject;
|
|
@@ -2238,6 +2242,7 @@ exports.isSecretMarkerLike = require_sleep.isSecretMarkerLike;
|
|
|
2238
2242
|
exports.isSecretRef = require_sleep.isSecretRef;
|
|
2239
2243
|
exports.isZodSecret = require_sleep.isZodSecret;
|
|
2240
2244
|
exports.knownSecretCount = require_sleep.knownSecretCount;
|
|
2245
|
+
exports.makeInMemoryRecords = require_sleep.makeInMemoryRecords;
|
|
2241
2246
|
exports.makeSecretMarker = require_sleep.makeSecretMarker;
|
|
2242
2247
|
exports.mapSecretLeaves = require_sleep.mapSecretLeaves;
|
|
2243
2248
|
exports.maskUrlCredentials = require_sleep.maskUrlCredentials;
|
|
@@ -2247,6 +2252,8 @@ exports.normalizeSecretOwner = require_sleep.normalizeSecretOwner;
|
|
|
2247
2252
|
exports.parseJsonUnknown = require_sleep.parseJsonUnknown;
|
|
2248
2253
|
exports.parseSecretPath = require_sleep.parseSecretPath;
|
|
2249
2254
|
exports.parseSecretRef = require_sleep.parseSecretRef;
|
|
2255
|
+
exports.parseSettingsArrayAdoptsFrom = require_sleep.parseSettingsArrayAdoptsFrom;
|
|
2256
|
+
exports.parseSettingsBrokersAdoptsFrom = require_sleep.parseSettingsBrokersAdoptsFrom;
|
|
2250
2257
|
exports.readErrorI18n = require_sleep.readErrorI18n;
|
|
2251
2258
|
exports.readNodePin = require_sleep.readNodePin;
|
|
2252
2259
|
exports.recordArrayItemPath = require_sleep.recordArrayItemPath;
|
|
@@ -2258,8 +2265,11 @@ exports.resolveSecretViewsIn = require_sleep.resolveSecretViewsIn;
|
|
|
2258
2265
|
exports.scopeKey = require_sleep.scopeKey;
|
|
2259
2266
|
exports.scrubKnownSecrets = require_sleep.scrubKnownSecrets;
|
|
2260
2267
|
exports.secretArrayPrefixes = require_sleep.secretArrayPrefixes;
|
|
2268
|
+
exports.settingsArrayAdoptsFrom = require_sleep.settingsArrayAdoptsFrom;
|
|
2269
|
+
exports.settingsBrokersAdoptsFrom = require_sleep.settingsBrokersAdoptsFrom;
|
|
2261
2270
|
exports.shortSecretRefHash = require_sleep.shortSecretRefHash;
|
|
2262
2271
|
exports.sleep = require_sleep.sleep;
|
|
2263
2272
|
exports.toSecretFieldView = require_sleep.toSecretFieldView;
|
|
2264
2273
|
exports.viewerUiCapability = require_sleep.viewerUiCapability;
|
|
2265
2274
|
exports.withCapInputDefaults = withCapInputDefaults;
|
|
2275
|
+
exports.withoutCallerStamp = require_sleep.withoutCallerStamp;
|
package/dist/addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $n as PEER_BYTES_CHUNK_BYTES, $t as REMOVE_LEAF, A as HF_REPO, An as RECORD_BATCH_MAX_BYTES, Ar as emitReadiness, B as describeCustomActions, Bn as RECORD_SECRET_COLLECTION_PREFIX, Br as SECRET_CLEAR, Bt as settingsBrokersAdoptsFrom, C as addonSliceHandleApi, Cn as RecordsError, Cr as globalSecretScope, Dn as asRecordsError, En as UnknownRecordKindError, Er as parseSecretRef, F as DEVICE_CHILDREN_BATCH_MAX, Fn as RECORD_ID_MAX_LENGTH, Ft as SETTINGS_ARRAY_ADOPTS_PREFIX, Gn as createSecretsAccess, Gr as isSecretMarkerLike, Gt as RecordFieldPathSchema, H as adminUiCapability, Hn as RECORD_SWEEP_INTERVAL_MS, Hr as isSecretClear, Ht as entryBody, I as CALLER_STAMPED_CAPABILITIES, In as RECORD_MAX_DATA_BYTES, It as parseSettingsArrayAdoptsFrom, Jn as forgetKnownSecret, Jt as RecordKindNameSchema, Kn as MIN_SCRUBBED_LENGTH, Kr as makeSecretMarker, Kt as RecordIndexSchema, L as withoutCallerStamp, Ln as RECORD_MAX_INDEXES, Lt as settingsArrayAdoptsFrom, Mn as RECORD_DATABASES, N as deviceOpsCapability, Nn as RECORD_DEFAULT_MAX_DATA_BYTES, On as recordsErrorFromMessage, P as viewerUiCapability, Pn as RECORD_DELETE_BATCH, Pt as makeInMemoryRecords, Qn as shortSecretRefHash, Qt as defineRecordKinds, Rn as RECORD_MAX_INDEX_FIELDS, Rt as SETTINGS_BROKERS_ADOPTS_PREFIX, Sn as RecordUniqueViolationError, Sr as formatSecretScope, Tn as UnindexedFilterError, Tr as normalizeSecretOwner, Un as resolveSecretViewsIn, Ur as isSecretFieldView, Ut as createRecordsAccess, Vn as RECORD_SETTINGS_MAX_ROWS, Vr as classifySecretWrite, Vt as defineEntryKind, Wn as REVALIDATE_AFTER_MS, Wr as isSecretMarker, Wt as EntryDescriptorSchema, X as expandCapMethods, Xn as registerKnownSecret, Xt as assertValidDeclaration, Yn as knownSecretCount, Yt as RecordRetentionSchema, Zn as scrubKnownSecrets, Zt as declarationsOf, _ as readErrorI18n, _n as PlaintextSecretError, an as recordSecretRef, b as isDeviceScopedCap, bn as RecordSecretUnavailableError, br as arrayItemFieldPath, c as asString, cn as collectZodSecretPaths, ct as ReadinessTimeoutError, d as parseJsonUnknown, dn as BatchTooLargeError, dt as scopeKey, en as collectSecretLeaves, er as PEER_BYTES_MAX_OUTSTANDING, f as hfModelUrl, fn as DeclarationRefusedError, g as ErrorI18nPayloadSchema, gn as NoCallerError, hn as InvalidRecordError, in as recordSecretCollection, ir as DATAPLANE_SECRET_HEADER, it as readNodePin, jn as RECORD_CLASSES, kn as RECORD_BATCH_MAX, kr as createEvent, ln as isZodSecret, lr as normalizeAddonInitResult, mn as ForeignSecretMarkerError, nn as parseSecretPath, nr as PEER_BYTES_TICKET_TTL_MS, o as asJsonObject, on as secretArrayPrefixes, or as DisposerChain, ot as MODEL_FORMATS, p as BOOT_RECOVERY_BACKOFF_MS, pn as FilterRequiredError, qn as clearKnownSecrets, qr as toSecretFieldView, qt as RecordKindDeclarationSchema, r as maskUrlCredentials, rn as recordArrayItemPath, rt as nodePin, sr as BaseAddon, st as ReadinessRegistry, t as sleep, tn as mapSecretLeaves, tr as PEER_BYTES_STALL_MS, un as AdoptionPendingError, vn as RECORDS_ERROR_CODES, w as createEventBusSliceSource, wn as RevConflictError, wr as isSecretRef, x as createDeviceProxy, xn as RecordTooLargeError, xr as buildSecretRef, y as DEVICE_SCOPED_CAPS, yn as RecordNotFoundError, yr as SECRET_REF_SCHEME, zn as RECORD_QUERY_MAX, zt as parseSettingsBrokersAdoptsFrom } from "./sleep-bZIhUvjd.mjs";
|
|
2
2
|
import { t as EventCategory } from "./event-category-BvOFi6PY.mjs";
|
|
3
3
|
import { a as DeviceType, t as errMsg } from "./err-msg--2RrYiLO.mjs";
|
|
4
4
|
//#region src/generated/cap-input-defaults.ts
|
|
@@ -2134,4 +2134,4 @@ var CAP_STATE_LEAVES = Object.freeze({
|
|
|
2134
2134
|
]
|
|
2135
2135
|
});
|
|
2136
2136
|
//#endregion
|
|
2137
|
-
export { AdoptionPendingError, BOOT_RECOVERY_BACKOFF_MS, BaseAddon, BatchTooLargeError, CAP_ADVANCE_FIELDS, CAP_INPUT_DEFAULTS, CAP_STATE_LEAVES, COLLECTION_ARRAY_METHODS, DATAPLANE_SECRET_HEADER, DEVICE_CHILDREN_BATCH_MAX, DEVICE_SCOPED_CAPS, DeclarationRefusedError, DeviceType, DisposerChain, EntryDescriptorSchema, ErrorI18nPayloadSchema, EventCategory, FilterRequiredError, ForeignSecretMarkerError, HF_REPO, InvalidRecordError, MIN_SCRUBBED_LENGTH, MODEL_FORMATS, NoCallerError, PEER_BYTES_CHUNK_BYTES, PEER_BYTES_MAX_OUTSTANDING, PEER_BYTES_STALL_MS, PEER_BYTES_TICKET_TTL_MS, PROVIDER_OPTIONAL_METHODS, PlaintextSecretError, RECORDS_ERROR_CODES, RECORD_BATCH_MAX, RECORD_BATCH_MAX_BYTES, RECORD_CLASSES, RECORD_DATABASES, RECORD_DEFAULT_MAX_DATA_BYTES, RECORD_DELETE_BATCH, RECORD_ID_MAX_LENGTH, RECORD_MAX_DATA_BYTES, RECORD_MAX_INDEXES, RECORD_MAX_INDEX_FIELDS, RECORD_QUERY_MAX, RECORD_SECRET_COLLECTION_PREFIX, RECORD_SETTINGS_MAX_ROWS, RECORD_SWEEP_INTERVAL_MS, REMOVE_LEAF, REVALIDATE_AFTER_MS, ReadinessRegistry, ReadinessTimeoutError, RecordFieldPathSchema, RecordIndexSchema, RecordKindDeclarationSchema, RecordKindNameSchema, RecordNotFoundError, RecordRetentionSchema, RecordSecretUnavailableError, RecordTooLargeError, RecordUniqueViolationError, RecordsError, RevConflictError, SECRET_CLEAR, SECRET_REF_SCHEME, UnindexedFilterError, UnknownRecordKindError, adminUiCapability, arrayItemFieldPath, asJsonObject, asRecordsError, asString, assertValidDeclaration, buildSecretRef, classifySecretWrite, clearKnownSecrets, collectSecretLeaves, collectZodSecretPaths, createDeviceProxy, createEvent, createEventBusSliceSource, createRecordsAccess, createSecretsAccess, declarationsOf, defineEntryKind, defineRecordKinds, describeCustomActions, deviceOpsCapability, emitReadiness, entryBody, errMsg, expandCapMethods, forgetKnownSecret, formatSecretScope, globalSecretScope, hfModelUrl, isCollectionArrayMethodName, isDeviceScopedCap, isProviderOptionalMethodName, isSecretClear, isSecretFieldView, isSecretMarker, isSecretMarkerLike, isSecretRef, isZodSecret, knownSecretCount, makeSecretMarker, mapSecretLeaves, maskUrlCredentials, nodePin, normalizeAddonInitResult, normalizeSecretOwner, parseJsonUnknown, parseSecretPath, parseSecretRef, readErrorI18n, readNodePin, recordArrayItemPath, recordSecretCollection, recordSecretRef, recordsErrorFromMessage, registerKnownSecret, resolveSecretViewsIn, scopeKey, scrubKnownSecrets, secretArrayPrefixes, shortSecretRefHash, sleep, toSecretFieldView, viewerUiCapability, withCapInputDefaults };
|
|
2137
|
+
export { AdoptionPendingError, BOOT_RECOVERY_BACKOFF_MS, BaseAddon, BatchTooLargeError, CALLER_STAMPED_CAPABILITIES, CAP_ADVANCE_FIELDS, CAP_INPUT_DEFAULTS, CAP_STATE_LEAVES, COLLECTION_ARRAY_METHODS, DATAPLANE_SECRET_HEADER, DEVICE_CHILDREN_BATCH_MAX, DEVICE_SCOPED_CAPS, DeclarationRefusedError, DeviceType, DisposerChain, EntryDescriptorSchema, ErrorI18nPayloadSchema, EventCategory, FilterRequiredError, ForeignSecretMarkerError, HF_REPO, InvalidRecordError, MIN_SCRUBBED_LENGTH, MODEL_FORMATS, NoCallerError, PEER_BYTES_CHUNK_BYTES, PEER_BYTES_MAX_OUTSTANDING, PEER_BYTES_STALL_MS, PEER_BYTES_TICKET_TTL_MS, PROVIDER_OPTIONAL_METHODS, PlaintextSecretError, RECORDS_ERROR_CODES, RECORD_BATCH_MAX, RECORD_BATCH_MAX_BYTES, RECORD_CLASSES, RECORD_DATABASES, RECORD_DEFAULT_MAX_DATA_BYTES, RECORD_DELETE_BATCH, RECORD_ID_MAX_LENGTH, RECORD_MAX_DATA_BYTES, RECORD_MAX_INDEXES, RECORD_MAX_INDEX_FIELDS, RECORD_QUERY_MAX, RECORD_SECRET_COLLECTION_PREFIX, RECORD_SETTINGS_MAX_ROWS, RECORD_SWEEP_INTERVAL_MS, REMOVE_LEAF, REVALIDATE_AFTER_MS, ReadinessRegistry, ReadinessTimeoutError, RecordFieldPathSchema, RecordIndexSchema, RecordKindDeclarationSchema, RecordKindNameSchema, RecordNotFoundError, RecordRetentionSchema, RecordSecretUnavailableError, RecordTooLargeError, RecordUniqueViolationError, RecordsError, RevConflictError, SECRET_CLEAR, SECRET_REF_SCHEME, SETTINGS_ARRAY_ADOPTS_PREFIX, SETTINGS_BROKERS_ADOPTS_PREFIX, UnindexedFilterError, UnknownRecordKindError, addonSliceHandleApi, adminUiCapability, arrayItemFieldPath, asJsonObject, asRecordsError, asString, assertValidDeclaration, buildSecretRef, classifySecretWrite, clearKnownSecrets, collectSecretLeaves, collectZodSecretPaths, createDeviceProxy, createEvent, createEventBusSliceSource, createRecordsAccess, createSecretsAccess, declarationsOf, defineEntryKind, defineRecordKinds, describeCustomActions, deviceOpsCapability, emitReadiness, entryBody, errMsg, expandCapMethods, forgetKnownSecret, formatSecretScope, globalSecretScope, hfModelUrl, isCollectionArrayMethodName, isDeviceScopedCap, isProviderOptionalMethodName, isSecretClear, isSecretFieldView, isSecretMarker, isSecretMarkerLike, isSecretRef, isZodSecret, knownSecretCount, makeInMemoryRecords, makeSecretMarker, mapSecretLeaves, maskUrlCredentials, nodePin, normalizeAddonInitResult, normalizeSecretOwner, parseJsonUnknown, parseSecretPath, parseSecretRef, parseSettingsArrayAdoptsFrom, parseSettingsBrokersAdoptsFrom, readErrorI18n, readNodePin, recordArrayItemPath, recordSecretCollection, recordSecretRef, recordsErrorFromMessage, registerKnownSecret, resolveSecretViewsIn, scopeKey, scrubKnownSecrets, secretArrayPrefixes, settingsArrayAdoptsFrom, settingsBrokersAdoptsFrom, shortSecretRefHash, sleep, toSecretFieldView, viewerUiCapability, withCapInputDefaults, withoutCallerStamp };
|
|
@@ -317,6 +317,28 @@ export declare const storageAdminCapability: {
|
|
|
317
317
|
}, z.core.$strip>, z.ZodObject<{
|
|
318
318
|
adopted: z.ZodNumber;
|
|
319
319
|
}, z.core.$strip>, "mutation">;
|
|
320
|
+
/**
|
|
321
|
+
* Read rows from a legacy KV table by physical name, without a running
|
|
322
|
+
* `declareCollection`. Used by `records-adopt.ts` when the owner already
|
|
323
|
+
* moved to records and the collection door refuses the name.
|
|
324
|
+
*/
|
|
325
|
+
readonly readLegacyCollection: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
326
|
+
collection: z.ZodString;
|
|
327
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
328
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
329
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
330
|
+
rows: z.ZodArray<z.ZodObject<{
|
|
331
|
+
id: z.ZodString;
|
|
332
|
+
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
333
|
+
}, z.core.$strip>>;
|
|
334
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
335
|
+
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
336
|
+
/** True when a declared kind lists `collection` as `adoptsFrom` and adoption finished. */
|
|
337
|
+
readonly isAdoptedLegacyTable: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
338
|
+
collection: z.ZodString;
|
|
339
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
340
|
+
adopted: z.ZodBoolean;
|
|
341
|
+
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
320
342
|
};
|
|
321
343
|
};
|
|
322
344
|
export type IStorageAdminProvider = InferProvider<typeof storageAdminCapability>;
|
package/dist/client.js
CHANGED
|
@@ -25895,6 +25895,50 @@ function isSource(x) {
|
|
|
25895
25895
|
return typeof x.read === "function" && typeof x.watch === "function";
|
|
25896
25896
|
}
|
|
25897
25897
|
//#endregion
|
|
25898
|
+
//#region src/helpers/addon-slice-handle.ts
|
|
25899
|
+
/** Structural bridge: every `AddonApi` client carries `deviceState` (+ optional `live`). */
|
|
25900
|
+
function addonSliceHandleApi(api) {
|
|
25901
|
+
return api;
|
|
25902
|
+
}
|
|
25903
|
+
//#endregion
|
|
25904
|
+
//#region src/helpers/trpc-leaf.ts
|
|
25905
|
+
function isTrpcProcedureLeaf(value) {
|
|
25906
|
+
if (typeof value !== "object" || value === null) return false;
|
|
25907
|
+
const record = value;
|
|
25908
|
+
return (typeof record.query === "function" || typeof record.mutate === "function" || typeof record.subscribe === "function") && !Array.isArray(value);
|
|
25909
|
+
}
|
|
25910
|
+
function readCapRecord(api, capProp) {
|
|
25911
|
+
const cap = Reflect.get(api, capProp);
|
|
25912
|
+
if (typeof cap !== "object" || cap === null || Array.isArray(cap)) return void 0;
|
|
25913
|
+
return cap;
|
|
25914
|
+
}
|
|
25915
|
+
function readTrpcLeaf(api, capProp, method) {
|
|
25916
|
+
const capRecord = readCapRecord(api, capProp);
|
|
25917
|
+
if (!capRecord) throw new Error(`tRPC client has no router '${capProp}'`);
|
|
25918
|
+
const leaf = capRecord[method];
|
|
25919
|
+
if (!isTrpcProcedureLeaf(leaf)) throw new Error(`tRPC client has no '${capProp}.${method}'`);
|
|
25920
|
+
return leaf;
|
|
25921
|
+
}
|
|
25922
|
+
/**
|
|
25923
|
+
* Invoke `api.<capProp>.<method>.{query|mutate|subscribe}(input)`.
|
|
25924
|
+
* `Result` is the generated proxy method's return. The leaf itself is only
|
|
25925
|
+
* `unknown` (the client is a structural bag), so the assertion is the one
|
|
25926
|
+
* boundary between that bag and the typed proxy.
|
|
25927
|
+
*/
|
|
25928
|
+
function invokeTrpcLeaf(api, capProp, method, kind, input, push) {
|
|
25929
|
+
const fn = readTrpcLeaf(api, capProp, method);
|
|
25930
|
+
if (kind === "mutation") {
|
|
25931
|
+
if (typeof fn.mutate !== "function") throw new Error(`tRPC '${capProp}.${method}' has no mutate()`);
|
|
25932
|
+
return fn.mutate(input);
|
|
25933
|
+
}
|
|
25934
|
+
if (kind === "subscription") {
|
|
25935
|
+
if (typeof fn.subscribe !== "function") throw new Error(`tRPC '${capProp}.${method}' has no subscribe()`);
|
|
25936
|
+
return fn.subscribe(input, push);
|
|
25937
|
+
}
|
|
25938
|
+
if (typeof fn.query !== "function") throw new Error(`tRPC '${capProp}.${method}' has no query()`);
|
|
25939
|
+
return fn.query(input);
|
|
25940
|
+
}
|
|
25941
|
+
//#endregion
|
|
25898
25942
|
//#region src/generated/device-proxy.ts
|
|
25899
25943
|
/**
|
|
25900
25944
|
* Build a DeviceProxy that pre-binds deviceId + nodeId on every method call
|
|
@@ -25912,8 +25956,7 @@ function isSource(x) {
|
|
|
25912
25956
|
* field on the returned object.
|
|
25913
25957
|
*/
|
|
25914
25958
|
function createDeviceProxy(api, binding, opts) {
|
|
25915
|
-
const
|
|
25916
|
-
const stateSource = opts?.stateSource ?? createLazyTrpcSource(api);
|
|
25959
|
+
const stateSource = opts?.stateSource ?? createLazyTrpcSource(addonSliceHandleApi(api));
|
|
25917
25960
|
/** Merge `{deviceId, nodeId?}` into the caller-supplied input. */
|
|
25918
25961
|
function mergeInput(input, nodeId) {
|
|
25919
25962
|
const base = typeof input === "object" && input !== null ? input : {};
|
|
@@ -25926,20 +25969,8 @@ function createDeviceProxy(api, binding, opts) {
|
|
|
25926
25969
|
deviceId: binding.deviceId
|
|
25927
25970
|
};
|
|
25928
25971
|
}
|
|
25929
|
-
/**
|
|
25930
|
-
* Invoke `api.<capProp>.<method>.{query|mutate|subscribe}(merged)`.
|
|
25931
|
-
* Returns `any` so the caller-side per-method declaration assigns
|
|
25932
|
-
* cleanly into the strongly-typed `InferDeviceProxyCap<...>` shape on
|
|
25933
|
-
* the `DeviceProxy` interface — the proxy's contract is enforced by
|
|
25934
|
-
* the interface, not the dispatch helper.
|
|
25935
|
-
*/
|
|
25936
25972
|
function callLeaf(capProp, method, kind, merged, push) {
|
|
25937
|
-
|
|
25938
|
-
if (!leaf) throw new Error(`DeviceProxy: api has no '${capProp}.${method}'`);
|
|
25939
|
-
const fn = leaf;
|
|
25940
|
-
if (kind === "mutation") return fn.mutate(merged);
|
|
25941
|
-
if (kind === "subscription") return fn.subscribe(merged, push);
|
|
25942
|
-
return fn.query(merged);
|
|
25973
|
+
return invokeTrpcLeaf(api, capProp, method, kind, merged, push);
|
|
25943
25974
|
}
|
|
25944
25975
|
/**
|
|
25945
25976
|
* Device-scoped cap dispatch. Looks up the binding entry for `capName`
|
|
@@ -27252,9 +27283,10 @@ var SystemMirror = class {
|
|
|
27252
27283
|
for (let i = 0; i < targets.length; i += parallelism) {
|
|
27253
27284
|
const chunk = targets.slice(i, i + parallelism);
|
|
27254
27285
|
const settled = await Promise.allSettled(chunk.map(async (proxy) => {
|
|
27255
|
-
const cap = proxy
|
|
27256
|
-
|
|
27257
|
-
|
|
27286
|
+
const cap = Reflect.get(proxy, capName);
|
|
27287
|
+
const method = typeof cap === "object" && cap !== null ? Reflect.get(cap, methodName) : void 0;
|
|
27288
|
+
if (typeof method !== "function") throw new Error(`device '${proxy.deviceId}' does not expose '${capName}.${methodName}'`);
|
|
27289
|
+
return await Reflect.apply(method, cap, [args]);
|
|
27258
27290
|
}));
|
|
27259
27291
|
for (let j = 0; j < settled.length; j++) {
|
|
27260
27292
|
const proxy = chunk[j];
|
|
@@ -27489,21 +27521,8 @@ function matchesString(haystack, match) {
|
|
|
27489
27521
|
* dropping the reference.
|
|
27490
27522
|
*/
|
|
27491
27523
|
function createSystemProxy(api) {
|
|
27492
|
-
const typedApi = api;
|
|
27493
|
-
/**
|
|
27494
|
-
* Invoke `api.<capProp>.<method>.{query|mutate|subscribe}(input)`.
|
|
27495
|
-
* Returns `any` so the caller-side per-method declaration assigns
|
|
27496
|
-
* cleanly into the strongly-typed `Pick<InferProvider<...>, ...>`
|
|
27497
|
-
* shape on the `SystemProxy` interface — the proxy's contract is
|
|
27498
|
-
* enforced by the interface, not the dispatch helper.
|
|
27499
|
-
*/
|
|
27500
27524
|
function dispatch(capProp, method, kind, input, push) {
|
|
27501
|
-
|
|
27502
|
-
if (!leaf) throw new Error(`SystemProxy: api has no '${capProp}.${method}'`);
|
|
27503
|
-
const fn = leaf;
|
|
27504
|
-
if (kind === "mutation") return fn.mutate(input);
|
|
27505
|
-
if (kind === "subscription") return fn.subscribe(input, push);
|
|
27506
|
-
return fn.query(input);
|
|
27525
|
+
return invokeTrpcLeaf(api, capProp, method, kind, input, push);
|
|
27507
27526
|
}
|
|
27508
27527
|
return {
|
|
27509
27528
|
addonPages: { listPages: (input) => dispatch("addonPages", "listPages", "query", input) },
|
package/dist/client.mjs
CHANGED
|
@@ -25894,6 +25894,50 @@ function isSource(x) {
|
|
|
25894
25894
|
return typeof x.read === "function" && typeof x.watch === "function";
|
|
25895
25895
|
}
|
|
25896
25896
|
//#endregion
|
|
25897
|
+
//#region src/helpers/addon-slice-handle.ts
|
|
25898
|
+
/** Structural bridge: every `AddonApi` client carries `deviceState` (+ optional `live`). */
|
|
25899
|
+
function addonSliceHandleApi(api) {
|
|
25900
|
+
return api;
|
|
25901
|
+
}
|
|
25902
|
+
//#endregion
|
|
25903
|
+
//#region src/helpers/trpc-leaf.ts
|
|
25904
|
+
function isTrpcProcedureLeaf(value) {
|
|
25905
|
+
if (typeof value !== "object" || value === null) return false;
|
|
25906
|
+
const record = value;
|
|
25907
|
+
return (typeof record.query === "function" || typeof record.mutate === "function" || typeof record.subscribe === "function") && !Array.isArray(value);
|
|
25908
|
+
}
|
|
25909
|
+
function readCapRecord(api, capProp) {
|
|
25910
|
+
const cap = Reflect.get(api, capProp);
|
|
25911
|
+
if (typeof cap !== "object" || cap === null || Array.isArray(cap)) return void 0;
|
|
25912
|
+
return cap;
|
|
25913
|
+
}
|
|
25914
|
+
function readTrpcLeaf(api, capProp, method) {
|
|
25915
|
+
const capRecord = readCapRecord(api, capProp);
|
|
25916
|
+
if (!capRecord) throw new Error(`tRPC client has no router '${capProp}'`);
|
|
25917
|
+
const leaf = capRecord[method];
|
|
25918
|
+
if (!isTrpcProcedureLeaf(leaf)) throw new Error(`tRPC client has no '${capProp}.${method}'`);
|
|
25919
|
+
return leaf;
|
|
25920
|
+
}
|
|
25921
|
+
/**
|
|
25922
|
+
* Invoke `api.<capProp>.<method>.{query|mutate|subscribe}(input)`.
|
|
25923
|
+
* `Result` is the generated proxy method's return. The leaf itself is only
|
|
25924
|
+
* `unknown` (the client is a structural bag), so the assertion is the one
|
|
25925
|
+
* boundary between that bag and the typed proxy.
|
|
25926
|
+
*/
|
|
25927
|
+
function invokeTrpcLeaf(api, capProp, method, kind, input, push) {
|
|
25928
|
+
const fn = readTrpcLeaf(api, capProp, method);
|
|
25929
|
+
if (kind === "mutation") {
|
|
25930
|
+
if (typeof fn.mutate !== "function") throw new Error(`tRPC '${capProp}.${method}' has no mutate()`);
|
|
25931
|
+
return fn.mutate(input);
|
|
25932
|
+
}
|
|
25933
|
+
if (kind === "subscription") {
|
|
25934
|
+
if (typeof fn.subscribe !== "function") throw new Error(`tRPC '${capProp}.${method}' has no subscribe()`);
|
|
25935
|
+
return fn.subscribe(input, push);
|
|
25936
|
+
}
|
|
25937
|
+
if (typeof fn.query !== "function") throw new Error(`tRPC '${capProp}.${method}' has no query()`);
|
|
25938
|
+
return fn.query(input);
|
|
25939
|
+
}
|
|
25940
|
+
//#endregion
|
|
25897
25941
|
//#region src/generated/device-proxy.ts
|
|
25898
25942
|
/**
|
|
25899
25943
|
* Build a DeviceProxy that pre-binds deviceId + nodeId on every method call
|
|
@@ -25911,8 +25955,7 @@ function isSource(x) {
|
|
|
25911
25955
|
* field on the returned object.
|
|
25912
25956
|
*/
|
|
25913
25957
|
function createDeviceProxy(api, binding, opts) {
|
|
25914
|
-
const
|
|
25915
|
-
const stateSource = opts?.stateSource ?? createLazyTrpcSource(api);
|
|
25958
|
+
const stateSource = opts?.stateSource ?? createLazyTrpcSource(addonSliceHandleApi(api));
|
|
25916
25959
|
/** Merge `{deviceId, nodeId?}` into the caller-supplied input. */
|
|
25917
25960
|
function mergeInput(input, nodeId) {
|
|
25918
25961
|
const base = typeof input === "object" && input !== null ? input : {};
|
|
@@ -25925,20 +25968,8 @@ function createDeviceProxy(api, binding, opts) {
|
|
|
25925
25968
|
deviceId: binding.deviceId
|
|
25926
25969
|
};
|
|
25927
25970
|
}
|
|
25928
|
-
/**
|
|
25929
|
-
* Invoke `api.<capProp>.<method>.{query|mutate|subscribe}(merged)`.
|
|
25930
|
-
* Returns `any` so the caller-side per-method declaration assigns
|
|
25931
|
-
* cleanly into the strongly-typed `InferDeviceProxyCap<...>` shape on
|
|
25932
|
-
* the `DeviceProxy` interface — the proxy's contract is enforced by
|
|
25933
|
-
* the interface, not the dispatch helper.
|
|
25934
|
-
*/
|
|
25935
25971
|
function callLeaf(capProp, method, kind, merged, push) {
|
|
25936
|
-
|
|
25937
|
-
if (!leaf) throw new Error(`DeviceProxy: api has no '${capProp}.${method}'`);
|
|
25938
|
-
const fn = leaf;
|
|
25939
|
-
if (kind === "mutation") return fn.mutate(merged);
|
|
25940
|
-
if (kind === "subscription") return fn.subscribe(merged, push);
|
|
25941
|
-
return fn.query(merged);
|
|
25972
|
+
return invokeTrpcLeaf(api, capProp, method, kind, merged, push);
|
|
25942
25973
|
}
|
|
25943
25974
|
/**
|
|
25944
25975
|
* Device-scoped cap dispatch. Looks up the binding entry for `capName`
|
|
@@ -27251,9 +27282,10 @@ var SystemMirror = class {
|
|
|
27251
27282
|
for (let i = 0; i < targets.length; i += parallelism) {
|
|
27252
27283
|
const chunk = targets.slice(i, i + parallelism);
|
|
27253
27284
|
const settled = await Promise.allSettled(chunk.map(async (proxy) => {
|
|
27254
|
-
const cap = proxy
|
|
27255
|
-
|
|
27256
|
-
|
|
27285
|
+
const cap = Reflect.get(proxy, capName);
|
|
27286
|
+
const method = typeof cap === "object" && cap !== null ? Reflect.get(cap, methodName) : void 0;
|
|
27287
|
+
if (typeof method !== "function") throw new Error(`device '${proxy.deviceId}' does not expose '${capName}.${methodName}'`);
|
|
27288
|
+
return await Reflect.apply(method, cap, [args]);
|
|
27257
27289
|
}));
|
|
27258
27290
|
for (let j = 0; j < settled.length; j++) {
|
|
27259
27291
|
const proxy = chunk[j];
|
|
@@ -27488,21 +27520,8 @@ function matchesString(haystack, match) {
|
|
|
27488
27520
|
* dropping the reference.
|
|
27489
27521
|
*/
|
|
27490
27522
|
function createSystemProxy(api) {
|
|
27491
|
-
const typedApi = api;
|
|
27492
|
-
/**
|
|
27493
|
-
* Invoke `api.<capProp>.<method>.{query|mutate|subscribe}(input)`.
|
|
27494
|
-
* Returns `any` so the caller-side per-method declaration assigns
|
|
27495
|
-
* cleanly into the strongly-typed `Pick<InferProvider<...>, ...>`
|
|
27496
|
-
* shape on the `SystemProxy` interface — the proxy's contract is
|
|
27497
|
-
* enforced by the interface, not the dispatch helper.
|
|
27498
|
-
*/
|
|
27499
27523
|
function dispatch(capProp, method, kind, input, push) {
|
|
27500
|
-
|
|
27501
|
-
if (!leaf) throw new Error(`SystemProxy: api has no '${capProp}.${method}'`);
|
|
27502
|
-
const fn = leaf;
|
|
27503
|
-
if (kind === "mutation") return fn.mutate(input);
|
|
27504
|
-
if (kind === "subscription") return fn.subscribe(input, push);
|
|
27505
|
-
return fn.query(input);
|
|
27524
|
+
return invokeTrpcLeaf(api, capProp, method, kind, input, push);
|
|
27506
27525
|
}
|
|
27507
27526
|
return {
|
|
27508
27527
|
addonPages: { listPages: (input) => dispatch("addonPages", "listPages", "query", input) },
|
|
@@ -137,6 +137,8 @@ export interface DeviceContext {
|
|
|
137
137
|
* + persistInitialConfig + createContext + register` flow.
|
|
138
138
|
*/
|
|
139
139
|
export type DeviceConstructor<T extends IDevice = IDevice> = new (ctx: DeviceContext) => T;
|
|
140
|
+
/** Map entry helper — concrete camera/hub classes widen to `DeviceConstructor<IDevice>`. */
|
|
141
|
+
export declare function widenDeviceConstructor<T extends IDevice>(ctor: DeviceConstructor<T>): DeviceConstructor<IDevice>;
|
|
140
142
|
export interface DeviceManagerApi {
|
|
141
143
|
/**
|
|
142
144
|
* Create, register, and persist a device in one call.
|
|
@@ -35,14 +35,14 @@
|
|
|
35
35
|
* request schema on purpose (see `egressTransportFromRequest`): a plane is a
|
|
36
36
|
* live object, so an off-node caller could not use one anyway.
|
|
37
37
|
*/
|
|
38
|
-
import type { spawn as nodeSpawn } from 'node:child_process';
|
|
39
38
|
import type { IScopedLogger } from '../interfaces/logging.js';
|
|
40
39
|
import type { FfmpegInvocation } from './invocation.js';
|
|
40
|
+
import type { FfmpegSpawnFn } from './process.js';
|
|
41
41
|
import type { Fmp4FragmentPlane } from './fmp4-fragment-plane.js';
|
|
42
42
|
export interface Fmp4FragmentChildDeps {
|
|
43
43
|
readonly logger: IScopedLogger;
|
|
44
44
|
readonly ffmpegBinaryPath: string;
|
|
45
|
-
readonly spawnFn:
|
|
45
|
+
readonly spawnFn: FfmpegSpawnFn;
|
|
46
46
|
/** How long the child may produce no UNIT before it is declared dead. */
|
|
47
47
|
readonly firstUnitTimeoutMs?: number;
|
|
48
48
|
/** The child exited, or its output stopped parsing, AFTER it went live. */
|
package/dist/ffmpeg/process.d.ts
CHANGED
|
@@ -32,6 +32,27 @@
|
|
|
32
32
|
*/
|
|
33
33
|
import { spawn, type ChildProcess, type SpawnOptions } from 'node:child_process';
|
|
34
34
|
import type { IScopedLogger } from '../interfaces/logging.js';
|
|
35
|
+
/** Subset of {@link ChildProcess} every live-media ffmpeg site reads. */
|
|
36
|
+
export interface SpawnedFfmpegProcess {
|
|
37
|
+
readonly pid?: number;
|
|
38
|
+
readonly killed?: boolean;
|
|
39
|
+
readonly exitCode?: number | null;
|
|
40
|
+
readonly signalCode?: NodeJS.Signals | null;
|
|
41
|
+
readonly stdin?: {
|
|
42
|
+
on(event: string, listener: () => void): void;
|
|
43
|
+
end(): void;
|
|
44
|
+
} | null;
|
|
45
|
+
readonly stdout: NodeJS.ReadableStream | null;
|
|
46
|
+
readonly stderr: NodeJS.ReadableStream | null;
|
|
47
|
+
on(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
|
|
48
|
+
on(event: 'error', listener: (err: Error) => void): this;
|
|
49
|
+
once(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
|
|
50
|
+
once(event: 'error', listener: (err: Error) => void): this;
|
|
51
|
+
kill(signal?: NodeJS.Signals): boolean;
|
|
52
|
+
}
|
|
53
|
+
/** Injectable ffmpeg spawn — the three-arg shape live-media sites use. */
|
|
54
|
+
export type FfmpegSpawnFn = (command: string, args: readonly string[], options?: SpawnOptions) => SpawnedFfmpegProcess;
|
|
55
|
+
export declare function defaultFfmpegSpawn(command: string, args: readonly string[], options?: SpawnOptions): SpawnedFfmpegProcess;
|
|
35
56
|
/** How a child ended. */
|
|
36
57
|
export type FfmpegExitClass =
|
|
37
58
|
/** Exited 0. */
|
|
@@ -9031,6 +9031,20 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
9031
9031
|
output: z.infer<typeof storageAdminCapability.methods.adoptRecords.output>;
|
|
9032
9032
|
meta: object;
|
|
9033
9033
|
}>;
|
|
9034
|
+
readLegacyCollection: TRPCQueryProcedure<{
|
|
9035
|
+
input: {
|
|
9036
|
+
[x: string]: unknown;
|
|
9037
|
+
} & z.input<typeof storageAdminCapability.methods.readLegacyCollection.input>;
|
|
9038
|
+
output: z.infer<typeof storageAdminCapability.methods.readLegacyCollection.output>;
|
|
9039
|
+
meta: object;
|
|
9040
|
+
}>;
|
|
9041
|
+
isAdoptedLegacyTable: TRPCQueryProcedure<{
|
|
9042
|
+
input: {
|
|
9043
|
+
[x: string]: unknown;
|
|
9044
|
+
} & z.input<typeof storageAdminCapability.methods.isAdoptedLegacyTable.input>;
|
|
9045
|
+
output: z.infer<typeof storageAdminCapability.methods.isAdoptedLegacyTable.output>;
|
|
9046
|
+
meta: object;
|
|
9047
|
+
}>;
|
|
9034
9048
|
}>>;
|
|
9035
9049
|
storageEvictable: TRPCBuiltRouter<{
|
|
9036
9050
|
ctx: TrpcContext;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* scope+access check inside `protectedProcedure` (see
|
|
7
7
|
* `server/backend/src/api/trpc/trpc.middleware.ts`).
|
|
8
8
|
*
|
|
9
|
-
* Coverage:
|
|
9
|
+
* Coverage: 1369 method paths across 177 capabilities.
|
|
10
10
|
*/
|
|
11
11
|
import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
|
|
12
12
|
export interface MethodAccessRecord {
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SliceHandleApi } from '../device/device-state-handle.js';
|
|
2
|
+
import type { AddonApi } from '../generated/addon-api.js';
|
|
3
|
+
/** Structural bridge: every `AddonApi` client carries `deviceState` (+ optional `live`). */
|
|
4
|
+
export declare function addonSliceHandleApi(api: AddonApi): SliceHandleApi;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AddonApi } from '../generated/addon-api.js';
|
|
2
|
+
/** tRPC client procedure bundle (`query` / `mutate` / `subscribe`). */
|
|
3
|
+
export interface TrpcProcedureLeaf {
|
|
4
|
+
readonly query?: (input?: unknown) => unknown;
|
|
5
|
+
readonly mutate?: (input?: unknown) => unknown;
|
|
6
|
+
readonly subscribe?: (input?: unknown, push?: unknown) => unknown;
|
|
7
|
+
}
|
|
8
|
+
export declare function isTrpcProcedureLeaf(value: unknown): value is TrpcProcedureLeaf;
|
|
9
|
+
export declare function readTrpcLeaf(api: AddonApi, capProp: string, method: string): TrpcProcedureLeaf;
|
|
10
|
+
export type TrpcDispatchKind = 'query' | 'mutation' | 'subscription';
|
|
11
|
+
/**
|
|
12
|
+
* Invoke `api.<capProp>.<method>.{query|mutate|subscribe}(input)`.
|
|
13
|
+
* `Result` is the generated proxy method's return. The leaf itself is only
|
|
14
|
+
* `unknown` (the client is a structural bag), so the assertion is the one
|
|
15
|
+
* boundary between that bag and the typed proxy.
|
|
16
|
+
*/
|
|
17
|
+
export declare function invokeTrpcLeaf<Result>(api: AddonApi, capProp: string, method: string, kind: TrpcDispatchKind, input?: unknown, push?: unknown): Result;
|
package/dist/index.d.ts
CHANGED
|
@@ -47,7 +47,7 @@ export type * from './interfaces/capability.js';
|
|
|
47
47
|
export type * from './interfaces/config-port.js';
|
|
48
48
|
export type * from './interfaces/config-ui.js';
|
|
49
49
|
export type { HydratedFieldEntry } from './interfaces/config-ui.js';
|
|
50
|
-
export { collectHydratedFieldEntries, collectHydratedFieldValues, hydrateSchema, resolveHydratedFieldValue, WELL_KNOWN_TAB_MAP, WELL_KNOWN_TABS, } from './interfaces/config-ui.js';
|
|
50
|
+
export { collectHydratedFieldEntries, collectHydratedFieldValues, dehydrateConfigField, dehydrateSchema, hydrateSchema, resolveHydratedFieldValue, WELL_KNOWN_TAB_MAP, WELL_KNOWN_TABS, } from './interfaces/config-ui.js';
|
|
51
51
|
export { collectKeychainStoredKeys, collectSecretConfigKeys, isKeychainStoredField, isSecretConfigField, REDACTED_SECRET, schemaDeclaresAnyField, } from './interfaces/config-ui-secrets.js';
|
|
52
52
|
export * from './keychain/index.js';
|
|
53
53
|
export * from './records/index.js';
|
|
@@ -190,6 +190,7 @@ export type { IDevice } from './device/device.js';
|
|
|
190
190
|
export type { DeviceBinding, DeviceBindingEntry } from './device/device-binding.js';
|
|
191
191
|
export { DeviceConfig } from './device/device-config.js';
|
|
192
192
|
export type { DeviceConstructor, DeviceContext, DeviceManagerApi, DevicePersistConfigOptions, IDeviceRegistry, IDeviceRegistryReader, } from './device/device-context.js';
|
|
193
|
+
export { widenDeviceConstructor } from './device/device-context.js';
|
|
193
194
|
export type { AccessoryControlInput, AccessoryControlKind, AccessoryControlPick, DeviceControlKind, SensorMapping, } from './device/device-control-resolution.js';
|
|
194
195
|
export { DEVICE_TYPE_CONTROL_KIND, hasMotionTrigger, isNode, MOTION_TRIGGER_FEATURE, pickAccessoryControl, resolveDeviceControlKind, resolveMutate, SENSOR_FEATURES, SENSOR_MAP, } from './device/device-control-resolution.js';
|
|
195
196
|
export type { DeviceDoAction, DeviceDoOpenArg } from './device/device-do-actions.js';
|