@camstack/addon-post-analysis 1.2.310 → 1.2.312

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 (14) hide show
  1. package/dist/{clip-model-registry-xYrJkXdS.js → clip-model-registry-CRkjjUyj.js} +257 -18
  2. package/dist/{clip-model-registry-BROqj9pS.mjs → clip-model-registry-ivwvxxex.mjs} +210 -19
  3. package/dist/embedding-encoder/index.js +1 -1
  4. package/dist/embedding-encoder/index.mjs +1 -1
  5. package/dist/pipeline-analytics/_stub.js +2 -2
  6. package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-KF5Fk8sD.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BocOElW2.mjs} +2 -2
  7. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Ds6vT2FJ.mjs +26 -0
  8. package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B8qeS8Da.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B_KS96RA.mjs} +1 -1
  9. package/dist/pipeline-analytics/{hostInit-B3xcTHUM.mjs → hostInit-CRloCh1h.mjs} +2 -2
  10. package/dist/pipeline-analytics/index.js +413 -31
  11. package/dist/pipeline-analytics/index.mjs +413 -31
  12. package/dist/pipeline-analytics/remoteEntry.js +1 -1
  13. package/package.json +1 -1
  14. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DytyGNZ-.mjs +0 -26
@@ -941,7 +941,7 @@ var NUMBER_FORMAT_RANGES = {
941
941
  float32: [-34028234663852886e22, 34028234663852886e22],
942
942
  float64: [-Number.MAX_VALUE, Number.MAX_VALUE]
943
943
  };
