@interopio/desktop 6.10.0 → 6.10.1

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.
@@ -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/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/utils.ts","../../../node_modules/nanoid/non-secure/index.js","../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/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","../src/layouts/layouts.ts","../src/layouts/stream/acsStream.ts","../src/layouts/main.ts","../src/displays/displayManager.ts","../src/channels/channelIDUtils.ts","../src/channels/agm.ts","../src/channels/contexts.ts","../src/channels/channels.ts","../src/channels/helpers.ts","../src/channels/main.ts","../src/hotkeys/hotkeys.ts","../src/config.ts","../src/notifications/notification.ts","../src/notifications/panel.ts","../src/notifications/main.ts","../src/themes/themes.ts","../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","../../core/src/utils/pw.js","../src/interception/main.ts","../src/glue.ts","../src/factoryCallInfo.ts","../src/hotkeys/main.ts","../src/themes/main.ts","../src/cookies/main.ts","../src/index.ts"],"sourcesContent":["var MetricTypes = {\r\n STRING: 1,\r\n NUMBER: 2,\r\n TIMESTAMP: 3,\r\n OBJECT: 4\r\n};\n\nfunction getMetricTypeByValue(metric) {\r\n if (metric.type === MetricTypes.TIMESTAMP) {\r\n return \"timestamp\";\r\n }\r\n else if (metric.type === MetricTypes.NUMBER) {\r\n return \"number\";\r\n }\r\n else if (metric.type === MetricTypes.STRING) {\r\n return \"string\";\r\n }\r\n else if (metric.type === MetricTypes.OBJECT) {\r\n return \"object\";\r\n }\r\n return \"unknown\";\r\n}\r\nfunction getTypeByValue(value) {\r\n if (value.constructor === Date) {\r\n return \"timestamp\";\r\n }\r\n else if (typeof value === \"number\") {\r\n return \"number\";\r\n }\r\n else if (typeof value === \"string\") {\r\n return \"string\";\r\n }\r\n else if (typeof value === \"object\") {\r\n return \"object\";\r\n }\r\n else {\r\n return \"string\";\r\n }\r\n}\r\nfunction serializeMetric(metric) {\r\n const serializedMetrics = {};\r\n const type = getMetricTypeByValue(metric);\r\n if (type === \"object\") {\r\n const values = Object.keys(metric.value).reduce((memo, key) => {\r\n const innerType = getTypeByValue(metric.value[key]);\r\n if (innerType === \"object\") {\r\n const composite = defineNestedComposite(metric.value[key]);\r\n memo[key] = {\r\n type: \"object\",\r\n description: \"\",\r\n context: {},\r\n composite,\r\n };\r\n }\r\n else {\r\n memo[key] = {\r\n type: innerType,\r\n description: \"\",\r\n context: {},\r\n };\r\n }\r\n return memo;\r\n }, {});\r\n serializedMetrics.composite = values;\r\n }\r\n serializedMetrics.name = normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name);\r\n serializedMetrics.type = type;\r\n serializedMetrics.description = metric.description;\r\n serializedMetrics.context = {};\r\n return serializedMetrics;\r\n}\r\nfunction defineNestedComposite(values) {\r\n return Object.keys(values).reduce((memo, key) => {\r\n const type = getTypeByValue(values[key]);\r\n if (type === \"object\") {\r\n memo[key] = {\r\n type: \"object\",\r\n description: \"\",\r\n context: {},\r\n composite: defineNestedComposite(values[key]),\r\n };\r\n }\r\n else {\r\n memo[key] = {\r\n type,\r\n description: \"\",\r\n context: {},\r\n };\r\n }\r\n return memo;\r\n }, {});\r\n}\r\nfunction normalizeMetricName(name) {\r\n if (typeof name !== \"undefined\" && name.length > 0 && name[0] !== \"/\") {\r\n return \"/\" + name;\r\n }\r\n else {\r\n return name;\r\n }\r\n}\r\nfunction getMetricValueByType(metric) {\r\n const type = getMetricTypeByValue(metric);\r\n if (type === \"timestamp\") {\r\n return Date.now();\r\n }\r\n else {\r\n return publishNestedComposite(metric.value);\r\n }\r\n}\r\nfunction publishNestedComposite(values) {\r\n if (typeof values !== \"object\") {\r\n return values;\r\n }\r\n return Object.keys(values).reduce((memo, key) => {\r\n const value = values[key];\r\n if (typeof value === \"object\" && value.constructor !== Date) {\r\n memo[key] = publishNestedComposite(value);\r\n }\r\n else if (value.constructor === Date) {\r\n memo[key] = new Date(value).getTime();\r\n }\r\n else if (value.constructor === Boolean) {\r\n memo[key] = value.toString();\r\n }\r\n else {\r\n memo[key] = value;\r\n }\r\n return memo;\r\n }, {});\r\n}\r\nfunction flatten(arr) {\r\n return arr.reduce((flat, toFlatten) => {\r\n return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);\r\n }, []);\r\n}\r\nfunction getHighestState(arr) {\r\n return arr.sort((a, b) => {\r\n if (!a.state) {\r\n return 1;\r\n }\r\n if (!b.state) {\r\n return -1;\r\n }\r\n return b.state - a.state;\r\n })[0];\r\n}\r\nfunction aggregateDescription(arr) {\r\n let msg = \"\";\r\n arr.forEach((m, idx, a) => {\r\n const path = m.path.join(\".\");\r\n if (idx === a.length - 1) {\r\n msg += path + \".\" + m.name + \": \" + m.description;\r\n }\r\n else {\r\n msg += path + \".\" + m.name + \": \" + m.description + \",\";\r\n }\r\n });\r\n if (msg.length > 100) {\r\n return msg.slice(0, 100) + \"...\";\r\n }\r\n else {\r\n return msg;\r\n }\r\n}\r\nfunction composeMsgForRootStateMetric(system) {\r\n const aggregatedState = system.root.getAggregateState();\r\n const merged = flatten(aggregatedState);\r\n const highestState = getHighestState(merged);\r\n const aggregateDesc = aggregateDescription(merged);\r\n return {\r\n description: aggregateDesc,\r\n value: highestState.state,\r\n };\r\n}\n\nfunction gw3 (connection, config) {\r\n if (!connection || typeof connection !== \"object\") {\r\n throw new Error(\"Connection is required parameter\");\r\n }\r\n let joinPromise;\r\n let session;\r\n const init = (repo) => {\r\n let resolveReadyPromise;\r\n joinPromise = new Promise((resolve) => {\r\n resolveReadyPromise = resolve;\r\n });\r\n session = connection.domain(\"metrics\");\r\n session.onJoined((reconnect) => {\r\n if (!reconnect && resolveReadyPromise) {\r\n resolveReadyPromise();\r\n resolveReadyPromise = undefined;\r\n }\r\n const rootStateMetric = {\r\n name: \"/State\",\r\n type: \"object\",\r\n composite: {\r\n Description: {\r\n type: \"string\",\r\n description: \"\",\r\n },\r\n Value: {\r\n type: \"number\",\r\n description: \"\",\r\n },\r\n },\r\n description: \"System state\",\r\n context: {},\r\n };\r\n const defineRootMetricsMsg = {\r\n type: \"define\",\r\n metrics: [rootStateMetric],\r\n };\r\n session.send(defineRootMetricsMsg);\r\n if (reconnect) {\r\n replayRepo(repo);\r\n }\r\n });\r\n session.join({\r\n system: config.system,\r\n service: config.service,\r\n instance: config.instance\r\n });\r\n };\r\n const replayRepo = (repo) => {\r\n replaySystem(repo.root);\r\n };\r\n const replaySystem = (system) => {\r\n createSystem(system);\r\n system.metrics.forEach((m) => {\r\n createMetric(m);\r\n });\r\n system.subSystems.forEach((ss) => {\r\n replaySystem(ss);\r\n });\r\n };\r\n const createSystem = async (system) => {\r\n if (system.parent === undefined) {\r\n return;\r\n }\r\n await joinPromise;\r\n const metric = {\r\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\r\n type: \"object\",\r\n composite: {\r\n Description: {\r\n type: \"string\",\r\n description: \"\",\r\n },\r\n Value: {\r\n type: \"number\",\r\n description: \"\",\r\n },\r\n },\r\n description: \"System state\",\r\n context: {},\r\n };\r\n const createMetricsMsg = {\r\n type: \"define\",\r\n metrics: [metric],\r\n };\r\n session.send(createMetricsMsg);\r\n };\r\n const updateSystem = async (system, state) => {\r\n await joinPromise;\r\n const shadowedUpdateMetric = {\r\n type: \"publish\",\r\n values: [{\r\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\r\n value: {\r\n Description: state.description,\r\n Value: state.state,\r\n },\r\n timestamp: Date.now(),\r\n }],\r\n };\r\n session.send(shadowedUpdateMetric);\r\n const stateObj = composeMsgForRootStateMetric(system);\r\n const rootMetric = {\r\n type: \"publish\",\r\n peer_id: connection.peerId,\r\n values: [{\r\n name: \"/State\",\r\n value: {\r\n Description: stateObj.description,\r\n Value: stateObj.value,\r\n },\r\n timestamp: Date.now(),\r\n }],\r\n };\r\n session.send(rootMetric);\r\n };\r\n const createMetric = async (metric) => {\r\n const metricClone = cloneMetric(metric);\r\n await joinPromise;\r\n const m = serializeMetric(metricClone);\r\n const createMetricsMsg = {\r\n type: \"define\",\r\n metrics: [m],\r\n };\r\n session.send(createMetricsMsg);\r\n if (typeof metricClone.value !== \"undefined\") {\r\n updateMetricCore(metricClone);\r\n }\r\n };\r\n const updateMetric = async (metric) => {\r\n const metricClone = cloneMetric(metric);\r\n await joinPromise;\r\n updateMetricCore(metricClone);\r\n };\r\n const updateMetricCore = (metric) => {\r\n if (canUpdate()) {\r\n const value = getMetricValueByType(metric);\r\n const publishMetricsMsg = {\r\n type: \"publish\",\r\n values: [{\r\n name: normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name),\r\n value,\r\n timestamp: Date.now(),\r\n }],\r\n };\r\n return session.sendFireAndForget(publishMetricsMsg);\r\n }\r\n return Promise.resolve();\r\n };\r\n const cloneMetric = (metric) => {\r\n const metricClone = { ...metric };\r\n if (typeof metric.value === \"object\" && metric.value !== null) {\r\n metricClone.value = { ...metric.value };\r\n }\r\n return metricClone;\r\n };\r\n const canUpdate = () => {\r\n try {\r\n const func = config.canUpdateMetric ?? (() => true);\r\n return func();\r\n }\r\n catch {\r\n return true;\r\n }\r\n };\r\n return {\r\n init,\r\n createSystem,\r\n updateSystem,\r\n createMetric,\r\n updateMetric,\r\n };\r\n}\n\nvar Helpers = {\r\n validate: (definition, parent, transport) => {\r\n if (definition === null || typeof definition !== \"object\") {\r\n throw new Error(\"Missing definition\");\r\n }\r\n if (parent === null || typeof parent !== \"object\") {\r\n throw new Error(\"Missing parent\");\r\n }\r\n if (transport === null || typeof transport !== \"object\") {\r\n throw new Error(\"Missing transport\");\r\n }\r\n },\r\n};\n\nclass BaseMetric {\r\n definition;\r\n system;\r\n transport;\r\n value;\r\n type;\r\n path = [];\r\n name;\r\n description;\r\n get repo() {\r\n return this.system?.repo;\r\n }\r\n get id() { return `${this.system.path}/${name}`; }\r\n constructor(definition, system, transport, value, type) {\r\n this.definition = definition;\r\n this.system = system;\r\n this.transport = transport;\r\n this.value = value;\r\n this.type = type;\r\n Helpers.validate(definition, system, transport);\r\n this.path = system.path.slice(0);\r\n this.path.push(system.name);\r\n this.name = definition.name;\r\n this.description = definition.description;\r\n transport.createMetric(this);\r\n }\r\n update(newValue) {\r\n this.value = newValue;\r\n return this.transport.updateMetric(this);\r\n }\r\n}\n\nclass NumberMetric extends BaseMetric {\r\n constructor(definition, system, transport, value) {\r\n super(definition, system, transport, value, MetricTypes.NUMBER);\r\n }\r\n incrementBy(num) {\r\n this.update(this.value + num);\r\n }\r\n increment() {\r\n this.incrementBy(1);\r\n }\r\n decrement() {\r\n this.incrementBy(-1);\r\n }\r\n decrementBy(num) {\r\n this.incrementBy(num * -1);\r\n }\r\n}\n\nclass ObjectMetric extends BaseMetric {\r\n constructor(definition, system, transport, value) {\r\n super(definition, system, transport, value, MetricTypes.OBJECT);\r\n }\r\n update(newValue) {\r\n this.mergeValues(newValue);\r\n return this.transport.updateMetric(this);\r\n }\r\n mergeValues(values) {\r\n return Object.keys(this.value).forEach((k) => {\r\n if (typeof values[k] !== \"undefined\") {\r\n this.value[k] = values[k];\r\n }\r\n });\r\n }\r\n}\n\nclass StringMetric extends BaseMetric {\r\n constructor(definition, system, transport, value) {\r\n super(definition, system, transport, value, MetricTypes.STRING);\r\n }\r\n}\n\nclass TimestampMetric extends BaseMetric {\r\n constructor(definition, system, transport, value) {\r\n super(definition, system, transport, value, MetricTypes.TIMESTAMP);\r\n }\r\n now() {\r\n this.update(new Date());\r\n }\r\n}\n\nfunction system(name, repo, protocol, parent, description) {\r\n if (!repo) {\r\n throw new Error(\"Repository is required\");\r\n }\r\n if (!protocol) {\r\n throw new Error(\"Transport is required\");\r\n }\r\n const _transport = protocol;\r\n const _name = name;\r\n const _description = description || \"\";\r\n const _repo = repo;\r\n const _parent = parent;\r\n const _path = _buildPath(parent);\r\n let _state = {};\r\n const id = _arrayToString(_path, \"/\") + name;\r\n const root = repo.root;\r\n const _subSystems = [];\r\n const _metrics = [];\r\n function subSystem(nameSystem, descriptionSystem) {\r\n if (!nameSystem || nameSystem.length === 0) {\r\n throw new Error(\"name is required\");\r\n }\r\n const match = _subSystems.filter((s) => s.name === nameSystem);\r\n if (match.length > 0) {\r\n return match[0];\r\n }\r\n const _system = system(nameSystem, _repo, _transport, me, descriptionSystem);\r\n _subSystems.push(_system);\r\n return _system;\r\n }\r\n function setState(state, stateDescription) {\r\n _state = { state, description: stateDescription };\r\n _transport.updateSystem(me, _state);\r\n }\r\n function stringMetric(definition, value) {\r\n return _getOrCreateMetric(definition, MetricTypes.STRING, value, (metricDef) => new StringMetric(metricDef, me, _transport, value));\r\n }\r\n function numberMetric(definition, value) {\r\n return _getOrCreateMetric(definition, MetricTypes.NUMBER, value, (metricDef) => new NumberMetric(metricDef, me, _transport, value));\r\n }\r\n function objectMetric(definition, value) {\r\n return _getOrCreateMetric(definition, MetricTypes.OBJECT, value, (metricDef) => new ObjectMetric(metricDef, me, _transport, value));\r\n }\r\n function timestampMetric(definition, value) {\r\n return _getOrCreateMetric(definition, MetricTypes.TIMESTAMP, value, (metricDef) => new TimestampMetric(metricDef, me, _transport, value));\r\n }\r\n function _getOrCreateMetric(metricObject, expectedType, value, createMetric) {\r\n let metricDef = { name: \"\" };\r\n if (typeof metricObject === \"string\") {\r\n metricDef = { name: metricObject };\r\n }\r\n else {\r\n metricDef = metricObject;\r\n }\r\n const matching = _metrics.filter((shadowedMetric) => shadowedMetric.name === metricDef.name);\r\n if (matching.length > 0) {\r\n const existing = matching[0];\r\n if (existing.type !== expectedType) {\r\n throw new Error(`A metric named ${metricDef.name} is already defined with different type.`);\r\n }\r\n if (typeof value !== \"undefined\") {\r\n existing\r\n .update(value)\r\n .catch(() => { });\r\n }\r\n return existing;\r\n }\r\n const metric = createMetric(metricDef);\r\n _metrics.push(metric);\r\n return metric;\r\n }\r\n function _buildPath(shadowedSystem) {\r\n if (!shadowedSystem || !shadowedSystem.parent) {\r\n return [];\r\n }\r\n const path = _buildPath(shadowedSystem.parent);\r\n path.push(shadowedSystem.name);\r\n return path;\r\n }\r\n function _arrayToString(path, separator) {\r\n return ((path && path.length > 0) ? path.join(separator) : \"\");\r\n }\r\n function getAggregateState() {\r\n const aggState = [];\r\n if (Object.keys(_state).length > 0) {\r\n aggState.push({\r\n name: _name,\r\n path: _path,\r\n state: _state.state,\r\n description: _state.description,\r\n });\r\n }\r\n _subSystems.forEach((shadowedSubSystem) => {\r\n const result = shadowedSubSystem.getAggregateState();\r\n if (result.length > 0) {\r\n aggState.push(...result);\r\n }\r\n });\r\n return aggState;\r\n }\r\n const me = {\r\n get name() {\r\n return _name;\r\n },\r\n get description() {\r\n return _description;\r\n },\r\n get repo() {\r\n return _repo;\r\n },\r\n get parent() {\r\n return _parent;\r\n },\r\n path: _path,\r\n id,\r\n root,\r\n get subSystems() {\r\n return _subSystems;\r\n },\r\n get metrics() {\r\n return _metrics;\r\n },\r\n subSystem,\r\n getState: () => {\r\n return _state;\r\n },\r\n setState,\r\n stringMetric,\r\n timestampMetric,\r\n objectMetric,\r\n numberMetric,\r\n getAggregateState,\r\n };\r\n _transport.createSystem(me);\r\n return me;\r\n}\n\nclass Repository {\r\n root;\r\n constructor(options, protocol) {\r\n protocol.init(this);\r\n this.root = system(\"\", this, protocol);\r\n this.addSystemMetrics(this.root, options.clickStream || options.clickStream === undefined);\r\n }\r\n addSystemMetrics(rootSystem, useClickStream) {\r\n if (typeof navigator !== \"undefined\") {\r\n rootSystem.stringMetric(\"UserAgent\", navigator.userAgent);\r\n }\r\n if (useClickStream && typeof document !== \"undefined\") {\r\n const clickStream = rootSystem.subSystem(\"ClickStream\");\r\n const documentClickHandler = (e) => {\r\n if (!e.target) {\r\n return;\r\n }\r\n const target = e.target;\r\n const className = target ? target.getAttribute(\"class\") ?? \"\" : \"\";\r\n clickStream.objectMetric(\"LastBrowserEvent\", {\r\n type: \"click\",\r\n timestamp: new Date(),\r\n target: {\r\n className,\r\n id: target.id,\r\n type: \"<\" + target.tagName.toLowerCase() + \">\",\r\n href: target.href || \"\",\r\n },\r\n });\r\n };\r\n clickStream.objectMetric(\"Page\", {\r\n title: document.title,\r\n page: window.location.href,\r\n });\r\n if (document.addEventListener) {\r\n document.addEventListener(\"click\", documentClickHandler);\r\n }\r\n else {\r\n document.attachEvent(\"onclick\", documentClickHandler);\r\n }\r\n }\r\n rootSystem.stringMetric(\"StartTime\", (new Date()).toString());\r\n const urlMetric = rootSystem.stringMetric(\"StartURL\", \"\");\r\n const appNameMetric = rootSystem.stringMetric(\"AppName\", \"\");\r\n if (typeof window !== \"undefined\") {\r\n if (typeof window.location !== \"undefined\") {\r\n const startUrl = window.location.href;\r\n urlMetric.update(startUrl);\r\n }\r\n if (typeof window.glue42gd !== \"undefined\") {\r\n appNameMetric.update(window.glue42gd.appName);\r\n }\r\n }\r\n }\r\n}\n\nclass NullProtocol {\r\n init(repo) {\r\n }\r\n createSystem(system) {\r\n return Promise.resolve();\r\n }\r\n updateSystem(metric, state) {\r\n return Promise.resolve();\r\n }\r\n createMetric(metric) {\r\n return Promise.resolve();\r\n }\r\n updateMetric(metric) {\r\n return Promise.resolve();\r\n }\r\n}\n\nclass PerfTracker {\r\n api;\r\n lastCount = 0;\r\n initialPublishTimeout = 10 * 1000;\r\n publishInterval = 60 * 1000;\r\n system;\r\n constructor(api, initialPublishTimeout, publishInterval) {\r\n this.api = api;\r\n this.initialPublishTimeout = initialPublishTimeout ?? this.initialPublishTimeout;\r\n this.publishInterval = publishInterval ?? this.publishInterval;\r\n this.scheduleCollection();\r\n this.system = this.api.subSystem(\"performance\", \"Performance data published by the web application\");\r\n }\r\n scheduleCollection() {\r\n setTimeout(() => {\r\n this.collect();\r\n setInterval(() => {\r\n this.collect();\r\n }, this.publishInterval);\r\n }, this.initialPublishTimeout);\r\n }\r\n collect() {\r\n try {\r\n this.collectMemory();\r\n this.collectEntries();\r\n }\r\n catch {\r\n }\r\n }\r\n collectMemory() {\r\n const memory = window.performance.memory;\r\n this.system.stringMetric(\"memory\", JSON.stringify({\r\n totalJSHeapSize: memory.totalJSHeapSize,\r\n usedJSHeapSize: memory.usedJSHeapSize\r\n }));\r\n }\r\n collectEntries() {\r\n const allEntries = window.performance.getEntries();\r\n if (allEntries.length <= this.lastCount) {\r\n return;\r\n }\r\n this.lastCount = allEntries.length;\r\n const jsonfiedEntries = allEntries.map((i) => i.toJSON());\r\n this.system.stringMetric(\"entries\", JSON.stringify(jsonfiedEntries));\r\n }\r\n}\n\nvar metrics = (options) => {\r\n let protocol;\r\n if (!options.connection || typeof options.connection !== \"object\") {\r\n protocol = new NullProtocol();\r\n }\r\n else {\r\n protocol = gw3(options.connection, options);\r\n }\r\n const repo = new Repository(options, protocol);\r\n let rootSystem = repo.root;\r\n if (!options.disableAutoAppSystem) {\r\n rootSystem = rootSystem.subSystem(\"App\");\r\n }\r\n const api = addFAVSupport(rootSystem);\r\n initPerf(api, options.pagePerformanceMetrics);\r\n return api;\r\n};\r\nfunction initPerf(api, config) {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n const perfConfig = window?.glue42gd?.metrics?.pagePerformanceMetrics;\r\n if (perfConfig) {\r\n config = perfConfig;\r\n }\r\n if (config?.enabled) {\r\n new PerfTracker(api, config.initialPublishTimeout, config.publishInterval);\r\n }\r\n}\r\nfunction addFAVSupport(system) {\r\n const reportingSystem = system.subSystem(\"reporting\");\r\n const def = {\r\n name: \"features\"\r\n };\r\n let featureMetric;\r\n const featureMetricFunc = (name, action, payload) => {\r\n if (typeof name === \"undefined\" || name === \"\") {\r\n throw new Error(\"name is mandatory\");\r\n }\r\n else if (typeof action === \"undefined\" || action === \"\") {\r\n throw new Error(\"action is mandatory\");\r\n }\r\n else if (typeof payload === \"undefined\" || payload === \"\") {\r\n throw new Error(\"payload is mandatory\");\r\n }\r\n if (!featureMetric) {\r\n featureMetric = reportingSystem.objectMetric(def, { name, action, payload });\r\n }\r\n else {\r\n featureMetric.update({\r\n name,\r\n action,\r\n payload\r\n });\r\n }\r\n };\r\n system.featureMetric = featureMetricFunc;\r\n return system;\r\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 {\r\n gw;\r\n registry = CallbackRegistryFactory();\r\n client;\r\n constructor(settings, logger) {\r\n this.gw = settings.facade;\r\n this.gw.connect((_client, message) => {\r\n this.messageHandler(message);\r\n }).then((client) => {\r\n this.client = client;\r\n });\r\n }\r\n get isObjectBasedTransport() {\r\n return true;\r\n }\r\n sendObject(msg) {\r\n if (this.client) {\r\n this.client.send(msg);\r\n return Promise.resolve(undefined);\r\n }\r\n else {\r\n return Promise.reject(`not connected`);\r\n }\r\n }\r\n send(_msg) {\r\n return Promise.reject(\"not supported\");\r\n }\r\n onMessage(callback) {\r\n return this.registry.add(\"onMessage\", callback);\r\n }\r\n onConnectedChanged(callback) {\r\n callback(true);\r\n return () => { };\r\n }\r\n close() {\r\n return Promise.resolve();\r\n }\r\n open() {\r\n return Promise.resolve();\r\n }\r\n name() {\r\n return \"in-memory\";\r\n }\r\n reconnect() {\r\n return Promise.resolve();\r\n }\r\n messageHandler(msg) {\r\n this.registry.execute(\"onMessage\", msg);\r\n }\r\n}\n\nclass SharedWorkerTransport {\r\n logger;\r\n worker;\r\n registry = CallbackRegistryFactory();\r\n constructor(workerFile, logger) {\r\n this.logger = logger;\r\n this.worker = new SharedWorker(workerFile);\r\n this.worker.port.onmessage = (e) => {\r\n this.messageHandler(e.data);\r\n };\r\n }\r\n get isObjectBasedTransport() {\r\n return true;\r\n }\r\n sendObject(msg) {\r\n this.worker.port.postMessage(msg);\r\n return Promise.resolve();\r\n }\r\n send(_msg) {\r\n return Promise.reject(\"not supported\");\r\n }\r\n onMessage(callback) {\r\n return this.registry.add(\"onMessage\", callback);\r\n }\r\n onConnectedChanged(callback) {\r\n callback(true);\r\n return () => { };\r\n }\r\n close() {\r\n return Promise.resolve();\r\n }\r\n open() {\r\n return Promise.resolve();\r\n }\r\n name() {\r\n return \"shared-worker\";\r\n }\r\n reconnect() {\r\n return Promise.resolve();\r\n }\r\n messageHandler(msg) {\r\n this.registry.execute(\"onMessage\", msg);\r\n }\r\n}\n\nclass Utils {\r\n static isNode() {\r\n if (typeof Utils._isNode !== \"undefined\") {\r\n return Utils._isNode;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n Utils._isNode = false;\r\n return false;\r\n }\r\n try {\r\n Utils._isNode = Object.prototype.toString.call(global.process) === \"[object process]\";\r\n }\r\n catch (e) {\r\n Utils._isNode = false;\r\n }\r\n return Utils._isNode;\r\n }\r\n static _isNode;\r\n}\n\nclass PromiseWrapper {\r\n static delay(time) {\r\n return new Promise((resolve) => setTimeout(resolve, time));\r\n }\r\n resolve;\r\n reject;\r\n promise;\r\n rejected = false;\r\n resolved = false;\r\n get ended() {\r\n return this.rejected || this.resolved;\r\n }\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = (t) => {\r\n this.resolved = true;\r\n resolve(t);\r\n };\r\n this.reject = (err) => {\r\n this.rejected = true;\r\n reject(err);\r\n };\r\n });\r\n }\r\n}\n\nconst timers = {};\r\nfunction getAllTimers() {\r\n return timers;\r\n}\r\nfunction timer (timerName) {\r\n const existing = timers[timerName];\r\n if (existing) {\r\n return existing;\r\n }\r\n const marks = [];\r\n function now() {\r\n return new Date().getTime();\r\n }\r\n const startTime = now();\r\n mark(\"start\", startTime);\r\n let endTime;\r\n let period;\r\n function stop() {\r\n endTime = now();\r\n mark(\"end\", endTime);\r\n period = endTime - startTime;\r\n return period;\r\n }\r\n function mark(name, time) {\r\n const currentTime = time ?? now();\r\n let diff = 0;\r\n if (marks.length > 0) {\r\n diff = currentTime - marks[marks.length - 1].time;\r\n }\r\n marks.push({ name, time: currentTime, diff });\r\n }\r\n const timerObj = {\r\n get startTime() {\r\n return startTime;\r\n },\r\n get endTime() {\r\n return endTime;\r\n },\r\n get period() {\r\n return period;\r\n },\r\n stop,\r\n mark,\r\n marks\r\n };\r\n timers[timerName] = timerObj;\r\n return timerObj;\r\n}\n\nconst WebSocketConstructor = Utils.isNode() ? require(\"ws\") : window.WebSocket;\r\nclass WS {\r\n ws;\r\n logger;\r\n settings;\r\n startupTimer = timer(\"connection\");\r\n _running = true;\r\n _registry = CallbackRegistryFactory();\r\n wsRequests = [];\r\n constructor(settings, logger) {\r\n this.settings = settings;\r\n this.logger = logger;\r\n if (!this.settings.ws) {\r\n throw new Error(\"ws is missing\");\r\n }\r\n }\r\n onMessage(callback) {\r\n return this._registry.add(\"onMessage\", callback);\r\n }\r\n send(msg, options) {\r\n return new Promise((resolve, reject) => {\r\n this.waitForSocketConnection(() => {\r\n try {\r\n this.ws?.send(msg);\r\n resolve();\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n }, reject);\r\n });\r\n }\r\n open() {\r\n this.logger.info(\"opening ws...\");\r\n this._running = true;\r\n return new Promise((resolve, reject) => {\r\n this.waitForSocketConnection(resolve, reject);\r\n });\r\n }\r\n close() {\r\n this._running = false;\r\n if (this.ws) {\r\n this.ws.close();\r\n }\r\n return Promise.resolve();\r\n }\r\n onConnectedChanged(callback) {\r\n return this._registry.add(\"onConnectedChanged\", callback);\r\n }\r\n name() {\r\n return this.settings.ws;\r\n }\r\n reconnect() {\r\n this.ws?.close();\r\n const pw = new PromiseWrapper();\r\n this.waitForSocketConnection(() => {\r\n pw.resolve();\r\n });\r\n return pw.promise;\r\n }\r\n waitForSocketConnection(callback, failed) {\r\n failed = failed ?? (() => { });\r\n if (!this._running) {\r\n failed(`wait for socket on ${this.settings.ws} failed - socket closed by user`);\r\n return;\r\n }\r\n if (this.ws?.readyState === 1) {\r\n callback();\r\n return;\r\n }\r\n this.wsRequests.push({ callback, failed });\r\n if (this.wsRequests.length > 1) {\r\n return;\r\n }\r\n this.openSocket();\r\n }\r\n async openSocket(retryInterval, retriesLeft) {\r\n this.logger.info(`opening ws to ${this.settings.ws}, retryInterval: ${retryInterval}, retriesLeft: ${retriesLeft}...`);\r\n this.startupTimer.mark(\"opening-socket\");\r\n if (retryInterval === undefined) {\r\n retryInterval = this.settings.reconnectInterval;\r\n }\r\n if (typeof retriesLeft === \"undefined\") {\r\n retriesLeft = this.settings.reconnectAttempts;\r\n }\r\n if (retriesLeft !== undefined) {\r\n if (retriesLeft === 0) {\r\n this.notifyForSocketState(`wait for socket on ${this.settings.ws} failed - no more retries left`);\r\n return;\r\n }\r\n this.logger.debug(`will retry ${retriesLeft} more times (every ${retryInterval} ms)`);\r\n }\r\n try {\r\n await this.initiateSocket();\r\n this.startupTimer.mark(\"socket-initiated\");\r\n this.notifyForSocketState();\r\n }\r\n catch {\r\n setTimeout(() => {\r\n const retries = retriesLeft === undefined ? undefined : retriesLeft - 1;\r\n this.openSocket(retryInterval, retries);\r\n }, retryInterval);\r\n }\r\n }\r\n initiateSocket() {\r\n const pw = new PromiseWrapper();\r\n this.logger.debug(`initiating ws to ${this.settings.ws}...`);\r\n this.ws = new WebSocketConstructor(this.settings.ws ?? \"\");\r\n this.ws.onerror = (err) => {\r\n let reason = \"\";\r\n try {\r\n reason = JSON.stringify(err);\r\n }\r\n catch (error) {\r\n const seen = new WeakSet();\r\n const replacer = (key, value) => {\r\n if (typeof value === \"object\" && value !== null) {\r\n if (seen.has(value)) {\r\n return;\r\n }\r\n seen.add(value);\r\n }\r\n return value;\r\n };\r\n reason = JSON.stringify(err, replacer);\r\n }\r\n this.logger.info(`ws error - reason: ${reason}`);\r\n pw.reject(\"error\");\r\n this.notifyStatusChanged(false, reason);\r\n };\r\n this.ws.onclose = (err) => {\r\n this.logger.info(`ws closed - code: ${err?.code} reason: ${err?.reason}`);\r\n pw.reject(\"closed\");\r\n this.notifyStatusChanged(false);\r\n };\r\n this.ws.onopen = () => {\r\n this.startupTimer.mark(\"ws-opened\");\r\n this.logger.info(`ws opened ${this.settings.identity?.application}`);\r\n pw.resolve();\r\n this.notifyStatusChanged(true);\r\n };\r\n this.ws.onmessage = (message) => {\r\n this._registry.execute(\"onMessage\", message.data);\r\n };\r\n return pw.promise;\r\n }\r\n notifyForSocketState(error) {\r\n this.wsRequests.forEach((wsRequest) => {\r\n if (error) {\r\n if (wsRequest.failed) {\r\n wsRequest.failed(error);\r\n }\r\n }\r\n else {\r\n wsRequest.callback();\r\n }\r\n });\r\n this.wsRequests = [];\r\n }\r\n notifyStatusChanged(status, reason) {\r\n this._registry.execute(\"onConnectedChanged\", status, reason);\r\n }\r\n}\n\nclass MessageReplayerImpl {\r\n specs;\r\n specsNames = [];\r\n messages = {};\r\n isDone;\r\n subs = {};\r\n subsRefCount = {};\r\n connection;\r\n constructor(specs) {\r\n this.specs = {};\r\n for (const spec of specs) {\r\n this.specs[spec.name] = spec;\r\n this.specsNames.push(spec.name);\r\n }\r\n }\r\n init(connection) {\r\n this.connection = connection;\r\n for (const name of this.specsNames) {\r\n for (const type of this.specs[name].types) {\r\n let refCount = this.subsRefCount[type];\r\n if (!refCount) {\r\n refCount = 0;\r\n }\r\n refCount += 1;\r\n this.subsRefCount[type] = refCount;\r\n if (refCount > 1) {\r\n continue;\r\n }\r\n const sub = connection.on(type, (msg) => this.processMessage(type, msg));\r\n this.subs[type] = sub;\r\n }\r\n }\r\n }\r\n processMessage(type, msg) {\r\n if (this.isDone || !msg) {\r\n return;\r\n }\r\n for (const name of this.specsNames) {\r\n if (this.specs[name].types.indexOf(type) !== -1) {\r\n const messages = this.messages[name] || [];\r\n this.messages[name] = messages;\r\n messages.push(msg);\r\n }\r\n }\r\n }\r\n drain(name, callback) {\r\n if (callback) {\r\n (this.messages[name] || []).forEach(callback);\r\n }\r\n delete this.messages[name];\r\n for (const type of this.specs[name].types) {\r\n this.subsRefCount[type] -= 1;\r\n if (this.subsRefCount[type] <= 0) {\r\n this.connection?.off(this.subs[type]);\r\n delete this.subs[type];\r\n delete this.subsRefCount[type];\r\n }\r\n }\r\n delete this.specs[name];\r\n if (!this.specs.length) {\r\n this.isDone = true;\r\n }\r\n }\r\n}\n\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n};\n\nconst PromisePlus = (executor, timeoutMilliseconds, timeoutMessage) => {\r\n return new Promise((resolve, reject) => {\r\n const timeout = setTimeout(() => {\r\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\r\n reject(message);\r\n }, timeoutMilliseconds);\r\n const providedPromise = new Promise(executor);\r\n providedPromise\r\n .then((result) => {\r\n clearTimeout(timeout);\r\n resolve(result);\r\n })\r\n .catch((error) => {\r\n clearTimeout(timeout);\r\n reject(error);\r\n });\r\n });\r\n};\n\nclass WebPlatformTransport {\r\n settings;\r\n logger;\r\n identity;\r\n isPreferredActivated;\r\n _communicationId;\r\n publicWindowId;\r\n selfAssignedWindowId;\r\n iAmConnected = false;\r\n parentReady = false;\r\n rejected = false;\r\n parentPingResolve;\r\n parentPingInterval;\r\n connectionResolve;\r\n extConnectionResolve;\r\n extConnectionReject;\r\n connectionReject;\r\n port;\r\n myClientId;\r\n children = [];\r\n extContentAvailable = false;\r\n extContentConnecting = false;\r\n extContentConnected = false;\r\n parentWindowId;\r\n parentInExtMode = false;\r\n webNamespace = \"g42_core_web\";\r\n parent;\r\n parentType;\r\n parentPingTimeout = 5000;\r\n connectionRequestTimeout = 7000;\r\n defaultTargetString = \"*\";\r\n registry = CallbackRegistryFactory();\r\n messages = {\r\n connectionAccepted: { name: \"connectionAccepted\", handle: this.handleConnectionAccepted.bind(this) },\r\n connectionRejected: { name: \"connectionRejected\", handle: this.handleConnectionRejected.bind(this) },\r\n connectionRequest: { name: \"connectionRequest\", handle: this.handleConnectionRequest.bind(this) },\r\n parentReady: {\r\n name: \"parentReady\", handle: () => {\r\n }\r\n },\r\n parentPing: { name: \"parentPing\", handle: this.handleParentPing.bind(this) },\r\n platformPing: { name: \"platformPing\", handle: this.handlePlatformPing.bind(this) },\r\n platformReady: { name: \"platformReady\", handle: this.handlePlatformReady.bind(this) },\r\n clientUnload: { name: \"clientUnload\", handle: this.handleClientUnload.bind(this) },\r\n manualUnload: { name: \"manualUnload\", handle: this.handleManualUnload.bind(this) },\r\n extConnectionResponse: { name: \"extConnectionResponse\", handle: this.handleExtConnectionResponse.bind(this) },\r\n extSetupRequest: { name: \"extSetupRequest\", handle: this.handleExtSetupRequest.bind(this) },\r\n gatewayDisconnect: { name: \"gatewayDisconnect\", handle: this.handleGatewayDisconnect.bind(this) },\r\n gatewayInternalConnect: { name: \"gatewayInternalConnect\", handle: this.handleGatewayInternalConnect.bind(this) }\r\n };\r\n constructor(settings, logger, identity) {\r\n this.settings = settings;\r\n this.logger = logger;\r\n this.identity = identity;\r\n this.extContentAvailable = !!window.glue42ext;\r\n this.setUpMessageListener();\r\n this.setUpUnload();\r\n this.setupPlatformUnloadListener();\r\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : undefined;\r\n }\r\n manualSetReadyState() {\r\n this.iAmConnected = true;\r\n this.parentReady = true;\r\n }\r\n get transportWindowId() {\r\n return this.publicWindowId;\r\n }\r\n get communicationId() {\r\n return this._communicationId;\r\n }\r\n async sendObject(msg) {\r\n if (this.extContentConnected) {\r\n return window.postMessage({ glue42ExtOut: msg }, this.defaultTargetString);\r\n }\r\n if (!this.port) {\r\n throw new Error(\"Cannot send message, because the port was not opened yet\");\r\n }\r\n this.port.postMessage(msg);\r\n }\r\n get isObjectBasedTransport() {\r\n return true;\r\n }\r\n onMessage(callback) {\r\n return this.registry.add(\"onMessage\", callback);\r\n }\r\n send() {\r\n return Promise.reject(\"not supported\");\r\n }\r\n onConnectedChanged(callback) {\r\n return this.registry.add(\"onConnectedChanged\", callback);\r\n }\r\n async open() {\r\n this.logger.debug(\"opening a connection to the web platform gateway.\");\r\n await this.connect();\r\n this.notifyStatusChanged(true);\r\n }\r\n close() {\r\n const message = {\r\n glue42core: {\r\n type: this.messages.gatewayDisconnect.name,\r\n data: {\r\n clientId: this.myClientId,\r\n ownWindowId: this.identity?.windowId\r\n }\r\n }\r\n };\r\n this.port?.postMessage(message);\r\n this.parentReady = false;\r\n this.notifyStatusChanged(false, \"manual reconnection\");\r\n return Promise.resolve();\r\n }\r\n name() {\r\n return \"web-platform\";\r\n }\r\n async reconnect() {\r\n await this.close();\r\n return Promise.resolve();\r\n }\r\n initiateInternalConnection() {\r\n return new Promise((resolve, reject) => {\r\n this.logger.debug(\"opening an internal web platform connection\");\r\n this.port = this.settings.port;\r\n if (this.iAmConnected) {\r\n this.logger.warn(\"cannot open a new connection, because this client is currently connected\");\r\n return;\r\n }\r\n this.port.onmessage = (event) => {\r\n if (this.iAmConnected && !event.data?.glue42core) {\r\n this.registry.execute(\"onMessage\", event.data);\r\n return;\r\n }\r\n const data = event.data?.glue42core;\r\n if (!data) {\r\n return;\r\n }\r\n if (data.type === this.messages.gatewayInternalConnect.name && data.success) {\r\n this.publicWindowId = this.settings.windowId;\r\n if (this.identity && this.publicWindowId) {\r\n this.identity.windowId = this.publicWindowId;\r\n this.identity.instance = this.publicWindowId;\r\n }\r\n resolve();\r\n }\r\n if (data.type === this.messages.gatewayInternalConnect.name && data.error) {\r\n reject(data.error);\r\n }\r\n };\r\n this.port.postMessage({\r\n glue42core: {\r\n type: this.messages.gatewayInternalConnect.name\r\n }\r\n });\r\n });\r\n }\r\n initiateRemoteConnection(target) {\r\n return PromisePlus((resolve, reject) => {\r\n this.connectionResolve = resolve;\r\n this.connectionReject = reject;\r\n this.myClientId = this.myClientId ?? nanoid(10);\r\n const bridgeInstanceId = this.getMyWindowId() || nanoid(10);\r\n const request = {\r\n glue42core: {\r\n type: this.messages.connectionRequest.name,\r\n clientId: this.myClientId,\r\n clientType: \"child\",\r\n bridgeInstanceId,\r\n selfAssignedWindowId: this.selfAssignedWindowId\r\n }\r\n };\r\n this.logger.debug(\"sending connection request\");\r\n if (this.extContentConnecting) {\r\n request.glue42core.clientType = \"child\";\r\n request.glue42core.bridgeInstanceId = this.myClientId;\r\n request.glue42core.parentWindowId = this.parentWindowId;\r\n return window.postMessage(request, this.defaultTargetString);\r\n }\r\n if (!target) {\r\n throw new Error(\"Cannot send a connection request, because no glue target was specified!\");\r\n }\r\n target.postMessage(request, this.defaultTargetString);\r\n }, this.connectionRequestTimeout, \"The connection to the target glue window timed out\");\r\n }\r\n async isParentCheckSuccess(parentCheck) {\r\n try {\r\n await parentCheck;\r\n return { success: true };\r\n }\r\n catch (error) {\r\n return { success: false };\r\n }\r\n }\r\n setUpMessageListener() {\r\n if (this.settings.port) {\r\n this.logger.debug(\"skipping generic message listener, because this is an internal client\");\r\n return;\r\n }\r\n window.addEventListener(\"message\", (event) => {\r\n const data = event.data?.glue42core;\r\n if (!data || this.rejected) {\r\n return;\r\n }\r\n const allowedOrigins = this.settings.allowedOrigins || [];\r\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\r\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\r\n return;\r\n }\r\n if (!this.checkMessageTypeValid(data.type)) {\r\n this.logger.error(`cannot handle the incoming glue42 core message, because the type is invalid: ${data.type}`);\r\n return;\r\n }\r\n const messageType = data.type;\r\n this.logger.debug(`received valid glue42core message of type: ${messageType}`);\r\n this.messages[messageType].handle(event);\r\n });\r\n }\r\n setUpUnload() {\r\n if (this.settings.port) {\r\n this.logger.debug(\"skipping unload event listener, because this is an internal client\");\r\n return;\r\n }\r\n window.addEventListener(\"beforeunload\", () => {\r\n if (this.extContentConnected) {\r\n return;\r\n }\r\n const message = {\r\n glue42core: {\r\n type: this.messages.clientUnload.name,\r\n data: {\r\n clientId: this.myClientId,\r\n ownWindowId: this.identity?.windowId\r\n }\r\n }\r\n };\r\n if (this.parent) {\r\n this.parent.postMessage(message, this.defaultTargetString);\r\n }\r\n this.port?.postMessage(message);\r\n });\r\n }\r\n handlePlatformReady(event) {\r\n this.logger.debug(\"the web platform gave the ready signal\");\r\n this.parentReady = true;\r\n if (this.parentPingResolve) {\r\n this.parentPingResolve();\r\n delete this.parentPingResolve;\r\n }\r\n if (this.parentPingInterval) {\r\n clearInterval(this.parentPingInterval);\r\n delete this.parentPingInterval;\r\n }\r\n this.parent = event.source;\r\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : \"window\";\r\n }\r\n handleConnectionAccepted(event) {\r\n const data = event.data?.glue42core;\r\n if (this.myClientId === data.clientId) {\r\n return this.handleAcceptanceOfMyRequest(data);\r\n }\r\n return this.handleAcceptanceOfGrandChildRequest(data, event);\r\n }\r\n handleAcceptanceOfMyRequest(data) {\r\n this.logger.debug(\"handling a connection accepted signal targeted at me.\");\r\n this.isPreferredActivated = data.isPreferredActivated;\r\n if (this.extContentConnecting) {\r\n return this.processExtContentConnection(data);\r\n }\r\n if (!data.port) {\r\n this.logger.error(\"cannot set up my connection, because I was not provided with a port\");\r\n return;\r\n }\r\n this.publicWindowId = this.getMyWindowId();\r\n if (this.identity) {\r\n this.identity.windowId = this.publicWindowId;\r\n this.identity.instance = this.identity.instance ? this.identity.instance : this.publicWindowId || nanoid(10);\r\n }\r\n if (this.identity && data.appName) {\r\n this.identity.application = data.appName;\r\n this.identity.applicationName = data.appName;\r\n }\r\n this._communicationId = data.communicationId;\r\n this.port = data.port;\r\n this.port.onmessage = (e) => this.registry.execute(\"onMessage\", e.data);\r\n if (this.connectionResolve) {\r\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\r\n this.connectionResolve();\r\n delete this.connectionResolve;\r\n return;\r\n }\r\n this.logger.error(\"unable to call the connection resolve, because no connection promise was found\");\r\n }\r\n processExtContentConnection(data) {\r\n this.logger.debug(\"handling a connection accepted signal targeted at me for extension content connection.\");\r\n this.extContentConnecting = false;\r\n this.extContentConnected = true;\r\n this.publicWindowId = this.parentWindowId || this.myClientId;\r\n if (this.extContentConnecting && this.identity) {\r\n this.identity.windowId = this.publicWindowId;\r\n }\r\n if (this.identity && data.appName) {\r\n this.identity.application = data.appName;\r\n this.identity.applicationName = data.appName;\r\n }\r\n window.addEventListener(\"message\", (event) => {\r\n const extData = event.data?.glue42ExtInc;\r\n if (!extData) {\r\n return;\r\n }\r\n const allowedOrigins = this.settings.allowedOrigins || [];\r\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\r\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\r\n return;\r\n }\r\n this.registry.execute(\"onMessage\", extData);\r\n });\r\n if (this.connectionResolve) {\r\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\r\n this.connectionResolve();\r\n delete this.connectionResolve;\r\n return;\r\n }\r\n }\r\n handleAcceptanceOfGrandChildRequest(data, event) {\r\n if (this.extContentConnecting || this.extContentConnected) {\r\n this.logger.debug(\"cannot process acceptance of a grandchild, because I am connected to a content script\");\r\n return;\r\n }\r\n this.logger.debug(`handling a connection accepted signal targeted at a grandchild: ${data.clientId}`);\r\n const child = this.children.find((c) => c.grandChildId === data.clientId);\r\n if (!child) {\r\n this.logger.error(`cannot handle connection accepted for grandchild: ${data.clientId}, because there is no grandchild with this id`);\r\n return;\r\n }\r\n child.connected = true;\r\n this.logger.debug(`the grandchild connection for ${data.clientId} is set up, forwarding the success message and the gateway port`);\r\n data.parentWindowId = this.publicWindowId;\r\n child.source.postMessage(event.data, child.origin, [data.port]);\r\n return;\r\n }\r\n handleConnectionRejected() {\r\n this.logger.debug(\"handling a connection rejection. Most likely the reason is that this window was not created by a glue API call\");\r\n if (this.connectionReject) {\r\n this.connectionReject(\"The platform connection was rejected. Most likely because this window was not created by a glue API call\");\r\n delete this.connectionReject;\r\n }\r\n }\r\n handleConnectionRequest(event) {\r\n if (this.extContentConnecting) {\r\n this.logger.debug(\"This connection request event is targeted at the extension content\");\r\n return;\r\n }\r\n const source = event.source;\r\n const data = event.data.glue42core;\r\n if (!data.clientType || data.clientType !== \"grandChild\") {\r\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source was not opened by a glue API call\");\r\n }\r\n if (!data.clientId) {\r\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source did not provide a valid id\");\r\n }\r\n if (!this.parent) {\r\n return this.rejectConnectionRequest(source, event.origin, \"Cannot forward the connection request, because no direct connection to the platform was found\");\r\n }\r\n this.logger.debug(`handling a connection request for a grandchild: ${data.clientId}`);\r\n this.children.push({ grandChildId: data.clientId, source, connected: false, origin: event.origin });\r\n this.logger.debug(`grandchild: ${data.clientId} is prepared, forwarding connection request to the platform`);\r\n this.parent.postMessage(event.data, this.defaultTargetString);\r\n }\r\n handleParentPing(event) {\r\n if (!this.parentReady) {\r\n this.logger.debug(\"my parent is not ready, I am ignoring the parent ping\");\r\n return;\r\n }\r\n if (!this.iAmConnected) {\r\n this.logger.debug(\"i am not fully connected yet, I am ignoring the parent ping\");\r\n return;\r\n }\r\n const message = {\r\n glue42core: {\r\n type: this.messages.parentReady.name\r\n }\r\n };\r\n if (this.extContentConnected) {\r\n message.glue42core.extMode = { windowId: this.myClientId };\r\n }\r\n const source = event.source;\r\n this.logger.debug(\"responding to a parent ping with a ready message\");\r\n source.postMessage(message, event.origin);\r\n }\r\n setupPlatformUnloadListener() {\r\n this.onMessage((msg) => {\r\n if (msg.type === \"platformUnload\") {\r\n this.logger.debug(\"detected a web platform unload\");\r\n this.parentReady = false;\r\n this.notifyStatusChanged(false, \"Gateway unloaded\");\r\n }\r\n });\r\n }\r\n handleManualUnload() {\r\n const message = {\r\n glue42core: {\r\n type: this.messages.clientUnload.name,\r\n data: {\r\n clientId: this.myClientId,\r\n ownWindowId: this.identity?.windowId\r\n }\r\n }\r\n };\r\n if (this.extContentConnected) {\r\n return window.postMessage({ glue42ExtOut: message }, this.defaultTargetString);\r\n }\r\n this.port?.postMessage(message);\r\n }\r\n handleClientUnload(event) {\r\n const data = event.data.glue42core;\r\n const clientId = data?.data.clientId;\r\n if (!clientId) {\r\n this.logger.warn(\"cannot process grand child unload, because the provided id was not valid\");\r\n return;\r\n }\r\n const foundChild = this.children.find((child) => child.grandChildId === clientId);\r\n if (!foundChild) {\r\n this.logger.warn(\"cannot process grand child unload, because this client is unaware of this grandchild\");\r\n return;\r\n }\r\n this.logger.debug(`handling grandchild unload for id: ${clientId}`);\r\n this.children = this.children.filter((child) => child.grandChildId !== clientId);\r\n }\r\n handlePlatformPing() {\r\n return;\r\n }\r\n notifyStatusChanged(status, reason) {\r\n this.iAmConnected = status;\r\n this.registry.execute(\"onConnectedChanged\", status, reason);\r\n }\r\n checkMessageTypeValid(typeToValidate) {\r\n return typeof typeToValidate === \"string\" && !!this.messages[typeToValidate];\r\n }\r\n rejectConnectionRequest(source, origin, reason) {\r\n this.rejected = true;\r\n this.logger.error(reason);\r\n const rejection = {\r\n glue42core: {\r\n type: this.messages.connectionRejected.name\r\n }\r\n };\r\n source.postMessage(rejection, origin);\r\n }\r\n requestConnectionPermissionFromExt() {\r\n return this.waitForContentScript()\r\n .then(() => PromisePlus((resolve, reject) => {\r\n this.extConnectionResolve = resolve;\r\n this.extConnectionReject = reject;\r\n const message = {\r\n glue42core: {\r\n type: \"extSetupRequest\"\r\n }\r\n };\r\n this.logger.debug(\"permission request to the extension content script was sent\");\r\n window.postMessage(message, this.defaultTargetString);\r\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\"));\r\n }\r\n handleExtConnectionResponse(event) {\r\n const data = event.data?.glue42core;\r\n if (!data.approved) {\r\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;\r\n }\r\n if (this.extConnectionResolve) {\r\n this.extConnectionResolve();\r\n delete this.extConnectionResolve;\r\n }\r\n this.extContentConnecting = true;\r\n this.parentType = \"extension\";\r\n this.logger.debug(\"The extension connection was approved, proceeding.\");\r\n }\r\n handleExtSetupRequest() {\r\n return;\r\n }\r\n handleGatewayDisconnect() {\r\n return;\r\n }\r\n handleGatewayInternalConnect() {\r\n return;\r\n }\r\n waitForContentScript() {\r\n const contentReady = !!window.glue42ext?.content;\r\n if (contentReady) {\r\n return Promise.resolve();\r\n }\r\n return PromisePlus((resolve) => {\r\n window.addEventListener(\"Glue42EXTReady\", () => {\r\n resolve();\r\n });\r\n }, this.connectionRequestTimeout, \"The content script was available, but was never heard to be ready\");\r\n }\r\n async connect() {\r\n if (this.settings.port) {\r\n await this.initiateInternalConnection();\r\n this.logger.debug(\"internal web platform connection completed\");\r\n return;\r\n }\r\n this.logger.debug(\"opening a client web platform connection\");\r\n await this.findParent();\r\n await this.initiateRemoteConnection(this.parent);\r\n this.logger.debug(\"the client is connected\");\r\n }\r\n async findParent() {\r\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\r\n const myInsideParents = this.getPossibleParentsInWindow(window);\r\n const myOutsideParents = this.getPossibleParentsOutsideWindow(window.top?.opener, window.top);\r\n const uniqueParents = new Set([...myInsideParents, ...myOutsideParents]);\r\n if (!uniqueParents.size && !this.extContentAvailable) {\r\n throw new Error(connectionNotPossibleMsg);\r\n }\r\n if (!uniqueParents.size && this.extContentAvailable) {\r\n await this.requestConnectionPermissionFromExt();\r\n return;\r\n }\r\n const defaultParentCheck = await this.isParentCheckSuccess(this.confirmParent(Array.from(uniqueParents)));\r\n if (defaultParentCheck.success) {\r\n this.logger.debug(\"The default parent was found!\");\r\n return;\r\n }\r\n if (!this.extContentAvailable) {\r\n throw new Error(connectionNotPossibleMsg);\r\n }\r\n await this.requestConnectionPermissionFromExt();\r\n }\r\n getPossibleParentsInWindow(currentWindow) {\r\n return (!currentWindow || currentWindow === currentWindow.top) ? [] : [currentWindow.parent, ...this.getPossibleParentsInWindow(currentWindow.parent)];\r\n }\r\n getPossibleParentsOutsideWindow(opener, current) {\r\n return (!opener || !current || opener === current) ? [] : [opener, ...this.getPossibleParentsInWindow(opener), ...this.getPossibleParentsOutsideWindow(opener.opener, opener)];\r\n }\r\n confirmParent(targets) {\r\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\r\n const parentCheck = PromisePlus((resolve) => {\r\n this.parentPingResolve = resolve;\r\n const message = {\r\n glue42core: {\r\n type: this.messages.platformPing.name\r\n }\r\n };\r\n this.parentPingInterval = setInterval(() => {\r\n targets.forEach((target) => {\r\n target.postMessage(message, this.defaultTargetString);\r\n });\r\n }, 1000);\r\n }, this.parentPingTimeout, connectionNotPossibleMsg);\r\n parentCheck.catch(() => {\r\n if (this.parentPingInterval) {\r\n clearInterval(this.parentPingInterval);\r\n delete this.parentPingInterval;\r\n }\r\n });\r\n return parentCheck;\r\n }\r\n getMyWindowId() {\r\n if (this.parentType === \"workspace\") {\r\n return window.name.substring(0, window.name.indexOf(\"#wsp\"));\r\n }\r\n if (window !== window.top) {\r\n return;\r\n }\r\n if (window.name?.includes(\"g42\")) {\r\n return window.name;\r\n }\r\n this.selfAssignedWindowId = this.selfAssignedWindowId || `g42-${nanoid(10)}`;\r\n return this.selfAssignedWindowId;\r\n }\r\n}\n\nconst waitForInvocations = (invocations, callback) => {\r\n let left = invocations;\r\n return () => {\r\n left--;\r\n if (left === 0) {\r\n callback();\r\n }\r\n };\r\n};\n\nclass AsyncSequelizer {\r\n minSequenceInterval;\r\n queue = [];\r\n isExecutingQueue = false;\r\n constructor(minSequenceInterval = 0) {\r\n this.minSequenceInterval = minSequenceInterval;\r\n }\r\n enqueue(action) {\r\n return new Promise((resolve, reject) => {\r\n this.queue.push({ action, resolve, reject });\r\n this.executeQueue();\r\n });\r\n }\r\n async executeQueue() {\r\n if (this.isExecutingQueue) {\r\n return;\r\n }\r\n this.isExecutingQueue = true;\r\n while (this.queue.length) {\r\n const operation = this.queue.shift();\r\n if (!operation) {\r\n this.isExecutingQueue = false;\r\n return;\r\n }\r\n try {\r\n const actionResult = await operation.action();\r\n operation.resolve(actionResult);\r\n }\r\n catch (error) {\r\n operation.reject(error);\r\n }\r\n await this.intervalBreak();\r\n }\r\n this.isExecutingQueue = false;\r\n }\r\n intervalBreak() {\r\n return new Promise((res) => setTimeout(res, this.minSequenceInterval));\r\n }\r\n}\n\nfunction domainSession (domain, connection, logger, successMessages, errorMessages) {\r\n if (domain == null) {\r\n domain = \"global\";\r\n }\r\n successMessages = successMessages ?? [\"success\"];\r\n errorMessages = errorMessages ?? [\"error\"];\r\n let isJoined = domain === \"global\";\r\n let tryReconnecting = false;\r\n let _latestOptions;\r\n let _connectionOn = false;\r\n const callbacks = CallbackRegistryFactory();\r\n connection.disconnected(handleConnectionDisconnected);\r\n connection.loggedIn(handleConnectionLoggedIn);\r\n connection.on(\"success\", (msg) => handleSuccessMessage(msg));\r\n connection.on(\"error\", (msg) => handleErrorMessage(msg));\r\n connection.on(\"result\", (msg) => handleSuccessMessage(msg));\r\n if (successMessages) {\r\n successMessages.forEach((sm) => {\r\n connection.on(sm, (msg) => handleSuccessMessage(msg));\r\n });\r\n }\r\n if (errorMessages) {\r\n errorMessages.forEach((sm) => {\r\n connection.on(sm, (msg) => handleErrorMessage(msg));\r\n });\r\n }\r\n const requestsMap = {};\r\n function join(options) {\r\n _latestOptions = options;\r\n return new Promise((resolve, reject) => {\r\n if (isJoined) {\r\n resolve({});\r\n return;\r\n }\r\n let joinPromise;\r\n if (domain === \"global\") {\r\n joinPromise = _connectionOn ? Promise.resolve({}) : Promise.reject(\"not connected to gateway\");\r\n }\r\n else {\r\n logger.debug(`joining domain ${domain}`);\r\n const joinMsg = {\r\n type: \"join\",\r\n destination: domain,\r\n domain: \"global\",\r\n options,\r\n };\r\n joinPromise = send(joinMsg);\r\n }\r\n joinPromise\r\n .then(() => {\r\n handleJoined();\r\n resolve({});\r\n })\r\n .catch((err) => {\r\n logger.debug(\"error joining \" + domain + \" domain: \" + JSON.stringify(err));\r\n reject(err);\r\n });\r\n });\r\n }\r\n function leave() {\r\n if (domain === \"global\") {\r\n return Promise.resolve();\r\n }\r\n logger.debug(\"stopping session \" + domain + \"...\");\r\n const leaveMsg = {\r\n type: \"leave\",\r\n destination: domain,\r\n domain: \"global\",\r\n };\r\n tryReconnecting = false;\r\n return send(leaveMsg)\r\n .then(() => {\r\n isJoined = false;\r\n callbacks.execute(\"onLeft\");\r\n })\r\n .catch(() => {\r\n isJoined = false;\r\n callbacks.execute(\"onLeft\");\r\n });\r\n }\r\n function handleJoined() {\r\n logger.debug(\"did join \" + domain);\r\n isJoined = true;\r\n const wasReconnect = tryReconnecting;\r\n tryReconnecting = false;\r\n callbacks.execute(\"onJoined\", wasReconnect);\r\n }\r\n function handleConnectionDisconnected() {\r\n _connectionOn = false;\r\n logger.debug(\"connection is down\");\r\n isJoined = false;\r\n tryReconnecting = true;\r\n callbacks.execute(\"onLeft\", { disconnected: true });\r\n }\r\n function handleConnectionLoggedIn() {\r\n _connectionOn = true;\r\n if (tryReconnecting) {\r\n logger.debug(\"connection is now up - trying to reconnect...\");\r\n join(_latestOptions);\r\n }\r\n }\r\n function onJoined(callback) {\r\n if (isJoined) {\r\n callback(false);\r\n }\r\n return callbacks.add(\"onJoined\", callback);\r\n }\r\n function onLeft(callback) {\r\n if (!isJoined) {\r\n callback();\r\n }\r\n return callbacks.add(\"onLeft\", callback);\r\n }\r\n function handleErrorMessage(msg) {\r\n if (domain !== msg.domain) {\r\n return;\r\n }\r\n const requestId = msg.request_id;\r\n if (!requestId) {\r\n return;\r\n }\r\n const entry = requestsMap[requestId];\r\n if (!entry) {\r\n return;\r\n }\r\n entry.error(msg);\r\n }\r\n function handleSuccessMessage(msg) {\r\n if (msg.domain !== domain) {\r\n return;\r\n }\r\n const requestId = msg.request_id;\r\n if (!requestId) {\r\n return;\r\n }\r\n const entry = requestsMap[requestId];\r\n if (!entry) {\r\n return;\r\n }\r\n entry.success(msg);\r\n }\r\n function getNextRequestId() {\r\n return nanoid(10);\r\n }\r\n let queuedCalls = [];\r\n function send(msg, tag, options) {\r\n const ignore = [\"hello\", \"join\"];\r\n if (msg.type && ignore.indexOf(msg.type) === -1) {\r\n if (!isJoined) {\r\n console.warn(`trying to send a message (${msg.domain} ${msg.type}) but not connected, will queue`);\r\n const pw = new PromiseWrapper();\r\n queuedCalls.push({ msg, tag, options, pw });\r\n if (queuedCalls.length === 1) {\r\n const unsubscribe = onJoined(() => {\r\n logger.info(`joined - will now send queued messages (${queuedCalls.length} -> [${queuedCalls.map((m) => m.msg.type)}])`);\r\n queuedCalls.forEach((qm) => {\r\n send(qm.msg, qm.tag, qm.options)\r\n .then((t) => qm.pw.resolve(t))\r\n .catch((e) => qm.pw.reject(e));\r\n });\r\n queuedCalls = [];\r\n unsubscribe();\r\n });\r\n }\r\n return pw.promise;\r\n }\r\n }\r\n options = options ?? {};\r\n msg.request_id = msg.request_id ?? getNextRequestId();\r\n msg.domain = msg.domain ?? domain;\r\n if (!options.skipPeerId) {\r\n msg.peer_id = connection.peerId;\r\n }\r\n const requestId = msg.request_id;\r\n return new Promise((resolve, reject) => {\r\n requestsMap[requestId] = {\r\n success: (successMsg) => {\r\n delete requestsMap[requestId];\r\n successMsg._tag = tag;\r\n resolve(successMsg);\r\n },\r\n error: (errorMsg) => {\r\n logger.warn(`Gateway error - ${JSON.stringify(errorMsg)}`);\r\n delete requestsMap[requestId];\r\n errorMsg._tag = tag;\r\n reject(errorMsg);\r\n },\r\n };\r\n connection\r\n .send(msg, options)\r\n .catch((err) => {\r\n requestsMap[requestId].error({ err });\r\n });\r\n });\r\n }\r\n function sendFireAndForget(msg) {\r\n msg.request_id = msg.request_id ? msg.request_id : getNextRequestId();\r\n msg.domain = msg.domain ?? domain;\r\n msg.peer_id = connection.peerId;\r\n return connection.send(msg);\r\n }\r\n return {\r\n join,\r\n leave,\r\n onJoined,\r\n onLeft,\r\n send,\r\n sendFireAndForget,\r\n on: (type, callback) => {\r\n connection.on(type, (msg) => {\r\n if (msg.domain !== domain) {\r\n return;\r\n }\r\n try {\r\n callback(msg);\r\n }\r\n catch (e) {\r\n logger.error(`Callback failed: ${e} \\n ${e.stack} \\n msg was: ${JSON.stringify(msg)}`, e);\r\n }\r\n });\r\n },\r\n loggedIn: (callback) => connection.loggedIn(callback),\r\n connected: (callback) => connection.connected(callback),\r\n disconnected: (callback) => connection.disconnected(callback),\r\n get peerId() {\r\n return connection.peerId;\r\n },\r\n get domain() {\r\n return domain;\r\n },\r\n };\r\n}\n\nclass Connection {\r\n settings;\r\n logger;\r\n protocolVersion = 3;\r\n peerId;\r\n token;\r\n info;\r\n resolvedIdentity;\r\n availableDomains;\r\n gatewayToken;\r\n replayer;\r\n messageHandlers = {};\r\n ids = 1;\r\n registry = CallbackRegistryFactory();\r\n _connected = false;\r\n isTrace = false;\r\n transport;\r\n _defaultTransport;\r\n _defaultAuth;\r\n _targetTransport;\r\n _targetAuth;\r\n _swapTransport = false;\r\n _switchInProgress = false;\r\n _transportSubscriptions = [];\r\n datePrefix = \"#T42_DATE#\";\r\n datePrefixLen = this.datePrefix.length;\r\n dateMinLen = this.datePrefixLen + 1;\r\n datePrefixFirstChar = this.datePrefix[0];\r\n _sequelizer = new AsyncSequelizer();\r\n _isLoggedIn = false;\r\n shouldTryLogin = true;\r\n pingTimer;\r\n sessions = [];\r\n globalDomain;\r\n initialLogin = true;\r\n initialLoginAttempts = 3;\r\n loginConfig;\r\n constructor(settings, logger) {\r\n this.settings = settings;\r\n this.logger = logger;\r\n settings = settings || {};\r\n settings.reconnectAttempts = settings.reconnectAttempts ?? 10;\r\n settings.reconnectInterval = settings.reconnectInterval ?? 1000;\r\n if (settings.inproc) {\r\n this.transport = new InProcTransport(settings.inproc, logger.subLogger(\"inMemory\"));\r\n }\r\n else if (settings.sharedWorker) {\r\n this.transport = new SharedWorkerTransport(settings.sharedWorker, logger.subLogger(\"shared-worker\"));\r\n }\r\n else if (settings.webPlatform) {\r\n this.transport = new WebPlatformTransport(settings.webPlatform, logger.subLogger(\"web-platform\"), settings.identity);\r\n }\r\n else if (settings.ws !== undefined) {\r\n this.transport = new WS(settings, logger.subLogger(\"ws\"));\r\n }\r\n else {\r\n throw new Error(\"No connection information specified\");\r\n }\r\n this.isTrace = logger.canPublish(\"trace\");\r\n logger.debug(`starting with ${this.transport.name()} transport`);\r\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\r\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\r\n this._transportSubscriptions.push(unsubConnectionChanged);\r\n this._transportSubscriptions.push(unsubOnMessage);\r\n this._defaultTransport = this.transport;\r\n this.ping();\r\n }\r\n async switchTransport(settings) {\r\n return this._sequelizer.enqueue(async () => {\r\n if (!settings || typeof settings !== \"object\") {\r\n throw new Error(\"Cannot switch transports, because the settings are missing or invalid.\");\r\n }\r\n if (typeof settings.type === \"undefined\") {\r\n throw new Error(\"Cannot switch the transport, because the type is not defined\");\r\n }\r\n this.logger.trace(`Starting transport switch with settings: ${JSON.stringify(settings)}`);\r\n const switchTargetTransport = settings.type === \"secondary\" ? this.getNewSecondaryTransport(settings) : this._defaultTransport;\r\n this._targetTransport = switchTargetTransport;\r\n this._targetAuth = settings.type === \"secondary\" ? this.getNewSecondaryAuth(settings) : this._defaultAuth;\r\n const verifyPromise = this.verifyConnection();\r\n this._swapTransport = true;\r\n this._switchInProgress = true;\r\n this.logger.trace(\"The new transport has been set, closing the current transport\");\r\n await this.transport.close();\r\n try {\r\n await verifyPromise;\r\n const isSwitchSuccess = this.transport === switchTargetTransport;\r\n this.logger.info(`The reconnection after the switch was completed. Was the switch a success: ${isSwitchSuccess}`);\r\n this._switchInProgress = false;\r\n return { success: isSwitchSuccess };\r\n }\r\n catch (error) {\r\n this.logger.info(\"The reconnection after the switch timed out, reverting back to the default transport.\");\r\n this.switchTransport({ type: \"default\" });\r\n this._switchInProgress = false;\r\n return { success: false };\r\n }\r\n });\r\n }\r\n onLibReAnnounced(callback) {\r\n return this.registry.add(\"libReAnnounced\", callback);\r\n }\r\n setLibReAnnounced(lib) {\r\n this.registry.execute(\"libReAnnounced\", lib);\r\n }\r\n send(message, options) {\r\n if (this.transport.sendObject &&\r\n this.transport.isObjectBasedTransport) {\r\n const msg = this.createObjectMessage(message);\r\n if (this.isTrace) {\r\n this.logger.trace(`>> ${JSON.stringify(msg)}`);\r\n }\r\n return this.transport.sendObject(msg, options);\r\n }\r\n else {\r\n const strMessage = this.createStringMessage(message);\r\n if (this.isTrace) {\r\n this.logger.trace(`>> ${strMessage}`);\r\n }\r\n return this.transport.send(strMessage, options);\r\n }\r\n }\r\n on(type, messageHandler) {\r\n type = type.toLowerCase();\r\n if (this.messageHandlers[type] === undefined) {\r\n this.messageHandlers[type] = {};\r\n }\r\n const id = this.ids++;\r\n this.messageHandlers[type][id] = messageHandler;\r\n return {\r\n type,\r\n id,\r\n };\r\n }\r\n off(info) {\r\n delete this.messageHandlers[info.type.toLowerCase()][info.id];\r\n }\r\n get isConnected() {\r\n return this._isLoggedIn;\r\n }\r\n connected(callback) {\r\n return this.loggedIn(() => {\r\n const currentServer = this.transport.name();\r\n callback(currentServer);\r\n });\r\n }\r\n disconnected(callback) {\r\n return this.registry.add(\"disconnected\", callback);\r\n }\r\n async login(authRequest, reconnect) {\r\n if (!this._defaultAuth) {\r\n this._defaultAuth = authRequest;\r\n }\r\n if (this._swapTransport) {\r\n this.logger.trace(\"Detected a transport swap, swapping transports\");\r\n const newAuth = this.transportSwap();\r\n authRequest = newAuth ?? authRequest;\r\n }\r\n this.logger.trace(`Starting login for transport: ${this.transport.name()} and auth ${JSON.stringify(authRequest)}`);\r\n try {\r\n await this.transport.open();\r\n this.logger.trace(`Transport: ${this.transport.name()} opened, logging in`);\r\n timer(\"connection\").mark(\"transport-opened\");\r\n const identity = await this.loginCore(authRequest, reconnect);\r\n this.logger.trace(`Logged in with identity: ${JSON.stringify(identity)}`);\r\n timer(\"connection\").mark(\"protocol-logged-in\");\r\n return identity;\r\n }\r\n catch (error) {\r\n if (this._switchInProgress) {\r\n this.logger.trace(\"An error while logging in after a transport swap, preparing a default swap.\");\r\n this.prepareDefaultSwap();\r\n }\r\n throw new Error(error);\r\n }\r\n }\r\n async logout() {\r\n await this.logoutCore();\r\n await this.transport.close();\r\n }\r\n loggedIn(callback) {\r\n if (this._isLoggedIn) {\r\n callback();\r\n }\r\n return this.registry.add(\"onLoggedIn\", callback);\r\n }\r\n domain(domain, successMessages, errorMessages) {\r\n let session = this.sessions.find((s) => s.domain === domain);\r\n if (!session) {\r\n session = domainSession(domain, this, this.logger.subLogger(`domain=${domain}`), successMessages, errorMessages);\r\n this.sessions.push(session);\r\n }\r\n return session;\r\n }\r\n authToken() {\r\n const createTokenReq = {\r\n domain: \"global\",\r\n type: \"create-token\"\r\n };\r\n if (!this.globalDomain) {\r\n return Promise.reject(new Error(\"no global domain session\"));\r\n }\r\n return this.globalDomain.send(createTokenReq)\r\n .then((res) => {\r\n return res.token;\r\n });\r\n }\r\n reconnect() {\r\n return this.transport.reconnect();\r\n }\r\n setLoggedIn(value) {\r\n this._isLoggedIn = value;\r\n if (this._isLoggedIn) {\r\n this.registry.execute(\"onLoggedIn\");\r\n }\r\n }\r\n distributeMessage(message, type) {\r\n const handlers = this.messageHandlers[type.toLowerCase()];\r\n if (handlers !== undefined) {\r\n Object.keys(handlers).forEach((handlerId) => {\r\n const handler = handlers[handlerId];\r\n if (handler !== undefined) {\r\n try {\r\n handler(message);\r\n }\r\n catch (error) {\r\n try {\r\n this.logger.error(`Message handler failed with ${error.stack}`, error);\r\n }\r\n catch (loggerError) {\r\n console.log(\"Message handler failed\", error);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n handleConnectionChanged(connected) {\r\n if (this._connected === connected) {\r\n return;\r\n }\r\n this._connected = connected;\r\n if (connected) {\r\n if (this.settings?.replaySpecs?.length) {\r\n this.replayer = new MessageReplayerImpl(this.settings.replaySpecs);\r\n this.replayer.init(this);\r\n }\r\n this.registry.execute(\"connected\");\r\n }\r\n else {\r\n this.handleDisconnected();\r\n this.registry.execute(\"disconnected\");\r\n }\r\n }\r\n handleDisconnected() {\r\n this.setLoggedIn(false);\r\n const tryToLogin = this.shouldTryLogin;\r\n if (tryToLogin && this.initialLogin) {\r\n if (this.initialLoginAttempts <= 0) {\r\n return;\r\n }\r\n this.initialLoginAttempts--;\r\n }\r\n this.logger.debug(\"disconnected - will try new login?\" + this.shouldTryLogin);\r\n if (this.shouldTryLogin) {\r\n if (!this.loginConfig) {\r\n throw new Error(\"no login info\");\r\n }\r\n this.login(this.loginConfig, true)\r\n .catch(() => {\r\n setTimeout(this.handleDisconnected.bind(this), this.settings.reconnectInterval || 1000);\r\n });\r\n }\r\n }\r\n handleTransportMessage(msg) {\r\n let msgObj;\r\n if (typeof msg === \"string\") {\r\n msgObj = this.processStringMessage(msg);\r\n }\r\n else {\r\n msgObj = this.processObjectMessage(msg);\r\n }\r\n if (this.isTrace) {\r\n this.logger.trace(`<< ${JSON.stringify(msgObj)}`);\r\n }\r\n this.distributeMessage(msgObj.msg, msgObj.msgType);\r\n }\r\n verifyConnection() {\r\n return PromisePlus((resolve) => {\r\n let unsub;\r\n const ready = waitForInvocations(2, () => {\r\n if (unsub) {\r\n unsub();\r\n }\r\n resolve();\r\n });\r\n unsub = this.onLibReAnnounced((lib) => {\r\n if (lib.name === \"interop\") {\r\n return ready();\r\n }\r\n if (lib.name === \"contexts\") {\r\n return ready();\r\n }\r\n });\r\n }, 10000, \"Transport switch timed out waiting for all libraries to be re-announced\");\r\n }\r\n getNewSecondaryTransport(settings) {\r\n if (!settings.transportConfig?.url) {\r\n throw new Error(\"Missing secondary transport URL.\");\r\n }\r\n return new WS(Object.assign({}, this.settings, { ws: settings.transportConfig.url, reconnectAttempts: 1 }), this.logger.subLogger(\"ws-secondary\"));\r\n }\r\n getNewSecondaryAuth(settings) {\r\n if (!settings.transportConfig?.auth) {\r\n throw new Error(\"Missing secondary transport auth information.\");\r\n }\r\n return settings.transportConfig.auth;\r\n }\r\n transportSwap() {\r\n this._swapTransport = false;\r\n if (!this._targetTransport || !this._targetAuth) {\r\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.`);\r\n return;\r\n }\r\n this._transportSubscriptions.forEach((unsub) => unsub());\r\n this._transportSubscriptions = [];\r\n this.transport = this._targetTransport;\r\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\r\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\r\n this._transportSubscriptions.push(unsubConnectionChanged);\r\n this._transportSubscriptions.push(unsubOnMessage);\r\n return this._targetAuth;\r\n }\r\n prepareDefaultSwap() {\r\n this._transportSubscriptions.forEach((unsub) => unsub());\r\n this._transportSubscriptions = [];\r\n this.transport.close().catch((error) => this.logger.warn(`Error closing the ${this.transport.name()} transport after a failed connection attempt: ${JSON.stringify(error)}`));\r\n this._targetTransport = this._defaultTransport;\r\n this._targetAuth = this._defaultAuth;\r\n this._swapTransport = true;\r\n }\r\n processStringMessage(message) {\r\n const msg = JSON.parse(message, (key, value) => {\r\n if (typeof value !== \"string\") {\r\n return value;\r\n }\r\n if (value.length < this.dateMinLen) {\r\n return value;\r\n }\r\n if (!value.startsWith(this.datePrefixFirstChar)) {\r\n return value;\r\n }\r\n if (value.substring(0, this.datePrefixLen) !== this.datePrefix) {\r\n return value;\r\n }\r\n try {\r\n const milliseconds = parseInt(value.substring(this.datePrefixLen, value.length), 10);\r\n if (isNaN(milliseconds)) {\r\n return value;\r\n }\r\n return new Date(milliseconds);\r\n }\r\n catch (ex) {\r\n return value;\r\n }\r\n });\r\n return {\r\n msg,\r\n msgType: msg.type,\r\n };\r\n }\r\n createStringMessage(message) {\r\n const oldToJson = Date.prototype.toJSON;\r\n try {\r\n const datePrefix = this.datePrefix;\r\n Date.prototype.toJSON = function () {\r\n return datePrefix + this.getTime();\r\n };\r\n const result = JSON.stringify(message);\r\n return result;\r\n }\r\n finally {\r\n Date.prototype.toJSON = oldToJson;\r\n }\r\n }\r\n processObjectMessage(message) {\r\n if (!message.type) {\r\n throw new Error(\"Object should have type property\");\r\n }\r\n return {\r\n msg: message,\r\n msgType: message.type,\r\n };\r\n }\r\n createObjectMessage(message) {\r\n return message;\r\n }\r\n async loginCore(config, reconnect) {\r\n this.logger.info(\"logging in...\");\r\n this.loginConfig = config;\r\n if (!this.loginConfig) {\r\n this.loginConfig = { username: \"\", password: \"\" };\r\n }\r\n this.shouldTryLogin = true;\r\n const authentication = await this.setupAuthConfig(config, reconnect);\r\n const helloMsg = {\r\n type: \"hello\",\r\n identity: this.settings.identity,\r\n authentication\r\n };\r\n if (config.sessionId) {\r\n helloMsg.request_id = config.sessionId;\r\n }\r\n this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\r\n \"welcome\",\r\n \"token\",\r\n \"authentication-request\"\r\n ]);\r\n const sendOptions = { skipPeerId: true };\r\n if (this.initialLogin) {\r\n sendOptions.retryInterval = this.settings.reconnectInterval;\r\n sendOptions.maxRetries = this.settings.reconnectAttempts;\r\n }\r\n try {\r\n const welcomeMsg = await this.tryAuthenticate(this.globalDomain, helloMsg, sendOptions, config);\r\n this.initialLogin = false;\r\n this.logger.info(\"login successful with peerId \" + welcomeMsg.peer_id);\r\n this.peerId = welcomeMsg.peer_id;\r\n this.resolvedIdentity = welcomeMsg.resolved_identity;\r\n this.availableDomains = welcomeMsg.available_domains;\r\n if (welcomeMsg.options) {\r\n this.token = welcomeMsg.options.access_token;\r\n this.info = welcomeMsg.options.info;\r\n }\r\n this.setLoggedIn(true);\r\n return welcomeMsg.resolved_identity;\r\n }\r\n catch (err) {\r\n this.logger.error(\"error sending hello message - \" + (err.message || err.msg || err.reason || err), err);\r\n throw err;\r\n }\r\n finally {\r\n if (config?.flowCallback && config.sessionId) {\r\n config.flowCallback(config.sessionId, null);\r\n }\r\n }\r\n }\r\n async tryAuthenticate(globalDomain, helloMsg, sendOptions, config) {\r\n let welcomeMsg;\r\n while (true) {\r\n const msg = await globalDomain.send(helloMsg, undefined, sendOptions);\r\n if (msg.type === \"authentication-request\") {\r\n const token = Buffer.from(msg.authentication.token, \"base64\");\r\n if (config.flowCallback && config.sessionId) {\r\n helloMsg.authentication.token =\r\n (await config.flowCallback(config.sessionId, token))\r\n .data\r\n .toString(\"base64\");\r\n }\r\n helloMsg.request_id = config.sessionId;\r\n }\r\n else if (msg.type === \"welcome\") {\r\n welcomeMsg = msg;\r\n break;\r\n }\r\n else if (msg.type === \"error\") {\r\n throw new Error(\"Authentication failed: \" + msg.reason);\r\n }\r\n else {\r\n throw new Error(\"Unexpected message type during authentication: \" + msg.type);\r\n }\r\n }\r\n return welcomeMsg;\r\n }\r\n async setupAuthConfig(config, reconnect) {\r\n const authentication = {};\r\n this.gatewayToken = config.gatewayToken;\r\n if (config.gatewayToken) {\r\n if (reconnect) {\r\n try {\r\n config.gatewayToken = await this.getNewGWToken();\r\n }\r\n catch (e) {\r\n this.logger.warn(`failed to get GW token when reconnecting ${e?.message || e}`);\r\n }\r\n }\r\n authentication.method = \"gateway-token\";\r\n authentication.token = config.gatewayToken;\r\n this.gatewayToken = config.gatewayToken;\r\n }\r\n else if (config.flowName === \"sspi\") {\r\n authentication.provider = \"win\";\r\n authentication.method = \"access-token\";\r\n if (config.flowCallback && config.sessionId) {\r\n authentication.token =\r\n (await config.flowCallback(config.sessionId, null))\r\n .data\r\n .toString(\"base64\");\r\n }\r\n else {\r\n throw new Error(\"Invalid SSPI config\");\r\n }\r\n }\r\n else if (config.token) {\r\n authentication.method = \"access-token\";\r\n authentication.token = config.token;\r\n }\r\n else if (config.username) {\r\n authentication.method = \"secret\";\r\n authentication.login = config.username;\r\n authentication.secret = config.password;\r\n }\r\n else if (config.provider) {\r\n authentication.provider = config.provider;\r\n authentication.providerContext = config.providerContext;\r\n }\r\n else {\r\n throw new Error(\"invalid auth message\" + JSON.stringify(config));\r\n }\r\n return authentication;\r\n }\r\n async logoutCore() {\r\n this.logger.debug(\"logging out...\");\r\n this.shouldTryLogin = false;\r\n if (this.pingTimer) {\r\n clearTimeout(this.pingTimer);\r\n }\r\n const promises = this.sessions.map((session) => {\r\n session.leave();\r\n });\r\n await Promise.all(promises);\r\n }\r\n getNewGWToken() {\r\n if (typeof window !== \"undefined\") {\r\n const glue42gd = window.glue42gd;\r\n if (glue42gd) {\r\n return glue42gd.getGWToken();\r\n }\r\n }\r\n return Promise.reject(new Error(\"not running in GD\"));\r\n }\r\n ping() {\r\n if (!this.shouldTryLogin) {\r\n return;\r\n }\r\n if (this._isLoggedIn) {\r\n this.send({ type: \"ping\" });\r\n }\r\n this.pingTimer = setTimeout(() => {\r\n this.ping();\r\n }, 30 * 1000);\r\n }\r\n}\n\nconst order = [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"off\"];\r\nclass Logger {\r\n name;\r\n parent;\r\n static Interop;\r\n static InteropMethodName = \"T42.AppLogger.Log\";\r\n static Instance;\r\n path;\r\n subLoggers = [];\r\n _consoleLevel;\r\n _publishLevel;\r\n loggerFullName;\r\n includeTimeAndLevel;\r\n logFn = console;\r\n customLogFn = false;\r\n constructor(name, parent, logFn) {\r\n this.name = name;\r\n this.parent = parent;\r\n this.name = name;\r\n if (parent) {\r\n this.path = `${parent.path}.${name}`;\r\n }\r\n else {\r\n this.path = name;\r\n }\r\n this.loggerFullName = `[${this.path}]`;\r\n this.includeTimeAndLevel = !logFn;\r\n if (logFn) {\r\n this.logFn = logFn;\r\n this.customLogFn = true;\r\n }\r\n }\r\n subLogger(name) {\r\n const existingSub = this.subLoggers.filter((subLogger) => {\r\n return subLogger.name === name;\r\n })[0];\r\n if (existingSub !== undefined) {\r\n return existingSub;\r\n }\r\n Object.keys(this).forEach((key) => {\r\n if (key === name) {\r\n throw new Error(\"This sub logger name is not allowed.\");\r\n }\r\n });\r\n const sub = new Logger(name, this, this.customLogFn ? this.logFn : undefined);\r\n this.subLoggers.push(sub);\r\n return sub;\r\n }\r\n publishLevel(level) {\r\n if (level) {\r\n this._publishLevel = level;\r\n }\r\n return this._publishLevel || this.parent?.publishLevel();\r\n }\r\n consoleLevel(level) {\r\n if (level) {\r\n this._consoleLevel = level;\r\n }\r\n return this._consoleLevel || this.parent?.consoleLevel();\r\n }\r\n log(message, level, error) {\r\n this.publishMessage(level || \"info\", message, error);\r\n }\r\n trace(message) {\r\n this.log(message, \"trace\");\r\n }\r\n debug(message) {\r\n this.log(message, \"debug\");\r\n }\r\n info(message) {\r\n this.log(message, \"info\");\r\n }\r\n warn(message) {\r\n this.log(message, \"warn\");\r\n }\r\n error(message, err) {\r\n this.log(message, \"error\", err);\r\n }\r\n canPublish(level, compareWith) {\r\n const levelIdx = order.indexOf(level);\r\n const restrictionIdx = order.indexOf(compareWith || this.consoleLevel() || \"trace\");\r\n return levelIdx >= restrictionIdx;\r\n }\r\n publishMessage(level, message, error) {\r\n const loggerName = this.loggerFullName;\r\n if (level === \"error\" && !error) {\r\n const e = new Error();\r\n if (e.stack) {\r\n message =\r\n message +\r\n \"\\n\" +\r\n e.stack\r\n .split(\"\\n\")\r\n .slice(4)\r\n .join(\"\\n\");\r\n }\r\n }\r\n if (this.canPublish(level, this.publishLevel())) {\r\n const interop = Logger.Interop;\r\n if (interop) {\r\n try {\r\n if (interop.methods({ name: Logger.InteropMethodName }).length > 0) {\r\n const args = {\r\n msg: message,\r\n logger: loggerName,\r\n level\r\n };\r\n if (error && error instanceof Error) {\r\n args.error = {\r\n message: error.message,\r\n stack: error.stack ?? \"\"\r\n };\r\n }\r\n interop.invoke(Logger.InteropMethodName, args);\r\n }\r\n }\r\n catch {\r\n }\r\n }\r\n }\r\n if (this.canPublish(level)) {\r\n let prefix = \"\";\r\n if (this.includeTimeAndLevel) {\r\n const date = new Date();\r\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\r\n prefix = `[${time}] [${level}] `;\r\n }\r\n const toPrint = `${prefix}${loggerName}: ${message}`;\r\n switch (level) {\r\n case \"trace\":\r\n this.logFn.debug(toPrint);\r\n break;\r\n case \"debug\":\r\n if (this.logFn.debug) {\r\n this.logFn.debug(toPrint);\r\n }\r\n else {\r\n this.logFn.log(toPrint);\r\n }\r\n break;\r\n case \"info\":\r\n this.logFn.info(toPrint);\r\n break;\r\n case \"warn\":\r\n this.logFn.warn(toPrint);\r\n break;\r\n case \"error\":\r\n this.logFn.error(toPrint, error);\r\n break;\r\n }\r\n }\r\n }\r\n}\n\nconst GW_MESSAGE_CREATE_CONTEXT = \"create-context\";\r\nconst GW_MESSAGE_ACTIVITY_CREATED = \"created\";\r\nconst GW_MESSAGE_ACTIVITY_DESTROYED = \"destroyed\";\r\nconst GW_MESSAGE_CONTEXT_CREATED = \"context-created\";\r\nconst GW_MESSAGE_CONTEXT_ADDED = \"context-added\";\r\nconst GW_MESSAGE_SUBSCRIBE_CONTEXT = \"subscribe-context\";\r\nconst GW_MESSAGE_SUBSCRIBED_CONTEXT = \"subscribed-context\";\r\nconst GW_MESSAGE_UNSUBSCRIBE_CONTEXT = \"unsubscribe-context\";\r\nconst GW_MESSAGE_DESTROY_CONTEXT = \"destroy-context\";\r\nconst GW_MESSAGE_CONTEXT_DESTROYED = \"context-destroyed\";\r\nconst GW_MESSAGE_UPDATE_CONTEXT = \"update-context\";\r\nconst GW_MESSAGE_CONTEXT_UPDATED = \"context-updated\";\r\nconst GW_MESSAGE_JOINED_ACTIVITY = \"joined\";\n\nconst ContextMessageReplaySpec = {\r\n get name() {\r\n return \"context\";\r\n },\r\n get types() {\r\n return [\r\n GW_MESSAGE_CREATE_CONTEXT,\r\n GW_MESSAGE_ACTIVITY_CREATED,\r\n GW_MESSAGE_ACTIVITY_DESTROYED,\r\n GW_MESSAGE_CONTEXT_CREATED,\r\n GW_MESSAGE_CONTEXT_ADDED,\r\n GW_MESSAGE_SUBSCRIBE_CONTEXT,\r\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\r\n GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\r\n GW_MESSAGE_DESTROY_CONTEXT,\r\n GW_MESSAGE_CONTEXT_DESTROYED,\r\n GW_MESSAGE_UPDATE_CONTEXT,\r\n GW_MESSAGE_CONTEXT_UPDATED,\r\n GW_MESSAGE_JOINED_ACTIVITY\r\n ];\r\n }\r\n};\n\nvar version = \"6.4.3\";\n\nfunction prepareConfig (configuration, ext, glue42gd) {\r\n let nodeStartingContext;\r\n if (Utils.isNode()) {\r\n const startingContextString = process.env._GD_STARTING_CONTEXT_;\r\n if (startingContextString) {\r\n try {\r\n nodeStartingContext = JSON.parse(startingContextString);\r\n }\r\n catch {\r\n }\r\n }\r\n }\r\n function getConnection() {\r\n const gwConfig = configuration.gateway;\r\n const protocolVersion = gwConfig?.protocolVersion ?? 3;\r\n const reconnectInterval = gwConfig?.reconnectInterval;\r\n const reconnectAttempts = gwConfig?.reconnectAttempts;\r\n const defaultWs = \"ws://localhost:8385\";\r\n let ws = gwConfig?.ws;\r\n const sharedWorker = gwConfig?.sharedWorker;\r\n const inproc = gwConfig?.inproc;\r\n const webPlatform = gwConfig?.webPlatform ?? undefined;\r\n if (glue42gd) {\r\n ws = glue42gd.gwURL;\r\n }\r\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwURL) {\r\n ws = nodeStartingContext.gwURL;\r\n }\r\n if (!ws && !sharedWorker && !inproc) {\r\n ws = defaultWs;\r\n }\r\n let instanceId;\r\n let windowId;\r\n let pid;\r\n let environment;\r\n let region;\r\n const appName = getApplication();\r\n let uniqueAppName = appName;\r\n if (typeof glue42gd !== \"undefined\") {\r\n windowId = glue42gd.windowId;\r\n pid = glue42gd.pid;\r\n if (glue42gd.env) {\r\n environment = glue42gd.env.env;\r\n region = glue42gd.env.region;\r\n }\r\n uniqueAppName = glue42gd.application ?? \"glue-app\";\r\n instanceId = glue42gd.appInstanceId;\r\n }\r\n else if (Utils.isNode()) {\r\n pid = process.pid;\r\n if (nodeStartingContext) {\r\n environment = nodeStartingContext.env;\r\n region = nodeStartingContext.region;\r\n instanceId = nodeStartingContext.instanceId;\r\n }\r\n }\r\n else if (typeof window?.glue42electron !== \"undefined\") {\r\n windowId = window?.glue42electron.instanceId;\r\n pid = window?.glue42electron.pid;\r\n environment = window?.glue42electron.env;\r\n region = window?.glue42electron.region;\r\n uniqueAppName = window?.glue42electron.application ?? \"glue-app\";\r\n instanceId = window?.glue42electron.instanceId;\r\n }\r\n else ;\r\n const replaySpecs = configuration.gateway?.replaySpecs ?? [];\r\n replaySpecs.push(ContextMessageReplaySpec);\r\n let identity = {\r\n application: uniqueAppName,\r\n applicationName: appName,\r\n windowId,\r\n instance: instanceId,\r\n process: pid,\r\n region,\r\n environment,\r\n api: ext.version || version\r\n };\r\n if (configuration.identity) {\r\n identity = Object.assign(identity, configuration.identity);\r\n }\r\n return {\r\n identity,\r\n reconnectInterval,\r\n ws,\r\n sharedWorker,\r\n webPlatform,\r\n inproc,\r\n protocolVersion,\r\n reconnectAttempts,\r\n replaySpecs,\r\n };\r\n }\r\n function getContexts() {\r\n if (typeof configuration.contexts === \"undefined\") {\r\n return { reAnnounceKnownContexts: true };\r\n }\r\n if (typeof configuration.contexts === \"boolean\" && configuration.contexts) {\r\n return { reAnnounceKnownContexts: true };\r\n }\r\n if (typeof configuration.contexts === \"object\") {\r\n return Object.assign({}, { reAnnounceKnownContexts: true }, configuration.contexts);\r\n }\r\n return false;\r\n }\r\n function getApplication() {\r\n if (configuration.application) {\r\n return configuration.application;\r\n }\r\n if (glue42gd) {\r\n return glue42gd.applicationName;\r\n }\r\n if (typeof window !== \"undefined\" && typeof window.glue42electron !== \"undefined\") {\r\n return window.glue42electron.application;\r\n }\r\n const uid = nanoid(10);\r\n if (Utils.isNode()) {\r\n if (nodeStartingContext) {\r\n return nodeStartingContext.applicationConfig.name;\r\n }\r\n return \"NodeJS\" + uid;\r\n }\r\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\r\n return document.title + ` (${uid})`;\r\n }\r\n return uid;\r\n }\r\n function getAuth() {\r\n if (typeof configuration.auth === \"string\") {\r\n return {\r\n token: configuration.auth\r\n };\r\n }\r\n if (configuration.auth) {\r\n return configuration.auth;\r\n }\r\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwToken) {\r\n return {\r\n gatewayToken: nodeStartingContext.gwToken\r\n };\r\n }\r\n if (configuration.gateway?.webPlatform || configuration.gateway?.inproc || configuration.gateway?.sharedWorker) {\r\n return {\r\n username: \"glue42\", password: \"glue42\"\r\n };\r\n }\r\n }\r\n function getLogger() {\r\n let config = configuration.logger;\r\n const defaultLevel = \"warn\";\r\n if (!config) {\r\n config = defaultLevel;\r\n }\r\n let gdConsoleLevel;\r\n if (glue42gd) {\r\n gdConsoleLevel = glue42gd.consoleLogLevel;\r\n }\r\n if (typeof config === \"string\") {\r\n return { console: gdConsoleLevel ?? config, publish: defaultLevel };\r\n }\r\n return {\r\n console: gdConsoleLevel ?? config.console ?? defaultLevel,\r\n publish: config.publish ?? defaultLevel\r\n };\r\n }\r\n const connection = getConnection();\r\n let application = getApplication();\r\n if (typeof window !== \"undefined\") {\r\n const windowAsAny = window;\r\n const containerApplication = windowAsAny.htmlContainer ?\r\n `${windowAsAny.htmlContainer.containerName}.${windowAsAny.htmlContainer.application}` :\r\n windowAsAny?.glue42gd?.application;\r\n if (containerApplication) {\r\n application = containerApplication;\r\n }\r\n }\r\n return {\r\n bus: configuration.bus ?? false,\r\n application,\r\n auth: getAuth(),\r\n logger: getLogger(),\r\n connection,\r\n metrics: configuration.metrics ?? true,\r\n contexts: getContexts(),\r\n version: ext.version || version,\r\n libs: ext.libs ?? [],\r\n customLogger: configuration.customLogger\r\n };\r\n}\n\nclass GW3ContextData {\r\n name;\r\n contextId;\r\n context;\r\n isAnnounced;\r\n joinedActivity;\r\n updateCallbacks = {};\r\n activityId;\r\n sentExplicitSubscription;\r\n hasReceivedSnapshot;\r\n constructor(contextId, name, isAnnounced, activityId) {\r\n this.contextId = contextId;\r\n this.name = name;\r\n this.isAnnounced = isAnnounced;\r\n this.activityId = activityId;\r\n this.context = {};\r\n }\r\n hasCallbacks() {\r\n return Object.keys(this.updateCallbacks).length > 0;\r\n }\r\n getState() {\r\n if (this.isAnnounced && this.hasCallbacks()) {\r\n return 3;\r\n }\r\n if (this.isAnnounced) {\r\n return 2;\r\n }\r\n if (this.hasCallbacks()) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\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) {\r\n try {\r\n if (logger?.canPublish(\"trace\")) {\r\n logger?.trace(`applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`);\r\n }\r\n if (!delta) {\r\n return context;\r\n }\r\n if (delta.reset) {\r\n context = { ...delta.reset };\r\n return context;\r\n }\r\n context = deepClone(context, undefined);\r\n if (delta.commands) {\r\n for (const command of delta.commands) {\r\n if (command.type === \"remove\") {\r\n deletePath(context, command.path);\r\n }\r\n else if (command.type === \"set\") {\r\n setValueToPath(context, command.value, command.path);\r\n }\r\n }\r\n return context;\r\n }\r\n const added = delta.added;\r\n const updated = delta.updated;\r\n const removed = delta.removed;\r\n if (added) {\r\n Object.keys(added).forEach((key) => {\r\n context[key] = added[key];\r\n });\r\n }\r\n if (updated) {\r\n Object.keys(updated).forEach((key) => {\r\n mergeObjectsProperties(key, context, updated);\r\n });\r\n }\r\n if (removed) {\r\n removed.forEach((key) => {\r\n delete context[key];\r\n });\r\n }\r\n return context;\r\n }\r\n catch (e) {\r\n logger?.error(`error applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`, e);\r\n return context;\r\n }\r\n}\r\nfunction deepClone(obj, hash) {\r\n return cloneDeep(obj);\r\n}\r\nconst mergeObjectsProperties = (key, what, withWhat) => {\r\n const right = withWhat[key];\r\n if (right === undefined) {\r\n return what;\r\n }\r\n const left = what[key];\r\n if (!left || !right) {\r\n what[key] = right;\r\n return what;\r\n }\r\n if (typeof left === \"string\" ||\r\n typeof left === \"number\" ||\r\n typeof left === \"boolean\" ||\r\n typeof right === \"string\" ||\r\n typeof right === \"number\" ||\r\n typeof right === \"boolean\" ||\r\n Array.isArray(left) ||\r\n Array.isArray(right)) {\r\n what[key] = right;\r\n return what;\r\n }\r\n what[key] = Object.assign({}, left, right);\r\n return what;\r\n};\r\nfunction deepEqual(x, y) {\r\n if (x === y) {\r\n return true;\r\n }\r\n if (!(x instanceof Object) || !(y instanceof Object)) {\r\n return false;\r\n }\r\n if (x.constructor !== y.constructor) {\r\n return false;\r\n }\r\n for (const p in x) {\r\n if (!x.hasOwnProperty(p)) {\r\n continue;\r\n }\r\n if (!y.hasOwnProperty(p)) {\r\n return false;\r\n }\r\n if (x[p] === y[p]) {\r\n continue;\r\n }\r\n if (typeof (x[p]) !== \"object\") {\r\n return false;\r\n }\r\n if (!deepEqual(x[p], y[p])) {\r\n return false;\r\n }\r\n }\r\n for (const p in y) {\r\n if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction setValueToPath(obj, value, path) {\r\n const pathArr = path.split(\".\");\r\n let i;\r\n for (i = 0; i < pathArr.length - 1; i++) {\r\n if (!obj[pathArr[i]]) {\r\n obj[pathArr[i]] = {};\r\n }\r\n if (typeof obj[pathArr[i]] !== \"object\") {\r\n obj[pathArr[i]] = {};\r\n }\r\n obj = obj[pathArr[i]];\r\n }\r\n obj[pathArr[i]] = value;\r\n}\r\nfunction isSubset(superObj, subObj) {\r\n return Object.keys(subObj).every((ele) => {\r\n if (typeof subObj[ele] === \"object\") {\r\n return isSubset(superObj?.[ele] || {}, subObj[ele] || {});\r\n }\r\n return subObj[ele] === superObj?.[ele];\r\n });\r\n}\r\nfunction deletePath(obj, path) {\r\n const pathArr = path.split(\".\");\r\n let i;\r\n for (i = 0; i < pathArr.length - 1; i++) {\r\n if (!obj[pathArr[i]]) {\r\n return;\r\n }\r\n obj = obj[pathArr[i]];\r\n }\r\n delete obj[pathArr[i]];\r\n}\n\nclass GW3Bridge {\r\n _logger;\r\n _connection;\r\n _trackAllContexts;\r\n _reAnnounceKnownContexts;\r\n _gw3Session;\r\n _contextNameToData = {};\r\n _gw3Subscriptions = [];\r\n _nextCallbackSubscriptionNumber = 0;\r\n _creationPromises = {};\r\n _contextNameToId = {};\r\n _contextIdToName = {};\r\n _protocolVersion = undefined;\r\n _contextsTempCache = {};\r\n _contextsSubscriptionsCache = [];\r\n _systemContextsSubKey;\r\n get protocolVersion() {\r\n if (!this._protocolVersion) {\r\n const contextsDomainInfo = this._connection.availableDomains.find((d) => d.uri === \"context\");\r\n this._protocolVersion = contextsDomainInfo?.version ?? 1;\r\n }\r\n return this._protocolVersion;\r\n }\r\n get setPathSupported() {\r\n return this.protocolVersion >= 2;\r\n }\r\n constructor(config) {\r\n this._connection = config.connection;\r\n this._logger = config.logger;\r\n this._trackAllContexts = config.trackAllContexts;\r\n this._reAnnounceKnownContexts = config.reAnnounceKnownContexts;\r\n this._gw3Session = this._connection.domain(\"global\", [\r\n GW_MESSAGE_CONTEXT_CREATED,\r\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\r\n GW_MESSAGE_CONTEXT_DESTROYED,\r\n GW_MESSAGE_CONTEXT_UPDATED,\r\n ]);\r\n this._gw3Session.disconnected(this.resetState.bind(this));\r\n this._gw3Session.onJoined((wasReconnect) => {\r\n if (!wasReconnect) {\r\n return;\r\n }\r\n if (!this._reAnnounceKnownContexts) {\r\n return this._connection.setLibReAnnounced({ name: \"contexts\" });\r\n }\r\n this.reInitiateState().then(() => this._connection.setLibReAnnounced({ name: \"contexts\" }));\r\n });\r\n this.subscribeToContextCreatedMessages();\r\n this.subscribeToContextUpdatedMessages();\r\n this.subscribeToContextDestroyedMessages();\r\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\r\n const type = message.type;\r\n if (!type) {\r\n return;\r\n }\r\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\r\n type === GW_MESSAGE_CONTEXT_ADDED ||\r\n type === GW_MESSAGE_ACTIVITY_CREATED) {\r\n this.handleContextCreatedMessage(message);\r\n }\r\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\r\n type === GW_MESSAGE_CONTEXT_UPDATED ||\r\n type === GW_MESSAGE_JOINED_ACTIVITY) {\r\n this.handleContextUpdatedMessage(message);\r\n }\r\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\r\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\r\n this.handleContextDestroyedMessage(message);\r\n }\r\n });\r\n }\r\n dispose() {\r\n for (const sub of this._gw3Subscriptions) {\r\n this._connection.off(sub);\r\n }\r\n this._gw3Subscriptions.length = 0;\r\n for (const contextName in this._contextNameToData) {\r\n if (this._contextNameToId.hasOwnProperty(contextName)) {\r\n delete this._contextNameToData[contextName];\r\n }\r\n }\r\n }\r\n createContext(name, data) {\r\n if (name in this._creationPromises) {\r\n return this._creationPromises[name];\r\n }\r\n this._creationPromises[name] =\r\n this._gw3Session\r\n .send({\r\n type: GW_MESSAGE_CREATE_CONTEXT,\r\n domain: \"global\",\r\n name,\r\n data,\r\n lifetime: \"retained\",\r\n })\r\n .then((createContextMsg) => {\r\n this._contextNameToId[name] = createContextMsg.context_id;\r\n this._contextIdToName[createContextMsg.context_id] = name;\r\n const contextData = this._contextNameToData[name] || new GW3ContextData(createContextMsg.context_id, name, true, undefined);\r\n contextData.isAnnounced = true;\r\n contextData.name = name;\r\n contextData.contextId = createContextMsg.context_id;\r\n contextData.context = createContextMsg.data || deepClone(data);\r\n contextData.hasReceivedSnapshot = true;\r\n this._contextNameToData[name] = contextData;\r\n delete this._creationPromises[name];\r\n return createContextMsg.context_id;\r\n });\r\n return this._creationPromises[name];\r\n }\r\n all() {\r\n return Object.keys(this._contextNameToData)\r\n .filter((name) => this._contextNameToData[name].isAnnounced);\r\n }\r\n async update(name, delta) {\r\n if (delta) {\r\n delta = deepClone(delta);\r\n }\r\n if (name in this._creationPromises) {\r\n await this._creationPromises[name];\r\n }\r\n const contextData = this._contextNameToData[name];\r\n if (!contextData || !contextData.isAnnounced) {\r\n return this.createContext(name, delta);\r\n }\r\n let currentContext = contextData.context;\r\n if (!contextData.hasCallbacks()) {\r\n currentContext = await this.get(contextData.name);\r\n }\r\n const calculatedDelta = this.setPathSupported ?\r\n this.calculateContextDeltaV2(currentContext, delta) :\r\n this.calculateContextDeltaV1(currentContext, delta);\r\n if (!Object.keys(calculatedDelta.added).length\r\n && !Object.keys(calculatedDelta.updated).length\r\n && !calculatedDelta.removed.length\r\n && !calculatedDelta.commands?.length) {\r\n return Promise.resolve();\r\n }\r\n return this._gw3Session\r\n .send({\r\n type: GW_MESSAGE_UPDATE_CONTEXT,\r\n domain: \"global\",\r\n context_id: contextData.contextId,\r\n delta: calculatedDelta,\r\n }, {}, { skipPeerId: false })\r\n .then((gwResponse) => {\r\n this.handleUpdated(contextData, calculatedDelta, {\r\n updaterId: gwResponse.peer_id\r\n });\r\n });\r\n }\r\n async set(name, data) {\r\n if (data) {\r\n data = deepClone(data);\r\n }\r\n if (name in this._creationPromises) {\r\n await this._creationPromises[name];\r\n }\r\n const contextData = this._contextNameToData[name];\r\n if (!contextData || !contextData.isAnnounced) {\r\n return this.createContext(name, data);\r\n }\r\n return this._gw3Session\r\n .send({\r\n type: GW_MESSAGE_UPDATE_CONTEXT,\r\n domain: \"global\",\r\n context_id: contextData.contextId,\r\n delta: { reset: data },\r\n }, {}, { skipPeerId: false })\r\n .then((gwResponse) => {\r\n this.handleUpdated(contextData, {\r\n reset: data,\r\n added: {},\r\n removed: [],\r\n updated: {}\r\n }, {\r\n updaterId: gwResponse.peer_id\r\n });\r\n });\r\n }\r\n setPath(name, path, value) {\r\n if (!this.setPathSupported) {\r\n return Promise.reject(\"glue.contexts.setPath operation is not supported, use Glue42 3.10 or later\");\r\n }\r\n return this.setPaths(name, [{ path, value }]);\r\n }\r\n async setPaths(name, pathValues) {\r\n if (!this.setPathSupported) {\r\n return Promise.reject(\"glue.contexts.setPaths operation is not supported, use Glue42 3.10 or later\");\r\n }\r\n if (pathValues) {\r\n pathValues = deepClone(pathValues);\r\n }\r\n if (name in this._creationPromises) {\r\n await this._creationPromises[name];\r\n }\r\n const contextData = this._contextNameToData[name];\r\n if (!contextData || !contextData.isAnnounced) {\r\n const obj = {};\r\n for (const pathValue of pathValues) {\r\n setValueToPath(obj, pathValue.value, pathValue.path);\r\n }\r\n return this.createContext(name, obj);\r\n }\r\n const commands = [];\r\n for (const pathValue of pathValues) {\r\n if (pathValue.value === null) {\r\n commands.push({ type: \"remove\", path: pathValue.path });\r\n }\r\n else {\r\n commands.push({ type: \"set\", path: pathValue.path, value: pathValue.value });\r\n }\r\n }\r\n return this._gw3Session\r\n .send({\r\n type: GW_MESSAGE_UPDATE_CONTEXT,\r\n domain: \"global\",\r\n context_id: contextData.contextId,\r\n delta: { commands }\r\n }, {}, { skipPeerId: false })\r\n .then((gwResponse) => {\r\n this.handleUpdated(contextData, {\r\n added: {},\r\n removed: [],\r\n updated: {},\r\n commands\r\n }, {\r\n updaterId: gwResponse.peer_id\r\n });\r\n });\r\n }\r\n async get(name) {\r\n if (name in this._creationPromises) {\r\n await this._creationPromises[name];\r\n }\r\n const contextData = this._contextNameToData[name];\r\n if (!contextData || !contextData.isAnnounced) {\r\n return Promise.resolve({});\r\n }\r\n if (contextData && (!contextData.hasCallbacks() || !contextData.hasReceivedSnapshot)) {\r\n return new Promise((resolve) => {\r\n this.subscribe(name, (data, _d, _r, un) => {\r\n this.unsubscribe(un);\r\n resolve(data);\r\n });\r\n });\r\n }\r\n const context = contextData?.context ?? {};\r\n return Promise.resolve(deepClone(context));\r\n }\r\n async subscribe(name, callback, subscriptionKey) {\r\n if (name in this._creationPromises) {\r\n await this._creationPromises[name];\r\n }\r\n const thisCallbackSubscriptionNumber = typeof subscriptionKey === \"undefined\" ? this._nextCallbackSubscriptionNumber : subscriptionKey;\r\n if (typeof subscriptionKey === \"undefined\") {\r\n this._nextCallbackSubscriptionNumber += 1;\r\n }\r\n if (this._contextsSubscriptionsCache.every((subscription) => subscription.subKey !== this._nextCallbackSubscriptionNumber)) {\r\n this._contextsSubscriptionsCache.push({ contextName: name, subKey: thisCallbackSubscriptionNumber, callback });\r\n }\r\n let contextData = this._contextNameToData[name];\r\n if (!contextData ||\r\n !contextData.isAnnounced) {\r\n contextData = contextData || new GW3ContextData(undefined, name, false, undefined);\r\n this._contextNameToData[name] = contextData;\r\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\r\n return Promise.resolve(thisCallbackSubscriptionNumber);\r\n }\r\n const hadCallbacks = contextData.hasCallbacks();\r\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\r\n if (!hadCallbacks) {\r\n if (!contextData.joinedActivity) {\r\n if (contextData.context && contextData.sentExplicitSubscription) {\r\n if (contextData.hasReceivedSnapshot) {\r\n const clone = deepClone(contextData.context);\r\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\r\n }\r\n return Promise.resolve(thisCallbackSubscriptionNumber);\r\n }\r\n return this.sendSubscribe(contextData)\r\n .then(() => thisCallbackSubscriptionNumber);\r\n }\r\n else {\r\n if (contextData.hasReceivedSnapshot) {\r\n const clone = deepClone(contextData.context);\r\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\r\n }\r\n return Promise.resolve(thisCallbackSubscriptionNumber);\r\n }\r\n }\r\n else {\r\n if (contextData.hasReceivedSnapshot) {\r\n const clone = deepClone(contextData.context);\r\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\r\n }\r\n return Promise.resolve(thisCallbackSubscriptionNumber);\r\n }\r\n }\r\n unsubscribe(subscriptionKey) {\r\n this._contextsSubscriptionsCache = this._contextsSubscriptionsCache.filter((subscription) => subscription.subKey !== subscriptionKey);\r\n for (const name of Object.keys(this._contextNameToData)) {\r\n const contextData = this._contextNameToData[name];\r\n if (!contextData) {\r\n return;\r\n }\r\n const hadCallbacks = contextData.hasCallbacks();\r\n delete contextData.updateCallbacks[subscriptionKey];\r\n if (contextData.isAnnounced &&\r\n hadCallbacks &&\r\n !contextData.hasCallbacks() &&\r\n contextData.sentExplicitSubscription) {\r\n this.sendUnsubscribe(contextData).catch(() => { });\r\n }\r\n if (!contextData.isAnnounced &&\r\n !contextData.hasCallbacks()) {\r\n delete this._contextNameToData[name];\r\n }\r\n }\r\n }\r\n async destroy(name) {\r\n if (name in this._creationPromises) {\r\n await this._creationPromises[name];\r\n }\r\n const contextData = this._contextNameToData[name];\r\n if (!contextData) {\r\n return Promise.reject(`context with ${name} does not exist`);\r\n }\r\n return this._gw3Session\r\n .send({\r\n type: GW_MESSAGE_DESTROY_CONTEXT,\r\n domain: \"global\",\r\n context_id: contextData.contextId,\r\n }).then((_) => undefined);\r\n }\r\n handleUpdated(contextData, delta, extraData) {\r\n const oldContext = contextData.context;\r\n contextData.context = applyContextDelta(contextData.context, delta, this._logger);\r\n contextData.hasReceivedSnapshot = true;\r\n if (this._contextNameToData[contextData.name] === contextData &&\r\n !deepEqual(oldContext, contextData.context)) {\r\n this.invokeUpdateCallbacks(contextData, delta, extraData);\r\n }\r\n }\r\n subscribeToContextCreatedMessages() {\r\n const createdMessageTypes = [\r\n GW_MESSAGE_CONTEXT_ADDED,\r\n GW_MESSAGE_CONTEXT_CREATED,\r\n GW_MESSAGE_ACTIVITY_CREATED,\r\n ];\r\n for (const createdMessageType of createdMessageTypes) {\r\n const sub = this._connection.on(createdMessageType, this.handleContextCreatedMessage.bind(this));\r\n this._gw3Subscriptions.push(sub);\r\n }\r\n }\r\n handleContextCreatedMessage(contextCreatedMsg) {\r\n const createdMessageType = contextCreatedMsg.type;\r\n if (createdMessageType === GW_MESSAGE_ACTIVITY_CREATED) {\r\n this._contextNameToId[contextCreatedMsg.activity_id] = contextCreatedMsg.context_id;\r\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.activity_id;\r\n }\r\n else if (createdMessageType === GW_MESSAGE_CONTEXT_ADDED) {\r\n this._contextNameToId[contextCreatedMsg.name] = contextCreatedMsg.context_id;\r\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.name;\r\n }\r\n else ;\r\n const name = this._contextIdToName[contextCreatedMsg.context_id];\r\n if (!name) {\r\n throw new Error(\"Received created event for context with unknown name: \" + contextCreatedMsg.context_id);\r\n }\r\n if (!this._contextNameToId[name]) {\r\n throw new Error(\"Received created event for context with unknown id: \" + contextCreatedMsg.context_id);\r\n }\r\n let contextData = this._contextNameToData[name];\r\n if (contextData) {\r\n if (contextData.isAnnounced) {\r\n return;\r\n }\r\n else {\r\n if (!contextData.hasCallbacks()) {\r\n throw new Error(\"Assertion failure: contextData.hasCallbacks()\");\r\n }\r\n contextData.isAnnounced = true;\r\n contextData.contextId = contextCreatedMsg.context_id;\r\n contextData.activityId = contextCreatedMsg.activity_id;\r\n if (!contextData.sentExplicitSubscription) {\r\n this.sendSubscribe(contextData);\r\n }\r\n }\r\n }\r\n else {\r\n this._contextNameToData[name] = contextData =\r\n new GW3ContextData(contextCreatedMsg.context_id, name, true, contextCreatedMsg.activity_id);\r\n if (this._trackAllContexts) {\r\n this.subscribe(name, () => { }).then((subKey) => this._systemContextsSubKey = subKey);\r\n }\r\n }\r\n }\r\n subscribeToContextUpdatedMessages() {\r\n const updatedMessageTypes = [\r\n GW_MESSAGE_CONTEXT_UPDATED,\r\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\r\n GW_MESSAGE_JOINED_ACTIVITY,\r\n ];\r\n for (const updatedMessageType of updatedMessageTypes) {\r\n const sub = this._connection.on(updatedMessageType, this.handleContextUpdatedMessage.bind(this));\r\n this._gw3Subscriptions.push(sub);\r\n }\r\n }\r\n handleContextUpdatedMessage(contextUpdatedMsg) {\r\n const updatedMessageType = contextUpdatedMsg.type;\r\n const contextId = contextUpdatedMsg.context_id;\r\n let contextData = this._contextNameToData[this._contextIdToName[contextId]];\r\n const justSeen = !contextData || !contextData.isAnnounced;\r\n if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\r\n if (!contextData) {\r\n contextData =\r\n this._contextNameToData[contextUpdatedMsg.activity_id] ||\r\n new GW3ContextData(contextId, contextUpdatedMsg.activity_id, true, contextUpdatedMsg.activity_id);\r\n }\r\n this._contextNameToData[contextUpdatedMsg.activity_id] = contextData;\r\n this._contextIdToName[contextId] = contextUpdatedMsg.activity_id;\r\n this._contextNameToId[contextUpdatedMsg.activity_id] = contextId;\r\n contextData.contextId = contextId;\r\n contextData.isAnnounced = true;\r\n contextData.activityId = contextUpdatedMsg.activity_id;\r\n contextData.joinedActivity = true;\r\n }\r\n else {\r\n if (!contextData || !contextData.isAnnounced) {\r\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\r\n contextData = contextData || new GW3ContextData(contextId, contextUpdatedMsg.name, true, undefined);\r\n contextData.sentExplicitSubscription = true;\r\n this._contextNameToData[contextUpdatedMsg.name] = contextData;\r\n this._contextIdToName[contextId] = contextUpdatedMsg.name;\r\n this._contextNameToId[contextUpdatedMsg.name] = contextId;\r\n }\r\n else {\r\n this._logger.error(`Received 'update' for unknown context: ${contextId}`);\r\n }\r\n return;\r\n }\r\n }\r\n const oldContext = contextData.context;\r\n contextData.hasReceivedSnapshot = true;\r\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\r\n contextData.context = contextUpdatedMsg.data || {};\r\n }\r\n else if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\r\n contextData.context = contextUpdatedMsg.context_snapshot || {};\r\n }\r\n else if (updatedMessageType === GW_MESSAGE_CONTEXT_UPDATED) {\r\n contextData.context = applyContextDelta(contextData.context, contextUpdatedMsg.delta, this._logger);\r\n }\r\n else {\r\n throw new Error(\"Unrecognized context update message \" + updatedMessageType);\r\n }\r\n if (justSeen ||\r\n !deepEqual(contextData.context, oldContext) ||\r\n updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\r\n this.invokeUpdateCallbacks(contextData, contextUpdatedMsg.delta, { updaterId: contextUpdatedMsg.updater_id });\r\n }\r\n }\r\n invokeUpdateCallbacks(contextData, delta, extraData) {\r\n delta = delta || { added: {}, updated: {}, reset: {}, removed: [] };\r\n if (delta.commands) {\r\n delta.added = delta.updated = delta.reset = {};\r\n delta.removed = [];\r\n for (const command of delta.commands) {\r\n if (command.type === \"remove\") {\r\n if (command.path.indexOf(\".\") === -1) {\r\n delta.removed.push(command.path);\r\n }\r\n setValueToPath(delta.updated, null, command.path);\r\n }\r\n else if (command.type === \"set\") {\r\n setValueToPath(delta.updated, command.value, command.path);\r\n }\r\n }\r\n }\r\n for (const updateCallbackIndex in contextData.updateCallbacks) {\r\n if (contextData.updateCallbacks.hasOwnProperty(updateCallbackIndex)) {\r\n try {\r\n const updateCallback = contextData.updateCallbacks[updateCallbackIndex];\r\n updateCallback(deepClone(contextData.context), deepClone(Object.assign({}, delta.added || {}, delta.updated || {}, delta.reset || {})), delta.removed, parseInt(updateCallbackIndex, 10), extraData);\r\n }\r\n catch (err) {\r\n this._logger.debug(\"callback error: \" + JSON.stringify(err));\r\n }\r\n }\r\n }\r\n }\r\n subscribeToContextDestroyedMessages() {\r\n const destroyedMessageTypes = [\r\n GW_MESSAGE_CONTEXT_DESTROYED,\r\n GW_MESSAGE_ACTIVITY_DESTROYED,\r\n ];\r\n for (const destroyedMessageType of destroyedMessageTypes) {\r\n const sub = this._connection.on(destroyedMessageType, this.handleContextDestroyedMessage.bind(this));\r\n this._gw3Subscriptions.push(sub);\r\n }\r\n }\r\n handleContextDestroyedMessage(destroyedMsg) {\r\n const destroyedMessageType = destroyedMsg.type;\r\n let contextId;\r\n let name;\r\n if (destroyedMessageType === GW_MESSAGE_ACTIVITY_DESTROYED) {\r\n name = destroyedMsg.activity_id;\r\n contextId = this._contextNameToId[name];\r\n if (!contextId) {\r\n this._logger.error(`Received 'destroyed' for unknown activity: ${destroyedMsg.activity_id}`);\r\n return;\r\n }\r\n }\r\n else {\r\n contextId = destroyedMsg.context_id;\r\n name = this._contextIdToName[contextId];\r\n if (!name) {\r\n this._logger.error(`Received 'destroyed' for unknown context: ${destroyedMsg.context_id}`);\r\n return;\r\n }\r\n }\r\n delete this._contextIdToName[contextId];\r\n delete this._contextNameToId[name];\r\n const contextData = this._contextNameToData[name];\r\n delete this._contextNameToData[name];\r\n if (!contextData || !contextData.isAnnounced) {\r\n this._logger.error(`Received 'destroyed' for unknown context: ${contextId}`);\r\n return;\r\n }\r\n }\r\n sendSubscribe(contextData) {\r\n contextData.sentExplicitSubscription = true;\r\n return this._gw3Session\r\n .send({\r\n type: GW_MESSAGE_SUBSCRIBE_CONTEXT,\r\n domain: \"global\",\r\n context_id: contextData.contextId,\r\n }).then((_) => undefined);\r\n }\r\n sendUnsubscribe(contextData) {\r\n contextData.sentExplicitSubscription = false;\r\n return this._gw3Session\r\n .send({\r\n type: GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\r\n domain: \"global\",\r\n context_id: contextData.contextId,\r\n }).then((_) => undefined);\r\n }\r\n calculateContextDeltaV1(from, to) {\r\n const delta = { added: {}, updated: {}, removed: [], reset: undefined };\r\n if (from) {\r\n for (const x of Object.keys(from)) {\r\n if (Object.keys(to).indexOf(x) !== -1\r\n && to[x] !== null\r\n && !deepEqual(from[x], to[x])) {\r\n delta.updated[x] = to[x];\r\n }\r\n }\r\n }\r\n for (const x of Object.keys(to)) {\r\n if (!from || (Object.keys(from).indexOf(x) === -1)) {\r\n if (to[x] !== null) {\r\n delta.added[x] = to[x];\r\n }\r\n }\r\n else if (to[x] === null) {\r\n delta.removed.push(x);\r\n }\r\n }\r\n return delta;\r\n }\r\n calculateContextDeltaV2(from, to) {\r\n const delta = { added: {}, updated: {}, removed: [], reset: undefined, commands: [] };\r\n for (const x of Object.keys(to)) {\r\n if (to[x] !== null) {\r\n const fromX = from ? from[x] : null;\r\n if (!deepEqual(fromX, to[x])) {\r\n delta.commands?.push({ type: \"set\", path: x, value: to[x] });\r\n }\r\n }\r\n else {\r\n delta.commands?.push({ type: \"remove\", path: x });\r\n }\r\n }\r\n return delta;\r\n }\r\n resetState() {\r\n for (const sub of this._gw3Subscriptions) {\r\n this._connection.off(sub);\r\n }\r\n if (this._systemContextsSubKey) {\r\n this.unsubscribe(this._systemContextsSubKey);\r\n delete this._systemContextsSubKey;\r\n }\r\n this._gw3Subscriptions = [];\r\n this._contextNameToId = {};\r\n this._contextIdToName = {};\r\n delete this._protocolVersion;\r\n this._contextsTempCache = Object.keys(this._contextNameToData).reduce((cacheSoFar, ctxName) => {\r\n cacheSoFar[ctxName] = this._contextNameToData[ctxName].context;\r\n return cacheSoFar;\r\n }, {});\r\n this._contextNameToData = {};\r\n }\r\n async reInitiateState() {\r\n this.subscribeToContextCreatedMessages();\r\n this.subscribeToContextUpdatedMessages();\r\n this.subscribeToContextDestroyedMessages();\r\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\r\n const type = message.type;\r\n if (!type) {\r\n return;\r\n }\r\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\r\n type === GW_MESSAGE_CONTEXT_ADDED ||\r\n type === GW_MESSAGE_ACTIVITY_CREATED) {\r\n this.handleContextCreatedMessage(message);\r\n }\r\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\r\n type === GW_MESSAGE_CONTEXT_UPDATED ||\r\n type === GW_MESSAGE_JOINED_ACTIVITY) {\r\n this.handleContextUpdatedMessage(message);\r\n }\r\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\r\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\r\n this.handleContextDestroyedMessage(message);\r\n }\r\n });\r\n await Promise.all(this._contextsSubscriptionsCache.map((subscription) => this.subscribe(subscription.contextName, subscription.callback, subscription.subKey)));\r\n await this.flushQueue();\r\n for (const ctxName in this._contextsTempCache) {\r\n if (typeof this._contextsTempCache[ctxName] !== \"object\" || Object.keys(this._contextsTempCache[ctxName]).length === 0) {\r\n continue;\r\n }\r\n const lastKnownData = this._contextsTempCache[ctxName];\r\n this._logger.info(`Re-announcing known context: ${ctxName}`);\r\n await this.flushQueue();\r\n await this.update(ctxName, lastKnownData);\r\n }\r\n this._contextsTempCache = {};\r\n this._logger.info(\"Contexts are re-announced\");\r\n }\r\n flushQueue() {\r\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\r\n }\r\n}\n\nclass ContextsModule {\r\n initTime;\r\n initStartTime;\r\n initEndTime;\r\n _bridge;\r\n constructor(config) {\r\n this._bridge = new GW3Bridge(config);\r\n }\r\n all() {\r\n return this._bridge.all();\r\n }\r\n update(name, data) {\r\n this.checkName(name);\r\n this.checkData(data);\r\n return this._bridge.update(name, data);\r\n }\r\n set(name, data) {\r\n this.checkName(name);\r\n this.checkData(data);\r\n return this._bridge.set(name, data);\r\n }\r\n setPath(name, path, data) {\r\n this.checkName(name);\r\n this.checkPath(path);\r\n const isTopLevelPath = path === \"\";\r\n if (isTopLevelPath) {\r\n this.checkData(data);\r\n return this.set(name, data);\r\n }\r\n return this._bridge.setPath(name, path, data);\r\n }\r\n setPaths(name, paths) {\r\n this.checkName(name);\r\n if (!Array.isArray(paths)) {\r\n throw new Error(\"Please provide the paths as an array of PathValues!\");\r\n }\r\n for (const { path, value } of paths) {\r\n this.checkPath(path);\r\n const isTopLevelPath = path === \"\";\r\n if (isTopLevelPath) {\r\n this.checkData(value);\r\n }\r\n }\r\n return this._bridge.setPaths(name, paths);\r\n }\r\n subscribe(name, callback) {\r\n this.checkName(name);\r\n if (typeof callback !== \"function\") {\r\n throw new Error(\"Please provide the callback as a function!\");\r\n }\r\n return this._bridge\r\n .subscribe(name, (data, delta, removed, key, extraData) => callback(data, delta, removed, () => this._bridge.unsubscribe(key), extraData))\r\n .then((key) => () => {\r\n this._bridge.unsubscribe(key);\r\n });\r\n }\r\n get(name) {\r\n this.checkName(name);\r\n return this._bridge.get(name);\r\n }\r\n ready() {\r\n return Promise.resolve(this);\r\n }\r\n destroy(name) {\r\n this.checkName(name);\r\n return this._bridge.destroy(name);\r\n }\r\n get setPathSupported() {\r\n return this._bridge.setPathSupported;\r\n }\r\n checkName(name) {\r\n if (typeof name !== \"string\" || name === \"\") {\r\n throw new Error(\"Please provide the name as a non-empty string!\");\r\n }\r\n }\r\n checkPath(path) {\r\n if (typeof path !== \"string\") {\r\n throw new Error(\"Please provide the path as a dot delimited string!\");\r\n }\r\n }\r\n checkData(data) {\r\n if (typeof data !== \"object\") {\r\n throw new Error(\"Please provide the data as an object!\");\r\n }\r\n }\r\n}\n\nfunction promisify (promise, successCallback, errorCallback) {\r\n if (typeof successCallback !== \"function\" && typeof errorCallback !== \"function\") {\r\n return promise;\r\n }\r\n if (typeof successCallback !== \"function\") {\r\n successCallback = () => { };\r\n }\r\n else if (typeof errorCallback !== \"function\") {\r\n errorCallback = () => { };\r\n }\r\n return promise.then(successCallback, errorCallback);\r\n}\n\nfunction rejectAfter(ms = 0, promise, error) {\r\n let timeout;\r\n const clearTimeoutIfThere = () => {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n }\r\n };\r\n promise\r\n .then(() => {\r\n clearTimeoutIfThere();\r\n })\r\n .catch(() => {\r\n clearTimeoutIfThere();\r\n });\r\n return new Promise((resolve, reject) => {\r\n timeout = setTimeout(() => reject(error), ms);\r\n });\r\n}\n\nvar InvokeStatus;\r\n(function (InvokeStatus) {\r\n InvokeStatus[InvokeStatus[\"Success\"] = 0] = \"Success\";\r\n InvokeStatus[InvokeStatus[\"Error\"] = 1] = \"Error\";\r\n})(InvokeStatus || (InvokeStatus = {}));\r\nclass Client {\r\n protocol;\r\n repo;\r\n instance;\r\n configuration;\r\n constructor(protocol, repo, instance, configuration) {\r\n this.protocol = protocol;\r\n this.repo = repo;\r\n this.instance = instance;\r\n this.configuration = configuration;\r\n }\r\n subscribe(method, options, successCallback, errorCallback, existingSub) {\r\n const callProtocolSubscribe = (targetServers, stream, successProxy, errorProxy) => {\r\n options.methodResponseTimeout = options.methodResponseTimeout ?? options.waitTimeoutMs;\r\n this.protocol.client.subscribe(stream, options, targetServers, successProxy, errorProxy, existingSub);\r\n };\r\n const promise = new Promise((resolve, reject) => {\r\n const successProxy = (sub) => {\r\n resolve(sub);\r\n };\r\n const errorProxy = (err) => {\r\n reject(err);\r\n };\r\n if (!method) {\r\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.`);\r\n return;\r\n }\r\n let methodDef;\r\n if (typeof method === \"string\") {\r\n methodDef = { name: method };\r\n }\r\n else {\r\n methodDef = method;\r\n }\r\n if (!methodDef.name) {\r\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.`);\r\n return;\r\n }\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n let target = options.target;\r\n if (target === undefined) {\r\n target = \"best\";\r\n }\r\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\") {\r\n reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\", \"best\", or an instance.`));\r\n return;\r\n }\r\n if (options.methodResponseTimeout === undefined) {\r\n options.methodResponseTimeout = options.method_response_timeout;\r\n if (options.methodResponseTimeout === undefined) {\r\n options.methodResponseTimeout = this.configuration.methodResponseTimeout;\r\n }\r\n }\r\n if (options.waitTimeoutMs === undefined) {\r\n options.waitTimeoutMs = options.wait_for_method_timeout;\r\n if (options.waitTimeoutMs === undefined) {\r\n options.waitTimeoutMs = this.configuration.waitTimeoutMs;\r\n }\r\n }\r\n const delayStep = 500;\r\n let delayTillNow = 0;\r\n let currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\r\n if (currentServers.length > 0) {\r\n callProtocolSubscribe(currentServers, currentServers[0].methods[0], successProxy, errorProxy);\r\n }\r\n else {\r\n const retry = () => {\r\n if (!target || !(options.waitTimeoutMs)) {\r\n return;\r\n }\r\n delayTillNow += delayStep;\r\n currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\r\n if (currentServers.length > 0) {\r\n const streamInfo = currentServers[0].methods[0];\r\n callProtocolSubscribe(currentServers, streamInfo, successProxy, errorProxy);\r\n }\r\n else if (delayTillNow >= options.waitTimeoutMs) {\r\n const def = typeof method === \"string\" ? { name: method } : method;\r\n callProtocolSubscribe(currentServers, def, successProxy, errorProxy);\r\n }\r\n else {\r\n setTimeout(retry, delayStep);\r\n }\r\n };\r\n setTimeout(retry, delayStep);\r\n }\r\n });\r\n return promisify(promise, successCallback, errorCallback);\r\n }\r\n servers(methodFilter) {\r\n const filterCopy = methodFilter === undefined\r\n ? undefined\r\n : { ...methodFilter };\r\n return this.getServers(filterCopy).map((serverMethodMap) => {\r\n return serverMethodMap.server.instance;\r\n });\r\n }\r\n methods(methodFilter) {\r\n if (typeof methodFilter === \"string\") {\r\n methodFilter = { name: methodFilter };\r\n }\r\n else {\r\n methodFilter = { ...methodFilter };\r\n }\r\n return this.getMethods(methodFilter);\r\n }\r\n methodsForInstance(instance) {\r\n return this.getMethodsForInstance(instance);\r\n }\r\n methodAdded(callback) {\r\n return this.repo.onMethodAdded(callback);\r\n }\r\n methodRemoved(callback) {\r\n return this.repo.onMethodRemoved(callback);\r\n }\r\n serverAdded(callback) {\r\n return this.repo.onServerAdded(callback);\r\n }\r\n serverRemoved(callback) {\r\n return this.repo.onServerRemoved((server, reason) => {\r\n callback(server, reason);\r\n });\r\n }\r\n serverMethodAdded(callback) {\r\n return this.repo.onServerMethodAdded((server, method) => {\r\n callback({ server, method });\r\n });\r\n }\r\n serverMethodRemoved(callback) {\r\n return this.repo.onServerMethodRemoved((server, method) => {\r\n callback({ server, method });\r\n });\r\n }\r\n async invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\r\n const getInvokePromise = async () => {\r\n let methodDefinition;\r\n if (typeof methodFilter === \"string\") {\r\n methodDefinition = { name: methodFilter };\r\n }\r\n else {\r\n methodDefinition = { ...methodFilter };\r\n }\r\n if (!methodDefinition.name) {\r\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.`);\r\n }\r\n if (!argumentObj) {\r\n argumentObj = {};\r\n }\r\n if (!target) {\r\n target = \"best\";\r\n }\r\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\" && target !== \"skipMine\") {\r\n return Promise.reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\" and \"best\".`));\r\n }\r\n if (!additionalOptions) {\r\n additionalOptions = {};\r\n }\r\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\r\n additionalOptions.methodResponseTimeoutMs = additionalOptions.method_response_timeout;\r\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\r\n additionalOptions.methodResponseTimeoutMs = this.configuration.methodResponseTimeout;\r\n }\r\n }\r\n if (additionalOptions.waitTimeoutMs === undefined) {\r\n additionalOptions.waitTimeoutMs = additionalOptions.wait_for_method_timeout;\r\n if (additionalOptions.waitTimeoutMs === undefined) {\r\n additionalOptions.waitTimeoutMs = this.configuration.waitTimeoutMs;\r\n }\r\n }\r\n if (additionalOptions.waitTimeoutMs !== undefined && typeof additionalOptions.waitTimeoutMs !== \"number\") {\r\n return Promise.reject(new Error(`\"${additionalOptions.waitTimeoutMs}\" is not a valid number for \"waitTimeoutMs\" `));\r\n }\r\n if (typeof argumentObj !== \"object\") {\r\n return Promise.reject(new Error(`The method arguments must be an object. method: ${methodDefinition.name}`));\r\n }\r\n let serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\r\n if (serversMethodMap.length === 0) {\r\n try {\r\n serversMethodMap = await this.tryToAwaitForMethods(methodDefinition, target, additionalOptions);\r\n }\r\n catch (err) {\r\n const method = {\r\n ...methodDefinition,\r\n getServers: () => [],\r\n supportsStreaming: false,\r\n objectTypes: methodDefinition.objectTypes ?? [],\r\n flags: methodDefinition.flags?.metadata ?? {}\r\n };\r\n const errorObj = {\r\n method,\r\n called_with: argumentObj,\r\n message: `Can not find a method matching ${JSON.stringify(methodFilter)} with server filter ${JSON.stringify(target)}`,\r\n executed_by: undefined,\r\n returned: undefined,\r\n status: undefined,\r\n };\r\n return Promise.reject(errorObj);\r\n }\r\n }\r\n const timeout = additionalOptions.methodResponseTimeoutMs;\r\n const additionalOptionsCopy = additionalOptions;\r\n const invokePromises = serversMethodMap.map((serversMethodPair) => {\r\n const invId = nanoid(10);\r\n const method = serversMethodPair.methods[0];\r\n const server = serversMethodPair.server;\r\n const invokePromise = this.protocol.client.invoke(invId, method, argumentObj, server, additionalOptionsCopy);\r\n return Promise.race([\r\n invokePromise,\r\n rejectAfter(timeout, invokePromise, {\r\n invocationId: invId,\r\n message: `Invocation timeout (${timeout} ms) reached for method name: ${method?.name}, target instance: ${JSON.stringify(server.instance)}, options: ${JSON.stringify(additionalOptionsCopy)}`,\r\n status: InvokeStatus.Error,\r\n })\r\n ]);\r\n });\r\n const invocationMessages = await Promise.all(invokePromises);\r\n const results = this.getInvocationResultObj(invocationMessages, methodDefinition, argumentObj);\r\n const allRejected = invocationMessages.every((result) => result.status === InvokeStatus.Error);\r\n if (allRejected) {\r\n return Promise.reject(results);\r\n }\r\n return results;\r\n };\r\n return promisify(getInvokePromise(), success, error);\r\n }\r\n getInvocationResultObj(invocationResults, method, calledWith) {\r\n const all_return_values = invocationResults\r\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Success)\r\n .reduce((allValues, currentValue) => {\r\n allValues = [\r\n ...allValues,\r\n {\r\n executed_by: currentValue.instance,\r\n returned: currentValue.result,\r\n called_with: calledWith,\r\n method,\r\n message: currentValue.message,\r\n status: currentValue.status,\r\n }\r\n ];\r\n return allValues;\r\n }, []);\r\n const all_errors = invocationResults\r\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Error)\r\n .reduce((allErrors, currError) => {\r\n allErrors = [\r\n ...allErrors,\r\n {\r\n executed_by: currError.instance,\r\n called_with: calledWith,\r\n name: method.name,\r\n message: currError.message,\r\n }\r\n ];\r\n return allErrors;\r\n }, []);\r\n const invResult = invocationResults[0];\r\n const result = {\r\n method,\r\n called_with: calledWith,\r\n returned: invResult.result,\r\n executed_by: invResult.instance,\r\n all_return_values,\r\n all_errors,\r\n message: invResult.message,\r\n status: invResult.status\r\n };\r\n return result;\r\n }\r\n tryToAwaitForMethods(methodDefinition, target, additionalOptions) {\r\n return new Promise((resolve, reject) => {\r\n if (additionalOptions.waitTimeoutMs === 0) {\r\n reject();\r\n return;\r\n }\r\n const delayStep = 500;\r\n let delayTillNow = 0;\r\n const retry = () => {\r\n delayTillNow += delayStep;\r\n const serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\r\n if (serversMethodMap.length > 0) {\r\n clearInterval(interval);\r\n resolve(serversMethodMap);\r\n }\r\n else if (delayTillNow >= (additionalOptions.waitTimeoutMs || 10000)) {\r\n clearInterval(interval);\r\n reject();\r\n return;\r\n }\r\n };\r\n const interval = setInterval(retry, delayStep);\r\n });\r\n }\r\n filterByTarget(target, serverMethodMap) {\r\n if (typeof target === \"string\") {\r\n if (target === \"all\") {\r\n return [...serverMethodMap];\r\n }\r\n else if (target === \"best\") {\r\n const localMachine = serverMethodMap\r\n .find((s) => s.server.instance.isLocal);\r\n if (localMachine) {\r\n return [localMachine];\r\n }\r\n if (serverMethodMap[0] !== undefined) {\r\n return [serverMethodMap[0]];\r\n }\r\n }\r\n else if (target === \"skipMine\") {\r\n return serverMethodMap.filter(({ server }) => server.instance.peerId !== this.instance.peerId);\r\n }\r\n }\r\n else {\r\n let targetArray;\r\n if (!Array.isArray(target)) {\r\n targetArray = [target];\r\n }\r\n else {\r\n targetArray = target;\r\n }\r\n const allServersMatching = targetArray.reduce((matches, filter) => {\r\n const myMatches = serverMethodMap.filter((serverMethodPair) => {\r\n return this.instanceMatch(filter, serverMethodPair.server.instance);\r\n });\r\n return matches.concat(myMatches);\r\n }, []);\r\n return allServersMatching;\r\n }\r\n return [];\r\n }\r\n instanceMatch(instanceFilter, instanceDefinition) {\r\n if (instanceFilter?.peerId && instanceFilter?.instance) {\r\n instanceFilter = { ...instanceFilter };\r\n delete instanceFilter.peerId;\r\n }\r\n return this.containsProps(instanceFilter, instanceDefinition);\r\n }\r\n methodMatch(methodFilter, methodDefinition) {\r\n return this.containsProps(methodFilter, methodDefinition);\r\n }\r\n containsProps(filter, repoMethod) {\r\n const filterProps = Object.keys(filter)\r\n .filter((prop) => {\r\n return filter[prop] !== undefined\r\n && filter[prop] !== null\r\n && typeof filter[prop] !== \"function\"\r\n && prop !== \"object_types\"\r\n && prop !== \"display_name\"\r\n && prop !== \"id\"\r\n && prop !== \"gatewayId\"\r\n && prop !== \"identifier\"\r\n && prop[0] !== \"_\";\r\n });\r\n return filterProps.every((prop) => {\r\n let isMatch;\r\n const filterValue = filter[prop];\r\n const repoMethodValue = repoMethod[prop];\r\n switch (prop) {\r\n case \"objectTypes\":\r\n isMatch = (filterValue || []).every((filterValueEl) => {\r\n return (repoMethodValue || []).includes(filterValueEl);\r\n });\r\n break;\r\n case \"flags\":\r\n isMatch = isSubset(repoMethodValue || {}, filterValue || {});\r\n break;\r\n default:\r\n isMatch = String(filterValue).toLowerCase() === String(repoMethodValue).toLowerCase();\r\n }\r\n return isMatch;\r\n });\r\n }\r\n getMethods(methodFilter) {\r\n if (methodFilter === undefined) {\r\n return this.repo.getMethods();\r\n }\r\n const methods = this.repo.getMethods().filter((method) => {\r\n return this.methodMatch(methodFilter, method);\r\n });\r\n return methods;\r\n }\r\n getMethodsForInstance(instanceFilter) {\r\n const allServers = this.repo.getServers();\r\n const matchingServers = allServers.filter((server) => {\r\n return this.instanceMatch(instanceFilter, server.instance);\r\n });\r\n if (matchingServers.length === 0) {\r\n return [];\r\n }\r\n let resultMethodsObject = {};\r\n if (matchingServers.length === 1) {\r\n resultMethodsObject = matchingServers[0].methods;\r\n }\r\n else {\r\n matchingServers.forEach((server) => {\r\n Object.keys(server.methods).forEach((methodKey) => {\r\n const method = server.methods[methodKey];\r\n resultMethodsObject[method.identifier] = method;\r\n });\r\n });\r\n }\r\n return Object.keys(resultMethodsObject)\r\n .map((key) => {\r\n return resultMethodsObject[key];\r\n });\r\n }\r\n getServers(methodFilter) {\r\n const servers = this.repo.getServers();\r\n if (methodFilter === undefined) {\r\n return servers.map((server) => {\r\n return { server, methods: [] };\r\n });\r\n }\r\n return servers.reduce((prev, current) => {\r\n const methodsForServer = Object.values(current.methods);\r\n const matchingMethods = methodsForServer.filter((method) => {\r\n return this.methodMatch(methodFilter, method);\r\n });\r\n if (matchingMethods.length > 0) {\r\n prev.push({ server: current, methods: matchingMethods });\r\n }\r\n return prev;\r\n }, []);\r\n }\r\n getServerMethodsByFilterAndTarget(methodFilter, target) {\r\n const serversMethodMap = this.getServers(methodFilter);\r\n return this.filterByTarget(target, serversMethodMap);\r\n }\r\n}\n\nclass ServerSubscription {\r\n protocol;\r\n repoMethod;\r\n subscription;\r\n constructor(protocol, repoMethod, subscription) {\r\n this.protocol = protocol;\r\n this.repoMethod = repoMethod;\r\n this.subscription = subscription;\r\n }\r\n get stream() {\r\n if (!this.repoMethod.stream) {\r\n throw new Error(\"no stream\");\r\n }\r\n return this.repoMethod.stream;\r\n }\r\n get arguments() { return this.subscription.arguments || {}; }\r\n get branchKey() { return this.subscription.branchKey; }\r\n get instance() {\r\n if (!this.subscription.instance) {\r\n throw new Error(\"no instance\");\r\n }\r\n return this.subscription.instance;\r\n }\r\n close() {\r\n this.protocol.server.closeSingleSubscription(this.repoMethod, this.subscription);\r\n }\r\n push(data) {\r\n this.protocol.server.pushDataToSingle(this.repoMethod, this.subscription, data);\r\n }\r\n}\n\nclass Request {\r\n protocol;\r\n repoMethod;\r\n requestContext;\r\n arguments;\r\n instance;\r\n constructor(protocol, repoMethod, requestContext) {\r\n this.protocol = protocol;\r\n this.repoMethod = repoMethod;\r\n this.requestContext = requestContext;\r\n this.arguments = requestContext.arguments;\r\n this.instance = requestContext.instance;\r\n }\r\n accept() {\r\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, \"\");\r\n }\r\n acceptOnBranch(branch) {\r\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, branch);\r\n }\r\n reject(reason) {\r\n this.protocol.server.rejectRequest(this.requestContext, this.repoMethod, reason);\r\n }\r\n}\n\nlet ServerStreaming$1 = class ServerStreaming {\r\n protocol;\r\n server;\r\n constructor(protocol, server) {\r\n this.protocol = protocol;\r\n this.server = server;\r\n protocol.server.onSubRequest((rc, rm) => this.handleSubRequest(rc, rm));\r\n protocol.server.onSubAdded((sub, rm) => this.handleSubAdded(sub, rm));\r\n protocol.server.onSubRemoved((sub, rm) => this.handleSubRemoved(sub, rm));\r\n }\r\n handleSubRequest(requestContext, repoMethod) {\r\n if (!(repoMethod &&\r\n repoMethod.streamCallbacks &&\r\n typeof repoMethod.streamCallbacks.subscriptionRequestHandler === \"function\")) {\r\n return;\r\n }\r\n const request = new Request(this.protocol, repoMethod, requestContext);\r\n repoMethod.streamCallbacks.subscriptionRequestHandler(request);\r\n }\r\n handleSubAdded(subscription, repoMethod) {\r\n if (!(repoMethod &&\r\n repoMethod.streamCallbacks &&\r\n typeof repoMethod.streamCallbacks.subscriptionAddedHandler === \"function\")) {\r\n return;\r\n }\r\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\r\n repoMethod.streamCallbacks.subscriptionAddedHandler(sub);\r\n }\r\n handleSubRemoved(subscription, repoMethod) {\r\n if (!(repoMethod &&\r\n repoMethod.streamCallbacks &&\r\n typeof repoMethod.streamCallbacks.subscriptionRemovedHandler === \"function\")) {\r\n return;\r\n }\r\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\r\n repoMethod.streamCallbacks.subscriptionRemovedHandler(sub);\r\n }\r\n};\n\nclass ServerBranch {\r\n key;\r\n protocol;\r\n repoMethod;\r\n constructor(key, protocol, repoMethod) {\r\n this.key = key;\r\n this.protocol = protocol;\r\n this.repoMethod = repoMethod;\r\n }\r\n subscriptions() {\r\n const subList = this.protocol.server.getSubscriptionList(this.repoMethod, this.key);\r\n return subList.map((sub) => {\r\n return new ServerSubscription(this.protocol, this.repoMethod, sub);\r\n });\r\n }\r\n close() {\r\n this.protocol.server.closeAllSubscriptions(this.repoMethod, this.key);\r\n }\r\n push(data) {\r\n this.protocol.server.pushData(this.repoMethod, data, [this.key]);\r\n }\r\n}\n\nclass ServerStream {\r\n _protocol;\r\n _repoMethod;\r\n _server;\r\n name;\r\n constructor(_protocol, _repoMethod, _server) {\r\n this._protocol = _protocol;\r\n this._repoMethod = _repoMethod;\r\n this._server = _server;\r\n this.name = this._repoMethod.definition.name;\r\n }\r\n branches(key) {\r\n const bList = this._protocol.server.getBranchList(this._repoMethod);\r\n if (key) {\r\n if (bList.indexOf(key) > -1) {\r\n return new ServerBranch(key, this._protocol, this._repoMethod);\r\n }\r\n return undefined;\r\n }\r\n else {\r\n return bList.map((branchKey) => {\r\n return new ServerBranch(branchKey, this._protocol, this._repoMethod);\r\n });\r\n }\r\n }\r\n branch(key) {\r\n return this.branches(key);\r\n }\r\n subscriptions() {\r\n const subList = this._protocol.server.getSubscriptionList(this._repoMethod);\r\n return subList.map((sub) => {\r\n return new ServerSubscription(this._protocol, this._repoMethod, sub);\r\n });\r\n }\r\n get definition() {\r\n const def2 = this._repoMethod.definition;\r\n return {\r\n accepts: def2.accepts,\r\n description: def2.description,\r\n displayName: def2.displayName,\r\n name: def2.name,\r\n objectTypes: def2.objectTypes,\r\n returns: def2.returns,\r\n supportsStreaming: def2.supportsStreaming,\r\n flags: def2.flags?.metadata,\r\n };\r\n }\r\n close() {\r\n this._protocol.server.closeAllSubscriptions(this._repoMethod);\r\n this._server.unregister(this._repoMethod.definition, true);\r\n }\r\n push(data, branches) {\r\n if (typeof branches !== \"string\" && !Array.isArray(branches) && branches !== undefined) {\r\n throw new Error(\"invalid branches should be string or string array\");\r\n }\r\n if (typeof data !== \"object\") {\r\n throw new Error(\"Invalid arguments. Data must be an object.\");\r\n }\r\n this._protocol.server.pushData(this._repoMethod, data, branches);\r\n }\r\n updateRepoMethod(repoMethod) {\r\n this._repoMethod = repoMethod;\r\n }\r\n}\n\nclass Server {\r\n protocol;\r\n serverRepository;\r\n streaming;\r\n invocations = 0;\r\n currentlyUnregistering = {};\r\n constructor(protocol, serverRepository) {\r\n this.protocol = protocol;\r\n this.serverRepository = serverRepository;\r\n this.streaming = new ServerStreaming$1(protocol, this);\r\n this.protocol.server.onInvoked(this.onMethodInvoked.bind(this));\r\n }\r\n createStream(streamDef, callbacks, successCallback, errorCallback, existingStream) {\r\n const promise = new Promise((resolve, reject) => {\r\n if (!streamDef) {\r\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.\");\r\n return;\r\n }\r\n let streamMethodDefinition;\r\n if (typeof streamDef === \"string\") {\r\n streamMethodDefinition = { name: \"\" + streamDef };\r\n }\r\n else {\r\n streamMethodDefinition = { ...streamDef };\r\n }\r\n if (!streamMethodDefinition.name) {\r\n return reject(`The “name” property is required for the “streamDefinition” object and must be unique. Stream definition: ${JSON.stringify(streamMethodDefinition)}`);\r\n }\r\n const nameAlreadyExists = this.serverRepository.getList()\r\n .some((serverMethod) => serverMethod.definition.name === streamMethodDefinition.name);\r\n if (nameAlreadyExists) {\r\n return reject(`A stream with the name \"${streamMethodDefinition.name}\" already exists! Please, provide a unique name for the stream.`);\r\n }\r\n streamMethodDefinition.supportsStreaming = true;\r\n if (!callbacks) {\r\n callbacks = {};\r\n }\r\n if (typeof callbacks.subscriptionRequestHandler !== \"function\") {\r\n callbacks.subscriptionRequestHandler = (request) => {\r\n request.accept();\r\n };\r\n }\r\n const repoMethod = this.serverRepository.add({\r\n definition: streamMethodDefinition,\r\n streamCallbacks: callbacks,\r\n protocolState: {},\r\n });\r\n this.protocol.server.createStream(repoMethod)\r\n .then(() => {\r\n let streamUserObject;\r\n if (existingStream) {\r\n streamUserObject = existingStream;\r\n existingStream.updateRepoMethod(repoMethod);\r\n }\r\n else {\r\n streamUserObject = new ServerStream(this.protocol, repoMethod, this);\r\n }\r\n repoMethod.stream = streamUserObject;\r\n resolve(streamUserObject);\r\n })\r\n .catch((err) => {\r\n if (repoMethod.repoId) {\r\n this.serverRepository.remove(repoMethod.repoId);\r\n }\r\n reject(err);\r\n });\r\n });\r\n return promisify(promise, successCallback, errorCallback);\r\n }\r\n register(methodDefinition, callback) {\r\n if (!methodDefinition) {\r\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.\");\r\n }\r\n if (typeof callback !== \"function\") {\r\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\r\n }\r\n const wrappedCallbackFunction = async (context, resultCallback) => {\r\n try {\r\n const result = callback(context.args, context.instance);\r\n if (result && typeof result.then === \"function\") {\r\n const resultValue = await result;\r\n resultCallback(undefined, resultValue);\r\n }\r\n else {\r\n resultCallback(undefined, result);\r\n }\r\n }\r\n catch (e) {\r\n resultCallback(e ?? \"\", e ?? \"\");\r\n }\r\n };\r\n wrappedCallbackFunction.userCallback = callback;\r\n return this.registerCore(methodDefinition, wrappedCallbackFunction);\r\n }\r\n registerAsync(methodDefinition, callback) {\r\n if (!methodDefinition) {\r\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.\");\r\n }\r\n if (typeof callback !== \"function\") {\r\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\r\n }\r\n const wrappedCallback = async (context, resultCallback) => {\r\n try {\r\n let resultCalled = false;\r\n const success = (result) => {\r\n if (!resultCalled) {\r\n resultCallback(undefined, result);\r\n }\r\n resultCalled = true;\r\n };\r\n const error = (e) => {\r\n if (!resultCalled) {\r\n if (!e) {\r\n e = \"\";\r\n }\r\n resultCallback(e, e);\r\n }\r\n resultCalled = true;\r\n };\r\n const methodResult = callback(context.args, context.instance, success, error);\r\n if (methodResult && typeof methodResult.then === \"function\") {\r\n methodResult\r\n .then(success)\r\n .catch(error);\r\n }\r\n }\r\n catch (e) {\r\n resultCallback(e, undefined);\r\n }\r\n };\r\n wrappedCallback.userCallbackAsync = callback;\r\n return this.registerCore(methodDefinition, wrappedCallback);\r\n }\r\n async unregister(methodFilter, forStream = false) {\r\n if (methodFilter === undefined) {\r\n return Promise.reject(\"Please, provide either a unique string for a name or an object containing a “name” property.\");\r\n }\r\n if (typeof methodFilter === \"function\") {\r\n await this.unregisterWithPredicate(methodFilter, forStream);\r\n return;\r\n }\r\n let methodDefinition;\r\n if (typeof methodFilter === \"string\") {\r\n methodDefinition = { name: methodFilter };\r\n }\r\n else {\r\n methodDefinition = methodFilter;\r\n }\r\n if (methodDefinition.name === undefined) {\r\n return Promise.reject(\"Method name is required. Cannot find a method if the method name is undefined!\");\r\n }\r\n const methodToBeRemoved = this.serverRepository.getList().find((serverMethod) => {\r\n return serverMethod.definition.name === methodDefinition.name\r\n && (serverMethod.definition.supportsStreaming || false) === forStream;\r\n });\r\n if (!methodToBeRemoved) {\r\n return Promise.reject(`Method with a name \"${methodDefinition.name}\" does not exist or is not registered by your application!`);\r\n }\r\n await this.removeMethodsOrStreams([methodToBeRemoved]);\r\n }\r\n async unregisterWithPredicate(filterPredicate, forStream) {\r\n const methodsOrStreamsToRemove = this.serverRepository.getList()\r\n .filter((sm) => filterPredicate(sm.definition))\r\n .filter((serverMethod) => (serverMethod.definition.supportsStreaming || false) === forStream);\r\n if (!methodsOrStreamsToRemove || methodsOrStreamsToRemove.length === 0) {\r\n return Promise.reject(`Could not find a ${forStream ? \"stream\" : \"method\"} matching the specified condition!`);\r\n }\r\n await this.removeMethodsOrStreams(methodsOrStreamsToRemove);\r\n }\r\n removeMethodsOrStreams(methodsToRemove) {\r\n const methodUnregPromises = [];\r\n methodsToRemove.forEach((method) => {\r\n const promise = this.protocol.server.unregister(method)\r\n .then(() => {\r\n if (method.repoId) {\r\n this.serverRepository.remove(method.repoId);\r\n }\r\n });\r\n methodUnregPromises.push(promise);\r\n this.addAsCurrentlyUnregistering(method.definition.name, promise);\r\n });\r\n return Promise.all(methodUnregPromises);\r\n }\r\n async addAsCurrentlyUnregistering(methodName, promise) {\r\n const timeout = new Promise((resolve) => setTimeout(resolve, 5000));\r\n this.currentlyUnregistering[methodName] = Promise.race([promise, timeout]).then(() => {\r\n delete this.currentlyUnregistering[methodName];\r\n });\r\n }\r\n async registerCore(method, theFunction) {\r\n let methodDefinition;\r\n if (typeof method === \"string\") {\r\n methodDefinition = { name: \"\" + method };\r\n }\r\n else {\r\n methodDefinition = { ...method };\r\n }\r\n if (!methodDefinition.name) {\r\n return Promise.reject(`Please, provide a (unique) string value for the “name” property in the “methodDefinition” object: ${JSON.stringify(method)}`);\r\n }\r\n const unregisterInProgress = this.currentlyUnregistering[methodDefinition.name];\r\n if (typeof unregisterInProgress !== \"undefined\") {\r\n await unregisterInProgress;\r\n }\r\n const nameAlreadyExists = this.serverRepository.getList()\r\n .some((serverMethod) => serverMethod.definition.name === methodDefinition.name);\r\n if (nameAlreadyExists) {\r\n return Promise.reject(`A method with the name \"${methodDefinition.name}\" already exists! Please, provide a unique name for the method.`);\r\n }\r\n if (methodDefinition.supportsStreaming) {\r\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.`);\r\n }\r\n const repoMethod = this.serverRepository.add({\r\n definition: methodDefinition,\r\n theFunction,\r\n protocolState: {},\r\n });\r\n return this.protocol.server.register(repoMethod)\r\n .catch((err) => {\r\n if (repoMethod?.repoId) {\r\n this.serverRepository.remove(repoMethod.repoId);\r\n }\r\n throw err;\r\n });\r\n }\r\n onMethodInvoked(methodToExecute, invocationId, invocationArgs) {\r\n if (!methodToExecute || !methodToExecute.theFunction) {\r\n return;\r\n }\r\n methodToExecute.theFunction(invocationArgs, (err, result) => {\r\n if (err !== undefined && err !== null) {\r\n if (err.message && typeof err.message === \"string\") {\r\n err = err.message;\r\n }\r\n else if (typeof err !== \"string\") {\r\n try {\r\n err = JSON.stringify(err);\r\n }\r\n catch (unStrException) {\r\n err = `un-stringifyable error in onMethodInvoked! Top level prop names: ${Object.keys(err)}`;\r\n }\r\n }\r\n }\r\n if (!result) {\r\n result = {};\r\n }\r\n else if (typeof result !== \"object\" || Array.isArray(result)) {\r\n result = { _value: result };\r\n }\r\n this.protocol.server.methodInvocationResult(methodToExecute, invocationId, err, result);\r\n });\r\n }\r\n}\n\nclass InstanceWrapper {\r\n wrapped = {};\r\n constructor(API, instance, connection) {\r\n this.wrapped.getMethods = function () {\r\n return API.methodsForInstance(this);\r\n };\r\n this.wrapped.getStreams = function () {\r\n return API.methodsForInstance(this).filter((m) => m.supportsStreaming);\r\n };\r\n if (instance) {\r\n this.refreshWrappedObject(instance);\r\n }\r\n if (connection) {\r\n connection.loggedIn(() => {\r\n this.refresh(connection);\r\n });\r\n this.refresh(connection);\r\n }\r\n }\r\n unwrap() {\r\n return this.wrapped;\r\n }\r\n refresh(connection) {\r\n if (!connection) {\r\n return;\r\n }\r\n const resolvedIdentity = connection?.resolvedIdentity;\r\n const instance = Object.assign({}, resolvedIdentity ?? {}, { peerId: connection?.peerId });\r\n this.refreshWrappedObject(instance);\r\n }\r\n refreshWrappedObject(resolvedIdentity) {\r\n Object.keys(resolvedIdentity).forEach((key) => {\r\n this.wrapped[key] = resolvedIdentity[key];\r\n });\r\n this.wrapped.user = resolvedIdentity.user;\r\n this.wrapped.instance = resolvedIdentity.instance;\r\n this.wrapped.application = resolvedIdentity.application ?? nanoid(10);\r\n this.wrapped.applicationName = resolvedIdentity.applicationName;\r\n this.wrapped.pid = resolvedIdentity.pid ?? resolvedIdentity.process ?? Math.floor(Math.random() * 10000000000);\r\n this.wrapped.machine = resolvedIdentity.machine;\r\n this.wrapped.environment = resolvedIdentity.environment;\r\n this.wrapped.region = resolvedIdentity.region;\r\n this.wrapped.windowId = resolvedIdentity.windowId;\r\n this.wrapped.isLocal = resolvedIdentity.isLocal ?? true;\r\n this.wrapped.api = resolvedIdentity.api;\r\n this.wrapped.service = resolvedIdentity.service;\r\n this.wrapped.peerId = resolvedIdentity.peerId;\r\n }\r\n}\n\nconst hideMethodSystemFlags = (method) => {\r\n return {\r\n ...method,\r\n flags: method.flags.metadata || {}\r\n };\r\n};\r\nclass ClientRepository {\r\n logger;\r\n API;\r\n servers = {};\r\n myServer;\r\n methodsCount = {};\r\n callbacks = CallbackRegistryFactory();\r\n constructor(logger, API) {\r\n this.logger = logger;\r\n this.API = API;\r\n const peerId = this.API.instance.peerId;\r\n this.myServer = {\r\n id: peerId,\r\n methods: {},\r\n instance: this.API.instance,\r\n wrapper: this.API.unwrappedInstance,\r\n };\r\n this.servers[peerId] = this.myServer;\r\n }\r\n addServer(info, serverId) {\r\n this.logger.debug(`adding server ${serverId}`);\r\n const current = this.servers[serverId];\r\n if (current) {\r\n return current.id;\r\n }\r\n const wrapper = new InstanceWrapper(this.API, info);\r\n const serverEntry = {\r\n id: serverId,\r\n methods: {},\r\n instance: wrapper.unwrap(),\r\n wrapper,\r\n };\r\n this.servers[serverId] = serverEntry;\r\n this.callbacks.execute(\"onServerAdded\", serverEntry.instance);\r\n return serverId;\r\n }\r\n removeServerById(id, reason) {\r\n const server = this.servers[id];\r\n if (!server) {\r\n this.logger.warn(`not aware of server ${id}, my state ${JSON.stringify(Object.keys(this.servers))}`);\r\n return;\r\n }\r\n else {\r\n this.logger.debug(`removing server ${id}`);\r\n }\r\n Object.keys(server.methods).forEach((methodId) => {\r\n this.removeServerMethod(id, methodId);\r\n });\r\n delete this.servers[id];\r\n this.callbacks.execute(\"onServerRemoved\", server.instance, reason);\r\n }\r\n addServerMethod(serverId, method) {\r\n const server = this.servers[serverId];\r\n if (!server) {\r\n throw new Error(\"server does not exists\");\r\n }\r\n if (server.methods[method.id]) {\r\n return;\r\n }\r\n const identifier = this.createMethodIdentifier(method);\r\n const that = this;\r\n const methodDefinition = {\r\n identifier,\r\n gatewayId: method.id,\r\n name: method.name,\r\n displayName: method.display_name,\r\n description: method.description,\r\n version: method.version,\r\n objectTypes: method.object_types || [],\r\n accepts: method.input_signature,\r\n returns: method.result_signature,\r\n supportsStreaming: typeof method.flags !== \"undefined\" ? method.flags.streaming : false,\r\n flags: method.flags ?? {},\r\n getServers: () => {\r\n return that.getServersByMethod(identifier);\r\n }\r\n };\r\n methodDefinition.object_types = methodDefinition.objectTypes;\r\n methodDefinition.display_name = methodDefinition.displayName;\r\n methodDefinition.version = methodDefinition.version;\r\n server.methods[method.id] = methodDefinition;\r\n const clientMethodDefinition = hideMethodSystemFlags(methodDefinition);\r\n if (!this.methodsCount[identifier]) {\r\n this.methodsCount[identifier] = 0;\r\n this.callbacks.execute(\"onMethodAdded\", clientMethodDefinition);\r\n }\r\n this.methodsCount[identifier] = this.methodsCount[identifier] + 1;\r\n this.callbacks.execute(\"onServerMethodAdded\", server.instance, clientMethodDefinition);\r\n return methodDefinition;\r\n }\r\n removeServerMethod(serverId, methodId) {\r\n const server = this.servers[serverId];\r\n if (!server) {\r\n throw new Error(\"server does not exists\");\r\n }\r\n const method = server.methods[methodId];\r\n delete server.methods[methodId];\r\n const clientMethodDefinition = hideMethodSystemFlags(method);\r\n this.methodsCount[method.identifier] = this.methodsCount[method.identifier] - 1;\r\n if (this.methodsCount[method.identifier] === 0) {\r\n this.callbacks.execute(\"onMethodRemoved\", clientMethodDefinition);\r\n }\r\n this.callbacks.execute(\"onServerMethodRemoved\", server.instance, clientMethodDefinition);\r\n }\r\n getMethods() {\r\n return this.extractMethodsFromServers(Object.values(this.servers)).map(hideMethodSystemFlags);\r\n }\r\n getServers() {\r\n return Object.values(this.servers).map(this.hideServerMethodSystemFlags);\r\n }\r\n onServerAdded(callback) {\r\n const unsubscribeFunc = this.callbacks.add(\"onServerAdded\", callback);\r\n const serversWithMethodsToReplay = this.getServers().map((s) => s.instance);\r\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, serversWithMethodsToReplay, callback);\r\n }\r\n onMethodAdded(callback) {\r\n const unsubscribeFunc = this.callbacks.add(\"onMethodAdded\", callback);\r\n const methodsToReplay = this.getMethods();\r\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, methodsToReplay, callback);\r\n }\r\n onServerMethodAdded(callback) {\r\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodAdded\", callback);\r\n let unsubCalled = false;\r\n const servers = this.getServers();\r\n setTimeout(() => {\r\n servers.forEach((server) => {\r\n const methods = server.methods;\r\n Object.keys(methods).forEach((methodId) => {\r\n if (!unsubCalled) {\r\n callback(server.instance, methods[methodId]);\r\n }\r\n });\r\n });\r\n }, 0);\r\n return () => {\r\n unsubCalled = true;\r\n unsubscribeFunc();\r\n };\r\n }\r\n onMethodRemoved(callback) {\r\n const unsubscribeFunc = this.callbacks.add(\"onMethodRemoved\", callback);\r\n return unsubscribeFunc;\r\n }\r\n onServerRemoved(callback) {\r\n const unsubscribeFunc = this.callbacks.add(\"onServerRemoved\", callback);\r\n return unsubscribeFunc;\r\n }\r\n onServerMethodRemoved(callback) {\r\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodRemoved\", callback);\r\n return unsubscribeFunc;\r\n }\r\n getServerById(id) {\r\n const server = this.servers[id];\r\n if (!server) {\r\n return undefined;\r\n }\r\n return this.hideServerMethodSystemFlags(this.servers[id]);\r\n }\r\n reset() {\r\n Object.keys(this.servers).forEach((key) => {\r\n this.removeServerById(key, \"reset\");\r\n });\r\n this.servers = {\r\n [this.myServer.id]: this.myServer\r\n };\r\n this.methodsCount = {};\r\n }\r\n createMethodIdentifier(methodInfo) {\r\n const accepts = methodInfo.input_signature ?? \"\";\r\n const returns = methodInfo.result_signature ?? \"\";\r\n return (methodInfo.name + accepts + returns).toLowerCase();\r\n }\r\n getServersByMethod(identifier) {\r\n const allServers = [];\r\n Object.values(this.servers).forEach((server) => {\r\n Object.values(server.methods).forEach((method) => {\r\n if (method.identifier === identifier) {\r\n allServers.push(server.instance);\r\n }\r\n });\r\n });\r\n return allServers;\r\n }\r\n returnUnsubWithDelayedReplay(unsubscribeFunc, collectionToReplay, callback) {\r\n let unsubCalled = false;\r\n setTimeout(() => {\r\n collectionToReplay.forEach((item) => {\r\n if (!unsubCalled) {\r\n callback(item);\r\n }\r\n });\r\n }, 0);\r\n return () => {\r\n unsubCalled = true;\r\n unsubscribeFunc();\r\n };\r\n }\r\n hideServerMethodSystemFlags(server) {\r\n const clientMethods = {};\r\n Object.entries(server.methods).forEach(([name, method]) => {\r\n clientMethods[name] = hideMethodSystemFlags(method);\r\n });\r\n return {\r\n ...server,\r\n methods: clientMethods\r\n };\r\n }\r\n extractMethodsFromServers(servers) {\r\n const methods = Object.values(servers).reduce((clientMethods, server) => {\r\n return [...clientMethods, ...Object.values(server.methods)];\r\n }, []);\r\n return methods;\r\n }\r\n}\n\nclass ServerRepository {\r\n nextId = 0;\r\n methods = [];\r\n add(method) {\r\n method.repoId = String(this.nextId);\r\n this.nextId += 1;\r\n this.methods.push(method);\r\n return method;\r\n }\r\n remove(repoId) {\r\n if (typeof repoId !== \"string\") {\r\n return new TypeError(\"Expecting a string\");\r\n }\r\n this.methods = this.methods.filter((m) => {\r\n return m.repoId !== repoId;\r\n });\r\n }\r\n getById(id) {\r\n if (typeof id !== \"string\") {\r\n return undefined;\r\n }\r\n return this.methods.find((m) => {\r\n return m.repoId === id;\r\n });\r\n }\r\n getList() {\r\n return this.methods.map((m) => m);\r\n }\r\n length() {\r\n return this.methods.length;\r\n }\r\n reset() {\r\n this.methods = [];\r\n }\r\n}\n\nconst SUBSCRIPTION_REQUEST = \"onSubscriptionRequest\";\r\nconst SUBSCRIPTION_ADDED = \"onSubscriptionAdded\";\r\nconst SUBSCRIPTION_REMOVED = \"onSubscriptionRemoved\";\r\nclass ServerStreaming {\r\n session;\r\n repository;\r\n serverRepository;\r\n ERR_URI_SUBSCRIPTION_FAILED = \"com.tick42.agm.errors.subscription.failure\";\r\n callbacks = CallbackRegistryFactory();\r\n nextStreamId = 0;\r\n constructor(session, repository, serverRepository) {\r\n this.session = session;\r\n this.repository = repository;\r\n this.serverRepository = serverRepository;\r\n session.on(\"add-interest\", (msg) => {\r\n this.handleAddInterest(msg);\r\n });\r\n session.on(\"remove-interest\", (msg) => {\r\n this.handleRemoveInterest(msg);\r\n });\r\n }\r\n acceptRequestOnBranch(requestContext, streamingMethod, branch) {\r\n if (typeof branch !== \"string\") {\r\n branch = \"\";\r\n }\r\n if (typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\r\n throw new TypeError(\"The streaming method is missing its subscriptions.\");\r\n }\r\n if (!Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\r\n throw new TypeError(\"The streaming method is missing its branches.\");\r\n }\r\n const streamId = this.getStreamId(streamingMethod, branch);\r\n const key = requestContext.msg.subscription_id;\r\n const subscription = {\r\n id: key,\r\n arguments: requestContext.arguments,\r\n instance: requestContext.instance,\r\n branchKey: branch,\r\n streamId,\r\n subscribeMsg: requestContext.msg,\r\n };\r\n streamingMethod.protocolState.subscriptionsMap[key] = subscription;\r\n this.session.sendFireAndForget({\r\n type: \"accepted\",\r\n subscription_id: key,\r\n stream_id: streamId,\r\n });\r\n this.callbacks.execute(SUBSCRIPTION_ADDED, subscription, streamingMethod);\r\n }\r\n rejectRequest(requestContext, streamingMethod, reason) {\r\n if (typeof reason !== \"string\") {\r\n reason = \"\";\r\n }\r\n this.sendSubscriptionFailed(\"Subscription rejected by user. \" + reason, requestContext.msg.subscription_id);\r\n }\r\n pushData(streamingMethod, data, branches) {\r\n if (typeof streamingMethod !== \"object\" || !Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\r\n return;\r\n }\r\n if (typeof data !== \"object\") {\r\n throw new Error(\"Invalid arguments. Data must be an object.\");\r\n }\r\n if (typeof branches === \"string\") {\r\n branches = [branches];\r\n }\r\n else if (!Array.isArray(branches) || branches.length <= 0) {\r\n branches = [];\r\n }\r\n const streamIdList = streamingMethod.protocolState.branchKeyToStreamIdMap\r\n .filter((br) => {\r\n if (!branches || branches.length === 0) {\r\n return true;\r\n }\r\n return branches.indexOf(br.key) >= 0;\r\n }).map((br) => {\r\n return br.streamId;\r\n });\r\n streamIdList.forEach((streamId) => {\r\n const publishMessage = {\r\n type: \"publish\",\r\n stream_id: streamId,\r\n data,\r\n };\r\n this.session.sendFireAndForget(publishMessage);\r\n });\r\n }\r\n pushDataToSingle(method, subscription, data) {\r\n if (typeof data !== \"object\") {\r\n throw new Error(\"Invalid arguments. Data must be an object.\");\r\n }\r\n const postMessage = {\r\n type: \"post\",\r\n subscription_id: subscription.id,\r\n data,\r\n };\r\n this.session.sendFireAndForget(postMessage);\r\n }\r\n closeSingleSubscription(streamingMethod, subscription) {\r\n if (streamingMethod.protocolState.subscriptionsMap) {\r\n delete streamingMethod.protocolState.subscriptionsMap[subscription.id];\r\n }\r\n const dropSubscriptionMessage = {\r\n type: \"drop-subscription\",\r\n subscription_id: subscription.id,\r\n reason: \"Server dropping a single subscription\",\r\n };\r\n this.session.sendFireAndForget(dropSubscriptionMessage);\r\n subscription.instance;\r\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\r\n }\r\n closeMultipleSubscriptions(streamingMethod, branchKey) {\r\n if (typeof streamingMethod !== \"object\" || typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\r\n return;\r\n }\r\n if (!streamingMethod.protocolState.subscriptionsMap) {\r\n return;\r\n }\r\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\r\n let subscriptionsToClose = Object.keys(subscriptionsMap)\r\n .map((key) => {\r\n return subscriptionsMap[key];\r\n });\r\n if (typeof branchKey === \"string\") {\r\n subscriptionsToClose = subscriptionsToClose.filter((sub) => {\r\n return sub.branchKey === branchKey;\r\n });\r\n }\r\n subscriptionsToClose.forEach((subscription) => {\r\n delete subscriptionsMap[subscription.id];\r\n const drop = {\r\n type: \"drop-subscription\",\r\n subscription_id: subscription.id,\r\n reason: \"Server dropping all subscriptions on stream_id: \" + subscription.streamId,\r\n };\r\n this.session.sendFireAndForget(drop);\r\n });\r\n }\r\n getSubscriptionList(streamingMethod, branchKey) {\r\n if (typeof streamingMethod !== \"object\") {\r\n return [];\r\n }\r\n let subscriptions = [];\r\n if (!streamingMethod.protocolState.subscriptionsMap) {\r\n return [];\r\n }\r\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\r\n const allSubscriptions = Object.keys(subscriptionsMap)\r\n .map((key) => {\r\n return subscriptionsMap[key];\r\n });\r\n if (typeof branchKey !== \"string\") {\r\n subscriptions = allSubscriptions;\r\n }\r\n else {\r\n subscriptions = allSubscriptions.filter((sub) => {\r\n return sub.branchKey === branchKey;\r\n });\r\n }\r\n return subscriptions;\r\n }\r\n getBranchList(streamingMethod) {\r\n if (typeof streamingMethod !== \"object\") {\r\n return [];\r\n }\r\n if (!streamingMethod.protocolState.subscriptionsMap) {\r\n return [];\r\n }\r\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\r\n const allSubscriptions = Object.keys(subscriptionsMap)\r\n .map((key) => {\r\n return subscriptionsMap[key];\r\n });\r\n const result = [];\r\n allSubscriptions.forEach((sub) => {\r\n let branch = \"\";\r\n if (typeof sub === \"object\" && typeof sub.branchKey === \"string\") {\r\n branch = sub.branchKey;\r\n }\r\n if (result.indexOf(branch) === -1) {\r\n result.push(branch);\r\n }\r\n });\r\n return result;\r\n }\r\n onSubAdded(callback) {\r\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_ADDED, callback);\r\n }\r\n onSubRequest(callback) {\r\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REQUEST, callback);\r\n }\r\n onSubRemoved(callback) {\r\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REMOVED, callback);\r\n }\r\n handleRemoveInterest(msg) {\r\n const streamingMethod = this.serverRepository.getById(msg.method_id);\r\n if (typeof msg.subscription_id !== \"string\" ||\r\n typeof streamingMethod !== \"object\") {\r\n return;\r\n }\r\n if (!streamingMethod.protocolState.subscriptionsMap) {\r\n return;\r\n }\r\n if (typeof streamingMethod.protocolState.subscriptionsMap[msg.subscription_id] !== \"object\") {\r\n return;\r\n }\r\n const subscription = streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\r\n delete streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\r\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\r\n }\r\n onSubscriptionLifetimeEvent(eventName, handlerFunc) {\r\n this.callbacks.add(eventName, handlerFunc);\r\n }\r\n getNextStreamId() {\r\n return this.nextStreamId++ + \"\";\r\n }\r\n handleAddInterest(msg) {\r\n const caller = this.repository.getServerById(msg.caller_id);\r\n const instance = caller?.instance ?? {};\r\n const requestContext = {\r\n msg,\r\n arguments: msg.arguments_kv || {},\r\n instance,\r\n };\r\n const streamingMethod = this.serverRepository.getById(msg.method_id);\r\n if (streamingMethod === undefined) {\r\n const errorMsg = \"No method with id \" + msg.method_id + \" on this server.\";\r\n this.sendSubscriptionFailed(errorMsg, msg.subscription_id);\r\n return;\r\n }\r\n if (streamingMethod.protocolState.subscriptionsMap &&\r\n streamingMethod.protocolState.subscriptionsMap[msg.subscription_id]) {\r\n this.sendSubscriptionFailed(\"A subscription with id \" + msg.subscription_id + \" already exists.\", msg.subscription_id);\r\n return;\r\n }\r\n this.callbacks.execute(SUBSCRIPTION_REQUEST, requestContext, streamingMethod);\r\n }\r\n sendSubscriptionFailed(reason, subscriptionId) {\r\n const errorMessage = {\r\n type: \"error\",\r\n reason_uri: this.ERR_URI_SUBSCRIPTION_FAILED,\r\n reason,\r\n request_id: subscriptionId,\r\n };\r\n this.session.sendFireAndForget(errorMessage);\r\n }\r\n getStreamId(streamingMethod, branchKey) {\r\n if (typeof branchKey !== \"string\") {\r\n branchKey = \"\";\r\n }\r\n if (!streamingMethod.protocolState.branchKeyToStreamIdMap) {\r\n throw new Error(`streaming ${streamingMethod.definition.name} method without protocol state`);\r\n }\r\n const needleBranch = streamingMethod.protocolState.branchKeyToStreamIdMap.filter((branch) => {\r\n return branch.key === branchKey;\r\n })[0];\r\n let streamId = (needleBranch ? needleBranch.streamId : undefined);\r\n if (typeof streamId !== \"string\" || streamId === \"\") {\r\n streamId = this.getNextStreamId();\r\n streamingMethod.protocolState.branchKeyToStreamIdMap.push({ key: branchKey, streamId });\r\n }\r\n return streamId;\r\n }\r\n}\n\nclass ServerProtocol {\r\n session;\r\n clientRepository;\r\n serverRepository;\r\n logger;\r\n callbacks = CallbackRegistryFactory();\r\n streaming;\r\n constructor(session, clientRepository, serverRepository, logger) {\r\n this.session = session;\r\n this.clientRepository = clientRepository;\r\n this.serverRepository = serverRepository;\r\n this.logger = logger;\r\n this.streaming = new ServerStreaming(session, clientRepository, serverRepository);\r\n this.session.on(\"invoke\", (msg) => this.handleInvokeMessage(msg));\r\n }\r\n createStream(repoMethod) {\r\n repoMethod.protocolState.subscriptionsMap = {};\r\n repoMethod.protocolState.branchKeyToStreamIdMap = [];\r\n return this.register(repoMethod, true);\r\n }\r\n register(repoMethod, isStreaming) {\r\n const methodDef = repoMethod.definition;\r\n const flags = Object.assign({}, { metadata: methodDef.flags ?? {} }, { streaming: isStreaming || false });\r\n const registerMsg = {\r\n type: \"register\",\r\n methods: [{\r\n id: repoMethod.repoId,\r\n name: methodDef.name,\r\n display_name: methodDef.displayName,\r\n description: methodDef.description,\r\n version: methodDef.version,\r\n flags,\r\n object_types: methodDef.objectTypes || methodDef.object_types,\r\n input_signature: methodDef.accepts,\r\n result_signature: methodDef.returns,\r\n restrictions: undefined,\r\n }],\r\n };\r\n return this.session.send(registerMsg, { methodId: repoMethod.repoId })\r\n .then(() => {\r\n this.logger.debug(\"registered method \" + repoMethod.definition.name + \" with id \" + repoMethod.repoId);\r\n })\r\n .catch((msg) => {\r\n this.logger.warn(`failed to register method ${repoMethod.definition.name} with id ${repoMethod.repoId} - ${JSON.stringify(msg)}`);\r\n throw msg;\r\n });\r\n }\r\n onInvoked(callback) {\r\n this.callbacks.add(\"onInvoked\", callback);\r\n }\r\n methodInvocationResult(method, invocationId, err, result) {\r\n let msg;\r\n if (err || err === \"\") {\r\n msg = {\r\n type: \"error\",\r\n request_id: invocationId,\r\n reason_uri: \"agm.errors.client_error\",\r\n reason: err,\r\n context: result,\r\n peer_id: undefined,\r\n };\r\n }\r\n else {\r\n msg = {\r\n type: \"yield\",\r\n invocation_id: invocationId,\r\n peer_id: this.session.peerId,\r\n result,\r\n request_id: undefined,\r\n };\r\n }\r\n this.session.sendFireAndForget(msg);\r\n }\r\n async unregister(method) {\r\n const msg = {\r\n type: \"unregister\",\r\n methods: [method.repoId],\r\n };\r\n await this.session.send(msg);\r\n }\r\n getBranchList(method) {\r\n return this.streaming.getBranchList(method);\r\n }\r\n getSubscriptionList(method, branchKey) {\r\n return this.streaming.getSubscriptionList(method, branchKey);\r\n }\r\n closeAllSubscriptions(method, branchKey) {\r\n this.streaming.closeMultipleSubscriptions(method, branchKey);\r\n }\r\n pushData(method, data, branches) {\r\n this.streaming.pushData(method, data, branches);\r\n }\r\n pushDataToSingle(method, subscription, data) {\r\n this.streaming.pushDataToSingle(method, subscription, data);\r\n }\r\n closeSingleSubscription(method, subscription) {\r\n this.streaming.closeSingleSubscription(method, subscription);\r\n }\r\n acceptRequestOnBranch(requestContext, method, branch) {\r\n this.streaming.acceptRequestOnBranch(requestContext, method, branch);\r\n }\r\n rejectRequest(requestContext, method, reason) {\r\n this.streaming.rejectRequest(requestContext, method, reason);\r\n }\r\n onSubRequest(callback) {\r\n this.streaming.onSubRequest(callback);\r\n }\r\n onSubAdded(callback) {\r\n this.streaming.onSubAdded(callback);\r\n }\r\n onSubRemoved(callback) {\r\n this.streaming.onSubRemoved(callback);\r\n }\r\n handleInvokeMessage(msg) {\r\n const invocationId = msg.invocation_id;\r\n const callerId = msg.caller_id;\r\n const methodId = msg.method_id;\r\n const args = msg.arguments_kv;\r\n const methodList = this.serverRepository.getList();\r\n const method = methodList.filter((m) => {\r\n return m.repoId === methodId;\r\n })[0];\r\n if (method === undefined) {\r\n return;\r\n }\r\n const client = this.clientRepository.getServerById(callerId)?.instance;\r\n const invocationArgs = { args, instance: client };\r\n this.callbacks.execute(\"onInvoked\", method, invocationId, invocationArgs);\r\n }\r\n}\n\nclass UserSubscription {\r\n repository;\r\n subscriptionData;\r\n get requestArguments() {\r\n return this.subscriptionData.params.arguments || {};\r\n }\r\n get servers() {\r\n return this.subscriptionData.trackedServers.reduce((servers, pair) => {\r\n if (pair.subscriptionId) {\r\n const server = this.repository.getServerById(pair.serverId)?.instance;\r\n if (server) {\r\n servers.push(server);\r\n }\r\n }\r\n return servers;\r\n }, []);\r\n }\r\n get serverInstance() {\r\n return this.servers[0];\r\n }\r\n get stream() {\r\n return this.subscriptionData.method;\r\n }\r\n constructor(repository, subscriptionData) {\r\n this.repository = repository;\r\n this.subscriptionData = subscriptionData;\r\n }\r\n onData(dataCallback) {\r\n if (typeof dataCallback !== \"function\") {\r\n throw new TypeError(\"The data callback must be a function.\");\r\n }\r\n this.subscriptionData.handlers.onData.push(dataCallback);\r\n if (this.subscriptionData.handlers.onData.length === 1 && this.subscriptionData.queued.data.length > 0) {\r\n this.subscriptionData.queued.data.forEach((dataItem) => {\r\n dataCallback(dataItem);\r\n });\r\n }\r\n }\r\n onClosed(closedCallback) {\r\n if (typeof closedCallback !== \"function\") {\r\n throw new TypeError(\"The callback must be a function.\");\r\n }\r\n this.subscriptionData.handlers.onClosed.push(closedCallback);\r\n }\r\n onFailed(callback) {\r\n }\r\n onConnected(callback) {\r\n if (typeof callback !== \"function\") {\r\n throw new TypeError(\"The callback must be a function.\");\r\n }\r\n this.subscriptionData.handlers.onConnected.push(callback);\r\n }\r\n close() {\r\n this.subscriptionData.close();\r\n }\r\n setNewSubscription(newSub) {\r\n this.subscriptionData = newSub;\r\n }\r\n}\n\nclass TimedCache {\r\n config;\r\n cache = [];\r\n timeoutIds = [];\r\n constructor(config) {\r\n this.config = config;\r\n }\r\n add(element) {\r\n const id = nanoid(10);\r\n this.cache.push({ id, element });\r\n const timeoutId = setTimeout(() => {\r\n const elementIdx = this.cache.findIndex((entry) => entry.id === id);\r\n if (elementIdx < 0) {\r\n return;\r\n }\r\n this.cache.splice(elementIdx, 1);\r\n }, this.config.ELEMENT_TTL_MS);\r\n this.timeoutIds.push(timeoutId);\r\n }\r\n flush() {\r\n const elements = this.cache.map((entry) => entry.element);\r\n this.timeoutIds.forEach((id) => clearInterval(id));\r\n this.cache = [];\r\n this.timeoutIds = [];\r\n return elements;\r\n }\r\n}\n\nconst STATUS_AWAITING_ACCEPT = \"awaitingAccept\";\r\nconst STATUS_SUBSCRIBED = \"subscribed\";\r\nconst ERR_MSG_SUB_FAILED = \"Subscription failed.\";\r\nconst ERR_MSG_SUB_REJECTED = \"Subscription rejected.\";\r\nconst ON_CLOSE_MSG_SERVER_INIT = \"ServerInitiated\";\r\nconst ON_CLOSE_MSG_CLIENT_INIT = \"ClientInitiated\";\r\nclass ClientStreaming {\r\n session;\r\n repository;\r\n logger;\r\n subscriptionsList = {};\r\n timedCache = new TimedCache({ ELEMENT_TTL_MS: 10000 });\r\n subscriptionIdToLocalKeyMap = {};\r\n nextSubLocalKey = 0;\r\n constructor(session, repository, logger) {\r\n this.session = session;\r\n this.repository = repository;\r\n this.logger = logger;\r\n session.on(\"subscribed\", this.handleSubscribed);\r\n session.on(\"event\", this.handleEventData);\r\n session.on(\"subscription-cancelled\", this.handleSubscriptionCancelled);\r\n }\r\n subscribe(streamingMethod, params, targetServers, success, error, existingSub) {\r\n if (targetServers.length === 0) {\r\n error({\r\n method: streamingMethod,\r\n called_with: params.arguments,\r\n message: ERR_MSG_SUB_FAILED + \" No available servers matched the target params.\",\r\n });\r\n return;\r\n }\r\n const subLocalKey = this.getNextSubscriptionLocalKey();\r\n const pendingSub = this.registerSubscription(subLocalKey, streamingMethod, params, success, error, params.methodResponseTimeout || 10000, existingSub);\r\n if (typeof pendingSub !== \"object\") {\r\n error({\r\n method: streamingMethod,\r\n called_with: params.arguments,\r\n message: ERR_MSG_SUB_FAILED + \" Unable to register the user callbacks.\",\r\n });\r\n return;\r\n }\r\n targetServers.forEach((target) => {\r\n const serverId = target.server.id;\r\n const method = target.methods.find((m) => m.name === streamingMethod.name);\r\n if (!method) {\r\n this.logger.error(`can not find method ${streamingMethod.name} for target ${target.server.id}`);\r\n return;\r\n }\r\n pendingSub.trackedServers.push({\r\n serverId,\r\n subscriptionId: undefined,\r\n });\r\n const msg = {\r\n type: \"subscribe\",\r\n server_id: serverId,\r\n method_id: method.gatewayId,\r\n arguments_kv: params.arguments,\r\n };\r\n this.session.send(msg, { serverId, subLocalKey })\r\n .then((m) => this.handleSubscribed(m))\r\n .catch((err) => this.handleErrorSubscribing(err));\r\n });\r\n }\r\n drainSubscriptions() {\r\n const existing = Object.values(this.subscriptionsList);\r\n this.subscriptionsList = {};\r\n this.subscriptionIdToLocalKeyMap = {};\r\n return existing;\r\n }\r\n drainSubscriptionsCache() {\r\n return this.timedCache.flush();\r\n }\r\n getNextSubscriptionLocalKey() {\r\n const current = this.nextSubLocalKey;\r\n this.nextSubLocalKey += 1;\r\n return current;\r\n }\r\n registerSubscription(subLocalKey, method, params, success, error, timeout, existingSub) {\r\n const subsInfo = {\r\n localKey: subLocalKey,\r\n status: STATUS_AWAITING_ACCEPT,\r\n method,\r\n params,\r\n success,\r\n error,\r\n trackedServers: [],\r\n handlers: {\r\n onData: existingSub?.handlers.onData || [],\r\n onClosed: existingSub?.handlers.onClosed || [],\r\n onConnected: existingSub?.handlers.onConnected || [],\r\n },\r\n queued: {\r\n data: [],\r\n closers: [],\r\n },\r\n timeoutId: undefined,\r\n close: () => this.closeSubscription(subLocalKey),\r\n subscription: existingSub?.subscription\r\n };\r\n if (!existingSub) {\r\n if (params.onData) {\r\n subsInfo.handlers.onData.push(params.onData);\r\n }\r\n if (params.onClosed) {\r\n subsInfo.handlers.onClosed.push(params.onClosed);\r\n }\r\n if (params.onConnected) {\r\n subsInfo.handlers.onConnected.push(params.onConnected);\r\n }\r\n }\r\n this.subscriptionsList[subLocalKey] = subsInfo;\r\n subsInfo.timeoutId = setTimeout(() => {\r\n if (this.subscriptionsList[subLocalKey] === undefined) {\r\n return;\r\n }\r\n const pendingSub = this.subscriptionsList[subLocalKey];\r\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\r\n error({\r\n method,\r\n called_with: params.arguments,\r\n message: ERR_MSG_SUB_FAILED + \" Subscription attempt timed out after \" + timeout + \" ms.\",\r\n });\r\n delete this.subscriptionsList[subLocalKey];\r\n }\r\n else if (pendingSub.status === STATUS_SUBSCRIBED && pendingSub.trackedServers.length > 0) {\r\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\r\n return (typeof server.subscriptionId !== \"undefined\");\r\n });\r\n delete pendingSub.timeoutId;\r\n if (pendingSub.trackedServers.length <= 0) {\r\n this.callOnClosedHandlers(pendingSub);\r\n delete this.subscriptionsList[subLocalKey];\r\n }\r\n }\r\n }, timeout);\r\n return subsInfo;\r\n }\r\n handleErrorSubscribing = (errorResponse) => {\r\n const tag = errorResponse._tag;\r\n const subLocalKey = tag.subLocalKey;\r\n const pendingSub = this.subscriptionsList[subLocalKey];\r\n if (typeof pendingSub !== \"object\") {\r\n return;\r\n }\r\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\r\n return server.serverId !== tag.serverId;\r\n });\r\n if (pendingSub.trackedServers.length <= 0) {\r\n clearTimeout(pendingSub.timeoutId);\r\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\r\n const reason = (typeof errorResponse.reason === \"string\" && errorResponse.reason !== \"\") ?\r\n ' Publisher said \"' + errorResponse.reason + '\".' :\r\n \" No reason given.\";\r\n const callArgs = typeof pendingSub.params.arguments === \"object\" ?\r\n JSON.stringify(pendingSub.params.arguments) :\r\n \"{}\";\r\n pendingSub.error({\r\n message: ERR_MSG_SUB_REJECTED + reason + \" Called with:\" + callArgs,\r\n called_with: pendingSub.params.arguments,\r\n method: pendingSub.method,\r\n });\r\n }\r\n else if (pendingSub.status === STATUS_SUBSCRIBED) {\r\n this.callOnClosedHandlers(pendingSub);\r\n }\r\n delete this.subscriptionsList[subLocalKey];\r\n }\r\n };\r\n handleSubscribed = (msg) => {\r\n const subLocalKey = msg._tag.subLocalKey;\r\n const pendingSub = this.subscriptionsList[subLocalKey];\r\n if (typeof pendingSub !== \"object\") {\r\n return;\r\n }\r\n const serverId = msg._tag.serverId;\r\n const acceptingServer = pendingSub.trackedServers\r\n .filter((server) => {\r\n return server.serverId === serverId;\r\n })[0];\r\n if (typeof acceptingServer !== \"object\") {\r\n return;\r\n }\r\n acceptingServer.subscriptionId = msg.subscription_id;\r\n this.subscriptionIdToLocalKeyMap[msg.subscription_id] = subLocalKey;\r\n const isFirstResponse = (pendingSub.status === STATUS_AWAITING_ACCEPT);\r\n pendingSub.status = STATUS_SUBSCRIBED;\r\n if (isFirstResponse) {\r\n let reconnect = false;\r\n let sub = pendingSub.subscription;\r\n if (sub) {\r\n sub.setNewSubscription(pendingSub);\r\n pendingSub.success(sub);\r\n reconnect = true;\r\n }\r\n else {\r\n sub = new UserSubscription(this.repository, pendingSub);\r\n pendingSub.subscription = sub;\r\n pendingSub.success(sub);\r\n }\r\n for (const handler of pendingSub.handlers.onConnected) {\r\n try {\r\n handler(sub.serverInstance, reconnect);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n }\r\n };\r\n handleEventData = (msg) => {\r\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\r\n if (typeof subLocalKey === \"undefined\") {\r\n return;\r\n }\r\n const subscription = this.subscriptionsList[subLocalKey];\r\n if (typeof subscription !== \"object\") {\r\n return;\r\n }\r\n const trackedServersFound = subscription.trackedServers.filter((s) => {\r\n return s.subscriptionId === msg.subscription_id;\r\n });\r\n if (trackedServersFound.length !== 1) {\r\n return;\r\n }\r\n const isPrivateData = msg.oob;\r\n const sendingServerId = trackedServersFound[0].serverId;\r\n const server = this.repository.getServerById(sendingServerId);\r\n const receivedStreamData = () => {\r\n return {\r\n data: msg.data,\r\n server: server?.instance ?? {},\r\n requestArguments: subscription.params.arguments,\r\n message: undefined,\r\n private: isPrivateData,\r\n };\r\n };\r\n const onDataHandlers = subscription.handlers.onData;\r\n const queuedData = subscription.queued.data;\r\n if (onDataHandlers.length > 0) {\r\n onDataHandlers.forEach((callback) => {\r\n if (typeof callback === \"function\") {\r\n callback(receivedStreamData());\r\n }\r\n });\r\n }\r\n else {\r\n queuedData.push(receivedStreamData());\r\n }\r\n };\r\n handleSubscriptionCancelled = (msg) => {\r\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\r\n if (typeof subLocalKey === \"undefined\") {\r\n return;\r\n }\r\n const subscription = this.subscriptionsList[subLocalKey];\r\n if (typeof subscription !== \"object\") {\r\n return;\r\n }\r\n const expectedNewLength = subscription.trackedServers.length - 1;\r\n subscription.trackedServers = subscription.trackedServers.filter((server) => {\r\n if (server.subscriptionId === msg.subscription_id) {\r\n subscription.queued.closers.push(server.serverId);\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n if (subscription.trackedServers.length !== expectedNewLength) {\r\n return;\r\n }\r\n if (subscription.trackedServers.length <= 0) {\r\n this.timedCache.add(subscription);\r\n clearTimeout(subscription.timeoutId);\r\n this.callOnClosedHandlers(subscription);\r\n delete this.subscriptionsList[subLocalKey];\r\n }\r\n delete this.subscriptionIdToLocalKeyMap[msg.subscription_id];\r\n };\r\n callOnClosedHandlers(subscription, reason) {\r\n const closersCount = subscription.queued.closers.length;\r\n const closingServerId = (closersCount > 0) ? subscription.queued.closers[closersCount - 1] : null;\r\n let closingServer;\r\n if (closingServerId !== undefined && typeof closingServerId === \"string\") {\r\n closingServer = this.repository.getServerById(closingServerId)?.instance ?? {};\r\n }\r\n subscription.handlers.onClosed.forEach((callback) => {\r\n if (typeof callback !== \"function\") {\r\n return;\r\n }\r\n callback({\r\n message: reason || ON_CLOSE_MSG_SERVER_INIT,\r\n requestArguments: subscription.params.arguments || {},\r\n server: closingServer,\r\n stream: subscription.method,\r\n });\r\n });\r\n }\r\n closeSubscription(subLocalKey) {\r\n const subscription = this.subscriptionsList[subLocalKey];\r\n if (typeof subscription !== \"object\") {\r\n return;\r\n }\r\n subscription.trackedServers.forEach((server) => {\r\n if (typeof server.subscriptionId === \"undefined\") {\r\n return;\r\n }\r\n subscription.queued.closers.push(server.serverId);\r\n this.session.sendFireAndForget({\r\n type: \"unsubscribe\",\r\n subscription_id: server.subscriptionId,\r\n reason_uri: \"\",\r\n reason: ON_CLOSE_MSG_CLIENT_INIT,\r\n });\r\n delete this.subscriptionIdToLocalKeyMap[server.subscriptionId];\r\n });\r\n subscription.trackedServers = [];\r\n this.callOnClosedHandlers(subscription, ON_CLOSE_MSG_CLIENT_INIT);\r\n delete this.subscriptionsList[subLocalKey];\r\n }\r\n}\n\nclass ClientProtocol {\r\n session;\r\n repository;\r\n logger;\r\n streaming;\r\n constructor(session, repository, logger) {\r\n this.session = session;\r\n this.repository = repository;\r\n this.logger = logger;\r\n session.on(\"peer-added\", (msg) => this.handlePeerAdded(msg));\r\n session.on(\"peer-removed\", (msg) => this.handlePeerRemoved(msg));\r\n session.on(\"methods-added\", (msg) => this.handleMethodsAddedMessage(msg));\r\n session.on(\"methods-removed\", (msg) => this.handleMethodsRemovedMessage(msg));\r\n this.streaming = new ClientStreaming(session, repository, logger);\r\n }\r\n subscribe(stream, options, targetServers, success, error, existingSub) {\r\n this.streaming.subscribe(stream, options, targetServers, success, error, existingSub);\r\n }\r\n invoke(id, method, args, target) {\r\n const serverId = target.id;\r\n const methodId = method.gatewayId;\r\n const msg = {\r\n type: \"call\",\r\n server_id: serverId,\r\n method_id: methodId,\r\n arguments_kv: args,\r\n };\r\n return this.session.send(msg, { invocationId: id, serverId })\r\n .then((m) => this.handleResultMessage(m))\r\n .catch((err) => this.handleInvocationError(err));\r\n }\r\n drainSubscriptions() {\r\n return this.streaming.drainSubscriptions();\r\n }\r\n drainSubscriptionsCache() {\r\n return this.streaming.drainSubscriptionsCache();\r\n }\r\n handlePeerAdded(msg) {\r\n const newPeerId = msg.new_peer_id;\r\n const remoteId = msg.identity;\r\n const isLocal = msg.meta ? msg.meta.local : true;\r\n const pid = Number(remoteId.process);\r\n const serverInfo = {\r\n machine: remoteId.machine,\r\n pid: isNaN(pid) ? remoteId.process : pid,\r\n instance: remoteId.instance,\r\n application: remoteId.application,\r\n applicationName: remoteId.applicationName,\r\n environment: remoteId.environment,\r\n region: remoteId.region,\r\n user: remoteId.user,\r\n windowId: remoteId.windowId,\r\n peerId: newPeerId,\r\n api: remoteId.api,\r\n isLocal\r\n };\r\n this.repository.addServer(serverInfo, newPeerId);\r\n }\r\n handlePeerRemoved(msg) {\r\n const removedPeerId = msg.removed_id;\r\n const reason = msg.reason;\r\n this.repository.removeServerById(removedPeerId, reason);\r\n }\r\n handleMethodsAddedMessage(msg) {\r\n const serverId = msg.server_id;\r\n const methods = msg.methods;\r\n methods.forEach((method) => {\r\n this.repository.addServerMethod(serverId, method);\r\n });\r\n }\r\n handleMethodsRemovedMessage(msg) {\r\n const serverId = msg.server_id;\r\n const methodIdList = msg.methods;\r\n const server = this.repository.getServerById(serverId);\r\n if (server) {\r\n const serverMethodKeys = Object.keys(server.methods);\r\n serverMethodKeys.forEach((methodKey) => {\r\n const method = server.methods[methodKey];\r\n if (methodIdList.indexOf(method.gatewayId) > -1) {\r\n this.repository.removeServerMethod(serverId, methodKey);\r\n }\r\n });\r\n }\r\n }\r\n handleResultMessage(msg) {\r\n const invocationId = msg._tag.invocationId;\r\n const result = msg.result;\r\n const serverId = msg._tag.serverId;\r\n const server = this.repository.getServerById(serverId);\r\n return {\r\n invocationId,\r\n result,\r\n instance: server?.instance,\r\n status: InvokeStatus.Success,\r\n message: \"\"\r\n };\r\n }\r\n handleInvocationError(msg) {\r\n this.logger.debug(`handle invocation error ${JSON.stringify(msg)}`);\r\n if (\"_tag\" in msg) {\r\n const invocationId = msg._tag.invocationId;\r\n const serverId = msg._tag.serverId;\r\n const server = this.repository.getServerById(serverId);\r\n const message = msg.reason;\r\n const context = msg.context;\r\n return {\r\n invocationId,\r\n result: context,\r\n instance: server?.instance,\r\n status: InvokeStatus.Error,\r\n message\r\n };\r\n }\r\n else {\r\n return {\r\n invocationId: \"\",\r\n message: msg.message,\r\n status: InvokeStatus.Error,\r\n error: msg\r\n };\r\n }\r\n }\r\n}\n\nfunction gW3ProtocolFactory (instance, connection, clientRepository, serverRepository, libConfig, interop) {\r\n const logger = libConfig.logger.subLogger(\"gw3-protocol\");\r\n let resolveReadyPromise;\r\n const readyPromise = new Promise((resolve) => {\r\n resolveReadyPromise = resolve;\r\n });\r\n const session = connection.domain(\"agm\", [\"subscribed\"]);\r\n const server = new ServerProtocol(session, clientRepository, serverRepository, logger.subLogger(\"server\"));\r\n const client = new ClientProtocol(session, clientRepository, logger.subLogger(\"client\"));\r\n async function handleReconnect() {\r\n logger.info(\"reconnected - will replay registered methods and subscriptions\");\r\n client.drainSubscriptionsCache().forEach((sub) => {\r\n const methodInfo = sub.method;\r\n const params = Object.assign({}, sub.params);\r\n logger.info(`trying to soft-re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\r\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)}}`));\r\n });\r\n const reconnectionPromises = [];\r\n const existingSubscriptions = client.drainSubscriptions();\r\n for (const sub of existingSubscriptions) {\r\n const methodInfo = sub.method;\r\n const params = Object.assign({}, sub.params);\r\n logger.info(`trying to re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\r\n reconnectionPromises.push(interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`subscribing to method ${methodInfo.name} DONE`)));\r\n }\r\n const registeredMethods = serverRepository.getList();\r\n serverRepository.reset();\r\n for (const method of registeredMethods) {\r\n const def = method.definition;\r\n if (method.stream) {\r\n reconnectionPromises.push(interop.server.createStream(def, method.streamCallbacks, undefined, undefined, method.stream)\r\n .then(() => logger.info(`subscribing to method ${def.name} DONE`))\r\n .catch(() => logger.warn(`subscribing to method ${def.name} FAILED`)));\r\n }\r\n else if (method?.theFunction?.userCallback) {\r\n reconnectionPromises.push(interop.register(def, method.theFunction.userCallback)\r\n .then(() => logger.info(`registering method ${def.name} DONE`))\r\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\r\n }\r\n else if (method?.theFunction?.userCallbackAsync) {\r\n reconnectionPromises.push(interop.registerAsync(def, method.theFunction.userCallbackAsync)\r\n .then(() => logger.info(`registering method ${def.name} DONE`))\r\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\r\n }\r\n }\r\n await Promise.all(reconnectionPromises);\r\n logger.info(\"Interop is re-announced\");\r\n }\r\n function handleInitialJoin() {\r\n if (resolveReadyPromise) {\r\n resolveReadyPromise({\r\n client,\r\n server,\r\n });\r\n resolveReadyPromise = undefined;\r\n }\r\n }\r\n session.onJoined((reconnect) => {\r\n clientRepository.addServer(instance, connection.peerId);\r\n if (reconnect) {\r\n handleReconnect().then(() => connection.setLibReAnnounced({ name: \"interop\" })).catch((error) => logger.warn(`Error while re-announcing interop: ${JSON.stringify(error)}`));\r\n }\r\n else {\r\n handleInitialJoin();\r\n }\r\n });\r\n session.onLeft(() => {\r\n clientRepository.reset();\r\n });\r\n session.join();\r\n return readyPromise;\r\n}\n\nclass Interop {\r\n instance;\r\n readyPromise;\r\n client;\r\n server;\r\n unwrappedInstance;\r\n protocol;\r\n clientRepository;\r\n serverRepository;\r\n constructor(configuration) {\r\n if (typeof configuration === \"undefined\") {\r\n throw new Error(\"configuration is required\");\r\n }\r\n if (typeof configuration.connection === \"undefined\") {\r\n throw new Error(\"configuration.connections is required\");\r\n }\r\n const connection = configuration.connection;\r\n if (typeof configuration.methodResponseTimeout !== \"number\") {\r\n configuration.methodResponseTimeout = 30 * 1000;\r\n }\r\n if (typeof configuration.waitTimeoutMs !== \"number\") {\r\n configuration.waitTimeoutMs = 30 * 1000;\r\n }\r\n this.unwrappedInstance = new InstanceWrapper(this, undefined, connection);\r\n this.instance = this.unwrappedInstance.unwrap();\r\n this.clientRepository = new ClientRepository(configuration.logger.subLogger(\"cRep\"), this);\r\n this.serverRepository = new ServerRepository();\r\n let protocolPromise;\r\n if (connection.protocolVersion === 3) {\r\n protocolPromise = gW3ProtocolFactory(this.instance, connection, this.clientRepository, this.serverRepository, configuration, this);\r\n }\r\n else {\r\n throw new Error(`protocol ${connection.protocolVersion} not supported`);\r\n }\r\n this.readyPromise = protocolPromise.then((protocol) => {\r\n this.protocol = protocol;\r\n this.client = new Client(this.protocol, this.clientRepository, this.instance, configuration);\r\n this.server = new Server(this.protocol, this.serverRepository);\r\n return this;\r\n });\r\n }\r\n ready() {\r\n return this.readyPromise;\r\n }\r\n serverRemoved(callback) {\r\n return this.client.serverRemoved(callback);\r\n }\r\n serverAdded(callback) {\r\n return this.client.serverAdded(callback);\r\n }\r\n serverMethodRemoved(callback) {\r\n return this.client.serverMethodRemoved(callback);\r\n }\r\n serverMethodAdded(callback) {\r\n return this.client.serverMethodAdded(callback);\r\n }\r\n methodRemoved(callback) {\r\n return this.client.methodRemoved(callback);\r\n }\r\n methodAdded(callback) {\r\n return this.client.methodAdded(callback);\r\n }\r\n methodsForInstance(instance) {\r\n return this.client.methodsForInstance(instance);\r\n }\r\n methods(methodFilter) {\r\n return this.client.methods(methodFilter);\r\n }\r\n servers(methodFilter) {\r\n return this.client.servers(methodFilter);\r\n }\r\n subscribe(method, options, successCallback, errorCallback) {\r\n return this.client.subscribe(method, options, successCallback, errorCallback);\r\n }\r\n createStream(streamDef, callbacks, successCallback, errorCallback) {\r\n return this.server.createStream(streamDef, callbacks, successCallback, errorCallback);\r\n }\r\n unregister(methodFilter) {\r\n return this.server.unregister(methodFilter);\r\n }\r\n registerAsync(methodDefinition, callback) {\r\n return this.server.registerAsync(methodDefinition, callback);\r\n }\r\n register(methodDefinition, callback) {\r\n return this.server.register(methodDefinition, callback);\r\n }\r\n invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\r\n return this.client.invoke(methodFilter, argumentObj, target, additionalOptions, success, error);\r\n }\r\n waitForMethod(name) {\r\n const pw = new PromiseWrapper();\r\n const unsubscribe = this.client.methodAdded((m) => {\r\n if (m.name === name) {\r\n unsubscribe();\r\n pw.resolve(m);\r\n }\r\n });\r\n return pw.promise;\r\n }\r\n}\n\nconst successMessages = [\"subscribed\", \"success\"];\r\nclass MessageBus {\r\n connection;\r\n logger;\r\n peerId;\r\n session;\r\n subscriptions;\r\n readyPromise;\r\n constructor(connection, logger) {\r\n this.connection = connection;\r\n this.logger = logger;\r\n this.peerId = connection.peerId;\r\n this.subscriptions = [];\r\n this.session = connection.domain(\"bus\", successMessages);\r\n this.readyPromise = this.session.join();\r\n this.readyPromise.then(() => {\r\n this.watchOnEvent();\r\n });\r\n }\r\n ready() {\r\n return this.readyPromise;\r\n }\r\n publish = (topic, data, options) => {\r\n const { routingKey, target } = options || {};\r\n const args = this.removeEmptyValues({\r\n type: \"publish\",\r\n topic,\r\n data,\r\n peer_id: this.peerId,\r\n routing_key: routingKey,\r\n target_identity: target\r\n });\r\n this.session.send(args);\r\n };\r\n subscribe = (topic, callback, options) => {\r\n return new Promise((resolve, reject) => {\r\n const { routingKey, target } = options || {};\r\n const args = this.removeEmptyValues({\r\n type: \"subscribe\",\r\n topic,\r\n peer_id: this.peerId,\r\n routing_key: routingKey,\r\n source: target\r\n });\r\n this.session.send(args)\r\n .then((response) => {\r\n const { subscription_id } = response;\r\n this.subscriptions.push({ subscription_id, topic, callback, source: target });\r\n resolve({\r\n unsubscribe: () => {\r\n this.session.send({ type: \"unsubscribe\", subscription_id, peer_id: this.peerId });\r\n this.subscriptions = this.subscriptions.filter((s) => s.subscription_id !== subscription_id);\r\n return Promise.resolve();\r\n }\r\n });\r\n })\r\n .catch((error) => reject(error));\r\n });\r\n };\r\n watchOnEvent = () => {\r\n this.session.on(\"event\", (args) => {\r\n const { data, subscription_id } = args;\r\n const source = args[\"publisher-identity\"];\r\n const subscription = this.subscriptions.find((s) => s.subscription_id === subscription_id);\r\n if (subscription) {\r\n if (!subscription.source) {\r\n subscription.callback(data, subscription.topic, source);\r\n }\r\n else {\r\n if (this.keysMatch(subscription.source, source)) {\r\n subscription.callback(data, subscription.topic, source);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n removeEmptyValues(obj) {\r\n const cleaned = {};\r\n Object.keys(obj).forEach((key) => {\r\n if (obj[key] !== undefined && obj[key] !== null) {\r\n cleaned[key] = obj[key];\r\n }\r\n });\r\n return cleaned;\r\n }\r\n keysMatch(obj1, obj2) {\r\n const keysObj1 = Object.keys(obj1);\r\n let allMatch = true;\r\n keysObj1.forEach((key) => {\r\n if (obj1[key] !== obj2[key]) {\r\n allMatch = false;\r\n }\r\n });\r\n return allMatch;\r\n }\r\n}\n\nconst IOConnectCoreFactory = (userConfig, ext) => {\r\n const iodesktop = typeof window === \"object\" ? (window.iodesktop ?? window.glue42gd) : undefined;\r\n const preloadPromise = typeof window === \"object\" ? (window.gdPreloadPromise ?? Promise.resolve()) : Promise.resolve();\r\n const glueInitTimer = timer(\"glue\");\r\n userConfig = userConfig || {};\r\n ext = ext || {};\r\n const internalConfig = prepareConfig(userConfig, ext, iodesktop);\r\n let _connection;\r\n let _interop;\r\n let _logger;\r\n let _metrics;\r\n let _contexts;\r\n let _bus;\r\n let _allowTrace;\r\n const libs = {};\r\n function registerLib(name, inner, t) {\r\n _allowTrace = _logger.canPublish(\"trace\");\r\n if (_allowTrace) {\r\n _logger.trace(`registering ${name} module`);\r\n }\r\n const done = () => {\r\n inner.initTime = t.stop();\r\n inner.initEndTime = t.endTime;\r\n inner.marks = t.marks;\r\n if (_allowTrace) {\r\n _logger.trace(`${name} is ready - ${t.endTime - t.startTime}`);\r\n }\r\n };\r\n inner.initStartTime = t.startTime;\r\n if (inner.ready) {\r\n inner.ready().then(() => {\r\n done();\r\n });\r\n }\r\n else {\r\n done();\r\n }\r\n if (!Array.isArray(name)) {\r\n name = [name];\r\n }\r\n name.forEach((n) => {\r\n libs[n] = inner;\r\n IOConnectCoreFactory[n] = inner;\r\n });\r\n }\r\n function setupConnection() {\r\n const initTimer = timer(\"connection\");\r\n _connection = new Connection(internalConfig.connection, _logger.subLogger(\"connection\"));\r\n let authPromise = Promise.resolve(internalConfig.auth);\r\n if (internalConfig.connection && !internalConfig.auth) {\r\n if (iodesktop) {\r\n authPromise = iodesktop.getGWToken()\r\n .then((token) => {\r\n return {\r\n gatewayToken: token\r\n };\r\n });\r\n }\r\n else if (typeof window !== \"undefined\" && window?.glue42electron) {\r\n if (typeof window.glue42electron.gwToken === \"string\") {\r\n authPromise = Promise.resolve({\r\n gatewayToken: window.glue42electron.gwToken\r\n });\r\n }\r\n }\r\n else {\r\n authPromise = Promise.reject(\"You need to provide auth information\");\r\n }\r\n }\r\n return authPromise\r\n .then((authConfig) => {\r\n initTimer.mark(\"auth-promise-resolved\");\r\n let authRequest;\r\n if (Object.prototype.toString.call(authConfig) === \"[object Object]\") {\r\n authRequest = authConfig;\r\n }\r\n else {\r\n throw new Error(\"Invalid auth object - \" + JSON.stringify(authConfig));\r\n }\r\n return _connection.login(authRequest);\r\n })\r\n .then(() => {\r\n registerLib(\"connection\", _connection, initTimer);\r\n return internalConfig;\r\n })\r\n .catch((e) => {\r\n if (_connection) {\r\n _connection.logout();\r\n }\r\n throw e;\r\n });\r\n }\r\n function setupLogger() {\r\n const initTimer = timer(\"logger\");\r\n _logger = new Logger(`${internalConfig.connection.identity?.application}`, undefined, internalConfig.customLogger);\r\n _logger.consoleLevel(internalConfig.logger.console);\r\n _logger.publishLevel(internalConfig.logger.publish);\r\n if (_logger.canPublish(\"debug\")) {\r\n _logger.debug(\"initializing glue...\");\r\n }\r\n registerLib(\"logger\", _logger, initTimer);\r\n return Promise.resolve(undefined);\r\n }\r\n function setupMetrics() {\r\n const initTimer = timer(\"metrics\");\r\n const config = internalConfig.metrics;\r\n const metricsPublishingEnabledFunc = iodesktop?.getMetricsPublishingEnabled;\r\n const identity = internalConfig.connection.identity;\r\n const canUpdateMetric = metricsPublishingEnabledFunc ? metricsPublishingEnabledFunc : () => true;\r\n const disableAutoAppSystem = (typeof config !== \"boolean\" && config.disableAutoAppSystem) ?? false;\r\n _metrics = metrics({\r\n connection: config ? _connection : undefined,\r\n logger: _logger.subLogger(\"metrics\"),\r\n canUpdateMetric,\r\n system: \"Glue42\",\r\n service: identity?.service ?? iodesktop?.applicationName ?? internalConfig.application,\r\n instance: identity?.instance ?? identity?.windowId ?? nanoid(10),\r\n disableAutoAppSystem,\r\n pagePerformanceMetrics: typeof config !== \"boolean\" ? config?.pagePerformanceMetrics : undefined\r\n });\r\n registerLib(\"metrics\", _metrics, initTimer);\r\n return Promise.resolve();\r\n }\r\n function setupInterop() {\r\n const initTimer = timer(\"interop\");\r\n const agmConfig = {\r\n connection: _connection,\r\n logger: _logger.subLogger(\"interop\"),\r\n };\r\n _interop = new Interop(agmConfig);\r\n Logger.Interop = _interop;\r\n registerLib([\"interop\", \"agm\"], _interop, initTimer);\r\n return Promise.resolve();\r\n }\r\n function setupContexts() {\r\n const hasActivities = (internalConfig.activities && _connection.protocolVersion === 3);\r\n const needsContexts = internalConfig.contexts || hasActivities;\r\n if (needsContexts) {\r\n const initTimer = timer(\"contexts\");\r\n _contexts = new ContextsModule({\r\n connection: _connection,\r\n logger: _logger.subLogger(\"contexts\"),\r\n trackAllContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.trackAllContexts : false,\r\n reAnnounceKnownContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.reAnnounceKnownContexts : false\r\n });\r\n registerLib(\"contexts\", _contexts, initTimer);\r\n return _contexts;\r\n }\r\n else {\r\n const replayer = _connection.replayer;\r\n if (replayer) {\r\n replayer.drain(ContextMessageReplaySpec.name);\r\n }\r\n }\r\n }\r\n async function setupBus() {\r\n if (!internalConfig.bus) {\r\n return Promise.resolve();\r\n }\r\n const initTimer = timer(\"bus\");\r\n _bus = new MessageBus(_connection, _logger.subLogger(\"bus\"));\r\n registerLib(\"bus\", _bus, initTimer);\r\n return Promise.resolve();\r\n }\r\n function setupExternalLibs(externalLibs) {\r\n try {\r\n externalLibs.forEach((lib) => {\r\n setupExternalLib(lib.name, lib.create);\r\n });\r\n return Promise.resolve();\r\n }\r\n catch (e) {\r\n return Promise.reject(e);\r\n }\r\n }\r\n function setupExternalLib(name, createCallback) {\r\n const initTimer = timer(name);\r\n const lib = createCallback(libs);\r\n if (lib) {\r\n registerLib(name, lib, initTimer);\r\n }\r\n }\r\n function waitForLibs() {\r\n const libsReadyPromises = Object.keys(libs).map((key) => {\r\n const lib = libs[key];\r\n return lib.ready ?\r\n lib.ready() : Promise.resolve();\r\n });\r\n return Promise.all(libsReadyPromises);\r\n }\r\n function constructGlueObject() {\r\n const feedbackFunc = (feedbackInfo) => {\r\n if (!_interop) {\r\n return;\r\n }\r\n _interop.invoke(\"T42.ACS.Feedback\", feedbackInfo, \"best\");\r\n };\r\n const info = {\r\n coreVersion: version,\r\n version: internalConfig.version\r\n };\r\n glueInitTimer.stop();\r\n const glue = {\r\n feedback: feedbackFunc,\r\n info,\r\n logger: _logger,\r\n interop: _interop,\r\n agm: _interop,\r\n connection: _connection,\r\n metrics: _metrics,\r\n contexts: _contexts,\r\n bus: _bus,\r\n version: internalConfig.version,\r\n userConfig,\r\n done: () => {\r\n _logger?.info(\"done called by user...\");\r\n return _connection.logout();\r\n }\r\n };\r\n glue.performance = {\r\n get glueVer() {\r\n return internalConfig.version;\r\n },\r\n get glueConfig() {\r\n return JSON.stringify(userConfig);\r\n },\r\n get browser() {\r\n return window.performance.timing.toJSON();\r\n },\r\n get memory() {\r\n return window.performance.memory;\r\n },\r\n get initTimes() {\r\n const all = getAllTimers();\r\n return Object.keys(all).map((key) => {\r\n const t = all[key];\r\n return {\r\n name: key,\r\n duration: t.endTime - t.startTime,\r\n marks: t.marks,\r\n startTime: t.startTime,\r\n endTime: t.endTime\r\n };\r\n });\r\n }\r\n };\r\n Object.keys(libs).forEach((key) => {\r\n const lib = libs[key];\r\n glue[key] = lib;\r\n });\r\n glue.config = {};\r\n Object.keys(internalConfig).forEach((k) => {\r\n glue.config[k] = internalConfig[k];\r\n });\r\n if (ext && ext.extOptions) {\r\n Object.keys(ext.extOptions).forEach((k) => {\r\n glue.config[k] = ext?.extOptions[k];\r\n });\r\n }\r\n if (ext?.enrichGlue) {\r\n ext.enrichGlue(glue);\r\n }\r\n if (iodesktop && iodesktop.updatePerfData) {\r\n iodesktop.updatePerfData(glue.performance);\r\n }\r\n if (glue.agm) {\r\n const deprecatedDecorator = (fn, wrong, proper) => {\r\n return function () {\r\n glue.logger.warn(`glue.js - 'glue.agm.${wrong}' method is deprecated, use 'glue.interop.${proper}' instead.`);\r\n return fn.apply(glue.agm, arguments);\r\n };\r\n };\r\n const agmAny = glue.agm;\r\n agmAny.method_added = deprecatedDecorator(glue.agm.methodAdded, \"method_added\", \"methodAdded\");\r\n agmAny.method_removed = deprecatedDecorator(glue.agm.methodRemoved, \"method_removed\", \"methodRemoved\");\r\n agmAny.server_added = deprecatedDecorator(glue.agm.serverAdded, \"server_added\", \"serverAdded\");\r\n agmAny.server_method_aded = deprecatedDecorator(glue.agm.serverMethodAdded, \"server_method_aded\", \"serverMethodAdded\");\r\n agmAny.server_method_removed = deprecatedDecorator(glue.agm.serverMethodRemoved, \"server_method_removed\", \"serverMethodRemoved\");\r\n }\r\n return glue;\r\n }\r\n async function registerInstanceIfNeeded() {\r\n const RegisterInstanceMethodName = \"T42.ACS.RegisterInstance\";\r\n if (Utils.isNode() && typeof process.env._GD_STARTING_CONTEXT_ === \"undefined\" && typeof userConfig?.application !== \"undefined\") {\r\n const isMethodAvailable = _interop.methods({ name: RegisterInstanceMethodName }).length > 0;\r\n if (isMethodAvailable) {\r\n try {\r\n await _interop.invoke(RegisterInstanceMethodName, { appName: userConfig?.application, pid: process.pid });\r\n }\r\n catch (error) {\r\n const typedError = error;\r\n _logger.error(`Cannot register as an instance: ${JSON.stringify(typedError.message)}`);\r\n }\r\n }\r\n }\r\n }\r\n return preloadPromise\r\n .then(setupLogger)\r\n .then(setupConnection)\r\n .then(() => Promise.all([setupMetrics(), setupInterop(), setupContexts(), setupBus()]))\r\n .then(() => _interop.readyPromise)\r\n .then(() => registerInstanceIfNeeded())\r\n .then(() => {\r\n return setupExternalLibs(internalConfig.libs || []);\r\n })\r\n .then(waitForLibs)\r\n .then(constructGlueObject)\r\n .catch((err) => {\r\n return Promise.reject({\r\n err,\r\n libs\r\n });\r\n });\r\n};\r\nif (typeof window !== \"undefined\") {\r\n window.IOConnectCore = IOConnectCoreFactory;\r\n}\r\nIOConnectCoreFactory.version = version;\r\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,null,null,null,null,null,null,null,"let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nexport let nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\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,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"export class PromiseWrapper {\r\n static delay(time) {\r\n return new Promise((resolve) => setTimeout(resolve, time));\r\n }\r\n resolve;\r\n reject;\r\n promise;\r\n rejected = false;\r\n resolved = false;\r\n get ended() {\r\n return this.rejected || this.resolved;\r\n }\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = (t) => {\r\n this.resolved = true;\r\n resolve(t);\r\n };\r\n this.reject = (err) => {\r\n this.rejected = true;\r\n reject(err);\r\n };\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=pw.js.map",null,null,null,null,null,null,null],"names":["MetricTypes","STRING","NUMBER","TIMESTAMP","OBJECT","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","send","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","sendFireAndForget","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","err","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","createRegistry$1","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","logger","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","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","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","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","children","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","handleClientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","warn","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","origin","checkMessageTypeValid","messageType","clearInterval","source","handleAcceptanceOfMyRequest","handleAcceptanceOfGrandChildRequest","processExtContentConnection","applicationName","extData","glue42ExtInc","child","find","c","grandChildId","connected","rejectConnectionRequest","extMode","typeToValidate","rejection","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","loggedIn","handleSuccessMessage","handleErrorMessage","sm","requestsMap","destination","wasReconnect","handleJoined","requestId","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","errorMsg","leave","onLeft","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","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","trace","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","handleDisconnected","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","joinedActivity","updateCallbacks","activityId","sentExplicitSubscription","hasReceivedSnapshot","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","isSubset","superObj","subObj","every","ele","ContextsModule","initTime","initStartTime","initEndTime","_bridge","_logger","_connection","_trackAllContexts","_reAnnounceKnownContexts","_gw3Session","_contextNameToData","_gw3Subscriptions","_nextCallbackSubscriptionNumber","_creationPromises","_contextNameToId","_contextIdToName","_protocolVersion","_contextsTempCache","_contextsSubscriptionsCache","_systemContextsSubKey","contextsDomainInfo","d","uri","setPathSupported","trackAllContexts","reAnnounceKnownContexts","resetState","reInitiateState","subscribeToContextCreatedMessages","subscribeToContextUpdatedMessages","subscribeToContextDestroyedMessages","handleContextCreatedMessage","handleContextUpdatedMessage","handleContextDestroyedMessage","dispose","contextName","createContext","lifetime","createContextMsg","context_id","contextData","currentContext","calculatedDelta","calculateContextDeltaV2","calculateContextDeltaV1","gwResponse","handleUpdated","updaterId","setPath","setPaths","pathValues","pathValue","subscribe","_d","_r","un","subscriptionKey","thisCallbackSubscriptionNumber","subscription","subKey","hadCallbacks","clone","sendSubscribe","sendUnsubscribe","destroy","_","extraData","oldContext","invokeUpdateCallbacks","createdMessageTypes","createdMessageType","contextCreatedMsg","activity_id","updatedMessageTypes","updatedMessageType","contextUpdatedMsg","justSeen","context_snapshot","updater_id","updateCallbackIndex","updateCallback","destroyedMessageTypes","destroyedMessageType","destroyedMsg","to","cacheSoFar","ctxName","flushQueue","lastKnownData","checkName","checkData","checkPath","paths","promisify","successCallback","errorCallback","rejectAfter","ms","clearTimeoutIfThere","InvokeStatus","Client","configuration","callProtocolSubscribe","targetServers","stream","successProxy","errorProxy","methodResponseTimeout","waitTimeoutMs","methodDef","method_response_timeout","wait_for_method_timeout","delayTillNow","currentServers","getServerMethodsByFilterAndTarget","retry","streamInfo","servers","methodFilter","filterCopy","getServers","serverMethodMap","server","getMethods","methodsForInstance","getMethodsForInstance","methodAdded","onMethodAdded","methodRemoved","onMethodRemoved","serverAdded","onServerAdded","serverRemoved","onServerRemoved","serverMethodAdded","onServerMethodAdded","serverMethodRemoved","onServerMethodRemoved","argumentObj","additionalOptions","methodDefinition","methodResponseTimeoutMs","serversMethodMap","tryToAwaitForMethods","errorObj","supportsStreaming","objectTypes","flags","metadata","called_with","executed_by","returned","additionalOptionsCopy","invokePromises","serversMethodPair","invId","invokePromise","race","invocationId","invocationMessages","getInvocationResultObj","getInvokePromise","invocationResults","calledWith","all_return_values","invokeMessage","Success","allValues","currentValue","all_errors","allErrors","currError","invResult","interval","filterByTarget","targetArray","matches","myMatches","serverMethodPair","instanceMatch","localMachine","isLocal","instanceFilter","instanceDefinition","containsProps","methodMatch","repoMethod","prop","isMatch","filterValue","repoMethodValue","filterValueEl","matchingServers","resultMethodsObject","methodKey","identifier","prev","matchingMethods","ServerSubscription","branchKey","closeSingleSubscription","pushDataToSingle","Request","requestContext","accept","acceptRequestOnBranch","acceptOnBranch","branch","rejectRequest","ServerBranch","subscriptions","getSubscriptionList","closeAllSubscriptions","pushData","ServerStream","_protocol","_repoMethod","_server","branches","bList","getBranchList","def2","accepts","displayName","returns","unregister","updateRepoMethod","Server","serverRepository","streaming","currentlyUnregistering","onSubRequest","rc","rm","handleSubRequest","onSubAdded","handleSubAdded","onSubRemoved","handleSubRemoved","streamCallbacks","subscriptionRequestHandler","subscriptionAddedHandler","subscriptionRemovedHandler","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","getStreams","refreshWrappedObject","refresh","unwrap","user","pid","floor","machine","environment","region","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","br","dropSubscriptionMessage","closeMultipleSubscriptions","subscriptionsToClose","drop","allSubscriptions","onSubscriptionLifetimeEvent","method_id","eventName","handlerFunc","getNextStreamId","caller","caller_id","arguments_kv","subscriptionId","errorMessage","reason_uri","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","libs","customLogger","prepareConfig","_interop","_contexts","_bus","_allowTrace","registerLib","inner","done","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","GW3Bridge","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","v","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","at","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","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","errMsg","waitFunc","onInstanceAgmServerReady","acsResult","Context","Options","waitForInterop","Id","handleInstanceStarted","ActivityId","IsActivityOwner","AgmServers","_e","onAvailable","onUnavailable","onChanged","onRemoved","InstanceImpl","_appName","startFailed","_unsubscribeInstanceStopped","_unsubscribeInstanceAgmServerReady","activityInstance","isActivityOwner","_isActivityOwner","activityInstances","activityOwnerInstance","inst","_startUpContext","_title","isActivityInstance","_isActivityInstance","_inActivity","isSingleWindowApp","_agmInstance","interopInstance","onInteropReady","onAgmReady","onStopped","getWindow","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","r","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","hasMyAppInSnapShot","hasMyInstanceInSnapShot","subscriptionFactory","myInstance","myApplication","inMemory","getGDMajorVersion","glueDesktop","parsed","major","callbackifyPromise","fail","getMonitor","displays","workingAreaWidth","workingAreaHeight","monitor","totalOverlap","calculateTotalOverlap","getDisplayCenterOfScreen","currentDisplay","primaryDisplay","physicalWidth","scaleFactor","physicalHeight","physicalDisplayLeft","workArea","physicalDisplayTop","physicalDisplayWidth","physicalDisplayHeight","physicalHOffset","max","physicalVOffset","centeredPhysicalLeft","centeredPhysicalTop","generateId","isPromise","isAsyncFunction","isNullOrUndefined","r1","r2","r1x","r1y","r1xMax","r1yMax","r2x","r2y","r2xMax","r2yMax","min","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","cleanup","onReadyWindow","onAdded","JumpListActions","_categoryTitle","JumpListCategories","getCategories","cat","JumpList","_categories","isEnabled","windowFactory","appManagerGetter","displayAPIGetter","channelsAPIGetter","getChannels","channels","_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","getNeighboursByDirection","direction","winId","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","validateCenterArguments","cbOrOptions","snap","autoAlign","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","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","dock","executeCode","getChannel","getWindowsWithChannels","channel","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","getURL","getTitle","getDisplay","getByWindowId","resizeTo","moveTo","getParentWindow","myParentId","parentInstanceId","joinChannel","leaveChannel","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","unFocusChanged","unClosed","targetWindow","targetWindowId","snappingEdge","sourceWindowId","eventKeys","contextWithoutUndefinedValues","swapUndefinedToNull","dataURL","toShow","showGroupPopup","reformatedOptions","showPopupCore","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","enableDownloadBar","silent","fullPath","fileSize","executeCore","gdWindow","addCloseHandler","nonWindowHandlers","onGroupClosing","nonWindowHandlersCore","clearCallbacks","isGroup","assignGeneralIfUnassigned","zone","valueFromOptions","flydownBounds","targetLocation","flydownActiveArea","activeArea","areaIds","executeWithoutToken","uns","executed","executeWithToken","requested","areHeightsEqual","areWidthsEqual","areLeftsEqual","areTopsEqual","popupBounds","popupId","GDEnvironment","wndId","_windowId","_appManagerGetter","_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","onHeaderVisibilityChanged","onWindowRemoved","internal","removeWindow","handleGroupVisibilityChanged","visibile","handleGroupHibernateChanged","isHibernatedFlag","groupAPI","groupInternal","groupsFactory","_groups","heardForWindowsCounter","findGroupByWindow","groupObj","waitForGroup","groupWrapper","onGroupAdded","createdGroupWrapper","createOrGet","deleteIfEmpty","findGroupWrapperByWindow","currentGroup","fromGroup","toGroup","moveWindow","groupEvents","groups","groupIds","idOrGroup","getMyGroup","onGroupRemoved","hibernate","resume","onHibernated","onResumed","groupsAPI","groupsEvents","onWindowMoved","WindowsFactory","channelsGetter","isReady","GD","webGroupsManager","envDetector","myWindow","windowAdded","windowRemoved","optionsAsAny","windowsForListing","findById","onTabAttached","unsubFunc","unsubscribed","onTabDetached","onArrangementChanged","store","layouts","removeWhere","condition","removeAll","where","first","ContextProvider","activitiesGetter","registerRequestMethods","onSaveRequested","activityIsOwner","usersCbs","requestResult","autoSaveWindowContext","windowContext","activityContext","transformACSLayout","something","convertedValue","LayoutImpl","components","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","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","LayoutsFactory","acsStream","DisplayManager","callGD","DisplayCommand","GetAll","decorateDisplay","getPrimary","isPrimary","Capture","captureAll","CaptureAll","getMousePosition","GetMousePosition","original","decoratedDisplay","workAreaAsAny","GetByWindowId","onDisplayChanged","SingleChannelID","isJoinedToAnyChannel","isOnChannel","equals","MultiChannelId","ChannelDelimiter","newChannel","ch","T42_ANNOUNCE_METHOD_NAME","sendLeaveChannel","swId","sendSwitchChannelUI","getRestrictionsByWindow","addOrRemoveChannel","label","CONTEXT_PREFIX","LATEST_FDC3_TYPE","BaseSharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","rest","fdc3Context","fdc3","MultiSharedContextSubscriber","currentlySubscribedChannels","unsubscribeMap","switchChannel","newChannels","subscribeToChannel","channelsToLeave","unsubscribeFromChannel","usub","SharedContextSubscriber","ChannelsImpl","subsKey","changedKey","channelsChangedKey","isInitialJoin","pendingReplays","pendingRestrictionCallbacks","getMyChannels","currentChannelID","shared","subscribeForChannelRestrictionsChange","initial","initialChannel","getID","joinNoSelectorSwitch","contextType","getWrappedSubscribeCallbackWithFdc3Type","getWrappedSubscribeCallback","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","validatePathArgs","channelNames","validateFdc3Options","getContextWithFdc3Type","getMy","joinCore","leaveWhenMulti","leaveWhenSingle","leaveNoSelectorSwitch","myChannels","onChannelsChanged","changed","getWindowsOnChannel","er","restrict","restriction","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","handleRestrictionsChanged","changeSelector","newId","verifyChannelExists","raiseChannelsChangedEvents","doesChannelExist","channelExistsPromise","intervalId","leaveCore","channelID","leaveCoreMulti","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","didReplay","replayed","callbackWithTypesChecks","searchedType","parseDataAndInvokeSubscribeCallback","latestFdc3TypeEncoded","fdc3Data","encodedType","parsedType","latestTypePropName","latestFDC3Type","channelsReadyPromise","getChannelsMode","sharedContexts","interopLib","isSupported","channelsToJoin","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","getLibConfig","defaultMode","trueMode","getModeAsString","activitiesDefaultMode","layoutsDefaultMode","layoutsTrueMode","exposeAPI","exposeGlue","Glue42Notification","body","badge","dir","image","lang","renotify","requireInteraction","removeEventListener","dispatchEvent","PanelAPI","onStreamEvent","toggle","panelVisible","toAPI","Notifications","NotificationsSubscribeStream","NotificationsCounterStream","RaiseNotificationMethodName","NotificationsExecuteMethod","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","_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","GLUE42_FDC3_INTENTS_METHOD_PREFIX","INTENT_HANDLER_DEFAULT_PROPS","PromiseWrap","promiseActive","validateResolverResponse","responseObj","intent","isValid","userSettings","preserveChoice","compulsoryKeysExist","ok","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","addedHandlerInfoPerApp","checkIfIntentsResolverIsEnabled","intentFilter","intents","ctToLower","contextTypes","ct","resultType","resultTypeToLower","intentRequest","removeRememberedHandler","resolverInstance","resultFromRememberedHandler","checkHandleRaiseWithRememberedHandler","coreRaiseIntentFn","coreRaiseIntent","handleRaiseOnError","withIntentsInfo","appsWithIntents","intentDef","applicationTitle","applicationDescription","applicationIcon","serverWindowIds","serverWindowId","T42WndGetInfo","windowsInfos","intentName","windowsIdToTitle","constructIntentHandler","addIntentListener","registerPromise","intentFlag","buildInteropMethodName","unsubscribeIntent","filterHandlers","handlerFilter","openResolver","applicationNames","ctx","validateHandlerFilter","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","instanceTitle","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","onHandlerAdded","unAppAdded","appDef","constructIntentHandlerFromApp","unServerMethodAdded","intentsInfo","onHandlerRemoved","unAppRemoved","addedHandlerInfo","filteredIntentsWithHandlers","checkIfResolverShouldBeOpenedForRaise","raiseIntent","resolverHandler","raiseIntentToTargetHandler","registeredIntent","firstFoundAppHandler","findHandlerByFilter","firstFoundInstanceHandler","invokeStartApp","invokeOptions","intentsResolverAppName","responseMethodName","registerIntentResolverMethod","startContext","buildStartContext","startOptions","buildStartOptions","subscribeOnInstanceStopped","createResponsePromise","handleInstanceResponse","initialCaller","windowsInfo","subMessage","stopResolverInstance","saveUserChoice","resolverResponseHandler","validResponse","cleanUpIntentResolverPromise","myAppName","myAppTitle","baseStartContext","resolverApi","getResolverStartupTopBound","minWorkareaHeight","startedByIntentAPI","intentPromise","gdWin","enableIntentsResolverUI","intentsResolverResponseTimeout","checkOpen","checkIfIntentsResolverShouldBeOpened","checkIfIntentHasMoreThanOneHandler","removeSingletons","isSingleton","currentHandlers","clearUnregistrationPromise","promiseToRemove","unregisterPromise","validIntentsWithInfo","currentHandler","intentWithInfo","prefs","intentPrefs","updatedPrefs","checkForRememberedHandler","prefsForIntent","rememberedHandler","prevPrefs","prevIntentsPrefs","prefsToUpdate","appWithIntents","appIntent","appDefIntent","Prefs","interopMethodRegistered","verifyDataObject","setFor","verifyApp","updateFor","clearFor","verifyCallback","unsubscribeFn","registerInteropIfNeeded","Cookies","cookies","cookie","verifyCookieObject","EventsDispatcher","glue42EventName","notifyStarted","handleNotifyStarted","requestGlue","handleRequestGlue","wireCustomEventListener","announceStarted","detail","glue42","glue42Event","foundHandler","CustomEvent","Interception","InterceptorMethodName","InterceptorHandlerMethodName","interceptions","validateInterceptions","registerMethodIfNotRegistered","interception","handleInterception","operationArgs","phase","createProxyObject","apiToIntercept","OperationsPerDomain","Proxy","propertyKey","receiver","property","Reflect","shouldIntercept","isAwaitable","interceptMethod","originalMethod","beforeInterceptionResult","operationResult","afterInterceptionResult","whenRegisteredPromise","raisedInterception","interceptor","validateTypeString","isValidType","callInfo","initialized","addCall","g","firstRun","factoryCore","_displays","_channels","_prefs","_interceptors","_browserEventsDispatcher","getLibLogger","newLogger","loggerConfig","core","windowsLogger","debugLog","activityLogger","layoutsConfig","lay","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,33]}
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/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/utils.ts","../../../node_modules/nanoid/non-secure/index.js","../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/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/displays/displayManager.ts","../src/channels/channelIDUtils.ts","../src/channels/agm.ts","../src/channels/contexts.ts","../src/channels/channels.ts","../src/channels/helpers.ts","../src/channels/main.ts","../src/hotkeys/hotkeys.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/main.ts","../src/glue.ts","../src/factoryCallInfo.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.send(defineRootMetricsMsg);\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.send(createMetricsMsg);\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.send(shadowedUpdateMetric);\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.send(rootMetric);\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.send(createMetricsMsg);\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 }\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 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 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 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 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\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size;\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 _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 children = [];\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: this.handleClientUnload.bind(this) },\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 }, this.defaultTargetString);\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, this.defaultTargetString);\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.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 if (this.parent) {\n this.parent.postMessage(message, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n });\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.handleAcceptanceOfMyRequest(data);\n }\n return this.handleAcceptanceOfGrandChildRequest(data, event);\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.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 handleAcceptanceOfGrandChildRequest(data, event) {\n if (this.extContentConnecting || this.extContentConnected) {\n this.logger.debug(\"cannot process acceptance of a grandchild, because I am connected to a content script\");\n return;\n }\n this.logger.debug(`handling a connection accepted signal targeted at a grandchild: ${data.clientId}`);\n const child = this.children.find((c) => c.grandChildId === data.clientId);\n if (!child) {\n this.logger.error(`cannot handle connection accepted for grandchild: ${data.clientId}, because there is no grandchild with this id`);\n return;\n }\n child.connected = true;\n this.logger.debug(`the grandchild connection for ${data.clientId} is set up, forwarding the success message and the gateway port`);\n data.parentWindowId = this.publicWindowId;\n child.source.postMessage(event.data, child.origin, [data.port]);\n return;\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(event) {\n if (this.extContentConnecting) {\n this.logger.debug(\"This connection request event is targeted at the extension content\");\n return;\n }\n const source = event.source;\n const data = event.data.glue42core;\n if (!data.clientType || data.clientType !== \"grandChild\") {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source was not opened by a glue API call\");\n }\n if (!data.clientId) {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source did not provide a valid id\");\n }\n if (!this.parent) {\n return this.rejectConnectionRequest(source, event.origin, \"Cannot forward the connection request, because no direct connection to the platform was found\");\n }\n this.logger.debug(`handling a connection request for a grandchild: ${data.clientId}`);\n this.children.push({ grandChildId: data.clientId, source, connected: false, origin: event.origin });\n this.logger.debug(`grandchild: ${data.clientId} is prepared, forwarding connection request to the platform`);\n this.parent.postMessage(event.data, this.defaultTargetString);\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 }, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n }\n handleClientUnload(event) {\n const data = event.data.glue42core;\n const clientId = data?.data.clientId;\n if (!clientId) {\n this.logger.warn(\"cannot process grand child unload, because the provided id was not valid\");\n return;\n }\n const foundChild = this.children.find((child) => child.grandChildId === clientId);\n if (!foundChild) {\n this.logger.warn(\"cannot process grand child unload, because this client is unaware of this grandchild\");\n return;\n }\n this.logger.debug(`handling grandchild unload for id: ${clientId}`);\n this.children = this.children.filter((child) => child.grandChildId !== clientId);\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 rejectConnectionRequest(source, origin, reason) {\n this.rejected = true;\n this.logger.error(reason);\n const rejection = {\n glue42core: {\n type: this.messages.connectionRejected.name\n }\n };\n source.postMessage(rejection, origin);\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, this.defaultTargetString);\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 _connectionOn = false;\n logger.debug(\"connection is down\");\n isJoined = false;\n tryReconnecting = true;\n callbacks.execute(\"onLeft\", { disconnected: true });\n }\n function handleConnectionLoggedIn() {\n _connectionOn = true;\n if (tryReconnecting) {\n logger.debug(\"connection is now up - trying to reconnect...\");\n join(_latestOptions);\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 logger.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 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 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 this.logger.trace(`Starting login for transport: ${this.transport.name()} and auth ${JSON.stringify(authRequest)}`);\n try {\n await this.transport.open();\n this.logger.trace(`Transport: ${this.transport.name()} opened, logging in`);\n timer(\"connection\").mark(\"transport-opened\");\n const identity = await this.loginCore(authRequest, reconnect);\n this.logger.trace(`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.trace(\"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.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 return;\n }\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.handleDisconnected();\n this.registry.execute(\"disconnected\");\n }\n }\n handleDisconnected() {\n this.setLoggedIn(false);\n const tryToLogin = this.shouldTryLogin;\n if (tryToLogin && this.initialLogin) {\n if (this.initialLoginAttempts <= 0) {\n return;\n }\n this.initialLoginAttempts--;\n }\n this.logger.debug(\"disconnected - will try new login?\" + this.shouldTryLogin);\n if (this.shouldTryLogin) {\n if (!this.loginConfig) {\n throw new Error(\"no login info\");\n }\n this.login(this.loginConfig, true)\n .catch(() => {\n setTimeout(this.handleDisconnected.bind(this), this.settings.reconnectInterval || 1000);\n });\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.logger.info(\"logging in...\");\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 this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\n \"welcome\",\n \"token\",\n \"authentication-request\"\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.initialLogin = false;\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 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 }\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 this.logFn.error(toPrint, error);\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.5.2-fmr-beta\";\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 if (typeof configuration.contexts === \"undefined\") {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"boolean\" && configuration.contexts) {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"object\") {\n return Object.assign({}, { reAnnounceKnownContexts: true }, 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 || configuration.gateway?.inproc || configuration.gateway?.sharedWorker) {\n return {\n username: \"glue42\", password: \"glue42\"\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 joinedActivity;\n updateCallbacks = {};\n activityId;\n sentExplicitSubscription;\n hasReceivedSnapshot;\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 }\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 let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n obj[pathArr[i]] = {};\n }\n if (typeof obj[pathArr[i]] !== \"object\") {\n obj[pathArr[i]] = {};\n }\n obj = obj[pathArr[i]];\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 _logger;\n _connection;\n _trackAllContexts;\n _reAnnounceKnownContexts;\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._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 return this._connection.setLibReAnnounced({ name: \"contexts\" });\n }\n this.reInitiateState().then(() => this._connection.setLibReAnnounced({ name: \"contexts\" }));\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 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 return this.createContext(name, delta);\n }\n let currentContext = contextData.context;\n if (!contextData.hasCallbacks()) {\n currentContext = await this.get(contextData.name);\n }\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 return 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 .then((gwResponse) => {\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 return 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 .then((gwResponse) => {\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 return 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 .then((gwResponse) => {\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 return Promise.resolve({});\n }\n if (contextData && (!contextData.hasCallbacks() || !contextData.hasReceivedSnapshot)) {\n return new Promise((resolve) => {\n this.subscribe(name, (data, _d, _r, un) => {\n this.unsubscribe(un);\n resolve(data);\n });\n });\n }\n const context = contextData?.context ?? {};\n return Promise.resolve(deepClone(context));\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 }\n if (this._contextsSubscriptionsCache.every((subscription) => subscription.subKey !== this._nextCallbackSubscriptionNumber)) {\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) {\n if (contextData.context && contextData.sentExplicitSubscription) {\n if (contextData.hasReceivedSnapshot) {\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 }\n else {\n if (contextData.hasReceivedSnapshot) {\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) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n unsubscribe(subscriptionKey) {\n this._contextsSubscriptionsCache = this._contextsSubscriptionsCache.filter((subscription) => subscription.subKey !== subscriptionKey);\n for (const name of Object.keys(this._contextNameToData)) {\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n return;\n }\n const hadCallbacks = contextData.hasCallbacks();\n delete contextData.updateCallbacks[subscriptionKey];\n if (contextData.isAnnounced &&\n hadCallbacks &&\n !contextData.hasCallbacks() &&\n contextData.sentExplicitSubscription) {\n this.sendUnsubscribe(contextData).catch(() => { });\n }\n if (!contextData.isAnnounced &&\n !contextData.hasCallbacks()) {\n delete this._contextNameToData[name];\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 if (!contextData) {\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 contextData.hasReceivedSnapshot = true;\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);\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 sendSubscribe(contextData) {\n contextData.sentExplicitSubscription = true;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_SUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n sendUnsubscribe(contextData) {\n contextData.sentExplicitSubscription = false;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\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);\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 if (contextData.isAnnounced && (contextData.activityId || contextData.sentExplicitSubscription)) {\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\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 let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = { ...methodFilter };\n }\n if (!methodDefinition.name) {\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 (!argumentObj) {\n argumentObj = {};\n }\n if (!target) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\" && target !== \"skipMine\") {\n return Promise.reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\" and \"best\".`));\n }\n if (!additionalOptions) {\n additionalOptions = {};\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 if (additionalOptions.waitTimeoutMs !== undefined && typeof additionalOptions.waitTimeoutMs !== \"number\") {\n return Promise.reject(new Error(`\"${additionalOptions.waitTimeoutMs}\" is not a valid number for \"waitTimeoutMs\" `));\n }\n if (typeof argumentObj !== \"object\") {\n return Promise.reject(new Error(`The method arguments must be an object. method: ${methodDefinition.name}`));\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 method = {\n ...methodDefinition,\n getServers: () => [],\n supportsStreaming: false,\n objectTypes: methodDefinition.objectTypes ?? [],\n flags: methodDefinition.flags?.metadata ?? {}\n };\n const errorObj = {\n method,\n called_with: argumentObj,\n message: `Can not find a method matching ${JSON.stringify(methodFilter)} with server filter ${JSON.stringify(target)}`,\n executed_by: undefined,\n returned: undefined,\n status: undefined,\n };\n return Promise.reject(errorObj);\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 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 ERR_URI_SUBSCRIPTION_FAILED = \"com.tick42.agm.errors.subscription.failure\";\n callbacks = CallbackRegistryFactory();\n nextStreamId = 0;\n constructor(session, repository, serverRepository) {\n this.session = session;\n this.repository = repository;\n this.serverRepository = serverRepository;\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 });\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 });\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 }\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 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 });\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 }\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);\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 }\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 });\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 };\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 this.subscriptions = this.subscriptions.filter((s) => s.subscription_id !== subscription_id);\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 });\n registerLib(\"contexts\", _contexts, initTimer);\n return _contexts;\n }\n else {\n const replayer = _connection.replayer;\n if (replayer) {\n replayer.drain(ContextMessageReplaySpec.name);\n }\n }\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,null,null,null,null,null,null,null,"// This alphabet uses `A-Za-z0-9_-` symbols.\n// The order of characters is optimized for better gzip and brotli compression.\n// References to the same file (works both for gzip and brotli):\n// `'use`, `andom`, and `rict'`\n// References to the brotli default dictionary:\n// `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf`\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\n\nlet nanoid = (size = 21) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n\nexport { nanoid, customAlphabet }\n",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],"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","send","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","sendFireAndForget","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","err","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","createRegistry$1","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","logger","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","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","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","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","children","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","handleClientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","warn","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","origin","checkMessageTypeValid","messageType","clearInterval","source","handleAcceptanceOfMyRequest","handleAcceptanceOfGrandChildRequest","processExtContentConnection","applicationName","extData","glue42ExtInc","child","find","c","grandChildId","connected","errorMsg","rejectConnectionRequest","extMode","typeToValidate","rejection","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","loggedIn","handleSuccessMessage","handleErrorMessage","sm","requestsMap","destination","wasReconnect","handleJoined","requestId","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","leave","onLeft","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","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","trace","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","handleDisconnected","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","joinedActivity","updateCallbacks","activityId","sentExplicitSubscription","hasReceivedSnapshot","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","isSubset","superObj","subObj","every","ele","GW3Bridge$1","_logger","_connection","_trackAllContexts","_reAnnounceKnownContexts","_gw3Session","_contextNameToData","_gw3Subscriptions","_nextCallbackSubscriptionNumber","_creationPromises","_contextNameToId","_contextIdToName","_protocolVersion","_contextsTempCache","_contextsSubscriptionsCache","_systemContextsSubKey","contextsDomainInfo","d","uri","setPathSupported","trackAllContexts","reAnnounceKnownContexts","resetState","reInitiateState","subscribeToContextCreatedMessages","subscribeToContextUpdatedMessages","subscribeToContextDestroyedMessages","handleContextCreatedMessage","handleContextUpdatedMessage","handleContextDestroyedMessage","dispose","contextName","createContext","lifetime","createContextMsg","context_id","contextData","currentContext","calculatedDelta","calculateContextDeltaV2","calculateContextDeltaV1","gwResponse","handleUpdated","updaterId","setPath","setPaths","pathValues","pathValue","subscribe","_d","_r","un","subscriptionKey","thisCallbackSubscriptionNumber","subscription","subKey","hadCallbacks","clone","sendSubscribe","sendUnsubscribe","destroy","_","extraData","oldContext","invokeUpdateCallbacks","createdMessageTypes","createdMessageType","contextCreatedMsg","activity_id","updatedMessageTypes","updatedMessageType","contextUpdatedMsg","justSeen","context_snapshot","updater_id","updateCallbackIndex","updateCallback","destroyedMessageTypes","destroyedMessageType","destroyedMsg","to","cacheSoFar","ctxName","flushQueue","lastKnownData","ContextsModule","initTime","initStartTime","initEndTime","_bridge","GW3Bridge","checkName","checkData","checkPath","paths","promisify","successCallback","errorCallback","rejectAfter","ms","clearTimeoutIfThere","InvokeStatus","Client","configuration","callProtocolSubscribe","targetServers","stream","successProxy","errorProxy","methodResponseTimeout","waitTimeoutMs","methodDef","method_response_timeout","wait_for_method_timeout","delayTillNow","currentServers","getServerMethodsByFilterAndTarget","retry","streamInfo","servers","methodFilter","filterCopy","getServers","serverMethodMap","server","getMethods","methodsForInstance","getMethodsForInstance","methodAdded","onMethodAdded","methodRemoved","onMethodRemoved","serverAdded","onServerAdded","serverRemoved","onServerRemoved","serverMethodAdded","onServerMethodAdded","serverMethodRemoved","onServerMethodRemoved","argumentObj","additionalOptions","methodDefinition","methodResponseTimeoutMs","serversMethodMap","tryToAwaitForMethods","errorObj","supportsStreaming","objectTypes","flags","metadata","called_with","executed_by","returned","additionalOptionsCopy","invokePromises","serversMethodPair","invId","invokePromise","race","invocationId","invocationMessages","getInvocationResultObj","getInvokePromise","invocationResults","calledWith","all_return_values","invokeMessage","Success","allValues","currentValue","all_errors","allErrors","currError","invResult","interval","filterByTarget","targetArray","matches","myMatches","serverMethodPair","instanceMatch","localMachine","isLocal","instanceFilter","instanceDefinition","containsProps","methodMatch","repoMethod","prop","isMatch","filterValue","repoMethodValue","filterValueEl","matchingServers","resultMethodsObject","methodKey","identifier","prev","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","accepts","displayName","returns","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","getStreams","refreshWrappedObject","refresh","unwrap","user","pid","floor","machine","environment","region","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","br","dropSubscriptionMessage","closeMultipleSubscriptions","subscriptionsToClose","drop","allSubscriptions","onSubscriptionLifetimeEvent","method_id","eventName","handlerFunc","getNextStreamId","caller","caller_id","arguments_kv","subscriptionId","errorMessage","reason_uri","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","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","v","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","at","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","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","errMsg","waitFunc","onInstanceAgmServerReady","acsResult","Context","Options","waitForInterop","Id","handleInstanceStarted","ActivityId","IsActivityOwner","AgmServers","_e","onAvailable","onUnavailable","onChanged","onRemoved","InstanceImpl","_appName","startFailed","_unsubscribeInstanceStopped","_unsubscribeInstanceAgmServerReady","activityInstance","isActivityOwner","_isActivityOwner","activityInstances","activityOwnerInstance","inst","_startUpContext","_title","isActivityInstance","_isActivityInstance","_inActivity","isSingleWindowApp","_agmInstance","interopInstance","onInteropReady","onAgmReady","onStopped","getWindow","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","r","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","hasMyAppInSnapShot","hasMyInstanceInSnapShot","subscriptionFactory","myInstance","myApplication","inMemory","getGDMajorVersion","glueDesktop","parsed","major","callbackifyPromise","fail","getMonitor","displays","workingAreaWidth","workingAreaHeight","monitor","totalOverlap","calculateTotalOverlap","getDisplayCenterOfScreen","currentDisplay","primaryDisplay","physicalWidth","scaleFactor","physicalHeight","physicalDisplayLeft","workArea","physicalDisplayTop","physicalDisplayWidth","physicalDisplayHeight","physicalHOffset","max","physicalVOffset","centeredPhysicalLeft","centeredPhysicalTop","generateId","isPromise","isAsyncFunction","isNullOrUndefined","r1","r2","r1x","r1y","r1xMax","r1yMax","r2x","r2y","r2xMax","r2yMax","min","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","cleanup","onReadyWindow","onAdded","JumpListActions","_categoryTitle","JumpListCategories","getCategories","cat","JumpList","_categories","isEnabled","windowFactory","appManagerGetter","displayAPIGetter","channelsAPIGetter","getChannels","channels","_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","getNeighboursByDirection","direction","winId","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","validateCenterArguments","cbOrOptions","snap","autoAlign","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","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","dock","executeCode","getChannel","getWindowsWithChannels","channel","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","getURL","getTitle","getDisplay","getByWindowId","resizeTo","moveTo","getParentWindow","myParentId","parentInstanceId","joinChannel","leaveChannel","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","unFocusChanged","unClosed","targetWindow","targetWindowId","snappingEdge","sourceWindowId","eventKeys","contextWithoutUndefinedValues","swapUndefinedToNull","dataURL","toShow","showGroupPopup","reformatedOptions","showPopupCore","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","enableDownloadBar","silent","fullPath","fileSize","executeCore","gdWindow","addCloseHandler","nonWindowHandlers","onGroupClosing","nonWindowHandlersCore","clearCallbacks","isGroup","assignGeneralIfUnassigned","zone","valueFromOptions","flydownBounds","targetLocation","flydownActiveArea","activeArea","areaIds","executeWithoutToken","uns","executed","executeWithToken","requested","areHeightsEqual","areWidthsEqual","areLeftsEqual","areTopsEqual","popupBounds","popupId","GDEnvironment","wndId","_windowId","_appManagerGetter","_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","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","isReady","GD","webGroupsManager","envDetector","myWindow","windowAdded","windowRemoved","optionsAsAny","windowsForListing","findById","onTabAttached","unsubFunc","unsubscribed","onTabDetached","onArrangementChanged","store","layouts","removeWhere","condition","removeAll","where","first","ContextProvider","activitiesGetter","registerRequestMethods","onSaveRequested","activityIsOwner","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","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","LayoutsFactory","acsStream","DisplayManager","callGD","DisplayCommand","GetAll","decorateDisplay","getPrimary","isPrimary","Capture","captureAll","CaptureAll","getMousePosition","GetMousePosition","original","decoratedDisplay","workAreaAsAny","GetByWindowId","onDisplayChanged","SingleChannelID","isJoinedToAnyChannel","isOnChannel","equals","MultiChannelId","ChannelDelimiter","newChannel","ch","T42_ANNOUNCE_METHOD_NAME","sendLeaveChannel","swId","sendSwitchChannelUI","getRestrictionsByWindow","addOrRemoveChannel","label","getChannelsMode","operationMode","validateMode","CONTEXT_PREFIX","LATEST_FDC3_TYPE","BaseSharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","rest","fdc3Context","fdc3","MultiSharedContextSubscriber","currentlySubscribedChannels","unsubscribeMap","switchChannel","newChannels","subscribeToChannel","channelsToLeave","unsubscribeFromChannel","usub","SharedContextSubscriber","ChannelsImpl","subsKey","changedKey","channelsChangedKey","isInitialJoin","pendingReplays","pendingRestrictionCallbacks","getMyChannels","currentChannelID","shared","subscribeForChannelRestrictionsChange","initial","initialChannel","getID","joinNoSelectorSwitch","contextType","getWrappedSubscribeCallbackWithFdc3Type","getWrappedSubscribeCallback","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","validatePathArgs","channelNames","validateFdc3Options","getContextWithFdc3Type","getMy","validateWindowIdArg","joinCore","leaveWhenMulti","leaveWhenSingle","leaveNoSelectorSwitch","myChannels","onChannelsChanged","changed","getWindowsOnChannel","validateChannelArg","validateWindowsWithChannelsFilter","er","restrict","restriction","validateRestrictionConfig","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","handleRestrictionsChanged","changeSelector","newId","verifyChannelExists","raiseChannelsChangedEvents","doesChannelExist","channelExistsPromise","intervalId","leaveCore","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","isRestrictions","channelsReadyPromise","sharedContexts","interopLib","isSupported","channelsToJoin","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","getLibConfig","defaultMode","trueMode","getModeAsString","activitiesDefaultMode","layoutsDefaultMode","layoutsTrueMode","exposeAPI","exposeGlue","Glue42Notification","body","badge","dir","image","lang","renotify","requireInteraction","removeEventListener","dispatchEvent","PanelAPI","onStreamEvent","toggle","panelVisible","toAPI","Notifications","NotificationsSubscribeStream","NotificationsCounterStream","RaiseNotificationMethodName","NotificationsExecuteMethod","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","_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","ok","map2","f","ar","mapError","__assign","isEqual","isJsonArray","json","isJsonObject","expectedGot","expected","got","typeString","printPath","prependAt","newAt","__rest","Decoder","decode","_this","run","kind","runPromise","runWithException","withException","andThen","succeed","number","boolean","constant","decoders","decoder","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","nonEmptyStringDecoder","nonNegativeNumberDecoder","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","ERRORS","PromiseWrap","promiseActive","validateResolverResponse","responseObj","intent","isValid","userSettings","preserveChoice","compulsoryKeysExist","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","addedHandlerInfoPerApp","checkIfIntentsResolverIsEnabled","intentFilter","ctToLower","contextTypes","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","buildInteropMethodName","unsubscribeIntent","filterHandlers","handlerFilter","openResolver","applicationNames","ctx","validateHandlerFilter","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","instanceTitle","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","onHandlerAdded","unAppAdded","appDef","constructIntentHandlerFromApp","unServerMethodAdded","intentsInfo","onHandlerRemoved","unAppRemoved","addedHandlerInfo","filteredIntentsWithHandlers","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","subscribeOnInstanceStopped","createResponsePromise","handleInstanceResponse","initialCaller","windowsInfo","subMessage","stopResolverInstance","saveUserChoice","resolverResponseHandler","validResponse","cleanUpIntentResolverPromise","myAppName","myAppTitle","baseStartContext","resolverApi","getResolverStartupTopBound","minWorkareaHeight","startedByIntentAPI","intentPromise","gdWin","enableIntentsResolverUI","intentsResolverResponseTimeout","checkOpen","checkIfIntentsResolverShouldBeOpened","checkIfIntentHasMoreThanOneHandler","removeSingletons","searchedAppName","isSingleton","currentHandlers","clearUnregistrationPromise","promiseToRemove","unregisterPromise","validIntentsWithInfo","currentHandler","intentWithInfo","prefs","intentPrefs","updatedPrefs","checkForRememberedHandler","prefsForIntent","rememberedHandler","prevPrefs","prevIntentsPrefs","prefsToUpdate","appWithIntents","appIntent","appDefIntent","Prefs","interopMethodRegistered","verifyDataObject","setFor","verifyApp","updateFor","clearFor","verifyCallback","unsubscribeFn","registerInteropIfNeeded","Cookies","cookies","cookie","verifyCookieObject","secure","httpOnly","expirationDate","EventsDispatcher","glue42EventName","notifyStarted","handleNotifyStarted","requestGlue","handleRequestGlue","wireCustomEventListener","announceStarted","detail","glue42","glue42Event","foundHandler","CustomEvent","delayForever","Interception","InterceptorMethodName","InterceptorHandlerMethodName","interceptions","validateInterceptions","registerMethodIfNotRegistered","interception","handleInterception","operationArgs","phase","createProxyObject","apiToIntercept","OperationsPerDomain","Proxy","propertyKey","receiver","property","Reflect","shouldIntercept","isAwaitable","interceptMethod","originalMethod","beforeInterceptionResult","operationResult","afterInterceptionResult","whenRegisteredPromise","raisedInterception","interceptor","validateTypeString","isValidType","callInfo","initialized","addCall","g","firstRun","factoryCore","_displays","_channels","_prefs","_interceptors","_browserEventsDispatcher","getLibLogger","newLogger","loggerConfig","core","windowsLogger","debugLog","activityLogger","layoutsConfig","lay","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,33,73]}