@camstack/addon-post-analysis 1.2.659 → 1.2.661
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/CHANGELOG.md +13 -0
- package/dist/{clip-model-registry-BtzUYE5M.mjs → clip-model-registry-CVajwmEk.mjs} +174 -11
- package/dist/{clip-model-registry-MIf9O34C.js → clip-model-registry-RvEPUqvS.js} +179 -10
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +2 -2
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-C4XD7qn7.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-CwKrui6c.mjs} +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BDKliSzv.mjs +26 -0
- package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BwWOFFOc.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BGdtpHOa.mjs} +1 -1
- package/dist/pipeline-analytics/{hostInit-CyiqXj1W.mjs → hostInit-DR75U6YM.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +330 -168
- package/dist/pipeline-analytics/index.mjs +330 -168
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Dfps3D5t.mjs +0 -26
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.2.661] - 2026-11-01
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- A capture request now expires exactly at its deadline instead of one millisecond after, so an abandoned confirmation crop no longer holds the head of the lane and sheds key frames.
|
|
15
|
+
- Notification templates: {{camera}} is now {{device}}. Your saved rules, timelapse captions and text overrides are rewritten once at the first start; {{camera}} keeps rendering in a template an older app still writes
|
|
16
|
+
|
|
17
|
+
## [1.2.660] - 2026-11-01
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Rebuilt against updated dependencies.
|
|
22
|
+
|
|
10
23
|
## [1.2.659] - 2026-11-01
|
|
11
24
|
|
|
12
25
|
### Changed
|
|
@@ -6537,6 +6537,53 @@ function emitReadiness(bus, params) {
|
|
|
6537
6537
|
ts
|
|
6538
6538
|
}));
|
|
6539
6539
|
}
|
|
6540
|
+
/** Why a catalogue entry is not a runnable body of its declared kind. */
|
|
6541
|
+
var AddonMigrationDefinitionError = class extends Error {
|
|
6542
|
+
id;
|
|
6543
|
+
constructor(id, message) {
|
|
6544
|
+
super(`${id}: ${message}`);
|
|
6545
|
+
this.id = id;
|
|
6546
|
+
this.name = "AddonMigrationDefinitionError";
|
|
6547
|
+
}
|
|
6548
|
+
};
|
|
6549
|
+
/**
|
|
6550
|
+
* Bind a catalogue to the addon's ports. Throws {@link AddonMigrationDefinitionError} when
|
|
6551
|
+
* an entry's `bodyKind` does not match the body it carries, or is `sql` (a hub-only
|
|
6552
|
+
* body). A throwing body never escapes `execute`: it is reported as a failed result.
|
|
6553
|
+
*/
|
|
6554
|
+
function defineAddonMigrations(catalogue, ports) {
|
|
6555
|
+
return catalogue.map((entry) => {
|
|
6556
|
+
const { meta } = entry;
|
|
6557
|
+
if ("plan" in entry) {
|
|
6558
|
+
if (meta.bodyKind !== "plan") throw new AddonMigrationDefinitionError(meta.id, `carries a plan body but declares "${meta.bodyKind}"`);
|
|
6559
|
+
return {
|
|
6560
|
+
meta,
|
|
6561
|
+
execute: () => guarded(async () => ({
|
|
6562
|
+
kind: "plan",
|
|
6563
|
+
plan: await entry.plan(ports)
|
|
6564
|
+
}))
|
|
6565
|
+
};
|
|
6566
|
+
}
|
|
6567
|
+
if (meta.bodyKind !== "procedure") throw new AddonMigrationDefinitionError(meta.id, `carries a procedure body but declares "${meta.bodyKind}"`);
|
|
6568
|
+
return {
|
|
6569
|
+
meta,
|
|
6570
|
+
execute: () => guarded(async () => ({
|
|
6571
|
+
kind: "procedure",
|
|
6572
|
+
result: await entry.procedure(ports)
|
|
6573
|
+
}))
|
|
6574
|
+
};
|
|
6575
|
+
});
|
|
6576
|
+
}
|
|
6577
|
+
async function guarded(work) {
|
|
6578
|
+
try {
|
|
6579
|
+
return await work();
|
|
6580
|
+
} catch (err) {
|
|
6581
|
+
return {
|
|
6582
|
+
kind: "failed",
|
|
6583
|
+
error: errMsg(err)
|
|
6584
|
+
};
|
|
6585
|
+
}
|
|
6586
|
+
}
|
|
6540
6587
|
var NOT_RUN = {
|
|
6541
6588
|
declared: false,
|
|
6542
6589
|
snapshot: null,
|
|
@@ -14458,7 +14505,13 @@ var MigrationLedgerEntrySchema = object({
|
|
|
14458
14505
|
/** Why it is `blocked` or `held` (`dependency-failed`, `snapshot-refused`, …). */
|
|
14459
14506
|
reason: string().nullable(),
|
|
14460
14507
|
nodeId: string().nullable(),
|
|
14461
|
-
bootId: string().nullable()
|
|
14508
|
+
bootId: string().nullable(),
|
|
14509
|
+
/**
|
|
14510
|
+
* The catalogued meta of this id (description, body kind, store, `dependsOn`…),
|
|
14511
|
+
* joined by the engine from the catalogues it knows this boot. Absent when no
|
|
14512
|
+
* catalogue lists the id (a newer database).
|
|
14513
|
+
*/
|
|
14514
|
+
meta: MigrationMetaSchema.optional()
|
|
14462
14515
|
});
|
|
14463
14516
|
/** A catalogued migration that is not applied, with where it stands. */
|
|
14464
14517
|
var MigrationPendingEntrySchema = object({
|
|
@@ -56652,17 +56705,17 @@ var NC_CONDITION_CATALOG = [
|
|
|
56652
56705
|
options: [
|
|
56653
56706
|
{
|
|
56654
56707
|
value: "",
|
|
56655
|
-
label: "
|
|
56656
|
-
hint: "Every change:
|
|
56708
|
+
label: "When it starts and when it finishes",
|
|
56709
|
+
hint: "Every change: the alert itself, and the return to normal."
|
|
56657
56710
|
},
|
|
56658
56711
|
{
|
|
56659
56712
|
value: "raised",
|
|
56660
|
-
label: "Only when it
|
|
56713
|
+
label: "Only when it starts",
|
|
56661
56714
|
hint: "Water detected, smoke, a contact opening — never the return to normal."
|
|
56662
56715
|
},
|
|
56663
56716
|
{
|
|
56664
56717
|
value: "cleared",
|
|
56665
|
-
label: "Only when it
|
|
56718
|
+
label: "Only when it finishes",
|
|
56666
56719
|
hint: "Back to dry, smoke gone, a contact closing — never the alert itself."
|
|
56667
56720
|
}
|
|
56668
56721
|
],
|
|
@@ -80630,7 +80683,7 @@ var ExternalIdentityKeySchema = object({
|
|
|
80630
80683
|
provider: string().min(1),
|
|
80631
80684
|
subject: string().min(1)
|
|
80632
80685
|
});
|
|
80633
|
-
method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserInputSchema, UserSummarySchema, {
|
|
80686
|
+
method(_void(), array(UserSummarySchema), { auth: "admin" }), method(_void(), object({ defaultPasswordInUse: boolean() }), { auth: "admin" }), method(CreateUserInputSchema, UserSummarySchema, {
|
|
80634
80687
|
kind: "mutation",
|
|
80635
80688
|
auth: "admin",
|
|
80636
80689
|
access: "create"
|
|
@@ -92985,6 +93038,13 @@ Object.freeze({
|
|
|
92985
93038
|
access: "view",
|
|
92986
93039
|
role: "admin"
|
|
92987
93040
|
},
|
|
93041
|
+
"userManagement.getAdminBootstrapStatus": {
|
|
93042
|
+
capName: "user-management",
|
|
93043
|
+
capScope: "system",
|
|
93044
|
+
addonId: null,
|
|
93045
|
+
access: "view",
|
|
93046
|
+
role: "admin"
|
|
93047
|
+
},
|
|
92988
93048
|
"userManagement.getTotpStatus": {
|
|
92989
93049
|
capName: "user-management",
|
|
92990
93050
|
capScope: "system",
|
|
@@ -98393,6 +98453,98 @@ function sensorRaisedOf(kind, value) {
|
|
|
98393
98453
|
const raw = Object.entries(value).find(([key]) => key === field)?.[1];
|
|
98394
98454
|
return typeof raw === "boolean" ? raw : void 0;
|
|
98395
98455
|
}
|
|
98456
|
+
Object.freeze({
|
|
98457
|
+
contact: {
|
|
98458
|
+
starts: {
|
|
98459
|
+
en: "opened",
|
|
98460
|
+
it: "si apre"
|
|
98461
|
+
},
|
|
98462
|
+
finishes: {
|
|
98463
|
+
en: "closed",
|
|
98464
|
+
it: "si chiude"
|
|
98465
|
+
}
|
|
98466
|
+
},
|
|
98467
|
+
"motion-sensor": {
|
|
98468
|
+
starts: {
|
|
98469
|
+
en: "motion detected",
|
|
98470
|
+
it: "movimento rilevato"
|
|
98471
|
+
},
|
|
98472
|
+
finishes: {
|
|
98473
|
+
en: "motion stopped",
|
|
98474
|
+
it: "movimento terminato"
|
|
98475
|
+
}
|
|
98476
|
+
},
|
|
98477
|
+
smoke: {
|
|
98478
|
+
starts: {
|
|
98479
|
+
en: "smoke detected",
|
|
98480
|
+
it: "fumo rilevato"
|
|
98481
|
+
},
|
|
98482
|
+
finishes: {
|
|
98483
|
+
en: "smoke gone",
|
|
98484
|
+
it: "fumo scomparso"
|
|
98485
|
+
}
|
|
98486
|
+
},
|
|
98487
|
+
flood: {
|
|
98488
|
+
starts: {
|
|
98489
|
+
en: "water detected",
|
|
98490
|
+
it: "acqua rilevata"
|
|
98491
|
+
},
|
|
98492
|
+
finishes: {
|
|
98493
|
+
en: "dry again",
|
|
98494
|
+
it: "di nuovo asciutto"
|
|
98495
|
+
}
|
|
98496
|
+
},
|
|
98497
|
+
gas: {
|
|
98498
|
+
starts: {
|
|
98499
|
+
en: "gas detected",
|
|
98500
|
+
it: "gas rilevato"
|
|
98501
|
+
},
|
|
98502
|
+
finishes: {
|
|
98503
|
+
en: "gas gone",
|
|
98504
|
+
it: "gas scomparso"
|
|
98505
|
+
}
|
|
98506
|
+
},
|
|
98507
|
+
"carbon-monoxide": {
|
|
98508
|
+
starts: {
|
|
98509
|
+
en: "carbon monoxide detected",
|
|
98510
|
+
it: "monossido rilevato"
|
|
98511
|
+
},
|
|
98512
|
+
finishes: {
|
|
98513
|
+
en: "carbon monoxide gone",
|
|
98514
|
+
it: "monossido scomparso"
|
|
98515
|
+
}
|
|
98516
|
+
},
|
|
98517
|
+
vibration: {
|
|
98518
|
+
starts: {
|
|
98519
|
+
en: "vibration detected",
|
|
98520
|
+
it: "vibrazione rilevata"
|
|
98521
|
+
},
|
|
98522
|
+
finishes: {
|
|
98523
|
+
en: "vibration stopped",
|
|
98524
|
+
it: "vibrazione terminata"
|
|
98525
|
+
}
|
|
98526
|
+
},
|
|
98527
|
+
tamper: {
|
|
98528
|
+
starts: {
|
|
98529
|
+
en: "tampered with",
|
|
98530
|
+
it: "manomesso"
|
|
98531
|
+
},
|
|
98532
|
+
finishes: {
|
|
98533
|
+
en: "tamper cleared",
|
|
98534
|
+
it: "manomissione rientrata"
|
|
98535
|
+
}
|
|
98536
|
+
},
|
|
98537
|
+
"appliance-cycle": {
|
|
98538
|
+
starts: {
|
|
98539
|
+
en: "the cycle started",
|
|
98540
|
+
it: "il ciclo parte"
|
|
98541
|
+
},
|
|
98542
|
+
finishes: {
|
|
98543
|
+
en: "the cycle finished",
|
|
98544
|
+
it: "il ciclo è terminato"
|
|
98545
|
+
}
|
|
98546
|
+
}
|
|
98547
|
+
});
|
|
98396
98548
|
/**
|
|
98397
98549
|
* An alert EPISODE as a notification subject.
|
|
98398
98550
|
*
|
|
@@ -98666,8 +98818,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
98666
98818
|
];
|
|
98667
98819
|
var NC_TEMPLATE_VARS = [
|
|
98668
98820
|
{
|
|
98669
|
-
name: "
|
|
98670
|
-
label: "
|
|
98821
|
+
name: "device",
|
|
98822
|
+
label: "Device",
|
|
98823
|
+
description: "The device the event is about: the camera for a track, the appliance or sensor for a device event.",
|
|
98671
98824
|
example: "Front door",
|
|
98672
98825
|
group: "subject",
|
|
98673
98826
|
families: ["rule", "timelapse"],
|
|
@@ -99052,6 +99205,16 @@ var NC_TEMPLATE_VARS = [
|
|
|
99052
99205
|
kinds: ["system"],
|
|
99053
99206
|
systemEventKinds: ["node-online", "node-offline"]
|
|
99054
99207
|
},
|
|
99208
|
+
{
|
|
99209
|
+
name: "graceMin",
|
|
99210
|
+
label: "Update grace (minutes)",
|
|
99211
|
+
example: "10",
|
|
99212
|
+
group: "system",
|
|
99213
|
+
families: ["rule"],
|
|
99214
|
+
fields: [...RULE_TEXT],
|
|
99215
|
+
kinds: ["system"],
|
|
99216
|
+
systemEventKinds: ["node-offline"]
|
|
99217
|
+
},
|
|
99055
99218
|
{
|
|
99056
99219
|
name: "offlineFor",
|
|
99057
99220
|
label: "Offline for",
|
|
@@ -99684,7 +99847,7 @@ function templateVarDeliveryApplies(d, ctx) {
|
|
|
99684
99847
|
* descriptor so the whole rule stays in one line of code. */
|
|
99685
99848
|
var CAPTION_VARS = {
|
|
99686
99849
|
previewText: [
|
|
99687
|
-
"
|
|
99850
|
+
"device",
|
|
99688
99851
|
"rule",
|
|
99689
99852
|
"from",
|
|
99690
99853
|
"to"
|
|
@@ -100634,7 +100797,7 @@ var TimelapseRuleInputSchema = object({
|
|
|
100634
100797
|
* before this field existed still reads "Timelapse Camera front door" and
|
|
100635
100798
|
* not the literal braces.
|
|
100636
100799
|
*/
|
|
100637
|
-
var DEFAULT_TIMELAPSE_PREVIEW_TEXT = "Timelapse {{
|
|
100800
|
+
var DEFAULT_TIMELAPSE_PREVIEW_TEXT = "Timelapse {{device}}";
|
|
100638
100801
|
/**
|
|
100639
100802
|
* Partial patch for an update — any subset of the INPUT fields, with NO
|
|
100640
100803
|
* defaults (an absent key means "leave unchanged", never "reset to default").
|
|
@@ -101758,4 +101921,4 @@ function buildClipModelRegistry(entries) {
|
|
|
101758
101921
|
/** The built-in catalog's registry. */
|
|
101759
101922
|
var BUILTIN_CLIP_MODELS = buildClipModelRegistry(CLIP_IMAGE_MODELS);
|
|
101760
101923
|
//#endregion
|
|
101761
|
-
export { MAX_TRACK_RELATIONS as $, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as $i, bundledCamstack as $n, normalizeNcAction as $r, NcTemplateVarDescriptorSchema as $t, DETECTION_MACRO_CLASSES as A,
|
|
101924
|
+
export { MAX_TRACK_RELATIONS as $, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as $i, bundledCamstack as $n, normalizeNcAction as $r, NcTemplateVarDescriptorSchema as $t, DETECTION_MACRO_CLASSES as A, strictObject as Aa, sceneMonitorCapability as Ai, TrackPuritySchema as An, isAlertEpisodeOpen as Ar, NcAlarmConfigSchema as At, EXPORT_DENSE_MAX_RANGES as B, sunTimes as Bi, alertEpisodeKind as Bn, isLabelSupplyStepId as Br, NcRuleSchema as Bt, COCO_TO_MACRO as C, discriminatedUnion as Ca, retrainRevisionConflictMessage as Ci, SetTrackRelationInputSchema as Cn, eventKindLabel as Cr, NC_GROUPING_MIN_SEC as Ct, DEFAULT_DETAIL_CROP_CONVENTION as D, object as Da, ruleDeviceCompatCapQueries as Di, TimelapseRulePatchSchema as Dn, gifDeriveSpeed as Dr, NC_SYSTEM_EVENT_KIND_GROUP_SPECS as Dt, CoverStateSchema as E, number as Ea, ruleBelongsToAlarm as Ei, TimelapseRuleInputSchema as En, failureContributionCapability as Er, NC_STATE_SUMMARY_SECTION_IDS as Et, EMBEDDING_REQUIREMENTS_FAILED as F, unknown as Fa, storageOccupancyCapability as Fi, activateAlarmProfile as Fn, isDetectionMacroClass as Fr, NcConditionDescriptorSchema as Ft, LabelAttributionSchema as G, systemEventSummaryScheduleOf as Gi, applySecureOnArmEdit as Gn, isSystemDelivery as Gr, NcSnoozeInputSchema as Gt, FULL_IMAGE_BBOX as H, systemEventDeliveryProblems as Hi, applyBlockingEdit as Hn, isRetiredClearKey as Hr, NcRuleUpdateInputSchema as Ht, EMBEDDING_REQUIREMENTS_UNAVAILABLE as I, DeviceType as Ia, subKindsOf as Ii, addonWidgetsSourceCapability as In, isDrawableSubjectPath as Ir, NcConditionsSchema as It, LockStateSchema as J, templateVarsFor as Ji, audioMetricsCapability as Jn, kebabToCamel as Jr, NcStateSummarySectionIdSchema as Jt, ListTrackRelationsInputSchema as K, systemEventSummarySplitOf as Ki, armRemovalReconcile as Kn, isSystemEventSummaryRule as Kr, NcSnoozeSchema as Kt, EVENT_DENSITY_BATCH_MAX as L, errMsg as La, subjectPathSampleFromBox as Li, alarmDeviceSecureOnArm as Ln, isEventKindLabelKey as Lr, NcRuleActionSchema as Lt, DeclaredDevices as M, templateLiteral as Ma, sensorRaisedOf as Mi, TrackRelationSchema as Mn, isAppLinkBase as Mr, NcAlarmSensorsInputSchema as Mt, DetectionSourceSchema as N, tuple as Na, servedTemplateVars as Ni, TrackSideSchema as Nn, isAudioClassName as Nr, NcAlarmSensorsSchema as Nt, DEFAULT_EVENT_COLOR as O, partialRecord as Oa, ruleGroupingApplies as Oi, TimelapseRuleSchema as On, gifFromMp4Args as Or, NC_TAXONOMY as Ot, EMBEDDING_MODEL_FAILED as P, union as Pa, startMoverUnderClearance as Pi, TrackSourceSchema as Pn, isDefaultAlarmProfileId as Pr, NcAlarmSettingsPatchSchema as Pt, MAX_TRACK_PURITIES as Q, zoneAnalyticsCapability as Qi, buildViewerLink as Qn, ncMediaPolicyError as Qr, NcTemplatePreviewSchema as Qt, EVENT_KIND_BY_CAP as R, EventCategory as Ra, subjectPathSvgPoints as Ri, alarmPanelCapability as Rn, isEventOwnerType as Rr, NcRuleInputSchema as Rt, BucketAccumulator as S, boolean as Sa, resolvePoolMemoryPolicy as Si, SetTrackPurityResultSchema as Sn, ensureAlarmProfiles as Sr, NC_GROUPING_MAX_SEC as St, ClearTrackRelationResultSchema as T, looseObject as Ta, ruleAutoTriggersAlarm as Ti, TRACK_RELATIONS_DEFAULT_LIMIT as Tn, faceGalleryCapability as Tr, NC_SNOOZE_MAX_MINUTES as Tt, FailureCounters as U, systemEventFamilyProblems as Ui, applyModeDelaysEdits as Un, isRootSuppliableStepId as Ur, NcScheduleSchema as Ut, FIRST_LEVEL_MACRO_CLASSES as V, syncActiveAlarmProfileSettings as Vi, alertEpisodePayload as Vn, isMediaOwnerType as Vr, NcRuleTargetSchema as Vt, LABEL_SUPPLY_MACRO as W, systemEventFilterApplies as Wi, applyNonBlockingEdit as Wn, isScheduleActive as Wr, NcSharedSequenceSchema as Wt, MAX_BIRTH_DECISION_RECORDS as X, viewerLinkBaseOf as Xi, buildEventKindDescriptor as Xn, mayWriteToLocation as Xr, NcTaxonomySchema as Xt, MAX_ARCHIVED_DEBUG_NOTES as Y, vectorDimFromBase64 as Yi, audioModeOf as Yn, linkedStepOf as Yr, NcSystemEventKindSchema as Yt, MAX_BIRTH_LATENCY_PROXY_MS as Z, withSystemEventClasses as Zi, buildSubjectPath as Zn, memoizePinnedFfmpeg as Zr, NcTemplatePreviewInputSchema as Zt, AlarmArmModeSchema as _, normalizeNodeId as _a, resolveDeliveryParams as _i, SCENE_DEFAULT_UNCOVERED_POLICY as _n, embeddingModelFailedError as _r, NC_CONFIRM_DEFAULT_TIMEOUT_MS as _t, CLIP_EMBEDDING_STEP_ID as a, CamProfileSchema as aa, paletteResultSchema as ai, RECORDING_SOURCE_CAMSTACK_ADDON as an, coreBlockIdFromAddonId as ar, NC_ALARM_DELAY_FIELDS as at, BaseDevice as b, _enum as ba, resolveModeNotifyPolicy as bi, SceneMonitorSchema as bn, embeddingRequirementsUnavailableError as br, NC_DEFAULT_SNOOZE_MINUTES as bt, readClusterModelPinStrict as c, RECORD_QUERY_MAX as ca, pickFaceRescoreIntervalMinutes as ci, RetrainOriginSchema as cn, deleteAlarmProfile as cr, NC_ALARM_SYSTEM_EVENT_KINDS as ct, APPEARANCE_BIN_COUNT as d, defineAddonMigrations as da, projectSubjectPath as di, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX as dn, deriveRecordingMode as dr, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT as dt, canonicalHash as ea, normalizeNcCapTarget as ei, OPS_LOG_DEFAULT_LIMIT as en, calendarEventLocalSpan as er, MOTION_CLOSE_AFTER_MS as et, APPEARANCE_BLOCKS as f, defineCustomActions as fa, readDeviceStateFrom as fi, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as fn, describeSystemEventDeliveryProblem as fr, NC_CLIP_POST_ROLL_DEFAULT_SEC as ft, ActionTargetResolver as g, nodePin as ga, resolveClipSearchMinScore as gi, SCENE_DEFAULT_QUIET_SECONDS as gn, embeddingEncoderCapability as gr, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX as gt, AUDIO_MACRO_LABELS as h, isDeviceScopedCap as ha, renameAlarmProfile as hi, SCENE_DEFAULT_OBSERVATION_SPACING_SEC as hn, deviceRemovalHookCapability as hr, NC_CONDITION_CATALOG as ht, CLIP_TEXT_MODELS as i, CAP_ADVANCE_FIELDS as ia, paintHex as ii, RECORDING_EXPORT_MAX_READ_BYTES as in, consumableLowPercentOf as ir, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC as it, DETECTION_PIPELINE_CAP_NAME as j, string as ja, secureActuationFor as ji, TrackRelationKindSchema as jn, isAlertEpisodeSeverity as jr, NcAlarmPostTriggeredActionSchema as jt, DEFAULT_TIMELAPSE_PREVIEW_TEXT as k, record as ka, ruleKindOf as ki, TrackPlacementSchema as kn, isAlarmControllableCap as kr, NC_TEMPLATE_VARS as kt, resolveClusterModelPin as l, createEvent as la, pipelineAnalyticsCapability as li, RetrainStatusSchema as ln, deriveDetailCropRect as lr, NC_ALARM_TRIGGERED_MAX_SEC as lt, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT as m, hydrateSchema as ma, readTimelapseGeneratedAt as mi, SCENE_DEFAULT_CHECK_INTERVAL_SEC as mn, deviceAttentionKind as mr, NC_CLIP_RETENTION_MAX_SEC as mt, DEFAULT_CLIP_MODEL as n, isSourceCap as na, notificationRulesCapability as ni, PackageLlmVerdictSchema as nn, cloneAlarmSettings as nr, MotionTriggeredBySchema as nt, CLUSTER_MODEL_OWNER_ADDON_ID as o, InvalidRecordError as oa, parseAlertEpisodePayload as oi, RebuildObjectEmbeddingsRefusalSchema as on, cosineSimilarity as or, NC_ALARM_DELAY_MAX_SEC as ot, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT as p, defineRecordKinds as pa, readMotionTriggeredBy as pi, SCENE_DEFAULT_ANCHOR_THRESHOLD as pn, describeSystemEventFamilyProblem as pr, NC_CLIP_PRE_ROLL_DEFAULT_SEC as pt, ListTrackRelationsResultSchema as q, templateCarriesSummary as qi, assertTimelapseCadences as qn, isVectorIndexDimConflict as qr, NcSnoozeSuppressedSchema as qt, CLIP_IMAGE_MODELS as r, BaseAddon as ra, occupancyScope as ri, PoolMemoryWatchdog as rn, consumableFormOf as rr, NC_ALARM_DEFAULT_PROFILE_ID as rt, FACE_EMBEDDING_STEP_ID as s, RECORD_MAX_DATA_BYTES as sa, parseProcStatus as si, RetrainDismissedSchema as sn, createAlarmProfile as sr, NC_ALARM_NOTIFY_FIELDS as st, BUILTIN_CLIP_MODELS as t, evaluateSensorEdge as ta, normalizeNcMediaPolicy as ti, OpsLogEntrySchema as tn, classifyRetrainReview as tr, MediaFileKindEnum as tt, ACTION_TARGET_INVALIDATION_EVENTS as u, customAction as ua, plateGalleryCapability as ui, RetrainVerdictSubjectSchema as un, derivePostTriggeredAction as ur, NC_AUDIO_CONFIRM_HITS_DEFAULT as ut, ArchivedDebugNoteSchema as v, sleep as va, resolveLocationMode as vi, SCENE_DIVERGED as vn, embeddingRefusalOf as vr, NC_CONSUMABLE_LOW_PERCENT_DEFAULT as vt, ClearTrackRelationInputSchema as w, literal as wa, rootSupplyServes as wi, TIMELAPSE_DENSE_FLOOR_SEC as wn, evictionPolicyOfLocation as wr, NC_SENSOR_TRANSITION_KINDS as wt, BirthDecisionRecordSchema as x, array as xa, resolveNcMediaImage as xi, SetTrackPurityInputSchema as xn, encodeVectorBase64 as xr, NC_GROUPING_DEFAULT_SEC as xt, BIRTH_DECISION_DEFAULT_LIMIT as y, ZodObject as ya, resolveModeDelays as yi, SCENE_RESET_RECAPTURES as yn, embeddingRequirementsFailedError as yr, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as yt, EVENT_OWNER_TYPES as z, summarizeReview as zi, alertEpisodeId as zn, isKnownTemplateVar as zr, NcRulePatchSchema as zt };
|
|
@@ -6568,6 +6568,53 @@ function emitReadiness(bus, params) {
|
|
|
6568
6568
|
ts
|
|
6569
6569
|
}));
|
|
6570
6570
|
}
|
|
6571
|
+
/** Why a catalogue entry is not a runnable body of its declared kind. */
|
|
6572
|
+
var AddonMigrationDefinitionError = class extends Error {
|
|
6573
|
+
id;
|
|
6574
|
+
constructor(id, message) {
|
|
6575
|
+
super(`${id}: ${message}`);
|
|
6576
|
+
this.id = id;
|
|
6577
|
+
this.name = "AddonMigrationDefinitionError";
|
|
6578
|
+
}
|
|
6579
|
+
};
|
|
6580
|
+
/**
|
|
6581
|
+
* Bind a catalogue to the addon's ports. Throws {@link AddonMigrationDefinitionError} when
|
|
6582
|
+
* an entry's `bodyKind` does not match the body it carries, or is `sql` (a hub-only
|
|
6583
|
+
* body). A throwing body never escapes `execute`: it is reported as a failed result.
|
|
6584
|
+
*/
|
|
6585
|
+
function defineAddonMigrations(catalogue, ports) {
|
|
6586
|
+
return catalogue.map((entry) => {
|
|
6587
|
+
const { meta } = entry;
|
|
6588
|
+
if ("plan" in entry) {
|
|
6589
|
+
if (meta.bodyKind !== "plan") throw new AddonMigrationDefinitionError(meta.id, `carries a plan body but declares "${meta.bodyKind}"`);
|
|
6590
|
+
return {
|
|
6591
|
+
meta,
|
|
6592
|
+
execute: () => guarded(async () => ({
|
|
6593
|
+
kind: "plan",
|
|
6594
|
+
plan: await entry.plan(ports)
|
|
6595
|
+
}))
|
|
6596
|
+
};
|
|
6597
|
+
}
|
|
6598
|
+
if (meta.bodyKind !== "procedure") throw new AddonMigrationDefinitionError(meta.id, `carries a procedure body but declares "${meta.bodyKind}"`);
|
|
6599
|
+
return {
|
|
6600
|
+
meta,
|
|
6601
|
+
execute: () => guarded(async () => ({
|
|
6602
|
+
kind: "procedure",
|
|
6603
|
+
result: await entry.procedure(ports)
|
|
6604
|
+
}))
|
|
6605
|
+
};
|
|
6606
|
+
});
|
|
6607
|
+
}
|
|
6608
|
+
async function guarded(work) {
|
|
6609
|
+
try {
|
|
6610
|
+
return await work();
|
|
6611
|
+
} catch (err) {
|
|
6612
|
+
return {
|
|
6613
|
+
kind: "failed",
|
|
6614
|
+
error: errMsg(err)
|
|
6615
|
+
};
|
|
6616
|
+
}
|
|
6617
|
+
}
|
|
6571
6618
|
var NOT_RUN = {
|
|
6572
6619
|
declared: false,
|
|
6573
6620
|
snapshot: null,
|
|
@@ -14489,7 +14536,13 @@ var MigrationLedgerEntrySchema = object({
|
|
|
14489
14536
|
/** Why it is `blocked` or `held` (`dependency-failed`, `snapshot-refused`, …). */
|
|
14490
14537
|
reason: string().nullable(),
|
|
14491
14538
|
nodeId: string().nullable(),
|
|
14492
|
-
bootId: string().nullable()
|
|
14539
|
+
bootId: string().nullable(),
|
|
14540
|
+
/**
|
|
14541
|
+
* The catalogued meta of this id (description, body kind, store, `dependsOn`…),
|
|
14542
|
+
* joined by the engine from the catalogues it knows this boot. Absent when no
|
|
14543
|
+
* catalogue lists the id (a newer database).
|
|
14544
|
+
*/
|
|
14545
|
+
meta: MigrationMetaSchema.optional()
|
|
14493
14546
|
});
|
|
14494
14547
|
/** A catalogued migration that is not applied, with where it stands. */
|
|
14495
14548
|
var MigrationPendingEntrySchema = object({
|
|
@@ -56683,17 +56736,17 @@ var NC_CONDITION_CATALOG = [
|
|
|
56683
56736
|
options: [
|
|
56684
56737
|
{
|
|
56685
56738
|
value: "",
|
|
56686
|
-
label: "
|
|
56687
|
-
hint: "Every change:
|
|
56739
|
+
label: "When it starts and when it finishes",
|
|
56740
|
+
hint: "Every change: the alert itself, and the return to normal."
|
|
56688
56741
|
},
|
|
56689
56742
|
{
|
|
56690
56743
|
value: "raised",
|
|
56691
|
-
label: "Only when it
|
|
56744
|
+
label: "Only when it starts",
|
|
56692
56745
|
hint: "Water detected, smoke, a contact opening — never the return to normal."
|
|
56693
56746
|
},
|
|
56694
56747
|
{
|
|
56695
56748
|
value: "cleared",
|
|
56696
|
-
label: "Only when it
|
|
56749
|
+
label: "Only when it finishes",
|
|
56697
56750
|
hint: "Back to dry, smoke gone, a contact closing — never the alert itself."
|
|
56698
56751
|
}
|
|
56699
56752
|
],
|
|
@@ -80661,7 +80714,7 @@ var ExternalIdentityKeySchema = object({
|
|
|
80661
80714
|
provider: string().min(1),
|
|
80662
80715
|
subject: string().min(1)
|
|
80663
80716
|
});
|
|
80664
|
-
method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserInputSchema, UserSummarySchema, {
|
|
80717
|
+
method(_void(), array(UserSummarySchema), { auth: "admin" }), method(_void(), object({ defaultPasswordInUse: boolean() }), { auth: "admin" }), method(CreateUserInputSchema, UserSummarySchema, {
|
|
80665
80718
|
kind: "mutation",
|
|
80666
80719
|
auth: "admin",
|
|
80667
80720
|
access: "create"
|
|
@@ -93016,6 +93069,13 @@ Object.freeze({
|
|
|
93016
93069
|
access: "view",
|
|
93017
93070
|
role: "admin"
|
|
93018
93071
|
},
|
|
93072
|
+
"userManagement.getAdminBootstrapStatus": {
|
|
93073
|
+
capName: "user-management",
|
|
93074
|
+
capScope: "system",
|
|
93075
|
+
addonId: null,
|
|
93076
|
+
access: "view",
|
|
93077
|
+
role: "admin"
|
|
93078
|
+
},
|
|
93019
93079
|
"userManagement.getTotpStatus": {
|
|
93020
93080
|
capName: "user-management",
|
|
93021
93081
|
capScope: "system",
|
|
@@ -98424,6 +98484,98 @@ function sensorRaisedOf(kind, value) {
|
|
|
98424
98484
|
const raw = Object.entries(value).find(([key]) => key === field)?.[1];
|
|
98425
98485
|
return typeof raw === "boolean" ? raw : void 0;
|
|
98426
98486
|
}
|
|
98487
|
+
Object.freeze({
|
|
98488
|
+
contact: {
|
|
98489
|
+
starts: {
|
|
98490
|
+
en: "opened",
|
|
98491
|
+
it: "si apre"
|
|
98492
|
+
},
|
|
98493
|
+
finishes: {
|
|
98494
|
+
en: "closed",
|
|
98495
|
+
it: "si chiude"
|
|
98496
|
+
}
|
|
98497
|
+
},
|
|
98498
|
+
"motion-sensor": {
|
|
98499
|
+
starts: {
|
|
98500
|
+
en: "motion detected",
|
|
98501
|
+
it: "movimento rilevato"
|
|
98502
|
+
},
|
|
98503
|
+
finishes: {
|
|
98504
|
+
en: "motion stopped",
|
|
98505
|
+
it: "movimento terminato"
|
|
98506
|
+
}
|
|
98507
|
+
},
|
|
98508
|
+
smoke: {
|
|
98509
|
+
starts: {
|
|
98510
|
+
en: "smoke detected",
|
|
98511
|
+
it: "fumo rilevato"
|
|
98512
|
+
},
|
|
98513
|
+
finishes: {
|
|
98514
|
+
en: "smoke gone",
|
|
98515
|
+
it: "fumo scomparso"
|
|
98516
|
+
}
|
|
98517
|
+
},
|
|
98518
|
+
flood: {
|
|
98519
|
+
starts: {
|
|
98520
|
+
en: "water detected",
|
|
98521
|
+
it: "acqua rilevata"
|
|
98522
|
+
},
|
|
98523
|
+
finishes: {
|
|
98524
|
+
en: "dry again",
|
|
98525
|
+
it: "di nuovo asciutto"
|
|
98526
|
+
}
|
|
98527
|
+
},
|
|
98528
|
+
gas: {
|
|
98529
|
+
starts: {
|
|
98530
|
+
en: "gas detected",
|
|
98531
|
+
it: "gas rilevato"
|
|
98532
|
+
},
|
|
98533
|
+
finishes: {
|
|
98534
|
+
en: "gas gone",
|
|
98535
|
+
it: "gas scomparso"
|
|
98536
|
+
}
|
|
98537
|
+
},
|
|
98538
|
+
"carbon-monoxide": {
|
|
98539
|
+
starts: {
|
|
98540
|
+
en: "carbon monoxide detected",
|
|
98541
|
+
it: "monossido rilevato"
|
|
98542
|
+
},
|
|
98543
|
+
finishes: {
|
|
98544
|
+
en: "carbon monoxide gone",
|
|
98545
|
+
it: "monossido scomparso"
|
|
98546
|
+
}
|
|
98547
|
+
},
|
|
98548
|
+
vibration: {
|
|
98549
|
+
starts: {
|
|
98550
|
+
en: "vibration detected",
|
|
98551
|
+
it: "vibrazione rilevata"
|
|
98552
|
+
},
|
|
98553
|
+
finishes: {
|
|
98554
|
+
en: "vibration stopped",
|
|
98555
|
+
it: "vibrazione terminata"
|
|
98556
|
+
}
|
|
98557
|
+
},
|
|
98558
|
+
tamper: {
|
|
98559
|
+
starts: {
|
|
98560
|
+
en: "tampered with",
|
|
98561
|
+
it: "manomesso"
|
|
98562
|
+
},
|
|
98563
|
+
finishes: {
|
|
98564
|
+
en: "tamper cleared",
|
|
98565
|
+
it: "manomissione rientrata"
|
|
98566
|
+
}
|
|
98567
|
+
},
|
|
98568
|
+
"appliance-cycle": {
|
|
98569
|
+
starts: {
|
|
98570
|
+
en: "the cycle started",
|
|
98571
|
+
it: "il ciclo parte"
|
|
98572
|
+
},
|
|
98573
|
+
finishes: {
|
|
98574
|
+
en: "the cycle finished",
|
|
98575
|
+
it: "il ciclo è terminato"
|
|
98576
|
+
}
|
|
98577
|
+
}
|
|
98578
|
+
});
|
|
98427
98579
|
/**
|
|
98428
98580
|
* An alert EPISODE as a notification subject.
|
|
98429
98581
|
*
|
|
@@ -98697,8 +98849,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
98697
98849
|
];
|
|
98698
98850
|
var NC_TEMPLATE_VARS = [
|
|
98699
98851
|
{
|
|
98700
|
-
name: "
|
|
98701
|
-
label: "
|
|
98852
|
+
name: "device",
|
|
98853
|
+
label: "Device",
|
|
98854
|
+
description: "The device the event is about: the camera for a track, the appliance or sensor for a device event.",
|
|
98702
98855
|
example: "Front door",
|
|
98703
98856
|
group: "subject",
|
|
98704
98857
|
families: ["rule", "timelapse"],
|
|
@@ -99083,6 +99236,16 @@ var NC_TEMPLATE_VARS = [
|
|
|
99083
99236
|
kinds: ["system"],
|
|
99084
99237
|
systemEventKinds: ["node-online", "node-offline"]
|
|
99085
99238
|
},
|
|
99239
|
+
{
|
|
99240
|
+
name: "graceMin",
|
|
99241
|
+
label: "Update grace (minutes)",
|
|
99242
|
+
example: "10",
|
|
99243
|
+
group: "system",
|
|
99244
|
+
families: ["rule"],
|
|
99245
|
+
fields: [...RULE_TEXT],
|
|
99246
|
+
kinds: ["system"],
|
|
99247
|
+
systemEventKinds: ["node-offline"]
|
|
99248
|
+
},
|
|
99086
99249
|
{
|
|
99087
99250
|
name: "offlineFor",
|
|
99088
99251
|
label: "Offline for",
|
|
@@ -99715,7 +99878,7 @@ function templateVarDeliveryApplies(d, ctx) {
|
|
|
99715
99878
|
* descriptor so the whole rule stays in one line of code. */
|
|
99716
99879
|
var CAPTION_VARS = {
|
|
99717
99880
|
previewText: [
|
|
99718
|
-
"
|
|
99881
|
+
"device",
|
|
99719
99882
|
"rule",
|
|
99720
99883
|
"from",
|
|
99721
99884
|
"to"
|
|
@@ -100665,7 +100828,7 @@ var TimelapseRuleInputSchema = object({
|
|
|
100665
100828
|
* before this field existed still reads "Timelapse Camera front door" and
|
|
100666
100829
|
* not the literal braces.
|
|
100667
100830
|
*/
|
|
100668
|
-
var DEFAULT_TIMELAPSE_PREVIEW_TEXT = "Timelapse {{
|
|
100831
|
+
var DEFAULT_TIMELAPSE_PREVIEW_TEXT = "Timelapse {{device}}";
|
|
100669
100832
|
/**
|
|
100670
100833
|
* Partial patch for an update — any subset of the INPUT fields, with NO
|
|
100671
100834
|
* defaults (an absent key means "leave unchanged", never "reset to default").
|
|
@@ -102899,6 +103062,12 @@ Object.defineProperty(exports, "customAction", {
|
|
|
102899
103062
|
return customAction;
|
|
102900
103063
|
}
|
|
102901
103064
|
});
|
|
103065
|
+
Object.defineProperty(exports, "defineAddonMigrations", {
|
|
103066
|
+
enumerable: true,
|
|
103067
|
+
get: function() {
|
|
103068
|
+
return defineAddonMigrations;
|
|
103069
|
+
}
|
|
103070
|
+
});
|
|
102902
103071
|
Object.defineProperty(exports, "defineCustomActions", {
|
|
102903
103072
|
enumerable: true,
|
|
102904
103073
|
get: function() {
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_clip_model_registry = require("../clip-model-registry-
|
|
5
|
+
const require_clip_model_registry = require("../clip-model-registry-RvEPUqvS.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
node_fs = require_clip_model_registry.__toESM(node_fs);
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Si as resolvePoolMemoryPolicy, _r as embeddingModelFailedError, a as CLIP_EMBEDDING_STEP_ID, br as embeddingRequirementsUnavailableError,
|
|
1
|
+
import { Si as resolvePoolMemoryPolicy, _a as normalizeNodeId, _r as embeddingModelFailedError, a as CLIP_EMBEDDING_STEP_ID, br as embeddingRequirementsUnavailableError, gr as embeddingEncoderCapability, i as CLIP_TEXT_MODELS, l as resolveClusterModelPin, n as DEFAULT_CLIP_MODEL, r as CLIP_IMAGE_MODELS, ra as BaseAddon, rn as PoolMemoryWatchdog, si as parseProcStatus, t as BUILTIN_CLIP_MODELS, yr as embeddingRequirementsFailedError } from "../clip-model-registry-CVajwmEk.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react__loadShare__.js-Cx9AsA5q.mjs";
|
|
2
2
|
import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
|
|
3
|
-
import { a as s, c, d as l, f as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-
|
|
3
|
+
import { a as s, c, d as l, f as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BGdtpHOa.mjs";
|
|
4
4
|
import { n as x, t as S } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-CkwmHEi0.mjs";
|
|
5
|
-
import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
5
|
+
import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BDKliSzv.mjs";
|
|
6
6
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
7
7
|
var w = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), T = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), E = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), D = (e) => {
|
|
8
8
|
let t = E(e);
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.468",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.2.
|
|
36
|
+
version: "1.2.367",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|