@camstack/system 1.2.375 → 1.2.376

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 (74) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/addon-utils.js +1 -1
  4. package/dist/addon-utils.mjs +1 -1
  5. package/dist/auth/external-identity-manager.d.ts +43 -0
  6. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  7. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  8. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  9. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  10. package/dist/builtins/alerts/alerts.addon.js +1 -1
  11. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  12. package/dist/builtins/autotrack/index.js +1 -1
  13. package/dist/builtins/autotrack/index.mjs +1 -1
  14. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  15. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  16. package/dist/builtins/calendars/calendars.addon.js +1 -1
  17. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  18. package/dist/builtins/camera-grid/index.js +1 -1
  19. package/dist/builtins/camera-grid/index.mjs +1 -1
  20. package/dist/builtins/composer/composer.addon.js +2 -2
  21. package/dist/builtins/composer/composer.addon.mjs +2 -2
  22. package/dist/builtins/console-logging/index.js +1 -1
  23. package/dist/builtins/console-logging/index.mjs +1 -1
  24. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  25. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  26. package/dist/builtins/device-manager/device-manager.addon.d.ts +2 -0
  27. package/dist/builtins/device-manager/device-manager.addon.js +36 -2
  28. package/dist/builtins/device-manager/device-manager.addon.mjs +36 -2
  29. package/dist/builtins/device-manager/device-projection.d.ts +2 -1
  30. package/dist/builtins/device-manager/device-provider-context.d.ts +3 -0
  31. package/dist/builtins/device-manager/secret-config-paths.d.ts +24 -0
  32. package/dist/builtins/hub-forwarder/index.js +1 -1
  33. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  34. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  35. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  36. package/dist/builtins/local-auth/auth-schema.d.ts +14 -0
  37. package/dist/builtins/local-auth/local-auth.addon.d.ts +1 -0
  38. package/dist/builtins/local-auth/local-auth.addon.js +1343 -1131
  39. package/dist/builtins/local-auth/local-auth.addon.mjs +1343 -1131
  40. package/dist/builtins/local-network/local-network.addon.js +1 -1
  41. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  42. package/dist/builtins/loki-logging/index.js +1 -1
  43. package/dist/builtins/loki-logging/index.mjs +1 -1
  44. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  45. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  46. package/dist/builtins/platform-probe/index.js +1 -1
  47. package/dist/builtins/platform-probe/index.mjs +1 -1
  48. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  49. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  50. package/dist/builtins/snapshot/index.js +1 -1
  51. package/dist/builtins/snapshot/index.mjs +1 -1
  52. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  53. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  54. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  55. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  56. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  57. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  58. package/dist/builtins/system-config/system-config.addon.js +1 -1
  59. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  60. package/dist/builtins/winston-logging/index.js +1 -1
  61. package/dist/builtins/winston-logging/index.mjs +1 -1
  62. package/dist/{child-cap-dispatch-B9kziY4L.mjs → child-cap-dispatch-8qMgog1O.mjs} +16 -4
  63. package/dist/{child-cap-dispatch-Bfdgkbq3.js → child-cap-dispatch-BWtaSmWf.js} +15 -3
  64. package/dist/{composition-sources-DYlXX2qW.js → composition-sources-DW7CgMsg.js} +1 -1
  65. package/dist/{composition-sources-BfZgiTYD.mjs → composition-sources-zxQPPtP_.mjs} +1 -1
  66. package/dist/{dist-CNbnikIh.js → dist-BcUWQGr9.js} +268 -6
  67. package/dist/{dist-ZdSg09GJ.mjs → dist-D732NygW.mjs} +263 -7
  68. package/dist/{event-loop-stall-monitor-DKcYBHdH.mjs → event-loop-stall-monitor-8W4yWNVW.mjs} +1 -1
  69. package/dist/{event-loop-stall-monitor-CpEH3CoV.js → event-loop-stall-monitor-QX4RjNe7.js} +1 -1
  70. package/dist/index.js +3 -3
  71. package/dist/index.mjs +3 -3
  72. package/dist/{retired-settings-keys-B4ZeKrbR.mjs → retired-settings-keys-CxPOg7BF.mjs} +1 -1
  73. package/dist/{retired-settings-keys-CcWvdy6u.js → retired-settings-keys-MaESpO18.js} +1 -1
  74. package/package.json +1 -1
