@camstack/addon-training 0.1.42 → 0.1.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 (20) hide show
  1. package/dist/{MotionZonesSettings-DZgoN8V_.mjs → MotionZonesSettings-YpCetvNg.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-7L2OX3dp.mjs → PrivacyMaskSettings-DJ34xZMc.mjs} +2 -2
  3. package/dist/{SceneMonitorEditor-CwULmLkP.mjs → SceneMonitorEditor-ChyCoZy6.mjs} +1 -1
  4. package/dist/_stub.js +8 -8
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-DzsEYUgl.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-B5F2D49H.mjs} +3 -3
  6. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BH6lTdjB.mjs +26 -0
  7. package/dist/{dist-BtEl1kYQ.mjs → dist-C7yODd9D.mjs} +381 -0
  8. package/dist/{dist-wRpOWEq6.js → dist-ZBXOtBdC.js} +381 -0
  9. package/dist/{hostInit-1OJB0wPE.mjs → hostInit-Ci39xaf6.mjs} +2 -2
  10. package/dist/index.js +1 -1
  11. package/dist/orchestrator/training.addon.js +1 -1
  12. package/dist/orchestrator/training.addon.mjs +1 -1
  13. package/dist/{player-overlays-CqD89xkd.mjs → player-overlays-CLkmW1-R.mjs} +1 -1
  14. package/dist/providers/modal/training-modal.addon.js +1 -1
  15. package/dist/providers/modal/training-modal.addon.mjs +1 -1
  16. package/dist/remoteEntry.js +1 -1
  17. package/dist/{responsive-Dwyuxd3q.mjs → responsive-DaJFlnYN.mjs} +1 -1
  18. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-D0zbWJUR.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-Cp9TxI8g.mjs} +1 -1
  19. package/package.json +1 -1
  20. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-LhaXEy4l.mjs +0 -26
@@ -12203,6 +12203,167 @@ var ConvertResultSchema = object({
12203
12203
  files: array(string()).readonly()
12204
12204
  })).readonly()
12205
12205
  });
