@camstack/types 1.1.47 → 1.1.49
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.js +2 -2
- package/dist/addon.mjs +2 -2
- package/dist/capabilities/index.d.ts +3 -1
- package/dist/capabilities/pipeline-analytics.cap.d.ts +6 -0
- package/dist/capabilities/recording-export.cap.d.ts +305 -0
- package/dist/capabilities/recording.cap.d.ts +21 -0
- package/dist/capabilities/zone-rules.cap.d.ts +27 -3
- package/dist/enums/event-category.d.ts +24 -0
- package/dist/enums.js +1 -1
- package/dist/enums.mjs +1 -1
- package/dist/{event-category-AkBNxg_X.js → event-category-CGj9fI4L.js} +24 -0
- package/dist/{event-category-H4AVePnn.mjs → event-category-D4HJq7Mw.mjs} +24 -0
- package/dist/generated/addon-api.d.ts +418 -8
- package/dist/generated/capability-router-map.d.ts +5 -2
- package/dist/generated/device-proxy.d.ts +2 -0
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/system-proxy.d.ts +2 -0
- package/dist/index.js +299 -10
- package/dist/index.mjs +287 -11
- package/dist/interfaces/event-bus.d.ts +44 -0
- package/dist/interfaces/readiness.d.ts +8 -5
- package/dist/interfaces/recording-config.d.ts +54 -0
- package/dist/readiness/readiness-registry.d.ts +33 -10
- package/dist/{sleep-BkhAiFKX.js → sleep-BfvNtyu8.js} +71 -16
- package/dist/{sleep-CK899CTS.mjs → sleep-DOq2moJx.mjs} +71 -16
- package/package.json +1 -1
|
@@ -10014,8 +10014,8 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
10014
10014
|
kind: string;
|
|
10015
10015
|
label: string;
|
|
10016
10016
|
color: string;
|
|
10017
|
-
icon: "motion" | "smoke" | "button" | "audio" | "person" | "vehicle" | "animal" | "generic" | "door" | "pir" | "water";
|
|
10018
|
-
category: "custom" | "motion" | "audio" | "sensor" | "detection";
|
|
10017
|
+
icon: "motion" | "smoke" | "button" | "audio" | "person" | "vehicle" | "animal" | "package" | "generic" | "door" | "pir" | "water";
|
|
10018
|
+
category: "custom" | "motion" | "audio" | "package" | "sensor" | "detection";
|
|
10019
10019
|
source: {
|
|
10020
10020
|
capName: string;
|
|
10021
10021
|
deviceId: number;
|
|
@@ -12715,6 +12715,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
12715
12715
|
maxAgeDays?: number | undefined;
|
|
12716
12716
|
maxSizeGb?: number | undefined;
|
|
12717
12717
|
} | undefined;
|
|
12718
|
+
scrubThumbnails?: "high" | "max" | "low" | "standard" | "minimal" | undefined;
|
|
12718
12719
|
};
|
|
12719
12720
|
meta: object;
|
|
12720
12721
|
}>;
|
|
@@ -12811,6 +12812,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
12811
12812
|
maxAgeDays?: number | undefined;
|
|
12812
12813
|
maxSizeGb?: number | undefined;
|
|
12813
12814
|
} | undefined;
|
|
12815
|
+
scrubThumbnails?: "high" | "max" | "low" | "standard" | "minimal" | undefined;
|
|
12814
12816
|
};
|
|
12815
12817
|
};
|
|
12816
12818
|
output: {
|
|
@@ -12871,6 +12873,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
12871
12873
|
maxAgeDays?: number | undefined;
|
|
12872
12874
|
maxSizeGb?: number | undefined;
|
|
12873
12875
|
} | undefined;
|
|
12876
|
+
scrubThumbnails?: "high" | "max" | "low" | "standard" | "minimal" | undefined;
|
|
12874
12877
|
};
|
|
12875
12878
|
meta: object;
|
|
12876
12879
|
}>;
|
|
@@ -12901,6 +12904,208 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
12901
12904
|
meta: object;
|
|
12902
12905
|
}>;
|
|
12903
12906
|
}>>;
|
|
12907
|
+
recordingExport: import("@trpc/server").TRPCBuiltRouter<{
|
|
12908
|
+
ctx: TrpcContext;
|
|
12909
|
+
meta: object;
|
|
12910
|
+
errorShape: import("@camstack/types").AugmentedErrorShape;
|
|
12911
|
+
transformer: true;
|
|
12912
|
+
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
|
|
12913
|
+
createExport: import("@trpc/server").TRPCMutationProcedure<{
|
|
12914
|
+
input: {
|
|
12915
|
+
[x: string]: unknown;
|
|
12916
|
+
deviceId: number;
|
|
12917
|
+
profile: string;
|
|
12918
|
+
fromMs: number;
|
|
12919
|
+
toMs: number;
|
|
12920
|
+
options: {
|
|
12921
|
+
includeAudio: boolean;
|
|
12922
|
+
maxLifeMs: number;
|
|
12923
|
+
deleteAfterDownload: boolean;
|
|
12924
|
+
speed?: number | undefined;
|
|
12925
|
+
timelapse?: {
|
|
12926
|
+
everyMs: number;
|
|
12927
|
+
outputFps?: number | undefined;
|
|
12928
|
+
} | undefined;
|
|
12929
|
+
title?: string | undefined;
|
|
12930
|
+
};
|
|
12931
|
+
};
|
|
12932
|
+
output: {
|
|
12933
|
+
id: string;
|
|
12934
|
+
deviceId: number;
|
|
12935
|
+
profile: string;
|
|
12936
|
+
fromMs: number;
|
|
12937
|
+
toMs: number;
|
|
12938
|
+
options: {
|
|
12939
|
+
includeAudio: boolean;
|
|
12940
|
+
maxLifeMs: number;
|
|
12941
|
+
deleteAfterDownload: boolean;
|
|
12942
|
+
speed?: number | undefined;
|
|
12943
|
+
timelapse?: {
|
|
12944
|
+
everyMs: number;
|
|
12945
|
+
outputFps?: number | undefined;
|
|
12946
|
+
} | undefined;
|
|
12947
|
+
title?: string | undefined;
|
|
12948
|
+
};
|
|
12949
|
+
state: "failed" | "queued" | "ready" | "deleted" | "rendering" | "expired";
|
|
12950
|
+
progressPct: number | null;
|
|
12951
|
+
fileBytes: number | null;
|
|
12952
|
+
expiresAt: number;
|
|
12953
|
+
deleteAfterDownload: boolean;
|
|
12954
|
+
downloadedAt: number | null;
|
|
12955
|
+
createdAt: number;
|
|
12956
|
+
createdBy: string;
|
|
12957
|
+
error: string | null;
|
|
12958
|
+
};
|
|
12959
|
+
meta: object;
|
|
12960
|
+
}>;
|
|
12961
|
+
listExports: import("@trpc/server").TRPCQueryProcedure<{
|
|
12962
|
+
input: {
|
|
12963
|
+
[x: string]: unknown;
|
|
12964
|
+
deviceId?: number | undefined;
|
|
12965
|
+
};
|
|
12966
|
+
output: {
|
|
12967
|
+
id: string;
|
|
12968
|
+
deviceId: number;
|
|
12969
|
+
profile: string;
|
|
12970
|
+
fromMs: number;
|
|
12971
|
+
toMs: number;
|
|
12972
|
+
options: {
|
|
12973
|
+
includeAudio: boolean;
|
|
12974
|
+
maxLifeMs: number;
|
|
12975
|
+
deleteAfterDownload: boolean;
|
|
12976
|
+
speed?: number | undefined;
|
|
12977
|
+
timelapse?: {
|
|
12978
|
+
everyMs: number;
|
|
12979
|
+
outputFps?: number | undefined;
|
|
12980
|
+
} | undefined;
|
|
12981
|
+
title?: string | undefined;
|
|
12982
|
+
};
|
|
12983
|
+
state: "failed" | "queued" | "ready" | "deleted" | "rendering" | "expired";
|
|
12984
|
+
progressPct: number | null;
|
|
12985
|
+
fileBytes: number | null;
|
|
12986
|
+
expiresAt: number;
|
|
12987
|
+
deleteAfterDownload: boolean;
|
|
12988
|
+
downloadedAt: number | null;
|
|
12989
|
+
createdAt: number;
|
|
12990
|
+
createdBy: string;
|
|
12991
|
+
error: string | null;
|
|
12992
|
+
}[];
|
|
12993
|
+
meta: object;
|
|
12994
|
+
}>;
|
|
12995
|
+
getExport: import("@trpc/server").TRPCQueryProcedure<{
|
|
12996
|
+
input: {
|
|
12997
|
+
[x: string]: unknown;
|
|
12998
|
+
exportId: string;
|
|
12999
|
+
};
|
|
13000
|
+
output: {
|
|
13001
|
+
id: string;
|
|
13002
|
+
deviceId: number;
|
|
13003
|
+
profile: string;
|
|
13004
|
+
fromMs: number;
|
|
13005
|
+
toMs: number;
|
|
13006
|
+
options: {
|
|
13007
|
+
includeAudio: boolean;
|
|
13008
|
+
maxLifeMs: number;
|
|
13009
|
+
deleteAfterDownload: boolean;
|
|
13010
|
+
speed?: number | undefined;
|
|
13011
|
+
timelapse?: {
|
|
13012
|
+
everyMs: number;
|
|
13013
|
+
outputFps?: number | undefined;
|
|
13014
|
+
} | undefined;
|
|
13015
|
+
title?: string | undefined;
|
|
13016
|
+
};
|
|
13017
|
+
state: "failed" | "queued" | "ready" | "deleted" | "rendering" | "expired";
|
|
13018
|
+
progressPct: number | null;
|
|
13019
|
+
fileBytes: number | null;
|
|
13020
|
+
expiresAt: number;
|
|
13021
|
+
deleteAfterDownload: boolean;
|
|
13022
|
+
downloadedAt: number | null;
|
|
13023
|
+
createdAt: number;
|
|
13024
|
+
createdBy: string;
|
|
13025
|
+
error: string | null;
|
|
13026
|
+
};
|
|
13027
|
+
meta: object;
|
|
13028
|
+
}>;
|
|
13029
|
+
cancelExport: import("@trpc/server").TRPCMutationProcedure<{
|
|
13030
|
+
input: {
|
|
13031
|
+
[x: string]: unknown;
|
|
13032
|
+
exportId: string;
|
|
13033
|
+
};
|
|
13034
|
+
output: {
|
|
13035
|
+
id: string;
|
|
13036
|
+
deviceId: number;
|
|
13037
|
+
profile: string;
|
|
13038
|
+
fromMs: number;
|
|
13039
|
+
toMs: number;
|
|
13040
|
+
options: {
|
|
13041
|
+
includeAudio: boolean;
|
|
13042
|
+
maxLifeMs: number;
|
|
13043
|
+
deleteAfterDownload: boolean;
|
|
13044
|
+
speed?: number | undefined;
|
|
13045
|
+
timelapse?: {
|
|
13046
|
+
everyMs: number;
|
|
13047
|
+
outputFps?: number | undefined;
|
|
13048
|
+
} | undefined;
|
|
13049
|
+
title?: string | undefined;
|
|
13050
|
+
};
|
|
13051
|
+
state: "failed" | "queued" | "ready" | "deleted" | "rendering" | "expired";
|
|
13052
|
+
progressPct: number | null;
|
|
13053
|
+
fileBytes: number | null;
|
|
13054
|
+
expiresAt: number;
|
|
13055
|
+
deleteAfterDownload: boolean;
|
|
13056
|
+
downloadedAt: number | null;
|
|
13057
|
+
createdAt: number;
|
|
13058
|
+
createdBy: string;
|
|
13059
|
+
error: string | null;
|
|
13060
|
+
};
|
|
13061
|
+
meta: object;
|
|
13062
|
+
}>;
|
|
13063
|
+
deleteExport: import("@trpc/server").TRPCMutationProcedure<{
|
|
13064
|
+
input: {
|
|
13065
|
+
[x: string]: unknown;
|
|
13066
|
+
exportId: string;
|
|
13067
|
+
};
|
|
13068
|
+
output: {
|
|
13069
|
+
id: string;
|
|
13070
|
+
deviceId: number;
|
|
13071
|
+
profile: string;
|
|
13072
|
+
fromMs: number;
|
|
13073
|
+
toMs: number;
|
|
13074
|
+
options: {
|
|
13075
|
+
includeAudio: boolean;
|
|
13076
|
+
maxLifeMs: number;
|
|
13077
|
+
deleteAfterDownload: boolean;
|
|
13078
|
+
speed?: number | undefined;
|
|
13079
|
+
timelapse?: {
|
|
13080
|
+
everyMs: number;
|
|
13081
|
+
outputFps?: number | undefined;
|
|
13082
|
+
} | undefined;
|
|
13083
|
+
title?: string | undefined;
|
|
13084
|
+
};
|
|
13085
|
+
state: "failed" | "queued" | "ready" | "deleted" | "rendering" | "expired";
|
|
13086
|
+
progressPct: number | null;
|
|
13087
|
+
fileBytes: number | null;
|
|
13088
|
+
expiresAt: number;
|
|
13089
|
+
deleteAfterDownload: boolean;
|
|
13090
|
+
downloadedAt: number | null;
|
|
13091
|
+
createdAt: number;
|
|
13092
|
+
createdBy: string;
|
|
13093
|
+
error: string | null;
|
|
13094
|
+
};
|
|
13095
|
+
meta: object;
|
|
13096
|
+
}>;
|
|
13097
|
+
getDownloadUrl: import("@trpc/server").TRPCQueryProcedure<{
|
|
13098
|
+
input: {
|
|
13099
|
+
[x: string]: unknown;
|
|
13100
|
+
exportId: string;
|
|
13101
|
+
};
|
|
13102
|
+
output: {
|
|
13103
|
+
url: string;
|
|
13104
|
+
endpoints: string[];
|
|
13105
|
+
};
|
|
13106
|
+
meta: object;
|
|
13107
|
+
}>;
|
|
13108
|
+
}>>;
|
|
12904
13109
|
sceneMonitor: import("@trpc/server").TRPCBuiltRouter<{
|
|
12905
13110
|
ctx: TrpcContext;
|
|
12906
13111
|
meta: object;
|
|
@@ -16337,7 +16542,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
16337
16542
|
input: {
|
|
16338
16543
|
[x: string]: unknown;
|
|
16339
16544
|
deviceId: number;
|
|
16340
|
-
stage: "motion" | "detection";
|
|
16545
|
+
stage: "motion" | "package" | "detection";
|
|
16341
16546
|
};
|
|
16342
16547
|
output: readonly {
|
|
16343
16548
|
id: string;
|
|
@@ -16356,7 +16561,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
16356
16561
|
input: {
|
|
16357
16562
|
[x: string]: unknown;
|
|
16358
16563
|
deviceId: number;
|
|
16359
|
-
stage: "motion" | "detection";
|
|
16564
|
+
stage: "motion" | "package" | "detection";
|
|
16360
16565
|
rules: readonly {
|
|
16361
16566
|
id: string;
|
|
16362
16567
|
zoneIds: readonly string[];
|
|
@@ -26451,8 +26656,8 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
26451
26656
|
kind: string;
|
|
26452
26657
|
label: string;
|
|
26453
26658
|
color: string;
|
|
26454
|
-
icon: "motion" | "smoke" | "button" | "audio" | "person" | "vehicle" | "animal" | "generic" | "door" | "pir" | "water";
|
|
26455
|
-
category: "custom" | "motion" | "audio" | "sensor" | "detection";
|
|
26659
|
+
icon: "motion" | "smoke" | "button" | "audio" | "person" | "vehicle" | "animal" | "package" | "generic" | "door" | "pir" | "water";
|
|
26660
|
+
category: "custom" | "motion" | "audio" | "package" | "sensor" | "detection";
|
|
26456
26661
|
source: {
|
|
26457
26662
|
capName: string;
|
|
26458
26663
|
deviceId: number;
|
|
@@ -29152,6 +29357,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
29152
29357
|
maxAgeDays?: number | undefined;
|
|
29153
29358
|
maxSizeGb?: number | undefined;
|
|
29154
29359
|
} | undefined;
|
|
29360
|
+
scrubThumbnails?: "high" | "max" | "low" | "standard" | "minimal" | undefined;
|
|
29155
29361
|
};
|
|
29156
29362
|
meta: object;
|
|
29157
29363
|
}>;
|
|
@@ -29248,6 +29454,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
29248
29454
|
maxAgeDays?: number | undefined;
|
|
29249
29455
|
maxSizeGb?: number | undefined;
|
|
29250
29456
|
} | undefined;
|
|
29457
|
+
scrubThumbnails?: "high" | "max" | "low" | "standard" | "minimal" | undefined;
|
|
29251
29458
|
};
|
|
29252
29459
|
};
|
|
29253
29460
|
output: {
|
|
@@ -29308,6 +29515,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
29308
29515
|
maxAgeDays?: number | undefined;
|
|
29309
29516
|
maxSizeGb?: number | undefined;
|
|
29310
29517
|
} | undefined;
|
|
29518
|
+
scrubThumbnails?: "high" | "max" | "low" | "standard" | "minimal" | undefined;
|
|
29311
29519
|
};
|
|
29312
29520
|
meta: object;
|
|
29313
29521
|
}>;
|
|
@@ -29338,6 +29546,208 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
29338
29546
|
meta: object;
|
|
29339
29547
|
}>;
|
|
29340
29548
|
}>>;
|
|
29549
|
+
recordingExport: import("@trpc/server").TRPCBuiltRouter<{
|
|
29550
|
+
ctx: TrpcContext;
|
|
29551
|
+
meta: object;
|
|
29552
|
+
errorShape: import("@camstack/types").AugmentedErrorShape;
|
|
29553
|
+
transformer: true;
|
|
29554
|
+
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
|
|
29555
|
+
createExport: import("@trpc/server").TRPCMutationProcedure<{
|
|
29556
|
+
input: {
|
|
29557
|
+
[x: string]: unknown;
|
|
29558
|
+
deviceId: number;
|
|
29559
|
+
profile: string;
|
|
29560
|
+
fromMs: number;
|
|
29561
|
+
toMs: number;
|
|
29562
|
+
options: {
|
|
29563
|
+
includeAudio: boolean;
|
|
29564
|
+
maxLifeMs: number;
|
|
29565
|
+
deleteAfterDownload: boolean;
|
|
29566
|
+
speed?: number | undefined;
|
|
29567
|
+
timelapse?: {
|
|
29568
|
+
everyMs: number;
|
|
29569
|
+
outputFps?: number | undefined;
|
|
29570
|
+
} | undefined;
|
|
29571
|
+
title?: string | undefined;
|
|
29572
|
+
};
|
|
29573
|
+
};
|
|
29574
|
+
output: {
|
|
29575
|
+
id: string;
|
|
29576
|
+
deviceId: number;
|
|
29577
|
+
profile: string;
|
|
29578
|
+
fromMs: number;
|
|
29579
|
+
toMs: number;
|
|
29580
|
+
options: {
|
|
29581
|
+
includeAudio: boolean;
|
|
29582
|
+
maxLifeMs: number;
|
|
29583
|
+
deleteAfterDownload: boolean;
|
|
29584
|
+
speed?: number | undefined;
|
|
29585
|
+
timelapse?: {
|
|
29586
|
+
everyMs: number;
|
|
29587
|
+
outputFps?: number | undefined;
|
|
29588
|
+
} | undefined;
|
|
29589
|
+
title?: string | undefined;
|
|
29590
|
+
};
|
|
29591
|
+
state: "failed" | "queued" | "ready" | "deleted" | "rendering" | "expired";
|
|
29592
|
+
progressPct: number | null;
|
|
29593
|
+
fileBytes: number | null;
|
|
29594
|
+
expiresAt: number;
|
|
29595
|
+
deleteAfterDownload: boolean;
|
|
29596
|
+
downloadedAt: number | null;
|
|
29597
|
+
createdAt: number;
|
|
29598
|
+
createdBy: string;
|
|
29599
|
+
error: string | null;
|
|
29600
|
+
};
|
|
29601
|
+
meta: object;
|
|
29602
|
+
}>;
|
|
29603
|
+
listExports: import("@trpc/server").TRPCQueryProcedure<{
|
|
29604
|
+
input: {
|
|
29605
|
+
[x: string]: unknown;
|
|
29606
|
+
deviceId?: number | undefined;
|
|
29607
|
+
};
|
|
29608
|
+
output: {
|
|
29609
|
+
id: string;
|
|
29610
|
+
deviceId: number;
|
|
29611
|
+
profile: string;
|
|
29612
|
+
fromMs: number;
|
|
29613
|
+
toMs: number;
|
|
29614
|
+
options: {
|
|
29615
|
+
includeAudio: boolean;
|
|
29616
|
+
maxLifeMs: number;
|
|
29617
|
+
deleteAfterDownload: boolean;
|
|
29618
|
+
speed?: number | undefined;
|
|
29619
|
+
timelapse?: {
|
|
29620
|
+
everyMs: number;
|
|
29621
|
+
outputFps?: number | undefined;
|
|
29622
|
+
} | undefined;
|
|
29623
|
+
title?: string | undefined;
|
|
29624
|
+
};
|
|
29625
|
+
state: "failed" | "queued" | "ready" | "deleted" | "rendering" | "expired";
|
|
29626
|
+
progressPct: number | null;
|
|
29627
|
+
fileBytes: number | null;
|
|
29628
|
+
expiresAt: number;
|
|
29629
|
+
deleteAfterDownload: boolean;
|
|
29630
|
+
downloadedAt: number | null;
|
|
29631
|
+
createdAt: number;
|
|
29632
|
+
createdBy: string;
|
|
29633
|
+
error: string | null;
|
|
29634
|
+
}[];
|
|
29635
|
+
meta: object;
|
|
29636
|
+
}>;
|
|
29637
|
+
getExport: import("@trpc/server").TRPCQueryProcedure<{
|
|
29638
|
+
input: {
|
|
29639
|
+
[x: string]: unknown;
|
|
29640
|
+
exportId: string;
|
|
29641
|
+
};
|
|
29642
|
+
output: {
|
|
29643
|
+
id: string;
|
|
29644
|
+
deviceId: number;
|
|
29645
|
+
profile: string;
|
|
29646
|
+
fromMs: number;
|
|
29647
|
+
toMs: number;
|
|
29648
|
+
options: {
|
|
29649
|
+
includeAudio: boolean;
|
|
29650
|
+
maxLifeMs: number;
|
|
29651
|
+
deleteAfterDownload: boolean;
|
|
29652
|
+
speed?: number | undefined;
|
|
29653
|
+
timelapse?: {
|
|
29654
|
+
everyMs: number;
|
|
29655
|
+
outputFps?: number | undefined;
|
|
29656
|
+
} | undefined;
|
|
29657
|
+
title?: string | undefined;
|
|
29658
|
+
};
|
|
29659
|
+
state: "failed" | "queued" | "ready" | "deleted" | "rendering" | "expired";
|
|
29660
|
+
progressPct: number | null;
|
|
29661
|
+
fileBytes: number | null;
|
|
29662
|
+
expiresAt: number;
|
|
29663
|
+
deleteAfterDownload: boolean;
|
|
29664
|
+
downloadedAt: number | null;
|
|
29665
|
+
createdAt: number;
|
|
29666
|
+
createdBy: string;
|
|
29667
|
+
error: string | null;
|
|
29668
|
+
};
|
|
29669
|
+
meta: object;
|
|
29670
|
+
}>;
|
|
29671
|
+
cancelExport: import("@trpc/server").TRPCMutationProcedure<{
|
|
29672
|
+
input: {
|
|
29673
|
+
[x: string]: unknown;
|
|
29674
|
+
exportId: string;
|
|
29675
|
+
};
|
|
29676
|
+
output: {
|
|
29677
|
+
id: string;
|
|
29678
|
+
deviceId: number;
|
|
29679
|
+
profile: string;
|
|
29680
|
+
fromMs: number;
|
|
29681
|
+
toMs: number;
|
|
29682
|
+
options: {
|
|
29683
|
+
includeAudio: boolean;
|
|
29684
|
+
maxLifeMs: number;
|
|
29685
|
+
deleteAfterDownload: boolean;
|
|
29686
|
+
speed?: number | undefined;
|
|
29687
|
+
timelapse?: {
|
|
29688
|
+
everyMs: number;
|
|
29689
|
+
outputFps?: number | undefined;
|
|
29690
|
+
} | undefined;
|
|
29691
|
+
title?: string | undefined;
|
|
29692
|
+
};
|
|
29693
|
+
state: "failed" | "queued" | "ready" | "deleted" | "rendering" | "expired";
|
|
29694
|
+
progressPct: number | null;
|
|
29695
|
+
fileBytes: number | null;
|
|
29696
|
+
expiresAt: number;
|
|
29697
|
+
deleteAfterDownload: boolean;
|
|
29698
|
+
downloadedAt: number | null;
|
|
29699
|
+
createdAt: number;
|
|
29700
|
+
createdBy: string;
|
|
29701
|
+
error: string | null;
|
|
29702
|
+
};
|
|
29703
|
+
meta: object;
|
|
29704
|
+
}>;
|
|
29705
|
+
deleteExport: import("@trpc/server").TRPCMutationProcedure<{
|
|
29706
|
+
input: {
|
|
29707
|
+
[x: string]: unknown;
|
|
29708
|
+
exportId: string;
|
|
29709
|
+
};
|
|
29710
|
+
output: {
|
|
29711
|
+
id: string;
|
|
29712
|
+
deviceId: number;
|
|
29713
|
+
profile: string;
|
|
29714
|
+
fromMs: number;
|
|
29715
|
+
toMs: number;
|
|
29716
|
+
options: {
|
|
29717
|
+
includeAudio: boolean;
|
|
29718
|
+
maxLifeMs: number;
|
|
29719
|
+
deleteAfterDownload: boolean;
|
|
29720
|
+
speed?: number | undefined;
|
|
29721
|
+
timelapse?: {
|
|
29722
|
+
everyMs: number;
|
|
29723
|
+
outputFps?: number | undefined;
|
|
29724
|
+
} | undefined;
|
|
29725
|
+
title?: string | undefined;
|
|
29726
|
+
};
|
|
29727
|
+
state: "failed" | "queued" | "ready" | "deleted" | "rendering" | "expired";
|
|
29728
|
+
progressPct: number | null;
|
|
29729
|
+
fileBytes: number | null;
|
|
29730
|
+
expiresAt: number;
|
|
29731
|
+
deleteAfterDownload: boolean;
|
|
29732
|
+
downloadedAt: number | null;
|
|
29733
|
+
createdAt: number;
|
|
29734
|
+
createdBy: string;
|
|
29735
|
+
error: string | null;
|
|
29736
|
+
};
|
|
29737
|
+
meta: object;
|
|
29738
|
+
}>;
|
|
29739
|
+
getDownloadUrl: import("@trpc/server").TRPCQueryProcedure<{
|
|
29740
|
+
input: {
|
|
29741
|
+
[x: string]: unknown;
|
|
29742
|
+
exportId: string;
|
|
29743
|
+
};
|
|
29744
|
+
output: {
|
|
29745
|
+
url: string;
|
|
29746
|
+
endpoints: string[];
|
|
29747
|
+
};
|
|
29748
|
+
meta: object;
|
|
29749
|
+
}>;
|
|
29750
|
+
}>>;
|
|
29341
29751
|
sceneMonitor: import("@trpc/server").TRPCBuiltRouter<{
|
|
29342
29752
|
ctx: TrpcContext;
|
|
29343
29753
|
meta: object;
|
|
@@ -32774,7 +33184,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
32774
33184
|
input: {
|
|
32775
33185
|
[x: string]: unknown;
|
|
32776
33186
|
deviceId: number;
|
|
32777
|
-
stage: "motion" | "detection";
|
|
33187
|
+
stage: "motion" | "package" | "detection";
|
|
32778
33188
|
};
|
|
32779
33189
|
output: readonly {
|
|
32780
33190
|
id: string;
|
|
@@ -32793,7 +33203,7 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
32793
33203
|
input: {
|
|
32794
33204
|
[x: string]: unknown;
|
|
32795
33205
|
deviceId: number;
|
|
32796
|
-
stage: "motion" | "detection";
|
|
33206
|
+
stage: "motion" | "package" | "detection";
|
|
32797
33207
|
rules: readonly {
|
|
32798
33208
|
id: string;
|
|
32799
33209
|
zoneIds: readonly string[];
|
|
@@ -105,6 +105,7 @@ export { ptzCapability } from '../capabilities/ptz.cap.js';
|
|
|
105
105
|
export { ptzAutotrackCapability } from '../capabilities/ptz-autotrack.cap.js';
|
|
106
106
|
export { rebootCapability } from '../capabilities/reboot.cap.js';
|
|
107
107
|
export { recordingCapability } from '../capabilities/recording.cap.js';
|
|
108
|
+
export { recordingExportCapability } from '../capabilities/recording-export.cap.js';
|
|
108
109
|
export { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
|
|
109
110
|
export { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
|
|
110
111
|
export { serverManagementCapability } from '../capabilities/server-management.cap.js';
|
|
@@ -247,6 +248,7 @@ export declare const CAPABILITY_NAMES: {
|
|
|
247
248
|
readonly ptzAutotrack: "ptz-autotrack";
|
|
248
249
|
readonly reboot: "reboot";
|
|
249
250
|
readonly recording: "recording";
|
|
251
|
+
readonly recordingExport: "recordingExport";
|
|
250
252
|
readonly sceneMonitor: "scene-monitor";
|
|
251
253
|
readonly scriptRunner: "script-runner";
|
|
252
254
|
readonly serverManagement: "server-management";
|
|
@@ -402,6 +404,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
402
404
|
readonly ptzAutotrack: TRouter;
|
|
403
405
|
readonly reboot: TRouter;
|
|
404
406
|
readonly recording: TRouter;
|
|
407
|
+
readonly recordingExport: TRouter;
|
|
405
408
|
readonly sceneMonitor: TRouter;
|
|
406
409
|
readonly scriptRunner: TRouter;
|
|
407
410
|
readonly serverManagement: TRouter;
|
|
@@ -437,8 +440,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
437
440
|
readonly zoneRules: TRouter;
|
|
438
441
|
readonly zones: TRouter;
|
|
439
442
|
}
|
|
440
|
-
/** Capability names whose mode is `singleton` (
|
|
441
|
-
export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "advanced-notifier", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "network-quality", "nodes", "notifier", "numeric-sensor", "osd", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "stream-broker", "stream-catalog", "stream-params", "switch", "system", "tamper", "temperature-sensor", "toast", "update", "user-management", "vacuum-control", "valve", "vibration", "videoclips", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
|
|
443
|
+
/** Capability names whose mode is `singleton` (120 caps). */
|
|
444
|
+
export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "advanced-notifier", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "network-quality", "nodes", "notifier", "numeric-sensor", "osd", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "recordingExport", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "stream-broker", "stream-catalog", "stream-params", "switch", "system", "tamper", "temperature-sensor", "toast", "update", "user-management", "vacuum-control", "valve", "vibration", "videoclips", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
|
|
442
445
|
/** Union of singleton capability names (literal string union). */
|
|
443
446
|
export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
|
|
444
447
|
/** Capability names whose mode is `collection` (22 caps). */
|
|
@@ -94,6 +94,7 @@ import type { pipelineOrchestratorCapability } from '../capabilities/pipeline-or
|
|
|
94
94
|
import type { pipelineRunnerCapability } from '../capabilities/pipeline-runner.cap.js';
|
|
95
95
|
import type { plateGalleryCapability } from '../capabilities/plate-gallery.cap.js';
|
|
96
96
|
import type { recordingCapability } from '../capabilities/recording.cap.js';
|
|
97
|
+
import type { recordingExportCapability } from '../capabilities/recording-export.cap.js';
|
|
97
98
|
import type { streamBrokerCapability } from '../capabilities/stream-broker.cap.js';
|
|
98
99
|
/**
|
|
99
100
|
* Reactive read handle bag for device runtime state. Each entry mirrors the
|
|
@@ -274,6 +275,7 @@ export interface DeviceProxy {
|
|
|
274
275
|
readonly pipelineRunner: Pick<InferDeviceProxyCap<typeof pipelineRunnerCapability>, 'detachCamera' | 'getCameraMetrics' | 'runDetailSubtree'>;
|
|
275
276
|
readonly plateGallery: Pick<InferDeviceProxyCap<typeof plateGalleryCapability>, 'listPlates' | 'getPlateByTrack'>;
|
|
276
277
|
readonly recording: Pick<InferDeviceProxyCap<typeof recordingCapability>, 'getAvailability' | 'getDaysWithRecordings' | 'getPlaybackManifest' | 'getDeviceConfig' | 'locateSegment' | 'readSegmentBytes' | 'setDeviceConfig' | 'rescanStorage' | 'pruneFootage' | 'getStatus' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
|
|
278
|
+
readonly recordingExport: Pick<InferDeviceProxyCap<typeof recordingExportCapability>, 'createExport' | 'listExports'>;
|
|
277
279
|
readonly streamBroker: Pick<InferDeviceProxyCap<typeof streamBrokerCapability>, 'publishCameraStream' | 'retractCameraStream' | 'assignProfile' | 'unassignProfile' | 'restartProfile' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
|
|
278
280
|
}
|
|
279
281
|
/**
|
|
@@ -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: 795 method paths across 116 capabilities.
|
|
10
10
|
*/
|
|
11
11
|
import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
|
|
12
12
|
export interface MethodAccessRecord {
|
|
@@ -31,6 +31,7 @@ import type { pipelineOrchestratorCapability } from '../capabilities/pipeline-or
|
|
|
31
31
|
import type { pipelineRunnerCapability } from '../capabilities/pipeline-runner.cap.js';
|
|
32
32
|
import type { plateGalleryCapability } from '../capabilities/plate-gallery.cap.js';
|
|
33
33
|
import type { recordingCapability } from '../capabilities/recording.cap.js';
|
|
34
|
+
import type { recordingExportCapability } from '../capabilities/recording-export.cap.js';
|
|
34
35
|
import type { serverManagementCapability } from '../capabilities/server-management.cap.js';
|
|
35
36
|
import type { settingsStoreCapability } from '../capabilities/settings-store.cap.js';
|
|
36
37
|
import type { storageCapability } from '../capabilities/storage.cap.js';
|
|
@@ -79,6 +80,7 @@ export interface SystemProxy {
|
|
|
79
80
|
readonly pipelineRunner: Pick<InferProvider<typeof pipelineRunnerCapability>, 'attachCamera' | 'reportMotion' | 'getLocalLoad' | 'getLocalMetrics' | 'getAllCameraMetrics' | 'getLocalCameras' | 'getNativeCrop'>;
|
|
80
81
|
readonly plateGallery: Pick<InferProvider<typeof plateGalleryCapability>, 'getPlateMedia' | 'searchPlates' | 'suggestPlateClusters' | 'correctPlateText' | 'deletePlate' | 'listVehicles' | 'createVehicle' | 'renameVehicle' | 'deleteVehicle' | 'listVehicleSamples' | 'removeVehicleSample' | 'assignPlate' | 'unassignPlate' | 'assignPlates' | 'unassignPlates'>;
|
|
81
82
|
readonly recording: Pick<InferProvider<typeof recordingCapability>, 'getStorageUsage'>;
|
|
83
|
+
readonly recordingExport: Pick<InferProvider<typeof recordingExportCapability>, 'getExport' | 'cancelExport' | 'deleteExport' | 'getDownloadUrl'>;
|
|
82
84
|
readonly serverManagement: Pick<InferProvider<typeof serverManagementCapability>, 'getServerPackageStatus' | 'checkServerUpdate' | 'applyServerUpdate' | 'rollbackServerUpdate' | 'restartServer'>;
|
|
83
85
|
readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'insert' | 'update' | 'delete' | 'count' | 'histogram' | 'isEmpty' | 'declareCollection'>;
|
|
84
86
|
readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'getDefaultLocation' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'testLocation' | 'listProviders' | 'testConfig'>;
|