@@ -701,7 +701,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
701
701
  return EventCategory;
702
702
  }({});
703
703
  //#endregion
704
- //#region ../types/dist/sleep-BNeXenvr.mjs
704
+ //#region ../types/dist/sleep-B0JG7-_F.mjs
705
705
  /**
706
706
  * The audio chunk plane's byte format, and the ONE expansion from a coded
707
707
  * window to float samples (D455).
@@ -3078,6 +3078,69 @@ var deviceOpsCapability = {
3078
3078
  getRawState: method(zod.z.object({ deviceId: zod.z.number() }), RawStateResultSchema.nullable(), { auth: "protected" })
3079
3079
  }
3080
3080
  };
3081
+ function defOf(schema) {
3082
+ return schema._zod?.def ?? {};
3083
+ }
3084
+ function declaredHere(schema) {
3085
+ return zod.z.globalRegistry.get(schema)?.secret === true;
3086
+ }
3087
+ /** Wrapper kinds whose `innerType` is the field itself. */
3088
+ var WRAPPERS = new Set([
3089
+ "optional",
3090
+ "nullable",
3091
+ "default",
3092
+ "prefault",
3093
+ "catch",
3094
+ "readonly",
3095
+ "nonoptional"
3096
+ ]);
3097
+ /**
3098
+ * The schema layers that make up ONE field: the schema itself and every
3099
+ * wrapper below it (optional / default / nullable / readonly / catch), plus
3100
+ * both sides of a pipe (`z.preprocess` puts the real schema on `out`,
3101
+ * `.transform` on `in`).
3102
+ */
3103
+ function layersOf(schema) {
3104
+ const out = [];
3105
+ const queue = [schema];
3106
+ while (queue.length > 0) {
3107
+ const s = queue.shift();
3108
+ if (!s || out.includes(s)) continue;
3109
+ out.push(s);
3110
+ const def = defOf(s);
3111
+ if (def.type !== void 0 && WRAPPERS.has(def.type) && def.innerType) queue.push(def.innerType);
3112
+ if (def.type === "pipe") {
3113
+ if (def.in) queue.push(def.in);
3114
+ if (def.out) queue.push(def.out);
3115
+ }
3116
+ }
3117
+ return out;
3118
+ }
3119
+ /** True when any layer of this field declares `.meta({ secret: true })`. */
3120
+ function isZodSecret(schema) {
3121
+ return layersOf(schema).some(declaredHere);
3122
+ }
3123
+ /**
3124
+ * Every declared secret path in a config schema: dotted keys, `[]` for "each
3125
+ * element of this array" (`connection.password`, `rows[].token`). A declared
3126
+ * object or array is reported as one path and not descended into — everything
3127
+ * under it is secret.
3128
+ */
3129
+ function collectZodSecretPaths(schema, prefix = "") {
3130
+ if (isZodSecret(schema)) return prefix.length > 0 ? [prefix] : [];
3131
+ const paths = [];
3132
+ for (const layer of layersOf(schema)) {
3133
+ const def = defOf(layer);
3134
+ if (def.type === "object" && def.shape) for (const [key, child] of Object.entries(def.shape)) paths.push(...collectZodSecretPaths(child, prefix ? `${prefix}.${key}` : key));
3135
+ else if (def.type === "array" && def.element) paths.push(...collectZodSecretPaths(def.element, `${prefix}[]`));
3136
+ else if (def.type === "union" && def.options) for (const option of def.options) paths.push(...collectZodSecretPaths(option, prefix));
3137
+ else if (def.type === "intersection") {
3138
+ if (def.left) paths.push(...collectZodSecretPaths(def.left, prefix));
3139
+ if (def.right) paths.push(...collectZodSecretPaths(def.right, prefix));
3140
+ }
3141
+ }
3142
+ return [...new Set(paths)];
3143
+ }
3081
3144
  /**
3082
3145
  * Type-safe JSON parsing helpers.
3083
3146
  *
@@ -15146,6 +15209,10 @@ var DeviceInfoSchema = zod.z.object({
15146
15209
  isCamera: zod.z.boolean(),
15147
15210
  /** Current config values — serializable snapshot */
15148
15211
  config: zod.z.record(zod.z.string(), zod.z.unknown()),
