@interopio/desktop 6.9.0 → 6.9.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.
@@ -1 +1 @@
1
- {"version":3,"file":"desktop.umd.min.js","sources":["../../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/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 = {\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() {\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 this.connectionReject(\"The platform connection was rejected. Most likely because this window was not created by a glue API call\");\n delete this.connectionReject;\n }\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 || currentWindow === currentWindow.top) ? [] : [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\");\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(3)\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 interop.invoke(Logger.InteropMethodName, {\n msg: `${message}`,\n logger: loggerName,\n level\n });\n }\n }\n catch {\n }\n }\n }\n if (this.canPublish(level)) {\n let prefix = \"\";\n if (this.includeTimeAndLevel) {\n const date = new Date();\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\n prefix = `[${time}] [${level}] `;\n }\n const toPrint = `${prefix}${loggerName}: ${message}`;\n switch (level) {\n case \"trace\":\n this.logFn.debug(toPrint);\n break;\n case \"debug\":\n if (this.logFn.debug) {\n this.logFn.debug(toPrint);\n }\n else {\n this.logFn.log(toPrint);\n }\n break;\n case \"info\":\n this.logFn.info(toPrint);\n break;\n case \"warn\":\n this.logFn.warn(toPrint);\n break;\n case \"error\":\n 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.4.2\";\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 cacheSoFar[ctxName] = this._contextNameToData[ctxName].context;\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 = () => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (_allowTrace) {\n _logger.trace(`${name} is ready - ${t.endTime - t.startTime}`);\n }\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready().then(() => {\n done();\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,"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,"export class 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//# sourceMappingURL=pw.js.map",null,null,null,null,null,null,null],"names":["MetricTypes","STRING","NUMBER","TIMESTAMP","OBJECT","getMetricTypeByValue","metric","type","getTypeByValue","value","constructor","Date","serializeMetric","serializedMetrics","values","Object","keys","reduce","memo","key","innerType","composite","defineNestedComposite","description","context","name","normalizeMetricName","path","join","length","getMetricValueByType","now","publishNestedComposite","getTime","Boolean","toString","flatten","arr","flat","toFlatten","concat","Array","isArray","composeMsgForRootStateMetric","system","merged","root","getAggregateState","highestState","sort","a","b","state","aggregateDesc","msg","forEach","m","idx","slice","aggregateDescription","Helpers","definition","parent","transport","Error","BaseMetric","repo","this","id","push","createMetric","update","newValue","updateMetric","NumberMetric","super","incrementBy","num","increment","decrement","decrementBy","ObjectMetric","mergeValues","k","StringMetric","TimestampMetric","protocol","_transport","_name","_description","_repo","_parent","_path","_buildPath","shadowedSystem","_state","separator","_subSystems","_metrics","_getOrCreateMetric","metricObject","expectedType","metricDef","matching","filter","shadowedMetric","existing","catch","me","subSystems","metrics","subSystem","nameSystem","descriptionSystem","match","s","_system","getState","setState","stateDescription","updateSystem","stringMetric","timestampMetric","objectMetric","numberMetric","aggState","shadowedSubSystem","result","createSystem","Repository","options","init","addSystemMetrics","clickStream","undefined","rootSystem","useClickStream","navigator","userAgent","document","documentClickHandler","e","target","className","getAttribute","timestamp","tagName","toLowerCase","href","title","page","window","location","addEventListener","attachEvent","urlMetric","appNameMetric","startUrl","glue42gd","appName","NullProtocol","Promise","resolve","PerfTracker","api","lastCount","initialPublishTimeout","publishInterval","scheduleCollection","setTimeout","collect","setInterval","collectMemory","collectEntries","memory","performance","JSON","stringify","totalJSHeapSize","usedJSHeapSize","allEntries","getEntries","jsonfiedEntries","map","i","toJSON","connection","config","joinPromise","session","replayRepo","replaySystem","ss","async","createMetricsMsg","Description","Value","send","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","sendFireAndForget","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","err","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","createRegistry$1","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","logger","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper$1","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","require","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","PromiseWrapper","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","children","extContentAvailable","extContentConnecting","extContentConnected","parentWindowId","parentInExtMode","webNamespace","parentType","parentPingTimeout","connectionRequestTimeout","defaultTargetString","connectionAccepted","handle","handleConnectionAccepted","bind","connectionRejected","handleConnectionRejected","connectionRequest","handleConnectionRequest","parentPing","handleParentPing","platformPing","handlePlatformPing","platformReady","handlePlatformReady","clientUnload","handleClientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","warn","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","origin","checkMessageTypeValid","messageType","clearInterval","source","handleAcceptanceOfMyRequest","handleAcceptanceOfGrandChildRequest","processExtContentConnection","applicationName","extData","glue42ExtInc","child","find","c","grandChildId","connected","rejectConnectionRequest","extMode","typeToValidate","rejection","requestConnectionPermissionFromExt","waitForContentScript","approved","content","findParent","connectionNotPossibleMsg","myInsideParents","getPossibleParentsInWindow","myOutsideParents","getPossibleParentsOutsideWindow","top","opener","uniqueParents","Set","confirmParent","from","currentWindow","current","targets","substring","AsyncSequelizer","minSequenceInterval","queue","isExecutingQueue","enqueue","executeQueue","operation","shift","actionResult","intervalBreak","res","domainSession","successMessages","errorMessages","_latestOptions","isJoined","tryReconnecting","_connectionOn","disconnected","loggedIn","handleSuccessMessage","handleErrorMessage","sm","requestsMap","destination","wasReconnect","handleJoined","requestId","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","errorMsg","leave","onLeft","Connection","protocolVersion","token","resolvedIdentity","availableDomains","gatewayToken","replayer","messageHandlers","ids","_connected","isTrace","_defaultTransport","_defaultAuth","_targetTransport","_targetAuth","_swapTransport","_switchInProgress","_transportSubscriptions","datePrefix","datePrefixLen","dateMinLen","datePrefixFirstChar","_sequelizer","_isLoggedIn","shouldTryLogin","pingTimer","sessions","globalDomain","initialLogin","initialLoginAttempts","loginConfig","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","trace","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","handleDisconnected","msgObj","processStringMessage","processObjectMessage","msgType","unsub","ready","invocations","left","waitForInvocations","transportConfig","url","assign","auth","parse","startsWith","milliseconds","parseInt","isNaN","ex","oldToJson","username","password","authentication","setupAuthConfig","helloMsg","sessionId","sendOptions","maxRetries","welcomeMsg","tryAuthenticate","resolved_identity","available_domains","access_token","flowCallback","Buffer","getNewGWToken","method","flowName","provider","secret","providerContext","promises","all","getGWToken","order","Logger$1","Logger","subLoggers","_consoleLevel","_publishLevel","loggerFullName","includeTimeAndLevel","logFn","customLogFn","existingSub","publishLevel","level","consoleLevel","publishMessage","compareWith","loggerName","split","interop","Interop","methods","InteropMethodName","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","args","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","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","T42_ANNOUNCE_METHOD_NAME","switchChannel","swId","newChannel","getRestrictionsByWindow","addOrRemoveChannel","label","CONTEXT_PREFIX","LATEST_FDC3_TYPE","SharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","rest","fdc3Context","fdc3","ChannelsImpl","shared","subsKey","changedKey","isInitialJoin","pendingReplays","pendingRestrictionCallbacks","subscribeForChannelRestrictionsChange","initialChannel","joinNoSelectorSwitch","contextType","getWrappedSubscribeCallbackWithFdc3Type","getWrappedSubscribeCallback","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","validatePathArgs","channelNames","validateFdc3Options","getContextWithFdc3Type","getMy","joinCore","leaveCore","leaveNoSelectorSwitch","changed","getWindowsOnChannel","er","restrict","restriction","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","handleRestrictionsChanged","changeSelector","doesChannelExist","channelExistsPromise","intervalId","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","didReplay","replayed","callbackWithTypesChecks","searchedType","parseDataAndInvokeSubscribeCallback","latestFdc3TypeEncoded","fdc3Data","encodedType","parsedType","latestTypePropName","latestFDC3Type","sharedContexts","setupInteropPromise","interopLib","isSupported","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","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":[22,33]}
1
+ {"version":3,"file":"desktop.umd.min.js","sources":["../../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/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 = {\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.0\";\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 cacheSoFar[ctxName] = this._contextNameToData[ctxName].context;\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 = () => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (_allowTrace) {\n _logger.trace(`${name} is ready - ${t.endTime - t.startTime}`);\n }\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready().then(() => {\n done();\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,"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,"export class 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//# sourceMappingURL=pw.js.map",null,null,null,null,null,null,null],"names":["MetricTypes","STRING","NUMBER","TIMESTAMP","OBJECT","getMetricTypeByValue","metric","type","getTypeByValue","value","constructor","Date","serializeMetric","serializedMetrics","values","Object","keys","reduce","memo","key","innerType","composite","defineNestedComposite","description","context","name","normalizeMetricName","path","join","length","getMetricValueByType","now","publishNestedComposite","getTime","Boolean","toString","flatten","arr","flat","toFlatten","concat","Array","isArray","composeMsgForRootStateMetric","system","merged","root","getAggregateState","highestState","sort","a","b","state","aggregateDesc","msg","forEach","m","idx","slice","aggregateDescription","Helpers","definition","parent","transport","Error","BaseMetric","repo","this","id","push","createMetric","update","newValue","updateMetric","NumberMetric","super","incrementBy","num","increment","decrement","decrementBy","ObjectMetric","mergeValues","k","StringMetric","TimestampMetric","protocol","_transport","_name","_description","_repo","_parent","_path","_buildPath","shadowedSystem","_state","separator","_subSystems","_metrics","_getOrCreateMetric","metricObject","expectedType","metricDef","matching","filter","shadowedMetric","existing","catch","me","subSystems","metrics","subSystem","nameSystem","descriptionSystem","match","s","_system","getState","setState","stateDescription","updateSystem","stringMetric","timestampMetric","objectMetric","numberMetric","aggState","shadowedSubSystem","result","createSystem","Repository","options","init","addSystemMetrics","clickStream","undefined","rootSystem","useClickStream","navigator","userAgent","document","documentClickHandler","e","target","className","getAttribute","timestamp","tagName","toLowerCase","href","title","page","window","location","addEventListener","attachEvent","urlMetric","appNameMetric","startUrl","glue42gd","appName","NullProtocol","Promise","resolve","PerfTracker","api","lastCount","initialPublishTimeout","publishInterval","scheduleCollection","setTimeout","collect","setInterval","collectMemory","collectEntries","memory","performance","JSON","stringify","totalJSHeapSize","usedJSHeapSize","allEntries","getEntries","jsonfiedEntries","map","i","toJSON","connection","config","joinPromise","session","replayRepo","replaySystem","ss","async","createMetricsMsg","Description","Value","send","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","sendFireAndForget","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","err","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","createRegistry$1","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","logger","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper$1","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","require","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","PromiseWrapper","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","children","extContentAvailable","extContentConnecting","extContentConnected","parentWindowId","parentInExtMode","webNamespace","parentType","parentPingTimeout","connectionRequestTimeout","defaultTargetString","connectionAccepted","handle","handleConnectionAccepted","bind","connectionRejected","handleConnectionRejected","connectionRequest","handleConnectionRequest","parentPing","handleParentPing","platformPing","handlePlatformPing","platformReady","handlePlatformReady","clientUnload","handleClientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","warn","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","origin","checkMessageTypeValid","messageType","clearInterval","source","handleAcceptanceOfMyRequest","handleAcceptanceOfGrandChildRequest","processExtContentConnection","applicationName","extData","glue42ExtInc","child","find","c","grandChildId","connected","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","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","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","T42_ANNOUNCE_METHOD_NAME","switchChannel","swId","newChannel","getRestrictionsByWindow","addOrRemoveChannel","label","CONTEXT_PREFIX","LATEST_FDC3_TYPE","SharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","rest","fdc3Context","fdc3","ChannelsImpl","shared","subsKey","changedKey","isInitialJoin","pendingReplays","pendingRestrictionCallbacks","subscribeForChannelRestrictionsChange","initialChannel","joinNoSelectorSwitch","contextType","getWrappedSubscribeCallbackWithFdc3Type","getWrappedSubscribeCallback","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","validatePathArgs","channelNames","validateFdc3Options","getContextWithFdc3Type","getMy","joinCore","leaveCore","leaveNoSelectorSwitch","changed","getWindowsOnChannel","er","restrict","restriction","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","handleRestrictionsChanged","changeSelector","doesChannelExist","channelExistsPromise","intervalId","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","didReplay","replayed","callbackWithTypesChecks","searchedType","parseDataAndInvokeSubscribeCallback","latestFdc3TypeEncoded","fdc3Data","encodedType","parsedType","latestTypePropName","latestFDC3Type","sharedContexts","setupInteropPromise","interopLib","isSupported","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","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","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":[22,33]}