@camstack/addon-remote-storage 1.2.41 → 1.2.42

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/s3.addon.js CHANGED
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_shared = require("./shared-DMrHydd5.js");
5
+ const require_shared = require("./shared-DSJ7V_r6.js");
6
6
  let node_stream = require("node:stream");
7
7
  let _aws_sdk_client_s3 = require("@aws-sdk/client-s3");
8
8
  let _aws_sdk_lib_storage = require("@aws-sdk/lib-storage");
package/dist/s3.addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { c as BaseAddon, i as rearmIdleAbort, n as getOptionalBasePath, o as scheduleIdleAbort, s as storageProviderCapability, t as createSessionId } from "./shared-BgEt_GPp.mjs";
1
+ import { c as BaseAddon, i as rearmIdleAbort, n as getOptionalBasePath, o as scheduleIdleAbort, s as storageProviderCapability, t as createSessionId } from "./shared-8LifrPLV.mjs";
2
2
  import { PassThrough } from "node:stream";
3
3
  import { DeleteObjectCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectsV2Command, PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
4
4
  import { Upload } from "@aws-sdk/lib-storage";
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_shared = require("./shared-DMrHydd5.js");
5
+ const require_shared = require("./shared-DSJ7V_r6.js");
6
6
  let ssh2 = require("ssh2");
7
7
  let node_path = require("node:path");
8
8
  node_path = require_shared.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-BgEt_GPp.mjs";
1
+ import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-8LifrPLV.mjs";
2
2
  import { Client } from "ssh2";
3
3
  import * as path from "node:path";
4
4
  //#region src/providers/sftp/sftp-config-schema.ts
@@ -8024,18 +8024,61 @@ var RelocateFootageInputSchema = object({
8024
8024
  * `RecordingConfig.enabled` or camera wrapper bindings. */
8025
8025
  var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
8026
8026
  var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
8027
+ /**
8028
+ * What a `relocateMedia` pass DOES. One engine, three passes — never a second
8029
+ * mover (the engine already walks both collections with a timestamp cursor and
8030
+ * already has a stamp-without-copy path).
8031
+ *
8032
+ * - `move` — the default and the historical behaviour: event-media and
8033
+ * retrain blobs move to `toLocationId` and their rows are
8034
+ * stamped. The enrolled gallery is skipped (D197).
8035
+ * - `seal` — ROWS ONLY, no bytes. Every row whose `locationId` is NULL is
8036
+ * stamped with `toLocationId`. `toLocationId` here is the id the
8037
+ * bytes ALREADY sit on — today's `eventMedia` default — because
8038
+ * a NULL row means "wherever `eventMedia` points *now*", and the
8039
+ * instant a repoint moves that pointer the row reads from the
8040
+ * new disk while its bytes are on the old one.
8041
+ * - `gallery` — the inverse selection of `move`: ONLY the retention-exempt
8042
+ * (enrolled-gallery) rows, which `move` deliberately skips.
8043
+ * `galleryMedia` is `cardinality: 'single'`, so this pass can
8044
+ * never run beside a live second location: it is stop-the-world
8045
+ * by construction, which is acceptable only because the gallery
8046
+ * is a few KB per enrolled sample.
8047
+ */
8048
+ var MediaRelocateModeSchema = _enum([
8049
+ "move",
8050
+ "seal",
8051
+ "gallery"
8052
+ ]);
8027
8053
  var RelocateMediaInputSchema = object({
8028
8054
  toLocationId: string(),
8029
- throttleMbps: number().min(1).max(1e3).optional()
8055
+ throttleMbps: number().min(1).max(1e3).optional(),
8056
+ /** Omitted = `move`, the pre-existing behaviour. */
8057
+ mode: MediaRelocateModeSchema.optional()
8058
+ });
8059
+ /** How many rows still carry NO `locationId` — the population a repoint would
8060
+ * silently re-aim at a disk that does not hold their bytes. Zero is the only
8061
+ * value that permits a non-blocking `eventMedia` cutover. */
8062
+ var UnstampedEventMediaCountSchema = object({
8063
+ media: number().int().nonnegative(),
8064
+ retrainFrames: number().int().nonnegative(),
8065
+ total: number().int().nonnegative()
8030
8066
  });
8031
8067
  var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
8032
- /** The independently selectable logical storage classes. `recordings`
8033
- * encompasses the high and mid segment profiles; `recordingsLow` is low
8034
- * segments; `eventMedia` is post-analysis blobs. */
8068
+ /** The independently selectable logical storage classes — every class
8069
+ * `storage.listLocationDeclarations` reports, so an operator never meets a
8070
+ * Zod enum error where they should meet an explanation.
8071
+ *
8072
+ * `recordings` encompasses the high and mid segment profiles; `recordingsLow`
8073
+ * is low segments; `eventMedia` is post-analysis blobs; `galleryMedia` is the
8074
+ * enrolled gallery; `backups` is the system backup archive. The last two have
8075
+ * their own rules — see {@link StorageMigrationFindingCodeSchema}. */
8035
8076
  var StorageMigrationClassSchema = _enum([
8036
8077
  "recordings",
8037
8078
  "recordingsLow",
8038
- "eventMedia"
8079
+ "eventMedia",
8080
+ "backups",
8081
+ "galleryMedia"
8039
8082
  ]);
8040
8083
  /** A destination is always an existing, fully-qualified location id. The
8041
8084
  * migration API intentionally never changes a source location's `basePath`:
@@ -8043,20 +8086,56 @@ var StorageMigrationClassSchema = _enum([
8043
8086
  var StorageMigrationDestinationsSchema = object({
8044
8087
  recordings: string().min(1).optional(),
8045
8088
  recordingsLow: string().min(1).optional(),
8046
- eventMedia: string().min(1).optional()
8089
+ eventMedia: string().min(1).optional(),
8090
+ backups: string().min(1).optional(),
8091
+ galleryMedia: string().min(1).optional()
8047
8092
  }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
8093
+ /**
8094
+ * How a migration sequences the cutover against the byte move.
8095
+ *
8096
+ * - `blocking` — the historical order: pause, move every byte, repoint,
8097
+ * resume. Recording is stopped for the whole move. Right
8098
+ * for a small or a cold class, and the only legal mode for
8099
+ * a `cardinality: 'single'` class.
8100
+ * - `nonBlocking` — repoint FIRST, drain behind: seal, pause, repoint,
8101
+ * refresh, resume, then move the past with everything
8102
+ * running. The pause is three bounded instants (a detach +
8103
+ * attach round, a write-gate drain, a lease) instead of one
8104
+ * bounded by bytes. 1.09 TB at 7–14 MB/s is thirty hours of
8105
+ * stopped recording under `blocking`; the same move is
8106
+ * seconds of stopped recording under `nonBlocking`.
8107
+ *
8108
+ * The mode is on the JOB, not only on the input, because `status` is where an
8109
+ * operator finds out which one is running.
8110
+ */
8111
+ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
8048
8112
  /** Shared input for planning and starting an orchestrated storage migration. */
8049
8113
  var StorageMigrationInputSchema = object({
8050
8114
  destinations: StorageMigrationDestinationsSchema,
8051
- throttleMbps: number().min(1).max(1e3).optional()
8115
+ throttleMbps: number().min(1).max(1e3).optional(),
8116
+ /** Omitted = `blocking`, which stays the default. */
8117
+ mode: StorageMigrationModeSchema.optional()
8052
8118
  });
8053
- /** The durable coordinator state machine. The only phase that changes default
8054
- * locations is `repointing`, after every selected mover has completed and been
8055
- * verified. */
8119
+ /**
8120
+ * The durable coordinator state machine.
8121
+ *
8122
+ * `blocking`:
8123
+ * planning → pausing → moving → verifying → repointing → refreshing → resuming → done
8124
+ *
8125
+ * `nonBlocking`:
8126
+ * planning → sealing → pausing → repointing → refreshing → resuming → draining → verifying → done
8127
+ *
8128
+ * Same phases, different order plus two new ones — not a second mover.
8129
+ * `sealing` closes the `eventMedia` NULL-row hole BEFORE anything is paused;
8130
+ * `draining` runs the same movers UNLEASED, after every writer is back up.
8131
+ * `repointing` is still the only phase that changes a default location.
8132
+ */
8056
8133
  var StorageMigrationPhaseSchema = _enum([
8057
8134
  "planning",
8135
+ "sealing",
8058
8136
  "pausing",
8059
8137
  "moving",
8138
+ "draining",
8060
8139
  "verifying",
8061
8140
  "repointing",
8062
8141
  "refreshing",
@@ -8081,6 +8160,9 @@ var StorageMigrationMoveSchema = object({
8081
8160
  var StorageMigrationJobSchema = object({
8082
8161
  jobId: string(),
8083
8162
  phase: StorageMigrationPhaseSchema,
8163
+ /** Which order this job is running. `status` is the only place an operator
8164
+ * can tell a seconds-long cutover from a thirty-hour one. */
8165
+ mode: StorageMigrationModeSchema,
8084
8166
  destinations: StorageMigrationDestinationsSchema,
8085
8167
  throttleMbps: number(),
8086
8168
  moves: array(StorageMigrationMoveSchema),
@@ -8093,13 +8175,30 @@ var StorageMigrationJobSchema = object({
8093
8175
  finishedAt: number().nullable(),
8094
8176
  error: string().nullable()
8095
8177
  });
8178
+ var StorageMigrationFindingSchema = object({
8179
+ code: _enum([
8180
+ "sharesDeviceWithSource",
8181
+ "deviceIdentityUnknown",
8182
+ "unstampedEventMediaRows",
8183
+ "blockingOnly",
8184
+ "noMover"
8185
+ ]),
8186
+ storageClass: StorageMigrationClassSchema,
8187
+ /** Human-readable, already carrying the ids and counts. */
8188
+ message: string()
8189
+ });
8096
8190
  var StorageMigrationPlanSchema = object({
8097
8191
  destinations: StorageMigrationDestinationsSchema,
8192
+ /** The mode this plan was built for. A plan is only valid for its mode: the
8193
+ * `eventMedia` seal gate and the single-cardinality refusal both depend on
8194
+ * it. */
8195
+ mode: StorageMigrationModeSchema,
8098
8196
  moves: array(object({
8099
8197
  storageClass: StorageMigrationClassSchema,
8100
8198
  fromLocationId: string(),
8101
8199
  toLocationId: string()
8102
- }))
8200
+ })),
8201
+ findings: array(StorageMigrationFindingSchema)
8103
8202
  });
8104
8203
  /**
8105
8204
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -18610,7 +18709,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
18610
18709
  }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
18611
18710
  kind: "mutation",
18612
18711
  auth: "admin"
18613
- }), method(object({}), array(RelocateJobSchema).readonly(), {
18712
+ }), method(object({}), UnstampedEventMediaCountSchema, { auth: "admin" }), method(object({}), array(RelocateJobSchema).readonly(), {
18614
18713
  kind: "query",
18615
18714
  auth: "admin"
18616
18715
  }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
@@ -20517,7 +20616,10 @@ method(object({
20517
20616
  }), StorageLocationSchema, {
20518
20617
  kind: "mutation",
20519
20618
  auth: "admin"
20520
- }), method(object({ id: string() }), _void(), {
20619
+ }), method(object({
20620
+ id: string(),
20621
+ force: boolean().optional()
20622
+ }), _void(), {
20521
20623
  kind: "mutation",
20522
20624
  auth: "admin"
20523
20625
  }), method(object({ id: string() }), object({
@@ -31050,6 +31152,12 @@ Object.freeze({
31050
31152
  addonId: null,
31051
31153
  access: "create"
31052
31154
  },
31155
+ "pipelineAnalytics.countUnstampedEventMedia": {
31156
+ capName: "pipeline-analytics",
31157
+ capScope: "device",
31158
+ addonId: null,
31159
+ access: "view"
31160
+ },
31053
31161
  "pipelineAnalytics.deleteDeviceEvents": {
31054
31162
  capName: "pipeline-analytics",
31055
31163
  capScope: "device",
@@ -8047,18 +8047,61 @@ var RelocateFootageInputSchema = object({
8047
8047
  * `RecordingConfig.enabled` or camera wrapper bindings. */
8048
8048
  var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
8049
8049
  var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
8050
+ /**
8051
+ * What a `relocateMedia` pass DOES. One engine, three passes — never a second
8052
+ * mover (the engine already walks both collections with a timestamp cursor and
8053
+ * already has a stamp-without-copy path).
8054
+ *
8055
+ * - `move` — the default and the historical behaviour: event-media and
8056
+ * retrain blobs move to `toLocationId` and their rows are
8057
+ * stamped. The enrolled gallery is skipped (D197).
8058
+ * - `seal` — ROWS ONLY, no bytes. Every row whose `locationId` is NULL is
8059
+ * stamped with `toLocationId`. `toLocationId` here is the id the
8060
+ * bytes ALREADY sit on — today's `eventMedia` default — because
8061
+ * a NULL row means "wherever `eventMedia` points *now*", and the
8062
+ * instant a repoint moves that pointer the row reads from the
8063
+ * new disk while its bytes are on the old one.
8064
+ * - `gallery` — the inverse selection of `move`: ONLY the retention-exempt
8065
+ * (enrolled-gallery) rows, which `move` deliberately skips.
8066
+ * `galleryMedia` is `cardinality: 'single'`, so this pass can
8067
+ * never run beside a live second location: it is stop-the-world
8068
+ * by construction, which is acceptable only because the gallery
8069
+ * is a few KB per enrolled sample.
8070
+ */
8071
+ var MediaRelocateModeSchema = _enum([
8072
+ "move",
8073
+ "seal",
8074
+ "gallery"
8075
+ ]);
8050
8076
  var RelocateMediaInputSchema = object({
8051
8077
  toLocationId: string(),
8052
- throttleMbps: number().min(1).max(1e3).optional()
8078
+ throttleMbps: number().min(1).max(1e3).optional(),
8079
+ /** Omitted = `move`, the pre-existing behaviour. */
8080
+ mode: MediaRelocateModeSchema.optional()
8081
+ });
8082
+ /** How many rows still carry NO `locationId` — the population a repoint would
8083
+ * silently re-aim at a disk that does not hold their bytes. Zero is the only
8084
+ * value that permits a non-blocking `eventMedia` cutover. */
8085
+ var UnstampedEventMediaCountSchema = object({
8086
+ media: number().int().nonnegative(),
8087
+ retrainFrames: number().int().nonnegative(),
8088
+ total: number().int().nonnegative()
8053
8089
  });
8054
8090
  var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
8055
- /** The independently selectable logical storage classes. `recordings`
8056
- * encompasses the high and mid segment profiles; `recordingsLow` is low
8057
- * segments; `eventMedia` is post-analysis blobs. */
8091
+ /** The independently selectable logical storage classes — every class
8092
+ * `storage.listLocationDeclarations` reports, so an operator never meets a
8093
+ * Zod enum error where they should meet an explanation.
8094
+ *
8095
+ * `recordings` encompasses the high and mid segment profiles; `recordingsLow`
8096
+ * is low segments; `eventMedia` is post-analysis blobs; `galleryMedia` is the
8097
+ * enrolled gallery; `backups` is the system backup archive. The last two have
8098
+ * their own rules — see {@link StorageMigrationFindingCodeSchema}. */
8058
8099
  var StorageMigrationClassSchema = _enum([
8059
8100
  "recordings",
8060
8101
  "recordingsLow",
8061
- "eventMedia"
8102
+ "eventMedia",
8103
+ "backups",
8104
+ "galleryMedia"
8062
8105
  ]);
8063
8106
  /** A destination is always an existing, fully-qualified location id. The
8064
8107
  * migration API intentionally never changes a source location's `basePath`:
@@ -8066,20 +8109,56 @@ var StorageMigrationClassSchema = _enum([
8066
8109
  var StorageMigrationDestinationsSchema = object({
8067
8110
  recordings: string().min(1).optional(),
8068
8111
  recordingsLow: string().min(1).optional(),
8069
- eventMedia: string().min(1).optional()
8112
+ eventMedia: string().min(1).optional(),
8113
+ backups: string().min(1).optional(),
8114
+ galleryMedia: string().min(1).optional()
8070
8115
  }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
8116
+ /**
8117
+ * How a migration sequences the cutover against the byte move.
8118
+ *
8119
+ * - `blocking` — the historical order: pause, move every byte, repoint,
8120
+ * resume. Recording is stopped for the whole move. Right
8121
+ * for a small or a cold class, and the only legal mode for
8122
+ * a `cardinality: 'single'` class.
8123
+ * - `nonBlocking` — repoint FIRST, drain behind: seal, pause, repoint,
8124
+ * refresh, resume, then move the past with everything
8125
+ * running. The pause is three bounded instants (a detach +
8126
+ * attach round, a write-gate drain, a lease) instead of one
8127
+ * bounded by bytes. 1.09 TB at 7–14 MB/s is thirty hours of
8128
+ * stopped recording under `blocking`; the same move is
8129
+ * seconds of stopped recording under `nonBlocking`.
8130
+ *
8131
+ * The mode is on the JOB, not only on the input, because `status` is where an
8132
+ * operator finds out which one is running.
8133
+ */
8134
+ var StorageMigrationModeSchema = _enum(["blocking", "nonBlocking"]);
8071
8135
  /** Shared input for planning and starting an orchestrated storage migration. */
8072
8136
  var StorageMigrationInputSchema = object({
8073
8137
  destinations: StorageMigrationDestinationsSchema,
8074
- throttleMbps: number().min(1).max(1e3).optional()
8138
+ throttleMbps: number().min(1).max(1e3).optional(),
8139
+ /** Omitted = `blocking`, which stays the default. */
8140
+ mode: StorageMigrationModeSchema.optional()
8075
8141
  });
8076
- /** The durable coordinator state machine. The only phase that changes default
8077
- * locations is `repointing`, after every selected mover has completed and been
8078
- * verified. */
8142
+ /**
8143
+ * The durable coordinator state machine.
8144
+ *
8145
+ * `blocking`:
8146
+ * planning → pausing → moving → verifying → repointing → refreshing → resuming → done
8147
+ *
8148
+ * `nonBlocking`:
8149
+ * planning → sealing → pausing → repointing → refreshing → resuming → draining → verifying → done
8150
+ *
8151
+ * Same phases, different order plus two new ones — not a second mover.
8152
+ * `sealing` closes the `eventMedia` NULL-row hole BEFORE anything is paused;
8153
+ * `draining` runs the same movers UNLEASED, after every writer is back up.
8154
+ * `repointing` is still the only phase that changes a default location.
8155
+ */
8079
8156
  var StorageMigrationPhaseSchema = _enum([
8080
8157
  "planning",
8158
+ "sealing",
8081
8159
  "pausing",
8082
8160
  "moving",
8161
+ "draining",
8083
8162
  "verifying",
8084
8163
  "repointing",
8085
8164
  "refreshing",
@@ -8104,6 +8183,9 @@ var StorageMigrationMoveSchema = object({
8104
8183
  var StorageMigrationJobSchema = object({
8105
8184
  jobId: string(),
8106
8185
  phase: StorageMigrationPhaseSchema,
8186
+ /** Which order this job is running. `status` is the only place an operator
8187
+ * can tell a seconds-long cutover from a thirty-hour one. */
8188
+ mode: StorageMigrationModeSchema,
8107
8189
  destinations: StorageMigrationDestinationsSchema,
8108
8190
  throttleMbps: number(),
8109
8191
  moves: array(StorageMigrationMoveSchema),
@@ -8116,13 +8198,30 @@ var StorageMigrationJobSchema = object({
8116
8198
  finishedAt: number().nullable(),
8117
8199
  error: string().nullable()
8118
8200
  });
8201
+ var StorageMigrationFindingSchema = object({
8202
+ code: _enum([
8203
+ "sharesDeviceWithSource",
8204
+ "deviceIdentityUnknown",
8205
+ "unstampedEventMediaRows",
8206
+ "blockingOnly",
8207
+ "noMover"
8208
+ ]),
8209
+ storageClass: StorageMigrationClassSchema,
8210
+ /** Human-readable, already carrying the ids and counts. */
8211
+ message: string()
8212
+ });
8119
8213
  var StorageMigrationPlanSchema = object({
8120
8214
  destinations: StorageMigrationDestinationsSchema,
8215
+ /** The mode this plan was built for. A plan is only valid for its mode: the
8216
+ * `eventMedia` seal gate and the single-cardinality refusal both depend on
8217
+ * it. */
8218
+ mode: StorageMigrationModeSchema,
8121
8219
  moves: array(object({
8122
8220
  storageClass: StorageMigrationClassSchema,
8123
8221
  fromLocationId: string(),
8124
8222
  toLocationId: string()
8125
- }))
8223
+ })),
8224
+ findings: array(StorageMigrationFindingSchema)
8126
8225
  });
8127
8226
  /**
8128
8227
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -18633,7 +18732,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
18633
18732
  }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
18634
18733
  kind: "mutation",
18635
18734
  auth: "admin"
18636
- }), method(object({}), array(RelocateJobSchema).readonly(), {
18735
+ }), method(object({}), UnstampedEventMediaCountSchema, { auth: "admin" }), method(object({}), array(RelocateJobSchema).readonly(), {
18637
18736
  kind: "query",
18638
18737
  auth: "admin"
18639
18738
  }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
@@ -20540,7 +20639,10 @@ method(object({
20540
20639
  }), StorageLocationSchema, {
20541
20640
  kind: "mutation",
20542
20641
  auth: "admin"
20543
- }), method(object({ id: string() }), _void(), {
20642
+ }), method(object({
20643
+ id: string(),
20644
+ force: boolean().optional()
20645
+ }), _void(), {
20544
20646
  kind: "mutation",
20545
20647
  auth: "admin"
20546
20648
  }), method(object({ id: string() }), object({
@@ -31073,6 +31175,12 @@ Object.freeze({
31073
31175
  addonId: null,
31074
31176
  access: "create"
31075
31177
  },
31178
+ "pipelineAnalytics.countUnstampedEventMedia": {
31179
+ capName: "pipeline-analytics",
31180
+ capScope: "device",
31181
+ addonId: null,
31182
+ access: "view"
31183
+ },
31076
31184
  "pipelineAnalytics.deleteDeviceEvents": {
31077
31185
  capName: "pipeline-analytics",
31078
31186
  capScope: "device",
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_shared = require("./shared-DMrHydd5.js");
5
+ const require_shared = require("./shared-DSJ7V_r6.js");
6
6
  let node_stream = require("node:stream");
7
7
  let webdav = require("webdav");
8
8
  //#region src/providers/webdav/webdav-config-schema.ts
@@ -1,4 +1,4 @@
1
- import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-BgEt_GPp.mjs";
1
+ import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-8LifrPLV.mjs";
2
2
  import { PassThrough } from "node:stream";
3
3
  import { AuthType, createClient } from "webdav";
4
4
  //#region src/providers/webdav/webdav-config-schema.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-remote-storage",
3
- "version": "1.2.41",
3
+ "version": "1.2.42",
4
4
  "description": "Remote storage providers (SFTP, S3, WebDAV) — unifies remote backends behind the storage-provider cap",
5
5
  "keywords": [
6
6
  "camstack",