@camstack/addon-provider-ecowitt 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/addon.mjs CHANGED
@@ -14786,83 +14786,34 @@ var GetStateInputSchema = object({
14786
14786
  * HA: entity_id (returns the cached entity state). */
14787
14787
  key: string()
14788
14788
  });
14789
- var brokerCapability = {
14790
- name: "broker",
14791
- scope: "system",
14792
- mode: "collection",
14793
- providerKind: "broker",
14794
- status: {
14795
- schema: RegistryStatusSchema,
14796
- kind: "poll"
14797
- },
14798
- methods: {
14799
- list: method(ListInputSchema, array(BrokerInfoSchema$1)),
14800
- get: method(GetInputSchema, BrokerInfoSchema$1.nullable()),
14801
- /** Enumerate which addon provides which broker kind(s) for the
14802
- * unified create picker. The auto-mount fans this array across
14803
- * every registered `broker` provider (array-output method), so the
14804
- * picker sees every kind from every provider in one call. */
14805
- listProviders: method(_void(), array(BrokerProviderInfoSchema), { auth: "admin" }),
14806
- add: method(AddInputSchema, AddResultSchema, {
14807
- kind: "mutation",
14808
- auth: "admin"
14809
- }),
14810
- remove: method(RemoveInputSchema, _void(), {
14811
- kind: "mutation",
14812
- auth: "admin"
14813
- }),
14814
- testConnection: method(GetInputSchema, TestConnectionResultSchema, {
14815
- kind: "mutation",
14816
- auth: "admin"
14817
- }),
14818
- /** Read the persisted settings record for a broker (kind-specific
14819
- * shape). Admin-only — settings may contain secrets. Returns `null`
14820
- * when the broker id is unknown to the provider (the collection
14821
- * fallback may route a foreign id to the first provider). */
14822
- getSettings: method(GetInputSchema, SettingsRecordSchema$1.nullable(), { auth: "admin" }),
14823
- /** Overwrite the persisted settings record. The kind-specific
14824
- * provider validates the shape and applies the change (reconnects
14825
- * if credentials changed). */
14826
- setSettings: method(object({
14827
- id: string(),
14828
- settings: SettingsRecordSchema$1
14829
- }), _void(), {
14830
- kind: "mutation",
14831
- auth: "admin"
14832
- }),
14833
- /** Returns the kind-specific connection config the consumer needs
14834
- * to open its own client (MQTT pattern: `{url, username, password,
14835
- * clientIdPrefix}`). HA providers MAY return the auth envelope
14836
- * but typical HA consumers use `publish` / `subscribe` instead.
14837
- * Returns `null` when the broker id is unknown to the provider. */
14838
- getBrokerConfig: method(GetInputSchema, SettingsRecordSchema$1.nullable(), { auth: "admin" }),
14839
- getSettingsSchema: method(SettingsSchemaInputSchema, SettingsSchemaResultSchema, { auth: "admin" }),
14840
- testSettings: method(TestSettingsInputSchema, TestSettingsResultSchema, {
14841
- kind: "mutation",
14842
- auth: "admin"
14843
- }),
14844
- publish: method(PublishInputSchema, unknown(), {
14845
- kind: "mutation",
14846
- auth: "admin"
14847
- }),
14848
- subscribe: method(SubscribeInputSchema, SubscribeResultSchema, {
14849
- kind: "mutation",
14850
- auth: "admin"
14851
- }),
14852
- unsubscribe: method(UnsubscribeInputSchema, _void(), {
14853
- kind: "mutation",
14854
- auth: "admin"
14855
- }),
14856
- /** Read the broker's cached state for a key. Returns `null` when
14857
- * unknown to the broker (never published / unknown entity). */
14858
- getState: method(GetStateInputSchema, unknown().nullable()),
14859
- /** Status method — explicit registration with a `z.void()` input so
14860
- * the codegen-generated tRPC router types its input as
14861
- * `{addonId?: string, nodeId?: string}` (system-scoped collection
14862
- * shape) instead of the device-scoped `{deviceId}` fallback. */
14863
- getStatus: method(_void(), RegistryStatusSchema)
14864
- }
14865
- };
14789
+ method(ListInputSchema, array(BrokerInfoSchema$1)), method(GetInputSchema, BrokerInfoSchema$1.nullable()), method(_void(), array(BrokerProviderInfoSchema), { auth: "admin" }), method(AddInputSchema, AddResultSchema, {
14790
+ kind: "mutation",
14791
+ auth: "admin"
14792
+ }), method(RemoveInputSchema, _void(), {
14793
+ kind: "mutation",
14794
+ auth: "admin"
14795
+ }), method(GetInputSchema, TestConnectionResultSchema, {
14796
+ kind: "mutation",
14797
+ auth: "admin"
14798
+ }), method(GetInputSchema, SettingsRecordSchema$1.nullable(), { auth: "admin" }), method(object({
14799
+ id: string(),
14800
+ settings: SettingsRecordSchema$1
14801
+ }), _void(), {
14802
+ kind: "mutation",
14803
+ auth: "admin"
14804
+ }), method(GetInputSchema, SettingsRecordSchema$1.nullable(), { auth: "admin" }), method(SettingsSchemaInputSchema, SettingsSchemaResultSchema, { auth: "admin" }), method(TestSettingsInputSchema, TestSettingsResultSchema, {
14805
+ kind: "mutation",
14806
+ auth: "admin"
14807
+ }), method(PublishInputSchema, unknown(), {
14808
+ kind: "mutation",
14809
+ auth: "admin"
14810
+ }), method(SubscribeInputSchema, SubscribeResultSchema, {
14811
+ kind: "mutation",
14812
+ auth: "admin"
14813
+ }), method(UnsubscribeInputSchema, _void(), {
14814
+ kind: "mutation",
14815
+ auth: "admin"
14816
+ }), method(GetStateInputSchema, unknown().nullable()), method(_void(), RegistryStatusSchema);
14866
14817
  DeviceType.Camera;
14867
14818
  /**
14868
14819
  * `custom-model-registry` — collection cap exposing operator-registered
@@ -15098,36 +15049,19 @@ var ResyncResultSchema = object({
15098
15049
  * provider re-derived the device. 0/absent for a normal incremental re-sync. */
15099
15050
  removedChildren: number().int().nonnegative().optional()
15100
15051
  });
15101
- var deviceAdoptionCapability = {
15102
- name: "device-adoption",
15103
- scope: "system",
15104
- mode: "singleton",
15105
- status: {
15106
- schema: AdoptionStatusSchema,
15107
- kind: "poll"
15108
- },
15109
- methods: {
15110
- listCandidateFilters: method(object({ integrationId: string() }), object({ filters: array(AdoptionFilterSchema) }), { auth: "admin" }),
15111
- listCandidates: method(ListCandidatesInputSchema, ListCandidatesOutputSchema, { auth: "admin" }),
15112
- getCandidate: method(GetCandidateInputSchema, DiscoveredChildDeviceSchema.nullable(), { auth: "admin" }),
15113
- refresh: method(object({ integrationId: string() }), AdoptionStatusSchema, {
15114
- kind: "mutation",
15115
- auth: "admin"
15116
- }),
15117
- adopt: method(AdoptInputSchema, AdoptResultSchema, {
15118
- kind: "mutation",
15119
- auth: "admin"
15120
- }),
15121
- release: method(ReleaseInputSchema, _void(), {
15122
- kind: "mutation",
15123
- auth: "admin"
15124
- }),
15125
- resync: method(ResyncInputSchema, ResyncResultSchema, {
15126
- kind: "mutation",
15127
- auth: "admin"
15128
- })
15129
- }
15130
- };
15052
+ method(object({ integrationId: string() }), object({ filters: array(AdoptionFilterSchema) }), { auth: "admin" }), method(ListCandidatesInputSchema, ListCandidatesOutputSchema, { auth: "admin" }), method(GetCandidateInputSchema, DiscoveredChildDeviceSchema.nullable(), { auth: "admin" }), method(object({ integrationId: string() }), AdoptionStatusSchema, {
15053
+ kind: "mutation",
15054
+ auth: "admin"
15055
+ }), method(AdoptInputSchema, AdoptResultSchema, {
15056
+ kind: "mutation",
15057
+ auth: "admin"
15058
+ }), method(ReleaseInputSchema, _void(), {
15059
+ kind: "mutation",
15060
+ auth: "admin"
15061
+ }), method(ResyncInputSchema, ResyncResultSchema, {
15062
+ kind: "mutation",
15063
+ auth: "admin"
15064
+ });
15131
15065
  /**
15132
15066
  * `device-export` — collection cap for addons that export camstack
15133
15067
  * devices to external ecosystems (HomeAssistant via MQTT discovery,
@@ -18317,6 +18251,17 @@ var AvailableIntegrationTypeSchema = object({
18317
18251
  iconUrl: string().nullable(),
18318
18252
  color: string(),
18319
18253
  instanceMode: string(),
18254
+ /**
18255
+ * Integration wizard `mode` (LOCKED MODEL): `standalone` (create
18256
+ * immediately then add devices, no config step/button), `account` (config
18257
+ * step), or `broker` (broker step). Derived server-side by
18258
+ * `getAvailableTypes` when the addon manifest omits an explicit `mode`.
18259
+ */
18260
+ mode: _enum([
18261
+ "standalone",
18262
+ "account",
18263
+ "broker"
18264
+ ]),
18320
18265
  discoveryMode: string(),
18321
18266
  /**
18322
18267
  * Which integration-marker cap the addon declared, so the wizard can
@@ -24035,7 +23980,184 @@ object({
24035
23980
  schemaVersion: literal(1)
24036
23981
  });
24037
23982
  //#endregion
24038
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/core/symbols.js
23983
+ //#region src/config.ts
23984
+ /**
23985
+ * Operator-supplied Ecowitt gateway settings for ONE broker (= one station).
23986
+ * Two transports behind a `transport` discriminator:
23987
+ *
23988
+ * - `local` (local-poll): the addon polls the gateway over HTTP (`host`/`port`/
23989
+ * optional `password`, with poll + mapping intervals).
23990
+ * - `listener` (push): the addon runs an HTTP server the gateway uploads to
23991
+ * (the gateway's "Customized" upload must point at the hub's LAN IP:port).
23992
+ *
23993
+ * Local-poll is the recommended default — it has no inbound-IP constraint.
23994
+ */
23995
+ var baseFields = {
23996
+ /** Human-overridable station identity used to scope the adopted gateway. */
23997
+ stationId: string().default("").describe("Optional stable station id (auto-derived when blank)") };
23998
+ var ecowittConfigSchema = discriminatedUnion("transport", [object({
23999
+ transport: literal("local"),
24000
+ host: string().min(1).describe("Ecowitt gateway host name or IP address"),
24001
+ port: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(1).max(65535).default(80)).describe("Gateway HTTP port"),
24002
+ password: string().default("").describe("Gateway password (optional — newer firmware)"),
24003
+ pollIntervalMs: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(1e3).max(36e5).default(6e4)).describe("Live-data poll interval (ms)"),
24004
+ mappingIntervalMs: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(1e4).max(864e5).default(6e5)).describe("Sensor-map refresh interval (ms)"),
24005
+ ...baseFields
24006
+ }), object({
24007
+ transport: literal("listener"),
24008
+ listenPort: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(1).max(65535).default(4199)).describe("Local TCP port the gateway uploads to"),
24009
+ listenHost: string().default("").describe("Optional bind host (blank = all interfaces)"),
24010
+ ...baseFields
24011
+ })]);
24012
+ /**
24013
+ * Narrow an `unknown` value to a shallow-cloned plain object record, or an empty
24014
+ * record when it is not a plain object. Mirrors the Homematic `toRecord` helper —
24015
+ * a cast-free boundary narrowing.
24016
+ */
24017
+ function toRecord(value) {
24018
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) return Object.fromEntries(Object.entries(value));
24019
+ return {};
24020
+ }
24021
+ /** Coerce a loose settings blob through the connection schema, applying defaults.
24022
+ * A blob with no `transport` defaults to `local` for back-compat with simple forms. */
24023
+ function settingsToEcowittConfig(settings) {
24024
+ const raw = toRecord(settings);
24025
+ if (raw["transport"] !== "local" && raw["transport"] !== "listener") raw["transport"] = "local";
24026
+ return ecowittConfigSchema.parse(raw);
24027
+ }
24028
+ /**
24029
+ * Persisted config for an Ecowitt gateway {@link import('@camstack/types').DeviceType.Hub}
24030
+ * device. The operator-supplied CONNECTION lives directly on the device (Reolink
24031
+ * pattern) — there is no broker registry. The gateway owns its own live nodewitt
24032
+ * client keyed on its own `stableId`; group Container children reference it via
24033
+ * their `gatewayId` config field.
24034
+ */
24035
+ var ecowittGatewaySchema = object({
24036
+ /** The transport + endpoint the gateway's live client dials / binds. */
24037
+ connection: ecowittConfigSchema,
24038
+ /** Provenance marker used to scope offline / cascade helpers. */
24039
+ system: literal("ecowitt-gateway").optional()
24040
+ });
24041
+ /**
24042
+ * Hand-written connection form for the gateway device-creation UI (standalone
24043
+ * mode — Reolink pattern). The connection lives on the gateway DEVICE config,
24044
+ * not in a broker registry. A `name` field is included so the operator names
24045
+ * the gateway Hub at creation time (mirrors the Reolink creation form).
24046
+ */
24047
+ function buildConnectionFormSchema() {
24048
+ return { sections: [
24049
+ {
24050
+ id: "identity",
24051
+ title: "Gateway",
24052
+ columns: 1,
24053
+ fields: [{
24054
+ type: "text",
24055
+ key: "name",
24056
+ label: "Name",
24057
+ required: true,
24058
+ placeholder: "Weather station"
24059
+ }]
24060
+ },
24061
+ {
24062
+ id: "transport",
24063
+ title: "Transport",
24064
+ description: "Choose how CamStack reads the gateway. Local poll connects out to the gateway (recommended). Push listener runs a server the gateway uploads to — configure the gateway \"Customized\" upload to point at this hub.",
24065
+ columns: 1,
24066
+ fields: [{
24067
+ type: "select",
24068
+ key: "transport",
24069
+ label: "Transport",
24070
+ default: "local",
24071
+ options: [{
24072
+ value: "local",
24073
+ label: "Local poll (recommended)"
24074
+ }, {
24075
+ value: "listener",
24076
+ label: "Push listener"
24077
+ }]
24078
+ }]
24079
+ },
24080
+ {
24081
+ id: "local",
24082
+ title: "Local poll settings",
24083
+ columns: 2,
24084
+ fields: [
24085
+ {
24086
+ type: "text",
24087
+ key: "host",
24088
+ label: "Gateway host / IP",
24089
+ placeholder: "192.168.1.50",
24090
+ showWhen: {
24091
+ field: "transport",
24092
+ equals: "local"
24093
+ }
24094
+ },
24095
+ {
24096
+ type: "number",
24097
+ key: "port",
24098
+ label: "HTTP port",
24099
+ min: 1,
24100
+ max: 65535,
24101
+ default: 80,
24102
+ showWhen: {
24103
+ field: "transport",
24104
+ equals: "local"
24105
+ }
24106
+ },
24107
+ {
24108
+ type: "password",
24109
+ key: "password",
24110
+ label: "Password (optional)",
24111
+ showToggle: true,
24112
+ showWhen: {
24113
+ field: "transport",
24114
+ equals: "local"
24115
+ }
24116
+ },
24117
+ {
24118
+ type: "number",
24119
+ key: "pollIntervalMs",
24120
+ label: "Poll interval (ms)",
24121
+ min: 1e3,
24122
+ max: 36e5,
24123
+ default: 6e4,
24124
+ showWhen: {
24125
+ field: "transport",
24126
+ equals: "local"
24127
+ }
24128
+ }
24129
+ ]
24130
+ },
24131
+ {
24132
+ id: "listener",
24133
+ title: "Push listener settings",
24134
+ columns: 2,
24135
+ fields: [{
24136
+ type: "number",
24137
+ key: "listenPort",
24138
+ label: "Listen port",
24139
+ min: 1,
24140
+ max: 65535,
24141
+ default: 4199,
24142
+ showWhen: {
24143
+ field: "transport",
24144
+ equals: "listener"
24145
+ }
24146
+ }, {
24147
+ type: "text",
24148
+ key: "listenHost",
24149
+ label: "Bind host (optional)",
24150
+ placeholder: "all interfaces",
24151
+ showWhen: {
24152
+ field: "transport",
24153
+ equals: "listener"
24154
+ }
24155
+ }]
24156
+ }
24157
+ ] };
24158
+ }
24159
+ //#endregion
24160
+ //#region node_modules/undici/lib/core/symbols.js
24039
24161
  var require_symbols$4 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24040
24162
  module.exports = {
24041
24163
  kClose: Symbol("close"),
@@ -24106,7 +24228,7 @@ var require_symbols$4 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24106
24228
  };
24107
24229
  }));
24108
24230
  //#endregion
24109
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/core/errors.js
24231
+ //#region node_modules/undici/lib/core/errors.js
24110
24232
  var require_errors = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24111
24233
  var kUndiciError = Symbol.for("undici.error.UND_ERR");
24112
24234
  var UndiciError = class extends Error {
@@ -24464,7 +24586,7 @@ var require_errors = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24464
24586
  };
24465
24587
  }));
24466
24588
  //#endregion
24467
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/core/constants.js
24589
+ //#region node_modules/undici/lib/core/constants.js
24468
24590
  var require_constants$4 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24469
24591
  /** @type {Record<string, string | undefined>} */
24470
24592
  var headerNameLowerCasedRecord = {};
@@ -24577,7 +24699,7 @@ var require_constants$4 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24577
24699
  };
24578
24700
  }));
24579
24701
  //#endregion
24580
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/core/tree.js
24702
+ //#region node_modules/undici/lib/core/tree.js
24581
24703
  var require_tree = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24582
24704
  var { wellknownHeaderNames, headerNameLowerCasedRecord } = require_constants$4();
24583
24705
  var TstNode = class TstNode {
@@ -24687,7 +24809,7 @@ var require_tree = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24687
24809
  };
24688
24810
  }));
24689
24811
  //#endregion
24690
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/core/util.js
24812
+ //#region node_modules/undici/lib/core/util.js
24691
24813
  var require_util$7 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
24692
24814
  var assert$26 = __require("node:assert");
24693
24815
  var { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols$4();
@@ -25141,7 +25263,7 @@ var require_util$7 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25141
25263
  };
25142
25264
  }));
25143
25265
  //#endregion
25144
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/core/diagnostics.js
25266
+ //#region node_modules/undici/lib/core/diagnostics.js
25145
25267
  var require_diagnostics = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25146
25268
  var diagnosticsChannel = __require("node:diagnostics_channel");
25147
25269
  var util$2 = __require("node:util");
@@ -25238,7 +25360,7 @@ var require_diagnostics = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25238
25360
  module.exports = { channels };
25239
25361
  }));
25240
25362
  //#endregion
25241
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/core/request.js
25363
+ //#region node_modules/undici/lib/core/request.js
25242
25364
  var require_request$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25243
25365
  var { InvalidArgumentError, NotSupportedError } = require_errors();
25244
25366
  var assert$25 = __require("node:assert");
@@ -25457,7 +25579,7 @@ var require_request$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25457
25579
  module.exports = Request;
25458
25580
  }));
25459
25581
  //#endregion
25460
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/dispatcher.js
25582
+ //#region node_modules/undici/lib/dispatcher/dispatcher.js
25461
25583
  var require_dispatcher = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25462
25584
  var EventEmitter$1 = __require("node:events");
25463
25585
  var Dispatcher = class extends EventEmitter$1 {
@@ -25503,7 +25625,7 @@ var require_dispatcher = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25503
25625
  module.exports = Dispatcher;
25504
25626
  }));
25505
25627
  //#endregion
25506
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/dispatcher-base.js
25628
+ //#region node_modules/undici/lib/dispatcher/dispatcher-base.js
25507
25629
  var require_dispatcher_base = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25508