12206
+ /**
12207
+ * Device certificates (D855) — the wire contract shared by the hub, the admin
12208
+ * UI and the native viewer.
12209
+ *
12210
+ * A device (a phone) generates its OWN P-256 key pair in hardware (Secure
12211
+ * Enclave / Android Keystore / a non-extractable WebCrypto key). The private
12212
+ * key never travels. The hub signs the PUBLIC key into an X.509 leaf under a
12213
+ * dedicated device CA; the device later proves possession of the key by
12214
+ * signing a hub-issued nonce, and the hub answers with the same session a
12215
+ * password login opens.
12216
+ *
12217
+ * Everything on the wire is a small string (a PEM, a base64url signature):
12218
+ * D613 is about bulk bytes, and a certificate is ~600 bytes.
12219
+ */
12220
+ /** Signature algorithm of every device credential: ECDSA, curve P-256, SHA-256. */
12221
+ var DEVICE_CERT_SIGNATURE = "ecdsa-p256-sha256";
12222
+ /** First line of every signed message; a change of format bumps the version. */
12223
+ var DEVICE_SIGNATURE_MESSAGE_VERSION = "camstack-device-cert-v1";
12224
+ _enum([
12225
+ "login",
12226
+ "renew",
12227
+ "revoke"
12228
+ ]);
12229
+ var DevicePlatformSchema = _enum([
12230
+ "ios",
12231
+ "android",
12232
+ "web",
12233
+ "other"
12234
+ ]);
12235
+ var Base64UrlSchema = string().min(1).max(4096).regex(/^[A-Za-z0-9_-]+$/);
12236
+ var PemSchema = string().min(1).max(16384);
12237
+ /**
12238
+ * Why a device-certificate endpoint said no. Distinct from a transport / 5xx
12239
+ * failure: those carry no reason and mean "try again", never "the credential is
12240
+ * dead". The viewer switches on this exhaustively.
12241
+ */
12242
+ var DeviceRefusalReasonSchema = _enum([
12243
+ "revoked",
12244
+ "unknown-credential",
12245
+ "expired",
12246
+ "bad-signature",
12247
+ "nonce-invalid",
12248
+ "rate-limited",
12249
+ "invalid-certificate",
12250
+ "superseded",
12251
+ "user-gone",
12252
+ "unavailable",
12253
+ "code-invalid",
12254
+ "self-enrollment-disabled",
12255
+ "step-up-required",
12256
+ "bad-public-key"
12257
+ ]);
12258
+ var DeviceRefusalSchema = object({
12259
+ ok: literal(false),
12260
+ reason: DeviceRefusalReasonSchema,
12261
+ definitive: boolean(),
12262
+ retryAfterSeconds: number().optional()
12263
+ });
12264
+ object({
12265
+ code: string().min(1).max(256),
12266
+ /** SubjectPublicKeyInfo DER of the device's P-256 public key, base64url. */
12267
+ publicKeySpki: Base64UrlSchema,
12268
+ deviceName: string().min(1).max(80).optional(),
12269
+ platform: DevicePlatformSchema
12270
+ });
12271
+ discriminatedUnion("ok", [object({
12272
+ credentialId: string(),
12273
+ certPem: PemSchema,
12274
+ /** The device CA certificate the leaf chains to. */
12275
+ chainPem: PemSchema,
12276
+ notAfter: number(),
12277
+ user: object({
12278
+ id: string(),
12279
+ username: string()
12280
+ })
12281
+ }).extend({ ok: literal(true) }), DeviceRefusalSchema]);
12282
+ object({
12283
+ /** The single-use step-up proof (`auth.deviceEnrollProofFrom…`). */
12284
+ proof: string().min(1).max(512),
12285
+ publicKeySpki: Base64UrlSchema,
12286
+ deviceName: string().min(1).max(80),
12287
+ platform: DevicePlatformSchema
12288
+ });
12289
+ object({
12290
+ proof: string(),
12291
+ expiresAt: number()
12292
+ });
12293
+ discriminatedUnion("ok", [object({
12294
+ nonce: string(),
12295
+ /** The origin to put in the signed message. The app compares it to the hub it dialled. */
12296
+ origin: string(),
12297
+ expiresAt: number(),
12298
+ signature: literal(DEVICE_CERT_SIGNATURE)
12299
+ }).extend({ ok: literal(true) }), DeviceRefusalSchema]);
12300
+ object({
12301
+ certPem: PemSchema,
12302
+ nonce: string().min(1).max(256),
12303
+ /** ECDSA P-256 SHA-256 over {@link buildDeviceSignatureMessage}; raw r||s or DER, base64url. */
12304
+ signature: Base64UrlSchema
12305
+ });
12306
+ discriminatedUnion("ok", [object({
12307
+ credentialId: string(),
12308
+ certPem: PemSchema,
12309
+ chainPem: PemSchema,
12310
+ notAfter: number()
12311
+ }).extend({ ok: literal(true) }), DeviceRefusalSchema]);
12312
+ discriminatedUnion("ok", [object({
12313
+ ok: literal(true),
12314
+ credentialId: string(),
12315
+ sessionsEnded: number().int()
12316
+ }), DeviceRefusalSchema]);
12317
+ var DeviceCredentialStatusSchema = _enum([
12318
+ "active",
12319
+ "expired",
12320
+ "revoked"
12321
+ ]);
12322
+ var DeviceCredentialSchema = object({
12323
+ id: string(),
12324
+ userId: string(),
12325
+ username: string().nullable(),
12326
+ deviceName: string(),
12327
+ platform: DevicePlatformSchema,
12328
+ enrolledVia: _enum(["qr", "self"]),
12329
+ /** SHA-256 of the leaf certificate DER, colon-hex. */
12330
+ fingerprint: string(),
12331
+ issuedAt: number(),
12332
+ expiresAt: number(),
12333
+ lastUsedAt: number().nullable(),
12334
+ lastUsedFrom: string().nullable(),
12335
+ revokedAt: number().nullable(),
12336
+ /** `admin:<userId>` | `user:<userId>` | `device` | `user-deleted`. */
12337
+ revokedBy: string().nullable(),
12338
+ status: DeviceCredentialStatusSchema
12339
+ });
12340
+ var StartEnrollmentOutputSchema = object({
12341
+ /** Shown once; only its hash is kept. */
12342
+ code: string(),
12343
+ expiresAt: number(),
12344
+ /** `camstack://enroll?hub=…&code=…` — what the QR encodes. */
12345
+ enrollUrl: string(),
12346
+ /** The hub origin in the link, or `null` when the hub could not name one (the link then has no `hub`). */
12347
+ hubOrigin: string().nullable(),
12348
+ /** Every origin the apps may try (role `appConnections`). */
12349
+ hubOrigins: array(string())
12350
+ });
12351
+ object({
12352
+ kind: literal("device-certificate"),
12353
+ id: literal("device-certificate"),
12354
+ label: string(),
12355
+ stage: literal("primary"),
12356
+ /** tRPC paths under the hub's `auth` router, so a client names no literal. */
12357
+ challengePath: literal("auth.getDeviceChallenge"),
12358
+ revokePath: literal("auth.revokeOwnDeviceCertificate"),
12359
+ enrollSelfPath: literal("auth.enrollSelf"),
12360
+ loginPath: literal("auth.loginWithDeviceCertificate"),
12361
+ renewPath: literal("auth.renewDeviceCertificate"),
12362
+ signature: literal(DEVICE_CERT_SIGNATURE),
12363
+ messageVersion: literal(DEVICE_SIGNATURE_MESSAGE_VERSION),
12364
+ /** Which clients can execute it: a native app silently, a browser with a non-extractable WebCrypto key. */
12365
+ clients: array(_enum(["native", "web"]))
12366
+ });
12206
12367
  var ExpressionBindingSourceSchema = union([
12207
12368
  object({
12208
12369
  kind: literal("field").optional(),
@@ -15775,6 +15936,136 @@ method(object({
15775
15936
  kind: "mutation",
15776
15937
  auth: "admin"
15777
15938
  }), method(object({}), array(KeychainSecretMetaSchema).readonly(), { auth: "admin" }), method(object({}), KeychainStateSchema, { auth: "admin" });
15939
+ var DeviceCaStatusSchema = discriminatedUnion("state", [
15940
+ object({ state: literal("absent") }),
15941
+ object({
15942
+ state: literal("ready"),
15943
+ subject: string(),
15944
+ fingerprintSha256: string(),
15945
+ validTo: string()
15946
+ }),
15947
+ object({
15948
+ state: literal("unavailable"),
15949
+ reason: string()
15950
+ })
15951
+ ]);
15952
+ var DeviceCertificateSettingsSchema = object({ selfEnrollment: _enum(["allowed", "disabled"]) });
15953
+ method(object({
15954
+ userId: string().min(1).optional(),
15955
+ includeRevoked: boolean().default(false)
15956
+ }), array(DeviceCredentialSchema).readonly(), { auth: "admin" }), method(object({
15957
+ userId: string().min(1),
15958
+ deviceName: string().min(1).max(80)
15959
+ }), StartEnrollmentOutputSchema, {
15960
+ kind: "mutation",
15961
+ auth: "admin",
15962
+ caller: "required"
15963
+ }), method(object({ id: string().min(1) }), object({
15964
+ revoked: boolean(),
15965
+ sessionsEnded: number().int(),
15966
+ status: DeviceCredentialStatusSchema
15967
+ }), {
15968
+ kind: "mutation",
15969
+ auth: "admin",
15970
+ caller: "required"
15971
+ }), method(object({}), DeviceCertificateSettingsSchema, { auth: "admin" }), method(DeviceCertificateSettingsSchema, DeviceCertificateSettingsSchema, {
15972
+ kind: "mutation",
15973
+ auth: "admin"
15974
+ }), method(object({ id: string().min(1) }), object({ result: _enum([
15975
+ "deleted",
15976
+ "live",
15977
+ "unknown"
15978
+ ]) }), {
15979
+ kind: "mutation",
15980
+ auth: "admin",
15981
+ caller: "required"
15982
+ }), method(object({}), DeviceCaStatusSchema, { auth: "admin" }), method(object({
15983
+ id: string().min(1),
15984
+ deviceName: string().min(1).max(80)
15985
+ }), object({ renamed: boolean() }), {
15986
+ kind: "mutation",
15987
+ auth: "admin"
15988
+ });
15989
+ /**
15990
+ * `node-certificates` - what a node holds and the two renewals the hub drives
15991
+ * (D856): the node's MESH leaf (mutual TLS to the hub) and its HTTPS leaf (issued
15992
+ * from the hub's local CA so a device that trusts the hub root trusts the node).
15993
+ *
15994
+ * Provided by the AGENT RUNTIME (the synthetic `agent-runtime` addon id, like
15995
+ * `server-management`): the hub reaches it through the ordinary node-pinned
15996
+ * capability call - no new Moleculer action. The hub's own certificates are
15997
+ * handled in-process by the hub (`certificates` router), so this cap has no hub
15998
+ * provider.
15999
+ *
16000
+ * No private key ever crosses the mesh: the node generates its key pair, sends a
16001
+ * CSR, and the hub returns only the signed certificate.
16002
+ */
16003
+ var MeshLeafInfoSchema = object({
16004
+ cn: string(),
16005
+ serial: string(),
16006
+ fingerprintSha256: string(),
16007
+ notBefore: number(),
16008
+ notAfter: number()
16009
+ });
16010
+ var HttpsLeafInfoSchema = object({
16011
+ fingerprintSha256: string(),
16012
+ issuer: string(),
16013
+ sans: array(string()),
16014
+ notBefore: number(),
16015
+ notAfter: number()
16016
+ });
16017
+ var NodeHttpsStateSchema = discriminatedUnion("state", [object({
16018
+ state: literal("served"),
16019
+ leaf: HttpsLeafInfoSchema
16020
+ }), object({
16021
+ state: literal("not-issued"),
16022
+ reason: string()
16023
+ })]);
16024
+ method(object({}), object({
16025
+ nodeId: string(),
16026
+ mesh: MeshLeafInfoSchema.nullable(),
16027
+ https: NodeHttpsStateSchema
16028
+ }), { auth: "admin" }), method(object({}), object({ csrPem: string() }), {
16029
+ kind: "mutation",
16030
+ auth: "admin"
16031
+ }), method(object({
16032
+ certPem: string().min(1),
16033
+ caCertPem: string().min(1),
16034
+ confirmWithinMs: number().int().min(1e4).max(6e5)
16035
+ }), object({
16036
+ fingerprintSha256: string(),
16037
+ serial: string()
16038
+ }), {
16039
+ kind: "mutation",
16040
+ auth: "admin"
16041
+ }), method(object({ fingerprintSha256: string() }), object({ confirmed: boolean() }), {
16042
+ kind: "mutation",
16043
+ auth: "admin"
16044
+ }), method(object({}), object({ rolledBack: boolean() }), {
16045
+ kind: "mutation",
16046
+ auth: "admin"
16047
+ }), method(object({}), object({
16048
+ csrPem: string(),
16049
+ hostnames: array(string()),
16050
+ addresses: array(string()),
16051
+ /** SHA-256 of the hub local CA this node pinned at its first install; `null` before one. */
16052
+ pinnedCaFingerprintSha256: string().nullable()
16053
+ }), {
16054
+ kind: "mutation",
16055
+ auth: "admin"
16056
+ }), method(object({
16057
+ certPem: string().min(1),
16058
+ caCertPem: string().min(1),
16059
+ /**
16060
+ * The hub signals that its local CA was rotated (D227) and this leaf chains to the NEW
16061
+ * one. Only the hub, over the authenticated mesh, can say so; a leaf with a different CA
16062
+ * and no signal is refused.
16063
+ */
16064
+ caRotation: boolean().optional()
16065
+ }), HttpsLeafInfoSchema, {
16066
+ kind: "mutation",
16067
+ auth: "admin"
16068
+ });
15778
16069
  var KeychainKeySourceSchema = object({
15779
16070
  kind: _enum([
15780
16071
  "config-file",
@@ -61778,6 +62069,54 @@ Object.freeze({
61778
62069
  addonId: null,
61779
62070
  access: "create"
61780
62071
  },
62072
+ "deviceCredentials.deleteDeviceCredential": {
62073
+ capName: "device-credentials",
62074
+ capScope: "system",
62075
+ addonId: null,
62076
+ access: "delete"
62077
+ },
62078
+ "deviceCredentials.getDeviceCaStatus": {
62079
+ capName: "device-credentials",
62080
+ capScope: "system",
62081
+ addonId: null,
62082
+ access: "view"
62083
+ },
62084
+ "deviceCredentials.getDeviceCertificateSettings": {
62085
+ capName: "device-credentials",
62086
+ capScope: "system",
62087
+ addonId: null,
62088
+ access: "view"
62089
+ },
62090
+ "deviceCredentials.listDeviceCredentials": {
62091
+ capName: "device-credentials",
62092
+ capScope: "system",
62093
+ addonId: null,
62094
+ access: "view"
62095
+ },
62096
+ "deviceCredentials.renameDeviceCredential": {
62097
+ capName: "device-credentials",
62098
+ capScope: "system",
62099
+ addonId: null,
62100
+ access: "create"
62101
+ },
62102
+ "deviceCredentials.revokeDeviceCredential": {
62103
+ capName: "device-credentials",
62104
+ capScope: "system",
62105
+ addonId: null,
62106
+ access: "delete"
62107
+ },
62108
+ "deviceCredentials.setDeviceCertificateSettings": {
62109
+ capName: "device-credentials",
62110
+ capScope: "system",
62111
+ addonId: null,
62112
+ access: "create"
62113
+ },
62114
+ "deviceCredentials.startEnrollment": {
62115
+ capName: "device-credentials",
62116
+ capScope: "system",
62117
+ addonId: null,
62118
+ access: "create"
62119
+ },
61781
62120
  "deviceDiscovery.adoptDevice": {
61782
62121
  capName: "device-discovery",
61783
62122
  capScope: "device",
@@ -63938,6 +64277,48 @@ Object.freeze({
63938
64277
  addonId: null,
63939
64278
  access: "create"
63940
64279
  },
64280
+ "nodeCertificates.confirmMeshLeaf": {
64281
+ capName: "node-certificates",
64282
+ capScope: "system",
64283
+ addonId: null,
64284
+ access: "create"
64285
+ },
64286
+ "nodeCertificates.getCertificates": {
64287
+ capName: "node-certificates",
64288
+ capScope: "system",
64289
+ addonId: null,
64290
+ access: "view"
64291
+ },
64292
+ "nodeCertificates.installHttpsCertificate": {
64293
+ capName: "node-certificates",
64294
+ capScope: "system",
64295
+ addonId: null,
64296
+ access: "create"
64297
+ },
64298
+ "nodeCertificates.installMeshLeaf": {
64299
+ capName: "node-certificates",
64300
+ capScope: "system",
64301
+ addonId: null,
64302
+ access: "create"
64303
+ },
64304
+ "nodeCertificates.prepareHttpsCertificate": {
64305
+ capName: "node-certificates",
64306
+ capScope: "system",
64307
+ addonId: null,
64308
+ access: "create"
64309
+ },
64310
+ "nodeCertificates.prepareMeshRenewal": {
64311
+ capName: "node-certificates",
64312
+ capScope: "system",
64313
+ addonId: null,
64314
+ access: "create"
64315
+ },
64316
+ "nodeCertificates.rollbackMeshLeaf": {
64317
+ capName: "node-certificates",
64318
+ capScope: "system",
64319
+ addonId: null,
64320
+ access: "create"
64321
+ },
63941
64322
  "nodes.clusterAddonStatus": {
63942
64323
  capName: "nodes",
63943
64324
  capScope: "system",
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.364",
39
+ version: "1.2.365",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.287",
84
+ version: "1.2.288",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- require("./dist-wRpOWEq6.js");
2
+ require("./dist-ZBXOtBdC.js");
3
3
  const require_orchestrator_training_addon = require("./orchestrator/training.addon.js");
4
4
  const require_providers_modal_training_modal_addon = require("./providers/modal/training-modal.addon.js");
5
5
  //#region src/providers/fake/fake-provider.ts
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_dist = require("../dist-wRpOWEq6.js");
2
+ const require_dist = require("../dist-ZBXOtBdC.js");
3
3
  let node_path = require("node:path");
4
4
  node_path = require_dist.__toESM(node_path);
5
5
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { a as addonPagesSourceCapability, i as TrainingResultSchema, l as BaseAddon, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA } from "../dist-BtEl1kYQ.mjs";
1
+ import { a as addonPagesSourceCapability, i as TrainingResultSchema, l as BaseAddon, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA } from "../dist-C7yODd9D.mjs";
2
2
  import path from "node:path";
3
3
  import { createHash } from "node:crypto";
4
4
  import { createReadStream } from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { S as e, _ as t, l as n, u as r } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-DeDbF7NI.mjs";
2
2
  import { n as i, t as a } from "./chevron-right-D3StkdcR.mjs";
3
- import { y as o } from "./responsive-Dwyuxd3q.mjs";
3
+ import { y as o } from "./responsive-DaJFlnYN.mjs";
4
4
  import { n as s, r as c, t as l } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
5
5
  //#region ../ui-library/src/composites/widget-panel.tsx
6
6
  e();
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_dist = require("../../dist-wRpOWEq6.js");
2
+ const require_dist = require("../../dist-ZBXOtBdC.js");
3
3
  let node_path = require("node:path");
4
4
  node_path = require_dist.__toESM(node_path, 1);
5
5
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { _ as number, b as string, c as trainingProviderCapability, d as arrayItemFieldPath, f as globalSecretScope, g as boolean, h as toSecretFieldView, l as BaseAddon, m as isSecretMarker, p as isSecretClear, u as SECRET_CLEAR, v as object, y as record } from "../../dist-BtEl1kYQ.mjs";
1
+ import { _ as number, b as string, c as trainingProviderCapability, d as arrayItemFieldPath, f as globalSecretScope, g as boolean, h as toSecretFieldView, l as BaseAddon, m as isSecretMarker, p as isSecretClear, u as SECRET_CLEAR, v as object, y as record } from "../../dist-C7yODd9D.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import path, { dirname, posix } from "node:path";
4
4
  import { createHash, createPrivateKey, createPublicKey, createSign, randomBytes, randomUUID } from "node:crypto";
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-D0zbWJUR.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-Cp9TxI8g.mjs";
2
2
  export { t as get, e as init };
@@ -1,5 +1,5 @@
1
1
  import { S as e, _ as t, c as n, l as r, m as i, t as a, u as o, v as s } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-DeDbF7NI.mjs";
2
- import { v as c } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-LhaXEy4l.mjs";
2
+ import { v as c } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BH6lTdjB.mjs";
3
3
  import "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
4
4
  //#region ../ui-library/src/lib/shared-context.ts
5
5
  e();
@@ -2762,7 +2762,7 @@ async function or(e) {
2762
2762
  }
2763
2763
  }
2764
2764
  async function sr() {
2765
- return ir ||= or(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-DzsEYUgl.mjs")).catch((e) => {
2765
+ return ir ||= or(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-B5F2D49H.mjs")).catch((e) => {
2766
2766
  throw ir = void 0, e;
2767
2767
  }), ir;
2768
2768
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-training",
3
- "version": "0.1.42",
3
+ "version": "0.1.43",
4
4
  "description": "Cloud training for CamStack: fine-tune the root detector on your own frames, on your own GPU-cloud account",
5
5
  "keywords": [
6
6
  "camstack",