@interopio/desktop 6.10.0 → 6.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +9 -0
- package/desktop.d.ts +30 -4
- package/dist/desktop.browser.js +20850 -19404
- package/dist/desktop.browser.js.map +1 -1
- package/dist/desktop.browser.min.js +1 -1
- package/dist/desktop.browser.min.js.map +1 -1
- package/dist/desktop.es.js +20850 -19404
- package/dist/desktop.es.js.map +1 -1
- package/dist/desktop.umd.js +20850 -19404
- package/dist/desktop.umd.js.map +1 -1
- package/dist/desktop.umd.min.js +1 -1
- package/dist/desktop.umd.min.js.map +1 -1
- package/package.json +51 -48
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop.browser.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","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.browser.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","../node_modules/@interopio/schemas/app/application.js","../node_modules/@interopio/schemas/app/system.js","../node_modules/@interopio/schemas/app/layout.js","../node_modules/@interopio/schemas/app/swTheme.js","../node_modules/@interopio/schemas/app/swConfiguration.js","../node_modules/@interopio/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\";\r\n/**\r\n * This file was automatically generated by json-schema-to-typescript.\r\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\r\n * and run json-schema-to-typescript to regenerate this file.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=application.js.map","\"use strict\";\r\n/**\r\n * This file was automatically generated by json-schema-to-typescript.\r\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\r\n * and run json-schema-to-typescript to regenerate this file.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=system.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwimlaneItemType = exports.LayoutType = void 0;\r\nvar LayoutType;\r\n(function (LayoutType) {\r\n LayoutType[\"Global\"] = \"Global\";\r\n LayoutType[\"Activity\"] = \"Activity\";\r\n LayoutType[\"ApplicationDefault\"] = \"ApplicationDefault\";\r\n LayoutType[\"Swimlane\"] = \"Swimlane\";\r\n LayoutType[\"Workspaces\"] = \"Workspace\";\r\n})(LayoutType = exports.LayoutType || (exports.LayoutType = {}));\r\nvar SwimlaneItemType;\r\n(function (SwimlaneItemType) {\r\n SwimlaneItemType[\"Tab\"] = \"tab\";\r\n SwimlaneItemType[\"Window\"] = \"window\";\r\n SwimlaneItemType[\"Canvas\"] = \"canvas\";\r\n})(SwimlaneItemType = exports.SwimlaneItemType || (exports.SwimlaneItemType = {}));\r\n//# sourceMappingURL=layout.js.map","\"use strict\";\r\n/**\r\n * This file was automatically generated by json-schema-to-typescript.\r\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\r\n * and run json-schema-to-typescript to regenerate this file.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=swTheme.js.map","\"use strict\";\r\n/**\r\n * This file was automatically generated by json-schema-to-typescript.\r\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\r\n * and run json-schema-to-typescript to regenerate this file.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=swConfiguration.js.map","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n// export { SchemaValidator } from \"./validator\";\r\n// export { FileProvider } from \"./fileProvider\";\r\n// export { SchemaProvider } from \"./provider\";\r\n__exportStar(require(\"./application\"), exports);\r\n__exportStar(require(\"./system\"), exports);\r\n__exportStar(require(\"./layout\"), exports);\r\n__exportStar(require(\"./swTheme\"), exports);\r\n__exportStar(require(\"./swConfiguration\"), exports);\r\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","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,51,52,53,54,55,56,73]}
|