@interopio/desktop 6.17.0 → 6.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +7 -1
- package/desktop.d.ts +27 -8
- package/dist/desktop.browser.js +53 -16
- package/dist/desktop.browser.js.map +1 -1
- package/dist/desktop.browser.min.js +1 -1
- package/dist/desktop.browser.min.js.map +1 -1
- package/dist/desktop.es.js +53 -16
- package/dist/desktop.es.js.map +1 -1
- package/dist/desktop.umd.js +53 -16
- package/dist/desktop.umd.js.map +1 -1
- package/dist/desktop.umd.min.js +1 -1
- package/dist/desktop.umd.min.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop.umd.min.js","sources":["../node_modules/@interopio/core/dist/core.es.js","../src/activity/entities/activityEntity.ts","../src/activity/helpers/util.ts","../src/activity/entities/activityType.ts","../src/activity/entities/windowType.ts","../src/activity/contracts/entityEvent.ts","../src/activity/core/activityAGM.ts","../src/activity/entities/attachedActivityDescriptor.ts","../src/activity/helpers/promiseExtensions.ts","../src/activity/entities/activity.ts","../src/activity/helpers/logger.ts","../src/activity/entities/activityWindow.ts","../src/activity/contracts/activityStatus.ts","../src/activity/bridges/gw3Bridge.ts","../src/activity/API/activityMyAPI.ts","../src/activity/helpers/readyMarker.ts","../src/activity/helpers/entityObservableCollection.ts","../src/activity/core/activityManager.ts","../src/activity/API/activityManagementAPI.ts","../src/activity/API/activityAPI.ts","../src/activity/activityModule.ts","../src/app-manager/const/agm-names.ts","../node_modules/callback-registry/lib/index.js","../src/app-manager/helper.ts","../src/constants.ts","../src/utils.ts","../../../node_modules/nanoid/non-secure/index.js","../src/app-manager/application.ts","../src/app-manager/instance.ts","../src/app-manager/app-manager.ts","../src/app-manager/entitlements.ts","../src/app-manager/in-memory.ts","../src/app-manager/main.ts","../src/app-manager/snapshot.ts","../src/app-manager/data-subscription.ts","../src/windows/jumpList/manager.ts","../src/windows/store.ts","../src/windows/jumpList/actions.ts","../src/windows/jumpList/categories.ts","../src/windows/jumpList/main.ts","../src/channels/channelIDUtils.ts","../src/windows/window.ts","../src/windows/environment/helpers.ts","../src/windows/environment/gd/executor.ts","../src/windows/environment/gd/gd.ts","../src/windows/environment/detector.ts","../src/windows/group.ts","../src/windows/groups.ts","../src/windows/main.ts","../src/layouts/store.ts","../src/layouts/contextProvider.ts","../src/layouts/transform.ts","../src/layouts/layout.ts","../../schemas/app/application.js","../../schemas/app/system.js","../../schemas/app/layout.js","../../schemas/app/swTheme.js","../../schemas/app/swConfiguration.js","../../schemas/app/main.js","../src/layouts/layouts.ts","../src/layouts/stream/acsStream.ts","../src/layouts/main.ts","../src/layouts/stream/nullStream.ts","../src/displays/displayManager.ts","../src/channels/agm.ts","../src/channels/contexts.ts","../src/channels/helpers.ts","../src/channels/channels.ts","../src/hotkeys/hotkeys.ts","../src/platform/main.ts","../src/config.ts","../src/notifications/notification.ts","../src/notifications/panel.ts","../src/notifications/main.ts","../src/themes/themes.ts","../node_modules/@interopio/utils/dist/utils.es.js","../src/intents/constants.ts","../src/intents/common.ts","../src/intents/helpers.ts","../src/intents/intents.ts","../src/prefs/index.ts","../src/cookies/index.ts","../src/eventsDispatcher.ts","../../../app/utils/promise.js","../src/interception/constants.ts","../src/interception/main.ts","../src/apps/my.ts","../src/apps/interop.ts","../src/apps/inMemoryStore.ts","../src/apps/registry.ts","../src/apps/errors.ts","../src/apps/instances.ts","../src/utils/appsController.ts","../src/glue.ts","../src/factoryCallInfo.ts","../src/apps/main.ts","../src/channels/main.ts","../src/hotkeys/main.ts","../src/themes/main.ts","../src/cookies/main.ts","../src/index.ts"],"sourcesContent":["var MetricTypes = {\n STRING: 1,\n NUMBER: 2,\n TIMESTAMP: 3,\n OBJECT: 4\n};\n\nfunction getMetricTypeByValue(metric) {\n if (metric.type === MetricTypes.TIMESTAMP) {\n return \"timestamp\";\n }\n else if (metric.type === MetricTypes.NUMBER) {\n return \"number\";\n }\n else if (metric.type === MetricTypes.STRING) {\n return \"string\";\n }\n else if (metric.type === MetricTypes.OBJECT) {\n return \"object\";\n }\n return \"unknown\";\n}\nfunction getTypeByValue(value) {\n if (value.constructor === Date) {\n return \"timestamp\";\n }\n else if (typeof value === \"number\") {\n return \"number\";\n }\n else if (typeof value === \"string\") {\n return \"string\";\n }\n else if (typeof value === \"object\") {\n return \"object\";\n }\n else {\n return \"string\";\n }\n}\nfunction serializeMetric(metric) {\n const serializedMetrics = {};\n const type = getMetricTypeByValue(metric);\n if (type === \"object\") {\n const values = Object.keys(metric.value).reduce((memo, key) => {\n const innerType = getTypeByValue(metric.value[key]);\n if (innerType === \"object\") {\n const composite = defineNestedComposite(metric.value[key]);\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite,\n };\n }\n else {\n memo[key] = {\n type: innerType,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n serializedMetrics.composite = values;\n }\n serializedMetrics.name = normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name);\n serializedMetrics.type = type;\n serializedMetrics.description = metric.description;\n serializedMetrics.context = {};\n return serializedMetrics;\n}\nfunction defineNestedComposite(values) {\n return Object.keys(values).reduce((memo, key) => {\n const type = getTypeByValue(values[key]);\n if (type === \"object\") {\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite: defineNestedComposite(values[key]),\n };\n }\n else {\n memo[key] = {\n type,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n}\nfunction normalizeMetricName(name) {\n if (typeof name !== \"undefined\" && name.length > 0 && name[0] !== \"/\") {\n return \"/\" + name;\n }\n else {\n return name;\n }\n}\nfunction getMetricValueByType(metric) {\n const type = getMetricTypeByValue(metric);\n if (type === \"timestamp\") {\n return Date.now();\n }\n else {\n return publishNestedComposite(metric.value);\n }\n}\nfunction publishNestedComposite(values) {\n if (typeof values !== \"object\") {\n return values;\n }\n return Object.keys(values).reduce((memo, key) => {\n const value = values[key];\n if (typeof value === \"object\" && value.constructor !== Date) {\n memo[key] = publishNestedComposite(value);\n }\n else if (value.constructor === Date) {\n memo[key] = new Date(value).getTime();\n }\n else if (value.constructor === Boolean) {\n memo[key] = value.toString();\n }\n else {\n memo[key] = value;\n }\n return memo;\n }, {});\n}\nfunction flatten(arr) {\n return arr.reduce((flat, toFlatten) => {\n return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);\n }, []);\n}\nfunction getHighestState(arr) {\n return arr.sort((a, b) => {\n if (!a.state) {\n return 1;\n }\n if (!b.state) {\n return -1;\n }\n return b.state - a.state;\n })[0];\n}\nfunction aggregateDescription(arr) {\n let msg = \"\";\n arr.forEach((m, idx, a) => {\n const path = m.path.join(\".\");\n if (idx === a.length - 1) {\n msg += path + \".\" + m.name + \": \" + m.description;\n }\n else {\n msg += path + \".\" + m.name + \": \" + m.description + \",\";\n }\n });\n if (msg.length > 100) {\n return msg.slice(0, 100) + \"...\";\n }\n else {\n return msg;\n }\n}\nfunction composeMsgForRootStateMetric(system) {\n const aggregatedState = system.root.getAggregateState();\n const merged = flatten(aggregatedState);\n const highestState = getHighestState(merged);\n const aggregateDesc = aggregateDescription(merged);\n return {\n description: aggregateDesc,\n value: highestState.state,\n };\n}\n\nfunction gw3 (connection, config) {\n if (!connection || typeof connection !== \"object\") {\n throw new Error(\"Connection is required parameter\");\n }\n let joinPromise;\n let session;\n const init = (repo) => {\n let resolveReadyPromise;\n joinPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n session = connection.domain(\"metrics\");\n session.onJoined((reconnect) => {\n if (!reconnect && resolveReadyPromise) {\n resolveReadyPromise();\n resolveReadyPromise = undefined;\n }\n const rootStateMetric = {\n name: \"/State\",\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const defineRootMetricsMsg = {\n type: \"define\",\n metrics: [rootStateMetric],\n };\n session.sendFireAndForget(defineRootMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for root state metric: ${JSON.stringify(err)}`);\n });\n if (reconnect) {\n replayRepo(repo);\n }\n });\n session.join({\n system: config.system,\n service: config.service,\n instance: config.instance\n });\n };\n const replayRepo = (repo) => {\n replaySystem(repo.root);\n };\n const replaySystem = (system) => {\n createSystem(system);\n system.metrics.forEach((m) => {\n createMetric(m);\n });\n system.subSystems.forEach((ss) => {\n replaySystem(ss);\n });\n };\n const createSystem = async (system) => {\n if (system.parent === undefined) {\n return;\n }\n await joinPromise;\n const metric = {\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const createMetricsMsg = {\n type: \"define\",\n metrics: [metric],\n };\n session.sendFireAndForget(createMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for system state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n };\n const updateSystem = async (system, state) => {\n await joinPromise;\n const shadowedUpdateMetric = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n value: {\n Description: state.description,\n Value: state.state,\n },\n timestamp: Date.now(),\n }],\n };\n session.sendFireAndForget(shadowedUpdateMetric)\n .catch((err) => {\n config.logger.warn(`Failed to send update for system state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n const stateObj = composeMsgForRootStateMetric(system);\n const rootMetric = {\n type: \"publish\",\n peer_id: connection.peerId,\n values: [{\n name: \"/State\",\n value: {\n Description: stateObj.description,\n Value: stateObj.value,\n },\n timestamp: Date.now(),\n }],\n };\n session.sendFireAndForget(rootMetric)\n .catch((err) => {\n config.logger.warn(`Failed to send update for root state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n };\n const createMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n const m = serializeMetric(metricClone);\n const createMetricsMsg = {\n type: \"define\",\n metrics: [m],\n };\n session.sendFireAndForget(createMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for metric ${metric.name}: ${JSON.stringify(err)}`);\n });\n if (typeof metricClone.value !== \"undefined\") {\n updateMetricCore(metricClone);\n }\n };\n const updateMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n updateMetricCore(metricClone);\n };\n const updateMetricCore = (metric) => {\n if (canUpdate()) {\n const value = getMetricValueByType(metric);\n const publishMetricsMsg = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name),\n value,\n timestamp: Date.now(),\n }],\n };\n return session.sendFireAndForget(publishMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to publish metric ${metric.name}: ${JSON.stringify(err)}`);\n });\n }\n return Promise.resolve();\n };\n const cloneMetric = (metric) => {\n const metricClone = { ...metric };\n if (typeof metric.value === \"object\" && metric.value !== null) {\n metricClone.value = { ...metric.value };\n }\n return metricClone;\n };\n const canUpdate = () => {\n try {\n const func = config.canUpdateMetric ?? (() => true);\n return func();\n }\n catch {\n return true;\n }\n };\n return {\n init,\n createSystem,\n updateSystem,\n createMetric,\n updateMetric,\n };\n}\n\nvar Helpers = {\n validate: (definition, parent, transport) => {\n if (definition === null || typeof definition !== \"object\") {\n throw new Error(\"Missing definition\");\n }\n if (parent === null || typeof parent !== \"object\") {\n throw new Error(\"Missing parent\");\n }\n if (transport === null || typeof transport !== \"object\") {\n throw new Error(\"Missing transport\");\n }\n },\n};\n\nclass BaseMetric {\n definition;\n system;\n transport;\n value;\n type;\n path = [];\n name;\n description;\n get repo() {\n return this.system?.repo;\n }\n get id() { return `${this.system.path}/${name}`; }\n constructor(definition, system, transport, value, type) {\n this.definition = definition;\n this.system = system;\n this.transport = transport;\n this.value = value;\n this.type = type;\n Helpers.validate(definition, system, transport);\n this.path = system.path.slice(0);\n this.path.push(system.name);\n this.name = definition.name;\n this.description = definition.description;\n transport.createMetric(this);\n }\n update(newValue) {\n this.value = newValue;\n return this.transport.updateMetric(this);\n }\n}\n\nclass NumberMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.NUMBER);\n }\n incrementBy(num) {\n this.update(this.value + num);\n }\n increment() {\n this.incrementBy(1);\n }\n decrement() {\n this.incrementBy(-1);\n }\n decrementBy(num) {\n this.incrementBy(num * -1);\n }\n}\n\nclass ObjectMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.OBJECT);\n }\n update(newValue) {\n this.mergeValues(newValue);\n return this.transport.updateMetric(this);\n }\n mergeValues(values) {\n return Object.keys(this.value).forEach((k) => {\n if (typeof values[k] !== \"undefined\") {\n this.value[k] = values[k];\n }\n });\n }\n}\n\nclass StringMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.STRING);\n }\n}\n\nclass TimestampMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.TIMESTAMP);\n }\n now() {\n this.update(new Date());\n }\n}\n\nfunction system(name, repo, protocol, parent, description) {\n if (!repo) {\n throw new Error(\"Repository is required\");\n }\n if (!protocol) {\n throw new Error(\"Transport is required\");\n }\n const _transport = protocol;\n const _name = name;\n const _description = description || \"\";\n const _repo = repo;\n const _parent = parent;\n const _path = _buildPath(parent);\n let _state = {};\n const id = _arrayToString(_path, \"/\") + name;\n const root = repo.root;\n const _subSystems = [];\n const _metrics = [];\n function subSystem(nameSystem, descriptionSystem) {\n if (!nameSystem || nameSystem.length === 0) {\n throw new Error(\"name is required\");\n }\n const match = _subSystems.filter((s) => s.name === nameSystem);\n if (match.length > 0) {\n return match[0];\n }\n const _system = system(nameSystem, _repo, _transport, me, descriptionSystem);\n _subSystems.push(_system);\n return _system;\n }\n function setState(state, stateDescription) {\n _state = { state, description: stateDescription };\n _transport.updateSystem(me, _state);\n }\n function stringMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.STRING, value, (metricDef) => new StringMetric(metricDef, me, _transport, value));\n }\n function numberMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.NUMBER, value, (metricDef) => new NumberMetric(metricDef, me, _transport, value));\n }\n function objectMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.OBJECT, value, (metricDef) => new ObjectMetric(metricDef, me, _transport, value));\n }\n function timestampMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.TIMESTAMP, value, (metricDef) => new TimestampMetric(metricDef, me, _transport, value));\n }\n function _getOrCreateMetric(metricObject, expectedType, value, createMetric) {\n let metricDef = { name: \"\" };\n if (typeof metricObject === \"string\") {\n metricDef = { name: metricObject };\n }\n else {\n metricDef = metricObject;\n }\n const matching = _metrics.filter((shadowedMetric) => shadowedMetric.name === metricDef.name);\n if (matching.length > 0) {\n const existing = matching[0];\n if (existing.type !== expectedType) {\n throw new Error(`A metric named ${metricDef.name} is already defined with different type.`);\n }\n if (typeof value !== \"undefined\") {\n existing\n .update(value)\n .catch(() => { });\n }\n return existing;\n }\n const metric = createMetric(metricDef);\n _metrics.push(metric);\n return metric;\n }\n function _buildPath(shadowedSystem) {\n if (!shadowedSystem || !shadowedSystem.parent) {\n return [];\n }\n const path = _buildPath(shadowedSystem.parent);\n path.push(shadowedSystem.name);\n return path;\n }\n function _arrayToString(path, separator) {\n return ((path && path.length > 0) ? path.join(separator) : \"\");\n }\n function getAggregateState() {\n const aggState = [];\n if (Object.keys(_state).length > 0) {\n aggState.push({\n name: _name,\n path: _path,\n state: _state.state,\n description: _state.description,\n });\n }\n _subSystems.forEach((shadowedSubSystem) => {\n const result = shadowedSubSystem.getAggregateState();\n if (result.length > 0) {\n aggState.push(...result);\n }\n });\n return aggState;\n }\n const me = {\n get name() {\n return _name;\n },\n get description() {\n return _description;\n },\n get repo() {\n return _repo;\n },\n get parent() {\n return _parent;\n },\n path: _path,\n id,\n root,\n get subSystems() {\n return _subSystems;\n },\n get metrics() {\n return _metrics;\n },\n subSystem,\n getState: () => {\n return _state;\n },\n setState,\n stringMetric,\n timestampMetric,\n objectMetric,\n numberMetric,\n getAggregateState,\n };\n _transport.createSystem(me);\n return me;\n}\n\nclass Repository {\n root;\n constructor(options, protocol) {\n protocol.init(this);\n this.root = system(\"\", this, protocol);\n this.addSystemMetrics(this.root, options.clickStream || options.clickStream === undefined);\n }\n addSystemMetrics(rootSystem, useClickStream) {\n if (typeof navigator !== \"undefined\") {\n rootSystem.stringMetric(\"UserAgent\", navigator.userAgent);\n }\n if (useClickStream && typeof document !== \"undefined\") {\n const clickStream = rootSystem.subSystem(\"ClickStream\");\n const documentClickHandler = (e) => {\n if (!e.target) {\n return;\n }\n const target = e.target;\n const className = target ? target.getAttribute(\"class\") ?? \"\" : \"\";\n clickStream.objectMetric(\"LastBrowserEvent\", {\n type: \"click\",\n timestamp: new Date(),\n target: {\n className,\n id: target.id,\n type: \"<\" + target.tagName.toLowerCase() + \">\",\n href: target.href || \"\",\n },\n });\n };\n clickStream.objectMetric(\"Page\", {\n title: document.title,\n page: window.location.href,\n });\n if (document.addEventListener) {\n document.addEventListener(\"click\", documentClickHandler);\n }\n else {\n document.attachEvent(\"onclick\", documentClickHandler);\n }\n }\n rootSystem.stringMetric(\"StartTime\", (new Date()).toString());\n const urlMetric = rootSystem.stringMetric(\"StartURL\", \"\");\n const appNameMetric = rootSystem.stringMetric(\"AppName\", \"\");\n if (typeof window !== \"undefined\") {\n if (typeof window.location !== \"undefined\") {\n const startUrl = window.location.href;\n urlMetric.update(startUrl);\n }\n if (typeof window.glue42gd !== \"undefined\") {\n appNameMetric.update(window.glue42gd.appName);\n }\n }\n }\n}\n\nclass NullProtocol {\n init(repo) {\n }\n createSystem(system) {\n return Promise.resolve();\n }\n updateSystem(metric, state) {\n return Promise.resolve();\n }\n createMetric(metric) {\n return Promise.resolve();\n }\n updateMetric(metric) {\n return Promise.resolve();\n }\n}\n\nclass PerfTracker {\n api;\n lastCount = 0;\n initialPublishTimeout = 10 * 1000;\n publishInterval = 60 * 1000;\n system;\n constructor(api, initialPublishTimeout, publishInterval) {\n this.api = api;\n this.initialPublishTimeout = initialPublishTimeout ?? this.initialPublishTimeout;\n this.publishInterval = publishInterval ?? this.publishInterval;\n this.scheduleCollection();\n this.system = this.api.subSystem(\"performance\", \"Performance data published by the web application\");\n }\n scheduleCollection() {\n setTimeout(() => {\n this.collect();\n setInterval(() => {\n this.collect();\n }, this.publishInterval);\n }, this.initialPublishTimeout);\n }\n collect() {\n try {\n this.collectMemory();\n this.collectEntries();\n }\n catch {\n }\n }\n collectMemory() {\n const memory = window.performance.memory;\n this.system.stringMetric(\"memory\", JSON.stringify({\n totalJSHeapSize: memory.totalJSHeapSize,\n usedJSHeapSize: memory.usedJSHeapSize\n }));\n }\n collectEntries() {\n const allEntries = window.performance.getEntries();\n if (allEntries.length <= this.lastCount) {\n return;\n }\n this.lastCount = allEntries.length;\n const jsonfiedEntries = allEntries.map((i) => i.toJSON());\n this.system.stringMetric(\"entries\", JSON.stringify(jsonfiedEntries));\n }\n}\n\nvar metrics = (options) => {\n let protocol;\n if (!options.connection || typeof options.connection !== \"object\") {\n protocol = new NullProtocol();\n }\n else {\n protocol = gw3(options.connection, options);\n }\n const repo = new Repository(options, protocol);\n let rootSystem = repo.root;\n if (!options.disableAutoAppSystem) {\n rootSystem = rootSystem.subSystem(\"App\");\n }\n const api = addFAVSupport(rootSystem);\n initPerf(api, options.pagePerformanceMetrics);\n return api;\n};\nfunction initPerf(api, config) {\n if (typeof window === \"undefined\") {\n return;\n }\n const perfConfig = window?.glue42gd?.metrics?.pagePerformanceMetrics;\n if (perfConfig) {\n config = perfConfig;\n }\n if (config?.enabled) {\n new PerfTracker(api, config.initialPublishTimeout, config.publishInterval);\n }\n}\nfunction addFAVSupport(system) {\n const reportingSystem = system.subSystem(\"reporting\");\n const def = {\n name: \"features\"\n };\n let featureMetric;\n const featureMetricFunc = (name, action, payload) => {\n if (typeof name === \"undefined\" || name === \"\") {\n throw new Error(\"name is mandatory\");\n }\n else if (typeof action === \"undefined\" || action === \"\") {\n throw new Error(\"action is mandatory\");\n }\n else if (typeof payload === \"undefined\" || payload === \"\") {\n throw new Error(\"payload is mandatory\");\n }\n if (!featureMetric) {\n featureMetric = reportingSystem.objectMetric(def, { name, action, payload });\n }\n else {\n featureMetric.update({\n name,\n action,\n payload\n });\n }\n };\n system.featureMetric = featureMetricFunc;\n return system;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\ncreateRegistry.default = createRegistry;\nvar lib = createRegistry;\n\n\nvar CallbackRegistryFactory = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass InProcTransport {\n gw;\n registry = CallbackRegistryFactory();\n client;\n constructor(settings, logger) {\n this.gw = settings.facade;\n this.gw.connect((_client, message) => {\n this.messageHandler(message);\n }).then((client) => {\n this.client = client;\n });\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n if (this.client) {\n this.client.send(msg);\n return Promise.resolve(undefined);\n }\n else {\n return Promise.reject(`not connected`);\n }\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"in-memory\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass SharedWorkerTransport {\n logger;\n worker;\n registry = CallbackRegistryFactory();\n constructor(workerFile, logger) {\n this.logger = logger;\n this.worker = new SharedWorker(workerFile);\n this.worker.port.onmessage = (e) => {\n this.messageHandler(e.data);\n };\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n this.worker.port.postMessage(msg);\n return Promise.resolve();\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"shared-worker\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass Utils {\n static isNode() {\n if (typeof Utils._isNode !== \"undefined\") {\n return Utils._isNode;\n }\n if (typeof window !== \"undefined\") {\n Utils._isNode = false;\n return false;\n }\n try {\n Utils._isNode = Object.prototype.toString.call(global.process) === \"[object process]\";\n }\n catch (e) {\n Utils._isNode = false;\n }\n return Utils._isNode;\n }\n static _isNode;\n}\n\nclass PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n resolve;\n reject;\n promise;\n rejected = false;\n resolved = false;\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\n\nconst timers = {};\nfunction getAllTimers() {\n return timers;\n}\nfunction timer (timerName) {\n const existing = timers[timerName];\n if (existing) {\n return existing;\n }\n const marks = [];\n function now() {\n return new Date().getTime();\n }\n const startTime = now();\n mark(\"start\", startTime);\n let endTime;\n let period;\n function stop() {\n endTime = now();\n mark(\"end\", endTime);\n period = endTime - startTime;\n return period;\n }\n function mark(name, time) {\n const currentTime = time ?? now();\n let diff = 0;\n if (marks.length > 0) {\n diff = currentTime - marks[marks.length - 1].time;\n }\n marks.push({ name, time: currentTime, diff });\n }\n const timerObj = {\n get startTime() {\n return startTime;\n },\n get endTime() {\n return endTime;\n },\n get period() {\n return period;\n },\n stop,\n mark,\n marks\n };\n timers[timerName] = timerObj;\n return timerObj;\n}\n\nconst WebSocketConstructor = Utils.isNode() ? require(\"ws\") : window.WebSocket;\nclass WS {\n ws;\n logger;\n settings;\n startupTimer = timer(\"connection\");\n _running = true;\n _registry = CallbackRegistryFactory();\n wsRequests = [];\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n if (!this.settings.ws) {\n throw new Error(\"ws is missing\");\n }\n }\n onMessage(callback) {\n return this._registry.add(\"onMessage\", callback);\n }\n send(msg, options) {\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(() => {\n try {\n this.ws?.send(msg);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n });\n }\n open() {\n this.logger.info(\"opening ws...\");\n this._running = true;\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(resolve, reject);\n });\n }\n close() {\n this._running = false;\n if (this.ws) {\n this.ws.close();\n }\n return Promise.resolve();\n }\n onConnectedChanged(callback) {\n return this._registry.add(\"onConnectedChanged\", callback);\n }\n name() {\n return this.settings.ws;\n }\n reconnect() {\n this.ws?.close();\n const pw = new PromiseWrapper();\n this.waitForSocketConnection(() => {\n pw.resolve();\n });\n return pw.promise;\n }\n waitForSocketConnection(callback, failed) {\n failed = failed ?? (() => { });\n if (!this._running) {\n failed(`wait for socket on ${this.settings.ws} failed - socket closed by user`);\n return;\n }\n if (this.ws?.readyState === 1) {\n callback();\n return;\n }\n this.wsRequests.push({ callback, failed });\n if (this.wsRequests.length > 1) {\n return;\n }\n this.openSocket();\n }\n async openSocket(retryInterval, retriesLeft) {\n this.logger.info(`opening ws to ${this.settings.ws}, retryInterval: ${retryInterval}, retriesLeft: ${retriesLeft}...`);\n this.startupTimer.mark(\"opening-socket\");\n if (retryInterval === undefined) {\n retryInterval = this.settings.reconnectInterval;\n }\n if (typeof retriesLeft === \"undefined\") {\n retriesLeft = this.settings.reconnectAttempts;\n }\n if (retriesLeft !== undefined) {\n if (retriesLeft === 0) {\n this.notifyForSocketState(`wait for socket on ${this.settings.ws} failed - no more retries left`);\n return;\n }\n this.logger.debug(`will retry ${retriesLeft} more times (every ${retryInterval} ms)`);\n }\n try {\n await this.initiateSocket();\n this.startupTimer.mark(\"socket-initiated\");\n this.notifyForSocketState();\n }\n catch {\n setTimeout(() => {\n const retries = retriesLeft === undefined ? undefined : retriesLeft - 1;\n this.openSocket(retryInterval, retries);\n }, retryInterval);\n }\n }\n initiateSocket() {\n const pw = new PromiseWrapper();\n this.logger.debug(`initiating ws to ${this.settings.ws}...`);\n this.ws = new WebSocketConstructor(this.settings.ws ?? \"\");\n let wasOpen = false;\n this.ws.onerror = (err) => {\n let reason;\n try {\n reason = JSON.stringify(err);\n }\n catch (error) {\n const seen = new WeakSet();\n const replacer = (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n reason = JSON.stringify(err, replacer);\n }\n this.logger.info(`ws error - reason: ${reason}`);\n pw.reject(\"error\");\n if (wasOpen) {\n wasOpen = false;\n this.notifyForSocketState(\"error\");\n }\n this.notifyStatusChanged(false, reason);\n };\n this.ws.onclose = (err) => {\n this.logger.info(`ws closed - code: ${err?.code} reason: ${err?.reason}`);\n pw.reject(\"closed\");\n if (wasOpen) {\n wasOpen = false;\n this.notifyForSocketState(\"closed\");\n }\n this.notifyStatusChanged(false);\n };\n this.ws.onopen = () => {\n this.startupTimer.mark(\"ws-opened\");\n this.logger.info(`ws opened ${this.settings.identity?.application}`);\n pw.resolve();\n wasOpen = true;\n this.notifyStatusChanged(true);\n };\n this.ws.onmessage = (message) => {\n this._registry.execute(\"onMessage\", message.data);\n };\n return pw.promise;\n }\n notifyForSocketState(error) {\n this.wsRequests.forEach((wsRequest) => {\n if (error) {\n if (wsRequest.failed) {\n wsRequest.failed(error);\n }\n }\n else {\n wsRequest.callback();\n }\n });\n this.wsRequests = [];\n }\n notifyStatusChanged(status, reason) {\n this._registry.execute(\"onConnectedChanged\", status, reason);\n }\n}\n\nclass MessageReplayerImpl {\n specs;\n specsNames = [];\n messages = {};\n isDone;\n subs = {};\n subsRefCount = {};\n connection;\n constructor(specs) {\n this.specs = {};\n for (const spec of specs) {\n this.specs[spec.name] = spec;\n this.specsNames.push(spec.name);\n }\n }\n init(connection) {\n this.connection = connection;\n for (const name of this.specsNames) {\n for (const type of this.specs[name].types) {\n let refCount = this.subsRefCount[type];\n if (!refCount) {\n refCount = 0;\n }\n refCount += 1;\n this.subsRefCount[type] = refCount;\n if (refCount > 1) {\n continue;\n }\n const sub = connection.on(type, (msg) => this.processMessage(type, msg));\n this.subs[type] = sub;\n }\n }\n }\n processMessage(type, msg) {\n if (this.isDone || !msg) {\n return;\n }\n for (const name of this.specsNames) {\n if (this.specs[name].types.indexOf(type) !== -1) {\n const messages = this.messages[name] || [];\n this.messages[name] = messages;\n messages.push(msg);\n }\n }\n }\n drain(name, callback) {\n if (callback) {\n (this.messages[name] || []).forEach(callback);\n }\n delete this.messages[name];\n for (const type of this.specs[name].types) {\n this.subsRefCount[type] -= 1;\n if (this.subsRefCount[type] <= 0) {\n this.connection?.off(this.subs[type]);\n delete this.subs[type];\n delete this.subsRefCount[type];\n }\n }\n delete this.specs[name];\n if (!this.specs.length) {\n this.isDone = true;\n }\n }\n}\n\n/* @ts-self-types=\"./index.d.ts\" */\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size | 0;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n};\n\nconst PromisePlus = (executor, timeoutMilliseconds, timeoutMessage) => {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n reject(message);\n }, timeoutMilliseconds);\n const providedPromise = new Promise(executor);\n providedPromise\n .then((result) => {\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n\nclass WebPlatformTransport {\n settings;\n logger;\n identity;\n isPreferredActivated;\n _connectionProtocolVersion;\n _communicationId;\n publicWindowId;\n selfAssignedWindowId;\n iAmConnected = false;\n parentReady = false;\n rejected = false;\n parentPingResolve;\n parentPingInterval;\n connectionResolve;\n extConnectionResolve;\n extConnectionReject;\n connectionReject;\n port;\n myClientId;\n extContentAvailable = false;\n extContentConnecting = false;\n extContentConnected = false;\n parentWindowId;\n parentInExtMode = false;\n webNamespace = \"g42_core_web\";\n parent;\n parentType;\n parentPingTimeout = 5000;\n connectionRequestTimeout = 7000;\n defaultTargetString = \"*\";\n registry = CallbackRegistryFactory();\n messages = {\n connectionAccepted: { name: \"connectionAccepted\", handle: this.handleConnectionAccepted.bind(this) },\n connectionRejected: { name: \"connectionRejected\", handle: this.handleConnectionRejected.bind(this) },\n connectionRequest: { name: \"connectionRequest\", handle: this.handleConnectionRequest.bind(this) },\n parentReady: {\n name: \"parentReady\", handle: () => {\n }\n },\n parentPing: { name: \"parentPing\", handle: this.handleParentPing.bind(this) },\n platformPing: { name: \"platformPing\", handle: this.handlePlatformPing.bind(this) },\n platformReady: { name: \"platformReady\", handle: this.handlePlatformReady.bind(this) },\n clientUnload: { name: \"clientUnload\", handle: () => { } },\n manualUnload: { name: \"manualUnload\", handle: this.handleManualUnload.bind(this) },\n extConnectionResponse: { name: \"extConnectionResponse\", handle: this.handleExtConnectionResponse.bind(this) },\n extSetupRequest: { name: \"extSetupRequest\", handle: this.handleExtSetupRequest.bind(this) },\n gatewayDisconnect: { name: \"gatewayDisconnect\", handle: this.handleGatewayDisconnect.bind(this) },\n gatewayInternalConnect: { name: \"gatewayInternalConnect\", handle: this.handleGatewayInternalConnect.bind(this) }\n };\n constructor(settings, logger, identity) {\n this.settings = settings;\n this.logger = logger;\n this.identity = identity;\n this.extContentAvailable = !!window.glue42ext;\n this.setUpMessageListener();\n this.setUpUnload();\n this.setupPlatformUnloadListener();\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : undefined;\n }\n manualSetReadyState() {\n this.iAmConnected = true;\n this.parentReady = true;\n }\n get transportWindowId() {\n return this.publicWindowId;\n }\n get communicationId() {\n return this._communicationId;\n }\n async sendObject(msg) {\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: msg }, window.origin);\n }\n if (!this.port) {\n throw new Error(\"Cannot send message, because the port was not opened yet\");\n }\n this.port.postMessage(msg);\n }\n get isObjectBasedTransport() {\n return true;\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n send() {\n return Promise.reject(\"not supported\");\n }\n onConnectedChanged(callback) {\n return this.registry.add(\"onConnectedChanged\", callback);\n }\n async open() {\n this.logger.debug(\"opening a connection to the web platform gateway.\");\n await this.connect();\n this.notifyStatusChanged(true);\n }\n close() {\n const message = {\n glue42core: {\n type: this.messages.gatewayDisconnect.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.port?.postMessage(message);\n this.parentReady = false;\n this.notifyStatusChanged(false, \"manual reconnection\");\n return Promise.resolve();\n }\n name() {\n return \"web-platform\";\n }\n async reconnect() {\n await this.close();\n return Promise.resolve();\n }\n initiateInternalConnection() {\n return new Promise((resolve, reject) => {\n this.logger.debug(\"opening an internal web platform connection\");\n this.port = this.settings.port;\n if (this.iAmConnected) {\n this.logger.warn(\"cannot open a new connection, because this client is currently connected\");\n return;\n }\n this.port.onmessage = (event) => {\n if (this.iAmConnected && !event.data?.glue42core) {\n this.registry.execute(\"onMessage\", event.data);\n return;\n }\n const data = event.data?.glue42core;\n if (!data) {\n return;\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.success) {\n this.publicWindowId = this.settings.windowId;\n if (this.identity && this.publicWindowId) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.publicWindowId;\n }\n resolve();\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.error) {\n reject(data.error);\n }\n };\n this.port.postMessage({\n glue42core: {\n type: this.messages.gatewayInternalConnect.name\n }\n });\n });\n }\n initiateRemoteConnection(target) {\n return PromisePlus((resolve, reject) => {\n this.connectionResolve = resolve;\n this.connectionReject = reject;\n this.myClientId = this.myClientId ?? nanoid(10);\n const bridgeInstanceId = this.getMyWindowId() || nanoid(10);\n const request = {\n glue42core: {\n type: this.messages.connectionRequest.name,\n clientId: this.myClientId,\n clientType: \"child\",\n bridgeInstanceId,\n selfAssignedWindowId: this.selfAssignedWindowId\n }\n };\n this.logger.debug(\"sending connection request\");\n if (this.extContentConnecting) {\n request.glue42core.clientType = \"child\";\n request.glue42core.bridgeInstanceId = this.myClientId;\n request.glue42core.parentWindowId = this.parentWindowId;\n return window.postMessage(request, window.origin);\n }\n if (!target) {\n throw new Error(\"Cannot send a connection request, because no glue target was specified!\");\n }\n target.postMessage(request, this.defaultTargetString);\n }, this.connectionRequestTimeout, \"The connection to the target glue window timed out\");\n }\n async isParentCheckSuccess(parentCheck) {\n try {\n await parentCheck;\n return { success: true };\n }\n catch (error) {\n return { success: false };\n }\n }\n setUpMessageListener() {\n if (this.settings.port) {\n this.logger.debug(\"skipping generic message listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"message\", (event) => {\n const data = event.data?.glue42core;\n if (!data || this.rejected) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n if (!this.checkMessageTypeValid(data.type)) {\n this.logger.error(`cannot handle the incoming glue42 core message, because the type is invalid: ${data.type}`);\n return;\n }\n const messageType = data.type;\n this.logger.debug(`received valid glue42core message of type: ${messageType}`);\n this.messages[messageType].handle(event);\n });\n }\n setUpUnload() {\n if (this.settings.port) {\n this.logger.debug(\"skipping unload event listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"beforeunload\", () => {\n if (this._connectionProtocolVersion) {\n return;\n }\n this.signalClientDisappearing();\n });\n window.addEventListener(\"pagehide\", () => {\n if (!this._connectionProtocolVersion) {\n return;\n }\n this.signalClientDisappearing();\n });\n }\n signalClientDisappearing() {\n if (this.extContentConnected) {\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.parent?.postMessage(message, this.defaultTargetString);\n this.port?.postMessage(message);\n }\n handlePlatformReady(event) {\n this.logger.debug(\"the web platform gave the ready signal\");\n this.parentReady = true;\n if (this.parentPingResolve) {\n this.parentPingResolve();\n delete this.parentPingResolve;\n }\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n this.parent = event.source;\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : \"window\";\n }\n handleConnectionAccepted(event) {\n const data = event.data?.glue42core;\n if (this.myClientId !== data.clientId) {\n return this.logger?.debug(`ignoring a connection accepted signal, because it is not targeted at me. My id: ${this.myClientId}, the id in the message: ${data.clientId}`);\n }\n return this.handleAcceptanceOfMyRequest(data);\n }\n handleAcceptanceOfMyRequest(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me.\");\n this.isPreferredActivated = data.isPreferredActivated;\n if (this.extContentConnecting) {\n return this.processExtContentConnection(data);\n }\n if (!data.port) {\n this.logger.error(\"cannot set up my connection, because I was not provided with a port\");\n return;\n }\n this._connectionProtocolVersion = data.connectionProtocolVersion;\n this.publicWindowId = this.getMyWindowId();\n if (this.identity) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.identity.instance ? this.identity.instance : this.publicWindowId || nanoid(10);\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n this._communicationId = data.communicationId;\n this.port = data.port;\n this.port.onmessage = (e) => this.registry.execute(\"onMessage\", e.data);\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n this.logger.error(\"unable to call the connection resolve, because no connection promise was found\");\n }\n processExtContentConnection(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me for extension content connection.\");\n this.extContentConnecting = false;\n this.extContentConnected = true;\n this.publicWindowId = this.parentWindowId || this.myClientId;\n if (this.extContentConnecting && this.identity) {\n this.identity.windowId = this.publicWindowId;\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n window.addEventListener(\"message\", (event) => {\n const extData = event.data?.glue42ExtInc;\n if (!extData) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n this.registry.execute(\"onMessage\", extData);\n });\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n }\n handleConnectionRejected(event) {\n this.logger.debug(\"handling a connection rejection. Most likely the reason is that this window was not created by a glue API call\");\n if (!this.connectionReject) {\n return;\n }\n const errorMsg = typeof event.data.glue42core?.error === \"string\"\n ? `Connection was rejected. ${event.data.glue42core?.error}`\n : \"The platform connection was rejected. Most likely because this window was not created by a glue API call\";\n this.connectionReject(errorMsg);\n delete this.connectionReject;\n }\n handleConnectionRequest() {\n if (this.extContentConnecting) {\n this.logger.debug(\"This connection request event is targeted at the extension content\");\n return;\n }\n }\n handleParentPing(event) {\n if (!this.parentReady) {\n this.logger.debug(\"my parent is not ready, I am ignoring the parent ping\");\n return;\n }\n if (!this.iAmConnected) {\n this.logger.debug(\"i am not fully connected yet, I am ignoring the parent ping\");\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.parentReady.name\n }\n };\n if (this.extContentConnected) {\n message.glue42core.extMode = { windowId: this.myClientId };\n }\n const source = event.source;\n this.logger.debug(\"responding to a parent ping with a ready message\");\n source.postMessage(message, event.origin);\n }\n setupPlatformUnloadListener() {\n this.onMessage((msg) => {\n if (msg.type === \"platformUnload\") {\n this.logger.debug(\"detected a web platform unload\");\n this.parentReady = false;\n this.notifyStatusChanged(false, \"Gateway unloaded\");\n }\n });\n }\n handleManualUnload() {\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: message }, window.origin);\n }\n this.port?.postMessage(message);\n }\n handlePlatformPing() {\n return;\n }\n notifyStatusChanged(status, reason) {\n this.iAmConnected = status;\n this.registry.execute(\"onConnectedChanged\", status, reason);\n }\n checkMessageTypeValid(typeToValidate) {\n return typeof typeToValidate === \"string\" && !!this.messages[typeToValidate];\n }\n requestConnectionPermissionFromExt() {\n return this.waitForContentScript()\n .then(() => PromisePlus((resolve, reject) => {\n this.extConnectionResolve = resolve;\n this.extConnectionReject = reject;\n const message = {\n glue42core: {\n type: \"extSetupRequest\"\n }\n };\n this.logger.debug(\"permission request to the extension content script was sent\");\n window.postMessage(message, window.origin);\n }, this.parentPingTimeout, \"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection timed out\"));\n }\n handleExtConnectionResponse(event) {\n const data = event.data?.glue42core;\n if (!data.approved) {\n return this.extConnectionReject ? this.extConnectionReject(\"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection was rejected\") : undefined;\n }\n if (this.extConnectionResolve) {\n this.extConnectionResolve();\n delete this.extConnectionResolve;\n }\n this.extContentConnecting = true;\n this.parentType = \"extension\";\n this.logger.debug(\"The extension connection was approved, proceeding.\");\n }\n handleExtSetupRequest() {\n return;\n }\n handleGatewayDisconnect() {\n return;\n }\n handleGatewayInternalConnect() {\n return;\n }\n waitForContentScript() {\n const contentReady = !!window.glue42ext?.content;\n if (contentReady) {\n return Promise.resolve();\n }\n return PromisePlus((resolve) => {\n window.addEventListener(\"Glue42EXTReady\", () => {\n resolve();\n });\n }, this.connectionRequestTimeout, \"The content script was available, but was never heard to be ready\");\n }\n async connect() {\n if (this.settings.port) {\n await this.initiateInternalConnection();\n this.logger.debug(\"internal web platform connection completed\");\n return;\n }\n this.logger.debug(\"opening a client web platform connection\");\n await this.findParent();\n await this.initiateRemoteConnection(this.parent);\n this.logger.debug(\"the client is connected\");\n }\n async findParent() {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const myInsideParents = this.getPossibleParentsInWindow(window);\n const myOutsideParents = this.getPossibleParentsOutsideWindow(window.top?.opener, window.top);\n const uniqueParents = new Set([...myInsideParents, ...myOutsideParents]);\n if (!uniqueParents.size && !this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n if (!uniqueParents.size && this.extContentAvailable) {\n await this.requestConnectionPermissionFromExt();\n return;\n }\n const defaultParentCheck = await this.isParentCheckSuccess(this.confirmParent(Array.from(uniqueParents)));\n if (defaultParentCheck.success) {\n this.logger.debug(\"The default parent was found!\");\n return;\n }\n if (!this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n await this.requestConnectionPermissionFromExt();\n }\n getPossibleParentsInWindow(currentWindow) {\n return (!currentWindow?.parent || currentWindow === currentWindow.parent) ? [] : [currentWindow.parent, ...this.getPossibleParentsInWindow(currentWindow.parent)];\n }\n getPossibleParentsOutsideWindow(opener, current) {\n return (!opener || !current || opener === current) ? [] : [opener, ...this.getPossibleParentsInWindow(opener), ...this.getPossibleParentsOutsideWindow(opener.opener, opener)];\n }\n confirmParent(targets) {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const parentCheck = PromisePlus((resolve) => {\n this.parentPingResolve = resolve;\n const message = {\n glue42core: {\n type: this.messages.platformPing.name\n }\n };\n this.parentPingInterval = setInterval(() => {\n targets.forEach((target) => {\n target.postMessage(message, this.defaultTargetString);\n });\n }, 1000);\n }, this.parentPingTimeout, connectionNotPossibleMsg);\n parentCheck.catch(() => {\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n });\n return parentCheck;\n }\n getMyWindowId() {\n if (this.parentType === \"workspace\") {\n return window.name.substring(0, window.name.indexOf(\"#wsp\"));\n }\n if (window !== window.top) {\n return;\n }\n if (window.name?.includes(\"g42\")) {\n return window.name;\n }\n this.selfAssignedWindowId = this.selfAssignedWindowId || `g42-${nanoid(10)}`;\n return this.selfAssignedWindowId;\n }\n}\n\nconst waitForInvocations = (invocations, callback) => {\n let left = invocations;\n return () => {\n left--;\n if (left === 0) {\n callback();\n }\n };\n};\n\nclass AsyncSequelizer {\n minSequenceInterval;\n queue = [];\n isExecutingQueue = false;\n constructor(minSequenceInterval = 0) {\n this.minSequenceInterval = minSequenceInterval;\n }\n enqueue(action) {\n return new Promise((resolve, reject) => {\n this.queue.push({ action, resolve, reject });\n this.executeQueue();\n });\n }\n async executeQueue() {\n if (this.isExecutingQueue) {\n return;\n }\n this.isExecutingQueue = true;\n while (this.queue.length) {\n const operation = this.queue.shift();\n if (!operation) {\n this.isExecutingQueue = false;\n return;\n }\n try {\n const actionResult = await operation.action();\n operation.resolve(actionResult);\n }\n catch (error) {\n operation.reject(error);\n }\n await this.intervalBreak();\n }\n this.isExecutingQueue = false;\n }\n intervalBreak() {\n return new Promise((res) => setTimeout(res, this.minSequenceInterval));\n }\n}\n\nfunction domainSession (domain, connection, logger, successMessages, errorMessages) {\n if (domain == null) {\n domain = \"global\";\n }\n successMessages = successMessages ?? [\"success\"];\n errorMessages = errorMessages ?? [\"error\"];\n let isJoined = domain === \"global\";\n let tryReconnecting = false;\n let _latestOptions;\n let _connectionOn = false;\n const callbacks = CallbackRegistryFactory();\n connection.disconnected(handleConnectionDisconnected);\n connection.loggedIn(handleConnectionLoggedIn);\n connection.on(\"success\", (msg) => handleSuccessMessage(msg));\n connection.on(\"error\", (msg) => handleErrorMessage(msg));\n connection.on(\"result\", (msg) => handleSuccessMessage(msg));\n if (successMessages) {\n successMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleSuccessMessage(msg));\n });\n }\n if (errorMessages) {\n errorMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleErrorMessage(msg));\n });\n }\n const requestsMap = {};\n function join(options) {\n _latestOptions = options;\n return new Promise((resolve, reject) => {\n if (isJoined) {\n resolve({});\n return;\n }\n let joinPromise;\n if (domain === \"global\") {\n joinPromise = _connectionOn ? Promise.resolve({}) : Promise.reject(\"not connected to gateway\");\n }\n else {\n logger.debug(`joining domain ${domain}`);\n const joinMsg = {\n type: \"join\",\n destination: domain,\n domain: \"global\",\n options,\n };\n joinPromise = send(joinMsg);\n }\n joinPromise\n .then(() => {\n handleJoined();\n resolve({});\n })\n .catch((err) => {\n logger.debug(\"error joining \" + domain + \" domain: \" + JSON.stringify(err));\n reject(err);\n });\n });\n }\n function leave() {\n if (domain === \"global\") {\n return Promise.resolve();\n }\n logger.debug(\"stopping session \" + domain + \"...\");\n const leaveMsg = {\n type: \"leave\",\n destination: domain,\n domain: \"global\",\n };\n tryReconnecting = false;\n return send(leaveMsg)\n .then(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n })\n .catch(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n });\n }\n function handleJoined() {\n logger.debug(\"did join \" + domain);\n isJoined = true;\n const wasReconnect = tryReconnecting;\n tryReconnecting = false;\n callbacks.execute(\"onJoined\", wasReconnect);\n }\n function handleConnectionDisconnected() {\n logger.debug(\"connection is down\");\n _connectionOn = false;\n isJoined = false;\n tryReconnecting = true;\n Object.keys(requestsMap).forEach(requestId => {\n const request = requestsMap[requestId];\n if (request) {\n logger.trace(`failing pending request ${requestId} due to connection lost`);\n request.error({\n err: \"Connection lost - gateway connection was disconnected\"\n });\n }\n });\n callbacks.execute(\"onLeft\", { disconnected: true });\n }\n async function handleConnectionLoggedIn() {\n _connectionOn = true;\n if (tryReconnecting) {\n logger.debug(\"connection is now up - trying to reconnect...\");\n try {\n await join(_latestOptions);\n }\n catch {\n logger.trace(`failed to reconnect`);\n }\n }\n }\n function onJoined(callback) {\n if (isJoined) {\n callback(false);\n }\n return callbacks.add(\"onJoined\", callback);\n }\n function onLeft(callback) {\n if (!isJoined) {\n callback();\n }\n return callbacks.add(\"onLeft\", callback);\n }\n function handleErrorMessage(msg) {\n if (domain !== msg.domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.error(msg);\n }\n function handleSuccessMessage(msg) {\n if (msg.domain !== domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.success(msg);\n }\n function getNextRequestId() {\n return nanoid(10);\n }\n let queuedCalls = [];\n function send(msg, tag, options) {\n const ignore = [\"hello\", \"join\"];\n if (msg.type && ignore.indexOf(msg.type) === -1) {\n if (!isJoined) {\n console.warn(`trying to send a message (${msg.domain} ${msg.type}) but not connected, will queue`);\n const pw = new PromiseWrapper();\n queuedCalls.push({ msg, tag, options, pw });\n if (queuedCalls.length === 1) {\n const unsubscribe = onJoined(() => {\n logger.info(`joined - will now send queued messages (${queuedCalls.length} -> [${queuedCalls.map((m) => m.msg.type)}])`);\n queuedCalls.forEach((qm) => {\n send(qm.msg, qm.tag, qm.options)\n .then((t) => qm.pw.resolve(t))\n .catch((e) => qm.pw.reject(e));\n });\n queuedCalls = [];\n unsubscribe();\n });\n }\n return pw.promise;\n }\n }\n options = options ?? {};\n msg.request_id = msg.request_id ?? getNextRequestId();\n msg.domain = msg.domain ?? domain;\n if (!options.skipPeerId) {\n msg.peer_id = connection.peerId;\n }\n const requestId = msg.request_id;\n return new Promise((resolve, reject) => {\n requestsMap[requestId] = {\n success: (successMsg) => {\n delete requestsMap[requestId];\n successMsg._tag = tag;\n resolve(successMsg);\n },\n error: (errorMsg) => {\n console.warn(`Gateway error - ${JSON.stringify(errorMsg)}`);\n delete requestsMap[requestId];\n errorMsg._tag = tag;\n reject(errorMsg);\n },\n };\n connection\n .send(msg, options)\n .catch((err) => {\n requestsMap[requestId]?.error({ err });\n });\n });\n }\n function sendFireAndForget(msg) {\n msg.request_id = msg.request_id ? msg.request_id : getNextRequestId();\n msg.domain = msg.domain ?? domain;\n msg.peer_id = connection.peerId;\n return connection.send(msg);\n }\n return {\n join,\n leave,\n onJoined,\n onLeft,\n send,\n sendFireAndForget,\n on: (type, callback) => {\n connection.on(type, (msg) => {\n if (msg.domain !== domain) {\n return;\n }\n try {\n callback(msg);\n }\n catch (e) {\n logger.error(`Callback failed: ${e} \\n ${e.stack} \\n msg was: ${JSON.stringify(msg)}`, e);\n }\n });\n },\n loggedIn: (callback) => connection.loggedIn(callback),\n connected: (callback) => connection.connected(callback),\n disconnected: (callback) => connection.disconnected(callback),\n get peerId() {\n return connection.peerId;\n },\n get domain() {\n return domain;\n },\n };\n}\n\nclass Connection {\n settings;\n logger;\n protocolVersion = 3;\n peerId;\n token;\n info;\n resolvedIdentity;\n availableDomains;\n gatewayToken;\n replayer;\n messageHandlers = {};\n ids = 1;\n registry = CallbackRegistryFactory();\n _connected = false;\n isTrace = false;\n transport;\n _defaultTransport;\n _defaultAuth;\n _targetTransport;\n _targetAuth;\n _swapTransport = false;\n _switchInProgress = false;\n _transportSubscriptions = [];\n datePrefix = \"#T42_DATE#\";\n datePrefixLen = this.datePrefix.length;\n dateMinLen = this.datePrefixLen + 1;\n datePrefixFirstChar = this.datePrefix[0];\n _sequelizer = new AsyncSequelizer();\n _isLoggedIn = false;\n shouldTryLogin = true;\n pingTimer;\n sessions = [];\n globalDomain;\n initialLogin = true;\n initialLoginAttempts = 3;\n loginConfig;\n loginRetryInProgress = false;\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n settings = settings || {};\n settings.reconnectAttempts = settings.reconnectAttempts ?? 10;\n settings.reconnectInterval = settings.reconnectInterval ?? 1000;\n if (settings.inproc) {\n this.transport = new InProcTransport(settings.inproc, logger.subLogger(\"inMemory\"));\n }\n else if (settings.sharedWorker) {\n this.transport = new SharedWorkerTransport(settings.sharedWorker, logger.subLogger(\"shared-worker\"));\n }\n else if (settings.webPlatform) {\n this.transport = new WebPlatformTransport(settings.webPlatform, logger.subLogger(\"web-platform\"), settings.identity);\n }\n else if (settings.ws !== undefined) {\n this.transport = new WS(settings, logger.subLogger(\"ws\"));\n }\n else {\n throw new Error(\"No connection information specified\");\n }\n this.isTrace = logger.canPublish(\"trace\");\n logger.debug(`starting with ${this.transport.name()} transport`);\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n this._defaultTransport = this.transport;\n this.ping();\n }\n async switchTransport(settings) {\n return this._sequelizer.enqueue(async () => {\n if (!settings || typeof settings !== \"object\") {\n throw new Error(\"Cannot switch transports, because the settings are missing or invalid.\");\n }\n if (typeof settings.type === \"undefined\") {\n throw new Error(\"Cannot switch the transport, because the type is not defined\");\n }\n this.logger.trace(`Starting transport switch with settings: ${JSON.stringify(settings)}`);\n const switchTargetTransport = settings.type === \"secondary\" ? this.getNewSecondaryTransport(settings) : this._defaultTransport;\n this._targetTransport = switchTargetTransport;\n this._targetAuth = settings.type === \"secondary\" ? this.getNewSecondaryAuth(settings) : this._defaultAuth;\n const verifyPromise = this.verifyConnection();\n this._swapTransport = true;\n this._switchInProgress = true;\n this.logger.trace(\"The new transport has been set, closing the current transport\");\n await this.transport.close();\n try {\n await verifyPromise;\n const isSwitchSuccess = this.transport === switchTargetTransport;\n this.logger.info(`The reconnection after the switch was completed. Was the switch a success: ${isSwitchSuccess}`);\n this._switchInProgress = false;\n return { success: isSwitchSuccess };\n }\n catch (error) {\n this.logger.info(\"The reconnection after the switch timed out, reverting back to the default transport.\");\n this.switchTransport({ type: \"default\" });\n this._switchInProgress = false;\n return { success: false };\n }\n });\n }\n onLibReAnnounced(callback) {\n return this.registry.add(\"libReAnnounced\", callback);\n }\n setLibReAnnounced(lib) {\n this.registry.execute(\"libReAnnounced\", lib);\n }\n send(message, options) {\n if (this.transport.sendObject &&\n this.transport.isObjectBasedTransport) {\n const msg = this.createObjectMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${JSON.stringify(msg)}`);\n }\n return this.transport.sendObject(msg, options);\n }\n else {\n const strMessage = this.createStringMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${strMessage}`);\n }\n return this.transport.send(strMessage, options);\n }\n }\n on(type, messageHandler) {\n type = type.toLowerCase();\n if (this.messageHandlers[type] === undefined) {\n this.messageHandlers[type] = {};\n }\n const id = this.ids++;\n this.messageHandlers[type][id] = messageHandler;\n return {\n type,\n id,\n };\n }\n off(info) {\n delete this.messageHandlers[info.type.toLowerCase()][info.id];\n }\n get isConnected() {\n return this._isLoggedIn;\n }\n connected(callback) {\n return this.loggedIn(() => {\n const currentServer = this.transport.name();\n callback(currentServer);\n });\n }\n disconnected(callback) {\n return this.registry.add(\"disconnected\", callback);\n }\n async login(authRequest, reconnect) {\n this.logger.debug(`Login initiated - reconnect: ${reconnect}, transport: ${this.transport.name()}`);\n if (!this._defaultAuth) {\n this._defaultAuth = authRequest;\n }\n if (this._swapTransport) {\n this.logger.trace(\"Detected a transport swap, swapping transports\");\n const newAuth = this.transportSwap();\n authRequest = newAuth ?? authRequest;\n }\n try {\n await this.transport.open();\n this.logger.debug(`Transport: ${this.transport.name()} opened, logging in`);\n timer(\"connection\").mark(\"transport-opened\");\n const identity = await this.loginCore(authRequest, reconnect);\n this.logger.debug(`Logged in with identity: ${JSON.stringify(identity)}`);\n timer(\"connection\").mark(\"protocol-logged-in\");\n return identity;\n }\n catch (error) {\n if (this._switchInProgress) {\n this.logger.debug(\"An error while logging in after a transport swap, preparing a default swap.\");\n this.prepareDefaultSwap();\n }\n throw new Error(error);\n }\n }\n async logout() {\n await this.logoutCore();\n await this.transport.close();\n }\n loggedIn(callback) {\n if (this._isLoggedIn) {\n callback();\n }\n return this.registry.add(\"onLoggedIn\", callback);\n }\n domain(domain, successMessages, errorMessages) {\n let session = this.sessions.find((s) => s.domain === domain);\n if (!session) {\n session = domainSession(domain, this, this.logger.subLogger(`domain=${domain}`), successMessages, errorMessages);\n this.sessions.push(session);\n }\n return session;\n }\n authToken() {\n const createTokenReq = {\n domain: \"global\",\n type: \"create-token\"\n };\n if (!this.globalDomain) {\n return Promise.reject(new Error(\"no global domain session\"));\n }\n return this.globalDomain.send(createTokenReq)\n .then((res) => {\n return res.token;\n });\n }\n reconnect() {\n return this.transport.reconnect();\n }\n setLoggedIn(value) {\n this._isLoggedIn = value;\n if (this._isLoggedIn) {\n this.initialLogin = false;\n this.registry.execute(\"onLoggedIn\");\n }\n }\n distributeMessage(message, type) {\n const handlers = this.messageHandlers[type.toLowerCase()];\n if (handlers !== undefined) {\n Object.keys(handlers).forEach((handlerId) => {\n const handler = handlers[handlerId];\n if (handler !== undefined) {\n try {\n handler(message);\n }\n catch (error) {\n try {\n this.logger.error(`Message handler failed with ${error.stack}`, error);\n }\n catch (loggerError) {\n console.log(\"Message handler failed\", error);\n }\n }\n }\n });\n }\n }\n handleConnectionChanged(connected) {\n if (this._connected === connected) {\n this.logger.trace(\"connection state unchanged, skipping\");\n return;\n }\n this.logger.info(`connection state changed to ${connected ? \"connected\" : \"disconnected\"}`);\n this._connected = connected;\n if (connected) {\n if (this.settings?.replaySpecs?.length) {\n this.replayer = new MessageReplayerImpl(this.settings.replaySpecs);\n this.replayer.init(this);\n }\n this.registry.execute(\"connected\");\n }\n else {\n this.setLoggedIn(false);\n if (this.shouldTryLogin) {\n this.attemptLoginWithRetry();\n }\n this.registry.execute(\"disconnected\");\n }\n }\n async attemptLoginWithRetry() {\n if (!this.loginConfig) {\n throw new Error(\"no login info\");\n }\n if (this.loginRetryInProgress) {\n this.logger.debug(\"login attempt already in progress, ignoring request...\");\n return;\n }\n if (this._isLoggedIn) {\n this.logger.debug(\"already logged in, ignoring request...\");\n return;\n }\n if (this.initialLogin) {\n this.logger.debug(`initial login attempt failed, ${this.initialLoginAttempts} attempts remaining...`);\n if (this.initialLoginAttempts <= 0) {\n this.logger.info(\"maximum initial login attempts reached, will not try to login again\");\n return;\n }\n this.initialLoginAttempts--;\n }\n try {\n this.logger.debug(`will try a new login... ${this.loginRetryInProgress}`);\n this.loginRetryInProgress = true;\n await this.login(this.loginConfig, true);\n }\n catch (e) {\n this.logger.error(`error trying to login: ${e?.message}`, e);\n setTimeout(this.attemptLoginWithRetry.bind(this), this.settings.reconnectInterval ?? 1000);\n }\n finally {\n this.loginRetryInProgress = false;\n }\n }\n handleTransportMessage(msg) {\n let msgObj;\n if (typeof msg === \"string\") {\n msgObj = this.processStringMessage(msg);\n }\n else {\n msgObj = this.processObjectMessage(msg);\n }\n if (this.isTrace) {\n this.logger.trace(`<< ${JSON.stringify(msgObj)}`);\n }\n this.distributeMessage(msgObj.msg, msgObj.msgType);\n }\n verifyConnection() {\n return PromisePlus((resolve) => {\n let unsub;\n const ready = waitForInvocations(2, () => {\n if (unsub) {\n unsub();\n }\n resolve();\n });\n unsub = this.onLibReAnnounced((lib) => {\n if (lib.name === \"interop\") {\n return ready();\n }\n if (lib.name === \"contexts\") {\n return ready();\n }\n });\n }, 10000, \"Transport switch timed out waiting for all libraries to be re-announced\");\n }\n getNewSecondaryTransport(settings) {\n if (!settings.transportConfig?.url) {\n throw new Error(\"Missing secondary transport URL.\");\n }\n return new WS(Object.assign({}, this.settings, { ws: settings.transportConfig.url, reconnectAttempts: 1 }), this.logger.subLogger(\"ws-secondary\"));\n }\n getNewSecondaryAuth(settings) {\n if (!settings.transportConfig?.auth) {\n throw new Error(\"Missing secondary transport auth information.\");\n }\n return settings.transportConfig.auth;\n }\n transportSwap() {\n this._swapTransport = false;\n if (!this._targetTransport || !this._targetAuth) {\n this.logger.warn(`Error while switching transports - either the target transport or auth is not defined: transport defined -> ${!!this._defaultTransport}, auth defined -> ${!!this._targetAuth}. Staying on the current one.`);\n return;\n }\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport = this._targetTransport;\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n return this._targetAuth;\n }\n prepareDefaultSwap() {\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport.close().catch((error) => this.logger.warn(`Error closing the ${this.transport.name()} transport after a failed connection attempt: ${JSON.stringify(error)}`));\n this._targetTransport = this._defaultTransport;\n this._targetAuth = this._defaultAuth;\n this._swapTransport = true;\n }\n processStringMessage(message) {\n const msg = JSON.parse(message, (key, value) => {\n if (typeof value !== \"string\") {\n return value;\n }\n if (value.length < this.dateMinLen) {\n return value;\n }\n if (!value.startsWith(this.datePrefixFirstChar)) {\n return value;\n }\n if (value.substring(0, this.datePrefixLen) !== this.datePrefix) {\n return value;\n }\n try {\n const milliseconds = parseInt(value.substring(this.datePrefixLen, value.length), 10);\n if (isNaN(milliseconds)) {\n return value;\n }\n return new Date(milliseconds);\n }\n catch (ex) {\n return value;\n }\n });\n return {\n msg,\n msgType: msg.type,\n };\n }\n createStringMessage(message) {\n const oldToJson = Date.prototype.toJSON;\n try {\n const datePrefix = this.datePrefix;\n Date.prototype.toJSON = function () {\n return datePrefix + this.getTime();\n };\n const result = JSON.stringify(message);\n return result;\n }\n finally {\n Date.prototype.toJSON = oldToJson;\n }\n }\n processObjectMessage(message) {\n if (!message.type) {\n throw new Error(\"Object should have type property\");\n }\n return {\n msg: message,\n msgType: message.type,\n };\n }\n createObjectMessage(message) {\n return message;\n }\n async loginCore(config, reconnect) {\n this.loginConfig = config;\n if (!this.loginConfig) {\n this.loginConfig = { username: \"\", password: \"\" };\n }\n this.shouldTryLogin = true;\n const authentication = await this.setupAuthConfig(config, reconnect);\n const helloMsg = {\n type: \"hello\",\n identity: this.settings.identity,\n authentication\n };\n if (config.sessionId) {\n helloMsg.request_id = config.sessionId;\n }\n if (!this.globalDomain) {\n this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\n \"welcome\",\n \"token\",\n \"authentication-request\"\n ]);\n }\n const sendOptions = { skipPeerId: true };\n if (this.initialLogin) {\n sendOptions.retryInterval = this.settings.reconnectInterval;\n sendOptions.maxRetries = this.settings.reconnectAttempts;\n }\n try {\n const welcomeMsg = await this.tryAuthenticate(this.globalDomain, helloMsg, sendOptions, config);\n this.logger.info(\"login successful with peerId \" + welcomeMsg.peer_id);\n this.peerId = welcomeMsg.peer_id;\n this.resolvedIdentity = welcomeMsg.resolved_identity;\n this.availableDomains = welcomeMsg.available_domains;\n if (welcomeMsg.options) {\n this.token = welcomeMsg.options.access_token;\n this.info = welcomeMsg.options.info;\n }\n this.setLoggedIn(true);\n return welcomeMsg.resolved_identity;\n }\n catch (err) {\n this.logger.error(\"error sending hello message - \" + (err.message || err.msg || err.reason || err), err);\n throw err;\n }\n finally {\n if (config?.flowCallback && config.sessionId) {\n config.flowCallback(config.sessionId, null);\n }\n }\n }\n async tryAuthenticate(globalDomain, helloMsg, sendOptions, config) {\n let welcomeMsg;\n while (true) {\n const msg = await globalDomain.send(helloMsg, undefined, sendOptions);\n if (msg.type === \"authentication-request\") {\n const token = Buffer.from(msg.authentication.token, \"base64\");\n if (config.flowCallback && config.sessionId) {\n helloMsg.authentication.token =\n (await config.flowCallback(config.sessionId, token))\n .data\n .toString(\"base64\");\n }\n helloMsg.request_id = config.sessionId;\n }\n else if (msg.type === \"welcome\") {\n welcomeMsg = msg;\n break;\n }\n else if (msg.type === \"error\") {\n throw new Error(\"Authentication failed: \" + msg.reason);\n }\n else {\n throw new Error(\"Unexpected message type during authentication: \" + msg.type);\n }\n }\n return welcomeMsg;\n }\n async setupAuthConfig(config, reconnect) {\n const authentication = {};\n this.gatewayToken = config.gatewayToken;\n if (config.gatewayToken) {\n if (reconnect) {\n try {\n config.gatewayToken = await this.getNewGWToken();\n }\n catch (e) {\n this.logger.warn(`failed to get GW token when reconnecting ${e?.message || e}`);\n }\n }\n authentication.method = \"gateway-token\";\n authentication.token = config.gatewayToken;\n this.gatewayToken = config.gatewayToken;\n }\n else if (config.flowName === \"sspi\") {\n authentication.provider = \"win\";\n authentication.method = \"access-token\";\n if (config.flowCallback && config.sessionId) {\n authentication.token =\n (await config.flowCallback(config.sessionId, null))\n .data\n .toString(\"base64\");\n }\n else {\n throw new Error(\"Invalid SSPI config\");\n }\n }\n else if (config.token) {\n authentication.method = \"access-token\";\n authentication.token = config.token;\n }\n else if (config.username) {\n authentication.method = \"secret\";\n authentication.login = config.username;\n authentication.secret = config.password;\n }\n else if (config.provider) {\n authentication.provider = config.provider;\n authentication.providerContext = config.providerContext;\n }\n else {\n throw new Error(\"invalid auth message\" + JSON.stringify(config));\n }\n return authentication;\n }\n async logoutCore() {\n this.logger.debug(\"logging out...\");\n this.shouldTryLogin = false;\n if (this.pingTimer) {\n clearTimeout(this.pingTimer);\n }\n const promises = this.sessions.map((session) => {\n return session.leave();\n });\n await Promise.all(promises);\n }\n getNewGWToken() {\n if (typeof window !== \"undefined\") {\n const glue42gd = window.glue42gd;\n if (glue42gd) {\n return glue42gd.getGWToken();\n }\n }\n return Promise.reject(new Error(\"not running in GD\"));\n }\n ping() {\n if (!this.shouldTryLogin) {\n return;\n }\n if (this._isLoggedIn) {\n this.send({ type: \"ping\" });\n }\n this.pingTimer = setTimeout(() => {\n this.ping();\n }, 30 * 1000);\n }\n}\n\nconst order = [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"off\"];\nclass Logger {\n name;\n parent;\n static Interop;\n static InteropMethodName = \"T42.AppLogger.Log\";\n static Instance;\n path;\n subLoggers = [];\n _consoleLevel;\n _publishLevel;\n loggerFullName;\n includeTimeAndLevel;\n logFn = console;\n customLogFn = false;\n constructor(name, parent, logFn) {\n this.name = name;\n this.parent = parent;\n this.name = name;\n if (parent) {\n this.path = `${parent.path}.${name}`;\n }\n else {\n this.path = name;\n }\n this.loggerFullName = `[${this.path}]`;\n this.includeTimeAndLevel = !logFn;\n if (logFn) {\n this.logFn = logFn;\n this.customLogFn = true;\n }\n }\n subLogger(name) {\n const existingSub = this.subLoggers.filter((subLogger) => {\n return subLogger.name === name;\n })[0];\n if (existingSub !== undefined) {\n return existingSub;\n }\n Object.keys(this).forEach((key) => {\n if (key === name) {\n throw new Error(\"This sub logger name is not allowed.\");\n }\n });\n const sub = new Logger(name, this, this.customLogFn ? this.logFn : undefined);\n this.subLoggers.push(sub);\n return sub;\n }\n publishLevel(level) {\n if (level) {\n this._publishLevel = level;\n }\n return this._publishLevel || this.parent?.publishLevel();\n }\n consoleLevel(level) {\n if (level) {\n this._consoleLevel = level;\n }\n return this._consoleLevel || this.parent?.consoleLevel();\n }\n log(message, level, error) {\n this.publishMessage(level || \"info\", message, error);\n }\n trace(message) {\n this.log(message, \"trace\");\n }\n debug(message) {\n this.log(message, \"debug\");\n }\n info(message) {\n this.log(message, \"info\");\n }\n warn(message) {\n this.log(message, \"warn\");\n }\n error(message, err) {\n this.log(message, \"error\", err);\n }\n canPublish(level, compareWith) {\n const levelIdx = order.indexOf(level);\n const restrictionIdx = order.indexOf(compareWith || this.consoleLevel() || \"trace\");\n return levelIdx >= restrictionIdx;\n }\n publishMessage(level, message, error) {\n const loggerName = this.loggerFullName;\n if (level === \"error\" && !error) {\n const e = new Error();\n if (e.stack) {\n message =\n message +\n \"\\n\" +\n e.stack\n .split(\"\\n\")\n .slice(4)\n .join(\"\\n\");\n }\n }\n if (this.canPublish(level, this.publishLevel())) {\n const interop = Logger.Interop;\n if (interop) {\n try {\n if (interop.methods({ name: Logger.InteropMethodName }).length > 0) {\n const args = {\n msg: message,\n logger: loggerName,\n level\n };\n if (error && error instanceof Error) {\n args.error = {\n message: error.message,\n stack: error.stack ?? \"\"\n };\n }\n interop.invoke(Logger.InteropMethodName, args)\n .catch((e) => {\n this.logFn.error(`Unable to send log message to the platform: ${e.message}`, e);\n });\n }\n }\n catch {\n }\n }\n }\n if (this.canPublish(level)) {\n let prefix = \"\";\n if (this.includeTimeAndLevel) {\n const date = new Date();\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\n prefix = `[${time}] [${level}] `;\n }\n const toPrint = `${prefix}${loggerName}: ${message}`;\n switch (level) {\n case \"trace\":\n this.logFn.debug(toPrint);\n break;\n case \"debug\":\n if (this.logFn.debug) {\n this.logFn.debug(toPrint);\n }\n else {\n this.logFn.log(toPrint);\n }\n break;\n case \"info\":\n this.logFn.info(toPrint);\n break;\n case \"warn\":\n this.logFn.warn(toPrint);\n break;\n case \"error\":\n if (error) {\n this.logFn.error(toPrint, error);\n }\n else {\n this.logFn.error(toPrint);\n }\n break;\n }\n }\n }\n}\n\nconst GW_MESSAGE_CREATE_CONTEXT = \"create-context\";\nconst GW_MESSAGE_ACTIVITY_CREATED = \"created\";\nconst GW_MESSAGE_ACTIVITY_DESTROYED = \"destroyed\";\nconst GW_MESSAGE_CONTEXT_CREATED = \"context-created\";\nconst GW_MESSAGE_CONTEXT_ADDED = \"context-added\";\nconst GW_MESSAGE_SUBSCRIBE_CONTEXT = \"subscribe-context\";\nconst GW_MESSAGE_SUBSCRIBED_CONTEXT = \"subscribed-context\";\nconst GW_MESSAGE_UNSUBSCRIBE_CONTEXT = \"unsubscribe-context\";\nconst GW_MESSAGE_DESTROY_CONTEXT = \"destroy-context\";\nconst GW_MESSAGE_CONTEXT_DESTROYED = \"context-destroyed\";\nconst GW_MESSAGE_UPDATE_CONTEXT = \"update-context\";\nconst GW_MESSAGE_CONTEXT_UPDATED = \"context-updated\";\nconst GW_MESSAGE_JOINED_ACTIVITY = \"joined\";\n\nconst ContextMessageReplaySpec = {\n get name() {\n return \"context\";\n },\n get types() {\n return [\n GW_MESSAGE_CREATE_CONTEXT,\n GW_MESSAGE_ACTIVITY_CREATED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_SUBSCRIBE_CONTEXT,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n GW_MESSAGE_DESTROY_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_UPDATE_CONTEXT,\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_JOINED_ACTIVITY\n ];\n }\n};\n\nvar version = \"6.7.3\";\n\nfunction prepareConfig (configuration, ext, glue42gd) {\n let nodeStartingContext;\n if (Utils.isNode()) {\n const startingContextString = process.env._GD_STARTING_CONTEXT_;\n if (startingContextString) {\n try {\n nodeStartingContext = JSON.parse(startingContextString);\n }\n catch {\n }\n }\n }\n function getConnection() {\n const gwConfig = configuration.gateway;\n const protocolVersion = gwConfig?.protocolVersion ?? 3;\n const reconnectInterval = gwConfig?.reconnectInterval;\n const reconnectAttempts = gwConfig?.reconnectAttempts;\n const defaultWs = \"ws://localhost:8385\";\n let ws = gwConfig?.ws;\n const sharedWorker = gwConfig?.sharedWorker;\n const inproc = gwConfig?.inproc;\n const webPlatform = gwConfig?.webPlatform ?? undefined;\n if (glue42gd) {\n ws = glue42gd.gwURL;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwURL) {\n ws = nodeStartingContext.gwURL;\n }\n if (!ws && !sharedWorker && !inproc) {\n ws = defaultWs;\n }\n let instanceId;\n let windowId;\n let pid;\n let environment;\n let region;\n const appName = getApplication();\n let uniqueAppName = appName;\n if (typeof glue42gd !== \"undefined\") {\n windowId = glue42gd.windowId;\n pid = glue42gd.pid;\n if (glue42gd.env) {\n environment = glue42gd.env.env;\n region = glue42gd.env.region;\n }\n uniqueAppName = glue42gd.application ?? \"glue-app\";\n instanceId = glue42gd.appInstanceId;\n }\n else if (Utils.isNode()) {\n pid = process.pid;\n if (nodeStartingContext) {\n environment = nodeStartingContext.env;\n region = nodeStartingContext.region;\n instanceId = nodeStartingContext.instanceId;\n }\n }\n else if (typeof window?.glue42electron !== \"undefined\") {\n windowId = window?.glue42electron.instanceId;\n pid = window?.glue42electron.pid;\n environment = window?.glue42electron.env;\n region = window?.glue42electron.region;\n uniqueAppName = window?.glue42electron.application ?? \"glue-app\";\n instanceId = window?.glue42electron.instanceId;\n }\n else ;\n const replaySpecs = configuration.gateway?.replaySpecs ?? [];\n replaySpecs.push(ContextMessageReplaySpec);\n let identity = {\n application: uniqueAppName,\n applicationName: appName,\n windowId,\n instance: instanceId,\n process: pid,\n region,\n environment,\n api: ext.version || version\n };\n if (configuration.identity) {\n identity = Object.assign(identity, configuration.identity);\n }\n return {\n identity,\n reconnectInterval,\n ws,\n sharedWorker,\n webPlatform,\n inproc,\n protocolVersion,\n reconnectAttempts,\n replaySpecs,\n };\n }\n function getContexts() {\n const defaultConfig = {\n reAnnounceKnownContexts: true,\n subscribeOnUpdate: true,\n subscribeOnGet: true,\n onlyReAnnounceSubscribedContexts: true\n };\n if (typeof configuration.contexts === \"undefined\") {\n return defaultConfig;\n }\n if (typeof configuration.contexts === \"boolean\" && configuration.contexts) {\n return defaultConfig;\n }\n if (typeof configuration.contexts === \"object\") {\n return { ...defaultConfig, ...configuration.contexts };\n }\n return false;\n }\n function getApplication() {\n if (configuration.application) {\n return configuration.application;\n }\n if (glue42gd) {\n return glue42gd.applicationName;\n }\n if (typeof window !== \"undefined\" && typeof window.glue42electron !== \"undefined\") {\n return window.glue42electron.application;\n }\n const uid = nanoid(10);\n if (Utils.isNode()) {\n if (nodeStartingContext) {\n return nodeStartingContext.applicationConfig.name;\n }\n return \"NodeJS\" + uid;\n }\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n return document.title + ` (${uid})`;\n }\n return uid;\n }\n function getAuth() {\n if (typeof configuration.auth === \"string\") {\n return {\n token: configuration.auth\n };\n }\n if (configuration.auth) {\n return configuration.auth;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwToken) {\n return {\n gatewayToken: nodeStartingContext.gwToken\n };\n }\n if (configuration.gateway?.webPlatform) {\n return {\n username: \"glue42\",\n password: \"\"\n };\n }\n }\n function getLogger() {\n let config = configuration.logger;\n const defaultLevel = \"warn\";\n if (!config) {\n config = defaultLevel;\n }\n let gdConsoleLevel;\n if (glue42gd) {\n gdConsoleLevel = glue42gd.consoleLogLevel;\n }\n if (typeof config === \"string\") {\n return { console: gdConsoleLevel ?? config, publish: defaultLevel };\n }\n return {\n console: gdConsoleLevel ?? config.console ?? defaultLevel,\n publish: config.publish ?? defaultLevel\n };\n }\n const connection = getConnection();\n let application = getApplication();\n if (typeof window !== \"undefined\") {\n const windowAsAny = window;\n const containerApplication = windowAsAny.htmlContainer ?\n `${windowAsAny.htmlContainer.containerName}.${windowAsAny.htmlContainer.application}` :\n windowAsAny?.glue42gd?.application;\n if (containerApplication) {\n application = containerApplication;\n }\n }\n return {\n bus: configuration.bus ?? false,\n application,\n auth: getAuth(),\n logger: getLogger(),\n connection,\n metrics: configuration.metrics ?? true,\n contexts: getContexts(),\n version: ext.version || version,\n libs: ext.libs ?? [],\n customLogger: configuration.customLogger\n };\n}\n\nclass GW3ContextData {\n name;\n contextId;\n context;\n isAnnounced;\n createdByUs;\n joinedActivity;\n updateCallbacks = {};\n activityId;\n sentExplicitSubscription;\n get hasReceivedSnapshot() {\n return this.snapshotPromiseWrapper.resolved;\n }\n set hasReceivedSnapshot(has) {\n if (has) {\n this.snapshotPromiseWrapper.resolve();\n }\n else {\n this.snapshotPromiseWrapper = new PromiseWrapper();\n }\n }\n get snapshotPromise() {\n return this.snapshotPromiseWrapper.promise;\n }\n snapshotPromiseWrapper;\n constructor(contextId, name, isAnnounced, activityId) {\n this.contextId = contextId;\n this.name = name;\n this.isAnnounced = isAnnounced;\n this.activityId = activityId;\n this.context = {};\n this.snapshotPromiseWrapper = new PromiseWrapper();\n }\n hasCallbacks() {\n return Object.keys(this.updateCallbacks).length > 0;\n }\n getState() {\n if (this.isAnnounced && this.hasCallbacks()) {\n return 3;\n }\n if (this.isAnnounced) {\n return 2;\n }\n if (this.hasCallbacks()) {\n return 1;\n }\n return 0;\n }\n}\n\nvar lodash_clonedeep = {exports: {}};\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nlodash_clonedeep.exports;\n\n(function (module, exports) {\n\t/** Used as the size to enable large array optimizations. */\n\tvar LARGE_ARRAY_SIZE = 200;\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t arrayTag = '[object Array]',\n\t boolTag = '[object Boolean]',\n\t dateTag = '[object Date]',\n\t errorTag = '[object Error]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t mapTag = '[object Map]',\n\t numberTag = '[object Number]',\n\t objectTag = '[object Object]',\n\t promiseTag = '[object Promise]',\n\t regexpTag = '[object RegExp]',\n\t setTag = '[object Set]',\n\t stringTag = '[object String]',\n\t symbolTag = '[object Symbol]',\n\t weakMapTag = '[object WeakMap]';\n\n\tvar arrayBufferTag = '[object ArrayBuffer]',\n\t dataViewTag = '[object DataView]',\n\t float32Tag = '[object Float32Array]',\n\t float64Tag = '[object Float64Array]',\n\t int8Tag = '[object Int8Array]',\n\t int16Tag = '[object Int16Array]',\n\t int32Tag = '[object Int32Array]',\n\t uint8Tag = '[object Uint8Array]',\n\t uint8ClampedTag = '[object Uint8ClampedArray]',\n\t uint16Tag = '[object Uint16Array]',\n\t uint32Tag = '[object Uint32Array]';\n\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n\t/** Used to match `RegExp` flags from their coerced string values. */\n\tvar reFlags = /\\w*$/;\n\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n\t/** Used to identify `toStringTag` values supported by `_.clone`. */\n\tvar cloneableTags = {};\n\tcloneableTags[argsTag] = cloneableTags[arrayTag] =\n\tcloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n\tcloneableTags[boolTag] = cloneableTags[dateTag] =\n\tcloneableTags[float32Tag] = cloneableTags[float64Tag] =\n\tcloneableTags[int8Tag] = cloneableTags[int16Tag] =\n\tcloneableTags[int32Tag] = cloneableTags[mapTag] =\n\tcloneableTags[numberTag] = cloneableTags[objectTag] =\n\tcloneableTags[regexpTag] = cloneableTags[setTag] =\n\tcloneableTags[stringTag] = cloneableTags[symbolTag] =\n\tcloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n\tcloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n\tcloneableTags[errorTag] = cloneableTags[funcTag] =\n\tcloneableTags[weakMapTag] = false;\n\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\n\t/** Detect free variable `exports`. */\n\tvar freeExports = exports && !exports.nodeType && exports;\n\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n\t/**\n\t * Adds the key-value `pair` to `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to modify.\n\t * @param {Array} pair The key-value pair to add.\n\t * @returns {Object} Returns `map`.\n\t */\n\tfunction addMapEntry(map, pair) {\n\t // Don't return `map.set` because it's not chainable in IE 11.\n\t map.set(pair[0], pair[1]);\n\t return map;\n\t}\n\n\t/**\n\t * Adds `value` to `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to modify.\n\t * @param {*} value The value to add.\n\t * @returns {Object} Returns `set`.\n\t */\n\tfunction addSetEntry(set, value) {\n\t // Don't return `set.add` because it's not chainable in IE 11.\n\t set.add(value);\n\t return set;\n\t}\n\n\t/**\n\t * A specialized version of `_.forEach` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayEach(array, iteratee) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\n\t while (++index < length) {\n\t if (iteratee(array[index], index, array) === false) {\n\t break;\n\t }\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Appends the elements of `values` to `array`.\n\t *\n\t * @private\n\t * @param {Array} array The array to modify.\n\t * @param {Array} values The values to append.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayPush(array, values) {\n\t var index = -1,\n\t length = values.length,\n\t offset = array.length;\n\n\t while (++index < length) {\n\t array[offset + index] = values[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * A specialized version of `_.reduce` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @param {*} [accumulator] The initial value.\n\t * @param {boolean} [initAccum] Specify using the first element of `array` as\n\t * the initial value.\n\t * @returns {*} Returns the accumulated value.\n\t */\n\tfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\t while (++index < length) {\n\t accumulator = iteratee(accumulator, array[index], index, array);\n\t }\n\t return accumulator;\n\t}\n\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Gets the value at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to query.\n\t * @param {string} key The key of the property to get.\n\t * @returns {*} Returns the property value.\n\t */\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Converts `map` to its key-value pairs.\n\t *\n\t * @private\n\t * @param {Object} map The map to convert.\n\t * @returns {Array} Returns the key-value pairs.\n\t */\n\tfunction mapToArray(map) {\n\t var index = -1,\n\t result = Array(map.size);\n\n\t map.forEach(function(value, key) {\n\t result[++index] = [key, value];\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\n\t/**\n\t * Converts `set` to an array of its values.\n\t *\n\t * @private\n\t * @param {Object} set The set to convert.\n\t * @returns {Array} Returns the values.\n\t */\n\tfunction setToArray(set) {\n\t var index = -1,\n\t result = Array(set.size);\n\n\t set.forEach(function(value) {\n\t result[++index] = value;\n\t });\n\t return result;\n\t}\n\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype,\n\t funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\n\t/** Built-in value references. */\n\tvar Buffer = moduleExports ? root.Buffer : undefined,\n\t Symbol = root.Symbol,\n\t Uint8Array = root.Uint8Array,\n\t getPrototype = overArg(Object.getPrototypeOf, Object),\n\t objectCreate = Object.create,\n\t propertyIsEnumerable = objectProto.propertyIsEnumerable,\n\t splice = arrayProto.splice;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeGetSymbols = Object.getOwnPropertySymbols,\n\t nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n\t nativeKeys = overArg(Object.keys, Object);\n\n\t/* Built-in method references that are verified to be native. */\n\tvar DataView = getNative(root, 'DataView'),\n\t Map = getNative(root, 'Map'),\n\t Promise = getNative(root, 'Promise'),\n\t Set = getNative(root, 'Set'),\n\t WeakMap = getNative(root, 'WeakMap'),\n\t nativeCreate = getNative(Object, 'create');\n\n\t/** Used to detect maps, sets, and weakmaps. */\n\tvar dataViewCtorString = toSource(DataView),\n\t mapCtorString = toSource(Map),\n\t promiseCtorString = toSource(Promise),\n\t setCtorString = toSource(Set),\n\t weakMapCtorString = toSource(WeakMap);\n\n\t/** Used to convert symbols to primitives and strings. */\n\tvar symbolProto = Symbol ? Symbol.prototype : undefined,\n\t symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t}\n\n\t/**\n\t * Removes `key` and its value from the hash.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Hash\n\t * @param {Object} hash The hash to modify.\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction hashDelete(key) {\n\t return this.has(key) && delete this.__data__[key];\n\t}\n\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n\t}\n\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the list cache.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf ListCache\n\t */\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t}\n\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t return true;\n\t}\n\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t return getMapData(this, key)['delete'](key);\n\t}\n\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t getMapData(this, key).set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\n\t/**\n\t * Creates a stack cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Stack(entries) {\n\t this.__data__ = new ListCache(entries);\n\t}\n\n\t/**\n\t * Removes all key-value entries from the stack.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Stack\n\t */\n\tfunction stackClear() {\n\t this.__data__ = new ListCache;\n\t}\n\n\t/**\n\t * Removes `key` and its value from the stack.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction stackDelete(key) {\n\t return this.__data__['delete'](key);\n\t}\n\n\t/**\n\t * Gets the stack value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction stackGet(key) {\n\t return this.__data__.get(key);\n\t}\n\n\t/**\n\t * Checks if a stack value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Stack\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction stackHas(key) {\n\t return this.__data__.has(key);\n\t}\n\n\t/**\n\t * Sets the stack `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the stack cache instance.\n\t */\n\tfunction stackSet(key, value) {\n\t var cache = this.__data__;\n\t if (cache instanceof ListCache) {\n\t var pairs = cache.__data__;\n\t if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n\t pairs.push([key, value]);\n\t return this;\n\t }\n\t cache = this.__data__ = new MapCache(pairs);\n\t }\n\t cache.set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `Stack`.\n\tStack.prototype.clear = stackClear;\n\tStack.prototype['delete'] = stackDelete;\n\tStack.prototype.get = stackGet;\n\tStack.prototype.has = stackHas;\n\tStack.prototype.set = stackSet;\n\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\n\t var length = result.length,\n\t skipIndexes = !!length;\n\n\t for (var key in value) {\n\t if ((hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\n\t/**\n\t * The base implementation of `_.assign` without support for multiple sources\n\t * or `customizer` functions.\n\t *\n\t * @private\n\t * @param {Object} object The destination object.\n\t * @param {Object} source The source object.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction baseAssign(object, source) {\n\t return object && copyObject(source, keys(source), object);\n\t}\n\n\t/**\n\t * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n\t * traversed objects.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @param {boolean} [isFull] Specify a clone including symbols.\n\t * @param {Function} [customizer] The function to customize cloning.\n\t * @param {string} [key] The key of `value`.\n\t * @param {Object} [object] The parent object of `value`.\n\t * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\tfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n\t var result;\n\t if (customizer) {\n\t result = object ? customizer(value, key, object, stack) : customizer(value);\n\t }\n\t if (result !== undefined) {\n\t return result;\n\t }\n\t if (!isObject(value)) {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isArr) {\n\t result = initCloneArray(value);\n\t if (!isDeep) {\n\t return copyArray(value, result);\n\t }\n\t } else {\n\t var tag = getTag(value),\n\t isFunc = tag == funcTag || tag == genTag;\n\n\t if (isBuffer(value)) {\n\t return cloneBuffer(value, isDeep);\n\t }\n\t if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n\t if (isHostObject(value)) {\n\t return object ? value : {};\n\t }\n\t result = initCloneObject(isFunc ? {} : value);\n\t if (!isDeep) {\n\t return copySymbols(value, baseAssign(result, value));\n\t }\n\t } else {\n\t if (!cloneableTags[tag]) {\n\t return object ? value : {};\n\t }\n\t result = initCloneByTag(value, tag, baseClone, isDeep);\n\t }\n\t }\n\t // Check for circular references and return its corresponding clone.\n\t stack || (stack = new Stack);\n\t var stacked = stack.get(value);\n\t if (stacked) {\n\t return stacked;\n\t }\n\t stack.set(value, result);\n\n\t if (!isArr) {\n\t var props = isFull ? getAllKeys(value) : keys(value);\n\t }\n\t arrayEach(props || value, function(subValue, key) {\n\t if (props) {\n\t key = subValue;\n\t subValue = value[key];\n\t }\n\t // Recursively populate clone (susceptible to call stack limits).\n\t assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\tfunction baseCreate(proto) {\n\t return isObject(proto) ? objectCreate(proto) : {};\n\t}\n\n\t/**\n\t * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n\t * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n\t * symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {Function} keysFunc The function to get the keys of `object`.\n\t * @param {Function} symbolsFunc The function to get the symbols of `object`.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n\t var result = keysFunc(object);\n\t return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n\t}\n\n\t/**\n\t * The base implementation of `getTag`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t return objectToString.call(value);\n\t}\n\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `buffer`.\n\t *\n\t * @private\n\t * @param {Buffer} buffer The buffer to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Buffer} Returns the cloned buffer.\n\t */\n\tfunction cloneBuffer(buffer, isDeep) {\n\t if (isDeep) {\n\t return buffer.slice();\n\t }\n\t var result = new buffer.constructor(buffer.length);\n\t buffer.copy(result);\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `arrayBuffer`.\n\t *\n\t * @private\n\t * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n\t * @returns {ArrayBuffer} Returns the cloned array buffer.\n\t */\n\tfunction cloneArrayBuffer(arrayBuffer) {\n\t var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n\t new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `dataView`.\n\t *\n\t * @private\n\t * @param {Object} dataView The data view to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned data view.\n\t */\n\tfunction cloneDataView(dataView, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n\t return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n\t}\n\n\t/**\n\t * Creates a clone of `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned map.\n\t */\n\tfunction cloneMap(map, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n\t return arrayReduce(array, addMapEntry, new map.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of `regexp`.\n\t *\n\t * @private\n\t * @param {Object} regexp The regexp to clone.\n\t * @returns {Object} Returns the cloned regexp.\n\t */\n\tfunction cloneRegExp(regexp) {\n\t var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n\t result.lastIndex = regexp.lastIndex;\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned set.\n\t */\n\tfunction cloneSet(set, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n\t return arrayReduce(array, addSetEntry, new set.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of the `symbol` object.\n\t *\n\t * @private\n\t * @param {Object} symbol The symbol object to clone.\n\t * @returns {Object} Returns the cloned symbol object.\n\t */\n\tfunction cloneSymbol(symbol) {\n\t return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n\t}\n\n\t/**\n\t * Creates a clone of `typedArray`.\n\t *\n\t * @private\n\t * @param {Object} typedArray The typed array to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned typed array.\n\t */\n\tfunction cloneTypedArray(typedArray, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n\t return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n\t}\n\n\t/**\n\t * Copies the values of `source` to `array`.\n\t *\n\t * @private\n\t * @param {Array} source The array to copy values from.\n\t * @param {Array} [array=[]] The array to copy values to.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction copyArray(source, array) {\n\t var index = -1,\n\t length = source.length;\n\n\t array || (array = Array(length));\n\t while (++index < length) {\n\t array[index] = source[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\n\t var index = -1,\n\t length = props.length;\n\n\t while (++index < length) {\n\t var key = props[index];\n\n\t var newValue = undefined;\n\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\n\t/**\n\t * Copies own symbol properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy symbols from.\n\t * @param {Object} [object={}] The object to copy symbols to.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copySymbols(source, object) {\n\t return copyObject(source, getSymbols(source), object);\n\t}\n\n\t/**\n\t * Creates an array of own enumerable property names and symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction getAllKeys(object) {\n\t return baseGetAllKeys(object, keys, getSymbols);\n\t}\n\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable symbol properties of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of symbols.\n\t */\n\tvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n\t/**\n\t * Gets the `toStringTag` of `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tvar getTag = baseGetTag;\n\n\t// Fallback for data views, maps, sets, and weak maps in IE 11,\n\t// for data views in Edge < 14, and promises in Node.js.\n\tif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n\t (Map && getTag(new Map) != mapTag) ||\n\t (Promise && getTag(Promise.resolve()) != promiseTag) ||\n\t (Set && getTag(new Set) != setTag) ||\n\t (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n\t getTag = function(value) {\n\t var result = objectToString.call(value),\n\t Ctor = result == objectTag ? value.constructor : undefined,\n\t ctorString = Ctor ? toSource(Ctor) : undefined;\n\n\t if (ctorString) {\n\t switch (ctorString) {\n\t case dataViewCtorString: return dataViewTag;\n\t case mapCtorString: return mapTag;\n\t case promiseCtorString: return promiseTag;\n\t case setCtorString: return setTag;\n\t case weakMapCtorString: return weakMapTag;\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\n\t/**\n\t * Initializes an array clone.\n\t *\n\t * @private\n\t * @param {Array} array The array to clone.\n\t * @returns {Array} Returns the initialized clone.\n\t */\n\tfunction initCloneArray(array) {\n\t var length = array.length,\n\t result = array.constructor(length);\n\n\t // Add properties assigned by `RegExp#exec`.\n\t if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n\t result.index = array.index;\n\t result.input = array.input;\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Initializes an object clone.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneObject(object) {\n\t return (typeof object.constructor == 'function' && !isPrototype(object))\n\t ? baseCreate(getPrototype(object))\n\t : {};\n\t}\n\n\t/**\n\t * Initializes an object clone based on its `toStringTag`.\n\t *\n\t * **Note:** This function only supports cloning values with tags of\n\t * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @param {string} tag The `toStringTag` of the object to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n\t var Ctor = object.constructor;\n\t switch (tag) {\n\t case arrayBufferTag:\n\t return cloneArrayBuffer(object);\n\n\t case boolTag:\n\t case dateTag:\n\t return new Ctor(+object);\n\n\t case dataViewTag:\n\t return cloneDataView(object, isDeep);\n\n\t case float32Tag: case float64Tag:\n\t case int8Tag: case int16Tag: case int32Tag:\n\t case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n\t return cloneTypedArray(object, isDeep);\n\n\t case mapTag:\n\t return cloneMap(object, isDeep, cloneFunc);\n\n\t case numberTag:\n\t case stringTag:\n\t return new Ctor(object);\n\n\t case regexpTag:\n\t return cloneRegExp(object);\n\n\t case setTag:\n\t return cloneSet(object, isDeep, cloneFunc);\n\n\t case symbolTag:\n\t return cloneSymbol(object);\n\t }\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\n\t/**\n\t * Checks if `value` is suitable for use as unique object key.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n\t */\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n\t return value === proto;\n\t}\n\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to process.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\n\t/**\n\t * This method is like `_.clone` except that it recursively clones `value`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 1.0.0\n\t * @category Lang\n\t * @param {*} value The value to recursively clone.\n\t * @returns {*} Returns the deep cloned value.\n\t * @see _.clone\n\t * @example\n\t *\n\t * var objects = [{ 'a': 1 }, { 'b': 2 }];\n\t *\n\t * var deep = _.cloneDeep(objects);\n\t * console.log(deep[0] === objects[0]);\n\t * // => false\n\t */\n\tfunction cloneDeep(value) {\n\t return baseClone(value, true, true);\n\t}\n\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\n\t/**\n\t * Checks if `value` is a buffer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.3.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n\t * @example\n\t *\n\t * _.isBuffer(new Buffer(2));\n\t * // => true\n\t *\n\t * _.isBuffer(new Uint8Array(2));\n\t * // => false\n\t */\n\tvar isBuffer = nativeIsBuffer || stubFalse;\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\n\t/**\n\t * This method returns a new empty array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {Array} Returns the new empty array.\n\t * @example\n\t *\n\t * var arrays = _.times(2, _.stubArray);\n\t *\n\t * console.log(arrays);\n\t * // => [[], []]\n\t *\n\t * console.log(arrays[0] === arrays[1]);\n\t * // => false\n\t */\n\tfunction stubArray() {\n\t return [];\n\t}\n\n\t/**\n\t * This method returns `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {boolean} Returns `false`.\n\t * @example\n\t *\n\t * _.times(2, _.stubFalse);\n\t * // => [false, false]\n\t */\n\tfunction stubFalse() {\n\t return false;\n\t}\n\n\tmodule.exports = cloneDeep; \n} (lodash_clonedeep, lodash_clonedeep.exports));\n\nvar lodash_clonedeepExports = lodash_clonedeep.exports;\nvar cloneDeep = /*@__PURE__*/getDefaultExportFromCjs(lodash_clonedeepExports);\n\nfunction applyContextDelta(context, delta, logger) {\n try {\n if (logger?.canPublish(\"trace\")) {\n logger?.trace(`applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`);\n }\n if (!delta) {\n return context;\n }\n if (delta.reset) {\n context = { ...delta.reset };\n return context;\n }\n context = deepClone(context, undefined);\n if (delta.commands) {\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n deletePath(context, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(context, command.value, command.path);\n }\n }\n return context;\n }\n const added = delta.added;\n const updated = delta.updated;\n const removed = delta.removed;\n if (added) {\n Object.keys(added).forEach((key) => {\n context[key] = added[key];\n });\n }\n if (updated) {\n Object.keys(updated).forEach((key) => {\n mergeObjectsProperties(key, context, updated);\n });\n }\n if (removed) {\n removed.forEach((key) => {\n delete context[key];\n });\n }\n return context;\n }\n catch (e) {\n logger?.error(`error applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`, e);\n return context;\n }\n}\nfunction deepClone(obj, hash) {\n return cloneDeep(obj);\n}\nconst mergeObjectsProperties = (key, what, withWhat) => {\n const right = withWhat[key];\n if (right === undefined) {\n return what;\n }\n const left = what[key];\n if (!left || !right) {\n what[key] = right;\n return what;\n }\n if (typeof left === \"string\" ||\n typeof left === \"number\" ||\n typeof left === \"boolean\" ||\n typeof right === \"string\" ||\n typeof right === \"number\" ||\n typeof right === \"boolean\" ||\n Array.isArray(left) ||\n Array.isArray(right)) {\n what[key] = right;\n return what;\n }\n what[key] = Object.assign({}, left, right);\n return what;\n};\nfunction deepEqual(x, y) {\n if (x === y) {\n return true;\n }\n if (!(x instanceof Object) || !(y instanceof Object)) {\n return false;\n }\n if (x.constructor !== y.constructor) {\n return false;\n }\n for (const p in x) {\n if (!x.hasOwnProperty(p)) {\n continue;\n }\n if (!y.hasOwnProperty(p)) {\n return false;\n }\n if (x[p] === y[p]) {\n continue;\n }\n if (typeof (x[p]) !== \"object\") {\n return false;\n }\n if (!deepEqual(x[p], y[p])) {\n return false;\n }\n }\n for (const p in y) {\n if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) {\n return false;\n }\n }\n return true;\n}\nfunction setValueToPath(obj, value, path) {\n const pathArr = path.split(\".\");\n const forbiddenKeys = [\"__proto__\", \"constructor\", \"prototype\"];\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n const key = pathArr[i];\n if (forbiddenKeys.includes(key)) {\n throw new Error(`The provided path ${path} is invalid. It cannot contain segment/key that is equal to one of the following values: ${forbiddenKeys}.`);\n }\n if (!obj[key]) {\n obj[key] = {};\n }\n if (typeof obj[key] !== \"object\") {\n obj[key] = {};\n }\n obj = obj[key];\n }\n obj[pathArr[i]] = value;\n}\nfunction isSubset(superObj, subObj) {\n return Object.keys(subObj).every((ele) => {\n if (typeof subObj[ele] === \"object\") {\n return isSubset(superObj?.[ele] || {}, subObj[ele] || {});\n }\n return subObj[ele] === superObj?.[ele];\n });\n}\nfunction deletePath(obj, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n return;\n }\n obj = obj[pathArr[i]];\n }\n delete obj[pathArr[i]];\n}\n\nclass GW3Bridge {\n ERROR_URI_FAILURE = \"global.errors.failure\";\n ERROR_URI_INVALID_CONTEXT = \"global.errors.invalid_context\";\n _logger;\n _connection;\n _trackAllContexts;\n _reAnnounceKnownContexts;\n _subscribeOnUpdate;\n _subscribeOnGet;\n _onlyReAnnounceSubscribedContexts;\n _gw3Session;\n _contextNameToData = {};\n _gw3Subscriptions = [];\n _nextCallbackSubscriptionNumber = 0;\n _creationPromises = {};\n _contextNameToId = {};\n _contextIdToName = {};\n _protocolVersion = undefined;\n _contextsTempCache = {};\n _contextsSubscriptionsCache = [];\n _systemContextsSubKey;\n get protocolVersion() {\n if (!this._protocolVersion) {\n const contextsDomainInfo = this._connection.availableDomains.find((d) => d.uri === \"context\");\n this._protocolVersion = contextsDomainInfo?.version ?? 1;\n }\n return this._protocolVersion;\n }\n get setPathSupported() {\n return this.protocolVersion >= 2;\n }\n constructor(config) {\n this._connection = config.connection;\n this._logger = config.logger;\n this._trackAllContexts = config.trackAllContexts;\n this._reAnnounceKnownContexts = config.reAnnounceKnownContexts;\n this._subscribeOnUpdate = config.subscribeOnUpdate ?? true;\n this._subscribeOnGet = config.subscribeOnGet ?? true;\n this._onlyReAnnounceSubscribedContexts = config.onlyReAnnounceSubscribedContexts ?? true;\n this._gw3Session = this._connection.domain(\"global\", [\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_CONTEXT_UPDATED,\n ]);\n this._gw3Session.disconnected(this.resetState.bind(this));\n this._gw3Session.onJoined((wasReconnect) => {\n if (!wasReconnect) {\n return;\n }\n if (!this._reAnnounceKnownContexts) {\n this._contextsTempCache = {};\n return this._connection.setLibReAnnounced({ name: \"contexts\" });\n }\n this.reInitiateState()\n .then(() => this._connection.setLibReAnnounced({ name: \"contexts\" }))\n .catch((err) => {\n this._logger.warn(`Error while re-announcing contexts: ${JSON.stringify(err)}`);\n });\n });\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n }\n dispose() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n this._gw3Subscriptions.length = 0;\n for (const contextName in this._contextNameToData) {\n if (this._contextNameToId.hasOwnProperty(contextName)) {\n delete this._contextNameToData[contextName];\n }\n }\n }\n createContext(name, data) {\n if (name in this._creationPromises) {\n return this._creationPromises[name];\n }\n this._creationPromises[name] =\n this._gw3Session\n .send({\n type: GW_MESSAGE_CREATE_CONTEXT,\n domain: \"global\",\n name,\n data,\n lifetime: \"retained\",\n })\n .then((createContextMsg) => {\n this._contextNameToId[name] = createContextMsg.context_id;\n this._contextIdToName[createContextMsg.context_id] = name;\n const contextData = this._contextNameToData[name] || new GW3ContextData(createContextMsg.context_id, name, true, undefined);\n contextData.isAnnounced = true;\n contextData.name = name;\n contextData.contextId = createContextMsg.context_id;\n contextData.context = createContextMsg.data || deepClone(data);\n contextData.hasReceivedSnapshot = true;\n this._contextNameToData[name] = contextData;\n delete this._creationPromises[name];\n contextData.sentExplicitSubscription = true;\n contextData.createdByUs = true;\n this.subscribe(name, () => { });\n return createContextMsg.context_id;\n });\n return this._creationPromises[name];\n }\n all() {\n return Object.keys(this._contextNameToData)\n .filter((name) => this._contextNameToData[name].isAnnounced);\n }\n async update(name, delta) {\n if (delta) {\n delta = deepClone(delta);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n await this.createContext(name, delta);\n return;\n }\n const currentContext = await this.get(contextData.name);\n const calculatedDelta = this.setPathSupported ?\n this.calculateContextDeltaV2(currentContext, delta) :\n this.calculateContextDeltaV1(currentContext, delta);\n if (!Object.keys(calculatedDelta.added).length\n && !Object.keys(calculatedDelta.updated).length\n && !calculatedDelta.removed.length\n && !calculatedDelta.commands?.length) {\n return Promise.resolve();\n }\n const gwResponse = await this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: calculatedDelta,\n }, {}, { skipPeerId: false });\n if (this._subscribeOnUpdate &&\n !contextData.sentExplicitSubscription &&\n !contextData.activityId) {\n this.subscribe(name, () => { });\n }\n if (this._subscribeOnUpdate ||\n contextData.sentExplicitSubscription ||\n contextData.activityId) {\n await contextData.snapshotPromise;\n this.handleUpdated(contextData, calculatedDelta, {\n updaterId: gwResponse.peer_id\n });\n }\n }\n async set(name, data) {\n if (data) {\n data = deepClone(data);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, data);\n }\n const gwResponse = await this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { reset: data },\n }, {}, { skipPeerId: false });\n if (this._subscribeOnUpdate &&\n !contextData.sentExplicitSubscription &&\n !contextData.activityId) {\n this.subscribe(name, () => { });\n }\n if (this._subscribeOnUpdate ||\n contextData.sentExplicitSubscription ||\n contextData.activityId) {\n this.handleUpdated(contextData, {\n reset: data,\n added: {},\n removed: [],\n updated: {}\n }, {\n updaterId: gwResponse.peer_id\n });\n }\n }\n setPath(name, path, value) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPath operation is not supported, use Glue42 3.10 or later\");\n }\n return this.setPaths(name, [{ path, value }]);\n }\n async setPaths(name, pathValues) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPaths operation is not supported, use Glue42 3.10 or later\");\n }\n if (pathValues) {\n pathValues = deepClone(pathValues);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n const obj = {};\n for (const pathValue of pathValues) {\n setValueToPath(obj, pathValue.value, pathValue.path);\n }\n return this.createContext(name, obj);\n }\n const commands = [];\n for (const pathValue of pathValues) {\n if (pathValue.value === null) {\n commands.push({ type: \"remove\", path: pathValue.path });\n }\n else {\n commands.push({ type: \"set\", path: pathValue.path, value: pathValue.value });\n }\n }\n const gwResponse = await this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { commands }\n }, {}, { skipPeerId: false });\n if (this._subscribeOnUpdate &&\n !contextData.sentExplicitSubscription &&\n !contextData.activityId) {\n this.subscribe(name, () => { });\n }\n if (this._subscribeOnUpdate ||\n contextData.sentExplicitSubscription ||\n contextData.activityId) {\n await contextData.snapshotPromise;\n this.handleUpdated(contextData, {\n added: {},\n removed: [],\n updated: {},\n commands\n }, {\n updaterId: gwResponse.peer_id\n });\n }\n }\n async get(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n if (!contextData && this._subscribeOnGet) {\n this.subscribe(name, () => { });\n }\n return Promise.resolve({});\n }\n if (contextData && !contextData.sentExplicitSubscription) {\n return new Promise((resolve, reject) => {\n this.subscribe(name, (data, _d, _r, un) => {\n if (!this._subscribeOnGet) {\n this.unsubscribe(un);\n }\n resolve(data);\n }).catch((e) => {\n if (this.isInvalidContextError(e)) {\n resolve({});\n return;\n }\n reject(e);\n });\n });\n }\n await contextData.snapshotPromise;\n const context = contextData?.context ?? {};\n return Promise.resolve(deepClone(context));\n }\n isInvalidContextError(e) {\n return e.reason_uri === this.ERROR_URI_INVALID_CONTEXT\n || (e.reason_uri === this.ERROR_URI_FAILURE && e.reason?.startsWith(\"Unable to find context with id\"));\n }\n async subscribe(name, callback, subscriptionKey) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const thisCallbackSubscriptionNumber = typeof subscriptionKey === \"undefined\" ? this._nextCallbackSubscriptionNumber : subscriptionKey;\n if (typeof subscriptionKey === \"undefined\") {\n this._nextCallbackSubscriptionNumber += 1;\n this._contextsSubscriptionsCache.push({ contextName: name, subKey: thisCallbackSubscriptionNumber, callback });\n }\n let contextData = this._contextNameToData[name];\n if (!contextData ||\n !contextData.isAnnounced) {\n contextData = contextData || new GW3ContextData(undefined, name, false, undefined);\n this._contextNameToData[name] = contextData;\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n const hadCallbacks = contextData.hasCallbacks();\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n if (!hadCallbacks) {\n if (!contextData.joinedActivity && !contextData.createdByUs) {\n if (contextData.context && contextData.sentExplicitSubscription) {\n if (contextData.hasReceivedSnapshot && !subscriptionKey) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n return this.sendSubscribe(contextData)\n .then(() => thisCallbackSubscriptionNumber, () => {\n this.unsubscribe(thisCallbackSubscriptionNumber, true);\n return thisCallbackSubscriptionNumber;\n });\n }\n else {\n if (contextData.hasReceivedSnapshot && !subscriptionKey) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n else {\n if (contextData.hasReceivedSnapshot && !subscriptionKey) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n unsubscribe(subscriptionKey, keepInSubscriptionsCache) {\n if (!keepInSubscriptionsCache) {\n this._contextsSubscriptionsCache = this._contextsSubscriptionsCache.filter(x => x.subKey !== subscriptionKey);\n }\n for (const name of Object.keys(this._contextNameToData)) {\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n continue;\n }\n const hadCallbacks = contextData.hasCallbacks();\n delete contextData.updateCallbacks[subscriptionKey];\n if (contextData.isAnnounced &&\n hadCallbacks &&\n !contextData.hasCallbacks() &&\n contextData.sentExplicitSubscription) {\n contextData.hasReceivedSnapshot = false;\n contextData.context = {};\n this.sendUnsubscribe(contextData).catch(() => { });\n }\n if (!contextData.isAnnounced &&\n !contextData.hasCallbacks()) {\n delete this._contextNameToData[name];\n delete this._contextNameToId[name];\n if (contextData.contextId) {\n delete this._contextIdToName[contextData.contextId];\n }\n }\n }\n }\n async destroy(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n const contextId = contextData?.contextId;\n if (!contextData || !contextId) {\n return Promise.reject(`context with ${name} does not exist`);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_DESTROY_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then(() => undefined);\n }\n handleUpdated(contextData, delta, extraData) {\n const oldContext = contextData.context;\n contextData.context = applyContextDelta(contextData.context, delta, this._logger);\n if (this._contextNameToData[contextData.name] === contextData &&\n !deepEqual(oldContext, contextData.context)) {\n this.invokeUpdateCallbacks(contextData, delta, extraData);\n }\n }\n subscribeToContextCreatedMessages() {\n const createdMessageTypes = [\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_ACTIVITY_CREATED,\n ];\n for (const createdMessageType of createdMessageTypes) {\n const sub = this._connection.on(createdMessageType, this.handleContextCreatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextCreatedMessage(contextCreatedMsg) {\n const createdMessageType = contextCreatedMsg.type;\n if (createdMessageType === GW_MESSAGE_ACTIVITY_CREATED) {\n this._contextNameToId[contextCreatedMsg.activity_id] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.activity_id;\n }\n else if (createdMessageType === GW_MESSAGE_CONTEXT_ADDED) {\n this._contextNameToId[contextCreatedMsg.name] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.name;\n }\n else ;\n const name = this._contextIdToName[contextCreatedMsg.context_id];\n if (!name) {\n throw new Error(\"Received created event for context with unknown name: \" + contextCreatedMsg.context_id);\n }\n if (!this._contextNameToId[name]) {\n throw new Error(\"Received created event for context with unknown id: \" + contextCreatedMsg.context_id);\n }\n let contextData = this._contextNameToData[name];\n if (contextData) {\n if (contextData.isAnnounced) {\n return;\n }\n else {\n if (!contextData.hasCallbacks()) {\n throw new Error(\"Assertion failure: contextData.hasCallbacks()\");\n }\n contextData.isAnnounced = true;\n contextData.contextId = contextCreatedMsg.context_id;\n contextData.activityId = contextCreatedMsg.activity_id;\n if (!contextData.sentExplicitSubscription) {\n this.sendSubscribe(contextData).catch(() => { });\n }\n }\n }\n else {\n this._contextNameToData[name] = contextData =\n new GW3ContextData(contextCreatedMsg.context_id, name, true, contextCreatedMsg.activity_id);\n if (this._trackAllContexts) {\n this.subscribe(name, () => { }).then((subKey) => this._systemContextsSubKey = subKey);\n }\n }\n }\n subscribeToContextUpdatedMessages() {\n const updatedMessageTypes = [\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_JOINED_ACTIVITY,\n ];\n for (const updatedMessageType of updatedMessageTypes) {\n const sub = this._connection.on(updatedMessageType, this.handleContextUpdatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextUpdatedMessage(contextUpdatedMsg) {\n const updatedMessageType = contextUpdatedMsg.type;\n const contextId = contextUpdatedMsg.context_id;\n let contextData = this._contextNameToData[this._contextIdToName[contextId]];\n const justSeen = !contextData || !contextData.isAnnounced;\n if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n if (!contextData) {\n contextData =\n this._contextNameToData[contextUpdatedMsg.activity_id] ||\n new GW3ContextData(contextId, contextUpdatedMsg.activity_id, true, contextUpdatedMsg.activity_id);\n }\n this._contextNameToData[contextUpdatedMsg.activity_id] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.activity_id;\n this._contextNameToId[contextUpdatedMsg.activity_id] = contextId;\n contextData.contextId = contextId;\n contextData.isAnnounced = true;\n contextData.activityId = contextUpdatedMsg.activity_id;\n contextData.joinedActivity = true;\n }\n else {\n if (!contextData || !contextData.isAnnounced) {\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData = contextData || new GW3ContextData(contextId, contextUpdatedMsg.name, true, undefined);\n contextData.sentExplicitSubscription = true;\n this._contextNameToData[contextUpdatedMsg.name] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.name;\n this._contextNameToId[contextUpdatedMsg.name] = contextId;\n }\n else {\n this._logger.error(`Received 'update' for unknown context: ${contextId}`);\n }\n return;\n }\n }\n const oldContext = contextData.context;\n contextData.hasReceivedSnapshot = true;\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData.context = contextUpdatedMsg.data ?? {};\n }\n else if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n contextData.context = contextUpdatedMsg.context_snapshot ?? {};\n }\n else if (updatedMessageType === GW_MESSAGE_CONTEXT_UPDATED) {\n contextData.context = applyContextDelta(contextData.context, contextUpdatedMsg.delta, this._logger);\n }\n else {\n throw new Error(\"Unrecognized context update message \" + updatedMessageType);\n }\n if (justSeen ||\n !deepEqual(contextData.context, oldContext) ||\n updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n this.invokeUpdateCallbacks(contextData, contextUpdatedMsg.delta, { updaterId: contextUpdatedMsg.updater_id });\n }\n }\n invokeUpdateCallbacks(contextData, delta, extraData) {\n delta = delta || { added: {}, updated: {}, reset: {}, removed: [] };\n if (delta.commands) {\n delta.added = delta.updated = delta.reset = {};\n delta.removed = [];\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n if (command.path.indexOf(\".\") === -1) {\n delta.removed.push(command.path);\n }\n setValueToPath(delta.updated, null, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(delta.updated, command.value, command.path);\n }\n }\n }\n for (const updateCallbackIndex in contextData.updateCallbacks) {\n if (contextData.updateCallbacks.hasOwnProperty(updateCallbackIndex)) {\n try {\n const updateCallback = contextData.updateCallbacks[updateCallbackIndex];\n updateCallback(deepClone(contextData.context), deepClone(Object.assign({}, delta.added || {}, delta.updated || {}, delta.reset || {})), delta.removed, parseInt(updateCallbackIndex, 10), extraData);\n }\n catch (err) {\n this._logger.debug(\"callback error: \" + JSON.stringify(err));\n }\n }\n }\n }\n subscribeToContextDestroyedMessages() {\n const destroyedMessageTypes = [\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n ];\n for (const destroyedMessageType of destroyedMessageTypes) {\n const sub = this._connection.on(destroyedMessageType, this.handleContextDestroyedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextDestroyedMessage(destroyedMsg) {\n const destroyedMessageType = destroyedMsg.type;\n let contextId;\n let name;\n if (destroyedMessageType === GW_MESSAGE_ACTIVITY_DESTROYED) {\n name = destroyedMsg.activity_id;\n contextId = this._contextNameToId[name];\n if (!contextId) {\n this._logger.error(`Received 'destroyed' for unknown activity: ${destroyedMsg.activity_id}`);\n return;\n }\n }\n else {\n contextId = destroyedMsg.context_id;\n name = this._contextIdToName[contextId];\n if (!name) {\n this._logger.error(`Received 'destroyed' for unknown context: ${destroyedMsg.context_id}`);\n return;\n }\n }\n delete this._contextIdToName[contextId];\n delete this._contextNameToId[name];\n const contextData = this._contextNameToData[name];\n delete this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n this._logger.error(`Received 'destroyed' for unknown context: ${contextId}`);\n return;\n }\n }\n async sendSubscribe(contextData) {\n contextData.sentExplicitSubscription = true;\n try {\n await this._gw3Session.send({\n type: GW_MESSAGE_SUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n });\n return;\n }\n catch (error) {\n contextData.sentExplicitSubscription = false;\n throw error;\n }\n }\n async sendUnsubscribe(contextData) {\n const prev = contextData.sentExplicitSubscription;\n contextData.sentExplicitSubscription = false;\n try {\n await this._gw3Session.send({\n type: GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n });\n return;\n }\n catch (error) {\n contextData.sentExplicitSubscription = prev;\n throw error;\n }\n }\n calculateContextDeltaV1(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined };\n if (from) {\n for (const x of Object.keys(from)) {\n if (Object.keys(to).indexOf(x) !== -1\n && to[x] !== null\n && !deepEqual(from[x], to[x])) {\n delta.updated[x] = to[x];\n }\n }\n }\n for (const x of Object.keys(to)) {\n if (!from || (Object.keys(from).indexOf(x) === -1)) {\n if (to[x] !== null) {\n delta.added[x] = to[x];\n }\n }\n else if (to[x] === null) {\n delta.removed.push(x);\n }\n }\n return delta;\n }\n calculateContextDeltaV2(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined, commands: [] };\n for (const x of Object.keys(to)) {\n if (to[x] !== null) {\n const fromX = from ? from[x] : null;\n if (!deepEqual(fromX, to[x])) {\n delta.commands?.push({ type: \"set\", path: x, value: to[x] });\n }\n }\n else {\n delta.commands?.push({ type: \"remove\", path: x });\n }\n }\n return delta;\n }\n resetState() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n if (this._systemContextsSubKey) {\n this.unsubscribe(this._systemContextsSubKey, true);\n delete this._systemContextsSubKey;\n }\n this._gw3Subscriptions = [];\n this._contextNameToId = {};\n this._contextIdToName = {};\n delete this._protocolVersion;\n this._contextsTempCache = Object.keys(this._contextNameToData).reduce((cacheSoFar, ctxName) => {\n const contextData = this._contextNameToData[ctxName];\n const addToCache = !this._onlyReAnnounceSubscribedContexts || contextData.hasReceivedSnapshot;\n if (addToCache) {\n cacheSoFar[ctxName] = this._contextNameToData[ctxName].context;\n }\n return cacheSoFar;\n }, {});\n this._contextNameToData = {};\n }\n async reInitiateState() {\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n await Promise.all(this._contextsSubscriptionsCache.map((subscription) => this.subscribe(subscription.contextName, subscription.callback, subscription.subKey)));\n await this.flushQueue();\n for (const ctxName in this._contextsTempCache) {\n if (typeof this._contextsTempCache[ctxName] !== \"object\" || Object.keys(this._contextsTempCache[ctxName]).length === 0) {\n continue;\n }\n const lastKnownData = this._contextsTempCache[ctxName];\n this._logger.info(`Re-announcing known context: ${ctxName}`);\n await this.flushQueue();\n await this.update(ctxName, lastKnownData);\n }\n this._contextsTempCache = {};\n this._logger.info(\"Contexts are re-announced\");\n }\n flushQueue() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n }\n}\n\nclass ContextsModule {\n initTime;\n initStartTime;\n initEndTime;\n _bridge;\n constructor(config) {\n this._bridge = new GW3Bridge(config);\n }\n all() {\n return this._bridge.all();\n }\n update(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.update(name, data);\n }\n set(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.set(name, data);\n }\n setPath(name, path, data) {\n this.checkName(name);\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(data);\n return this.set(name, data);\n }\n return this._bridge.setPath(name, path, data);\n }\n setPaths(name, paths) {\n this.checkName(name);\n if (!Array.isArray(paths)) {\n throw new Error(\"Please provide the paths as an array of PathValues!\");\n }\n for (const { path, value } of paths) {\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(value);\n }\n }\n return this._bridge.setPaths(name, paths);\n }\n subscribe(name, callback) {\n this.checkName(name);\n if (typeof callback !== \"function\") {\n throw new Error(\"Please provide the callback as a function!\");\n }\n return this._bridge\n .subscribe(name, (data, delta, removed, key, extraData) => callback(data, delta, removed, () => this._bridge.unsubscribe(key), extraData))\n .then((key) => () => {\n this._bridge.unsubscribe(key);\n });\n }\n get(name) {\n this.checkName(name);\n return this._bridge.get(name);\n }\n ready() {\n return Promise.resolve(this);\n }\n destroy(name) {\n this.checkName(name);\n return this._bridge.destroy(name);\n }\n get setPathSupported() {\n return this._bridge.setPathSupported;\n }\n checkName(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new Error(\"Please provide the name as a non-empty string!\");\n }\n }\n checkPath(path) {\n if (typeof path !== \"string\") {\n throw new Error(\"Please provide the path as a dot delimited string!\");\n }\n }\n checkData(data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Please provide the data as an object!\");\n }\n }\n}\n\nfunction promisify (promise, successCallback, errorCallback) {\n if (typeof successCallback !== \"function\" && typeof errorCallback !== \"function\") {\n return promise;\n }\n if (typeof successCallback !== \"function\") {\n successCallback = () => { };\n }\n else if (typeof errorCallback !== \"function\") {\n errorCallback = () => { };\n }\n return promise.then(successCallback, errorCallback);\n}\n\nfunction rejectAfter(ms = 0, promise, error) {\n let timeout;\n const clearTimeoutIfThere = () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n promise\n .then(() => {\n clearTimeoutIfThere();\n })\n .catch(() => {\n clearTimeoutIfThere();\n });\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => reject(error), ms);\n });\n}\n\n/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nDecoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nDecoder.tuple;\r\n/** See `Decoder.dict` */\r\nDecoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nDecoder.oneOf;\r\n/** See `Decoder.union` */\r\nvar union = Decoder.union;\r\n/** See `Decoder.intersection` */\r\nDecoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nDecoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nDecoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nDecoder.succeed;\r\n/** See `Decoder.fail` */\r\nvar fail = Decoder.fail;\r\n/** See `Decoder.lazy` */\r\nDecoder.lazy;\n\nconst functionCheck = (input, propDescription) => {\n const providedType = typeof input;\n return providedType === \"function\" ?\n anyJson() :\n fail(`The provided argument as ${propDescription} should be of type function, provided: ${typeof providedType}`);\n};\nconst nonEmptyStringDecoder = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nconst nonNegativeNumberDecoder = number().where((num) => num >= 0, \"Expected a non-negative number or 0\");\nconst positiveNumberDecoder = number().where((num) => num > 0, \"Expected a positive number\");\nconst methodDefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n objectTypes: optional(array(nonEmptyStringDecoder)),\n displayName: optional(nonEmptyStringDecoder),\n accepts: optional(nonEmptyStringDecoder),\n returns: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n version: optional(nonNegativeNumberDecoder),\n supportsStreaming: optional(boolean()),\n flags: optional(object()),\n getServers: optional(anyJson().andThen((result) => functionCheck(result, \"method definition getServers\")))\n});\nconst methodFilterDecoder = union(nonEmptyStringDecoder, methodDefinitionDecoder);\nconst instanceDecoder = object({\n application: optional(nonEmptyStringDecoder),\n applicationName: optional(nonEmptyStringDecoder),\n pid: optional(nonNegativeNumberDecoder),\n machine: optional(nonEmptyStringDecoder),\n user: optional(nonEmptyStringDecoder),\n environment: optional(nonEmptyStringDecoder),\n region: optional(nonEmptyStringDecoder),\n service: optional(nonEmptyStringDecoder),\n instance: optional(nonEmptyStringDecoder),\n windowId: optional(nonEmptyStringDecoder),\n peerId: optional(nonEmptyStringDecoder),\n isLocal: optional(boolean()),\n api: optional(nonEmptyStringDecoder),\n getMethods: optional(anyJson().andThen((result) => functionCheck(result, \"instance getMethods\"))),\n getStreams: optional(anyJson().andThen((result) => functionCheck(result, \"instance getStreams\")))\n});\nconst targetDecoder = union(constant(\"best\"), constant(\"all\"), constant(\"skipMine\"), instanceDecoder, array(instanceDecoder));\nconst invokeOptionsDecoder = object({\n waitTimeoutMs: optional(positiveNumberDecoder),\n methodResponseTimeoutMs: optional(positiveNumberDecoder)\n});\n\nvar InvokeStatus;\n(function (InvokeStatus) {\n InvokeStatus[InvokeStatus[\"Success\"] = 0] = \"Success\";\n InvokeStatus[InvokeStatus[\"Error\"] = 1] = \"Error\";\n})(InvokeStatus || (InvokeStatus = {}));\nclass Client {\n protocol;\n repo;\n instance;\n configuration;\n constructor(protocol, repo, instance, configuration) {\n this.protocol = protocol;\n this.repo = repo;\n this.instance = instance;\n this.configuration = configuration;\n }\n subscribe(method, options, successCallback, errorCallback, existingSub) {\n const callProtocolSubscribe = (targetServers, stream, successProxy, errorProxy) => {\n options.methodResponseTimeout = options.methodResponseTimeout ?? options.waitTimeoutMs;\n this.protocol.client.subscribe(stream, options, targetServers, successProxy, errorProxy, existingSub);\n };\n const promise = new Promise((resolve, reject) => {\n const successProxy = (sub) => {\n resolve(sub);\n };\n const errorProxy = (err) => {\n reject(err);\n };\n if (!method) {\n reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n return;\n }\n let methodDef;\n if (typeof method === \"string\") {\n methodDef = { name: method };\n }\n else {\n methodDef = method;\n }\n if (!methodDef.name) {\n reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n return;\n }\n if (options === undefined) {\n options = {};\n }\n let target = options.target;\n if (target === undefined) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\") {\n reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\", \"best\", or an instance.`));\n return;\n }\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = options.method_response_timeout;\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = this.configuration.methodResponseTimeout;\n }\n }\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = options.wait_for_method_timeout;\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n const delayStep = 500;\n let delayTillNow = 0;\n let currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n callProtocolSubscribe(currentServers, currentServers[0].methods[0], successProxy, errorProxy);\n }\n else {\n const retry = () => {\n if (!target || !(options.waitTimeoutMs)) {\n return;\n }\n delayTillNow += delayStep;\n currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n const streamInfo = currentServers[0].methods[0];\n callProtocolSubscribe(currentServers, streamInfo, successProxy, errorProxy);\n }\n else if (delayTillNow >= options.waitTimeoutMs) {\n const def = typeof method === \"string\" ? { name: method } : method;\n callProtocolSubscribe(currentServers, def, successProxy, errorProxy);\n }\n else {\n setTimeout(retry, delayStep);\n }\n };\n setTimeout(retry, delayStep);\n }\n });\n return promisify(promise, successCallback, errorCallback);\n }\n servers(methodFilter) {\n const filterCopy = methodFilter === undefined\n ? undefined\n : { ...methodFilter };\n return this.getServers(filterCopy).map((serverMethodMap) => {\n return serverMethodMap.server.instance;\n });\n }\n methods(methodFilter) {\n if (typeof methodFilter === \"string\") {\n methodFilter = { name: methodFilter };\n }\n else {\n methodFilter = { ...methodFilter };\n }\n return this.getMethods(methodFilter);\n }\n methodsForInstance(instance) {\n return this.getMethodsForInstance(instance);\n }\n methodAdded(callback) {\n return this.repo.onMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.repo.onMethodRemoved(callback);\n }\n serverAdded(callback) {\n return this.repo.onServerAdded(callback);\n }\n serverRemoved(callback) {\n return this.repo.onServerRemoved((server, reason) => {\n callback(server, reason);\n });\n }\n serverMethodAdded(callback) {\n return this.repo.onServerMethodAdded((server, method) => {\n callback({ server, method });\n });\n }\n serverMethodRemoved(callback) {\n return this.repo.onServerMethodRemoved((server, method) => {\n callback({ server, method });\n });\n }\n async invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n const getInvokePromise = async () => {\n const methodDefinition = typeof methodFilter === \"string\" ? { name: methodFilter } : { ...methodFilter };\n if (!argumentObj) {\n argumentObj = {};\n }\n if (!target) {\n target = \"best\";\n }\n if (!additionalOptions) {\n additionalOptions = {};\n }\n const methodFilterDecoderResult = methodFilterDecoder.run(methodDefinition);\n if (!methodFilterDecoderResult.ok) {\n const message = `The provided 'method' argument is invalid. Error: ${JSON.stringify(methodFilterDecoderResult.error)}.`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (typeof argumentObj !== \"object\") {\n const message = \"The provided 'argumentObj' argument is invalid. Error: The argumentObj should be an instance of an object\";\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n const targetDecoderResult = targetDecoder.run(target);\n if (!targetDecoderResult.ok) {\n const message = `The provided 'target' argument is invalid. Error: ${JSON.stringify(targetDecoderResult.error)}.`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n const invokeOptionsDecoderResult = invokeOptionsDecoder.run(additionalOptions);\n if (!invokeOptionsDecoderResult.ok) {\n const message = `The provided 'options' argument is invalid. Error: ${JSON.stringify(invokeOptionsDecoderResult.error)}.`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (success && typeof success !== \"function\") {\n const message = \"The provided 'success' function is invalid. Error: The success should be a valid function\";\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (error && typeof error !== \"function\") {\n const message = \"The provided 'error' function is invalid. Error: The error should be a valid function\";\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = additionalOptions.method_response_timeout;\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = this.configuration.methodResponseTimeout;\n }\n }\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = additionalOptions.wait_for_method_timeout;\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n let serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length === 0) {\n try {\n serversMethodMap = await this.tryToAwaitForMethods(methodDefinition, target, additionalOptions);\n }\n catch (err) {\n const message = `Can not find a method matching ${JSON.stringify(methodFilter)} with server filter ${JSON.stringify(target)}`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n }\n const timeout = additionalOptions.methodResponseTimeoutMs;\n const additionalOptionsCopy = additionalOptions;\n const invokePromises = serversMethodMap.map((serversMethodPair) => {\n const invId = nanoid(10);\n const method = serversMethodPair.methods[0];\n const server = serversMethodPair.server;\n const invokePromise = this.protocol.client.invoke(invId, method, argumentObj, server, additionalOptionsCopy);\n return Promise.race([\n invokePromise,\n rejectAfter(timeout, invokePromise, {\n invocationId: invId,\n message: `Invocation timeout (${timeout} ms) reached for method name: ${method?.name}, target instance: ${JSON.stringify(server.instance)}, options: ${JSON.stringify(additionalOptionsCopy)}`,\n status: InvokeStatus.Error,\n })\n ]);\n });\n const invocationMessages = await Promise.all(invokePromises);\n const results = this.getInvocationResultObj(invocationMessages, methodDefinition, argumentObj);\n const allRejected = invocationMessages.every((result) => result.status === InvokeStatus.Error);\n if (allRejected) {\n return Promise.reject(results);\n }\n return results;\n };\n return promisify(getInvokePromise(), success, error);\n }\n generateInvalidInputInvocationResult(message, methodDefinition, argumentObj) {\n const method = {\n ...methodDefinition,\n getServers: () => [],\n supportsStreaming: false,\n objectTypes: methodDefinition.objectTypes ?? [],\n flags: methodDefinition.flags?.metadata ?? {}\n };\n const invokeResultMessage = {\n invocationId: nanoid(10),\n status: InvokeStatus.Error,\n message\n };\n return this.getInvocationResultObj([invokeResultMessage], method, argumentObj);\n }\n getInvocationResultObj(invocationResults, method, calledWith) {\n const all_return_values = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Success)\n .reduce((allValues, currentValue) => {\n allValues = [\n ...allValues,\n {\n executed_by: currentValue.instance,\n returned: currentValue.result,\n called_with: calledWith,\n method,\n message: currentValue.message,\n status: currentValue.status,\n }\n ];\n return allValues;\n }, []);\n const all_errors = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Error)\n .reduce((allErrors, currError) => {\n allErrors = [\n ...allErrors,\n {\n executed_by: currError.instance,\n called_with: calledWith,\n name: method.name,\n message: currError.message,\n }\n ];\n return allErrors;\n }, []);\n const invResult = invocationResults[0];\n const result = {\n method,\n called_with: calledWith,\n returned: invResult.result,\n executed_by: invResult.instance,\n all_return_values,\n all_errors,\n message: invResult.message,\n status: invResult.status\n };\n return result;\n }\n tryToAwaitForMethods(methodDefinition, target, additionalOptions) {\n return new Promise((resolve, reject) => {\n if (additionalOptions.waitTimeoutMs === 0) {\n reject();\n return;\n }\n const delayStep = 500;\n let delayTillNow = 0;\n const retry = () => {\n delayTillNow += delayStep;\n const serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length > 0) {\n clearInterval(interval);\n resolve(serversMethodMap);\n }\n else if (delayTillNow >= (additionalOptions.waitTimeoutMs || 10000)) {\n clearInterval(interval);\n reject();\n return;\n }\n };\n const interval = setInterval(retry, delayStep);\n });\n }\n filterByTarget(target, serverMethodMap) {\n if (typeof target === \"string\") {\n if (target === \"all\") {\n return [...serverMethodMap];\n }\n else if (target === \"best\") {\n const localMachine = serverMethodMap\n .find((s) => s.server.instance.isLocal);\n if (localMachine) {\n return [localMachine];\n }\n if (serverMethodMap[0] !== undefined) {\n return [serverMethodMap[0]];\n }\n }\n else if (target === \"skipMine\") {\n return serverMethodMap.filter(({ server }) => server.instance.peerId !== this.instance.peerId);\n }\n }\n else {\n let targetArray;\n if (!Array.isArray(target)) {\n targetArray = [target];\n }\n else {\n targetArray = target;\n }\n const allServersMatching = targetArray.reduce((matches, filter) => {\n const myMatches = serverMethodMap.filter((serverMethodPair) => {\n return this.instanceMatch(filter, serverMethodPair.server.instance);\n });\n return matches.concat(myMatches);\n }, []);\n return allServersMatching;\n }\n return [];\n }\n instanceMatch(instanceFilter, instanceDefinition) {\n if (instanceFilter?.peerId && instanceFilter?.instance) {\n instanceFilter = { ...instanceFilter };\n delete instanceFilter.peerId;\n }\n return this.containsProps(instanceFilter, instanceDefinition);\n }\n methodMatch(methodFilter, methodDefinition) {\n return this.containsProps(methodFilter, methodDefinition);\n }\n containsProps(filter, repoMethod) {\n const filterProps = Object.keys(filter)\n .filter((prop) => {\n return filter[prop] !== undefined\n && filter[prop] !== null\n && typeof filter[prop] !== \"function\"\n && prop !== \"object_types\"\n && prop !== \"display_name\"\n && prop !== \"id\"\n && prop !== \"gatewayId\"\n && prop !== \"identifier\"\n && prop[0] !== \"_\";\n });\n return filterProps.every((prop) => {\n let isMatch;\n const filterValue = filter[prop];\n const repoMethodValue = repoMethod[prop];\n switch (prop) {\n case \"objectTypes\":\n isMatch = (filterValue || []).every((filterValueEl) => {\n return (repoMethodValue || []).includes(filterValueEl);\n });\n break;\n case \"flags\":\n isMatch = isSubset(repoMethodValue || {}, filterValue || {});\n break;\n default:\n isMatch = String(filterValue).toLowerCase() === String(repoMethodValue).toLowerCase();\n }\n return isMatch;\n });\n }\n getMethods(methodFilter) {\n if (methodFilter === undefined) {\n return this.repo.getMethods();\n }\n const methods = this.repo.getMethods().filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n return methods;\n }\n getMethodsForInstance(instanceFilter) {\n const allServers = this.repo.getServers();\n const matchingServers = allServers.filter((server) => {\n return this.instanceMatch(instanceFilter, server.instance);\n });\n if (matchingServers.length === 0) {\n return [];\n }\n let resultMethodsObject = {};\n if (matchingServers.length === 1) {\n resultMethodsObject = matchingServers[0].methods;\n }\n else {\n matchingServers.forEach((server) => {\n Object.keys(server.methods).forEach((methodKey) => {\n const method = server.methods[methodKey];\n resultMethodsObject[method.identifier] = method;\n });\n });\n }\n return Object.keys(resultMethodsObject)\n .map((key) => {\n return resultMethodsObject[key];\n });\n }\n getServers(methodFilter) {\n const servers = this.repo.getServers();\n if (methodFilter === undefined) {\n return servers.map((server) => {\n return { server, methods: [] };\n });\n }\n return servers.reduce((prev, current) => {\n const methodsForServer = Object.values(current.methods);\n const matchingMethods = methodsForServer.filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n if (matchingMethods.length > 0) {\n prev.push({ server: current, methods: matchingMethods });\n }\n return prev;\n }, []);\n }\n getServerMethodsByFilterAndTarget(methodFilter, target) {\n const serversMethodMap = this.getServers(methodFilter);\n return this.filterByTarget(target, serversMethodMap);\n }\n}\n\nclass ServerSubscription {\n protocol;\n repoMethod;\n subscription;\n constructor(protocol, repoMethod, subscription) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.subscription = subscription;\n }\n get stream() {\n if (!this.repoMethod.stream) {\n throw new Error(\"no stream\");\n }\n return this.repoMethod.stream;\n }\n get arguments() { return this.subscription.arguments || {}; }\n get branchKey() { return this.subscription.branchKey; }\n get instance() {\n if (!this.subscription.instance) {\n throw new Error(\"no instance\");\n }\n return this.subscription.instance;\n }\n close() {\n this.protocol.server.closeSingleSubscription(this.repoMethod, this.subscription);\n }\n push(data) {\n this.protocol.server.pushDataToSingle(this.repoMethod, this.subscription, data);\n }\n}\n\nclass Request {\n protocol;\n repoMethod;\n requestContext;\n arguments;\n instance;\n constructor(protocol, repoMethod, requestContext) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.requestContext = requestContext;\n this.arguments = requestContext.arguments;\n this.instance = requestContext.instance;\n }\n accept() {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, \"\");\n }\n acceptOnBranch(branch) {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, branch);\n }\n reject(reason) {\n this.protocol.server.rejectRequest(this.requestContext, this.repoMethod, reason);\n }\n}\n\nlet ServerStreaming$1 = class ServerStreaming {\n protocol;\n server;\n constructor(protocol, server) {\n this.protocol = protocol;\n this.server = server;\n protocol.server.onSubRequest((rc, rm) => this.handleSubRequest(rc, rm));\n protocol.server.onSubAdded((sub, rm) => this.handleSubAdded(sub, rm));\n protocol.server.onSubRemoved((sub, rm) => this.handleSubRemoved(sub, rm));\n }\n handleSubRequest(requestContext, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRequestHandler === \"function\")) {\n return;\n }\n const request = new Request(this.protocol, repoMethod, requestContext);\n repoMethod.streamCallbacks.subscriptionRequestHandler(request);\n }\n handleSubAdded(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionAddedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionAddedHandler(sub);\n }\n handleSubRemoved(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRemovedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionRemovedHandler(sub);\n }\n};\n\nclass ServerBranch {\n key;\n protocol;\n repoMethod;\n constructor(key, protocol, repoMethod) {\n this.key = key;\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n }\n subscriptions() {\n const subList = this.protocol.server.getSubscriptionList(this.repoMethod, this.key);\n return subList.map((sub) => {\n return new ServerSubscription(this.protocol, this.repoMethod, sub);\n });\n }\n close() {\n this.protocol.server.closeAllSubscriptions(this.repoMethod, this.key);\n }\n push(data) {\n this.protocol.server.pushData(this.repoMethod, data, [this.key]);\n }\n}\n\nclass ServerStream {\n _protocol;\n _repoMethod;\n _server;\n name;\n constructor(_protocol, _repoMethod, _server) {\n this._protocol = _protocol;\n this._repoMethod = _repoMethod;\n this._server = _server;\n this.name = this._repoMethod.definition.name;\n }\n branches(key) {\n const bList = this._protocol.server.getBranchList(this._repoMethod);\n if (key) {\n if (bList.indexOf(key) > -1) {\n return new ServerBranch(key, this._protocol, this._repoMethod);\n }\n return undefined;\n }\n else {\n return bList.map((branchKey) => {\n return new ServerBranch(branchKey, this._protocol, this._repoMethod);\n });\n }\n }\n branch(key) {\n return this.branches(key);\n }\n subscriptions() {\n const subList = this._protocol.server.getSubscriptionList(this._repoMethod);\n return subList.map((sub) => {\n return new ServerSubscription(this._protocol, this._repoMethod, sub);\n });\n }\n get definition() {\n const def2 = this._repoMethod.definition;\n return {\n accepts: def2.accepts,\n description: def2.description,\n displayName: def2.displayName,\n name: def2.name,\n objectTypes: def2.objectTypes,\n returns: def2.returns,\n supportsStreaming: def2.supportsStreaming,\n flags: def2.flags?.metadata,\n };\n }\n close() {\n this._protocol.server.closeAllSubscriptions(this._repoMethod);\n this._server.unregister(this._repoMethod.definition, true);\n }\n push(data, branches) {\n if (typeof branches !== \"string\" && !Array.isArray(branches) && branches !== undefined) {\n throw new Error(\"invalid branches should be string or string array\");\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n this._protocol.server.pushData(this._repoMethod, data, branches);\n }\n updateRepoMethod(repoMethod) {\n this._repoMethod = repoMethod;\n }\n}\n\nclass Server {\n protocol;\n serverRepository;\n streaming;\n invocations = 0;\n currentlyUnregistering = {};\n constructor(protocol, serverRepository) {\n this.protocol = protocol;\n this.serverRepository = serverRepository;\n this.streaming = new ServerStreaming$1(protocol, this);\n this.protocol.server.onInvoked(this.onMethodInvoked.bind(this));\n }\n createStream(streamDef, callbacks, successCallback, errorCallback, existingStream) {\n const promise = new Promise((resolve, reject) => {\n if (!streamDef) {\n reject(\"The stream name must be unique! Please, provide either a unique string for a stream name to “glue.interop.createStream()” or a “methodDefinition” object with a unique “name” property for the stream.\");\n return;\n }\n let streamMethodDefinition;\n if (typeof streamDef === \"string\") {\n streamMethodDefinition = { name: \"\" + streamDef };\n }\n else {\n streamMethodDefinition = { ...streamDef };\n }\n if (!streamMethodDefinition.name) {\n return reject(`The “name” property is required for the “streamDefinition” object and must be unique. Stream definition: ${JSON.stringify(streamMethodDefinition)}`);\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === streamMethodDefinition.name);\n if (nameAlreadyExists) {\n return reject(`A stream with the name \"${streamMethodDefinition.name}\" already exists! Please, provide a unique name for the stream.`);\n }\n streamMethodDefinition.supportsStreaming = true;\n if (!callbacks) {\n callbacks = {};\n }\n if (typeof callbacks.subscriptionRequestHandler !== \"function\") {\n callbacks.subscriptionRequestHandler = (request) => {\n request.accept();\n };\n }\n const repoMethod = this.serverRepository.add({\n definition: streamMethodDefinition,\n streamCallbacks: callbacks,\n protocolState: {},\n });\n this.protocol.server.createStream(repoMethod)\n .then(() => {\n let streamUserObject;\n if (existingStream) {\n streamUserObject = existingStream;\n existingStream.updateRepoMethod(repoMethod);\n }\n else {\n streamUserObject = new ServerStream(this.protocol, repoMethod, this);\n }\n repoMethod.stream = streamUserObject;\n resolve(streamUserObject);\n })\n .catch((err) => {\n if (repoMethod.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n reject(err);\n });\n });\n return promisify(promise, successCallback, errorCallback);\n }\n register(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallbackFunction = async (context, resultCallback) => {\n try {\n const result = callback(context.args, context.instance);\n if (result && typeof result.then === \"function\") {\n const resultValue = await result;\n resultCallback(undefined, resultValue);\n }\n else {\n resultCallback(undefined, result);\n }\n }\n catch (e) {\n resultCallback(e ?? \"\", e ?? \"\");\n }\n };\n wrappedCallbackFunction.userCallback = callback;\n return this.registerCore(methodDefinition, wrappedCallbackFunction);\n }\n registerAsync(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallback = async (context, resultCallback) => {\n try {\n let resultCalled = false;\n const success = (result) => {\n if (!resultCalled) {\n resultCallback(undefined, result);\n }\n resultCalled = true;\n };\n const error = (e) => {\n if (!resultCalled) {\n if (!e) {\n e = \"\";\n }\n resultCallback(e, e);\n }\n resultCalled = true;\n };\n const methodResult = callback(context.args, context.instance, success, error);\n if (methodResult && typeof methodResult.then === \"function\") {\n methodResult\n .then(success)\n .catch(error);\n }\n }\n catch (e) {\n resultCallback(e, undefined);\n }\n };\n wrappedCallback.userCallbackAsync = callback;\n return this.registerCore(methodDefinition, wrappedCallback);\n }\n async unregister(methodFilter, forStream = false) {\n if (methodFilter === undefined) {\n return Promise.reject(\"Please, provide either a unique string for a name or an object containing a “name” property.\");\n }\n if (typeof methodFilter === \"function\") {\n await this.unregisterWithPredicate(methodFilter, forStream);\n return;\n }\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = methodFilter;\n }\n if (methodDefinition.name === undefined) {\n return Promise.reject(\"Method name is required. Cannot find a method if the method name is undefined!\");\n }\n const methodToBeRemoved = this.serverRepository.getList().find((serverMethod) => {\n return serverMethod.definition.name === methodDefinition.name\n && (serverMethod.definition.supportsStreaming || false) === forStream;\n });\n if (!methodToBeRemoved) {\n return Promise.reject(`Method with a name \"${methodDefinition.name}\" does not exist or is not registered by your application!`);\n }\n await this.removeMethodsOrStreams([methodToBeRemoved]);\n }\n async unregisterWithPredicate(filterPredicate, forStream) {\n const methodsOrStreamsToRemove = this.serverRepository.getList()\n .filter((sm) => filterPredicate(sm.definition))\n .filter((serverMethod) => (serverMethod.definition.supportsStreaming || false) === forStream);\n if (!methodsOrStreamsToRemove || methodsOrStreamsToRemove.length === 0) {\n return Promise.reject(`Could not find a ${forStream ? \"stream\" : \"method\"} matching the specified condition!`);\n }\n await this.removeMethodsOrStreams(methodsOrStreamsToRemove);\n }\n removeMethodsOrStreams(methodsToRemove) {\n const methodUnregPromises = [];\n methodsToRemove.forEach((method) => {\n const promise = this.protocol.server.unregister(method)\n .then(() => {\n if (method.repoId) {\n this.serverRepository.remove(method.repoId);\n }\n });\n methodUnregPromises.push(promise);\n this.addAsCurrentlyUnregistering(method.definition.name, promise);\n });\n return Promise.all(methodUnregPromises);\n }\n async addAsCurrentlyUnregistering(methodName, promise) {\n const timeout = new Promise((resolve) => setTimeout(resolve, 5000));\n this.currentlyUnregistering[methodName] = Promise.race([promise, timeout]).then(() => {\n delete this.currentlyUnregistering[methodName];\n });\n }\n async registerCore(method, theFunction) {\n let methodDefinition;\n if (typeof method === \"string\") {\n methodDefinition = { name: \"\" + method };\n }\n else {\n methodDefinition = { ...method };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Please, provide a (unique) string value for the “name” property in the “methodDefinition” object: ${JSON.stringify(method)}`);\n }\n const unregisterInProgress = this.currentlyUnregistering[methodDefinition.name];\n if (typeof unregisterInProgress !== \"undefined\") {\n await unregisterInProgress;\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === methodDefinition.name);\n if (nameAlreadyExists) {\n return Promise.reject(`A method with the name \"${methodDefinition.name}\" already exists! Please, provide a unique name for the method.`);\n }\n if (methodDefinition.supportsStreaming) {\n return Promise.reject(`When you create methods with “glue.interop.register()” or “glue.interop.registerAsync()” the property “supportsStreaming” cannot be “true”. If you want “${methodDefinition.name}” to be a stream, please use the “glue.interop.createStream()” method.`);\n }\n const repoMethod = this.serverRepository.add({\n definition: methodDefinition,\n theFunction,\n protocolState: {},\n });\n return this.protocol.server.register(repoMethod)\n .catch((err) => {\n if (repoMethod?.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n throw err;\n });\n }\n onMethodInvoked(methodToExecute, invocationId, invocationArgs) {\n if (!methodToExecute || !methodToExecute.theFunction) {\n return;\n }\n methodToExecute.theFunction(invocationArgs, (err, result) => {\n if (err !== undefined && err !== null) {\n if (err.message && typeof err.message === \"string\") {\n err = err.message;\n }\n else if (typeof err !== \"string\") {\n try {\n err = JSON.stringify(err);\n }\n catch (unStrException) {\n err = `un-stringifyable error in onMethodInvoked! Top level prop names: ${Object.keys(err)}`;\n }\n }\n }\n if (!result) {\n result = {};\n }\n else if (typeof result !== \"object\" || Array.isArray(result)) {\n result = { _value: result };\n }\n this.protocol.server.methodInvocationResult(methodToExecute, invocationId, err, result);\n });\n }\n}\n\nclass InstanceWrapper {\n wrapped = {};\n constructor(API, instance, connection) {\n this.wrapped.getMethods = function () {\n return API.methodsForInstance(this);\n };\n this.wrapped.getStreams = function () {\n return API.methodsForInstance(this).filter((m) => m.supportsStreaming);\n };\n if (instance) {\n this.refreshWrappedObject(instance);\n }\n if (connection) {\n connection.loggedIn(() => {\n this.refresh(connection);\n });\n this.refresh(connection);\n }\n }\n unwrap() {\n return this.wrapped;\n }\n refresh(connection) {\n if (!connection) {\n return;\n }\n const resolvedIdentity = connection?.resolvedIdentity;\n const instance = Object.assign({}, resolvedIdentity ?? {}, { peerId: connection?.peerId });\n this.refreshWrappedObject(instance);\n }\n refreshWrappedObject(resolvedIdentity) {\n Object.keys(resolvedIdentity).forEach((key) => {\n this.wrapped[key] = resolvedIdentity[key];\n });\n this.wrapped.user = resolvedIdentity.user;\n this.wrapped.instance = resolvedIdentity.instance;\n this.wrapped.application = resolvedIdentity.application ?? nanoid(10);\n this.wrapped.applicationName = resolvedIdentity.applicationName;\n this.wrapped.pid = resolvedIdentity.pid ?? resolvedIdentity.process ?? Math.floor(Math.random() * 10000000000);\n this.wrapped.machine = resolvedIdentity.machine;\n this.wrapped.environment = resolvedIdentity.environment;\n this.wrapped.region = resolvedIdentity.region;\n this.wrapped.windowId = resolvedIdentity.windowId;\n this.wrapped.isLocal = resolvedIdentity.isLocal ?? true;\n this.wrapped.api = resolvedIdentity.api;\n this.wrapped.service = resolvedIdentity.service;\n this.wrapped.peerId = resolvedIdentity.peerId;\n }\n}\n\nconst hideMethodSystemFlags = (method) => {\n return {\n ...method,\n flags: method.flags.metadata || {}\n };\n};\nclass ClientRepository {\n logger;\n API;\n servers = {};\n myServer;\n methodsCount = {};\n callbacks = CallbackRegistryFactory();\n constructor(logger, API) {\n this.logger = logger;\n this.API = API;\n const peerId = this.API.instance.peerId;\n this.myServer = {\n id: peerId,\n methods: {},\n instance: this.API.instance,\n wrapper: this.API.unwrappedInstance,\n };\n this.servers[peerId] = this.myServer;\n }\n addServer(info, serverId) {\n this.logger.debug(`adding server ${serverId}`);\n const current = this.servers[serverId];\n if (current) {\n return current.id;\n }\n const wrapper = new InstanceWrapper(this.API, info);\n const serverEntry = {\n id: serverId,\n methods: {},\n instance: wrapper.unwrap(),\n wrapper,\n };\n this.servers[serverId] = serverEntry;\n this.callbacks.execute(\"onServerAdded\", serverEntry.instance);\n return serverId;\n }\n removeServerById(id, reason) {\n const server = this.servers[id];\n if (!server) {\n this.logger.warn(`not aware of server ${id}, my state ${JSON.stringify(Object.keys(this.servers))}`);\n return;\n }\n else {\n this.logger.debug(`removing server ${id}`);\n }\n Object.keys(server.methods).forEach((methodId) => {\n this.removeServerMethod(id, methodId);\n });\n delete this.servers[id];\n this.callbacks.execute(\"onServerRemoved\", server.instance, reason);\n }\n addServerMethod(serverId, method) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n if (server.methods[method.id]) {\n return;\n }\n const identifier = this.createMethodIdentifier(method);\n const that = this;\n const methodDefinition = {\n identifier,\n gatewayId: method.id,\n name: method.name,\n displayName: method.display_name,\n description: method.description,\n version: method.version,\n objectTypes: method.object_types || [],\n accepts: method.input_signature,\n returns: method.result_signature,\n supportsStreaming: typeof method.flags !== \"undefined\" ? method.flags.streaming : false,\n flags: method.flags ?? {},\n getServers: () => {\n return that.getServersByMethod(identifier);\n }\n };\n methodDefinition.object_types = methodDefinition.objectTypes;\n methodDefinition.display_name = methodDefinition.displayName;\n methodDefinition.version = methodDefinition.version;\n server.methods[method.id] = methodDefinition;\n const clientMethodDefinition = hideMethodSystemFlags(methodDefinition);\n if (!this.methodsCount[identifier]) {\n this.methodsCount[identifier] = 0;\n this.callbacks.execute(\"onMethodAdded\", clientMethodDefinition);\n }\n this.methodsCount[identifier] = this.methodsCount[identifier] + 1;\n this.callbacks.execute(\"onServerMethodAdded\", server.instance, clientMethodDefinition);\n return methodDefinition;\n }\n removeServerMethod(serverId, methodId) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n const method = server.methods[methodId];\n delete server.methods[methodId];\n const clientMethodDefinition = hideMethodSystemFlags(method);\n this.methodsCount[method.identifier] = this.methodsCount[method.identifier] - 1;\n if (this.methodsCount[method.identifier] === 0) {\n this.callbacks.execute(\"onMethodRemoved\", clientMethodDefinition);\n }\n this.callbacks.execute(\"onServerMethodRemoved\", server.instance, clientMethodDefinition);\n }\n getMethods() {\n return this.extractMethodsFromServers(Object.values(this.servers)).map(hideMethodSystemFlags);\n }\n getServers() {\n return Object.values(this.servers).map(this.hideServerMethodSystemFlags);\n }\n onServerAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerAdded\", callback);\n const serversWithMethodsToReplay = this.getServers().map((s) => s.instance);\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, serversWithMethodsToReplay, callback);\n }\n onMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodAdded\", callback);\n const methodsToReplay = this.getMethods();\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, methodsToReplay, callback);\n }\n onServerMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodAdded\", callback);\n let unsubCalled = false;\n const servers = this.getServers();\n setTimeout(() => {\n servers.forEach((server) => {\n const methods = server.methods;\n Object.keys(methods).forEach((methodId) => {\n if (!unsubCalled) {\n callback(server.instance, methods[methodId]);\n }\n });\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n onMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n getServerById(id) {\n const server = this.servers[id];\n if (!server) {\n return undefined;\n }\n return this.hideServerMethodSystemFlags(this.servers[id]);\n }\n reset() {\n Object.keys(this.servers).forEach((key) => {\n this.removeServerById(key, \"reset\");\n });\n this.servers = {\n [this.myServer.id]: this.myServer\n };\n this.methodsCount = {};\n }\n createMethodIdentifier(methodInfo) {\n const accepts = methodInfo.input_signature ?? \"\";\n const returns = methodInfo.result_signature ?? \"\";\n return (methodInfo.name + accepts + returns).toLowerCase();\n }\n getServersByMethod(identifier) {\n const allServers = [];\n Object.values(this.servers).forEach((server) => {\n Object.values(server.methods).forEach((method) => {\n if (method.identifier === identifier) {\n allServers.push(server.instance);\n }\n });\n });\n return allServers;\n }\n returnUnsubWithDelayedReplay(unsubscribeFunc, collectionToReplay, callback) {\n let unsubCalled = false;\n setTimeout(() => {\n collectionToReplay.forEach((item) => {\n if (!unsubCalled) {\n callback(item);\n }\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n hideServerMethodSystemFlags(server) {\n const clientMethods = {};\n Object.entries(server.methods).forEach(([name, method]) => {\n clientMethods[name] = hideMethodSystemFlags(method);\n });\n return {\n ...server,\n methods: clientMethods\n };\n }\n extractMethodsFromServers(servers) {\n const methods = Object.values(servers).reduce((clientMethods, server) => {\n return [...clientMethods, ...Object.values(server.methods)];\n }, []);\n return methods;\n }\n}\n\nclass ServerRepository {\n nextId = 0;\n methods = [];\n add(method) {\n method.repoId = String(this.nextId);\n this.nextId += 1;\n this.methods.push(method);\n return method;\n }\n remove(repoId) {\n if (typeof repoId !== \"string\") {\n return new TypeError(\"Expecting a string\");\n }\n this.methods = this.methods.filter((m) => {\n return m.repoId !== repoId;\n });\n }\n getById(id) {\n if (typeof id !== \"string\") {\n return undefined;\n }\n return this.methods.find((m) => {\n return m.repoId === id;\n });\n }\n getList() {\n return this.methods.map((m) => m);\n }\n length() {\n return this.methods.length;\n }\n reset() {\n this.methods = [];\n }\n}\n\nconst SUBSCRIPTION_REQUEST = \"onSubscriptionRequest\";\nconst SUBSCRIPTION_ADDED = \"onSubscriptionAdded\";\nconst SUBSCRIPTION_REMOVED = \"onSubscriptionRemoved\";\nclass ServerStreaming {\n session;\n repository;\n serverRepository;\n logger;\n ERR_URI_SUBSCRIPTION_FAILED = \"com.tick42.agm.errors.subscription.failure\";\n callbacks = CallbackRegistryFactory();\n nextStreamId = 0;\n constructor(session, repository, serverRepository, logger) {\n this.session = session;\n this.repository = repository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n session.on(\"add-interest\", (msg) => {\n this.handleAddInterest(msg);\n });\n session.on(\"remove-interest\", (msg) => {\n this.handleRemoveInterest(msg);\n });\n }\n acceptRequestOnBranch(requestContext, streamingMethod, branch) {\n if (typeof branch !== \"string\") {\n branch = \"\";\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n throw new TypeError(\"The streaming method is missing its subscriptions.\");\n }\n if (!Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n throw new TypeError(\"The streaming method is missing its branches.\");\n }\n const streamId = this.getStreamId(streamingMethod, branch);\n const key = requestContext.msg.subscription_id;\n const subscription = {\n id: key,\n arguments: requestContext.arguments,\n instance: requestContext.instance,\n branchKey: branch,\n streamId,\n subscribeMsg: requestContext.msg,\n };\n streamingMethod.protocolState.subscriptionsMap[key] = subscription;\n this.session.sendFireAndForget({\n type: \"accepted\",\n subscription_id: key,\n stream_id: streamId,\n }).catch((err) => {\n this.logger.warn(`Failed to send accepted message for subscription ${key}: ${JSON.stringify(err)}`);\n });\n this.callbacks.execute(SUBSCRIPTION_ADDED, subscription, streamingMethod);\n }\n rejectRequest(requestContext, streamingMethod, reason) {\n if (typeof reason !== \"string\") {\n reason = \"\";\n }\n this.sendSubscriptionFailed(\"Subscription rejected by user. \" + reason, requestContext.msg.subscription_id);\n }\n pushData(streamingMethod, data, branches) {\n if (typeof streamingMethod !== \"object\" || !Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n return;\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n if (typeof branches === \"string\") {\n branches = [branches];\n }\n else if (!Array.isArray(branches) || branches.length <= 0) {\n branches = [];\n }\n const streamIdList = streamingMethod.protocolState.branchKeyToStreamIdMap\n .filter((br) => {\n if (!branches || branches.length === 0) {\n return true;\n }\n return branches.indexOf(br.key) >= 0;\n }).map((br) => {\n return br.streamId;\n });\n streamIdList.forEach((streamId) => {\n const publishMessage = {\n type: \"publish\",\n stream_id: streamId,\n data,\n };\n this.session.sendFireAndForget(publishMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send publish message for stream ${streamId}: ${JSON.stringify(err)}`);\n });\n });\n }\n pushDataToSingle(method, subscription, data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n const postMessage = {\n type: \"post\",\n subscription_id: subscription.id,\n data,\n };\n this.session.sendFireAndForget(postMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send post message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n }\n closeSingleSubscription(streamingMethod, subscription) {\n if (streamingMethod.protocolState.subscriptionsMap) {\n delete streamingMethod.protocolState.subscriptionsMap[subscription.id];\n }\n const dropSubscriptionMessage = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping a single subscription\",\n };\n this.session.sendFireAndForget(dropSubscriptionMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send drop-subscription message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n subscription.instance;\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n closeMultipleSubscriptions(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\" || typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n let subscriptionsToClose = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey === \"string\") {\n subscriptionsToClose = subscriptionsToClose.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n subscriptionsToClose.forEach((subscription) => {\n delete subscriptionsMap[subscription.id];\n const drop = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping all subscriptions on stream_id: \" + subscription.streamId,\n };\n this.session.sendFireAndForget(drop)\n .catch((err) => {\n this.logger.warn(`Failed to send drop-subscription message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n });\n }\n getSubscriptionList(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n let subscriptions = [];\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey !== \"string\") {\n subscriptions = allSubscriptions;\n }\n else {\n subscriptions = allSubscriptions.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n return subscriptions;\n }\n getBranchList(streamingMethod) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n const result = [];\n allSubscriptions.forEach((sub) => {\n let branch = \"\";\n if (typeof sub === \"object\" && typeof sub.branchKey === \"string\") {\n branch = sub.branchKey;\n }\n if (result.indexOf(branch) === -1) {\n result.push(branch);\n }\n });\n return result;\n }\n onSubAdded(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_ADDED, callback);\n }\n onSubRequest(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REQUEST, callback);\n }\n onSubRemoved(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REMOVED, callback);\n }\n handleRemoveInterest(msg) {\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (typeof msg.subscription_id !== \"string\" ||\n typeof streamingMethod !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap[msg.subscription_id] !== \"object\") {\n return;\n }\n const subscription = streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n delete streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n onSubscriptionLifetimeEvent(eventName, handlerFunc) {\n this.callbacks.add(eventName, handlerFunc);\n }\n getNextStreamId() {\n return this.nextStreamId++ + \"\";\n }\n handleAddInterest(msg) {\n const caller = this.repository.getServerById(msg.caller_id);\n const instance = caller?.instance ?? {};\n const requestContext = {\n msg,\n arguments: msg.arguments_kv || {},\n instance,\n };\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (streamingMethod === undefined) {\n const errorMsg = \"No method with id \" + msg.method_id + \" on this server.\";\n this.sendSubscriptionFailed(errorMsg, msg.subscription_id);\n return;\n }\n if (streamingMethod.protocolState.subscriptionsMap &&\n streamingMethod.protocolState.subscriptionsMap[msg.subscription_id]) {\n this.sendSubscriptionFailed(\"A subscription with id \" + msg.subscription_id + \" already exists.\", msg.subscription_id);\n return;\n }\n this.callbacks.execute(SUBSCRIPTION_REQUEST, requestContext, streamingMethod);\n }\n sendSubscriptionFailed(reason, subscriptionId) {\n const errorMessage = {\n type: \"error\",\n reason_uri: this.ERR_URI_SUBSCRIPTION_FAILED,\n reason,\n request_id: subscriptionId,\n };\n this.session.sendFireAndForget(errorMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send subscription failed message for subscription ${subscriptionId}: ${JSON.stringify(err)}`);\n });\n }\n getStreamId(streamingMethod, branchKey) {\n if (typeof branchKey !== \"string\") {\n branchKey = \"\";\n }\n if (!streamingMethod.protocolState.branchKeyToStreamIdMap) {\n throw new Error(`streaming ${streamingMethod.definition.name} method without protocol state`);\n }\n const needleBranch = streamingMethod.protocolState.branchKeyToStreamIdMap.filter((branch) => {\n return branch.key === branchKey;\n })[0];\n let streamId = (needleBranch ? needleBranch.streamId : undefined);\n if (typeof streamId !== \"string\" || streamId === \"\") {\n streamId = this.getNextStreamId();\n streamingMethod.protocolState.branchKeyToStreamIdMap.push({ key: branchKey, streamId });\n }\n return streamId;\n }\n}\n\nclass ServerProtocol {\n session;\n clientRepository;\n serverRepository;\n logger;\n callbacks = CallbackRegistryFactory();\n streaming;\n constructor(session, clientRepository, serverRepository, logger) {\n this.session = session;\n this.clientRepository = clientRepository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n this.streaming = new ServerStreaming(session, clientRepository, serverRepository, logger.subLogger(\"streaming\"));\n this.session.on(\"invoke\", (msg) => this.handleInvokeMessage(msg));\n }\n createStream(repoMethod) {\n repoMethod.protocolState.subscriptionsMap = {};\n repoMethod.protocolState.branchKeyToStreamIdMap = [];\n return this.register(repoMethod, true);\n }\n register(repoMethod, isStreaming) {\n const methodDef = repoMethod.definition;\n const flags = Object.assign({}, { metadata: methodDef.flags ?? {} }, { streaming: isStreaming || false });\n const registerMsg = {\n type: \"register\",\n methods: [{\n id: repoMethod.repoId,\n name: methodDef.name,\n display_name: methodDef.displayName,\n description: methodDef.description,\n version: methodDef.version,\n flags,\n object_types: methodDef.objectTypes || methodDef.object_types,\n input_signature: methodDef.accepts,\n result_signature: methodDef.returns,\n restrictions: undefined,\n }],\n };\n return this.session.send(registerMsg, { methodId: repoMethod.repoId })\n .then(() => {\n this.logger.debug(\"registered method \" + repoMethod.definition.name + \" with id \" + repoMethod.repoId);\n })\n .catch((msg) => {\n this.logger.warn(`failed to register method ${repoMethod.definition.name} with id ${repoMethod.repoId} - ${JSON.stringify(msg)}`);\n throw msg;\n });\n }\n onInvoked(callback) {\n this.callbacks.add(\"onInvoked\", callback);\n }\n methodInvocationResult(method, invocationId, err, result) {\n let msg;\n if (err || err === \"\") {\n msg = {\n type: \"error\",\n request_id: invocationId,\n reason_uri: \"agm.errors.client_error\",\n reason: err,\n context: result,\n peer_id: undefined,\n };\n }\n else {\n msg = {\n type: \"yield\",\n invocation_id: invocationId,\n peer_id: this.session.peerId,\n result,\n request_id: undefined,\n };\n }\n this.session.sendFireAndForget(msg)\n .catch((error => {\n this.logger.warn(`Failed to send method invocation result for method ${method.definition.name} invocation ${invocationId} - ${JSON.stringify(error)}`);\n }));\n }\n async unregister(method) {\n const msg = {\n type: \"unregister\",\n methods: [method.repoId],\n };\n await this.session.send(msg);\n }\n getBranchList(method) {\n return this.streaming.getBranchList(method);\n }\n getSubscriptionList(method, branchKey) {\n return this.streaming.getSubscriptionList(method, branchKey);\n }\n closeAllSubscriptions(method, branchKey) {\n this.streaming.closeMultipleSubscriptions(method, branchKey);\n }\n pushData(method, data, branches) {\n this.streaming.pushData(method, data, branches);\n }\n pushDataToSingle(method, subscription, data) {\n this.streaming.pushDataToSingle(method, subscription, data);\n }\n closeSingleSubscription(method, subscription) {\n this.streaming.closeSingleSubscription(method, subscription);\n }\n acceptRequestOnBranch(requestContext, method, branch) {\n this.streaming.acceptRequestOnBranch(requestContext, method, branch);\n }\n rejectRequest(requestContext, method, reason) {\n this.streaming.rejectRequest(requestContext, method, reason);\n }\n onSubRequest(callback) {\n this.streaming.onSubRequest(callback);\n }\n onSubAdded(callback) {\n this.streaming.onSubAdded(callback);\n }\n onSubRemoved(callback) {\n this.streaming.onSubRemoved(callback);\n }\n handleInvokeMessage(msg) {\n const invocationId = msg.invocation_id;\n const callerId = msg.caller_id;\n const methodId = msg.method_id;\n const args = msg.arguments_kv;\n const methodList = this.serverRepository.getList();\n const method = methodList.filter((m) => {\n return m.repoId === methodId;\n })[0];\n if (method === undefined) {\n return;\n }\n const client = this.clientRepository.getServerById(callerId)?.instance;\n const invocationArgs = { args, instance: client };\n this.callbacks.execute(\"onInvoked\", method, invocationId, invocationArgs);\n }\n}\n\nclass UserSubscription {\n repository;\n subscriptionData;\n get requestArguments() {\n return this.subscriptionData.params.arguments || {};\n }\n get servers() {\n return this.subscriptionData.trackedServers.reduce((servers, pair) => {\n if (pair.subscriptionId) {\n const server = this.repository.getServerById(pair.serverId)?.instance;\n if (server) {\n servers.push(server);\n }\n }\n return servers;\n }, []);\n }\n get serverInstance() {\n return this.servers[0];\n }\n get stream() {\n return this.subscriptionData.method;\n }\n constructor(repository, subscriptionData) {\n this.repository = repository;\n this.subscriptionData = subscriptionData;\n }\n onData(dataCallback) {\n if (typeof dataCallback !== \"function\") {\n throw new TypeError(\"The data callback must be a function.\");\n }\n this.subscriptionData.handlers.onData.push(dataCallback);\n if (this.subscriptionData.handlers.onData.length === 1 && this.subscriptionData.queued.data.length > 0) {\n this.subscriptionData.queued.data.forEach((dataItem) => {\n dataCallback(dataItem);\n });\n }\n }\n onClosed(closedCallback) {\n if (typeof closedCallback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onClosed.push(closedCallback);\n }\n onFailed(callback) {\n }\n onConnected(callback) {\n if (typeof callback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onConnected.push(callback);\n }\n close() {\n this.subscriptionData.close();\n }\n setNewSubscription(newSub) {\n this.subscriptionData = newSub;\n }\n}\n\nclass TimedCache {\n config;\n cache = [];\n timeoutIds = [];\n constructor(config) {\n this.config = config;\n }\n add(element) {\n const id = nanoid(10);\n this.cache.push({ id, element });\n const timeoutId = setTimeout(() => {\n const elementIdx = this.cache.findIndex((entry) => entry.id === id);\n if (elementIdx < 0) {\n return;\n }\n this.cache.splice(elementIdx, 1);\n }, this.config.ELEMENT_TTL_MS);\n this.timeoutIds.push(timeoutId);\n }\n flush() {\n const elements = this.cache.map((entry) => entry.element);\n this.timeoutIds.forEach((id) => clearInterval(id));\n this.cache = [];\n this.timeoutIds = [];\n return elements;\n }\n}\n\nconst STATUS_AWAITING_ACCEPT = \"awaitingAccept\";\nconst STATUS_SUBSCRIBED = \"subscribed\";\nconst ERR_MSG_SUB_FAILED = \"Subscription failed.\";\nconst ERR_MSG_SUB_REJECTED = \"Subscription rejected.\";\nconst ON_CLOSE_MSG_SERVER_INIT = \"ServerInitiated\";\nconst ON_CLOSE_MSG_CLIENT_INIT = \"ClientInitiated\";\nclass ClientStreaming {\n session;\n repository;\n logger;\n subscriptionsList = {};\n timedCache = new TimedCache({ ELEMENT_TTL_MS: 10000 });\n subscriptionIdToLocalKeyMap = {};\n nextSubLocalKey = 0;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"subscribed\", this.handleSubscribed);\n session.on(\"event\", this.handleEventData);\n session.on(\"subscription-cancelled\", this.handleSubscriptionCancelled);\n }\n subscribe(streamingMethod, params, targetServers, success, error, existingSub) {\n if (targetServers.length === 0) {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" No available servers matched the target params.\",\n });\n return;\n }\n const subLocalKey = this.getNextSubscriptionLocalKey();\n const pendingSub = this.registerSubscription(subLocalKey, streamingMethod, params, success, error, params.methodResponseTimeout || 10000, existingSub);\n if (typeof pendingSub !== \"object\") {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Unable to register the user callbacks.\",\n });\n return;\n }\n targetServers.forEach((target) => {\n const serverId = target.server.id;\n const method = target.methods.find((m) => m.name === streamingMethod.name);\n if (!method) {\n this.logger.error(`can not find method ${streamingMethod.name} for target ${target.server.id}`);\n return;\n }\n pendingSub.trackedServers.push({\n serverId,\n subscriptionId: undefined,\n });\n const msg = {\n type: \"subscribe\",\n server_id: serverId,\n method_id: method.gatewayId,\n arguments_kv: params.arguments,\n };\n this.session.send(msg, { serverId, subLocalKey })\n .then((m) => this.handleSubscribed(m))\n .catch((err) => this.handleErrorSubscribing(err));\n });\n }\n drainSubscriptions() {\n const existing = Object.values(this.subscriptionsList);\n this.subscriptionsList = {};\n this.subscriptionIdToLocalKeyMap = {};\n return existing;\n }\n drainSubscriptionsCache() {\n return this.timedCache.flush();\n }\n getNextSubscriptionLocalKey() {\n const current = this.nextSubLocalKey;\n this.nextSubLocalKey += 1;\n return current;\n }\n registerSubscription(subLocalKey, method, params, success, error, timeout, existingSub) {\n const subsInfo = {\n localKey: subLocalKey,\n status: STATUS_AWAITING_ACCEPT,\n method,\n params,\n success,\n error,\n trackedServers: [],\n handlers: {\n onData: existingSub?.handlers.onData || [],\n onClosed: existingSub?.handlers.onClosed || [],\n onConnected: existingSub?.handlers.onConnected || [],\n },\n queued: {\n data: [],\n closers: [],\n },\n timeoutId: undefined,\n close: () => this.closeSubscription(subLocalKey),\n subscription: existingSub?.subscription\n };\n if (!existingSub) {\n if (params.onData) {\n subsInfo.handlers.onData.push(params.onData);\n }\n if (params.onClosed) {\n subsInfo.handlers.onClosed.push(params.onClosed);\n }\n if (params.onConnected) {\n subsInfo.handlers.onConnected.push(params.onConnected);\n }\n }\n this.subscriptionsList[subLocalKey] = subsInfo;\n subsInfo.timeoutId = setTimeout(() => {\n if (this.subscriptionsList[subLocalKey] === undefined) {\n return;\n }\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n error({\n method,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Subscription attempt timed out after \" + timeout + \" ms.\",\n });\n delete this.subscriptionsList[subLocalKey];\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED && pendingSub.trackedServers.length > 0) {\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return (typeof server.subscriptionId !== \"undefined\");\n });\n delete pendingSub.timeoutId;\n if (pendingSub.trackedServers.length <= 0) {\n this.callOnClosedHandlers(pendingSub);\n delete this.subscriptionsList[subLocalKey];\n }\n }\n }, timeout);\n return subsInfo;\n }\n handleErrorSubscribing = (errorResponse) => {\n const tag = errorResponse._tag;\n const subLocalKey = tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return server.serverId !== tag.serverId;\n });\n if (pendingSub.trackedServers.length <= 0) {\n clearTimeout(pendingSub.timeoutId);\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n const reason = (typeof errorResponse.reason === \"string\" && errorResponse.reason !== \"\") ?\n ' Publisher said \"' + errorResponse.reason + '\".' :\n \" No reason given.\";\n const callArgs = typeof pendingSub.params.arguments === \"object\" ?\n JSON.stringify(pendingSub.params.arguments) :\n \"{}\";\n pendingSub.error({\n message: ERR_MSG_SUB_REJECTED + reason + \" Called with:\" + callArgs,\n called_with: pendingSub.params.arguments,\n method: pendingSub.method,\n });\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED) {\n this.callOnClosedHandlers(pendingSub);\n }\n delete this.subscriptionsList[subLocalKey];\n }\n };\n handleSubscribed = (msg) => {\n const subLocalKey = msg._tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n const serverId = msg._tag.serverId;\n const acceptingServer = pendingSub.trackedServers\n .filter((server) => {\n return server.serverId === serverId;\n })[0];\n if (typeof acceptingServer !== \"object\") {\n return;\n }\n acceptingServer.subscriptionId = msg.subscription_id;\n this.subscriptionIdToLocalKeyMap[msg.subscription_id] = subLocalKey;\n const isFirstResponse = (pendingSub.status === STATUS_AWAITING_ACCEPT);\n pendingSub.status = STATUS_SUBSCRIBED;\n if (isFirstResponse) {\n let reconnect = false;\n let sub = pendingSub.subscription;\n if (sub) {\n sub.setNewSubscription(pendingSub);\n pendingSub.success(sub);\n reconnect = true;\n }\n else {\n sub = new UserSubscription(this.repository, pendingSub);\n pendingSub.subscription = sub;\n pendingSub.success(sub);\n }\n for (const handler of pendingSub.handlers.onConnected) {\n try {\n handler(sub.serverInstance, reconnect);\n }\n catch (e) {\n }\n }\n }\n };\n handleEventData = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const trackedServersFound = subscription.trackedServers.filter((s) => {\n return s.subscriptionId === msg.subscription_id;\n });\n if (trackedServersFound.length !== 1) {\n return;\n }\n const isPrivateData = msg.oob;\n const sendingServerId = trackedServersFound[0].serverId;\n const server = this.repository.getServerById(sendingServerId);\n const receivedStreamData = () => {\n return {\n data: msg.data,\n server: server?.instance ?? {},\n requestArguments: subscription.params.arguments,\n message: undefined,\n private: isPrivateData,\n };\n };\n const onDataHandlers = subscription.handlers.onData;\n const queuedData = subscription.queued.data;\n if (onDataHandlers.length > 0) {\n onDataHandlers.forEach((callback) => {\n if (typeof callback === \"function\") {\n callback(receivedStreamData());\n }\n });\n }\n else {\n queuedData.push(receivedStreamData());\n }\n };\n handleSubscriptionCancelled = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const expectedNewLength = subscription.trackedServers.length - 1;\n subscription.trackedServers = subscription.trackedServers.filter((server) => {\n if (server.subscriptionId === msg.subscription_id) {\n subscription.queued.closers.push(server.serverId);\n return false;\n }\n else {\n return true;\n }\n });\n if (subscription.trackedServers.length !== expectedNewLength) {\n return;\n }\n if (subscription.trackedServers.length <= 0) {\n this.timedCache.add(subscription);\n clearTimeout(subscription.timeoutId);\n this.callOnClosedHandlers(subscription);\n delete this.subscriptionsList[subLocalKey];\n }\n delete this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n };\n callOnClosedHandlers(subscription, reason) {\n const closersCount = subscription.queued.closers.length;\n const closingServerId = (closersCount > 0) ? subscription.queued.closers[closersCount - 1] : null;\n let closingServer;\n if (closingServerId !== undefined && typeof closingServerId === \"string\") {\n closingServer = this.repository.getServerById(closingServerId)?.instance ?? {};\n }\n subscription.handlers.onClosed.forEach((callback) => {\n if (typeof callback !== \"function\") {\n return;\n }\n callback({\n message: reason || ON_CLOSE_MSG_SERVER_INIT,\n requestArguments: subscription.params.arguments || {},\n server: closingServer,\n stream: subscription.method,\n });\n });\n }\n closeSubscription(subLocalKey) {\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n subscription.trackedServers.forEach((server) => {\n if (typeof server.subscriptionId === \"undefined\") {\n return;\n }\n subscription.queued.closers.push(server.serverId);\n this.session.sendFireAndForget({\n type: \"unsubscribe\",\n subscription_id: server.subscriptionId,\n reason_uri: \"\",\n reason: ON_CLOSE_MSG_CLIENT_INIT,\n }).catch((err) => {\n this.logger.warn(`Error sending unsubscribe for subscription id ${server.subscriptionId}: ${JSON.stringify(err)}`);\n });\n delete this.subscriptionIdToLocalKeyMap[server.subscriptionId];\n });\n subscription.trackedServers = [];\n this.callOnClosedHandlers(subscription, ON_CLOSE_MSG_CLIENT_INIT);\n delete this.subscriptionsList[subLocalKey];\n }\n}\n\nclass ClientProtocol {\n session;\n repository;\n logger;\n streaming;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"peer-added\", (msg) => this.handlePeerAdded(msg));\n session.on(\"peer-removed\", (msg) => this.handlePeerRemoved(msg));\n session.on(\"methods-added\", (msg) => this.handleMethodsAddedMessage(msg));\n session.on(\"methods-removed\", (msg) => this.handleMethodsRemovedMessage(msg));\n this.streaming = new ClientStreaming(session, repository, logger);\n }\n subscribe(stream, options, targetServers, success, error, existingSub) {\n this.streaming.subscribe(stream, options, targetServers, success, error, existingSub);\n }\n invoke(id, method, args, target) {\n const serverId = target.id;\n const methodId = method.gatewayId;\n const msg = {\n type: \"call\",\n server_id: serverId,\n method_id: methodId,\n arguments_kv: args,\n };\n return this.session.send(msg, { invocationId: id, serverId })\n .then((m) => this.handleResultMessage(m))\n .catch((err) => this.handleInvocationError(err));\n }\n drainSubscriptions() {\n return this.streaming.drainSubscriptions();\n }\n drainSubscriptionsCache() {\n return this.streaming.drainSubscriptionsCache();\n }\n handlePeerAdded(msg) {\n const newPeerId = msg.new_peer_id;\n const remoteId = msg.identity;\n const isLocal = msg.meta ? msg.meta.local : true;\n const pid = Number(remoteId.process);\n const serverInfo = {\n machine: remoteId.machine,\n pid: isNaN(pid) ? remoteId.process : pid,\n instance: remoteId.instance,\n application: remoteId.application,\n applicationName: remoteId.applicationName,\n environment: remoteId.environment,\n region: remoteId.region,\n user: remoteId.user,\n windowId: remoteId.windowId,\n peerId: newPeerId,\n api: remoteId.api,\n isLocal\n };\n this.repository.addServer(serverInfo, newPeerId);\n }\n handlePeerRemoved(msg) {\n const removedPeerId = msg.removed_id;\n const reason = msg.reason;\n this.repository.removeServerById(removedPeerId, reason);\n }\n handleMethodsAddedMessage(msg) {\n const serverId = msg.server_id;\n const methods = msg.methods;\n methods.forEach((method) => {\n this.repository.addServerMethod(serverId, method);\n });\n }\n handleMethodsRemovedMessage(msg) {\n const serverId = msg.server_id;\n const methodIdList = msg.methods;\n const server = this.repository.getServerById(serverId);\n if (server) {\n const serverMethodKeys = Object.keys(server.methods);\n serverMethodKeys.forEach((methodKey) => {\n const method = server.methods[methodKey];\n if (methodIdList.indexOf(method.gatewayId) > -1) {\n this.repository.removeServerMethod(serverId, methodKey);\n }\n });\n }\n }\n handleResultMessage(msg) {\n const invocationId = msg._tag.invocationId;\n const result = msg.result;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n return {\n invocationId,\n result,\n instance: server?.instance,\n status: InvokeStatus.Success,\n message: \"\"\n };\n }\n handleInvocationError(msg) {\n this.logger.debug(`handle invocation error ${JSON.stringify(msg)}`);\n if (\"_tag\" in msg) {\n const invocationId = msg._tag.invocationId;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n const message = msg.reason;\n const context = msg.context;\n return {\n invocationId,\n result: context,\n instance: server?.instance,\n status: InvokeStatus.Error,\n message\n };\n }\n else {\n return {\n invocationId: \"\",\n message: msg.message,\n status: InvokeStatus.Error,\n error: msg\n };\n }\n }\n}\n\nfunction gW3ProtocolFactory (instance, connection, clientRepository, serverRepository, libConfig, interop) {\n const logger = libConfig.logger.subLogger(\"gw3-protocol\");\n let resolveReadyPromise;\n const readyPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n const session = connection.domain(\"agm\", [\"subscribed\"]);\n const server = new ServerProtocol(session, clientRepository, serverRepository, logger.subLogger(\"server\"));\n const client = new ClientProtocol(session, clientRepository, logger.subLogger(\"client\"));\n async function handleReconnect() {\n logger.info(\"reconnected - will replay registered methods and subscriptions\");\n client.drainSubscriptionsCache().forEach((sub) => {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to soft-re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`soft-subscribing to method ${methodInfo.name} DONE`)).catch((error) => logger.warn(`subscribing to method ${methodInfo.name} failed: ${JSON.stringify(error)}}`));\n });\n const reconnectionPromises = [];\n const existingSubscriptions = client.drainSubscriptions();\n for (const sub of existingSubscriptions) {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n reconnectionPromises.push(interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`subscribing to method ${methodInfo.name} DONE`)));\n }\n const registeredMethods = serverRepository.getList();\n serverRepository.reset();\n for (const method of registeredMethods) {\n const def = method.definition;\n if (method.stream) {\n reconnectionPromises.push(interop.server.createStream(def, method.streamCallbacks, undefined, undefined, method.stream)\n .then(() => logger.info(`subscribing to method ${def.name} DONE`))\n .catch(() => logger.warn(`subscribing to method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallback) {\n reconnectionPromises.push(interop.register(def, method.theFunction.userCallback)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallbackAsync) {\n reconnectionPromises.push(interop.registerAsync(def, method.theFunction.userCallbackAsync)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n }\n await Promise.all(reconnectionPromises);\n logger.info(\"Interop is re-announced\");\n }\n function handleInitialJoin() {\n if (resolveReadyPromise) {\n resolveReadyPromise({\n client,\n server,\n });\n resolveReadyPromise = undefined;\n }\n }\n session.onJoined((reconnect) => {\n clientRepository.addServer(instance, connection.peerId);\n if (reconnect) {\n handleReconnect().then(() => connection.setLibReAnnounced({ name: \"interop\" })).catch((error) => logger.warn(`Error while re-announcing interop: ${JSON.stringify(error)}`));\n }\n else {\n handleInitialJoin();\n }\n });\n session.onLeft(() => {\n clientRepository.reset();\n });\n session.join();\n return readyPromise;\n}\n\nclass Interop {\n instance;\n readyPromise;\n client;\n server;\n unwrappedInstance;\n protocol;\n clientRepository;\n serverRepository;\n constructor(configuration) {\n if (typeof configuration === \"undefined\") {\n throw new Error(\"configuration is required\");\n }\n if (typeof configuration.connection === \"undefined\") {\n throw new Error(\"configuration.connections is required\");\n }\n const connection = configuration.connection;\n if (typeof configuration.methodResponseTimeout !== \"number\") {\n configuration.methodResponseTimeout = 30 * 1000;\n }\n if (typeof configuration.waitTimeoutMs !== \"number\") {\n configuration.waitTimeoutMs = 30 * 1000;\n }\n this.unwrappedInstance = new InstanceWrapper(this, undefined, connection);\n this.instance = this.unwrappedInstance.unwrap();\n this.clientRepository = new ClientRepository(configuration.logger.subLogger(\"cRep\"), this);\n this.serverRepository = new ServerRepository();\n let protocolPromise;\n if (connection.protocolVersion === 3) {\n protocolPromise = gW3ProtocolFactory(this.instance, connection, this.clientRepository, this.serverRepository, configuration, this);\n }\n else {\n throw new Error(`protocol ${connection.protocolVersion} not supported`);\n }\n this.readyPromise = protocolPromise.then((protocol) => {\n this.protocol = protocol;\n this.client = new Client(this.protocol, this.clientRepository, this.instance, configuration);\n this.server = new Server(this.protocol, this.serverRepository);\n return this;\n });\n }\n ready() {\n return this.readyPromise;\n }\n serverRemoved(callback) {\n return this.client.serverRemoved(callback);\n }\n serverAdded(callback) {\n return this.client.serverAdded(callback);\n }\n serverMethodRemoved(callback) {\n return this.client.serverMethodRemoved(callback);\n }\n serverMethodAdded(callback) {\n return this.client.serverMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.client.methodRemoved(callback);\n }\n methodAdded(callback) {\n return this.client.methodAdded(callback);\n }\n methodsForInstance(instance) {\n return this.client.methodsForInstance(instance);\n }\n methods(methodFilter) {\n return this.client.methods(methodFilter);\n }\n servers(methodFilter) {\n return this.client.servers(methodFilter);\n }\n subscribe(method, options, successCallback, errorCallback) {\n return this.client.subscribe(method, options, successCallback, errorCallback);\n }\n createStream(streamDef, callbacks, successCallback, errorCallback) {\n return this.server.createStream(streamDef, callbacks, successCallback, errorCallback);\n }\n unregister(methodFilter) {\n return this.server.unregister(methodFilter);\n }\n registerAsync(methodDefinition, callback) {\n return this.server.registerAsync(methodDefinition, callback);\n }\n register(methodDefinition, callback) {\n return this.server.register(methodDefinition, callback);\n }\n invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n return this.client.invoke(methodFilter, argumentObj, target, additionalOptions, success, error);\n }\n waitForMethod(name) {\n const pw = new PromiseWrapper();\n const unsubscribe = this.client.methodAdded((m) => {\n if (m.name === name) {\n unsubscribe();\n pw.resolve(m);\n }\n });\n return pw.promise;\n }\n}\n\nconst successMessages = [\"subscribed\", \"success\"];\nclass MessageBus {\n connection;\n logger;\n peerId;\n session;\n subscriptions;\n readyPromise;\n constructor(connection, logger) {\n this.connection = connection;\n this.logger = logger;\n this.peerId = connection.peerId;\n this.subscriptions = [];\n this.session = connection.domain(\"bus\", successMessages);\n this.readyPromise = this.session.join();\n this.readyPromise.then(() => {\n this.watchOnEvent();\n });\n }\n ready() {\n return this.readyPromise;\n }\n publish = (topic, data, options) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"publish\",\n topic,\n data,\n peer_id: this.peerId,\n routing_key: routingKey,\n target_identity: target\n });\n this.session.send(args)\n .catch((err) => {\n this.logger.error(`Failed to publish message to topic ${topic} with routing key ${routingKey} for ${JSON.stringify(target)}: ${JSON.stringify(err)}`);\n });\n };\n subscribe = (topic, callback, options) => {\n return new Promise((resolve, reject) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"subscribe\",\n topic,\n peer_id: this.peerId,\n routing_key: routingKey,\n source: target\n });\n this.session.send(args)\n .then((response) => {\n const { subscription_id } = response;\n this.subscriptions.push({ subscription_id, topic, callback, source: target });\n resolve({\n unsubscribe: () => {\n this.session.send({ type: \"unsubscribe\", subscription_id, peer_id: this.peerId })\n .then(() => {\n this.subscriptions = this.subscriptions.filter((s) => s.subscription_id !== subscription_id);\n }).catch((err) => {\n this.logger.warn(`Failed to send unsubscribe request for ${subscription_id}: ${JSON.stringify(err)}`);\n });\n return Promise.resolve();\n }\n });\n })\n .catch((error) => reject(error));\n });\n };\n watchOnEvent = () => {\n this.session.on(\"event\", (args) => {\n const { data, subscription_id } = args;\n const source = args[\"publisher-identity\"];\n const subscription = this.subscriptions.find((s) => s.subscription_id === subscription_id);\n if (subscription) {\n if (!subscription.source) {\n subscription.callback(data, subscription.topic, source);\n }\n else {\n if (this.keysMatch(subscription.source, source)) {\n subscription.callback(data, subscription.topic, source);\n }\n }\n }\n });\n };\n removeEmptyValues(obj) {\n const cleaned = {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] !== undefined && obj[key] !== null) {\n cleaned[key] = obj[key];\n }\n });\n return cleaned;\n }\n keysMatch(obj1, obj2) {\n const keysObj1 = Object.keys(obj1);\n let allMatch = true;\n keysObj1.forEach((key) => {\n if (obj1[key] !== obj2[key]) {\n allMatch = false;\n }\n });\n return allMatch;\n }\n}\n\nconst IOConnectCoreFactory = (userConfig, ext) => {\n const iodesktop = typeof window === \"object\" ? (window.iodesktop ?? window.glue42gd) : undefined;\n const preloadPromise = typeof window === \"object\" ? (window.gdPreloadPromise ?? Promise.resolve()) : Promise.resolve();\n const glueInitTimer = timer(\"glue\");\n userConfig = userConfig || {};\n ext = ext || {};\n const internalConfig = prepareConfig(userConfig, ext, iodesktop);\n let _connection;\n let _interop;\n let _logger;\n let _metrics;\n let _contexts;\n let _bus;\n let _allowTrace;\n const libs = {};\n function registerLib(name, inner, t) {\n _allowTrace = _logger.canPublish(\"trace\");\n if (_allowTrace) {\n _logger.trace(`registering ${name} module`);\n }\n const done = (e) => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (!_allowTrace) {\n return;\n }\n const traceMessage = e ?\n `${name} failed - ${e.message}` :\n `${name} is ready - ${t.endTime - t.startTime}`;\n _logger.trace(traceMessage);\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready()\n .then(() => {\n done();\n })\n .catch((e) => {\n const error = typeof e === \"string\" ? new Error(e) : e;\n done(error);\n });\n }\n else {\n done();\n }\n if (!Array.isArray(name)) {\n name = [name];\n }\n name.forEach((n) => {\n libs[n] = inner;\n IOConnectCoreFactory[n] = inner;\n });\n }\n function setupConnection() {\n const initTimer = timer(\"connection\");\n _connection = new Connection(internalConfig.connection, _logger.subLogger(\"connection\"));\n let authPromise = Promise.resolve(internalConfig.auth);\n if (internalConfig.connection && !internalConfig.auth) {\n if (iodesktop) {\n authPromise = iodesktop.getGWToken()\n .then((token) => {\n return {\n gatewayToken: token\n };\n });\n }\n else if (typeof window !== \"undefined\" && window?.glue42electron) {\n if (typeof window.glue42electron.gwToken === \"string\") {\n authPromise = Promise.resolve({\n gatewayToken: window.glue42electron.gwToken\n });\n }\n }\n else {\n authPromise = Promise.reject(\"You need to provide auth information\");\n }\n }\n return authPromise\n .then((authConfig) => {\n initTimer.mark(\"auth-promise-resolved\");\n let authRequest;\n if (Object.prototype.toString.call(authConfig) === \"[object Object]\") {\n authRequest = authConfig;\n }\n else {\n throw new Error(\"Invalid auth object - \" + JSON.stringify(authConfig));\n }\n return _connection.login(authRequest);\n })\n .then(() => {\n registerLib(\"connection\", _connection, initTimer);\n return internalConfig;\n })\n .catch((e) => {\n if (_connection) {\n _connection.logout();\n }\n throw e;\n });\n }\n function setupLogger() {\n const initTimer = timer(\"logger\");\n _logger = new Logger(`${internalConfig.connection.identity?.application}`, undefined, internalConfig.customLogger);\n _logger.consoleLevel(internalConfig.logger.console);\n _logger.publishLevel(internalConfig.logger.publish);\n if (_logger.canPublish(\"debug\")) {\n _logger.debug(\"initializing glue...\");\n }\n registerLib(\"logger\", _logger, initTimer);\n return Promise.resolve(undefined);\n }\n function setupMetrics() {\n const initTimer = timer(\"metrics\");\n const config = internalConfig.metrics;\n const metricsPublishingEnabledFunc = iodesktop?.getMetricsPublishingEnabled;\n const identity = internalConfig.connection.identity;\n const canUpdateMetric = metricsPublishingEnabledFunc ? metricsPublishingEnabledFunc : () => true;\n const disableAutoAppSystem = (typeof config !== \"boolean\" && config.disableAutoAppSystem) ?? false;\n _metrics = metrics({\n connection: config ? _connection : undefined,\n logger: _logger.subLogger(\"metrics\"),\n canUpdateMetric,\n system: \"Glue42\",\n service: identity?.service ?? iodesktop?.applicationName ?? internalConfig.application,\n instance: identity?.instance ?? identity?.windowId ?? nanoid(10),\n disableAutoAppSystem,\n pagePerformanceMetrics: typeof config !== \"boolean\" ? config?.pagePerformanceMetrics : undefined\n });\n registerLib(\"metrics\", _metrics, initTimer);\n return Promise.resolve();\n }\n function setupInterop() {\n const initTimer = timer(\"interop\");\n const agmConfig = {\n connection: _connection,\n logger: _logger.subLogger(\"interop\"),\n };\n _interop = new Interop(agmConfig);\n Logger.Interop = _interop;\n registerLib([\"interop\", \"agm\"], _interop, initTimer);\n return Promise.resolve();\n }\n function setupContexts() {\n const hasActivities = (internalConfig.activities && _connection.protocolVersion === 3);\n const needsContexts = internalConfig.contexts || hasActivities;\n if (needsContexts) {\n const initTimer = timer(\"contexts\");\n _contexts = new ContextsModule({\n connection: _connection,\n logger: _logger.subLogger(\"contexts\"),\n trackAllContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.trackAllContexts : false,\n reAnnounceKnownContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.reAnnounceKnownContexts : false,\n subscribeOnGet: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.subscribeOnGet : true,\n subscribeOnUpdate: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.subscribeOnUpdate : true,\n onlyReAnnounceSubscribedContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.onlyReAnnounceSubscribedContexts : true\n });\n registerLib(\"contexts\", _contexts, initTimer);\n }\n else {\n const replayer = _connection.replayer;\n if (replayer) {\n replayer.drain(ContextMessageReplaySpec.name);\n }\n }\n return Promise.resolve();\n }\n async function setupBus() {\n if (!internalConfig.bus) {\n return Promise.resolve();\n }\n const initTimer = timer(\"bus\");\n _bus = new MessageBus(_connection, _logger.subLogger(\"bus\"));\n registerLib(\"bus\", _bus, initTimer);\n return Promise.resolve();\n }\n function setupExternalLibs(externalLibs) {\n try {\n externalLibs.forEach((lib) => {\n setupExternalLib(lib.name, lib.create);\n });\n return Promise.resolve();\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n function setupExternalLib(name, createCallback) {\n const initTimer = timer(name);\n const lib = createCallback(libs);\n if (lib) {\n registerLib(name, lib, initTimer);\n }\n }\n function waitForLibs() {\n const libsReadyPromises = Object.keys(libs).map((key) => {\n const lib = libs[key];\n return lib.ready ?\n lib.ready() : Promise.resolve();\n });\n return Promise.all(libsReadyPromises);\n }\n function constructGlueObject() {\n const feedbackFunc = (feedbackInfo) => {\n if (!_interop) {\n return;\n }\n _interop.invoke(\"T42.ACS.Feedback\", feedbackInfo, \"best\");\n };\n const info = {\n coreVersion: version,\n version: internalConfig.version\n };\n glueInitTimer.stop();\n const glue = {\n feedback: feedbackFunc,\n info,\n logger: _logger,\n interop: _interop,\n agm: _interop,\n connection: _connection,\n metrics: _metrics,\n contexts: _contexts,\n bus: _bus,\n version: internalConfig.version,\n userConfig,\n done: () => {\n _logger?.info(\"done called by user...\");\n return _connection.logout();\n }\n };\n glue.performance = {\n get glueVer() {\n return internalConfig.version;\n },\n get glueConfig() {\n return JSON.stringify(userConfig);\n },\n get browser() {\n return window.performance.timing.toJSON();\n },\n get memory() {\n return window.performance.memory;\n },\n get initTimes() {\n const all = getAllTimers();\n return Object.keys(all).map((key) => {\n const t = all[key];\n return {\n name: key,\n duration: t.endTime - t.startTime,\n marks: t.marks,\n startTime: t.startTime,\n endTime: t.endTime\n };\n });\n }\n };\n Object.keys(libs).forEach((key) => {\n const lib = libs[key];\n glue[key] = lib;\n });\n glue.config = {};\n Object.keys(internalConfig).forEach((k) => {\n glue.config[k] = internalConfig[k];\n });\n if (ext && ext.extOptions) {\n Object.keys(ext.extOptions).forEach((k) => {\n glue.config[k] = ext?.extOptions[k];\n });\n }\n if (ext?.enrichGlue) {\n ext.enrichGlue(glue);\n }\n if (iodesktop && iodesktop.updatePerfData) {\n iodesktop.updatePerfData(glue.performance);\n }\n if (glue.agm) {\n const deprecatedDecorator = (fn, wrong, proper) => {\n return function () {\n glue.logger.warn(`glue.js - 'glue.agm.${wrong}' method is deprecated, use 'glue.interop.${proper}' instead.`);\n return fn.apply(glue.agm, arguments);\n };\n };\n const agmAny = glue.agm;\n agmAny.method_added = deprecatedDecorator(glue.agm.methodAdded, \"method_added\", \"methodAdded\");\n agmAny.method_removed = deprecatedDecorator(glue.agm.methodRemoved, \"method_removed\", \"methodRemoved\");\n agmAny.server_added = deprecatedDecorator(glue.agm.serverAdded, \"server_added\", \"serverAdded\");\n agmAny.server_method_aded = deprecatedDecorator(glue.agm.serverMethodAdded, \"server_method_aded\", \"serverMethodAdded\");\n agmAny.server_method_removed = deprecatedDecorator(glue.agm.serverMethodRemoved, \"server_method_removed\", \"serverMethodRemoved\");\n }\n return glue;\n }\n async function registerInstanceIfNeeded() {\n const RegisterInstanceMethodName = \"T42.ACS.RegisterInstance\";\n if (Utils.isNode() && typeof process.env._GD_STARTING_CONTEXT_ === \"undefined\" && typeof userConfig?.application !== \"undefined\") {\n const isMethodAvailable = _interop.methods({ name: RegisterInstanceMethodName }).length > 0;\n if (isMethodAvailable) {\n try {\n await _interop.invoke(RegisterInstanceMethodName, { appName: userConfig?.application, pid: process.pid });\n }\n catch (error) {\n const typedError = error;\n _logger.error(`Cannot register as an instance: ${JSON.stringify(typedError.message)}`);\n }\n }\n }\n }\n return preloadPromise\n .then(setupLogger)\n .then(setupConnection)\n .then(() => Promise.all([setupMetrics(), setupInterop(), setupContexts(), setupBus()]))\n .then(() => _interop.readyPromise)\n .then(() => registerInstanceIfNeeded())\n .then(() => {\n return setupExternalLibs(internalConfig.libs || []);\n })\n .then(waitForLibs)\n .then(constructGlueObject)\n .catch((err) => {\n return Promise.reject({\n err,\n libs\n });\n });\n};\nif (typeof window !== \"undefined\") {\n window.IOConnectCore = IOConnectCoreFactory;\n}\nIOConnectCoreFactory.version = version;\nIOConnectCoreFactory.default = IOConnectCoreFactory;\n\nexport { IOConnectCoreFactory as default };\n//# sourceMappingURL=core.es.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\n;\ncreateRegistry.default = createRegistry;\nmodule.exports = createRegistry;\n//# sourceMappingURL=index.js.map",null,null,null,"let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=application.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=system.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwimlaneItemType = exports.LayoutType = void 0;\nvar LayoutType;\n(function (LayoutType) {\n LayoutType[\"Global\"] = \"Global\";\n LayoutType[\"Activity\"] = \"Activity\";\n LayoutType[\"ApplicationDefault\"] = \"ApplicationDefault\";\n LayoutType[\"Swimlane\"] = \"Swimlane\";\n LayoutType[\"Workspaces\"] = \"Workspace\";\n})(LayoutType || (exports.LayoutType = LayoutType = {}));\nvar SwimlaneItemType;\n(function (SwimlaneItemType) {\n SwimlaneItemType[\"Tab\"] = \"tab\";\n SwimlaneItemType[\"Window\"] = \"window\";\n SwimlaneItemType[\"Canvas\"] = \"canvas\";\n})(SwimlaneItemType || (exports.SwimlaneItemType = SwimlaneItemType = {}));\n//# sourceMappingURL=layout.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swTheme.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swConfiguration.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// export { SchemaValidator } from \"./validator\";\n// export { FileProvider } from \"./fileProvider\";\n// export { SchemaProvider } from \"./provider\";\n__exportStar(require(\"./application\"), exports);\n__exportStar(require(\"./system\"), exports);\n__exportStar(require(\"./layout\"), exports);\n__exportStar(require(\"./swTheme\"), exports);\n__exportStar(require(\"./swConfiguration\"), exports);\n//# sourceMappingURL=main.js.map",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"const connectBrowserAppProps = [\"name\", \"title\", \"version\", \"customProperties\", \"icon\", \"caption\", \"type\"];\nconst fdc3v2AppProps = [\"appId\", \"name\", \"type\", \"details\", \"version\", \"title\", \"tooltip\", \"lang\", \"description\", \"categories\", \"icons\", \"screenshots\", \"contactEmail\", \"moreInfo\", \"publisher\", \"customConfig\", \"hostManifests\", \"interop\", \"localizedVersions\"];\n\n/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nDecoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nDecoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nDecoder.union;\r\n/** See `Decoder.intersection` */\r\nDecoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nDecoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nDecoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nDecoder.succeed;\r\n/** See `Decoder.fail` */\r\nDecoder.fail;\r\n/** See `Decoder.lazy` */\r\nDecoder.lazy;\n\nconst nonEmptyStringDecoder = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nconst nonNegativeNumberDecoder = number().where((num) => num >= 0, \"Expected a non-negative number\");\n\nconst intentDefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n displayName: optional(string()),\n contexts: optional(array(string())),\n customConfig: optional(object())\n});\nconst v2TypeDecoder = oneOf(constant(\"web\"), constant(\"native\"), constant(\"citrix\"), constant(\"onlineNative\"), constant(\"other\"));\nconst v2DetailsDecoder = object({\n url: nonEmptyStringDecoder\n});\nconst v2IconDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder)\n});\nconst v2ScreenshotDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder),\n label: optional(nonEmptyStringDecoder)\n});\nconst v2ListensForIntentDecoder = object({\n contexts: array(nonEmptyStringDecoder),\n displayName: optional(nonEmptyStringDecoder),\n resultType: optional(nonEmptyStringDecoder),\n customConfig: optional(anyJson())\n});\nconst v2IntentsDecoder = object({\n listensFor: optional(dict(v2ListensForIntentDecoder)),\n raises: optional(dict(array(nonEmptyStringDecoder)))\n});\nconst v2UserChannelDecoder = object({\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2AppChannelDecoder = object({\n name: nonEmptyStringDecoder,\n description: optional(nonEmptyStringDecoder),\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2InteropDecoder = object({\n intents: optional(v2IntentsDecoder),\n userChannels: optional(v2UserChannelDecoder),\n appChannels: optional(array(v2AppChannelDecoder))\n});\nconst glue42ApplicationDetailsDecoder = object({\n url: optional(nonEmptyStringDecoder),\n top: optional(number()),\n left: optional(number()),\n width: optional(nonNegativeNumberDecoder),\n height: optional(nonNegativeNumberDecoder)\n});\nconst glue42HostManifestsBrowserDecoder = object({\n name: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder.where((s) => s === \"window\", \"Expected a value of window\")),\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n customProperties: optional(anyJson()),\n icon: optional(string()),\n caption: optional(string()),\n details: optional(glue42ApplicationDetailsDecoder),\n intents: optional(array(intentDefinitionDecoder)),\n hidden: optional(boolean())\n});\nconst v1DefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n appId: nonEmptyStringDecoder,\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n manifest: nonEmptyStringDecoder,\n manifestType: nonEmptyStringDecoder,\n tooltip: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n images: optional(array(object({ url: optional(nonEmptyStringDecoder) }))),\n icons: optional(array(object({ icon: optional(nonEmptyStringDecoder) }))),\n customConfig: anyJson(),\n intents: optional(array(intentDefinitionDecoder))\n});\nconst v2LocalizedDefinitionDecoder = object({\n appId: optional(nonEmptyStringDecoder),\n name: optional(nonEmptyStringDecoder),\n details: optional(v2DetailsDecoder),\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder)\n});\nconst v2DefinitionDecoder = object({\n appId: nonEmptyStringDecoder,\n name: nonEmptyStringDecoder,\n type: v2TypeDecoder,\n details: v2DetailsDecoder,\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder),\n localizedVersions: optional(dict(v2LocalizedDefinitionDecoder))\n});\nconst allDefinitionsDecoder = oneOf(v1DefinitionDecoder, v2DefinitionDecoder);\n\nconst parseDecoderErrorToStringMessage = (error) => {\n return `${error.kind} at ${error.at}: ${JSON.stringify(error.input)}. Reason - ${error.message}`;\n};\n\nclass FDC3Service {\n fdc3ToDesktopDefinitionType = {\n web: \"window\",\n native: \"exe\",\n citrix: \"citrix\",\n onlineNative: \"clickonce\",\n other: \"window\"\n };\n toApi() {\n return {\n isFdc3Definition: this.isFdc3Definition.bind(this),\n parseToBrowserBaseAppData: this.parseToBrowserBaseAppData.bind(this),\n parseToDesktopAppConfig: this.parseToDesktopAppConfig.bind(this)\n };\n }\n isFdc3Definition(definition) {\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n return { isFdc3: false, reason: parseDecoderErrorToStringMessage(decodeRes.error) };\n }\n if (definition.appId && definition.details) {\n return { isFdc3: true, version: \"2.0\" };\n }\n if (definition.manifest) {\n return { isFdc3: true, version: \"1.2\" };\n }\n return { isFdc3: false, reason: \"The passed definition is not FDC3\" };\n }\n parseToBrowserBaseAppData(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n const userProperties = this.getUserPropertiesFromDefinition(definition, version);\n const createOptions = { url: this.getUrl(definition, version) };\n const baseApplicationData = {\n name: definition.appId,\n type: \"window\",\n createOptions,\n userProperties: {\n ...userProperties,\n intents: version === \"1.2\"\n ? userProperties.intents\n : this.getIntentsFromV2AppDefinition(definition),\n details: createOptions\n },\n title: definition.title,\n version: definition.version,\n icon: this.getIconFromDefinition(definition, version),\n caption: definition.description,\n fdc3: version === \"2.0\" ? { ...definition, definitionVersion: \"2.0\" } : undefined,\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return baseApplicationData;\n }\n const ioDefinitionDecodeRes = glue42HostManifestsBrowserDecoder.run(ioConnectDefinition);\n if (!ioDefinitionDecodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(ioDefinitionDecodeRes.error)}`);\n }\n if (!Object.keys(ioDefinitionDecodeRes.result).length) {\n return baseApplicationData;\n }\n return this.mergeBaseAppDataWithGlueManifest(baseApplicationData, ioDefinitionDecodeRes.result);\n }\n parseToDesktopAppConfig(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n if (version === \"1.2\") {\n const fdc3v1Definition = definition;\n return {\n name: fdc3v1Definition.appId,\n type: \"window\",\n details: {\n url: this.getUrl(definition, version)\n },\n version: fdc3v1Definition.version,\n title: fdc3v1Definition.title,\n tooltip: fdc3v1Definition.tooltip,\n caption: fdc3v1Definition.description,\n icon: fdc3v1Definition.icons?.[0].icon,\n intents: fdc3v1Definition.intents,\n customProperties: {\n manifestType: fdc3v1Definition.manifestType,\n images: fdc3v1Definition.images,\n contactEmail: fdc3v1Definition.contactEmail,\n supportEmail: fdc3v1Definition.supportEmail,\n publisher: fdc3v1Definition.publisher,\n icons: fdc3v1Definition.icons,\n customConfig: fdc3v1Definition.customConfig\n }\n };\n }\n const fdc3v2Definition = definition;\n const desktopDefinition = {\n name: fdc3v2Definition.appId,\n type: this.fdc3ToDesktopDefinitionType[fdc3v2Definition.type],\n details: fdc3v2Definition.details,\n version: fdc3v2Definition.version,\n title: fdc3v2Definition.title,\n tooltip: fdc3v2Definition.tooltip,\n caption: fdc3v2Definition.description,\n icon: this.getIconFromDefinition(fdc3v2Definition, \"2.0\"),\n intents: this.getIntentsFromV2AppDefinition(fdc3v2Definition),\n fdc3: { ...fdc3v2Definition, definitionVersion: \"2.0\" }\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return desktopDefinition;\n }\n if (typeof ioConnectDefinition !== \"object\" || Array.isArray(ioConnectDefinition)) {\n throw new Error(`Invalid '${definition.hostManifests.ioConnect ? \"hostManifests.ioConnect\" : \"hostManifests['Glue42']\"}' key`);\n }\n return this.mergeDesktopConfigWithGlueManifest(desktopDefinition, ioConnectDefinition);\n }\n getUserPropertiesFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key)));\n }\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key) && !fdc3v2AppProps.includes(key)));\n }\n getUrl(definition, version) {\n let url;\n if (version === \"1.2\") {\n const parsedManifest = JSON.parse(definition.manifest);\n url = parsedManifest.details?.url || parsedManifest.url;\n }\n else {\n url = definition.details?.url;\n }\n if (!url || typeof url !== \"string\") {\n throw new Error(`Invalid FDC3 ${version} definition. Provide valid 'url' under '${version === \"1.2\" ? \"manifest\" : \"details\"}' key`);\n }\n return url;\n }\n getIntentsFromV2AppDefinition(definition) {\n const fdc3Intents = definition.interop?.intents?.listensFor;\n if (!fdc3Intents) {\n return;\n }\n const intents = Object.entries(fdc3Intents).map((fdc3Intent) => {\n const [intentName, intentData] = fdc3Intent;\n return {\n name: intentName,\n ...intentData\n };\n });\n return intents;\n }\n getIconFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return definition.icons?.find((iconDef) => iconDef.icon)?.icon || undefined;\n }\n return definition.icons?.find((iconDef) => iconDef.src)?.src || undefined;\n }\n mergeBaseAppDataWithGlueManifest(baseAppData, hostManifestDefinition) {\n let baseApplicationDefinition = baseAppData;\n if (hostManifestDefinition.details) {\n const details = { ...baseAppData.createOptions, ...hostManifestDefinition.details };\n baseApplicationDefinition.createOptions = details;\n baseApplicationDefinition.userProperties.details = details;\n }\n if (Array.isArray(hostManifestDefinition.intents)) {\n baseApplicationDefinition.userProperties.intents = (baseApplicationDefinition.userProperties.intents || []).concat(hostManifestDefinition.intents);\n }\n baseApplicationDefinition = { ...baseApplicationDefinition, ...hostManifestDefinition };\n delete baseApplicationDefinition.details;\n delete baseApplicationDefinition.intents;\n return baseApplicationDefinition;\n }\n mergeDesktopConfigWithGlueManifest(config, desktopDefinition) {\n const appConfig = Object.assign({}, config, desktopDefinition, { details: { ...config.details, ...desktopDefinition.details } });\n if (Array.isArray(desktopDefinition.intents)) {\n appConfig.intents = (config.intents || []).concat(desktopDefinition.intents);\n }\n return appConfig;\n }\n}\n\nconst decoders$1 = {\n common: {\n nonEmptyStringDecoder,\n nonNegativeNumberDecoder\n },\n fdc3: {\n allDefinitionsDecoder,\n v1DefinitionDecoder,\n v2DefinitionDecoder\n }\n};\n\nvar INTENTS_ERRORS;\n(function (INTENTS_ERRORS) {\n INTENTS_ERRORS[\"USER_CANCELLED\"] = \"User Closed Intents Resolver UI without choosing a handler\";\n INTENTS_ERRORS[\"CALLER_NOT_DEFINED\"] = \"Caller Id is not defined\";\n INTENTS_ERRORS[\"TIMEOUT_HIT\"] = \"Timeout hit\";\n INTENTS_ERRORS[\"INTENT_NOT_FOUND\"] = \"Cannot find Intent\";\n INTENTS_ERRORS[\"HANDLER_NOT_FOUND\"] = \"Cannot find Intent Handler\";\n INTENTS_ERRORS[\"TARGET_INSTANCE_UNAVAILABLE\"] = \"Cannot start Target Instance\";\n INTENTS_ERRORS[\"INTENT_DELIVERY_FAILED\"] = \"Target Instance did not add a listener\";\n INTENTS_ERRORS[\"RESOLVER_UNAVAILABLE\"] = \"Intents Resolver UI unavailable\";\n INTENTS_ERRORS[\"RESOLVER_TIMEOUT\"] = \"User did not choose a handler\";\n INTENTS_ERRORS[\"INVALID_RESOLVER_RESPONSE\"] = \"Intents Resolver UI returned invalid response\";\n INTENTS_ERRORS[\"INTENT_HANDLER_REJECTION\"] = \"Intent Handler function processing the raised intent threw an error or rejected the promise it returned\";\n})(INTENTS_ERRORS || (INTENTS_ERRORS = {}));\n\nclass IoC {\n _fdc3;\n _decoders = decoders$1;\n _errors = {\n intents: INTENTS_ERRORS\n };\n get fdc3() {\n if (!this._fdc3) {\n this._fdc3 = new FDC3Service().toApi();\n }\n return this._fdc3;\n }\n get decoders() {\n return this._decoders;\n }\n get errors() {\n return this._errors;\n }\n}\n\nconst ioc = new IoC();\nconst fdc3 = ioc.fdc3;\nconst decoders = ioc.decoders;\nconst errors = ioc.errors;\n\nexport { decoders, errors, fdc3 };\n//# sourceMappingURL=utils.es.js.map\n",null,null,null,null,null,null,null,"export class PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n static async delayForever() {\n const biggestPossibleDelay = 2147483647;\n while (true) {\n await this.delay(biggestPossibleDelay);\n }\n }\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\nexport function callbackifyPromise(action, successCallback, errorCallback, logger, token) {\n const fail = (error) => {\n if (logger) {\n logger.error(`[${token}]`, error);\n }\n let msg = error;\n if (error instanceof Error) {\n msg = error.message;\n }\n if (typeof errorCallback === \"function\") {\n errorCallback(msg);\n return;\n }\n return PromiseWrapper.delay(0)\n .then(() => {\n throw error;\n });\n };\n return PromiseWrapper.delay(0)\n .then(action)\n .then((result) => {\n if (logger) {\n logger.info(`[${token}] successful`);\n }\n if (typeof successCallback === \"function\") {\n successCallback(result);\n }\n return result;\n })\n .catch((error) => {\n return fail(error);\n });\n}\nexport function nextTickPromise(action) {\n return new Promise((resolve, reject) => {\n process.nextTick(() => {\n try {\n resolve(action());\n }\n catch (e) {\n const error = e instanceof Error ? e : new Error(`${e}`);\n reject(error);\n }\n });\n });\n}\n//# sourceMappingURL=promise.js.map",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["MetricTypes","getMetricTypeByValue","metric","type","getTypeByValue","value","constructor","Date","serializeMetric","serializedMetrics","values","Object","keys","reduce","memo","key","innerType","composite","defineNestedComposite","description","context","name","normalizeMetricName","path","join","length","getMetricValueByType","now","publishNestedComposite","getTime","Boolean","toString","flatten","arr","flat","toFlatten","concat","Array","isArray","composeMsgForRootStateMetric","system","merged","root","getAggregateState","highestState","sort","a","b","state","aggregateDesc","msg","forEach","m","idx","slice","aggregateDescription","Helpers","definition","parent","transport","Error","BaseMetric","repo","this","id","push","createMetric","update","newValue","updateMetric","NumberMetric","super","incrementBy","num","increment","decrement","decrementBy","ObjectMetric","mergeValues","k","StringMetric","TimestampMetric","protocol","_transport","_name","_description","_repo","_parent","_path","_buildPath","shadowedSystem","_state","separator","_subSystems","_metrics","_getOrCreateMetric","metricObject","expectedType","metricDef","matching","filter","shadowedMetric","existing","catch","me","subSystems","metrics","subSystem","nameSystem","descriptionSystem","match","s","_system","getState","setState","stateDescription","updateSystem","stringMetric","timestampMetric","objectMetric","numberMetric","aggState","shadowedSubSystem","result","createSystem","Repository","options","init","addSystemMetrics","clickStream","undefined","rootSystem","useClickStream","navigator","userAgent","document","documentClickHandler","e","target","className","getAttribute","timestamp","tagName","toLowerCase","href","title","page","window","location","addEventListener","attachEvent","urlMetric","appNameMetric","startUrl","glue42gd","appName","NullProtocol","Promise","resolve","PerfTracker","api","lastCount","initialPublishTimeout","publishInterval","scheduleCollection","setTimeout","collect","setInterval","collectMemory","collectEntries","memory","performance","JSON","stringify","totalJSHeapSize","usedJSHeapSize","allEntries","getEntries","jsonfiedEntries","map","i","toJSON","connection","config","joinPromise","session","replayRepo","replaySystem","ss","async","createMetricsMsg","Description","Value","sendFireAndForget","err","logger","warn","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","send","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper$1","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","require","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","PromiseWrapper","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","wasOpen","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_connectionProtocolVersion","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","extContentAvailable","extContentConnecting","extContentConnected","parentWindowId","parentInExtMode","webNamespace","parentType","parentPingTimeout","connectionRequestTimeout","defaultTargetString","connectionAccepted","handle","handleConnectionAccepted","bind","connectionRejected","handleConnectionRejected","connectionRequest","handleConnectionRequest","parentPing","handleParentPing","platformPing","handlePlatformPing","platformReady","handlePlatformReady","clientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","origin","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","checkMessageTypeValid","messageType","signalClientDisappearing","clearInterval","source","handleAcceptanceOfMyRequest","processExtContentConnection","connectionProtocolVersion","applicationName","extData","glue42ExtInc","errorMsg","extMode","typeToValidate","requestConnectionPermissionFromExt","waitForContentScript","approved","content","findParent","connectionNotPossibleMsg","myInsideParents","getPossibleParentsInWindow","myOutsideParents","getPossibleParentsOutsideWindow","top","opener","uniqueParents","Set","confirmParent","from","currentWindow","current","targets","substring","AsyncSequelizer","minSequenceInterval","queue","isExecutingQueue","enqueue","executeQueue","operation","shift","actionResult","intervalBreak","res","domainSession","successMessages","errorMessages","_latestOptions","isJoined","tryReconnecting","_connectionOn","disconnected","requestsMap","requestId","trace","loggedIn","handleSuccessMessage","handleErrorMessage","sm","destination","wasReconnect","handleJoined","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","leave","onLeft","connected","Connection","protocolVersion","token","resolvedIdentity","availableDomains","gatewayToken","replayer","messageHandlers","ids","_connected","isTrace","_defaultTransport","_defaultAuth","_targetTransport","_targetAuth","_swapTransport","_switchInProgress","_transportSubscriptions","datePrefix","datePrefixLen","dateMinLen","datePrefixFirstChar","_sequelizer","_isLoggedIn","shouldTryLogin","pingTimer","sessions","globalDomain","initialLogin","initialLoginAttempts","loginConfig","loginRetryInProgress","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","find","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","attemptLoginWithRetry","msgObj","processStringMessage","processObjectMessage","msgType","unsub","ready","invocations","left","waitForInvocations","transportConfig","url","assign","auth","parse","startsWith","milliseconds","parseInt","isNaN","ex","oldToJson","username","password","authentication","setupAuthConfig","helloMsg","sessionId","sendOptions","maxRetries","welcomeMsg","tryAuthenticate","resolved_identity","available_domains","access_token","flowCallback","Buffer","getNewGWToken","method","flowName","provider","secret","providerContext","promises","all","getGWToken","order","Logger$1","Logger","subLoggers","_consoleLevel","_publishLevel","loggerFullName","includeTimeAndLevel","logFn","customLogFn","existingSub","publishLevel","level","consoleLevel","publishMessage","compareWith","loggerName","split","interop","Interop","methods","InteropMethodName","args","invoke","prefix","date","getHours","getMinutes","getSeconds","getMilliseconds","toPrint","GW_MESSAGE_CREATE_CONTEXT","GW_MESSAGE_ACTIVITY_CREATED","GW_MESSAGE_ACTIVITY_DESTROYED","GW_MESSAGE_CONTEXT_CREATED","GW_MESSAGE_CONTEXT_ADDED","GW_MESSAGE_SUBSCRIBE_CONTEXT","GW_MESSAGE_SUBSCRIBED_CONTEXT","GW_MESSAGE_UNSUBSCRIBE_CONTEXT","GW_MESSAGE_DESTROY_CONTEXT","GW_MESSAGE_CONTEXT_DESTROYED","GW_MESSAGE_UPDATE_CONTEXT","GW_MESSAGE_CONTEXT_UPDATED","GW_MESSAGE_JOINED_ACTIVITY","ContextMessageReplaySpec","version","GW3ContextData","contextId","isAnnounced","createdByUs","joinedActivity","updateCallbacks","activityId","sentExplicitSubscription","hasReceivedSnapshot","snapshotPromiseWrapper","snapshotPromise","hasCallbacks","lodash_clonedeep","exports","module","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","Function","freeExports","nodeType","freeModule","moduleExports","addMapEntry","pair","set","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","func","transform","arg","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","propertyIsEnumerable","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","n","baseTimes","String","skipIndexes","isIndex","assignValue","object","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","isObject","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","get","props","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","test","arrayBuffer","getMapData","getValue","pop","hash","string","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","ctorString","isLength","baseKeys","cloneDeep","applyContextDelta","delta","reset","deepClone","commands","command","deletePath","setValueToPath","added","updated","removed","mergeObjectsProperties","obj","what","withWhat","right","deepEqual","y","p","pathArr","forbiddenKeys","isSubset","superObj","subObj","every","ele","GW3Bridge$1","ERROR_URI_FAILURE","ERROR_URI_INVALID_CONTEXT","_logger","_connection","_trackAllContexts","_reAnnounceKnownContexts","_subscribeOnUpdate","_subscribeOnGet","_onlyReAnnounceSubscribedContexts","_gw3Session","_contextNameToData","_gw3Subscriptions","_nextCallbackSubscriptionNumber","_creationPromises","_contextNameToId","_contextIdToName","_protocolVersion","_contextsTempCache","_contextsSubscriptionsCache","_systemContextsSubKey","contextsDomainInfo","d","uri","setPathSupported","trackAllContexts","reAnnounceKnownContexts","subscribeOnUpdate","subscribeOnGet","onlyReAnnounceSubscribedContexts","resetState","reInitiateState","subscribeToContextCreatedMessages","subscribeToContextUpdatedMessages","subscribeToContextDestroyedMessages","handleContextCreatedMessage","handleContextUpdatedMessage","handleContextDestroyedMessage","dispose","contextName","createContext","lifetime","createContextMsg","context_id","contextData","subscribe","currentContext","calculatedDelta","calculateContextDeltaV2","calculateContextDeltaV1","gwResponse","handleUpdated","updaterId","setPath","setPaths","pathValues","pathValue","_d","_r","un","isInvalidContextError","reason_uri","subscriptionKey","thisCallbackSubscriptionNumber","subKey","hadCallbacks","clone","sendSubscribe","keepInSubscriptionsCache","sendUnsubscribe","destroy","extraData","oldContext","invokeUpdateCallbacks","createdMessageTypes","createdMessageType","contextCreatedMsg","activity_id","updatedMessageTypes","updatedMessageType","contextUpdatedMsg","justSeen","context_snapshot","updater_id","updateCallbackIndex","updateCallback","destroyedMessageTypes","destroyedMessageType","destroyedMsg","prev","to","cacheSoFar","ctxName","subscription","flushQueue","lastKnownData","ContextsModule","initTime","initStartTime","initEndTime","_bridge","GW3Bridge","checkName","checkData","checkPath","paths","promisify","successCallback","errorCallback","rejectAfter","ms","clearTimeoutIfThere","ok","map2","f","ar","br","mapError","r","__assign","isEqual","isJsonArray","json","isJsonObject","expectedGot","expected","got","typeString","printPath","prependAt","newAt","at","rest","__rest","Decoder","decode","_this","run","kind","runPromise","runWithException","withException","andThen","where","errorMessage","succeed","fail","number","boolean","constant","decoders","decoder","v","err$$1","decodeValue_1","tuple","nth","union","ad","bd","oneOf","intersection","ds","anyJson","unknownJson","dict","optional","errors","errorsList","withDefault","defaultValue","valueAt","jsonAtPath","fixedValue","lazy","mkDecoder","functionCheck","propDescription","providedType","nonEmptyStringDecoder","nonNegativeNumberDecoder","positiveNumberDecoder","methodFilterDecoder","objectTypes","displayName","accepts","returns","supportsStreaming","flags","getServers","instanceDecoder","pid","machine","user","environment","region","isLocal","getMethods","getStreams","targetDecoder","invokeOptionsDecoder","waitTimeoutMs","methodResponseTimeoutMs","InvokeStatus","Client","configuration","callProtocolSubscribe","targetServers","stream","successProxy","errorProxy","methodResponseTimeout","methodDef","method_response_timeout","wait_for_method_timeout","delayTillNow","currentServers","getServerMethodsByFilterAndTarget","retry","streamInfo","servers","methodFilter","filterCopy","serverMethodMap","server","methodsForInstance","getMethodsForInstance","methodAdded","onMethodAdded","methodRemoved","onMethodRemoved","serverAdded","onServerAdded","serverRemoved","onServerRemoved","serverMethodAdded","onServerMethodAdded","serverMethodRemoved","onServerMethodRemoved","argumentObj","additionalOptions","methodDefinition","methodFilterDecoderResult","generateInvalidInputInvocationResult","targetDecoderResult","invokeOptionsDecoderResult","serversMethodMap","tryToAwaitForMethods","additionalOptionsCopy","invokePromises","serversMethodPair","invId","invokePromise","race","invocationId","invocationMessages","getInvocationResultObj","getInvokePromise","metadata","invokeResultMessage","invocationResults","calledWith","all_return_values","invokeMessage","Success","allValues","currentValue","executed_by","returned","called_with","all_errors","allErrors","currError","invResult","interval","filterByTarget","targetArray","matches","myMatches","serverMethodPair","instanceMatch","localMachine","instanceFilter","instanceDefinition","containsProps","methodMatch","repoMethod","prop","isMatch","filterValue","repoMethodValue","filterValueEl","matchingServers","resultMethodsObject","methodKey","identifier","matchingMethods","ServerSubscription","branchKey","closeSingleSubscription","pushDataToSingle","Request","requestContext","accept","acceptRequestOnBranch","acceptOnBranch","branch","rejectRequest","ServerStreaming$1","onSubRequest","rc","rm","handleSubRequest","onSubAdded","handleSubAdded","onSubRemoved","handleSubRemoved","streamCallbacks","subscriptionRequestHandler","subscriptionAddedHandler","subscriptionRemovedHandler","ServerBranch","subscriptions","getSubscriptionList","closeAllSubscriptions","pushData","ServerStream","_protocol","_repoMethod","_server","branches","bList","getBranchList","def2","unregister","updateRepoMethod","Server","serverRepository","streaming","currentlyUnregistering","onInvoked","onMethodInvoked","createStream","streamDef","existingStream","streamMethodDefinition","getList","some","serverMethod","protocolState","streamUserObject","repoId","remove","register","wrappedCallbackFunction","resultCallback","userCallback","registerCore","registerAsync","wrappedCallback","resultCalled","methodResult","userCallbackAsync","forStream","unregisterWithPredicate","methodToBeRemoved","removeMethodsOrStreams","filterPredicate","methodsOrStreamsToRemove","methodsToRemove","methodUnregPromises","addAsCurrentlyUnregistering","methodName","theFunction","unregisterInProgress","methodToExecute","invocationArgs","unStrException","_value","methodInvocationResult","InstanceWrapper","wrapped","API","refreshWrappedObject","refresh","unwrap","floor","hideMethodSystemFlags","ClientRepository","myServer","methodsCount","wrapper","unwrappedInstance","addServer","serverId","serverEntry","removeServerById","methodId","removeServerMethod","addServerMethod","createMethodIdentifier","that","gatewayId","display_name","object_types","input_signature","result_signature","getServersByMethod","clientMethodDefinition","extractMethodsFromServers","hideServerMethodSystemFlags","unsubscribeFunc","serversWithMethodsToReplay","returnUnsubWithDelayedReplay","methodsToReplay","unsubCalled","getServerById","methodInfo","allServers","collectionToReplay","item","clientMethods","ServerRepository","nextId","TypeError","getById","SUBSCRIPTION_REQUEST","SUBSCRIPTION_ADDED","SUBSCRIPTION_REMOVED","ServerStreaming","repository","ERR_URI_SUBSCRIPTION_FAILED","nextStreamId","handleAddInterest","handleRemoveInterest","streamingMethod","subscriptionsMap","branchKeyToStreamIdMap","streamId","getStreamId","subscription_id","subscribeMsg","stream_id","sendSubscriptionFailed","dropSubscriptionMessage","closeMultipleSubscriptions","subscriptionsToClose","drop","allSubscriptions","onSubscriptionLifetimeEvent","method_id","eventName","handlerFunc","getNextStreamId","caller","caller_id","arguments_kv","subscriptionId","needleBranch","ServerProtocol","clientRepository","handleInvokeMessage","isStreaming","registerMsg","restrictions","invocation_id","callerId","UserSubscription","subscriptionData","requestArguments","params","trackedServers","serverInstance","onData","dataCallback","queued","dataItem","onClosed","closedCallback","onFailed","onConnected","setNewSubscription","newSub","TimedCache","timeoutIds","timeoutId","elementIdx","findIndex","ELEMENT_TTL_MS","flush","elements","STATUS_AWAITING_ACCEPT","STATUS_SUBSCRIBED","ERR_MSG_SUB_FAILED","ON_CLOSE_MSG_CLIENT_INIT","ClientStreaming","subscriptionsList","timedCache","subscriptionIdToLocalKeyMap","nextSubLocalKey","handleSubscribed","handleEventData","handleSubscriptionCancelled","subLocalKey","getNextSubscriptionLocalKey","pendingSub","registerSubscription","server_id","handleErrorSubscribing","drainSubscriptions","drainSubscriptionsCache","subsInfo","localKey","closers","closeSubscription","callOnClosedHandlers","errorResponse","callArgs","acceptingServer","isFirstResponse","trackedServersFound","isPrivateData","oob","sendingServerId","receivedStreamData","private","onDataHandlers","queuedData","expectedNewLength","closersCount","closingServerId","closingServer","ClientProtocol","handlePeerAdded","handlePeerRemoved","handleMethodsAddedMessage","handleMethodsRemovedMessage","handleResultMessage","handleInvocationError","newPeerId","new_peer_id","remoteId","meta","local","Number","serverInfo","removedPeerId","removed_id","methodIdList","gW3ProtocolFactory","libConfig","readyPromise","reconnectionPromises","existingSubscriptions","registeredMethods","handleReconnect","protocolPromise","waitForMethod","MessageBus","watchOnEvent","publish","topic","routingKey","removeEmptyValues","routing_key","target_identity","response","keysMatch","cleaned","obj1","obj2","keysObj1","allMatch","IOConnectCoreFactory","userConfig","ext","iodesktop","preloadPromise","gdPreloadPromise","glueInitTimer","internalConfig","nodeStartingContext","startingContextString","env","_GD_STARTING_CONTEXT_","getApplication","glue42electron","applicationConfig","gwConfig","gateway","instanceId","gwURL","uniqueAppName","appInstanceId","getConnection","windowAsAny","containerApplication","htmlContainer","containerName","bus","gwToken","defaultLevel","gdConsoleLevel","consoleLogLevel","getLogger","contexts","defaultConfig","getContexts","libs","customLogger","prepareConfig","_interop","_contexts","_bus","_allowTrace","registerLib","inner","done","traceMessage","setupMetrics","initTimer","metricsPublishingEnabledFunc","getMetricsPublishingEnabled","setupInterop","agmConfig","setupContexts","hasActivities","activities","setupBus","setupExternalLibs","externalLibs","createCallback","setupExternalLib","authPromise","authConfig","RegisterInstanceMethodName","typedError","registerInstanceIfNeeded","libsReadyPromises","coreVersion","glue","feedback","feedbackInfo","agm","glueVer","glueConfig","browser","timing","initTimes","duration","extOptions","enrichGlue","updatePerfData","deprecatedDecorator","fn","wrong","proper","agmAny","method_added","method_removed","server_added","server_method_aded","server_method_removed","IOConnectCore","ActivityEntity","_id","_update","_updateCore","_beforeDelete","isNumber","isString","isUndefined","isUndefinedOrNull","isNullOrWhiteSpace","str","isBoolean","ifNotUndefined","doWithIt","ActivityType","ownerWindow","helperWindows","_ownerWindow","_helperWindows","hw","covertToWindowDef","initiate","_manager","windowType","_b","WindowType","appByWindowTypeGetter","_appByWindowTypeGetter","windows","getWindows","activity","isIndependent","createWindow","EntityEvent","entitiy","entity","EntityEventContext","eventType","ActivityStatusChangeEventContext","newStatus","oldStatus","EntityEventType","StatusChange","ActivityContextChangedEventContext","ActivityContextChange","Added","Removed","Updated","Closed","ActivityWindowEvent","ActivityWindowJoinedActivity","ActivityWindowLeftActivity","ActivityState","Created","Started","Destroyed","ActivityAGM","_activity","_ensureHasAgm","AGM","util.isUndefinedOrNull","w","methodNames","methodsForWindow","currentWindowMethod","activityServers","util.isString","potentialTargets","util.isArray","firstElem","_isInstance","_isActivityWindow","win","parameters","AttachedActivityDescriptor","manager","ownerActivityId","_ownerActivityId","ownerId","windowIds","frameColor","detach","descriptor","detachActivities","nextTick","cb","nodeify","util.isFunction","resp","Activity","actType","_actType","_status","_context","_ownerId","_agm","getActivityType","owner","addWindow","addWindowToActivity","createStackedWindows","windowTypes","leaveWindowFromActivity","getWindowsByType","setContext","setActivityContext","updateContext","updateActivityContext","onStatusChange","subscribeActivityEvents","ns","os","onWindowEvent","subscribeWindowEvents","onContextChanged","subscribeActivityContextChanged","act","stopActivity","attach","attachActivities","onActivityAttached","subscribeActivitiesAttached","newActId","oldActId","onDetached","subscribeActivitiesDetached","newAct","originalActivity","_updateDescriptors","allStates","_attached","attached","setFrameColor","color","callbacksToWait","underlyingWindow","getFrameColor","LogLevel","Trace","Debug","Info","Warn","GetNamed","Get","GetTypeName","GlueLogger","_glueLogger","Level","_getMessage","ActivityWindow","windowGetter","hcWindowId","_type","_activityId","_instance","_isIndependent","_windowGetter","_hcWindowId","getBounds","getWindowBounds","getWindowType","util.isUndefined","getActivityById","isOwner","setVisible","isVisible","setWindowVisibility","activate","focus","activateWindow","setBounds","bounds","setWindowBounds","closeWindow","onActivityJoined","_subscribeForActivityWindowEvent","onActivityRemoved","ActivityStatus","getMessage","gwMmessageError","gwMessageAddActivityTypes","gwMessageActivityCreated","gwMessageActivityDestroyed","gwMessageActivityInitiated","gwMessageJoinedActivity","gwMessageActivityJoined","gwMessageActivityLeft","gwMessageOwnerChanged","gwMessageAddPeerFactories","gwMessagePeerFactoriesAdded","gwMessagePeerFactoriesRemoved","gwMessagePeerCreated","activityTypeGwMessageEntityToActivityType","nameToWindowType","windowName","owner_type","helper_types","peerFactoryGwMessageEntityToWindowType","peer_type","_","activityGwMessageToActivity","owner_id","activity_type","activityToActivityStatusChangeEvent","_activityChangeCallbacks","_activityTypeStatusChangeCallbacks","_activityWindowChangeCallbacks","_windowTypeStatusChangeCallbacks","_peerIdAndFactoryIdToPeerType","_peerFactoriesRegisteredByUs","_contextSubscriptions","_activityTypesInitiatedFromMe","_config","_windows","_sessionJoinedPromise","_sessionJoinedPromiseResolve","_activityJoinedPromise","_activityJoinedPromiseResolve","activityInfo","addRefreshHandler","setGWToken","addWillNavigateHandler","bridgeType","forwardActivityTypeMessagesToStatusEventHandlers","handleActivityCreatedMessage","handleActivityDestroyedMessage","forwardActivityMessagesToStatusEventHandlers","forwardActivityCreatedAndJoinedActivityToActivityWindowEventHandlers","forwardPeerFactoryMessagesToStatusEventHandlers","forwardPeerFactoryMessagesToPeerFactoryRequests","handlePeerFactoriesAdded","handlePeerFactoriesRemoved","forwardActivityWindowMessagesToEventHandlers","disposeRequestHandling","my","exit","mode","activity_types","typesToTrack","initReady","onActivityTypeStatusChange","registerActivityType","activityTypeName","toActivityPeerConfig","windowDefinition","activityType","invokeCallbacks","unregisterActivityType","onWindowTypeStatusChange","registerWindowFactory","factory","factories","unregisterWindowFactory","factory_ids","onActivityStatusChange","initiateActivity","initiateMsg","initial_context","isOverrideTypeDefinition","types_override","helpers","wd","sendCreateAndMapResultingMessagesToPromise","initMsg","fullReplace","removedKeys","announceWindow","activityWindowId","registerWindow","independent","shouldSendReady","getAgmInstance","generateWindowGetter","onActivityWindowChange","layout","width","height","cellSize","joinPeer","joinActivity","peer_name","created_id","destroy_peer_id","getAnnouncementInfo","announcementInfo","activityWindowType","activityWindowIndependent","activityWindowName","search","URLSearchParams","searchParams","maybeName","target_id","leaveActivity","getActivityTypes","getWindowTypes","getActivities","getActivityWindows","windowDefinitions","visible","cloneActivity","cloneOptions","into","merge","newActivityInfo","onActivitiesAttached","onActivitiesDetached","onActivityAttachedDescriptorsRefreshed","getAttachedDescriptors","getRandomRequestId","forwardAddedAndRemovedMessagesToEventHandler","addedMessageType","removedMessageType","mapper","getGetEntityEvent","isAdded","forwardMessageToEventHandler","getEntityEvent","ent","h","initiatedMessageType","initiatedMessageFilter","createdMessageFilter","cancelledMessageType","cancelledMessageFilter","createdMessageToPromiseResolution","listenForRecreates","reqId","resolveCreatedPromise","rejectCreatedPromise","createdPromise","initiatedSubscription","createdSubscription","cancelledSubscription","errorSubscription","initiatedMessageAck","dropSubscriptions","dropSubscription","msg4","recreated","msg1","msg2","msg3","toReturn","peerFactoryIdAndOwnerIdToWindowType","factoryId","peerType","subscribeToContext","unsubscribeContext","activityCreatedMessage","participants","createdMessage","peer_factory","gateway_token","joinedMessage","joinedId","joined_id","joinedType","joined_type","joinedName","joined_name","left_id","list","ActivityMy","_myAttached","_myDetached","_myAttachedTo","_myDetachedFrom","_myActivityFrameColorChanged","_myActivityJoinedCallbacks","_myActivityRemovedCallbacks","_myContextUpdateCallbacks","_m","am","_subscribeMyContextChanged","_subscribeMyWindowEvent","_subscribeActivitiesAttached","_subscribeActivitiesDetached","onWindowFrameColorChanged","_subscribeWindowFrameColorChanged","_w","announcedWindows","myWin","onActivityLeft","onActivityDetached","onAttachedToActivity","onDetachedFromActivity","onFrameColorChanged","myActivity","_notifyMyContextChanged","_notifyMyWindowEvent","callbackStore","_notifyAttached","_notifyDetached","_notifyAttachedTo","_notifyDetachedFrom","detached","oldAct","ReadyMarker","signalsToWait","_signals","_callbacks","setCallback","isSet","isError","_error","signal","getError","EntityObservableCollection","processNew","_items","_listeners","_processNew","addOne","items","internalEntity","_updateInternalCollections","_notifyListeners","getByName","getOrWait","entityAddedHandler","listener","entityAsAny","isActivityDestroy","isWindowClose","oldEntity","ActivityManager","usingHc","_announcedWindows","bridge","autoAnnounce","_attachedCallbacks","_detachedCallbacks","_frameColorChangesCallbacks","_windowHandlers","_activityTypes","_grabEntity","_windowTypes","_activities","_dataReadyMarker","_descriptorsMarker","_readyMarker","dataErr","errCatch","refreshDescriptors","_handleActivitiesAttached","_handleActivitiesDetached","_handleActivityDescriptorsRefreshed","_handleWindowFrameColorChanged","_subscribeForData","aw","_getInitialData","ownerWindowType","helperWindowTypes","ownerDefinition","helperDefinitions","relativeTo","relativeDirection","windowStyleAttributes","actId","subscribeActivityTypeEvents","factoryMethod","util.isObject","getName","predicate","util.some","windowEventHandler","unsubscribeWindowEvents","subscribeWindowTypeEvents","wt","wrappingHandler","found","windowTypeOrConfiguration","relativeToWindow","invalidKeys","filteredWindowTypeOrConfiguration","wid","relativeWindowTypes","stackedWindow","tasks","removedKey","descriptors","stateWrapped","u","subscribeActivityFrameColorChanged","ac","descriptorAsObjectFromAPI","oldActivityId","newActivityId","ActivityManagementAPI","_my","activityTypes","_getActivityTypesWrapper","_getWindowTypesWrapper","registerFactory","unregisterFactory","announce","instances","onAttached","onActivityFrameColorChanged","ActivityAPI","_mgr","aware","inActivity","getAvailableFrameColors","ActivityModule","checkIsUsingGW3Implementation","_api","logLevel","_isUsingHCImplementation","gdMajorVersion","_isUsingGW3Implementation","activityManager","disableAutoAnnounce","My","_readyPromise","isUsingHCImplementation","isUsingGW3Implementation","GetFunctionalEntitlementMethodName","CanIMethodName","OnEventMethodName","GetApplicationsMethodName","objectValues","objectClone","validate","throwErrors","INTEROP_METHOD_RESPONSE_TIMEOUT_MS","INTEROP_METHOD_WAIT_TIMEOUT_MS","INTEROP_METHOD_MAX_TIMEOUT_MS","getGDMajorVersion","glueDesktop","parsed","major","callbackifyPromise","getMonitor","displays","workingAreaWidth","workingAreaHeight","monitor","totalOverlap","calculateTotalOverlap","isRunningInIoCdContext","generateId","isPromise","isAsyncFunction","isNullOrUndefined","r1","r2","r1x","r1y","r1xMax","r1yMax","r2x","r2y","r2xMax","r2yMax","max","min","ApplicationImpl","_appManager","_configuration","onInstanceStarted","onInstanceStopped","onAppRemoved","app","onAppChanged","onAppAvailable","_props","IsReady","onAppUnavailable","Title","Version","autoStart","AutoStart","isShell","IsShell","caption","Caption","hidden","IsHidden","container","ApplicationName","ActivityWindowType","windowSettings","Arguments","allowMultiple","AllowMultiple","available","icon","Icon","iconURL","IconUrl","sortOrder","SortOrder","userProperties","UserProperties","keywords","Keywords","isActivity","Type","Mode","styleAttributes","WindowStyleAttributes","searchFor","modeIndex","startModeIndex","stopModeIndex","style","substr","getConfiguration","AgmNames.GetApplicationsMethodName","v2","apps","applications","updateFromProps","Name","start","waitForAGMInstance","awaitInterop","_c","waitForAGMReady","startTimeout","waitForApplicationInstance","unSubAgmReady","unInstanceStopped","cleanup","errMsg","waitFunc","onAgmReady","onInstanceAgmServerReady","acsResult","Context","Options","waitForInterop","Id","handleInstanceStarted","ActivityId","IsActivityOwner","AgmServers","onAvailable","onUnavailable","onChanged","onRemoved","InstanceImpl","_appName","startFailed","_unsubscribeInstanceStopped","_unsubscribeInstanceAgmServerReady","activityInstance","isActivityOwner","_isActivityOwner","activityInstances","activityOwnerInstance","inst","_startUpContext","_title","isActivityInstance","_isActivityInstance","_inActivity","isSingleWindowApp","_agmInstance","interopInstance","onInteropReady","onStopped","getWindow","timeoutInSeconds","onWindowAdded","updateAgmInstanceFromProps","agmInstances","idToResolve","handleInstanceStopped","getContext","startedBy","AppManagerImpl","_gdMajorVersion","_apps","_instances","getConfigurations","getMyInstance","getMyApplication","handleSnapshotAppsAdded","newApps","currentApps","handleAppRemoved","handleAppAdded","handleSnapshotInstanceStarted","newInstances","currentInstances","_getAppId","_updateAppFromProps","handleAppUpdated","handleAppReady","_getAppOrThrow","_getInstanceId","_getInstanceAppName","_updateInstanceFromProps","_getInstanceOrThrow","_matchInstance","handleInstanceAgmServerReady","handleInstanceStartFailed","handleInstanceUpdated","onInstanceStartFailed","onInstanceUpdated","onAppAdded","_getInstanceByIdAndName","EntitlementsImpl","_isMethodRegistered","handleBranchModified","handleBranchesModified","getRegion","_agmInvoke","Region","getBranches","Branches","getCurrentBranch","Branch","setRegion","ResultMessage","setCurrentBranch","currentUser","getFunctionalEntitlement","funct","AgmNames.GetFunctionalEntitlementMethodName","Entitlement","getFunctionalEntitlementBranch","canI","AgmNames.CanIMethodName","Result","canIBranch","onBranchesChanged","onBranchChanged","onShuttingDown","registerMethod","restart","transformFunction","prevent","InMemoryStoreCommandMethodName","InMemoryStore","import","createAppDef","details","AppManagerFactory","START_ONLY","SKIP_ICONS","appManager","entitlements","skipIcon","snapshot","skipIcons","initiated","resolveFunc","rejectFunc","resultPromise","AgmNames.OnEventMethodName","streamData","events","onApplicationAddedEventArgs","isSnapshot","onApplicationStartedEventArgs","myInstance","hasMyAppInSnapShot","hasMyInstanceInSnapShot","subscriptionFactory","c","myApplication","inMemory","T42JumpListAction","jumpListManager","_groupActionCallbacks","_registered","_executor","registerCallbackMethod","setEnabled","updateJumpList","createCategory","actions","validateActions","category","toUpdateActions","removeCategory","manageActionCallback","createActions","categoryTitle","removeActions","getActions","catgoryTitle","currentCategory","getJumpListSettings","categories","actionCallback","getActionCallback","callbackId","singleInstanceTitle","multiInstanceTitle","getJumpList","updateAction","groupCallbacksKey","categoryActionCallbacks","accCal","delete","callbackAction","cal","windowStore","waitForTimeoutInMilliseconds","_pendingWindows","_pendingWindowsStates","CallbackFactory","getIfReady","shouldMarkReadyToShow","markReadyToShow","setUrlChangedState","targetWindowState","urlChanged","setCompositionChangedState","compositionChanged","waitFor","unReady","unRemoved","onReadyWindow","waitForName","winId","onAdded","JumpListActions","_categoryTitle","JumpListCategories","getCategories","cat","JumpList","_categories","isEnabled","SingleChannelID","channel","isJoinedToAnyChannel","isOnChannel","leaveChannel","joinChannel","equals","MultiChannelId","channels","ChannelDelimiter","newChannel","ch","windowFactory","appsController","displayAPIGetter","channelsAPIGetter","getChannelsAPI","appManagerGetter","_mode","_bounds","_url","_frameColor","_focus","_neighbours","neighbours","_groupId","groupId","_isGroupHeaderVisible","isGroupHeaderVisible","_isTabHeaderVisible","isTabHeaderVisible","_isGroupHibernated","isGroupHibernated","_isGroupVisible","isGroupVisible","_isTabSelected","isTabSelected","_settings","_applicationName","_group","_isVisible","_isSticky","isSticky","_isCollapsed","isCollapsed","_windowState","_tabGroupId","tabGroupId","_tabIndex","tabIndex","_frameId","frameId","_isLocked","isLocked","_allowWorkspaceDrop","allowWorkspaceDrop","_isPinned","isPinned","_frameButtons","frameButtons","_zoomFactor","zoomFactor","_placementSettings","placementSettings","_jumpList","moveResize","utils","resultWindow","toBeVisible","onGroupChanged","onEventCore","replayArguments","getChannel","getWindowsWithChannels","getNeighboursByDirection","direction","getApplicationName","_APPLICATION_NAME","_t42","getWindowInfo","hostInstance","agmInstance","b1","b2","minHeight","maxHeight","minWidth","maxWidth","isFocused","opened","group","topNeighbours","leftNeighbours","rightNeighbours","bottomNeighbours","screen","monitors","jumpList","maximize","restore","minimize","maximizeRestore","collapse","expand","toggleCollapse","setTitle","newTitle","setStyle","styleAsAny","util.isNumber","setOnTop","onTop","resetButtons","buttons","getButtons","setSizeConstraints","constraints","getSizeConstraints","navigate","newUrl","optionsOrCallback","util.isNullOrWhiteSpace","addFrameButton","buttonInfo","buttonId","imageBase64","removeFrameButton","show","hide","center","display","workArea","scaleFactor","validateCenterArguments","cbOrOptions","snap","autoAlign","dragMove","dragMoveSettings","showLoader","loader","hideLoader","lock","unlock","getIcon","setIcon","base64Image","setTabTooltip","tooltip","getTabTooltip","attachTab","tab","opt","sourceWindow","attachOptions","selected","detachTab","argsForSend","hideTabHeader","setTabHeaderVisible","toBeTabHeaderVisible","showPopup","createFlydown","setModalState","isModal","setZoomFactor","zoomIn","zoomOut","showDevTools","capture","captureOptions","flash","suppliedOptions","flashOptions","shouldFlash","flashTab","setSticky","setAllowWorkspaceDrop","pin","unpin","print","printOptions","printToPDF","printToPDFOptions","place","clearPlacement","clearPlacementSettings","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","setDockingConfig","getDockingConfig","dock","undock","executeCode","getChannels","startDrag","option","showDialog","dialogOptions","timerDuration","showTimer","onClose","onUrlChanged","onTitleChanged","onFrameButtonAdded","onFrameButtonRemoved","onFrameButtonClicked","onCollapsed","onExpanded","onMinimized","onMaximized","onNormal","onVisibilityChanged","onContextUpdated","onLockingChanged","onBoundsChanged","onFocusChanged","onStickyChanged","onWindowAttached","onWindowDetached","onTabSelectionChanged","onTabHeaderVisibilityChanged","onClosing","onRefreshing","onZoomFactorChanged","onPlacementSettingsChanged","onNeighboursChanged","onDockingChanged","onNavigating","onChannelRestrictionsChanged","tabs","allWindows","w1","w2","MIN_SAFE_INTEGER","getAllTabs","getApp","getURL","getTitle","getDisplay","getByWindowId","resizeTo","moveTo","getParentWindow","myParentId","parentInstanceId","Events","handleUpdate","handleWindowClose","handleWindowChangeState","finished","handleTitleChanged","finally","handleVisibilityChanged","handleUrlChanged","handleWindowSettingsChanged","handleContextUpdated","handleFrameIsLockedChanged","handleBoundsChanged","handleFocusChanged","handleFrameButtonAdded","frameButton","buttonObj","btn","handleFrameButtonRemoved","frameButtonId","button","handleFrameButtonClicked","handleFrameColorChanged","handleFrameAttached","handleFrameSelectionChanged","newWindow","prevWindow","selectedWindow","previousWindow","handleCompositionChanged","neighbors","handleAllowWorkspaceDropChanged","handleIsPinnedChanged","handleGroupHeaderVisibilityChanged","handleTabHeaderVisibilityChanged","handleGroupChanged","handleAttached","newTabGroupId","newFrameId","tabHeaderVisible","winsToBeNotified","handleWindowAttached","handleDetached","handleWindowDetached","handleZoomFactorChanged","handleIsStickyChanged","handlePlacementSettingsChanged","displayAPI","handleDockingChanged","docked","position","claimScreenArea","handleChannelRestrictionsChanged","GroupCreationArgs","getWindowsByTabGroupId","isEmpty","GroupMethodName","WndMethodName","_finished","windowAvailableOnURLChanged","unsubCallbacks","agmTarget","setConfiguration","handleEvent","finishedResolve","closed","urlLoadOptions","invocationOptions","stylePromises","wait","tabTooltip","tabToolTip","toolTip","tabTitle","allowClose","allowCollapse","allowLockUnlock","allowMaximize","allowMinimize","buttonsConfig","windowToPin","pinnedWindow","versionNum","rej","resolveImmediately","areBoundsEqual","unsubscribeBoundsChanged","resolveTimeout","targetWindow","targetWindowId","snappingEdge","sourceWindowId","eventKeys","contextWithoutUndefinedValues","swapUndefinedToNull","dataURL","toShow","showGroupPopup","reformatedOptions","validatePopupOptions","executeGroup","optionsCopy","horizontalOffset","verticalOffset","fullOptions","reformatFlydownOptions","zoneIds","zones","z","flydownSize","cancel","targetId","clearFlydownArea","autoArrange","displayId","handleFlydownBoundsRequested","callbackData","zoneId","flydownId","flydownWindowBounds","flydownWindowId","responses","defaultResponse","handleOnEventRequested","prevented","preventArgs","pArgs","captureGroup","groupWindowIds","filePath","silent","enableDownloadBar","fullPath","fileSize","executeCore","gdWindow","addCloseHandler","nonWindowHandlers","onGroupClosing","nonWindowHandlersCore","clearCallbacks","isGroup","noOperationHandler","assignGeneralIfUnassigned","zone","valueFromOptions","flydownBounds","targetLocation","flydownActiveArea","activeArea","areaIds","executeWithoutToken","uns","executed","executeWithToken","requested","areHeightsEqual","areWidthsEqual","areLeftsEqual","areTopsEqual","popupBounds","popupId","GDEnvironment","wndId","_windowId","_appsController","_displayAPIGetter","_channelsAPIGetter","respondToEvent","streamResolve","streamReject","withConfig","updateWindow","copyOptions","windowState","tabAttached","tabDetached","onEvent","myGroup","onCompositionChanged","onGroupHeaderVisibilityChanged","onGroupVisibilityChanged","onGroupStateChanged","onWindowGotFocus","onWindowLostFocus","onWindowsAutoArrangeChanged","windowInfo","readyResolve","extendedStreamEvent","getExtendedStreamEvent","existingWindow","mapToWindowConstructorOptions","mapToGroupCreationArgs","createWindowFromSnapshot","windowInfoCreatedEvent","createWindowFromStream","windowObjectAndEvents","theWindow","theWindowEvents","windowInfoBoundsChangedEvent","windowInfoUrlChangedEvent","windowInfoTitleChanged","windowInfoIsStickyChangedChanged","windowInfoCompositionChanged","groupHeaderVisible","windowInfoFocusChanged","focusChanged","oldTabGroupId","newWindowId","prevWindowId","windowObjAndEvents","createWindowCore","isRemote","isFrameless","isHidden","isActiveTab","jumpListOptions","streamEvent","charAt","toUpperCase","groupFactory","callbackRegistry","_windowsId","_isHibernatedFlag","groupObject","_mapToWindowObjects","winObjects","windowObject","_mapToWindowObject","isHeaderVisible","isHibernated","showHeader","hideHeader","reload","onHeaderVisibilityChanged","onWindowRemoved","internal","removeWindow","handleGroupVisibilityChanged","visibile","handleGroupHibernateChanged","isHibernatedFlag","groupAPI","groupInternal","groupsFactory","_groups","heardForWindowsCounter","findGroupByWindow","groupObj","waitForGroup","groupWrapper","onGroupAdded","createdGroupWrapper","createOrGet","deleteIfEmpty","findGroupWrapperByWindow","validateGroupIdArg","currentGroup","fromGroup","toGroup","moveWindow","groupEvents","groups","groupIds","idOrGroup","getMyGroup","onGroupRemoved","hibernate","resume","onHibernated","onResumed","groupsAPI","groupsEvents","onWindowMoved","WindowsFactory","channelsGetter","popupCount","isReady","GD","webGroupsManager","envDetector","myWindow","windowAdded","windowRemoved","optionsAsAny","windowsForListing","findById","onTabAttached","unsubFunc","unsubscribed","onTabDetached","onArrangementChanged","createPopup","createProcessWindow","features","optionProperties","property","propertyValue","transparent","createProcessWindowOptions","copyStyles","browserWindow","windowWrapper","ioConnectWindow","store","layouts","removeWhere","condition","removeAll","first","ContextProvider","activitiesGetter","registerRequestMethods","onSaveRequested","activityIsOwner","ignoreContexts","cbArgs","usersCbs","requestResult","autoSaveWindowContext","windowContext","activityContext","transformACSLayout","something","convertedValue","LayoutImpl","components","defineProperty","LayoutType","SwimlaneItemType","swTheme","swConfiguration","__createBinding","o","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__exportStar","require$$0","require$$1","require$$2","require$$3","require$$4","LayoutsCommandMethod","LayoutsAPIImpl","isRegisterMethodForLayoutModified","activityGetter","setDefaultGlobal","invokeMethodCore","clearDefaultGlobal","getDefaultGlobal","isSlimMode","l","gotSnapshot","save","verifyNotSlimMode","layoutObject","ignoreInstances","setAsCurrent","invokeMethodAndTrack","activityIdToJoin","closeRunningInstance","closeRunningInstances","closeMe","restoreOptions","activityToJoin","ignoreActivityWindowTypes","reuseExistingWindows","reuseWindows","restoreWorkspacesByReference","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onDefaultGlobalChanged","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","errorHandler","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","selectedDefaultLayout","OnLayoutSelectedDefault","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","selectedDefaultLayouts","LayoutsFactory","acsStream","DisplayManager","callGD","DisplayCommand","GetAll","decorateDisplay","getPrimary","isPrimary","Capture","captureAll","CaptureAll","getMousePosition","GetMousePosition","original","decoratedDisplay","workAreaAsAny","GetByWindowId","onDisplayChanged","myInstanceId","T42_ANNOUNCE_METHOD_NAME","interopLib","loggerAPI","joinNoSelectorSwitch","leaveNoSelectorSwitch","swId","handleRestrictionsChanged","isSupported","channelsToJoin","channelsToLeave","sendLeaveChannel","sendSwitchChannelUI","getRestrictionsByWindow","addOrRemoveChannel","label","getChannelInitInfo","operationMode","validateMode","initialChannel","CONTEXT_PREFIX","LATEST_FDC3_TYPE","BaseSharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","clearContextData","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","fdc3Context","fdc3","MultiSharedContextSubscriber","currentlySubscribedChannels","unsubscribeMap","switchChannel","newChannels","subscribeToChannel","unsubscribeFromChannel","usub","SharedContextSubscriber","validateFdc3Options","contextType","ChannelsImpl","getWindowsAPI","subsKey","changedKey","channelsChangedKey","isInitialJoin","pendingRestrictionCallbacks","getMyChannels","currentChannelID","shared","initial","subscribeForChannelRestrictionsChange","getID","handlerInvoked","markHandlerInvoked","getWrappedSubscribeCallbackWithFdc3Type","getWrappedSubscribeCallback","timeoutIndex","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","channelsToPublish","restrictedChannels","cn","restrictedChannelsErr","validatePathArgs","channelNames","getContextWithFdc3Type","getMy","validateWindowIdArg","joinCore","leaveWhenMulti","leaveWhenSingle","leaveCore","myChannels","onChannelsChanged","changed","verifyChannelExists","getWindowsOnChannel","validateChannelArg","validateWindowsWithChannelsFilter","getChannelsInfo","windowsAPI","er","restrict","restriction","validateRestrictionConfig","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","clearChannelData","changeSelector","newId","raiseChannelsChangedEvents","doesChannelExist","channelExistsPromise","intervalId","channelID","leaveCoreMulti","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","parsedType","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","didReplay","replayed","callbackWithTypesChecks","searchedType","parseDataAndInvokeSubscribeCallback","latestFdc3TypeEncoded","fdc3Data","encodedType","latestTypePropName","latestFDC3Type","channelId","isRestrictions","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","Platform","RESTART_METHOD_NAME","SHUTDOWN_METHOD_NAME","ON_SHUTTING_DOWN_METHOD_NAME","shutdown","registerShutdownMethod","toAPI","getLibConfig","defaultMode","trueMode","getModeAsString","hasHtmlContainer","activitiesDefaultMode","layoutsDefaultMode","layoutsTrueMode","exposeAPI","exposeGlue","Glue42Notification","body","badge","dir","image","lang","renotify","requireInteraction","removeEventListener","dispatchEvent","PanelAPI","onStreamEvent","toggle","panelVisible","Notifications","NotificationsSubscribeStream","NotificationsCounterStream","RaiseNotificationMethodName","NotificationsExecuteMethod","NotificationFilterMethodName","methodsRegistered","NOTIFICATIONS_CONFIGURE_METHOD_NAME","methodNameRoot","notifications","subscribedForNotifications","subscribedCounterStream","subscriptionsCountForNotifications","subscriptionsCountForCounter","_panel","onStreamEventCore","_panelAPI","subscribeInternalEvents","maxActions","panel","raise","notification","createNotification","g42notification","invocationResult","handleNotificationErrorEvent","setFilter","getFilter","enable","enableToasts","toastExpiry","sourceFilter","allowed","blocked","toasts","_e","_f","stackBy","placement","_g","_h","closeNotificationOnClick","statesVersion2","attribute","stringValue","onRaised","onStateChanged","onConfigurationChanged","closeStreamSubscriptionIfNoNeeded","onCounterChanged","subscribeForCounterStream","closeStreamCounterSubscriptionIfNoNeeded","onDataChanged","clearAll","clearOld","clearMany","validateNotificationsArr","click","snooze","snoozeMany","validateState","setStates","importNotifications","notificationsToImport","notificationOptions","notificationSettings","imported","bunchOfPromises","handleNotificationEvent","severity","glueRoutingDetailMethodName","sourceId","publishExtraEvents","clickInterop","handleActions","handleOptions","attributes","dataAsString","panelExpiry","validActions","g42notificationId","g42action","g42interopMethod","g42interopTarget","g42interopArguments","glueAction","displayPath","validStates","sendDeltaOnly","subscriptionForNotifications","handleData","subscriptionForCounter","count","handleOnClosed","handleOnShow","handleItemsData","deltas","handleDeltas","allApplications","dataAttribute","getNotification","gnsNotificationArgs","getGnsNotificationArgs","notificationId","handleNotificationEventCore","handleNotificationActionEvent","notificationActionPayload","handleNotificationClickEvent","onaction","onclick","sourceNotificationId","getBackwardGnsNotificationArgs","ThemesImpl","isSubscribed","getMethodName","getCurrent","select","theme","setMethodName","sharedContextName","getThemesMethodName","setThemesMethodName","connectBrowserAppProps","fdc3v2AppProps","intentDefinitionDecoder","customConfig","v2TypeDecoder","v2DetailsDecoder","v2IconDecoder","src","v2ScreenshotDecoder","v2ListensForIntentDecoder","resultType","v2IntentsDecoder","listensFor","raises","v2UserChannelDecoder","broadcasts","v2AppChannelDecoder","v2InteropDecoder","intents","userChannels","appChannels","glue42ApplicationDetailsDecoder","glue42HostManifestsBrowserDecoder","customProperties","v1DefinitionDecoder","appId","manifest","manifestType","contactEmail","supportEmail","publisher","images","icons","v2LocalizedDefinitionDecoder","screenshots","moreInfo","hostManifests","v2DefinitionDecoder","localizedVersions","allDefinitionsDecoder","parseDecoderErrorToStringMessage","FDC3Service","fdc3ToDesktopDefinitionType","web","native","citrix","onlineNative","toApi","isFdc3Definition","parseToBrowserBaseAppData","parseToDesktopAppConfig","decodeRes","isFdc3","getUserPropertiesFromDefinition","createOptions","getUrl","baseApplicationData","getIntentsFromV2AppDefinition","getIconFromDefinition","definitionVersion","ioConnectDefinition","ioConnect","ioDefinitionDecodeRes","mergeBaseAppDataWithGlueManifest","fdc3v1Definition","fdc3v2Definition","desktopDefinition","mergeDesktopConfigWithGlueManifest","fromEntries","parsedManifest","fdc3Intents","fdc3Intent","intentName","intentData","iconDef","baseAppData","hostManifestDefinition","baseApplicationDefinition","appConfig","decoders$1","common","INTENTS_ERRORS","ioc","_fdc3","_decoders","_errors","GLUE42_FDC3_INTENTS_METHOD_PREFIX","INTENT_HANDLER_DEFAULT_PROPS","DEFAULT_RAISE_TIMEOUT_MS","ERRORS","PromiseWrap","promiseActive","validateHandlerFilter","handlerFilter","openResolver","intent","contextTypes","applicationNames","excludeList","ctx","excludeListValidation","isExcludeListValid","validateResolverResponse","responseObj","isValid","userSettings","preserveChoice","compulsoryKeysExist","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","addedHandlerInfoPerApp","checkIfIntentsResolverIsEnabled","intentFilter","ctToLower","ct","resultTypeToLower","intentRequest","removeRememberedHandler","resolverInstance","resultFromRememberedHandler","checkHandleRaiseWithRememberedHandler","coreRaiseIntentFn","coreRaiseIntent","TIMEOUT_HIT","handleRaiseOnError","withIntentsInfo","appsWithIntents","intentDef","applicationTitle","applicationDescription","applicationIcon","serverWindowIds","serverWindowId","T42WndGetInfo","windowsInfos","windowsIdToTitle","constructIntentHandler","addIntentListener","registerPromise","intentFlag","validateAddIntentListenerRequest","buildInteropMethodName","unsubscribeIntent","filterHandlers","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","instanceTitle","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","getMyAppName","onHandlerAdded","unAppAdded","appDef","constructIntentHandlerFromApp","unServerMethodAdded","intentsInfo","onHandlerRemoved","unAppRemoved","addedHandlerInfo","filteredIntentsWithHandlers","excludeIntentHandlers","exclusion","resolverConfig","INTENT_NOT_FOUND","checkIfResolverShouldBeOpenedForRaise","raiseIntent","resolverHandler","raiseIntentToTargetHandler","registeredIntent","firstFoundAppHandler","findHandlerByFilter","firstFoundInstanceHandler","instanceIdPromise","invokeStartApp","reasonMsg","TARGET_INSTANCE_UNAVAILABLE","invokeOptions","INTENT_HANDLER_REJECTION","intentsResolverAppName","responseMethodName","registerIntentResolverMethod","startContext","buildStartContext","startOptions","buildStartOptions","definitionOverride","subscribeOnInstanceStopped","createResponsePromise","handleInstanceResponse","initialCaller","windowsInfo","subMessage","stopResolverInstance","saveUserChoice","resolverResponseHandler","validResponse","cleanUpIntentResolverPromise","myAppName","myAppTitle","baseStartContext","resolverApi","getResolverStartupTopBound","minWorkareaHeight","startedByIntentAPI","intentPromise","gdWin","isInitialized","enableIntentsResolverUI","intentsResolverResponseTimeout","checkOpen","checkIfIntentsResolverShouldBeOpened","checkIfIntentHasMoreThanOneHandler","removeSingletons","searchedAppName","isSingleton","currentHandlers","clearUnregistrationPromise","promiseToRemove","unregisterPromise","validIntentsWithInfo","currentHandler","intentWithInfo","prefs","intentPrefs","updatedPrefs","checkForRememberedHandler","prefsForIntent","rememberedHandler","waitResponseTimeout","prevPrefs","prevIntentsPrefs","prefsToUpdate","appWithIntents","appIntent","appDefIntent","Prefs","interopMethodRegistered","verifyApp","T42GetPrefsMethodName","verifyDataObject","verifyOptions","T42SetPrefsMethodName","setFor","updateFor","clearFor","verifyCallback","unsubscribeFn","registerInteropIfNeeded","T42UpdatePrefsMethodName","Cookies","cookies","cookie","verifyCookieObject","secure","httpOnly","expirationDate","EventsDispatcher","glue42EventName","notifyStarted","handleNotifyStarted","requestGlue","handleRequestGlue","getAnnounceInfo","wireCustomEventListener","announceStarted","detail","glue42","glue42Event","foundHandler","CustomEvent","typedPerformance","delayForever","OperationsToCommandNameMap","Interception","InterceptorMethodName","InterceptorHandlerMethodName","interceptions","validateInterceptions","registerMethodIfNotRegistered","interception","handleInterception","operationArgs","phase","createProxyObject","apiToIntercept","OperationsPerDomain","Proxy","propertyKey","receiver","Reflect","shouldIntercept","isAwaitable","interceptMethod","originalMethod","beforeInterceptionResult","operationResult","afterInterceptionResult","whenRegisteredPromise","interceptorEntry","validateTypeString","isValidType","MyImpl","initialize","Domain","AppsCommandMethodName","AppsEventMethodName","invokeAppsCommand","subscribeToAppsEventWithLogging","decorator","subscribeAppsEvent","InMemoryStoreImpl","definitions","AppRegistryImpl","_inMemory","subscribeToEvent","getMany","onUpdated","AppsErrorHints","APP_NOT_FOUND","possibleCauses","solutions","INVALID_INSTANCE_ID","INSTANCE_NOT_FOUND","INVALID_APP_CONFIG","AppsError","hint","defaultMessage","getHint","appNotFound","instanceNotFound","invalidInstanceId","trim","invalidAppConfig","InstanceManagerImpl","subscribeToAppsEvent","buildInstanceObject","waitForReady","onStarted","enhancedInstance","AppsController","setAppManager","setApps","_j","_k","ensureInitialized","includeDefinition","oldInstance","startedAt","withAppDefinition","defin","callWithErrorGuard","getInstance","callInfo","initialized","addCall","g","firstRun","factoryCore","_displays","_channels","_prefs","_interceptors","_platform","_browserEventsDispatcher","getLibLogger","newLogger","loggerConfig","core","windowsLogger","debugLog","activityLogger","resolveCallback","rejectCallback","AppsFactory","layoutsConfig","lay","channelsReadyPromise","sharedContexts","hotkeysAPI","displaysLogger","intentsAPI","proxyIntentsAPI","notificationsAPI","themesAPI","themes","currentLog","glueFactoryLog","glueApi","CoreFactory","libraries","calls","whatToExpose","CreateGlue","shouldSetToWindow","autoInjected","IODesktop","Glue","IOBrowser","GlueCore"],"mappings":"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","x_google_ignoreList":[0,22,26,75]}
|
|
1
|
+
{"version":3,"file":"desktop.umd.min.js","sources":["../node_modules/@interopio/core/dist/core.es.js","../src/activity/entities/activityEntity.ts","../src/activity/helpers/util.ts","../src/activity/entities/activityType.ts","../src/activity/entities/windowType.ts","../src/activity/contracts/entityEvent.ts","../src/activity/core/activityAGM.ts","../src/activity/entities/attachedActivityDescriptor.ts","../src/activity/helpers/promiseExtensions.ts","../src/activity/entities/activity.ts","../src/activity/helpers/logger.ts","../src/activity/entities/activityWindow.ts","../src/activity/contracts/activityStatus.ts","../src/activity/bridges/gw3Bridge.ts","../src/activity/API/activityMyAPI.ts","../src/activity/helpers/readyMarker.ts","../src/activity/helpers/entityObservableCollection.ts","../src/activity/core/activityManager.ts","../src/activity/API/activityManagementAPI.ts","../src/activity/API/activityAPI.ts","../src/activity/activityModule.ts","../src/app-manager/const/agm-names.ts","../node_modules/callback-registry/lib/index.js","../src/app-manager/helper.ts","../src/constants.ts","../src/utils.ts","../../../node_modules/nanoid/non-secure/index.js","../src/app-manager/application.ts","../src/app-manager/instance.ts","../src/app-manager/app-manager.ts","../src/app-manager/entitlements.ts","../src/app-manager/in-memory.ts","../src/app-manager/main.ts","../src/app-manager/snapshot.ts","../src/app-manager/data-subscription.ts","../src/windows/jumpList/manager.ts","../src/windows/store.ts","../src/windows/jumpList/actions.ts","../src/windows/jumpList/categories.ts","../src/windows/jumpList/main.ts","../src/channels/channelIDUtils.ts","../src/windows/window.ts","../src/windows/environment/helpers.ts","../src/windows/environment/gd/executor.ts","../src/windows/environment/gd/gd.ts","../src/windows/environment/detector.ts","../src/windows/group.ts","../src/windows/groups.ts","../src/windows/main.ts","../src/layouts/store.ts","../src/layouts/contextProvider.ts","../src/layouts/transform.ts","../src/layouts/layout.ts","../../schemas/app/application.js","../../schemas/app/system.js","../../schemas/app/layout.js","../../schemas/app/swTheme.js","../../schemas/app/swConfiguration.js","../../schemas/app/main.js","../src/layouts/layouts.ts","../src/layouts/stream/acsStream.ts","../src/layouts/main.ts","../src/layouts/stream/nullStream.ts","../src/displays/displayManager.ts","../src/channels/agm.ts","../src/channels/contexts.ts","../src/channels/helpers.ts","../src/channels/channels.ts","../src/hotkeys/hotkeys.ts","../src/platform/main.ts","../src/config.ts","../src/notifications/notification.ts","../src/notifications/panel.ts","../src/notifications/main.ts","../src/themes/themes.ts","../node_modules/@interopio/utils/dist/utils.es.js","../src/intents/constants.ts","../src/intents/common.ts","../src/intents/helpers.ts","../src/intents/intents.ts","../src/prefs/index.ts","../src/cookies/index.ts","../src/eventsDispatcher.ts","../../../app/utils/promise.js","../src/interception/constants.ts","../src/interception/main.ts","../src/apps/my.ts","../src/apps/interop.ts","../src/apps/inMemoryStore.ts","../src/apps/registry.ts","../src/apps/errors.ts","../src/apps/instances.ts","../src/utils/appsController.ts","../src/glue.ts","../src/factoryCallInfo.ts","../src/apps/main.ts","../src/channels/main.ts","../src/hotkeys/main.ts","../src/themes/main.ts","../src/cookies/main.ts","../src/index.ts"],"sourcesContent":["var MetricTypes = {\n STRING: 1,\n NUMBER: 2,\n TIMESTAMP: 3,\n OBJECT: 4\n};\n\nfunction getMetricTypeByValue(metric) {\n if (metric.type === MetricTypes.TIMESTAMP) {\n return \"timestamp\";\n }\n else if (metric.type === MetricTypes.NUMBER) {\n return \"number\";\n }\n else if (metric.type === MetricTypes.STRING) {\n return \"string\";\n }\n else if (metric.type === MetricTypes.OBJECT) {\n return \"object\";\n }\n return \"unknown\";\n}\nfunction getTypeByValue(value) {\n if (value.constructor === Date) {\n return \"timestamp\";\n }\n else if (typeof value === \"number\") {\n return \"number\";\n }\n else if (typeof value === \"string\") {\n return \"string\";\n }\n else if (typeof value === \"object\") {\n return \"object\";\n }\n else {\n return \"string\";\n }\n}\nfunction serializeMetric(metric) {\n const serializedMetrics = {};\n const type = getMetricTypeByValue(metric);\n if (type === \"object\") {\n const values = Object.keys(metric.value).reduce((memo, key) => {\n const innerType = getTypeByValue(metric.value[key]);\n if (innerType === \"object\") {\n const composite = defineNestedComposite(metric.value[key]);\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite,\n };\n }\n else {\n memo[key] = {\n type: innerType,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n serializedMetrics.composite = values;\n }\n serializedMetrics.name = normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name);\n serializedMetrics.type = type;\n serializedMetrics.description = metric.description;\n serializedMetrics.context = {};\n return serializedMetrics;\n}\nfunction defineNestedComposite(values) {\n return Object.keys(values).reduce((memo, key) => {\n const type = getTypeByValue(values[key]);\n if (type === \"object\") {\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite: defineNestedComposite(values[key]),\n };\n }\n else {\n memo[key] = {\n type,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n}\nfunction normalizeMetricName(name) {\n if (typeof name !== \"undefined\" && name.length > 0 && name[0] !== \"/\") {\n return \"/\" + name;\n }\n else {\n return name;\n }\n}\nfunction getMetricValueByType(metric) {\n const type = getMetricTypeByValue(metric);\n if (type === \"timestamp\") {\n return Date.now();\n }\n else {\n return publishNestedComposite(metric.value);\n }\n}\nfunction publishNestedComposite(values) {\n if (typeof values !== \"object\") {\n return values;\n }\n return Object.keys(values).reduce((memo, key) => {\n const value = values[key];\n if (typeof value === \"object\" && value.constructor !== Date) {\n memo[key] = publishNestedComposite(value);\n }\n else if (value.constructor === Date) {\n memo[key] = new Date(value).getTime();\n }\n else if (value.constructor === Boolean) {\n memo[key] = value.toString();\n }\n else {\n memo[key] = value;\n }\n return memo;\n }, {});\n}\nfunction flatten(arr) {\n return arr.reduce((flat, toFlatten) => {\n return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);\n }, []);\n}\nfunction getHighestState(arr) {\n return arr.sort((a, b) => {\n if (!a.state) {\n return 1;\n }\n if (!b.state) {\n return -1;\n }\n return b.state - a.state;\n })[0];\n}\nfunction aggregateDescription(arr) {\n let msg = \"\";\n arr.forEach((m, idx, a) => {\n const path = m.path.join(\".\");\n if (idx === a.length - 1) {\n msg += path + \".\" + m.name + \": \" + m.description;\n }\n else {\n msg += path + \".\" + m.name + \": \" + m.description + \",\";\n }\n });\n if (msg.length > 100) {\n return msg.slice(0, 100) + \"...\";\n }\n else {\n return msg;\n }\n}\nfunction composeMsgForRootStateMetric(system) {\n const aggregatedState = system.root.getAggregateState();\n const merged = flatten(aggregatedState);\n const highestState = getHighestState(merged);\n const aggregateDesc = aggregateDescription(merged);\n return {\n description: aggregateDesc,\n value: highestState.state,\n };\n}\n\nfunction gw3 (connection, config) {\n if (!connection || typeof connection !== \"object\") {\n throw new Error(\"Connection is required parameter\");\n }\n let joinPromise;\n let session;\n const init = (repo) => {\n let resolveReadyPromise;\n joinPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n session = connection.domain(\"metrics\");\n session.onJoined((reconnect) => {\n if (!reconnect && resolveReadyPromise) {\n resolveReadyPromise();\n resolveReadyPromise = undefined;\n }\n const rootStateMetric = {\n name: \"/State\",\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const defineRootMetricsMsg = {\n type: \"define\",\n metrics: [rootStateMetric],\n };\n session.sendFireAndForget(defineRootMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for root state metric: ${JSON.stringify(err)}`);\n });\n if (reconnect) {\n replayRepo(repo);\n }\n });\n session.join({\n system: config.system,\n service: config.service,\n instance: config.instance\n });\n };\n const replayRepo = (repo) => {\n replaySystem(repo.root);\n };\n const replaySystem = (system) => {\n createSystem(system);\n system.metrics.forEach((m) => {\n createMetric(m);\n });\n system.subSystems.forEach((ss) => {\n replaySystem(ss);\n });\n };\n const createSystem = async (system) => {\n if (system.parent === undefined) {\n return;\n }\n await joinPromise;\n const metric = {\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const createMetricsMsg = {\n type: \"define\",\n metrics: [metric],\n };\n session.sendFireAndForget(createMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for system state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n };\n const updateSystem = async (system, state) => {\n await joinPromise;\n const shadowedUpdateMetric = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n value: {\n Description: state.description,\n Value: state.state,\n },\n timestamp: Date.now(),\n }],\n };\n session.sendFireAndForget(shadowedUpdateMetric)\n .catch((err) => {\n config.logger.warn(`Failed to send update for system state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n const stateObj = composeMsgForRootStateMetric(system);\n const rootMetric = {\n type: \"publish\",\n peer_id: connection.peerId,\n values: [{\n name: \"/State\",\n value: {\n Description: stateObj.description,\n Value: stateObj.value,\n },\n timestamp: Date.now(),\n }],\n };\n session.sendFireAndForget(rootMetric)\n .catch((err) => {\n config.logger.warn(`Failed to send update for root state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n };\n const createMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n const m = serializeMetric(metricClone);\n const createMetricsMsg = {\n type: \"define\",\n metrics: [m],\n };\n session.sendFireAndForget(createMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for metric ${metric.name}: ${JSON.stringify(err)}`);\n });\n if (typeof metricClone.value !== \"undefined\") {\n updateMetricCore(metricClone);\n }\n };\n const updateMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n updateMetricCore(metricClone);\n };\n const updateMetricCore = (metric) => {\n if (canUpdate()) {\n const value = getMetricValueByType(metric);\n const publishMetricsMsg = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name),\n value,\n timestamp: Date.now(),\n }],\n };\n return session.sendFireAndForget(publishMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to publish metric ${metric.name}: ${JSON.stringify(err)}`);\n });\n }\n return Promise.resolve();\n };\n const cloneMetric = (metric) => {\n const metricClone = { ...metric };\n if (typeof metric.value === \"object\" && metric.value !== null) {\n metricClone.value = { ...metric.value };\n }\n return metricClone;\n };\n const canUpdate = () => {\n try {\n const func = config.canUpdateMetric ?? (() => true);\n return func();\n }\n catch {\n return true;\n }\n };\n return {\n init,\n createSystem,\n updateSystem,\n createMetric,\n updateMetric,\n };\n}\n\nvar Helpers = {\n validate: (definition, parent, transport) => {\n if (definition === null || typeof definition !== \"object\") {\n throw new Error(\"Missing definition\");\n }\n if (parent === null || typeof parent !== \"object\") {\n throw new Error(\"Missing parent\");\n }\n if (transport === null || typeof transport !== \"object\") {\n throw new Error(\"Missing transport\");\n }\n },\n};\n\nclass BaseMetric {\n definition;\n system;\n transport;\n value;\n type;\n path = [];\n name;\n description;\n get repo() {\n return this.system?.repo;\n }\n get id() { return `${this.system.path}/${name}`; }\n constructor(definition, system, transport, value, type) {\n this.definition = definition;\n this.system = system;\n this.transport = transport;\n this.value = value;\n this.type = type;\n Helpers.validate(definition, system, transport);\n this.path = system.path.slice(0);\n this.path.push(system.name);\n this.name = definition.name;\n this.description = definition.description;\n transport.createMetric(this);\n }\n update(newValue) {\n this.value = newValue;\n return this.transport.updateMetric(this);\n }\n}\n\nclass NumberMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.NUMBER);\n }\n incrementBy(num) {\n this.update(this.value + num);\n }\n increment() {\n this.incrementBy(1);\n }\n decrement() {\n this.incrementBy(-1);\n }\n decrementBy(num) {\n this.incrementBy(num * -1);\n }\n}\n\nclass ObjectMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.OBJECT);\n }\n update(newValue) {\n this.mergeValues(newValue);\n return this.transport.updateMetric(this);\n }\n mergeValues(values) {\n return Object.keys(this.value).forEach((k) => {\n if (typeof values[k] !== \"undefined\") {\n this.value[k] = values[k];\n }\n });\n }\n}\n\nclass StringMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.STRING);\n }\n}\n\nclass TimestampMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.TIMESTAMP);\n }\n now() {\n this.update(new Date());\n }\n}\n\nfunction system(name, repo, protocol, parent, description) {\n if (!repo) {\n throw new Error(\"Repository is required\");\n }\n if (!protocol) {\n throw new Error(\"Transport is required\");\n }\n const _transport = protocol;\n const _name = name;\n const _description = description || \"\";\n const _repo = repo;\n const _parent = parent;\n const _path = _buildPath(parent);\n let _state = {};\n const id = _arrayToString(_path, \"/\") + name;\n const root = repo.root;\n const _subSystems = [];\n const _metrics = [];\n function subSystem(nameSystem, descriptionSystem) {\n if (!nameSystem || nameSystem.length === 0) {\n throw new Error(\"name is required\");\n }\n const match = _subSystems.filter((s) => s.name === nameSystem);\n if (match.length > 0) {\n return match[0];\n }\n const _system = system(nameSystem, _repo, _transport, me, descriptionSystem);\n _subSystems.push(_system);\n return _system;\n }\n function setState(state, stateDescription) {\n _state = { state, description: stateDescription };\n _transport.updateSystem(me, _state);\n }\n function stringMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.STRING, value, (metricDef) => new StringMetric(metricDef, me, _transport, value));\n }\n function numberMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.NUMBER, value, (metricDef) => new NumberMetric(metricDef, me, _transport, value));\n }\n function objectMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.OBJECT, value, (metricDef) => new ObjectMetric(metricDef, me, _transport, value));\n }\n function timestampMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.TIMESTAMP, value, (metricDef) => new TimestampMetric(metricDef, me, _transport, value));\n }\n function _getOrCreateMetric(metricObject, expectedType, value, createMetric) {\n let metricDef = { name: \"\" };\n if (typeof metricObject === \"string\") {\n metricDef = { name: metricObject };\n }\n else {\n metricDef = metricObject;\n }\n const matching = _metrics.filter((shadowedMetric) => shadowedMetric.name === metricDef.name);\n if (matching.length > 0) {\n const existing = matching[0];\n if (existing.type !== expectedType) {\n throw new Error(`A metric named ${metricDef.name} is already defined with different type.`);\n }\n if (typeof value !== \"undefined\") {\n existing\n .update(value)\n .catch(() => { });\n }\n return existing;\n }\n const metric = createMetric(metricDef);\n _metrics.push(metric);\n return metric;\n }\n function _buildPath(shadowedSystem) {\n if (!shadowedSystem || !shadowedSystem.parent) {\n return [];\n }\n const path = _buildPath(shadowedSystem.parent);\n path.push(shadowedSystem.name);\n return path;\n }\n function _arrayToString(path, separator) {\n return ((path && path.length > 0) ? path.join(separator) : \"\");\n }\n function getAggregateState() {\n const aggState = [];\n if (Object.keys(_state).length > 0) {\n aggState.push({\n name: _name,\n path: _path,\n state: _state.state,\n description: _state.description,\n });\n }\n _subSystems.forEach((shadowedSubSystem) => {\n const result = shadowedSubSystem.getAggregateState();\n if (result.length > 0) {\n aggState.push(...result);\n }\n });\n return aggState;\n }\n const me = {\n get name() {\n return _name;\n },\n get description() {\n return _description;\n },\n get repo() {\n return _repo;\n },\n get parent() {\n return _parent;\n },\n path: _path,\n id,\n root,\n get subSystems() {\n return _subSystems;\n },\n get metrics() {\n return _metrics;\n },\n subSystem,\n getState: () => {\n return _state;\n },\n setState,\n stringMetric,\n timestampMetric,\n objectMetric,\n numberMetric,\n getAggregateState,\n };\n _transport.createSystem(me);\n return me;\n}\n\nclass Repository {\n root;\n constructor(options, protocol) {\n protocol.init(this);\n this.root = system(\"\", this, protocol);\n this.addSystemMetrics(this.root, options.clickStream || options.clickStream === undefined);\n }\n addSystemMetrics(rootSystem, useClickStream) {\n if (typeof navigator !== \"undefined\") {\n rootSystem.stringMetric(\"UserAgent\", navigator.userAgent);\n }\n if (useClickStream && typeof document !== \"undefined\") {\n const clickStream = rootSystem.subSystem(\"ClickStream\");\n const documentClickHandler = (e) => {\n if (!e.target) {\n return;\n }\n const target = e.target;\n const className = target ? target.getAttribute(\"class\") ?? \"\" : \"\";\n clickStream.objectMetric(\"LastBrowserEvent\", {\n type: \"click\",\n timestamp: new Date(),\n target: {\n className,\n id: target.id,\n type: \"<\" + target.tagName.toLowerCase() + \">\",\n href: target.href || \"\",\n },\n });\n };\n clickStream.objectMetric(\"Page\", {\n title: document.title,\n page: window.location.href,\n });\n if (document.addEventListener) {\n document.addEventListener(\"click\", documentClickHandler);\n }\n else {\n document.attachEvent(\"onclick\", documentClickHandler);\n }\n }\n rootSystem.stringMetric(\"StartTime\", (new Date()).toString());\n const urlMetric = rootSystem.stringMetric(\"StartURL\", \"\");\n const appNameMetric = rootSystem.stringMetric(\"AppName\", \"\");\n if (typeof window !== \"undefined\") {\n if (typeof window.location !== \"undefined\") {\n const startUrl = window.location.href;\n urlMetric.update(startUrl);\n }\n if (typeof window.glue42gd !== \"undefined\") {\n appNameMetric.update(window.glue42gd.appName);\n }\n }\n }\n}\n\nclass NullProtocol {\n init(repo) {\n }\n createSystem(system) {\n return Promise.resolve();\n }\n updateSystem(metric, state) {\n return Promise.resolve();\n }\n createMetric(metric) {\n return Promise.resolve();\n }\n updateMetric(metric) {\n return Promise.resolve();\n }\n}\n\nclass PerfTracker {\n api;\n lastCount = 0;\n initialPublishTimeout = 10 * 1000;\n publishInterval = 60 * 1000;\n system;\n constructor(api, initialPublishTimeout, publishInterval) {\n this.api = api;\n this.initialPublishTimeout = initialPublishTimeout ?? this.initialPublishTimeout;\n this.publishInterval = publishInterval ?? this.publishInterval;\n this.scheduleCollection();\n this.system = this.api.subSystem(\"performance\", \"Performance data published by the web application\");\n }\n scheduleCollection() {\n setTimeout(() => {\n this.collect();\n setInterval(() => {\n this.collect();\n }, this.publishInterval);\n }, this.initialPublishTimeout);\n }\n collect() {\n try {\n this.collectMemory();\n this.collectEntries();\n }\n catch {\n }\n }\n collectMemory() {\n const memory = window.performance.memory;\n this.system.stringMetric(\"memory\", JSON.stringify({\n totalJSHeapSize: memory.totalJSHeapSize,\n usedJSHeapSize: memory.usedJSHeapSize\n }));\n }\n collectEntries() {\n const allEntries = window.performance.getEntries();\n if (allEntries.length <= this.lastCount) {\n return;\n }\n this.lastCount = allEntries.length;\n const jsonfiedEntries = allEntries.map((i) => i.toJSON());\n this.system.stringMetric(\"entries\", JSON.stringify(jsonfiedEntries));\n }\n}\n\nvar metrics = (options) => {\n let protocol;\n if (!options.connection || typeof options.connection !== \"object\") {\n protocol = new NullProtocol();\n }\n else {\n protocol = gw3(options.connection, options);\n }\n const repo = new Repository(options, protocol);\n let rootSystem = repo.root;\n if (!options.disableAutoAppSystem) {\n rootSystem = rootSystem.subSystem(\"App\");\n }\n const api = addFAVSupport(rootSystem);\n initPerf(api, options.pagePerformanceMetrics);\n return api;\n};\nfunction initPerf(api, config) {\n if (typeof window === \"undefined\") {\n return;\n }\n const perfConfig = window?.glue42gd?.metrics?.pagePerformanceMetrics;\n if (perfConfig) {\n config = perfConfig;\n }\n if (config?.enabled) {\n new PerfTracker(api, config.initialPublishTimeout, config.publishInterval);\n }\n}\nfunction addFAVSupport(system) {\n const reportingSystem = system.subSystem(\"reporting\");\n const def = {\n name: \"features\"\n };\n let featureMetric;\n const featureMetricFunc = (name, action, payload) => {\n if (typeof name === \"undefined\" || name === \"\") {\n throw new Error(\"name is mandatory\");\n }\n else if (typeof action === \"undefined\" || action === \"\") {\n throw new Error(\"action is mandatory\");\n }\n else if (typeof payload === \"undefined\" || payload === \"\") {\n throw new Error(\"payload is mandatory\");\n }\n if (!featureMetric) {\n featureMetric = reportingSystem.objectMetric(def, { name, action, payload });\n }\n else {\n featureMetric.update({\n name,\n action,\n payload\n });\n }\n };\n system.featureMetric = featureMetricFunc;\n return system;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\ncreateRegistry.default = createRegistry;\nvar lib = createRegistry;\n\n\nvar CallbackRegistryFactory = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass InProcTransport {\n gw;\n registry = CallbackRegistryFactory();\n client;\n constructor(settings, logger) {\n this.gw = settings.facade;\n this.gw.connect((_client, message) => {\n this.messageHandler(message);\n }).then((client) => {\n this.client = client;\n });\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n if (this.client) {\n this.client.send(msg);\n return Promise.resolve(undefined);\n }\n else {\n return Promise.reject(`not connected`);\n }\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"in-memory\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass SharedWorkerTransport {\n logger;\n worker;\n registry = CallbackRegistryFactory();\n constructor(workerFile, logger) {\n this.logger = logger;\n this.worker = new SharedWorker(workerFile);\n this.worker.port.onmessage = (e) => {\n this.messageHandler(e.data);\n };\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n this.worker.port.postMessage(msg);\n return Promise.resolve();\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"shared-worker\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass Utils {\n static isNode() {\n if (typeof Utils._isNode !== \"undefined\") {\n return Utils._isNode;\n }\n if (typeof window !== \"undefined\") {\n Utils._isNode = false;\n return false;\n }\n try {\n Utils._isNode = Object.prototype.toString.call(global.process) === \"[object process]\";\n }\n catch (e) {\n Utils._isNode = false;\n }\n return Utils._isNode;\n }\n static _isNode;\n}\n\nclass PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n resolve;\n reject;\n promise;\n rejected = false;\n resolved = false;\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\n\nconst timers = {};\nfunction getAllTimers() {\n return timers;\n}\nfunction timer (timerName) {\n const existing = timers[timerName];\n if (existing) {\n return existing;\n }\n const marks = [];\n function now() {\n return new Date().getTime();\n }\n const startTime = now();\n mark(\"start\", startTime);\n let endTime;\n let period;\n function stop() {\n endTime = now();\n mark(\"end\", endTime);\n period = endTime - startTime;\n return period;\n }\n function mark(name, time) {\n const currentTime = time ?? now();\n let diff = 0;\n if (marks.length > 0) {\n diff = currentTime - marks[marks.length - 1].time;\n }\n marks.push({ name, time: currentTime, diff });\n }\n const timerObj = {\n get startTime() {\n return startTime;\n },\n get endTime() {\n return endTime;\n },\n get period() {\n return period;\n },\n stop,\n mark,\n marks\n };\n timers[timerName] = timerObj;\n return timerObj;\n}\n\nconst WebSocketConstructor = Utils.isNode() ? require(\"ws\") : window.WebSocket;\nclass WS {\n ws;\n logger;\n settings;\n startupTimer = timer(\"connection\");\n _running = true;\n _registry = CallbackRegistryFactory();\n wsRequests = [];\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n if (!this.settings.ws) {\n throw new Error(\"ws is missing\");\n }\n }\n onMessage(callback) {\n return this._registry.add(\"onMessage\", callback);\n }\n send(msg, options) {\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(() => {\n try {\n this.ws?.send(msg);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n });\n }\n open() {\n this.logger.info(\"opening ws...\");\n this._running = true;\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(resolve, reject);\n });\n }\n close() {\n this._running = false;\n if (this.ws) {\n this.ws.close();\n }\n return Promise.resolve();\n }\n onConnectedChanged(callback) {\n return this._registry.add(\"onConnectedChanged\", callback);\n }\n name() {\n return this.settings.ws;\n }\n reconnect() {\n this.ws?.close();\n const pw = new PromiseWrapper();\n this.waitForSocketConnection(() => {\n pw.resolve();\n });\n return pw.promise;\n }\n waitForSocketConnection(callback, failed) {\n failed = failed ?? (() => { });\n if (!this._running) {\n failed(`wait for socket on ${this.settings.ws} failed - socket closed by user`);\n return;\n }\n if (this.ws?.readyState === 1) {\n callback();\n return;\n }\n this.wsRequests.push({ callback, failed });\n if (this.wsRequests.length > 1) {\n return;\n }\n this.openSocket();\n }\n async openSocket(retryInterval, retriesLeft) {\n this.logger.info(`opening ws to ${this.settings.ws}, retryInterval: ${retryInterval}, retriesLeft: ${retriesLeft}...`);\n this.startupTimer.mark(\"opening-socket\");\n if (retryInterval === undefined) {\n retryInterval = this.settings.reconnectInterval;\n }\n if (typeof retriesLeft === \"undefined\") {\n retriesLeft = this.settings.reconnectAttempts;\n }\n if (retriesLeft !== undefined) {\n if (retriesLeft === 0) {\n this.notifyForSocketState(`wait for socket on ${this.settings.ws} failed - no more retries left`);\n return;\n }\n this.logger.debug(`will retry ${retriesLeft} more times (every ${retryInterval} ms)`);\n }\n try {\n await this.initiateSocket();\n this.startupTimer.mark(\"socket-initiated\");\n this.notifyForSocketState();\n }\n catch {\n setTimeout(() => {\n const retries = retriesLeft === undefined ? undefined : retriesLeft - 1;\n this.openSocket(retryInterval, retries);\n }, retryInterval);\n }\n }\n initiateSocket() {\n const pw = new PromiseWrapper();\n this.logger.debug(`initiating ws to ${this.settings.ws}...`);\n this.ws = new WebSocketConstructor(this.settings.ws ?? \"\");\n let wasOpen = false;\n this.ws.onerror = (err) => {\n let reason;\n try {\n reason = JSON.stringify(err);\n }\n catch (error) {\n const seen = new WeakSet();\n const replacer = (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n if (value instanceof Error) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack\n };\n }\n return value;\n };\n reason = JSON.stringify(err, replacer);\n }\n this.logger.info(`ws error - reason: ${reason}`);\n pw.reject(\"error\");\n if (wasOpen) {\n wasOpen = false;\n this.notifyForSocketState(\"error\");\n }\n this.notifyStatusChanged(false, reason);\n };\n this.ws.onclose = (err) => {\n this.logger.info(`ws closed - code: ${err?.code} reason: ${err?.reason}`);\n pw.reject(\"closed\");\n if (wasOpen) {\n wasOpen = false;\n this.notifyForSocketState(\"closed\");\n }\n this.notifyStatusChanged(false);\n };\n this.ws.onopen = () => {\n this.startupTimer.mark(\"ws-opened\");\n this.logger.info(`ws opened ${this.settings.identity?.application}`);\n pw.resolve();\n wasOpen = true;\n this.notifyStatusChanged(true);\n };\n this.ws.onmessage = (message) => {\n this._registry.execute(\"onMessage\", message.data);\n };\n return pw.promise;\n }\n notifyForSocketState(error) {\n this.wsRequests.forEach((wsRequest) => {\n if (error) {\n if (wsRequest.failed) {\n wsRequest.failed(error);\n }\n }\n else {\n wsRequest.callback();\n }\n });\n this.wsRequests = [];\n }\n notifyStatusChanged(status, reason) {\n this._registry.execute(\"onConnectedChanged\", status, reason);\n }\n}\n\nclass MessageReplayerImpl {\n specs;\n specsNames = [];\n messages = {};\n isDone;\n subs = {};\n subsRefCount = {};\n connection;\n constructor(specs) {\n this.specs = {};\n for (const spec of specs) {\n this.specs[spec.name] = spec;\n this.specsNames.push(spec.name);\n }\n }\n init(connection) {\n this.connection = connection;\n for (const name of this.specsNames) {\n for (const type of this.specs[name].types) {\n let refCount = this.subsRefCount[type];\n if (!refCount) {\n refCount = 0;\n }\n refCount += 1;\n this.subsRefCount[type] = refCount;\n if (refCount > 1) {\n continue;\n }\n const sub = connection.on(type, (msg) => this.processMessage(type, msg));\n this.subs[type] = sub;\n }\n }\n }\n processMessage(type, msg) {\n if (this.isDone || !msg) {\n return;\n }\n for (const name of this.specsNames) {\n if (this.specs[name].types.indexOf(type) !== -1) {\n const messages = this.messages[name] || [];\n this.messages[name] = messages;\n messages.push(msg);\n }\n }\n }\n drain(name, callback) {\n if (callback) {\n (this.messages[name] || []).forEach(callback);\n }\n delete this.messages[name];\n for (const type of this.specs[name].types) {\n this.subsRefCount[type] -= 1;\n if (this.subsRefCount[type] <= 0) {\n this.connection?.off(this.subs[type]);\n delete this.subs[type];\n delete this.subsRefCount[type];\n }\n }\n delete this.specs[name];\n if (!this.specs.length) {\n this.isDone = true;\n }\n }\n}\n\n/* @ts-self-types=\"./index.d.ts\" */\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size | 0;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n};\n\nconst PromisePlus = (executor, timeoutMilliseconds, timeoutMessage) => {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n reject(message);\n }, timeoutMilliseconds);\n const providedPromise = new Promise(executor);\n providedPromise\n .then((result) => {\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n\nclass WebPlatformTransport {\n settings;\n logger;\n identity;\n isPreferredActivated;\n _connectionProtocolVersion;\n _communicationId;\n publicWindowId;\n selfAssignedWindowId;\n iAmConnected = false;\n parentReady = false;\n rejected = false;\n parentPingResolve;\n parentPingInterval;\n connectionResolve;\n extConnectionResolve;\n extConnectionReject;\n connectionReject;\n port;\n myClientId;\n extContentAvailable = false;\n extContentConnecting = false;\n extContentConnected = false;\n parentWindowId;\n parentInExtMode = false;\n webNamespace = \"g42_core_web\";\n parent;\n parentType;\n parentPingTimeout = 5000;\n connectionRequestTimeout = 7000;\n defaultTargetString = \"*\";\n registry = CallbackRegistryFactory();\n messages = {\n connectionAccepted: { name: \"connectionAccepted\", handle: this.handleConnectionAccepted.bind(this) },\n connectionRejected: { name: \"connectionRejected\", handle: this.handleConnectionRejected.bind(this) },\n connectionRequest: { name: \"connectionRequest\", handle: this.handleConnectionRequest.bind(this) },\n parentReady: {\n name: \"parentReady\", handle: () => {\n }\n },\n parentPing: { name: \"parentPing\", handle: this.handleParentPing.bind(this) },\n platformPing: { name: \"platformPing\", handle: this.handlePlatformPing.bind(this) },\n platformReady: { name: \"platformReady\", handle: this.handlePlatformReady.bind(this) },\n clientUnload: { name: \"clientUnload\", handle: () => { } },\n manualUnload: { name: \"manualUnload\", handle: this.handleManualUnload.bind(this) },\n extConnectionResponse: { name: \"extConnectionResponse\", handle: this.handleExtConnectionResponse.bind(this) },\n extSetupRequest: { name: \"extSetupRequest\", handle: this.handleExtSetupRequest.bind(this) },\n gatewayDisconnect: { name: \"gatewayDisconnect\", handle: this.handleGatewayDisconnect.bind(this) },\n gatewayInternalConnect: { name: \"gatewayInternalConnect\", handle: this.handleGatewayInternalConnect.bind(this) }\n };\n constructor(settings, logger, identity) {\n this.settings = settings;\n this.logger = logger;\n this.identity = identity;\n this.extContentAvailable = !!window.glue42ext;\n this.setUpMessageListener();\n this.setUpUnload();\n this.setupPlatformUnloadListener();\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : undefined;\n }\n manualSetReadyState() {\n this.iAmConnected = true;\n this.parentReady = true;\n }\n get transportWindowId() {\n return this.publicWindowId;\n }\n get communicationId() {\n return this._communicationId;\n }\n async sendObject(msg) {\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: msg }, window.origin);\n }\n if (!this.port) {\n throw new Error(\"Cannot send message, because the port was not opened yet\");\n }\n this.port.postMessage(msg);\n }\n get isObjectBasedTransport() {\n return true;\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n send() {\n return Promise.reject(\"not supported\");\n }\n onConnectedChanged(callback) {\n return this.registry.add(\"onConnectedChanged\", callback);\n }\n async open() {\n this.logger.debug(\"opening a connection to the web platform gateway.\");\n await this.connect();\n this.notifyStatusChanged(true);\n }\n close() {\n this.logger.debug(`closing connection - clientId: ${this.myClientId}, windowId: ${this.identity?.windowId || \"unknown\"}, client connected: ${this.iAmConnected}`);\n const message = {\n glue42core: {\n type: this.messages.gatewayDisconnect.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.port?.postMessage(message);\n this.parentReady = false;\n this.notifyStatusChanged(false, \"manual reconnection\");\n return Promise.resolve();\n }\n name() {\n return \"web-platform\";\n }\n async reconnect() {\n await this.close();\n return Promise.resolve();\n }\n initiateInternalConnection() {\n return new Promise((resolve, reject) => {\n this.logger.debug(\"opening an internal web platform connection\");\n this.port = this.settings.port;\n if (this.iAmConnected) {\n this.logger.warn(\"cannot open a new connection, because this client is currently connected\");\n return;\n }\n this.port.onmessage = (event) => {\n if (this.iAmConnected && !event.data?.glue42core) {\n this.registry.execute(\"onMessage\", event.data);\n return;\n }\n const data = event.data?.glue42core;\n if (!data) {\n return;\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.success) {\n this.publicWindowId = this.settings.windowId;\n if (this.identity && this.publicWindowId) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.publicWindowId;\n }\n resolve();\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.error) {\n reject(data.error);\n }\n };\n this.port.postMessage({\n glue42core: {\n type: this.messages.gatewayInternalConnect.name\n }\n });\n });\n }\n initiateRemoteConnection(target) {\n return PromisePlus((resolve, reject) => {\n this.connectionResolve = resolve;\n this.connectionReject = reject;\n this.myClientId = this.myClientId ?? nanoid(10);\n const bridgeInstanceId = this.getMyWindowId() || nanoid(10);\n const request = {\n glue42core: {\n type: this.messages.connectionRequest.name,\n clientId: this.myClientId,\n clientType: \"child\",\n bridgeInstanceId,\n selfAssignedWindowId: this.selfAssignedWindowId\n }\n };\n this.logger.debug(`sending connection request - clientId: ${this.myClientId}`);\n if (this.extContentConnecting) {\n request.glue42core.clientType = \"child\";\n request.glue42core.bridgeInstanceId = this.myClientId;\n request.glue42core.parentWindowId = this.parentWindowId;\n return window.postMessage(request, window.origin);\n }\n if (!target) {\n throw new Error(\"Cannot send a connection request, because no glue target was specified!\");\n }\n target.postMessage(request, this.defaultTargetString);\n }, this.connectionRequestTimeout, \"The connection to the target glue window timed out\");\n }\n async isParentCheckSuccess(parentCheck) {\n try {\n await parentCheck;\n return { success: true };\n }\n catch (error) {\n return { success: false };\n }\n }\n setUpMessageListener() {\n if (this.settings.port) {\n this.logger.debug(\"skipping generic message listener, because this is an internal client\");\n return;\n }\n this.logger.debug(\"setting up window message listener\");\n window.addEventListener(\"message\", (event) => {\n const data = event.data?.glue42core;\n if (!data || this.rejected) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n if (!this.checkMessageTypeValid(data.type)) {\n this.logger.error(`cannot handle the incoming glue42 core message, because the type is invalid: ${data.type}`);\n return;\n }\n const messageType = data.type;\n this.logger.debug(`received valid glue42core message of type: ${messageType}`);\n this.messages[messageType].handle(event);\n });\n }\n setUpUnload() {\n if (this.settings.port) {\n this.logger.debug(\"skipping unload event listener, because this is an internal client\");\n return;\n }\n this.logger.debug(\"setting up unload event listeners\");\n window.addEventListener(\"beforeunload\", () => {\n if (this._connectionProtocolVersion) {\n return;\n }\n this.signalClientDisappearing();\n });\n window.addEventListener(\"pagehide\", () => {\n if (!this._connectionProtocolVersion) {\n return;\n }\n this.signalClientDisappearing();\n });\n }\n signalClientDisappearing() {\n if (this.extContentConnected) {\n return;\n }\n this.logger.debug(`signaling client disappearing for clientId: ${this.myClientId}`);\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.parent?.postMessage(message, this.defaultTargetString);\n this.port?.postMessage(message);\n }\n handlePlatformReady(event) {\n this.logger.debug(\"the web platform gave the ready signal\");\n this.parentReady = true;\n if (this.parentPingResolve) {\n this.parentPingResolve();\n delete this.parentPingResolve;\n }\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n this.parent = event.source;\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : \"window\";\n }\n handleConnectionAccepted(event) {\n const data = event.data?.glue42core;\n if (this.myClientId !== data.clientId) {\n return this.logger?.debug(`ignoring a connection accepted signal, because it is not targeted at me. My id: ${this.myClientId}, the id in the message: ${data.clientId}`);\n }\n return this.handleAcceptanceOfMyRequest(data);\n }\n handleAcceptanceOfMyRequest(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me.\");\n this.isPreferredActivated = data.isPreferredActivated;\n if (this.extContentConnecting) {\n return this.processExtContentConnection(data);\n }\n if (!data.port) {\n this.logger.error(\"cannot set up my connection, because I was not provided with a port\");\n return;\n }\n this._connectionProtocolVersion = data.connectionProtocolVersion;\n this.publicWindowId = this.getMyWindowId();\n if (this.identity) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.identity.instance ? this.identity.instance : this.publicWindowId || nanoid(10);\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n this._communicationId = data.communicationId;\n this.port = data.port;\n this.port.onmessage = (e) => this.registry.execute(\"onMessage\", e.data);\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n this.logger.error(\"unable to call the connection resolve, because no connection promise was found\");\n }\n processExtContentConnection(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me for extension content connection.\");\n this.extContentConnecting = false;\n this.extContentConnected = true;\n this.publicWindowId = this.parentWindowId || this.myClientId;\n if (this.extContentConnecting && this.identity) {\n this.identity.windowId = this.publicWindowId;\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n window.addEventListener(\"message\", (event) => {\n const extData = event.data?.glue42ExtInc;\n if (!extData) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n this.registry.execute(\"onMessage\", extData);\n });\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n }\n handleConnectionRejected(event) {\n this.logger.debug(\"handling a connection rejection. Most likely the reason is that this window was not created by a glue API call\");\n if (!this.connectionReject) {\n return;\n }\n const errorMsg = typeof event.data.glue42core?.error === \"string\"\n ? `Connection was rejected. ${event.data.glue42core?.error}`\n : \"The platform connection was rejected. Most likely because this window was not created by a glue API call\";\n this.connectionReject(errorMsg);\n delete this.connectionReject;\n }\n handleConnectionRequest() {\n if (this.extContentConnecting) {\n this.logger.debug(\"This connection request event is targeted at the extension content\");\n return;\n }\n }\n handleParentPing(event) {\n if (!this.parentReady) {\n this.logger.debug(\"my parent is not ready, I am ignoring the parent ping\");\n return;\n }\n if (!this.iAmConnected) {\n this.logger.debug(\"i am not fully connected yet, I am ignoring the parent ping\");\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.parentReady.name\n }\n };\n if (this.extContentConnected) {\n message.glue42core.extMode = { windowId: this.myClientId };\n }\n const source = event.source;\n this.logger.debug(\"responding to a parent ping with a ready message\");\n source.postMessage(message, event.origin);\n }\n setupPlatformUnloadListener() {\n this.logger.debug(\"setting up platform unload listener\");\n this.onMessage((msg) => {\n if (msg.type === \"platformUnload\") {\n this.logger.debug(\"detected a web platform unload\");\n this.parentReady = false;\n this.notifyStatusChanged(false, \"Gateway unloaded\");\n }\n });\n }\n handleManualUnload() {\n this.logger.debug(\"handling manual unload\");\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: message }, window.origin);\n }\n this.port?.postMessage(message);\n }\n handlePlatformPing() {\n return;\n }\n notifyStatusChanged(status, reason) {\n this.logger.debug(`status changed - connected: ${status}, reason: ${reason || \"none\"}`);\n this.iAmConnected = status;\n this.registry.execute(\"onConnectedChanged\", status, reason);\n }\n checkMessageTypeValid(typeToValidate) {\n return typeof typeToValidate === \"string\" && !!this.messages[typeToValidate];\n }\n requestConnectionPermissionFromExt() {\n return this.waitForContentScript()\n .then(() => PromisePlus((resolve, reject) => {\n this.extConnectionResolve = resolve;\n this.extConnectionReject = reject;\n const message = {\n glue42core: {\n type: \"extSetupRequest\"\n }\n };\n this.logger.debug(\"permission request to the extension content script was sent\");\n window.postMessage(message, window.origin);\n }, this.parentPingTimeout, \"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection timed out\"));\n }\n handleExtConnectionResponse(event) {\n const data = event.data?.glue42core;\n if (!data.approved) {\n return this.extConnectionReject ? this.extConnectionReject(\"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection was rejected\") : undefined;\n }\n if (this.extConnectionResolve) {\n this.extConnectionResolve();\n delete this.extConnectionResolve;\n }\n this.extContentConnecting = true;\n this.parentType = \"extension\";\n this.logger.debug(\"The extension connection was approved, proceeding.\");\n }\n handleExtSetupRequest() {\n return;\n }\n handleGatewayDisconnect() {\n return;\n }\n handleGatewayInternalConnect() {\n return;\n }\n waitForContentScript() {\n const contentReady = !!window.glue42ext?.content;\n if (contentReady) {\n return Promise.resolve();\n }\n return PromisePlus((resolve) => {\n window.addEventListener(\"Glue42EXTReady\", () => {\n resolve();\n });\n }, this.connectionRequestTimeout, \"The content script was available, but was never heard to be ready\");\n }\n async connect() {\n if (this.settings.port) {\n await this.initiateInternalConnection();\n this.logger.debug(\"internal web platform connection completed\");\n return;\n }\n this.logger.debug(\"opening a client web platform connection\");\n await this.findParent();\n await this.initiateRemoteConnection(this.parent);\n this.logger.debug(\"the client is connected\");\n }\n async findParent() {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const myInsideParents = this.getPossibleParentsInWindow(window);\n const myOutsideParents = this.getPossibleParentsOutsideWindow(window.top?.opener, window.top);\n const uniqueParents = new Set([...myInsideParents, ...myOutsideParents]);\n if (!uniqueParents.size && !this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n if (!uniqueParents.size && this.extContentAvailable) {\n await this.requestConnectionPermissionFromExt();\n return;\n }\n const defaultParentCheck = await this.isParentCheckSuccess(this.confirmParent(Array.from(uniqueParents)));\n if (defaultParentCheck.success) {\n this.logger.debug(\"The default parent was found!\");\n return;\n }\n if (!this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n await this.requestConnectionPermissionFromExt();\n }\n getPossibleParentsInWindow(currentWindow) {\n return (!currentWindow?.parent || currentWindow === currentWindow.parent) ? [] : [currentWindow.parent, ...this.getPossibleParentsInWindow(currentWindow.parent)];\n }\n getPossibleParentsOutsideWindow(opener, current) {\n return (!opener || !current || opener === current) ? [] : [opener, ...this.getPossibleParentsInWindow(opener), ...this.getPossibleParentsOutsideWindow(opener.opener, opener)];\n }\n confirmParent(targets) {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const parentCheck = PromisePlus((resolve) => {\n this.parentPingResolve = resolve;\n const message = {\n glue42core: {\n type: this.messages.platformPing.name\n }\n };\n this.parentPingInterval = setInterval(() => {\n targets.forEach((target) => {\n target.postMessage(message, this.defaultTargetString);\n });\n }, 1000);\n }, this.parentPingTimeout, connectionNotPossibleMsg);\n parentCheck.catch(() => {\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n });\n return parentCheck;\n }\n getMyWindowId() {\n if (this.parentType === \"workspace\") {\n return window.name.substring(0, window.name.indexOf(\"#wsp\"));\n }\n if (window !== window.top) {\n return;\n }\n if (window.name?.includes(\"g42\")) {\n return window.name;\n }\n this.selfAssignedWindowId = this.selfAssignedWindowId || `g42-${nanoid(10)}`;\n return this.selfAssignedWindowId;\n }\n}\n\nconst waitForInvocations = (invocations, callback) => {\n let left = invocations;\n return () => {\n left--;\n if (left === 0) {\n callback();\n }\n };\n};\n\nclass AsyncSequelizer {\n minSequenceInterval;\n queue = [];\n isExecutingQueue = false;\n constructor(minSequenceInterval = 0) {\n this.minSequenceInterval = minSequenceInterval;\n }\n enqueue(action) {\n return new Promise((resolve, reject) => {\n this.queue.push({ action, resolve, reject });\n this.executeQueue();\n });\n }\n async executeQueue() {\n if (this.isExecutingQueue) {\n return;\n }\n this.isExecutingQueue = true;\n while (this.queue.length) {\n const operation = this.queue.shift();\n if (!operation) {\n this.isExecutingQueue = false;\n return;\n }\n try {\n const actionResult = await operation.action();\n operation.resolve(actionResult);\n }\n catch (error) {\n operation.reject(error);\n }\n await this.intervalBreak();\n }\n this.isExecutingQueue = false;\n }\n intervalBreak() {\n return new Promise((res) => setTimeout(res, this.minSequenceInterval));\n }\n}\n\nfunction domainSession (domain, connection, logger, successMessages, errorMessages) {\n if (domain == null) {\n domain = \"global\";\n }\n successMessages = successMessages ?? [\"success\"];\n errorMessages = errorMessages ?? [\"error\"];\n let isJoined = domain === \"global\";\n let tryReconnecting = false;\n let _latestOptions;\n let _connectionOn = false;\n const callbacks = CallbackRegistryFactory();\n connection.disconnected(handleConnectionDisconnected);\n connection.loggedIn(handleConnectionLoggedIn);\n connection.on(\"success\", (msg) => handleSuccessMessage(msg));\n connection.on(\"error\", (msg) => handleErrorMessage(msg));\n connection.on(\"result\", (msg) => handleSuccessMessage(msg));\n if (successMessages) {\n successMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleSuccessMessage(msg));\n });\n }\n if (errorMessages) {\n errorMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleErrorMessage(msg));\n });\n }\n const requestsMap = {};\n function join(options) {\n _latestOptions = options;\n return new Promise((resolve, reject) => {\n if (isJoined) {\n resolve({});\n return;\n }\n let joinPromise;\n if (domain === \"global\") {\n joinPromise = _connectionOn ? Promise.resolve({}) : Promise.reject(\"not connected to gateway\");\n }\n else {\n logger.debug(`joining domain ${domain}`);\n const joinMsg = {\n type: \"join\",\n destination: domain,\n domain: \"global\",\n options,\n };\n joinPromise = send(joinMsg);\n }\n joinPromise\n .then(() => {\n handleJoined();\n resolve({});\n })\n .catch((err) => {\n logger.debug(\"error joining \" + domain + \" domain: \" + JSON.stringify(err));\n reject(err);\n });\n });\n }\n function leave() {\n if (domain === \"global\") {\n return Promise.resolve();\n }\n logger.debug(\"stopping session \" + domain + \"...\");\n const leaveMsg = {\n type: \"leave\",\n destination: domain,\n domain: \"global\",\n };\n tryReconnecting = false;\n return send(leaveMsg)\n .then(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n })\n .catch(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n });\n }\n function handleJoined() {\n logger.debug(\"did join \" + domain);\n isJoined = true;\n const wasReconnect = tryReconnecting;\n tryReconnecting = false;\n callbacks.execute(\"onJoined\", wasReconnect);\n }\n function handleConnectionDisconnected() {\n logger.debug(\"connection is down\");\n _connectionOn = false;\n isJoined = false;\n tryReconnecting = true;\n Object.keys(requestsMap).forEach(requestId => {\n const request = requestsMap[requestId];\n if (request) {\n logger.trace(`failing pending request ${requestId} due to connection lost`);\n request.error({\n err: \"Connection lost - gateway connection was disconnected\"\n });\n }\n });\n callbacks.execute(\"onLeft\", { disconnected: true });\n }\n async function handleConnectionLoggedIn() {\n _connectionOn = true;\n if (tryReconnecting) {\n logger.debug(\"connection is now up - trying to reconnect...\");\n try {\n await join(_latestOptions);\n }\n catch {\n logger.trace(`failed to reconnect`);\n }\n }\n }\n function onJoined(callback) {\n if (isJoined) {\n callback(false);\n }\n return callbacks.add(\"onJoined\", callback);\n }\n function onLeft(callback) {\n if (!isJoined) {\n callback();\n }\n return callbacks.add(\"onLeft\", callback);\n }\n function handleErrorMessage(msg) {\n if (domain !== msg.domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.error(msg);\n }\n function handleSuccessMessage(msg) {\n if (msg.domain !== domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.success(msg);\n }\n function getNextRequestId() {\n return nanoid(10);\n }\n let queuedCalls = [];\n function send(msg, tag, options) {\n const ignore = [\"hello\", \"join\"];\n if (msg.type && ignore.indexOf(msg.type) === -1) {\n if (!isJoined) {\n console.warn(`trying to send a message (${msg.domain} ${msg.type}) but not connected, will queue`);\n const pw = new PromiseWrapper();\n queuedCalls.push({ msg, tag, options, pw });\n if (queuedCalls.length === 1) {\n const unsubscribe = onJoined(() => {\n logger.info(`joined - will now send queued messages (${queuedCalls.length} -> [${queuedCalls.map((m) => m.msg.type)}])`);\n queuedCalls.forEach((qm) => {\n send(qm.msg, qm.tag, qm.options)\n .then((t) => qm.pw.resolve(t))\n .catch((e) => qm.pw.reject(e));\n });\n queuedCalls = [];\n unsubscribe();\n });\n }\n return pw.promise;\n }\n }\n options = options ?? {};\n msg.request_id = msg.request_id ?? getNextRequestId();\n msg.domain = msg.domain ?? domain;\n if (!options.skipPeerId) {\n msg.peer_id = connection.peerId;\n }\n const requestId = msg.request_id;\n return new Promise((resolve, reject) => {\n requestsMap[requestId] = {\n success: (successMsg) => {\n delete requestsMap[requestId];\n successMsg._tag = tag;\n resolve(successMsg);\n },\n error: (errorMsg) => {\n console.warn(`Gateway error - ${JSON.stringify(errorMsg)}`);\n delete requestsMap[requestId];\n errorMsg._tag = tag;\n reject(errorMsg);\n },\n };\n connection\n .send(msg, options)\n .catch((err) => {\n requestsMap[requestId]?.error({ err });\n });\n });\n }\n function sendFireAndForget(msg) {\n msg.request_id = msg.request_id ? msg.request_id : getNextRequestId();\n msg.domain = msg.domain ?? domain;\n msg.peer_id = connection.peerId;\n return connection.send(msg);\n }\n return {\n join,\n leave,\n onJoined,\n onLeft,\n send,\n sendFireAndForget,\n on: (type, callback) => {\n connection.on(type, (msg) => {\n if (msg.domain !== domain) {\n return;\n }\n try {\n callback(msg);\n }\n catch (e) {\n logger.error(`Callback failed: ${e} \\n ${e.stack} \\n msg was: ${JSON.stringify(msg)}`, e);\n }\n });\n },\n loggedIn: (callback) => connection.loggedIn(callback),\n connected: (callback) => connection.connected(callback),\n disconnected: (callback) => connection.disconnected(callback),\n get peerId() {\n return connection.peerId;\n },\n get domain() {\n return domain;\n },\n };\n}\n\nclass Connection {\n settings;\n logger;\n protocolVersion = 3;\n peerId;\n token;\n info;\n resolvedIdentity;\n availableDomains;\n gatewayToken;\n replayer;\n messageHandlers = {};\n ids = 1;\n registry = CallbackRegistryFactory();\n _connected = false;\n isTrace = false;\n transport;\n _defaultTransport;\n _defaultAuth;\n _targetTransport;\n _targetAuth;\n _swapTransport = false;\n _switchInProgress = false;\n _transportSubscriptions = [];\n datePrefix = \"#T42_DATE#\";\n datePrefixLen = this.datePrefix.length;\n dateMinLen = this.datePrefixLen + 1;\n datePrefixFirstChar = this.datePrefix[0];\n _sequelizer = new AsyncSequelizer();\n _isLoggedIn = false;\n shouldTryLogin = true;\n pingTimer;\n sessions = [];\n globalDomain;\n initialLogin = true;\n initialLoginAttempts = 3;\n loginConfig;\n loginRetryInProgress = false;\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n settings = settings || {};\n settings.reconnectAttempts = settings.reconnectAttempts ?? 10;\n settings.reconnectInterval = settings.reconnectInterval ?? 1000;\n if (settings.inproc) {\n this.transport = new InProcTransport(settings.inproc, logger.subLogger(\"inMemory\"));\n }\n else if (settings.sharedWorker) {\n this.transport = new SharedWorkerTransport(settings.sharedWorker, logger.subLogger(\"shared-worker\"));\n }\n else if (settings.webPlatform) {\n this.transport = new WebPlatformTransport(settings.webPlatform, logger.subLogger(\"web-platform\"), settings.identity);\n }\n else if (settings.ws !== undefined) {\n this.transport = new WS(settings, logger.subLogger(\"ws\"));\n }\n else {\n throw new Error(\"No connection information specified\");\n }\n this.isTrace = logger.canPublish(\"trace\");\n logger.debug(`starting with ${this.transport.name()} transport`);\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n this._defaultTransport = this.transport;\n this.ping();\n }\n async switchTransport(settings) {\n return this._sequelizer.enqueue(async () => {\n if (!settings || typeof settings !== \"object\") {\n throw new Error(\"Cannot switch transports, because the settings are missing or invalid.\");\n }\n if (typeof settings.type === \"undefined\") {\n throw new Error(\"Cannot switch the transport, because the type is not defined\");\n }\n this.logger.trace(`Starting transport switch with settings: ${JSON.stringify(settings)}`);\n const switchTargetTransport = settings.type === \"secondary\" ? this.getNewSecondaryTransport(settings) : this._defaultTransport;\n this._targetTransport = switchTargetTransport;\n this._targetAuth = settings.type === \"secondary\" ? this.getNewSecondaryAuth(settings) : this._defaultAuth;\n const verifyPromise = this.verifyConnection();\n this._swapTransport = true;\n this._switchInProgress = true;\n this.logger.trace(\"The new transport has been set, closing the current transport\");\n await this.transport.close();\n try {\n await verifyPromise;\n const isSwitchSuccess = this.transport === switchTargetTransport;\n this.logger.info(`The reconnection after the switch was completed. Was the switch a success: ${isSwitchSuccess}`);\n this._switchInProgress = false;\n return { success: isSwitchSuccess };\n }\n catch (error) {\n this.logger.info(\"The reconnection after the switch timed out, reverting back to the default transport.\");\n this.switchTransport({ type: \"default\" });\n this._switchInProgress = false;\n return { success: false };\n }\n });\n }\n onLibReAnnounced(callback) {\n return this.registry.add(\"libReAnnounced\", callback);\n }\n setLibReAnnounced(lib) {\n this.registry.execute(\"libReAnnounced\", lib);\n }\n send(message, options) {\n if (this.transport.sendObject &&\n this.transport.isObjectBasedTransport) {\n const msg = this.createObjectMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${JSON.stringify(msg)}`);\n }\n return this.transport.sendObject(msg, options);\n }\n else {\n const strMessage = this.createStringMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${strMessage}`);\n }\n return this.transport.send(strMessage, options);\n }\n }\n on(type, messageHandler) {\n type = type.toLowerCase();\n if (this.messageHandlers[type] === undefined) {\n this.messageHandlers[type] = {};\n }\n const id = this.ids++;\n this.messageHandlers[type][id] = messageHandler;\n return {\n type,\n id,\n };\n }\n off(info) {\n delete this.messageHandlers[info.type.toLowerCase()][info.id];\n }\n get isConnected() {\n return this._isLoggedIn;\n }\n connected(callback) {\n return this.loggedIn(() => {\n const currentServer = this.transport.name();\n callback(currentServer);\n });\n }\n disconnected(callback) {\n return this.registry.add(\"disconnected\", callback);\n }\n async login(authRequest, reconnect) {\n this.logger.debug(`Login initiated - reconnect: ${reconnect}, transport: ${this.transport.name()}`);\n if (!this._defaultAuth) {\n this._defaultAuth = authRequest;\n }\n if (this._swapTransport) {\n this.logger.trace(\"Detected a transport swap, swapping transports\");\n const newAuth = this.transportSwap();\n authRequest = newAuth ?? authRequest;\n }\n try {\n await this.transport.open();\n this.logger.debug(`Transport: ${this.transport.name()} opened, logging in`);\n timer(\"connection\").mark(\"transport-opened\");\n const identity = await this.loginCore(authRequest, reconnect);\n this.logger.debug(`Logged in with identity: ${JSON.stringify(identity)}`);\n timer(\"connection\").mark(\"protocol-logged-in\");\n return identity;\n }\n catch (error) {\n if (this._switchInProgress) {\n this.logger.debug(\"An error while logging in after a transport swap, preparing a default swap.\");\n this.prepareDefaultSwap();\n }\n throw new Error(error);\n }\n }\n async logout() {\n await this.logoutCore();\n await this.transport.close();\n }\n loggedIn(callback) {\n if (this._isLoggedIn) {\n callback();\n }\n return this.registry.add(\"onLoggedIn\", callback);\n }\n domain(domain, successMessages, errorMessages) {\n let session = this.sessions.find((s) => s.domain === domain);\n if (!session) {\n session = domainSession(domain, this, this.logger.subLogger(`domain=${domain}`), successMessages, errorMessages);\n this.sessions.push(session);\n }\n return session;\n }\n authToken() {\n const createTokenReq = {\n domain: \"global\",\n type: \"create-token\"\n };\n if (!this.globalDomain) {\n return Promise.reject(new Error(\"no global domain session\"));\n }\n return this.globalDomain.send(createTokenReq)\n .then((res) => {\n return res.token;\n });\n }\n reconnect() {\n return this.transport.reconnect();\n }\n setLoggedIn(value) {\n this._isLoggedIn = value;\n if (this._isLoggedIn) {\n this.initialLogin = false;\n this.registry.execute(\"onLoggedIn\");\n }\n }\n distributeMessage(message, type) {\n const handlers = this.messageHandlers[type.toLowerCase()];\n if (handlers !== undefined) {\n Object.keys(handlers).forEach((handlerId) => {\n const handler = handlers[handlerId];\n if (handler !== undefined) {\n try {\n handler(message);\n }\n catch (error) {\n try {\n this.logger.error(`Message handler failed with ${error.stack}`, error);\n }\n catch (loggerError) {\n console.log(\"Message handler failed\", error);\n }\n }\n }\n });\n }\n }\n handleConnectionChanged(connected) {\n if (this._connected === connected) {\n this.logger.trace(\"connection state unchanged, skipping\");\n return;\n }\n this.logger.info(`connection state changed to ${connected ? \"connected\" : \"disconnected\"}`);\n this._connected = connected;\n if (connected) {\n if (this.settings?.replaySpecs?.length) {\n this.replayer = new MessageReplayerImpl(this.settings.replaySpecs);\n this.replayer.init(this);\n }\n this.registry.execute(\"connected\");\n }\n else {\n this.setLoggedIn(false);\n if (this.shouldTryLogin) {\n this.attemptLoginWithRetry();\n }\n this.registry.execute(\"disconnected\");\n }\n }\n async attemptLoginWithRetry() {\n if (!this.loginConfig) {\n throw new Error(\"no login info\");\n }\n if (this.loginRetryInProgress) {\n this.logger.debug(\"login attempt already in progress, ignoring request...\");\n return;\n }\n if (this._isLoggedIn) {\n this.logger.debug(\"already logged in, ignoring request...\");\n return;\n }\n if (this.initialLogin) {\n this.logger.debug(`initial login attempt failed, ${this.initialLoginAttempts} attempts remaining...`);\n if (this.initialLoginAttempts <= 0) {\n this.logger.info(\"maximum initial login attempts reached, will not try to login again\");\n return;\n }\n this.initialLoginAttempts--;\n }\n try {\n this.logger.debug(`will try a new login... ${this.loginRetryInProgress}`);\n this.loginRetryInProgress = true;\n await this.login(this.loginConfig, true);\n }\n catch (e) {\n this.logger.error(`error trying to login: ${e?.message}`, e);\n setTimeout(this.attemptLoginWithRetry.bind(this), this.settings.reconnectInterval ?? 1000);\n }\n finally {\n this.loginRetryInProgress = false;\n }\n }\n handleTransportMessage(msg) {\n let msgObj;\n if (typeof msg === \"string\") {\n msgObj = this.processStringMessage(msg);\n }\n else {\n msgObj = this.processObjectMessage(msg);\n }\n if (this.isTrace) {\n this.logger.trace(`<< ${JSON.stringify(msgObj)}`);\n }\n this.distributeMessage(msgObj.msg, msgObj.msgType);\n }\n verifyConnection() {\n return PromisePlus((resolve) => {\n let unsub;\n const ready = waitForInvocations(2, () => {\n if (unsub) {\n unsub();\n }\n resolve();\n });\n unsub = this.onLibReAnnounced((lib) => {\n if (lib.name === \"interop\") {\n return ready();\n }\n if (lib.name === \"contexts\") {\n return ready();\n }\n });\n }, 10000, \"Transport switch timed out waiting for all libraries to be re-announced\");\n }\n getNewSecondaryTransport(settings) {\n if (!settings.transportConfig?.url) {\n throw new Error(\"Missing secondary transport URL.\");\n }\n return new WS(Object.assign({}, this.settings, { ws: settings.transportConfig.url, reconnectAttempts: 1 }), this.logger.subLogger(\"ws-secondary\"));\n }\n getNewSecondaryAuth(settings) {\n if (!settings.transportConfig?.auth) {\n throw new Error(\"Missing secondary transport auth information.\");\n }\n return settings.transportConfig.auth;\n }\n transportSwap() {\n this._swapTransport = false;\n if (!this._targetTransport || !this._targetAuth) {\n this.logger.warn(`Error while switching transports - either the target transport or auth is not defined: transport defined -> ${!!this._defaultTransport}, auth defined -> ${!!this._targetAuth}. Staying on the current one.`);\n return;\n }\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport = this._targetTransport;\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n return this._targetAuth;\n }\n prepareDefaultSwap() {\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport.close().catch((error) => this.logger.warn(`Error closing the ${this.transport.name()} transport after a failed connection attempt: ${JSON.stringify(error)}`));\n this._targetTransport = this._defaultTransport;\n this._targetAuth = this._defaultAuth;\n this._swapTransport = true;\n }\n processStringMessage(message) {\n const msg = JSON.parse(message, (key, value) => {\n if (typeof value !== \"string\") {\n return value;\n }\n if (value.length < this.dateMinLen) {\n return value;\n }\n if (!value.startsWith(this.datePrefixFirstChar)) {\n return value;\n }\n if (value.substring(0, this.datePrefixLen) !== this.datePrefix) {\n return value;\n }\n try {\n const milliseconds = parseInt(value.substring(this.datePrefixLen, value.length), 10);\n if (isNaN(milliseconds)) {\n return value;\n }\n return new Date(milliseconds);\n }\n catch (ex) {\n return value;\n }\n });\n return {\n msg,\n msgType: msg.type,\n };\n }\n createStringMessage(message) {\n const oldToJson = Date.prototype.toJSON;\n try {\n const datePrefix = this.datePrefix;\n Date.prototype.toJSON = function () {\n return datePrefix + this.getTime();\n };\n const result = JSON.stringify(message);\n return result;\n }\n finally {\n Date.prototype.toJSON = oldToJson;\n }\n }\n processObjectMessage(message) {\n if (!message.type) {\n throw new Error(\"Object should have type property\");\n }\n return {\n msg: message,\n msgType: message.type,\n };\n }\n createObjectMessage(message) {\n return message;\n }\n async loginCore(config, reconnect) {\n this.loginConfig = config;\n if (!this.loginConfig) {\n this.loginConfig = { username: \"\", password: \"\" };\n }\n this.shouldTryLogin = true;\n const authentication = await this.setupAuthConfig(config, reconnect);\n const helloMsg = {\n type: \"hello\",\n identity: this.settings.identity,\n authentication\n };\n if (config.sessionId) {\n helloMsg.request_id = config.sessionId;\n }\n if (!this.globalDomain) {\n this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\n \"welcome\",\n \"token\",\n \"authentication-request\"\n ]);\n }\n const sendOptions = { skipPeerId: true };\n if (this.initialLogin) {\n sendOptions.retryInterval = this.settings.reconnectInterval;\n sendOptions.maxRetries = this.settings.reconnectAttempts;\n }\n try {\n const welcomeMsg = await this.tryAuthenticate(this.globalDomain, helloMsg, sendOptions, config);\n this.logger.info(\"login successful with peerId \" + welcomeMsg.peer_id);\n this.peerId = welcomeMsg.peer_id;\n this.resolvedIdentity = welcomeMsg.resolved_identity;\n this.availableDomains = welcomeMsg.available_domains;\n if (welcomeMsg.options) {\n this.token = welcomeMsg.options.access_token;\n this.info = welcomeMsg.options.info;\n }\n this.setLoggedIn(true);\n return welcomeMsg.resolved_identity;\n }\n catch (err) {\n this.logger.error(\"error sending hello message - \" + (err.message || err.msg || err.reason || err), err);\n throw err;\n }\n finally {\n if (config?.flowCallback && config.sessionId) {\n config.flowCallback(config.sessionId, null);\n }\n }\n }\n async tryAuthenticate(globalDomain, helloMsg, sendOptions, config) {\n let welcomeMsg;\n while (true) {\n const msg = await globalDomain.send(helloMsg, undefined, sendOptions);\n if (msg.type === \"authentication-request\") {\n const token = Buffer.from(msg.authentication.token, \"base64\");\n if (config.flowCallback && config.sessionId) {\n helloMsg.authentication.token =\n (await config.flowCallback(config.sessionId, token))\n .data\n .toString(\"base64\");\n }\n helloMsg.request_id = config.sessionId;\n }\n else if (msg.type === \"welcome\") {\n welcomeMsg = msg;\n break;\n }\n else if (msg.type === \"error\") {\n throw new Error(\"Authentication failed: \" + msg.reason);\n }\n else {\n throw new Error(\"Unexpected message type during authentication: \" + msg.type);\n }\n }\n return welcomeMsg;\n }\n async setupAuthConfig(config, reconnect) {\n const authentication = {};\n this.gatewayToken = config.gatewayToken;\n if (config.gatewayToken) {\n if (reconnect) {\n try {\n config.gatewayToken = await this.getNewGWToken();\n }\n catch (e) {\n this.logger.warn(`failed to get GW token when reconnecting ${e?.message || e}`);\n }\n }\n authentication.method = \"gateway-token\";\n authentication.token = config.gatewayToken;\n this.gatewayToken = config.gatewayToken;\n }\n else if (config.flowName === \"sspi\") {\n authentication.provider = \"win\";\n authentication.method = \"access-token\";\n if (config.flowCallback && config.sessionId) {\n authentication.token =\n (await config.flowCallback(config.sessionId, null))\n .data\n .toString(\"base64\");\n }\n else {\n throw new Error(\"Invalid SSPI config\");\n }\n }\n else if (config.token) {\n authentication.method = \"access-token\";\n authentication.token = config.token;\n }\n else if (config.username) {\n authentication.method = \"secret\";\n authentication.login = config.username;\n authentication.secret = config.password;\n }\n else if (config.provider) {\n authentication.provider = config.provider;\n authentication.providerContext = config.providerContext;\n }\n else {\n throw new Error(\"invalid auth message\" + JSON.stringify(config));\n }\n return authentication;\n }\n async logoutCore() {\n this.logger.debug(\"core logging out...\");\n this.shouldTryLogin = false;\n if (this.pingTimer) {\n clearTimeout(this.pingTimer);\n }\n const promises = this.sessions.map((session) => {\n return session.leave();\n });\n await Promise.all(promises);\n }\n getNewGWToken() {\n if (typeof window !== \"undefined\") {\n const glue42gd = window.glue42gd;\n if (glue42gd) {\n return glue42gd.getGWToken();\n }\n }\n return Promise.reject(new Error(\"not running in GD\"));\n }\n ping() {\n if (!this.shouldTryLogin) {\n return;\n }\n if (this._isLoggedIn) {\n this.send({ type: \"ping\" });\n }\n this.pingTimer = setTimeout(() => {\n this.ping();\n }, 30 * 1000);\n }\n}\n\nconst order = [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"off\"];\nclass Logger {\n name;\n parent;\n static Interop;\n static InteropMethodName = \"T42.AppLogger.Log\";\n static Instance;\n path;\n subLoggers = [];\n _consoleLevel;\n _publishLevel;\n loggerFullName;\n includeTimeAndLevel;\n logFn = console;\n customLogFn = false;\n constructor(name, parent, logFn) {\n this.name = name;\n this.parent = parent;\n this.name = name;\n if (parent) {\n this.path = `${parent.path}.${name}`;\n }\n else {\n this.path = name;\n }\n this.loggerFullName = `[${this.path}]`;\n this.includeTimeAndLevel = !logFn;\n if (logFn) {\n this.logFn = logFn;\n this.customLogFn = true;\n }\n }\n subLogger(name) {\n const existingSub = this.subLoggers.filter((subLogger) => {\n return subLogger.name === name;\n })[0];\n if (existingSub !== undefined) {\n return existingSub;\n }\n Object.keys(this).forEach((key) => {\n if (key === name) {\n throw new Error(\"This sub logger name is not allowed.\");\n }\n });\n const sub = new Logger(name, this, this.customLogFn ? this.logFn : undefined);\n this.subLoggers.push(sub);\n return sub;\n }\n publishLevel(level) {\n if (level) {\n this._publishLevel = level;\n }\n return this._publishLevel || this.parent?.publishLevel();\n }\n consoleLevel(level) {\n if (level) {\n this._consoleLevel = level;\n }\n return this._consoleLevel || this.parent?.consoleLevel();\n }\n log(message, level, error) {\n this.publishMessage(level || \"info\", message, error);\n }\n trace(message) {\n this.log(message, \"trace\");\n }\n debug(message) {\n this.log(message, \"debug\");\n }\n info(message) {\n this.log(message, \"info\");\n }\n warn(message) {\n this.log(message, \"warn\");\n }\n error(message, err) {\n this.log(message, \"error\", err);\n }\n canPublish(level, compareWith) {\n const levelIdx = order.indexOf(level);\n const restrictionIdx = order.indexOf(compareWith || this.consoleLevel() || \"trace\");\n return levelIdx >= restrictionIdx;\n }\n publishMessage(level, message, error) {\n const loggerName = this.loggerFullName;\n if (level === \"error\" && !error) {\n const e = new Error();\n if (e.stack) {\n message =\n message +\n \"\\n\" +\n e.stack\n .split(\"\\n\")\n .slice(4)\n .join(\"\\n\");\n }\n }\n if (this.canPublish(level, this.publishLevel())) {\n const interop = Logger.Interop;\n if (interop) {\n try {\n if (interop.methods({ name: Logger.InteropMethodName }).length > 0) {\n const args = {\n msg: message,\n logger: loggerName,\n level\n };\n if (error && error instanceof Error) {\n args.error = {\n message: error.message,\n stack: error.stack ?? \"\"\n };\n }\n interop.invoke(Logger.InteropMethodName, args)\n .catch((e) => {\n this.logFn.error(`Unable to send log message to the platform: ${e.message}`, e);\n });\n }\n }\n catch {\n }\n }\n }\n if (this.canPublish(level)) {\n let prefix = \"\";\n if (this.includeTimeAndLevel) {\n const date = new Date();\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\n prefix = `[${time}] [${level}] `;\n }\n const toPrint = `${prefix}${loggerName}: ${message}`;\n switch (level) {\n case \"trace\":\n this.logFn.debug(toPrint);\n break;\n case \"debug\":\n if (this.logFn.debug) {\n this.logFn.debug(toPrint);\n }\n else {\n this.logFn.log(toPrint);\n }\n break;\n case \"info\":\n this.logFn.info(toPrint);\n break;\n case \"warn\":\n this.logFn.warn(toPrint);\n break;\n case \"error\":\n if (error) {\n this.logFn.error(toPrint, error);\n }\n else {\n this.logFn.error(toPrint);\n }\n break;\n }\n }\n }\n}\n\nconst GW_MESSAGE_CREATE_CONTEXT = \"create-context\";\nconst GW_MESSAGE_ACTIVITY_CREATED = \"created\";\nconst GW_MESSAGE_ACTIVITY_DESTROYED = \"destroyed\";\nconst GW_MESSAGE_CONTEXT_CREATED = \"context-created\";\nconst GW_MESSAGE_CONTEXT_ADDED = \"context-added\";\nconst GW_MESSAGE_SUBSCRIBE_CONTEXT = \"subscribe-context\";\nconst GW_MESSAGE_SUBSCRIBED_CONTEXT = \"subscribed-context\";\nconst GW_MESSAGE_UNSUBSCRIBE_CONTEXT = \"unsubscribe-context\";\nconst GW_MESSAGE_DESTROY_CONTEXT = \"destroy-context\";\nconst GW_MESSAGE_CONTEXT_DESTROYED = \"context-destroyed\";\nconst GW_MESSAGE_UPDATE_CONTEXT = \"update-context\";\nconst GW_MESSAGE_CONTEXT_UPDATED = \"context-updated\";\nconst GW_MESSAGE_JOINED_ACTIVITY = \"joined\";\n\nconst ContextMessageReplaySpec = {\n get name() {\n return \"context\";\n },\n get types() {\n return [\n GW_MESSAGE_CREATE_CONTEXT,\n GW_MESSAGE_ACTIVITY_CREATED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_SUBSCRIBE_CONTEXT,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n GW_MESSAGE_DESTROY_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_UPDATE_CONTEXT,\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_JOINED_ACTIVITY\n ];\n }\n};\n\nvar version = \"6.8.1\";\n\nfunction prepareConfig (configuration, ext, glue42gd) {\n let nodeStartingContext;\n if (Utils.isNode()) {\n const startingContextString = process.env._GD_STARTING_CONTEXT_;\n if (startingContextString) {\n try {\n nodeStartingContext = JSON.parse(startingContextString);\n }\n catch {\n }\n }\n }\n function getConnection() {\n const gwConfig = configuration.gateway;\n const protocolVersion = gwConfig?.protocolVersion ?? 3;\n const reconnectInterval = gwConfig?.reconnectInterval;\n const reconnectAttempts = gwConfig?.reconnectAttempts;\n const defaultWs = \"ws://localhost:8385\";\n let ws = gwConfig?.ws;\n const sharedWorker = gwConfig?.sharedWorker;\n const inproc = gwConfig?.inproc;\n const webPlatform = gwConfig?.webPlatform ?? undefined;\n if (glue42gd) {\n ws = glue42gd.gwURL;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwURL) {\n ws = nodeStartingContext.gwURL;\n }\n if (!ws && !sharedWorker && !inproc) {\n ws = defaultWs;\n }\n let instanceId;\n let windowId;\n let pid;\n let environment;\n let region;\n const appName = getApplication();\n let uniqueAppName = appName;\n if (typeof glue42gd !== \"undefined\") {\n windowId = glue42gd.windowId;\n pid = glue42gd.pid;\n if (glue42gd.env) {\n environment = glue42gd.env.env;\n region = glue42gd.env.region;\n }\n uniqueAppName = glue42gd.application ?? \"glue-app\";\n instanceId = glue42gd.appInstanceId;\n }\n else if (Utils.isNode()) {\n pid = process.pid;\n if (nodeStartingContext) {\n environment = nodeStartingContext.env;\n region = nodeStartingContext.region;\n instanceId = nodeStartingContext.instanceId;\n }\n }\n else if (typeof window?.glue42electron !== \"undefined\") {\n windowId = window?.glue42electron.instanceId;\n pid = window?.glue42electron.pid;\n environment = window?.glue42electron.env;\n region = window?.glue42electron.region;\n uniqueAppName = window?.glue42electron.application ?? \"glue-app\";\n instanceId = window?.glue42electron.instanceId;\n }\n else ;\n const replaySpecs = configuration.gateway?.replaySpecs ?? [];\n replaySpecs.push(ContextMessageReplaySpec);\n let identity = {\n application: uniqueAppName,\n applicationName: appName,\n windowId,\n instance: instanceId,\n process: pid,\n region,\n environment,\n api: ext.version || version\n };\n if (configuration.identity) {\n identity = Object.assign(identity, configuration.identity);\n }\n return {\n identity,\n reconnectInterval,\n ws,\n sharedWorker,\n webPlatform,\n inproc,\n protocolVersion,\n reconnectAttempts,\n replaySpecs,\n };\n }\n function getContexts() {\n const defaultConfig = {\n reAnnounceKnownContexts: true,\n subscribeOnUpdate: true,\n subscribeOnGet: true,\n onlyReAnnounceSubscribedContexts: true\n };\n if (typeof configuration.contexts === \"undefined\") {\n return defaultConfig;\n }\n if (typeof configuration.contexts === \"boolean\" && configuration.contexts) {\n return defaultConfig;\n }\n if (typeof configuration.contexts === \"object\") {\n return { ...defaultConfig, ...configuration.contexts };\n }\n return false;\n }\n function getApplication() {\n if (configuration.application) {\n return configuration.application;\n }\n if (glue42gd) {\n return glue42gd.applicationName;\n }\n if (typeof window !== \"undefined\" && typeof window.glue42electron !== \"undefined\") {\n return window.glue42electron.application;\n }\n const uid = nanoid(10);\n if (Utils.isNode()) {\n if (nodeStartingContext) {\n return nodeStartingContext.applicationConfig.name;\n }\n return \"NodeJS\" + uid;\n }\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n return document.title + ` (${uid})`;\n }\n return uid;\n }\n function getAuth() {\n if (typeof configuration.auth === \"string\") {\n return {\n token: configuration.auth\n };\n }\n if (configuration.auth) {\n return configuration.auth;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwToken) {\n return {\n gatewayToken: nodeStartingContext.gwToken\n };\n }\n if (configuration.gateway?.webPlatform) {\n return {\n username: \"glue42\",\n password: \"\"\n };\n }\n }\n function getLogger() {\n let config = configuration.logger;\n const defaultLevel = \"warn\";\n if (!config) {\n config = defaultLevel;\n }\n let gdConsoleLevel;\n if (glue42gd) {\n gdConsoleLevel = glue42gd.consoleLogLevel;\n }\n if (typeof config === \"string\") {\n return { console: gdConsoleLevel ?? config, publish: defaultLevel };\n }\n return {\n console: gdConsoleLevel ?? config.console ?? defaultLevel,\n publish: config.publish ?? defaultLevel\n };\n }\n const connection = getConnection();\n let application = getApplication();\n if (typeof window !== \"undefined\") {\n const windowAsAny = window;\n const containerApplication = windowAsAny.htmlContainer ?\n `${windowAsAny.htmlContainer.containerName}.${windowAsAny.htmlContainer.application}` :\n windowAsAny?.glue42gd?.application;\n if (containerApplication) {\n application = containerApplication;\n }\n }\n return {\n bus: configuration.bus ?? false,\n application,\n auth: getAuth(),\n logger: getLogger(),\n connection,\n metrics: configuration.metrics ?? true,\n contexts: getContexts(),\n version: ext.version || version,\n libs: ext.libs ?? [],\n customLogger: configuration.customLogger\n };\n}\n\nclass GW3ContextData {\n name;\n contextId;\n context;\n isAnnounced;\n createdByUs;\n joinedActivity;\n updateCallbacks = {};\n activityId;\n sentExplicitSubscription;\n get hasReceivedSnapshot() {\n return this.snapshotPromiseWrapper.resolved;\n }\n set hasReceivedSnapshot(has) {\n if (has) {\n this.snapshotPromiseWrapper.resolve();\n }\n else {\n this.snapshotPromiseWrapper = new PromiseWrapper();\n }\n }\n get snapshotPromise() {\n return this.snapshotPromiseWrapper.promise;\n }\n snapshotPromiseWrapper;\n constructor(contextId, name, isAnnounced, activityId) {\n this.contextId = contextId;\n this.name = name;\n this.isAnnounced = isAnnounced;\n this.activityId = activityId;\n this.context = {};\n this.snapshotPromiseWrapper = new PromiseWrapper();\n }\n hasCallbacks() {\n return Object.keys(this.updateCallbacks).length > 0;\n }\n getState() {\n if (this.isAnnounced && this.hasCallbacks()) {\n return 3;\n }\n if (this.isAnnounced) {\n return 2;\n }\n if (this.hasCallbacks()) {\n return 1;\n }\n return 0;\n }\n}\n\nvar lodash_clonedeep = {exports: {}};\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nlodash_clonedeep.exports;\n\n(function (module, exports) {\n\t/** Used as the size to enable large array optimizations. */\n\tvar LARGE_ARRAY_SIZE = 200;\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t arrayTag = '[object Array]',\n\t boolTag = '[object Boolean]',\n\t dateTag = '[object Date]',\n\t errorTag = '[object Error]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t mapTag = '[object Map]',\n\t numberTag = '[object Number]',\n\t objectTag = '[object Object]',\n\t promiseTag = '[object Promise]',\n\t regexpTag = '[object RegExp]',\n\t setTag = '[object Set]',\n\t stringTag = '[object String]',\n\t symbolTag = '[object Symbol]',\n\t weakMapTag = '[object WeakMap]';\n\n\tvar arrayBufferTag = '[object ArrayBuffer]',\n\t dataViewTag = '[object DataView]',\n\t float32Tag = '[object Float32Array]',\n\t float64Tag = '[object Float64Array]',\n\t int8Tag = '[object Int8Array]',\n\t int16Tag = '[object Int16Array]',\n\t int32Tag = '[object Int32Array]',\n\t uint8Tag = '[object Uint8Array]',\n\t uint8ClampedTag = '[object Uint8ClampedArray]',\n\t uint16Tag = '[object Uint16Array]',\n\t uint32Tag = '[object Uint32Array]';\n\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n\t/** Used to match `RegExp` flags from their coerced string values. */\n\tvar reFlags = /\\w*$/;\n\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n\t/** Used to identify `toStringTag` values supported by `_.clone`. */\n\tvar cloneableTags = {};\n\tcloneableTags[argsTag] = cloneableTags[arrayTag] =\n\tcloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n\tcloneableTags[boolTag] = cloneableTags[dateTag] =\n\tcloneableTags[float32Tag] = cloneableTags[float64Tag] =\n\tcloneableTags[int8Tag] = cloneableTags[int16Tag] =\n\tcloneableTags[int32Tag] = cloneableTags[mapTag] =\n\tcloneableTags[numberTag] = cloneableTags[objectTag] =\n\tcloneableTags[regexpTag] = cloneableTags[setTag] =\n\tcloneableTags[stringTag] = cloneableTags[symbolTag] =\n\tcloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n\tcloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n\tcloneableTags[errorTag] = cloneableTags[funcTag] =\n\tcloneableTags[weakMapTag] = false;\n\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\n\t/** Detect free variable `exports`. */\n\tvar freeExports = exports && !exports.nodeType && exports;\n\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n\t/**\n\t * Adds the key-value `pair` to `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to modify.\n\t * @param {Array} pair The key-value pair to add.\n\t * @returns {Object} Returns `map`.\n\t */\n\tfunction addMapEntry(map, pair) {\n\t // Don't return `map.set` because it's not chainable in IE 11.\n\t map.set(pair[0], pair[1]);\n\t return map;\n\t}\n\n\t/**\n\t * Adds `value` to `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to modify.\n\t * @param {*} value The value to add.\n\t * @returns {Object} Returns `set`.\n\t */\n\tfunction addSetEntry(set, value) {\n\t // Don't return `set.add` because it's not chainable in IE 11.\n\t set.add(value);\n\t return set;\n\t}\n\n\t/**\n\t * A specialized version of `_.forEach` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayEach(array, iteratee) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\n\t while (++index < length) {\n\t if (iteratee(array[index], index, array) === false) {\n\t break;\n\t }\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Appends the elements of `values` to `array`.\n\t *\n\t * @private\n\t * @param {Array} array The array to modify.\n\t * @param {Array} values The values to append.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayPush(array, values) {\n\t var index = -1,\n\t length = values.length,\n\t offset = array.length;\n\n\t while (++index < length) {\n\t array[offset + index] = values[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * A specialized version of `_.reduce` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @param {*} [accumulator] The initial value.\n\t * @param {boolean} [initAccum] Specify using the first element of `array` as\n\t * the initial value.\n\t * @returns {*} Returns the accumulated value.\n\t */\n\tfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\t while (++index < length) {\n\t accumulator = iteratee(accumulator, array[index], index, array);\n\t }\n\t return accumulator;\n\t}\n\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Gets the value at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to query.\n\t * @param {string} key The key of the property to get.\n\t * @returns {*} Returns the property value.\n\t */\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Converts `map` to its key-value pairs.\n\t *\n\t * @private\n\t * @param {Object} map The map to convert.\n\t * @returns {Array} Returns the key-value pairs.\n\t */\n\tfunction mapToArray(map) {\n\t var index = -1,\n\t result = Array(map.size);\n\n\t map.forEach(function(value, key) {\n\t result[++index] = [key, value];\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\n\t/**\n\t * Converts `set` to an array of its values.\n\t *\n\t * @private\n\t * @param {Object} set The set to convert.\n\t * @returns {Array} Returns the values.\n\t */\n\tfunction setToArray(set) {\n\t var index = -1,\n\t result = Array(set.size);\n\n\t set.forEach(function(value) {\n\t result[++index] = value;\n\t });\n\t return result;\n\t}\n\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype,\n\t funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\n\t/** Built-in value references. */\n\tvar Buffer = moduleExports ? root.Buffer : undefined,\n\t Symbol = root.Symbol,\n\t Uint8Array = root.Uint8Array,\n\t getPrototype = overArg(Object.getPrototypeOf, Object),\n\t objectCreate = Object.create,\n\t propertyIsEnumerable = objectProto.propertyIsEnumerable,\n\t splice = arrayProto.splice;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeGetSymbols = Object.getOwnPropertySymbols,\n\t nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n\t nativeKeys = overArg(Object.keys, Object);\n\n\t/* Built-in method references that are verified to be native. */\n\tvar DataView = getNative(root, 'DataView'),\n\t Map = getNative(root, 'Map'),\n\t Promise = getNative(root, 'Promise'),\n\t Set = getNative(root, 'Set'),\n\t WeakMap = getNative(root, 'WeakMap'),\n\t nativeCreate = getNative(Object, 'create');\n\n\t/** Used to detect maps, sets, and weakmaps. */\n\tvar dataViewCtorString = toSource(DataView),\n\t mapCtorString = toSource(Map),\n\t promiseCtorString = toSource(Promise),\n\t setCtorString = toSource(Set),\n\t weakMapCtorString = toSource(WeakMap);\n\n\t/** Used to convert symbols to primitives and strings. */\n\tvar symbolProto = Symbol ? Symbol.prototype : undefined,\n\t symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t}\n\n\t/**\n\t * Removes `key` and its value from the hash.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Hash\n\t * @param {Object} hash The hash to modify.\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction hashDelete(key) {\n\t return this.has(key) && delete this.__data__[key];\n\t}\n\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n\t}\n\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the list cache.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf ListCache\n\t */\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t}\n\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t return true;\n\t}\n\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t return getMapData(this, key)['delete'](key);\n\t}\n\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t getMapData(this, key).set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\n\t/**\n\t * Creates a stack cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Stack(entries) {\n\t this.__data__ = new ListCache(entries);\n\t}\n\n\t/**\n\t * Removes all key-value entries from the stack.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Stack\n\t */\n\tfunction stackClear() {\n\t this.__data__ = new ListCache;\n\t}\n\n\t/**\n\t * Removes `key` and its value from the stack.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction stackDelete(key) {\n\t return this.__data__['delete'](key);\n\t}\n\n\t/**\n\t * Gets the stack value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction stackGet(key) {\n\t return this.__data__.get(key);\n\t}\n\n\t/**\n\t * Checks if a stack value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Stack\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction stackHas(key) {\n\t return this.__data__.has(key);\n\t}\n\n\t/**\n\t * Sets the stack `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the stack cache instance.\n\t */\n\tfunction stackSet(key, value) {\n\t var cache = this.__data__;\n\t if (cache instanceof ListCache) {\n\t var pairs = cache.__data__;\n\t if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n\t pairs.push([key, value]);\n\t return this;\n\t }\n\t cache = this.__data__ = new MapCache(pairs);\n\t }\n\t cache.set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `Stack`.\n\tStack.prototype.clear = stackClear;\n\tStack.prototype['delete'] = stackDelete;\n\tStack.prototype.get = stackGet;\n\tStack.prototype.has = stackHas;\n\tStack.prototype.set = stackSet;\n\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\n\t var length = result.length,\n\t skipIndexes = !!length;\n\n\t for (var key in value) {\n\t if ((hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\n\t/**\n\t * The base implementation of `_.assign` without support for multiple sources\n\t * or `customizer` functions.\n\t *\n\t * @private\n\t * @param {Object} object The destination object.\n\t * @param {Object} source The source object.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction baseAssign(object, source) {\n\t return object && copyObject(source, keys(source), object);\n\t}\n\n\t/**\n\t * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n\t * traversed objects.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @param {boolean} [isFull] Specify a clone including symbols.\n\t * @param {Function} [customizer] The function to customize cloning.\n\t * @param {string} [key] The key of `value`.\n\t * @param {Object} [object] The parent object of `value`.\n\t * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\tfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n\t var result;\n\t if (customizer) {\n\t result = object ? customizer(value, key, object, stack) : customizer(value);\n\t }\n\t if (result !== undefined) {\n\t return result;\n\t }\n\t if (!isObject(value)) {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isArr) {\n\t result = initCloneArray(value);\n\t if (!isDeep) {\n\t return copyArray(value, result);\n\t }\n\t } else {\n\t var tag = getTag(value),\n\t isFunc = tag == funcTag || tag == genTag;\n\n\t if (isBuffer(value)) {\n\t return cloneBuffer(value, isDeep);\n\t }\n\t if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n\t if (isHostObject(value)) {\n\t return object ? value : {};\n\t }\n\t result = initCloneObject(isFunc ? {} : value);\n\t if (!isDeep) {\n\t return copySymbols(value, baseAssign(result, value));\n\t }\n\t } else {\n\t if (!cloneableTags[tag]) {\n\t return object ? value : {};\n\t }\n\t result = initCloneByTag(value, tag, baseClone, isDeep);\n\t }\n\t }\n\t // Check for circular references and return its corresponding clone.\n\t stack || (stack = new Stack);\n\t var stacked = stack.get(value);\n\t if (stacked) {\n\t return stacked;\n\t }\n\t stack.set(value, result);\n\n\t if (!isArr) {\n\t var props = isFull ? getAllKeys(value) : keys(value);\n\t }\n\t arrayEach(props || value, function(subValue, key) {\n\t if (props) {\n\t key = subValue;\n\t subValue = value[key];\n\t }\n\t // Recursively populate clone (susceptible to call stack limits).\n\t assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\tfunction baseCreate(proto) {\n\t return isObject(proto) ? objectCreate(proto) : {};\n\t}\n\n\t/**\n\t * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n\t * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n\t * symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {Function} keysFunc The function to get the keys of `object`.\n\t * @param {Function} symbolsFunc The function to get the symbols of `object`.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n\t var result = keysFunc(object);\n\t return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n\t}\n\n\t/**\n\t * The base implementation of `getTag`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t return objectToString.call(value);\n\t}\n\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `buffer`.\n\t *\n\t * @private\n\t * @param {Buffer} buffer The buffer to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Buffer} Returns the cloned buffer.\n\t */\n\tfunction cloneBuffer(buffer, isDeep) {\n\t if (isDeep) {\n\t return buffer.slice();\n\t }\n\t var result = new buffer.constructor(buffer.length);\n\t buffer.copy(result);\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `arrayBuffer`.\n\t *\n\t * @private\n\t * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n\t * @returns {ArrayBuffer} Returns the cloned array buffer.\n\t */\n\tfunction cloneArrayBuffer(arrayBuffer) {\n\t var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n\t new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `dataView`.\n\t *\n\t * @private\n\t * @param {Object} dataView The data view to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned data view.\n\t */\n\tfunction cloneDataView(dataView, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n\t return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n\t}\n\n\t/**\n\t * Creates a clone of `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned map.\n\t */\n\tfunction cloneMap(map, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n\t return arrayReduce(array, addMapEntry, new map.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of `regexp`.\n\t *\n\t * @private\n\t * @param {Object} regexp The regexp to clone.\n\t * @returns {Object} Returns the cloned regexp.\n\t */\n\tfunction cloneRegExp(regexp) {\n\t var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n\t result.lastIndex = regexp.lastIndex;\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned set.\n\t */\n\tfunction cloneSet(set, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n\t return arrayReduce(array, addSetEntry, new set.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of the `symbol` object.\n\t *\n\t * @private\n\t * @param {Object} symbol The symbol object to clone.\n\t * @returns {Object} Returns the cloned symbol object.\n\t */\n\tfunction cloneSymbol(symbol) {\n\t return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n\t}\n\n\t/**\n\t * Creates a clone of `typedArray`.\n\t *\n\t * @private\n\t * @param {Object} typedArray The typed array to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned typed array.\n\t */\n\tfunction cloneTypedArray(typedArray, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n\t return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n\t}\n\n\t/**\n\t * Copies the values of `source` to `array`.\n\t *\n\t * @private\n\t * @param {Array} source The array to copy values from.\n\t * @param {Array} [array=[]] The array to copy values to.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction copyArray(source, array) {\n\t var index = -1,\n\t length = source.length;\n\n\t array || (array = Array(length));\n\t while (++index < length) {\n\t array[index] = source[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\n\t var index = -1,\n\t length = props.length;\n\n\t while (++index < length) {\n\t var key = props[index];\n\n\t var newValue = undefined;\n\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\n\t/**\n\t * Copies own symbol properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy symbols from.\n\t * @param {Object} [object={}] The object to copy symbols to.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copySymbols(source, object) {\n\t return copyObject(source, getSymbols(source), object);\n\t}\n\n\t/**\n\t * Creates an array of own enumerable property names and symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction getAllKeys(object) {\n\t return baseGetAllKeys(object, keys, getSymbols);\n\t}\n\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable symbol properties of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of symbols.\n\t */\n\tvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n\t/**\n\t * Gets the `toStringTag` of `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tvar getTag = baseGetTag;\n\n\t// Fallback for data views, maps, sets, and weak maps in IE 11,\n\t// for data views in Edge < 14, and promises in Node.js.\n\tif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n\t (Map && getTag(new Map) != mapTag) ||\n\t (Promise && getTag(Promise.resolve()) != promiseTag) ||\n\t (Set && getTag(new Set) != setTag) ||\n\t (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n\t getTag = function(value) {\n\t var result = objectToString.call(value),\n\t Ctor = result == objectTag ? value.constructor : undefined,\n\t ctorString = Ctor ? toSource(Ctor) : undefined;\n\n\t if (ctorString) {\n\t switch (ctorString) {\n\t case dataViewCtorString: return dataViewTag;\n\t case mapCtorString: return mapTag;\n\t case promiseCtorString: return promiseTag;\n\t case setCtorString: return setTag;\n\t case weakMapCtorString: return weakMapTag;\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\n\t/**\n\t * Initializes an array clone.\n\t *\n\t * @private\n\t * @param {Array} array The array to clone.\n\t * @returns {Array} Returns the initialized clone.\n\t */\n\tfunction initCloneArray(array) {\n\t var length = array.length,\n\t result = array.constructor(length);\n\n\t // Add properties assigned by `RegExp#exec`.\n\t if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n\t result.index = array.index;\n\t result.input = array.input;\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Initializes an object clone.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneObject(object) {\n\t return (typeof object.constructor == 'function' && !isPrototype(object))\n\t ? baseCreate(getPrototype(object))\n\t : {};\n\t}\n\n\t/**\n\t * Initializes an object clone based on its `toStringTag`.\n\t *\n\t * **Note:** This function only supports cloning values with tags of\n\t * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @param {string} tag The `toStringTag` of the object to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n\t var Ctor = object.constructor;\n\t switch (tag) {\n\t case arrayBufferTag:\n\t return cloneArrayBuffer(object);\n\n\t case boolTag:\n\t case dateTag:\n\t return new Ctor(+object);\n\n\t case dataViewTag:\n\t return cloneDataView(object, isDeep);\n\n\t case float32Tag: case float64Tag:\n\t case int8Tag: case int16Tag: case int32Tag:\n\t case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n\t return cloneTypedArray(object, isDeep);\n\n\t case mapTag:\n\t return cloneMap(object, isDeep, cloneFunc);\n\n\t case numberTag:\n\t case stringTag:\n\t return new Ctor(object);\n\n\t case regexpTag:\n\t return cloneRegExp(object);\n\n\t case setTag:\n\t return cloneSet(object, isDeep, cloneFunc);\n\n\t case symbolTag:\n\t return cloneSymbol(object);\n\t }\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\n\t/**\n\t * Checks if `value` is suitable for use as unique object key.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n\t */\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n\t return value === proto;\n\t}\n\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to process.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\n\t/**\n\t * This method is like `_.clone` except that it recursively clones `value`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 1.0.0\n\t * @category Lang\n\t * @param {*} value The value to recursively clone.\n\t * @returns {*} Returns the deep cloned value.\n\t * @see _.clone\n\t * @example\n\t *\n\t * var objects = [{ 'a': 1 }, { 'b': 2 }];\n\t *\n\t * var deep = _.cloneDeep(objects);\n\t * console.log(deep[0] === objects[0]);\n\t * // => false\n\t */\n\tfunction cloneDeep(value) {\n\t return baseClone(value, true, true);\n\t}\n\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\n\t/**\n\t * Checks if `value` is a buffer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.3.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n\t * @example\n\t *\n\t * _.isBuffer(new Buffer(2));\n\t * // => true\n\t *\n\t * _.isBuffer(new Uint8Array(2));\n\t * // => false\n\t */\n\tvar isBuffer = nativeIsBuffer || stubFalse;\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\n\t/**\n\t * This method returns a new empty array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {Array} Returns the new empty array.\n\t * @example\n\t *\n\t * var arrays = _.times(2, _.stubArray);\n\t *\n\t * console.log(arrays);\n\t * // => [[], []]\n\t *\n\t * console.log(arrays[0] === arrays[1]);\n\t * // => false\n\t */\n\tfunction stubArray() {\n\t return [];\n\t}\n\n\t/**\n\t * This method returns `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {boolean} Returns `false`.\n\t * @example\n\t *\n\t * _.times(2, _.stubFalse);\n\t * // => [false, false]\n\t */\n\tfunction stubFalse() {\n\t return false;\n\t}\n\n\tmodule.exports = cloneDeep; \n} (lodash_clonedeep, lodash_clonedeep.exports));\n\nvar lodash_clonedeepExports = lodash_clonedeep.exports;\nvar cloneDeep = /*@__PURE__*/getDefaultExportFromCjs(lodash_clonedeepExports);\n\nfunction applyContextDelta(context, delta, logger) {\n try {\n if (logger?.canPublish(\"trace\")) {\n logger?.trace(`applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`);\n }\n if (!delta) {\n return context;\n }\n if (delta.reset) {\n context = { ...delta.reset };\n return context;\n }\n context = deepClone(context, undefined);\n if (delta.commands) {\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n deletePath(context, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(context, command.value, command.path);\n }\n }\n return context;\n }\n const added = delta.added;\n const updated = delta.updated;\n const removed = delta.removed;\n if (added) {\n Object.keys(added).forEach((key) => {\n context[key] = added[key];\n });\n }\n if (updated) {\n Object.keys(updated).forEach((key) => {\n mergeObjectsProperties(key, context, updated);\n });\n }\n if (removed) {\n removed.forEach((key) => {\n delete context[key];\n });\n }\n return context;\n }\n catch (e) {\n logger?.error(`error applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`, e);\n return context;\n }\n}\nfunction deepClone(obj, hash) {\n return cloneDeep(obj);\n}\nconst mergeObjectsProperties = (key, what, withWhat) => {\n const right = withWhat[key];\n if (right === undefined) {\n return what;\n }\n const left = what[key];\n if (!left || !right) {\n what[key] = right;\n return what;\n }\n if (typeof left === \"string\" ||\n typeof left === \"number\" ||\n typeof left === \"boolean\" ||\n typeof right === \"string\" ||\n typeof right === \"number\" ||\n typeof right === \"boolean\" ||\n Array.isArray(left) ||\n Array.isArray(right)) {\n what[key] = right;\n return what;\n }\n what[key] = Object.assign({}, left, right);\n return what;\n};\nfunction deepEqual(x, y) {\n if (x === y) {\n return true;\n }\n if (!(x instanceof Object) || !(y instanceof Object)) {\n return false;\n }\n if (x.constructor !== y.constructor) {\n return false;\n }\n for (const p in x) {\n if (!x.hasOwnProperty(p)) {\n continue;\n }\n if (!y.hasOwnProperty(p)) {\n return false;\n }\n if (x[p] === y[p]) {\n continue;\n }\n if (typeof (x[p]) !== \"object\") {\n return false;\n }\n if (!deepEqual(x[p], y[p])) {\n return false;\n }\n }\n for (const p in y) {\n if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) {\n return false;\n }\n }\n return true;\n}\nfunction setValueToPath(obj, value, path) {\n const pathArr = path.split(\".\");\n const forbiddenKeys = [\"__proto__\", \"constructor\", \"prototype\"];\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n const key = pathArr[i];\n if (forbiddenKeys.includes(key)) {\n throw new Error(`The provided path ${path} is invalid. It cannot contain segment/key that is equal to one of the following values: ${forbiddenKeys}.`);\n }\n if (!obj[key]) {\n obj[key] = {};\n }\n if (typeof obj[key] !== \"object\") {\n obj[key] = {};\n }\n obj = obj[key];\n }\n obj[pathArr[i]] = value;\n}\nfunction isSubset(superObj, subObj) {\n return Object.keys(subObj).every((ele) => {\n if (typeof subObj[ele] === \"object\") {\n return isSubset(superObj?.[ele] || {}, subObj[ele] || {});\n }\n return subObj[ele] === superObj?.[ele];\n });\n}\nfunction deletePath(obj, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n return;\n }\n obj = obj[pathArr[i]];\n }\n delete obj[pathArr[i]];\n}\n\nclass GW3Bridge {\n ERROR_URI_FAILURE = \"global.errors.failure\";\n ERROR_URI_INVALID_CONTEXT = \"global.errors.invalid_context\";\n _logger;\n _connection;\n _trackAllContexts;\n _reAnnounceKnownContexts;\n _subscribeOnUpdate;\n _subscribeOnGet;\n _onlyReAnnounceSubscribedContexts;\n _gw3Session;\n _contextNameToData = {};\n _gw3Subscriptions = [];\n _nextCallbackSubscriptionNumber = 0;\n _creationPromises = {};\n _contextNameToId = {};\n _contextIdToName = {};\n _protocolVersion = undefined;\n _contextsTempCache = {};\n _contextsSubscriptionsCache = [];\n _systemContextsSubKey;\n get protocolVersion() {\n if (!this._protocolVersion) {\n const contextsDomainInfo = this._connection.availableDomains.find((d) => d.uri === \"context\");\n this._protocolVersion = contextsDomainInfo?.version ?? 1;\n }\n return this._protocolVersion;\n }\n get setPathSupported() {\n return this.protocolVersion >= 2;\n }\n constructor(config) {\n this._connection = config.connection;\n this._logger = config.logger;\n this._trackAllContexts = config.trackAllContexts;\n this._reAnnounceKnownContexts = config.reAnnounceKnownContexts;\n this._subscribeOnUpdate = config.subscribeOnUpdate ?? true;\n this._subscribeOnGet = config.subscribeOnGet ?? true;\n this._onlyReAnnounceSubscribedContexts = config.onlyReAnnounceSubscribedContexts ?? true;\n this._gw3Session = this._connection.domain(\"global\", [\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_CONTEXT_UPDATED,\n ]);\n this._gw3Session.disconnected(this.resetState.bind(this));\n this._gw3Session.onJoined((wasReconnect) => {\n if (!wasReconnect) {\n return;\n }\n if (!this._reAnnounceKnownContexts) {\n this._contextsTempCache = {};\n return this._connection.setLibReAnnounced({ name: \"contexts\" });\n }\n this.reInitiateState()\n .then(() => this._connection.setLibReAnnounced({ name: \"contexts\" }))\n .catch((err) => {\n this._logger.warn(`Error while re-announcing contexts: ${JSON.stringify(err)}`);\n });\n });\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n }\n dispose() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n this._gw3Subscriptions.length = 0;\n for (const contextName in this._contextNameToData) {\n if (this._contextNameToId.hasOwnProperty(contextName)) {\n delete this._contextNameToData[contextName];\n }\n }\n }\n createContext(name, data) {\n if (name in this._creationPromises) {\n return this._creationPromises[name];\n }\n this._creationPromises[name] =\n this._gw3Session\n .send({\n type: GW_MESSAGE_CREATE_CONTEXT,\n domain: \"global\",\n name,\n data,\n lifetime: \"retained\",\n })\n .then((createContextMsg) => {\n this._contextNameToId[name] = createContextMsg.context_id;\n this._contextIdToName[createContextMsg.context_id] = name;\n const contextData = this._contextNameToData[name] || new GW3ContextData(createContextMsg.context_id, name, true, undefined);\n contextData.isAnnounced = true;\n contextData.name = name;\n contextData.contextId = createContextMsg.context_id;\n contextData.context = createContextMsg.data || deepClone(data);\n contextData.hasReceivedSnapshot = true;\n this._contextNameToData[name] = contextData;\n delete this._creationPromises[name];\n contextData.sentExplicitSubscription = true;\n contextData.createdByUs = true;\n this.subscribe(name, () => { });\n return createContextMsg.context_id;\n });\n return this._creationPromises[name];\n }\n all() {\n return Object.keys(this._contextNameToData)\n .filter((name) => this._contextNameToData[name].isAnnounced);\n }\n async update(name, delta) {\n if (delta) {\n delta = deepClone(delta);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n await this.createContext(name, delta);\n return;\n }\n const currentContext = await this.get(contextData.name);\n const calculatedDelta = this.setPathSupported ?\n this.calculateContextDeltaV2(currentContext, delta) :\n this.calculateContextDeltaV1(currentContext, delta);\n if (!Object.keys(calculatedDelta.added).length\n && !Object.keys(calculatedDelta.updated).length\n && !calculatedDelta.removed.length\n && !calculatedDelta.commands?.length) {\n return Promise.resolve();\n }\n const gwResponse = await this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: calculatedDelta,\n }, {}, { skipPeerId: false });\n if (this._subscribeOnUpdate &&\n !contextData.sentExplicitSubscription &&\n !contextData.activityId) {\n this.subscribe(name, () => { });\n }\n if (this._subscribeOnUpdate ||\n contextData.sentExplicitSubscription ||\n contextData.activityId) {\n await contextData.snapshotPromise;\n this.handleUpdated(contextData, calculatedDelta, {\n updaterId: gwResponse.peer_id\n });\n }\n }\n async set(name, data) {\n if (data) {\n data = deepClone(data);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, data);\n }\n const gwResponse = await this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { reset: data },\n }, {}, { skipPeerId: false });\n if (this._subscribeOnUpdate &&\n !contextData.sentExplicitSubscription &&\n !contextData.activityId) {\n this.subscribe(name, () => { });\n }\n if (this._subscribeOnUpdate ||\n contextData.sentExplicitSubscription ||\n contextData.activityId) {\n this.handleUpdated(contextData, {\n reset: data,\n added: {},\n removed: [],\n updated: {}\n }, {\n updaterId: gwResponse.peer_id\n });\n }\n }\n setPath(name, path, value) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPath operation is not supported, use Glue42 3.10 or later\");\n }\n return this.setPaths(name, [{ path, value }]);\n }\n async setPaths(name, pathValues) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPaths operation is not supported, use Glue42 3.10 or later\");\n }\n if (pathValues) {\n pathValues = deepClone(pathValues);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n const obj = {};\n for (const pathValue of pathValues) {\n setValueToPath(obj, pathValue.value, pathValue.path);\n }\n return this.createContext(name, obj);\n }\n const commands = [];\n for (const pathValue of pathValues) {\n if (pathValue.value === null) {\n commands.push({ type: \"remove\", path: pathValue.path });\n }\n else {\n commands.push({ type: \"set\", path: pathValue.path, value: pathValue.value });\n }\n }\n const gwResponse = await this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { commands }\n }, {}, { skipPeerId: false });\n if (this._subscribeOnUpdate &&\n !contextData.sentExplicitSubscription &&\n !contextData.activityId) {\n this.subscribe(name, () => { });\n }\n if (this._subscribeOnUpdate ||\n contextData.sentExplicitSubscription ||\n contextData.activityId) {\n await contextData.snapshotPromise;\n this.handleUpdated(contextData, {\n added: {},\n removed: [],\n updated: {},\n commands\n }, {\n updaterId: gwResponse.peer_id\n });\n }\n }\n async get(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n if (!contextData && this._subscribeOnGet) {\n this.subscribe(name, () => { });\n }\n return Promise.resolve({});\n }\n if (contextData && !contextData.sentExplicitSubscription) {\n return new Promise((resolve, reject) => {\n this.subscribe(name, (data, _d, _r, un) => {\n if (!this._subscribeOnGet) {\n this.unsubscribe(un);\n }\n resolve(data);\n }).catch((e) => {\n if (this.isInvalidContextError(e)) {\n resolve({});\n return;\n }\n reject(e);\n });\n });\n }\n await contextData.snapshotPromise;\n const context = contextData?.context ?? {};\n return Promise.resolve(deepClone(context));\n }\n isInvalidContextError(e) {\n return e.reason_uri === this.ERROR_URI_INVALID_CONTEXT\n || (e.reason_uri === this.ERROR_URI_FAILURE && e.reason?.startsWith(\"Unable to find context with id\"));\n }\n async subscribe(name, callback, subscriptionKey) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const thisCallbackSubscriptionNumber = typeof subscriptionKey === \"undefined\" ? this._nextCallbackSubscriptionNumber : subscriptionKey;\n if (typeof subscriptionKey === \"undefined\") {\n this._nextCallbackSubscriptionNumber += 1;\n this._contextsSubscriptionsCache.push({ contextName: name, subKey: thisCallbackSubscriptionNumber, callback });\n }\n let contextData = this._contextNameToData[name];\n if (!contextData ||\n !contextData.isAnnounced) {\n contextData = contextData || new GW3ContextData(undefined, name, false, undefined);\n this._contextNameToData[name] = contextData;\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n const hadCallbacks = contextData.hasCallbacks();\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n if (!hadCallbacks) {\n if (!contextData.joinedActivity && !contextData.createdByUs) {\n if (contextData.context && contextData.sentExplicitSubscription) {\n if (contextData.hasReceivedSnapshot && !subscriptionKey) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n return this.sendSubscribe(contextData)\n .then(() => thisCallbackSubscriptionNumber, () => {\n this.unsubscribe(thisCallbackSubscriptionNumber, true);\n return thisCallbackSubscriptionNumber;\n });\n }\n else {\n if (contextData.hasReceivedSnapshot && !subscriptionKey) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n else {\n if (contextData.hasReceivedSnapshot && !subscriptionKey) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n unsubscribe(subscriptionKey, keepInSubscriptionsCache) {\n if (!keepInSubscriptionsCache) {\n this._contextsSubscriptionsCache = this._contextsSubscriptionsCache.filter(x => x.subKey !== subscriptionKey);\n }\n for (const name of Object.keys(this._contextNameToData)) {\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n continue;\n }\n const hadCallbacks = contextData.hasCallbacks();\n delete contextData.updateCallbacks[subscriptionKey];\n if (contextData.isAnnounced &&\n hadCallbacks &&\n !contextData.hasCallbacks() &&\n contextData.sentExplicitSubscription) {\n contextData.hasReceivedSnapshot = false;\n contextData.context = {};\n this.sendUnsubscribe(contextData).catch(() => { });\n }\n if (!contextData.isAnnounced &&\n !contextData.hasCallbacks()) {\n delete this._contextNameToData[name];\n delete this._contextNameToId[name];\n if (contextData.contextId) {\n delete this._contextIdToName[contextData.contextId];\n }\n }\n }\n }\n async destroy(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n const contextId = contextData?.contextId;\n if (!contextData || !contextId) {\n return Promise.reject(`context with ${name} does not exist`);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_DESTROY_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then(() => undefined);\n }\n handleUpdated(contextData, delta, extraData) {\n const oldContext = contextData.context;\n contextData.context = applyContextDelta(contextData.context, delta, this._logger);\n if (this._contextNameToData[contextData.name] === contextData &&\n !deepEqual(oldContext, contextData.context)) {\n this.invokeUpdateCallbacks(contextData, delta, extraData);\n }\n }\n subscribeToContextCreatedMessages() {\n const createdMessageTypes = [\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_ACTIVITY_CREATED,\n ];\n for (const createdMessageType of createdMessageTypes) {\n const sub = this._connection.on(createdMessageType, this.handleContextCreatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextCreatedMessage(contextCreatedMsg) {\n const createdMessageType = contextCreatedMsg.type;\n if (createdMessageType === GW_MESSAGE_ACTIVITY_CREATED) {\n this._contextNameToId[contextCreatedMsg.activity_id] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.activity_id;\n }\n else if (createdMessageType === GW_MESSAGE_CONTEXT_ADDED) {\n this._contextNameToId[contextCreatedMsg.name] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.name;\n }\n else ;\n const name = this._contextIdToName[contextCreatedMsg.context_id];\n if (!name) {\n throw new Error(\"Received created event for context with unknown name: \" + contextCreatedMsg.context_id);\n }\n if (!this._contextNameToId[name]) {\n throw new Error(\"Received created event for context with unknown id: \" + contextCreatedMsg.context_id);\n }\n let contextData = this._contextNameToData[name];\n if (contextData) {\n if (contextData.isAnnounced) {\n return;\n }\n else {\n if (!contextData.hasCallbacks()) {\n throw new Error(\"Assertion failure: contextData.hasCallbacks()\");\n }\n contextData.isAnnounced = true;\n contextData.contextId = contextCreatedMsg.context_id;\n contextData.activityId = contextCreatedMsg.activity_id;\n if (!contextData.sentExplicitSubscription) {\n this.sendSubscribe(contextData).catch(() => { });\n }\n }\n }\n else {\n this._contextNameToData[name] = contextData =\n new GW3ContextData(contextCreatedMsg.context_id, name, true, contextCreatedMsg.activity_id);\n if (this._trackAllContexts) {\n this.subscribe(name, () => { }).then((subKey) => this._systemContextsSubKey = subKey);\n }\n }\n }\n subscribeToContextUpdatedMessages() {\n const updatedMessageTypes = [\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_JOINED_ACTIVITY,\n ];\n for (const updatedMessageType of updatedMessageTypes) {\n const sub = this._connection.on(updatedMessageType, this.handleContextUpdatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextUpdatedMessage(contextUpdatedMsg) {\n const updatedMessageType = contextUpdatedMsg.type;\n const contextId = contextUpdatedMsg.context_id;\n let contextData = this._contextNameToData[this._contextIdToName[contextId]];\n const justSeen = !contextData || !contextData.isAnnounced;\n if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n if (!contextData) {\n contextData =\n this._contextNameToData[contextUpdatedMsg.activity_id] ||\n new GW3ContextData(contextId, contextUpdatedMsg.activity_id, true, contextUpdatedMsg.activity_id);\n }\n this._contextNameToData[contextUpdatedMsg.activity_id] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.activity_id;\n this._contextNameToId[contextUpdatedMsg.activity_id] = contextId;\n contextData.contextId = contextId;\n contextData.isAnnounced = true;\n contextData.activityId = contextUpdatedMsg.activity_id;\n contextData.joinedActivity = true;\n }\n else {\n if (!contextData || !contextData.isAnnounced) {\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData = contextData || new GW3ContextData(contextId, contextUpdatedMsg.name, true, undefined);\n contextData.sentExplicitSubscription = true;\n this._contextNameToData[contextUpdatedMsg.name] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.name;\n this._contextNameToId[contextUpdatedMsg.name] = contextId;\n }\n else {\n this._logger.error(`Received 'update' for unknown context: ${contextId}`);\n }\n return;\n }\n }\n const oldContext = contextData.context;\n contextData.hasReceivedSnapshot = true;\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData.context = contextUpdatedMsg.data ?? {};\n }\n else if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n contextData.context = contextUpdatedMsg.context_snapshot ?? {};\n }\n else if (updatedMessageType === GW_MESSAGE_CONTEXT_UPDATED) {\n contextData.context = applyContextDelta(contextData.context, contextUpdatedMsg.delta, this._logger);\n }\n else {\n throw new Error(\"Unrecognized context update message \" + updatedMessageType);\n }\n if (justSeen ||\n !deepEqual(contextData.context, oldContext) ||\n updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n this.invokeUpdateCallbacks(contextData, contextUpdatedMsg.delta, { updaterId: contextUpdatedMsg.updater_id });\n }\n }\n invokeUpdateCallbacks(contextData, delta, extraData) {\n delta = delta || { added: {}, updated: {}, reset: {}, removed: [] };\n if (delta.commands) {\n delta.added = delta.updated = delta.reset = {};\n delta.removed = [];\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n if (command.path.indexOf(\".\") === -1) {\n delta.removed.push(command.path);\n }\n setValueToPath(delta.updated, null, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(delta.updated, command.value, command.path);\n }\n }\n }\n for (const updateCallbackIndex in contextData.updateCallbacks) {\n if (contextData.updateCallbacks.hasOwnProperty(updateCallbackIndex)) {\n try {\n const updateCallback = contextData.updateCallbacks[updateCallbackIndex];\n updateCallback(deepClone(contextData.context), deepClone(Object.assign({}, delta.added || {}, delta.updated || {}, delta.reset || {})), delta.removed, parseInt(updateCallbackIndex, 10), extraData);\n }\n catch (err) {\n this._logger.debug(\"callback error: \" + JSON.stringify(err));\n }\n }\n }\n }\n subscribeToContextDestroyedMessages() {\n const destroyedMessageTypes = [\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n ];\n for (const destroyedMessageType of destroyedMessageTypes) {\n const sub = this._connection.on(destroyedMessageType, this.handleContextDestroyedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextDestroyedMessage(destroyedMsg) {\n const destroyedMessageType = destroyedMsg.type;\n let contextId;\n let name;\n if (destroyedMessageType === GW_MESSAGE_ACTIVITY_DESTROYED) {\n name = destroyedMsg.activity_id;\n contextId = this._contextNameToId[name];\n if (!contextId) {\n this._logger.error(`Received 'destroyed' for unknown activity: ${destroyedMsg.activity_id}`);\n return;\n }\n }\n else {\n contextId = destroyedMsg.context_id;\n name = this._contextIdToName[contextId];\n if (!name) {\n this._logger.error(`Received 'destroyed' for unknown context: ${destroyedMsg.context_id}`);\n return;\n }\n }\n delete this._contextIdToName[contextId];\n delete this._contextNameToId[name];\n const contextData = this._contextNameToData[name];\n delete this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n this._logger.error(`Received 'destroyed' for unknown context: ${contextId}`);\n return;\n }\n }\n async sendSubscribe(contextData) {\n contextData.sentExplicitSubscription = true;\n try {\n await this._gw3Session.send({\n type: GW_MESSAGE_SUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n });\n return;\n }\n catch (error) {\n contextData.sentExplicitSubscription = false;\n throw error;\n }\n }\n async sendUnsubscribe(contextData) {\n const prev = contextData.sentExplicitSubscription;\n contextData.sentExplicitSubscription = false;\n try {\n await this._gw3Session.send({\n type: GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n });\n return;\n }\n catch (error) {\n contextData.sentExplicitSubscription = prev;\n throw error;\n }\n }\n calculateContextDeltaV1(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined };\n if (from) {\n for (const x of Object.keys(from)) {\n if (Object.keys(to).indexOf(x) !== -1\n && to[x] !== null\n && !deepEqual(from[x], to[x])) {\n delta.updated[x] = to[x];\n }\n }\n }\n for (const x of Object.keys(to)) {\n if (!from || (Object.keys(from).indexOf(x) === -1)) {\n if (to[x] !== null) {\n delta.added[x] = to[x];\n }\n }\n else if (to[x] === null) {\n delta.removed.push(x);\n }\n }\n return delta;\n }\n calculateContextDeltaV2(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined, commands: [] };\n for (const x of Object.keys(to)) {\n if (to[x] !== null) {\n const fromX = from ? from[x] : null;\n if (!deepEqual(fromX, to[x])) {\n delta.commands?.push({ type: \"set\", path: x, value: to[x] });\n }\n }\n else {\n delta.commands?.push({ type: \"remove\", path: x });\n }\n }\n return delta;\n }\n resetState() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n if (this._systemContextsSubKey) {\n this.unsubscribe(this._systemContextsSubKey, true);\n delete this._systemContextsSubKey;\n }\n this._gw3Subscriptions = [];\n this._contextNameToId = {};\n this._contextIdToName = {};\n delete this._protocolVersion;\n this._contextsTempCache = Object.keys(this._contextNameToData).reduce((cacheSoFar, ctxName) => {\n const contextData = this._contextNameToData[ctxName];\n const addToCache = !this._onlyReAnnounceSubscribedContexts || contextData.hasReceivedSnapshot;\n if (addToCache) {\n cacheSoFar[ctxName] = this._contextNameToData[ctxName].context;\n }\n return cacheSoFar;\n }, {});\n this._contextNameToData = {};\n }\n async reInitiateState() {\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n await Promise.all(this._contextsSubscriptionsCache.map((subscription) => this.subscribe(subscription.contextName, subscription.callback, subscription.subKey)));\n await this.flushQueue();\n for (const ctxName in this._contextsTempCache) {\n if (typeof this._contextsTempCache[ctxName] !== \"object\" || Object.keys(this._contextsTempCache[ctxName]).length === 0) {\n continue;\n }\n const lastKnownData = this._contextsTempCache[ctxName];\n this._logger.info(`Re-announcing known context: ${ctxName}`);\n await this.flushQueue();\n await this.update(ctxName, lastKnownData);\n }\n this._contextsTempCache = {};\n this._logger.info(\"Contexts are re-announced\");\n }\n flushQueue() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n }\n}\n\nclass ContextsModule {\n initTime;\n initStartTime;\n initEndTime;\n _bridge;\n constructor(config) {\n this._bridge = new GW3Bridge(config);\n }\n all() {\n return this._bridge.all();\n }\n update(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.update(name, data);\n }\n set(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.set(name, data);\n }\n setPath(name, path, data) {\n this.checkName(name);\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(data);\n return this.set(name, data);\n }\n return this._bridge.setPath(name, path, data);\n }\n setPaths(name, paths) {\n this.checkName(name);\n if (!Array.isArray(paths)) {\n throw new Error(\"Please provide the paths as an array of PathValues!\");\n }\n for (const { path, value } of paths) {\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(value);\n }\n }\n return this._bridge.setPaths(name, paths);\n }\n subscribe(name, callback) {\n this.checkName(name);\n if (typeof callback !== \"function\") {\n throw new Error(\"Please provide the callback as a function!\");\n }\n return this._bridge\n .subscribe(name, (data, delta, removed, key, extraData) => callback(data, delta, removed, () => this._bridge.unsubscribe(key), extraData))\n .then((key) => () => {\n this._bridge.unsubscribe(key);\n });\n }\n get(name) {\n this.checkName(name);\n return this._bridge.get(name);\n }\n ready() {\n return Promise.resolve(this);\n }\n destroy(name) {\n this.checkName(name);\n return this._bridge.destroy(name);\n }\n get setPathSupported() {\n return this._bridge.setPathSupported;\n }\n checkName(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new Error(\"Please provide the name as a non-empty string!\");\n }\n }\n checkPath(path) {\n if (typeof path !== \"string\") {\n throw new Error(\"Please provide the path as a dot delimited string!\");\n }\n }\n checkData(data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Please provide the data as an object!\");\n }\n }\n}\n\nfunction promisify (promise, successCallback, errorCallback) {\n if (typeof successCallback !== \"function\" && typeof errorCallback !== \"function\") {\n return promise;\n }\n if (typeof successCallback !== \"function\") {\n successCallback = () => { };\n }\n else if (typeof errorCallback !== \"function\") {\n errorCallback = () => { };\n }\n return promise.then(successCallback, errorCallback);\n}\n\nfunction rejectAfter(ms = 0, promise, error) {\n let timeout;\n const clearTimeoutIfThere = () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n promise\n .then(() => {\n clearTimeoutIfThere();\n })\n .catch(() => {\n clearTimeoutIfThere();\n });\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => reject(error), ms);\n });\n}\n\n/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nDecoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nDecoder.tuple;\r\n/** See `Decoder.dict` */\r\nDecoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nDecoder.oneOf;\r\n/** See `Decoder.union` */\r\nvar union = Decoder.union;\r\n/** See `Decoder.intersection` */\r\nDecoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nDecoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nDecoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nDecoder.succeed;\r\n/** See `Decoder.fail` */\r\nvar fail = Decoder.fail;\r\n/** See `Decoder.lazy` */\r\nDecoder.lazy;\n\nconst functionCheck = (input, propDescription) => {\n const providedType = typeof input;\n return providedType === \"function\" ?\n anyJson() :\n fail(`The provided argument as ${propDescription} should be of type function, provided: ${typeof providedType}`);\n};\nconst nonEmptyStringDecoder = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nconst nonNegativeNumberDecoder = number().where((num) => num >= 0, \"Expected a non-negative number or 0\");\nconst methodDefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n objectTypes: optional(array(nonEmptyStringDecoder)),\n displayName: optional(nonEmptyStringDecoder),\n accepts: optional(nonEmptyStringDecoder),\n returns: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n version: optional(nonNegativeNumberDecoder),\n supportsStreaming: optional(boolean()),\n flags: optional(object()),\n getServers: optional(anyJson().andThen((result) => functionCheck(result, \"method definition getServers\")))\n});\nconst methodFilterDecoder = union(nonEmptyStringDecoder, methodDefinitionDecoder);\nconst instanceDecoder = object({\n application: optional(nonEmptyStringDecoder),\n applicationName: optional(nonEmptyStringDecoder),\n pid: optional(nonNegativeNumberDecoder),\n machine: optional(nonEmptyStringDecoder),\n user: optional(nonEmptyStringDecoder),\n environment: optional(nonEmptyStringDecoder),\n region: optional(nonEmptyStringDecoder),\n service: optional(nonEmptyStringDecoder),\n instance: optional(nonEmptyStringDecoder),\n windowId: optional(nonEmptyStringDecoder),\n peerId: optional(nonEmptyStringDecoder),\n isLocal: optional(boolean()),\n api: optional(nonEmptyStringDecoder),\n getMethods: optional(anyJson().andThen((result) => functionCheck(result, \"instance getMethods\"))),\n getStreams: optional(anyJson().andThen((result) => functionCheck(result, \"instance getStreams\")))\n});\nconst targetDecoder = union(constant(\"best\"), constant(\"all\"), constant(\"skipMine\"), instanceDecoder, array(instanceDecoder));\nconst invokeOptionsDecoder = object({\n waitTimeoutMs: optional(nonNegativeNumberDecoder),\n methodResponseTimeoutMs: optional(nonNegativeNumberDecoder)\n});\n\nvar InvokeStatus;\n(function (InvokeStatus) {\n InvokeStatus[InvokeStatus[\"Success\"] = 0] = \"Success\";\n InvokeStatus[InvokeStatus[\"Error\"] = 1] = \"Error\";\n})(InvokeStatus || (InvokeStatus = {}));\nclass Client {\n protocol;\n repo;\n instance;\n configuration;\n constructor(protocol, repo, instance, configuration) {\n this.protocol = protocol;\n this.repo = repo;\n this.instance = instance;\n this.configuration = configuration;\n }\n subscribe(method, options, successCallback, errorCallback, existingSub) {\n const callProtocolSubscribe = (targetServers, stream, successProxy, errorProxy) => {\n options.methodResponseTimeout = options.methodResponseTimeout ?? options.waitTimeoutMs;\n this.protocol.client.subscribe(stream, options, targetServers, successProxy, errorProxy, existingSub);\n };\n const promise = new Promise((resolve, reject) => {\n const successProxy = (sub) => {\n resolve(sub);\n };\n const errorProxy = (err) => {\n reject(err);\n };\n if (!method) {\n reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n return;\n }\n let methodDef;\n if (typeof method === \"string\") {\n methodDef = { name: method };\n }\n else {\n methodDef = method;\n }\n if (!methodDef.name) {\n reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n return;\n }\n if (options === undefined) {\n options = {};\n }\n let target = options.target;\n if (target === undefined) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\") {\n reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\", \"best\", or an instance.`));\n return;\n }\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = options.method_response_timeout;\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = this.configuration.methodResponseTimeout;\n }\n }\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = options.wait_for_method_timeout;\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n const delayStep = 500;\n let delayTillNow = 0;\n let currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n callProtocolSubscribe(currentServers, currentServers[0].methods[0], successProxy, errorProxy);\n }\n else {\n const retry = () => {\n if (!target || !(options.waitTimeoutMs)) {\n return;\n }\n delayTillNow += delayStep;\n currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n const streamInfo = currentServers[0].methods[0];\n callProtocolSubscribe(currentServers, streamInfo, successProxy, errorProxy);\n }\n else if (delayTillNow >= options.waitTimeoutMs) {\n const def = typeof method === \"string\" ? { name: method } : method;\n callProtocolSubscribe(currentServers, def, successProxy, errorProxy);\n }\n else {\n setTimeout(retry, delayStep);\n }\n };\n setTimeout(retry, delayStep);\n }\n });\n return promisify(promise, successCallback, errorCallback);\n }\n servers(methodFilter) {\n const filterCopy = methodFilter === undefined\n ? undefined\n : { ...methodFilter };\n return this.getServers(filterCopy).map((serverMethodMap) => {\n return serverMethodMap.server.instance;\n });\n }\n methods(methodFilter) {\n if (typeof methodFilter === \"string\") {\n methodFilter = { name: methodFilter };\n }\n else {\n methodFilter = { ...methodFilter };\n }\n return this.getMethods(methodFilter);\n }\n methodsForInstance(instance) {\n return this.getMethodsForInstance(instance);\n }\n methodAdded(callback) {\n return this.repo.onMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.repo.onMethodRemoved(callback);\n }\n serverAdded(callback) {\n return this.repo.onServerAdded(callback);\n }\n serverRemoved(callback) {\n return this.repo.onServerRemoved((server, reason) => {\n callback(server, reason);\n });\n }\n serverMethodAdded(callback) {\n return this.repo.onServerMethodAdded((server, method) => {\n callback({ server, method });\n });\n }\n serverMethodRemoved(callback) {\n return this.repo.onServerMethodRemoved((server, method) => {\n callback({ server, method });\n });\n }\n async invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n const getInvokePromise = async () => {\n const methodDefinition = typeof methodFilter === \"string\" ? { name: methodFilter } : { ...methodFilter };\n if (!argumentObj) {\n argumentObj = {};\n }\n if (!target) {\n target = \"best\";\n }\n if (!additionalOptions) {\n additionalOptions = {};\n }\n const methodFilterDecoderResult = methodFilterDecoder.run(methodDefinition);\n if (!methodFilterDecoderResult.ok) {\n const message = `The provided 'method' argument is invalid. Error: ${JSON.stringify(methodFilterDecoderResult.error)}.`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (typeof argumentObj !== \"object\") {\n const message = \"The provided 'argumentObj' argument is invalid. Error: The argumentObj should be an instance of an object\";\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n const targetDecoderResult = targetDecoder.run(target);\n if (!targetDecoderResult.ok) {\n const message = `The provided 'target' argument is invalid. Error: ${JSON.stringify(targetDecoderResult.error)}.`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n const invokeOptionsDecoderResult = invokeOptionsDecoder.run(additionalOptions);\n if (!invokeOptionsDecoderResult.ok) {\n const message = `The provided 'options' argument is invalid. Error: ${JSON.stringify(invokeOptionsDecoderResult.error)}.`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (success && typeof success !== \"function\") {\n const message = \"The provided 'success' function is invalid. Error: The success should be a valid function\";\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (error && typeof error !== \"function\") {\n const message = \"The provided 'error' function is invalid. Error: The error should be a valid function\";\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = additionalOptions.method_response_timeout;\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = this.configuration.methodResponseTimeout;\n }\n }\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = additionalOptions.wait_for_method_timeout;\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n let serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length === 0) {\n try {\n serversMethodMap = await this.tryToAwaitForMethods(methodDefinition, target, additionalOptions);\n }\n catch (err) {\n const message = `Can not find a method matching ${JSON.stringify(methodFilter)} with server filter ${JSON.stringify(target)}`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n }\n const timeout = additionalOptions.methodResponseTimeoutMs;\n const additionalOptionsCopy = additionalOptions;\n const invokePromises = serversMethodMap.map((serversMethodPair) => {\n const invId = nanoid(10);\n const method = serversMethodPair.methods[0];\n const server = serversMethodPair.server;\n const invokePromise = this.protocol.client.invoke(invId, method, argumentObj, server, additionalOptionsCopy);\n return Promise.race([\n invokePromise,\n rejectAfter(timeout, invokePromise, {\n invocationId: invId,\n message: `Invocation timeout (${timeout} ms) reached for method name: ${method?.name}, target instance: ${JSON.stringify(server.instance)}, options: ${JSON.stringify(additionalOptionsCopy)}`,\n status: InvokeStatus.Error,\n })\n ]);\n });\n const invocationMessages = await Promise.all(invokePromises);\n const results = this.getInvocationResultObj(invocationMessages, methodDefinition, argumentObj);\n const allRejected = invocationMessages.every((result) => result.status === InvokeStatus.Error);\n if (allRejected) {\n return Promise.reject(results);\n }\n return results;\n };\n return promisify(getInvokePromise(), success, error);\n }\n generateInvalidInputInvocationResult(message, methodDefinition, argumentObj) {\n const method = {\n ...methodDefinition,\n getServers: () => [],\n supportsStreaming: false,\n objectTypes: methodDefinition.objectTypes ?? [],\n flags: methodDefinition.flags?.metadata ?? {}\n };\n const invokeResultMessage = {\n invocationId: nanoid(10),\n status: InvokeStatus.Error,\n message\n };\n return this.getInvocationResultObj([invokeResultMessage], method, argumentObj);\n }\n getInvocationResultObj(invocationResults, method, calledWith) {\n const all_return_values = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Success)\n .reduce((allValues, currentValue) => {\n allValues = [\n ...allValues,\n {\n executed_by: currentValue.instance,\n returned: currentValue.result,\n called_with: calledWith,\n method,\n message: currentValue.message,\n status: currentValue.status,\n }\n ];\n return allValues;\n }, []);\n const all_errors = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Error)\n .reduce((allErrors, currError) => {\n allErrors = [\n ...allErrors,\n {\n executed_by: currError.instance,\n called_with: calledWith,\n name: method.name,\n message: currError.message,\n }\n ];\n return allErrors;\n }, []);\n const invResult = invocationResults[0];\n const result = {\n method,\n called_with: calledWith,\n returned: invResult.result,\n executed_by: invResult.instance,\n all_return_values,\n all_errors,\n message: invResult.message,\n status: invResult.status\n };\n return result;\n }\n tryToAwaitForMethods(methodDefinition, target, additionalOptions) {\n return new Promise((resolve, reject) => {\n if (additionalOptions.waitTimeoutMs === 0) {\n reject();\n return;\n }\n const delayStep = 500;\n let delayTillNow = 0;\n const retry = () => {\n delayTillNow += delayStep;\n const serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length > 0) {\n clearInterval(interval);\n resolve(serversMethodMap);\n }\n else if (delayTillNow >= (additionalOptions.waitTimeoutMs || 10000)) {\n clearInterval(interval);\n reject();\n return;\n }\n };\n const interval = setInterval(retry, delayStep);\n });\n }\n filterByTarget(target, serverMethodMap) {\n if (typeof target === \"string\") {\n if (target === \"all\") {\n return [...serverMethodMap];\n }\n else if (target === \"best\") {\n const localMachine = serverMethodMap\n .find((s) => s.server.instance.isLocal);\n if (localMachine) {\n return [localMachine];\n }\n if (serverMethodMap[0] !== undefined) {\n return [serverMethodMap[0]];\n }\n }\n else if (target === \"skipMine\") {\n return serverMethodMap.filter(({ server }) => server.instance.peerId !== this.instance.peerId);\n }\n }\n else {\n let targetArray;\n if (!Array.isArray(target)) {\n targetArray = [target];\n }\n else {\n targetArray = target;\n }\n const allServersMatching = targetArray.reduce((matches, filter) => {\n const myMatches = serverMethodMap.filter((serverMethodPair) => {\n return this.instanceMatch(filter, serverMethodPair.server.instance);\n });\n return matches.concat(myMatches);\n }, []);\n return allServersMatching;\n }\n return [];\n }\n instanceMatch(instanceFilter, instanceDefinition) {\n if (instanceFilter?.peerId && instanceFilter?.instance) {\n instanceFilter = { ...instanceFilter };\n delete instanceFilter.peerId;\n }\n return this.containsProps(instanceFilter, instanceDefinition);\n }\n methodMatch(methodFilter, methodDefinition) {\n return this.containsProps(methodFilter, methodDefinition);\n }\n containsProps(filter, repoMethod) {\n const filterProps = Object.keys(filter)\n .filter((prop) => {\n return filter[prop] !== undefined\n && filter[prop] !== null\n && typeof filter[prop] !== \"function\"\n && prop !== \"object_types\"\n && prop !== \"display_name\"\n && prop !== \"id\"\n && prop !== \"gatewayId\"\n && prop !== \"identifier\"\n && prop[0] !== \"_\";\n });\n return filterProps.every((prop) => {\n let isMatch;\n const filterValue = filter[prop];\n const repoMethodValue = repoMethod[prop];\n switch (prop) {\n case \"objectTypes\":\n isMatch = (filterValue || []).every((filterValueEl) => {\n return (repoMethodValue || []).includes(filterValueEl);\n });\n break;\n case \"flags\":\n isMatch = isSubset(repoMethodValue || {}, filterValue || {});\n break;\n default:\n isMatch = String(filterValue).toLowerCase() === String(repoMethodValue).toLowerCase();\n }\n return isMatch;\n });\n }\n getMethods(methodFilter) {\n if (methodFilter === undefined) {\n return this.repo.getMethods();\n }\n const methods = this.repo.getMethods().filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n return methods;\n }\n getMethodsForInstance(instanceFilter) {\n const allServers = this.repo.getServers();\n const matchingServers = allServers.filter((server) => {\n return this.instanceMatch(instanceFilter, server.instance);\n });\n if (matchingServers.length === 0) {\n return [];\n }\n let resultMethodsObject = {};\n if (matchingServers.length === 1) {\n resultMethodsObject = matchingServers[0].methods;\n }\n else {\n matchingServers.forEach((server) => {\n Object.keys(server.methods).forEach((methodKey) => {\n const method = server.methods[methodKey];\n resultMethodsObject[method.identifier] = method;\n });\n });\n }\n return Object.keys(resultMethodsObject)\n .map((key) => {\n return resultMethodsObject[key];\n });\n }\n getServers(methodFilter) {\n const servers = this.repo.getServers();\n if (methodFilter === undefined) {\n return servers.map((server) => {\n return { server, methods: [] };\n });\n }\n return servers.reduce((prev, current) => {\n const methodsForServer = Object.values(current.methods);\n const matchingMethods = methodsForServer.filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n if (matchingMethods.length > 0) {\n prev.push({ server: current, methods: matchingMethods });\n }\n return prev;\n }, []);\n }\n getServerMethodsByFilterAndTarget(methodFilter, target) {\n const serversMethodMap = this.getServers(methodFilter);\n return this.filterByTarget(target, serversMethodMap);\n }\n}\n\nclass ServerSubscription {\n protocol;\n repoMethod;\n subscription;\n constructor(protocol, repoMethod, subscription) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.subscription = subscription;\n }\n get stream() {\n if (!this.repoMethod.stream) {\n throw new Error(\"no stream\");\n }\n return this.repoMethod.stream;\n }\n get arguments() { return this.subscription.arguments || {}; }\n get branchKey() { return this.subscription.branchKey; }\n get instance() {\n if (!this.subscription.instance) {\n throw new Error(\"no instance\");\n }\n return this.subscription.instance;\n }\n close() {\n this.protocol.server.closeSingleSubscription(this.repoMethod, this.subscription);\n }\n push(data) {\n this.protocol.server.pushDataToSingle(this.repoMethod, this.subscription, data);\n }\n}\n\nclass Request {\n protocol;\n repoMethod;\n requestContext;\n arguments;\n instance;\n constructor(protocol, repoMethod, requestContext) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.requestContext = requestContext;\n this.arguments = requestContext.arguments;\n this.instance = requestContext.instance;\n }\n accept() {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, \"\");\n }\n acceptOnBranch(branch) {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, branch);\n }\n reject(reason) {\n this.protocol.server.rejectRequest(this.requestContext, this.repoMethod, reason);\n }\n}\n\nlet ServerStreaming$1 = class ServerStreaming {\n protocol;\n server;\n constructor(protocol, server) {\n this.protocol = protocol;\n this.server = server;\n protocol.server.onSubRequest((rc, rm) => this.handleSubRequest(rc, rm));\n protocol.server.onSubAdded((sub, rm) => this.handleSubAdded(sub, rm));\n protocol.server.onSubRemoved((sub, rm) => this.handleSubRemoved(sub, rm));\n }\n handleSubRequest(requestContext, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRequestHandler === \"function\")) {\n return;\n }\n const request = new Request(this.protocol, repoMethod, requestContext);\n repoMethod.streamCallbacks.subscriptionRequestHandler(request);\n }\n handleSubAdded(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionAddedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionAddedHandler(sub);\n }\n handleSubRemoved(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRemovedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionRemovedHandler(sub);\n }\n};\n\nclass ServerBranch {\n key;\n protocol;\n repoMethod;\n constructor(key, protocol, repoMethod) {\n this.key = key;\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n }\n subscriptions() {\n const subList = this.protocol.server.getSubscriptionList(this.repoMethod, this.key);\n return subList.map((sub) => {\n return new ServerSubscription(this.protocol, this.repoMethod, sub);\n });\n }\n close() {\n this.protocol.server.closeAllSubscriptions(this.repoMethod, this.key);\n }\n push(data) {\n this.protocol.server.pushData(this.repoMethod, data, [this.key]);\n }\n}\n\nclass ServerStream {\n _protocol;\n _repoMethod;\n _server;\n name;\n constructor(_protocol, _repoMethod, _server) {\n this._protocol = _protocol;\n this._repoMethod = _repoMethod;\n this._server = _server;\n this.name = this._repoMethod.definition.name;\n }\n branches(key) {\n const bList = this._protocol.server.getBranchList(this._repoMethod);\n if (key) {\n if (bList.indexOf(key) > -1) {\n return new ServerBranch(key, this._protocol, this._repoMethod);\n }\n return undefined;\n }\n else {\n return bList.map((branchKey) => {\n return new ServerBranch(branchKey, this._protocol, this._repoMethod);\n });\n }\n }\n branch(key) {\n return this.branches(key);\n }\n subscriptions() {\n const subList = this._protocol.server.getSubscriptionList(this._repoMethod);\n return subList.map((sub) => {\n return new ServerSubscription(this._protocol, this._repoMethod, sub);\n });\n }\n get definition() {\n const def2 = this._repoMethod.definition;\n return {\n accepts: def2.accepts,\n description: def2.description,\n displayName: def2.displayName,\n name: def2.name,\n objectTypes: def2.objectTypes,\n returns: def2.returns,\n supportsStreaming: def2.supportsStreaming,\n flags: def2.flags?.metadata,\n };\n }\n close() {\n this._protocol.server.closeAllSubscriptions(this._repoMethod);\n this._server.unregister(this._repoMethod.definition, true);\n }\n push(data, branches) {\n if (typeof branches !== \"string\" && !Array.isArray(branches) && branches !== undefined) {\n throw new Error(\"invalid branches should be string or string array\");\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n this._protocol.server.pushData(this._repoMethod, data, branches);\n }\n updateRepoMethod(repoMethod) {\n this._repoMethod = repoMethod;\n }\n}\n\nclass Server {\n protocol;\n serverRepository;\n streaming;\n invocations = 0;\n currentlyUnregistering = {};\n constructor(protocol, serverRepository) {\n this.protocol = protocol;\n this.serverRepository = serverRepository;\n this.streaming = new ServerStreaming$1(protocol, this);\n this.protocol.server.onInvoked(this.onMethodInvoked.bind(this));\n }\n createStream(streamDef, callbacks, successCallback, errorCallback, existingStream) {\n const promise = new Promise((resolve, reject) => {\n if (!streamDef) {\n reject(\"The stream name must be unique! Please, provide either a unique string for a stream name to “glue.interop.createStream()” or a “methodDefinition” object with a unique “name” property for the stream.\");\n return;\n }\n let streamMethodDefinition;\n if (typeof streamDef === \"string\") {\n streamMethodDefinition = { name: \"\" + streamDef };\n }\n else {\n streamMethodDefinition = { ...streamDef };\n }\n if (!streamMethodDefinition.name) {\n return reject(`The “name” property is required for the “streamDefinition” object and must be unique. Stream definition: ${JSON.stringify(streamMethodDefinition)}`);\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === streamMethodDefinition.name);\n if (nameAlreadyExists) {\n return reject(`A stream with the name \"${streamMethodDefinition.name}\" already exists! Please, provide a unique name for the stream.`);\n }\n streamMethodDefinition.supportsStreaming = true;\n if (!callbacks) {\n callbacks = {};\n }\n if (typeof callbacks.subscriptionRequestHandler !== \"function\") {\n callbacks.subscriptionRequestHandler = (request) => {\n request.accept();\n };\n }\n const repoMethod = this.serverRepository.add({\n definition: streamMethodDefinition,\n streamCallbacks: callbacks,\n protocolState: {},\n });\n this.protocol.server.createStream(repoMethod)\n .then(() => {\n let streamUserObject;\n if (existingStream) {\n streamUserObject = existingStream;\n existingStream.updateRepoMethod(repoMethod);\n }\n else {\n streamUserObject = new ServerStream(this.protocol, repoMethod, this);\n }\n repoMethod.stream = streamUserObject;\n resolve(streamUserObject);\n })\n .catch((err) => {\n if (repoMethod.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n reject(err);\n });\n });\n return promisify(promise, successCallback, errorCallback);\n }\n register(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallbackFunction = async (context, resultCallback) => {\n try {\n const result = callback(context.args, context.instance);\n if (result && typeof result.then === \"function\") {\n const resultValue = await result;\n resultCallback(undefined, resultValue);\n }\n else {\n resultCallback(undefined, result);\n }\n }\n catch (e) {\n resultCallback(e ?? \"\", e ?? \"\");\n }\n };\n wrappedCallbackFunction.userCallback = callback;\n return this.registerCore(methodDefinition, wrappedCallbackFunction);\n }\n registerAsync(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallback = async (context, resultCallback) => {\n try {\n let resultCalled = false;\n const success = (result) => {\n if (!resultCalled) {\n resultCallback(undefined, result);\n }\n resultCalled = true;\n };\n const error = (e) => {\n if (!resultCalled) {\n if (!e) {\n e = \"\";\n }\n resultCallback(e, e);\n }\n resultCalled = true;\n };\n const methodResult = callback(context.args, context.instance, success, error);\n if (methodResult && typeof methodResult.then === \"function\") {\n methodResult\n .then(success)\n .catch(error);\n }\n }\n catch (e) {\n resultCallback(e, undefined);\n }\n };\n wrappedCallback.userCallbackAsync = callback;\n return this.registerCore(methodDefinition, wrappedCallback);\n }\n async unregister(methodFilter, forStream = false) {\n if (methodFilter === undefined) {\n return Promise.reject(\"Please, provide either a unique string for a name or an object containing a “name” property.\");\n }\n if (typeof methodFilter === \"function\") {\n await this.unregisterWithPredicate(methodFilter, forStream);\n return;\n }\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = methodFilter;\n }\n if (methodDefinition.name === undefined) {\n return Promise.reject(\"Method name is required. Cannot find a method if the method name is undefined!\");\n }\n const methodToBeRemoved = this.serverRepository.getList().find((serverMethod) => {\n return serverMethod.definition.name === methodDefinition.name\n && (serverMethod.definition.supportsStreaming || false) === forStream;\n });\n if (!methodToBeRemoved) {\n return Promise.reject(`Method with a name \"${methodDefinition.name}\" does not exist or is not registered by your application!`);\n }\n await this.removeMethodsOrStreams([methodToBeRemoved]);\n }\n async unregisterWithPredicate(filterPredicate, forStream) {\n const methodsOrStreamsToRemove = this.serverRepository.getList()\n .filter((sm) => filterPredicate(sm.definition))\n .filter((serverMethod) => (serverMethod.definition.supportsStreaming || false) === forStream);\n if (!methodsOrStreamsToRemove || methodsOrStreamsToRemove.length === 0) {\n return Promise.reject(`Could not find a ${forStream ? \"stream\" : \"method\"} matching the specified condition!`);\n }\n await this.removeMethodsOrStreams(methodsOrStreamsToRemove);\n }\n removeMethodsOrStreams(methodsToRemove) {\n const methodUnregPromises = [];\n methodsToRemove.forEach((method) => {\n const promise = this.protocol.server.unregister(method)\n .then(() => {\n if (method.repoId) {\n this.serverRepository.remove(method.repoId);\n }\n });\n methodUnregPromises.push(promise);\n this.addAsCurrentlyUnregistering(method.definition.name, promise);\n });\n return Promise.all(methodUnregPromises);\n }\n async addAsCurrentlyUnregistering(methodName, promise) {\n const timeout = new Promise((resolve) => setTimeout(resolve, 5000));\n this.currentlyUnregistering[methodName] = Promise.race([promise, timeout]).then(() => {\n delete this.currentlyUnregistering[methodName];\n });\n }\n async registerCore(method, theFunction) {\n let methodDefinition;\n if (typeof method === \"string\") {\n methodDefinition = { name: \"\" + method };\n }\n else {\n methodDefinition = { ...method };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Please, provide a (unique) string value for the “name” property in the “methodDefinition” object: ${JSON.stringify(method)}`);\n }\n const unregisterInProgress = this.currentlyUnregistering[methodDefinition.name];\n if (typeof unregisterInProgress !== \"undefined\") {\n await unregisterInProgress;\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === methodDefinition.name);\n if (nameAlreadyExists) {\n return Promise.reject(`A method with the name \"${methodDefinition.name}\" already exists! Please, provide a unique name for the method.`);\n }\n if (methodDefinition.supportsStreaming) {\n return Promise.reject(`When you create methods with “glue.interop.register()” or “glue.interop.registerAsync()” the property “supportsStreaming” cannot be “true”. If you want “${methodDefinition.name}” to be a stream, please use the “glue.interop.createStream()” method.`);\n }\n const repoMethod = this.serverRepository.add({\n definition: methodDefinition,\n theFunction,\n protocolState: {},\n });\n return this.protocol.server.register(repoMethod)\n .catch((err) => {\n if (repoMethod?.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n throw err;\n });\n }\n onMethodInvoked(methodToExecute, invocationId, invocationArgs) {\n if (!methodToExecute || !methodToExecute.theFunction) {\n return;\n }\n methodToExecute.theFunction(invocationArgs, (err, result) => {\n if (err !== undefined && err !== null) {\n if (err.message && typeof err.message === \"string\") {\n err = err.message;\n }\n else if (typeof err !== \"string\") {\n try {\n err = JSON.stringify(err);\n }\n catch (unStrException) {\n err = `un-stringifyable error in onMethodInvoked! Top level prop names: ${Object.keys(err)}`;\n }\n }\n }\n if (!result) {\n result = {};\n }\n else if (typeof result !== \"object\" || Array.isArray(result)) {\n result = { _value: result };\n }\n this.protocol.server.methodInvocationResult(methodToExecute, invocationId, err, result);\n });\n }\n}\n\nclass InstanceWrapper {\n wrapped = {};\n constructor(API, instance, connection) {\n this.wrapped.getMethods = function () {\n return API.methodsForInstance(this);\n };\n this.wrapped.getStreams = function () {\n return API.methodsForInstance(this).filter((m) => m.supportsStreaming);\n };\n if (instance) {\n this.refreshWrappedObject(instance);\n }\n if (connection) {\n connection.loggedIn(() => {\n this.refresh(connection);\n });\n this.refresh(connection);\n }\n }\n unwrap() {\n return this.wrapped;\n }\n refresh(connection) {\n if (!connection) {\n return;\n }\n const resolvedIdentity = connection?.resolvedIdentity;\n const instance = Object.assign({}, resolvedIdentity ?? {}, { peerId: connection?.peerId });\n this.refreshWrappedObject(instance);\n }\n refreshWrappedObject(resolvedIdentity) {\n Object.keys(resolvedIdentity).forEach((key) => {\n this.wrapped[key] = resolvedIdentity[key];\n });\n this.wrapped.user = resolvedIdentity.user;\n this.wrapped.instance = resolvedIdentity.instance;\n this.wrapped.application = resolvedIdentity.application ?? nanoid(10);\n this.wrapped.applicationName = resolvedIdentity.applicationName;\n this.wrapped.pid = resolvedIdentity.pid ?? resolvedIdentity.process ?? Math.floor(Math.random() * 10000000000);\n this.wrapped.machine = resolvedIdentity.machine;\n this.wrapped.environment = resolvedIdentity.environment;\n this.wrapped.region = resolvedIdentity.region;\n this.wrapped.windowId = resolvedIdentity.windowId;\n this.wrapped.isLocal = resolvedIdentity.isLocal ?? true;\n this.wrapped.api = resolvedIdentity.api;\n this.wrapped.service = resolvedIdentity.service;\n this.wrapped.peerId = resolvedIdentity.peerId;\n }\n}\n\nconst hideMethodSystemFlags = (method) => {\n return {\n ...method,\n flags: method.flags.metadata || {}\n };\n};\nclass ClientRepository {\n logger;\n API;\n servers = {};\n myServer;\n methodsCount = {};\n callbacks = CallbackRegistryFactory();\n constructor(logger, API) {\n this.logger = logger;\n this.API = API;\n const peerId = this.API.instance.peerId;\n this.myServer = {\n id: peerId,\n methods: {},\n instance: this.API.instance,\n wrapper: this.API.unwrappedInstance,\n };\n this.servers[peerId] = this.myServer;\n }\n addServer(info, serverId) {\n this.logger.debug(`adding server ${serverId}`);\n const current = this.servers[serverId];\n if (current) {\n return current.id;\n }\n const wrapper = new InstanceWrapper(this.API, info);\n const serverEntry = {\n id: serverId,\n methods: {},\n instance: wrapper.unwrap(),\n wrapper,\n };\n this.servers[serverId] = serverEntry;\n this.callbacks.execute(\"onServerAdded\", serverEntry.instance);\n return serverId;\n }\n removeServerById(id, reason) {\n const server = this.servers[id];\n if (!server) {\n this.logger.warn(`not aware of server ${id}, my state ${JSON.stringify(Object.keys(this.servers))}`);\n return;\n }\n else {\n this.logger.debug(`removing server ${id}`);\n }\n Object.keys(server.methods).forEach((methodId) => {\n this.removeServerMethod(id, methodId);\n });\n delete this.servers[id];\n this.callbacks.execute(\"onServerRemoved\", server.instance, reason);\n }\n addServerMethod(serverId, method) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n if (server.methods[method.id]) {\n return;\n }\n const identifier = this.createMethodIdentifier(method);\n const that = this;\n const methodDefinition = {\n identifier,\n gatewayId: method.id,\n name: method.name,\n displayName: method.display_name,\n description: method.description,\n version: method.version,\n objectTypes: method.object_types || [],\n accepts: method.input_signature,\n returns: method.result_signature,\n supportsStreaming: typeof method.flags !== \"undefined\" ? method.flags.streaming : false,\n flags: method.flags ?? {},\n getServers: () => {\n return that.getServersByMethod(identifier);\n }\n };\n methodDefinition.object_types = methodDefinition.objectTypes;\n methodDefinition.display_name = methodDefinition.displayName;\n methodDefinition.version = methodDefinition.version;\n server.methods[method.id] = methodDefinition;\n const clientMethodDefinition = hideMethodSystemFlags(methodDefinition);\n if (!this.methodsCount[identifier]) {\n this.methodsCount[identifier] = 0;\n this.callbacks.execute(\"onMethodAdded\", clientMethodDefinition);\n }\n this.methodsCount[identifier] = this.methodsCount[identifier] + 1;\n this.callbacks.execute(\"onServerMethodAdded\", server.instance, clientMethodDefinition);\n return methodDefinition;\n }\n removeServerMethod(serverId, methodId) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n const method = server.methods[methodId];\n delete server.methods[methodId];\n const clientMethodDefinition = hideMethodSystemFlags(method);\n this.methodsCount[method.identifier] = this.methodsCount[method.identifier] - 1;\n if (this.methodsCount[method.identifier] === 0) {\n this.callbacks.execute(\"onMethodRemoved\", clientMethodDefinition);\n }\n this.callbacks.execute(\"onServerMethodRemoved\", server.instance, clientMethodDefinition);\n }\n getMethods() {\n return this.extractMethodsFromServers(Object.values(this.servers)).map(hideMethodSystemFlags);\n }\n getServers() {\n return Object.values(this.servers).map(this.hideServerMethodSystemFlags);\n }\n onServerAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerAdded\", callback);\n const serversWithMethodsToReplay = this.getServers().map((s) => s.instance);\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, serversWithMethodsToReplay, callback);\n }\n onMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodAdded\", callback);\n const methodsToReplay = this.getMethods();\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, methodsToReplay, callback);\n }\n onServerMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodAdded\", callback);\n let unsubCalled = false;\n const servers = this.getServers();\n setTimeout(() => {\n servers.forEach((server) => {\n const methods = server.methods;\n Object.keys(methods).forEach((methodId) => {\n if (!unsubCalled) {\n callback(server.instance, methods[methodId]);\n }\n });\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n onMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n getServerById(id) {\n const server = this.servers[id];\n if (!server) {\n return undefined;\n }\n return this.hideServerMethodSystemFlags(this.servers[id]);\n }\n reset() {\n Object.keys(this.servers).forEach((key) => {\n this.removeServerById(key, \"reset\");\n });\n this.servers = {\n [this.myServer.id]: this.myServer\n };\n this.methodsCount = {};\n }\n createMethodIdentifier(methodInfo) {\n const accepts = methodInfo.input_signature ?? \"\";\n const returns = methodInfo.result_signature ?? \"\";\n return (methodInfo.name + accepts + returns).toLowerCase();\n }\n getServersByMethod(identifier) {\n const allServers = [];\n Object.values(this.servers).forEach((server) => {\n Object.values(server.methods).forEach((method) => {\n if (method.identifier === identifier) {\n allServers.push(server.instance);\n }\n });\n });\n return allServers;\n }\n returnUnsubWithDelayedReplay(unsubscribeFunc, collectionToReplay, callback) {\n let unsubCalled = false;\n setTimeout(() => {\n collectionToReplay.forEach((item) => {\n if (!unsubCalled) {\n callback(item);\n }\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n hideServerMethodSystemFlags(server) {\n const clientMethods = {};\n Object.entries(server.methods).forEach(([name, method]) => {\n clientMethods[name] = hideMethodSystemFlags(method);\n });\n return {\n ...server,\n methods: clientMethods\n };\n }\n extractMethodsFromServers(servers) {\n const methods = Object.values(servers).reduce((clientMethods, server) => {\n return [...clientMethods, ...Object.values(server.methods)];\n }, []);\n return methods;\n }\n}\n\nclass ServerRepository {\n nextId = 0;\n methods = [];\n add(method) {\n method.repoId = String(this.nextId);\n this.nextId += 1;\n this.methods.push(method);\n return method;\n }\n remove(repoId) {\n if (typeof repoId !== \"string\") {\n return new TypeError(\"Expecting a string\");\n }\n this.methods = this.methods.filter((m) => {\n return m.repoId !== repoId;\n });\n }\n getById(id) {\n if (typeof id !== \"string\") {\n return undefined;\n }\n return this.methods.find((m) => {\n return m.repoId === id;\n });\n }\n getList() {\n return this.methods.map((m) => m);\n }\n length() {\n return this.methods.length;\n }\n reset() {\n this.methods = [];\n }\n}\n\nconst SUBSCRIPTION_REQUEST = \"onSubscriptionRequest\";\nconst SUBSCRIPTION_ADDED = \"onSubscriptionAdded\";\nconst SUBSCRIPTION_REMOVED = \"onSubscriptionRemoved\";\nclass ServerStreaming {\n session;\n repository;\n serverRepository;\n logger;\n ERR_URI_SUBSCRIPTION_FAILED = \"com.tick42.agm.errors.subscription.failure\";\n callbacks = CallbackRegistryFactory();\n nextStreamId = 0;\n constructor(session, repository, serverRepository, logger) {\n this.session = session;\n this.repository = repository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n session.on(\"add-interest\", (msg) => {\n this.handleAddInterest(msg);\n });\n session.on(\"remove-interest\", (msg) => {\n this.handleRemoveInterest(msg);\n });\n }\n acceptRequestOnBranch(requestContext, streamingMethod, branch) {\n if (typeof branch !== \"string\") {\n branch = \"\";\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n throw new TypeError(\"The streaming method is missing its subscriptions.\");\n }\n if (!Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n throw new TypeError(\"The streaming method is missing its branches.\");\n }\n const streamId = this.getStreamId(streamingMethod, branch);\n const key = requestContext.msg.subscription_id;\n const subscription = {\n id: key,\n arguments: requestContext.arguments,\n instance: requestContext.instance,\n branchKey: branch,\n streamId,\n subscribeMsg: requestContext.msg,\n };\n streamingMethod.protocolState.subscriptionsMap[key] = subscription;\n this.session.sendFireAndForget({\n type: \"accepted\",\n subscription_id: key,\n stream_id: streamId,\n }).catch((err) => {\n this.logger.warn(`Failed to send accepted message for subscription ${key}: ${JSON.stringify(err)}`);\n });\n this.callbacks.execute(SUBSCRIPTION_ADDED, subscription, streamingMethod);\n }\n rejectRequest(requestContext, streamingMethod, reason) {\n if (typeof reason !== \"string\") {\n reason = \"\";\n }\n this.sendSubscriptionFailed(\"Subscription rejected by user. \" + reason, requestContext.msg.subscription_id);\n }\n pushData(streamingMethod, data, branches) {\n if (typeof streamingMethod !== \"object\" || !Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n return;\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n if (typeof branches === \"string\") {\n branches = [branches];\n }\n else if (!Array.isArray(branches) || branches.length <= 0) {\n branches = [];\n }\n const streamIdList = streamingMethod.protocolState.branchKeyToStreamIdMap\n .filter((br) => {\n if (!branches || branches.length === 0) {\n return true;\n }\n return branches.indexOf(br.key) >= 0;\n }).map((br) => {\n return br.streamId;\n });\n streamIdList.forEach((streamId) => {\n const publishMessage = {\n type: \"publish\",\n stream_id: streamId,\n data,\n };\n this.session.sendFireAndForget(publishMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send publish message for stream ${streamId}: ${JSON.stringify(err)}`);\n });\n });\n }\n pushDataToSingle(method, subscription, data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n const postMessage = {\n type: \"post\",\n subscription_id: subscription.id,\n data,\n };\n this.session.sendFireAndForget(postMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send post message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n }\n closeSingleSubscription(streamingMethod, subscription) {\n if (streamingMethod.protocolState.subscriptionsMap) {\n delete streamingMethod.protocolState.subscriptionsMap[subscription.id];\n }\n const dropSubscriptionMessage = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping a single subscription\",\n };\n this.session.sendFireAndForget(dropSubscriptionMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send drop-subscription message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n subscription.instance;\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n closeMultipleSubscriptions(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\" || typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n let subscriptionsToClose = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey === \"string\") {\n subscriptionsToClose = subscriptionsToClose.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n subscriptionsToClose.forEach((subscription) => {\n delete subscriptionsMap[subscription.id];\n const drop = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping all subscriptions on stream_id: \" + subscription.streamId,\n };\n this.session.sendFireAndForget(drop)\n .catch((err) => {\n this.logger.warn(`Failed to send drop-subscription message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n });\n }\n getSubscriptionList(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n let subscriptions = [];\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey !== \"string\") {\n subscriptions = allSubscriptions;\n }\n else {\n subscriptions = allSubscriptions.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n return subscriptions;\n }\n getBranchList(streamingMethod) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n const result = [];\n allSubscriptions.forEach((sub) => {\n let branch = \"\";\n if (typeof sub === \"object\" && typeof sub.branchKey === \"string\") {\n branch = sub.branchKey;\n }\n if (result.indexOf(branch) === -1) {\n result.push(branch);\n }\n });\n return result;\n }\n onSubAdded(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_ADDED, callback);\n }\n onSubRequest(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REQUEST, callback);\n }\n onSubRemoved(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REMOVED, callback);\n }\n handleRemoveInterest(msg) {\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (typeof msg.subscription_id !== \"string\" ||\n typeof streamingMethod !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap[msg.subscription_id] !== \"object\") {\n return;\n }\n const subscription = streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n delete streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n onSubscriptionLifetimeEvent(eventName, handlerFunc) {\n this.callbacks.add(eventName, handlerFunc);\n }\n getNextStreamId() {\n return this.nextStreamId++ + \"\";\n }\n handleAddInterest(msg) {\n const caller = this.repository.getServerById(msg.caller_id);\n const instance = caller?.instance ?? {};\n const requestContext = {\n msg,\n arguments: msg.arguments_kv || {},\n instance,\n };\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (streamingMethod === undefined) {\n const errorMsg = \"No method with id \" + msg.method_id + \" on this server.\";\n this.sendSubscriptionFailed(errorMsg, msg.subscription_id);\n return;\n }\n if (streamingMethod.protocolState.subscriptionsMap &&\n streamingMethod.protocolState.subscriptionsMap[msg.subscription_id]) {\n this.sendSubscriptionFailed(\"A subscription with id \" + msg.subscription_id + \" already exists.\", msg.subscription_id);\n return;\n }\n this.callbacks.execute(SUBSCRIPTION_REQUEST, requestContext, streamingMethod);\n }\n sendSubscriptionFailed(reason, subscriptionId) {\n const errorMessage = {\n type: \"error\",\n reason_uri: this.ERR_URI_SUBSCRIPTION_FAILED,\n reason,\n request_id: subscriptionId,\n };\n this.session.sendFireAndForget(errorMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send subscription failed message for subscription ${subscriptionId}: ${JSON.stringify(err)}`);\n });\n }\n getStreamId(streamingMethod, branchKey) {\n if (typeof branchKey !== \"string\") {\n branchKey = \"\";\n }\n if (!streamingMethod.protocolState.branchKeyToStreamIdMap) {\n throw new Error(`streaming ${streamingMethod.definition.name} method without protocol state`);\n }\n const needleBranch = streamingMethod.protocolState.branchKeyToStreamIdMap.filter((branch) => {\n return branch.key === branchKey;\n })[0];\n let streamId = (needleBranch ? needleBranch.streamId : undefined);\n if (typeof streamId !== \"string\" || streamId === \"\") {\n streamId = this.getNextStreamId();\n streamingMethod.protocolState.branchKeyToStreamIdMap.push({ key: branchKey, streamId });\n }\n return streamId;\n }\n}\n\nclass ServerProtocol {\n session;\n clientRepository;\n serverRepository;\n logger;\n callbacks = CallbackRegistryFactory();\n streaming;\n constructor(session, clientRepository, serverRepository, logger) {\n this.session = session;\n this.clientRepository = clientRepository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n this.streaming = new ServerStreaming(session, clientRepository, serverRepository, logger.subLogger(\"streaming\"));\n this.session.on(\"invoke\", (msg) => this.handleInvokeMessage(msg));\n }\n createStream(repoMethod) {\n repoMethod.protocolState.subscriptionsMap = {};\n repoMethod.protocolState.branchKeyToStreamIdMap = [];\n return this.register(repoMethod, true);\n }\n register(repoMethod, isStreaming) {\n const methodDef = repoMethod.definition;\n const flags = Object.assign({}, { metadata: methodDef.flags ?? {} }, { streaming: isStreaming || false });\n const registerMsg = {\n type: \"register\",\n methods: [{\n id: repoMethod.repoId,\n name: methodDef.name,\n display_name: methodDef.displayName,\n description: methodDef.description,\n version: methodDef.version,\n flags,\n object_types: methodDef.objectTypes || methodDef.object_types,\n input_signature: methodDef.accepts,\n result_signature: methodDef.returns,\n restrictions: undefined,\n }],\n };\n return this.session.send(registerMsg, { methodId: repoMethod.repoId })\n .then(() => {\n this.logger.debug(\"registered method \" + repoMethod.definition.name + \" with id \" + repoMethod.repoId);\n })\n .catch((msg) => {\n this.logger.warn(`failed to register method ${repoMethod.definition.name} with id ${repoMethod.repoId} - ${JSON.stringify(msg)}`);\n throw msg;\n });\n }\n onInvoked(callback) {\n this.callbacks.add(\"onInvoked\", callback);\n }\n methodInvocationResult(method, invocationId, err, result) {\n let msg;\n if (err || err === \"\") {\n msg = {\n type: \"error\",\n request_id: invocationId,\n reason_uri: \"agm.errors.client_error\",\n reason: err,\n context: result,\n peer_id: undefined,\n };\n }\n else {\n msg = {\n type: \"yield\",\n invocation_id: invocationId,\n peer_id: this.session.peerId,\n result,\n request_id: undefined,\n };\n }\n this.session.sendFireAndForget(msg)\n .catch((error => {\n this.logger.warn(`Failed to send method invocation result for method ${method.definition.name} invocation ${invocationId} - ${JSON.stringify(error)}`);\n }));\n }\n async unregister(method) {\n const msg = {\n type: \"unregister\",\n methods: [method.repoId],\n };\n await this.session.send(msg);\n }\n getBranchList(method) {\n return this.streaming.getBranchList(method);\n }\n getSubscriptionList(method, branchKey) {\n return this.streaming.getSubscriptionList(method, branchKey);\n }\n closeAllSubscriptions(method, branchKey) {\n this.streaming.closeMultipleSubscriptions(method, branchKey);\n }\n pushData(method, data, branches) {\n this.streaming.pushData(method, data, branches);\n }\n pushDataToSingle(method, subscription, data) {\n this.streaming.pushDataToSingle(method, subscription, data);\n }\n closeSingleSubscription(method, subscription) {\n this.streaming.closeSingleSubscription(method, subscription);\n }\n acceptRequestOnBranch(requestContext, method, branch) {\n this.streaming.acceptRequestOnBranch(requestContext, method, branch);\n }\n rejectRequest(requestContext, method, reason) {\n this.streaming.rejectRequest(requestContext, method, reason);\n }\n onSubRequest(callback) {\n this.streaming.onSubRequest(callback);\n }\n onSubAdded(callback) {\n this.streaming.onSubAdded(callback);\n }\n onSubRemoved(callback) {\n this.streaming.onSubRemoved(callback);\n }\n handleInvokeMessage(msg) {\n const invocationId = msg.invocation_id;\n const callerId = msg.caller_id;\n const methodId = msg.method_id;\n const args = msg.arguments_kv;\n const methodList = this.serverRepository.getList();\n const method = methodList.filter((m) => {\n return m.repoId === methodId;\n })[0];\n if (method === undefined) {\n return;\n }\n const client = this.clientRepository.getServerById(callerId)?.instance;\n const invocationArgs = { args, instance: client };\n this.callbacks.execute(\"onInvoked\", method, invocationId, invocationArgs);\n }\n}\n\nclass UserSubscription {\n repository;\n subscriptionData;\n get requestArguments() {\n return this.subscriptionData.params.arguments || {};\n }\n get servers() {\n return this.subscriptionData.trackedServers.reduce((servers, pair) => {\n if (pair.subscriptionId) {\n const server = this.repository.getServerById(pair.serverId)?.instance;\n if (server) {\n servers.push(server);\n }\n }\n return servers;\n }, []);\n }\n get serverInstance() {\n return this.servers[0];\n }\n get stream() {\n return this.subscriptionData.method;\n }\n constructor(repository, subscriptionData) {\n this.repository = repository;\n this.subscriptionData = subscriptionData;\n }\n onData(dataCallback) {\n if (typeof dataCallback !== \"function\") {\n throw new TypeError(\"The data callback must be a function.\");\n }\n this.subscriptionData.handlers.onData.push(dataCallback);\n if (this.subscriptionData.handlers.onData.length === 1 && this.subscriptionData.queued.data.length > 0) {\n this.subscriptionData.queued.data.forEach((dataItem) => {\n dataCallback(dataItem);\n });\n }\n }\n onClosed(closedCallback) {\n if (typeof closedCallback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onClosed.push(closedCallback);\n }\n onFailed(callback) {\n }\n onConnected(callback) {\n if (typeof callback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onConnected.push(callback);\n }\n close() {\n this.subscriptionData.close();\n }\n setNewSubscription(newSub) {\n this.subscriptionData = newSub;\n }\n}\n\nclass TimedCache {\n config;\n cache = [];\n timeoutIds = [];\n constructor(config) {\n this.config = config;\n }\n add(element) {\n const id = nanoid(10);\n this.cache.push({ id, element });\n const timeoutId = setTimeout(() => {\n const elementIdx = this.cache.findIndex((entry) => entry.id === id);\n if (elementIdx < 0) {\n return;\n }\n this.cache.splice(elementIdx, 1);\n }, this.config.ELEMENT_TTL_MS);\n this.timeoutIds.push(timeoutId);\n }\n flush() {\n const elements = this.cache.map((entry) => entry.element);\n this.timeoutIds.forEach((id) => clearInterval(id));\n this.cache = [];\n this.timeoutIds = [];\n return elements;\n }\n}\n\nconst STATUS_AWAITING_ACCEPT = \"awaitingAccept\";\nconst STATUS_SUBSCRIBED = \"subscribed\";\nconst ERR_MSG_SUB_FAILED = \"Subscription failed.\";\nconst ERR_MSG_SUB_REJECTED = \"Subscription rejected.\";\nconst ON_CLOSE_MSG_SERVER_INIT = \"ServerInitiated\";\nconst ON_CLOSE_MSG_CLIENT_INIT = \"ClientInitiated\";\nclass ClientStreaming {\n session;\n repository;\n logger;\n subscriptionsList = {};\n timedCache = new TimedCache({ ELEMENT_TTL_MS: 10000 });\n subscriptionIdToLocalKeyMap = {};\n nextSubLocalKey = 0;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"subscribed\", this.handleSubscribed);\n session.on(\"event\", this.handleEventData);\n session.on(\"subscription-cancelled\", this.handleSubscriptionCancelled);\n }\n subscribe(streamingMethod, params, targetServers, success, error, existingSub) {\n if (targetServers.length === 0) {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" No available servers matched the target params.\",\n });\n return;\n }\n const subLocalKey = this.getNextSubscriptionLocalKey();\n const pendingSub = this.registerSubscription(subLocalKey, streamingMethod, params, success, error, params.methodResponseTimeout || 10000, existingSub);\n if (typeof pendingSub !== \"object\") {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Unable to register the user callbacks.\",\n });\n return;\n }\n targetServers.forEach((target) => {\n const serverId = target.server.id;\n const method = target.methods.find((m) => m.name === streamingMethod.name);\n if (!method) {\n this.logger.error(`can not find method ${streamingMethod.name} for target ${target.server.id}`);\n return;\n }\n pendingSub.trackedServers.push({\n serverId,\n subscriptionId: undefined,\n });\n const msg = {\n type: \"subscribe\",\n server_id: serverId,\n method_id: method.gatewayId,\n arguments_kv: params.arguments,\n };\n this.session.send(msg, { serverId, subLocalKey })\n .then((m) => this.handleSubscribed(m))\n .catch((err) => this.handleErrorSubscribing(err));\n });\n }\n drainSubscriptions() {\n const existing = Object.values(this.subscriptionsList);\n this.subscriptionsList = {};\n this.subscriptionIdToLocalKeyMap = {};\n return existing;\n }\n drainSubscriptionsCache() {\n return this.timedCache.flush();\n }\n getNextSubscriptionLocalKey() {\n const current = this.nextSubLocalKey;\n this.nextSubLocalKey += 1;\n return current;\n }\n registerSubscription(subLocalKey, method, params, success, error, timeout, existingSub) {\n const subsInfo = {\n localKey: subLocalKey,\n status: STATUS_AWAITING_ACCEPT,\n method,\n params,\n success,\n error,\n trackedServers: [],\n handlers: {\n onData: existingSub?.handlers.onData || [],\n onClosed: existingSub?.handlers.onClosed || [],\n onConnected: existingSub?.handlers.onConnected || [],\n },\n queued: {\n data: [],\n closers: [],\n },\n timeoutId: undefined,\n close: () => this.closeSubscription(subLocalKey),\n subscription: existingSub?.subscription\n };\n if (!existingSub) {\n if (params.onData) {\n subsInfo.handlers.onData.push(params.onData);\n }\n if (params.onClosed) {\n subsInfo.handlers.onClosed.push(params.onClosed);\n }\n if (params.onConnected) {\n subsInfo.handlers.onConnected.push(params.onConnected);\n }\n }\n this.subscriptionsList[subLocalKey] = subsInfo;\n subsInfo.timeoutId = setTimeout(() => {\n if (this.subscriptionsList[subLocalKey] === undefined) {\n return;\n }\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n error({\n method,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Subscription attempt timed out after \" + timeout + \" ms.\",\n });\n delete this.subscriptionsList[subLocalKey];\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED && pendingSub.trackedServers.length > 0) {\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return (typeof server.subscriptionId !== \"undefined\");\n });\n delete pendingSub.timeoutId;\n if (pendingSub.trackedServers.length <= 0) {\n this.callOnClosedHandlers(pendingSub);\n delete this.subscriptionsList[subLocalKey];\n }\n }\n }, timeout);\n return subsInfo;\n }\n handleErrorSubscribing = (errorResponse) => {\n const tag = errorResponse._tag;\n const subLocalKey = tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return server.serverId !== tag.serverId;\n });\n if (pendingSub.trackedServers.length <= 0) {\n clearTimeout(pendingSub.timeoutId);\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n const reason = (typeof errorResponse.reason === \"string\" && errorResponse.reason !== \"\") ?\n ' Publisher said \"' + errorResponse.reason + '\".' :\n \" No reason given.\";\n const callArgs = typeof pendingSub.params.arguments === \"object\" ?\n JSON.stringify(pendingSub.params.arguments) :\n \"{}\";\n pendingSub.error({\n message: ERR_MSG_SUB_REJECTED + reason + \" Called with:\" + callArgs,\n called_with: pendingSub.params.arguments,\n method: pendingSub.method,\n });\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED) {\n this.callOnClosedHandlers(pendingSub);\n }\n delete this.subscriptionsList[subLocalKey];\n }\n };\n handleSubscribed = (msg) => {\n const subLocalKey = msg._tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n const serverId = msg._tag.serverId;\n const acceptingServer = pendingSub.trackedServers\n .filter((server) => {\n return server.serverId === serverId;\n })[0];\n if (typeof acceptingServer !== \"object\") {\n return;\n }\n acceptingServer.subscriptionId = msg.subscription_id;\n this.subscriptionIdToLocalKeyMap[msg.subscription_id] = subLocalKey;\n const isFirstResponse = (pendingSub.status === STATUS_AWAITING_ACCEPT);\n pendingSub.status = STATUS_SUBSCRIBED;\n if (isFirstResponse) {\n let reconnect = false;\n let sub = pendingSub.subscription;\n if (sub) {\n sub.setNewSubscription(pendingSub);\n pendingSub.success(sub);\n reconnect = true;\n }\n else {\n sub = new UserSubscription(this.repository, pendingSub);\n pendingSub.subscription = sub;\n pendingSub.success(sub);\n }\n for (const handler of pendingSub.handlers.onConnected) {\n try {\n handler(sub.serverInstance, reconnect);\n }\n catch (e) {\n }\n }\n }\n };\n handleEventData = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const trackedServersFound = subscription.trackedServers.filter((s) => {\n return s.subscriptionId === msg.subscription_id;\n });\n if (trackedServersFound.length !== 1) {\n return;\n }\n const isPrivateData = msg.oob;\n const sendingServerId = trackedServersFound[0].serverId;\n const server = this.repository.getServerById(sendingServerId);\n const receivedStreamData = () => {\n return {\n data: msg.data,\n server: server?.instance ?? {},\n requestArguments: subscription.params.arguments,\n message: undefined,\n private: isPrivateData,\n };\n };\n const onDataHandlers = subscription.handlers.onData;\n const queuedData = subscription.queued.data;\n if (onDataHandlers.length > 0) {\n onDataHandlers.forEach((callback) => {\n if (typeof callback === \"function\") {\n callback(receivedStreamData());\n }\n });\n }\n else {\n queuedData.push(receivedStreamData());\n }\n };\n handleSubscriptionCancelled = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const expectedNewLength = subscription.trackedServers.length - 1;\n subscription.trackedServers = subscription.trackedServers.filter((server) => {\n if (server.subscriptionId === msg.subscription_id) {\n subscription.queued.closers.push(server.serverId);\n return false;\n }\n else {\n return true;\n }\n });\n if (subscription.trackedServers.length !== expectedNewLength) {\n return;\n }\n if (subscription.trackedServers.length <= 0) {\n this.timedCache.add(subscription);\n clearTimeout(subscription.timeoutId);\n this.callOnClosedHandlers(subscription);\n delete this.subscriptionsList[subLocalKey];\n }\n delete this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n };\n callOnClosedHandlers(subscription, reason) {\n const closersCount = subscription.queued.closers.length;\n const closingServerId = (closersCount > 0) ? subscription.queued.closers[closersCount - 1] : null;\n let closingServer;\n if (closingServerId !== undefined && typeof closingServerId === \"string\") {\n closingServer = this.repository.getServerById(closingServerId)?.instance ?? {};\n }\n subscription.handlers.onClosed.forEach((callback) => {\n if (typeof callback !== \"function\") {\n return;\n }\n callback({\n message: reason || ON_CLOSE_MSG_SERVER_INIT,\n requestArguments: subscription.params.arguments || {},\n server: closingServer,\n stream: subscription.method,\n });\n });\n }\n closeSubscription(subLocalKey) {\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n subscription.trackedServers.forEach((server) => {\n if (typeof server.subscriptionId === \"undefined\") {\n return;\n }\n subscription.queued.closers.push(server.serverId);\n this.session.sendFireAndForget({\n type: \"unsubscribe\",\n subscription_id: server.subscriptionId,\n reason_uri: \"\",\n reason: ON_CLOSE_MSG_CLIENT_INIT,\n }).catch((err) => {\n this.logger.warn(`Error sending unsubscribe for subscription id ${server.subscriptionId}: ${JSON.stringify(err)}`);\n });\n delete this.subscriptionIdToLocalKeyMap[server.subscriptionId];\n });\n subscription.trackedServers = [];\n this.callOnClosedHandlers(subscription, ON_CLOSE_MSG_CLIENT_INIT);\n delete this.subscriptionsList[subLocalKey];\n }\n}\n\nclass ClientProtocol {\n session;\n repository;\n logger;\n streaming;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"peer-added\", (msg) => this.handlePeerAdded(msg));\n session.on(\"peer-removed\", (msg) => this.handlePeerRemoved(msg));\n session.on(\"methods-added\", (msg) => this.handleMethodsAddedMessage(msg));\n session.on(\"methods-removed\", (msg) => this.handleMethodsRemovedMessage(msg));\n this.streaming = new ClientStreaming(session, repository, logger);\n }\n subscribe(stream, options, targetServers, success, error, existingSub) {\n this.streaming.subscribe(stream, options, targetServers, success, error, existingSub);\n }\n invoke(id, method, args, target) {\n const serverId = target.id;\n const methodId = method.gatewayId;\n const msg = {\n type: \"call\",\n server_id: serverId,\n method_id: methodId,\n arguments_kv: args,\n };\n return this.session.send(msg, { invocationId: id, serverId })\n .then((m) => this.handleResultMessage(m))\n .catch((err) => this.handleInvocationError(err));\n }\n drainSubscriptions() {\n return this.streaming.drainSubscriptions();\n }\n drainSubscriptionsCache() {\n return this.streaming.drainSubscriptionsCache();\n }\n handlePeerAdded(msg) {\n const newPeerId = msg.new_peer_id;\n const remoteId = msg.identity;\n const isLocal = msg.meta ? msg.meta.local : true;\n const pid = Number(remoteId.process);\n const serverInfo = {\n machine: remoteId.machine,\n pid: isNaN(pid) ? remoteId.process : pid,\n instance: remoteId.instance,\n application: remoteId.application,\n applicationName: remoteId.applicationName,\n environment: remoteId.environment,\n region: remoteId.region,\n user: remoteId.user,\n windowId: remoteId.windowId,\n peerId: newPeerId,\n api: remoteId.api,\n isLocal\n };\n this.repository.addServer(serverInfo, newPeerId);\n }\n handlePeerRemoved(msg) {\n const removedPeerId = msg.removed_id;\n const reason = msg.reason;\n this.repository.removeServerById(removedPeerId, reason);\n }\n handleMethodsAddedMessage(msg) {\n const serverId = msg.server_id;\n const methods = msg.methods;\n methods.forEach((method) => {\n this.repository.addServerMethod(serverId, method);\n });\n }\n handleMethodsRemovedMessage(msg) {\n const serverId = msg.server_id;\n const methodIdList = msg.methods;\n const server = this.repository.getServerById(serverId);\n if (server) {\n const serverMethodKeys = Object.keys(server.methods);\n serverMethodKeys.forEach((methodKey) => {\n const method = server.methods[methodKey];\n if (methodIdList.indexOf(method.gatewayId) > -1) {\n this.repository.removeServerMethod(serverId, methodKey);\n }\n });\n }\n }\n handleResultMessage(msg) {\n const invocationId = msg._tag.invocationId;\n const result = msg.result;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n return {\n invocationId,\n result,\n instance: server?.instance,\n status: InvokeStatus.Success,\n message: \"\"\n };\n }\n handleInvocationError(msg) {\n this.logger.debug(`handle invocation error ${JSON.stringify(msg)}`);\n if (\"_tag\" in msg) {\n const invocationId = msg._tag.invocationId;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n const message = msg.reason;\n const context = msg.context;\n return {\n invocationId,\n result: context,\n instance: server?.instance,\n status: InvokeStatus.Error,\n message\n };\n }\n else {\n return {\n invocationId: \"\",\n message: msg.message,\n status: InvokeStatus.Error,\n error: msg\n };\n }\n }\n}\n\nfunction gW3ProtocolFactory (instance, connection, clientRepository, serverRepository, libConfig, interop) {\n const logger = libConfig.logger.subLogger(\"gw3-protocol\");\n let resolveReadyPromise;\n const readyPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n const session = connection.domain(\"agm\", [\"subscribed\"]);\n const server = new ServerProtocol(session, clientRepository, serverRepository, logger.subLogger(\"server\"));\n const client = new ClientProtocol(session, clientRepository, logger.subLogger(\"client\"));\n async function handleReconnect() {\n logger.info(\"reconnected - will replay registered methods and subscriptions\");\n client.drainSubscriptionsCache().forEach((sub) => {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to soft-re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`soft-subscribing to method ${methodInfo.name} DONE`)).catch((error) => logger.warn(`subscribing to method ${methodInfo.name} failed: ${JSON.stringify(error)}}`));\n });\n const reconnectionPromises = [];\n const existingSubscriptions = client.drainSubscriptions();\n for (const sub of existingSubscriptions) {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n reconnectionPromises.push(interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`subscribing to method ${methodInfo.name} DONE`)));\n }\n const registeredMethods = serverRepository.getList();\n serverRepository.reset();\n for (const method of registeredMethods) {\n const def = method.definition;\n if (method.stream) {\n reconnectionPromises.push(interop.server.createStream(def, method.streamCallbacks, undefined, undefined, method.stream)\n .then(() => logger.info(`subscribing to method ${def.name} DONE`))\n .catch(() => logger.warn(`subscribing to method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallback) {\n reconnectionPromises.push(interop.register(def, method.theFunction.userCallback)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallbackAsync) {\n reconnectionPromises.push(interop.registerAsync(def, method.theFunction.userCallbackAsync)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n }\n await Promise.all(reconnectionPromises);\n logger.info(\"Interop is re-announced\");\n }\n function handleInitialJoin() {\n if (resolveReadyPromise) {\n resolveReadyPromise({\n client,\n server,\n });\n resolveReadyPromise = undefined;\n }\n }\n session.onJoined((reconnect) => {\n clientRepository.addServer(instance, connection.peerId);\n if (reconnect) {\n handleReconnect().then(() => connection.setLibReAnnounced({ name: \"interop\" })).catch((error) => logger.warn(`Error while re-announcing interop: ${JSON.stringify(error)}`));\n }\n else {\n handleInitialJoin();\n }\n });\n session.onLeft(() => {\n clientRepository.reset();\n });\n session.join();\n return readyPromise;\n}\n\nclass Interop {\n instance;\n readyPromise;\n client;\n server;\n unwrappedInstance;\n protocol;\n clientRepository;\n serverRepository;\n constructor(configuration) {\n if (typeof configuration === \"undefined\") {\n throw new Error(\"configuration is required\");\n }\n if (typeof configuration.connection === \"undefined\") {\n throw new Error(\"configuration.connections is required\");\n }\n const connection = configuration.connection;\n if (typeof configuration.methodResponseTimeout !== \"number\") {\n configuration.methodResponseTimeout = 30 * 1000;\n }\n if (typeof configuration.waitTimeoutMs !== \"number\") {\n configuration.waitTimeoutMs = 30 * 1000;\n }\n this.unwrappedInstance = new InstanceWrapper(this, undefined, connection);\n this.instance = this.unwrappedInstance.unwrap();\n this.clientRepository = new ClientRepository(configuration.logger.subLogger(\"cRep\"), this);\n this.serverRepository = new ServerRepository();\n let protocolPromise;\n if (connection.protocolVersion === 3) {\n protocolPromise = gW3ProtocolFactory(this.instance, connection, this.clientRepository, this.serverRepository, configuration, this);\n }\n else {\n throw new Error(`protocol ${connection.protocolVersion} not supported`);\n }\n this.readyPromise = protocolPromise.then((protocol) => {\n this.protocol = protocol;\n this.client = new Client(this.protocol, this.clientRepository, this.instance, configuration);\n this.server = new Server(this.protocol, this.serverRepository);\n return this;\n });\n }\n ready() {\n return this.readyPromise;\n }\n serverRemoved(callback) {\n return this.client.serverRemoved(callback);\n }\n serverAdded(callback) {\n return this.client.serverAdded(callback);\n }\n serverMethodRemoved(callback) {\n return this.client.serverMethodRemoved(callback);\n }\n serverMethodAdded(callback) {\n return this.client.serverMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.client.methodRemoved(callback);\n }\n methodAdded(callback) {\n return this.client.methodAdded(callback);\n }\n methodsForInstance(instance) {\n return this.client.methodsForInstance(instance);\n }\n methods(methodFilter) {\n return this.client.methods(methodFilter);\n }\n servers(methodFilter) {\n return this.client.servers(methodFilter);\n }\n subscribe(method, options, successCallback, errorCallback) {\n return this.client.subscribe(method, options, successCallback, errorCallback);\n }\n createStream(streamDef, callbacks, successCallback, errorCallback) {\n return this.server.createStream(streamDef, callbacks, successCallback, errorCallback);\n }\n unregister(methodFilter) {\n return this.server.unregister(methodFilter);\n }\n registerAsync(methodDefinition, callback) {\n return this.server.registerAsync(methodDefinition, callback);\n }\n register(methodDefinition, callback) {\n return this.server.register(methodDefinition, callback);\n }\n invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n return this.client.invoke(methodFilter, argumentObj, target, additionalOptions, success, error);\n }\n waitForMethod(name) {\n const pw = new PromiseWrapper();\n const unsubscribe = this.client.methodAdded((m) => {\n if (m.name === name) {\n unsubscribe();\n pw.resolve(m);\n }\n });\n return pw.promise;\n }\n}\n\nconst successMessages = [\"subscribed\", \"success\"];\nclass MessageBus {\n connection;\n logger;\n peerId;\n session;\n subscriptions;\n readyPromise;\n constructor(connection, logger) {\n this.connection = connection;\n this.logger = logger;\n this.peerId = connection.peerId;\n this.subscriptions = [];\n this.session = connection.domain(\"bus\", successMessages);\n this.readyPromise = this.session.join();\n this.readyPromise.then(() => {\n this.watchOnEvent();\n });\n }\n ready() {\n return this.readyPromise;\n }\n publish = (topic, data, options) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"publish\",\n topic,\n data,\n peer_id: this.peerId,\n routing_key: routingKey,\n target_identity: target\n });\n this.session.send(args)\n .catch((err) => {\n this.logger.error(`Failed to publish message to topic ${topic} with routing key ${routingKey} for ${JSON.stringify(target)}: ${JSON.stringify(err)}`);\n });\n };\n subscribe = (topic, callback, options) => {\n return new Promise((resolve, reject) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"subscribe\",\n topic,\n peer_id: this.peerId,\n routing_key: routingKey,\n source: target\n });\n this.session.send(args)\n .then((response) => {\n const { subscription_id } = response;\n this.subscriptions.push({ subscription_id, topic, callback, source: target });\n resolve({\n unsubscribe: () => {\n this.session.send({ type: \"unsubscribe\", subscription_id, peer_id: this.peerId })\n .then(() => {\n this.subscriptions = this.subscriptions.filter((s) => s.subscription_id !== subscription_id);\n }).catch((err) => {\n this.logger.warn(`Failed to send unsubscribe request for ${subscription_id}: ${JSON.stringify(err)}`);\n });\n return Promise.resolve();\n }\n });\n })\n .catch((error) => reject(error));\n });\n };\n watchOnEvent = () => {\n this.session.on(\"event\", (args) => {\n const { data, subscription_id } = args;\n const source = args[\"publisher-identity\"];\n const subscription = this.subscriptions.find((s) => s.subscription_id === subscription_id);\n if (subscription) {\n if (!subscription.source) {\n subscription.callback(data, subscription.topic, source);\n }\n else {\n if (this.keysMatch(subscription.source, source)) {\n subscription.callback(data, subscription.topic, source);\n }\n }\n }\n });\n };\n removeEmptyValues(obj) {\n const cleaned = {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] !== undefined && obj[key] !== null) {\n cleaned[key] = obj[key];\n }\n });\n return cleaned;\n }\n keysMatch(obj1, obj2) {\n const keysObj1 = Object.keys(obj1);\n let allMatch = true;\n keysObj1.forEach((key) => {\n if (obj1[key] !== obj2[key]) {\n allMatch = false;\n }\n });\n return allMatch;\n }\n}\n\nconst IOConnectCoreFactory = (userConfig, ext) => {\n const iodesktop = typeof window === \"object\" ? (window.iodesktop ?? window.glue42gd) : undefined;\n const preloadPromise = typeof window === \"object\" ? (window.gdPreloadPromise ?? Promise.resolve()) : Promise.resolve();\n const glueInitTimer = timer(\"glue\");\n userConfig = userConfig || {};\n ext = ext || {};\n const internalConfig = prepareConfig(userConfig, ext, iodesktop);\n let _connection;\n let _interop;\n let _logger;\n let _metrics;\n let _contexts;\n let _bus;\n let _allowTrace;\n const libs = {};\n function registerLib(name, inner, t) {\n _allowTrace = _logger.canPublish(\"trace\");\n if (_allowTrace) {\n _logger.trace(`registering ${name} module`);\n }\n const done = (e) => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (!_allowTrace) {\n return;\n }\n const traceMessage = e ?\n `${name} failed - ${e.message}` :\n `${name} is ready - ${t.endTime - t.startTime}`;\n _logger.trace(traceMessage);\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready()\n .then(() => {\n done();\n })\n .catch((e) => {\n const error = typeof e === \"string\" ? new Error(e) : e;\n done(error);\n });\n }\n else {\n done();\n }\n if (!Array.isArray(name)) {\n name = [name];\n }\n name.forEach((n) => {\n libs[n] = inner;\n IOConnectCoreFactory[n] = inner;\n });\n }\n function setupConnection() {\n const initTimer = timer(\"connection\");\n _connection = new Connection(internalConfig.connection, _logger.subLogger(\"connection\"));\n let authPromise = Promise.resolve(internalConfig.auth);\n if (internalConfig.connection && !internalConfig.auth) {\n if (iodesktop) {\n authPromise = iodesktop.getGWToken()\n .then((token) => {\n return {\n gatewayToken: token\n };\n });\n }\n else if (typeof window !== \"undefined\" && window?.glue42electron) {\n if (typeof window.glue42electron.gwToken === \"string\") {\n authPromise = Promise.resolve({\n gatewayToken: window.glue42electron.gwToken\n });\n }\n }\n else {\n authPromise = Promise.reject(\"You need to provide auth information\");\n }\n }\n return authPromise\n .then((authConfig) => {\n initTimer.mark(\"auth-promise-resolved\");\n let authRequest;\n if (Object.prototype.toString.call(authConfig) === \"[object Object]\") {\n authRequest = authConfig;\n }\n else {\n throw new Error(\"Invalid auth object - \" + JSON.stringify(authConfig));\n }\n return _connection.login(authRequest);\n })\n .then(() => {\n registerLib(\"connection\", _connection, initTimer);\n return internalConfig;\n })\n .catch((e) => {\n if (_connection) {\n _connection.logout();\n }\n throw e;\n });\n }\n function setupLogger() {\n const initTimer = timer(\"logger\");\n _logger = new Logger(`${internalConfig.connection.identity?.application}`, undefined, internalConfig.customLogger);\n _logger.consoleLevel(internalConfig.logger.console);\n _logger.publishLevel(internalConfig.logger.publish);\n if (_logger.canPublish(\"debug\")) {\n _logger.debug(\"initializing glue...\");\n }\n registerLib(\"logger\", _logger, initTimer);\n return Promise.resolve(undefined);\n }\n function setupMetrics() {\n const initTimer = timer(\"metrics\");\n const config = internalConfig.metrics;\n const metricsPublishingEnabledFunc = iodesktop?.getMetricsPublishingEnabled;\n const identity = internalConfig.connection.identity;\n const canUpdateMetric = metricsPublishingEnabledFunc ? metricsPublishingEnabledFunc : () => true;\n const disableAutoAppSystem = (typeof config !== \"boolean\" && config.disableAutoAppSystem) ?? false;\n _metrics = metrics({\n connection: config ? _connection : undefined,\n logger: _logger.subLogger(\"metrics\"),\n canUpdateMetric,\n system: \"Glue42\",\n service: identity?.service ?? iodesktop?.applicationName ?? internalConfig.application,\n instance: identity?.instance ?? identity?.windowId ?? nanoid(10),\n disableAutoAppSystem,\n pagePerformanceMetrics: typeof config !== \"boolean\" ? config?.pagePerformanceMetrics : undefined\n });\n registerLib(\"metrics\", _metrics, initTimer);\n return Promise.resolve();\n }\n function setupInterop() {\n const initTimer = timer(\"interop\");\n const agmConfig = {\n connection: _connection,\n logger: _logger.subLogger(\"interop\"),\n };\n _interop = new Interop(agmConfig);\n Logger.Interop = _interop;\n registerLib([\"interop\", \"agm\"], _interop, initTimer);\n return Promise.resolve();\n }\n function setupContexts() {\n const hasActivities = (internalConfig.activities && _connection.protocolVersion === 3);\n const needsContexts = internalConfig.contexts || hasActivities;\n if (needsContexts) {\n const initTimer = timer(\"contexts\");\n _contexts = new ContextsModule({\n connection: _connection,\n logger: _logger.subLogger(\"contexts\"),\n trackAllContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.trackAllContexts : false,\n reAnnounceKnownContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.reAnnounceKnownContexts : false,\n subscribeOnGet: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.subscribeOnGet : true,\n subscribeOnUpdate: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.subscribeOnUpdate : true,\n onlyReAnnounceSubscribedContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.onlyReAnnounceSubscribedContexts : true\n });\n registerLib(\"contexts\", _contexts, initTimer);\n }\n else {\n const replayer = _connection.replayer;\n if (replayer) {\n replayer.drain(ContextMessageReplaySpec.name);\n }\n }\n return Promise.resolve();\n }\n async function setupBus() {\n if (!internalConfig.bus) {\n return Promise.resolve();\n }\n const initTimer = timer(\"bus\");\n _bus = new MessageBus(_connection, _logger.subLogger(\"bus\"));\n registerLib(\"bus\", _bus, initTimer);\n return Promise.resolve();\n }\n function setupExternalLibs(externalLibs) {\n try {\n externalLibs.forEach((lib) => {\n setupExternalLib(lib.name, lib.create);\n });\n return Promise.resolve();\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n function setupExternalLib(name, createCallback) {\n const initTimer = timer(name);\n const lib = createCallback(libs);\n if (lib) {\n registerLib(name, lib, initTimer);\n }\n }\n function waitForLibs() {\n const libsReadyPromises = Object.keys(libs).map((key) => {\n const lib = libs[key];\n return lib.ready ?\n lib.ready() : Promise.resolve();\n });\n return Promise.all(libsReadyPromises);\n }\n function constructGlueObject() {\n const feedbackFunc = (feedbackInfo) => {\n if (!_interop) {\n return;\n }\n _interop.invoke(\"T42.ACS.Feedback\", feedbackInfo, \"best\");\n };\n const info = {\n coreVersion: version,\n version: internalConfig.version\n };\n glueInitTimer.stop();\n const glue = {\n feedback: feedbackFunc,\n info,\n logger: _logger,\n interop: _interop,\n agm: _interop,\n connection: _connection,\n metrics: _metrics,\n contexts: _contexts,\n bus: _bus,\n version: internalConfig.version,\n userConfig,\n done: () => {\n _logger?.info(\"done called by user...\");\n return _connection.logout();\n }\n };\n glue.performance = {\n get glueVer() {\n return internalConfig.version;\n },\n get glueConfig() {\n return JSON.stringify(userConfig);\n },\n get browser() {\n return window.performance.timing.toJSON();\n },\n get memory() {\n return window.performance.memory;\n },\n get initTimes() {\n const all = getAllTimers();\n return Object.keys(all).map((key) => {\n const t = all[key];\n return {\n name: key,\n duration: t.endTime - t.startTime,\n marks: t.marks,\n startTime: t.startTime,\n endTime: t.endTime\n };\n });\n }\n };\n Object.keys(libs).forEach((key) => {\n const lib = libs[key];\n glue[key] = lib;\n });\n glue.config = {};\n Object.keys(internalConfig).forEach((k) => {\n glue.config[k] = internalConfig[k];\n });\n if (ext && ext.extOptions) {\n Object.keys(ext.extOptions).forEach((k) => {\n glue.config[k] = ext?.extOptions[k];\n });\n }\n if (ext?.enrichGlue) {\n ext.enrichGlue(glue);\n }\n if (iodesktop && iodesktop.updatePerfData) {\n iodesktop.updatePerfData(glue.performance);\n }\n if (glue.agm) {\n const deprecatedDecorator = (fn, wrong, proper) => {\n return function () {\n glue.logger.warn(`glue.js - 'glue.agm.${wrong}' method is deprecated, use 'glue.interop.${proper}' instead.`);\n return fn.apply(glue.agm, arguments);\n };\n };\n const agmAny = glue.agm;\n agmAny.method_added = deprecatedDecorator(glue.agm.methodAdded, \"method_added\", \"methodAdded\");\n agmAny.method_removed = deprecatedDecorator(glue.agm.methodRemoved, \"method_removed\", \"methodRemoved\");\n agmAny.server_added = deprecatedDecorator(glue.agm.serverAdded, \"server_added\", \"serverAdded\");\n agmAny.server_method_aded = deprecatedDecorator(glue.agm.serverMethodAdded, \"server_method_aded\", \"serverMethodAdded\");\n agmAny.server_method_removed = deprecatedDecorator(glue.agm.serverMethodRemoved, \"server_method_removed\", \"serverMethodRemoved\");\n }\n return glue;\n }\n async function registerInstanceIfNeeded() {\n const RegisterInstanceMethodName = \"T42.ACS.RegisterInstance\";\n if (Utils.isNode() && typeof process.env._GD_STARTING_CONTEXT_ === \"undefined\" && typeof userConfig?.application !== \"undefined\") {\n const isMethodAvailable = _interop.methods({ name: RegisterInstanceMethodName }).length > 0;\n if (isMethodAvailable) {\n try {\n await _interop.invoke(RegisterInstanceMethodName, { appName: userConfig?.application, pid: process.pid });\n }\n catch (error) {\n const typedError = error;\n _logger.error(`Cannot register as an instance: ${JSON.stringify(typedError.message)}`);\n }\n }\n }\n }\n return preloadPromise\n .then(setupLogger)\n .then(setupConnection)\n .then(() => Promise.all([setupMetrics(), setupInterop(), setupContexts(), setupBus()]))\n .then(() => _interop.readyPromise)\n .then(() => registerInstanceIfNeeded())\n .then(() => {\n return setupExternalLibs(internalConfig.libs || []);\n })\n .then(waitForLibs)\n .then(constructGlueObject)\n .catch((err) => {\n return Promise.reject({\n err,\n libs\n });\n });\n};\nif (typeof window !== \"undefined\") {\n window.IOConnectCore = IOConnectCoreFactory;\n}\nIOConnectCoreFactory.version = version;\nIOConnectCoreFactory.default = IOConnectCoreFactory;\n\nexport { IOConnectCoreFactory as default };\n//# sourceMappingURL=core.es.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\n;\ncreateRegistry.default = createRegistry;\nmodule.exports = createRegistry;\n//# sourceMappingURL=index.js.map",null,null,null,"let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=application.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=system.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwimlaneItemType = exports.LayoutType = void 0;\nvar LayoutType;\n(function (LayoutType) {\n LayoutType[\"Global\"] = \"Global\";\n LayoutType[\"Activity\"] = \"Activity\";\n LayoutType[\"ApplicationDefault\"] = \"ApplicationDefault\";\n LayoutType[\"Swimlane\"] = \"Swimlane\";\n LayoutType[\"Workspaces\"] = \"Workspace\";\n})(LayoutType || (exports.LayoutType = LayoutType = {}));\nvar SwimlaneItemType;\n(function (SwimlaneItemType) {\n SwimlaneItemType[\"Tab\"] = \"tab\";\n SwimlaneItemType[\"Window\"] = \"window\";\n SwimlaneItemType[\"Canvas\"] = \"canvas\";\n})(SwimlaneItemType || (exports.SwimlaneItemType = SwimlaneItemType = {}));\n//# sourceMappingURL=layout.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swTheme.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swConfiguration.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// export { SchemaValidator } from \"./validator\";\n// export { FileProvider } from \"./fileProvider\";\n// export { SchemaProvider } from \"./provider\";\n__exportStar(require(\"./application\"), exports);\n__exportStar(require(\"./system\"), exports);\n__exportStar(require(\"./layout\"), exports);\n__exportStar(require(\"./swTheme\"), exports);\n__exportStar(require(\"./swConfiguration\"), exports);\n//# sourceMappingURL=main.js.map",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"const connectBrowserAppProps = [\"name\", \"title\", \"version\", \"customProperties\", \"icon\", \"caption\", \"type\"];\nconst fdc3v2AppProps = [\"appId\", \"name\", \"type\", \"details\", \"version\", \"title\", \"tooltip\", \"lang\", \"description\", \"categories\", \"icons\", \"screenshots\", \"contactEmail\", \"moreInfo\", \"publisher\", \"customConfig\", \"hostManifests\", \"interop\", \"localizedVersions\"];\n\n/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nDecoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nDecoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nDecoder.union;\r\n/** See `Decoder.intersection` */\r\nDecoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nDecoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nDecoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nDecoder.succeed;\r\n/** See `Decoder.fail` */\r\nDecoder.fail;\r\n/** See `Decoder.lazy` */\r\nDecoder.lazy;\n\nconst nonEmptyStringDecoder = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nconst nonNegativeNumberDecoder = number().where((num) => num >= 0, \"Expected a non-negative number\");\n\nconst intentDefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n displayName: optional(string()),\n contexts: optional(array(string())),\n customConfig: optional(object())\n});\nconst v2TypeDecoder = oneOf(constant(\"web\"), constant(\"native\"), constant(\"citrix\"), constant(\"onlineNative\"), constant(\"other\"));\nconst v2DetailsDecoder = object({\n url: nonEmptyStringDecoder\n});\nconst v2IconDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder)\n});\nconst v2ScreenshotDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder),\n label: optional(nonEmptyStringDecoder)\n});\nconst v2ListensForIntentDecoder = object({\n contexts: array(nonEmptyStringDecoder),\n displayName: optional(nonEmptyStringDecoder),\n resultType: optional(nonEmptyStringDecoder),\n customConfig: optional(anyJson())\n});\nconst v2IntentsDecoder = object({\n listensFor: optional(dict(v2ListensForIntentDecoder)),\n raises: optional(dict(array(nonEmptyStringDecoder)))\n});\nconst v2UserChannelDecoder = object({\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2AppChannelDecoder = object({\n name: nonEmptyStringDecoder,\n description: optional(nonEmptyStringDecoder),\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2InteropDecoder = object({\n intents: optional(v2IntentsDecoder),\n userChannels: optional(v2UserChannelDecoder),\n appChannels: optional(array(v2AppChannelDecoder))\n});\nconst glue42ApplicationDetailsDecoder = object({\n url: optional(nonEmptyStringDecoder),\n top: optional(number()),\n left: optional(number()),\n width: optional(nonNegativeNumberDecoder),\n height: optional(nonNegativeNumberDecoder)\n});\nconst glue42HostManifestsBrowserDecoder = object({\n name: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder.where((s) => s === \"window\", \"Expected a value of window\")),\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n customProperties: optional(anyJson()),\n icon: optional(string()),\n caption: optional(string()),\n details: optional(glue42ApplicationDetailsDecoder),\n intents: optional(array(intentDefinitionDecoder)),\n hidden: optional(boolean())\n});\nconst v1DefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n appId: nonEmptyStringDecoder,\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n manifest: nonEmptyStringDecoder,\n manifestType: nonEmptyStringDecoder,\n tooltip: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n images: optional(array(object({ url: optional(nonEmptyStringDecoder) }))),\n icons: optional(array(object({ icon: optional(nonEmptyStringDecoder) }))),\n customConfig: anyJson(),\n intents: optional(array(intentDefinitionDecoder))\n});\nconst v2LocalizedDefinitionDecoder = object({\n appId: optional(nonEmptyStringDecoder),\n name: optional(nonEmptyStringDecoder),\n details: optional(v2DetailsDecoder),\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder)\n});\nconst v2DefinitionDecoder = object({\n appId: nonEmptyStringDecoder,\n name: nonEmptyStringDecoder,\n type: v2TypeDecoder,\n details: v2DetailsDecoder,\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder),\n localizedVersions: optional(dict(v2LocalizedDefinitionDecoder))\n});\nconst allDefinitionsDecoder = oneOf(v1DefinitionDecoder, v2DefinitionDecoder);\n\nconst parseDecoderErrorToStringMessage = (error) => {\n return `${error.kind} at ${error.at}: ${JSON.stringify(error.input)}. Reason - ${error.message}`;\n};\n\nclass FDC3Service {\n fdc3ToDesktopDefinitionType = {\n web: \"window\",\n native: \"exe\",\n citrix: \"citrix\",\n onlineNative: \"clickonce\",\n other: \"window\"\n };\n toApi() {\n return {\n isFdc3Definition: this.isFdc3Definition.bind(this),\n parseToBrowserBaseAppData: this.parseToBrowserBaseAppData.bind(this),\n parseToDesktopAppConfig: this.parseToDesktopAppConfig.bind(this)\n };\n }\n isFdc3Definition(definition) {\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n return { isFdc3: false, reason: parseDecoderErrorToStringMessage(decodeRes.error) };\n }\n if (definition.appId && definition.details) {\n return { isFdc3: true, version: \"2.0\" };\n }\n if (definition.manifest) {\n return { isFdc3: true, version: \"1.2\" };\n }\n return { isFdc3: false, reason: \"The passed definition is not FDC3\" };\n }\n parseToBrowserBaseAppData(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n const userProperties = this.getUserPropertiesFromDefinition(definition, version);\n const createOptions = { url: this.getUrl(definition, version) };\n const baseApplicationData = {\n name: definition.appId,\n type: \"window\",\n createOptions,\n userProperties: {\n ...userProperties,\n intents: version === \"1.2\"\n ? userProperties.intents\n : this.getIntentsFromV2AppDefinition(definition),\n details: createOptions\n },\n title: definition.title,\n version: definition.version,\n icon: this.getIconFromDefinition(definition, version),\n caption: definition.description,\n fdc3: version === \"2.0\" ? { ...definition, definitionVersion: \"2.0\" } : undefined,\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return baseApplicationData;\n }\n const ioDefinitionDecodeRes = glue42HostManifestsBrowserDecoder.run(ioConnectDefinition);\n if (!ioDefinitionDecodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(ioDefinitionDecodeRes.error)}`);\n }\n if (!Object.keys(ioDefinitionDecodeRes.result).length) {\n return baseApplicationData;\n }\n return this.mergeBaseAppDataWithGlueManifest(baseApplicationData, ioDefinitionDecodeRes.result);\n }\n parseToDesktopAppConfig(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n if (version === \"1.2\") {\n const fdc3v1Definition = definition;\n return {\n name: fdc3v1Definition.appId,\n type: \"window\",\n details: {\n url: this.getUrl(definition, version)\n },\n version: fdc3v1Definition.version,\n title: fdc3v1Definition.title,\n tooltip: fdc3v1Definition.tooltip,\n caption: fdc3v1Definition.description,\n icon: fdc3v1Definition.icons?.[0].icon,\n intents: fdc3v1Definition.intents,\n customProperties: {\n manifestType: fdc3v1Definition.manifestType,\n images: fdc3v1Definition.images,\n contactEmail: fdc3v1Definition.contactEmail,\n supportEmail: fdc3v1Definition.supportEmail,\n publisher: fdc3v1Definition.publisher,\n icons: fdc3v1Definition.icons,\n customConfig: fdc3v1Definition.customConfig\n }\n };\n }\n const fdc3v2Definition = definition;\n const desktopDefinition = {\n name: fdc3v2Definition.appId,\n type: this.fdc3ToDesktopDefinitionType[fdc3v2Definition.type],\n details: fdc3v2Definition.details,\n version: fdc3v2Definition.version,\n title: fdc3v2Definition.title,\n tooltip: fdc3v2Definition.tooltip,\n caption: fdc3v2Definition.description,\n icon: this.getIconFromDefinition(fdc3v2Definition, \"2.0\"),\n intents: this.getIntentsFromV2AppDefinition(fdc3v2Definition),\n fdc3: { ...fdc3v2Definition, definitionVersion: \"2.0\" }\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return desktopDefinition;\n }\n if (typeof ioConnectDefinition !== \"object\" || Array.isArray(ioConnectDefinition)) {\n throw new Error(`Invalid '${definition.hostManifests.ioConnect ? \"hostManifests.ioConnect\" : \"hostManifests['Glue42']\"}' key`);\n }\n return this.mergeDesktopConfigWithGlueManifest(desktopDefinition, ioConnectDefinition);\n }\n getUserPropertiesFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key)));\n }\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key) && !fdc3v2AppProps.includes(key)));\n }\n getUrl(definition, version) {\n let url;\n if (version === \"1.2\") {\n const parsedManifest = JSON.parse(definition.manifest);\n url = parsedManifest.details?.url || parsedManifest.url;\n }\n else {\n url = definition.details?.url;\n }\n if (!url || typeof url !== \"string\") {\n throw new Error(`Invalid FDC3 ${version} definition. Provide valid 'url' under '${version === \"1.2\" ? \"manifest\" : \"details\"}' key`);\n }\n return url;\n }\n getIntentsFromV2AppDefinition(definition) {\n const fdc3Intents = definition.interop?.intents?.listensFor;\n if (!fdc3Intents) {\n return;\n }\n const intents = Object.entries(fdc3Intents).map((fdc3Intent) => {\n const [intentName, intentData] = fdc3Intent;\n return {\n name: intentName,\n ...intentData\n };\n });\n return intents;\n }\n getIconFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return definition.icons?.find((iconDef) => iconDef.icon)?.icon || undefined;\n }\n return definition.icons?.find((iconDef) => iconDef.src)?.src || undefined;\n }\n mergeBaseAppDataWithGlueManifest(baseAppData, hostManifestDefinition) {\n let baseApplicationDefinition = baseAppData;\n if (hostManifestDefinition.details) {\n const details = { ...baseAppData.createOptions, ...hostManifestDefinition.details };\n baseApplicationDefinition.createOptions = details;\n baseApplicationDefinition.userProperties.details = details;\n }\n if (Array.isArray(hostManifestDefinition.intents)) {\n baseApplicationDefinition.userProperties.intents = (baseApplicationDefinition.userProperties.intents || []).concat(hostManifestDefinition.intents);\n }\n baseApplicationDefinition = { ...baseApplicationDefinition, ...hostManifestDefinition };\n delete baseApplicationDefinition.details;\n delete baseApplicationDefinition.intents;\n return baseApplicationDefinition;\n }\n mergeDesktopConfigWithGlueManifest(config, desktopDefinition) {\n const appConfig = Object.assign({}, config, desktopDefinition, { details: { ...config.details, ...desktopDefinition.details } });\n if (Array.isArray(desktopDefinition.intents)) {\n appConfig.intents = (config.intents || []).concat(desktopDefinition.intents);\n }\n return appConfig;\n }\n}\n\nconst decoders$1 = {\n common: {\n nonEmptyStringDecoder,\n nonNegativeNumberDecoder\n },\n fdc3: {\n allDefinitionsDecoder,\n v1DefinitionDecoder,\n v2DefinitionDecoder\n }\n};\n\nvar INTENTS_ERRORS;\n(function (INTENTS_ERRORS) {\n INTENTS_ERRORS[\"USER_CANCELLED\"] = \"User Closed Intents Resolver UI without choosing a handler\";\n INTENTS_ERRORS[\"CALLER_NOT_DEFINED\"] = \"Caller Id is not defined\";\n INTENTS_ERRORS[\"TIMEOUT_HIT\"] = \"Timeout hit\";\n INTENTS_ERRORS[\"INTENT_NOT_FOUND\"] = \"Cannot find Intent\";\n INTENTS_ERRORS[\"HANDLER_NOT_FOUND\"] = \"Cannot find Intent Handler\";\n INTENTS_ERRORS[\"TARGET_INSTANCE_UNAVAILABLE\"] = \"Cannot start Target Instance\";\n INTENTS_ERRORS[\"INTENT_DELIVERY_FAILED\"] = \"Target Instance did not add a listener\";\n INTENTS_ERRORS[\"RESOLVER_UNAVAILABLE\"] = \"Intents Resolver UI unavailable\";\n INTENTS_ERRORS[\"RESOLVER_TIMEOUT\"] = \"User did not choose a handler\";\n INTENTS_ERRORS[\"INVALID_RESOLVER_RESPONSE\"] = \"Intents Resolver UI returned invalid response\";\n INTENTS_ERRORS[\"INTENT_HANDLER_REJECTION\"] = \"Intent Handler function processing the raised intent threw an error or rejected the promise it returned\";\n})(INTENTS_ERRORS || (INTENTS_ERRORS = {}));\n\nclass IoC {\n _fdc3;\n _decoders = decoders$1;\n _errors = {\n intents: INTENTS_ERRORS\n };\n get fdc3() {\n if (!this._fdc3) {\n this._fdc3 = new FDC3Service().toApi();\n }\n return this._fdc3;\n }\n get decoders() {\n return this._decoders;\n }\n get errors() {\n return this._errors;\n }\n}\n\nconst ioc = new IoC();\nconst fdc3 = ioc.fdc3;\nconst decoders = ioc.decoders;\nconst errors = ioc.errors;\n\nexport { decoders, errors, fdc3 };\n//# sourceMappingURL=utils.es.js.map\n",null,null,null,null,null,null,null,"export class PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n static async delayForever() {\n const biggestPossibleDelay = 2147483647;\n while (true) {\n await this.delay(biggestPossibleDelay);\n }\n }\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\nexport function callbackifyPromise(action, successCallback, errorCallback, logger, token) {\n const fail = (error) => {\n if (logger) {\n logger.error(`[${token}]`, error);\n }\n let msg = error;\n if (error instanceof Error) {\n msg = error.message;\n }\n if (typeof errorCallback === \"function\") {\n errorCallback(msg);\n return;\n }\n return PromiseWrapper.delay(0)\n .then(() => {\n throw error;\n });\n };\n return PromiseWrapper.delay(0)\n .then(action)\n .then((result) => {\n if (logger) {\n logger.info(`[${token}] successful`);\n }\n if (typeof successCallback === \"function\") {\n successCallback(result);\n }\n return result;\n })\n .catch((error) => {\n return fail(error);\n });\n}\nexport function nextTickPromise(action) {\n return new Promise((resolve, reject) => {\n process.nextTick(() => {\n try {\n resolve(action());\n }\n catch (e) {\n const error = e instanceof Error ? e : new Error(`${e}`);\n reject(error);\n }\n });\n });\n}\n//# sourceMappingURL=promise.js.map",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["MetricTypes","getMetricTypeByValue","metric","type","getTypeByValue","value","constructor","Date","serializeMetric","serializedMetrics","values","Object","keys","reduce","memo","key","innerType","composite","defineNestedComposite","description","context","name","normalizeMetricName","path","join","length","getMetricValueByType","now","publishNestedComposite","getTime","Boolean","toString","flatten","arr","flat","toFlatten","concat","Array","isArray","composeMsgForRootStateMetric","system","merged","root","getAggregateState","highestState","sort","a","b","state","aggregateDesc","msg","forEach","m","idx","slice","aggregateDescription","Helpers","definition","parent","transport","Error","BaseMetric","repo","this","id","push","createMetric","update","newValue","updateMetric","NumberMetric","super","incrementBy","num","increment","decrement","decrementBy","ObjectMetric","mergeValues","k","StringMetric","TimestampMetric","protocol","_transport","_name","_description","_repo","_parent","_path","_buildPath","shadowedSystem","_state","separator","_subSystems","_metrics","_getOrCreateMetric","metricObject","expectedType","metricDef","matching","filter","shadowedMetric","existing","catch","me","subSystems","metrics","subSystem","nameSystem","descriptionSystem","match","s","_system","getState","setState","stateDescription","updateSystem","stringMetric","timestampMetric","objectMetric","numberMetric","aggState","shadowedSubSystem","result","createSystem","Repository","options","init","addSystemMetrics","clickStream","undefined","rootSystem","useClickStream","navigator","userAgent","document","documentClickHandler","e","target","className","getAttribute","timestamp","tagName","toLowerCase","href","title","page","window","location","addEventListener","attachEvent","urlMetric","appNameMetric","startUrl","glue42gd","appName","NullProtocol","Promise","resolve","PerfTracker","api","lastCount","initialPublishTimeout","publishInterval","scheduleCollection","setTimeout","collect","setInterval","collectMemory","collectEntries","memory","performance","JSON","stringify","totalJSHeapSize","usedJSHeapSize","allEntries","getEntries","jsonfiedEntries","map","i","toJSON","connection","config","joinPromise","session","replayRepo","replaySystem","ss","async","createMetricsMsg","Description","Value","sendFireAndForget","err","logger","warn","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","send","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper$1","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","require","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","PromiseWrapper","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","wasOpen","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_connectionProtocolVersion","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","extContentAvailable","extContentConnecting","extContentConnected","parentWindowId","parentInExtMode","webNamespace","parentType","parentPingTimeout","connectionRequestTimeout","defaultTargetString","connectionAccepted","handle","handleConnectionAccepted","bind","connectionRejected","handleConnectionRejected","connectionRequest","handleConnectionRequest","parentPing","handleParentPing","platformPing","handlePlatformPing","platformReady","handlePlatformReady","clientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","origin","windowId","glue42core","clientId","ownWindowId","initiateInternalConnection","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","checkMessageTypeValid","messageType","signalClientDisappearing","clearInterval","source","handleAcceptanceOfMyRequest","processExtContentConnection","connectionProtocolVersion","applicationName","extData","glue42ExtInc","errorMsg","extMode","typeToValidate","requestConnectionPermissionFromExt","waitForContentScript","approved","content","findParent","connectionNotPossibleMsg","myInsideParents","getPossibleParentsInWindow","myOutsideParents","getPossibleParentsOutsideWindow","top","opener","uniqueParents","Set","confirmParent","from","currentWindow","current","targets","substring","AsyncSequelizer","minSequenceInterval","queue","isExecutingQueue","enqueue","executeQueue","operation","shift","actionResult","intervalBreak","res","domainSession","successMessages","errorMessages","_latestOptions","isJoined","tryReconnecting","_connectionOn","disconnected","requestsMap","requestId","trace","loggedIn","handleSuccessMessage","handleErrorMessage","sm","destination","wasReconnect","handleJoined","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","leave","onLeft","connected","Connection","protocolVersion","token","resolvedIdentity","availableDomains","gatewayToken","replayer","messageHandlers","ids","_connected","isTrace","_defaultTransport","_defaultAuth","_targetTransport","_targetAuth","_swapTransport","_switchInProgress","_transportSubscriptions","datePrefix","datePrefixLen","dateMinLen","datePrefixFirstChar","_sequelizer","_isLoggedIn","shouldTryLogin","pingTimer","sessions","globalDomain","initialLogin","initialLoginAttempts","loginConfig","loginRetryInProgress","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","find","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","attemptLoginWithRetry","msgObj","processStringMessage","processObjectMessage","msgType","unsub","ready","invocations","left","waitForInvocations","transportConfig","url","assign","auth","parse","startsWith","milliseconds","parseInt","isNaN","ex","oldToJson","username","password","authentication","setupAuthConfig","helloMsg","sessionId","sendOptions","maxRetries","welcomeMsg","tryAuthenticate","resolved_identity","available_domains","access_token","flowCallback","Buffer","getNewGWToken","method","flowName","provider","secret","providerContext","promises","all","getGWToken","order","Logger$1","Logger","subLoggers","_consoleLevel","_publishLevel","loggerFullName","includeTimeAndLevel","logFn","customLogFn","existingSub","publishLevel","level","consoleLevel","publishMessage","compareWith","loggerName","split","interop","Interop","methods","InteropMethodName","args","invoke","prefix","date","getHours","getMinutes","getSeconds","getMilliseconds","toPrint","GW_MESSAGE_CREATE_CONTEXT","GW_MESSAGE_ACTIVITY_CREATED","GW_MESSAGE_ACTIVITY_DESTROYED","GW_MESSAGE_CONTEXT_CREATED","GW_MESSAGE_CONTEXT_ADDED","GW_MESSAGE_SUBSCRIBE_CONTEXT","GW_MESSAGE_SUBSCRIBED_CONTEXT","GW_MESSAGE_UNSUBSCRIBE_CONTEXT","GW_MESSAGE_DESTROY_CONTEXT","GW_MESSAGE_CONTEXT_DESTROYED","GW_MESSAGE_UPDATE_CONTEXT","GW_MESSAGE_CONTEXT_UPDATED","GW_MESSAGE_JOINED_ACTIVITY","ContextMessageReplaySpec","version","GW3ContextData","contextId","isAnnounced","createdByUs","joinedActivity","updateCallbacks","activityId","sentExplicitSubscription","hasReceivedSnapshot","snapshotPromiseWrapper","snapshotPromise","hasCallbacks","lodash_clonedeep","exports","module","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","Function","freeExports","nodeType","freeModule","moduleExports","addMapEntry","pair","set","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","func","transform","arg","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","propertyIsEnumerable","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","n","baseTimes","String","skipIndexes","isIndex","assignValue","object","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","isObject","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","get","props","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","test","arrayBuffer","getMapData","getValue","pop","hash","string","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","ctorString","isLength","baseKeys","cloneDeep","applyContextDelta","delta","reset","deepClone","commands","command","deletePath","setValueToPath","added","updated","removed","mergeObjectsProperties","obj","what","withWhat","right","deepEqual","y","p","pathArr","forbiddenKeys","isSubset","superObj","subObj","every","ele","GW3Bridge$1","ERROR_URI_FAILURE","ERROR_URI_INVALID_CONTEXT","_logger","_connection","_trackAllContexts","_reAnnounceKnownContexts","_subscribeOnUpdate","_subscribeOnGet","_onlyReAnnounceSubscribedContexts","_gw3Session","_contextNameToData","_gw3Subscriptions","_nextCallbackSubscriptionNumber","_creationPromises","_contextNameToId","_contextIdToName","_protocolVersion","_contextsTempCache","_contextsSubscriptionsCache","_systemContextsSubKey","contextsDomainInfo","d","uri","setPathSupported","trackAllContexts","reAnnounceKnownContexts","subscribeOnUpdate","subscribeOnGet","onlyReAnnounceSubscribedContexts","resetState","reInitiateState","subscribeToContextCreatedMessages","subscribeToContextUpdatedMessages","subscribeToContextDestroyedMessages","handleContextCreatedMessage","handleContextUpdatedMessage","handleContextDestroyedMessage","dispose","contextName","createContext","lifetime","createContextMsg","context_id","contextData","subscribe","currentContext","calculatedDelta","calculateContextDeltaV2","calculateContextDeltaV1","gwResponse","handleUpdated","updaterId","setPath","setPaths","pathValues","pathValue","_d","_r","un","isInvalidContextError","reason_uri","subscriptionKey","thisCallbackSubscriptionNumber","subKey","hadCallbacks","clone","sendSubscribe","keepInSubscriptionsCache","sendUnsubscribe","destroy","extraData","oldContext","invokeUpdateCallbacks","createdMessageTypes","createdMessageType","contextCreatedMsg","activity_id","updatedMessageTypes","updatedMessageType","contextUpdatedMsg","justSeen","context_snapshot","updater_id","updateCallbackIndex","updateCallback","destroyedMessageTypes","destroyedMessageType","destroyedMsg","prev","to","cacheSoFar","ctxName","subscription","flushQueue","lastKnownData","ContextsModule","initTime","initStartTime","initEndTime","_bridge","GW3Bridge","checkName","checkData","checkPath","paths","promisify","successCallback","errorCallback","rejectAfter","ms","clearTimeoutIfThere","ok","map2","f","ar","br","mapError","r","__assign","isEqual","isJsonArray","json","isJsonObject","expectedGot","expected","got","typeString","printPath","prependAt","newAt","at","rest","__rest","Decoder","decode","_this","run","kind","runPromise","runWithException","withException","andThen","where","errorMessage","succeed","fail","number","boolean","constant","decoders","decoder","v","err$$1","decodeValue_1","tuple","nth","union","ad","bd","oneOf","intersection","ds","anyJson","unknownJson","dict","optional","errors","errorsList","withDefault","defaultValue","valueAt","jsonAtPath","fixedValue","lazy","mkDecoder","functionCheck","propDescription","providedType","nonEmptyStringDecoder","nonNegativeNumberDecoder","methodFilterDecoder","objectTypes","displayName","accepts","returns","supportsStreaming","flags","getServers","instanceDecoder","pid","machine","user","environment","region","isLocal","getMethods","getStreams","targetDecoder","invokeOptionsDecoder","waitTimeoutMs","methodResponseTimeoutMs","InvokeStatus","Client","configuration","callProtocolSubscribe","targetServers","stream","successProxy","errorProxy","methodResponseTimeout","methodDef","method_response_timeout","wait_for_method_timeout","delayTillNow","currentServers","getServerMethodsByFilterAndTarget","retry","streamInfo","servers","methodFilter","filterCopy","serverMethodMap","server","methodsForInstance","getMethodsForInstance","methodAdded","onMethodAdded","methodRemoved","onMethodRemoved","serverAdded","onServerAdded","serverRemoved","onServerRemoved","serverMethodAdded","onServerMethodAdded","serverMethodRemoved","onServerMethodRemoved","argumentObj","additionalOptions","methodDefinition","methodFilterDecoderResult","generateInvalidInputInvocationResult","targetDecoderResult","invokeOptionsDecoderResult","serversMethodMap","tryToAwaitForMethods","additionalOptionsCopy","invokePromises","serversMethodPair","invId","invokePromise","race","invocationId","invocationMessages","getInvocationResultObj","getInvokePromise","metadata","invokeResultMessage","invocationResults","calledWith","all_return_values","invokeMessage","Success","allValues","currentValue","executed_by","returned","called_with","all_errors","allErrors","currError","invResult","interval","filterByTarget","targetArray","matches","myMatches","serverMethodPair","instanceMatch","localMachine","instanceFilter","instanceDefinition","containsProps","methodMatch","repoMethod","prop","isMatch","filterValue","repoMethodValue","filterValueEl","matchingServers","resultMethodsObject","methodKey","identifier","matchingMethods","ServerSubscription","branchKey","closeSingleSubscription","pushDataToSingle","Request","requestContext","accept","acceptRequestOnBranch","acceptOnBranch","branch","rejectRequest","ServerStreaming$1","onSubRequest","rc","rm","handleSubRequest","onSubAdded","handleSubAdded","onSubRemoved","handleSubRemoved","streamCallbacks","subscriptionRequestHandler","subscriptionAddedHandler","subscriptionRemovedHandler","ServerBranch","subscriptions","getSubscriptionList","closeAllSubscriptions","pushData","ServerStream","_protocol","_repoMethod","_server","branches","bList","getBranchList","def2","unregister","updateRepoMethod","Server","serverRepository","streaming","currentlyUnregistering","onInvoked","onMethodInvoked","createStream","streamDef","existingStream","streamMethodDefinition","getList","some","serverMethod","protocolState","streamUserObject","repoId","remove","register","wrappedCallbackFunction","resultCallback","userCallback","registerCore","registerAsync","wrappedCallback","resultCalled","methodResult","userCallbackAsync","forStream","unregisterWithPredicate","methodToBeRemoved","removeMethodsOrStreams","filterPredicate","methodsOrStreamsToRemove","methodsToRemove","methodUnregPromises","addAsCurrentlyUnregistering","methodName","theFunction","unregisterInProgress","methodToExecute","invocationArgs","unStrException","_value","methodInvocationResult","InstanceWrapper","wrapped","API","refreshWrappedObject","refresh","unwrap","floor","hideMethodSystemFlags","ClientRepository","myServer","methodsCount","wrapper","unwrappedInstance","addServer","serverId","serverEntry","removeServerById","methodId","removeServerMethod","addServerMethod","createMethodIdentifier","that","gatewayId","display_name","object_types","input_signature","result_signature","getServersByMethod","clientMethodDefinition","extractMethodsFromServers","hideServerMethodSystemFlags","unsubscribeFunc","serversWithMethodsToReplay","returnUnsubWithDelayedReplay","methodsToReplay","unsubCalled","getServerById","methodInfo","allServers","collectionToReplay","item","clientMethods","ServerRepository","nextId","TypeError","getById","SUBSCRIPTION_REQUEST","SUBSCRIPTION_ADDED","SUBSCRIPTION_REMOVED","ServerStreaming","repository","ERR_URI_SUBSCRIPTION_FAILED","nextStreamId","handleAddInterest","handleRemoveInterest","streamingMethod","subscriptionsMap","branchKeyToStreamIdMap","streamId","getStreamId","subscription_id","subscribeMsg","stream_id","sendSubscriptionFailed","dropSubscriptionMessage","closeMultipleSubscriptions","subscriptionsToClose","drop","allSubscriptions","onSubscriptionLifetimeEvent","method_id","eventName","handlerFunc","getNextStreamId","caller","caller_id","arguments_kv","subscriptionId","needleBranch","ServerProtocol","clientRepository","handleInvokeMessage","isStreaming","registerMsg","restrictions","invocation_id","callerId","UserSubscription","subscriptionData","requestArguments","params","trackedServers","serverInstance","onData","dataCallback","queued","dataItem","onClosed","closedCallback","onFailed","onConnected","setNewSubscription","newSub","TimedCache","timeoutIds","timeoutId","elementIdx","findIndex","ELEMENT_TTL_MS","flush","elements","STATUS_AWAITING_ACCEPT","STATUS_SUBSCRIBED","ERR_MSG_SUB_FAILED","ON_CLOSE_MSG_CLIENT_INIT","ClientStreaming","subscriptionsList","timedCache","subscriptionIdToLocalKeyMap","nextSubLocalKey","handleSubscribed","handleEventData","handleSubscriptionCancelled","subLocalKey","getNextSubscriptionLocalKey","pendingSub","registerSubscription","server_id","handleErrorSubscribing","drainSubscriptions","drainSubscriptionsCache","subsInfo","localKey","closers","closeSubscription","callOnClosedHandlers","errorResponse","callArgs","acceptingServer","isFirstResponse","trackedServersFound","isPrivateData","oob","sendingServerId","receivedStreamData","private","onDataHandlers","queuedData","expectedNewLength","closersCount","closingServerId","closingServer","ClientProtocol","handlePeerAdded","handlePeerRemoved","handleMethodsAddedMessage","handleMethodsRemovedMessage","handleResultMessage","handleInvocationError","newPeerId","new_peer_id","remoteId","meta","local","Number","serverInfo","removedPeerId","removed_id","methodIdList","gW3ProtocolFactory","libConfig","readyPromise","reconnectionPromises","existingSubscriptions","registeredMethods","handleReconnect","protocolPromise","waitForMethod","MessageBus","watchOnEvent","publish","topic","routingKey","removeEmptyValues","routing_key","target_identity","response","keysMatch","cleaned","obj1","obj2","keysObj1","allMatch","IOConnectCoreFactory","userConfig","ext","iodesktop","preloadPromise","gdPreloadPromise","glueInitTimer","internalConfig","nodeStartingContext","startingContextString","env","_GD_STARTING_CONTEXT_","getApplication","glue42electron","applicationConfig","gwConfig","gateway","instanceId","gwURL","uniqueAppName","appInstanceId","getConnection","windowAsAny","containerApplication","htmlContainer","containerName","bus","gwToken","defaultLevel","gdConsoleLevel","consoleLogLevel","getLogger","contexts","defaultConfig","getContexts","libs","customLogger","prepareConfig","_interop","_contexts","_bus","_allowTrace","registerLib","inner","done","traceMessage","setupMetrics","initTimer","metricsPublishingEnabledFunc","getMetricsPublishingEnabled","setupInterop","agmConfig","setupContexts","hasActivities","activities","setupBus","setupExternalLibs","externalLibs","createCallback","setupExternalLib","authPromise","authConfig","RegisterInstanceMethodName","typedError","registerInstanceIfNeeded","libsReadyPromises","coreVersion","glue","feedback","feedbackInfo","agm","glueVer","glueConfig","browser","timing","initTimes","duration","extOptions","enrichGlue","updatePerfData","deprecatedDecorator","fn","wrong","proper","agmAny","method_added","method_removed","server_added","server_method_aded","server_method_removed","IOConnectCore","ActivityEntity","_id","_update","_updateCore","_beforeDelete","isNumber","isString","isUndefined","isUndefinedOrNull","isNullOrWhiteSpace","str","isBoolean","ifNotUndefined","doWithIt","ActivityType","ownerWindow","helperWindows","_ownerWindow","_helperWindows","hw","covertToWindowDef","initiate","_manager","windowType","_b","WindowType","appByWindowTypeGetter","_appByWindowTypeGetter","windows","getWindows","activity","isIndependent","createWindow","EntityEvent","entitiy","entity","EntityEventContext","eventType","ActivityStatusChangeEventContext","newStatus","oldStatus","EntityEventType","StatusChange","ActivityContextChangedEventContext","ActivityContextChange","Added","Removed","Updated","Closed","ActivityWindowEvent","ActivityWindowJoinedActivity","ActivityWindowLeftActivity","ActivityState","Created","Started","Destroyed","ActivityAGM","_activity","_ensureHasAgm","AGM","util.isUndefinedOrNull","w","methodNames","methodsForWindow","currentWindowMethod","activityServers","util.isString","potentialTargets","util.isArray","firstElem","_isInstance","_isActivityWindow","win","parameters","AttachedActivityDescriptor","manager","ownerActivityId","_ownerActivityId","ownerId","windowIds","frameColor","detach","descriptor","detachActivities","nextTick","cb","nodeify","util.isFunction","resp","Activity","actType","_actType","_status","_context","_ownerId","_agm","getActivityType","owner","addWindow","addWindowToActivity","createStackedWindows","windowTypes","leaveWindowFromActivity","getWindowsByType","setContext","setActivityContext","updateContext","updateActivityContext","onStatusChange","subscribeActivityEvents","ns","os","onWindowEvent","subscribeWindowEvents","onContextChanged","subscribeActivityContextChanged","act","stopActivity","attach","attachActivities","onActivityAttached","subscribeActivitiesAttached","newActId","oldActId","onDetached","subscribeActivitiesDetached","newAct","originalActivity","_updateDescriptors","allStates","_attached","attached","setFrameColor","color","callbacksToWait","underlyingWindow","getFrameColor","LogLevel","Trace","Debug","Info","Warn","GetNamed","Get","GetTypeName","GlueLogger","_glueLogger","Level","_getMessage","ActivityWindow","windowGetter","hcWindowId","_type","_activityId","_instance","_isIndependent","_windowGetter","_hcWindowId","getBounds","getWindowBounds","getWindowType","util.isUndefined","getActivityById","isOwner","setVisible","isVisible","setWindowVisibility","activate","focus","activateWindow","setBounds","bounds","setWindowBounds","closeWindow","onActivityJoined","_subscribeForActivityWindowEvent","onActivityRemoved","ActivityStatus","getMessage","gwMmessageError","gwMessageAddActivityTypes","gwMessageActivityCreated","gwMessageActivityDestroyed","gwMessageActivityInitiated","gwMessageJoinedActivity","gwMessageActivityJoined","gwMessageActivityLeft","gwMessageOwnerChanged","gwMessageAddPeerFactories","gwMessagePeerFactoriesAdded","gwMessagePeerFactoriesRemoved","gwMessagePeerCreated","activityTypeGwMessageEntityToActivityType","nameToWindowType","windowName","owner_type","helper_types","peerFactoryGwMessageEntityToWindowType","peer_type","_","activityGwMessageToActivity","owner_id","activity_type","activityToActivityStatusChangeEvent","_activityChangeCallbacks","_activityTypeStatusChangeCallbacks","_activityWindowChangeCallbacks","_windowTypeStatusChangeCallbacks","_peerIdAndFactoryIdToPeerType","_peerFactoriesRegisteredByUs","_contextSubscriptions","_activityTypesInitiatedFromMe","_config","_windows","_sessionJoinedPromise","_sessionJoinedPromiseResolve","_activityJoinedPromise","_activityJoinedPromiseResolve","activityInfo","addRefreshHandler","setGWToken","addWillNavigateHandler","bridgeType","forwardActivityTypeMessagesToStatusEventHandlers","handleActivityCreatedMessage","handleActivityDestroyedMessage","forwardActivityMessagesToStatusEventHandlers","forwardActivityCreatedAndJoinedActivityToActivityWindowEventHandlers","forwardPeerFactoryMessagesToStatusEventHandlers","forwardPeerFactoryMessagesToPeerFactoryRequests","handlePeerFactoriesAdded","handlePeerFactoriesRemoved","forwardActivityWindowMessagesToEventHandlers","disposeRequestHandling","my","exit","mode","activity_types","typesToTrack","initReady","onActivityTypeStatusChange","registerActivityType","activityTypeName","toActivityPeerConfig","windowDefinition","activityType","invokeCallbacks","unregisterActivityType","onWindowTypeStatusChange","registerWindowFactory","factory","factories","unregisterWindowFactory","factory_ids","onActivityStatusChange","initiateActivity","initiateMsg","initial_context","isOverrideTypeDefinition","types_override","helpers","wd","sendCreateAndMapResultingMessagesToPromise","initMsg","fullReplace","removedKeys","announceWindow","activityWindowId","registerWindow","independent","shouldSendReady","getAgmInstance","generateWindowGetter","onActivityWindowChange","layout","width","height","cellSize","joinPeer","joinActivity","peer_name","created_id","destroy_peer_id","getAnnouncementInfo","announcementInfo","activityWindowType","activityWindowIndependent","activityWindowName","search","URLSearchParams","searchParams","maybeName","target_id","leaveActivity","getActivityTypes","getWindowTypes","getActivities","getActivityWindows","windowDefinitions","visible","cloneActivity","cloneOptions","into","merge","newActivityInfo","onActivitiesAttached","onActivitiesDetached","onActivityAttachedDescriptorsRefreshed","getAttachedDescriptors","getRandomRequestId","forwardAddedAndRemovedMessagesToEventHandler","addedMessageType","removedMessageType","mapper","getGetEntityEvent","isAdded","forwardMessageToEventHandler","getEntityEvent","ent","h","initiatedMessageType","initiatedMessageFilter","createdMessageFilter","cancelledMessageType","cancelledMessageFilter","createdMessageToPromiseResolution","listenForRecreates","reqId","resolveCreatedPromise","rejectCreatedPromise","createdPromise","initiatedSubscription","createdSubscription","cancelledSubscription","errorSubscription","initiatedMessageAck","dropSubscriptions","dropSubscription","msg4","recreated","msg1","msg2","msg3","toReturn","peerFactoryIdAndOwnerIdToWindowType","factoryId","peerType","subscribeToContext","unsubscribeContext","activityCreatedMessage","participants","createdMessage","peer_factory","gateway_token","joinedMessage","joinedId","joined_id","joinedType","joined_type","joinedName","joined_name","left_id","list","ActivityMy","_myAttached","_myDetached","_myAttachedTo","_myDetachedFrom","_myActivityFrameColorChanged","_myActivityJoinedCallbacks","_myActivityRemovedCallbacks","_myContextUpdateCallbacks","_m","am","_subscribeMyContextChanged","_subscribeMyWindowEvent","_subscribeActivitiesAttached","_subscribeActivitiesDetached","onWindowFrameColorChanged","_subscribeWindowFrameColorChanged","_w","announcedWindows","myWin","onActivityLeft","onActivityDetached","onAttachedToActivity","onDetachedFromActivity","onFrameColorChanged","myActivity","_notifyMyContextChanged","_notifyMyWindowEvent","callbackStore","_notifyAttached","_notifyDetached","_notifyAttachedTo","_notifyDetachedFrom","detached","oldAct","ReadyMarker","signalsToWait","_signals","_callbacks","setCallback","isSet","isError","_error","signal","getError","EntityObservableCollection","processNew","_items","_listeners","_processNew","addOne","items","internalEntity","_updateInternalCollections","_notifyListeners","getByName","getOrWait","entityAddedHandler","listener","entityAsAny","isActivityDestroy","isWindowClose","oldEntity","ActivityManager","usingHc","_announcedWindows","bridge","autoAnnounce","_attachedCallbacks","_detachedCallbacks","_frameColorChangesCallbacks","_windowHandlers","_activityTypes","_grabEntity","_windowTypes","_activities","_dataReadyMarker","_descriptorsMarker","_readyMarker","dataErr","errCatch","refreshDescriptors","_handleActivitiesAttached","_handleActivitiesDetached","_handleActivityDescriptorsRefreshed","_handleWindowFrameColorChanged","_subscribeForData","aw","_getInitialData","ownerWindowType","helperWindowTypes","ownerDefinition","helperDefinitions","relativeTo","relativeDirection","windowStyleAttributes","actId","subscribeActivityTypeEvents","factoryMethod","util.isObject","getName","predicate","util.some","windowEventHandler","unsubscribeWindowEvents","subscribeWindowTypeEvents","wt","wrappingHandler","found","windowTypeOrConfiguration","relativeToWindow","invalidKeys","filteredWindowTypeOrConfiguration","wid","relativeWindowTypes","stackedWindow","tasks","removedKey","descriptors","stateWrapped","u","subscribeActivityFrameColorChanged","ac","descriptorAsObjectFromAPI","oldActivityId","newActivityId","ActivityManagementAPI","_my","activityTypes","_getActivityTypesWrapper","_getWindowTypesWrapper","registerFactory","unregisterFactory","announce","instances","onAttached","onActivityFrameColorChanged","ActivityAPI","_mgr","aware","inActivity","getAvailableFrameColors","ActivityModule","checkIsUsingGW3Implementation","_api","logLevel","_isUsingHCImplementation","gdMajorVersion","_isUsingGW3Implementation","activityManager","disableAutoAnnounce","My","_readyPromise","isUsingHCImplementation","isUsingGW3Implementation","GetFunctionalEntitlementMethodName","CanIMethodName","OnEventMethodName","GetApplicationsMethodName","objectValues","objectClone","validate","throwErrors","INTEROP_METHOD_RESPONSE_TIMEOUT_MS","INTEROP_METHOD_WAIT_TIMEOUT_MS","INTEROP_METHOD_MAX_TIMEOUT_MS","getGDMajorVersion","glueDesktop","parsed","major","callbackifyPromise","getMonitor","displays","workingAreaWidth","workingAreaHeight","monitor","totalOverlap","calculateTotalOverlap","isRunningInIoCdContext","generateId","isPromise","isAsyncFunction","isNullOrUndefined","r1","r2","r1x","r1y","r1xMax","r1yMax","r2x","r2y","r2xMax","r2yMax","max","min","ApplicationImpl","_appManager","_configuration","onInstanceStarted","onInstanceStopped","onAppRemoved","app","onAppChanged","onAppAvailable","_props","IsReady","onAppUnavailable","Title","Version","autoStart","AutoStart","isShell","IsShell","caption","Caption","hidden","IsHidden","container","ApplicationName","ActivityWindowType","windowSettings","Arguments","allowMultiple","AllowMultiple","available","icon","Icon","iconURL","IconUrl","sortOrder","SortOrder","userProperties","UserProperties","keywords","Keywords","isActivity","Type","Mode","styleAttributes","WindowStyleAttributes","searchFor","modeIndex","startModeIndex","stopModeIndex","style","substr","getConfiguration","AgmNames.GetApplicationsMethodName","v2","apps","applications","updateFromProps","Name","start","waitForAGMInstance","awaitInterop","_c","waitForAGMReady","startTimeout","waitForApplicationInstance","unSubAgmReady","unInstanceStopped","cleanup","errMsg","waitFunc","onAgmReady","onInstanceAgmServerReady","acsResult","Context","Options","waitForInterop","Id","handleInstanceStarted","ActivityId","IsActivityOwner","AgmServers","onAvailable","onUnavailable","onChanged","onRemoved","InstanceImpl","_appName","startFailed","_unsubscribeInstanceStopped","_unsubscribeInstanceAgmServerReady","activityInstance","isActivityOwner","_isActivityOwner","activityInstances","activityOwnerInstance","inst","_startUpContext","_title","isActivityInstance","_isActivityInstance","_inActivity","isSingleWindowApp","_agmInstance","interopInstance","onInteropReady","onStopped","getWindow","timeoutInSeconds","onWindowAdded","updateAgmInstanceFromProps","agmInstances","idToResolve","handleInstanceStopped","getContext","startedBy","AppManagerImpl","_gdMajorVersion","_apps","_instances","getConfigurations","getMyInstance","getMyApplication","handleSnapshotAppsAdded","newApps","currentApps","handleAppRemoved","handleAppAdded","handleSnapshotInstanceStarted","newInstances","currentInstances","_getAppId","_updateAppFromProps","handleAppUpdated","handleAppReady","_getAppOrThrow","_getInstanceId","_getInstanceAppName","_updateInstanceFromProps","_getInstanceOrThrow","_matchInstance","handleInstanceAgmServerReady","handleInstanceStartFailed","handleInstanceUpdated","onInstanceStartFailed","onInstanceUpdated","onAppAdded","_getInstanceByIdAndName","EntitlementsImpl","_isMethodRegistered","handleBranchModified","handleBranchesModified","getRegion","_agmInvoke","Region","getBranches","Branches","getCurrentBranch","Branch","setRegion","ResultMessage","setCurrentBranch","currentUser","getFunctionalEntitlement","funct","AgmNames.GetFunctionalEntitlementMethodName","Entitlement","getFunctionalEntitlementBranch","canI","AgmNames.CanIMethodName","Result","canIBranch","onBranchesChanged","onBranchChanged","onShuttingDown","registerMethod","restart","transformFunction","prevent","InMemoryStoreCommandMethodName","InMemoryStore","import","createAppDef","details","AppManagerFactory","START_ONLY","SKIP_ICONS","appManager","entitlements","skipIcon","snapshot","skipIcons","initiated","resolveFunc","rejectFunc","resultPromise","AgmNames.OnEventMethodName","streamData","events","onApplicationAddedEventArgs","isSnapshot","onApplicationStartedEventArgs","myInstance","hasMyAppInSnapShot","hasMyInstanceInSnapShot","subscriptionFactory","c","myApplication","inMemory","T42JumpListAction","jumpListManager","_groupActionCallbacks","_registered","_executor","registerCallbackMethod","setEnabled","updateJumpList","createCategory","actions","validateActions","category","toUpdateActions","removeCategory","manageActionCallback","createActions","categoryTitle","removeActions","getActions","catgoryTitle","currentCategory","getJumpListSettings","categories","actionCallback","getActionCallback","callbackId","singleInstanceTitle","multiInstanceTitle","getJumpList","updateAction","groupCallbacksKey","categoryActionCallbacks","accCal","delete","callbackAction","cal","windowStore","waitForTimeoutInMilliseconds","_pendingWindows","_pendingWindowsStates","CallbackFactory","getIfReady","shouldMarkReadyToShow","markReadyToShow","setUrlChangedState","targetWindowState","urlChanged","setCompositionChangedState","compositionChanged","waitFor","unReady","unRemoved","onReadyWindow","waitForName","winId","onAdded","JumpListActions","_categoryTitle","JumpListCategories","getCategories","cat","JumpList","_categories","isEnabled","SingleChannelID","channel","isJoinedToAnyChannel","isOnChannel","leaveChannel","joinChannel","equals","MultiChannelId","channels","ChannelDelimiter","newChannel","ch","windowFactory","appsController","displayAPIGetter","channelsAPIGetter","getChannelsAPI","appManagerGetter","_mode","_bounds","_url","_frameColor","_focus","_neighbours","neighbours","_groupId","groupId","_isGroupHeaderVisible","isGroupHeaderVisible","_isTabHeaderVisible","isTabHeaderVisible","_isGroupHibernated","isGroupHibernated","_isGroupVisible","isGroupVisible","_isTabSelected","isTabSelected","_settings","_applicationName","_group","_isVisible","_isSticky","isSticky","_isCollapsed","isCollapsed","_windowState","_tabGroupId","tabGroupId","_tabIndex","tabIndex","_frameId","frameId","_isLocked","isLocked","_allowWorkspaceDrop","allowWorkspaceDrop","_isPinned","isPinned","_frameButtons","frameButtons","_zoomFactor","zoomFactor","_placementSettings","placementSettings","_jumpList","moveResize","utils","resultWindow","toBeVisible","onGroupChanged","onEventCore","replayArguments","getChannel","getWindowsWithChannels","getNeighboursByDirection","direction","getApplicationName","_APPLICATION_NAME","_t42","getWindowInfo","hostInstance","agmInstance","b1","b2","minHeight","maxHeight","minWidth","maxWidth","isFocused","opened","group","topNeighbours","leftNeighbours","rightNeighbours","bottomNeighbours","screen","monitors","jumpList","maximize","restore","minimize","maximizeRestore","collapse","expand","toggleCollapse","setTitle","newTitle","setStyle","styleAsAny","util.isNumber","setOnTop","onTop","resetButtons","buttons","getButtons","setSizeConstraints","constraints","getSizeConstraints","navigate","newUrl","optionsOrCallback","util.isNullOrWhiteSpace","addFrameButton","buttonInfo","buttonId","imageBase64","removeFrameButton","show","hide","center","display","workArea","scaleFactor","validateCenterArguments","cbOrOptions","snap","autoAlign","dragMove","dragMoveSettings","showLoader","loader","hideLoader","lock","unlock","getIcon","setIcon","base64Image","setTabTooltip","tooltip","getTabTooltip","attachTab","tab","opt","sourceWindow","attachOptions","selected","detachTab","argsForSend","hideTabHeader","setTabHeaderVisible","toBeTabHeaderVisible","showPopup","createFlydown","setModalState","isModal","setZoomFactor","zoomIn","zoomOut","showDevTools","capture","captureOptions","flash","suppliedOptions","flashOptions","shouldFlash","flashTab","setSticky","setAllowWorkspaceDrop","pin","unpin","print","printOptions","printToPDF","printToPDFOptions","place","clearPlacement","clearPlacementSettings","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","setDockingConfig","getDockingConfig","dock","undock","executeCode","getChannels","startDrag","option","showDialog","dialogOptions","timerDuration","showTimer","onClose","onUrlChanged","onTitleChanged","onFrameButtonAdded","onFrameButtonRemoved","onFrameButtonClicked","onCollapsed","onExpanded","onMinimized","onMaximized","onNormal","onVisibilityChanged","onContextUpdated","onLockingChanged","onBoundsChanged","onFocusChanged","onStickyChanged","onWindowAttached","onWindowDetached","onTabSelectionChanged","onTabHeaderVisibilityChanged","onClosing","onRefreshing","onZoomFactorChanged","onPlacementSettingsChanged","onNeighboursChanged","onDockingChanged","onNavigating","onChannelRestrictionsChanged","tabs","allWindows","w1","w2","MIN_SAFE_INTEGER","getAllTabs","getApp","getURL","getTitle","getDisplay","getByWindowId","resizeTo","moveTo","getParentWindow","myParentId","parentInstanceId","Events","handleUpdate","handleWindowClose","handleWindowChangeState","finished","handleTitleChanged","finally","handleVisibilityChanged","handleUrlChanged","handleWindowSettingsChanged","handleContextUpdated","handleFrameIsLockedChanged","handleBoundsChanged","handleFocusChanged","handleFrameButtonAdded","frameButton","buttonObj","btn","handleFrameButtonRemoved","frameButtonId","button","handleFrameButtonClicked","handleFrameColorChanged","handleFrameAttached","handleFrameSelectionChanged","newWindow","prevWindow","selectedWindow","previousWindow","handleCompositionChanged","neighbors","handleAllowWorkspaceDropChanged","handleIsPinnedChanged","handleGroupHeaderVisibilityChanged","handleTabHeaderVisibilityChanged","handleGroupChanged","handleAttached","newTabGroupId","newFrameId","tabHeaderVisible","winsToBeNotified","handleWindowAttached","handleDetached","handleWindowDetached","handleZoomFactorChanged","handleIsStickyChanged","handlePlacementSettingsChanged","displayAPI","handleDockingChanged","docked","position","claimScreenArea","handleChannelRestrictionsChanged","GroupCreationArgs","getWindowsByTabGroupId","isEmpty","GroupMethodName","WndMethodName","_finished","windowAvailableOnURLChanged","unsubCallbacks","agmTarget","setConfiguration","handleEvent","finishedResolve","closed","urlLoadOptions","invocationOptions","stylePromises","wait","tabTooltip","tabToolTip","toolTip","tabTitle","allowClose","allowCollapse","allowLockUnlock","allowMaximize","allowMinimize","buttonsConfig","windowToPin","pinnedWindow","versionNum","rej","resolveImmediately","areBoundsEqual","unsubscribeBoundsChanged","resolveTimeout","targetWindow","targetWindowId","snappingEdge","sourceWindowId","eventKeys","contextWithoutUndefinedValues","swapUndefinedToNull","dataURL","toShow","showGroupPopup","reformatedOptions","validatePopupOptions","executeGroup","optionsCopy","horizontalOffset","verticalOffset","fullOptions","reformatFlydownOptions","zoneIds","zones","z","flydownSize","cancel","targetId","clearFlydownArea","autoArrange","displayId","handleFlydownBoundsRequested","callbackData","zoneId","flydownId","flydownWindowBounds","flydownWindowId","responses","defaultResponse","handleOnEventRequested","prevented","preventArgs","pArgs","captureGroup","groupWindowIds","filePath","silent","enableDownloadBar","fullPath","fileSize","executeCore","gdWindow","addCloseHandler","nonWindowHandlers","onGroupClosing","nonWindowHandlersCore","clearCallbacks","isGroup","noOperationHandler","assignGeneralIfUnassigned","zone","valueFromOptions","flydownBounds","targetLocation","flydownActiveArea","activeArea","areaIds","executeWithoutToken","uns","executed","executeWithToken","requested","areHeightsEqual","areWidthsEqual","areLeftsEqual","areTopsEqual","popupBounds","popupId","GDEnvironment","wndId","_windowId","_appsController","_displayAPIGetter","_channelsAPIGetter","respondToEvent","streamResolve","streamReject","withConfig","updateWindow","copyOptions","windowState","tabAttached","tabDetached","onEvent","myGroup","onCompositionChanged","onGroupHeaderVisibilityChanged","onGroupVisibilityChanged","onGroupStateChanged","onWindowGotFocus","onWindowLostFocus","onWindowsAutoArrangeChanged","windowInfo","readyResolve","extendedStreamEvent","getExtendedStreamEvent","existingWindow","mapToWindowConstructorOptions","mapToGroupCreationArgs","createWindowFromSnapshot","windowInfoCreatedEvent","createWindowFromStream","windowObjectAndEvents","theWindow","theWindowEvents","windowInfoBoundsChangedEvent","windowInfoUrlChangedEvent","windowInfoTitleChanged","windowInfoIsStickyChangedChanged","windowInfoCompositionChanged","groupHeaderVisible","windowInfoFocusChanged","focusChanged","oldTabGroupId","newWindowId","prevWindowId","windowObjAndEvents","createWindowCore","isRemote","isFrameless","isHidden","isActiveTab","jumpListOptions","streamEvent","charAt","toUpperCase","groupFactory","callbackRegistry","_windowsId","_isHibernatedFlag","groupObject","_mapToWindowObjects","winObjects","windowObject","_mapToWindowObject","isHeaderVisible","isHibernated","showHeader","hideHeader","reload","onHeaderVisibilityChanged","onWindowRemoved","internal","removeWindow","handleGroupVisibilityChanged","visibile","handleGroupHibernateChanged","isHibernatedFlag","groupAPI","groupInternal","groupsFactory","_groups","heardForWindowsCounter","findGroupByWindow","groupObj","waitForGroup","groupWrapper","onGroupAdded","createdGroupWrapper","createOrGet","deleteIfEmpty","findGroupWrapperByWindow","validateGroupIdArg","currentGroup","fromGroup","toGroup","moveWindow","groupEvents","groups","groupIds","idOrGroup","getMyGroup","onGroupRemoved","hibernate","resume","onHibernated","onResumed","groupsAPI","groupsEvents","onWindowMoved","WindowsFactory","channelsGetter","popupCount","isReady","GD","webGroupsManager","envDetector","myWindow","windowAdded","windowRemoved","optionsAsAny","windowsForListing","findById","onTabAttached","unsubFunc","unsubscribed","onTabDetached","onArrangementChanged","createPopup","createProcessWindow","features","optionProperties","property","propertyValue","transparent","createProcessWindowOptions","copyStyles","browserWindow","windowWrapper","ioConnectWindow","store","layouts","removeWhere","condition","removeAll","first","ContextProvider","activitiesGetter","registerRequestMethods","onSaveRequested","activityIsOwner","ignoreContexts","cbArgs","usersCbs","requestResult","autoSaveWindowContext","windowContext","activityContext","transformACSLayout","something","convertedValue","LayoutImpl","components","defineProperty","LayoutType","SwimlaneItemType","swTheme","swConfiguration","__createBinding","o","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__exportStar","require$$0","require$$1","require$$2","require$$3","require$$4","LayoutsCommandMethod","LayoutsAPIImpl","isRegisterMethodForLayoutModified","activityGetter","setDefaultGlobal","invokeMethodCore","clearDefaultGlobal","getDefaultGlobal","isSlimMode","l","gotSnapshot","save","verifyNotSlimMode","layoutObject","ignoreInstances","setAsCurrent","invokeMethodAndTrack","activityIdToJoin","closeRunningInstance","closeRunningInstances","closeMe","restoreOptions","activityToJoin","ignoreActivityWindowTypes","reuseExistingWindows","reuseWindows","restoreWorkspacesByReference","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onDefaultGlobalChanged","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","errorHandler","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","selectedDefaultLayout","OnLayoutSelectedDefault","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","selectedDefaultLayouts","LayoutsFactory","acsStream","DisplayManager","callGD","DisplayCommand","GetAll","decorateDisplay","getPrimary","isPrimary","Capture","captureAll","CaptureAll","getMousePosition","GetMousePosition","original","decoratedDisplay","workAreaAsAny","GetByWindowId","onDisplayChanged","myInstanceId","T42_ANNOUNCE_METHOD_NAME","interopLib","loggerAPI","joinNoSelectorSwitch","leaveNoSelectorSwitch","swId","handleRestrictionsChanged","isSupported","channelsToJoin","channelsToLeave","sendLeaveChannel","sendSwitchChannelUI","getRestrictionsByWindow","addOrRemoveChannel","label","getChannelInitInfo","operationMode","validateMode","initialChannel","CONTEXT_PREFIX","LATEST_FDC3_TYPE","BaseSharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","clearContextData","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","fdc3Context","fdc3","MultiSharedContextSubscriber","currentlySubscribedChannels","unsubscribeMap","switchChannel","newChannels","subscribeToChannel","unsubscribeFromChannel","usub","SharedContextSubscriber","validateFdc3Options","contextType","ChannelsImpl","getWindowsAPI","subsKey","changedKey","channelsChangedKey","isInitialJoin","pendingRestrictionCallbacks","getMyChannels","currentChannelID","shared","initial","subscribeForChannelRestrictionsChange","getID","handlerInvoked","markHandlerInvoked","getWrappedSubscribeCallbackWithFdc3Type","getWrappedSubscribeCallback","timeoutIndex","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","channelsToPublish","restrictedChannels","cn","restrictedChannelsErr","validatePathArgs","channelNames","getContextWithFdc3Type","getMy","validateWindowIdArg","joinCore","leaveWhenMulti","leaveWhenSingle","leaveCore","myChannels","onChannelsChanged","changed","verifyChannelExists","getWindowsOnChannel","validateChannelArg","validateWindowsWithChannelsFilter","getChannelsInfo","windowsAPI","er","restrict","restriction","validateRestrictionConfig","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","clearChannelData","changeSelector","newId","raiseChannelsChangedEvents","doesChannelExist","channelExistsPromise","intervalId","channelID","leaveCoreMulti","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","parsedType","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","didReplay","replayed","callbackWithTypesChecks","searchedType","parseDataAndInvokeSubscribeCallback","latestFdc3TypeEncoded","fdc3Data","encodedType","latestTypePropName","latestFDC3Type","channelId","isRestrictions","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","Platform","RESTART_METHOD_NAME","SHUTDOWN_METHOD_NAME","ON_SHUTTING_DOWN_METHOD_NAME","shutdown","registerShutdownMethod","toAPI","getLibConfig","defaultMode","trueMode","getModeAsString","hasHtmlContainer","activitiesDefaultMode","layoutsDefaultMode","layoutsTrueMode","exposeAPI","exposeGlue","Glue42Notification","body","badge","dir","image","lang","renotify","requireInteraction","removeEventListener","dispatchEvent","PanelAPI","onStreamEvent","toggle","panelVisible","Notifications","NotificationsSubscribeStream","NotificationsCounterStream","RaiseNotificationMethodName","NotificationsExecuteMethod","NotificationFilterMethodName","methodsRegistered","NOTIFICATIONS_CONFIGURE_METHOD_NAME","methodNameRoot","notifications","subscribedForNotifications","subscribedCounterStream","subscriptionsCountForNotifications","subscriptionsCountForCounter","_panel","onStreamEventCore","_panelAPI","subscribeInternalEvents","maxActions","panel","raise","notification","createNotification","g42notification","invocationResult","handleNotificationErrorEvent","setFilter","getFilter","enable","enableToasts","toastExpiry","sourceFilter","allowed","blocked","toasts","_e","_f","stackBy","placement","_g","_h","closeNotificationOnClick","statesVersion2","attribute","stringValue","onRaised","onStateChanged","onConfigurationChanged","closeStreamSubscriptionIfNoNeeded","onCounterChanged","subscribeForCounterStream","closeStreamCounterSubscriptionIfNoNeeded","onDataChanged","clearAll","clearOld","clearMany","validateNotificationsArr","click","snooze","snoozeMany","validateState","setStates","importNotifications","notificationsToImport","notificationOptions","notificationSettings","imported","bunchOfPromises","handleNotificationEvent","severity","glueRoutingDetailMethodName","sourceId","publishExtraEvents","clickInterop","handleActions","handleOptions","attributes","dataAsString","panelExpiry","validActions","g42notificationId","g42action","g42interopMethod","g42interopTarget","g42interopArguments","glueAction","displayPath","validStates","sendDeltaOnly","subscriptionForNotifications","handleData","subscriptionForCounter","count","handleOnClosed","handleOnShow","handleItemsData","deltas","handleDeltas","allApplications","dataAttribute","getNotification","gnsNotificationArgs","getGnsNotificationArgs","notificationId","handleNotificationEventCore","handleNotificationActionEvent","notificationActionPayload","handleNotificationClickEvent","onaction","onclick","sourceNotificationId","getBackwardGnsNotificationArgs","ThemesImpl","isSubscribed","getMethodName","getCurrent","select","theme","setMethodName","sharedContextName","getThemesMethodName","setThemesMethodName","connectBrowserAppProps","fdc3v2AppProps","intentDefinitionDecoder","customConfig","v2TypeDecoder","v2DetailsDecoder","v2IconDecoder","src","v2ScreenshotDecoder","v2ListensForIntentDecoder","resultType","v2IntentsDecoder","listensFor","raises","v2UserChannelDecoder","broadcasts","v2AppChannelDecoder","v2InteropDecoder","intents","userChannels","appChannels","glue42ApplicationDetailsDecoder","glue42HostManifestsBrowserDecoder","customProperties","v1DefinitionDecoder","appId","manifest","manifestType","contactEmail","supportEmail","publisher","images","icons","v2LocalizedDefinitionDecoder","screenshots","moreInfo","hostManifests","v2DefinitionDecoder","localizedVersions","allDefinitionsDecoder","parseDecoderErrorToStringMessage","FDC3Service","fdc3ToDesktopDefinitionType","web","native","citrix","onlineNative","toApi","isFdc3Definition","parseToBrowserBaseAppData","parseToDesktopAppConfig","decodeRes","isFdc3","getUserPropertiesFromDefinition","createOptions","getUrl","baseApplicationData","getIntentsFromV2AppDefinition","getIconFromDefinition","definitionVersion","ioConnectDefinition","ioConnect","ioDefinitionDecodeRes","mergeBaseAppDataWithGlueManifest","fdc3v1Definition","fdc3v2Definition","desktopDefinition","mergeDesktopConfigWithGlueManifest","fromEntries","parsedManifest","fdc3Intents","fdc3Intent","intentName","intentData","iconDef","baseAppData","hostManifestDefinition","baseApplicationDefinition","appConfig","decoders$1","common","INTENTS_ERRORS","ioc","_fdc3","_decoders","_errors","GLUE42_FDC3_INTENTS_METHOD_PREFIX","INTENT_HANDLER_DEFAULT_PROPS","DEFAULT_RAISE_TIMEOUT_MS","ERRORS","PromiseWrap","promiseActive","validateHandlerFilter","handlerFilter","openResolver","intent","contextTypes","applicationNames","excludeList","ctx","excludeListValidation","isExcludeListValid","validateResolverResponse","responseObj","isValid","userSettings","preserveChoice","compulsoryKeysExist","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","addedHandlerInfoPerApp","checkIfIntentsResolverIsEnabled","intentFilter","ctToLower","ct","resultTypeToLower","intentRequest","removeRememberedHandler","resolverInstance","resultFromRememberedHandler","checkHandleRaiseWithRememberedHandler","coreRaiseIntentFn","coreRaiseIntent","TIMEOUT_HIT","handleRaiseOnError","withIntentsInfo","appsWithIntents","intentDef","applicationTitle","applicationDescription","applicationIcon","serverWindowIds","serverWindowId","T42WndGetInfo","windowsInfos","windowsIdToTitle","constructIntentHandler","addIntentListener","registerPromise","intentFlag","validateAddIntentListenerRequest","buildInteropMethodName","unsubscribeIntent","filterHandlers","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","instanceTitle","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","getMyAppName","onHandlerAdded","unAppAdded","appDef","constructIntentHandlerFromApp","unServerMethodAdded","intentsInfo","onHandlerRemoved","unAppRemoved","addedHandlerInfo","filteredIntentsWithHandlers","excludeIntentHandlers","exclusion","resolverConfig","INTENT_NOT_FOUND","checkIfResolverShouldBeOpenedForRaise","raiseIntent","resolverHandler","raiseIntentToTargetHandler","registeredIntent","firstFoundAppHandler","findHandlerByFilter","firstFoundInstanceHandler","instanceIdPromise","invokeStartApp","reasonMsg","TARGET_INSTANCE_UNAVAILABLE","invokeOptions","INTENT_HANDLER_REJECTION","intentsResolverAppName","responseMethodName","registerIntentResolverMethod","startContext","buildStartContext","startOptions","buildStartOptions","definitionOverride","subscribeOnInstanceStopped","createResponsePromise","handleInstanceResponse","initialCaller","windowsInfo","subMessage","stopResolverInstance","saveUserChoice","resolverResponseHandler","validResponse","cleanUpIntentResolverPromise","myAppName","myAppTitle","baseStartContext","resolverApi","getResolverStartupTopBound","minWorkareaHeight","startedByIntentAPI","intentPromise","gdWin","isInitialized","enableIntentsResolverUI","intentsResolverResponseTimeout","checkOpen","checkIfIntentsResolverShouldBeOpened","checkIfIntentHasMoreThanOneHandler","removeSingletons","searchedAppName","isSingleton","currentHandlers","clearUnregistrationPromise","promiseToRemove","unregisterPromise","validIntentsWithInfo","currentHandler","intentWithInfo","prefs","intentPrefs","updatedPrefs","checkForRememberedHandler","prefsForIntent","rememberedHandler","waitResponseTimeout","prevPrefs","prevIntentsPrefs","prefsToUpdate","appWithIntents","appIntent","appDefIntent","Prefs","interopMethodRegistered","verifyApp","T42GetPrefsMethodName","verifyDataObject","verifyOptions","T42SetPrefsMethodName","setFor","updateFor","clearFor","verifyCallback","unsubscribeFn","registerInteropIfNeeded","T42UpdatePrefsMethodName","Cookies","cookies","cookie","verifyCookieObject","secure","httpOnly","expirationDate","EventsDispatcher","glue42EventName","notifyStarted","handleNotifyStarted","requestGlue","handleRequestGlue","getAnnounceInfo","wireCustomEventListener","announceStarted","detail","glue42","glue42Event","foundHandler","CustomEvent","typedPerformance","delayForever","OperationsToCommandNameMap","Interception","InterceptorMethodName","InterceptorHandlerMethodName","interceptions","validateInterceptions","registerMethodIfNotRegistered","interception","handleInterception","operationArgs","phase","createProxyObject","apiToIntercept","OperationsPerDomain","Proxy","propertyKey","receiver","Reflect","shouldIntercept","isAwaitable","interceptMethod","originalMethod","beforeInterceptionResult","operationResult","afterInterceptionResult","whenRegisteredPromise","interceptorEntry","validateTypeString","isValidType","MyImpl","initialize","Domain","AppsCommandMethodName","AppsEventMethodName","invokeAppsCommand","subscribeToAppsEventWithLogging","decorator","subscribeAppsEvent","InMemoryStoreImpl","definitions","cause","names","invalidEntries","trim","sampleNames","displayNames","AppRegistryImpl","_inMemory","subscribeToEvent","getMany","onUpdated","AppsErrorHints","APP_NOT_FOUND","possibleCauses","solutions","INVALID_INSTANCE_ID","INSTANCE_NOT_FOUND","INVALID_APP_CONFIG","AppsError","hint","defaultMessage","getHint","appNotFound","instanceNotFound","invalidInstanceId","invalidAppConfig","InstanceManagerImpl","subscribeToAppsEvent","buildInstanceObject","waitForReady","onStarted","enhancedInstance","AppsController","setAppManager","setApps","_j","_k","ensureInitialized","includeDefinition","oldInstance","startedAt","withAppDefinition","defin","callWithErrorGuard","getInstance","callInfo","initialized","addCall","g","firstRun","factoryCore","_displays","_channels","_prefs","_interceptors","_platform","_browserEventsDispatcher","getLibLogger","newLogger","loggerConfig","core","windowsLogger","debugLog","activityLogger","resolveCallback","rejectCallback","AppsFactory","layoutsConfig","lay","channelsReadyPromise","sharedContexts","hotkeysAPI","displaysLogger","intentsAPI","proxyIntentsAPI","notificationsAPI","themesAPI","themes","currentLog","glueFactoryLog","glueApi","CoreFactory","libraries","calls","whatToExpose","CreateGlue","shouldSetToWindow","autoInjected","IODesktop","Glue","IOBrowser","GlueCore"],"mappings":"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","x_google_ignoreList":[0,22,26,75]}
|