25630
  var Dispatcher = require_dispatcher();
25509
25631
  var { ClientDestroyedError, ClientClosedError, InvalidArgumentError } = require_errors();
@@ -25625,7 +25747,7 @@ var require_dispatcher_base = /* @__PURE__ */ __commonJSMin(((exports, module) =
25625
25747
  module.exports = DispatcherBase;
25626
25748
  }));
25627
25749
  //#endregion
25628
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/util/timers.js
25750
+ //#region node_modules/undici/lib/util/timers.js
25629
25751
  var require_timers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25630
25752
  /**
25631
25753
  * This module offers an optimized timer implementation designed for scenarios
@@ -25963,7 +26085,7 @@ var require_timers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25963
26085
  };
25964
26086
  }));
25965
26087
  //#endregion
25966
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/core/connect.js
26088
+ //#region node_modules/undici/lib/core/connect.js
25967
26089
  var require_connect = /* @__PURE__ */ __commonJSMin(((exports, module) => {
25968
26090
  var net$1 = __require("node:net");
25969
26091
  var assert$24 = __require("node:assert");
@@ -26133,7 +26255,7 @@ var require_connect = /* @__PURE__ */ __commonJSMin(((exports, module) => {
26133
26255
  module.exports = buildConnector;
26134
26256
  }));
26135
26257
  //#endregion
26136
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/llhttp/utils.js
26258
+ //#region node_modules/undici/lib/llhttp/utils.js
26137
26259
  var require_utils = /* @__PURE__ */ __commonJSMin(((exports) => {
26138
26260
  Object.defineProperty(exports, "__esModule", { value: true });
26139
26261
  exports.enumToMap = void 0;
@@ -26148,7 +26270,7 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports) => {
26148
26270
  exports.enumToMap = enumToMap;
26149
26271
  }));
26150
26272
  //#endregion
26151
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/llhttp/constants.js
26273
+ //#region node_modules/undici/lib/llhttp/constants.js
26152
26274
  var require_constants$3 = /* @__PURE__ */ __commonJSMin(((exports) => {
26153
26275
  Object.defineProperty(exports, "__esModule", { value: true });
26154
26276
  exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;
@@ -26481,19 +26603,19 @@ var require_constants$3 = /* @__PURE__ */ __commonJSMin(((exports) => {
26481
26603
  };
26482
26604
  }));
26483
26605
  //#endregion
26484
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/llhttp/llhttp-wasm.js
26606
+ //#region node_modules/undici/lib/llhttp/llhttp-wasm.js
26485
26607
  var require_llhttp_wasm = /* @__PURE__ */ __commonJSMin(((exports, module) => {
26486
26608
  var { Buffer: Buffer$2 } = __require("node:buffer");
26487
26609
  module.exports = Buffer$2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIdbGxodHRwX3NldF9sZW5pZW50X2tlZXBfYWxpdmUAIyRsbGh0dHBfc2V0X2xlbmllbnRfdHJhbnNmZXJfZW5jb2RpbmcAJBhsbGh0dHBfbWVzc2FnZV9uZWVkc19lb2YALgkXAQBBAQsRAQIDBAUKBgcrLSwqKSglJyYK07MCLBYAQYjQACgCAARAAAtBiNAAQQE2AgALFAAgABAwIAAgAjYCOCAAIAE6ACgLFAAgACAALwEyIAAtAC4gABAvEAALHgEBf0HAABAyIgEQMCABQYAINgI4IAEgADoAKCABC48MAQd/AkAgAEUNACAAQQhrIgEgAEEEaygCACIAQXhxIgRqIQUCQCAAQQFxDQAgAEEDcUUNASABIAEoAgAiAGsiAUGc0AAoAgBJDQEgACAEaiEEAkACQEGg0AAoAgAgAUcEQCAAQf8BTQRAIABBA3YhAyABKAIIIgAgASgCDCICRgRAQYzQAEGM0AAoAgBBfiADd3E2AgAMBQsgAiAANgIIIAAgAjYCDAwECyABKAIYIQYgASABKAIMIgBHBEAgACABKAIIIgI2AgggAiAANgIMDAMLIAFBFGoiAygCACICRQRAIAEoAhAiAkUNAiABQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFKAIEIgBBA3FBA0cNAiAFIABBfnE2AgRBlNAAIAQ2AgAgBSAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCABKAIcIgJBAnRBvNIAaiIDKAIAIAFGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgAUYbaiAANgIAIABFDQELIAAgBjYCGCABKAIQIgIEQCAAIAI2AhAgAiAANgIYCyABQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAFTw0AIAUoAgQiAEEBcUUNAAJAAkACQAJAIABBAnFFBEBBpNAAKAIAIAVGBEBBpNAAIAE2AgBBmNAAQZjQACgCACAEaiIANgIAIAEgAEEBcjYCBCABQaDQACgCAEcNBkGU0ABBADYCAEGg0ABBADYCAAwGC0Gg0AAoAgAgBUYEQEGg0AAgATYCAEGU0ABBlNAAKAIAIARqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAAwGCyAAQXhxIARqIQQgAEH/AU0EQCAAQQN2IQMgBSgCCCIAIAUoAgwiAkYEQEGM0ABBjNAAKAIAQX4gA3dxNgIADAULIAIgADYCCCAAIAI2AgwMBAsgBSgCGCEGIAUgBSgCDCIARwRAQZzQACgCABogACAFKAIIIgI2AgggAiAANgIMDAMLIAVBFGoiAygCACICRQRAIAUoAhAiAkUNAiAFQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFIABBfnE2AgQgASAEaiAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCAFKAIcIgJBAnRBvNIAaiIDKAIAIAVGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgBUYbaiAANgIAIABFDQELIAAgBjYCGCAFKAIQIgIEQCAAIAI2AhAgAiAANgIYCyAFQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAEaiAENgIAIAEgBEEBcjYCBCABQaDQACgCAEcNAEGU0AAgBDYCAAwBCyAEQf8BTQRAIARBeHFBtNAAaiEAAn9BjNAAKAIAIgJBASAEQQN2dCIDcUUEQEGM0AAgAiADcjYCACAADAELIAAoAggLIgIgATYCDCAAIAE2AgggASAANgIMIAEgAjYCCAwBC0EfIQIgBEH///8HTQRAIARBJiAEQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAgsgASACNgIcIAFCADcCECACQQJ0QbzSAGohAAJAQZDQACgCACIDQQEgAnQiB3FFBEAgACABNgIAQZDQACADIAdyNgIAIAEgADYCGCABIAE2AgggASABNgIMDAELIARBGSACQQF2a0EAIAJBH0cbdCECIAAoAgAhAAJAA0AgACIDKAIEQXhxIARGDQEgAkEddiEAIAJBAXQhAiADIABBBHFqQRBqIgcoAgAiAA0ACyAHIAE2AgAgASADNgIYIAEgATYCDCABIAE2AggMAQsgAygCCCIAIAE2AgwgAyABNgIIIAFBADYCGCABIAM2AgwgASAANgIIC0Gs0ABBrNAAKAIAQQFrIgBBfyAAGzYCAAsLBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LQAEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABAwIAAgBDYCOCAAIAM6ACggACACOgAtIAAgATYCGAu74gECB38DfiABIAJqIQQCQCAAIgIoAgwiAA0AIAIoAgQEQCACIAE2AgQLIwBBEGsiCCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAhwiA0EBaw7dAdoBAdkBAgMEBQYHCAkKCwwNDtgBDxDXARES1gETFBUWFxgZGhvgAd8BHB0e1QEfICEiIyQl1AEmJygpKiss0wHSAS0u0QHQAS8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRtsBR0hJSs8BzgFLzQFMzAFNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBywHKAbgByQG5AcgBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgEA3AELQQAMxgELQQ4MxQELQQ0MxAELQQ8MwwELQRAMwgELQRMMwQELQRQMwAELQRUMvwELQRYMvgELQRgMvQELQRkMvAELQRoMuwELQRsMugELQRwMuQELQR0MuAELQQgMtwELQR4MtgELQSAMtQELQR8MtAELQQcMswELQSEMsgELQSIMsQELQSMMsAELQSQMrwELQRIMrgELQREMrQELQSUMrAELQSYMqwELQScMqgELQSgMqQELQcMBDKgBC0EqDKcBC0ErDKYBC0EsDKUBC0EtDKQBC0EuDKMBC0EvDKIBC0HEAQyhAQtBMAygAQtBNAyfAQtBDAyeAQtBMQydAQtBMgycAQtBMwybAQtBOQyaAQtBNQyZAQtBxQEMmAELQQsMlwELQToMlgELQTYMlQELQQoMlAELQTcMkwELQTgMkgELQTwMkQELQTsMkAELQT0MjwELQQkMjgELQSkMjQELQT4MjAELQT8MiwELQcAADIoBC0HBAAyJAQtBwgAMiAELQcMADIcBC0HEAAyGAQtBxQAMhQELQcYADIQBC0EXDIMBC0HHAAyCAQtByAAMgQELQckADIABC0HKAAx/C0HLAAx+C0HNAAx9C0HMAAx8C0HOAAx7C0HPAAx6C0HQAAx5C0HRAAx4C0HSAAx3C0HTAAx2C0HUAAx1C0HWAAx0C0HVAAxzC0EGDHILQdcADHELQQUMcAtB2AAMbwtBBAxuC0HZAAxtC0HaAAxsC0HbAAxrC0HcAAxqC0EDDGkLQd0ADGgLQd4ADGcLQd8ADGYLQeEADGULQeAADGQLQeIADGMLQeMADGILQQIMYQtB5AAMYAtB5QAMXwtB5gAMXgtB5wAMXQtB6AAMXAtB6QAMWwtB6gAMWgtB6wAMWQtB7AAMWAtB7QAMVwtB7gAMVgtB7wAMVQtB8AAMVAtB8QAMUwtB8gAMUgtB8wAMUQtB9AAMUAtB9QAMTwtB9gAMTgtB9wAMTQtB+AAMTAtB+QAMSwtB+gAMSgtB+wAMSQtB/AAMSAtB/QAMRwtB/gAMRgtB/wAMRQtBgAEMRAtBgQEMQwtBggEMQgtBgwEMQQtBhAEMQAtBhQEMPwtBhgEMPgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv", "base64");
26488
26610
  }));
26489
26611
  //#endregion
26490
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js
26612
+ //#region node_modules/undici/lib/llhttp/llhttp_simd-wasm.js
26491
26613
  var require_llhttp_simd_wasm = /* @__PURE__ */ __commonJSMin(((exports, module) => {
26492
26614
  var { Buffer: Buffer$1 } = __require("node:buffer");
26493
26615
  module.exports = Buffer$1.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==", "base64");
26494
26616
  }));
26495
26617
  //#endregion
26496
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/constants.js
26618
+ //#region node_modules/undici/lib/web/fetch/constants.js
26497
26619
  var require_constants$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
26498
26620
  var corsSafeListedMethods = [
26499
26621
  "GET",
@@ -26711,7 +26833,7 @@ var require_constants$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
26711
26833
  };
26712
26834
  }));
26713
26835
  //#endregion
26714
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/global.js
26836
+ //#region node_modules/undici/lib/web/fetch/global.js
26715
26837
  var require_global$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
26716
26838
  var globalOrigin = Symbol.for("undici.globalOrigin.1");
26717
26839
  function getGlobalOrigin() {
@@ -26742,7 +26864,7 @@ var require_global$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
26742
26864
  };
26743
26865
  }));
26744
26866
  //#endregion
26745
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/data-url.js
26867
+ //#region node_modules/undici/lib/web/fetch/data-url.js
26746
26868
  var require_data_url = /* @__PURE__ */ __commonJSMin(((exports, module) => {
26747
26869
  var assert$23 = __require("node:assert");
26748
26870
  var encoder = new TextEncoder();
@@ -27077,7 +27199,7 @@ var require_data_url = /* @__PURE__ */ __commonJSMin(((exports, module) => {
27077
27199
  };
27078
27200
  }));
27079
27201
  //#endregion
27080
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/webidl.js
27202
+ //#region node_modules/undici/lib/web/fetch/webidl.js
27081
27203
  var require_webidl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
27082
27204
  var { types: types$3, inspect } = __require("node:util");
27083
27205
  var { markAsUncloneable } = __require("node:worker_threads");
@@ -27393,7 +27515,7 @@ var require_webidl = /* @__PURE__ */ __commonJSMin(((exports, module) => {
27393
27515
  module.exports = { webidl };
27394
27516
  }));
27395
27517
  //#endregion
27396
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/util.js
27518
+ //#region node_modules/undici/lib/web/fetch/util.js
27397
27519
  var require_util$6 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
27398
27520
  var { Transform: Transform$2 } = __require("node:stream");
27399
27521
  var zlib$1 = __require("node:zlib");
@@ -28206,7 +28328,7 @@ var require_util$6 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
28206
28328
  };
28207
28329
  }));
28208
28330
  //#endregion
28209
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/symbols.js
28331
+ //#region node_modules/undici/lib/web/fetch/symbols.js
28210
28332
  var require_symbols$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
28211
28333
  module.exports = {
28212
28334
  kUrl: Symbol("url"),
@@ -28217,7 +28339,7 @@ var require_symbols$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
28217
28339
  };
28218
28340
  }));
28219
28341
  //#endregion
