@camstack/addon-remote-storage 1.2.83 → 1.2.84
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 +1 -1
- package/dist/s3.addon.mjs +1 -1
- package/dist/sftp.addon.js +1 -1
- package/dist/sftp.addon.mjs +1 -1
- package/dist/{shared-CxqHJ1Hd.mjs → shared-Dd6Ix8wk.mjs} +60 -1
- package/dist/{shared-BW3uxISk.js → shared-GkmTwSS1.js} +60 -1
- package/dist/smb.addon.js +1 -1
- package/dist/smb.addon.mjs +1 -1
- package/dist/webdav.addon.js +1 -1
- package/dist/webdav.addon.mjs +1 -1
- package/package.json +1 -1
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-
|
|
5
|
+
const require_shared = require("./shared-GkmTwSS1.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-
|
|
1
|
+
import { c as BaseAddon, i as rearmIdleAbort, n as getOptionalBasePath, o as scheduleIdleAbort, s as storageProviderCapability, t as createSessionId } from "./shared-Dd6Ix8wk.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";
|
package/dist/sftp.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-
|
|
5
|
+
const require_shared = require("./shared-GkmTwSS1.js");
|
|
6
6
|
let ssh2 = require("ssh2");
|
|
7
7
|
let node_path = require("node:path");
|
|
8
8
|
node_path = require_shared.__toESM(node_path);
|
package/dist/sftp.addon.mjs
CHANGED
|
@@ -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-
|
|
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-Dd6Ix8wk.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
|
|
@@ -24198,6 +24198,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24198
24198
|
deviceId: number().int().optional(),
|
|
24199
24199
|
base64: string().optional()
|
|
24200
24200
|
});
|
|
24201
|
+
/**
|
|
24202
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24203
|
+
*
|
|
24204
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24205
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24206
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24207
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24208
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24209
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24210
|
+
*/
|
|
24211
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24212
|
+
sampleId: string(),
|
|
24213
|
+
enrolledAt: number().int(),
|
|
24214
|
+
deviceId: number().int().optional(),
|
|
24215
|
+
source: _enum(["detected", "photo"]),
|
|
24216
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24217
|
+
mediaKey: string().optional(),
|
|
24218
|
+
/**
|
|
24219
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24220
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24221
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24222
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24223
|
+
*/
|
|
24224
|
+
comparable: boolean(),
|
|
24225
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24226
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24227
|
+
selfMean: number().nullable(),
|
|
24228
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24229
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24230
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24231
|
+
bestForeign: object({
|
|
24232
|
+
identityId: string(),
|
|
24233
|
+
name: string(),
|
|
24234
|
+
score: number()
|
|
24235
|
+
}).optional(),
|
|
24236
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24237
|
+
suspicion: number()
|
|
24238
|
+
});
|
|
24239
|
+
var IdentitySampleAuditSchema = object({
|
|
24240
|
+
identityId: string(),
|
|
24241
|
+
name: string(),
|
|
24242
|
+
/** The cluster face model every comparison was made in. */
|
|
24243
|
+
modelId: string(),
|
|
24244
|
+
totalSamples: number().int(),
|
|
24245
|
+
comparableSamples: number().int(),
|
|
24246
|
+
flagged: number().int(),
|
|
24247
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24248
|
+
* only its current result. */
|
|
24249
|
+
flagThreshold: number(),
|
|
24250
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24251
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24252
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24253
|
+
});
|
|
24201
24254
|
var FaceInfoSchema = object({
|
|
24202
24255
|
faceId: string(),
|
|
24203
24256
|
deviceId: number().int(),
|
|
@@ -24349,7 +24402,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24349
24402
|
}), method(object({ id: string() }), _void(), {
|
|
24350
24403
|
kind: "mutation",
|
|
24351
24404
|
auth: "admin"
|
|
24352
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24405
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24353
24406
|
identityId: string(),
|
|
24354
24407
|
sampleId: string()
|
|
24355
24408
|
}), _void(), {
|
|
@@ -31576,6 +31629,12 @@ Object.freeze({
|
|
|
31576
31629
|
addonId: null,
|
|
31577
31630
|
access: "create"
|
|
31578
31631
|
},
|
|
31632
|
+
"faceGallery.auditIdentitySamples": {
|
|
31633
|
+
capName: "face-gallery",
|
|
31634
|
+
capScope: "system",
|
|
31635
|
+
addonId: null,
|
|
31636
|
+
access: "view"
|
|
31637
|
+
},
|
|
31579
31638
|
"faceGallery.createIdentity": {
|
|
31580
31639
|
capName: "face-gallery",
|
|
31581
31640
|
capScope: "system",
|
|
@@ -24221,6 +24221,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24221
24221
|
deviceId: number().int().optional(),
|
|
24222
24222
|
base64: string().optional()
|
|
24223
24223
|
});
|
|
24224
|
+
/**
|
|
24225
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24226
|
+
*
|
|
24227
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24228
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24229
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24230
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24231
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24232
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24233
|
+
*/
|
|
24234
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24235
|
+
sampleId: string(),
|
|
24236
|
+
enrolledAt: number().int(),
|
|
24237
|
+
deviceId: number().int().optional(),
|
|
24238
|
+
source: _enum(["detected", "photo"]),
|
|
24239
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24240
|
+
mediaKey: string().optional(),
|
|
24241
|
+
/**
|
|
24242
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24243
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24244
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24245
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24246
|
+
*/
|
|
24247
|
+
comparable: boolean(),
|
|
24248
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24249
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24250
|
+
selfMean: number().nullable(),
|
|
24251
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24252
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24253
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24254
|
+
bestForeign: object({
|
|
24255
|
+
identityId: string(),
|
|
24256
|
+
name: string(),
|
|
24257
|
+
score: number()
|
|
24258
|
+
}).optional(),
|
|
24259
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24260
|
+
suspicion: number()
|
|
24261
|
+
});
|
|
24262
|
+
var IdentitySampleAuditSchema = object({
|
|
24263
|
+
identityId: string(),
|
|
24264
|
+
name: string(),
|
|
24265
|
+
/** The cluster face model every comparison was made in. */
|
|
24266
|
+
modelId: string(),
|
|
24267
|
+
totalSamples: number().int(),
|
|
24268
|
+
comparableSamples: number().int(),
|
|
24269
|
+
flagged: number().int(),
|
|
24270
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24271
|
+
* only its current result. */
|
|
24272
|
+
flagThreshold: number(),
|
|
24273
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24274
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24275
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24276
|
+
});
|
|
24224
24277
|
var FaceInfoSchema = object({
|
|
24225
24278
|
faceId: string(),
|
|
24226
24279
|
deviceId: number().int(),
|
|
@@ -24372,7 +24425,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24372
24425
|
}), method(object({ id: string() }), _void(), {
|
|
24373
24426
|
kind: "mutation",
|
|
24374
24427
|
auth: "admin"
|
|
24375
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24428
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24376
24429
|
identityId: string(),
|
|
24377
24430
|
sampleId: string()
|
|
24378
24431
|
}), _void(), {
|
|
@@ -31599,6 +31652,12 @@ Object.freeze({
|
|
|
31599
31652
|
addonId: null,
|
|
31600
31653
|
access: "create"
|
|
31601
31654
|
},
|
|
31655
|
+
"faceGallery.auditIdentitySamples": {
|
|
31656
|
+
capName: "face-gallery",
|
|
31657
|
+
capScope: "system",
|
|
31658
|
+
addonId: null,
|
|
31659
|
+
access: "view"
|
|
31660
|
+
},
|
|
31602
31661
|
"faceGallery.createIdentity": {
|
|
31603
31662
|
capName: "face-gallery",
|
|
31604
31663
|
capScope: "system",
|
package/dist/smb.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-
|
|
5
|
+
const require_shared = require("./shared-GkmTwSS1.js");
|
|
6
6
|
let node_crypto = require("node:crypto");
|
|
7
7
|
let node_path = require("node:path");
|
|
8
8
|
node_path = require_shared.__toESM(node_path);
|
package/dist/smb.addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, s as storageProviderCapability } from "./shared-
|
|
1
|
+
import { c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, s as storageProviderCapability } from "./shared-Dd6Ix8wk.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import * as path from "node:path";
|
|
4
4
|
import * as fsp from "node:fs/promises";
|
package/dist/webdav.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-
|
|
5
|
+
const require_shared = require("./shared-GkmTwSS1.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
|
package/dist/webdav.addon.mjs
CHANGED
|
@@ -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-
|
|
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-Dd6Ix8wk.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