15212
+ /** Paths inside `config` the device's schema declares secret (D783) —
15213
+ * what the non-admin redaction withholds. Paths, never values. Absent
15214
+ * when the owning runner has not reported them. */
15215
+ secretConfigPaths: zod.z.array(zod.z.string()).optional(),
15149
15216
  /** Hardware + identity blob (manufacturer / model / firmware / sn /
15150
15217
  * uid / mac / …). Populated by drivers; editable via setMetadata. */
15151
15218
  metadata: zod.z.record(zod.z.string(), zod.z.unknown()).nullable().optional(),
@@ -15366,7 +15433,13 @@ var DeviceRegisterPayloadSchema = zod.z.object({
15366
15433
  * call (workers re-register on init), so probe-driven updates
15367
15434
  * (e.g. PTZ flag flipping after the abilities probe) propagate. */
15368
15435
  features: zod.z.array(zod.z.string()).optional(),
15369
- config: zod.z.record(zod.z.string(), zod.z.unknown())
15436
+ config: zod.z.record(zod.z.string(), zod.z.unknown()),
15437
+ /** Config paths the device's own schema DECLARES secret
15438
+ * (`.meta({ secret: true })` — dotted, `[]` for array items, e.g.
15439
+ * `connection.password`). Re-published on every register; the non-admin
15440
+ * redaction withholds them at any depth (D783). Optional: an older runner
15441
+ * omits it and the keyword backstop applies. */
15442
+ secretConfigPaths: zod.z.array(zod.z.string()).optional()
15370
15443
  });
15371
15444
  var DeviceRemovePayloadSchema = zod.z.object({ deviceId: zod.z.number() });
15372
15445
  var DevicePersistConfigPayloadSchema = zod.z.object({
@@ -18285,7 +18358,14 @@ var RedirectLoginMethodSchema = zod.z.object({
18285
18358
  icon: zod.z.string().optional(),
18286
18359
  /** Addon-owned HTTP route the button navigates to (GET). */
18287
18360
  startUrl: zod.z.string(),
18288
- stage: LoginStageEnum
18361
+ stage: LoginStageEnum,
18362
+ /**
18363
+ * The provider names an external identity a signed-in user can link to
18364
+ * their own account (D782): `auth.listLinkableProviders` /
18365
+ * `beginExternalLink` offer exactly the redirect methods that set this,
18366
+ * whatever their id. Absent / false — a login button only (magic-link).
18367
+ */
18368
+ linkable: zod.z.boolean().optional()
18289
18369
  });
18290
18370
  /**
18291
18371
  * A Module-Federation widget the login page mounts for an in-page
@@ -24161,7 +24241,13 @@ var RetrainFrameSchema = zod.z.object({
24161
24241
  sizeBytes: zod.z.number().int(),
24162
24242
  width: zod.z.number().int(),
24163
24243
  height: zod.z.number().int(),
24164
- copiedAt: zod.z.number()
24244
+ copiedAt: zod.z.number(),
24245
+ /** When the CAMERA captured the frame. Absent on a copy taken before D785. */
24246
+ capturedAt: zod.z.number().optional(),
24247
+ /** The operator's "every subject in this frame is boxed". Detector
24248
+ * evaluation keeps only complete frames: an unboxed subject would count as
24249
+ * a false positive. */
24250
+ complete: zod.z.boolean()
24165
24251
  });
24166
24252
  /** Why a copy-on-select could not be honoured — named, never a silent skip. */
