@camstack/addon-decoder-ffmpeg 1.2.41 → 1.2.43

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.
Files changed (3) hide show
  1. package/dist/index.js +127 -19
  2. package/dist/index.mjs +127 -19
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -8040,18 +8040,61 @@ var RelocateFootageInputSchema = object({
8040
8040
  * `RecordingConfig.enabled` or camera wrapper bindings. */
8041
8041
  var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
8042
8042
  var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
8043
+ /**
8044
+ * What a `relocateMedia` pass DOES. One engine, three passes — never a second
8045
+ * mover (the engine already walks both collections with a timestamp cursor and
8046
+ * already has a stamp-without-copy path).
8047
+ *
8048
+ * - `move` — the default and the historical behaviour: event-media and
8049
+ * retrain blobs move to `toLocationId` and their rows are
8050
+ * stamped. The enrolled gallery is skipped (D197).
8051
+ * - `seal` — ROWS ONLY, no bytes. Every row whose `locationId` is NULL is
8052
+ * stamped with `toLocationId`. `toLocationId` here is the id the
8053
+ * bytes ALREADY sit on — today's `eventMedia` default — because
8054
+ * a NULL row means "wherever `eventMedia` points *now*", and the
8055
+ * instant a repoint moves that pointer the row reads from the
8056
+ * new disk while its bytes are on the old one.
8057
+ * - `gallery` — the inverse selection of `move`: ONLY the retention-exempt
8058
+ * (enrolled-gallery) rows, which `move` deliberately skips.
8059
+ * `galleryMedia` is `cardinality: 'single'`, so this pass can
8060
+ * never run beside a live second location: it is stop-the-world
8061
+ * by construction, which is acceptable only because the gallery
8062
+ * is a few KB per enrolled sample.
8063
+ */
8064
+ var MediaRelocateModeSchema = _enum([
8065
+ "move",
8066
+ "seal",
8067
+ "gallery"
8068
+ ]);
8043
8069
  var RelocateMediaInputSchema = object({
8044
8070
  toLocationId: string(),
8045
- throttleMbps: number().min(1).max(1e3).optional()
8071
+ throttleMbps: number().min(1).max(1e3).optional(),
8072
+ /** Omitted = `move`, the pre-existing behaviour. */
8073
+ mode: MediaRelocateModeSchema.optional()
8074
+ });
8075
+ /** How many rows still carry NO `locationId` — the population a repoint would
8076
+ * silently re-aim at a disk that does not hold their bytes. Zero is the only
8077
+ * value that permits a non-blocking `eventMedia` cutover. */
8078
+ var UnstampedEventMediaCountSchema = object({
8079
+ media: number().int().nonnegative(),
8080
+ retrainFrames: number().int().nonnegative(),
8081
+ total: number().int().nonnegative()
8046
8082
  });
8047
8083
  var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
8048
- /** The independently selectable logical storage classes. `recordings`
8049
- * encompasses the high and mid segment profiles; `recordingsLow` is low
8050
- * segments; `eventMedia` is post-analysis blobs. */
8084
+ /** The independently selectable logical storage classes — every class
8085
+ * `storage.listLocationDeclarations` reports, so an operator never meets a
8086
+ * Zod enum error where they should meet an explanation.
8087
+ *
8088
+ * `recordings` encompasses the high and mid segment profiles; `recordingsLow`
8089
+ * is low segments; `eventMedia` is post-analysis blobs; `galleryMedia` is the
8090
+ * enrolled gallery; `backups` is the system backup archive. The last two have
8091
+ * their own rules — see {@link StorageMigrationFindingCodeSchema}. */
8051
8092
  var StorageMigrationClassSchema = _enum([
8052
8093
  "recordings",
8053
8094
  "recordingsLow",
8054
- "eventMedia"
8095
+ "eventMedia",
8096
+ "backups",
8097
+ "galleryMedia"
8055
8098
  ]);
8056
8099
  /** A destination is always an existing, fully-qualified location id. The
8057
8100
  * migration API intentionally never changes a source location's `basePath`:
@@ -8059,20 +8102,56 @@ var StorageMigrationClassSchema = _enum([
8059
8102
  var StorageMigrationDestinationsSchema = object({
8060
8103
  recordings: string().min(1).optional(),
8061
8104
  recordingsLow: string().min(1).optional(),
8062
- eventMedia: string().min(1).optional()
8105
+ eventMedia: string().min(1).optional(),
8106
+ backups: string().min(1).optional(),
8107
+ galleryMedia: string().min(1).optional()
8063
8108
  }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
8109
+ /**
8110
+ * How a migration sequences the cutover against the byte move.
8111
+ *
8112
+ * - `blocking` — the historical order: pause, move every byte, repoint,
8113
+ * resume. Recording is stopped for the whole move. Right
8114
+ * for a small or a cold class, and the only legal mode for
8115
+ * a `cardinality: 'single'` class.
8116
+ * - `nonBlocking` — repoint FIRST, drain behind: seal, pause, repoint,
8117
+ * refresh, resume, then move the past with everything
8118
+ * running. The pause is three bounded instants (a detach +
8119
+ * attach round, a write-gate drain, a lease) instead of one
8120
+ * bounded by bytes. 1.09 TB at 7–14 MB/s is thirty hours of
8121
+ * stopped recording under `blocking`; the same move is
8122
+ * seconds of stopped recording under `nonBlocking`.
8123
+ *
8124
+ * The mode is on the JOB, not only on the input, because `status` is where an
8125
+ * operator finds out which one is running.
8126
+ */
8127
+ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
8064
8128
  /** Shared input for planning and starting an orchestrated storage migration. */
8065
8129
  var StorageMigrationInputSchema = object({
8066
8130
  destinations: StorageMigrationDestinationsSchema,
8067
- throttleMbps: number().min(1).max(1e3).optional()
8131
+ throttleMbps: number().min(1).max(1e3).optional(),
8132
+ /** Omitted = `blocking`, which stays the default. */
8133
+ mode: StorageMigrationModeSchema.optional()
8068
8134
  });
8069
- /** The durable coordinator state machine. The only phase that changes default
8070
- * locations is `repointing`, after every selected mover has completed and been
8071
- * verified. */
8135
+ /**
8136
+ * The durable coordinator state machine.
8137
+ *
8138
+ * `blocking`:
8139
+ * planning → pausing → moving → verifying → repointing → refreshing → resuming → done
8140
+ *
8141
+ * `nonBlocking`:
8142
+ * planning → sealing → pausing → repointing → refreshing → resuming → draining → verifying → done
8143
+ *
8144
+ * Same phases, different order plus two new ones — not a second mover.
8145
+ * `sealing` closes the `eventMedia` NULL-row hole BEFORE anything is paused;
8146
+ * `draining` runs the same movers UNLEASED, after every writer is back up.
8147
+ * `repointing` is still the only phase that changes a default location.
8148
+ */
8072
8149
  var StorageMigrationPhaseSchema = _enum([
8073
8150
  "planning",
8151
+ "sealing",
8074
8152
  "pausing",
8075
8153
  "moving",
8154
+ "draining",
8076
8155
  "verifying",
8077
8156
  "repointing",
8078
8157
  "refreshing",
@@ -8097,6 +8176,9 @@ var StorageMigrationMoveSchema = object({
8097
8176
  var StorageMigrationJobSchema = object({
8098
8177
  jobId: string(),
8099
8178
  phase: StorageMigrationPhaseSchema,
8179
+ /** Which order this job is running. `status` is the only place an operator
8180
+ * can tell a seconds-long cutover from a thirty-hour one. */
8181
+ mode: StorageMigrationModeSchema,
8100
8182
  destinations: StorageMigrationDestinationsSchema,
8101
8183
  throttleMbps: number(),
8102
8184
  moves: array(StorageMigrationMoveSchema),
@@ -8109,13 +8191,30 @@ var StorageMigrationJobSchema = object({
8109
8191
  finishedAt: number().nullable(),
8110
8192
  error: string().nullable()
8111
8193
  });
8194
+ var StorageMigrationFindingSchema = object({
8195
+ code: _enum([
8196
+ "sharesDeviceWithSource",
8197
+ "deviceIdentityUnknown",
8198
+ "unstampedEventMediaRows",
8199
+ "blockingOnly",
8200
+ "noMover"
8201
+ ]),
8202
+ storageClass: StorageMigrationClassSchema,
8203
+ /** Human-readable, already carrying the ids and counts. */
8204
+ message: string()
8205
+ });
8112
8206
  var StorageMigrationPlanSchema = object({
8113
8207
  destinations: StorageMigrationDestinationsSchema,
8208
+ /** The mode this plan was built for. A plan is only valid for its mode: the
8209
+ * `eventMedia` seal gate and the single-cardinality refusal both depend on
8210
+ * it. */
8211
+ mode: StorageMigrationModeSchema,
8114
8212
  moves: array(object({
8115
8213
  storageClass: StorageMigrationClassSchema,
8116
8214
  fromLocationId: string(),
8117
8215
  toLocationId: string()
8118
- }))
8216
+ })),
8217
+ findings: array(StorageMigrationFindingSchema)
8119
8218
  });
8120
8219
  /**
8121
8220
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -18756,7 +18855,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
18756
18855
  }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
18757
18856
  kind: "mutation",
18758
18857
  auth: "admin"
18759
- }), method(object({}), array(RelocateJobSchema).readonly(), {
18858
+ }), method(object({}), UnstampedEventMediaCountSchema, { auth: "admin" }), method(object({}), array(RelocateJobSchema).readonly(), {
18760
18859
  kind: "query",
18761
18860
  auth: "admin"
18762
18861
  }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
@@ -20663,7 +20762,10 @@ method(object({
20663
20762
  }), StorageLocationSchema, {
20664
20763
  kind: "mutation",
20665
20764
  auth: "admin"
20666
- }), method(object({ id: string() }), _void(), {
20765
+ }), method(object({
20766
+ id: string(),
20767
+ force: boolean().optional()
20768
+ }), _void(), {
20667
20769
  kind: "mutation",
20668
20770
  auth: "admin"
20669
20771
  }), method(object({ id: string() }), object({
@@ -23749,23 +23851,23 @@ DeviceType.Camera, method(object({ deviceId: number() }), object({
23749
23851
  sdpOffer: string()
23750
23852
  }), {
23751
23853
  kind: "mutation",
23752
- auth: "admin"
23854
+ auth: "protected"
23753
23855
  }), method(object({
23754
23856
  deviceId: number(),
23755
23857
  sessionId: string(),
23756
23858
  sdpAnswer: string()
23757
23859
  }), _void(), {
23758
23860
  kind: "mutation",
23759
- auth: "admin"
23861
+ auth: "protected"
23760
23862
  }), method(object({
23761
23863
  deviceId: number(),
23762
23864
  sessionId: string()
23763
23865
  }), _void(), {
23764
23866
  kind: "mutation",
23765
- auth: "admin"
23867
+ auth: "protected"
23766
23868
  }), method(object({ deviceId: number() }), object({ sessionId: string() }), {
23767
23869
  kind: "mutation",
23768
- auth: "admin"
23870
+ auth: "protected"
23769
23871
  }), method(object({
23770
23872
  deviceId: number(),
23771
23873
  /** Audio bytes for ONE frame, base64-encoded so the payload
@@ -23784,10 +23886,10 @@ DeviceType.Camera, method(object({ deviceId: number() }), object({
23784
23886
  sequenceNumber: number().int()
23785
23887
  }), object({ accepted: boolean() }), {
23786
23888
  kind: "mutation",
23787
- auth: "admin"
23889
+ auth: "protected"
23788
23890
  }), method(object({ deviceId: number() }), _void(), {
23789
23891
  kind: "mutation",
23790
- auth: "admin"
23892
+ auth: "protected"
23791
23893
  }), object({
23792
23894
  deviceId: number(),
23793
23895
  status: IntercomStatusSchema
@@ -31136,6 +31238,12 @@ Object.freeze({
31136
31238
  addonId: null,
31137
31239
  access: "create"
31138
31240
  },
31241
+ "pipelineAnalytics.countUnstampedEventMedia": {
31242
+ capName: "pipeline-analytics",
31243
+ capScope: "device",
31244
+ addonId: null,
31245
+ access: "view"
31246
+ },
31139
31247
  "pipelineAnalytics.deleteDeviceEvents": {
31140
31248
  capName: "pipeline-analytics",
31141
31249
  capScope: "device",
package/dist/index.mjs CHANGED
@@ -8036,18 +8036,61 @@ var RelocateFootageInputSchema = object({
8036
8036
  * `RecordingConfig.enabled` or camera wrapper bindings. */
8037
8037
  var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
8038
8038
  var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
8039
+ /**
8040
+ * What a `relocateMedia` pass DOES. One engine, three passes — never a second
8041
+ * mover (the engine already walks both collections with a timestamp cursor and
8042
+ * already has a stamp-without-copy path).
8043
+ *
8044
+ * - `move` — the default and the historical behaviour: event-media and
8045
+ * retrain blobs move to `toLocationId` and their rows are
8046
+ * stamped. The enrolled gallery is skipped (D197).
8047
+ * - `seal` — ROWS ONLY, no bytes. Every row whose `locationId` is NULL is
8048
+ * stamped with `toLocationId`. `toLocationId` here is the id the
8049
+ * bytes ALREADY sit on — today's `eventMedia` default — because
8050
+ * a NULL row means "wherever `eventMedia` points *now*", and the
8051
+ * instant a repoint moves that pointer the row reads from the
8052
+ * new disk while its bytes are on the old one.
8053
+ * - `gallery` — the inverse selection of `move`: ONLY the retention-exempt
8054
+ * (enrolled-gallery) rows, which `move` deliberately skips.
8055
+ * `galleryMedia` is `cardinality: 'single'`, so this pass can
8056
+ * never run beside a live second location: it is stop-the-world
8057
+ * by construction, which is acceptable only because the gallery
8058
+ * is a few KB per enrolled sample.
8059
+ */
8060
+ var MediaRelocateModeSchema = _enum([
8061
+ "move",
8062
+ "seal",
8063
+ "gallery"
8064
+ ]);
8039
8065
  var RelocateMediaInputSchema = object({
8040
8066
  toLocationId: string(),
8041
- throttleMbps: number().min(1).max(1e3).optional()
8067
+ throttleMbps: number().min(1).max(1e3).optional(),
8068
+ /** Omitted = `move`, the pre-existing behaviour. */
8069
+ mode: MediaRelocateModeSchema.optional()
8070
+ });
8071
+ /** How many rows still carry NO `locationId` — the population a repoint would
8072
+ * silently re-aim at a disk that does not hold their bytes. Zero is the only
8073
+ * value that permits a non-blocking `eventMedia` cutover. */
8074
+ var UnstampedEventMediaCountSchema = object({
8075
+ media: number().int().nonnegative(),
8076
+ retrainFrames: number().int().nonnegative(),
8077
+ total: number().int().nonnegative()
8042
8078
  });
8043
8079
  var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
8044
- /** The independently selectable logical storage classes. `recordings`
8045
- * encompasses the high and mid segment profiles; `recordingsLow` is low
8046
- * segments; `eventMedia` is post-analysis blobs. */
8080
+ /** The independently selectable logical storage classes — every class
8081
+ * `storage.listLocationDeclarations` reports, so an operator never meets a
8082
+ * Zod enum error where they should meet an explanation.
8083
+ *
8084
+ * `recordings` encompasses the high and mid segment profiles; `recordingsLow`
8085
+ * is low segments; `eventMedia` is post-analysis blobs; `galleryMedia` is the
8086
+ * enrolled gallery; `backups` is the system backup archive. The last two have
8087
+ * their own rules — see {@link StorageMigrationFindingCodeSchema}. */
8047
8088
  var StorageMigrationClassSchema = _enum([
8048
8089
  "recordings",
8049
8090
  "recordingsLow",
8050
- "eventMedia"
8091
+ "eventMedia",
8092
+ "backups",
8093
+ "galleryMedia"
8051
8094
  ]);
8052
8095
  /** A destination is always an existing, fully-qualified location id. The
8053
8096
  * migration API intentionally never changes a source location's `basePath`:
@@ -8055,20 +8098,56 @@ var StorageMigrationClassSchema = _enum([
8055
8098
  var StorageMigrationDestinationsSchema = object({
8056
8099
  recordings: string().min(1).optional(),
8057
8100
  recordingsLow: string().min(1).optional(),
8058
- eventMedia: string().min(1).optional()
8101
+ eventMedia: string().min(1).optional(),
8102
+ backups: string().min(1).optional(),
8103
+ galleryMedia: string().min(1).optional()
8059
8104
  }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
8105
+ /**
8106
+ * How a migration sequences the cutover against the byte move.
8107
+ *
8108
+ * - `blocking` — the historical order: pause, move every byte, repoint,
8109
+ * resume. Recording is stopped for the whole move. Right
8110
+ * for a small or a cold class, and the only legal mode for
8111
+ * a `cardinality: 'single'` class.
8112
+ * - `nonBlocking` — repoint FIRST, drain behind: seal, pause, repoint,
8113
+ * refresh, resume, then move the past with everything
8114
+ * running. The pause is three bounded instants (a detach +
8115
+ * attach round, a write-gate drain, a lease) instead of one
8116
+ * bounded by bytes. 1.09 TB at 7–14 MB/s is thirty hours of
8117
+ * stopped recording under `blocking`; the same move is
8118
+ * seconds of stopped recording under `nonBlocking`.
8119
+ *
8120
+ * The mode is on the JOB, not only on the input, because `status` is where an
8121
+ * operator finds out which one is running.
8122
+ */
8123
+ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
8060
8124
  /** Shared input for planning and starting an orchestrated storage migration. */
8061
8125
  var StorageMigrationInputSchema = object({
8062
8126
  destinations: StorageMigrationDestinationsSchema,
8063
- throttleMbps: number().min(1).max(1e3).optional()
8127
+ throttleMbps: number().min(1).max(1e3).optional(),
8128
+ /** Omitted = `blocking`, which stays the default. */
8129
+ mode: StorageMigrationModeSchema.optional()
8064
8130
  });
8065
- /** The durable coordinator state machine. The only phase that changes default
8066
- * locations is `repointing`, after every selected mover has completed and been
8067
- * verified. */
8131
+ /**
8132
+ * The durable coordinator state machine.
8133
+ *
8134
+ * `blocking`:
8135
+ * planning → pausing → moving → verifying → repointing → refreshing → resuming → done
8136
+ *
8137
+ * `nonBlocking`:
8138
+ * planning → sealing → pausing → repointing → refreshing → resuming → draining → verifying → done
8139
+ *
8140
+ * Same phases, different order plus two new ones — not a second mover.
8141
+ * `sealing` closes the `eventMedia` NULL-row hole BEFORE anything is paused;
8142
+ * `draining` runs the same movers UNLEASED, after every writer is back up.
8143
+ * `repointing` is still the only phase that changes a default location.
8144
+ */
8068
8145
  var StorageMigrationPhaseSchema = _enum([
8069
8146
  "planning",
8147
+ "sealing",
8070
8148
  "pausing",
8071
8149
  "moving",
8150
+ "draining",
8072
8151
  "verifying",
8073
8152
  "repointing",
8074
8153
  "refreshing",
@@ -8093,6 +8172,9 @@ var StorageMigrationMoveSchema = object({
8093
8172
  var StorageMigrationJobSchema = object({
8094
8173
  jobId: string(),
8095
8174
  phase: StorageMigrationPhaseSchema,
8175
+ /** Which order this job is running. `status` is the only place an operator
8176
+ * can tell a seconds-long cutover from a thirty-hour one. */
8177
+ mode: StorageMigrationModeSchema,
8096
8178
  destinations: StorageMigrationDestinationsSchema,
8097
8179
  throttleMbps: number(),
8098
8180
  moves: array(StorageMigrationMoveSchema),
@@ -8105,13 +8187,30 @@ var StorageMigrationJobSchema = object({
8105
8187
  finishedAt: number().nullable(),
8106
8188
  error: string().nullable()
8107
8189
  });
8190
+ var StorageMigrationFindingSchema = object({
8191
+ code: _enum([
8192
+ "sharesDeviceWithSource",
8193
+ "deviceIdentityUnknown",
8194
+ "unstampedEventMediaRows",
8195
+ "blockingOnly",
8196
+ "noMover"
8197
+ ]),
8198
+ storageClass: StorageMigrationClassSchema,
8199
+ /** Human-readable, already carrying the ids and counts. */
8200
+ message: string()
8201
+ });
8108
8202
  var StorageMigrationPlanSchema = object({
8109
8203
  destinations: StorageMigrationDestinationsSchema,
8204
+ /** The mode this plan was built for. A plan is only valid for its mode: the
8205
+ * `eventMedia` seal gate and the single-cardinality refusal both depend on
8206
+ * it. */
8207
+ mode: StorageMigrationModeSchema,
8110
8208
  moves: array(object({
8111
8209
  storageClass: StorageMigrationClassSchema,
8112
8210
  fromLocationId: string(),
8113
8211
  toLocationId: string()
8114
- }))
8212
+ })),
8213
+ findings: array(StorageMigrationFindingSchema)
8115
8214
  });
8116
8215
  /**
8117
8216
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -18752,7 +18851,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
18752
18851
  }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
18753
18852
  kind: "mutation",
18754
18853
  auth: "admin"
18755
- }), method(object({}), array(RelocateJobSchema).readonly(), {
18854
+ }), method(object({}), UnstampedEventMediaCountSchema, { auth: "admin" }), method(object({}), array(RelocateJobSchema).readonly(), {
18756
18855
  kind: "query",
18757
18856
  auth: "admin"
18758
18857
  }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
@@ -20659,7 +20758,10 @@ method(object({
20659
20758
  }), StorageLocationSchema, {
20660
20759
  kind: "mutation",
20661
20760
  auth: "admin"
20662
- }), method(object({ id: string() }), _void(), {
20761
+ }), method(object({
20762
+ id: string(),
20763
+ force: boolean().optional()
20764
+ }), _void(), {
20663
20765
  kind: "mutation",
20664
20766
  auth: "admin"
20665
20767
  }), method(object({ id: string() }), object({
@@ -23745,23 +23847,23 @@ DeviceType.Camera, method(object({ deviceId: number() }), object({
23745
23847
  sdpOffer: string()
23746
23848
  }), {
23747
23849
  kind: "mutation",
23748
- auth: "admin"
23850
+ auth: "protected"
23749
23851
  }), method(object({
23750
23852
  deviceId: number(),
23751
23853
  sessionId: string(),
23752
23854
  sdpAnswer: string()
23753
23855
  }), _void(), {
23754
23856
  kind: "mutation",
23755
- auth: "admin"
23857
+ auth: "protected"
23756
23858
  }), method(object({
23757
23859
  deviceId: number(),
23758
23860
  sessionId: string()
23759
23861
  }), _void(), {
23760
23862
  kind: "mutation",
23761
- auth: "admin"
23863
+ auth: "protected"
23762
23864
  }), method(object({ deviceId: number() }), object({ sessionId: string() }), {
23763
23865
  kind: "mutation",
23764
- auth: "admin"
23866
+ auth: "protected"
23765
23867
  }), method(object({
23766
23868
  deviceId: number(),
23767
23869
  /** Audio bytes for ONE frame, base64-encoded so the payload
@@ -23780,10 +23882,10 @@ DeviceType.Camera, method(object({ deviceId: number() }), object({
23780
23882
  sequenceNumber: number().int()
23781
23883
  }), object({ accepted: boolean() }), {
23782
23884
  kind: "mutation",
23783
- auth: "admin"
23885
+ auth: "protected"
23784
23886
  }), method(object({ deviceId: number() }), _void(), {
23785
23887
  kind: "mutation",
23786
- auth: "admin"
23888
+ auth: "protected"
23787
23889
  }), object({
23788
23890
  deviceId: number(),
23789
23891
  status: IntercomStatusSchema
@@ -31132,6 +31234,12 @@ Object.freeze({
31132
31234
  addonId: null,
31133
31235
  access: "create"
31134
31236
  },
31237
+ "pipelineAnalytics.countUnstampedEventMedia": {
31238
+ capName: "pipeline-analytics",
31239
+ capScope: "device",
31240
+ addonId: null,
31241
+ access: "view"
31242
+ },
31135
31243
  "pipelineAnalytics.deleteDeviceEvents": {
31136
31244
  capName: "pipeline-analytics",
31137
31245
  capScope: "device",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-decoder-ffmpeg",
3
- "version": "1.2.41",
3
+ "version": "1.2.43",
4
4
  "description": "Standalone ffmpeg-subprocess decoder fallback addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",