944
- function pick(schema, mask) {
944
+ function pick$1(schema, mask) {
945
945
  const currDef = schema._zod.def;
946
946
  const checks = currDef.checks;
947
947
  if (checks && checks.length > 0) throw new Error(".pick() cannot be used on object schemas containing refinements");
@@ -5011,7 +5011,7 @@ var ZodObject = /*@__PURE__*/ $constructor("ZodObject", (inst, def) => {
5011
5011
  return merge(this, other);
5012
5012
  },
5013
5013
  pick(mask) {
5014
- return pick(this, mask);
5014
+ return pick$1(this, mask);
5015
5015
  },
5016
5016
  omit(mask) {
5017
5017
  return omit(this, mask);
@@ -15662,7 +15662,17 @@ var SiteZoneSchema = object({
15662
15662
  var ProviderStatusSchema = object({
15663
15663
  connected: boolean(),
15664
15664
  deviceCount: number(),
15665
- error: string().optional()
15665
+ error: string().optional(),
15666
+ /**
15667
+ * `'orchestrator'`: this provider writes NO camera's `motion` runtime slice
15668
+ * — the orchestrator is its only writer (D696). Set by `BaseDeviceProvider`,
15669
+ * which every provider bundles, so only a provider BUILT from D696-amended
15670
+ * code says it. ABSENT means an older provider that may still write it (raw
15671
+ * VMD writes, a boot seed), and the orchestrator's provider gate keeps that
15672
+ * provider's cameras unwritten (`camera-sensors/motion-slice-provider-gate.ts`)
15673
+ * — the provider twin of the runner's `getLocalLoad().motionSliceWriter`.
15674
+ */
15675
+ motionSliceWriter: literal("orchestrator").optional()
15666
15676
  });
15667
15677
  object({
15668
15678
  externalId: string(),
@@ -21758,6 +21768,31 @@ var NcSnoozeSuppressedSchema = object({
21758
21768
  firstAt: number(),
21759
21769
  lastAt: number()
21760
21770
  });
21771
+ /** The bounds every alarm delay field carries — settings, per-mode overrides, both editors. */
21772
+ var NC_ALARM_DELAY_MAX_SEC = 600;
21773
+ var NC_ALARM_TRIGGERED_MAX_SEC = 3600;
21774
+ var NcAlarmDelaySecSchema = number().int().min(0).max(600);
21775
+ var NcAlarmTriggeredSecSchema = number().int().min(0).max(NC_ALARM_TRIGGERED_MAX_SEC);
21776
+ var uniqueModes = (entries) => new Set(entries.map((e) => e.mode)).size === entries.length;
21777
+ var NcAlarmModeDelaysListSchema = array(object({
21778
+ mode: AlarmArmModeSchema,
21779
+ exitDelaySec: NcAlarmDelaySecSchema.optional(),
21780
+ entryDelaySec: NcAlarmDelaySecSchema.optional(),
21781
+ triggeredDurationSec: NcAlarmTriggeredSecSchema.optional()
21782
+ })).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
21783
+ var NcAlarmModeDelaysEditListSchema = array(object({
21784
+ mode: AlarmArmModeSchema,
21785
+ exitDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
21786
+ entryDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
21787
+ triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional()
21788
+ })).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
21789
+ /** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
21790
+ var NcAlarmNonBlockingEditSchema = object({
21791
+ mode: AlarmArmModeSchema,
21792
+ deviceId: number().int().positive(),
21793
+ /** true = on the list (may be open, does not block); false = off the list (blocks). */
21794
+ nonBlocking: boolean()
21795
+ });
21761
21796
  /**
21762
21797
  * The per-mode lists, at most one per mode. Two lists for one mode have no
21763
21798
  * meaning a reader could agree on (union? the last one?), so they are refused
@@ -21766,10 +21801,10 @@ var NcSnoozeSuppressedSchema = object({
21766
21801
  var NcAlarmNonBlockingListSchema = array(object({
21767
21802
  mode: AlarmArmModeSchema,
21768
21803
  deviceIds: array(number().int()).max(200)
21769
- })).max(8).refine((lists) => new Set(lists.map((l) => l.mode)).size === lists.length, { message: "nonBlocking: at most one list per arm mode" });
21804
+ })).max(8).refine(uniqueModes, { message: "nonBlocking: at most one list per arm mode" });
21770
21805
  /**
21771
- * The three durations the panel's state machine runs on, who hears about its
21772
- * transitions, and which openings each mode tolerates.
21806
+ * The three durations — global, and per mode since D697 — the panel's state
21807
+ * machine runs on, who hears about its transitions, and which openings each mode tolerates.
21773
21808
  *
21774
21809
  * They live on the NOTIFICATION-RULES cap, not on `alarm-panel`, on purpose:
21775
21810
  * `alarm-panel` is `deviceNative` and its other provider mirrors somebody
@@ -21779,15 +21814,15 @@ var NcAlarmNonBlockingListSchema = array(object({
21779
21814
  */
21780
21815
  var NcAlarmSettingsSchema = object({
21781
21816
  /** Grace period between arming and the mode taking effect. 0 = immediate. */
21782
- exitDelaySec: number().int().min(0).max(600),
21817
+ exitDelaySec: NcAlarmDelaySecSchema,
21783
21818
  /** Grace period between a trigger and the alarm firing. 0 = immediate. */
21784
- entryDelaySec: number().int().min(0).max(600),
21819
+ entryDelaySec: NcAlarmDelaySecSchema,
21785
21820
  /**
21786
21821
  * How long `triggered` lasts before the panel re-arms itself.
21787
21822
  * **0 = until an operator disarms it** — the behaviour before this field
21788
21823
  * existed, and therefore what an untouched install keeps doing.
21789
21824
  */
21790
- triggeredDurationSec: number().int().min(0).max(3600),
21825
+ triggeredDurationSec: NcAlarmTriggeredSecSchema,
21791
21826
  /**
21792
21827
  * Deprecated by D630 — every transition is announced. Parsed, never read;
21793
21828
  * remove after one release. Optional so an older admin's patch (which still
@@ -21810,17 +21845,30 @@ var NcAlarmSettingsSchema = object({
21810
21845
  * per mode is meaningful. Defaulted to `[]` so a blob stored before D630
21811
21846
  * parses as "every opening blocks" — the behaviour it was written under.
21812
21847
  */
21813
- nonBlocking: NcAlarmNonBlockingListSchema.default([])
21848
+ nonBlocking: NcAlarmNonBlockingListSchema.default([]),
21849
+ /**
21850
+ * Per arm mode, the delays that mode OVERRIDES (D697). A mode with no entry, or an entry
21851
+ * without a field, uses the global value above — so `[]`, the default, is exactly the
21852
+ * behaviour of a blob stored before this field existed. Read through `resolveModeDelays`.
21853
+ */
21854
+ modeDelays: NcAlarmModeDelaysListSchema.default([])
21814
21855
  });
21815
21856
  /**
21816
21857
  * Every field optional — a tab edits one control at a time.
21817
21858
  *
21818
- * `nonBlocking` is re-declared WITHOUT its default: `.partial()` does not
21819
- * remove an inner `.default()`, so a patch that never named the field would
21820
- * parse to `nonBlocking: []` and wipe every mode's list on an unrelated edit
21821
- * (the same trap {@link NcRulePatchSchema} documents).
21859
+ * `nonBlocking` and `modeDelays` are re-declared WITHOUT their defaults:
21860
+ * `.partial()` does not remove an inner `.default()`, so a patch that never
21861
+ * named the field would parse to `[]` and wipe every mode's list on an
21862
+ * unrelated edit (the same trap {@link NcRulePatchSchema} documents). Here
21863
+ * `modeDelays` means EDITS, not the stored overrides.
21822
21864
  */
21823
- var NcAlarmSettingsPatchSchema = NcAlarmSettingsSchema.extend({ nonBlocking: NcAlarmNonBlockingListSchema }).partial();
21865
+ var NcAlarmSettingsPatchSchema = NcAlarmSettingsSchema.extend({
21866
+ nonBlocking: NcAlarmNonBlockingListSchema,
21867
+ /** Per-mode, per-field edits — NOT the whole list (see NcAlarmModeDelaysEditSchema). */
21868
+ modeDelays: NcAlarmModeDelaysEditListSchema,
21869
+ /** ONE membership change; the panel applies it to the list it holds at its turn. */
21870
+ nonBlockingEdit: NcAlarmNonBlockingEditSchema
21871
+ }).partial().refine((p) => p.nonBlocking === void 0 || p.nonBlockingEdit === void 0, { message: "nonBlocking and nonBlockingEdit are exclusive — send the whole lists or one edit" });
21824
21872
  /**
21825
21873
  * What one arm mode actually arms, DERIVED from the enabled rules gated on it.
21826
21874
  * Never authored, never stored — see `alarm-mode-coverage.ts` for why a stored
@@ -21920,6 +21968,28 @@ var NcAlarmConfigSchema = object({
21920
21968
  */
21921
21969
  live: NcAlarmLiveSchema.optional()
21922
21970
  });
21971
+ var NcAlarmSensorReadingSchema = _enum([
21972
+ "open",
21973
+ "closed",
21974
+ "unknown",
21975
+ "not-opening"
21976
+ ]);
21977
+ /** One device's state as the alarm reads it — the classifier the arm check uses. */
21978
+ var NcAlarmSensorStateSchema = object({
21979
+ deviceId: number().int().positive(),
21980
+ reading: NcAlarmSensorReadingSchema,
21981
+ /** The word as read (`open`, `closed`, `unlocked`, `stopped`, …); null when unknown / not an opening. */
21982
+ state: string().nullable(),
21983
+ /** Why `unknown`: the read failed, or the slice holds no word its cap defines (a placeholder included). */
21984
+ unknownWhy: _enum(["read-failed", "unknown-word"]).nullable(),
21985
+ /** The device manager's liveness as the centre mirrors it; null = not known. */
21986
+ online: boolean().nullable()
21987
+ });
21988
+ var NcAlarmSensorsInputSchema = object({ deviceIds: array(number().int().positive()).max(500) });
21989
+ var NcAlarmSensorsSchema = object({
21990
+ sensors: array(NcAlarmSensorStateSchema),
21991
+ readAt: number().int().nonnegative()
21992
+ });
21923
21993
  /**
21924
21994
  * The most seconds of footage any notification rule may ask a camera to retain.
21925
21995
  *
@@ -22179,8 +22249,9 @@ var notificationRulesCapability = {
22179
22249
  */
22180
22250
  getAlarmConfig: method(object({}), NcAlarmConfigSchema, { auth: "admin" }),
22181
22251
  /**
22182
- * Patch the settings (durations, recipients, per-mode non-blocking lists;
22183
- * `announceArm` is accepted and ignored — D630). Returns the WHOLE config,
22252
+ * Patch the settings (durations — global and per mode —, recipients,
22253
+ * per-mode non-blocking lists or one membership edit; `announceArm` is
22254
+ * accepted and ignored — D630). Returns the WHOLE config,
22184
22255
  * coverage and `live` included, so a
22185
22256
  * client never has to guess what the server settled on — the panel clamps
22186
22257
  * and normalises, and a form that re-rendered from its own input would
@@ -22189,7 +22260,15 @@ var notificationRulesCapability = {
22189
22260
  setAlarmConfig: method(object({ patch: NcAlarmSettingsPatchSchema }), NcAlarmConfigSchema, {
22190
22261
  kind: "mutation",
22191
22262
  auth: "admin"
22192
- })
22263
+ }),
22264
+ /**
22265
+ * The CURRENT state of each asked device as the alarm reads it (D697) — open, closed,
22266
+ * unknown (why) or not an opening, plus liveness. Classified by the same table the arm
22267
+ * check uses (`alarm-openings.ts`), so the editor and the arm can never disagree. The
22268
+ * caller names the ids (the household openings it already holds); at most
22269
+ * `NC_ALARM_SENSORS_MAX`.
22270
+ */
22271
+ getAlarmSensors: method(NcAlarmSensorsInputSchema, NcAlarmSensorsSchema, { auth: "admin" })
22193
22272
  }
22194
22273
  };
22195
22274
  /**
@@ -47464,6 +47543,12 @@ Object.freeze({
47464
47543
  addonId: null,
47465
47544
  access: "view"
47466
47545
  },
47546
+ "notificationRules.getAlarmSensors": {
47547
+ capName: "notification-rules",
47548
+ capScope: "system",
47549
+ addonId: null,
47550
+ access: "view"
47551
+ },
47467
47552
  "notificationRules.getClipRetentionAsks": {
47468
47553
  capName: "notification-rules",
47469
47554
  capScope: "system",
@@ -51947,6 +52032,11 @@ Object.freeze({
51947
52032
  form: "single",
51948
52033
  optional: false
51949
52034
  }],
52035
+ "notificationRules.getAlarmSensors": [{
52036
+ name: "deviceIds",
52037
+ form: "array",
52038
+ optional: false
52039
+ }],
51950
52040
  "notificationRules.setDeviceMuted": [{
51951
52041
  name: "deviceId",
51952
52042
  form: "single",
@@ -53729,6 +53819,107 @@ function ruleBelongsToAlarm(rule) {
53729
53819
  if ((rule.conditions.deviceState?.states ?? []).some((s) => s.trim().toLowerCase().startsWith(ARMED_WORD_PREFIX))) return true;
53730
53820
  return (rule.onTrigger ?? []).some((sequence) => sequence.enabled && sequence.actions.some((step) => step.kind === "cap" && step.cap === ALARM_PANEL_CAP && step.method === ALARM_PANEL_TRIGGER_METHOD));
53731
53821
  }
53822
+ var NC_ALARM_DELAY_FIELDS = [
53823
+ "exitDelaySec",
53824
+ "entryDelaySec",
53825
+ "triggeredDurationSec"
53826
+ ];
53827
+ /** The mode's value when it overrides the field, else the global one. */
53828
+ function pick(override, global) {
53829
+ return override === void 0 ? {
53830
+ value: global,
53831
+ source: "default"
53832
+ } : {
53833
+ value: override,
53834
+ source: "mode"
53835
+ };
53836
+ }
53837
+ /** What `mode` actually runs on: its own overrides, the global value for every other field. */
53838
+ function resolveModeDelays(settings, mode) {
53839
+ const entry = (settings.modeDelays ?? []).find((e) => e.mode === mode);
53840
+ const exit = pick(entry?.exitDelaySec, settings.exitDelaySec);
53841
+ const entryDelay = pick(entry?.entryDelaySec, settings.entryDelaySec);
53842
+ const triggered = pick(entry?.triggeredDurationSec, settings.triggeredDurationSec);
53843
+ return {
53844
+ exitDelaySec: exit.value,
53845
+ entryDelaySec: entryDelay.value,
53846
+ triggeredDurationSec: triggered.value,
53847
+ source: {
53848
+ exitDelaySec: exit.source,
53849
+ entryDelaySec: entryDelay.source,
53850
+ triggeredDurationSec: triggered.source
53851
+ }
53852
+ };
53853
+ }
53854
+ /** One field of an entry after an edit: number sets, null clears, undefined keeps. */
53855
+ function edited(current, edit) {
53856
+ if (edit === void 0) return current;
53857
+ return edit === null ? void 0 : edit;
53858
+ }
53859
+ /**
53860
+ * Apply per-field edits to the stored overrides. Returns new arrays, never mutates the input;
53861
+ * an entry with no field left is dropped (the mode inherits everything again).
53862
+ */
53863
+ function applyModeDelaysEdits(current, edits) {
53864
+ const out = current.map((e) => ({ ...e }));
53865
+ for (const edit of edits) {
53866
+ const at = out.findIndex((e) => e.mode === edit.mode);
53867
+ const base = at >= 0 ? out[at] ?? { mode: edit.mode } : { mode: edit.mode };
53868
+ const next = { mode: edit.mode };
53869
+ const exit = edited(base.exitDelaySec, edit.exitDelaySec);
53870
+ const entry = edited(base.entryDelaySec, edit.entryDelaySec);
53871
+ const triggered = edited(base.triggeredDurationSec, edit.triggeredDurationSec);
53872
+ if (exit !== void 0) next.exitDelaySec = exit;
53873
+ if (entry !== void 0) next.entryDelaySec = entry;
53874
+ if (triggered !== void 0) next.triggeredDurationSec = triggered;
53875
+ if (at >= 0) out[at] = next;
53876
+ else out.push(next);
53877
+ }
53878
+ return out.filter((e) => e.exitDelaySec !== void 0 || e.entryDelaySec !== void 0 || e.triggeredDurationSec !== void 0);
53879
+ }
53880
+ /**
53881
+ * Put ONE device on, or take it off, ONE mode's list. A no-op answers `changed: false`; an add
53882
+ * to a full list is REFUSED by reason (never silently dropped); an emptied list drops its entry.
53883
+ */
53884
+ function applyNonBlockingEdit(lists, edit) {
53885
+ const copy = lists.map((l) => ({
53886
+ mode: l.mode,
53887
+ deviceIds: [...l.deviceIds]
53888
+ }));
53889
+ const at = copy.findIndex((l) => l.mode === edit.mode);
53890
+ const held = at >= 0 ? copy[at]?.deviceIds ?? [] : [];
53891
+ const present = held.includes(edit.deviceId);
53892
+ if (edit.nonBlocking === present) return {
53893
+ kind: "applied",
53894
+ lists: copy,
53895
+ changed: false
53896
+ };
53897
+ if (edit.nonBlocking) {
53898
+ if (held.length >= 200) return {
53899
+ kind: "refused",
53900
+ reason: "list-full",
53901
+ mode: edit.mode,
53902
+ max: 200
53903
+ };
53904
+ const next = {
53905
+ mode: edit.mode,
53906
+ deviceIds: [...held, edit.deviceId]
53907
+ };
53908
+ if (at >= 0) copy[at] = next;
53909
+ else copy.push(next);
53910
+ } else {
53911
+ const next = {
53912
+ mode: edit.mode,
53913
+ deviceIds: held.filter((id) => id !== edit.deviceId)
53914
+ };
53915
+ if (at >= 0) copy[at] = next;
53916
+ }
53917
+ return {
53918
+ kind: "applied",
53919
+ lists: copy.filter((l) => l.deviceIds.length > 0),
53920
+ changed: true
53921
+ };
53922
+ }
53732
53923
  /**
53733
53924
  * WHICH WAY A BOOLEAN SENSOR MOVED — read off the one slice a sensor event
53734
53925
  * persists (D640 "a sensor rule fires on the raise, the clear, or both").
@@ -56464,12 +56655,30 @@ Object.defineProperty(exports, "MotionTriggeredBySchema", {
56464
56655
  return MotionTriggeredBySchema;
56465
56656
  }
56466
56657
  });
56658
+ Object.defineProperty(exports, "NC_ALARM_DELAY_FIELDS", {
56659
+ enumerable: true,
56660
+ get: function() {
56661
+ return NC_ALARM_DELAY_FIELDS;
56662
+ }
56663
+ });
56664
+ Object.defineProperty(exports, "NC_ALARM_DELAY_MAX_SEC", {
56665
+ enumerable: true,
56666
+ get: function() {
56667
+ return NC_ALARM_DELAY_MAX_SEC;
56668
+ }
56669
+ });
56467
56670
  Object.defineProperty(exports, "NC_ALARM_SYSTEM_EVENT_KINDS", {
56468
56671
  enumerable: true,
56469
56672
  get: function() {
56470
56673
  return NC_ALARM_SYSTEM_EVENT_KINDS;
56471
56674
  }
56472
56675
  });
56676
+ Object.defineProperty(exports, "NC_ALARM_TRIGGERED_MAX_SEC", {
56677
+ enumerable: true,
56678
+ get: function() {
56679
+ return NC_ALARM_TRIGGERED_MAX_SEC;
56680
+ }
56681
+ });
56473
56682
  Object.defineProperty(exports, "NC_AUDIO_CONFIRM_HITS_DEFAULT", {
56474
56683
  enumerable: true,
56475
56684
  get: function() {
@@ -56566,6 +56775,18 @@ Object.defineProperty(exports, "NcAlarmConfigSchema", {
56566
56775
  return NcAlarmConfigSchema;
56567
56776
  }
56568
56777
  });
56778
+ Object.defineProperty(exports, "NcAlarmSensorsInputSchema", {
56779
+ enumerable: true,
56780
+ get: function() {
56781
+ return NcAlarmSensorsInputSchema;
56782
+ }
56783
+ });
56784
+ Object.defineProperty(exports, "NcAlarmSensorsSchema", {
56785
+ enumerable: true,
56786
+ get: function() {
56787
+ return NcAlarmSensorsSchema;
56788
+ }
56789
+ });
56569
56790
  Object.defineProperty(exports, "NcAlarmSettingsPatchSchema", {
56570
56791
  enumerable: true,
56571
56792
  get: function() {
@@ -56884,6 +57105,18 @@ Object.defineProperty(exports, "alarmPanelCapability", {
56884
57105
  return alarmPanelCapability;
56885
57106
  }
56886
57107
  });
57108
+ Object.defineProperty(exports, "applyModeDelaysEdits", {
57109
+ enumerable: true,
57110
+ get: function() {
57111
+ return applyModeDelaysEdits;
57112
+ }
57113
+ });
57114
+ Object.defineProperty(exports, "applyNonBlockingEdit", {
57115
+ enumerable: true,
57116
+ get: function() {
57117
+ return applyNonBlockingEdit;
57118
+ }
57119
+ });
56887
57120
  Object.defineProperty(exports, "array", {
56888
57121
  enumerable: true,
56889
57122
  get: function() {
@@ -57268,6 +57501,12 @@ Object.defineProperty(exports, "resolveLocationMode", {
57268
57501
  return resolveLocationMode;
57269
57502
  }
57270
57503
  });
57504
+ Object.defineProperty(exports, "resolveModeDelays", {
57505
+ enumerable: true,
57506
+ get: function() {
57507
+ return resolveModeDelays;
57508
+ }
57509
+ });
57271
57510
  Object.defineProperty(exports, "resolvePoolMemoryPolicy", {
57272
57511
  enumerable: true,
57273
57512
  get: function() {