28220
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/file.js
28342
+ //#region node_modules/undici/lib/web/fetch/file.js
28221
28343
  var require_file = /* @__PURE__ */ __commonJSMin(((exports, module) => {
28222
28344
  var { Blob: Blob$2, File: File$1 } = __require("node:buffer");
28223
28345
  var { kState } = require_symbols$3();
@@ -28280,7 +28402,7 @@ var require_file = /* @__PURE__ */ __commonJSMin(((exports, module) => {
28280
28402
  };
28281
28403
  }));
28282
28404
  //#endregion
28283
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/formdata.js
28405
+ //#region node_modules/undici/lib/web/fetch/formdata.js
28284
28406
  var require_formdata = /* @__PURE__ */ __commonJSMin(((exports, module) => {
28285
28407
  var { isBlobLike, iteratorMixin } = require_util$6();
28286
28408
  var { kState } = require_symbols$3();
@@ -28415,7 +28537,7 @@ var require_formdata = /* @__PURE__ */ __commonJSMin(((exports, module) => {
28415
28537
  };
28416
28538
  }));
28417
28539
  //#endregion
28418
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/formdata-parser.js
28540
+ //#region node_modules/undici/lib/web/fetch/formdata-parser.js
28419
28541
  var require_formdata_parser = /* @__PURE__ */ __commonJSMin(((exports, module) => {
28420
28542
  var { isUSVString, bufferToLowerCasedHeaderName } = require_util$7();
28421
28543
  var { utf8DecodeBytes } = require_util$6();
@@ -28614,7 +28736,7 @@ var require_formdata_parser = /* @__PURE__ */ __commonJSMin(((exports, module) =
28614
28736
  };
28615
28737
  }));
28616
28738
  //#endregion
28617
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/body.js
28739
+ //#region node_modules/undici/lib/web/fetch/body.js
28618
28740
  var require_body = /* @__PURE__ */ __commonJSMin(((exports, module) => {
28619
28741
  var util = require_util$7();
28620
28742
  var { ReadableStreamFrom, isBlobLike, isReadableStreamLike, readableStreamClose, createDeferredPromise, fullyReadBody, extractMimeType, utf8DecodeBytes } = require_util$6();
@@ -28871,7 +28993,7 @@ Content-Type: ${value.type || "application/octet-stream"}\r\n\r\n`);
28871
28993
  };
28872
28994
  }));
28873
28995
  //#endregion
28874
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/client-h1.js
28996
+ //#region node_modules/undici/lib/dispatcher/client-h1.js
28875
28997
  var require_client_h1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
28876
28998
  var assert$19 = __require("node:assert");
28877
28999
  var util = require_util$7();
@@ -29727,7 +29849,7 @@ var require_client_h1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
29727
29849
  module.exports = connectH1;
29728
29850
  }));
29729
29851
  //#endregion
29730
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/client-h2.js
29852
+ //#region node_modules/undici/lib/dispatcher/client-h2.js
29731
29853
  var require_client_h2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
29732
29854
  var assert$18 = __require("node:assert");
29733
29855
  var { pipeline: pipeline$2 } = __require("node:stream");
@@ -30113,7 +30235,7 @@ var require_client_h2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30113
30235
  module.exports = connectH2;
30114
30236
  }));
30115
30237
  //#endregion
30116
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/handler/redirect-handler.js
30238
+ //#region node_modules/undici/lib/handler/redirect-handler.js
30117
30239
  var require_redirect_handler = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30118
30240
  var util = require_util$7();
30119
30241
  var { kBodyUsed } = require_symbols$4();
@@ -30239,7 +30361,7 @@ var require_redirect_handler = /* @__PURE__ */ __commonJSMin(((exports, module)
30239
30361
  module.exports = RedirectHandler;
30240
30362
  }));
30241
30363
  //#endregion
30242
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/interceptor/redirect-interceptor.js
30364
+ //#region node_modules/undici/lib/interceptor/redirect-interceptor.js
30243
30365
  var require_redirect_interceptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30244
30366
  var RedirectHandler = require_redirect_handler();
30245
30367
  function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) {
@@ -30259,7 +30381,7 @@ var require_redirect_interceptor = /* @__PURE__ */ __commonJSMin(((exports, modu
30259
30381
  module.exports = createRedirectInterceptor;
30260
30382
  }));
30261
30383
  //#endregion
30262
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/client.js
30384
+ //#region node_modules/undici/lib/dispatcher/client.js
30263
30385
  var require_client = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30264
30386
  var assert$16 = __require("node:assert");
30265
30387
  var net = __require("node:net");
@@ -30594,7 +30716,7 @@ var require_client = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30594
30716
  module.exports = Client;
30595
30717
  }));
30596
30718
  //#endregion
30597
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/fixed-queue.js
30719
+ //#region node_modules/undici/lib/dispatcher/fixed-queue.js
30598
30720
  var require_fixed_queue = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30599
30721
  var kSize = 2048;
30600
30722
  var kMask = kSize - 1;
@@ -30643,7 +30765,7 @@ var require_fixed_queue = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30643
30765
  };
30644
30766
  }));
30645
30767
  //#endregion
30646
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/pool-stats.js
30768
+ //#region node_modules/undici/lib/dispatcher/pool-stats.js
30647
30769
  var require_pool_stats = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30648
30770
  var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols$4();
30649
30771
  var kPool = Symbol("pool");
@@ -30673,7 +30795,7 @@ var require_pool_stats = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30673
30795
  module.exports = PoolStats;
30674
30796
  }));
30675
30797
  //#endregion
30676
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/pool-base.js
30798
+ //#region node_modules/undici/lib/dispatcher/pool-base.js
30677
30799
  var require_pool_base = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30678
30800
  var DispatcherBase = require_dispatcher_base();
30679
30801
  var FixedQueue = require_fixed_queue();
@@ -30807,7 +30929,7 @@ var require_pool_base = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30807
30929
  };
30808
30930
  }));
30809
30931
  //#endregion
30810
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/pool.js
30932
+ //#region node_modules/undici/lib/dispatcher/pool.js
30811
30933
  var require_pool = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30812
30934
  var { PoolBase, kClients, kNeedDrain, kAddClient, kGetDispatcher } = require_pool_base();
30813
30935
  var Client = require_client();
@@ -30868,7 +30990,7 @@ var require_pool = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30868
30990
  module.exports = Pool;
30869
30991
  }));
30870
30992
  //#endregion
30871
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/balanced-pool.js
30993
+ //#region node_modules/undici/lib/dispatcher/balanced-pool.js
30872
30994
  var require_balanced_pool = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30873
30995
  var { BalancedPoolMissingUpstreamError, InvalidArgumentError } = require_errors();
30874
30996
  var { PoolBase, kClients, kNeedDrain, kAddClient, kRemoveClient, kGetDispatcher } = require_pool_base();
@@ -30979,7 +31101,7 @@ var require_balanced_pool = /* @__PURE__ */ __commonJSMin(((exports, module) =>
30979
31101
  module.exports = BalancedPool;
30980
31102
  }));
30981
31103
  //#endregion
30982
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/agent.js
31104
+ //#region node_modules/undici/lib/dispatcher/agent.js
30983
31105
  var require_agent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
30984
31106
  var { InvalidArgumentError } = require_errors();
30985
31107
  var { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols$4();
@@ -31059,7 +31181,7 @@ var require_agent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31059
31181
  module.exports = Agent;
31060
31182
  }));
31061
31183
  //#endregion
31062
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/proxy-agent.js
31184
+ //#region node_modules/undici/lib/dispatcher/proxy-agent.js
31063
31185
  var require_proxy_agent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31064
31186
  var { kProxy, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols$4();
31065
31187
  var { URL: URL$1 } = __require("node:url");
@@ -31257,7 +31379,7 @@ var require_proxy_agent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31257
31379
  module.exports = ProxyAgent;
31258
31380
  }));
31259
31381
  //#endregion
31260
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js
31382
+ //#region node_modules/undici/lib/dispatcher/env-http-proxy-agent.js
31261
31383
  var require_env_http_proxy_agent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31262
31384
  var DispatcherBase = require_dispatcher_base();
31263
31385
  var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols$4();
@@ -31357,7 +31479,7 @@ var require_env_http_proxy_agent = /* @__PURE__ */ __commonJSMin(((exports, modu
31357
31479
  module.exports = EnvHttpProxyAgent;
31358
31480
  }));
31359
31481
  //#endregion
31360
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/handler/retry-handler.js
31482
+ //#region node_modules/undici/lib/handler/retry-handler.js
31361
31483
  var require_retry_handler = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31362
31484
  var assert$15 = __require("node:assert");
31363
31485
  var { kRetryHandlerDefaultRetry } = require_symbols$4();
@@ -31579,7 +31701,7 @@ var require_retry_handler = /* @__PURE__ */ __commonJSMin(((exports, module) =>
31579
31701
  };
31580
31702
  }));
31581
31703
  //#endregion
31582
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/dispatcher/retry-agent.js
31704
+ //#region node_modules/undici/lib/dispatcher/retry-agent.js
31583
31705
  var require_retry_agent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31584
31706
  var Dispatcher = require_dispatcher();
31585
31707
  var RetryHandler = require_retry_handler();
@@ -31611,7 +31733,7 @@ var require_retry_agent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31611
31733
  module.exports = RetryAgent;
31612
31734
  }));
31613
31735
  //#endregion
31614
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/api/readable.js
31736
+ //#region node_modules/undici/lib/api/readable.js
31615
31737
  var require_readable = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31616
31738
  var assert$14 = __require("node:assert");
31617
31739
  var { Readable: Readable$2 } = __require("node:stream");
@@ -31839,7 +31961,7 @@ var require_readable = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31839
31961
  };
31840
31962
  }));
31841
31963
  //#endregion
31842
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/api/util.js
31964
+ //#region node_modules/undici/lib/api/util.js
31843
31965
  var require_util$5 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31844
31966
  var assert$13 = __require("node:assert");
31845
31967
  var { ResponseStatusCodeError } = require_errors();
@@ -31892,7 +32014,7 @@ var require_util$5 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31892
32014
  };
31893
32015
  }));
31894
32016
  //#endregion
31895
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/api/api-request.js
32017
+ //#region node_modules/undici/lib/api/api-request.js
31896
32018
  var require_api_request = /* @__PURE__ */ __commonJSMin(((exports, module) => {
31897
32019
  var assert$12 = __require("node:assert");
31898
32020
  var { Readable } = require_readable();
@@ -32044,7 +32166,7 @@ var require_api_request = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32044
32166
  module.exports.RequestHandler = RequestHandler;
32045
32167
  }));
32046
32168
  //#endregion
32047
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/api/abort-signal.js
32169
+ //#region node_modules/undici/lib/api/abort-signal.js
32048
32170
  var require_abort_signal = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32049
32171
  var { addAbortListener } = require_util$7();
32050
32172
  var { RequestAbortedError } = require_errors();
@@ -32083,7 +32205,7 @@ var require_abort_signal = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32083
32205
  };
32084
32206
  }));
32085
32207
  //#endregion
32086
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/api/api-stream.js
32208
+ //#region node_modules/undici/lib/api/api-stream.js
32087
32209
  var require_api_stream = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32088
32210
  var assert$11 = __require("node:assert");
32089
32211
  var { finished: finished$1, PassThrough: PassThrough$1 } = __require("node:stream");
@@ -32228,7 +32350,7 @@ var require_api_stream = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32228
32350
  module.exports = stream;
32229
32351
  }));
32230
32352
  //#endregion
32231
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/api/api-pipeline.js
32353
+ //#region node_modules/undici/lib/api/api-pipeline.js
32232
32354
  var require_api_pipeline = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32233
32355
  var { Readable: Readable$1, Duplex, PassThrough } = __require("node:stream");
32234
32356
  var { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError } = require_errors();
@@ -32396,7 +32518,7 @@ var require_api_pipeline = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32396
32518
  module.exports = pipeline;
32397
32519
  }));
32398
32520
  //#endregion
32399
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/api/api-upgrade.js
32521
+ //#region node_modules/undici/lib/api/api-upgrade.js
32400
32522
  var require_api_upgrade = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32401
32523
  var { InvalidArgumentError, SocketError } = require_errors();
32402
32524
  var { AsyncResource: AsyncResource$1 } = __require("node:async_hooks");
@@ -32475,7 +32597,7 @@ var require_api_upgrade = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32475
32597
  module.exports = upgrade;
32476
32598
  }));
32477
32599
  //#endregion
32478
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/api/api-connect.js
32600
+ //#region node_modules/undici/lib/api/api-connect.js
32479
32601
  var require_api_connect = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32480
32602
  var assert$8 = __require("node:assert");
32481
32603
  var { AsyncResource } = __require("node:async_hooks");
@@ -32553,7 +32675,7 @@ var require_api_connect = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32553
32675
  module.exports = connect;
32554
32676
  }));
32555
32677
  //#endregion
32556
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/api/index.js
32678
+ //#region node_modules/undici/lib/api/index.js
32557
32679
  var require_api = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32558
32680
  module.exports.request = require_api_request();
32559
32681
  module.exports.stream = require_api_stream();
@@ -32562,7 +32684,7 @@ var require_api = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32562
32684
  module.exports.connect = require_api_connect();
32563
32685
  }));
32564
32686
  //#endregion
32565
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/mock/mock-errors.js
32687
+ //#region node_modules/undici/lib/mock/mock-errors.js
32566
32688
  var require_mock_errors = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32567
32689
  var { UndiciError } = require_errors();
32568
32690
  var kMockNotMatchedError = Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED");
@@ -32581,7 +32703,7 @@ var require_mock_errors = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32581
32703
  } };
32582
32704
  }));
32583
32705
  //#endregion
32584
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/mock/mock-symbols.js
32706
+ //#region node_modules/undici/lib/mock/mock-symbols.js
32585
32707
  var require_mock_symbols = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32586
32708
  module.exports = {
32587
32709
  kAgent: Symbol("agent"),
@@ -32606,7 +32728,7 @@ var require_mock_symbols = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32606
32728
  };
32607
32729
  }));
32608
32730
  //#endregion
32609
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/mock/mock-utils.js
32731
+ //#region node_modules/undici/lib/mock/mock-utils.js
32610
32732
  var require_mock_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32611
32733
  var { MockNotMatchedError } = require_mock_errors();
32612
32734
  var { kDispatches, kMockAgent, kOriginalDispatch, kOrigin, kGetNetConnect } = require_mock_symbols();
@@ -32843,7 +32965,7 @@ var require_mock_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32843
32965
  };
32844
32966
  }));
32845
32967
  //#endregion
32846
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/mock/mock-interceptor.js
32968
+ //#region node_modules/undici/lib/mock/mock-interceptor.js
32847
32969
  var require_mock_interceptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32848
32970
  var { getResponseData, buildKey, addMockDispatch } = require_mock_utils();
32849
32971
  var { kDispatches, kDispatchKey, kDefaultHeaders, kDefaultTrailers, kContentLength, kMockDispatch } = require_mock_symbols();
@@ -32983,7 +33105,7 @@ var require_mock_interceptor = /* @__PURE__ */ __commonJSMin(((exports, module)
32983
33105
  module.exports.MockScope = MockScope;
32984
33106
  }));
32985
33107
  //#endregion
32986
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/mock/mock-client.js
33108
+ //#region node_modules/undici/lib/mock/mock-client.js
32987
33109
  var require_mock_client = /* @__PURE__ */ __commonJSMin(((exports, module) => {
32988
33110
  var { promisify: promisify$1 } = __require("node:util");
32989
33111
  var Client = require_client();
@@ -33026,7 +33148,7 @@ var require_mock_client = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33026
33148
  module.exports = MockClient;
33027
33149
  }));
33028
33150
  //#endregion
33029
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/mock/mock-pool.js
33151
+ //#region node_modules/undici/lib/mock/mock-pool.js
33030
33152
  var require_mock_pool = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33031
33153
  var { promisify } = __require("node:util");
33032
33154
  var Pool = require_pool();
@@ -33069,7 +33191,7 @@ var require_mock_pool = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33069
33191
  module.exports = MockPool;
33070
33192
  }));
33071
33193
  //#endregion
33072
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/mock/pluralizer.js
33194
+ //#region node_modules/undici/lib/mock/pluralizer.js
33073
33195
  var require_pluralizer = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33074
33196
  var singulars = {
33075
33197
  pronoun: "it",
@@ -33101,7 +33223,7 @@ var require_pluralizer = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33101
33223
  };
33102
33224
  }));
33103
33225
  //#endregion
33104
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/mock/pending-interceptors-formatter.js
33226
+ //#region node_modules/undici/lib/mock/pending-interceptors-formatter.js
33105
33227
  var require_pending_interceptors_formatter = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33106
33228
  var { Transform: Transform$1 } = __require("node:stream");
33107
33229
  var { Console } = __require("node:console");
@@ -33136,7 +33258,7 @@ var require_pending_interceptors_formatter = /* @__PURE__ */ __commonJSMin(((exp
33136
33258
  };
33137
33259
  }));
33138
33260
  //#endregion
33139
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/mock/mock-agent.js
33261
+ //#region node_modules/undici/lib/mock/mock-agent.js
33140
33262
  var require_mock_agent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33141
33263
  var { kClients } = require_symbols$4();
33142
33264
  var Agent = require_agent();
@@ -33239,7 +33361,7 @@ ${pendingInterceptorsFormatter.format(pending)}
33239
33361
  module.exports = MockAgent;
33240
33362
  }));
33241
33363
  //#endregion
33242
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/global.js
33364
+ //#region node_modules/undici/lib/global.js
33243
33365
  var require_global = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33244
33366
  var globalDispatcher = Symbol.for("undici.globalDispatcher.1");
33245
33367
  var { InvalidArgumentError } = require_errors();
@@ -33263,7 +33385,7 @@ var require_global = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33263
33385
  };
33264
33386
  }));
33265
33387
  //#endregion
33266
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/handler/decorator-handler.js
33388
+ //#region node_modules/undici/lib/handler/decorator-handler.js
33267
33389
  var require_decorator_handler = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33268
33390
  module.exports = class DecoratorHandler {
33269
33391
  #handler;
@@ -33298,7 +33420,7 @@ var require_decorator_handler = /* @__PURE__ */ __commonJSMin(((exports, module)
33298
33420
  };
33299
33421
  }));
33300
33422
  //#endregion
33301
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/interceptor/redirect.js
33423
+ //#region node_modules/undici/lib/interceptor/redirect.js
33302
33424
  var require_redirect = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33303
33425
  var RedirectHandler = require_redirect_handler();
33304
33426
  module.exports = (opts) => {
@@ -33313,7 +33435,7 @@ var require_redirect = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33313
33435
  };
33314
33436
  }));
33315
33437
  //#endregion
33316
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/interceptor/retry.js
33438
+ //#region node_modules/undici/lib/interceptor/retry.js
33317
33439
  var require_retry = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33318
33440
  var RetryHandler = require_retry_handler();
33319
33441
  module.exports = (globalOpts) => {
@@ -33334,7 +33456,7 @@ var require_retry = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33334
33456
  };
33335
33457
  }));
33336
33458
  //#endregion
33337
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/interceptor/dump.js
33459
+ //#region node_modules/undici/lib/interceptor/dump.js
33338
33460
  var require_dump = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33339
33461
  var util = require_util$7();
33340
33462
  var { InvalidArgumentError, RequestAbortedError } = require_errors();
@@ -33401,7 +33523,7 @@ var require_dump = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33401
33523
  module.exports = createDumpInterceptor;
33402
33524
  }));
33403
33525
  //#endregion
33404
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/interceptor/dns.js
33526
+ //#region node_modules/undici/lib/interceptor/dns.js
33405
33527
  var require_dns = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33406
33528
  var { isIP } = __require("node:net");
33407
33529
  var { lookup } = __require("node:dns");
@@ -33614,7 +33736,7 @@ var require_dns = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33614
33736
  };
33615
33737
  }));
33616
33738
  //#endregion
33617
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/headers.js
33739
+ //#region node_modules/undici/lib/web/fetch/headers.js
33618
33740
  var require_headers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33619
33741
  var { kConstruct } = require_symbols$4();
33620
33742
  var { kEnumerableProperty } = require_util$7();
@@ -33979,7 +34101,7 @@ var require_headers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33979
34101
  };
33980
34102
  }));
33981
34103
  //#endregion
33982
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/response.js
34104
+ //#region node_modules/undici/lib/web/fetch/response.js
33983
34105
  var require_response = /* @__PURE__ */ __commonJSMin(((exports, module) => {
33984
34106
  var { Headers, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers();
33985
34107
  var { extractBody, cloneBody, mixinBody, hasFinalizationRegistry, streamRegistry, bodyUnusable } = require_body();
@@ -34292,7 +34414,7 @@ var require_response = /* @__PURE__ */ __commonJSMin(((exports, module) => {
34292
34414
  };
34293
34415
  }));
34294
34416
  //#endregion
34295
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/dispatcher-weakref.js
34417
+ //#region node_modules/undici/lib/web/fetch/dispatcher-weakref.js
34296
34418
  var require_dispatcher_weakref = /* @__PURE__ */ __commonJSMin(((exports, module) => {
34297
34419
  var { kConnected, kSize } = require_symbols$4();
34298
34420
  var CompatWeakRef = class {
@@ -34329,7 +34451,7 @@ var require_dispatcher_weakref = /* @__PURE__ */ __commonJSMin(((exports, module
34329
34451
  };
34330
34452
  }));
34331
34453
  //#endregion
34332
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/request.js
34454
+ //#region node_modules/undici/lib/web/fetch/request.js
34333
34455
  var require_request = /* @__PURE__ */ __commonJSMin(((exports, module) => {
34334
34456
  var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body();
34335
34457
  var { Headers, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers();
@@ -34838,7 +34960,7 @@ var require_request = /* @__PURE__ */ __commonJSMin(((exports, module) => {
34838
34960
  };
34839
34961
  }));
34840
34962
  //#endregion
34841
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fetch/index.js
34963
+ //#region node_modules/undici/lib/web/fetch/index.js
34842
34964
  var require_fetch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
34843
34965
  var { makeNetworkError, makeAppropriateNetworkError, filterResponse, makeResponse, fromInnerResponse } = require_response();
34844
34966
  var { HeadersList } = require_headers();
@@ -35536,7 +35658,7 @@ var require_fetch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
35536
35658
  };
35537
35659
  }));
35538
35660
  //#endregion
35539
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fileapi/symbols.js
35661
+ //#region node_modules/undici/lib/web/fileapi/symbols.js
35540
35662
  var require_symbols$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
35541
35663
  module.exports = {
35542
35664
  kState: Symbol("FileReader state"),
@@ -35548,7 +35670,7 @@ var require_symbols$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
35548
35670
  };
35549
35671
  }));
35550
35672
  //#endregion
35551
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fileapi/progressevent.js
35673
+ //#region node_modules/undici/lib/web/fileapi/progressevent.js
35552
35674
  var require_progressevent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
35553
35675
  var { webidl } = require_webidl();
35554
35676
  var kState = Symbol("ProgressEvent state");
@@ -35614,7 +35736,7 @@ var require_progressevent = /* @__PURE__ */ __commonJSMin(((exports, module) =>
35614
35736
  module.exports = { ProgressEvent };
35615
35737
  }));
35616
35738
  //#endregion
35617
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fileapi/encoding.js
35739
+ //#region node_modules/undici/lib/web/fileapi/encoding.js
35618
35740
  var require_encoding = /* @__PURE__ */ __commonJSMin(((exports, module) => {
35619
35741
  /**
35620
35742
  * @see https://encoding.spec.whatwg.org/#concept-encoding-get
@@ -35856,7 +35978,7 @@ var require_encoding = /* @__PURE__ */ __commonJSMin(((exports, module) => {
35856
35978
  module.exports = { getEncoding };
35857
35979
  }));
35858
35980
  //#endregion
35859
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fileapi/util.js
35981
+ //#region node_modules/undici/lib/web/fileapi/util.js
35860
35982
  var require_util$4 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
35861
35983
  var { kState, kError, kResult, kAborted, kLastProgressEventFired } = require_symbols$2();
35862
35984
  var { ProgressEvent } = require_progressevent();
@@ -36032,7 +36154,7 @@ var require_util$4 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36032
36154
  };
36033
36155
  }));
36034
36156
  //#endregion
36035
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/fileapi/filereader.js
36157
+ //#region node_modules/undici/lib/web/fileapi/filereader.js
36036
36158
  var require_filereader = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36037
36159
  var { staticPropertyDescriptors, readOperation, fireAProgressEvent } = require_util$4();
36038
36160
  var { kState, kError, kResult, kEvents, kAborted } = require_symbols$2();
@@ -36245,12 +36367,12 @@ var require_filereader = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36245
36367
  module.exports = { FileReader };
36246
36368
  }));
36247
36369
  //#endregion
36248
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/cache/symbols.js
36370
+ //#region node_modules/undici/lib/web/cache/symbols.js
36249
36371
  var require_symbols$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36250
36372
  module.exports = { kConstruct: require_symbols$4().kConstruct };
36251
36373
  }));
36252
36374
  //#endregion
36253
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/cache/util.js
36375
+ //#region node_modules/undici/lib/web/cache/util.js
36254
36376
  var require_util$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36255
36377
  var assert$3 = __require("node:assert");
36256
36378
  var { URLSerializer } = require_data_url();
@@ -36284,7 +36406,7 @@ var require_util$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36284
36406
  };
36285
36407
  }));
36286
36408
  //#endregion
36287
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/cache/cache.js
36409
+ //#region node_modules/undici/lib/web/cache/cache.js
36288
36410
  var require_cache = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36289
36411
  var { kConstruct } = require_symbols$1();
36290
36412
  var { urlEquals, getFieldValues } = require_util$3();
@@ -36733,7 +36855,7 @@ var require_cache = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36733
36855
  module.exports = { Cache };
36734
36856
  }));
36735
36857
  //#endregion
36736
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/cache/cachestorage.js
36858
+ //#region node_modules/undici/lib/web/cache/cachestorage.js
36737
36859
  var require_cachestorage = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36738
36860
  var { kConstruct } = require_symbols$1();
36739
36861
  var { Cache } = require_cache();
@@ -36823,7 +36945,7 @@ var require_cachestorage = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36823
36945
  module.exports = { CacheStorage };
36824
36946
  }));
36825
36947
  //#endregion
36826
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/cookies/constants.js
36948
+ //#region node_modules/undici/lib/web/cookies/constants.js
36827
36949
  var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36828
36950
  module.exports = {
36829
36951
  maxAttributeValueSize: 1024,
@@ -36831,7 +36953,7 @@ var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36831
36953
  };
36832
36954
  }));
36833
36955
  //#endregion
36834
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/cookies/util.js
36956
+ //#region node_modules/undici/lib/web/cookies/util.js
36835
36957
  var require_util$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
36836
36958
  /**
36837
36959
  * @param {string} value
@@ -37025,7 +37147,7 @@ var require_util$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37025
37147
  };
37026
37148
  }));
37027
37149
  //#endregion
37028
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/cookies/parse.js
37150
+ //#region node_modules/undici/lib/web/cookies/parse.js
37029
37151
  var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37030
37152
  var { maxNameValuePairSize, maxAttributeValueSize } = require_constants$1();
37031
37153
  var { isCTLExcludingHtab } = require_util$2();
@@ -37127,7 +37249,7 @@ var require_parse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37127
37249
  };
37128
37250
  }));
37129
37251
  //#endregion
37130
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/cookies/index.js
37252
+ //#region node_modules/undici/lib/web/cookies/index.js
37131
37253
  var require_cookies = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37132
37254
  var { parseSetCookie } = require_parse();
37133
37255
  var { stringify } = require_util$2();
@@ -37278,7 +37400,7 @@ var require_cookies = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37278
37400
  };
37279
37401
  }));
37280
37402
  //#endregion
37281
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/websocket/events.js
37403
+ //#region node_modules/undici/lib/web/websocket/events.js
37282
37404
  var require_events = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37283
37405
  var { webidl } = require_webidl();
37284
37406
  var { kEnumerableProperty } = require_util$7();
@@ -37541,7 +37663,7 @@ var require_events = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37541
37663
  };
37542
37664
  }));
37543
37665
  //#endregion
37544
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/websocket/constants.js
37666
+ //#region node_modules/undici/lib/web/websocket/constants.js
37545
37667
  var require_constants = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37546
37668
  module.exports = {
37547
37669
  uid: "258EAFA5-E914-47DA-95CA-C5AB0DC85B11",
@@ -37586,7 +37708,7 @@ var require_constants = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37586
37708
  };
37587
37709
  }));
37588
37710
  //#endregion
37589
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/websocket/symbols.js
37711
+ //#region node_modules/undici/lib/web/websocket/symbols.js
37590
37712
  var require_symbols = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37591
37713
  module.exports = {
37592
37714
  kWebSocketURL: Symbol("url"),
@@ -37600,7 +37722,7 @@ var require_symbols = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37600
37722
  };
37601
37723
  }));
37602
37724
  //#endregion
37603
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/websocket/util.js
37725
+ //#region node_modules/undici/lib/web/websocket/util.js
37604
37726
  var require_util$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37605
37727
  var { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require_symbols();
37606
37728
  var { states, opcodes } = require_constants();
@@ -37782,7 +37904,7 @@ var require_util$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37782
37904
  };
37783
37905
  }));
37784
37906
  //#endregion
37785
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/websocket/frame.js
37907
+ //#region node_modules/undici/lib/web/websocket/frame.js
37786
37908
  var require_frame = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37787
37909
  var { maxUnsigned16Bit } = require_constants();
37788
37910
  var BUFFER_SIZE = 16386;
@@ -37854,7 +37976,7 @@ var require_frame = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37854
37976
  module.exports = { WebsocketFrameSend };
37855
37977
  }));
37856
37978
  //#endregion
37857
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/websocket/connection.js
37979
+ //#region node_modules/undici/lib/web/websocket/connection.js
37858
37980
  var require_connection = /* @__PURE__ */ __commonJSMin(((exports, module) => {
37859
37981
  var { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = require_constants();
37860
37982
  var { kReadyState, kSentClose, kByteParser, kReceivedClose, kResponse } = require_symbols();
@@ -38019,7 +38141,7 @@ var require_connection = /* @__PURE__ */ __commonJSMin(((exports, module) => {
38019
38141
  };
38020
38142
  }));
38021
38143
  //#endregion
38022
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/websocket/permessage-deflate.js
38144
+ //#region node_modules/undici/lib/web/websocket/permessage-deflate.js
38023
38145
  var require_permessage_deflate = /* @__PURE__ */ __commonJSMin(((exports, module) => {
38024
38146
  var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __require("node:zlib");
38025
38147
  var { isValidClientWindowBits } = require_util$1();
@@ -38098,7 +38220,7 @@ var require_permessage_deflate = /* @__PURE__ */ __commonJSMin(((exports, module
38098
38220
  module.exports = { PerMessageDeflate };
38099
38221
  }));
38100
38222
  //#endregion
38101
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/websocket/receiver.js
38223
+ //#region node_modules/undici/lib/web/websocket/receiver.js
38102
38224
  var require_receiver = /* @__PURE__ */ __commonJSMin(((exports, module) => {
38103
38225
  var { Writable } = __require("node:stream");
38104
38226
  var assert = __require("node:assert");
@@ -38415,7 +38537,7 @@ var require_receiver = /* @__PURE__ */ __commonJSMin(((exports, module) => {
38415
38537
  module.exports = { ByteParser };
38416
38538
  }));
38417
38539
  //#endregion
38418
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/websocket/sender.js
38540
+ //#region node_modules/undici/lib/web/websocket/sender.js
38419
38541
  var require_sender = /* @__PURE__ */ __commonJSMin(((exports, module) => {
38420
38542
  var { WebsocketFrameSend } = require_frame();
38421
38543
  var { opcodes, sendHints } = require_constants();
@@ -38495,7 +38617,7 @@ var require_sender = /* @__PURE__ */ __commonJSMin(((exports, module) => {
38495
38617
  module.exports = { SendQueue };
38496
38618
  }));
38497
38619
  //#endregion
38498
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/websocket/websocket.js
38620
+ //#region node_modules/undici/lib/web/websocket/websocket.js
38499
38621
  var require_websocket = /* @__PURE__ */ __commonJSMin(((exports, module) => {
38500
38622
  var { webidl } = require_webidl();
38501
38623
  var { URLSerializer } = require_data_url();
@@ -38796,7 +38918,7 @@ var require_websocket = /* @__PURE__ */ __commonJSMin(((exports, module) => {
38796
38918
  module.exports = { WebSocket };
38797
38919
  }));
38798
38920
  //#endregion
38799
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/eventsource/util.js
38921
+ //#region node_modules/undici/lib/web/eventsource/util.js
38800
38922
  var require_util = /* @__PURE__ */ __commonJSMin(((exports, module) => {
38801
38923
  /**
38802
38924
  * Checks if the given value is a valid LastEventId.
@@ -38828,7 +38950,7 @@ var require_util = /* @__PURE__ */ __commonJSMin(((exports, module) => {
38828
38950
  };
38829
38951
  }));
38830
38952
  //#endregion
38831
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/eventsource/eventsource-stream.js
38953
+ //#region node_modules/undici/lib/web/eventsource/eventsource-stream.js
38832
38954
  var require_eventsource_stream = /* @__PURE__ */ __commonJSMin(((exports, module) => {
38833
38955
  var { Transform } = __require("node:stream");
38834
38956
  var { isASCIINumber, isValidLastEventId } = require_util();
@@ -39050,7 +39172,7 @@ var require_eventsource_stream = /* @__PURE__ */ __commonJSMin(((exports, module
39050
39172
  module.exports = { EventSourceStream };
39051
39173
  }));
39052
39174
  //#endregion
39053
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/lib/web/eventsource/eventsource.js
39175
+ //#region node_modules/undici/lib/web/eventsource/eventsource.js
39054
39176
  var require_eventsource = /* @__PURE__ */ __commonJSMin(((exports, module) => {
39055
39177
  var { pipeline } = __require("node:stream");
39056
39178
  var { fetching } = require_fetch();
@@ -39363,7 +39485,7 @@ var require_eventsource = /* @__PURE__ */ __commonJSMin(((exports, module) => {
39363
39485
  };
39364
39486
  }));
39365
39487
  //#endregion
39366
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/undici/index.js
39488
+ //#region node_modules/undici/index.js
39367
39489
  var require_undici = /* @__PURE__ */ __commonJSMin(((exports, module) => {
39368
39490
  var Client = require_client();
39369
39491
  var Dispatcher = require_dispatcher();
@@ -39488,7 +39610,7 @@ var require_undici = /* @__PURE__ */ __commonJSMin(((exports, module) => {
39488
39610
  module.exports.EventSource = EventSource;
39489
39611
  }));
39490
39612
  //#endregion
39491
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/helpers/util.js
39613
+ //#region node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/helpers/util.js
39492
39614
  var util;
39493
39615
  (function(util) {
39494
39616
  util.assertEqual = (_) => {};
@@ -39584,7 +39706,7 @@ var getParsedType = (data) => {
39584
39706
  }
39585
39707
  };
39586
39708
  //#endregion
39587
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/ZodError.js
39709
+ //#region node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/ZodError.js
39588
39710
  var ZodIssueCode = util.arrayToEnum([
39589
39711
  "invalid_type",
39590
39712
  "invalid_literal",
@@ -39683,7 +39805,7 @@ ZodError.create = (issues) => {
39683
39805
  return new ZodError(issues);
39684
39806
  };
39685
39807
  //#endregion
39686
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/locales/en.js
39808
+ //#region node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/locales/en.js
39687
39809
  var errorMap = (issue, _ctx) => {
39688
39810
  let message;
39689
39811
  switch (issue.code) {
@@ -39760,13 +39882,13 @@ var errorMap = (issue, _ctx) => {
39760
39882
  return { message };
39761
39883
  };
39762
39884
  //#endregion
39763
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/errors.js
39885
+ //#region node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/errors.js
39764
39886
  var overrideErrorMap = errorMap;
39765
39887
  function getErrorMap() {
39766
39888
  return overrideErrorMap;
39767
39889
  }
39768
39890
  //#endregion
39769
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/helpers/parseUtil.js
39891
+ //#region node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/helpers/parseUtil.js
39770
39892
  var makeIssue = (params) => {
39771
39893
  const { data, path, errorMaps, issueData } = params;
39772
39894
  const fullPath = [...path, ...issueData.path || []];
@@ -39870,14 +39992,14 @@ var isDirty = (x) => x.status === "dirty";
39870
39992
  var isValid = (x) => x.status === "valid";
39871
39993
  var isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
39872
39994
  //#endregion
39873
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/helpers/errorUtil.js
39995
+ //#region node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/helpers/errorUtil.js
39874
39996
  var errorUtil;
39875
39997
  (function(errorUtil) {
39876
39998
  errorUtil.errToObj = (message) => typeof message === "string" ? { message } : message || {};
39877
39999
  errorUtil.toString = (message) => typeof message === "string" ? message : message?.message;
39878
40000
  })(errorUtil || (errorUtil = {}));
39879
40001
  //#endregion
39880
- //#region ../../node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/types.js
40002
+ //#region node_modules/@apocaliss92/nodewitt/node_modules/zod/v3/types.js
39881
40003
  var ParseInputLazyPath = class {
39882
40004
  constructor(parent, value, path, key) {
39883
40005
  this._cachedPath = [];
@@ -43029,7 +43151,7 @@ ZodNullable.create;
43029
43151
  ZodEffects.createWithPreprocess;
43030
43152
  ZodPipeline.create;
43031
43153
  //#endregion
43032
- //#region ../../node_modules/@apocaliss92/nodewitt/dist/index.js
43154
+ //#region node_modules/@apocaliss92/nodewitt/dist/index.js
43033
43155
  var import_undici = require_undici();
43034
43156
  var DEFAULT_PORT = 80;
43035
43157
  var DEFAULT_TIMEOUT_MS = 3e4;
@@ -43983,6 +44105,71 @@ var fixed = {
43983
44105
  combo: [...COMBO_KEYS],
43984
44106
  co2_pm: [...COMBO_KEYS]
43985
44107
  };
44108
+ var WEATHER_STATION_MODELS = /* @__PURE__ */ new Set([
44109
+ "wh69",
44110
+ "wh65",
44111
+ "ws90",
44112
+ "wh80",
44113
+ "ws80",
44114
+ "wh90",
44115
+ "wh77",
44116
+ "wh85",
44117
+ "ws85",
44118
+ "wh68",
44119
+ "weather_station",
44120
+ "weather_station_wh69",
44121
+ "weather_station_ws90",
44122
+ "weather_station_wh90",
44123
+ "weather_station_wh77"
44124
+ ]);
44125
+ var CHANNEL_SENSOR_MODELS = /* @__PURE__ */ new Set([
44126
+ "wh31",
44127
+ "wh41",
44128
+ "wh52",
44129
+ "wh51",
44130
+ "wh55",
44131
+ "wh34",
44132
+ "wn34",
44133
+ "wh35",
44134
+ "wn35",
44135
+ "wh54",
44136
+ "temp_hum",
44137
+ "pm25",
44138
+ "soil",
44139
+ "soil_ec",
44140
+ "leak",
44141
+ "temp_only",
44142
+ "leaf_wetness",
44143
+ "lds"
44144
+ ]);
44145
+ var EXTERNAL_MODELS = /* @__PURE__ */ new Set([
44146
+ "wh57",
44147
+ "wh40",
44148
+ "wh45",
44149
+ "wh46",
44150
+ "lightning",
44151
+ "rain",
44152
+ "combo",
44153
+ "co2_pm"
44154
+ ]);
44155
+ var GATEWAY_MODELS = /* @__PURE__ */ new Set([
44156
+ "wh25",
44157
+ "indoor_station",
44158
+ "wh26",
44159
+ "wn32",
44160
+ "outdoor_temp_hum",
44161
+ "wn38",
44162
+ "bgt"
44163
+ ]);
44164
+ function categoryForModel(model) {
44165
+ const key = norm(model ?? "");
44166
+ if (key === "") return "gateway";
44167
+ if (WEATHER_STATION_MODELS.has(key)) return "weather-station";
44168
+ if (CHANNEL_SENSOR_MODELS.has(key)) return "channel-sensor";
44169
+ if (EXTERNAL_MODELS.has(key)) return "external";
44170
+ if (GATEWAY_MODELS.has(key)) return "gateway";
44171
+ return "gateway";
44172
+ }
43986
44173
  function liveDataKeysForModel(model, channel) {
43987
44174
  const key = norm(model);
43988
44175
  const channelBuilder = Object.prototype.hasOwnProperty.call(channelized, key) ? channelized[key] : void 0;
@@ -44075,6 +44262,7 @@ var LocalPoller = class {
44075
44262
  scanTimer;
44076
44263
  mappingTimer;
44077
44264
  started = false;
44265
+ mappingPrimed = false;
44078
44266
  gatewayTempUnit = "C";
44079
44267
  stationInfo = {};
44080
44268
  /** Gateway identity (model/firmware) captured from the last `/get_version`. Best-effort. */
@@ -44111,6 +44299,7 @@ var LocalPoller = class {
44111
44299
  this.scanTimer = void 0;
44112
44300
  this.mappingTimer = void 0;
44113
44301
  this.started = false;
44302
+ this.mappingPrimed = false;
44114
44303
  }
44115
44304
  /** Re-read the gateway unit + sensor list and rebuild the live-key -> hardware-id mapping. Offline-tolerant. */
44116
44305
  async refreshMapping() {
@@ -44125,6 +44314,7 @@ var LocalPoller = class {
44125
44314
  };
44126
44315
  const sensors = await this.opts.endpoints.getAllSensors();
44127
44316
  this.mapper.updateMapping(sensors);
44317
+ this.mappingPrimed = true;
44128
44318
  } catch (error) {
44129
44319
  this.opts.onError(error);
44130
44320
  }
@@ -44132,12 +44322,14 @@ var LocalPoller = class {
44132
44322
  /** Fetch + decode + resolve a single live-data snapshot, then emit it. Offline-tolerant. */
44133
44323
  async poll() {
44134
44324
  try {
44325
+ if (!this.mappingPrimed) await this.refreshMapping();
44135
44326
  const raw = await this.opts.endpoints.getLiveData();
44136
44327
  this.opts.onRawFrame?.(raw);
44137
44328
  const resolved = decodeLiveData(raw, this.mapper, {}, this.gatewayTempUnit).map((reading) => ({
44138
44329
  ...reading,
44139
44330
  hardwareId: GATEWAY_KEYS.has(reading.key) ? void 0 : reading.forceHardwareId ?? this.mapper.getHardwareId(reading.key)
44140
44331
  }));
44332
+ if (!this.mappingPrimed) return;
44141
44333
  this.opts.onReadings(resolved);
44142
44334
  } catch (error) {
44143
44335
  this.opts.onError(error);
@@ -44741,11 +44933,13 @@ var Station = class {
44741
44933
  const info = lookup.getSensorInfoForKey(r.key) ?? (owner !== void 0 ? lookup.getSensorInfo(owner) : void 0);
44742
44934
  const id = `${owner ?? GATEWAY_OWNER}:${r.key}`;
44743
44935
  const signal = signalToNumber(info?.signal);
44936
+ const category = categoryForModel(info?.model);
44744
44937
  this.upsert(id, {
44745
44938
  id,
44746
44939
  ...owner !== void 0 ? { hardwareId: owner } : {},
44747
44940
  ...info?.model ? { model: info.model } : {},
44748
44941
  ...info?.channel !== void 0 ? { channel: info.channel } : {},
44942
+ category,
44749
44943
  ...cls.name !== void 0 ? { name: cls.name } : {},
44750
44944
  quantity: cls.quantity,
44751
44945
  value: r.value,
@@ -44777,9 +44971,11 @@ var Station = class {
44777
44971
  if (cls.kind === "battery") continue;
44778
44972
  if (cls.kind !== "measurement") continue;
44779
44973
  const id = `${this.pushOwner(passkey, r.channel)}:${r.key}`;
44974
+ const category = r.channel !== void 0 ? "channel-sensor" : "gateway";
44780
44975
  this.upsert(id, {
44781
44976
  id,
44782
44977
  ...r.channel !== void 0 ? { channel: r.channel } : {},
44978
+ category,
44783
44979
  ...cls.name !== void 0 ? { name: cls.name } : {},
44784
44980
  quantity: cls.quantity,
44785
44981
  value: r.value,
@@ -45247,502 +45443,52 @@ var EcowittIntegrationManager = class {
45247
45443
  await this.start();
45248
45444
  }
45249
45445
  };
45250
- /** True when two configs are the "same connection" (no facade rebuild needed). */
45251
- function sameConnection(a, b) {
45252
- if (a === null || b === null) return false;
45253
- if (a.transport !== b.transport) return false;
45254
- if (a.transport === "local" && b.transport === "local") return a.host === b.host && a.port === b.port && a.password === b.password && a.pollIntervalMs === b.pollIntervalMs && a.mappingIntervalMs === b.mappingIntervalMs;
45255
- if (a.transport === "listener" && b.transport === "listener") return a.listenPort === b.listenPort && a.listenHost === b.listenHost;
45256
- return false;
45257
- }
45258
45446
  //#endregion
45259
45447
  //#region src/ecowitt-gateway.ts
45260
45448
  /**
45261
- * Per-broker registry that device classes use to reach the live {@link Ecowitt}
45262
- * facade (and its current sensor snapshot) for a given gateway.
45449
+ * Per-gateway registry that device classes use to reach the live {@link Ecowitt}
45450
+ * client (and its current sensor snapshot) for a given gateway. Keyed on the
45451
+ * gateway {@link import('@camstack/types').DeviceType.Hub} device's `stableId`
45452
+ * (standalone mode — the connection lives on the gateway device, not a broker).
45263
45453
  *
45264
- * Because the nodewitt facade's `stop()` is TERMINAL, the integration manager
45265
- * recreates the facade on reconnect / settings change and re-publishes it here.
45266
- * Device classes always read through the resolver, so they transparently pick up
45267
- * the new facade. Mirrors the Homematic / Dreame in-process facade resolver.
45454
+ * Because the nodewitt client's `stop()` is TERMINAL, the gateway device
45455
+ * recreates the client on reconnect / settings change and re-publishes it here.
45456
+ * Container + sensor children always read through the resolver, so they
45457
+ * transparently pick up the new client. Mirrors the Homematic / Dreame in-process
45458
+ * facade resolver.
45268
45459
  */
45269
45460
  var EcowittFacadeResolver = class {
45270
45461
  #facades = /* @__PURE__ */ new Map();
45271
- /** Publish or remove the facade for a broker id. `null` removes the entry. */
45272
- set(brokerId, facade) {
45462
+ /** Publish or remove the client for a gateway id. `null` removes the entry. */
45463
+ set(gatewayId, facade) {
45273
45464
  if (facade === null) {
45274
- this.#facades.delete(brokerId);
45465
+ this.#facades.delete(gatewayId);
45275
45466
  return;
45276
45467
  }
45277
- this.#facades.set(brokerId, facade);
45468
+ this.#facades.set(gatewayId, facade);
45278
45469
  }
45279
- /** The live facade for a broker id, or null when unknown / stopped. */
45280
- get(brokerId) {
45281
- return this.#facades.get(brokerId) ?? null;
45470
+ /** The live client for a gateway id, or null when unknown / stopped. */
45471
+ get(gatewayId) {
45472
+ return this.#facades.get(gatewayId) ?? null;
45282
45473
  }
45283
- /** All current sensors for a broker's gateway, or [] when unknown. */
45284
- getSensors(brokerId) {
45285
- return this.#facades.get(brokerId)?.getSensors() ?? [];
45474
+ /** All current sensors for a gateway, or [] when unknown. */
45475
+ getSensors(gatewayId) {
45476
+ return this.#facades.get(gatewayId)?.getSensors() ?? [];
45286
45477
  }
45287
- /** Resolve a single sensor by its stable id for a broker, or null. */
45288
- getSensor(brokerId, sensorId) {
45289
- return this.getSensors(brokerId).find((s) => s.id === sensorId) ?? null;
45478
+ /** Resolve a single sensor by its stable id for a gateway, or null. */
45479
+ getSensor(gatewayId, sensorId) {
45480
+ return this.getSensors(gatewayId).find((s) => s.id === sensorId) ?? null;
45290
45481
  }
45291
- /** Remove all registered facades (called on full shutdown). */
45482
+ /** Remove all registered clients (called on full shutdown). */
45292
45483
  clear() {
45293
45484
  this.#facades.clear();
45294
45485
  }
45295
45486
  };
45296
- /** The single in-process per-broker facade resolver shared between the registry
45297
- * and device instances. */
45487
+ /** The single in-process per-gateway client resolver shared between the gateway
45488
+ * device and its container / sensor children. */
45298
45489
  var ecowittFacades = new EcowittFacadeResolver();
45299
45490
  //#endregion
45300
- //#region src/ecowitt-broker-registry.ts
45301
- /**
45302
- * Manages N live Ecowitt gateway connections ("brokers"), each backed by an
45303
- * {@link EcowittIntegrationManager}. Allocates stable ids (`ecowitt_001`, …),
45304
- * CRUD, an integration FK index, lifecycle helpers. Mirrors the Homematic /
45305
- * Dreame registry; on the default factory path it publishes each freshly-built
45306
- * facade on `ecowittFacades` so device classes can read sensors in-process.
45307
- */
45308
- var EcowittBrokerRegistry = class {
45309
- #logger;
45310
- #onBrokerConnected;
45311
- #onBrokerDisconnected;
45312
- #onSensorsChanged;
45313
- #makeManager;
45314
- #managers = /* @__PURE__ */ new Map();
45315
- #integrationToBroker = /* @__PURE__ */ new Map();
45316
- #nextId = 1;
45317
- constructor(logger, deps = {}) {
45318
- this.#logger = logger;
45319
- this.#onBrokerConnected = deps.onBrokerConnected ?? (() => void 0);
45320
- this.#onBrokerDisconnected = deps.onBrokerDisconnected ?? (() => void 0);
45321
- this.#onSensorsChanged = deps.onSensorsChanged ?? (() => void 0);
45322
- this.#makeManager = deps.makeManager ?? ((opts) => new EcowittIntegrationManager({
45323
- id: opts.id,
45324
- name: opts.name,
45325
- connection: opts.connection,
45326
- logger: opts.logger,
45327
- onConnected: opts.onConnected,
45328
- onDisconnected: opts.onDisconnected,
45329
- onSensorsChanged: opts.onSensorsChanged,
45330
- onFacadeBuilt: (id, facade) => ecowittFacades.set(id, facade)
45331
- }));
45332
- }
45333
- async restore(entries) {
45334
- for (const entry of entries) this.#seedCounter(entry.id);
45335
- for (const entry of entries) try {
45336
- await this.#startManager(entry);
45337
- } catch (err) {
45338
- this.#logger.warn("EcowittBrokerRegistry: failed to restore manager", {
45339
- tags: { brokerId: entry.id },
45340
- meta: { error: errMsg(err) }
45341
- });
45342
- }
45343
- }
45344
- async shutdown() {
45345
- const ids = Array.from(this.#managers.keys());
45346
- await Promise.all(ids.map(async (id) => {
45347
- try {
45348
- await this.#managers.get(id)?.stop();
45349
- } catch (err) {
45350
- this.#logger.warn("EcowittBrokerRegistry: shutdown stop failed", {
45351
- tags: { brokerId: id },
45352
- meta: { error: errMsg(err) }
45353
- });
45354
- }
45355
- }));
45356
- this.#managers.clear();
45357
- this.#integrationToBroker.clear();
45358
- ecowittFacades.clear();
45359
- }
45360
- setOnBrokerConnected(cb) {
45361
- this.#onBrokerConnected = cb;
45362
- }
45363
- setOnBrokerDisconnected(cb) {
45364
- this.#onBrokerDisconnected = cb;
45365
- }
45366
- setOnSensorsChanged(cb) {
45367
- this.#onSensorsChanged = cb;
45368
- }
45369
- async createEntry(name, connection, opts = {}) {
45370
- const id = this.#allocateId();
45371
- const entry = {
45372
- id,
45373
- name,
45374
- connection,
45375
- ...opts.integrationId !== void 0 ? { integrationId: opts.integrationId } : {}
45376
- };
45377
- await this.#startManager(entry);
45378
- if (opts.integrationId !== void 0) this.#integrationToBroker.set(opts.integrationId, id);
45379
- return entry;
45380
- }
45381
- async removeEntry(id) {
45382
- const mgr = this.#managers.get(id);
45383
- if (!mgr) throw new Error(`EcowittBrokerRegistry: unknown broker id "${id}"`);
45384
- for (const [integrationId, brokerId] of this.#integrationToBroker.entries()) if (brokerId === id) this.#integrationToBroker.delete(integrationId);
45385
- this.#managers.delete(id);
45386
- ecowittFacades.set(id, null);
45387
- try {
45388
- await mgr.stop();
45389
- } catch (err) {
45390
- this.#logger.warn("EcowittBrokerRegistry: removeEntry stop failed", {
45391
- tags: { brokerId: id },
45392
- meta: { error: errMsg(err) }
45393
- });
45394
- }
45395
- }
45396
- async updateEntry(id, connection) {
45397
- const mgr = this.#managers.get(id);
45398
- if (!mgr) throw new Error(`EcowittBrokerRegistry: unknown broker id "${id}"`);
45399
- await mgr.applyConnection(connection);
45400
- return {
45401
- id,
45402
- name: mgr.getInfo().name,
45403
- connection
45404
- };
45405
- }
45406
- linkIntegration(integrationId, brokerId) {
45407
- this.#integrationToBroker.set(integrationId, brokerId);
45408
- }
45409
- getBrokerIdByIntegrationId(integrationId) {
45410
- const brokerId = this.#integrationToBroker.get(integrationId);
45411
- if (brokerId === void 0) throw new Error(`EcowittBrokerRegistry: no broker linked for integration id "${integrationId}"`);
45412
- return brokerId;
45413
- }
45414
- list() {
45415
- return Array.from(this.#managers.values()).map((m) => m.getInfo());
45416
- }
45417
- get(id) {
45418
- return this.#managers.get(id)?.getInfo() ?? null;
45419
- }
45420
- getConnection(id) {
45421
- return this.#managers.get(id)?.getConnection() ?? null;
45422
- }
45423
- size() {
45424
- return this.#managers.size;
45425
- }
45426
- connectedCount() {
45427
- let count = 0;
45428
- for (const mgr of this.#managers.values()) if (mgr.getInfo().status === "connected") count++;
45429
- return count;
45430
- }
45431
- async #startManager(entry) {
45432
- if (this.#managers.has(entry.id)) {
45433
- if (entry.integrationId !== void 0) this.#integrationToBroker.set(entry.integrationId, entry.id);
45434
- return;
45435
- }
45436
- const mgr = this.#makeManager({
45437
- id: entry.id,
45438
- name: entry.name,
45439
- connection: entry.connection,
45440
- logger: this.#logger,
45441
- onConnected: (id) => this.#onBrokerConnected(id),
45442
- onDisconnected: (id) => this.#onBrokerDisconnected(id),
45443
- onSensorsChanged: (id, sensors) => this.#onSensorsChanged(id, sensors)
45444
- });
45445
- this.#managers.set(entry.id, mgr);
45446
- if (entry.integrationId !== void 0) this.#integrationToBroker.set(entry.integrationId, entry.id);
45447
- await mgr.start();
45448
- }
45449
- #allocateId() {
45450
- const id = `ecowitt_${String(this.#nextId).padStart(3, "0")}`;
45451
- this.#nextId++;
45452
- return id;
45453
- }
45454
- #seedCounter(id) {
45455
- const match = /^ecowitt_(\d+)$/.exec(id);
45456
- if (match === null || match[1] === void 0) return;
45457
- const n = parseInt(match[1], 10);
45458
- if (!isNaN(n)) this.#nextId = Math.max(this.#nextId, n + 1);
45459
- }
45460
- };
45461
- //#endregion
45462
- //#region src/config.ts
45463
- /**
45464
- * Operator-supplied Ecowitt gateway settings for ONE broker (= one station).
45465
- * Two transports behind a `transport` discriminator:
45466
- *
45467
- * - `local` (local-poll): the addon polls the gateway over HTTP (`host`/`port`/
45468
- * optional `password`, with poll + mapping intervals).
45469
- * - `listener` (push): the addon runs an HTTP server the gateway uploads to
45470
- * (the gateway's "Customized" upload must point at the hub's LAN IP:port).
45471
- *
45472
- * Local-poll is the recommended default — it has no inbound-IP constraint.
45473
- */
45474
- var baseFields = {
45475
- /** Human-overridable station identity used to scope the adopted gateway. */
45476
- stationId: string().default("").describe("Optional stable station id (auto-derived when blank)") };
45477
- var ecowittConfigSchema = discriminatedUnion("transport", [object({
45478
- transport: literal("local"),
45479
- host: string().min(1).describe("Ecowitt gateway host name or IP address"),
45480
- port: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(1).max(65535).default(80)).describe("Gateway HTTP port"),
45481
- password: string().default("").describe("Gateway password (optional — newer firmware)"),
45482
- pollIntervalMs: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(1e3).max(36e5).default(6e4)).describe("Live-data poll interval (ms)"),
45483
- mappingIntervalMs: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(1e4).max(864e5).default(6e5)).describe("Sensor-map refresh interval (ms)"),
45484
- ...baseFields
45485
- }), object({
45486
- transport: literal("listener"),
45487
- listenPort: preprocess((v) => v === "" || v === null ? void 0 : v, number().int().min(1).max(65535).default(4199)).describe("Local TCP port the gateway uploads to"),
45488
- listenHost: string().default("").describe("Optional bind host (blank = all interfaces)"),
45489
- ...baseFields
45490
- })]);
45491
- /** Top-level addon config — an ordered list of broker entries (default empty). */
45492
- var ecowittAddonConfigSchema = object({ brokers: array(object({
45493
- id: string().min(1),
45494
- name: string().min(1),
45495
- connection: ecowittConfigSchema,
45496
- integrationId: string().optional()
45497
- })).default([]) });
45498
- /**
45499
- * Narrow an `unknown` value to a shallow-cloned plain object record, or an empty
45500
- * record when it is not a plain object. Mirrors the Homematic `toRecord` helper —
45501
- * a cast-free boundary narrowing.
45502
- */
45503
- function toRecord(value) {
45504
- if (typeof value === "object" && value !== null && !Array.isArray(value)) return Object.fromEntries(Object.entries(value));
45505
- return {};
45506
- }
45507
- /** Coerce a loose settings blob through the connection schema, applying defaults.
45508
- * A blob with no `transport` defaults to `local` for back-compat with simple forms. */
45509
- function settingsToEcowittConfig(settings) {
45510
- const raw = toRecord(settings);
45511
- if (raw["transport"] !== "local" && raw["transport"] !== "listener") raw["transport"] = "local";
45512
- return ecowittConfigSchema.parse(raw);
45513
- }
45514
- /** Hand-written connection form for the broker/integration creation UI. */
45515
- function buildConnectionFormSchema() {
45516
- return { sections: [
45517
- {
45518
- id: "transport",
45519
- title: "Transport",
45520
- description: "Choose how CamStack reads the gateway. Local poll connects out to the gateway (recommended). Push listener runs a server the gateway uploads to — configure the gateway \"Customized\" upload to point at this hub.",
45521
- columns: 1,
45522
- fields: [{
45523
- type: "select",
45524
- key: "transport",
45525
- label: "Transport",
45526
- default: "local",
45527
- options: [{
45528
- value: "local",
45529
- label: "Local poll (recommended)"
45530
- }, {
45531
- value: "listener",
45532
- label: "Push listener"
45533
- }]
45534
- }]
45535
- },
45536
- {
45537
- id: "local",
45538
- title: "Local poll settings",
45539
- columns: 2,
45540
- fields: [
45541
- {
45542
- type: "text",
45543
- key: "host",
45544
- label: "Gateway host / IP",
45545
- placeholder: "192.168.1.50",
45546
- showWhen: {
45547
- field: "transport",
45548
- equals: "local"
45549
- }
45550
- },
45551
- {
45552
- type: "number",
45553
- key: "port",
45554
- label: "HTTP port",
45555
- min: 1,
45556
- max: 65535,
45557
- default: 80,
45558
- showWhen: {
45559
- field: "transport",
45560
- equals: "local"
45561
- }
45562
- },
45563
- {
45564
- type: "password",
45565
- key: "password",
45566
- label: "Password (optional)",
45567
- showToggle: true,
45568
- showWhen: {
45569
- field: "transport",
45570
- equals: "local"
45571
- }
45572
- },
45573
- {
45574
- type: "number",
45575
- key: "pollIntervalMs",
45576
- label: "Poll interval (ms)",
45577
- min: 1e3,
45578
- max: 36e5,
45579
- default: 6e4,
45580
- showWhen: {
45581
- field: "transport",
45582
- equals: "local"
45583
- }
45584
- }
45585
- ]
45586
- },
45587
- {
45588
- id: "listener",
45589
- title: "Push listener settings",
45590
- columns: 2,
45591
- fields: [{
45592
- type: "number",
45593
- key: "listenPort",
45594
- label: "Listen port",
45595
- min: 1,
45596
- max: 65535,
45597
- default: 4199,
45598
- showWhen: {
45599
- field: "transport",
45600
- equals: "listener"
45601
- }
45602
- }, {
45603
- type: "text",
45604
- key: "listenHost",
45605
- label: "Bind host (optional)",
45606
- placeholder: "all interfaces",
45607
- showWhen: {
45608
- field: "transport",
45609
- equals: "listener"
45610
- }
45611
- }]
45612
- }
45613
- ] };
45614
- }
45615
- //#endregion
45616
- //#region src/ecowitt-broker-provider.ts
45617
- var ECOWITT_KIND = "ecowitt";
45618
- /**
45619
- * Construct the `broker` cap provider for the Ecowitt addon. Pure builder.
45620
- * Mirrors `buildDreameBrokerProvider`. The connection has no single secret to
45621
- * redact (the optional local password is the only one) — preserved on empty
45622
- * round-trip like the other providers.
45623
- */
45624
- function buildEcowittBrokerProvider(deps) {
45625
- const { ownerAddonId, registry, getBrokers, persistBrokers, cascadeRemoveDevices, logger } = deps;
45626
- const owns = (id) => getBrokers().some((b) => b.id === id);
45627
- /** Redact the local-poll password for an outbound settings read. */
45628
- const redact = (entry) => {
45629
- if (entry.connection.transport === "local") return {
45630
- ...entry.connection,
45631
- password: ""
45632
- };
45633
- return { ...entry.connection };
45634
- };
45635
- return {
45636
- list: async ({ kind }) => {
45637
- if (kind && kind !== ECOWITT_KIND) return [];
45638
- return registry.list().map((info) => ({
45639
- ...info,
45640
- addonId: ownerAddonId
45641
- }));
45642
- },
45643
- get: async ({ id }) => {
45644
- const info = registry.get(id);
45645
- return info ? {
45646
- ...info,
45647
- addonId: ownerAddonId
45648
- } : null;
45649
- },
45650
- listProviders: async () => [{
45651
- addonId: ownerAddonId,
45652
- kinds: [{
45653
- kind: ECOWITT_KIND,
45654
- label: "Ecowitt"
45655
- }]
45656
- }],
45657
- add: async ({ kind, name, settings }) => {
45658
- if (kind !== ECOWITT_KIND) throw new Error(`provider-ecowitt: only kind '${ECOWITT_KIND}' is handled here (got '${kind}')`);
45659
- const entry = await registry.createEntry(name, settingsToEcowittConfig(settings));
45660
- await persistBrokers([...getBrokers(), entry]);
45661
- return { id: entry.id };
45662
- },
45663
- remove: async ({ id }) => {
45664
- if (!owns(id)) return;
45665
- await registry.removeEntry(id);
45666
- await cascadeRemoveDevices(id).catch((err) => {
45667
- logger.warn("ecowitt: broker cascade-remove threw", {
45668
- tags: { brokerId: id },
45669
- meta: { error: errMsg(err) }
45670
- });
45671
- });
45672
- await persistBrokers(getBrokers().filter((b) => b.id !== id));
45673
- },
45674
- testConnection: async ({ id }) => {
45675
- if (!owns(id)) return {
45676
- ok: false,
45677
- error: "unknown broker"
45678
- };
45679
- const info = registry.get(id);
45680
- if (!info) return {
45681
- ok: false,
45682
- error: "unknown broker"
45683
- };
45684
- if (info.status === "connected") return {
45685
- ok: true,
45686
- latencyMs: info.lastCheckedAt ? Math.max(0, Date.now() - info.lastCheckedAt) : 0
45687
- };
45688
- return {
45689
- ok: false,
45690
- error: info.error ?? `status: ${info.status}`
45691
- };
45692
- },
45693
- getSettings: async ({ id }) => {
45694
- const entry = getBrokers().find((b) => b.id === id);
45695
- if (!entry) return null;
45696
- return redact(entry);
45697
- },
45698
- setSettings: async ({ id, settings }) => {
45699
- if (!owns(id)) return;
45700
- const existing = getBrokers().find((b) => b.id === id);
45701
- if (!existing) return;
45702
- const parsed = settingsToEcowittConfig(settings);
45703
- const merged = parsed.transport === "local" && existing.connection.transport === "local" ? {
45704
- ...parsed,
45705
- password: parsed.password.length > 0 ? parsed.password : existing.connection.password
45706
- } : parsed;
45707
- const updated = await registry.updateEntry(id, merged);
45708
- await persistBrokers(getBrokers().map((b) => b.id === id ? updated : b));
45709
- },
45710
- getBrokerConfig: async ({ id }) => {
45711
- const entry = getBrokers().find((b) => b.id === id);
45712
- if (!entry) return null;
45713
- return redact(entry);
45714
- },
45715
- getSettingsSchema: async ({ kind }) => {
45716
- if (kind !== ECOWITT_KIND) return null;
45717
- return buildConnectionFormSchema();
45718
- },
45719
- testSettings: async ({ kind, settings }) => {
45720
- if (kind !== ECOWITT_KIND) return {
45721
- ok: false,
45722
- error: `unsupported kind: ${kind}`
45723
- };
45724
- try {
45725
- settingsToEcowittConfig(settings);
45726
- return { ok: true };
45727
- } catch (err) {
45728
- return {
45729
- ok: false,
45730
- error: errMsg(err)
45731
- };
45732
- }
45733
- },
45734
- publish: async () => null,
45735
- subscribe: async () => ({ subscriptionId: "" }),
45736
- unsubscribe: async () => void 0,
45737
- getState: async () => null,
45738
- getStatus: async () => ({
45739
- brokerCount: registry.size(),
45740
- connectedCount: registry.connectedCount()
45741
- })
45742
- };
45743
- }
45744
- //#endregion
45745
- //#region src/ecowitt-mapping.ts
45491
+ //#region src/ecowitt-mapping.ts
45746
45492
  /**
45747
45493
  * Map an Ecowitt quantity to its camstack sensor cap. Pure, total.
45748
45494
  *
@@ -45902,18 +45648,63 @@ var QUANTITY_LABEL = {
45902
45648
  lightning_count: "Lightning count",
45903
45649
  vpd: "VPD"
45904
45650
  };
45651
+ /** All device groups, in stable presentation order. */
45652
+ var ECOWITT_DEVICE_GROUPS = [
45653
+ "gateway",
45654
+ "weather-station",
45655
+ "temp-sensor-ch1"
45656
+ ];
45657
+ /** Human label for a device group (used as the per-group Container name suffix). */
45658
+ function deviceGroupLabel(group) {
45659
+ switch (group) {
45660
+ case "gateway": return "Gateway";
45661
+ case "weather-station": return "Weather Station";
45662
+ case "temp-sensor-ch1": return "Temp Sensor CH1";
45663
+ }
45664
+ }
45665
+ /**
45666
+ * Map a sensor's self-describing nodewitt {@link SensorCategory} (+ its channel)
45667
+ * to the camstack {@link EcowittDeviceGroup} it belongs to. Pure, total.
45668
+ *
45669
+ * The split:
45670
+ * - `weather-station` → `'weather-station'`.
45671
+ * - `channel-sensor` with channel 1 → `'temp-sensor-ch1'` (the CH1 split-out).
45672
+ * - everything else → `'gateway'`.
45673
+ *
45674
+ * CH2..8 grouping (documented decision): channel-sensors on channels 2–8 are
45675
+ * deliberately grouped under `'gateway'`, NOT given their own group. The group
45676
+ * enum is intentionally a fixed THREE (the product wants exactly gateway /
45677
+ * weather-station / CH1-temp surfaces); the gateway device is the natural home
45678
+ * for "everything else" — it already owns the console's indoor readings and the
45679
+ * standalone external sensors. A per-channel device explosion (CH2…CH8 each their
45680
+ * own device) is out of scope here and can be layered on later by widening the
45681
+ * enum, without changing this function's `weather-station`/`temp-sensor-ch1`
45682
+ * branches. `external` (lightning/rain/combo) and `gateway` (console/indoor)
45683
+ * categories also fall here, by design.
45684
+ *
45685
+ * Accepts an optional `category` (a persisted/older sensor may lack one): an
45686
+ * absent category resolves to `'gateway'`, the same safe default nodewitt uses
45687
+ * for an unattributed reading.
45688
+ */
45689
+ function deviceGroupForSensor(category, channel) {
45690
+ if (category === "weather-station") return "weather-station";
45691
+ if (category === "channel-sensor" && channel === 1) return "temp-sensor-ch1";
45692
+ return "gateway";
45693
+ }
45905
45694
  //#endregion
45906
45695
  //#region src/ecowitt-discovery.ts
45907
45696
  /**
45908
- * Build the SINGLE gateway adoption candidate (a {@link DeviceType.Container})
45909
- * with one preview accessory child per sensor. The gateway is keyed on the
45910
- * broker id — one broker = one gateway = one Container. Pure: no I/O.
45911
- *
45912
- * Per the plan (model A), each sensor maps to a typed sensor cap; the `weather`
45913
- * cap is intentionally NOT used (a raw station has no sky-state `condition`).
45697
+ * The native id a group Container candidate is keyed on:
45698
+ * `ecowitt:<gatewayId>:<group>`. One physical gateway therefore yields THREE
45699
+ * candidates (one per {@link EcowittDeviceGroup}). Mirrors the persisted stable
45700
+ * id the group Container's `stableIdSuffix` derives for the same Container.
45914
45701
  */
45915
- function buildEcowittGatewayCandidate(input) {
45916
- const children = input.sensors.map((sensor) => ({
45702
+ function groupNativeId(gatewayId, group) {
45703
+ return `ecowitt:${gatewayId}:${group}`;
45704
+ }
45705
+ /** A preview accessory child for one sensor. */
45706
+ function sensorChild(sensor) {
45707
+ return {
45917
45708
  childNativeId: sensor.id,
45918
45709
  name: sensorLabel(sensor.quantity, sensor.channel, sensor.name, sensor.id),
45919
45710
  type: DeviceType.Sensor,
@@ -45922,215 +45713,61 @@ function buildEcowittGatewayCandidate(input) {
45922
45713
  alreadyAdopted: false,
45923
45714
  adoptedDeviceId: null,
45924
45715
  capabilities: [capForQuantity(sensor.quantity)]
45925
- }));
45926
- return {
45927
- childNativeId: input.brokerId,
45928
- name: input.gatewayName,
45929
- type: DeviceType.Container,
45930
- status: "online",
45931
- metadata: { serialNumber: input.brokerId },
45932
- alreadyAdopted: input.adoptedDeviceId !== null,
45933
- adoptedDeviceId: input.adoptedDeviceId,
45934
- capabilities: [],
45935
- children
45936
45716
  };
45937
45717
  }
45938
- //#endregion
45939
- //#region src/ecowitt-adoption-provider.ts
45940
- /** Single granularity: the whole gateway adopts as one Container. */
45941
- var DEVICES_FILTER = {
45942
- id: "devices",
45943
- label: "Devices",
45944
- isDefault: true
45945
- };
45946
- /** Resolve the adopted gateway CamStack device id for a broker, or null. */
45947
- async function adoptedGatewayId(brokerId, listAdoptedEcowitt) {
45948
- const all = await listAdoptedEcowitt();
45949
- for (const d of all) if (d.config["system"] === "ecowitt" && d.config["brokerId"] === brokerId) return d.id;
45950
- return null;
45951
- }
45952
- /**
45953
- * Construct the `device-adoption` cap provider for the Ecowitt addon. Pure
45954
- * builder. One broker = one gateway = one Container candidate; its sensors are
45955
- * preview accessory children that the Container's `getAccessoryChildren()`
45956
- * materialises live on adoption. Mirrors the Dreame adoption provider.
45957
- */
45958
- function buildEcowittAdoptionProvider(deps) {
45959
- const { registry, getBrokerIdForIntegration, listAdoptedEcowitt, adoptGateway, removeDevice, findDeviceConfig, logger } = deps;
45960
- async function gatewayCandidateForBroker(brokerId) {
45961
- const facade = registry.getFacadeForBroker(brokerId);
45962
- if (facade === null) return null;
45963
- const info = registry.list().find((b) => b.id === brokerId);
45964
- const adoptedDeviceId = await adoptedGatewayId(brokerId, listAdoptedEcowitt);
45965
- return buildEcowittGatewayCandidate({
45966
- brokerId,
45967
- gatewayName: info?.name ?? "Ecowitt gateway",
45968
- sensors: facade.getSensors(),
45969
- adoptedDeviceId
45970
- });
45971
- }
45972
- return {
45973
- listCandidateFilters: async () => ({ filters: [DEVICES_FILTER] }),
45974
- listCandidates: async ({ integrationId, page, pageSize }) => {
45975
- const candidate = await gatewayCandidateForBroker(await getBrokerIdForIntegration(integrationId));
45976
- const candidates = candidate !== null ? [candidate] : [];
45977
- return {
45978
- candidates,
45979
- totalCount: candidates.length,
45980
- page,
45981
- pageSize
45982
- };
45983
- },
45984
- getCandidate: async ({ integrationId, childNativeId }) => {
45985
- const candidate = await gatewayCandidateForBroker(await getBrokerIdForIntegration(integrationId));
45986
- return candidate !== null && candidate.childNativeId === childNativeId ? candidate : null;
45987
- },
45988
- getStatus: async () => {
45989
- try {
45990
- const brokers = registry.list();
45991
- let candidateCount = 0;
45992
- for (const broker of brokers) if (await gatewayCandidateForBroker(broker.id) !== null) candidateCount += 1;
45993
- const adoptedCount = (await listAdoptedEcowitt()).filter((d) => d.config["system"] === "ecowitt").length;
45994
- return {
45995
- lastDiscoveryAt: Date.now(),
45996
- candidateCount,
45997
- adoptedCount,
45998
- lastError: null
45999
- };
46000
- } catch (err) {
46001
- logger.warn("ecowitt adoption: getStatus failed", { meta: { error: errMsg(err) } });
46002
- return {
46003
- lastDiscoveryAt: null,
46004
- candidateCount: 0,
46005
- adoptedCount: 0,
46006
- lastError: errMsg(err)
46007
- };
46008
- }
46009
- },
46010
- refresh: async ({ integrationId }) => {
46011
- const brokerId = await getBrokerIdForIntegration(integrationId);
46012
- const candidate = await gatewayCandidateForBroker(brokerId);
46013
- const adoptedCount = (await listAdoptedEcowitt()).filter((d) => d.config["system"] === "ecowitt" && d.config["brokerId"] === brokerId).length;
46014
- return {
46015
- lastDiscoveryAt: Date.now(),
46016
- candidateCount: candidate !== null ? 1 : 0,
46017
- adoptedCount,
46018
- lastError: null
46019
- };
46020
- },
46021
- adopt: async ({ integrationId, childNativeIds, perCandidate }) => {
46022
- const brokerId = await getBrokerIdForIntegration(integrationId);
46023
- if (registry.getFacadeForBroker(brokerId) === null) throw new Error(`ecowitt adopt: broker ${brokerId} not connected`);
46024
- const adopted = [];
46025
- let failures = 0;
46026
- const info = registry.list().find((b) => b.id === brokerId);
46027
- for (const nativeId of childNativeIds) {
46028
- if (nativeId !== brokerId) {
46029
- logger.warn("ecowitt adopt: only the gateway candidate is adoptable — skipping", { meta: {
46030
- nativeId,
46031
- brokerId
46032
- } });
46033
- failures++;
46034
- continue;
46035
- }
46036
- try {
46037
- const { deviceId, accessoryDeviceIds } = await adoptGateway({
46038
- brokerId,
46039
- integrationId,
46040
- name: perCandidate?.[nativeId]?.name ?? info?.name ?? "Ecowitt gateway"
46041
- });
46042
- adopted.push({
46043
- childNativeId: nativeId,
46044
- parentDeviceId: deviceId,
46045
- accessoryDeviceIds
46046
- });
46047
- } catch (err) {
46048
- logger.warn("ecowitt adopt: failed to adopt gateway", { meta: {
46049
- brokerId,
46050
- error: errMsg(err)
46051
- } });
46052
- failures++;
46053
- }
46054
- }
46055
- if (adopted.length === 0 && failures > 0) throw new Error(`ecowitt adopt: all ${failures} adopt(s) failed`);
46056
- return { adopted };
46057
- },
46058
- release: async ({ camDeviceId }) => {
46059
- await removeDevice(camDeviceId);
46060
- },
46061
- resync: async ({ camDeviceId }) => {
46062
- const cfg = await findDeviceConfig(camDeviceId);
46063
- if (cfg === null) throw new Error(`ecowitt resync: device ${camDeviceId} not found`);
46064
- if (cfg["system"] !== "ecowitt") throw new Error(`ecowitt resync: device ${camDeviceId} is not an Ecowitt device`);
46065
- const brokerId = String(cfg["brokerId"]);
46066
- if (!(registry.getFacadeForBroker(brokerId) !== null)) throw new Error(`ecowitt resync: broker ${brokerId} no longer connected`);
46067
- return {
46068
- changed: false,
46069
- rebuiltChildren: 0
46070
- };
46071
- }
46072
- };
46073
- }
46074
- //#endregion
46075
- //#region src/ecowitt-broker-device-cascade.ts
46076
- /**
46077
- * Remove every adopted Ecowitt PARENT device (children cascade via the kernel)
46078
- * whose persisted config carries `{ system: 'ecowitt', brokerId }`. Used on
46079
- * broker.remove and integration delete. Best-effort per device; returns the
46080
- * count removed. Mirrors the Homematic / Dreame cascade helper.
46081
- */
46082
- async function cascadeRemoveDevicesForBroker(input) {
46083
- const { reg, devices, addonId, brokerId, logger } = input;
46084
- let removed = 0;
46085
- for (const d of reg.getAllForAddon(addonId)) {
46086
- if (d.parentDeviceId !== null) continue;
46087
- const cfg = await devices.loadConfig(d.id).catch(() => ({}));
46088
- if (cfg["system"] !== "ecowitt" || cfg["brokerId"] !== brokerId) continue;
46089
- try {
46090
- await devices.remove(d.id);
46091
- removed += 1;
46092
- } catch (err) {
46093
- logger.warn("ecowitt: broker cascade-remove failed", {
46094
- tags: { deviceId: d.id },
46095
- meta: {
46096
- brokerId,
46097
- error: errMsg(err)
46098
- }
46099
- });
46100
- }
46101
- }
46102
- return removed;
46103
- }
46104
- //#endregion
46105
- //#region src/ecowitt-broker-offline.ts
46106
45718
  /**
46107
- * Set every Ecowitt device belonging to `brokerId` to the requested online
46108
- * state. Every Ecowitt top-level gateway Container carries
46109
- * `{ system: 'ecowitt', brokerId }`. Churn-free; returns the count transitioned.
46110
- * Mirrors the Homematic / Dreame offline helper.
45719
+ * Build the THREE gateway adoption candidates (one {@link DeviceType.Container}
45720
+ * per {@link EcowittDeviceGroup}) for a single physical gateway. Each Container
45721
+ * carries only the sensors whose device group matches, as preview accessory
45722
+ * children that the Container's `getAccessoryChildren()` materialises on
45723
+ * adoption. Pure: no I/O.
45724
+ *
45725
+ * Discovery option (documented decision): we return 3 SEPARATE top-level
45726
+ * Container candidates (not 1 parent with 3 group-tagged children). Each maps 1:1
45727
+ * to a real adopted device, so the existing per-candidate adopt/release/resync
45728
+ * machinery (keyed on `childNativeId`) extends directly — the alternative
45729
+ * (nested group children under one parent) would require a new two-level
45730
+ * adoption shape and is higher-risk. Sensors are split by
45731
+ * {@link deviceGroupForSensor}; an empty group still yields a Container so its
45732
+ * sensors can appear as they come online over time (additive reconcile).
45733
+ *
45734
+ * Per the plan (model A), each sensor maps to a typed sensor cap; the `weather`
45735
+ * cap is intentionally NOT used (a raw station has no sky-state `condition`).
46111
45736
  */
46112
- function setBrokerDevicesOnline(devices, brokerId, online) {
46113
- let count = 0;
46114
- for (const dev of devices) {
46115
- if (dev.config.get("system") !== "ecowitt") continue;
46116
- if (dev.config.get("brokerId") !== brokerId) continue;
46117
- if (dev.online === online) continue;
46118
- dev.markOnline(online);
46119
- count += 1;
46120
- }
46121
- return count;
45737
+ function buildEcowittGatewayCandidates(input) {
45738
+ const byGroup = /* @__PURE__ */ new Map();
45739
+ for (const group of ECOWITT_DEVICE_GROUPS) byGroup.set(group, []);
45740
+ for (const sensor of input.sensors) {
45741
+ const group = deviceGroupForSensor(sensor.category, sensor.channel);
45742
+ byGroup.get(group)?.push(sensorChild(sensor));
45743
+ }
45744
+ return ECOWITT_DEVICE_GROUPS.map((group) => {
45745
+ const adoptedDeviceId = input.adoptedDeviceIdByGroup[group] ?? null;
45746
+ const children = byGroup.get(group) ?? [];
45747
+ return {
45748
+ childNativeId: groupNativeId(input.gatewayId, group),
45749
+ name: `${input.gatewayName} — ${deviceGroupLabel(group)}`,
45750
+ type: DeviceType.Container,
45751
+ status: "online",
45752
+ metadata: { serialNumber: input.gatewayId },
45753
+ alreadyAdopted: adoptedDeviceId !== null,
45754
+ adoptedDeviceId,
45755
+ capabilities: [],
45756
+ children
45757
+ };
45758
+ });
46122
45759
  }
46123
45760
  //#endregion
46124
45761
  //#region src/devices/ecowitt-sensor-device.ts
46125
45762
  /**
46126
45763
  * Persisted config every Ecowitt sensor child carries. `sensorId` resolves the
46127
- * live reading from the facade; `brokerId` selects the gateway; `quantity` is
46128
- * the Ecowitt physical quantity that drives the cap selection;
46129
- * `system`/`integrationId` are provenance.
45764
+ * live reading from the gateway's client; `gatewayId` selects the gateway (its
45765
+ * Hub stableId); `quantity` is the Ecowitt physical quantity that drives the cap
45766
+ * selection; `system`/`integrationId` are provenance.
46130
45767
  */
46131
45768
  var ecowittSensorSchema = object({
46132
45769
  sensorId: string().min(1).describe("Ecowitt sensor stable id"),
46133
- brokerId: string().min(1).describe("Registry broker id"),
45770
+ gatewayId: string().min(1).describe("Parent gateway Hub stableId"),
46134
45771
  quantity: string().min(1).describe("Ecowitt physical quantity"),
46135
45772
  system: literal("ecowitt").optional(),
46136
45773
  integrationId: string().optional()
@@ -46174,7 +45811,7 @@ var SUPPORTED_CAPS = new Set([
46174
45811
  var EcowittSensorDevice = class extends BaseDevice {
46175
45812
  features = [];
46176
45813
  sensorId;
46177
- brokerId;
45814
+ gatewayId;
46178
45815
  capName;
46179
45816
  valueKey;
46180
45817
  /**
@@ -46190,7 +45827,7 @@ var EcowittSensorDevice = class extends BaseDevice {
46190
45827
  const persisted = ecowittSensorSchema.parse(ctx.persistedConfig ?? {});
46191
45828
  super(ctx, ecowittSensorSchema, { type: ctx.deviceMeta.type });
46192
45829
  this.sensorId = persisted.sensorId;
46193
- this.brokerId = persisted.brokerId;
45830
+ this.gatewayId = persisted.gatewayId;
46194
45831
  const cap = capForQuantity(persisted.quantity);
46195
45832
  this.capName = SUPPORTED_CAPS.has(cap) ? cap : "numeric-sensor";
46196
45833
  this.valueKey = valueFieldForCap(this.capName);
@@ -46201,10 +45838,10 @@ var EcowittSensorDevice = class extends BaseDevice {
46201
45838
  });
46202
45839
  }
46203
45840
  get facade() {
46204
- return ecowittFacades.get(this.brokerId);
45841
+ return ecowittFacades.get(this.gatewayId);
46205
45842
  }
46206
45843
  resolveSensor() {
46207
- return ecowittFacades.getSensor(this.brokerId, this.sensorId);
45844
+ return ecowittFacades.getSensor(this.gatewayId, this.sensorId);
46208
45845
  }
46209
45846
  async onActivate() {
46210
45847
  await super.onActivate();
@@ -46391,41 +46028,53 @@ var ecowittSensorEntrySchema = object({
46391
46028
  sensorId: string(),
46392
46029
  quantity: string(),
46393
46030
  channel: number().optional(),
46394
- name: string().optional()
46031
+ name: string().optional(),
46032
+ category: _enum([
46033
+ "gateway",
46034
+ "weather-station",
46035
+ "channel-sensor",
46036
+ "external"
46037
+ ]).optional()
46395
46038
  });
46396
46039
  /**
46397
- * Persisted config for an Ecowitt gateway Container. `brokerId` selects the
46398
- * gateway facade; `sensors[]` is the additively-reconciled list of sensors that
46399
- * fan out as accessory children (updated by the addon via `applyDerivedSpec` on
46400
- * every `snapshot` push). `system`/`integrationId`/`name` are provenance.
46040
+ * Persisted config for one Ecowitt gateway-group Container. `gatewayId` selects
46041
+ * the parent gateway's live nodewitt client (the gateway Hub device's
46042
+ * `stableId`); `sensors[]` is the additively-reconciled list of sensors that fan
46043
+ * out as accessory children (updated by the gateway device via `applyDerivedSpec`
46044
+ * on every `snapshot` push). `system`/`integrationId`/`name` are provenance.
46401
46045
  */
46402
46046
  var ecowittContainerSchema = object({
46403
- brokerId: string().min(1).describe("Registry broker id"),
46047
+ gatewayId: string().min(1).describe("Parent gateway Hub stableId"),
46048
+ deviceGroup: _enum([
46049
+ "gateway",
46050
+ "weather-station",
46051
+ "temp-sensor-ch1"
46052
+ ]).default("gateway"),
46404
46053
  sensors: array(ecowittSensorEntrySchema).default([]),
46405
46054
  integrationId: string().optional(),
46406
46055
  system: literal("ecowitt").optional(),
46407
46056
  name: string().optional()
46408
46057
  });
46409
46058
  /**
46410
- * Parent gateway Container for one Ecowitt station. Owns no caps itself it
46411
- * declares `getAccessoryChildren()` so the kernel auto-spawns one
46412
- * {@link EcowittSensorDevice} per sensor in the LIVE `sensors[]` config and
46413
- * reconciles additions/removals when the addon re-persists the list via
46414
- * `applyDerivedSpec`. Mirrors `HaContainerDevice` (which reads its `entities[]`
46415
- * live and is re-derived on reconcile).
46059
+ * One gateway-group Container for an Ecowitt station. A CHILD of the gateway Hub
46060
+ * (standalone mode). Owns no caps itself — it declares `getAccessoryChildren()`
46061
+ * so the kernel auto-spawns one {@link EcowittSensorDevice} per sensor in the
46062
+ * LIVE `sensors[]` config and reconciles additions/removals when the gateway
46063
+ * re-persists the list via `applyDerivedSpec`. Mirrors `HaContainerDevice` (which
46064
+ * reads its `entities[]` live and is re-derived on reconcile).
46416
46065
  */
46417
46066
  var EcowittContainerDevice = class extends BaseDevice {
46418
46067
  features = [DeviceFeature.Resyncable];
46419
- brokerId;
46068
+ gatewayId;
46420
46069
  integrationId;
46421
46070
  constructor(ctx) {
46422
46071
  const cfg = ecowittContainerSchema.parse(ctx.persistedConfig ?? {});
46423
46072
  super(ctx, ecowittContainerSchema, { type: DeviceType.Container });
46424
- this.brokerId = cfg.brokerId;
46073
+ this.gatewayId = cfg.gatewayId;
46425
46074
  this.integrationId = cfg.integrationId;
46426
- this.online = ecowittFacades.get(this.brokerId) !== null;
46075
+ this.online = ecowittFacades.get(this.gatewayId) !== null;
46427
46076
  this.updateSourceInfo({
46428
- id: this.brokerId,
46077
+ id: this.gatewayId,
46429
46078
  system: "ecowitt"
46430
46079
  });
46431
46080
  }
@@ -46440,7 +46089,7 @@ var EcowittContainerDevice = class extends BaseDevice {
46440
46089
  };
46441
46090
  const config = {
46442
46091
  sensorId: sensor.sensorId,
46443
- brokerId: this.brokerId,
46092
+ gatewayId: this.gatewayId,
46444
46093
  quantity: sensor.quantity,
46445
46094
  capabilities: [capForQuantity(sensor.quantity)],
46446
46095
  system: "ecowitt",
@@ -46456,328 +46105,289 @@ var EcowittContainerDevice = class extends BaseDevice {
46456
46105
  }
46457
46106
  };
46458
46107
  //#endregion
46459
- //#region src/addon.ts
46460
- /** Default multi-broker config — a fresh install starts with no gateways. */
46461
- var DEFAULTS = { brokers: [] };
46108
+ //#region src/devices/ecowitt-gateway-device.ts
46462
46109
  /**
46463
- * Ecowitt weather-station device-provider addon (multi-gateway).
46110
+ * Ecowitt gateway — a {@link DeviceType.Hub} device (standalone mode, Reolink
46111
+ * pattern). The operator-supplied CONNECTION lives on THIS device's config; the
46112
+ * gateway owns exactly one live `@apocaliss92/nodewitt` client (via an
46113
+ * {@link EcowittIntegrationManager}) keyed on its own `stableId` and published on
46114
+ * the in-process {@link ecowittFacades} resolver so its container + sensor
46115
+ * children read the live snapshot.
46464
46116
  *
46465
- * Wraps the `@apocaliss92/nodewitt` local-poll / push client. One registered
46466
- * gateway = one "broker"; each adopted gateway becomes a {@link DeviceType.Container}
46467
- * parent that fans out one typed sensor child per `Sensor.quantity`. Modelled on
46468
- * the Homematic / Home Assistant / Dreame device-provider template, with an
46469
- * additive sensor reconcile (sensors appear over time): on each `snapshot` push
46470
- * the addon re-persists the gateway Container's `sensors[]` via the generic
46471
- * `applyDerivedSpec`, which spawns new sensor children + removes orphaned ones.
46117
+ * It registers the `device-discovery` cap: `refreshDiscovery`/`listDiscovered`
46118
+ * enumerate the THREE gateway-group Container candidates (gateway /
46119
+ * weather-station / temp-sensor-ch1) that actually have sensors; `adoptDevice`
46120
+ * spawns a group {@link EcowittContainerDevice} child whose sensors materialise
46121
+ * as entity children; `releaseDevice` removes it. On every nodewitt snapshot the
46122
+ * gateway re-derives each adopted group Container's `sensors[]` additively.
46472
46123
  */
46473
- var EcowittProviderAddon = class extends BaseDeviceProvider {
46474
- addonId = "provider-ecowitt";
46475
- providerName = "Ecowitt";
46476
- deviceClasses = { [DeviceType.Container]: EcowittContainerDevice };
46477
- registry = null;
46478
- constructor() {
46479
- super({ ...DEFAULTS });
46124
+ var EcowittGatewayDevice = class extends BaseDevice {
46125
+ features = [];
46126
+ manager = null;
46127
+ eventUnsubscribers = [];
46128
+ latestSensors = [];
46129
+ constructor(ctx) {
46130
+ ecowittGatewaySchema.parse(ctx.persistedConfig ?? {});
46131
+ super(ctx, ecowittGatewaySchema, { type: DeviceType.Hub });
46132
+ this.online = false;
46133
+ this.registerDeviceDiscovery();
46134
+ this.updateSourceInfo({
46135
+ id: this.stableId,
46136
+ system: "ecowitt"
46137
+ });
46480
46138
  }
46481
- async onInitialize() {
46482
- const regs = await super.onInitialize();
46483
- this.registry = new EcowittBrokerRegistry(this.ctx.logger);
46484
- this.registry.setOnBrokerConnected((brokerId) => {
46485
- this.ctx.logger.info("Ecowitt: broker connected", { meta: { brokerId } });
46486
- this.setBrokerDevicesOnline(brokerId, true);
46487
- });
46488
- this.registry.setOnBrokerDisconnected((brokerId) => {
46489
- this.setBrokerDevicesOnline(brokerId, false);
46490
- });
46491
- this.registry.setOnSensorsChanged((brokerId, sensors) => {
46492
- this.reconcileGatewaySensors(brokerId, sensors);
46493
- });
46494
- await this.registry.restore(this.config.brokers);
46495
- this.ctx.logger.info("Ecowitt: provider initialised", { meta: { brokerCount: this.config.brokers.length } });
46496
- await this.reconcileIntegrationsToBrokers();
46497
- this.subscribeIntegrationLifecycle();
46498
- return [
46499
- ...regs,
46500
- {
46501
- capability: brokerCapability,
46502
- provider: this.buildBrokerProvider()
46503
- },
46504
- {
46505
- capability: deviceAdoptionCapability,
46506
- provider: this.buildAdoptionProvider()
46507
- }
46508
- ];
46139
+ /** Adopt a pre-built manager (created by `onCreateDevice` so the live client
46140
+ * starts once) mirrors `ReolinkHub.adoptApi`. Published on the resolver so
46141
+ * children pick it up. */
46142
+ adoptManager(manager) {
46143
+ this.manager = manager;
46144
+ const facade = manager.facade;
46145
+ if (facade !== null) ecowittFacades.set(this.stableId, facade);
46509
46146
  }
46510
- async onConfigChanged() {
46511
- const reg = this.registry;
46512
- if (!reg) return;
46513
- const persisted = this.config.brokers;
46514
- const liveIds = new Set(reg.list().map((b) => b.id));
46515
- const persistedIds = new Set(persisted.map((e) => e.id));
46516
- for (const liveId of liveIds) if (!persistedIds.has(liveId)) try {
46517
- await reg.removeEntry(liveId);
46518
- } catch (err) {
46519
- this.ctx.logger.warn("Ecowitt onConfigChanged: removeEntry failed", { meta: {
46520
- brokerId: liveId,
46521
- error: errMsg(err)
46522
- } });
46523
- }
46524
- for (const entry of persisted) {
46525
- if (entry.id && liveIds.has(entry.id)) {
46526
- if (sameConnection(entry.connection, reg.getConnection(entry.id))) continue;
46527
- try {
46528
- await reg.updateEntry(entry.id, entry.connection);
46529
- } catch (err) {
46530
- this.ctx.logger.warn("Ecowitt onConfigChanged: updateEntry failed", { meta: {
46531
- brokerId: entry.id,
46532
- error: errMsg(err)
46533
- } });
46534
- }
46535
- continue;
46536
- }
46537
- try {
46538
- const created = await reg.createEntry(entry.name, entry.connection);
46539
- if (created.id !== entry.id) {
46540
- const next = persisted.map((b) => b === entry ? {
46541
- ...b,
46542
- id: created.id
46543
- } : b);
46544
- await this.updateGlobalSettings({ brokers: next });
46545
- }
46546
- } catch (err) {
46547
- this.ctx.logger.warn("Ecowitt onConfigChanged: failed to start new broker", { meta: {
46548
- brokerName: entry.name,
46549
- error: errMsg(err)
46550
- } });
46551
- }
46552
- }
46147
+ async onActivate() {
46148
+ if (this.manager === null) this.ensureManager().catch((err) => {
46149
+ this.ctx.logger.warn("Ecowitt gateway initial connect failed", { meta: { error: errMsg(err) } });
46150
+ });
46151
+ else this.refreshDiscoveryFromClient().catch(() => {});
46152
+ this.eventUnsubscribers.push(this.ctx.eventBus.subscribe({ category: EventCategory.DeviceUnregistered }, (event) => {
46153
+ if (event.data.parentDeviceId !== this.id) return;
46154
+ this.refreshDiscoveryFromClient().catch(() => {});
46155
+ }));
46553
46156
  }
46554
- async onShutdown() {
46555
- try {
46556
- await this.registry?.shutdown();
46157
+ async removeDevice() {
46158
+ for (const unsub of this.eventUnsubscribers) try {
46159
+ unsub();
46160
+ } catch {}
46161
+ this.eventUnsubscribers.length = 0;
46162
+ const mgr = this.manager;
46163
+ this.manager = null;
46164
+ ecowittFacades.set(this.stableId, null);
46165
+ if (mgr) try {
46166
+ await mgr.stop();
46557
46167
  } catch (err) {
46558
- this.ctx.logger.warn("Ecowitt: provider shutdown error", { meta: { error: errMsg(err) } });
46168
+ this.ctx.logger.warn("Ecowitt gateway: client stop failed", { meta: { error: errMsg(err) } });
46559
46169
  }
46560
- this.registry = null;
46561
- await super.onShutdown();
46562
- }
46563
- /** Stable id, broker-scoped. One broker = one gateway, so the brokerId alone
46564
- * is the unique key for the gateway Container. */
46565
- generateStableId(_type, config) {
46566
- return `ecowitt:${String(config?.["brokerId"] ?? "unknown")}`;
46567
46170
  }
46568
- /**
46569
- * Re-derive the adopted gateway Container's `sensors[]` from the live snapshot.
46570
- * When the set changed, re-persist it via the generic `applyDerivedSpec`, which
46571
- * the kernel uses to re-run `getAccessoryChildren()` (spawning new sensor
46572
- * children + removing orphaned ones). Best-effort; never throws.
46573
- */
46574
- async reconcileGatewaySensors(brokerId, sensors) {
46575
- try {
46576
- const reg = this.ctx.kernel.deviceRegistry;
46577
- const devices = this.ctx.kernel.devices;
46578
- if (!reg || !devices) return;
46579
- let containerId = null;
46580
- for (const d of reg.getAllForAddon(this.addonId)) {
46581
- if (d.parentDeviceId !== null) continue;
46582
- const cfg = await devices.loadConfig(d.id).catch(() => ({}));
46583
- if (cfg["system"] === "ecowitt" && cfg["brokerId"] === brokerId) {
46584
- containerId = d.id;
46585
- break;
46586
- }
46587
- }
46588
- if (containerId === null) return;
46589
- const nextSensors = sensors.map((s) => ({
46590
- sensorId: s.id,
46591
- quantity: s.quantity,
46592
- ...s.channel !== void 0 ? { channel: s.channel } : {},
46593
- ...s.name !== void 0 ? { name: s.name } : {}
46594
- }));
46595
- const cfg = await devices.loadConfig(containerId).catch(() => ({}));
46596
- if (sensorsEqual(Array.isArray(cfg["sensors"]) ? cfg["sensors"] : [], nextSensors)) return;
46597
- await devices.applyDerivedSpec(containerId, { config: { sensors: nextSensors } });
46598
- this.ctx.logger.info("Ecowitt: gateway sensors reconciled", { meta: {
46599
- brokerId,
46600
- deviceId: containerId,
46601
- sensorCount: nextSensors.length
46602
- } });
46171
+ async applySettingsPatch(patch) {
46172
+ if (!("connection" in patch)) return;
46173
+ const parsed = ecowittGatewaySchema.parse({
46174
+ connection: patch["connection"],
46175
+ system: "ecowitt-gateway"
46176
+ });
46177
+ await this.config.setAll({ connection: parsed.connection });
46178
+ const mgr = this.manager;
46179
+ if (mgr) try {
46180
+ await mgr.applyConnection(parsed.connection);
46603
46181
  } catch (err) {
46604
- this.ctx.logger.warn("Ecowitt: gateway sensor reconcile failed", { meta: {
46605
- brokerId,
46606
- error: errMsg(err)
46607
- } });
46182
+ this.ctx.logger.warn("Ecowitt gateway: applyConnection failed", { meta: { error: errMsg(err) } });
46608
46183
  }
46609
- }
46610
- buildBrokerProvider() {
46611
- return buildEcowittBrokerProvider({
46612
- ownerAddonId: this.ctx.id,
46613
- registry: this.requireRegistry(),
46614
- getBrokers: () => this.config.brokers,
46615
- persistBrokers: (brokers) => this.updateGlobalSettings({ brokers: [...brokers] }),
46616
- cascadeRemoveDevices: (brokerId) => this.cascadeRemoveDevicesForBroker(brokerId),
46617
- logger: this.ctx.logger
46184
+ else await this.ensureManager().catch((err) => {
46185
+ this.ctx.logger.warn("Ecowitt gateway re-connect after settings change failed", { meta: { error: errMsg(err) } });
46618
46186
  });
46619
46187
  }
46620
- async cascadeRemoveDevicesForBroker(brokerId) {
46621
- const reg = this.ctx.kernel.deviceRegistry;
46622
- const devices = this.ctx.kernel.devices;
46623
- if (!reg || !devices) return;
46624
- await cascadeRemoveDevicesForBroker({
46625
- reg,
46626
- devices,
46627
- addonId: this.addonId,
46628
- brokerId,
46629
- logger: this.ctx.logger
46188
+ /** Build + start the per-device nodewitt client (if not already running). */
46189
+ async ensureManager() {
46190
+ if (this.manager !== null) return;
46191
+ const connection = this.config.values.connection;
46192
+ const mgr = new EcowittIntegrationManager({
46193
+ id: this.stableId,
46194
+ name: this.name,
46195
+ connection,
46196
+ logger: this.ctx.logger,
46197
+ onConnected: () => this.setGatewayOnline(true),
46198
+ onDisconnected: () => this.setGatewayOnline(false),
46199
+ onSensorsChanged: (_id, sensors) => this.handleSensorsChanged(sensors),
46200
+ onFacadeBuilt: (_id, facade) => ecowittFacades.set(this.stableId, facade)
46630
46201
  });
46202
+ this.manager = mgr;
46203
+ await mgr.start();
46631
46204
  }
46632
- async reconcileIntegrationsToBrokers() {
46633
- try {
46634
- const mine = (await this.ctx.api.integrations.list.query()).filter((i) => i.addonId === this.ctx.id);
46635
- const surviving = new Set(mine.map((i) => i.id));
46636
- for (const integration of mine) {
46637
- const settings = await this.ctx.api.integrations.getSettings.query({ id: integration.id });
46638
- const brokerId = typeof settings["brokerId"] === "string" ? settings["brokerId"] : void 0;
46639
- if (brokerId === void 0) continue;
46640
- if (!this.config.brokers.some((b) => b.id === brokerId)) {
46641
- this.ctx.logger.warn("Ecowitt integration→broker: linked broker not found", { meta: {
46642
- integrationId: integration.id,
46643
- brokerId
46644
- } });
46645
- continue;
46646
- }
46647
- this.requireRegistry().linkIntegration(integration.id, brokerId);
46648
- }
46649
- const toRemove = this.config.brokers.filter((b) => b.integrationId !== void 0 && !surviving.has(b.integrationId)).map((b) => b.id);
46650
- if (toRemove.length === 0) return;
46651
- for (const id of toRemove) try {
46652
- await this.requireRegistry().removeEntry(id);
46653
- await this.cascadeRemoveDevicesForBroker(id);
46654
- } catch (err) {
46655
- this.ctx.logger.warn("Ecowitt integration→broker: broker cleanup failed", { meta: {
46656
- brokerId: id,
46657
- error: errMsg(err)
46658
- } });
46659
- }
46660
- const nextBrokers = this.config.brokers.filter((b) => !toRemove.includes(b.id));
46661
- await this.updateGlobalSettings({ brokers: nextBrokers });
46662
- } catch (err) {
46663
- this.ctx.logger.warn("Ecowitt integration→broker reconcile failed", { meta: { error: errMsg(err) } });
46664
- }
46665
- }
46666
- subscribeIntegrationLifecycle() {
46667
- const handler = (event) => {
46668
- const addonId = event.data["addonId"];
46669
- if (typeof addonId === "string" && addonId !== this.ctx.id) return;
46670
- this.reconcileIntegrationsToBrokers();
46671
- };
46672
- this.ctx.eventBus.subscribe({ category: EventCategory.IntegrationEnabled }, handler);
46673
- this.ctx.eventBus.subscribe({ category: EventCategory.IntegrationDisabled }, handler);
46674
- this.ctx.eventBus.subscribe({ category: EventCategory.IntegrationDeleted }, handler);
46675
- }
46676
- buildAdoptionProvider() {
46677
- return buildEcowittAdoptionProvider({
46678
- registry: {
46679
- getFacadeForBroker: (id) => this.requireRegistry().get(id) !== null ? { getSensors: () => ecowittFacades.getSensors(id) } : null,
46680
- list: () => this.requireRegistry().list().map((b) => ({
46681
- id: b.id,
46682
- name: b.name
46683
- }))
46205
+ setGatewayOnline(online) {
46206
+ if (this.online === online) return;
46207
+ this.markOnline(online);
46208
+ this.ctx.logger.info("Ecowitt gateway " + (online ? "online" : "offline"), { tags: { deviceId: this.id } });
46209
+ this.setContainersOnline(online).catch(() => {});
46210
+ }
46211
+ async setContainersOnline(online) {
46212
+ const children = await this.ctx.devices.getChildren(this.id).catch(() => []);
46213
+ for (const child of children) {
46214
+ if (child.type !== DeviceType.Container) continue;
46215
+ if (child.online === online) continue;
46216
+ child.markOnline(online);
46217
+ }
46218
+ }
46219
+ /** On each snapshot: cache sensors, re-derive discovery, additively reconcile
46220
+ * every adopted group Container's `sensors[]`. */
46221
+ handleSensorsChanged(sensors) {
46222
+ this.latestSensors = sensors;
46223
+ this.refreshDiscoveryFromClient().catch(() => {});
46224
+ this.reconcileGroupSensors(sensors).catch((err) => {
46225
+ this.ctx.logger.warn("Ecowitt gateway: sensor reconcile failed", { meta: { error: errMsg(err) } });
46226
+ });
46227
+ }
46228
+ registerDeviceDiscovery() {
46229
+ this.ctx.registerNativeCap(deviceDiscoveryCapability, {
46230
+ getStatus: async ({ deviceId }) => {
46231
+ if (deviceId !== this.id) return null;
46232
+ return this.runtimeState.getCapState("device-discovery") ?? null;
46684
46233
  },
46685
- logger: this.ctx.logger,
46686
- getBrokerIdForIntegration: async (id) => {
46687
- const brokerId = (await this.ctx.api.integrations.getSettings.query({ id }))["brokerId"];
46688
- if (typeof brokerId !== "string") throw new Error(`integration ${id} has no linked brokerId`);
46689
- return brokerId;
46234
+ listDiscovered: async ({ deviceId }) => {
46235
+ if (deviceId !== this.id) return [];
46236
+ return this.runtimeState.getCapState("device-discovery")?.discovered ?? [];
46690
46237
  },
46691
- listAdoptedEcowitt: async () => {
46692
- const reg = this.ctx.kernel.deviceRegistry;
46693
- const devices = this.ctx.kernel.devices;
46694
- if (!reg || !devices) return [];
46695
- const out = [];
46696
- for (const d of reg.getAllForAddon(this.addonId)) {
46697
- if (d.parentDeviceId !== null) continue;
46698
- const config = await devices.loadConfig(d.id).catch(() => ({}));
46699
- out.push({
46700
- id: d.id,
46701
- config
46702
- });
46703
- }
46704
- return out;
46238
+ refreshDiscovery: async ({ deviceId }) => {
46239
+ if (deviceId !== this.id) return [];
46240
+ await this.refreshDiscoveryFromClient();
46241
+ return this.runtimeState.getCapState("device-discovery")?.discovered ?? [];
46705
46242
  },
46706
- adoptGateway: async ({ brokerId, integrationId, name }) => {
46707
- const devices = this.ctx.kernel.devices;
46708
- if (!devices) throw new Error("ecowitt adopt: kernel.devices unavailable");
46709
- const config = {
46710
- brokerId,
46711
- sensors: ecowittFacades.getSensors(brokerId).map((s) => ({
46712
- sensorId: s.id,
46713
- quantity: s.quantity,
46714
- ...s.channel !== void 0 ? { channel: s.channel } : {},
46715
- ...s.name !== void 0 ? { name: s.name } : {}
46716
- })),
46717
- system: "ecowitt",
46718
- integrationId,
46719
- name
46720
- };
46721
- const stableId = this.generateStableId(DeviceType.Container, config);
46722
- const device = await devices.create(stableId, EcowittContainerDevice, config, null, {
46723
- type: DeviceType.Container,
46724
- name,
46725
- integrationId
46726
- });
46727
- const children = await devices.getChildren(device.id);
46728
- return {
46729
- deviceId: device.id,
46730
- accessoryDeviceIds: children.map((c) => c.id)
46731
- };
46732
- },
46733
- removeDevice: async (id) => {
46734
- await this.ctx.kernel.devices?.remove(id);
46243
+ adoptDevice: async ({ deviceId, childNativeId, name }) => {
46244
+ if (deviceId !== this.id) throw new Error(`adoptDevice: deviceId mismatch — got ${deviceId}, expected ${this.id}`);
46245
+ return this.adoptGroupContainer(childNativeId, name);
46735
46246
  },
46736
- findDeviceConfig: async (id) => {
46737
- const devices = this.ctx.kernel.devices;
46738
- if (!devices) return null;
46739
- return devices.loadConfig(id).catch(() => null);
46247
+ releaseDevice: async ({ deviceId, childDeviceId }) => {
46248
+ if (deviceId !== this.id) return;
46249
+ await this.releaseGroupContainer(childDeviceId);
46740
46250
  }
46741
46251
  });
46252
+ this.setCapSlice(deviceDiscoveryCapability, {
46253
+ discovered: [],
46254
+ lastDiscoveryAt: null,
46255
+ lastError: null,
46256
+ lastFetchedAt: 0
46257
+ });
46742
46258
  }
46743
- globalSettingsSchema() {
46744
- return this.schema({ sections: [{
46745
- id: "ecowitt-broker",
46746
- title: "Ecowitt gateway",
46747
- description: "Ecowitt gateways are managed in the External systems → Brokers tab.",
46748
- columns: 1,
46749
- fields: [{
46750
- type: "info",
46751
- key: "brokerHelp",
46752
- label: "Gateways are managed separately",
46753
- content: "This integration links to an Ecowitt gateway broker. Add, edit, or remove gateways from External systems → Brokers. The integration only stores a reference to its broker."
46754
- }]
46755
- }] });
46756
- }
46757
- async supportsManualCreation() {
46758
- return false;
46759
- }
46760
- async onGetCreationSchema(_type) {
46761
- return null;
46259
+ /** Enumerate the three gateway-group Container candidates from the live client
46260
+ * snapshot, flag `alreadyAdopted` per group, persist into the slice. */
46261
+ async refreshDiscoveryFromClient() {
46262
+ let lastError = null;
46263
+ let discovered = [];
46264
+ try {
46265
+ const sensors = ecowittFacades.get(this.stableId)?.getSensors() ?? this.latestSensors;
46266
+ const adoptedByGroup = await this.adoptedContainerIdByGroup();
46267
+ discovered = buildEcowittGatewayCandidates({
46268
+ gatewayId: this.stableId,
46269
+ gatewayName: this.name,
46270
+ sensors,
46271
+ adoptedDeviceIdByGroup: adoptedByGroup
46272
+ });
46273
+ } catch (err) {
46274
+ lastError = errMsg(err);
46275
+ this.ctx.logger.warn("Ecowitt gateway discovery refresh failed", { meta: { error: lastError } });
46276
+ }
46277
+ this.runtimeState.setCapState(deviceDiscoveryCapability.name, {
46278
+ discovered,
46279
+ lastDiscoveryAt: Date.now(),
46280
+ lastError,
46281
+ lastFetchedAt: Date.now()
46282
+ });
46762
46283
  }
46763
- async onCreateDevice(_type, _config) {
46764
- throw new Error("Ecowitt gateways are adopted, not created manually");
46284
+ /** Map each device group → the adopted group Container's device id (null when
46285
+ * not adopted), by walking this gateway's direct children. */
46286
+ async adoptedContainerIdByGroup() {
46287
+ const out = {};
46288
+ const children = await this.ctx.devices.getChildren(this.id).catch(() => []);
46289
+ for (const child of children) {
46290
+ if (child.type !== DeviceType.Container) continue;
46291
+ const cfg = await this.ctx.devices.loadConfig(child.id).catch(() => ({}));
46292
+ if (cfg["system"] !== "ecowitt") continue;
46293
+ out[configDeviceGroup(cfg)] = child.id;
46294
+ }
46295
+ return out;
46765
46296
  }
46766
- setBrokerDevicesOnline(brokerId, online) {
46767
- const reg = this.ctx.kernel.deviceRegistry;
46768
- if (!reg) return;
46769
- const n = setBrokerDevicesOnline(reg.getAllForAddon(this.addonId), brokerId, online);
46770
- if (n > 0) this.ctx.logger.info("Ecowitt: broker devices " + (online ? "online" : "offline"), { meta: {
46771
- brokerId,
46772
- count: n
46773
- } });
46297
+ /** Promote a discovered group candidate to a real group Container child. */
46298
+ async adoptGroupContainer(childNativeId, nameOverride) {
46299
+ const group = ECOWITT_DEVICE_GROUPS.find((g) => groupNativeId(this.stableId, g) === childNativeId);
46300
+ if (group === void 0) throw new Error(`adoptDevice: ${childNativeId} does not match any gateway group`);
46301
+ const existingId = (await this.adoptedContainerIdByGroup())[group];
46302
+ if (typeof existingId === "number") {
46303
+ const existing = (await this.ctx.devices.getAll()).find((d) => d.id === existingId);
46304
+ if (existing) return {
46305
+ deviceId: existing.id,
46306
+ stableId: existing.stableId
46307
+ };
46308
+ }
46309
+ const sensors = (ecowittFacades.get(this.stableId)?.getSensors() ?? this.latestSensors).filter((s) => deviceGroupForSensor(s.category, s.channel) === group).map(sensorToEntry);
46310
+ const name = nameOverride ?? `${this.name} — ${group}`;
46311
+ const config = {
46312
+ gatewayId: this.stableId,
46313
+ deviceGroup: group,
46314
+ sensors,
46315
+ system: "ecowitt",
46316
+ name
46317
+ };
46318
+ const stableId = `${this.stableId}:${group}`;
46319
+ const created = await this.ctx.devices.create(stableId, EcowittContainerDevice, config, this.id, {
46320
+ type: DeviceType.Container,
46321
+ name
46322
+ });
46323
+ this.ctx.logger.info("Ecowitt gateway: adopted group container", {
46324
+ tags: { deviceId: created.id },
46325
+ meta: {
46326
+ group,
46327
+ stableId,
46328
+ sensorCount: sensors.length
46329
+ }
46330
+ });
46331
+ await this.refreshDiscoveryFromClient().catch(() => {});
46332
+ return {
46333
+ deviceId: created.id,
46334
+ stableId
46335
+ };
46774
46336
  }
46775
- requireRegistry() {
46776
- if (!this.registry) throw new Error("Ecowitt provider not initialised");
46777
- return this.registry;
46337
+ async releaseGroupContainer(childDeviceId) {
46338
+ const child = (await this.ctx.devices.getAll()).find((d) => d.id === childDeviceId);
46339
+ if (!child || child.parentDeviceId !== this.id) throw new Error(`releaseDevice: ${childDeviceId} is not a child of gateway ${this.id}`);
46340
+ await this.ctx.devices.remove(childDeviceId);
46341
+ await this.refreshDiscoveryFromClient().catch(() => {});
46342
+ }
46343
+ /** Re-derive every adopted group Container's `sensors[]` from the live
46344
+ * snapshot (group-filtered) and re-persist via `applyDerivedSpec` when it
46345
+ * changed. Best-effort. */
46346
+ async reconcileGroupSensors(sensors) {
46347
+ const byGroup = bucketSensorsByGroup(sensors);
46348
+ const children = await this.ctx.devices.getChildren(this.id).catch(() => []);
46349
+ for (const child of children) {
46350
+ if (child.type !== DeviceType.Container) continue;
46351
+ const cfg = await this.ctx.devices.loadConfig(child.id).catch(() => ({}));
46352
+ if (cfg["system"] !== "ecowitt") continue;
46353
+ const group = configDeviceGroup(cfg);
46354
+ const nextSensors = byGroup.get(group) ?? [];
46355
+ if (sensorsEqual(Array.isArray(cfg["sensors"]) ? cfg["sensors"] : [], nextSensors)) continue;
46356
+ await this.ctx.devices.applyDerivedSpec(child.id, { config: { sensors: nextSensors } });
46357
+ this.ctx.logger.info("Ecowitt gateway: group sensors reconciled", { meta: {
46358
+ deviceId: child.id,
46359
+ group,
46360
+ sensorCount: nextSensors.length
46361
+ } });
46362
+ }
46778
46363
  }
46779
46364
  };
46780
- /** Structural equality of two persisted sensor lists (order-independent by id). */
46365
+ /** Resolve `deviceGroup` from a persisted container config (defaults to 'gateway'). */
46366
+ function configDeviceGroup(config) {
46367
+ const g = config["deviceGroup"];
46368
+ return ECOWITT_DEVICE_GROUPS.find((group) => group === g) ?? "gateway";
46369
+ }
46370
+ /** Build the persisted sensor entry (incl. self-describing category) from a live Sensor. */
46371
+ function sensorToEntry(s) {
46372
+ return {
46373
+ sensorId: s.id,
46374
+ quantity: s.quantity,
46375
+ ...s.channel !== void 0 ? { channel: s.channel } : {},
46376
+ ...s.name !== void 0 ? { name: s.name } : {},
46377
+ ...s.category !== void 0 ? { category: s.category } : {}
46378
+ };
46379
+ }
46380
+ /** Bucket live sensors into their device group. */
46381
+ function bucketSensorsByGroup(sensors) {
46382
+ const byGroup = /* @__PURE__ */ new Map();
46383
+ for (const group of ECOWITT_DEVICE_GROUPS) byGroup.set(group, []);
46384
+ for (const s of sensors) {
46385
+ const group = deviceGroupForSensor(s.category, s.channel);
46386
+ byGroup.get(group)?.push(sensorToEntry(s));
46387
+ }
46388
+ return byGroup;
46389
+ }
46390
+ /** Structural equality of two persisted sensor lists (order-independent by id + name). */
46781
46391
  function sensorsEqual(a, b) {
46782
46392
  if (a.length !== b.length) return false;
46783
46393
  const aById = /* @__PURE__ */ new Map();
@@ -46795,4 +46405,108 @@ function sensorsEqual(a, b) {
46795
46405
  return true;
46796
46406
  }
46797
46407
  //#endregion
46798
- export { EcowittProviderAddon, buildConnectionFormSchema as a, settingsToEcowittConfig as c, valueFieldForCap as i, capForQuantity as n, ecowittAddonConfigSchema as o, sensorLabel as r, ecowittConfigSchema as s, buildEcowittGatewayCandidate as t };
46408
+ //#region src/addon.ts
46409
+ /**
46410
+ * Ecowitt weather-station device-provider addon — `mode: standalone` (the
46411
+ * Reolink pattern). No broker, no device-adoption cap. A gateway is added as a
46412
+ * DEVICE via the manual-creation form: the CONNECTION (transport / host / port /
46413
+ * password OR listener) lives on the gateway DEVICE config. The created gateway
46414
+ * is a {@link DeviceType.Hub} ({@link EcowittGatewayDevice}) that owns its own
46415
+ * live `@apocaliss92/nodewitt` client and registers `device-discovery` to adopt
46416
+ * its own children: up to THREE group {@link DeviceType.Container} children
46417
+ * (gateway / weather-station / temp-sensor-ch1), each fanning out one typed
46418
+ * sensor child per `Sensor.quantity`.
46419
+ *
46420
+ * `instanceMode: multiple` — many gateways may be added.
46421
+ */
46422
+ var EcowittProviderAddon = class extends BaseDeviceProvider {
46423
+ addonId = "provider-ecowitt";
46424
+ providerName = "Ecowitt";
46425
+ deviceClasses = {
46426
+ [DeviceType.Hub]: EcowittGatewayDevice,
46427
+ [DeviceType.Container]: EcowittContainerDevice
46428
+ };
46429
+ constructor() {
46430
+ super({});
46431
+ }
46432
+ async supportsDiscovery() {
46433
+ return false;
46434
+ }
46435
+ async supportsManualCreation() {
46436
+ return true;
46437
+ }
46438
+ async onGetCreationSchema(type) {
46439
+ if (type !== DeviceType.Hub) return null;
46440
+ return buildConnectionFormSchema();
46441
+ }
46442
+ async onCreateDevice(type, config) {
46443
+ if (type !== DeviceType.Hub) throw new Error(`Ecowitt provider does not support device type: ${type}`);
46444
+ const name = typeof config["name"] === "string" ? config["name"].trim() : "";
46445
+ if (!name) throw new Error("Gateway name is required");
46446
+ const connection = settingsToEcowittConfig(config);
46447
+ if (connection.transport === "local" && connection.host.trim().length === 0) throw new Error("Gateway host is required for local-poll transport");
46448
+ const stableId = this.generateStableId(DeviceType.Hub, { connection });
46449
+ const manager = new EcowittIntegrationManager({
46450
+ id: stableId,
46451
+ name,
46452
+ connection,
46453
+ logger: this.ctx.logger,
46454
+ onConnected: () => void 0,
46455
+ onDisconnected: () => void 0,
46456
+ onSensorsChanged: () => void 0,
46457
+ onFacadeBuilt: (_id, facade) => ecowittFacades.set(stableId, facade)
46458
+ });
46459
+ try {
46460
+ await manager.start();
46461
+ } catch (err) {
46462
+ this.ctx.logger.warn("Ecowitt create: initial client start failed — device kept", { meta: {
46463
+ stableId,
46464
+ error: errMsg(err)
46465
+ } });
46466
+ }
46467
+ return {
46468
+ meta: {
46469
+ type: DeviceType.Hub,
46470
+ name
46471
+ },
46472
+ config: {
46473
+ connection,
46474
+ system: "ecowitt-gateway"
46475
+ },
46476
+ onAfterCreate: async (device) => {
46477
+ if (device instanceof EcowittGatewayDevice) device.adoptManager(manager);
46478
+ }
46479
+ };
46480
+ }
46481
+ /**
46482
+ * Gateway stableId — derived from the connection (Reolink-style host/identity
46483
+ * key), NOT a broker id. Priority: `stationId` (operator-provided stable id) →
46484
+ * `host` (local transport) → `listen:<port>` (listener transport). Re-adding
46485
+ * the same gateway reuses its persisted row.
46486
+ */
46487
+ generateStableId(_type, config) {
46488
+ const connection = extractConnection(config);
46489
+ const station = typeof connection?.stationId === "string" ? connection.stationId.trim() : "";
46490
+ if (station.length > 0) return `ecowitt:${slug(station)}`;
46491
+ if (connection?.transport === "local") {
46492
+ const host = connection.host.trim();
46493
+ if (host.length > 0) return `ecowitt:${slug(host)}`;
46494
+ }
46495
+ if (connection?.transport === "listener") return `ecowitt:listen-${connection.listenPort}`;
46496
+ throw new Error("Ecowitt: gateway resolved neither a station id nor a host/listen endpoint — cannot persist a stable row key.");
46497
+ }
46498
+ };
46499
+ /** Narrow the create-spec config's `connection` field to an {@link EcowittConfig}. */
46500
+ function extractConnection(config) {
46501
+ const raw = config?.["connection"];
46502
+ if (typeof raw !== "object" || raw === null) return null;
46503
+ const transport = raw.transport;
46504
+ if (transport !== "local" && transport !== "listener") return null;
46505
+ return settingsToEcowittConfig(raw);
46506
+ }
46507
+ /** Flatten a host / station id into a readable row-key slug. */
46508
+ function slug(value) {
46509
+ return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
46510
+ }
46511
+ //#endregion
46512
+ export { EcowittProviderAddon, deviceGroupForSensor as a, valueFieldForCap as c, ecowittGatewaySchema as d, settingsToEcowittConfig as f, capForQuantity as i, buildConnectionFormSchema as l, groupNativeId as n, deviceGroupLabel as o, ECOWITT_DEVICE_GROUPS as r, sensorLabel as s, buildEcowittGatewayCandidates as t, ecowittConfigSchema as u };