24167
24253
  var RetrainCopyRefusalSchema = zod.z.enum([
@@ -24182,6 +24268,51 @@ var RetrainFrameListSchema = zod.z.object({
24182
24268
  /** What the page pre-selects — the native key frame when one survives. */
24183
24269
  autoPickMediaId: zod.z.number().int().optional()
24184
24270
  });
24271
+ /**
24272
+ * Which frames an annotated export carries. Every field narrows; an empty
24273
+ * filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
24274
+ * list owned by whoever trains (the training orchestrator), so `frameIds` is
24275
+ * the primitive a version export uses; `batchId` re-selects what an earlier
24276
+ * export carried (`exportedInBatch`).
24277
+ */
24278
+ var RetrainExportFilterSchema = zod.z.object({
24279
+ deviceIds: zod.z.array(zod.z.number()).optional(),
24280
+ frameIds: zod.z.array(zod.z.string()).max(2e4).optional(),
24281
+ batchId: zod.z.string().optional(),
24282
+ /** Only frames the operator marked complete (all subjects boxed). */
24283
+ completeOnly: zod.z.boolean().optional()
24284
+ });
24285
+ /**
24286
+ * `frames`: the full frame copies, boxes in `annotations.json`.
24287
+ * `crops`: additionally one JPEG per subject, cut with the runtime detail-crop
24288
+ * convention — the classifier layout.
24289
+ */
24290
+ var RetrainExportLayoutSchema = zod.z.enum(["frames", "crops"]);
24291
+ /**
24292
+ * Where `writeRetrainArchive` streams the tar: one HTTP request whose body is
24293
+ * the archive, sent chunk by chunk. Covers a presigned PUT and a provider
24294
+ * addon's data-plane upload route alike. Headers are sent verbatim and never
24295
+ * logged.
24296
+ */
24297
+ var RetrainArchiveTargetSchema = zod.z.object({
24298
+ kind: zod.z.literal("http"),
24299
+ method: zod.z.enum(["PUT", "POST"]),
24300
+ url: zod.z.string().url(),
24301
+ headers: zod.z.record(zod.z.string(), zod.z.string()).optional()
24302
+ });
24303
+ var RetrainArchiveResultSchema = zod.z.object({
24304
+ batchId: zod.z.string(),
24305
+ frames: zod.z.number().int(),
24306
+ crops: zod.z.number().int(),
24307
+ annotations: zod.z.number().int(),
24308
+ /** Frames planned but not shipped (unreadable copy, path too long). */
24309
+ missing: zod.z.number().int(),
24310
+ bytes: zod.z.number().int(),
24311
+ /** sha256 of the exact bytes sent. */
24312
+ sha256: zod.z.string(),
24313
+ /** The target's HTTP status. */
24314
+ status: zod.z.number().int()
24315
+ });
24185
24316
  /** What the operator asked the assist to look for. */
24186
24317
  var RetrainAssistSubjectSchema = zod.z.discriminatedUnion("kind", [zod.z.object({
24187
24318
  kind: zod.z.literal("package"),
@@ -25521,11 +25652,41 @@ var pipelineAnalyticsCapability = {
25521
25652
  * out, so two crops of the same subject can never end up in one feature
25522
25653
  * space (D52).
25523
25654
  */
25524
- getRetrainExportUrl: method(zod.z.object({ deviceIds: zod.z.array(zod.z.number()).optional() }), zod.z.object({ url: zod.z.string() }), {
25655
+ getRetrainExportUrl: method(RetrainExportFilterSchema.extend({ layout: RetrainExportLayoutSchema.optional() }), zod.z.object({ url: zod.z.string() }), {
25525
25656
  kind: "query",
25526
25657
  auth: "admin"
25527
25658
  }),
25528
25659
  /**
25660
+ * The operator's "every subject in this frame is boxed" — set and cleared
25661
+ * by hand, never derived: a frame with no box may be a complete hard
25662
+ * negative, and a frame with three boxes may still miss a fourth person.
25663
+ */
25664
+ setRetrainFrameComplete: method(zod.z.object({
25665
+ deviceId: zod.z.number(),
25666
+ trackId: zod.z.string(),
25667
+ frameId: zod.z.string(),
25668
+ complete: zod.z.boolean()
25669
+ }), RetrainFrameSchema, {
25670
+ kind: "mutation",
25671
+ auth: "admin"
25672
+ }),
25673
+ /**
25674
+ * Stream the annotated archive to a TARGET instead of a browser — the
25675
+ * same tar `getRetrainExportUrl` serves (manifest first, one JPEG in
25676
+ * memory at a time, paced), written chunk by chunk into one HTTP request.
25677
+ * The bytes never cross this cap and never land on the hub's disk; the
25678
+ * answer is what was sent, with its sha256.
25679
+ */
25680
+ writeRetrainArchive: method(zod.z.object({
25681
+ filter: RetrainExportFilterSchema,
25682
+ layout: RetrainExportLayoutSchema,
25683
+ target: RetrainArchiveTargetSchema
25684
+ }), RetrainArchiveResultSchema, {
25685
+ kind: "mutation",
25686
+ auth: "admin",
25687
+ timeoutMs: 60 * 6e4
25688
+ }),
25689
+ /**
25529
25690
  * The media an EVENT owns.
25530
25691
  *
25531
25692
  * `ownerType` is REQUIRED, and that is the whole correction (D482). An
@@ -30001,7 +30162,19 @@ var SsoBridgeClaimsSchema = zod.z.object({
30001
30162
  * editing a descriptor must not retroactively extend or shorten a link the
30002
30163
  * operator already consented to.
30003
30164
  */
30004
- refreshTtl: zod.z.union([zod.z.number().int().positive(), zod.z.literal("never")]).optional()
30165
+ refreshTtl: zod.z.union([zod.z.number().int().positive(), zod.z.literal("never")]).optional(),
30166
+ /**
30167
+ * Opaque handle of a hub-side LINK intent (D782). Set by an OIDC callback
30168
+ * that was started from a signed-in user's "Link" button: the finish then
30169
+ * links this identity to the intent's user instead of signing anyone in.
30170
+ * The handle carries no user id — the hub resolves it, single-use.
30171
+ */
30172
+ linkIntent: zod.z.string().optional(),
30173
+ /**
30174
+ * Verified `iss` of the id_token behind an OIDC login bridge (D782). A
30175
+ * subject is unique only per issuer, so a link is bound to it.
30176
+ */
30177
+ issuer: zod.z.string().optional()
30005
30178
  });
30006
30179
  var ssoBridgeCapability = {
30007
30180
  name: "sso-bridge",
@@ -44870,6 +45043,22 @@ var TotpStatusSchema = zod.z.object({
44870
45043
  * delegation, structural caller-scope subset check goes inside the
44871
45044
  * provider.
44872
45045
  */
45046
+ var ExternalIdentitySchema = zod.z.object({
45047
+ /** Login-method id of the provider instance, e.g. `auth-oidc/authentik`. */
45048
+ provider: zod.z.string(),
45049
+ /** The IdP's stable subject (`sub`) for this account. */
45050
+ subject: zod.z.string(),
45051
+ /** The verified `iss` of the IdP the identity was linked under — `sub` is unique only per issuer. */
45052
+ issuer: zod.z.string(),
45053
+ userId: zod.z.string(),
45054
+ /** What the IdP called the account at link time (username / email) — display only. */
45055
+ label: zod.z.string().optional(),
45056
+ linkedAt: zod.z.number()
45057
+ });
45058
+ var ExternalIdentityKeySchema = zod.z.object({
45059
+ provider: zod.z.string().min(1),
45060
+ subject: zod.z.string().min(1)
45061
+ });
44873
45062
  var userManagementCapability = {
44874
45063
  name: "user-management",
44875
45064
  scope: "system",
@@ -45012,6 +45201,32 @@ var userManagementCapability = {
45012
45201
  username: zod.z.string(),
45013
45202
  scopes: zod.z.array(TokenScopeSchema)
45014
45203
  }).nullable(), { access: "view" }),
45204
+ listExternalIdentities: method(zod.z.object({ userId: zod.z.string() }), zod.z.array(ExternalIdentitySchema), { auth: "admin" }),
45205
+ /** The user an identity is linked to, or `null`. */
45206
+ findUserByExternalIdentity: method(ExternalIdentityKeySchema, zod.z.object({
45207
+ userId: zod.z.string(),
45208
+ issuer: zod.z.string()
45209
+ }).nullable(), { auth: "admin" }),
45210
+ /**
45211
+ * Link `(provider, subject)` to `userId`. Idempotent for the same user;
45212
+ * REFUSES (throws) an identity already linked to another user, and a
45213
+ * user that does not exist.
45214
+ */
45215
+ linkExternalIdentity: method(ExternalIdentityKeySchema.extend({
45216
+ userId: zod.z.string(),
45217
+ issuer: zod.z.string().min(1),
45218
+ label: zod.z.string().optional()
45219
+ }), zod.z.object({ success: zod.z.literal(true) }), {
45220
+ kind: "mutation",
45221
+ auth: "admin",
45222
+ access: "create"
45223
+ }),
45224
+ /** Remove one link of `userId`. `success: false` when it was not linked to that user. */
45225
+ unlinkExternalIdentity: method(ExternalIdentityKeySchema.extend({ userId: zod.z.string() }), zod.z.object({ success: zod.z.boolean() }), {
45226
+ kind: "mutation",
45227
+ auth: "admin",
45228
+ access: "delete"
45229
+ }),
45015
45230
  listOauthSessions: method(zod.z.void(), zod.z.array(OauthSessionSummarySchema), { auth: "admin" }),
45016
45231
  revokeOauthSession: method(zod.z.object({ id: zod.z.string() }), zod.z.object({ success: zod.z.boolean() }), {
45017
45232
  kind: "mutation",
@@ -51973,6 +52188,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
51973
52188
  addonId: null,
51974
52189
  access: "create"
51975
52190
  },
52191
+ "pipelineAnalytics.setRetrainFrameComplete": {
52192
+ capName: "pipeline-analytics",
52193
+ capScope: "device",
52194
+ addonId: null,
52195
+ access: "create"
52196
+ },
51976
52197
  "pipelineAnalytics.setTrackFlags": {
51977
52198
  capName: "pipeline-analytics",
51978
52199
  capScope: "device",
@@ -52009,6 +52230,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
52009
52230
  addonId: null,
52010
52231
  access: "delete"
52011
52232
  },
52233
+ "pipelineAnalytics.writeRetrainArchive": {
52234
+ capName: "pipeline-analytics",
52235
+ capScope: "device",
52236
+ addonId: null,
52237
+ access: "create"
52238
+ },
52012
52239
  "pipelineExecutor.cacheFrameInPool": {
52013
52240
  capName: "pipeline-executor",
52014
52241
  capScope: "system",
@@ -54361,18 +54588,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
54361
54588
  addonId: null,
54362
54589
  access: "delete"
54363
54590
  },
54591
+ "userManagement.findUserByExternalIdentity": {
54592
+ capName: "user-management",
54593
+ capScope: "system",
54594
+ addonId: null,
54595
+ access: "view"
54596
+ },
54364
54597
  "userManagement.getTotpStatus": {
54365
54598
  capName: "user-management",
54366
54599
  capScope: "system",
54367
54600
  addonId: null,
54368
54601
  access: "view"
54369
54602
  },
54603
+ "userManagement.linkExternalIdentity": {
54604
+ capName: "user-management",
54605
+ capScope: "system",
54606
+ addonId: null,
54607
+ access: "create"
54608
+ },
54370
54609
  "userManagement.listApiKeys": {
54371
54610
  capName: "user-management",
54372
54611
  capScope: "system",
54373
54612
  addonId: null,
54374
54613
  access: "view"
54375
54614
  },
54615
+ "userManagement.listExternalIdentities": {
54616
+ capName: "user-management",
54617
+ capScope: "system",
54618
+ addonId: null,
54619
+ access: "view"
54620
+ },
54376
54621
  "userManagement.listOauthSessions": {
54377
54622
  capName: "user-management",
54378
54623
  capScope: "system",
@@ -54451,6 +54696,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
54451
54696
  addonId: null,
54452
54697
  access: "create"
54453
54698
  },
54699
+ "userManagement.unlinkExternalIdentity": {
54700
+ capName: "user-management",
54701
+ capScope: "system",
54702
+ addonId: null,
54703
+ access: "delete"
54704
+ },
54454
54705
  "userManagement.updateUser": {
54455
54706
  capName: "user-management",
54456
54707
  capScope: "system",
@@ -58045,6 +58296,11 @@ Object.freeze({
58045
58296
  form: "single",
58046
58297
  optional: false
58047
58298
  }],
58299
+ "pipelineAnalytics.setRetrainFrameComplete": [{
58300
+ name: "deviceId",
58301
+ form: "single",
58302
+ optional: false
58303
+ }],
58048
58304
  "pipelineAnalytics.setTrackFlags": [{
58049
58305
  name: "deviceId",
58050
58306
  form: "single",
@@ -61012,6 +61268,12 @@ Object.defineProperty(exports, "collectSecretConfigKeys", {
61012
61268
  return collectSecretConfigKeys;
61013
61269
  }
61014
61270
  });
61271
+ Object.defineProperty(exports, "collectZodSecretPaths", {
61272
+ enumerable: true,
61273
+ get: function() {
61274
+ return collectZodSecretPaths;
61275
+ }
61276
+ });
61015
61277
  Object.defineProperty(exports, "composedDeviceRef", {
61016
61278
  enumerable: true,
61017
61279
  get: function() {