@interopio/desktop 6.11.0 → 6.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"desktop.browser.min.js","sources":["../node_modules/@interopio/core/dist/core.es.js","../src/activity/entities/activityEntity.ts","../src/activity/helpers/util.ts","../src/activity/entities/activityType.ts","../src/activity/entities/windowType.ts","../src/activity/contracts/entityEvent.ts","../src/activity/core/activityAGM.ts","../src/activity/entities/attachedActivityDescriptor.ts","../src/activity/helpers/promiseExtensions.ts","../src/activity/entities/activity.ts","../src/activity/helpers/logger.ts","../src/activity/entities/activityWindow.ts","../src/activity/contracts/activityStatus.ts","../src/activity/bridges/gw3Bridge.ts","../src/activity/API/activityMyAPI.ts","../src/activity/helpers/readyMarker.ts","../src/activity/helpers/entityObservableCollection.ts","../src/activity/core/activityManager.ts","../src/activity/API/activityManagementAPI.ts","../src/activity/API/activityAPI.ts","../src/activity/activityModule.ts","../src/app-manager/const/agm-names.ts","../node_modules/callback-registry/lib/index.js","../src/app-manager/helper.ts","../src/constants.ts","../src/utils.ts","../../../node_modules/nanoid/non-secure/index.js","../src/app-manager/application.ts","../src/app-manager/instance.ts","../src/app-manager/app-manager.ts","../src/app-manager/entitlements.ts","../src/app-manager/in-memory.ts","../src/app-manager/main.ts","../src/app-manager/snapshot.ts","../src/app-manager/data-subscription.ts","../src/windows/jumpList/manager.ts","../src/windows/store.ts","../src/windows/jumpList/actions.ts","../src/windows/jumpList/categories.ts","../src/windows/jumpList/main.ts","../src/windows/window.ts","../src/windows/environment/helpers.ts","../src/windows/environment/gd/executor.ts","../src/windows/environment/gd/gd.ts","../src/windows/environment/detector.ts","../src/windows/group.ts","../src/windows/groups.ts","../src/windows/main.ts","../src/layouts/store.ts","../src/layouts/contextProvider.ts","../src/layouts/transform.ts","../src/layouts/layout.ts","../../schemas/app/application.js","../../schemas/app/system.js","../../schemas/app/layout.js","../../schemas/app/swTheme.js","../../schemas/app/swConfiguration.js","../../schemas/app/main.js","../src/layouts/layouts.ts","../src/layouts/stream/acsStream.ts","../src/displays/displayManager.ts","../src/channels/channelIDUtils.ts","../src/channels/agm.ts","../src/channels/contexts.ts","../src/channels/channels.ts","../src/channels/helpers.ts","../src/channels/main.ts","../src/hotkeys/hotkeys.ts","../src/config.ts","../src/notifications/notification.ts","../src/notifications/panel.ts","../src/notifications/main.ts","../src/themes/themes.ts","../node_modules/@interopio/utils/dist/utils.es.js","../src/intents/constants.ts","../src/intents/common.ts","../src/intents/helpers.ts","../src/intents/intents.ts","../src/prefs/index.ts","../src/cookies/index.ts","../src/eventsDispatcher.ts","../../../app/utils/promise.js","../src/interception/main.ts","../src/glue.ts","../src/factoryCallInfo.ts","../src/layouts/main.ts","../src/hotkeys/main.ts","../src/themes/main.ts","../src/cookies/main.ts","../src/index.ts"],"sourcesContent":["var MetricTypes = {\n STRING: 1,\n NUMBER: 2,\n TIMESTAMP: 3,\n OBJECT: 4\n};\n\nfunction getMetricTypeByValue(metric) {\n if (metric.type === MetricTypes.TIMESTAMP) {\n return \"timestamp\";\n }\n else if (metric.type === MetricTypes.NUMBER) {\n return \"number\";\n }\n else if (metric.type === MetricTypes.STRING) {\n return \"string\";\n }\n else if (metric.type === MetricTypes.OBJECT) {\n return \"object\";\n }\n return \"unknown\";\n}\nfunction getTypeByValue(value) {\n if (value.constructor === Date) {\n return \"timestamp\";\n }\n else if (typeof value === \"number\") {\n return \"number\";\n }\n else if (typeof value === \"string\") {\n return \"string\";\n }\n else if (typeof value === \"object\") {\n return \"object\";\n }\n else {\n return \"string\";\n }\n}\nfunction serializeMetric(metric) {\n const serializedMetrics = {};\n const type = getMetricTypeByValue(metric);\n if (type === \"object\") {\n const values = Object.keys(metric.value).reduce((memo, key) => {\n const innerType = getTypeByValue(metric.value[key]);\n if (innerType === \"object\") {\n const composite = defineNestedComposite(metric.value[key]);\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite,\n };\n }\n else {\n memo[key] = {\n type: innerType,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n serializedMetrics.composite = values;\n }\n serializedMetrics.name = normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name);\n serializedMetrics.type = type;\n serializedMetrics.description = metric.description;\n serializedMetrics.context = {};\n return serializedMetrics;\n}\nfunction defineNestedComposite(values) {\n return Object.keys(values).reduce((memo, key) => {\n const type = getTypeByValue(values[key]);\n if (type === \"object\") {\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite: defineNestedComposite(values[key]),\n };\n }\n else {\n memo[key] = {\n type,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n}\nfunction normalizeMetricName(name) {\n if (typeof name !== \"undefined\" && name.length > 0 && name[0] !== \"/\") {\n return \"/\" + name;\n }\n else {\n return name;\n }\n}\nfunction getMetricValueByType(metric) {\n const type = getMetricTypeByValue(metric);\n if (type === \"timestamp\") {\n return Date.now();\n }\n else {\n return publishNestedComposite(metric.value);\n }\n}\nfunction publishNestedComposite(values) {\n if (typeof values !== \"object\") {\n return values;\n }\n return Object.keys(values).reduce((memo, key) => {\n const value = values[key];\n if (typeof value === \"object\" && value.constructor !== Date) {\n memo[key] = publishNestedComposite(value);\n }\n else if (value.constructor === Date) {\n memo[key] = new Date(value).getTime();\n }\n else if (value.constructor === Boolean) {\n memo[key] = value.toString();\n }\n else {\n memo[key] = value;\n }\n return memo;\n }, {});\n}\nfunction flatten(arr) {\n return arr.reduce((flat, toFlatten) => {\n return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);\n }, []);\n}\nfunction getHighestState(arr) {\n return arr.sort((a, b) => {\n if (!a.state) {\n return 1;\n }\n if (!b.state) {\n return -1;\n }\n return b.state - a.state;\n })[0];\n}\nfunction aggregateDescription(arr) {\n let msg = \"\";\n arr.forEach((m, idx, a) => {\n const path = m.path.join(\".\");\n if (idx === a.length - 1) {\n msg += path + \".\" + m.name + \": \" + m.description;\n }\n else {\n msg += path + \".\" + m.name + \": \" + m.description + \",\";\n }\n });\n if (msg.length > 100) {\n return msg.slice(0, 100) + \"...\";\n }\n else {\n return msg;\n }\n}\nfunction composeMsgForRootStateMetric(system) {\n const aggregatedState = system.root.getAggregateState();\n const merged = flatten(aggregatedState);\n const highestState = getHighestState(merged);\n const aggregateDesc = aggregateDescription(merged);\n return {\n description: aggregateDesc,\n value: highestState.state,\n };\n}\n\nfunction gw3 (connection, config) {\n if (!connection || typeof connection !== \"object\") {\n throw new Error(\"Connection is required parameter\");\n }\n let joinPromise;\n let session;\n const init = (repo) => {\n let resolveReadyPromise;\n joinPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n session = connection.domain(\"metrics\");\n session.onJoined((reconnect) => {\n if (!reconnect && resolveReadyPromise) {\n resolveReadyPromise();\n resolveReadyPromise = undefined;\n }\n const rootStateMetric = {\n name: \"/State\",\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const defineRootMetricsMsg = {\n type: \"define\",\n metrics: [rootStateMetric],\n };\n session.send(defineRootMetricsMsg);\n if (reconnect) {\n replayRepo(repo);\n }\n });\n session.join({\n system: config.system,\n service: config.service,\n instance: config.instance\n });\n };\n const replayRepo = (repo) => {\n replaySystem(repo.root);\n };\n const replaySystem = (system) => {\n createSystem(system);\n system.metrics.forEach((m) => {\n createMetric(m);\n });\n system.subSystems.forEach((ss) => {\n replaySystem(ss);\n });\n };\n const createSystem = async (system) => {\n if (system.parent === undefined) {\n return;\n }\n await joinPromise;\n const metric = {\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const createMetricsMsg = {\n type: \"define\",\n metrics: [metric],\n };\n session.send(createMetricsMsg);\n };\n const updateSystem = async (system, state) => {\n await joinPromise;\n const shadowedUpdateMetric = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n value: {\n Description: state.description,\n Value: state.state,\n },\n timestamp: Date.now(),\n }],\n };\n session.send(shadowedUpdateMetric);\n const stateObj = composeMsgForRootStateMetric(system);\n const rootMetric = {\n type: \"publish\",\n peer_id: connection.peerId,\n values: [{\n name: \"/State\",\n value: {\n Description: stateObj.description,\n Value: stateObj.value,\n },\n timestamp: Date.now(),\n }],\n };\n session.send(rootMetric);\n };\n const createMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n const m = serializeMetric(metricClone);\n const createMetricsMsg = {\n type: \"define\",\n metrics: [m],\n };\n session.send(createMetricsMsg);\n if (typeof metricClone.value !== \"undefined\") {\n updateMetricCore(metricClone);\n }\n };\n const updateMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n updateMetricCore(metricClone);\n };\n const updateMetricCore = (metric) => {\n if (canUpdate()) {\n const value = getMetricValueByType(metric);\n const publishMetricsMsg = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name),\n value,\n timestamp: Date.now(),\n }],\n };\n return session.sendFireAndForget(publishMetricsMsg);\n }\n return Promise.resolve();\n };\n const cloneMetric = (metric) => {\n const metricClone = { ...metric };\n if (typeof metric.value === \"object\" && metric.value !== null) {\n metricClone.value = { ...metric.value };\n }\n return metricClone;\n };\n const canUpdate = () => {\n try {\n const func = config.canUpdateMetric ?? (() => true);\n return func();\n }\n catch {\n return true;\n }\n };\n return {\n init,\n createSystem,\n updateSystem,\n createMetric,\n updateMetric,\n };\n}\n\nvar Helpers = {\n validate: (definition, parent, transport) => {\n if (definition === null || typeof definition !== \"object\") {\n throw new Error(\"Missing definition\");\n }\n if (parent === null || typeof parent !== \"object\") {\n throw new Error(\"Missing parent\");\n }\n if (transport === null || typeof transport !== \"object\") {\n throw new Error(\"Missing transport\");\n }\n },\n};\n\nclass BaseMetric {\n definition;\n system;\n transport;\n value;\n type;\n path = [];\n name;\n description;\n get repo() {\n return this.system?.repo;\n }\n get id() { return `${this.system.path}/${name}`; }\n constructor(definition, system, transport, value, type) {\n this.definition = definition;\n this.system = system;\n this.transport = transport;\n this.value = value;\n this.type = type;\n Helpers.validate(definition, system, transport);\n this.path = system.path.slice(0);\n this.path.push(system.name);\n this.name = definition.name;\n this.description = definition.description;\n transport.createMetric(this);\n }\n update(newValue) {\n this.value = newValue;\n return this.transport.updateMetric(this);\n }\n}\n\nclass NumberMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.NUMBER);\n }\n incrementBy(num) {\n this.update(this.value + num);\n }\n increment() {\n this.incrementBy(1);\n }\n decrement() {\n this.incrementBy(-1);\n }\n decrementBy(num) {\n this.incrementBy(num * -1);\n }\n}\n\nclass ObjectMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.OBJECT);\n }\n update(newValue) {\n this.mergeValues(newValue);\n return this.transport.updateMetric(this);\n }\n mergeValues(values) {\n return Object.keys(this.value).forEach((k) => {\n if (typeof values[k] !== \"undefined\") {\n this.value[k] = values[k];\n }\n });\n }\n}\n\nclass StringMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.STRING);\n }\n}\n\nclass TimestampMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.TIMESTAMP);\n }\n now() {\n this.update(new Date());\n }\n}\n\nfunction system(name, repo, protocol, parent, description) {\n if (!repo) {\n throw new Error(\"Repository is required\");\n }\n if (!protocol) {\n throw new Error(\"Transport is required\");\n }\n const _transport = protocol;\n const _name = name;\n const _description = description || \"\";\n const _repo = repo;\n const _parent = parent;\n const _path = _buildPath(parent);\n let _state = {};\n const id = _arrayToString(_path, \"/\") + name;\n const root = repo.root;\n const _subSystems = [];\n const _metrics = [];\n function subSystem(nameSystem, descriptionSystem) {\n if (!nameSystem || nameSystem.length === 0) {\n throw new Error(\"name is required\");\n }\n const match = _subSystems.filter((s) => s.name === nameSystem);\n if (match.length > 0) {\n return match[0];\n }\n const _system = system(nameSystem, _repo, _transport, me, descriptionSystem);\n _subSystems.push(_system);\n return _system;\n }\n function setState(state, stateDescription) {\n _state = { state, description: stateDescription };\n _transport.updateSystem(me, _state);\n }\n function stringMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.STRING, value, (metricDef) => new StringMetric(metricDef, me, _transport, value));\n }\n function numberMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.NUMBER, value, (metricDef) => new NumberMetric(metricDef, me, _transport, value));\n }\n function objectMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.OBJECT, value, (metricDef) => new ObjectMetric(metricDef, me, _transport, value));\n }\n function timestampMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.TIMESTAMP, value, (metricDef) => new TimestampMetric(metricDef, me, _transport, value));\n }\n function _getOrCreateMetric(metricObject, expectedType, value, createMetric) {\n let metricDef = { name: \"\" };\n if (typeof metricObject === \"string\") {\n metricDef = { name: metricObject };\n }\n else {\n metricDef = metricObject;\n }\n const matching = _metrics.filter((shadowedMetric) => shadowedMetric.name === metricDef.name);\n if (matching.length > 0) {\n const existing = matching[0];\n if (existing.type !== expectedType) {\n throw new Error(`A metric named ${metricDef.name} is already defined with different type.`);\n }\n if (typeof value !== \"undefined\") {\n existing\n .update(value)\n .catch(() => { });\n }\n return existing;\n }\n const metric = createMetric(metricDef);\n _metrics.push(metric);\n return metric;\n }\n function _buildPath(shadowedSystem) {\n if (!shadowedSystem || !shadowedSystem.parent) {\n return [];\n }\n const path = _buildPath(shadowedSystem.parent);\n path.push(shadowedSystem.name);\n return path;\n }\n function _arrayToString(path, separator) {\n return ((path && path.length > 0) ? path.join(separator) : \"\");\n }\n function getAggregateState() {\n const aggState = [];\n if (Object.keys(_state).length > 0) {\n aggState.push({\n name: _name,\n path: _path,\n state: _state.state,\n description: _state.description,\n });\n }\n _subSystems.forEach((shadowedSubSystem) => {\n const result = shadowedSubSystem.getAggregateState();\n if (result.length > 0) {\n aggState.push(...result);\n }\n });\n return aggState;\n }\n const me = {\n get name() {\n return _name;\n },\n get description() {\n return _description;\n },\n get repo() {\n return _repo;\n },\n get parent() {\n return _parent;\n },\n path: _path,\n id,\n root,\n get subSystems() {\n return _subSystems;\n },\n get metrics() {\n return _metrics;\n },\n subSystem,\n getState: () => {\n return _state;\n },\n setState,\n stringMetric,\n timestampMetric,\n objectMetric,\n numberMetric,\n getAggregateState,\n };\n _transport.createSystem(me);\n return me;\n}\n\nclass Repository {\n root;\n constructor(options, protocol) {\n protocol.init(this);\n this.root = system(\"\", this, protocol);\n this.addSystemMetrics(this.root, options.clickStream || options.clickStream === undefined);\n }\n addSystemMetrics(rootSystem, useClickStream) {\n if (typeof navigator !== \"undefined\") {\n rootSystem.stringMetric(\"UserAgent\", navigator.userAgent);\n }\n if (useClickStream && typeof document !== \"undefined\") {\n const clickStream = rootSystem.subSystem(\"ClickStream\");\n const documentClickHandler = (e) => {\n if (!e.target) {\n return;\n }\n const target = e.target;\n const className = target ? target.getAttribute(\"class\") ?? \"\" : \"\";\n clickStream.objectMetric(\"LastBrowserEvent\", {\n type: \"click\",\n timestamp: new Date(),\n target: {\n className,\n id: target.id,\n type: \"<\" + target.tagName.toLowerCase() + \">\",\n href: target.href || \"\",\n },\n });\n };\n clickStream.objectMetric(\"Page\", {\n title: document.title,\n page: window.location.href,\n });\n if (document.addEventListener) {\n document.addEventListener(\"click\", documentClickHandler);\n }\n else {\n document.attachEvent(\"onclick\", documentClickHandler);\n }\n }\n rootSystem.stringMetric(\"StartTime\", (new Date()).toString());\n const urlMetric = rootSystem.stringMetric(\"StartURL\", \"\");\n const appNameMetric = rootSystem.stringMetric(\"AppName\", \"\");\n if (typeof window !== \"undefined\") {\n if (typeof window.location !== \"undefined\") {\n const startUrl = window.location.href;\n urlMetric.update(startUrl);\n }\n if (typeof window.glue42gd !== \"undefined\") {\n appNameMetric.update(window.glue42gd.appName);\n }\n }\n }\n}\n\nclass NullProtocol {\n init(repo) {\n }\n createSystem(system) {\n return Promise.resolve();\n }\n updateSystem(metric, state) {\n return Promise.resolve();\n }\n createMetric(metric) {\n return Promise.resolve();\n }\n updateMetric(metric) {\n return Promise.resolve();\n }\n}\n\nclass PerfTracker {\n api;\n lastCount = 0;\n initialPublishTimeout = 10 * 1000;\n publishInterval = 60 * 1000;\n system;\n constructor(api, initialPublishTimeout, publishInterval) {\n this.api = api;\n this.initialPublishTimeout = initialPublishTimeout ?? this.initialPublishTimeout;\n this.publishInterval = publishInterval ?? this.publishInterval;\n this.scheduleCollection();\n this.system = this.api.subSystem(\"performance\", \"Performance data published by the web application\");\n }\n scheduleCollection() {\n setTimeout(() => {\n this.collect();\n setInterval(() => {\n this.collect();\n }, this.publishInterval);\n }, this.initialPublishTimeout);\n }\n collect() {\n try {\n this.collectMemory();\n this.collectEntries();\n }\n catch {\n }\n }\n collectMemory() {\n const memory = window.performance.memory;\n this.system.stringMetric(\"memory\", JSON.stringify({\n totalJSHeapSize: memory.totalJSHeapSize,\n usedJSHeapSize: memory.usedJSHeapSize\n }));\n }\n collectEntries() {\n const allEntries = window.performance.getEntries();\n if (allEntries.length <= this.lastCount) {\n return;\n }\n this.lastCount = allEntries.length;\n const jsonfiedEntries = allEntries.map((i) => i.toJSON());\n this.system.stringMetric(\"entries\", JSON.stringify(jsonfiedEntries));\n }\n}\n\nvar metrics = (options) => {\n let protocol;\n if (!options.connection || typeof options.connection !== \"object\") {\n protocol = new NullProtocol();\n }\n else {\n protocol = gw3(options.connection, options);\n }\n const repo = new Repository(options, protocol);\n let rootSystem = repo.root;\n if (!options.disableAutoAppSystem) {\n rootSystem = rootSystem.subSystem(\"App\");\n }\n const api = addFAVSupport(rootSystem);\n initPerf(api, options.pagePerformanceMetrics);\n return api;\n};\nfunction initPerf(api, config) {\n if (typeof window === \"undefined\") {\n return;\n }\n const perfConfig = window?.glue42gd?.metrics?.pagePerformanceMetrics;\n if (perfConfig) {\n config = perfConfig;\n }\n if (config?.enabled) {\n new PerfTracker(api, config.initialPublishTimeout, config.publishInterval);\n }\n}\nfunction addFAVSupport(system) {\n const reportingSystem = system.subSystem(\"reporting\");\n const def = {\n name: \"features\"\n };\n let featureMetric;\n const featureMetricFunc = (name, action, payload) => {\n if (typeof name === \"undefined\" || name === \"\") {\n throw new Error(\"name is mandatory\");\n }\n else if (typeof action === \"undefined\" || action === \"\") {\n throw new Error(\"action is mandatory\");\n }\n else if (typeof payload === \"undefined\" || payload === \"\") {\n throw new Error(\"payload is mandatory\");\n }\n if (!featureMetric) {\n featureMetric = reportingSystem.objectMetric(def, { name, action, payload });\n }\n else {\n featureMetric.update({\n name,\n action,\n payload\n });\n }\n };\n system.featureMetric = featureMetricFunc;\n return system;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\ncreateRegistry.default = createRegistry;\nvar lib = createRegistry;\n\n\nvar CallbackRegistryFactory = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass InProcTransport {\n gw;\n registry = CallbackRegistryFactory();\n client;\n constructor(settings, logger) {\n this.gw = settings.facade;\n this.gw.connect((_client, message) => {\n this.messageHandler(message);\n }).then((client) => {\n this.client = client;\n });\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n if (this.client) {\n this.client.send(msg);\n return Promise.resolve(undefined);\n }\n else {\n return Promise.reject(`not connected`);\n }\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"in-memory\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass SharedWorkerTransport {\n logger;\n worker;\n registry = CallbackRegistryFactory();\n constructor(workerFile, logger) {\n this.logger = logger;\n this.worker = new SharedWorker(workerFile);\n this.worker.port.onmessage = (e) => {\n this.messageHandler(e.data);\n };\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n this.worker.port.postMessage(msg);\n return Promise.resolve();\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"shared-worker\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass Utils {\n static isNode() {\n if (typeof Utils._isNode !== \"undefined\") {\n return Utils._isNode;\n }\n if (typeof window !== \"undefined\") {\n Utils._isNode = false;\n return false;\n }\n try {\n Utils._isNode = Object.prototype.toString.call(global.process) === \"[object process]\";\n }\n catch (e) {\n Utils._isNode = false;\n }\n return Utils._isNode;\n }\n static _isNode;\n}\n\nclass PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n resolve;\n reject;\n promise;\n rejected = false;\n resolved = false;\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\n\nconst timers = {};\nfunction getAllTimers() {\n return timers;\n}\nfunction timer (timerName) {\n const existing = timers[timerName];\n if (existing) {\n return existing;\n }\n const marks = [];\n function now() {\n return new Date().getTime();\n }\n const startTime = now();\n mark(\"start\", startTime);\n let endTime;\n let period;\n function stop() {\n endTime = now();\n mark(\"end\", endTime);\n period = endTime - startTime;\n return period;\n }\n function mark(name, time) {\n const currentTime = time ?? now();\n let diff = 0;\n if (marks.length > 0) {\n diff = currentTime - marks[marks.length - 1].time;\n }\n marks.push({ name, time: currentTime, diff });\n }\n const timerObj = {\n get startTime() {\n return startTime;\n },\n get endTime() {\n return endTime;\n },\n get period() {\n return period;\n },\n stop,\n mark,\n marks\n };\n timers[timerName] = timerObj;\n return timerObj;\n}\n\nconst WebSocketConstructor = Utils.isNode() ? require(\"ws\") : window.WebSocket;\nclass WS {\n ws;\n logger;\n settings;\n startupTimer = timer(\"connection\");\n _running = true;\n _registry = CallbackRegistryFactory();\n wsRequests = [];\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n if (!this.settings.ws) {\n throw new Error(\"ws is missing\");\n }\n }\n onMessage(callback) {\n return this._registry.add(\"onMessage\", callback);\n }\n send(msg, options) {\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(() => {\n try {\n this.ws?.send(msg);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n });\n }\n open() {\n this.logger.info(\"opening ws...\");\n this._running = true;\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(resolve, reject);\n });\n }\n close() {\n this._running = false;\n if (this.ws) {\n this.ws.close();\n }\n return Promise.resolve();\n }\n onConnectedChanged(callback) {\n return this._registry.add(\"onConnectedChanged\", callback);\n }\n name() {\n return this.settings.ws;\n }\n reconnect() {\n this.ws?.close();\n const pw = new PromiseWrapper();\n this.waitForSocketConnection(() => {\n pw.resolve();\n });\n return pw.promise;\n }\n waitForSocketConnection(callback, failed) {\n failed = failed ?? (() => { });\n if (!this._running) {\n failed(`wait for socket on ${this.settings.ws} failed - socket closed by user`);\n return;\n }\n if (this.ws?.readyState === 1) {\n callback();\n return;\n }\n this.wsRequests.push({ callback, failed });\n if (this.wsRequests.length > 1) {\n return;\n }\n this.openSocket();\n }\n async openSocket(retryInterval, retriesLeft) {\n this.logger.info(`opening ws to ${this.settings.ws}, retryInterval: ${retryInterval}, retriesLeft: ${retriesLeft}...`);\n this.startupTimer.mark(\"opening-socket\");\n if (retryInterval === undefined) {\n retryInterval = this.settings.reconnectInterval;\n }\n if (typeof retriesLeft === \"undefined\") {\n retriesLeft = this.settings.reconnectAttempts;\n }\n if (retriesLeft !== undefined) {\n if (retriesLeft === 0) {\n this.notifyForSocketState(`wait for socket on ${this.settings.ws} failed - no more retries left`);\n return;\n }\n this.logger.debug(`will retry ${retriesLeft} more times (every ${retryInterval} ms)`);\n }\n try {\n await this.initiateSocket();\n this.startupTimer.mark(\"socket-initiated\");\n this.notifyForSocketState();\n }\n catch {\n setTimeout(() => {\n const retries = retriesLeft === undefined ? undefined : retriesLeft - 1;\n this.openSocket(retryInterval, retries);\n }, retryInterval);\n }\n }\n initiateSocket() {\n const pw = new PromiseWrapper();\n this.logger.debug(`initiating ws to ${this.settings.ws}...`);\n this.ws = new WebSocketConstructor(this.settings.ws ?? \"\");\n this.ws.onerror = (err) => {\n let reason = \"\";\n try {\n reason = JSON.stringify(err);\n }\n catch (error) {\n const seen = new WeakSet();\n const replacer = (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n reason = JSON.stringify(err, replacer);\n }\n this.logger.info(`ws error - reason: ${reason}`);\n pw.reject(\"error\");\n this.notifyStatusChanged(false, reason);\n };\n this.ws.onclose = (err) => {\n this.logger.info(`ws closed - code: ${err?.code} reason: ${err?.reason}`);\n pw.reject(\"closed\");\n this.notifyStatusChanged(false);\n };\n this.ws.onopen = () => {\n this.startupTimer.mark(\"ws-opened\");\n this.logger.info(`ws opened ${this.settings.identity?.application}`);\n pw.resolve();\n this.notifyStatusChanged(true);\n };\n this.ws.onmessage = (message) => {\n this._registry.execute(\"onMessage\", message.data);\n };\n return pw.promise;\n }\n notifyForSocketState(error) {\n this.wsRequests.forEach((wsRequest) => {\n if (error) {\n if (wsRequest.failed) {\n wsRequest.failed(error);\n }\n }\n else {\n wsRequest.callback();\n }\n });\n this.wsRequests = [];\n }\n notifyStatusChanged(status, reason) {\n this._registry.execute(\"onConnectedChanged\", status, reason);\n }\n}\n\nclass MessageReplayerImpl {\n specs;\n specsNames = [];\n messages = {};\n isDone;\n subs = {};\n subsRefCount = {};\n connection;\n constructor(specs) {\n this.specs = {};\n for (const spec of specs) {\n this.specs[spec.name] = spec;\n this.specsNames.push(spec.name);\n }\n }\n init(connection) {\n this.connection = connection;\n for (const name of this.specsNames) {\n for (const type of this.specs[name].types) {\n let refCount = this.subsRefCount[type];\n if (!refCount) {\n refCount = 0;\n }\n refCount += 1;\n this.subsRefCount[type] = refCount;\n if (refCount > 1) {\n continue;\n }\n const sub = connection.on(type, (msg) => this.processMessage(type, msg));\n this.subs[type] = sub;\n }\n }\n }\n processMessage(type, msg) {\n if (this.isDone || !msg) {\n return;\n }\n for (const name of this.specsNames) {\n if (this.specs[name].types.indexOf(type) !== -1) {\n const messages = this.messages[name] || [];\n this.messages[name] = messages;\n messages.push(msg);\n }\n }\n }\n drain(name, callback) {\n if (callback) {\n (this.messages[name] || []).forEach(callback);\n }\n delete this.messages[name];\n for (const type of this.specs[name].types) {\n this.subsRefCount[type] -= 1;\n if (this.subsRefCount[type] <= 0) {\n this.connection?.off(this.subs[type]);\n delete this.subs[type];\n delete this.subsRefCount[type];\n }\n }\n delete this.specs[name];\n if (!this.specs.length) {\n this.isDone = true;\n }\n }\n}\n\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n};\n\nconst PromisePlus = (executor, timeoutMilliseconds, timeoutMessage) => {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n reject(message);\n }, timeoutMilliseconds);\n const providedPromise = new Promise(executor);\n providedPromise\n .then((result) => {\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n\nclass WebPlatformTransport {\n settings;\n logger;\n identity;\n isPreferredActivated;\n _communicationId;\n publicWindowId;\n selfAssignedWindowId;\n iAmConnected = false;\n parentReady = false;\n rejected = false;\n parentPingResolve;\n parentPingInterval;\n connectionResolve;\n extConnectionResolve;\n extConnectionReject;\n connectionReject;\n port;\n myClientId;\n children = [];\n extContentAvailable = false;\n extContentConnecting = false;\n extContentConnected = false;\n parentWindowId;\n parentInExtMode = false;\n webNamespace = \"g42_core_web\";\n parent;\n parentType;\n parentPingTimeout = 5000;\n connectionRequestTimeout = 7000;\n defaultTargetString = \"*\";\n registry = CallbackRegistryFactory();\n messages = {\n connectionAccepted: { name: \"connectionAccepted\", handle: this.handleConnectionAccepted.bind(this) },\n connectionRejected: { name: \"connectionRejected\", handle: this.handleConnectionRejected.bind(this) },\n connectionRequest: { name: \"connectionRequest\", handle: this.handleConnectionRequest.bind(this) },\n parentReady: {\n name: \"parentReady\", handle: () => {\n }\n },\n parentPing: { name: \"parentPing\", handle: this.handleParentPing.bind(this) },\n platformPing: { name: \"platformPing\", handle: this.handlePlatformPing.bind(this) },\n platformReady: { name: \"platformReady\", handle: this.handlePlatformReady.bind(this) },\n clientUnload: { name: \"clientUnload\", handle: this.handleClientUnload.bind(this) },\n manualUnload: { name: \"manualUnload\", handle: this.handleManualUnload.bind(this) },\n extConnectionResponse: { name: \"extConnectionResponse\", handle: this.handleExtConnectionResponse.bind(this) },\n extSetupRequest: { name: \"extSetupRequest\", handle: this.handleExtSetupRequest.bind(this) },\n gatewayDisconnect: { name: \"gatewayDisconnect\", handle: this.handleGatewayDisconnect.bind(this) },\n gatewayInternalConnect: { name: \"gatewayInternalConnect\", handle: this.handleGatewayInternalConnect.bind(this) }\n };\n constructor(settings, logger, identity) {\n this.settings = settings;\n this.logger = logger;\n this.identity = identity;\n this.extContentAvailable = !!window.glue42ext;\n this.setUpMessageListener();\n this.setUpUnload();\n this.setupPlatformUnloadListener();\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : undefined;\n }\n manualSetReadyState() {\n this.iAmConnected = true;\n this.parentReady = true;\n }\n get transportWindowId() {\n return this.publicWindowId;\n }\n get communicationId() {\n return this._communicationId;\n }\n async sendObject(msg) {\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: msg }, this.defaultTargetString);\n }\n if (!this.port) {\n throw new Error(\"Cannot send message, because the port was not opened yet\");\n }\n this.port.postMessage(msg);\n }\n get isObjectBasedTransport() {\n return true;\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n send() {\n return Promise.reject(\"not supported\");\n }\n onConnectedChanged(callback) {\n return this.registry.add(\"onConnectedChanged\", callback);\n }\n async open() {\n this.logger.debug(\"opening a connection to the web platform gateway.\");\n await this.connect();\n this.notifyStatusChanged(true);\n }\n close() {\n const message = {\n glue42core: {\n type: this.messages.gatewayDisconnect.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.port?.postMessage(message);\n this.parentReady = false;\n this.notifyStatusChanged(false, \"manual reconnection\");\n return Promise.resolve();\n }\n name() {\n return \"web-platform\";\n }\n async reconnect() {\n await this.close();\n return Promise.resolve();\n }\n initiateInternalConnection() {\n return new Promise((resolve, reject) => {\n this.logger.debug(\"opening an internal web platform connection\");\n this.port = this.settings.port;\n if (this.iAmConnected) {\n this.logger.warn(\"cannot open a new connection, because this client is currently connected\");\n return;\n }\n this.port.onmessage = (event) => {\n if (this.iAmConnected && !event.data?.glue42core) {\n this.registry.execute(\"onMessage\", event.data);\n return;\n }\n const data = event.data?.glue42core;\n if (!data) {\n return;\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.success) {\n this.publicWindowId = this.settings.windowId;\n if (this.identity && this.publicWindowId) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.publicWindowId;\n }\n resolve();\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.error) {\n reject(data.error);\n }\n };\n this.port.postMessage({\n glue42core: {\n type: this.messages.gatewayInternalConnect.name\n }\n });\n });\n }\n initiateRemoteConnection(target) {\n return PromisePlus((resolve, reject) => {\n this.connectionResolve = resolve;\n this.connectionReject = reject;\n this.myClientId = this.myClientId ?? nanoid(10);\n const bridgeInstanceId = this.getMyWindowId() || nanoid(10);\n const request = {\n glue42core: {\n type: this.messages.connectionRequest.name,\n clientId: this.myClientId,\n clientType: \"child\",\n bridgeInstanceId,\n selfAssignedWindowId: this.selfAssignedWindowId\n }\n };\n this.logger.debug(\"sending connection request\");\n if (this.extContentConnecting) {\n request.glue42core.clientType = \"child\";\n request.glue42core.bridgeInstanceId = this.myClientId;\n request.glue42core.parentWindowId = this.parentWindowId;\n return window.postMessage(request, this.defaultTargetString);\n }\n if (!target) {\n throw new Error(\"Cannot send a connection request, because no glue target was specified!\");\n }\n target.postMessage(request, this.defaultTargetString);\n }, this.connectionRequestTimeout, \"The connection to the target glue window timed out\");\n }\n async isParentCheckSuccess(parentCheck) {\n try {\n await parentCheck;\n return { success: true };\n }\n catch (error) {\n return { success: false };\n }\n }\n setUpMessageListener() {\n if (this.settings.port) {\n this.logger.debug(\"skipping generic message listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"message\", (event) => {\n const data = event.data?.glue42core;\n if (!data || this.rejected) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n if (!this.checkMessageTypeValid(data.type)) {\n this.logger.error(`cannot handle the incoming glue42 core message, because the type is invalid: ${data.type}`);\n return;\n }\n const messageType = data.type;\n this.logger.debug(`received valid glue42core message of type: ${messageType}`);\n this.messages[messageType].handle(event);\n });\n }\n setUpUnload() {\n if (this.settings.port) {\n this.logger.debug(\"skipping unload event listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"beforeunload\", () => {\n if (this.extContentConnected) {\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.parent) {\n this.parent.postMessage(message, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n });\n }\n handlePlatformReady(event) {\n this.logger.debug(\"the web platform gave the ready signal\");\n this.parentReady = true;\n if (this.parentPingResolve) {\n this.parentPingResolve();\n delete this.parentPingResolve;\n }\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n this.parent = event.source;\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : \"window\";\n }\n handleConnectionAccepted(event) {\n const data = event.data?.glue42core;\n if (this.myClientId === data.clientId) {\n return this.handleAcceptanceOfMyRequest(data);\n }\n return this.handleAcceptanceOfGrandChildRequest(data, event);\n }\n handleAcceptanceOfMyRequest(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me.\");\n this.isPreferredActivated = data.isPreferredActivated;\n if (this.extContentConnecting) {\n return this.processExtContentConnection(data);\n }\n if (!data.port) {\n this.logger.error(\"cannot set up my connection, because I was not provided with a port\");\n return;\n }\n this.publicWindowId = this.getMyWindowId();\n if (this.identity) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.identity.instance ? this.identity.instance : this.publicWindowId || nanoid(10);\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n this._communicationId = data.communicationId;\n this.port = data.port;\n this.port.onmessage = (e) => this.registry.execute(\"onMessage\", e.data);\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n this.logger.error(\"unable to call the connection resolve, because no connection promise was found\");\n }\n processExtContentConnection(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me for extension content connection.\");\n this.extContentConnecting = false;\n this.extContentConnected = true;\n this.publicWindowId = this.parentWindowId || this.myClientId;\n if (this.extContentConnecting && this.identity) {\n this.identity.windowId = this.publicWindowId;\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n window.addEventListener(\"message\", (event) => {\n const extData = event.data?.glue42ExtInc;\n if (!extData) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n this.registry.execute(\"onMessage\", extData);\n });\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n }\n handleAcceptanceOfGrandChildRequest(data, event) {\n if (this.extContentConnecting || this.extContentConnected) {\n this.logger.debug(\"cannot process acceptance of a grandchild, because I am connected to a content script\");\n return;\n }\n this.logger.debug(`handling a connection accepted signal targeted at a grandchild: ${data.clientId}`);\n const child = this.children.find((c) => c.grandChildId === data.clientId);\n if (!child) {\n this.logger.error(`cannot handle connection accepted for grandchild: ${data.clientId}, because there is no grandchild with this id`);\n return;\n }\n child.connected = true;\n this.logger.debug(`the grandchild connection for ${data.clientId} is set up, forwarding the success message and the gateway port`);\n data.parentWindowId = this.publicWindowId;\n child.source.postMessage(event.data, child.origin, [data.port]);\n return;\n }\n handleConnectionRejected(event) {\n this.logger.debug(\"handling a connection rejection. Most likely the reason is that this window was not created by a glue API call\");\n if (!this.connectionReject) {\n return;\n }\n const errorMsg = typeof event.data.glue42core?.error === \"string\"\n ? `Connection was rejected. ${event.data.glue42core?.error}`\n : \"The platform connection was rejected. Most likely because this window was not created by a glue API call\";\n this.connectionReject(errorMsg);\n delete this.connectionReject;\n }\n handleConnectionRequest(event) {\n if (this.extContentConnecting) {\n this.logger.debug(\"This connection request event is targeted at the extension content\");\n return;\n }\n const source = event.source;\n const data = event.data.glue42core;\n if (!data.clientType || data.clientType !== \"grandChild\") {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source was not opened by a glue API call\");\n }\n if (!data.clientId) {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source did not provide a valid id\");\n }\n if (!this.parent) {\n return this.rejectConnectionRequest(source, event.origin, \"Cannot forward the connection request, because no direct connection to the platform was found\");\n }\n this.logger.debug(`handling a connection request for a grandchild: ${data.clientId}`);\n this.children.push({ grandChildId: data.clientId, source, connected: false, origin: event.origin });\n this.logger.debug(`grandchild: ${data.clientId} is prepared, forwarding connection request to the platform`);\n this.parent.postMessage(event.data, this.defaultTargetString);\n }\n handleParentPing(event) {\n if (!this.parentReady) {\n this.logger.debug(\"my parent is not ready, I am ignoring the parent ping\");\n return;\n }\n if (!this.iAmConnected) {\n this.logger.debug(\"i am not fully connected yet, I am ignoring the parent ping\");\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.parentReady.name\n }\n };\n if (this.extContentConnected) {\n message.glue42core.extMode = { windowId: this.myClientId };\n }\n const source = event.source;\n this.logger.debug(\"responding to a parent ping with a ready message\");\n source.postMessage(message, event.origin);\n }\n setupPlatformUnloadListener() {\n this.onMessage((msg) => {\n if (msg.type === \"platformUnload\") {\n this.logger.debug(\"detected a web platform unload\");\n this.parentReady = false;\n this.notifyStatusChanged(false, \"Gateway unloaded\");\n }\n });\n }\n handleManualUnload() {\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: message }, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n }\n handleClientUnload(event) {\n const data = event.data.glue42core;\n const clientId = data?.data.clientId;\n if (!clientId) {\n this.logger.warn(\"cannot process grand child unload, because the provided id was not valid\");\n return;\n }\n const foundChild = this.children.find((child) => child.grandChildId === clientId);\n if (!foundChild) {\n this.logger.warn(\"cannot process grand child unload, because this client is unaware of this grandchild\");\n return;\n }\n this.logger.debug(`handling grandchild unload for id: ${clientId}`);\n this.children = this.children.filter((child) => child.grandChildId !== clientId);\n }\n handlePlatformPing() {\n return;\n }\n notifyStatusChanged(status, reason) {\n this.iAmConnected = status;\n this.registry.execute(\"onConnectedChanged\", status, reason);\n }\n checkMessageTypeValid(typeToValidate) {\n return typeof typeToValidate === \"string\" && !!this.messages[typeToValidate];\n }\n rejectConnectionRequest(source, origin, reason) {\n this.rejected = true;\n this.logger.error(reason);\n const rejection = {\n glue42core: {\n type: this.messages.connectionRejected.name\n }\n };\n source.postMessage(rejection, origin);\n }\n requestConnectionPermissionFromExt() {\n return this.waitForContentScript()\n .then(() => PromisePlus((resolve, reject) => {\n this.extConnectionResolve = resolve;\n this.extConnectionReject = reject;\n const message = {\n glue42core: {\n type: \"extSetupRequest\"\n }\n };\n this.logger.debug(\"permission request to the extension content script was sent\");\n window.postMessage(message, this.defaultTargetString);\n }, this.parentPingTimeout, \"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection timed out\"));\n }\n handleExtConnectionResponse(event) {\n const data = event.data?.glue42core;\n if (!data.approved) {\n return this.extConnectionReject ? this.extConnectionReject(\"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection was rejected\") : undefined;\n }\n if (this.extConnectionResolve) {\n this.extConnectionResolve();\n delete this.extConnectionResolve;\n }\n this.extContentConnecting = true;\n this.parentType = \"extension\";\n this.logger.debug(\"The extension connection was approved, proceeding.\");\n }\n handleExtSetupRequest() {\n return;\n }\n handleGatewayDisconnect() {\n return;\n }\n handleGatewayInternalConnect() {\n return;\n }\n waitForContentScript() {\n const contentReady = !!window.glue42ext?.content;\n if (contentReady) {\n return Promise.resolve();\n }\n return PromisePlus((resolve) => {\n window.addEventListener(\"Glue42EXTReady\", () => {\n resolve();\n });\n }, this.connectionRequestTimeout, \"The content script was available, but was never heard to be ready\");\n }\n async connect() {\n if (this.settings.port) {\n await this.initiateInternalConnection();\n this.logger.debug(\"internal web platform connection completed\");\n return;\n }\n this.logger.debug(\"opening a client web platform connection\");\n await this.findParent();\n await this.initiateRemoteConnection(this.parent);\n this.logger.debug(\"the client is connected\");\n }\n async findParent() {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const myInsideParents = this.getPossibleParentsInWindow(window);\n const myOutsideParents = this.getPossibleParentsOutsideWindow(window.top?.opener, window.top);\n const uniqueParents = new Set([...myInsideParents, ...myOutsideParents]);\n if (!uniqueParents.size && !this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n if (!uniqueParents.size && this.extContentAvailable) {\n await this.requestConnectionPermissionFromExt();\n return;\n }\n const defaultParentCheck = await this.isParentCheckSuccess(this.confirmParent(Array.from(uniqueParents)));\n if (defaultParentCheck.success) {\n this.logger.debug(\"The default parent was found!\");\n return;\n }\n if (!this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n await this.requestConnectionPermissionFromExt();\n }\n getPossibleParentsInWindow(currentWindow) {\n return (!currentWindow?.parent || currentWindow === currentWindow.parent) ? [] : [currentWindow.parent, ...this.getPossibleParentsInWindow(currentWindow.parent)];\n }\n getPossibleParentsOutsideWindow(opener, current) {\n return (!opener || !current || opener === current) ? [] : [opener, ...this.getPossibleParentsInWindow(opener), ...this.getPossibleParentsOutsideWindow(opener.opener, opener)];\n }\n confirmParent(targets) {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const parentCheck = PromisePlus((resolve) => {\n this.parentPingResolve = resolve;\n const message = {\n glue42core: {\n type: this.messages.platformPing.name\n }\n };\n this.parentPingInterval = setInterval(() => {\n targets.forEach((target) => {\n target.postMessage(message, this.defaultTargetString);\n });\n }, 1000);\n }, this.parentPingTimeout, connectionNotPossibleMsg);\n parentCheck.catch(() => {\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n });\n return parentCheck;\n }\n getMyWindowId() {\n if (this.parentType === \"workspace\") {\n return window.name.substring(0, window.name.indexOf(\"#wsp\"));\n }\n if (window !== window.top) {\n return;\n }\n if (window.name?.includes(\"g42\")) {\n return window.name;\n }\n this.selfAssignedWindowId = this.selfAssignedWindowId || `g42-${nanoid(10)}`;\n return this.selfAssignedWindowId;\n }\n}\n\nconst waitForInvocations = (invocations, callback) => {\n let left = invocations;\n return () => {\n left--;\n if (left === 0) {\n callback();\n }\n };\n};\n\nclass AsyncSequelizer {\n minSequenceInterval;\n queue = [];\n isExecutingQueue = false;\n constructor(minSequenceInterval = 0) {\n this.minSequenceInterval = minSequenceInterval;\n }\n enqueue(action) {\n return new Promise((resolve, reject) => {\n this.queue.push({ action, resolve, reject });\n this.executeQueue();\n });\n }\n async executeQueue() {\n if (this.isExecutingQueue) {\n return;\n }\n this.isExecutingQueue = true;\n while (this.queue.length) {\n const operation = this.queue.shift();\n if (!operation) {\n this.isExecutingQueue = false;\n return;\n }\n try {\n const actionResult = await operation.action();\n operation.resolve(actionResult);\n }\n catch (error) {\n operation.reject(error);\n }\n await this.intervalBreak();\n }\n this.isExecutingQueue = false;\n }\n intervalBreak() {\n return new Promise((res) => setTimeout(res, this.minSequenceInterval));\n }\n}\n\nfunction domainSession (domain, connection, logger, successMessages, errorMessages) {\n if (domain == null) {\n domain = \"global\";\n }\n successMessages = successMessages ?? [\"success\"];\n errorMessages = errorMessages ?? [\"error\"];\n let isJoined = domain === \"global\";\n let tryReconnecting = false;\n let _latestOptions;\n let _connectionOn = false;\n const callbacks = CallbackRegistryFactory();\n connection.disconnected(handleConnectionDisconnected);\n connection.loggedIn(handleConnectionLoggedIn);\n connection.on(\"success\", (msg) => handleSuccessMessage(msg));\n connection.on(\"error\", (msg) => handleErrorMessage(msg));\n connection.on(\"result\", (msg) => handleSuccessMessage(msg));\n if (successMessages) {\n successMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleSuccessMessage(msg));\n });\n }\n if (errorMessages) {\n errorMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleErrorMessage(msg));\n });\n }\n const requestsMap = {};\n function join(options) {\n _latestOptions = options;\n return new Promise((resolve, reject) => {\n if (isJoined) {\n resolve({});\n return;\n }\n let joinPromise;\n if (domain === \"global\") {\n joinPromise = _connectionOn ? Promise.resolve({}) : Promise.reject(\"not connected to gateway\");\n }\n else {\n logger.debug(`joining domain ${domain}`);\n const joinMsg = {\n type: \"join\",\n destination: domain,\n domain: \"global\",\n options,\n };\n joinPromise = send(joinMsg);\n }\n joinPromise\n .then(() => {\n handleJoined();\n resolve({});\n })\n .catch((err) => {\n logger.debug(\"error joining \" + domain + \" domain: \" + JSON.stringify(err));\n reject(err);\n });\n });\n }\n function leave() {\n if (domain === \"global\") {\n return Promise.resolve();\n }\n logger.debug(\"stopping session \" + domain + \"...\");\n const leaveMsg = {\n type: \"leave\",\n destination: domain,\n domain: \"global\",\n };\n tryReconnecting = false;\n return send(leaveMsg)\n .then(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n })\n .catch(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n });\n }\n function handleJoined() {\n logger.debug(\"did join \" + domain);\n isJoined = true;\n const wasReconnect = tryReconnecting;\n tryReconnecting = false;\n callbacks.execute(\"onJoined\", wasReconnect);\n }\n function handleConnectionDisconnected() {\n _connectionOn = false;\n logger.debug(\"connection is down\");\n isJoined = false;\n tryReconnecting = true;\n callbacks.execute(\"onLeft\", { disconnected: true });\n }\n function handleConnectionLoggedIn() {\n _connectionOn = true;\n if (tryReconnecting) {\n logger.debug(\"connection is now up - trying to reconnect...\");\n join(_latestOptions);\n }\n }\n function onJoined(callback) {\n if (isJoined) {\n callback(false);\n }\n return callbacks.add(\"onJoined\", callback);\n }\n function onLeft(callback) {\n if (!isJoined) {\n callback();\n }\n return callbacks.add(\"onLeft\", callback);\n }\n function handleErrorMessage(msg) {\n if (domain !== msg.domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.error(msg);\n }\n function handleSuccessMessage(msg) {\n if (msg.domain !== domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.success(msg);\n }\n function getNextRequestId() {\n return nanoid(10);\n }\n let queuedCalls = [];\n function send(msg, tag, options) {\n const ignore = [\"hello\", \"join\"];\n if (msg.type && ignore.indexOf(msg.type) === -1) {\n if (!isJoined) {\n console.warn(`trying to send a message (${msg.domain} ${msg.type}) but not connected, will queue`);\n const pw = new PromiseWrapper();\n queuedCalls.push({ msg, tag, options, pw });\n if (queuedCalls.length === 1) {\n const unsubscribe = onJoined(() => {\n logger.info(`joined - will now send queued messages (${queuedCalls.length} -> [${queuedCalls.map((m) => m.msg.type)}])`);\n queuedCalls.forEach((qm) => {\n send(qm.msg, qm.tag, qm.options)\n .then((t) => qm.pw.resolve(t))\n .catch((e) => qm.pw.reject(e));\n });\n queuedCalls = [];\n unsubscribe();\n });\n }\n return pw.promise;\n }\n }\n options = options ?? {};\n msg.request_id = msg.request_id ?? getNextRequestId();\n msg.domain = msg.domain ?? domain;\n if (!options.skipPeerId) {\n msg.peer_id = connection.peerId;\n }\n const requestId = msg.request_id;\n return new Promise((resolve, reject) => {\n requestsMap[requestId] = {\n success: (successMsg) => {\n delete requestsMap[requestId];\n successMsg._tag = tag;\n resolve(successMsg);\n },\n error: (errorMsg) => {\n logger.warn(`Gateway error - ${JSON.stringify(errorMsg)}`);\n delete requestsMap[requestId];\n errorMsg._tag = tag;\n reject(errorMsg);\n },\n };\n connection\n .send(msg, options)\n .catch((err) => {\n requestsMap[requestId].error({ err });\n });\n });\n }\n function sendFireAndForget(msg) {\n msg.request_id = msg.request_id ? msg.request_id : getNextRequestId();\n msg.domain = msg.domain ?? domain;\n msg.peer_id = connection.peerId;\n return connection.send(msg);\n }\n return {\n join,\n leave,\n onJoined,\n onLeft,\n send,\n sendFireAndForget,\n on: (type, callback) => {\n connection.on(type, (msg) => {\n if (msg.domain !== domain) {\n return;\n }\n try {\n callback(msg);\n }\n catch (e) {\n logger.error(`Callback failed: ${e} \\n ${e.stack} \\n msg was: ${JSON.stringify(msg)}`, e);\n }\n });\n },\n loggedIn: (callback) => connection.loggedIn(callback),\n connected: (callback) => connection.connected(callback),\n disconnected: (callback) => connection.disconnected(callback),\n get peerId() {\n return connection.peerId;\n },\n get domain() {\n return domain;\n },\n };\n}\n\nclass Connection {\n settings;\n logger;\n protocolVersion = 3;\n peerId;\n token;\n info;\n resolvedIdentity;\n availableDomains;\n gatewayToken;\n replayer;\n messageHandlers = {};\n ids = 1;\n registry = CallbackRegistryFactory();\n _connected = false;\n isTrace = false;\n transport;\n _defaultTransport;\n _defaultAuth;\n _targetTransport;\n _targetAuth;\n _swapTransport = false;\n _switchInProgress = false;\n _transportSubscriptions = [];\n datePrefix = \"#T42_DATE#\";\n datePrefixLen = this.datePrefix.length;\n dateMinLen = this.datePrefixLen + 1;\n datePrefixFirstChar = this.datePrefix[0];\n _sequelizer = new AsyncSequelizer();\n _isLoggedIn = false;\n shouldTryLogin = true;\n pingTimer;\n sessions = [];\n globalDomain;\n initialLogin = true;\n initialLoginAttempts = 3;\n loginConfig;\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n settings = settings || {};\n settings.reconnectAttempts = settings.reconnectAttempts ?? 10;\n settings.reconnectInterval = settings.reconnectInterval ?? 1000;\n if (settings.inproc) {\n this.transport = new InProcTransport(settings.inproc, logger.subLogger(\"inMemory\"));\n }\n else if (settings.sharedWorker) {\n this.transport = new SharedWorkerTransport(settings.sharedWorker, logger.subLogger(\"shared-worker\"));\n }\n else if (settings.webPlatform) {\n this.transport = new WebPlatformTransport(settings.webPlatform, logger.subLogger(\"web-platform\"), settings.identity);\n }\n else if (settings.ws !== undefined) {\n this.transport = new WS(settings, logger.subLogger(\"ws\"));\n }\n else {\n throw new Error(\"No connection information specified\");\n }\n this.isTrace = logger.canPublish(\"trace\");\n logger.debug(`starting with ${this.transport.name()} transport`);\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n this._defaultTransport = this.transport;\n this.ping();\n }\n async switchTransport(settings) {\n return this._sequelizer.enqueue(async () => {\n if (!settings || typeof settings !== \"object\") {\n throw new Error(\"Cannot switch transports, because the settings are missing or invalid.\");\n }\n if (typeof settings.type === \"undefined\") {\n throw new Error(\"Cannot switch the transport, because the type is not defined\");\n }\n this.logger.trace(`Starting transport switch with settings: ${JSON.stringify(settings)}`);\n const switchTargetTransport = settings.type === \"secondary\" ? this.getNewSecondaryTransport(settings) : this._defaultTransport;\n this._targetTransport = switchTargetTransport;\n this._targetAuth = settings.type === \"secondary\" ? this.getNewSecondaryAuth(settings) : this._defaultAuth;\n const verifyPromise = this.verifyConnection();\n this._swapTransport = true;\n this._switchInProgress = true;\n this.logger.trace(\"The new transport has been set, closing the current transport\");\n await this.transport.close();\n try {\n await verifyPromise;\n const isSwitchSuccess = this.transport === switchTargetTransport;\n this.logger.info(`The reconnection after the switch was completed. Was the switch a success: ${isSwitchSuccess}`);\n this._switchInProgress = false;\n return { success: isSwitchSuccess };\n }\n catch (error) {\n this.logger.info(\"The reconnection after the switch timed out, reverting back to the default transport.\");\n this.switchTransport({ type: \"default\" });\n this._switchInProgress = false;\n return { success: false };\n }\n });\n }\n onLibReAnnounced(callback) {\n return this.registry.add(\"libReAnnounced\", callback);\n }\n setLibReAnnounced(lib) {\n this.registry.execute(\"libReAnnounced\", lib);\n }\n send(message, options) {\n if (this.transport.sendObject &&\n this.transport.isObjectBasedTransport) {\n const msg = this.createObjectMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${JSON.stringify(msg)}`);\n }\n return this.transport.sendObject(msg, options);\n }\n else {\n const strMessage = this.createStringMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${strMessage}`);\n }\n return this.transport.send(strMessage, options);\n }\n }\n on(type, messageHandler) {\n type = type.toLowerCase();\n if (this.messageHandlers[type] === undefined) {\n this.messageHandlers[type] = {};\n }\n const id = this.ids++;\n this.messageHandlers[type][id] = messageHandler;\n return {\n type,\n id,\n };\n }\n off(info) {\n delete this.messageHandlers[info.type.toLowerCase()][info.id];\n }\n get isConnected() {\n return this._isLoggedIn;\n }\n connected(callback) {\n return this.loggedIn(() => {\n const currentServer = this.transport.name();\n callback(currentServer);\n });\n }\n disconnected(callback) {\n return this.registry.add(\"disconnected\", callback);\n }\n async login(authRequest, reconnect) {\n if (!this._defaultAuth) {\n this._defaultAuth = authRequest;\n }\n if (this._swapTransport) {\n this.logger.trace(\"Detected a transport swap, swapping transports\");\n const newAuth = this.transportSwap();\n authRequest = newAuth ?? authRequest;\n }\n this.logger.trace(`Starting login for transport: ${this.transport.name()} and auth ${JSON.stringify(authRequest)}`);\n try {\n await this.transport.open();\n this.logger.trace(`Transport: ${this.transport.name()} opened, logging in`);\n timer(\"connection\").mark(\"transport-opened\");\n const identity = await this.loginCore(authRequest, reconnect);\n this.logger.trace(`Logged in with identity: ${JSON.stringify(identity)}`);\n timer(\"connection\").mark(\"protocol-logged-in\");\n return identity;\n }\n catch (error) {\n if (this._switchInProgress) {\n this.logger.trace(\"An error while logging in after a transport swap, preparing a default swap.\");\n this.prepareDefaultSwap();\n }\n throw new Error(error);\n }\n }\n async logout() {\n await this.logoutCore();\n await this.transport.close();\n }\n loggedIn(callback) {\n if (this._isLoggedIn) {\n callback();\n }\n return this.registry.add(\"onLoggedIn\", callback);\n }\n domain(domain, successMessages, errorMessages) {\n let session = this.sessions.find((s) => s.domain === domain);\n if (!session) {\n session = domainSession(domain, this, this.logger.subLogger(`domain=${domain}`), successMessages, errorMessages);\n this.sessions.push(session);\n }\n return session;\n }\n authToken() {\n const createTokenReq = {\n domain: \"global\",\n type: \"create-token\"\n };\n if (!this.globalDomain) {\n return Promise.reject(new Error(\"no global domain session\"));\n }\n return this.globalDomain.send(createTokenReq)\n .then((res) => {\n return res.token;\n });\n }\n reconnect() {\n return this.transport.reconnect();\n }\n setLoggedIn(value) {\n this._isLoggedIn = value;\n if (this._isLoggedIn) {\n this.registry.execute(\"onLoggedIn\");\n }\n }\n distributeMessage(message, type) {\n const handlers = this.messageHandlers[type.toLowerCase()];\n if (handlers !== undefined) {\n Object.keys(handlers).forEach((handlerId) => {\n const handler = handlers[handlerId];\n if (handler !== undefined) {\n try {\n handler(message);\n }\n catch (error) {\n try {\n this.logger.error(`Message handler failed with ${error.stack}`, error);\n }\n catch (loggerError) {\n console.log(\"Message handler failed\", error);\n }\n }\n }\n });\n }\n }\n handleConnectionChanged(connected) {\n if (this._connected === connected) {\n return;\n }\n this._connected = connected;\n if (connected) {\n if (this.settings?.replaySpecs?.length) {\n this.replayer = new MessageReplayerImpl(this.settings.replaySpecs);\n this.replayer.init(this);\n }\n this.registry.execute(\"connected\");\n }\n else {\n this.handleDisconnected();\n this.registry.execute(\"disconnected\");\n }\n }\n handleDisconnected() {\n this.setLoggedIn(false);\n const tryToLogin = this.shouldTryLogin;\n if (tryToLogin && this.initialLogin) {\n if (this.initialLoginAttempts <= 0) {\n return;\n }\n this.initialLoginAttempts--;\n }\n this.logger.debug(\"disconnected - will try new login?\" + this.shouldTryLogin);\n if (this.shouldTryLogin) {\n if (!this.loginConfig) {\n throw new Error(\"no login info\");\n }\n this.login(this.loginConfig, true)\n .catch(() => {\n setTimeout(this.handleDisconnected.bind(this), this.settings.reconnectInterval || 1000);\n });\n }\n }\n handleTransportMessage(msg) {\n let msgObj;\n if (typeof msg === \"string\") {\n msgObj = this.processStringMessage(msg);\n }\n else {\n msgObj = this.processObjectMessage(msg);\n }\n if (this.isTrace) {\n this.logger.trace(`<< ${JSON.stringify(msgObj)}`);\n }\n this.distributeMessage(msgObj.msg, msgObj.msgType);\n }\n verifyConnection() {\n return PromisePlus((resolve) => {\n let unsub;\n const ready = waitForInvocations(2, () => {\n if (unsub) {\n unsub();\n }\n resolve();\n });\n unsub = this.onLibReAnnounced((lib) => {\n if (lib.name === \"interop\") {\n return ready();\n }\n if (lib.name === \"contexts\") {\n return ready();\n }\n });\n }, 10000, \"Transport switch timed out waiting for all libraries to be re-announced\");\n }\n getNewSecondaryTransport(settings) {\n if (!settings.transportConfig?.url) {\n throw new Error(\"Missing secondary transport URL.\");\n }\n return new WS(Object.assign({}, this.settings, { ws: settings.transportConfig.url, reconnectAttempts: 1 }), this.logger.subLogger(\"ws-secondary\"));\n }\n getNewSecondaryAuth(settings) {\n if (!settings.transportConfig?.auth) {\n throw new Error(\"Missing secondary transport auth information.\");\n }\n return settings.transportConfig.auth;\n }\n transportSwap() {\n this._swapTransport = false;\n if (!this._targetTransport || !this._targetAuth) {\n this.logger.warn(`Error while switching transports - either the target transport or auth is not defined: transport defined -> ${!!this._defaultTransport}, auth defined -> ${!!this._targetAuth}. Staying on the current one.`);\n return;\n }\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport = this._targetTransport;\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n return this._targetAuth;\n }\n prepareDefaultSwap() {\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport.close().catch((error) => this.logger.warn(`Error closing the ${this.transport.name()} transport after a failed connection attempt: ${JSON.stringify(error)}`));\n this._targetTransport = this._defaultTransport;\n this._targetAuth = this._defaultAuth;\n this._swapTransport = true;\n }\n processStringMessage(message) {\n const msg = JSON.parse(message, (key, value) => {\n if (typeof value !== \"string\") {\n return value;\n }\n if (value.length < this.dateMinLen) {\n return value;\n }\n if (!value.startsWith(this.datePrefixFirstChar)) {\n return value;\n }\n if (value.substring(0, this.datePrefixLen) !== this.datePrefix) {\n return value;\n }\n try {\n const milliseconds = parseInt(value.substring(this.datePrefixLen, value.length), 10);\n if (isNaN(milliseconds)) {\n return value;\n }\n return new Date(milliseconds);\n }\n catch (ex) {\n return value;\n }\n });\n return {\n msg,\n msgType: msg.type,\n };\n }\n createStringMessage(message) {\n const oldToJson = Date.prototype.toJSON;\n try {\n const datePrefix = this.datePrefix;\n Date.prototype.toJSON = function () {\n return datePrefix + this.getTime();\n };\n const result = JSON.stringify(message);\n return result;\n }\n finally {\n Date.prototype.toJSON = oldToJson;\n }\n }\n processObjectMessage(message) {\n if (!message.type) {\n throw new Error(\"Object should have type property\");\n }\n return {\n msg: message,\n msgType: message.type,\n };\n }\n createObjectMessage(message) {\n return message;\n }\n async loginCore(config, reconnect) {\n this.logger.info(\"logging in...\");\n this.loginConfig = config;\n if (!this.loginConfig) {\n this.loginConfig = { username: \"\", password: \"\" };\n }\n this.shouldTryLogin = true;\n const authentication = await this.setupAuthConfig(config, reconnect);\n const helloMsg = {\n type: \"hello\",\n identity: this.settings.identity,\n authentication\n };\n if (config.sessionId) {\n helloMsg.request_id = config.sessionId;\n }\n this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\n \"welcome\",\n \"token\",\n \"authentication-request\"\n ]);\n const sendOptions = { skipPeerId: true };\n if (this.initialLogin) {\n sendOptions.retryInterval = this.settings.reconnectInterval;\n sendOptions.maxRetries = this.settings.reconnectAttempts;\n }\n try {\n const welcomeMsg = await this.tryAuthenticate(this.globalDomain, helloMsg, sendOptions, config);\n this.initialLogin = false;\n this.logger.info(\"login successful with peerId \" + welcomeMsg.peer_id);\n this.peerId = welcomeMsg.peer_id;\n this.resolvedIdentity = welcomeMsg.resolved_identity;\n this.availableDomains = welcomeMsg.available_domains;\n if (welcomeMsg.options) {\n this.token = welcomeMsg.options.access_token;\n this.info = welcomeMsg.options.info;\n }\n this.setLoggedIn(true);\n return welcomeMsg.resolved_identity;\n }\n catch (err) {\n this.logger.error(\"error sending hello message - \" + (err.message || err.msg || err.reason || err), err);\n throw err;\n }\n finally {\n if (config?.flowCallback && config.sessionId) {\n config.flowCallback(config.sessionId, null);\n }\n }\n }\n async tryAuthenticate(globalDomain, helloMsg, sendOptions, config) {\n let welcomeMsg;\n while (true) {\n const msg = await globalDomain.send(helloMsg, undefined, sendOptions);\n if (msg.type === \"authentication-request\") {\n const token = Buffer.from(msg.authentication.token, \"base64\");\n if (config.flowCallback && config.sessionId) {\n helloMsg.authentication.token =\n (await config.flowCallback(config.sessionId, token))\n .data\n .toString(\"base64\");\n }\n helloMsg.request_id = config.sessionId;\n }\n else if (msg.type === \"welcome\") {\n welcomeMsg = msg;\n break;\n }\n else if (msg.type === \"error\") {\n throw new Error(\"Authentication failed: \" + msg.reason);\n }\n else {\n throw new Error(\"Unexpected message type during authentication: \" + msg.type);\n }\n }\n return welcomeMsg;\n }\n async setupAuthConfig(config, reconnect) {\n const authentication = {};\n this.gatewayToken = config.gatewayToken;\n if (config.gatewayToken) {\n if (reconnect) {\n try {\n config.gatewayToken = await this.getNewGWToken();\n }\n catch (e) {\n this.logger.warn(`failed to get GW token when reconnecting ${e?.message || e}`);\n }\n }\n authentication.method = \"gateway-token\";\n authentication.token = config.gatewayToken;\n this.gatewayToken = config.gatewayToken;\n }\n else if (config.flowName === \"sspi\") {\n authentication.provider = \"win\";\n authentication.method = \"access-token\";\n if (config.flowCallback && config.sessionId) {\n authentication.token =\n (await config.flowCallback(config.sessionId, null))\n .data\n .toString(\"base64\");\n }\n else {\n throw new Error(\"Invalid SSPI config\");\n }\n }\n else if (config.token) {\n authentication.method = \"access-token\";\n authentication.token = config.token;\n }\n else if (config.username) {\n authentication.method = \"secret\";\n authentication.login = config.username;\n authentication.secret = config.password;\n }\n else if (config.provider) {\n authentication.provider = config.provider;\n authentication.providerContext = config.providerContext;\n }\n else {\n throw new Error(\"invalid auth message\" + JSON.stringify(config));\n }\n return authentication;\n }\n async logoutCore() {\n this.logger.debug(\"logging out...\");\n this.shouldTryLogin = false;\n if (this.pingTimer) {\n clearTimeout(this.pingTimer);\n }\n const promises = this.sessions.map((session) => {\n session.leave();\n });\n await Promise.all(promises);\n }\n getNewGWToken() {\n if (typeof window !== \"undefined\") {\n const glue42gd = window.glue42gd;\n if (glue42gd) {\n return glue42gd.getGWToken();\n }\n }\n return Promise.reject(new Error(\"not running in GD\"));\n }\n ping() {\n if (!this.shouldTryLogin) {\n return;\n }\n if (this._isLoggedIn) {\n this.send({ type: \"ping\" });\n }\n this.pingTimer = setTimeout(() => {\n this.ping();\n }, 30 * 1000);\n }\n}\n\nconst order = [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"off\"];\nclass Logger {\n name;\n parent;\n static Interop;\n static InteropMethodName = \"T42.AppLogger.Log\";\n static Instance;\n path;\n subLoggers = [];\n _consoleLevel;\n _publishLevel;\n loggerFullName;\n includeTimeAndLevel;\n logFn = console;\n customLogFn = false;\n constructor(name, parent, logFn) {\n this.name = name;\n this.parent = parent;\n this.name = name;\n if (parent) {\n this.path = `${parent.path}.${name}`;\n }\n else {\n this.path = name;\n }\n this.loggerFullName = `[${this.path}]`;\n this.includeTimeAndLevel = !logFn;\n if (logFn) {\n this.logFn = logFn;\n this.customLogFn = true;\n }\n }\n subLogger(name) {\n const existingSub = this.subLoggers.filter((subLogger) => {\n return subLogger.name === name;\n })[0];\n if (existingSub !== undefined) {\n return existingSub;\n }\n Object.keys(this).forEach((key) => {\n if (key === name) {\n throw new Error(\"This sub logger name is not allowed.\");\n }\n });\n const sub = new Logger(name, this, this.customLogFn ? this.logFn : undefined);\n this.subLoggers.push(sub);\n return sub;\n }\n publishLevel(level) {\n if (level) {\n this._publishLevel = level;\n }\n return this._publishLevel || this.parent?.publishLevel();\n }\n consoleLevel(level) {\n if (level) {\n this._consoleLevel = level;\n }\n return this._consoleLevel || this.parent?.consoleLevel();\n }\n log(message, level, error) {\n this.publishMessage(level || \"info\", message, error);\n }\n trace(message) {\n this.log(message, \"trace\");\n }\n debug(message) {\n this.log(message, \"debug\");\n }\n info(message) {\n this.log(message, \"info\");\n }\n warn(message) {\n this.log(message, \"warn\");\n }\n error(message, err) {\n this.log(message, \"error\", err);\n }\n canPublish(level, compareWith) {\n const levelIdx = order.indexOf(level);\n const restrictionIdx = order.indexOf(compareWith || this.consoleLevel() || \"trace\");\n return levelIdx >= restrictionIdx;\n }\n publishMessage(level, message, error) {\n const loggerName = this.loggerFullName;\n if (level === \"error\" && !error) {\n const e = new Error();\n if (e.stack) {\n message =\n message +\n \"\\n\" +\n e.stack\n .split(\"\\n\")\n .slice(4)\n .join(\"\\n\");\n }\n }\n if (this.canPublish(level, this.publishLevel())) {\n const interop = Logger.Interop;\n if (interop) {\n try {\n if (interop.methods({ name: Logger.InteropMethodName }).length > 0) {\n const args = {\n msg: message,\n logger: loggerName,\n level\n };\n if (error && error instanceof Error) {\n args.error = {\n message: error.message,\n stack: error.stack ?? \"\"\n };\n }\n interop.invoke(Logger.InteropMethodName, args);\n }\n }\n catch {\n }\n }\n }\n if (this.canPublish(level)) {\n let prefix = \"\";\n if (this.includeTimeAndLevel) {\n const date = new Date();\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\n prefix = `[${time}] [${level}] `;\n }\n const toPrint = `${prefix}${loggerName}: ${message}`;\n switch (level) {\n case \"trace\":\n this.logFn.debug(toPrint);\n break;\n case \"debug\":\n if (this.logFn.debug) {\n this.logFn.debug(toPrint);\n }\n else {\n this.logFn.log(toPrint);\n }\n break;\n case \"info\":\n this.logFn.info(toPrint);\n break;\n case \"warn\":\n this.logFn.warn(toPrint);\n break;\n case \"error\":\n this.logFn.error(toPrint, error);\n break;\n }\n }\n }\n}\n\nconst GW_MESSAGE_CREATE_CONTEXT = \"create-context\";\nconst GW_MESSAGE_ACTIVITY_CREATED = \"created\";\nconst GW_MESSAGE_ACTIVITY_DESTROYED = \"destroyed\";\nconst GW_MESSAGE_CONTEXT_CREATED = \"context-created\";\nconst GW_MESSAGE_CONTEXT_ADDED = \"context-added\";\nconst GW_MESSAGE_SUBSCRIBE_CONTEXT = \"subscribe-context\";\nconst GW_MESSAGE_SUBSCRIBED_CONTEXT = \"subscribed-context\";\nconst GW_MESSAGE_UNSUBSCRIBE_CONTEXT = \"unsubscribe-context\";\nconst GW_MESSAGE_DESTROY_CONTEXT = \"destroy-context\";\nconst GW_MESSAGE_CONTEXT_DESTROYED = \"context-destroyed\";\nconst GW_MESSAGE_UPDATE_CONTEXT = \"update-context\";\nconst GW_MESSAGE_CONTEXT_UPDATED = \"context-updated\";\nconst GW_MESSAGE_JOINED_ACTIVITY = \"joined\";\n\nconst ContextMessageReplaySpec = {\n get name() {\n return \"context\";\n },\n get types() {\n return [\n GW_MESSAGE_CREATE_CONTEXT,\n GW_MESSAGE_ACTIVITY_CREATED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_SUBSCRIBE_CONTEXT,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n GW_MESSAGE_DESTROY_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_UPDATE_CONTEXT,\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_JOINED_ACTIVITY\n ];\n }\n};\n\nvar version = \"6.5.2\";\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 = (e) => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (!_allowTrace) {\n return;\n }\n const traceMessage = e ?\n `${name} failed - ${e.message}` :\n `${name} is ready - ${t.endTime - t.startTime}`;\n _logger.trace(traceMessage);\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready()\n .then(() => {\n done();\n })\n .catch((e) => {\n const error = typeof e === \"string\" ? new Error(e) : e;\n done(error);\n });\n }\n else {\n done();\n }\n if (!Array.isArray(name)) {\n name = [name];\n }\n name.forEach((n) => {\n libs[n] = inner;\n IOConnectCoreFactory[n] = inner;\n });\n }\n function setupConnection() {\n const initTimer = timer(\"connection\");\n _connection = new Connection(internalConfig.connection, _logger.subLogger(\"connection\"));\n let authPromise = Promise.resolve(internalConfig.auth);\n if (internalConfig.connection && !internalConfig.auth) {\n if (iodesktop) {\n authPromise = iodesktop.getGWToken()\n .then((token) => {\n return {\n gatewayToken: token\n };\n });\n }\n else if (typeof window !== \"undefined\" && window?.glue42electron) {\n if (typeof window.glue42electron.gwToken === \"string\") {\n authPromise = Promise.resolve({\n gatewayToken: window.glue42electron.gwToken\n });\n }\n }\n else {\n authPromise = Promise.reject(\"You need to provide auth information\");\n }\n }\n return authPromise\n .then((authConfig) => {\n initTimer.mark(\"auth-promise-resolved\");\n let authRequest;\n if (Object.prototype.toString.call(authConfig) === \"[object Object]\") {\n authRequest = authConfig;\n }\n else {\n throw new Error(\"Invalid auth object - \" + JSON.stringify(authConfig));\n }\n return _connection.login(authRequest);\n })\n .then(() => {\n registerLib(\"connection\", _connection, initTimer);\n return internalConfig;\n })\n .catch((e) => {\n if (_connection) {\n _connection.logout();\n }\n throw e;\n });\n }\n function setupLogger() {\n const initTimer = timer(\"logger\");\n _logger = new Logger(`${internalConfig.connection.identity?.application}`, undefined, internalConfig.customLogger);\n _logger.consoleLevel(internalConfig.logger.console);\n _logger.publishLevel(internalConfig.logger.publish);\n if (_logger.canPublish(\"debug\")) {\n _logger.debug(\"initializing glue...\");\n }\n registerLib(\"logger\", _logger, initTimer);\n return Promise.resolve(undefined);\n }\n function setupMetrics() {\n const initTimer = timer(\"metrics\");\n const config = internalConfig.metrics;\n const metricsPublishingEnabledFunc = iodesktop?.getMetricsPublishingEnabled;\n const identity = internalConfig.connection.identity;\n const canUpdateMetric = metricsPublishingEnabledFunc ? metricsPublishingEnabledFunc : () => true;\n const disableAutoAppSystem = (typeof config !== \"boolean\" && config.disableAutoAppSystem) ?? false;\n _metrics = metrics({\n connection: config ? _connection : undefined,\n logger: _logger.subLogger(\"metrics\"),\n canUpdateMetric,\n system: \"Glue42\",\n service: identity?.service ?? iodesktop?.applicationName ?? internalConfig.application,\n instance: identity?.instance ?? identity?.windowId ?? nanoid(10),\n disableAutoAppSystem,\n pagePerformanceMetrics: typeof config !== \"boolean\" ? config?.pagePerformanceMetrics : undefined\n });\n registerLib(\"metrics\", _metrics, initTimer);\n return Promise.resolve();\n }\n function setupInterop() {\n const initTimer = timer(\"interop\");\n const agmConfig = {\n connection: _connection,\n logger: _logger.subLogger(\"interop\"),\n };\n _interop = new Interop(agmConfig);\n Logger.Interop = _interop;\n registerLib([\"interop\", \"agm\"], _interop, initTimer);\n return Promise.resolve();\n }\n function setupContexts() {\n const hasActivities = (internalConfig.activities && _connection.protocolVersion === 3);\n const needsContexts = internalConfig.contexts || hasActivities;\n if (needsContexts) {\n const initTimer = timer(\"contexts\");\n _contexts = new ContextsModule({\n connection: _connection,\n logger: _logger.subLogger(\"contexts\"),\n trackAllContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.trackAllContexts : false,\n reAnnounceKnownContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.reAnnounceKnownContexts : false\n });\n registerLib(\"contexts\", _contexts, initTimer);\n return _contexts;\n }\n else {\n const replayer = _connection.replayer;\n if (replayer) {\n replayer.drain(ContextMessageReplaySpec.name);\n }\n }\n }\n async function setupBus() {\n if (!internalConfig.bus) {\n return Promise.resolve();\n }\n const initTimer = timer(\"bus\");\n _bus = new MessageBus(_connection, _logger.subLogger(\"bus\"));\n registerLib(\"bus\", _bus, initTimer);\n return Promise.resolve();\n }\n function setupExternalLibs(externalLibs) {\n try {\n externalLibs.forEach((lib) => {\n setupExternalLib(lib.name, lib.create);\n });\n return Promise.resolve();\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n function setupExternalLib(name, createCallback) {\n const initTimer = timer(name);\n const lib = createCallback(libs);\n if (lib) {\n registerLib(name, lib, initTimer);\n }\n }\n function waitForLibs() {\n const libsReadyPromises = Object.keys(libs).map((key) => {\n const lib = libs[key];\n return lib.ready ?\n lib.ready() : Promise.resolve();\n });\n return Promise.all(libsReadyPromises);\n }\n function constructGlueObject() {\n const feedbackFunc = (feedbackInfo) => {\n if (!_interop) {\n return;\n }\n _interop.invoke(\"T42.ACS.Feedback\", feedbackInfo, \"best\");\n };\n const info = {\n coreVersion: version,\n version: internalConfig.version\n };\n glueInitTimer.stop();\n const glue = {\n feedback: feedbackFunc,\n info,\n logger: _logger,\n interop: _interop,\n agm: _interop,\n connection: _connection,\n metrics: _metrics,\n contexts: _contexts,\n bus: _bus,\n version: internalConfig.version,\n userConfig,\n done: () => {\n _logger?.info(\"done called by user...\");\n return _connection.logout();\n }\n };\n glue.performance = {\n get glueVer() {\n return internalConfig.version;\n },\n get glueConfig() {\n return JSON.stringify(userConfig);\n },\n get browser() {\n return window.performance.timing.toJSON();\n },\n get memory() {\n return window.performance.memory;\n },\n get initTimes() {\n const all = getAllTimers();\n return Object.keys(all).map((key) => {\n const t = all[key];\n return {\n name: key,\n duration: t.endTime - t.startTime,\n marks: t.marks,\n startTime: t.startTime,\n endTime: t.endTime\n };\n });\n }\n };\n Object.keys(libs).forEach((key) => {\n const lib = libs[key];\n glue[key] = lib;\n });\n glue.config = {};\n Object.keys(internalConfig).forEach((k) => {\n glue.config[k] = internalConfig[k];\n });\n if (ext && ext.extOptions) {\n Object.keys(ext.extOptions).forEach((k) => {\n glue.config[k] = ext?.extOptions[k];\n });\n }\n if (ext?.enrichGlue) {\n ext.enrichGlue(glue);\n }\n if (iodesktop && iodesktop.updatePerfData) {\n iodesktop.updatePerfData(glue.performance);\n }\n if (glue.agm) {\n const deprecatedDecorator = (fn, wrong, proper) => {\n return function () {\n glue.logger.warn(`glue.js - 'glue.agm.${wrong}' method is deprecated, use 'glue.interop.${proper}' instead.`);\n return fn.apply(glue.agm, arguments);\n };\n };\n const agmAny = glue.agm;\n agmAny.method_added = deprecatedDecorator(glue.agm.methodAdded, \"method_added\", \"methodAdded\");\n agmAny.method_removed = deprecatedDecorator(glue.agm.methodRemoved, \"method_removed\", \"methodRemoved\");\n agmAny.server_added = deprecatedDecorator(glue.agm.serverAdded, \"server_added\", \"serverAdded\");\n agmAny.server_method_aded = deprecatedDecorator(glue.agm.serverMethodAdded, \"server_method_aded\", \"serverMethodAdded\");\n agmAny.server_method_removed = deprecatedDecorator(glue.agm.serverMethodRemoved, \"server_method_removed\", \"serverMethodRemoved\");\n }\n return glue;\n }\n async function registerInstanceIfNeeded() {\n const RegisterInstanceMethodName = \"T42.ACS.RegisterInstance\";\n if (Utils.isNode() && typeof process.env._GD_STARTING_CONTEXT_ === \"undefined\" && typeof userConfig?.application !== \"undefined\") {\n const isMethodAvailable = _interop.methods({ name: RegisterInstanceMethodName }).length > 0;\n if (isMethodAvailable) {\n try {\n await _interop.invoke(RegisterInstanceMethodName, { appName: userConfig?.application, pid: process.pid });\n }\n catch (error) {\n const typedError = error;\n _logger.error(`Cannot register as an instance: ${JSON.stringify(typedError.message)}`);\n }\n }\n }\n }\n return preloadPromise\n .then(setupLogger)\n .then(setupConnection)\n .then(() => Promise.all([setupMetrics(), setupInterop(), setupContexts(), setupBus()]))\n .then(() => _interop.readyPromise)\n .then(() => registerInstanceIfNeeded())\n .then(() => {\n return setupExternalLibs(internalConfig.libs || []);\n })\n .then(waitForLibs)\n .then(constructGlueObject)\n .catch((err) => {\n return Promise.reject({\n err,\n libs\n });\n });\n};\nif (typeof window !== \"undefined\") {\n window.IOConnectCore = IOConnectCoreFactory;\n}\nIOConnectCoreFactory.version = version;\nIOConnectCoreFactory.default = IOConnectCoreFactory;\n\nexport { IOConnectCoreFactory as default };\n//# sourceMappingURL=core.es.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\n;\ncreateRegistry.default = createRegistry;\nmodule.exports = createRegistry;\n//# sourceMappingURL=index.js.map",null,null,null,"// This alphabet uses `A-Za-z0-9_-` symbols.\n// The order of characters is optimized for better gzip and brotli compression.\n// References to the same file (works both for gzip and brotli):\n// `'use`, `andom`, and `rict'`\n// References to the brotli default dictionary:\n// `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf`\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\n\nlet nanoid = (size = 21) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n\nexport { nanoid, customAlphabet }\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=application.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=system.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwimlaneItemType = exports.LayoutType = void 0;\nvar LayoutType;\n(function (LayoutType) {\n LayoutType[\"Global\"] = \"Global\";\n LayoutType[\"Activity\"] = \"Activity\";\n LayoutType[\"ApplicationDefault\"] = \"ApplicationDefault\";\n LayoutType[\"Swimlane\"] = \"Swimlane\";\n LayoutType[\"Workspaces\"] = \"Workspace\";\n})(LayoutType || (exports.LayoutType = LayoutType = {}));\nvar SwimlaneItemType;\n(function (SwimlaneItemType) {\n SwimlaneItemType[\"Tab\"] = \"tab\";\n SwimlaneItemType[\"Window\"] = \"window\";\n SwimlaneItemType[\"Canvas\"] = \"canvas\";\n})(SwimlaneItemType || (exports.SwimlaneItemType = SwimlaneItemType = {}));\n//# sourceMappingURL=layout.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swTheme.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swConfiguration.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// export { SchemaValidator } from \"./validator\";\n// export { FileProvider } from \"./fileProvider\";\n// export { SchemaProvider } from \"./provider\";\n__exportStar(require(\"./application\"), exports);\n__exportStar(require(\"./system\"), exports);\n__exportStar(require(\"./layout\"), exports);\n__exportStar(require(\"./swTheme\"), exports);\n__exportStar(require(\"./swConfiguration\"), exports);\n//# sourceMappingURL=main.js.map",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"const connectBrowserAppProps = [\"name\", \"title\", \"version\", \"customProperties\", \"icon\", \"caption\", \"type\"];\nconst fdc3v2AppProps = [\"appId\", \"name\", \"type\", \"details\", \"version\", \"title\", \"tooltip\", \"lang\", \"description\", \"categories\", \"icons\", \"screenshots\", \"contactEmail\", \"moreInfo\", \"publisher\", \"customConfig\", \"hostManifests\", \"interop\", \"localizedVersions\"];\n\n/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nDecoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nDecoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nDecoder.union;\r\n/** See `Decoder.intersection` */\r\nDecoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nDecoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nDecoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nDecoder.succeed;\r\n/** See `Decoder.fail` */\r\nDecoder.fail;\r\n/** See `Decoder.lazy` */\r\nDecoder.lazy;\n\nconst nonEmptyStringDecoder = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nconst nonNegativeNumberDecoder = number().where((num) => num >= 0, \"Expected a non-negative number\");\n\nconst intentDefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n displayName: optional(string()),\n contexts: optional(array(string())),\n customConfig: optional(object())\n});\nconst v2TypeDecoder = oneOf(constant(\"web\"), constant(\"native\"), constant(\"citrix\"), constant(\"onlineNative\"), constant(\"other\"));\nconst v2DetailsDecoder = object({\n url: nonEmptyStringDecoder\n});\nconst v2IconDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder)\n});\nconst v2ScreenshotDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder),\n label: optional(nonEmptyStringDecoder)\n});\nconst v2ListensForIntentDecoder = object({\n contexts: array(nonEmptyStringDecoder),\n displayName: optional(nonEmptyStringDecoder),\n resultType: optional(nonEmptyStringDecoder),\n customConfig: optional(anyJson())\n});\nconst v2IntentsDecoder = object({\n listensFor: optional(dict(v2ListensForIntentDecoder)),\n raises: optional(dict(array(nonEmptyStringDecoder)))\n});\nconst v2UserChannelDecoder = object({\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2AppChannelDecoder = object({\n name: nonEmptyStringDecoder,\n description: optional(nonEmptyStringDecoder),\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2InteropDecoder = object({\n intents: optional(v2IntentsDecoder),\n userChannels: optional(v2UserChannelDecoder),\n appChannels: optional(array(v2AppChannelDecoder))\n});\nconst glue42ApplicationDetailsDecoder = object({\n url: optional(nonEmptyStringDecoder),\n top: optional(number()),\n left: optional(number()),\n width: optional(nonNegativeNumberDecoder),\n height: optional(nonNegativeNumberDecoder)\n});\nconst glue42HostManifestsBrowserDecoder = object({\n name: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder.where((s) => s === \"window\", \"Expected a value of window\")),\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n customProperties: optional(anyJson()),\n icon: optional(string()),\n caption: optional(string()),\n details: optional(glue42ApplicationDetailsDecoder),\n intents: optional(array(intentDefinitionDecoder)),\n hidden: optional(boolean())\n});\nconst v1DefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n appId: nonEmptyStringDecoder,\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n manifest: nonEmptyStringDecoder,\n manifestType: nonEmptyStringDecoder,\n tooltip: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n images: optional(array(object({ url: optional(nonEmptyStringDecoder) }))),\n icons: optional(array(object({ icon: optional(nonEmptyStringDecoder) }))),\n customConfig: anyJson(),\n intents: optional(array(intentDefinitionDecoder))\n});\nconst v2LocalizedDefinitionDecoder = object({\n appId: optional(nonEmptyStringDecoder),\n name: optional(nonEmptyStringDecoder),\n details: optional(v2DetailsDecoder),\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder)\n});\nconst v2DefinitionDecoder = object({\n appId: nonEmptyStringDecoder,\n name: nonEmptyStringDecoder,\n type: v2TypeDecoder,\n details: v2DetailsDecoder,\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder),\n localizedVersions: optional(dict(v2LocalizedDefinitionDecoder))\n});\nconst allDefinitionsDecoder = oneOf(v1DefinitionDecoder, v2DefinitionDecoder);\n\nconst parseDecoderErrorToStringMessage = (error) => {\n return `${error.kind} at ${error.at}: ${JSON.stringify(error.input)}. Reason - ${error.message}`;\n};\n\nclass FDC3Service {\n fdc3ToDesktopDefinitionType = {\n web: \"window\",\n native: \"exe\",\n citrix: \"citrix\",\n onlineNative: \"clickonce\",\n other: \"window\"\n };\n toApi() {\n return {\n isFdc3Definition: this.isFdc3Definition.bind(this),\n parseToBrowserBaseAppData: this.parseToBrowserBaseAppData.bind(this),\n parseToDesktopAppConfig: this.parseToDesktopAppConfig.bind(this)\n };\n }\n isFdc3Definition(definition) {\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n return { isFdc3: false, reason: parseDecoderErrorToStringMessage(decodeRes.error) };\n }\n if (definition.appId && definition.details) {\n return { isFdc3: true, version: \"2.0\" };\n }\n if (definition.manifest) {\n return { isFdc3: true, version: \"1.2\" };\n }\n return { isFdc3: false, reason: \"The passed definition is not FDC3\" };\n }\n parseToBrowserBaseAppData(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n const userProperties = this.getUserPropertiesFromDefinition(definition, version);\n const createOptions = { url: this.getUrl(definition, version) };\n const baseApplicationData = {\n name: definition.appId,\n type: \"window\",\n createOptions,\n userProperties: {\n ...userProperties,\n intents: version === \"1.2\"\n ? userProperties.intents\n : this.getIntentsFromV2AppDefinition(definition),\n details: createOptions\n },\n title: definition.title,\n version: definition.version,\n icon: this.getIconFromDefinition(definition, version),\n caption: definition.description,\n fdc3: version === \"2.0\" ? { ...definition, definitionVersion: \"2.0\" } : undefined,\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return baseApplicationData;\n }\n const ioDefinitionDecodeRes = glue42HostManifestsBrowserDecoder.run(ioConnectDefinition);\n if (!ioDefinitionDecodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(ioDefinitionDecodeRes.error)}`);\n }\n if (!Object.keys(ioDefinitionDecodeRes.result).length) {\n return baseApplicationData;\n }\n return this.mergeBaseAppDataWithGlueManifest(baseApplicationData, ioDefinitionDecodeRes.result);\n }\n parseToDesktopAppConfig(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n if (version === \"1.2\") {\n const fdc3v1Definition = definition;\n return {\n name: fdc3v1Definition.appId,\n type: \"window\",\n details: {\n url: this.getUrl(definition, version)\n },\n version: fdc3v1Definition.version,\n title: fdc3v1Definition.title,\n tooltip: fdc3v1Definition.tooltip,\n caption: fdc3v1Definition.description,\n icon: fdc3v1Definition.icons?.[0].icon,\n intents: fdc3v1Definition.intents,\n customProperties: {\n manifestType: fdc3v1Definition.manifestType,\n images: fdc3v1Definition.images,\n contactEmail: fdc3v1Definition.contactEmail,\n supportEmail: fdc3v1Definition.supportEmail,\n publisher: fdc3v1Definition.publisher,\n icons: fdc3v1Definition.icons,\n customConfig: fdc3v1Definition.customConfig\n }\n };\n }\n const fdc3v2Definition = definition;\n const desktopDefinition = {\n name: fdc3v2Definition.appId,\n type: this.fdc3ToDesktopDefinitionType[fdc3v2Definition.type],\n details: fdc3v2Definition.details,\n version: fdc3v2Definition.version,\n title: fdc3v2Definition.title,\n tooltip: fdc3v2Definition.tooltip,\n caption: fdc3v2Definition.description,\n icon: this.getIconFromDefinition(fdc3v2Definition, \"2.0\"),\n intents: this.getIntentsFromV2AppDefinition(fdc3v2Definition),\n fdc3: { ...fdc3v2Definition, definitionVersion: \"2.0\" }\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return desktopDefinition;\n }\n if (typeof ioConnectDefinition !== \"object\" || Array.isArray(ioConnectDefinition)) {\n throw new Error(`Invalid '${definition.hostManifests.ioConnect ? \"hostManifests.ioConnect\" : \"hostManifests['Glue42']\"}' key`);\n }\n return this.mergeDesktopConfigWithGlueManifest(desktopDefinition, ioConnectDefinition);\n }\n getUserPropertiesFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key)));\n }\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key) && !fdc3v2AppProps.includes(key)));\n }\n getUrl(definition, version) {\n let url;\n if (version === \"1.2\") {\n const parsedManifest = JSON.parse(definition.manifest);\n url = parsedManifest.details?.url || parsedManifest.url;\n }\n else {\n url = definition.details?.url;\n }\n if (!url || typeof url !== \"string\") {\n throw new Error(`Invalid FDC3 ${version} definition. Provide valid 'url' under '${version === \"1.2\" ? \"manifest\" : \"details\"}' key`);\n }\n return url;\n }\n getIntentsFromV2AppDefinition(definition) {\n const fdc3Intents = definition.interop?.intents?.listensFor;\n if (!fdc3Intents) {\n return;\n }\n const intents = Object.entries(fdc3Intents).map((fdc3Intent) => {\n const [intentName, intentData] = fdc3Intent;\n return {\n name: intentName,\n ...intentData\n };\n });\n return intents;\n }\n getIconFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return definition.icons?.find((iconDef) => iconDef.icon)?.icon || undefined;\n }\n return definition.icons?.find((iconDef) => iconDef.src)?.src || undefined;\n }\n mergeBaseAppDataWithGlueManifest(baseAppData, hostManifestDefinition) {\n let baseApplicationDefinition = baseAppData;\n if (hostManifestDefinition.details) {\n const details = { ...baseAppData.createOptions, ...hostManifestDefinition.details };\n baseApplicationDefinition.createOptions = details;\n baseApplicationDefinition.userProperties.details = details;\n }\n if (Array.isArray(hostManifestDefinition.intents)) {\n baseApplicationDefinition.userProperties.intents = (baseApplicationDefinition.userProperties.intents || []).concat(hostManifestDefinition.intents);\n }\n baseApplicationDefinition = { ...baseApplicationDefinition, ...hostManifestDefinition };\n delete baseApplicationDefinition.details;\n delete baseApplicationDefinition.intents;\n return baseApplicationDefinition;\n }\n mergeDesktopConfigWithGlueManifest(config, desktopDefinition) {\n const appConfig = Object.assign({}, config, desktopDefinition, { details: { ...config.details, ...desktopDefinition.details } });\n if (Array.isArray(desktopDefinition.intents)) {\n appConfig.intents = (config.intents || []).concat(desktopDefinition.intents);\n }\n return appConfig;\n }\n}\n\nconst decoders$1 = {\n common: {\n nonEmptyStringDecoder,\n nonNegativeNumberDecoder\n },\n fdc3: {\n allDefinitionsDecoder,\n v1DefinitionDecoder,\n v2DefinitionDecoder\n }\n};\n\nvar INTENTS_ERRORS;\n(function (INTENTS_ERRORS) {\n INTENTS_ERRORS[\"USER_CANCELLED\"] = \"User Closed Intents Resolver UI without choosing a handler\";\n INTENTS_ERRORS[\"CALLER_NOT_DEFINED\"] = \"Caller Id is not defined\";\n INTENTS_ERRORS[\"TIMEOUT_HIT\"] = \"Timeout hit\";\n INTENTS_ERRORS[\"INTENT_NOT_FOUND\"] = \"Cannot find Intent\";\n INTENTS_ERRORS[\"HANDLER_NOT_FOUND\"] = \"Cannot find Intent Handler\";\n INTENTS_ERRORS[\"TARGET_INSTANCE_UNAVAILABLE\"] = \"Cannot start Target Instance\";\n INTENTS_ERRORS[\"INTENT_DELIVERY_FAILED\"] = \"Target Instance did not add a listener\";\n INTENTS_ERRORS[\"RESOLVER_UNAVAILABLE\"] = \"Intents Resolver UI unavailable\";\n INTENTS_ERRORS[\"RESOLVER_TIMEOUT\"] = \"User did not choose a handler\";\n INTENTS_ERRORS[\"INVALID_RESOLVER_RESPONSE\"] = \"Intents Resolver UI returned invalid response\";\n INTENTS_ERRORS[\"INTENT_HANDLER_REJECTION\"] = \"Intent Handler function processing the raised intent threw an error or rejected the promise it returned\";\n})(INTENTS_ERRORS || (INTENTS_ERRORS = {}));\n\nclass IoC {\n _fdc3;\n _decoders = decoders$1;\n _errors = {\n intents: INTENTS_ERRORS\n };\n get fdc3() {\n if (!this._fdc3) {\n this._fdc3 = new FDC3Service().toApi();\n }\n return this._fdc3;\n }\n get decoders() {\n return this._decoders;\n }\n get errors() {\n return this._errors;\n }\n}\n\nconst ioc = new IoC();\nconst fdc3 = ioc.fdc3;\nconst decoders = ioc.decoders;\nconst errors = ioc.errors;\n\nexport { decoders, errors, fdc3 };\n//# sourceMappingURL=utils.es.js.map\n",null,null,null,null,null,null,null,"export class PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n static async delayForever() {\n const biggestPossibleDelay = 2147483647;\n while (true) {\n await this.delay(biggestPossibleDelay);\n }\n }\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\nexport function callbackifyPromise(action, successCallback, errorCallback, logger, token) {\n const fail = (error) => {\n if (logger) {\n logger.error(`[${token}]`, error);\n }\n let msg = error;\n if (error instanceof Error) {\n msg = error.message;\n }\n if (typeof errorCallback === \"function\") {\n errorCallback(msg);\n return;\n }\n return PromiseWrapper.delay(0)\n .then(() => {\n throw error;\n });\n };\n return PromiseWrapper.delay(0)\n .then(action)\n .then((result) => {\n if (logger) {\n logger.info(`[${token}] successful`);\n }\n if (typeof successCallback === \"function\") {\n successCallback(result);\n }\n return result;\n })\n .catch((error) => {\n return fail(error);\n });\n}\n//# sourceMappingURL=promise.js.map",null,null,null,null,null,null,null,null],"names":["MetricTypes","getMetricTypeByValue","metric","type","getTypeByValue","value","constructor","Date","serializeMetric","serializedMetrics","values","Object","keys","reduce","memo","key","innerType","composite","defineNestedComposite","description","context","name","normalizeMetricName","path","join","length","getMetricValueByType","now","publishNestedComposite","getTime","Boolean","toString","flatten","arr","flat","toFlatten","concat","Array","isArray","composeMsgForRootStateMetric","system","merged","root","getAggregateState","highestState","sort","a","b","state","aggregateDesc","msg","forEach","m","idx","slice","aggregateDescription","Helpers","definition","parent","transport","Error","BaseMetric","repo","this","id","push","createMetric","update","newValue","updateMetric","NumberMetric","super","incrementBy","num","increment","decrement","decrementBy","ObjectMetric","mergeValues","k","StringMetric","TimestampMetric","protocol","_transport","_name","_description","_repo","_parent","_path","_buildPath","shadowedSystem","_state","separator","_subSystems","_metrics","_getOrCreateMetric","metricObject","expectedType","metricDef","matching","filter","shadowedMetric","existing","catch","me","subSystems","metrics","subSystem","nameSystem","descriptionSystem","match","s","_system","getState","setState","stateDescription","updateSystem","stringMetric","timestampMetric","objectMetric","numberMetric","aggState","shadowedSubSystem","result","createSystem","Repository","options","init","addSystemMetrics","clickStream","undefined","rootSystem","useClickStream","navigator","userAgent","document","documentClickHandler","e","target","className","getAttribute","timestamp","tagName","toLowerCase","href","title","page","window","location","addEventListener","attachEvent","urlMetric","appNameMetric","startUrl","glue42gd","appName","NullProtocol","Promise","resolve","PerfTracker","api","lastCount","initialPublishTimeout","publishInterval","scheduleCollection","setTimeout","collect","setInterval","collectMemory","collectEntries","memory","performance","JSON","stringify","totalJSHeapSize","usedJSHeapSize","allEntries","getEntries","jsonfiedEntries","map","i","toJSON","connection","config","joinPromise","session","replayRepo","replaySystem","ss","async","createMetricsMsg","Description","Value","send","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","sendFireAndForget","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","err","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","createRegistry$1","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","logger","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper$1","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","PromiseWrapper","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","children","extContentAvailable","extContentConnecting","extContentConnected","parentWindowId","parentInExtMode","webNamespace","parentType","parentPingTimeout","connectionRequestTimeout","defaultTargetString","connectionAccepted","handle","handleConnectionAccepted","bind","connectionRejected","handleConnectionRejected","connectionRequest","handleConnectionRequest","parentPing","handleParentPing","platformPing","handlePlatformPing","platformReady","handlePlatformReady","clientUnload","handleClientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","warn","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","origin","checkMessageTypeValid","messageType","clearInterval","source","handleAcceptanceOfMyRequest","handleAcceptanceOfGrandChildRequest","processExtContentConnection","applicationName","extData","glue42ExtInc","child","find","c","grandChildId","connected","errorMsg","rejectConnectionRequest","extMode","typeToValidate","rejection","requestConnectionPermissionFromExt","waitForContentScript","approved","content","findParent","connectionNotPossibleMsg","myInsideParents","getPossibleParentsInWindow","myOutsideParents","getPossibleParentsOutsideWindow","top","opener","uniqueParents","Set","confirmParent","from","currentWindow","current","targets","substring","AsyncSequelizer","minSequenceInterval","queue","isExecutingQueue","enqueue","executeQueue","operation","shift","actionResult","intervalBreak","res","domainSession","successMessages","errorMessages","_latestOptions","isJoined","tryReconnecting","_connectionOn","disconnected","loggedIn","handleSuccessMessage","handleErrorMessage","sm","requestsMap","destination","wasReconnect","handleJoined","requestId","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","leave","onLeft","Connection","protocolVersion","token","resolvedIdentity","availableDomains","gatewayToken","replayer","messageHandlers","ids","_connected","isTrace","_defaultTransport","_defaultAuth","_targetTransport","_targetAuth","_swapTransport","_switchInProgress","_transportSubscriptions","datePrefix","datePrefixLen","dateMinLen","datePrefixFirstChar","_sequelizer","_isLoggedIn","shouldTryLogin","pingTimer","sessions","globalDomain","initialLogin","initialLoginAttempts","loginConfig","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","trace","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","handleDisconnected","msgObj","processStringMessage","processObjectMessage","msgType","unsub","ready","invocations","left","waitForInvocations","transportConfig","url","assign","auth","parse","startsWith","milliseconds","parseInt","isNaN","ex","oldToJson","username","password","authentication","setupAuthConfig","helloMsg","sessionId","sendOptions","maxRetries","welcomeMsg","tryAuthenticate","resolved_identity","available_domains","access_token","flowCallback","Buffer","getNewGWToken","method","flowName","provider","secret","providerContext","promises","all","getGWToken","order","Logger$1","Logger","subLoggers","_consoleLevel","_publishLevel","loggerFullName","includeTimeAndLevel","logFn","customLogFn","existingSub","publishLevel","level","consoleLevel","publishMessage","compareWith","loggerName","split","interop","Interop","methods","InteropMethodName","args","invoke","prefix","date","getHours","getMinutes","getSeconds","getMilliseconds","toPrint","GW_MESSAGE_CREATE_CONTEXT","GW_MESSAGE_ACTIVITY_CREATED","GW_MESSAGE_ACTIVITY_DESTROYED","GW_MESSAGE_CONTEXT_CREATED","GW_MESSAGE_CONTEXT_ADDED","GW_MESSAGE_SUBSCRIBE_CONTEXT","GW_MESSAGE_SUBSCRIBED_CONTEXT","GW_MESSAGE_UNSUBSCRIBE_CONTEXT","GW_MESSAGE_DESTROY_CONTEXT","GW_MESSAGE_CONTEXT_DESTROYED","GW_MESSAGE_UPDATE_CONTEXT","GW_MESSAGE_CONTEXT_UPDATED","GW_MESSAGE_JOINED_ACTIVITY","ContextMessageReplaySpec","version","GW3ContextData","contextId","isAnnounced","joinedActivity","updateCallbacks","activityId","sentExplicitSubscription","hasReceivedSnapshot","hasCallbacks","lodash_clonedeep","exports","module","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","Function","freeExports","nodeType","freeModule","moduleExports","addMapEntry","pair","set","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","func","transform","arg","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","propertyIsEnumerable","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","n","baseTimes","String","skipIndexes","isIndex","assignValue","object","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","isObject","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","get","props","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","test","arrayBuffer","getMapData","getValue","pop","hash","string","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","ctorString","isLength","baseKeys","cloneDeep","applyContextDelta","delta","reset","deepClone","commands","command","deletePath","setValueToPath","added","updated","removed","mergeObjectsProperties","obj","what","withWhat","right","deepEqual","y","p","pathArr","isSubset","superObj","subObj","every","ele","GW3Bridge$1","_logger","_connection","_trackAllContexts","_reAnnounceKnownContexts","_gw3Session","_contextNameToData","_gw3Subscriptions","_nextCallbackSubscriptionNumber","_creationPromises","_contextNameToId","_contextIdToName","_protocolVersion","_contextsTempCache","_contextsSubscriptionsCache","_systemContextsSubKey","contextsDomainInfo","d","uri","setPathSupported","trackAllContexts","reAnnounceKnownContexts","resetState","reInitiateState","subscribeToContextCreatedMessages","subscribeToContextUpdatedMessages","subscribeToContextDestroyedMessages","handleContextCreatedMessage","handleContextUpdatedMessage","handleContextDestroyedMessage","dispose","contextName","createContext","lifetime","createContextMsg","context_id","contextData","currentContext","calculatedDelta","calculateContextDeltaV2","calculateContextDeltaV1","gwResponse","handleUpdated","updaterId","setPath","setPaths","pathValues","pathValue","subscribe","_d","_r","un","subscriptionKey","thisCallbackSubscriptionNumber","subscription","subKey","hadCallbacks","clone","sendSubscribe","sendUnsubscribe","destroy","_","extraData","oldContext","invokeUpdateCallbacks","createdMessageTypes","createdMessageType","contextCreatedMsg","activity_id","updatedMessageTypes","updatedMessageType","contextUpdatedMsg","justSeen","context_snapshot","updater_id","updateCallbackIndex","updateCallback","destroyedMessageTypes","destroyedMessageType","destroyedMsg","to","cacheSoFar","ctxName","flushQueue","lastKnownData","ContextsModule","initTime","initStartTime","initEndTime","_bridge","GW3Bridge","checkName","checkData","checkPath","paths","promisify","successCallback","errorCallback","rejectAfter","ms","clearTimeoutIfThere","InvokeStatus","Client","configuration","callProtocolSubscribe","targetServers","stream","successProxy","errorProxy","methodResponseTimeout","waitTimeoutMs","methodDef","method_response_timeout","wait_for_method_timeout","delayTillNow","currentServers","getServerMethodsByFilterAndTarget","retry","streamInfo","servers","methodFilter","filterCopy","getServers","serverMethodMap","server","getMethods","methodsForInstance","getMethodsForInstance","methodAdded","onMethodAdded","methodRemoved","onMethodRemoved","serverAdded","onServerAdded","serverRemoved","onServerRemoved","serverMethodAdded","onServerMethodAdded","serverMethodRemoved","onServerMethodRemoved","argumentObj","additionalOptions","methodDefinition","methodResponseTimeoutMs","serversMethodMap","tryToAwaitForMethods","errorObj","supportsStreaming","objectTypes","flags","metadata","called_with","executed_by","returned","additionalOptionsCopy","invokePromises","serversMethodPair","invId","invokePromise","race","invocationId","invocationMessages","getInvocationResultObj","getInvokePromise","invocationResults","calledWith","all_return_values","invokeMessage","Success","allValues","currentValue","all_errors","allErrors","currError","invResult","interval","filterByTarget","targetArray","matches","myMatches","serverMethodPair","instanceMatch","localMachine","isLocal","instanceFilter","instanceDefinition","containsProps","methodMatch","repoMethod","prop","isMatch","filterValue","repoMethodValue","filterValueEl","matchingServers","resultMethodsObject","methodKey","identifier","prev","matchingMethods","ServerSubscription","branchKey","closeSingleSubscription","pushDataToSingle","Request","requestContext","accept","acceptRequestOnBranch","acceptOnBranch","branch","rejectRequest","ServerStreaming$1","onSubRequest","rc","rm","handleSubRequest","onSubAdded","handleSubAdded","onSubRemoved","handleSubRemoved","streamCallbacks","subscriptionRequestHandler","subscriptionAddedHandler","subscriptionRemovedHandler","ServerBranch","subscriptions","getSubscriptionList","closeAllSubscriptions","pushData","ServerStream","_protocol","_repoMethod","_server","branches","bList","getBranchList","def2","accepts","displayName","returns","unregister","updateRepoMethod","Server","serverRepository","streaming","currentlyUnregistering","onInvoked","onMethodInvoked","createStream","streamDef","existingStream","streamMethodDefinition","getList","some","serverMethod","protocolState","streamUserObject","repoId","remove","register","wrappedCallbackFunction","resultCallback","userCallback","registerCore","registerAsync","wrappedCallback","resultCalled","methodResult","userCallbackAsync","forStream","unregisterWithPredicate","methodToBeRemoved","removeMethodsOrStreams","filterPredicate","methodsOrStreamsToRemove","methodsToRemove","methodUnregPromises","addAsCurrentlyUnregistering","methodName","theFunction","unregisterInProgress","methodToExecute","invocationArgs","unStrException","_value","methodInvocationResult","InstanceWrapper","wrapped","API","getStreams","refreshWrappedObject","refresh","unwrap","user","pid","floor","machine","environment","region","hideMethodSystemFlags","ClientRepository","myServer","methodsCount","wrapper","unwrappedInstance","addServer","serverId","serverEntry","removeServerById","methodId","removeServerMethod","addServerMethod","createMethodIdentifier","that","gatewayId","display_name","object_types","input_signature","result_signature","getServersByMethod","clientMethodDefinition","extractMethodsFromServers","hideServerMethodSystemFlags","unsubscribeFunc","serversWithMethodsToReplay","returnUnsubWithDelayedReplay","methodsToReplay","unsubCalled","getServerById","methodInfo","allServers","collectionToReplay","item","clientMethods","ServerRepository","nextId","TypeError","getById","SUBSCRIPTION_REQUEST","SUBSCRIPTION_ADDED","SUBSCRIPTION_REMOVED","ServerStreaming","repository","ERR_URI_SUBSCRIPTION_FAILED","nextStreamId","handleAddInterest","handleRemoveInterest","streamingMethod","subscriptionsMap","branchKeyToStreamIdMap","streamId","getStreamId","subscription_id","subscribeMsg","stream_id","sendSubscriptionFailed","br","dropSubscriptionMessage","closeMultipleSubscriptions","subscriptionsToClose","drop","allSubscriptions","onSubscriptionLifetimeEvent","method_id","eventName","handlerFunc","getNextStreamId","caller","caller_id","arguments_kv","subscriptionId","errorMessage","reason_uri","needleBranch","ServerProtocol","clientRepository","handleInvokeMessage","isStreaming","registerMsg","restrictions","invocation_id","callerId","UserSubscription","subscriptionData","requestArguments","params","trackedServers","serverInstance","onData","dataCallback","queued","dataItem","onClosed","closedCallback","onFailed","onConnected","setNewSubscription","newSub","TimedCache","timeoutIds","timeoutId","elementIdx","findIndex","ELEMENT_TTL_MS","flush","elements","STATUS_AWAITING_ACCEPT","STATUS_SUBSCRIBED","ERR_MSG_SUB_FAILED","ON_CLOSE_MSG_CLIENT_INIT","ClientStreaming","subscriptionsList","timedCache","subscriptionIdToLocalKeyMap","nextSubLocalKey","handleSubscribed","handleEventData","handleSubscriptionCancelled","subLocalKey","getNextSubscriptionLocalKey","pendingSub","registerSubscription","server_id","handleErrorSubscribing","drainSubscriptions","drainSubscriptionsCache","subsInfo","localKey","closers","closeSubscription","callOnClosedHandlers","errorResponse","callArgs","acceptingServer","isFirstResponse","trackedServersFound","isPrivateData","oob","sendingServerId","receivedStreamData","private","onDataHandlers","queuedData","expectedNewLength","closersCount","closingServerId","closingServer","ClientProtocol","handlePeerAdded","handlePeerRemoved","handleMethodsAddedMessage","handleMethodsRemovedMessage","handleResultMessage","handleInvocationError","newPeerId","new_peer_id","remoteId","meta","local","Number","serverInfo","removedPeerId","removed_id","methodIdList","gW3ProtocolFactory","libConfig","readyPromise","reconnectionPromises","existingSubscriptions","registeredMethods","handleReconnect","protocolPromise","waitForMethod","MessageBus","watchOnEvent","publish","topic","routingKey","removeEmptyValues","routing_key","target_identity","response","keysMatch","cleaned","obj1","obj2","keysObj1","allMatch","IOConnectCoreFactory","userConfig","ext","iodesktop","preloadPromise","gdPreloadPromise","glueInitTimer","internalConfig","nodeStartingContext","startingContextString","env","_GD_STARTING_CONTEXT_","getApplication","glue42electron","applicationConfig","gwConfig","gateway","instanceId","gwURL","uniqueAppName","appInstanceId","getConnection","windowAsAny","containerApplication","htmlContainer","containerName","bus","gwToken","defaultLevel","gdConsoleLevel","consoleLogLevel","getLogger","contexts","libs","customLogger","prepareConfig","_interop","_contexts","_bus","_allowTrace","registerLib","inner","done","traceMessage","setupMetrics","initTimer","metricsPublishingEnabledFunc","getMetricsPublishingEnabled","setupInterop","agmConfig","setupContexts","hasActivities","activities","setupBus","setupExternalLibs","externalLibs","createCallback","setupExternalLib","authPromise","authConfig","RegisterInstanceMethodName","typedError","registerInstanceIfNeeded","libsReadyPromises","coreVersion","glue","feedback","feedbackInfo","agm","glueVer","glueConfig","browser","timing","initTimes","duration","extOptions","enrichGlue","updatePerfData","deprecatedDecorator","fn","wrong","proper","agmAny","method_added","method_removed","server_added","server_method_aded","server_method_removed","IOConnectCore","ActivityEntity","_id","_update","_updateCore","_beforeDelete","isNumber","isString","isUndefined","isUndefinedOrNull","isNullOrWhiteSpace","str","isBoolean","ifNotUndefined","doWithIt","ActivityType","ownerWindow","helperWindows","_ownerWindow","_helperWindows","hw","covertToWindowDef","initiate","_manager","windowType","_b","WindowType","appByWindowTypeGetter","_appByWindowTypeGetter","windows","getWindows","activity","isIndependent","createWindow","EntityEvent","entitiy","entity","EntityEventContext","eventType","ActivityStatusChangeEventContext","newStatus","oldStatus","EntityEventType","StatusChange","ActivityContextChangedEventContext","ActivityContextChange","Added","Removed","Updated","Closed","ActivityWindowEvent","ActivityWindowJoinedActivity","ActivityWindowLeftActivity","ActivityState","Created","Started","Destroyed","ActivityAGM","_activity","_ensureHasAgm","AGM","util.isUndefinedOrNull","w","methodNames","methodsForWindow","currentWindowMethod","activityServers","util.isString","potentialTargets","util.isArray","firstElem","_isInstance","_isActivityWindow","win","parameters","AttachedActivityDescriptor","manager","ownerActivityId","_ownerActivityId","ownerId","windowIds","frameColor","detach","descriptor","detachActivities","nextTick","cb","nodeify","util.isFunction","resp","Activity","actType","_actType","_status","_context","_ownerId","_agm","getActivityType","owner","addWindow","addWindowToActivity","createStackedWindows","windowTypes","leaveWindowFromActivity","getWindowsByType","setContext","setActivityContext","updateContext","updateActivityContext","onStatusChange","subscribeActivityEvents","ns","os","onWindowEvent","subscribeWindowEvents","onContextChanged","subscribeActivityContextChanged","act","stopActivity","attach","attachActivities","onActivityAttached","subscribeActivitiesAttached","newActId","oldActId","onDetached","subscribeActivitiesDetached","newAct","originalActivity","_updateDescriptors","allStates","_attached","attached","setFrameColor","color","callbacksToWait","underlyingWindow","getFrameColor","LogLevel","Trace","Debug","Info","Warn","GetNamed","Get","GetTypeName","GlueLogger","_glueLogger","Level","_getMessage","ActivityWindow","windowGetter","hcWindowId","_type","_activityId","_instance","_isIndependent","_windowGetter","_hcWindowId","getBounds","getWindowBounds","getWindowType","util.isUndefined","getActivityById","isOwner","setVisible","isVisible","setWindowVisibility","activate","focus","activateWindow","setBounds","bounds","setWindowBounds","closeWindow","onActivityJoined","_subscribeForActivityWindowEvent","onActivityRemoved","ActivityStatus","getMessage","gwMmessageError","gwMessageAddActivityTypes","gwMessageActivityCreated","gwMessageActivityDestroyed","gwMessageActivityInitiated","gwMessageJoinedActivity","gwMessageActivityJoined","gwMessageActivityLeft","gwMessageOwnerChanged","gwMessageAddPeerFactories","gwMessagePeerFactoriesAdded","gwMessagePeerFactoriesRemoved","gwMessagePeerCreated","activityTypeGwMessageEntityToActivityType","nameToWindowType","windowName","owner_type","helper_types","peerFactoryGwMessageEntityToWindowType","peer_type","activityGwMessageToActivity","owner_id","activity_type","activityToActivityStatusChangeEvent","_activityChangeCallbacks","_activityTypeStatusChangeCallbacks","_activityWindowChangeCallbacks","_windowTypeStatusChangeCallbacks","_peerIdAndFactoryIdToPeerType","_peerFactoriesRegisteredByUs","_contextSubscriptions","_activityTypesInitiatedFromMe","_config","_windows","_sessionJoinedPromise","_sessionJoinedPromiseResolve","_activityJoinedPromise","_activityJoinedPromiseResolve","activityInfo","addRefreshHandler","setGWToken","addWillNavigateHandler","bridgeType","forwardActivityTypeMessagesToStatusEventHandlers","handleActivityCreatedMessage","handleActivityDestroyedMessage","forwardActivityMessagesToStatusEventHandlers","forwardActivityCreatedAndJoinedActivityToActivityWindowEventHandlers","forwardPeerFactoryMessagesToStatusEventHandlers","forwardPeerFactoryMessagesToPeerFactoryRequests","handlePeerFactoriesAdded","handlePeerFactoriesRemoved","forwardActivityWindowMessagesToEventHandlers","disposeRequestHandling","my","exit","mode","activity_types","typesToTrack","initReady","onActivityTypeStatusChange","registerActivityType","activityTypeName","toActivityPeerConfig","windowDefinition","activityType","invokeCallbacks","unregisterActivityType","onWindowTypeStatusChange","registerWindowFactory","factory","factories","unregisterWindowFactory","factory_ids","onActivityStatusChange","initiateActivity","initiateMsg","initial_context","isOverrideTypeDefinition","types_override","helpers","wd","sendCreateAndMapResultingMessagesToPromise","initMsg","fullReplace","removedKeys","announceWindow","activityWindowId","registerWindow","independent","shouldSendReady","getAgmInstance","generateWindowGetter","onActivityWindowChange","layout","width","height","cellSize","joinPeer","joinActivity","peer_name","created_id","destroy_peer_id","getAnnouncementInfo","announcementInfo","activityWindowType","activityWindowIndependent","activityWindowName","search","URLSearchParams","searchParams","maybeName","target_id","leaveActivity","getActivityTypes","getWindowTypes","getActivities","getActivityWindows","windowDefinitions","visible","cloneActivity","cloneOptions","into","merge","newActivityInfo","onActivitiesAttached","onActivitiesDetached","onActivityAttachedDescriptorsRefreshed","getAttachedDescriptors","getRandomRequestId","forwardAddedAndRemovedMessagesToEventHandler","addedMessageType","removedMessageType","mapper","getGetEntityEvent","isAdded","forwardMessageToEventHandler","getEntityEvent","ent","h","initiatedMessageType","initiatedMessageFilter","createdMessageFilter","cancelledMessageType","cancelledMessageFilter","createdMessageToPromiseResolution","listenForRecreates","reqId","resolveCreatedPromise","rejectCreatedPromise","createdPromise","initiatedSubscription","createdSubscription","cancelledSubscription","errorSubscription","initiatedMessageAck","dropSubscriptions","dropSubscription","msg4","recreated","msg1","msg2","msg3","toReturn","peerFactoryIdAndOwnerIdToWindowType","factoryId","peerType","subscribeToContext","unsubscribeContext","activityCreatedMessage","participants","createdMessage","peer_factory","gateway_token","joinedMessage","joinedId","joined_id","joinedType","joined_type","joinedName","joined_name","left_id","list","ActivityMy","_myAttached","_myDetached","_myAttachedTo","_myDetachedFrom","_myActivityFrameColorChanged","_myActivityJoinedCallbacks","_myActivityRemovedCallbacks","_myContextUpdateCallbacks","_m","am","_subscribeMyContextChanged","_subscribeMyWindowEvent","_subscribeActivitiesAttached","_subscribeActivitiesDetached","onWindowFrameColorChanged","_subscribeWindowFrameColorChanged","_w","announcedWindows","myWin","onActivityLeft","onActivityDetached","onAttachedToActivity","onDetachedFromActivity","onFrameColorChanged","myActivity","_notifyMyContextChanged","_notifyMyWindowEvent","callbackStore","_notifyAttached","_notifyDetached","_notifyAttachedTo","_notifyDetachedFrom","detached","oldAct","ReadyMarker","signalsToWait","_signals","_callbacks","setCallback","isSet","isError","_error","signal","getError","EntityObservableCollection","processNew","_items","_listeners","_processNew","addOne","items","internalEntity","_updateInternalCollections","_notifyListeners","getByName","getOrWait","entityAddedHandler","listener","entityAsAny","isActivityDestroy","isWindowClose","oldEntity","ActivityManager","usingHc","_announcedWindows","v","bridge","autoAnnounce","_attachedCallbacks","_detachedCallbacks","_frameColorChangesCallbacks","_windowHandlers","_activityTypes","_grabEntity","_windowTypes","_activities","_dataReadyMarker","_descriptorsMarker","_readyMarker","dataErr","errCatch","refreshDescriptors","_handleActivitiesAttached","_handleActivitiesDetached","_handleActivityDescriptorsRefreshed","_handleWindowFrameColorChanged","_subscribeForData","aw","_getInitialData","ownerWindowType","helperWindowTypes","ownerDefinition","helperDefinitions","relativeTo","relativeDirection","windowStyleAttributes","actId","subscribeActivityTypeEvents","at","factoryMethod","util.isObject","getName","predicate","util.some","windowEventHandler","unsubscribeWindowEvents","subscribeWindowTypeEvents","wt","wrappingHandler","found","windowTypeOrConfiguration","relativeToWindow","invalidKeys","filteredWindowTypeOrConfiguration","wid","relativeWindowTypes","stackedWindow","tasks","removedKey","descriptors","stateWrapped","u","subscribeActivityFrameColorChanged","ac","descriptorAsObjectFromAPI","oldActivityId","newActivityId","ActivityManagementAPI","_my","activityTypes","_getActivityTypesWrapper","_getWindowTypesWrapper","registerFactory","unregisterFactory","announce","instances","onAttached","onActivityFrameColorChanged","ActivityAPI","_mgr","aware","inActivity","getAvailableFrameColors","ActivityModule","checkIsUsingGW3Implementation","_api","logLevel","_isUsingHCImplementation","gdMajorVersion","_isUsingGW3Implementation","activityManager","disableAutoAnnounce","My","_readyPromise","isUsingHCImplementation","isUsingGW3Implementation","GetFunctionalEntitlementMethodName","CanIMethodName","OnEventMethodName","GetApplicationsMethodName","objectValues","objectClone","validate","throwErrors","INTEROP_METHOD_RESPONSE_TIMEOUT_MS","INTEROP_METHOD_WAIT_TIMEOUT_MS","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","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","onAgmReady","onInstanceAgmServerReady","acsResult","Context","Options","waitForInterop","Id","handleInstanceStarted","ActivityId","IsActivityOwner","AgmServers","onAvailable","onUnavailable","onChanged","onRemoved","InstanceImpl","_appName","startFailed","_unsubscribeInstanceStopped","_unsubscribeInstanceAgmServerReady","activityInstance","isActivityOwner","_isActivityOwner","activityInstances","activityOwnerInstance","inst","_startUpContext","_title","isActivityInstance","_isActivityInstance","_inActivity","isSingleWindowApp","_agmInstance","interopInstance","onInteropReady","onStopped","getWindow","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","T42JumpListAction","jumpListManager","_groupActionCallbacks","_registered","_executor","registerCallbackMethod","setEnabled","updateJumpList","createCategory","actions","validateActions","category","toUpdateActions","removeCategory","manageActionCallback","createActions","categoryTitle","removeActions","getActions","catgoryTitle","currentCategory","getJumpListSettings","categories","actionCallback","getActionCallback","callbackId","singleInstanceTitle","multiInstanceTitle","getJumpList","updateAction","groupCallbacksKey","categoryActionCallbacks","accCal","delete","callbackAction","cal","windowStore","waitForTimeoutInMilliseconds","_pendingWindows","_pendingWindowsStates","CallbackFactory","getIfReady","shouldMarkReadyToShow","markReadyToShow","setUrlChangedState","targetWindowState","urlChanged","setCompositionChangedState","compositionChanged","waitFor","unReady","unRemoved","cleanup","onReadyWindow","onAdded","JumpListActions","_categoryTitle","JumpListCategories","getCategories","cat","JumpList","_categories","isEnabled","windowFactory","appManagerGetter","displayAPIGetter","channelsAPIGetter","getChannels","channels","_mode","_bounds","_url","_frameColor","_focus","_neighbours","neighbours","_groupId","groupId","_isGroupHeaderVisible","isGroupHeaderVisible","_isTabHeaderVisible","isTabHeaderVisible","_isGroupHibernated","isGroupHibernated","_isGroupVisible","isGroupVisible","_isTabSelected","isTabSelected","_settings","_applicationName","_group","_isVisible","_isSticky","isSticky","_isCollapsed","isCollapsed","_windowState","_tabGroupId","tabGroupId","_tabIndex","tabIndex","_frameId","frameId","_isLocked","isLocked","_allowWorkspaceDrop","allowWorkspaceDrop","_isPinned","isPinned","_frameButtons","frameButtons","_zoomFactor","zoomFactor","_placementSettings","placementSettings","_jumpList","moveResize","utils","resultWindow","toBeVisible","onGroupChanged","onEventCore","replayArguments","getNeighboursByDirection","direction","winId","getApplicationName","_APPLICATION_NAME","_t42","getWindowInfo","hostInstance","agmInstance","b1","b2","minHeight","maxHeight","minWidth","maxWidth","isFocused","opened","group","topNeighbours","leftNeighbours","rightNeighbours","bottomNeighbours","screen","monitors","jumpList","maximize","restore","minimize","maximizeRestore","collapse","expand","toggleCollapse","setTitle","newTitle","setStyle","styleAsAny","util.isNumber","setOnTop","onTop","resetButtons","buttons","getButtons","setSizeConstraints","constraints","getSizeConstraints","navigate","newUrl","optionsOrCallback","util.isNullOrWhiteSpace","addFrameButton","buttonInfo","buttonId","imageBase64","removeFrameButton","show","hide","center","display","validateCenterArguments","cbOrOptions","snap","autoAlign","showLoader","loader","hideLoader","lock","unlock","getIcon","setIcon","base64Image","setTabTooltip","tooltip","getTabTooltip","attachTab","tab","opt","sourceWindow","attachOptions","selected","detachTab","argsForSend","hideTabHeader","setTabHeaderVisible","toBeTabHeaderVisible","showPopup","createFlydown","setModalState","isModal","setZoomFactor","zoomIn","zoomOut","showDevTools","capture","captureOptions","flash","suppliedOptions","flashOptions","shouldFlash","flashTab","setSticky","setAllowWorkspaceDrop","pin","unpin","print","printOptions","printToPDF","printToPDFOptions","place","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","dock","executeCode","getChannel","getWindowsWithChannels","channel","startDrag","option","showDialog","dialogOptions","timerDuration","showTimer","onClose","onUrlChanged","onTitleChanged","onFrameButtonAdded","onFrameButtonRemoved","onFrameButtonClicked","onCollapsed","onExpanded","onMinimized","onMaximized","onNormal","onVisibilityChanged","onContextUpdated","onLockingChanged","onBoundsChanged","onFocusChanged","onStickyChanged","onWindowAttached","onWindowDetached","onTabSelectionChanged","onTabHeaderVisibilityChanged","onClosing","onRefreshing","onZoomFactorChanged","onPlacementSettingsChanged","onNeighboursChanged","onDockingChanged","onNavigating","onChannelRestrictionsChanged","tabs","allWindows","w1","w2","MIN_SAFE_INTEGER","getAllTabs","getURL","getTitle","getDisplay","getByWindowId","resizeTo","moveTo","getParentWindow","myParentId","parentInstanceId","joinChannel","leaveChannel","Events","handleUpdate","handleWindowClose","handleWindowChangeState","finished","handleTitleChanged","finally","handleVisibilityChanged","handleUrlChanged","handleWindowSettingsChanged","handleContextUpdated","handleFrameIsLockedChanged","handleBoundsChanged","handleFocusChanged","handleFrameButtonAdded","frameButton","buttonObj","btn","handleFrameButtonRemoved","frameButtonId","button","handleFrameButtonClicked","handleFrameColorChanged","handleFrameAttached","handleFrameSelectionChanged","newWindow","prevWindow","selectedWindow","previousWindow","handleCompositionChanged","neighbors","handleAllowWorkspaceDropChanged","handleIsPinnedChanged","handleGroupHeaderVisibilityChanged","handleTabHeaderVisibilityChanged","handleGroupChanged","handleAttached","newTabGroupId","newFrameId","tabHeaderVisible","winsToBeNotified","handleWindowAttached","handleDetached","handleWindowDetached","handleZoomFactorChanged","handleIsStickyChanged","handlePlacementSettingsChanged","displayAPI","handleDockingChanged","docked","position","claimScreenArea","handleChannelRestrictionsChanged","GroupCreationArgs","getWindowsByTabGroupId","isEmpty","GroupMethodName","WndMethodName","_finished","windowAvailableOnURLChanged","unsubCallbacks","agmTarget","setConfiguration","handleEvent","finishedResolve","closed","urlLoadOptions","invocationOptions","stylePromises","wait","tabTooltip","tabToolTip","toolTip","tabTitle","allowClose","allowCollapse","allowLockUnlock","allowMaximize","allowMinimize","buttonsConfig","windowToPin","pinnedWindow","versionNum","rej","resolveImmediately","areBoundsEqual","unsubscribeBoundsChanged","resolveTimeout","unFocusChanged","unClosed","targetWindow","targetWindowId","snappingEdge","sourceWindowId","eventKeys","contextWithoutUndefinedValues","swapUndefinedToNull","dataURL","toShow","showGroupPopup","reformatedOptions","showPopupCore","executeGroup","optionsCopy","horizontalOffset","verticalOffset","fullOptions","reformatFlydownOptions","zoneIds","zones","z","flydownSize","cancel","targetId","clearFlydownArea","autoArrange","displayId","handleFlydownBoundsRequested","callbackData","zoneId","flydownId","flydownWindowBounds","flydownWindowId","responses","defaultResponse","handleOnEventRequested","prevented","preventArgs","pArgs","captureGroup","groupWindowIds","filePath","enableDownloadBar","silent","fullPath","fileSize","executeCore","gdWindow","addCloseHandler","nonWindowHandlers","onGroupClosing","nonWindowHandlersCore","clearCallbacks","isGroup","assignGeneralIfUnassigned","zone","valueFromOptions","flydownBounds","targetLocation","flydownActiveArea","activeArea","areaIds","executeWithoutToken","uns","executed","executeWithToken","requested","areHeightsEqual","areWidthsEqual","areLeftsEqual","areTopsEqual","popupBounds","popupId","GDEnvironment","wndId","_windowId","_appManagerGetter","_displayAPIGetter","_channelsAPIGetter","respondToEvent","streamResolve","streamReject","withConfig","updateWindow","copyOptions","windowState","tabAttached","tabDetached","onEvent","myGroup","onCompositionChanged","onGroupHeaderVisibilityChanged","onGroupVisibilityChanged","onGroupStateChanged","onWindowGotFocus","onWindowLostFocus","onWindowsAutoArrangeChanged","windowInfo","readyResolve","extendedStreamEvent","getExtendedStreamEvent","existingWindow","mapToWindowConstructorOptions","mapToGroupCreationArgs","createWindowFromSnapshot","windowInfoCreatedEvent","createWindowFromStream","windowObjectAndEvents","theWindow","theWindowEvents","windowInfoBoundsChangedEvent","windowInfoUrlChangedEvent","windowInfoTitleChanged","windowInfoIsStickyChangedChanged","windowInfoCompositionChanged","groupHeaderVisible","windowInfoFocusChanged","focusChanged","oldTabGroupId","newWindowId","prevWindowId","windowObjAndEvents","createWindowCore","isRemote","isFrameless","isHidden","isActiveTab","jumpListOptions","streamEvent","charAt","toUpperCase","groupFactory","callbackRegistry","_windowsId","_isHibernatedFlag","groupObject","_mapToWindowObjects","winObjects","windowObject","_mapToWindowObject","isHeaderVisible","isHibernated","showHeader","hideHeader","onHeaderVisibilityChanged","onWindowRemoved","internal","removeWindow","handleGroupVisibilityChanged","visibile","handleGroupHibernateChanged","isHibernatedFlag","groupAPI","groupInternal","groupsFactory","_groups","heardForWindowsCounter","findGroupByWindow","groupObj","waitForGroup","groupWrapper","onGroupAdded","createdGroupWrapper","createOrGet","deleteIfEmpty","findGroupWrapperByWindow","validateGroupIdArg","currentGroup","fromGroup","toGroup","moveWindow","groupEvents","groups","groupIds","idOrGroup","getMyGroup","onGroupRemoved","hibernate","resume","onHibernated","onResumed","groupsAPI","groupsEvents","onWindowMoved","WindowsFactory","channelsGetter","isReady","GD","webGroupsManager","envDetector","myWindow","windowAdded","windowRemoved","optionsAsAny","windowsForListing","findById","onTabAttached","unsubFunc","unsubscribed","onTabDetached","onArrangementChanged","store","layouts","removeWhere","condition","removeAll","where","first","ContextProvider","activitiesGetter","registerRequestMethods","onSaveRequested","activityIsOwner","usersCbs","requestResult","autoSaveWindowContext","windowContext","activityContext","transformACSLayout","something","convertedValue","LayoutImpl","components","defineProperty","LayoutType","SwimlaneItemType","swTheme","swConfiguration","__createBinding","o","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__exportStar","require$$0","require$$1","require$$2","require$$3","require$$4","LayoutsCommandMethod","LayoutsAPIImpl","isRegisterMethodForLayoutModified","activityGetter","setDefaultGlobal","invokeMethodCore","clearDefaultGlobal","getDefaultGlobal","isSlimMode","l","gotSnapshot","save","verifyNotSlimMode","layoutObject","ignoreInstances","setAsCurrent","invokeMethodAndTrack","activityIdToJoin","closeRunningInstance","closeRunningInstances","closeMe","restoreOptions","activityToJoin","ignoreActivityWindowTypes","reuseExistingWindows","reuseWindows","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","DisplayManager","callGD","DisplayCommand","GetAll","decorateDisplay","getPrimary","isPrimary","Capture","captureAll","CaptureAll","getMousePosition","GetMousePosition","original","decoratedDisplay","workAreaAsAny","GetByWindowId","onDisplayChanged","SingleChannelID","isJoinedToAnyChannel","isOnChannel","equals","MultiChannelId","ChannelDelimiter","newChannel","ch","T42_ANNOUNCE_METHOD_NAME","sendLeaveChannel","sendSwitchChannelUI","getRestrictionsByWindow","addOrRemoveChannel","label","getChannelsMode","operationMode","validateMode","swId","CONTEXT_PREFIX","LATEST_FDC3_TYPE","BaseSharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","rest","fdc3Context","fdc3","MultiSharedContextSubscriber","currentlySubscribedChannels","unsubscribeMap","switchChannel","newChannels","subscribeToChannel","channelsToLeave","unsubscribeFromChannel","usub","SharedContextSubscriber","ChannelsImpl","subsKey","changedKey","channelsChangedKey","isInitialJoin","pendingReplays","pendingRestrictionCallbacks","getMyChannels","currentChannelID","shared","subscribeForChannelRestrictionsChange","initial","initialChannel","getID","joinNoSelectorSwitch","contextType","getWrappedSubscribeCallbackWithFdc3Type","getWrappedSubscribeCallback","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","validatePathArgs","channelNames","validateFdc3Options","getContextWithFdc3Type","getMy","validateWindowIdArg","joinCore","leaveWhenMulti","leaveWhenSingle","leaveNoSelectorSwitch","myChannels","onChannelsChanged","changed","getWindowsOnChannel","validateChannelArg","validateWindowsWithChannelsFilter","er","restrict","restriction","validateRestrictionConfig","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","handleRestrictionsChanged","changeSelector","newId","verifyChannelExists","raiseChannelsChangedEvents","doesChannelExist","channelExistsPromise","intervalId","leaveCore","channelID","leaveCoreMulti","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","parsedType","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","didReplay","replayed","callbackWithTypesChecks","searchedType","parseDataAndInvokeSubscribeCallback","latestFdc3TypeEncoded","fdc3Data","encodedType","latestTypePropName","latestFDC3Type","isRestrictions","channelsReadyPromise","sharedContexts","interopLib","isSupported","channelsToJoin","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","getLibConfig","defaultMode","trueMode","getModeAsString","activitiesDefaultMode","layoutsDefaultMode","layoutsTrueMode","exposeAPI","exposeGlue","Glue42Notification","body","badge","dir","image","lang","renotify","requireInteraction","removeEventListener","dispatchEvent","PanelAPI","onStreamEvent","toggle","panelVisible","toAPI","Notifications","NotificationsSubscribeStream","NotificationsCounterStream","RaiseNotificationMethodName","NotificationsExecuteMethod","NotificationFilterMethodName","methodsRegistered","NOTIFICATIONS_CONFIGURE_METHOD_NAME","methodNameRoot","notifications","subscribedForNotifications","subscribedCounterStream","subscriptionsCountForNotifications","subscriptionsCountForCounter","_panel","onStreamEventCore","_panelAPI","subscribeInternalEvents","maxActions","panel","raise","notification","createNotification","g42notification","invocationResult","handleNotificationErrorEvent","setFilter","getFilter","enable","enableToasts","toastExpiry","sourceFilter","allowed","blocked","toasts","_e","_f","stackBy","placement","_g","_h","closeNotificationOnClick","statesVersion2","attribute","stringValue","onRaised","onStateChanged","onConfigurationChanged","closeStreamSubscriptionIfNoNeeded","onCounterChanged","subscribeForCounterStream","closeStreamCounterSubscriptionIfNoNeeded","onDataChanged","clearAll","clearOld","clearMany","validateNotificationsArr","click","snooze","snoozeMany","validateState","setStates","importNotifications","notificationsToImport","notificationOptions","notificationSettings","imported","bunchOfPromises","handleNotificationEvent","severity","glueRoutingDetailMethodName","sourceId","publishExtraEvents","clickInterop","handleActions","handleOptions","attributes","dataAsString","panelExpiry","validActions","g42notificationId","g42action","g42interopMethod","g42interopTarget","g42interopArguments","glueAction","displayPath","validStates","sendDeltaOnly","subscriptionForNotifications","handleData","subscriptionForCounter","count","handleOnClosed","handleOnShow","handleItemsData","deltas","handleDeltas","allApplications","dataAttribute","getNotification","gnsNotificationArgs","getGnsNotificationArgs","notificationId","handleNotificationEventCore","handleNotificationActionEvent","notificationActionPayload","handleNotificationClickEvent","onaction","onclick","sourceNotificationId","getBackwardGnsNotificationArgs","ThemesImpl","isSubscribed","getMethodName","getCurrent","select","theme","setMethodName","sharedContextName","getThemesMethodName","setThemesMethodName","connectBrowserAppProps","fdc3v2AppProps","ok","map2","f","ar","mapError","__assign","isEqual","isJsonArray","json","isJsonObject","expectedGot","expected","got","typeString","printPath","prependAt","newAt","__rest","Decoder","decode","_this","run","kind","runPromise","runWithException","withException","andThen","succeed","number","boolean","constant","decoders","decoder","err$$1","decodeValue_1","tuple","nth","union","ad","bd","oneOf","intersection","ds","anyJson","unknownJson","dict","optional","errors","errorsList","withDefault","defaultValue","valueAt","jsonAtPath","fixedValue","lazy","mkDecoder","nonEmptyStringDecoder","nonNegativeNumberDecoder","intentDefinitionDecoder","customConfig","v2TypeDecoder","v2DetailsDecoder","v2IconDecoder","src","v2ScreenshotDecoder","v2ListensForIntentDecoder","resultType","v2IntentsDecoder","listensFor","raises","v2UserChannelDecoder","broadcasts","v2AppChannelDecoder","v2InteropDecoder","intents","userChannels","appChannels","glue42ApplicationDetailsDecoder","glue42HostManifestsBrowserDecoder","customProperties","v1DefinitionDecoder","appId","manifest","manifestType","contactEmail","supportEmail","publisher","images","icons","v2LocalizedDefinitionDecoder","screenshots","moreInfo","hostManifests","v2DefinitionDecoder","localizedVersions","allDefinitionsDecoder","parseDecoderErrorToStringMessage","FDC3Service","fdc3ToDesktopDefinitionType","web","native","citrix","onlineNative","toApi","isFdc3Definition","parseToBrowserBaseAppData","parseToDesktopAppConfig","decodeRes","isFdc3","getUserPropertiesFromDefinition","createOptions","getUrl","baseApplicationData","getIntentsFromV2AppDefinition","getIconFromDefinition","definitionVersion","ioConnectDefinition","ioConnect","ioDefinitionDecodeRes","mergeBaseAppDataWithGlueManifest","fdc3v1Definition","fdc3v2Definition","desktopDefinition","mergeDesktopConfigWithGlueManifest","fromEntries","parsedManifest","fdc3Intents","fdc3Intent","intentName","intentData","iconDef","baseAppData","hostManifestDefinition","baseApplicationDefinition","appConfig","decoders$1","common","INTENTS_ERRORS","ioc","_fdc3","_decoders","_errors","GLUE42_FDC3_INTENTS_METHOD_PREFIX","INTENT_HANDLER_DEFAULT_PROPS","ERRORS","PromiseWrap","promiseActive","validateResolverResponse","responseObj","intent","isValid","userSettings","preserveChoice","compulsoryKeysExist","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","addedHandlerInfoPerApp","checkIfIntentsResolverIsEnabled","intentFilter","ctToLower","contextTypes","ct","resultTypeToLower","intentRequest","removeRememberedHandler","resolverInstance","resultFromRememberedHandler","checkHandleRaiseWithRememberedHandler","coreRaiseIntentFn","coreRaiseIntent","TIMEOUT_HIT","handleRaiseOnError","withIntentsInfo","appsWithIntents","intentDef","applicationTitle","applicationDescription","applicationIcon","serverWindowIds","serverWindowId","T42WndGetInfo","windowsInfos","windowsIdToTitle","constructIntentHandler","addIntentListener","registerPromise","intentFlag","buildInteropMethodName","unsubscribeIntent","filterHandlers","handlerFilter","openResolver","applicationNames","ctx","validateHandlerFilter","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","instanceTitle","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","onHandlerAdded","unAppAdded","appDef","constructIntentHandlerFromApp","unServerMethodAdded","intentsInfo","onHandlerRemoved","unAppRemoved","addedHandlerInfo","filteredIntentsWithHandlers","INTENT_NOT_FOUND","checkIfResolverShouldBeOpenedForRaise","raiseIntent","resolverHandler","raiseIntentToTargetHandler","registeredIntent","firstFoundAppHandler","findHandlerByFilter","firstFoundInstanceHandler","instanceIdPromise","invokeStartApp","reasonMsg","TARGET_INSTANCE_UNAVAILABLE","invokeOptions","INTENT_HANDLER_REJECTION","intentsResolverAppName","responseMethodName","registerIntentResolverMethod","startContext","buildStartContext","startOptions","buildStartOptions","subscribeOnInstanceStopped","createResponsePromise","handleInstanceResponse","initialCaller","windowsInfo","subMessage","stopResolverInstance","saveUserChoice","resolverResponseHandler","validResponse","cleanUpIntentResolverPromise","myAppName","myAppTitle","baseStartContext","resolverApi","getResolverStartupTopBound","minWorkareaHeight","startedByIntentAPI","intentPromise","gdWin","enableIntentsResolverUI","intentsResolverResponseTimeout","checkOpen","checkIfIntentsResolverShouldBeOpened","checkIfIntentHasMoreThanOneHandler","removeSingletons","searchedAppName","isSingleton","currentHandlers","clearUnregistrationPromise","promiseToRemove","unregisterPromise","validIntentsWithInfo","currentHandler","intentWithInfo","prefs","intentPrefs","updatedPrefs","checkForRememberedHandler","prefsForIntent","rememberedHandler","prevPrefs","prevIntentsPrefs","prefsToUpdate","appWithIntents","appIntent","appDefIntent","Prefs","interopMethodRegistered","T42GetPrefsMethodName","verifyDataObject","T42SetPrefsMethodName","setFor","verifyApp","updateFor","clearFor","verifyCallback","unsubscribeFn","registerInteropIfNeeded","T42UpdatePrefsMethodName","Cookies","cookies","cookie","verifyCookieObject","secure","httpOnly","expirationDate","EventsDispatcher","glue42EventName","notifyStarted","handleNotifyStarted","requestGlue","handleRequestGlue","wireCustomEventListener","announceStarted","detail","glue42","glue42Event","foundHandler","CustomEvent","delayForever","Interception","InterceptorMethodName","InterceptorHandlerMethodName","interceptions","validateInterceptions","registerMethodIfNotRegistered","interception","handleInterception","operationArgs","phase","createProxyObject","apiToIntercept","OperationsPerDomain","Proxy","propertyKey","receiver","property","Reflect","shouldIntercept","isAwaitable","interceptMethod","originalMethod","beforeInterceptionResult","operationResult","afterInterceptionResult","whenRegisteredPromise","raisedInterception","interceptor","validateTypeString","isValidType","callInfo","initialized","addCall","g","firstRun","factoryCore","_displays","_channels","_prefs","_interceptors","_browserEventsDispatcher","getLibLogger","newLogger","loggerConfig","core","windowsLogger","debugLog","activityLogger","layoutsConfig","lay","acsStream","LayoutsFactory","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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AAS8uC,GAASj6E,MAClBo1C,QAAS6kC,GAAS+B,IAClBH,QAAS5B,GAASliF,GAAM8iF,KACxBxvC,OAAQ4uC,GAASjB,QAEfmD,GAAsB//E,GAAO,CAC/BzyB,KAAMgxG,GACNyB,MAAOzB,GACPppG,MAAO0oG,GAASU,IAChBpmF,QAAS0lF,GAASU,IAClB0B,SAAU1B,GACV2B,aAAc3B,GACd53B,QAASk3B,GAASU,IAClBlxG,YAAawwG,GAASU,IACtB4B,aAActC,GAASU,IACvB6B,aAAcvC,GAASU,IACvB8B,UAAWxC,GAASU,IACpB+B,OAAQzC,GAASliF,GAAMqE,GAAO,CAAE5M,IAAKyqF,GAASU,QAC9CgC,MAAO1C,GAASliF,GAAMqE,GAAO,CAAE2vC,KAAMkuC,GAASU,QAC9CG,aAAchB,KACd+B,QAAS5B,GAASliF,GAAM8iF,OAEtB+B,GAA+BxgF,GAAO,CACxCggF,MAAOnC,GAASU,IAChBhxG,KAAMswG,GAASU,IACfvlC,QAAS6kC,GAASe,IAClBzmF,QAAS0lF,GAASU,IAClBppG,MAAO0oG,GAASU,IAChB53B,QAASk3B,GAASU,IAClB9L,KAAMoL,GAASU,IACflxG,YAAawwG,GAASU,IACtBxiC,WAAY8hC,GAASliF,GAAM4iF,KAC3BgC,MAAO1C,GAASliF,GAAMkjF,KACtB4B,YAAa5C,GAASliF,GAAMojF,KAC5BoB,aAActC,GAASU,IACvB6B,aAAcvC,GAASU,IACvBmC,SAAU7C,GAASU,IACnB8B,UAAWxC,GAASU,IACpBG,aAAcb,GAASliF,GAAM+hF,OAC7BiD,cAAe9C,GAASH,MACxBlnF,QAASqnF,GAAS2B,MAEhBoB,GAAsB5gF,GAAO,CAC/BggF,MAAOzB,GACPhxG,KAAMgxG,GACNlyG,KAAMsyG,GACN3lC,QAAS4lC,GACTzmF,QAAS0lF,GAASU,IAClBppG,MAAO0oG,GAASU,IAChB53B,QAASk3B,GAASU,IAClB9L,KAAMoL,GAASU,IACflxG,YAAawwG,GAASU,IACtBxiC,WAAY8hC,GAASliF,GAAM4iF,KAC3BgC,MAAO1C,GAASliF,GAAMkjF,K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","x_google_ignoreList":[0,22,26,73]}
1
+ {"version":3,"file":"desktop.browser.min.js","sources":["../node_modules/@interopio/core/dist/core.es.js","../src/activity/entities/activityEntity.ts","../src/activity/helpers/util.ts","../src/activity/entities/activityType.ts","../src/activity/entities/windowType.ts","../src/activity/contracts/entityEvent.ts","../src/activity/core/activityAGM.ts","../src/activity/entities/attachedActivityDescriptor.ts","../src/activity/helpers/promiseExtensions.ts","../src/activity/entities/activity.ts","../src/activity/helpers/logger.ts","../src/activity/entities/activityWindow.ts","../src/activity/contracts/activityStatus.ts","../src/activity/bridges/gw3Bridge.ts","../src/activity/API/activityMyAPI.ts","../src/activity/helpers/readyMarker.ts","../src/activity/helpers/entityObservableCollection.ts","../src/activity/core/activityManager.ts","../src/activity/API/activityManagementAPI.ts","../src/activity/API/activityAPI.ts","../src/activity/activityModule.ts","../src/app-manager/const/agm-names.ts","../node_modules/callback-registry/lib/index.js","../src/app-manager/helper.ts","../src/constants.ts","../src/utils.ts","../../../node_modules/nanoid/non-secure/index.js","../src/app-manager/application.ts","../src/app-manager/instance.ts","../src/app-manager/app-manager.ts","../src/app-manager/entitlements.ts","../src/app-manager/in-memory.ts","../src/app-manager/main.ts","../src/app-manager/snapshot.ts","../src/app-manager/data-subscription.ts","../src/windows/jumpList/manager.ts","../src/windows/store.ts","../src/windows/jumpList/actions.ts","../src/windows/jumpList/categories.ts","../src/windows/jumpList/main.ts","../src/windows/window.ts","../src/windows/environment/helpers.ts","../src/windows/environment/gd/executor.ts","../src/windows/environment/gd/gd.ts","../src/windows/environment/detector.ts","../src/windows/group.ts","../src/windows/groups.ts","../src/windows/main.ts","../src/layouts/store.ts","../src/layouts/contextProvider.ts","../src/layouts/transform.ts","../src/layouts/layout.ts","../../schemas/app/application.js","../../schemas/app/system.js","../../schemas/app/layout.js","../../schemas/app/swTheme.js","../../schemas/app/swConfiguration.js","../../schemas/app/main.js","../src/layouts/layouts.ts","../src/layouts/stream/acsStream.ts","../src/displays/displayManager.ts","../src/channels/channelIDUtils.ts","../src/channels/agm.ts","../src/channels/contexts.ts","../src/channels/channels.ts","../src/channels/helpers.ts","../src/hotkeys/hotkeys.ts","../src/config.ts","../src/notifications/notification.ts","../src/notifications/panel.ts","../src/notifications/main.ts","../src/themes/themes.ts","../node_modules/@interopio/utils/dist/utils.es.js","../src/intents/constants.ts","../src/intents/common.ts","../src/intents/helpers.ts","../src/intents/intents.ts","../src/prefs/index.ts","../src/cookies/index.ts","../src/eventsDispatcher.ts","../../../app/utils/promise.js","../src/interception/main.ts","../src/glue.ts","../src/factoryCallInfo.ts","../src/layouts/main.ts","../src/channels/main.ts","../src/hotkeys/main.ts","../src/themes/main.ts","../src/cookies/main.ts","../src/index.ts"],"sourcesContent":["var MetricTypes = {\n STRING: 1,\n NUMBER: 2,\n TIMESTAMP: 3,\n OBJECT: 4\n};\n\nfunction getMetricTypeByValue(metric) {\n if (metric.type === MetricTypes.TIMESTAMP) {\n return \"timestamp\";\n }\n else if (metric.type === MetricTypes.NUMBER) {\n return \"number\";\n }\n else if (metric.type === MetricTypes.STRING) {\n return \"string\";\n }\n else if (metric.type === MetricTypes.OBJECT) {\n return \"object\";\n }\n return \"unknown\";\n}\nfunction getTypeByValue(value) {\n if (value.constructor === Date) {\n return \"timestamp\";\n }\n else if (typeof value === \"number\") {\n return \"number\";\n }\n else if (typeof value === \"string\") {\n return \"string\";\n }\n else if (typeof value === \"object\") {\n return \"object\";\n }\n else {\n return \"string\";\n }\n}\nfunction serializeMetric(metric) {\n const serializedMetrics = {};\n const type = getMetricTypeByValue(metric);\n if (type === \"object\") {\n const values = Object.keys(metric.value).reduce((memo, key) => {\n const innerType = getTypeByValue(metric.value[key]);\n if (innerType === \"object\") {\n const composite = defineNestedComposite(metric.value[key]);\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite,\n };\n }\n else {\n memo[key] = {\n type: innerType,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n serializedMetrics.composite = values;\n }\n serializedMetrics.name = normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name);\n serializedMetrics.type = type;\n serializedMetrics.description = metric.description;\n serializedMetrics.context = {};\n return serializedMetrics;\n}\nfunction defineNestedComposite(values) {\n return Object.keys(values).reduce((memo, key) => {\n const type = getTypeByValue(values[key]);\n if (type === \"object\") {\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite: defineNestedComposite(values[key]),\n };\n }\n else {\n memo[key] = {\n type,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n}\nfunction normalizeMetricName(name) {\n if (typeof name !== \"undefined\" && name.length > 0 && name[0] !== \"/\") {\n return \"/\" + name;\n }\n else {\n return name;\n }\n}\nfunction getMetricValueByType(metric) {\n const type = getMetricTypeByValue(metric);\n if (type === \"timestamp\") {\n return Date.now();\n }\n else {\n return publishNestedComposite(metric.value);\n }\n}\nfunction publishNestedComposite(values) {\n if (typeof values !== \"object\") {\n return values;\n }\n return Object.keys(values).reduce((memo, key) => {\n const value = values[key];\n if (typeof value === \"object\" && value.constructor !== Date) {\n memo[key] = publishNestedComposite(value);\n }\n else if (value.constructor === Date) {\n memo[key] = new Date(value).getTime();\n }\n else if (value.constructor === Boolean) {\n memo[key] = value.toString();\n }\n else {\n memo[key] = value;\n }\n return memo;\n }, {});\n}\nfunction flatten(arr) {\n return arr.reduce((flat, toFlatten) => {\n return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);\n }, []);\n}\nfunction getHighestState(arr) {\n return arr.sort((a, b) => {\n if (!a.state) {\n return 1;\n }\n if (!b.state) {\n return -1;\n }\n return b.state - a.state;\n })[0];\n}\nfunction aggregateDescription(arr) {\n let msg = \"\";\n arr.forEach((m, idx, a) => {\n const path = m.path.join(\".\");\n if (idx === a.length - 1) {\n msg += path + \".\" + m.name + \": \" + m.description;\n }\n else {\n msg += path + \".\" + m.name + \": \" + m.description + \",\";\n }\n });\n if (msg.length > 100) {\n return msg.slice(0, 100) + \"...\";\n }\n else {\n return msg;\n }\n}\nfunction composeMsgForRootStateMetric(system) {\n const aggregatedState = system.root.getAggregateState();\n const merged = flatten(aggregatedState);\n const highestState = getHighestState(merged);\n const aggregateDesc = aggregateDescription(merged);\n return {\n description: aggregateDesc,\n value: highestState.state,\n };\n}\n\nfunction gw3 (connection, config) {\n if (!connection || typeof connection !== \"object\") {\n throw new Error(\"Connection is required parameter\");\n }\n let joinPromise;\n let session;\n const init = (repo) => {\n let resolveReadyPromise;\n joinPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n session = connection.domain(\"metrics\");\n session.onJoined((reconnect) => {\n if (!reconnect && resolveReadyPromise) {\n resolveReadyPromise();\n resolveReadyPromise = undefined;\n }\n const rootStateMetric = {\n name: \"/State\",\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const defineRootMetricsMsg = {\n type: \"define\",\n metrics: [rootStateMetric],\n };\n session.send(defineRootMetricsMsg);\n if (reconnect) {\n replayRepo(repo);\n }\n });\n session.join({\n system: config.system,\n service: config.service,\n instance: config.instance\n });\n };\n const replayRepo = (repo) => {\n replaySystem(repo.root);\n };\n const replaySystem = (system) => {\n createSystem(system);\n system.metrics.forEach((m) => {\n createMetric(m);\n });\n system.subSystems.forEach((ss) => {\n replaySystem(ss);\n });\n };\n const createSystem = async (system) => {\n if (system.parent === undefined) {\n return;\n }\n await joinPromise;\n const metric = {\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const createMetricsMsg = {\n type: \"define\",\n metrics: [metric],\n };\n session.send(createMetricsMsg);\n };\n const updateSystem = async (system, state) => {\n await joinPromise;\n const shadowedUpdateMetric = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n value: {\n Description: state.description,\n Value: state.state,\n },\n timestamp: Date.now(),\n }],\n };\n session.send(shadowedUpdateMetric);\n const stateObj = composeMsgForRootStateMetric(system);\n const rootMetric = {\n type: \"publish\",\n peer_id: connection.peerId,\n values: [{\n name: \"/State\",\n value: {\n Description: stateObj.description,\n Value: stateObj.value,\n },\n timestamp: Date.now(),\n }],\n };\n session.send(rootMetric);\n };\n const createMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n const m = serializeMetric(metricClone);\n const createMetricsMsg = {\n type: \"define\",\n metrics: [m],\n };\n session.send(createMetricsMsg);\n if (typeof metricClone.value !== \"undefined\") {\n updateMetricCore(metricClone);\n }\n };\n const updateMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n updateMetricCore(metricClone);\n };\n const updateMetricCore = (metric) => {\n if (canUpdate()) {\n const value = getMetricValueByType(metric);\n const publishMetricsMsg = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name),\n value,\n timestamp: Date.now(),\n }],\n };\n return session.sendFireAndForget(publishMetricsMsg);\n }\n return Promise.resolve();\n };\n const cloneMetric = (metric) => {\n const metricClone = { ...metric };\n if (typeof metric.value === \"object\" && metric.value !== null) {\n metricClone.value = { ...metric.value };\n }\n return metricClone;\n };\n const canUpdate = () => {\n try {\n const func = config.canUpdateMetric ?? (() => true);\n return func();\n }\n catch {\n return true;\n }\n };\n return {\n init,\n createSystem,\n updateSystem,\n createMetric,\n updateMetric,\n };\n}\n\nvar Helpers = {\n validate: (definition, parent, transport) => {\n if (definition === null || typeof definition !== \"object\") {\n throw new Error(\"Missing definition\");\n }\n if (parent === null || typeof parent !== \"object\") {\n throw new Error(\"Missing parent\");\n }\n if (transport === null || typeof transport !== \"object\") {\n throw new Error(\"Missing transport\");\n }\n },\n};\n\nclass BaseMetric {\n definition;\n system;\n transport;\n value;\n type;\n path = [];\n name;\n description;\n get repo() {\n return this.system?.repo;\n }\n get id() { return `${this.system.path}/${name}`; }\n constructor(definition, system, transport, value, type) {\n this.definition = definition;\n this.system = system;\n this.transport = transport;\n this.value = value;\n this.type = type;\n Helpers.validate(definition, system, transport);\n this.path = system.path.slice(0);\n this.path.push(system.name);\n this.name = definition.name;\n this.description = definition.description;\n transport.createMetric(this);\n }\n update(newValue) {\n this.value = newValue;\n return this.transport.updateMetric(this);\n }\n}\n\nclass NumberMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.NUMBER);\n }\n incrementBy(num) {\n this.update(this.value + num);\n }\n increment() {\n this.incrementBy(1);\n }\n decrement() {\n this.incrementBy(-1);\n }\n decrementBy(num) {\n this.incrementBy(num * -1);\n }\n}\n\nclass ObjectMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.OBJECT);\n }\n update(newValue) {\n this.mergeValues(newValue);\n return this.transport.updateMetric(this);\n }\n mergeValues(values) {\n return Object.keys(this.value).forEach((k) => {\n if (typeof values[k] !== \"undefined\") {\n this.value[k] = values[k];\n }\n });\n }\n}\n\nclass StringMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.STRING);\n }\n}\n\nclass TimestampMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.TIMESTAMP);\n }\n now() {\n this.update(new Date());\n }\n}\n\nfunction system(name, repo, protocol, parent, description) {\n if (!repo) {\n throw new Error(\"Repository is required\");\n }\n if (!protocol) {\n throw new Error(\"Transport is required\");\n }\n const _transport = protocol;\n const _name = name;\n const _description = description || \"\";\n const _repo = repo;\n const _parent = parent;\n const _path = _buildPath(parent);\n let _state = {};\n const id = _arrayToString(_path, \"/\") + name;\n const root = repo.root;\n const _subSystems = [];\n const _metrics = [];\n function subSystem(nameSystem, descriptionSystem) {\n if (!nameSystem || nameSystem.length === 0) {\n throw new Error(\"name is required\");\n }\n const match = _subSystems.filter((s) => s.name === nameSystem);\n if (match.length > 0) {\n return match[0];\n }\n const _system = system(nameSystem, _repo, _transport, me, descriptionSystem);\n _subSystems.push(_system);\n return _system;\n }\n function setState(state, stateDescription) {\n _state = { state, description: stateDescription };\n _transport.updateSystem(me, _state);\n }\n function stringMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.STRING, value, (metricDef) => new StringMetric(metricDef, me, _transport, value));\n }\n function numberMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.NUMBER, value, (metricDef) => new NumberMetric(metricDef, me, _transport, value));\n }\n function objectMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.OBJECT, value, (metricDef) => new ObjectMetric(metricDef, me, _transport, value));\n }\n function timestampMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.TIMESTAMP, value, (metricDef) => new TimestampMetric(metricDef, me, _transport, value));\n }\n function _getOrCreateMetric(metricObject, expectedType, value, createMetric) {\n let metricDef = { name: \"\" };\n if (typeof metricObject === \"string\") {\n metricDef = { name: metricObject };\n }\n else {\n metricDef = metricObject;\n }\n const matching = _metrics.filter((shadowedMetric) => shadowedMetric.name === metricDef.name);\n if (matching.length > 0) {\n const existing = matching[0];\n if (existing.type !== expectedType) {\n throw new Error(`A metric named ${metricDef.name} is already defined with different type.`);\n }\n if (typeof value !== \"undefined\") {\n existing\n .update(value)\n .catch(() => { });\n }\n return existing;\n }\n const metric = createMetric(metricDef);\n _metrics.push(metric);\n return metric;\n }\n function _buildPath(shadowedSystem) {\n if (!shadowedSystem || !shadowedSystem.parent) {\n return [];\n }\n const path = _buildPath(shadowedSystem.parent);\n path.push(shadowedSystem.name);\n return path;\n }\n function _arrayToString(path, separator) {\n return ((path && path.length > 0) ? path.join(separator) : \"\");\n }\n function getAggregateState() {\n const aggState = [];\n if (Object.keys(_state).length > 0) {\n aggState.push({\n name: _name,\n path: _path,\n state: _state.state,\n description: _state.description,\n });\n }\n _subSystems.forEach((shadowedSubSystem) => {\n const result = shadowedSubSystem.getAggregateState();\n if (result.length > 0) {\n aggState.push(...result);\n }\n });\n return aggState;\n }\n const me = {\n get name() {\n return _name;\n },\n get description() {\n return _description;\n },\n get repo() {\n return _repo;\n },\n get parent() {\n return _parent;\n },\n path: _path,\n id,\n root,\n get subSystems() {\n return _subSystems;\n },\n get metrics() {\n return _metrics;\n },\n subSystem,\n getState: () => {\n return _state;\n },\n setState,\n stringMetric,\n timestampMetric,\n objectMetric,\n numberMetric,\n getAggregateState,\n };\n _transport.createSystem(me);\n return me;\n}\n\nclass Repository {\n root;\n constructor(options, protocol) {\n protocol.init(this);\n this.root = system(\"\", this, protocol);\n this.addSystemMetrics(this.root, options.clickStream || options.clickStream === undefined);\n }\n addSystemMetrics(rootSystem, useClickStream) {\n if (typeof navigator !== \"undefined\") {\n rootSystem.stringMetric(\"UserAgent\", navigator.userAgent);\n }\n if (useClickStream && typeof document !== \"undefined\") {\n const clickStream = rootSystem.subSystem(\"ClickStream\");\n const documentClickHandler = (e) => {\n if (!e.target) {\n return;\n }\n const target = e.target;\n const className = target ? target.getAttribute(\"class\") ?? \"\" : \"\";\n clickStream.objectMetric(\"LastBrowserEvent\", {\n type: \"click\",\n timestamp: new Date(),\n target: {\n className,\n id: target.id,\n type: \"<\" + target.tagName.toLowerCase() + \">\",\n href: target.href || \"\",\n },\n });\n };\n clickStream.objectMetric(\"Page\", {\n title: document.title,\n page: window.location.href,\n });\n if (document.addEventListener) {\n document.addEventListener(\"click\", documentClickHandler);\n }\n else {\n document.attachEvent(\"onclick\", documentClickHandler);\n }\n }\n rootSystem.stringMetric(\"StartTime\", (new Date()).toString());\n const urlMetric = rootSystem.stringMetric(\"StartURL\", \"\");\n const appNameMetric = rootSystem.stringMetric(\"AppName\", \"\");\n if (typeof window !== \"undefined\") {\n if (typeof window.location !== \"undefined\") {\n const startUrl = window.location.href;\n urlMetric.update(startUrl);\n }\n if (typeof window.glue42gd !== \"undefined\") {\n appNameMetric.update(window.glue42gd.appName);\n }\n }\n }\n}\n\nclass NullProtocol {\n init(repo) {\n }\n createSystem(system) {\n return Promise.resolve();\n }\n updateSystem(metric, state) {\n return Promise.resolve();\n }\n createMetric(metric) {\n return Promise.resolve();\n }\n updateMetric(metric) {\n return Promise.resolve();\n }\n}\n\nclass PerfTracker {\n api;\n lastCount = 0;\n initialPublishTimeout = 10 * 1000;\n publishInterval = 60 * 1000;\n system;\n constructor(api, initialPublishTimeout, publishInterval) {\n this.api = api;\n this.initialPublishTimeout = initialPublishTimeout ?? this.initialPublishTimeout;\n this.publishInterval = publishInterval ?? this.publishInterval;\n this.scheduleCollection();\n this.system = this.api.subSystem(\"performance\", \"Performance data published by the web application\");\n }\n scheduleCollection() {\n setTimeout(() => {\n this.collect();\n setInterval(() => {\n this.collect();\n }, this.publishInterval);\n }, this.initialPublishTimeout);\n }\n collect() {\n try {\n this.collectMemory();\n this.collectEntries();\n }\n catch {\n }\n }\n collectMemory() {\n const memory = window.performance.memory;\n this.system.stringMetric(\"memory\", JSON.stringify({\n totalJSHeapSize: memory.totalJSHeapSize,\n usedJSHeapSize: memory.usedJSHeapSize\n }));\n }\n collectEntries() {\n const allEntries = window.performance.getEntries();\n if (allEntries.length <= this.lastCount) {\n return;\n }\n this.lastCount = allEntries.length;\n const jsonfiedEntries = allEntries.map((i) => i.toJSON());\n this.system.stringMetric(\"entries\", JSON.stringify(jsonfiedEntries));\n }\n}\n\nvar metrics = (options) => {\n let protocol;\n if (!options.connection || typeof options.connection !== \"object\") {\n protocol = new NullProtocol();\n }\n else {\n protocol = gw3(options.connection, options);\n }\n const repo = new Repository(options, protocol);\n let rootSystem = repo.root;\n if (!options.disableAutoAppSystem) {\n rootSystem = rootSystem.subSystem(\"App\");\n }\n const api = addFAVSupport(rootSystem);\n initPerf(api, options.pagePerformanceMetrics);\n return api;\n};\nfunction initPerf(api, config) {\n if (typeof window === \"undefined\") {\n return;\n }\n const perfConfig = window?.glue42gd?.metrics?.pagePerformanceMetrics;\n if (perfConfig) {\n config = perfConfig;\n }\n if (config?.enabled) {\n new PerfTracker(api, config.initialPublishTimeout, config.publishInterval);\n }\n}\nfunction addFAVSupport(system) {\n const reportingSystem = system.subSystem(\"reporting\");\n const def = {\n name: \"features\"\n };\n let featureMetric;\n const featureMetricFunc = (name, action, payload) => {\n if (typeof name === \"undefined\" || name === \"\") {\n throw new Error(\"name is mandatory\");\n }\n else if (typeof action === \"undefined\" || action === \"\") {\n throw new Error(\"action is mandatory\");\n }\n else if (typeof payload === \"undefined\" || payload === \"\") {\n throw new Error(\"payload is mandatory\");\n }\n if (!featureMetric) {\n featureMetric = reportingSystem.objectMetric(def, { name, action, payload });\n }\n else {\n featureMetric.update({\n name,\n action,\n payload\n });\n }\n };\n system.featureMetric = featureMetricFunc;\n return system;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\ncreateRegistry.default = createRegistry;\nvar lib = createRegistry;\n\n\nvar CallbackRegistryFactory = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass InProcTransport {\n gw;\n registry = CallbackRegistryFactory();\n client;\n constructor(settings, logger) {\n this.gw = settings.facade;\n this.gw.connect((_client, message) => {\n this.messageHandler(message);\n }).then((client) => {\n this.client = client;\n });\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n if (this.client) {\n this.client.send(msg);\n return Promise.resolve(undefined);\n }\n else {\n return Promise.reject(`not connected`);\n }\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"in-memory\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass SharedWorkerTransport {\n logger;\n worker;\n registry = CallbackRegistryFactory();\n constructor(workerFile, logger) {\n this.logger = logger;\n this.worker = new SharedWorker(workerFile);\n this.worker.port.onmessage = (e) => {\n this.messageHandler(e.data);\n };\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n this.worker.port.postMessage(msg);\n return Promise.resolve();\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"shared-worker\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass Utils {\n static isNode() {\n if (typeof Utils._isNode !== \"undefined\") {\n return Utils._isNode;\n }\n if (typeof window !== \"undefined\") {\n Utils._isNode = false;\n return false;\n }\n try {\n Utils._isNode = Object.prototype.toString.call(global.process) === \"[object process]\";\n }\n catch (e) {\n Utils._isNode = false;\n }\n return Utils._isNode;\n }\n static _isNode;\n}\n\nclass PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n resolve;\n reject;\n promise;\n rejected = false;\n resolved = false;\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\n\nconst timers = {};\nfunction getAllTimers() {\n return timers;\n}\nfunction timer (timerName) {\n const existing = timers[timerName];\n if (existing) {\n return existing;\n }\n const marks = [];\n function now() {\n return new Date().getTime();\n }\n const startTime = now();\n mark(\"start\", startTime);\n let endTime;\n let period;\n function stop() {\n endTime = now();\n mark(\"end\", endTime);\n period = endTime - startTime;\n return period;\n }\n function mark(name, time) {\n const currentTime = time ?? now();\n let diff = 0;\n if (marks.length > 0) {\n diff = currentTime - marks[marks.length - 1].time;\n }\n marks.push({ name, time: currentTime, diff });\n }\n const timerObj = {\n get startTime() {\n return startTime;\n },\n get endTime() {\n return endTime;\n },\n get period() {\n return period;\n },\n stop,\n mark,\n marks\n };\n timers[timerName] = timerObj;\n return timerObj;\n}\n\nconst WebSocketConstructor = Utils.isNode() ? require(\"ws\") : window.WebSocket;\nclass WS {\n ws;\n logger;\n settings;\n startupTimer = timer(\"connection\");\n _running = true;\n _registry = CallbackRegistryFactory();\n wsRequests = [];\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n if (!this.settings.ws) {\n throw new Error(\"ws is missing\");\n }\n }\n onMessage(callback) {\n return this._registry.add(\"onMessage\", callback);\n }\n send(msg, options) {\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(() => {\n try {\n this.ws?.send(msg);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n });\n }\n open() {\n this.logger.info(\"opening ws...\");\n this._running = true;\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(resolve, reject);\n });\n }\n close() {\n this._running = false;\n if (this.ws) {\n this.ws.close();\n }\n return Promise.resolve();\n }\n onConnectedChanged(callback) {\n return this._registry.add(\"onConnectedChanged\", callback);\n }\n name() {\n return this.settings.ws;\n }\n reconnect() {\n this.ws?.close();\n const pw = new PromiseWrapper();\n this.waitForSocketConnection(() => {\n pw.resolve();\n });\n return pw.promise;\n }\n waitForSocketConnection(callback, failed) {\n failed = failed ?? (() => { });\n if (!this._running) {\n failed(`wait for socket on ${this.settings.ws} failed - socket closed by user`);\n return;\n }\n if (this.ws?.readyState === 1) {\n callback();\n return;\n }\n this.wsRequests.push({ callback, failed });\n if (this.wsRequests.length > 1) {\n return;\n }\n this.openSocket();\n }\n async openSocket(retryInterval, retriesLeft) {\n this.logger.info(`opening ws to ${this.settings.ws}, retryInterval: ${retryInterval}, retriesLeft: ${retriesLeft}...`);\n this.startupTimer.mark(\"opening-socket\");\n if (retryInterval === undefined) {\n retryInterval = this.settings.reconnectInterval;\n }\n if (typeof retriesLeft === \"undefined\") {\n retriesLeft = this.settings.reconnectAttempts;\n }\n if (retriesLeft !== undefined) {\n if (retriesLeft === 0) {\n this.notifyForSocketState(`wait for socket on ${this.settings.ws} failed - no more retries left`);\n return;\n }\n this.logger.debug(`will retry ${retriesLeft} more times (every ${retryInterval} ms)`);\n }\n try {\n await this.initiateSocket();\n this.startupTimer.mark(\"socket-initiated\");\n this.notifyForSocketState();\n }\n catch {\n setTimeout(() => {\n const retries = retriesLeft === undefined ? undefined : retriesLeft - 1;\n this.openSocket(retryInterval, retries);\n }, retryInterval);\n }\n }\n initiateSocket() {\n const pw = new PromiseWrapper();\n this.logger.debug(`initiating ws to ${this.settings.ws}...`);\n this.ws = new WebSocketConstructor(this.settings.ws ?? \"\");\n this.ws.onerror = (err) => {\n let reason = \"\";\n try {\n reason = JSON.stringify(err);\n }\n catch (error) {\n const seen = new WeakSet();\n const replacer = (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n reason = JSON.stringify(err, replacer);\n }\n this.logger.info(`ws error - reason: ${reason}`);\n pw.reject(\"error\");\n this.notifyStatusChanged(false, reason);\n };\n this.ws.onclose = (err) => {\n this.logger.info(`ws closed - code: ${err?.code} reason: ${err?.reason}`);\n pw.reject(\"closed\");\n this.notifyStatusChanged(false);\n };\n this.ws.onopen = () => {\n this.startupTimer.mark(\"ws-opened\");\n this.logger.info(`ws opened ${this.settings.identity?.application}`);\n pw.resolve();\n this.notifyStatusChanged(true);\n };\n this.ws.onmessage = (message) => {\n this._registry.execute(\"onMessage\", message.data);\n };\n return pw.promise;\n }\n notifyForSocketState(error) {\n this.wsRequests.forEach((wsRequest) => {\n if (error) {\n if (wsRequest.failed) {\n wsRequest.failed(error);\n }\n }\n else {\n wsRequest.callback();\n }\n });\n this.wsRequests = [];\n }\n notifyStatusChanged(status, reason) {\n this._registry.execute(\"onConnectedChanged\", status, reason);\n }\n}\n\nclass MessageReplayerImpl {\n specs;\n specsNames = [];\n messages = {};\n isDone;\n subs = {};\n subsRefCount = {};\n connection;\n constructor(specs) {\n this.specs = {};\n for (const spec of specs) {\n this.specs[spec.name] = spec;\n this.specsNames.push(spec.name);\n }\n }\n init(connection) {\n this.connection = connection;\n for (const name of this.specsNames) {\n for (const type of this.specs[name].types) {\n let refCount = this.subsRefCount[type];\n if (!refCount) {\n refCount = 0;\n }\n refCount += 1;\n this.subsRefCount[type] = refCount;\n if (refCount > 1) {\n continue;\n }\n const sub = connection.on(type, (msg) => this.processMessage(type, msg));\n this.subs[type] = sub;\n }\n }\n }\n processMessage(type, msg) {\n if (this.isDone || !msg) {\n return;\n }\n for (const name of this.specsNames) {\n if (this.specs[name].types.indexOf(type) !== -1) {\n const messages = this.messages[name] || [];\n this.messages[name] = messages;\n messages.push(msg);\n }\n }\n }\n drain(name, callback) {\n if (callback) {\n (this.messages[name] || []).forEach(callback);\n }\n delete this.messages[name];\n for (const type of this.specs[name].types) {\n this.subsRefCount[type] -= 1;\n if (this.subsRefCount[type] <= 0) {\n this.connection?.off(this.subs[type]);\n delete this.subs[type];\n delete this.subsRefCount[type];\n }\n }\n delete this.specs[name];\n if (!this.specs.length) {\n this.isDone = true;\n }\n }\n}\n\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n};\n\nconst PromisePlus = (executor, timeoutMilliseconds, timeoutMessage) => {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n reject(message);\n }, timeoutMilliseconds);\n const providedPromise = new Promise(executor);\n providedPromise\n .then((result) => {\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n\nclass WebPlatformTransport {\n settings;\n logger;\n identity;\n isPreferredActivated;\n _communicationId;\n publicWindowId;\n selfAssignedWindowId;\n iAmConnected = false;\n parentReady = false;\n rejected = false;\n parentPingResolve;\n parentPingInterval;\n connectionResolve;\n extConnectionResolve;\n extConnectionReject;\n connectionReject;\n port;\n myClientId;\n children = [];\n extContentAvailable = false;\n extContentConnecting = false;\n extContentConnected = false;\n parentWindowId;\n parentInExtMode = false;\n webNamespace = \"g42_core_web\";\n parent;\n parentType;\n parentPingTimeout = 5000;\n connectionRequestTimeout = 7000;\n defaultTargetString = \"*\";\n registry = CallbackRegistryFactory();\n messages = {\n connectionAccepted: { name: \"connectionAccepted\", handle: this.handleConnectionAccepted.bind(this) },\n connectionRejected: { name: \"connectionRejected\", handle: this.handleConnectionRejected.bind(this) },\n connectionRequest: { name: \"connectionRequest\", handle: this.handleConnectionRequest.bind(this) },\n parentReady: {\n name: \"parentReady\", handle: () => {\n }\n },\n parentPing: { name: \"parentPing\", handle: this.handleParentPing.bind(this) },\n platformPing: { name: \"platformPing\", handle: this.handlePlatformPing.bind(this) },\n platformReady: { name: \"platformReady\", handle: this.handlePlatformReady.bind(this) },\n clientUnload: { name: \"clientUnload\", handle: this.handleClientUnload.bind(this) },\n manualUnload: { name: \"manualUnload\", handle: this.handleManualUnload.bind(this) },\n extConnectionResponse: { name: \"extConnectionResponse\", handle: this.handleExtConnectionResponse.bind(this) },\n extSetupRequest: { name: \"extSetupRequest\", handle: this.handleExtSetupRequest.bind(this) },\n gatewayDisconnect: { name: \"gatewayDisconnect\", handle: this.handleGatewayDisconnect.bind(this) },\n gatewayInternalConnect: { name: \"gatewayInternalConnect\", handle: this.handleGatewayInternalConnect.bind(this) }\n };\n constructor(settings, logger, identity) {\n this.settings = settings;\n this.logger = logger;\n this.identity = identity;\n this.extContentAvailable = !!window.glue42ext;\n this.setUpMessageListener();\n this.setUpUnload();\n this.setupPlatformUnloadListener();\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : undefined;\n }\n manualSetReadyState() {\n this.iAmConnected = true;\n this.parentReady = true;\n }\n get transportWindowId() {\n return this.publicWindowId;\n }\n get communicationId() {\n return this._communicationId;\n }\n async sendObject(msg) {\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: msg }, this.defaultTargetString);\n }\n if (!this.port) {\n throw new Error(\"Cannot send message, because the port was not opened yet\");\n }\n this.port.postMessage(msg);\n }\n get isObjectBasedTransport() {\n return true;\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n send() {\n return Promise.reject(\"not supported\");\n }\n onConnectedChanged(callback) {\n return this.registry.add(\"onConnectedChanged\", callback);\n }\n async open() {\n this.logger.debug(\"opening a connection to the web platform gateway.\");\n await this.connect();\n this.notifyStatusChanged(true);\n }\n close() {\n const message = {\n glue42core: {\n type: this.messages.gatewayDisconnect.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.port?.postMessage(message);\n this.parentReady = false;\n this.notifyStatusChanged(false, \"manual reconnection\");\n return Promise.resolve();\n }\n name() {\n return \"web-platform\";\n }\n async reconnect() {\n await this.close();\n return Promise.resolve();\n }\n initiateInternalConnection() {\n return new Promise((resolve, reject) => {\n this.logger.debug(\"opening an internal web platform connection\");\n this.port = this.settings.port;\n if (this.iAmConnected) {\n this.logger.warn(\"cannot open a new connection, because this client is currently connected\");\n return;\n }\n this.port.onmessage = (event) => {\n if (this.iAmConnected && !event.data?.glue42core) {\n this.registry.execute(\"onMessage\", event.data);\n return;\n }\n const data = event.data?.glue42core;\n if (!data) {\n return;\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.success) {\n this.publicWindowId = this.settings.windowId;\n if (this.identity && this.publicWindowId) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.publicWindowId;\n }\n resolve();\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.error) {\n reject(data.error);\n }\n };\n this.port.postMessage({\n glue42core: {\n type: this.messages.gatewayInternalConnect.name\n }\n });\n });\n }\n initiateRemoteConnection(target) {\n return PromisePlus((resolve, reject) => {\n this.connectionResolve = resolve;\n this.connectionReject = reject;\n this.myClientId = this.myClientId ?? nanoid(10);\n const bridgeInstanceId = this.getMyWindowId() || nanoid(10);\n const request = {\n glue42core: {\n type: this.messages.connectionRequest.name,\n clientId: this.myClientId,\n clientType: \"child\",\n bridgeInstanceId,\n selfAssignedWindowId: this.selfAssignedWindowId\n }\n };\n this.logger.debug(\"sending connection request\");\n if (this.extContentConnecting) {\n request.glue42core.clientType = \"child\";\n request.glue42core.bridgeInstanceId = this.myClientId;\n request.glue42core.parentWindowId = this.parentWindowId;\n return window.postMessage(request, this.defaultTargetString);\n }\n if (!target) {\n throw new Error(\"Cannot send a connection request, because no glue target was specified!\");\n }\n target.postMessage(request, this.defaultTargetString);\n }, this.connectionRequestTimeout, \"The connection to the target glue window timed out\");\n }\n async isParentCheckSuccess(parentCheck) {\n try {\n await parentCheck;\n return { success: true };\n }\n catch (error) {\n return { success: false };\n }\n }\n setUpMessageListener() {\n if (this.settings.port) {\n this.logger.debug(\"skipping generic message listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"message\", (event) => {\n const data = event.data?.glue42core;\n if (!data || this.rejected) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n if (!this.checkMessageTypeValid(data.type)) {\n this.logger.error(`cannot handle the incoming glue42 core message, because the type is invalid: ${data.type}`);\n return;\n }\n const messageType = data.type;\n this.logger.debug(`received valid glue42core message of type: ${messageType}`);\n this.messages[messageType].handle(event);\n });\n }\n setUpUnload() {\n if (this.settings.port) {\n this.logger.debug(\"skipping unload event listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"beforeunload\", () => {\n if (this.extContentConnected) {\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.parent) {\n this.parent.postMessage(message, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n });\n }\n handlePlatformReady(event) {\n this.logger.debug(\"the web platform gave the ready signal\");\n this.parentReady = true;\n if (this.parentPingResolve) {\n this.parentPingResolve();\n delete this.parentPingResolve;\n }\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n this.parent = event.source;\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : \"window\";\n }\n handleConnectionAccepted(event) {\n const data = event.data?.glue42core;\n if (this.myClientId === data.clientId) {\n return this.handleAcceptanceOfMyRequest(data);\n }\n return this.handleAcceptanceOfGrandChildRequest(data, event);\n }\n handleAcceptanceOfMyRequest(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me.\");\n this.isPreferredActivated = data.isPreferredActivated;\n if (this.extContentConnecting) {\n return this.processExtContentConnection(data);\n }\n if (!data.port) {\n this.logger.error(\"cannot set up my connection, because I was not provided with a port\");\n return;\n }\n this.publicWindowId = this.getMyWindowId();\n if (this.identity) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.identity.instance ? this.identity.instance : this.publicWindowId || nanoid(10);\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n this._communicationId = data.communicationId;\n this.port = data.port;\n this.port.onmessage = (e) => this.registry.execute(\"onMessage\", e.data);\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n this.logger.error(\"unable to call the connection resolve, because no connection promise was found\");\n }\n processExtContentConnection(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me for extension content connection.\");\n this.extContentConnecting = false;\n this.extContentConnected = true;\n this.publicWindowId = this.parentWindowId || this.myClientId;\n if (this.extContentConnecting && this.identity) {\n this.identity.windowId = this.publicWindowId;\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n window.addEventListener(\"message\", (event) => {\n const extData = event.data?.glue42ExtInc;\n if (!extData) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n this.registry.execute(\"onMessage\", extData);\n });\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n }\n handleAcceptanceOfGrandChildRequest(data, event) {\n if (this.extContentConnecting || this.extContentConnected) {\n this.logger.debug(\"cannot process acceptance of a grandchild, because I am connected to a content script\");\n return;\n }\n this.logger.debug(`handling a connection accepted signal targeted at a grandchild: ${data.clientId}`);\n const child = this.children.find((c) => c.grandChildId === data.clientId);\n if (!child) {\n this.logger.error(`cannot handle connection accepted for grandchild: ${data.clientId}, because there is no grandchild with this id`);\n return;\n }\n child.connected = true;\n this.logger.debug(`the grandchild connection for ${data.clientId} is set up, forwarding the success message and the gateway port`);\n data.parentWindowId = this.publicWindowId;\n child.source.postMessage(event.data, child.origin, [data.port]);\n return;\n }\n handleConnectionRejected(event) {\n this.logger.debug(\"handling a connection rejection. Most likely the reason is that this window was not created by a glue API call\");\n if (!this.connectionReject) {\n return;\n }\n const errorMsg = typeof event.data.glue42core?.error === \"string\"\n ? `Connection was rejected. ${event.data.glue42core?.error}`\n : \"The platform connection was rejected. Most likely because this window was not created by a glue API call\";\n this.connectionReject(errorMsg);\n delete this.connectionReject;\n }\n handleConnectionRequest(event) {\n if (this.extContentConnecting) {\n this.logger.debug(\"This connection request event is targeted at the extension content\");\n return;\n }\n const source = event.source;\n const data = event.data.glue42core;\n if (!data.clientType || data.clientType !== \"grandChild\") {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source was not opened by a glue API call\");\n }\n if (!data.clientId) {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source did not provide a valid id\");\n }\n if (!this.parent) {\n return this.rejectConnectionRequest(source, event.origin, \"Cannot forward the connection request, because no direct connection to the platform was found\");\n }\n this.logger.debug(`handling a connection request for a grandchild: ${data.clientId}`);\n this.children.push({ grandChildId: data.clientId, source, connected: false, origin: event.origin });\n this.logger.debug(`grandchild: ${data.clientId} is prepared, forwarding connection request to the platform`);\n this.parent.postMessage(event.data, this.defaultTargetString);\n }\n handleParentPing(event) {\n if (!this.parentReady) {\n this.logger.debug(\"my parent is not ready, I am ignoring the parent ping\");\n return;\n }\n if (!this.iAmConnected) {\n this.logger.debug(\"i am not fully connected yet, I am ignoring the parent ping\");\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.parentReady.name\n }\n };\n if (this.extContentConnected) {\n message.glue42core.extMode = { windowId: this.myClientId };\n }\n const source = event.source;\n this.logger.debug(\"responding to a parent ping with a ready message\");\n source.postMessage(message, event.origin);\n }\n setupPlatformUnloadListener() {\n this.onMessage((msg) => {\n if (msg.type === \"platformUnload\") {\n this.logger.debug(\"detected a web platform unload\");\n this.parentReady = false;\n this.notifyStatusChanged(false, \"Gateway unloaded\");\n }\n });\n }\n handleManualUnload() {\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: message }, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n }\n handleClientUnload(event) {\n const data = event.data.glue42core;\n const clientId = data?.data.clientId;\n if (!clientId) {\n this.logger.warn(\"cannot process grand child unload, because the provided id was not valid\");\n return;\n }\n const foundChild = this.children.find((child) => child.grandChildId === clientId);\n if (!foundChild) {\n this.logger.warn(\"cannot process grand child unload, because this client is unaware of this grandchild\");\n return;\n }\n this.logger.debug(`handling grandchild unload for id: ${clientId}`);\n this.children = this.children.filter((child) => child.grandChildId !== clientId);\n }\n handlePlatformPing() {\n return;\n }\n notifyStatusChanged(status, reason) {\n this.iAmConnected = status;\n this.registry.execute(\"onConnectedChanged\", status, reason);\n }\n checkMessageTypeValid(typeToValidate) {\n return typeof typeToValidate === \"string\" && !!this.messages[typeToValidate];\n }\n rejectConnectionRequest(source, origin, reason) {\n this.rejected = true;\n this.logger.error(reason);\n const rejection = {\n glue42core: {\n type: this.messages.connectionRejected.name\n }\n };\n source.postMessage(rejection, origin);\n }\n requestConnectionPermissionFromExt() {\n return this.waitForContentScript()\n .then(() => PromisePlus((resolve, reject) => {\n this.extConnectionResolve = resolve;\n this.extConnectionReject = reject;\n const message = {\n glue42core: {\n type: \"extSetupRequest\"\n }\n };\n this.logger.debug(\"permission request to the extension content script was sent\");\n window.postMessage(message, this.defaultTargetString);\n }, this.parentPingTimeout, \"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection timed out\"));\n }\n handleExtConnectionResponse(event) {\n const data = event.data?.glue42core;\n if (!data.approved) {\n return this.extConnectionReject ? this.extConnectionReject(\"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection was rejected\") : undefined;\n }\n if (this.extConnectionResolve) {\n this.extConnectionResolve();\n delete this.extConnectionResolve;\n }\n this.extContentConnecting = true;\n this.parentType = \"extension\";\n this.logger.debug(\"The extension connection was approved, proceeding.\");\n }\n handleExtSetupRequest() {\n return;\n }\n handleGatewayDisconnect() {\n return;\n }\n handleGatewayInternalConnect() {\n return;\n }\n waitForContentScript() {\n const contentReady = !!window.glue42ext?.content;\n if (contentReady) {\n return Promise.resolve();\n }\n return PromisePlus((resolve) => {\n window.addEventListener(\"Glue42EXTReady\", () => {\n resolve();\n });\n }, this.connectionRequestTimeout, \"The content script was available, but was never heard to be ready\");\n }\n async connect() {\n if (this.settings.port) {\n await this.initiateInternalConnection();\n this.logger.debug(\"internal web platform connection completed\");\n return;\n }\n this.logger.debug(\"opening a client web platform connection\");\n await this.findParent();\n await this.initiateRemoteConnection(this.parent);\n this.logger.debug(\"the client is connected\");\n }\n async findParent() {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const myInsideParents = this.getPossibleParentsInWindow(window);\n const myOutsideParents = this.getPossibleParentsOutsideWindow(window.top?.opener, window.top);\n const uniqueParents = new Set([...myInsideParents, ...myOutsideParents]);\n if (!uniqueParents.size && !this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n if (!uniqueParents.size && this.extContentAvailable) {\n await this.requestConnectionPermissionFromExt();\n return;\n }\n const defaultParentCheck = await this.isParentCheckSuccess(this.confirmParent(Array.from(uniqueParents)));\n if (defaultParentCheck.success) {\n this.logger.debug(\"The default parent was found!\");\n return;\n }\n if (!this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n await this.requestConnectionPermissionFromExt();\n }\n getPossibleParentsInWindow(currentWindow) {\n return (!currentWindow?.parent || currentWindow === currentWindow.parent) ? [] : [currentWindow.parent, ...this.getPossibleParentsInWindow(currentWindow.parent)];\n }\n getPossibleParentsOutsideWindow(opener, current) {\n return (!opener || !current || opener === current) ? [] : [opener, ...this.getPossibleParentsInWindow(opener), ...this.getPossibleParentsOutsideWindow(opener.opener, opener)];\n }\n confirmParent(targets) {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const parentCheck = PromisePlus((resolve) => {\n this.parentPingResolve = resolve;\n const message = {\n glue42core: {\n type: this.messages.platformPing.name\n }\n };\n this.parentPingInterval = setInterval(() => {\n targets.forEach((target) => {\n target.postMessage(message, this.defaultTargetString);\n });\n }, 1000);\n }, this.parentPingTimeout, connectionNotPossibleMsg);\n parentCheck.catch(() => {\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n });\n return parentCheck;\n }\n getMyWindowId() {\n if (this.parentType === \"workspace\") {\n return window.name.substring(0, window.name.indexOf(\"#wsp\"));\n }\n if (window !== window.top) {\n return;\n }\n if (window.name?.includes(\"g42\")) {\n return window.name;\n }\n this.selfAssignedWindowId = this.selfAssignedWindowId || `g42-${nanoid(10)}`;\n return this.selfAssignedWindowId;\n }\n}\n\nconst waitForInvocations = (invocations, callback) => {\n let left = invocations;\n return () => {\n left--;\n if (left === 0) {\n callback();\n }\n };\n};\n\nclass AsyncSequelizer {\n minSequenceInterval;\n queue = [];\n isExecutingQueue = false;\n constructor(minSequenceInterval = 0) {\n this.minSequenceInterval = minSequenceInterval;\n }\n enqueue(action) {\n return new Promise((resolve, reject) => {\n this.queue.push({ action, resolve, reject });\n this.executeQueue();\n });\n }\n async executeQueue() {\n if (this.isExecutingQueue) {\n return;\n }\n this.isExecutingQueue = true;\n while (this.queue.length) {\n const operation = this.queue.shift();\n if (!operation) {\n this.isExecutingQueue = false;\n return;\n }\n try {\n const actionResult = await operation.action();\n operation.resolve(actionResult);\n }\n catch (error) {\n operation.reject(error);\n }\n await this.intervalBreak();\n }\n this.isExecutingQueue = false;\n }\n intervalBreak() {\n return new Promise((res) => setTimeout(res, this.minSequenceInterval));\n }\n}\n\nfunction domainSession (domain, connection, logger, successMessages, errorMessages) {\n if (domain == null) {\n domain = \"global\";\n }\n successMessages = successMessages ?? [\"success\"];\n errorMessages = errorMessages ?? [\"error\"];\n let isJoined = domain === \"global\";\n let tryReconnecting = false;\n let _latestOptions;\n let _connectionOn = false;\n const callbacks = CallbackRegistryFactory();\n connection.disconnected(handleConnectionDisconnected);\n connection.loggedIn(handleConnectionLoggedIn);\n connection.on(\"success\", (msg) => handleSuccessMessage(msg));\n connection.on(\"error\", (msg) => handleErrorMessage(msg));\n connection.on(\"result\", (msg) => handleSuccessMessage(msg));\n if (successMessages) {\n successMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleSuccessMessage(msg));\n });\n }\n if (errorMessages) {\n errorMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleErrorMessage(msg));\n });\n }\n const requestsMap = {};\n function join(options) {\n _latestOptions = options;\n return new Promise((resolve, reject) => {\n if (isJoined) {\n resolve({});\n return;\n }\n let joinPromise;\n if (domain === \"global\") {\n joinPromise = _connectionOn ? Promise.resolve({}) : Promise.reject(\"not connected to gateway\");\n }\n else {\n logger.debug(`joining domain ${domain}`);\n const joinMsg = {\n type: \"join\",\n destination: domain,\n domain: \"global\",\n options,\n };\n joinPromise = send(joinMsg);\n }\n joinPromise\n .then(() => {\n handleJoined();\n resolve({});\n })\n .catch((err) => {\n logger.debug(\"error joining \" + domain + \" domain: \" + JSON.stringify(err));\n reject(err);\n });\n });\n }\n function leave() {\n if (domain === \"global\") {\n return Promise.resolve();\n }\n logger.debug(\"stopping session \" + domain + \"...\");\n const leaveMsg = {\n type: \"leave\",\n destination: domain,\n domain: \"global\",\n };\n tryReconnecting = false;\n return send(leaveMsg)\n .then(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n })\n .catch(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n });\n }\n function handleJoined() {\n logger.debug(\"did join \" + domain);\n isJoined = true;\n const wasReconnect = tryReconnecting;\n tryReconnecting = false;\n callbacks.execute(\"onJoined\", wasReconnect);\n }\n function handleConnectionDisconnected() {\n _connectionOn = false;\n logger.debug(\"connection is down\");\n isJoined = false;\n tryReconnecting = true;\n callbacks.execute(\"onLeft\", { disconnected: true });\n }\n function handleConnectionLoggedIn() {\n _connectionOn = true;\n if (tryReconnecting) {\n logger.debug(\"connection is now up - trying to reconnect...\");\n join(_latestOptions);\n }\n }\n function onJoined(callback) {\n if (isJoined) {\n callback(false);\n }\n return callbacks.add(\"onJoined\", callback);\n }\n function onLeft(callback) {\n if (!isJoined) {\n callback();\n }\n return callbacks.add(\"onLeft\", callback);\n }\n function handleErrorMessage(msg) {\n if (domain !== msg.domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.error(msg);\n }\n function handleSuccessMessage(msg) {\n if (msg.domain !== domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.success(msg);\n }\n function getNextRequestId() {\n return nanoid(10);\n }\n let queuedCalls = [];\n function send(msg, tag, options) {\n const ignore = [\"hello\", \"join\"];\n if (msg.type && ignore.indexOf(msg.type) === -1) {\n if (!isJoined) {\n console.warn(`trying to send a message (${msg.domain} ${msg.type}) but not connected, will queue`);\n const pw = new PromiseWrapper();\n queuedCalls.push({ msg, tag, options, pw });\n if (queuedCalls.length === 1) {\n const unsubscribe = onJoined(() => {\n logger.info(`joined - will now send queued messages (${queuedCalls.length} -> [${queuedCalls.map((m) => m.msg.type)}])`);\n queuedCalls.forEach((qm) => {\n send(qm.msg, qm.tag, qm.options)\n .then((t) => qm.pw.resolve(t))\n .catch((e) => qm.pw.reject(e));\n });\n queuedCalls = [];\n unsubscribe();\n });\n }\n return pw.promise;\n }\n }\n options = options ?? {};\n msg.request_id = msg.request_id ?? getNextRequestId();\n msg.domain = msg.domain ?? domain;\n if (!options.skipPeerId) {\n msg.peer_id = connection.peerId;\n }\n const requestId = msg.request_id;\n return new Promise((resolve, reject) => {\n requestsMap[requestId] = {\n success: (successMsg) => {\n delete requestsMap[requestId];\n successMsg._tag = tag;\n resolve(successMsg);\n },\n error: (errorMsg) => {\n logger.warn(`Gateway error - ${JSON.stringify(errorMsg)}`);\n delete requestsMap[requestId];\n errorMsg._tag = tag;\n reject(errorMsg);\n },\n };\n connection\n .send(msg, options)\n .catch((err) => {\n requestsMap[requestId].error({ err });\n });\n });\n }\n function sendFireAndForget(msg) {\n msg.request_id = msg.request_id ? msg.request_id : getNextRequestId();\n msg.domain = msg.domain ?? domain;\n msg.peer_id = connection.peerId;\n return connection.send(msg);\n }\n return {\n join,\n leave,\n onJoined,\n onLeft,\n send,\n sendFireAndForget,\n on: (type, callback) => {\n connection.on(type, (msg) => {\n if (msg.domain !== domain) {\n return;\n }\n try {\n callback(msg);\n }\n catch (e) {\n logger.error(`Callback failed: ${e} \\n ${e.stack} \\n msg was: ${JSON.stringify(msg)}`, e);\n }\n });\n },\n loggedIn: (callback) => connection.loggedIn(callback),\n connected: (callback) => connection.connected(callback),\n disconnected: (callback) => connection.disconnected(callback),\n get peerId() {\n return connection.peerId;\n },\n get domain() {\n return domain;\n },\n };\n}\n\nclass Connection {\n settings;\n logger;\n protocolVersion = 3;\n peerId;\n token;\n info;\n resolvedIdentity;\n availableDomains;\n gatewayToken;\n replayer;\n messageHandlers = {};\n ids = 1;\n registry = CallbackRegistryFactory();\n _connected = false;\n isTrace = false;\n transport;\n _defaultTransport;\n _defaultAuth;\n _targetTransport;\n _targetAuth;\n _swapTransport = false;\n _switchInProgress = false;\n _transportSubscriptions = [];\n datePrefix = \"#T42_DATE#\";\n datePrefixLen = this.datePrefix.length;\n dateMinLen = this.datePrefixLen + 1;\n datePrefixFirstChar = this.datePrefix[0];\n _sequelizer = new AsyncSequelizer();\n _isLoggedIn = false;\n shouldTryLogin = true;\n pingTimer;\n sessions = [];\n globalDomain;\n initialLogin = true;\n initialLoginAttempts = 3;\n loginConfig;\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n settings = settings || {};\n settings.reconnectAttempts = settings.reconnectAttempts ?? 10;\n settings.reconnectInterval = settings.reconnectInterval ?? 1000;\n if (settings.inproc) {\n this.transport = new InProcTransport(settings.inproc, logger.subLogger(\"inMemory\"));\n }\n else if (settings.sharedWorker) {\n this.transport = new SharedWorkerTransport(settings.sharedWorker, logger.subLogger(\"shared-worker\"));\n }\n else if (settings.webPlatform) {\n this.transport = new WebPlatformTransport(settings.webPlatform, logger.subLogger(\"web-platform\"), settings.identity);\n }\n else if (settings.ws !== undefined) {\n this.transport = new WS(settings, logger.subLogger(\"ws\"));\n }\n else {\n throw new Error(\"No connection information specified\");\n }\n this.isTrace = logger.canPublish(\"trace\");\n logger.debug(`starting with ${this.transport.name()} transport`);\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n this._defaultTransport = this.transport;\n this.ping();\n }\n async switchTransport(settings) {\n return this._sequelizer.enqueue(async () => {\n if (!settings || typeof settings !== \"object\") {\n throw new Error(\"Cannot switch transports, because the settings are missing or invalid.\");\n }\n if (typeof settings.type === \"undefined\") {\n throw new Error(\"Cannot switch the transport, because the type is not defined\");\n }\n this.logger.trace(`Starting transport switch with settings: ${JSON.stringify(settings)}`);\n const switchTargetTransport = settings.type === \"secondary\" ? this.getNewSecondaryTransport(settings) : this._defaultTransport;\n this._targetTransport = switchTargetTransport;\n this._targetAuth = settings.type === \"secondary\" ? this.getNewSecondaryAuth(settings) : this._defaultAuth;\n const verifyPromise = this.verifyConnection();\n this._swapTransport = true;\n this._switchInProgress = true;\n this.logger.trace(\"The new transport has been set, closing the current transport\");\n await this.transport.close();\n try {\n await verifyPromise;\n const isSwitchSuccess = this.transport === switchTargetTransport;\n this.logger.info(`The reconnection after the switch was completed. Was the switch a success: ${isSwitchSuccess}`);\n this._switchInProgress = false;\n return { success: isSwitchSuccess };\n }\n catch (error) {\n this.logger.info(\"The reconnection after the switch timed out, reverting back to the default transport.\");\n this.switchTransport({ type: \"default\" });\n this._switchInProgress = false;\n return { success: false };\n }\n });\n }\n onLibReAnnounced(callback) {\n return this.registry.add(\"libReAnnounced\", callback);\n }\n setLibReAnnounced(lib) {\n this.registry.execute(\"libReAnnounced\", lib);\n }\n send(message, options) {\n if (this.transport.sendObject &&\n this.transport.isObjectBasedTransport) {\n const msg = this.createObjectMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${JSON.stringify(msg)}`);\n }\n return this.transport.sendObject(msg, options);\n }\n else {\n const strMessage = this.createStringMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${strMessage}`);\n }\n return this.transport.send(strMessage, options);\n }\n }\n on(type, messageHandler) {\n type = type.toLowerCase();\n if (this.messageHandlers[type] === undefined) {\n this.messageHandlers[type] = {};\n }\n const id = this.ids++;\n this.messageHandlers[type][id] = messageHandler;\n return {\n type,\n id,\n };\n }\n off(info) {\n delete this.messageHandlers[info.type.toLowerCase()][info.id];\n }\n get isConnected() {\n return this._isLoggedIn;\n }\n connected(callback) {\n return this.loggedIn(() => {\n const currentServer = this.transport.name();\n callback(currentServer);\n });\n }\n disconnected(callback) {\n return this.registry.add(\"disconnected\", callback);\n }\n async login(authRequest, reconnect) {\n if (!this._defaultAuth) {\n this._defaultAuth = authRequest;\n }\n if (this._swapTransport) {\n this.logger.trace(\"Detected a transport swap, swapping transports\");\n const newAuth = this.transportSwap();\n authRequest = newAuth ?? authRequest;\n }\n this.logger.trace(`Starting login for transport: ${this.transport.name()} and auth ${JSON.stringify(authRequest)}`);\n try {\n await this.transport.open();\n this.logger.trace(`Transport: ${this.transport.name()} opened, logging in`);\n timer(\"connection\").mark(\"transport-opened\");\n const identity = await this.loginCore(authRequest, reconnect);\n this.logger.trace(`Logged in with identity: ${JSON.stringify(identity)}`);\n timer(\"connection\").mark(\"protocol-logged-in\");\n return identity;\n }\n catch (error) {\n if (this._switchInProgress) {\n this.logger.trace(\"An error while logging in after a transport swap, preparing a default swap.\");\n this.prepareDefaultSwap();\n }\n throw new Error(error);\n }\n }\n async logout() {\n await this.logoutCore();\n await this.transport.close();\n }\n loggedIn(callback) {\n if (this._isLoggedIn) {\n callback();\n }\n return this.registry.add(\"onLoggedIn\", callback);\n }\n domain(domain, successMessages, errorMessages) {\n let session = this.sessions.find((s) => s.domain === domain);\n if (!session) {\n session = domainSession(domain, this, this.logger.subLogger(`domain=${domain}`), successMessages, errorMessages);\n this.sessions.push(session);\n }\n return session;\n }\n authToken() {\n const createTokenReq = {\n domain: \"global\",\n type: \"create-token\"\n };\n if (!this.globalDomain) {\n return Promise.reject(new Error(\"no global domain session\"));\n }\n return this.globalDomain.send(createTokenReq)\n .then((res) => {\n return res.token;\n });\n }\n reconnect() {\n return this.transport.reconnect();\n }\n setLoggedIn(value) {\n this._isLoggedIn = value;\n if (this._isLoggedIn) {\n this.registry.execute(\"onLoggedIn\");\n }\n }\n distributeMessage(message, type) {\n const handlers = this.messageHandlers[type.toLowerCase()];\n if (handlers !== undefined) {\n Object.keys(handlers).forEach((handlerId) => {\n const handler = handlers[handlerId];\n if (handler !== undefined) {\n try {\n handler(message);\n }\n catch (error) {\n try {\n this.logger.error(`Message handler failed with ${error.stack}`, error);\n }\n catch (loggerError) {\n console.log(\"Message handler failed\", error);\n }\n }\n }\n });\n }\n }\n handleConnectionChanged(connected) {\n if (this._connected === connected) {\n return;\n }\n this._connected = connected;\n if (connected) {\n if (this.settings?.replaySpecs?.length) {\n this.replayer = new MessageReplayerImpl(this.settings.replaySpecs);\n this.replayer.init(this);\n }\n this.registry.execute(\"connected\");\n }\n else {\n this.handleDisconnected();\n this.registry.execute(\"disconnected\");\n }\n }\n handleDisconnected() {\n this.setLoggedIn(false);\n const tryToLogin = this.shouldTryLogin;\n if (tryToLogin && this.initialLogin) {\n if (this.initialLoginAttempts <= 0) {\n return;\n }\n this.initialLoginAttempts--;\n }\n this.logger.debug(\"disconnected - will try new login?\" + this.shouldTryLogin);\n if (this.shouldTryLogin) {\n if (!this.loginConfig) {\n throw new Error(\"no login info\");\n }\n this.login(this.loginConfig, true)\n .catch(() => {\n setTimeout(this.handleDisconnected.bind(this), this.settings.reconnectInterval || 1000);\n });\n }\n }\n handleTransportMessage(msg) {\n let msgObj;\n if (typeof msg === \"string\") {\n msgObj = this.processStringMessage(msg);\n }\n else {\n msgObj = this.processObjectMessage(msg);\n }\n if (this.isTrace) {\n this.logger.trace(`<< ${JSON.stringify(msgObj)}`);\n }\n this.distributeMessage(msgObj.msg, msgObj.msgType);\n }\n verifyConnection() {\n return PromisePlus((resolve) => {\n let unsub;\n const ready = waitForInvocations(2, () => {\n if (unsub) {\n unsub();\n }\n resolve();\n });\n unsub = this.onLibReAnnounced((lib) => {\n if (lib.name === \"interop\") {\n return ready();\n }\n if (lib.name === \"contexts\") {\n return ready();\n }\n });\n }, 10000, \"Transport switch timed out waiting for all libraries to be re-announced\");\n }\n getNewSecondaryTransport(settings) {\n if (!settings.transportConfig?.url) {\n throw new Error(\"Missing secondary transport URL.\");\n }\n return new WS(Object.assign({}, this.settings, { ws: settings.transportConfig.url, reconnectAttempts: 1 }), this.logger.subLogger(\"ws-secondary\"));\n }\n getNewSecondaryAuth(settings) {\n if (!settings.transportConfig?.auth) {\n throw new Error(\"Missing secondary transport auth information.\");\n }\n return settings.transportConfig.auth;\n }\n transportSwap() {\n this._swapTransport = false;\n if (!this._targetTransport || !this._targetAuth) {\n this.logger.warn(`Error while switching transports - either the target transport or auth is not defined: transport defined -> ${!!this._defaultTransport}, auth defined -> ${!!this._targetAuth}. Staying on the current one.`);\n return;\n }\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport = this._targetTransport;\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n return this._targetAuth;\n }\n prepareDefaultSwap() {\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport.close().catch((error) => this.logger.warn(`Error closing the ${this.transport.name()} transport after a failed connection attempt: ${JSON.stringify(error)}`));\n this._targetTransport = this._defaultTransport;\n this._targetAuth = this._defaultAuth;\n this._swapTransport = true;\n }\n processStringMessage(message) {\n const msg = JSON.parse(message, (key, value) => {\n if (typeof value !== \"string\") {\n return value;\n }\n if (value.length < this.dateMinLen) {\n return value;\n }\n if (!value.startsWith(this.datePrefixFirstChar)) {\n return value;\n }\n if (value.substring(0, this.datePrefixLen) !== this.datePrefix) {\n return value;\n }\n try {\n const milliseconds = parseInt(value.substring(this.datePrefixLen, value.length), 10);\n if (isNaN(milliseconds)) {\n return value;\n }\n return new Date(milliseconds);\n }\n catch (ex) {\n return value;\n }\n });\n return {\n msg,\n msgType: msg.type,\n };\n }\n createStringMessage(message) {\n const oldToJson = Date.prototype.toJSON;\n try {\n const datePrefix = this.datePrefix;\n Date.prototype.toJSON = function () {\n return datePrefix + this.getTime();\n };\n const result = JSON.stringify(message);\n return result;\n }\n finally {\n Date.prototype.toJSON = oldToJson;\n }\n }\n processObjectMessage(message) {\n if (!message.type) {\n throw new Error(\"Object should have type property\");\n }\n return {\n msg: message,\n msgType: message.type,\n };\n }\n createObjectMessage(message) {\n return message;\n }\n async loginCore(config, reconnect) {\n this.logger.info(\"logging in...\");\n this.loginConfig = config;\n if (!this.loginConfig) {\n this.loginConfig = { username: \"\", password: \"\" };\n }\n this.shouldTryLogin = true;\n const authentication = await this.setupAuthConfig(config, reconnect);\n const helloMsg = {\n type: \"hello\",\n identity: this.settings.identity,\n authentication\n };\n if (config.sessionId) {\n helloMsg.request_id = config.sessionId;\n }\n this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\n \"welcome\",\n \"token\",\n \"authentication-request\"\n ]);\n const sendOptions = { skipPeerId: true };\n if (this.initialLogin) {\n sendOptions.retryInterval = this.settings.reconnectInterval;\n sendOptions.maxRetries = this.settings.reconnectAttempts;\n }\n try {\n const welcomeMsg = await this.tryAuthenticate(this.globalDomain, helloMsg, sendOptions, config);\n this.initialLogin = false;\n this.logger.info(\"login successful with peerId \" + welcomeMsg.peer_id);\n this.peerId = welcomeMsg.peer_id;\n this.resolvedIdentity = welcomeMsg.resolved_identity;\n this.availableDomains = welcomeMsg.available_domains;\n if (welcomeMsg.options) {\n this.token = welcomeMsg.options.access_token;\n this.info = welcomeMsg.options.info;\n }\n this.setLoggedIn(true);\n return welcomeMsg.resolved_identity;\n }\n catch (err) {\n this.logger.error(\"error sending hello message - \" + (err.message || err.msg || err.reason || err), err);\n throw err;\n }\n finally {\n if (config?.flowCallback && config.sessionId) {\n config.flowCallback(config.sessionId, null);\n }\n }\n }\n async tryAuthenticate(globalDomain, helloMsg, sendOptions, config) {\n let welcomeMsg;\n while (true) {\n const msg = await globalDomain.send(helloMsg, undefined, sendOptions);\n if (msg.type === \"authentication-request\") {\n const token = Buffer.from(msg.authentication.token, \"base64\");\n if (config.flowCallback && config.sessionId) {\n helloMsg.authentication.token =\n (await config.flowCallback(config.sessionId, token))\n .data\n .toString(\"base64\");\n }\n helloMsg.request_id = config.sessionId;\n }\n else if (msg.type === \"welcome\") {\n welcomeMsg = msg;\n break;\n }\n else if (msg.type === \"error\") {\n throw new Error(\"Authentication failed: \" + msg.reason);\n }\n else {\n throw new Error(\"Unexpected message type during authentication: \" + msg.type);\n }\n }\n return welcomeMsg;\n }\n async setupAuthConfig(config, reconnect) {\n const authentication = {};\n this.gatewayToken = config.gatewayToken;\n if (config.gatewayToken) {\n if (reconnect) {\n try {\n config.gatewayToken = await this.getNewGWToken();\n }\n catch (e) {\n this.logger.warn(`failed to get GW token when reconnecting ${e?.message || e}`);\n }\n }\n authentication.method = \"gateway-token\";\n authentication.token = config.gatewayToken;\n this.gatewayToken = config.gatewayToken;\n }\n else if (config.flowName === \"sspi\") {\n authentication.provider = \"win\";\n authentication.method = \"access-token\";\n if (config.flowCallback && config.sessionId) {\n authentication.token =\n (await config.flowCallback(config.sessionId, null))\n .data\n .toString(\"base64\");\n }\n else {\n throw new Error(\"Invalid SSPI config\");\n }\n }\n else if (config.token) {\n authentication.method = \"access-token\";\n authentication.token = config.token;\n }\n else if (config.username) {\n authentication.method = \"secret\";\n authentication.login = config.username;\n authentication.secret = config.password;\n }\n else if (config.provider) {\n authentication.provider = config.provider;\n authentication.providerContext = config.providerContext;\n }\n else {\n throw new Error(\"invalid auth message\" + JSON.stringify(config));\n }\n return authentication;\n }\n async logoutCore() {\n this.logger.debug(\"logging out...\");\n this.shouldTryLogin = false;\n if (this.pingTimer) {\n clearTimeout(this.pingTimer);\n }\n const promises = this.sessions.map((session) => {\n session.leave();\n });\n await Promise.all(promises);\n }\n getNewGWToken() {\n if (typeof window !== \"undefined\") {\n const glue42gd = window.glue42gd;\n if (glue42gd) {\n return glue42gd.getGWToken();\n }\n }\n return Promise.reject(new Error(\"not running in GD\"));\n }\n ping() {\n if (!this.shouldTryLogin) {\n return;\n }\n if (this._isLoggedIn) {\n this.send({ type: \"ping\" });\n }\n this.pingTimer = setTimeout(() => {\n this.ping();\n }, 30 * 1000);\n }\n}\n\nconst order = [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"off\"];\nclass Logger {\n name;\n parent;\n static Interop;\n static InteropMethodName = \"T42.AppLogger.Log\";\n static Instance;\n path;\n subLoggers = [];\n _consoleLevel;\n _publishLevel;\n loggerFullName;\n includeTimeAndLevel;\n logFn = console;\n customLogFn = false;\n constructor(name, parent, logFn) {\n this.name = name;\n this.parent = parent;\n this.name = name;\n if (parent) {\n this.path = `${parent.path}.${name}`;\n }\n else {\n this.path = name;\n }\n this.loggerFullName = `[${this.path}]`;\n this.includeTimeAndLevel = !logFn;\n if (logFn) {\n this.logFn = logFn;\n this.customLogFn = true;\n }\n }\n subLogger(name) {\n const existingSub = this.subLoggers.filter((subLogger) => {\n return subLogger.name === name;\n })[0];\n if (existingSub !== undefined) {\n return existingSub;\n }\n Object.keys(this).forEach((key) => {\n if (key === name) {\n throw new Error(\"This sub logger name is not allowed.\");\n }\n });\n const sub = new Logger(name, this, this.customLogFn ? this.logFn : undefined);\n this.subLoggers.push(sub);\n return sub;\n }\n publishLevel(level) {\n if (level) {\n this._publishLevel = level;\n }\n return this._publishLevel || this.parent?.publishLevel();\n }\n consoleLevel(level) {\n if (level) {\n this._consoleLevel = level;\n }\n return this._consoleLevel || this.parent?.consoleLevel();\n }\n log(message, level, error) {\n this.publishMessage(level || \"info\", message, error);\n }\n trace(message) {\n this.log(message, \"trace\");\n }\n debug(message) {\n this.log(message, \"debug\");\n }\n info(message) {\n this.log(message, \"info\");\n }\n warn(message) {\n this.log(message, \"warn\");\n }\n error(message, err) {\n this.log(message, \"error\", err);\n }\n canPublish(level, compareWith) {\n const levelIdx = order.indexOf(level);\n const restrictionIdx = order.indexOf(compareWith || this.consoleLevel() || \"trace\");\n return levelIdx >= restrictionIdx;\n }\n publishMessage(level, message, error) {\n const loggerName = this.loggerFullName;\n if (level === \"error\" && !error) {\n const e = new Error();\n if (e.stack) {\n message =\n message +\n \"\\n\" +\n e.stack\n .split(\"\\n\")\n .slice(4)\n .join(\"\\n\");\n }\n }\n if (this.canPublish(level, this.publishLevel())) {\n const interop = Logger.Interop;\n if (interop) {\n try {\n if (interop.methods({ name: Logger.InteropMethodName }).length > 0) {\n const args = {\n msg: message,\n logger: loggerName,\n level\n };\n if (error && error instanceof Error) {\n args.error = {\n message: error.message,\n stack: error.stack ?? \"\"\n };\n }\n interop.invoke(Logger.InteropMethodName, args);\n }\n }\n catch {\n }\n }\n }\n if (this.canPublish(level)) {\n let prefix = \"\";\n if (this.includeTimeAndLevel) {\n const date = new Date();\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\n prefix = `[${time}] [${level}] `;\n }\n const toPrint = `${prefix}${loggerName}: ${message}`;\n switch (level) {\n case \"trace\":\n this.logFn.debug(toPrint);\n break;\n case \"debug\":\n if (this.logFn.debug) {\n this.logFn.debug(toPrint);\n }\n else {\n this.logFn.log(toPrint);\n }\n break;\n case \"info\":\n this.logFn.info(toPrint);\n break;\n case \"warn\":\n this.logFn.warn(toPrint);\n break;\n case \"error\":\n this.logFn.error(toPrint, error);\n break;\n }\n }\n }\n}\n\nconst GW_MESSAGE_CREATE_CONTEXT = \"create-context\";\nconst GW_MESSAGE_ACTIVITY_CREATED = \"created\";\nconst GW_MESSAGE_ACTIVITY_DESTROYED = \"destroyed\";\nconst GW_MESSAGE_CONTEXT_CREATED = \"context-created\";\nconst GW_MESSAGE_CONTEXT_ADDED = \"context-added\";\nconst GW_MESSAGE_SUBSCRIBE_CONTEXT = \"subscribe-context\";\nconst GW_MESSAGE_SUBSCRIBED_CONTEXT = \"subscribed-context\";\nconst GW_MESSAGE_UNSUBSCRIBE_CONTEXT = \"unsubscribe-context\";\nconst GW_MESSAGE_DESTROY_CONTEXT = \"destroy-context\";\nconst GW_MESSAGE_CONTEXT_DESTROYED = \"context-destroyed\";\nconst GW_MESSAGE_UPDATE_CONTEXT = \"update-context\";\nconst GW_MESSAGE_CONTEXT_UPDATED = \"context-updated\";\nconst GW_MESSAGE_JOINED_ACTIVITY = \"joined\";\n\nconst ContextMessageReplaySpec = {\n get name() {\n return \"context\";\n },\n get types() {\n return [\n GW_MESSAGE_CREATE_CONTEXT,\n GW_MESSAGE_ACTIVITY_CREATED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_SUBSCRIBE_CONTEXT,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n GW_MESSAGE_DESTROY_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_UPDATE_CONTEXT,\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_JOINED_ACTIVITY\n ];\n }\n};\n\nvar version = \"6.5.2-fmr-beta\";\n\nfunction prepareConfig (configuration, ext, glue42gd) {\n let nodeStartingContext;\n if (Utils.isNode()) {\n const startingContextString = process.env._GD_STARTING_CONTEXT_;\n if (startingContextString) {\n try {\n nodeStartingContext = JSON.parse(startingContextString);\n }\n catch {\n }\n }\n }\n function getConnection() {\n const gwConfig = configuration.gateway;\n const protocolVersion = gwConfig?.protocolVersion ?? 3;\n const reconnectInterval = gwConfig?.reconnectInterval;\n const reconnectAttempts = gwConfig?.reconnectAttempts;\n const defaultWs = \"ws://localhost:8385\";\n let ws = gwConfig?.ws;\n const sharedWorker = gwConfig?.sharedWorker;\n const inproc = gwConfig?.inproc;\n const webPlatform = gwConfig?.webPlatform ?? undefined;\n if (glue42gd) {\n ws = glue42gd.gwURL;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwURL) {\n ws = nodeStartingContext.gwURL;\n }\n if (!ws && !sharedWorker && !inproc) {\n ws = defaultWs;\n }\n let instanceId;\n let windowId;\n let pid;\n let environment;\n let region;\n const appName = getApplication();\n let uniqueAppName = appName;\n if (typeof glue42gd !== \"undefined\") {\n windowId = glue42gd.windowId;\n pid = glue42gd.pid;\n if (glue42gd.env) {\n environment = glue42gd.env.env;\n region = glue42gd.env.region;\n }\n uniqueAppName = glue42gd.application ?? \"glue-app\";\n instanceId = glue42gd.appInstanceId;\n }\n else if (Utils.isNode()) {\n pid = process.pid;\n if (nodeStartingContext) {\n environment = nodeStartingContext.env;\n region = nodeStartingContext.region;\n instanceId = nodeStartingContext.instanceId;\n }\n }\n else if (typeof window?.glue42electron !== \"undefined\") {\n windowId = window?.glue42electron.instanceId;\n pid = window?.glue42electron.pid;\n environment = window?.glue42electron.env;\n region = window?.glue42electron.region;\n uniqueAppName = window?.glue42electron.application ?? \"glue-app\";\n instanceId = window?.glue42electron.instanceId;\n }\n else ;\n const replaySpecs = configuration.gateway?.replaySpecs ?? [];\n replaySpecs.push(ContextMessageReplaySpec);\n let identity = {\n application: uniqueAppName,\n applicationName: appName,\n windowId,\n instance: instanceId,\n process: pid,\n region,\n environment,\n api: ext.version || version\n };\n if (configuration.identity) {\n identity = Object.assign(identity, configuration.identity);\n }\n return {\n identity,\n reconnectInterval,\n ws,\n sharedWorker,\n webPlatform,\n inproc,\n protocolVersion,\n reconnectAttempts,\n replaySpecs,\n };\n }\n function getContexts() {\n if (typeof configuration.contexts === \"undefined\") {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"boolean\" && configuration.contexts) {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"object\") {\n return Object.assign({}, { reAnnounceKnownContexts: true }, configuration.contexts);\n }\n return false;\n }\n function getApplication() {\n if (configuration.application) {\n return configuration.application;\n }\n if (glue42gd) {\n return glue42gd.applicationName;\n }\n if (typeof window !== \"undefined\" && typeof window.glue42electron !== \"undefined\") {\n return window.glue42electron.application;\n }\n const uid = nanoid(10);\n if (Utils.isNode()) {\n if (nodeStartingContext) {\n return nodeStartingContext.applicationConfig.name;\n }\n return \"NodeJS\" + uid;\n }\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n return document.title + ` (${uid})`;\n }\n return uid;\n }\n function getAuth() {\n if (typeof configuration.auth === \"string\") {\n return {\n token: configuration.auth\n };\n }\n if (configuration.auth) {\n return configuration.auth;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwToken) {\n return {\n gatewayToken: nodeStartingContext.gwToken\n };\n }\n if (configuration.gateway?.webPlatform || configuration.gateway?.inproc || configuration.gateway?.sharedWorker) {\n return {\n username: \"glue42\", password: \"glue42\"\n };\n }\n }\n function getLogger() {\n let config = configuration.logger;\n const defaultLevel = \"warn\";\n if (!config) {\n config = defaultLevel;\n }\n let gdConsoleLevel;\n if (glue42gd) {\n gdConsoleLevel = glue42gd.consoleLogLevel;\n }\n if (typeof config === \"string\") {\n return { console: gdConsoleLevel ?? config, publish: defaultLevel };\n }\n return {\n console: gdConsoleLevel ?? config.console ?? defaultLevel,\n publish: config.publish ?? defaultLevel\n };\n }\n const connection = getConnection();\n let application = getApplication();\n if (typeof window !== \"undefined\") {\n const windowAsAny = window;\n const containerApplication = windowAsAny.htmlContainer ?\n `${windowAsAny.htmlContainer.containerName}.${windowAsAny.htmlContainer.application}` :\n windowAsAny?.glue42gd?.application;\n if (containerApplication) {\n application = containerApplication;\n }\n }\n return {\n bus: configuration.bus ?? false,\n application,\n auth: getAuth(),\n logger: getLogger(),\n connection,\n metrics: configuration.metrics ?? true,\n contexts: getContexts(),\n version: ext.version || version,\n libs: ext.libs ?? [],\n customLogger: configuration.customLogger\n };\n}\n\nclass GW3ContextData {\n name;\n contextId;\n context;\n isAnnounced;\n joinedActivity;\n updateCallbacks = {};\n activityId;\n sentExplicitSubscription;\n hasReceivedSnapshot;\n constructor(contextId, name, isAnnounced, activityId) {\n this.contextId = contextId;\n this.name = name;\n this.isAnnounced = isAnnounced;\n this.activityId = activityId;\n this.context = {};\n }\n hasCallbacks() {\n return Object.keys(this.updateCallbacks).length > 0;\n }\n getState() {\n if (this.isAnnounced && this.hasCallbacks()) {\n return 3;\n }\n if (this.isAnnounced) {\n return 2;\n }\n if (this.hasCallbacks()) {\n return 1;\n }\n return 0;\n }\n}\n\nvar lodash_clonedeep = {exports: {}};\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nlodash_clonedeep.exports;\n\n(function (module, exports) {\n\t/** Used as the size to enable large array optimizations. */\n\tvar LARGE_ARRAY_SIZE = 200;\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t arrayTag = '[object Array]',\n\t boolTag = '[object Boolean]',\n\t dateTag = '[object Date]',\n\t errorTag = '[object Error]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t mapTag = '[object Map]',\n\t numberTag = '[object Number]',\n\t objectTag = '[object Object]',\n\t promiseTag = '[object Promise]',\n\t regexpTag = '[object RegExp]',\n\t setTag = '[object Set]',\n\t stringTag = '[object String]',\n\t symbolTag = '[object Symbol]',\n\t weakMapTag = '[object WeakMap]';\n\n\tvar arrayBufferTag = '[object ArrayBuffer]',\n\t dataViewTag = '[object DataView]',\n\t float32Tag = '[object Float32Array]',\n\t float64Tag = '[object Float64Array]',\n\t int8Tag = '[object Int8Array]',\n\t int16Tag = '[object Int16Array]',\n\t int32Tag = '[object Int32Array]',\n\t uint8Tag = '[object Uint8Array]',\n\t uint8ClampedTag = '[object Uint8ClampedArray]',\n\t uint16Tag = '[object Uint16Array]',\n\t uint32Tag = '[object Uint32Array]';\n\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n\t/** Used to match `RegExp` flags from their coerced string values. */\n\tvar reFlags = /\\w*$/;\n\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n\t/** Used to identify `toStringTag` values supported by `_.clone`. */\n\tvar cloneableTags = {};\n\tcloneableTags[argsTag] = cloneableTags[arrayTag] =\n\tcloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n\tcloneableTags[boolTag] = cloneableTags[dateTag] =\n\tcloneableTags[float32Tag] = cloneableTags[float64Tag] =\n\tcloneableTags[int8Tag] = cloneableTags[int16Tag] =\n\tcloneableTags[int32Tag] = cloneableTags[mapTag] =\n\tcloneableTags[numberTag] = cloneableTags[objectTag] =\n\tcloneableTags[regexpTag] = cloneableTags[setTag] =\n\tcloneableTags[stringTag] = cloneableTags[symbolTag] =\n\tcloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n\tcloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n\tcloneableTags[errorTag] = cloneableTags[funcTag] =\n\tcloneableTags[weakMapTag] = false;\n\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\n\t/** Detect free variable `exports`. */\n\tvar freeExports = exports && !exports.nodeType && exports;\n\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n\t/**\n\t * Adds the key-value `pair` to `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to modify.\n\t * @param {Array} pair The key-value pair to add.\n\t * @returns {Object} Returns `map`.\n\t */\n\tfunction addMapEntry(map, pair) {\n\t // Don't return `map.set` because it's not chainable in IE 11.\n\t map.set(pair[0], pair[1]);\n\t return map;\n\t}\n\n\t/**\n\t * Adds `value` to `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to modify.\n\t * @param {*} value The value to add.\n\t * @returns {Object} Returns `set`.\n\t */\n\tfunction addSetEntry(set, value) {\n\t // Don't return `set.add` because it's not chainable in IE 11.\n\t set.add(value);\n\t return set;\n\t}\n\n\t/**\n\t * A specialized version of `_.forEach` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayEach(array, iteratee) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\n\t while (++index < length) {\n\t if (iteratee(array[index], index, array) === false) {\n\t break;\n\t }\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Appends the elements of `values` to `array`.\n\t *\n\t * @private\n\t * @param {Array} array The array to modify.\n\t * @param {Array} values The values to append.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayPush(array, values) {\n\t var index = -1,\n\t length = values.length,\n\t offset = array.length;\n\n\t while (++index < length) {\n\t array[offset + index] = values[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * A specialized version of `_.reduce` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @param {*} [accumulator] The initial value.\n\t * @param {boolean} [initAccum] Specify using the first element of `array` as\n\t * the initial value.\n\t * @returns {*} Returns the accumulated value.\n\t */\n\tfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\t while (++index < length) {\n\t accumulator = iteratee(accumulator, array[index], index, array);\n\t }\n\t return accumulator;\n\t}\n\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Gets the value at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to query.\n\t * @param {string} key The key of the property to get.\n\t * @returns {*} Returns the property value.\n\t */\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Converts `map` to its key-value pairs.\n\t *\n\t * @private\n\t * @param {Object} map The map to convert.\n\t * @returns {Array} Returns the key-value pairs.\n\t */\n\tfunction mapToArray(map) {\n\t var index = -1,\n\t result = Array(map.size);\n\n\t map.forEach(function(value, key) {\n\t result[++index] = [key, value];\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\n\t/**\n\t * Converts `set` to an array of its values.\n\t *\n\t * @private\n\t * @param {Object} set The set to convert.\n\t * @returns {Array} Returns the values.\n\t */\n\tfunction setToArray(set) {\n\t var index = -1,\n\t result = Array(set.size);\n\n\t set.forEach(function(value) {\n\t result[++index] = value;\n\t });\n\t return result;\n\t}\n\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype,\n\t funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\n\t/** Built-in value references. */\n\tvar Buffer = moduleExports ? root.Buffer : undefined,\n\t Symbol = root.Symbol,\n\t Uint8Array = root.Uint8Array,\n\t getPrototype = overArg(Object.getPrototypeOf, Object),\n\t objectCreate = Object.create,\n\t propertyIsEnumerable = objectProto.propertyIsEnumerable,\n\t splice = arrayProto.splice;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeGetSymbols = Object.getOwnPropertySymbols,\n\t nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n\t nativeKeys = overArg(Object.keys, Object);\n\n\t/* Built-in method references that are verified to be native. */\n\tvar DataView = getNative(root, 'DataView'),\n\t Map = getNative(root, 'Map'),\n\t Promise = getNative(root, 'Promise'),\n\t Set = getNative(root, 'Set'),\n\t WeakMap = getNative(root, 'WeakMap'),\n\t nativeCreate = getNative(Object, 'create');\n\n\t/** Used to detect maps, sets, and weakmaps. */\n\tvar dataViewCtorString = toSource(DataView),\n\t mapCtorString = toSource(Map),\n\t promiseCtorString = toSource(Promise),\n\t setCtorString = toSource(Set),\n\t weakMapCtorString = toSource(WeakMap);\n\n\t/** Used to convert symbols to primitives and strings. */\n\tvar symbolProto = Symbol ? Symbol.prototype : undefined,\n\t symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t}\n\n\t/**\n\t * Removes `key` and its value from the hash.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Hash\n\t * @param {Object} hash The hash to modify.\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction hashDelete(key) {\n\t return this.has(key) && delete this.__data__[key];\n\t}\n\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n\t}\n\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the list cache.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf ListCache\n\t */\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t}\n\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t return true;\n\t}\n\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t return getMapData(this, key)['delete'](key);\n\t}\n\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t getMapData(this, key).set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\n\t/**\n\t * Creates a stack cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Stack(entries) {\n\t this.__data__ = new ListCache(entries);\n\t}\n\n\t/**\n\t * Removes all key-value entries from the stack.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Stack\n\t */\n\tfunction stackClear() {\n\t this.__data__ = new ListCache;\n\t}\n\n\t/**\n\t * Removes `key` and its value from the stack.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction stackDelete(key) {\n\t return this.__data__['delete'](key);\n\t}\n\n\t/**\n\t * Gets the stack value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction stackGet(key) {\n\t return this.__data__.get(key);\n\t}\n\n\t/**\n\t * Checks if a stack value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Stack\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction stackHas(key) {\n\t return this.__data__.has(key);\n\t}\n\n\t/**\n\t * Sets the stack `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the stack cache instance.\n\t */\n\tfunction stackSet(key, value) {\n\t var cache = this.__data__;\n\t if (cache instanceof ListCache) {\n\t var pairs = cache.__data__;\n\t if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n\t pairs.push([key, value]);\n\t return this;\n\t }\n\t cache = this.__data__ = new MapCache(pairs);\n\t }\n\t cache.set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `Stack`.\n\tStack.prototype.clear = stackClear;\n\tStack.prototype['delete'] = stackDelete;\n\tStack.prototype.get = stackGet;\n\tStack.prototype.has = stackHas;\n\tStack.prototype.set = stackSet;\n\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\n\t var length = result.length,\n\t skipIndexes = !!length;\n\n\t for (var key in value) {\n\t if ((hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\n\t/**\n\t * The base implementation of `_.assign` without support for multiple sources\n\t * or `customizer` functions.\n\t *\n\t * @private\n\t * @param {Object} object The destination object.\n\t * @param {Object} source The source object.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction baseAssign(object, source) {\n\t return object && copyObject(source, keys(source), object);\n\t}\n\n\t/**\n\t * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n\t * traversed objects.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @param {boolean} [isFull] Specify a clone including symbols.\n\t * @param {Function} [customizer] The function to customize cloning.\n\t * @param {string} [key] The key of `value`.\n\t * @param {Object} [object] The parent object of `value`.\n\t * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\tfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n\t var result;\n\t if (customizer) {\n\t result = object ? customizer(value, key, object, stack) : customizer(value);\n\t }\n\t if (result !== undefined) {\n\t return result;\n\t }\n\t if (!isObject(value)) {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isArr) {\n\t result = initCloneArray(value);\n\t if (!isDeep) {\n\t return copyArray(value, result);\n\t }\n\t } else {\n\t var tag = getTag(value),\n\t isFunc = tag == funcTag || tag == genTag;\n\n\t if (isBuffer(value)) {\n\t return cloneBuffer(value, isDeep);\n\t }\n\t if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n\t if (isHostObject(value)) {\n\t return object ? value : {};\n\t }\n\t result = initCloneObject(isFunc ? {} : value);\n\t if (!isDeep) {\n\t return copySymbols(value, baseAssign(result, value));\n\t }\n\t } else {\n\t if (!cloneableTags[tag]) {\n\t return object ? value : {};\n\t }\n\t result = initCloneByTag(value, tag, baseClone, isDeep);\n\t }\n\t }\n\t // Check for circular references and return its corresponding clone.\n\t stack || (stack = new Stack);\n\t var stacked = stack.get(value);\n\t if (stacked) {\n\t return stacked;\n\t }\n\t stack.set(value, result);\n\n\t if (!isArr) {\n\t var props = isFull ? getAllKeys(value) : keys(value);\n\t }\n\t arrayEach(props || value, function(subValue, key) {\n\t if (props) {\n\t key = subValue;\n\t subValue = value[key];\n\t }\n\t // Recursively populate clone (susceptible to call stack limits).\n\t assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\tfunction baseCreate(proto) {\n\t return isObject(proto) ? objectCreate(proto) : {};\n\t}\n\n\t/**\n\t * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n\t * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n\t * symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {Function} keysFunc The function to get the keys of `object`.\n\t * @param {Function} symbolsFunc The function to get the symbols of `object`.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n\t var result = keysFunc(object);\n\t return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n\t}\n\n\t/**\n\t * The base implementation of `getTag`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t return objectToString.call(value);\n\t}\n\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `buffer`.\n\t *\n\t * @private\n\t * @param {Buffer} buffer The buffer to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Buffer} Returns the cloned buffer.\n\t */\n\tfunction cloneBuffer(buffer, isDeep) {\n\t if (isDeep) {\n\t return buffer.slice();\n\t }\n\t var result = new buffer.constructor(buffer.length);\n\t buffer.copy(result);\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `arrayBuffer`.\n\t *\n\t * @private\n\t * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n\t * @returns {ArrayBuffer} Returns the cloned array buffer.\n\t */\n\tfunction cloneArrayBuffer(arrayBuffer) {\n\t var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n\t new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `dataView`.\n\t *\n\t * @private\n\t * @param {Object} dataView The data view to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned data view.\n\t */\n\tfunction cloneDataView(dataView, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n\t return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n\t}\n\n\t/**\n\t * Creates a clone of `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned map.\n\t */\n\tfunction cloneMap(map, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n\t return arrayReduce(array, addMapEntry, new map.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of `regexp`.\n\t *\n\t * @private\n\t * @param {Object} regexp The regexp to clone.\n\t * @returns {Object} Returns the cloned regexp.\n\t */\n\tfunction cloneRegExp(regexp) {\n\t var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n\t result.lastIndex = regexp.lastIndex;\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned set.\n\t */\n\tfunction cloneSet(set, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n\t return arrayReduce(array, addSetEntry, new set.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of the `symbol` object.\n\t *\n\t * @private\n\t * @param {Object} symbol The symbol object to clone.\n\t * @returns {Object} Returns the cloned symbol object.\n\t */\n\tfunction cloneSymbol(symbol) {\n\t return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n\t}\n\n\t/**\n\t * Creates a clone of `typedArray`.\n\t *\n\t * @private\n\t * @param {Object} typedArray The typed array to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned typed array.\n\t */\n\tfunction cloneTypedArray(typedArray, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n\t return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n\t}\n\n\t/**\n\t * Copies the values of `source` to `array`.\n\t *\n\t * @private\n\t * @param {Array} source The array to copy values from.\n\t * @param {Array} [array=[]] The array to copy values to.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction copyArray(source, array) {\n\t var index = -1,\n\t length = source.length;\n\n\t array || (array = Array(length));\n\t while (++index < length) {\n\t array[index] = source[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\n\t var index = -1,\n\t length = props.length;\n\n\t while (++index < length) {\n\t var key = props[index];\n\n\t var newValue = undefined;\n\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\n\t/**\n\t * Copies own symbol properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy symbols from.\n\t * @param {Object} [object={}] The object to copy symbols to.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copySymbols(source, object) {\n\t return copyObject(source, getSymbols(source), object);\n\t}\n\n\t/**\n\t * Creates an array of own enumerable property names and symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction getAllKeys(object) {\n\t return baseGetAllKeys(object, keys, getSymbols);\n\t}\n\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable symbol properties of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of symbols.\n\t */\n\tvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n\t/**\n\t * Gets the `toStringTag` of `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tvar getTag = baseGetTag;\n\n\t// Fallback for data views, maps, sets, and weak maps in IE 11,\n\t// for data views in Edge < 14, and promises in Node.js.\n\tif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n\t (Map && getTag(new Map) != mapTag) ||\n\t (Promise && getTag(Promise.resolve()) != promiseTag) ||\n\t (Set && getTag(new Set) != setTag) ||\n\t (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n\t getTag = function(value) {\n\t var result = objectToString.call(value),\n\t Ctor = result == objectTag ? value.constructor : undefined,\n\t ctorString = Ctor ? toSource(Ctor) : undefined;\n\n\t if (ctorString) {\n\t switch (ctorString) {\n\t case dataViewCtorString: return dataViewTag;\n\t case mapCtorString: return mapTag;\n\t case promiseCtorString: return promiseTag;\n\t case setCtorString: return setTag;\n\t case weakMapCtorString: return weakMapTag;\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\n\t/**\n\t * Initializes an array clone.\n\t *\n\t * @private\n\t * @param {Array} array The array to clone.\n\t * @returns {Array} Returns the initialized clone.\n\t */\n\tfunction initCloneArray(array) {\n\t var length = array.length,\n\t result = array.constructor(length);\n\n\t // Add properties assigned by `RegExp#exec`.\n\t if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n\t result.index = array.index;\n\t result.input = array.input;\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Initializes an object clone.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneObject(object) {\n\t return (typeof object.constructor == 'function' && !isPrototype(object))\n\t ? baseCreate(getPrototype(object))\n\t : {};\n\t}\n\n\t/**\n\t * Initializes an object clone based on its `toStringTag`.\n\t *\n\t * **Note:** This function only supports cloning values with tags of\n\t * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @param {string} tag The `toStringTag` of the object to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n\t var Ctor = object.constructor;\n\t switch (tag) {\n\t case arrayBufferTag:\n\t return cloneArrayBuffer(object);\n\n\t case boolTag:\n\t case dateTag:\n\t return new Ctor(+object);\n\n\t case dataViewTag:\n\t return cloneDataView(object, isDeep);\n\n\t case float32Tag: case float64Tag:\n\t case int8Tag: case int16Tag: case int32Tag:\n\t case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n\t return cloneTypedArray(object, isDeep);\n\n\t case mapTag:\n\t return cloneMap(object, isDeep, cloneFunc);\n\n\t case numberTag:\n\t case stringTag:\n\t return new Ctor(object);\n\n\t case regexpTag:\n\t return cloneRegExp(object);\n\n\t case setTag:\n\t return cloneSet(object, isDeep, cloneFunc);\n\n\t case symbolTag:\n\t return cloneSymbol(object);\n\t }\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\n\t/**\n\t * Checks if `value` is suitable for use as unique object key.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n\t */\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n\t return value === proto;\n\t}\n\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to process.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\n\t/**\n\t * This method is like `_.clone` except that it recursively clones `value`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 1.0.0\n\t * @category Lang\n\t * @param {*} value The value to recursively clone.\n\t * @returns {*} Returns the deep cloned value.\n\t * @see _.clone\n\t * @example\n\t *\n\t * var objects = [{ 'a': 1 }, { 'b': 2 }];\n\t *\n\t * var deep = _.cloneDeep(objects);\n\t * console.log(deep[0] === objects[0]);\n\t * // => false\n\t */\n\tfunction cloneDeep(value) {\n\t return baseClone(value, true, true);\n\t}\n\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\n\t/**\n\t * Checks if `value` is a buffer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.3.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n\t * @example\n\t *\n\t * _.isBuffer(new Buffer(2));\n\t * // => true\n\t *\n\t * _.isBuffer(new Uint8Array(2));\n\t * // => false\n\t */\n\tvar isBuffer = nativeIsBuffer || stubFalse;\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\n\t/**\n\t * This method returns a new empty array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {Array} Returns the new empty array.\n\t * @example\n\t *\n\t * var arrays = _.times(2, _.stubArray);\n\t *\n\t * console.log(arrays);\n\t * // => [[], []]\n\t *\n\t * console.log(arrays[0] === arrays[1]);\n\t * // => false\n\t */\n\tfunction stubArray() {\n\t return [];\n\t}\n\n\t/**\n\t * This method returns `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {boolean} Returns `false`.\n\t * @example\n\t *\n\t * _.times(2, _.stubFalse);\n\t * // => [false, false]\n\t */\n\tfunction stubFalse() {\n\t return false;\n\t}\n\n\tmodule.exports = cloneDeep; \n} (lodash_clonedeep, lodash_clonedeep.exports));\n\nvar lodash_clonedeepExports = lodash_clonedeep.exports;\nvar cloneDeep = /*@__PURE__*/getDefaultExportFromCjs(lodash_clonedeepExports);\n\nfunction applyContextDelta(context, delta, logger) {\n try {\n if (logger?.canPublish(\"trace\")) {\n logger?.trace(`applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`);\n }\n if (!delta) {\n return context;\n }\n if (delta.reset) {\n context = { ...delta.reset };\n return context;\n }\n context = deepClone(context, undefined);\n if (delta.commands) {\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n deletePath(context, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(context, command.value, command.path);\n }\n }\n return context;\n }\n const added = delta.added;\n const updated = delta.updated;\n const removed = delta.removed;\n if (added) {\n Object.keys(added).forEach((key) => {\n context[key] = added[key];\n });\n }\n if (updated) {\n Object.keys(updated).forEach((key) => {\n mergeObjectsProperties(key, context, updated);\n });\n }\n if (removed) {\n removed.forEach((key) => {\n delete context[key];\n });\n }\n return context;\n }\n catch (e) {\n logger?.error(`error applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`, e);\n return context;\n }\n}\nfunction deepClone(obj, hash) {\n return cloneDeep(obj);\n}\nconst mergeObjectsProperties = (key, what, withWhat) => {\n const right = withWhat[key];\n if (right === undefined) {\n return what;\n }\n const left = what[key];\n if (!left || !right) {\n what[key] = right;\n return what;\n }\n if (typeof left === \"string\" ||\n typeof left === \"number\" ||\n typeof left === \"boolean\" ||\n typeof right === \"string\" ||\n typeof right === \"number\" ||\n typeof right === \"boolean\" ||\n Array.isArray(left) ||\n Array.isArray(right)) {\n what[key] = right;\n return what;\n }\n what[key] = Object.assign({}, left, right);\n return what;\n};\nfunction deepEqual(x, y) {\n if (x === y) {\n return true;\n }\n if (!(x instanceof Object) || !(y instanceof Object)) {\n return false;\n }\n if (x.constructor !== y.constructor) {\n return false;\n }\n for (const p in x) {\n if (!x.hasOwnProperty(p)) {\n continue;\n }\n if (!y.hasOwnProperty(p)) {\n return false;\n }\n if (x[p] === y[p]) {\n continue;\n }\n if (typeof (x[p]) !== \"object\") {\n return false;\n }\n if (!deepEqual(x[p], y[p])) {\n return false;\n }\n }\n for (const p in y) {\n if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) {\n return false;\n }\n }\n return true;\n}\nfunction setValueToPath(obj, value, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n obj[pathArr[i]] = {};\n }\n if (typeof obj[pathArr[i]] !== \"object\") {\n obj[pathArr[i]] = {};\n }\n obj = obj[pathArr[i]];\n }\n obj[pathArr[i]] = value;\n}\nfunction isSubset(superObj, subObj) {\n return Object.keys(subObj).every((ele) => {\n if (typeof subObj[ele] === \"object\") {\n return isSubset(superObj?.[ele] || {}, subObj[ele] || {});\n }\n return subObj[ele] === superObj?.[ele];\n });\n}\nfunction deletePath(obj, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n return;\n }\n obj = obj[pathArr[i]];\n }\n delete obj[pathArr[i]];\n}\n\nclass GW3Bridge {\n _logger;\n _connection;\n _trackAllContexts;\n _reAnnounceKnownContexts;\n _gw3Session;\n _contextNameToData = {};\n _gw3Subscriptions = [];\n _nextCallbackSubscriptionNumber = 0;\n _creationPromises = {};\n _contextNameToId = {};\n _contextIdToName = {};\n _protocolVersion = undefined;\n _contextsTempCache = {};\n _contextsSubscriptionsCache = [];\n _systemContextsSubKey;\n get protocolVersion() {\n if (!this._protocolVersion) {\n const contextsDomainInfo = this._connection.availableDomains.find((d) => d.uri === \"context\");\n this._protocolVersion = contextsDomainInfo?.version ?? 1;\n }\n return this._protocolVersion;\n }\n get setPathSupported() {\n return this.protocolVersion >= 2;\n }\n constructor(config) {\n this._connection = config.connection;\n this._logger = config.logger;\n this._trackAllContexts = config.trackAllContexts;\n this._reAnnounceKnownContexts = config.reAnnounceKnownContexts;\n this._gw3Session = this._connection.domain(\"global\", [\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_CONTEXT_UPDATED,\n ]);\n this._gw3Session.disconnected(this.resetState.bind(this));\n this._gw3Session.onJoined((wasReconnect) => {\n if (!wasReconnect) {\n return;\n }\n if (!this._reAnnounceKnownContexts) {\n return this._connection.setLibReAnnounced({ name: \"contexts\" });\n }\n this.reInitiateState().then(() => this._connection.setLibReAnnounced({ name: \"contexts\" }));\n });\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n }\n dispose() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n this._gw3Subscriptions.length = 0;\n for (const contextName in this._contextNameToData) {\n if (this._contextNameToId.hasOwnProperty(contextName)) {\n delete this._contextNameToData[contextName];\n }\n }\n }\n createContext(name, data) {\n if (name in this._creationPromises) {\n return this._creationPromises[name];\n }\n this._creationPromises[name] =\n this._gw3Session\n .send({\n type: GW_MESSAGE_CREATE_CONTEXT,\n domain: \"global\",\n name,\n data,\n lifetime: \"retained\",\n })\n .then((createContextMsg) => {\n this._contextNameToId[name] = createContextMsg.context_id;\n this._contextIdToName[createContextMsg.context_id] = name;\n const contextData = this._contextNameToData[name] || new GW3ContextData(createContextMsg.context_id, name, true, undefined);\n contextData.isAnnounced = true;\n contextData.name = name;\n contextData.contextId = createContextMsg.context_id;\n contextData.context = createContextMsg.data || deepClone(data);\n contextData.hasReceivedSnapshot = true;\n this._contextNameToData[name] = contextData;\n delete this._creationPromises[name];\n return createContextMsg.context_id;\n });\n return this._creationPromises[name];\n }\n all() {\n return Object.keys(this._contextNameToData)\n .filter((name) => this._contextNameToData[name].isAnnounced);\n }\n async update(name, delta) {\n if (delta) {\n delta = deepClone(delta);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, delta);\n }\n let currentContext = contextData.context;\n if (!contextData.hasCallbacks()) {\n currentContext = await this.get(contextData.name);\n }\n const calculatedDelta = this.setPathSupported ?\n this.calculateContextDeltaV2(currentContext, delta) :\n this.calculateContextDeltaV1(currentContext, delta);\n if (!Object.keys(calculatedDelta.added).length\n && !Object.keys(calculatedDelta.updated).length\n && !calculatedDelta.removed.length\n && !calculatedDelta.commands?.length) {\n return Promise.resolve();\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: calculatedDelta,\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, calculatedDelta, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n async set(name, data) {\n if (data) {\n data = deepClone(data);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, data);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { reset: data },\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, {\n reset: data,\n added: {},\n removed: [],\n updated: {}\n }, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n setPath(name, path, value) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPath operation is not supported, use Glue42 3.10 or later\");\n }\n return this.setPaths(name, [{ path, value }]);\n }\n async setPaths(name, pathValues) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPaths operation is not supported, use Glue42 3.10 or later\");\n }\n if (pathValues) {\n pathValues = deepClone(pathValues);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n const obj = {};\n for (const pathValue of pathValues) {\n setValueToPath(obj, pathValue.value, pathValue.path);\n }\n return this.createContext(name, obj);\n }\n const commands = [];\n for (const pathValue of pathValues) {\n if (pathValue.value === null) {\n commands.push({ type: \"remove\", path: pathValue.path });\n }\n else {\n commands.push({ type: \"set\", path: pathValue.path, value: pathValue.value });\n }\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { commands }\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, {\n added: {},\n removed: [],\n updated: {},\n commands\n }, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n async get(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return Promise.resolve({});\n }\n if (contextData && (!contextData.hasCallbacks() || !contextData.hasReceivedSnapshot)) {\n return new Promise((resolve) => {\n this.subscribe(name, (data, _d, _r, un) => {\n this.unsubscribe(un);\n resolve(data);\n });\n });\n }\n const context = contextData?.context ?? {};\n return Promise.resolve(deepClone(context));\n }\n async subscribe(name, callback, subscriptionKey) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const thisCallbackSubscriptionNumber = typeof subscriptionKey === \"undefined\" ? this._nextCallbackSubscriptionNumber : subscriptionKey;\n if (typeof subscriptionKey === \"undefined\") {\n this._nextCallbackSubscriptionNumber += 1;\n }\n if (this._contextsSubscriptionsCache.every((subscription) => subscription.subKey !== this._nextCallbackSubscriptionNumber)) {\n this._contextsSubscriptionsCache.push({ contextName: name, subKey: thisCallbackSubscriptionNumber, callback });\n }\n let contextData = this._contextNameToData[name];\n if (!contextData ||\n !contextData.isAnnounced) {\n contextData = contextData || new GW3ContextData(undefined, name, false, undefined);\n this._contextNameToData[name] = contextData;\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n const hadCallbacks = contextData.hasCallbacks();\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n if (!hadCallbacks) {\n if (!contextData.joinedActivity) {\n if (contextData.context && contextData.sentExplicitSubscription) {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n return this.sendSubscribe(contextData)\n .then(() => thisCallbackSubscriptionNumber);\n }\n else {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n else {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n unsubscribe(subscriptionKey) {\n this._contextsSubscriptionsCache = this._contextsSubscriptionsCache.filter((subscription) => subscription.subKey !== subscriptionKey);\n for (const name of Object.keys(this._contextNameToData)) {\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n return;\n }\n const hadCallbacks = contextData.hasCallbacks();\n delete contextData.updateCallbacks[subscriptionKey];\n if (contextData.isAnnounced &&\n hadCallbacks &&\n !contextData.hasCallbacks() &&\n contextData.sentExplicitSubscription) {\n this.sendUnsubscribe(contextData).catch(() => { });\n }\n if (!contextData.isAnnounced &&\n !contextData.hasCallbacks()) {\n delete this._contextNameToData[name];\n }\n }\n }\n async destroy(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n return Promise.reject(`context with ${name} does not exist`);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_DESTROY_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n handleUpdated(contextData, delta, extraData) {\n const oldContext = contextData.context;\n contextData.context = applyContextDelta(contextData.context, delta, this._logger);\n contextData.hasReceivedSnapshot = true;\n if (this._contextNameToData[contextData.name] === contextData &&\n !deepEqual(oldContext, contextData.context)) {\n this.invokeUpdateCallbacks(contextData, delta, extraData);\n }\n }\n subscribeToContextCreatedMessages() {\n const createdMessageTypes = [\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_ACTIVITY_CREATED,\n ];\n for (const createdMessageType of createdMessageTypes) {\n const sub = this._connection.on(createdMessageType, this.handleContextCreatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextCreatedMessage(contextCreatedMsg) {\n const createdMessageType = contextCreatedMsg.type;\n if (createdMessageType === GW_MESSAGE_ACTIVITY_CREATED) {\n this._contextNameToId[contextCreatedMsg.activity_id] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.activity_id;\n }\n else if (createdMessageType === GW_MESSAGE_CONTEXT_ADDED) {\n this._contextNameToId[contextCreatedMsg.name] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.name;\n }\n else ;\n const name = this._contextIdToName[contextCreatedMsg.context_id];\n if (!name) {\n throw new Error(\"Received created event for context with unknown name: \" + contextCreatedMsg.context_id);\n }\n if (!this._contextNameToId[name]) {\n throw new Error(\"Received created event for context with unknown id: \" + contextCreatedMsg.context_id);\n }\n let contextData = this._contextNameToData[name];\n if (contextData) {\n if (contextData.isAnnounced) {\n return;\n }\n else {\n if (!contextData.hasCallbacks()) {\n throw new Error(\"Assertion failure: contextData.hasCallbacks()\");\n }\n contextData.isAnnounced = true;\n contextData.contextId = contextCreatedMsg.context_id;\n contextData.activityId = contextCreatedMsg.activity_id;\n if (!contextData.sentExplicitSubscription) {\n this.sendSubscribe(contextData);\n }\n }\n }\n else {\n this._contextNameToData[name] = contextData =\n new GW3ContextData(contextCreatedMsg.context_id, name, true, contextCreatedMsg.activity_id);\n if (this._trackAllContexts) {\n this.subscribe(name, () => { }).then((subKey) => this._systemContextsSubKey = subKey);\n }\n }\n }\n subscribeToContextUpdatedMessages() {\n const updatedMessageTypes = [\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_JOINED_ACTIVITY,\n ];\n for (const updatedMessageType of updatedMessageTypes) {\n const sub = this._connection.on(updatedMessageType, this.handleContextUpdatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextUpdatedMessage(contextUpdatedMsg) {\n const updatedMessageType = contextUpdatedMsg.type;\n const contextId = contextUpdatedMsg.context_id;\n let contextData = this._contextNameToData[this._contextIdToName[contextId]];\n const justSeen = !contextData || !contextData.isAnnounced;\n if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n if (!contextData) {\n contextData =\n this._contextNameToData[contextUpdatedMsg.activity_id] ||\n new GW3ContextData(contextId, contextUpdatedMsg.activity_id, true, contextUpdatedMsg.activity_id);\n }\n this._contextNameToData[contextUpdatedMsg.activity_id] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.activity_id;\n this._contextNameToId[contextUpdatedMsg.activity_id] = contextId;\n contextData.contextId = contextId;\n contextData.isAnnounced = true;\n contextData.activityId = contextUpdatedMsg.activity_id;\n contextData.joinedActivity = true;\n }\n else {\n if (!contextData || !contextData.isAnnounced) {\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData = contextData || new GW3ContextData(contextId, contextUpdatedMsg.name, true, undefined);\n contextData.sentExplicitSubscription = true;\n this._contextNameToData[contextUpdatedMsg.name] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.name;\n this._contextNameToId[contextUpdatedMsg.name] = contextId;\n }\n else {\n this._logger.error(`Received 'update' for unknown context: ${contextId}`);\n }\n return;\n }\n }\n const oldContext = contextData.context;\n contextData.hasReceivedSnapshot = true;\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData.context = contextUpdatedMsg.data || {};\n }\n else if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n contextData.context = contextUpdatedMsg.context_snapshot || {};\n }\n else if (updatedMessageType === GW_MESSAGE_CONTEXT_UPDATED) {\n contextData.context = applyContextDelta(contextData.context, contextUpdatedMsg.delta, this._logger);\n }\n else {\n throw new Error(\"Unrecognized context update message \" + updatedMessageType);\n }\n if (justSeen ||\n !deepEqual(contextData.context, oldContext) ||\n updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n this.invokeUpdateCallbacks(contextData, contextUpdatedMsg.delta, { updaterId: contextUpdatedMsg.updater_id });\n }\n }\n invokeUpdateCallbacks(contextData, delta, extraData) {\n delta = delta || { added: {}, updated: {}, reset: {}, removed: [] };\n if (delta.commands) {\n delta.added = delta.updated = delta.reset = {};\n delta.removed = [];\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n if (command.path.indexOf(\".\") === -1) {\n delta.removed.push(command.path);\n }\n setValueToPath(delta.updated, null, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(delta.updated, command.value, command.path);\n }\n }\n }\n for (const updateCallbackIndex in contextData.updateCallbacks) {\n if (contextData.updateCallbacks.hasOwnProperty(updateCallbackIndex)) {\n try {\n const updateCallback = contextData.updateCallbacks[updateCallbackIndex];\n updateCallback(deepClone(contextData.context), deepClone(Object.assign({}, delta.added || {}, delta.updated || {}, delta.reset || {})), delta.removed, parseInt(updateCallbackIndex, 10), extraData);\n }\n catch (err) {\n this._logger.debug(\"callback error: \" + JSON.stringify(err));\n }\n }\n }\n }\n subscribeToContextDestroyedMessages() {\n const destroyedMessageTypes = [\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n ];\n for (const destroyedMessageType of destroyedMessageTypes) {\n const sub = this._connection.on(destroyedMessageType, this.handleContextDestroyedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextDestroyedMessage(destroyedMsg) {\n const destroyedMessageType = destroyedMsg.type;\n let contextId;\n let name;\n if (destroyedMessageType === GW_MESSAGE_ACTIVITY_DESTROYED) {\n name = destroyedMsg.activity_id;\n contextId = this._contextNameToId[name];\n if (!contextId) {\n this._logger.error(`Received 'destroyed' for unknown activity: ${destroyedMsg.activity_id}`);\n return;\n }\n }\n else {\n contextId = destroyedMsg.context_id;\n name = this._contextIdToName[contextId];\n if (!name) {\n this._logger.error(`Received 'destroyed' for unknown context: ${destroyedMsg.context_id}`);\n return;\n }\n }\n delete this._contextIdToName[contextId];\n delete this._contextNameToId[name];\n const contextData = this._contextNameToData[name];\n delete this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n this._logger.error(`Received 'destroyed' for unknown context: ${contextId}`);\n return;\n }\n }\n sendSubscribe(contextData) {\n contextData.sentExplicitSubscription = true;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_SUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n sendUnsubscribe(contextData) {\n contextData.sentExplicitSubscription = false;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n calculateContextDeltaV1(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined };\n if (from) {\n for (const x of Object.keys(from)) {\n if (Object.keys(to).indexOf(x) !== -1\n && to[x] !== null\n && !deepEqual(from[x], to[x])) {\n delta.updated[x] = to[x];\n }\n }\n }\n for (const x of Object.keys(to)) {\n if (!from || (Object.keys(from).indexOf(x) === -1)) {\n if (to[x] !== null) {\n delta.added[x] = to[x];\n }\n }\n else if (to[x] === null) {\n delta.removed.push(x);\n }\n }\n return delta;\n }\n calculateContextDeltaV2(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined, commands: [] };\n for (const x of Object.keys(to)) {\n if (to[x] !== null) {\n const fromX = from ? from[x] : null;\n if (!deepEqual(fromX, to[x])) {\n delta.commands?.push({ type: \"set\", path: x, value: to[x] });\n }\n }\n else {\n delta.commands?.push({ type: \"remove\", path: x });\n }\n }\n return delta;\n }\n resetState() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n if (this._systemContextsSubKey) {\n this.unsubscribe(this._systemContextsSubKey);\n delete this._systemContextsSubKey;\n }\n this._gw3Subscriptions = [];\n this._contextNameToId = {};\n this._contextIdToName = {};\n delete this._protocolVersion;\n this._contextsTempCache = Object.keys(this._contextNameToData).reduce((cacheSoFar, ctxName) => {\n const contextData = this._contextNameToData[ctxName];\n if (contextData.isAnnounced && (contextData.activityId || contextData.sentExplicitSubscription)) {\n cacheSoFar[ctxName] = this._contextNameToData[ctxName].context;\n }\n return cacheSoFar;\n }, {});\n this._contextNameToData = {};\n }\n async reInitiateState() {\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n await Promise.all(this._contextsSubscriptionsCache.map((subscription) => this.subscribe(subscription.contextName, subscription.callback, subscription.subKey)));\n await this.flushQueue();\n for (const ctxName in this._contextsTempCache) {\n if (typeof this._contextsTempCache[ctxName] !== \"object\" || Object.keys(this._contextsTempCache[ctxName]).length === 0) {\n continue;\n }\n const lastKnownData = this._contextsTempCache[ctxName];\n this._logger.info(`Re-announcing known context: ${ctxName}`);\n await this.flushQueue();\n await this.update(ctxName, lastKnownData);\n }\n this._contextsTempCache = {};\n this._logger.info(\"Contexts are re-announced\");\n }\n flushQueue() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n }\n}\n\nclass ContextsModule {\n initTime;\n initStartTime;\n initEndTime;\n _bridge;\n constructor(config) {\n this._bridge = new GW3Bridge(config);\n }\n all() {\n return this._bridge.all();\n }\n update(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.update(name, data);\n }\n set(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.set(name, data);\n }\n setPath(name, path, data) {\n this.checkName(name);\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(data);\n return this.set(name, data);\n }\n return this._bridge.setPath(name, path, data);\n }\n setPaths(name, paths) {\n this.checkName(name);\n if (!Array.isArray(paths)) {\n throw new Error(\"Please provide the paths as an array of PathValues!\");\n }\n for (const { path, value } of paths) {\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(value);\n }\n }\n return this._bridge.setPaths(name, paths);\n }\n subscribe(name, callback) {\n this.checkName(name);\n if (typeof callback !== \"function\") {\n throw new Error(\"Please provide the callback as a function!\");\n }\n return this._bridge\n .subscribe(name, (data, delta, removed, key, extraData) => callback(data, delta, removed, () => this._bridge.unsubscribe(key), extraData))\n .then((key) => () => {\n this._bridge.unsubscribe(key);\n });\n }\n get(name) {\n this.checkName(name);\n return this._bridge.get(name);\n }\n ready() {\n return Promise.resolve(this);\n }\n destroy(name) {\n this.checkName(name);\n return this._bridge.destroy(name);\n }\n get setPathSupported() {\n return this._bridge.setPathSupported;\n }\n checkName(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new Error(\"Please provide the name as a non-empty string!\");\n }\n }\n checkPath(path) {\n if (typeof path !== \"string\") {\n throw new Error(\"Please provide the path as a dot delimited string!\");\n }\n }\n checkData(data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Please provide the data as an object!\");\n }\n }\n}\n\nfunction promisify (promise, successCallback, errorCallback) {\n if (typeof successCallback !== \"function\" && typeof errorCallback !== \"function\") {\n return promise;\n }\n if (typeof successCallback !== \"function\") {\n successCallback = () => { };\n }\n else if (typeof errorCallback !== \"function\") {\n errorCallback = () => { };\n }\n return promise.then(successCallback, errorCallback);\n}\n\nfunction rejectAfter(ms = 0, promise, error) {\n let timeout;\n const clearTimeoutIfThere = () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n promise\n .then(() => {\n clearTimeoutIfThere();\n })\n .catch(() => {\n clearTimeoutIfThere();\n });\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => reject(error), ms);\n });\n}\n\nvar InvokeStatus;\n(function (InvokeStatus) {\n InvokeStatus[InvokeStatus[\"Success\"] = 0] = \"Success\";\n InvokeStatus[InvokeStatus[\"Error\"] = 1] = \"Error\";\n})(InvokeStatus || (InvokeStatus = {}));\nclass Client {\n protocol;\n repo;\n instance;\n configuration;\n constructor(protocol, repo, instance, configuration) {\n this.protocol = protocol;\n this.repo = repo;\n this.instance = instance;\n this.configuration = configuration;\n }\n subscribe(method, options, successCallback, errorCallback, existingSub) {\n const callProtocolSubscribe = (targetServers, stream, successProxy, errorProxy) => {\n options.methodResponseTimeout = options.methodResponseTimeout ?? options.waitTimeoutMs;\n this.protocol.client.subscribe(stream, options, targetServers, successProxy, errorProxy, existingSub);\n };\n const promise = new Promise((resolve, reject) => {\n const successProxy = (sub) => {\n resolve(sub);\n };\n const errorProxy = (err) => {\n reject(err);\n };\n if (!method) {\n reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n return;\n }\n let methodDef;\n if (typeof method === \"string\") {\n methodDef = { name: method };\n }\n else {\n methodDef = method;\n }\n if (!methodDef.name) {\n reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n return;\n }\n if (options === undefined) {\n options = {};\n }\n let target = options.target;\n if (target === undefined) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\") {\n reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\", \"best\", or an instance.`));\n return;\n }\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = options.method_response_timeout;\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = this.configuration.methodResponseTimeout;\n }\n }\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = options.wait_for_method_timeout;\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n const delayStep = 500;\n let delayTillNow = 0;\n let currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n callProtocolSubscribe(currentServers, currentServers[0].methods[0], successProxy, errorProxy);\n }\n else {\n const retry = () => {\n if (!target || !(options.waitTimeoutMs)) {\n return;\n }\n delayTillNow += delayStep;\n currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n const streamInfo = currentServers[0].methods[0];\n callProtocolSubscribe(currentServers, streamInfo, successProxy, errorProxy);\n }\n else if (delayTillNow >= options.waitTimeoutMs) {\n const def = typeof method === \"string\" ? { name: method } : method;\n callProtocolSubscribe(currentServers, def, successProxy, errorProxy);\n }\n else {\n setTimeout(retry, delayStep);\n }\n };\n setTimeout(retry, delayStep);\n }\n });\n return promisify(promise, successCallback, errorCallback);\n }\n servers(methodFilter) {\n const filterCopy = methodFilter === undefined\n ? undefined\n : { ...methodFilter };\n return this.getServers(filterCopy).map((serverMethodMap) => {\n return serverMethodMap.server.instance;\n });\n }\n methods(methodFilter) {\n if (typeof methodFilter === \"string\") {\n methodFilter = { name: methodFilter };\n }\n else {\n methodFilter = { ...methodFilter };\n }\n return this.getMethods(methodFilter);\n }\n methodsForInstance(instance) {\n return this.getMethodsForInstance(instance);\n }\n methodAdded(callback) {\n return this.repo.onMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.repo.onMethodRemoved(callback);\n }\n serverAdded(callback) {\n return this.repo.onServerAdded(callback);\n }\n serverRemoved(callback) {\n return this.repo.onServerRemoved((server, reason) => {\n callback(server, reason);\n });\n }\n serverMethodAdded(callback) {\n return this.repo.onServerMethodAdded((server, method) => {\n callback({ server, method });\n });\n }\n serverMethodRemoved(callback) {\n return this.repo.onServerMethodRemoved((server, method) => {\n callback({ server, method });\n });\n }\n async invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n const getInvokePromise = async () => {\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = { ...methodFilter };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n }\n if (!argumentObj) {\n argumentObj = {};\n }\n if (!target) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\" && target !== \"skipMine\") {\n return Promise.reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\" and \"best\".`));\n }\n if (!additionalOptions) {\n additionalOptions = {};\n }\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = additionalOptions.method_response_timeout;\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = this.configuration.methodResponseTimeout;\n }\n }\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = additionalOptions.wait_for_method_timeout;\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n if (additionalOptions.waitTimeoutMs !== undefined && typeof additionalOptions.waitTimeoutMs !== \"number\") {\n return Promise.reject(new Error(`\"${additionalOptions.waitTimeoutMs}\" is not a valid number for \"waitTimeoutMs\" `));\n }\n if (typeof argumentObj !== \"object\") {\n return Promise.reject(new Error(`The method arguments must be an object. method: ${methodDefinition.name}`));\n }\n let serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length === 0) {\n try {\n serversMethodMap = await this.tryToAwaitForMethods(methodDefinition, target, additionalOptions);\n }\n catch (err) {\n const method = {\n ...methodDefinition,\n getServers: () => [],\n supportsStreaming: false,\n objectTypes: methodDefinition.objectTypes ?? [],\n flags: methodDefinition.flags?.metadata ?? {}\n };\n const errorObj = {\n method,\n called_with: argumentObj,\n message: `Can not find a method matching ${JSON.stringify(methodFilter)} with server filter ${JSON.stringify(target)}`,\n executed_by: undefined,\n returned: undefined,\n status: undefined,\n };\n return Promise.reject(errorObj);\n }\n }\n const timeout = additionalOptions.methodResponseTimeoutMs;\n const additionalOptionsCopy = additionalOptions;\n const invokePromises = serversMethodMap.map((serversMethodPair) => {\n const invId = nanoid(10);\n const method = serversMethodPair.methods[0];\n const server = serversMethodPair.server;\n const invokePromise = this.protocol.client.invoke(invId, method, argumentObj, server, additionalOptionsCopy);\n return Promise.race([\n invokePromise,\n rejectAfter(timeout, invokePromise, {\n invocationId: invId,\n message: `Invocation timeout (${timeout} ms) reached for method name: ${method?.name}, target instance: ${JSON.stringify(server.instance)}, options: ${JSON.stringify(additionalOptionsCopy)}`,\n status: InvokeStatus.Error,\n })\n ]);\n });\n const invocationMessages = await Promise.all(invokePromises);\n const results = this.getInvocationResultObj(invocationMessages, methodDefinition, argumentObj);\n const allRejected = invocationMessages.every((result) => result.status === InvokeStatus.Error);\n if (allRejected) {\n return Promise.reject(results);\n }\n return results;\n };\n return promisify(getInvokePromise(), success, error);\n }\n getInvocationResultObj(invocationResults, method, calledWith) {\n const all_return_values = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Success)\n .reduce((allValues, currentValue) => {\n allValues = [\n ...allValues,\n {\n executed_by: currentValue.instance,\n returned: currentValue.result,\n called_with: calledWith,\n method,\n message: currentValue.message,\n status: currentValue.status,\n }\n ];\n return allValues;\n }, []);\n const all_errors = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Error)\n .reduce((allErrors, currError) => {\n allErrors = [\n ...allErrors,\n {\n executed_by: currError.instance,\n called_with: calledWith,\n name: method.name,\n message: currError.message,\n }\n ];\n return allErrors;\n }, []);\n const invResult = invocationResults[0];\n const result = {\n method,\n called_with: calledWith,\n returned: invResult.result,\n executed_by: invResult.instance,\n all_return_values,\n all_errors,\n message: invResult.message,\n status: invResult.status\n };\n return result;\n }\n tryToAwaitForMethods(methodDefinition, target, additionalOptions) {\n return new Promise((resolve, reject) => {\n if (additionalOptions.waitTimeoutMs === 0) {\n reject();\n return;\n }\n const delayStep = 500;\n let delayTillNow = 0;\n const retry = () => {\n delayTillNow += delayStep;\n const serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length > 0) {\n clearInterval(interval);\n resolve(serversMethodMap);\n }\n else if (delayTillNow >= (additionalOptions.waitTimeoutMs || 10000)) {\n clearInterval(interval);\n reject();\n return;\n }\n };\n const interval = setInterval(retry, delayStep);\n });\n }\n filterByTarget(target, serverMethodMap) {\n if (typeof target === \"string\") {\n if (target === \"all\") {\n return [...serverMethodMap];\n }\n else if (target === \"best\") {\n const localMachine = serverMethodMap\n .find((s) => s.server.instance.isLocal);\n if (localMachine) {\n return [localMachine];\n }\n if (serverMethodMap[0] !== undefined) {\n return [serverMethodMap[0]];\n }\n }\n else if (target === \"skipMine\") {\n return serverMethodMap.filter(({ server }) => server.instance.peerId !== this.instance.peerId);\n }\n }\n else {\n let targetArray;\n if (!Array.isArray(target)) {\n targetArray = [target];\n }\n else {\n targetArray = target;\n }\n const allServersMatching = targetArray.reduce((matches, filter) => {\n const myMatches = serverMethodMap.filter((serverMethodPair) => {\n return this.instanceMatch(filter, serverMethodPair.server.instance);\n });\n return matches.concat(myMatches);\n }, []);\n return allServersMatching;\n }\n return [];\n }\n instanceMatch(instanceFilter, instanceDefinition) {\n if (instanceFilter?.peerId && instanceFilter?.instance) {\n instanceFilter = { ...instanceFilter };\n delete instanceFilter.peerId;\n }\n return this.containsProps(instanceFilter, instanceDefinition);\n }\n methodMatch(methodFilter, methodDefinition) {\n return this.containsProps(methodFilter, methodDefinition);\n }\n containsProps(filter, repoMethod) {\n const filterProps = Object.keys(filter)\n .filter((prop) => {\n return filter[prop] !== undefined\n && filter[prop] !== null\n && typeof filter[prop] !== \"function\"\n && prop !== \"object_types\"\n && prop !== \"display_name\"\n && prop !== \"id\"\n && prop !== \"gatewayId\"\n && prop !== \"identifier\"\n && prop[0] !== \"_\";\n });\n return filterProps.every((prop) => {\n let isMatch;\n const filterValue = filter[prop];\n const repoMethodValue = repoMethod[prop];\n switch (prop) {\n case \"objectTypes\":\n isMatch = (filterValue || []).every((filterValueEl) => {\n return (repoMethodValue || []).includes(filterValueEl);\n });\n break;\n case \"flags\":\n isMatch = isSubset(repoMethodValue || {}, filterValue || {});\n break;\n default:\n isMatch = String(filterValue).toLowerCase() === String(repoMethodValue).toLowerCase();\n }\n return isMatch;\n });\n }\n getMethods(methodFilter) {\n if (methodFilter === undefined) {\n return this.repo.getMethods();\n }\n const methods = this.repo.getMethods().filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n return methods;\n }\n getMethodsForInstance(instanceFilter) {\n const allServers = this.repo.getServers();\n const matchingServers = allServers.filter((server) => {\n return this.instanceMatch(instanceFilter, server.instance);\n });\n if (matchingServers.length === 0) {\n return [];\n }\n let resultMethodsObject = {};\n if (matchingServers.length === 1) {\n resultMethodsObject = matchingServers[0].methods;\n }\n else {\n matchingServers.forEach((server) => {\n Object.keys(server.methods).forEach((methodKey) => {\n const method = server.methods[methodKey];\n resultMethodsObject[method.identifier] = method;\n });\n });\n }\n return Object.keys(resultMethodsObject)\n .map((key) => {\n return resultMethodsObject[key];\n });\n }\n getServers(methodFilter) {\n const servers = this.repo.getServers();\n if (methodFilter === undefined) {\n return servers.map((server) => {\n return { server, methods: [] };\n });\n }\n return servers.reduce((prev, current) => {\n const methodsForServer = Object.values(current.methods);\n const matchingMethods = methodsForServer.filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n if (matchingMethods.length > 0) {\n prev.push({ server: current, methods: matchingMethods });\n }\n return prev;\n }, []);\n }\n getServerMethodsByFilterAndTarget(methodFilter, target) {\n const serversMethodMap = this.getServers(methodFilter);\n return this.filterByTarget(target, serversMethodMap);\n }\n}\n\nclass ServerSubscription {\n protocol;\n repoMethod;\n subscription;\n constructor(protocol, repoMethod, subscription) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.subscription = subscription;\n }\n get stream() {\n if (!this.repoMethod.stream) {\n throw new Error(\"no stream\");\n }\n return this.repoMethod.stream;\n }\n get arguments() { return this.subscription.arguments || {}; }\n get branchKey() { return this.subscription.branchKey; }\n get instance() {\n if (!this.subscription.instance) {\n throw new Error(\"no instance\");\n }\n return this.subscription.instance;\n }\n close() {\n this.protocol.server.closeSingleSubscription(this.repoMethod, this.subscription);\n }\n push(data) {\n this.protocol.server.pushDataToSingle(this.repoMethod, this.subscription, data);\n }\n}\n\nclass Request {\n protocol;\n repoMethod;\n requestContext;\n arguments;\n instance;\n constructor(protocol, repoMethod, requestContext) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.requestContext = requestContext;\n this.arguments = requestContext.arguments;\n this.instance = requestContext.instance;\n }\n accept() {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, \"\");\n }\n acceptOnBranch(branch) {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, branch);\n }\n reject(reason) {\n this.protocol.server.rejectRequest(this.requestContext, this.repoMethod, reason);\n }\n}\n\nlet ServerStreaming$1 = class ServerStreaming {\n protocol;\n server;\n constructor(protocol, server) {\n this.protocol = protocol;\n this.server = server;\n protocol.server.onSubRequest((rc, rm) => this.handleSubRequest(rc, rm));\n protocol.server.onSubAdded((sub, rm) => this.handleSubAdded(sub, rm));\n protocol.server.onSubRemoved((sub, rm) => this.handleSubRemoved(sub, rm));\n }\n handleSubRequest(requestContext, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRequestHandler === \"function\")) {\n return;\n }\n const request = new Request(this.protocol, repoMethod, requestContext);\n repoMethod.streamCallbacks.subscriptionRequestHandler(request);\n }\n handleSubAdded(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionAddedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionAddedHandler(sub);\n }\n handleSubRemoved(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRemovedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionRemovedHandler(sub);\n }\n};\n\nclass ServerBranch {\n key;\n protocol;\n repoMethod;\n constructor(key, protocol, repoMethod) {\n this.key = key;\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n }\n subscriptions() {\n const subList = this.protocol.server.getSubscriptionList(this.repoMethod, this.key);\n return subList.map((sub) => {\n return new ServerSubscription(this.protocol, this.repoMethod, sub);\n });\n }\n close() {\n this.protocol.server.closeAllSubscriptions(this.repoMethod, this.key);\n }\n push(data) {\n this.protocol.server.pushData(this.repoMethod, data, [this.key]);\n }\n}\n\nclass ServerStream {\n _protocol;\n _repoMethod;\n _server;\n name;\n constructor(_protocol, _repoMethod, _server) {\n this._protocol = _protocol;\n this._repoMethod = _repoMethod;\n this._server = _server;\n this.name = this._repoMethod.definition.name;\n }\n branches(key) {\n const bList = this._protocol.server.getBranchList(this._repoMethod);\n if (key) {\n if (bList.indexOf(key) > -1) {\n return new ServerBranch(key, this._protocol, this._repoMethod);\n }\n return undefined;\n }\n else {\n return bList.map((branchKey) => {\n return new ServerBranch(branchKey, this._protocol, this._repoMethod);\n });\n }\n }\n branch(key) {\n return this.branches(key);\n }\n subscriptions() {\n const subList = this._protocol.server.getSubscriptionList(this._repoMethod);\n return subList.map((sub) => {\n return new ServerSubscription(this._protocol, this._repoMethod, sub);\n });\n }\n get definition() {\n const def2 = this._repoMethod.definition;\n return {\n accepts: def2.accepts,\n description: def2.description,\n displayName: def2.displayName,\n name: def2.name,\n objectTypes: def2.objectTypes,\n returns: def2.returns,\n supportsStreaming: def2.supportsStreaming,\n flags: def2.flags?.metadata,\n };\n }\n close() {\n this._protocol.server.closeAllSubscriptions(this._repoMethod);\n this._server.unregister(this._repoMethod.definition, true);\n }\n push(data, branches) {\n if (typeof branches !== \"string\" && !Array.isArray(branches) && branches !== undefined) {\n throw new Error(\"invalid branches should be string or string array\");\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n this._protocol.server.pushData(this._repoMethod, data, branches);\n }\n updateRepoMethod(repoMethod) {\n this._repoMethod = repoMethod;\n }\n}\n\nclass Server {\n protocol;\n serverRepository;\n streaming;\n invocations = 0;\n currentlyUnregistering = {};\n constructor(protocol, serverRepository) {\n this.protocol = protocol;\n this.serverRepository = serverRepository;\n this.streaming = new ServerStreaming$1(protocol, this);\n this.protocol.server.onInvoked(this.onMethodInvoked.bind(this));\n }\n createStream(streamDef, callbacks, successCallback, errorCallback, existingStream) {\n const promise = new Promise((resolve, reject) => {\n if (!streamDef) {\n reject(\"The stream name must be unique! Please, provide either a unique string for a stream name to “glue.interop.createStream()” or a “methodDefinition” object with a unique “name” property for the stream.\");\n return;\n }\n let streamMethodDefinition;\n if (typeof streamDef === \"string\") {\n streamMethodDefinition = { name: \"\" + streamDef };\n }\n else {\n streamMethodDefinition = { ...streamDef };\n }\n if (!streamMethodDefinition.name) {\n return reject(`The “name” property is required for the “streamDefinition” object and must be unique. Stream definition: ${JSON.stringify(streamMethodDefinition)}`);\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === streamMethodDefinition.name);\n if (nameAlreadyExists) {\n return reject(`A stream with the name \"${streamMethodDefinition.name}\" already exists! Please, provide a unique name for the stream.`);\n }\n streamMethodDefinition.supportsStreaming = true;\n if (!callbacks) {\n callbacks = {};\n }\n if (typeof callbacks.subscriptionRequestHandler !== \"function\") {\n callbacks.subscriptionRequestHandler = (request) => {\n request.accept();\n };\n }\n const repoMethod = this.serverRepository.add({\n definition: streamMethodDefinition,\n streamCallbacks: callbacks,\n protocolState: {},\n });\n this.protocol.server.createStream(repoMethod)\n .then(() => {\n let streamUserObject;\n if (existingStream) {\n streamUserObject = existingStream;\n existingStream.updateRepoMethod(repoMethod);\n }\n else {\n streamUserObject = new ServerStream(this.protocol, repoMethod, this);\n }\n repoMethod.stream = streamUserObject;\n resolve(streamUserObject);\n })\n .catch((err) => {\n if (repoMethod.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n reject(err);\n });\n });\n return promisify(promise, successCallback, errorCallback);\n }\n register(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallbackFunction = async (context, resultCallback) => {\n try {\n const result = callback(context.args, context.instance);\n if (result && typeof result.then === \"function\") {\n const resultValue = await result;\n resultCallback(undefined, resultValue);\n }\n else {\n resultCallback(undefined, result);\n }\n }\n catch (e) {\n resultCallback(e ?? \"\", e ?? \"\");\n }\n };\n wrappedCallbackFunction.userCallback = callback;\n return this.registerCore(methodDefinition, wrappedCallbackFunction);\n }\n registerAsync(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallback = async (context, resultCallback) => {\n try {\n let resultCalled = false;\n const success = (result) => {\n if (!resultCalled) {\n resultCallback(undefined, result);\n }\n resultCalled = true;\n };\n const error = (e) => {\n if (!resultCalled) {\n if (!e) {\n e = \"\";\n }\n resultCallback(e, e);\n }\n resultCalled = true;\n };\n const methodResult = callback(context.args, context.instance, success, error);\n if (methodResult && typeof methodResult.then === \"function\") {\n methodResult\n .then(success)\n .catch(error);\n }\n }\n catch (e) {\n resultCallback(e, undefined);\n }\n };\n wrappedCallback.userCallbackAsync = callback;\n return this.registerCore(methodDefinition, wrappedCallback);\n }\n async unregister(methodFilter, forStream = false) {\n if (methodFilter === undefined) {\n return Promise.reject(\"Please, provide either a unique string for a name or an object containing a “name” property.\");\n }\n if (typeof methodFilter === \"function\") {\n await this.unregisterWithPredicate(methodFilter, forStream);\n return;\n }\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = methodFilter;\n }\n if (methodDefinition.name === undefined) {\n return Promise.reject(\"Method name is required. Cannot find a method if the method name is undefined!\");\n }\n const methodToBeRemoved = this.serverRepository.getList().find((serverMethod) => {\n return serverMethod.definition.name === methodDefinition.name\n && (serverMethod.definition.supportsStreaming || false) === forStream;\n });\n if (!methodToBeRemoved) {\n return Promise.reject(`Method with a name \"${methodDefinition.name}\" does not exist or is not registered by your application!`);\n }\n await this.removeMethodsOrStreams([methodToBeRemoved]);\n }\n async unregisterWithPredicate(filterPredicate, forStream) {\n const methodsOrStreamsToRemove = this.serverRepository.getList()\n .filter((sm) => filterPredicate(sm.definition))\n .filter((serverMethod) => (serverMethod.definition.supportsStreaming || false) === forStream);\n if (!methodsOrStreamsToRemove || methodsOrStreamsToRemove.length === 0) {\n return Promise.reject(`Could not find a ${forStream ? \"stream\" : \"method\"} matching the specified condition!`);\n }\n await this.removeMethodsOrStreams(methodsOrStreamsToRemove);\n }\n removeMethodsOrStreams(methodsToRemove) {\n const methodUnregPromises = [];\n methodsToRemove.forEach((method) => {\n const promise = this.protocol.server.unregister(method)\n .then(() => {\n if (method.repoId) {\n this.serverRepository.remove(method.repoId);\n }\n });\n methodUnregPromises.push(promise);\n this.addAsCurrentlyUnregistering(method.definition.name, promise);\n });\n return Promise.all(methodUnregPromises);\n }\n async addAsCurrentlyUnregistering(methodName, promise) {\n const timeout = new Promise((resolve) => setTimeout(resolve, 5000));\n this.currentlyUnregistering[methodName] = Promise.race([promise, timeout]).then(() => {\n delete this.currentlyUnregistering[methodName];\n });\n }\n async registerCore(method, theFunction) {\n let methodDefinition;\n if (typeof method === \"string\") {\n methodDefinition = { name: \"\" + method };\n }\n else {\n methodDefinition = { ...method };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Please, provide a (unique) string value for the “name” property in the “methodDefinition” object: ${JSON.stringify(method)}`);\n }\n const unregisterInProgress = this.currentlyUnregistering[methodDefinition.name];\n if (typeof unregisterInProgress !== \"undefined\") {\n await unregisterInProgress;\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === methodDefinition.name);\n if (nameAlreadyExists) {\n return Promise.reject(`A method with the name \"${methodDefinition.name}\" already exists! Please, provide a unique name for the method.`);\n }\n if (methodDefinition.supportsStreaming) {\n return Promise.reject(`When you create methods with “glue.interop.register()” or “glue.interop.registerAsync()” the property “supportsStreaming” cannot be “true”. If you want “${methodDefinition.name}” to be a stream, please use the “glue.interop.createStream()” method.`);\n }\n const repoMethod = this.serverRepository.add({\n definition: methodDefinition,\n theFunction,\n protocolState: {},\n });\n return this.protocol.server.register(repoMethod)\n .catch((err) => {\n if (repoMethod?.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n throw err;\n });\n }\n onMethodInvoked(methodToExecute, invocationId, invocationArgs) {\n if (!methodToExecute || !methodToExecute.theFunction) {\n return;\n }\n methodToExecute.theFunction(invocationArgs, (err, result) => {\n if (err !== undefined && err !== null) {\n if (err.message && typeof err.message === \"string\") {\n err = err.message;\n }\n else if (typeof err !== \"string\") {\n try {\n err = JSON.stringify(err);\n }\n catch (unStrException) {\n err = `un-stringifyable error in onMethodInvoked! Top level prop names: ${Object.keys(err)}`;\n }\n }\n }\n if (!result) {\n result = {};\n }\n else if (typeof result !== \"object\" || Array.isArray(result)) {\n result = { _value: result };\n }\n this.protocol.server.methodInvocationResult(methodToExecute, invocationId, err, result);\n });\n }\n}\n\nclass InstanceWrapper {\n wrapped = {};\n constructor(API, instance, connection) {\n this.wrapped.getMethods = function () {\n return API.methodsForInstance(this);\n };\n this.wrapped.getStreams = function () {\n return API.methodsForInstance(this).filter((m) => m.supportsStreaming);\n };\n if (instance) {\n this.refreshWrappedObject(instance);\n }\n if (connection) {\n connection.loggedIn(() => {\n this.refresh(connection);\n });\n this.refresh(connection);\n }\n }\n unwrap() {\n return this.wrapped;\n }\n refresh(connection) {\n if (!connection) {\n return;\n }\n const resolvedIdentity = connection?.resolvedIdentity;\n const instance = Object.assign({}, resolvedIdentity ?? {}, { peerId: connection?.peerId });\n this.refreshWrappedObject(instance);\n }\n refreshWrappedObject(resolvedIdentity) {\n Object.keys(resolvedIdentity).forEach((key) => {\n this.wrapped[key] = resolvedIdentity[key];\n });\n this.wrapped.user = resolvedIdentity.user;\n this.wrapped.instance = resolvedIdentity.instance;\n this.wrapped.application = resolvedIdentity.application ?? nanoid(10);\n this.wrapped.applicationName = resolvedIdentity.applicationName;\n this.wrapped.pid = resolvedIdentity.pid ?? resolvedIdentity.process ?? Math.floor(Math.random() * 10000000000);\n this.wrapped.machine = resolvedIdentity.machine;\n this.wrapped.environment = resolvedIdentity.environment;\n this.wrapped.region = resolvedIdentity.region;\n this.wrapped.windowId = resolvedIdentity.windowId;\n this.wrapped.isLocal = resolvedIdentity.isLocal ?? true;\n this.wrapped.api = resolvedIdentity.api;\n this.wrapped.service = resolvedIdentity.service;\n this.wrapped.peerId = resolvedIdentity.peerId;\n }\n}\n\nconst hideMethodSystemFlags = (method) => {\n return {\n ...method,\n flags: method.flags.metadata || {}\n };\n};\nclass ClientRepository {\n logger;\n API;\n servers = {};\n myServer;\n methodsCount = {};\n callbacks = CallbackRegistryFactory();\n constructor(logger, API) {\n this.logger = logger;\n this.API = API;\n const peerId = this.API.instance.peerId;\n this.myServer = {\n id: peerId,\n methods: {},\n instance: this.API.instance,\n wrapper: this.API.unwrappedInstance,\n };\n this.servers[peerId] = this.myServer;\n }\n addServer(info, serverId) {\n this.logger.debug(`adding server ${serverId}`);\n const current = this.servers[serverId];\n if (current) {\n return current.id;\n }\n const wrapper = new InstanceWrapper(this.API, info);\n const serverEntry = {\n id: serverId,\n methods: {},\n instance: wrapper.unwrap(),\n wrapper,\n };\n this.servers[serverId] = serverEntry;\n this.callbacks.execute(\"onServerAdded\", serverEntry.instance);\n return serverId;\n }\n removeServerById(id, reason) {\n const server = this.servers[id];\n if (!server) {\n this.logger.warn(`not aware of server ${id}, my state ${JSON.stringify(Object.keys(this.servers))}`);\n return;\n }\n else {\n this.logger.debug(`removing server ${id}`);\n }\n Object.keys(server.methods).forEach((methodId) => {\n this.removeServerMethod(id, methodId);\n });\n delete this.servers[id];\n this.callbacks.execute(\"onServerRemoved\", server.instance, reason);\n }\n addServerMethod(serverId, method) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n if (server.methods[method.id]) {\n return;\n }\n const identifier = this.createMethodIdentifier(method);\n const that = this;\n const methodDefinition = {\n identifier,\n gatewayId: method.id,\n name: method.name,\n displayName: method.display_name,\n description: method.description,\n version: method.version,\n objectTypes: method.object_types || [],\n accepts: method.input_signature,\n returns: method.result_signature,\n supportsStreaming: typeof method.flags !== \"undefined\" ? method.flags.streaming : false,\n flags: method.flags ?? {},\n getServers: () => {\n return that.getServersByMethod(identifier);\n }\n };\n methodDefinition.object_types = methodDefinition.objectTypes;\n methodDefinition.display_name = methodDefinition.displayName;\n methodDefinition.version = methodDefinition.version;\n server.methods[method.id] = methodDefinition;\n const clientMethodDefinition = hideMethodSystemFlags(methodDefinition);\n if (!this.methodsCount[identifier]) {\n this.methodsCount[identifier] = 0;\n this.callbacks.execute(\"onMethodAdded\", clientMethodDefinition);\n }\n this.methodsCount[identifier] = this.methodsCount[identifier] + 1;\n this.callbacks.execute(\"onServerMethodAdded\", server.instance, clientMethodDefinition);\n return methodDefinition;\n }\n removeServerMethod(serverId, methodId) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n const method = server.methods[methodId];\n delete server.methods[methodId];\n const clientMethodDefinition = hideMethodSystemFlags(method);\n this.methodsCount[method.identifier] = this.methodsCount[method.identifier] - 1;\n if (this.methodsCount[method.identifier] === 0) {\n this.callbacks.execute(\"onMethodRemoved\", clientMethodDefinition);\n }\n this.callbacks.execute(\"onServerMethodRemoved\", server.instance, clientMethodDefinition);\n }\n getMethods() {\n return this.extractMethodsFromServers(Object.values(this.servers)).map(hideMethodSystemFlags);\n }\n getServers() {\n return Object.values(this.servers).map(this.hideServerMethodSystemFlags);\n }\n onServerAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerAdded\", callback);\n const serversWithMethodsToReplay = this.getServers().map((s) => s.instance);\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, serversWithMethodsToReplay, callback);\n }\n onMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodAdded\", callback);\n const methodsToReplay = this.getMethods();\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, methodsToReplay, callback);\n }\n onServerMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodAdded\", callback);\n let unsubCalled = false;\n const servers = this.getServers();\n setTimeout(() => {\n servers.forEach((server) => {\n const methods = server.methods;\n Object.keys(methods).forEach((methodId) => {\n if (!unsubCalled) {\n callback(server.instance, methods[methodId]);\n }\n });\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n onMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n getServerById(id) {\n const server = this.servers[id];\n if (!server) {\n return undefined;\n }\n return this.hideServerMethodSystemFlags(this.servers[id]);\n }\n reset() {\n Object.keys(this.servers).forEach((key) => {\n this.removeServerById(key, \"reset\");\n });\n this.servers = {\n [this.myServer.id]: this.myServer\n };\n this.methodsCount = {};\n }\n createMethodIdentifier(methodInfo) {\n const accepts = methodInfo.input_signature ?? \"\";\n const returns = methodInfo.result_signature ?? \"\";\n return (methodInfo.name + accepts + returns).toLowerCase();\n }\n getServersByMethod(identifier) {\n const allServers = [];\n Object.values(this.servers).forEach((server) => {\n Object.values(server.methods).forEach((method) => {\n if (method.identifier === identifier) {\n allServers.push(server.instance);\n }\n });\n });\n return allServers;\n }\n returnUnsubWithDelayedReplay(unsubscribeFunc, collectionToReplay, callback) {\n let unsubCalled = false;\n setTimeout(() => {\n collectionToReplay.forEach((item) => {\n if (!unsubCalled) {\n callback(item);\n }\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n hideServerMethodSystemFlags(server) {\n const clientMethods = {};\n Object.entries(server.methods).forEach(([name, method]) => {\n clientMethods[name] = hideMethodSystemFlags(method);\n });\n return {\n ...server,\n methods: clientMethods\n };\n }\n extractMethodsFromServers(servers) {\n const methods = Object.values(servers).reduce((clientMethods, server) => {\n return [...clientMethods, ...Object.values(server.methods)];\n }, []);\n return methods;\n }\n}\n\nclass ServerRepository {\n nextId = 0;\n methods = [];\n add(method) {\n method.repoId = String(this.nextId);\n this.nextId += 1;\n this.methods.push(method);\n return method;\n }\n remove(repoId) {\n if (typeof repoId !== \"string\") {\n return new TypeError(\"Expecting a string\");\n }\n this.methods = this.methods.filter((m) => {\n return m.repoId !== repoId;\n });\n }\n getById(id) {\n if (typeof id !== \"string\") {\n return undefined;\n }\n return this.methods.find((m) => {\n return m.repoId === id;\n });\n }\n getList() {\n return this.methods.map((m) => m);\n }\n length() {\n return this.methods.length;\n }\n reset() {\n this.methods = [];\n }\n}\n\nconst SUBSCRIPTION_REQUEST = \"onSubscriptionRequest\";\nconst SUBSCRIPTION_ADDED = \"onSubscriptionAdded\";\nconst SUBSCRIPTION_REMOVED = \"onSubscriptionRemoved\";\nclass ServerStreaming {\n session;\n repository;\n serverRepository;\n ERR_URI_SUBSCRIPTION_FAILED = \"com.tick42.agm.errors.subscription.failure\";\n callbacks = CallbackRegistryFactory();\n nextStreamId = 0;\n constructor(session, repository, serverRepository) {\n this.session = session;\n this.repository = repository;\n this.serverRepository = serverRepository;\n session.on(\"add-interest\", (msg) => {\n this.handleAddInterest(msg);\n });\n session.on(\"remove-interest\", (msg) => {\n this.handleRemoveInterest(msg);\n });\n }\n acceptRequestOnBranch(requestContext, streamingMethod, branch) {\n if (typeof branch !== \"string\") {\n branch = \"\";\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n throw new TypeError(\"The streaming method is missing its subscriptions.\");\n }\n if (!Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n throw new TypeError(\"The streaming method is missing its branches.\");\n }\n const streamId = this.getStreamId(streamingMethod, branch);\n const key = requestContext.msg.subscription_id;\n const subscription = {\n id: key,\n arguments: requestContext.arguments,\n instance: requestContext.instance,\n branchKey: branch,\n streamId,\n subscribeMsg: requestContext.msg,\n };\n streamingMethod.protocolState.subscriptionsMap[key] = subscription;\n this.session.sendFireAndForget({\n type: \"accepted\",\n subscription_id: key,\n stream_id: streamId,\n });\n this.callbacks.execute(SUBSCRIPTION_ADDED, subscription, streamingMethod);\n }\n rejectRequest(requestContext, streamingMethod, reason) {\n if (typeof reason !== \"string\") {\n reason = \"\";\n }\n this.sendSubscriptionFailed(\"Subscription rejected by user. \" + reason, requestContext.msg.subscription_id);\n }\n pushData(streamingMethod, data, branches) {\n if (typeof streamingMethod !== \"object\" || !Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n return;\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n if (typeof branches === \"string\") {\n branches = [branches];\n }\n else if (!Array.isArray(branches) || branches.length <= 0) {\n branches = [];\n }\n const streamIdList = streamingMethod.protocolState.branchKeyToStreamIdMap\n .filter((br) => {\n if (!branches || branches.length === 0) {\n return true;\n }\n return branches.indexOf(br.key) >= 0;\n }).map((br) => {\n return br.streamId;\n });\n streamIdList.forEach((streamId) => {\n const publishMessage = {\n type: \"publish\",\n stream_id: streamId,\n data,\n };\n this.session.sendFireAndForget(publishMessage);\n });\n }\n pushDataToSingle(method, subscription, data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n const postMessage = {\n type: \"post\",\n subscription_id: subscription.id,\n data,\n };\n this.session.sendFireAndForget(postMessage);\n }\n closeSingleSubscription(streamingMethod, subscription) {\n if (streamingMethod.protocolState.subscriptionsMap) {\n delete streamingMethod.protocolState.subscriptionsMap[subscription.id];\n }\n const dropSubscriptionMessage = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping a single subscription\",\n };\n this.session.sendFireAndForget(dropSubscriptionMessage);\n subscription.instance;\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n closeMultipleSubscriptions(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\" || typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n let subscriptionsToClose = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey === \"string\") {\n subscriptionsToClose = subscriptionsToClose.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n subscriptionsToClose.forEach((subscription) => {\n delete subscriptionsMap[subscription.id];\n const drop = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping all subscriptions on stream_id: \" + subscription.streamId,\n };\n this.session.sendFireAndForget(drop);\n });\n }\n getSubscriptionList(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n let subscriptions = [];\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey !== \"string\") {\n subscriptions = allSubscriptions;\n }\n else {\n subscriptions = allSubscriptions.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n return subscriptions;\n }\n getBranchList(streamingMethod) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n const result = [];\n allSubscriptions.forEach((sub) => {\n let branch = \"\";\n if (typeof sub === \"object\" && typeof sub.branchKey === \"string\") {\n branch = sub.branchKey;\n }\n if (result.indexOf(branch) === -1) {\n result.push(branch);\n }\n });\n return result;\n }\n onSubAdded(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_ADDED, callback);\n }\n onSubRequest(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REQUEST, callback);\n }\n onSubRemoved(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REMOVED, callback);\n }\n handleRemoveInterest(msg) {\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (typeof msg.subscription_id !== \"string\" ||\n typeof streamingMethod !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap[msg.subscription_id] !== \"object\") {\n return;\n }\n const subscription = streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n delete streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n onSubscriptionLifetimeEvent(eventName, handlerFunc) {\n this.callbacks.add(eventName, handlerFunc);\n }\n getNextStreamId() {\n return this.nextStreamId++ + \"\";\n }\n handleAddInterest(msg) {\n const caller = this.repository.getServerById(msg.caller_id);\n const instance = caller?.instance ?? {};\n const requestContext = {\n msg,\n arguments: msg.arguments_kv || {},\n instance,\n };\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (streamingMethod === undefined) {\n const errorMsg = \"No method with id \" + msg.method_id + \" on this server.\";\n this.sendSubscriptionFailed(errorMsg, msg.subscription_id);\n return;\n }\n if (streamingMethod.protocolState.subscriptionsMap &&\n streamingMethod.protocolState.subscriptionsMap[msg.subscription_id]) {\n this.sendSubscriptionFailed(\"A subscription with id \" + msg.subscription_id + \" already exists.\", msg.subscription_id);\n return;\n }\n this.callbacks.execute(SUBSCRIPTION_REQUEST, requestContext, streamingMethod);\n }\n sendSubscriptionFailed(reason, subscriptionId) {\n const errorMessage = {\n type: \"error\",\n reason_uri: this.ERR_URI_SUBSCRIPTION_FAILED,\n reason,\n request_id: subscriptionId,\n };\n this.session.sendFireAndForget(errorMessage);\n }\n getStreamId(streamingMethod, branchKey) {\n if (typeof branchKey !== \"string\") {\n branchKey = \"\";\n }\n if (!streamingMethod.protocolState.branchKeyToStreamIdMap) {\n throw new Error(`streaming ${streamingMethod.definition.name} method without protocol state`);\n }\n const needleBranch = streamingMethod.protocolState.branchKeyToStreamIdMap.filter((branch) => {\n return branch.key === branchKey;\n })[0];\n let streamId = (needleBranch ? needleBranch.streamId : undefined);\n if (typeof streamId !== \"string\" || streamId === \"\") {\n streamId = this.getNextStreamId();\n streamingMethod.protocolState.branchKeyToStreamIdMap.push({ key: branchKey, streamId });\n }\n return streamId;\n }\n}\n\nclass ServerProtocol {\n session;\n clientRepository;\n serverRepository;\n logger;\n callbacks = CallbackRegistryFactory();\n streaming;\n constructor(session, clientRepository, serverRepository, logger) {\n this.session = session;\n this.clientRepository = clientRepository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n this.streaming = new ServerStreaming(session, clientRepository, serverRepository);\n this.session.on(\"invoke\", (msg) => this.handleInvokeMessage(msg));\n }\n createStream(repoMethod) {\n repoMethod.protocolState.subscriptionsMap = {};\n repoMethod.protocolState.branchKeyToStreamIdMap = [];\n return this.register(repoMethod, true);\n }\n register(repoMethod, isStreaming) {\n const methodDef = repoMethod.definition;\n const flags = Object.assign({}, { metadata: methodDef.flags ?? {} }, { streaming: isStreaming || false });\n const registerMsg = {\n type: \"register\",\n methods: [{\n id: repoMethod.repoId,\n name: methodDef.name,\n display_name: methodDef.displayName,\n description: methodDef.description,\n version: methodDef.version,\n flags,\n object_types: methodDef.objectTypes || methodDef.object_types,\n input_signature: methodDef.accepts,\n result_signature: methodDef.returns,\n restrictions: undefined,\n }],\n };\n return this.session.send(registerMsg, { methodId: repoMethod.repoId })\n .then(() => {\n this.logger.debug(\"registered method \" + repoMethod.definition.name + \" with id \" + repoMethod.repoId);\n })\n .catch((msg) => {\n this.logger.warn(`failed to register method ${repoMethod.definition.name} with id ${repoMethod.repoId} - ${JSON.stringify(msg)}`);\n throw msg;\n });\n }\n onInvoked(callback) {\n this.callbacks.add(\"onInvoked\", callback);\n }\n methodInvocationResult(method, invocationId, err, result) {\n let msg;\n if (err || err === \"\") {\n msg = {\n type: \"error\",\n request_id: invocationId,\n reason_uri: \"agm.errors.client_error\",\n reason: err,\n context: result,\n peer_id: undefined,\n };\n }\n else {\n msg = {\n type: \"yield\",\n invocation_id: invocationId,\n peer_id: this.session.peerId,\n result,\n request_id: undefined,\n };\n }\n this.session.sendFireAndForget(msg);\n }\n async unregister(method) {\n const msg = {\n type: \"unregister\",\n methods: [method.repoId],\n };\n await this.session.send(msg);\n }\n getBranchList(method) {\n return this.streaming.getBranchList(method);\n }\n getSubscriptionList(method, branchKey) {\n return this.streaming.getSubscriptionList(method, branchKey);\n }\n closeAllSubscriptions(method, branchKey) {\n this.streaming.closeMultipleSubscriptions(method, branchKey);\n }\n pushData(method, data, branches) {\n this.streaming.pushData(method, data, branches);\n }\n pushDataToSingle(method, subscription, data) {\n this.streaming.pushDataToSingle(method, subscription, data);\n }\n closeSingleSubscription(method, subscription) {\n this.streaming.closeSingleSubscription(method, subscription);\n }\n acceptRequestOnBranch(requestContext, method, branch) {\n this.streaming.acceptRequestOnBranch(requestContext, method, branch);\n }\n rejectRequest(requestContext, method, reason) {\n this.streaming.rejectRequest(requestContext, method, reason);\n }\n onSubRequest(callback) {\n this.streaming.onSubRequest(callback);\n }\n onSubAdded(callback) {\n this.streaming.onSubAdded(callback);\n }\n onSubRemoved(callback) {\n this.streaming.onSubRemoved(callback);\n }\n handleInvokeMessage(msg) {\n const invocationId = msg.invocation_id;\n const callerId = msg.caller_id;\n const methodId = msg.method_id;\n const args = msg.arguments_kv;\n const methodList = this.serverRepository.getList();\n const method = methodList.filter((m) => {\n return m.repoId === methodId;\n })[0];\n if (method === undefined) {\n return;\n }\n const client = this.clientRepository.getServerById(callerId)?.instance;\n const invocationArgs = { args, instance: client };\n this.callbacks.execute(\"onInvoked\", method, invocationId, invocationArgs);\n }\n}\n\nclass UserSubscription {\n repository;\n subscriptionData;\n get requestArguments() {\n return this.subscriptionData.params.arguments || {};\n }\n get servers() {\n return this.subscriptionData.trackedServers.reduce((servers, pair) => {\n if (pair.subscriptionId) {\n const server = this.repository.getServerById(pair.serverId)?.instance;\n if (server) {\n servers.push(server);\n }\n }\n return servers;\n }, []);\n }\n get serverInstance() {\n return this.servers[0];\n }\n get stream() {\n return this.subscriptionData.method;\n }\n constructor(repository, subscriptionData) {\n this.repository = repository;\n this.subscriptionData = subscriptionData;\n }\n onData(dataCallback) {\n if (typeof dataCallback !== \"function\") {\n throw new TypeError(\"The data callback must be a function.\");\n }\n this.subscriptionData.handlers.onData.push(dataCallback);\n if (this.subscriptionData.handlers.onData.length === 1 && this.subscriptionData.queued.data.length > 0) {\n this.subscriptionData.queued.data.forEach((dataItem) => {\n dataCallback(dataItem);\n });\n }\n }\n onClosed(closedCallback) {\n if (typeof closedCallback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onClosed.push(closedCallback);\n }\n onFailed(callback) {\n }\n onConnected(callback) {\n if (typeof callback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onConnected.push(callback);\n }\n close() {\n this.subscriptionData.close();\n }\n setNewSubscription(newSub) {\n this.subscriptionData = newSub;\n }\n}\n\nclass TimedCache {\n config;\n cache = [];\n timeoutIds = [];\n constructor(config) {\n this.config = config;\n }\n add(element) {\n const id = nanoid(10);\n this.cache.push({ id, element });\n const timeoutId = setTimeout(() => {\n const elementIdx = this.cache.findIndex((entry) => entry.id === id);\n if (elementIdx < 0) {\n return;\n }\n this.cache.splice(elementIdx, 1);\n }, this.config.ELEMENT_TTL_MS);\n this.timeoutIds.push(timeoutId);\n }\n flush() {\n const elements = this.cache.map((entry) => entry.element);\n this.timeoutIds.forEach((id) => clearInterval(id));\n this.cache = [];\n this.timeoutIds = [];\n return elements;\n }\n}\n\nconst STATUS_AWAITING_ACCEPT = \"awaitingAccept\";\nconst STATUS_SUBSCRIBED = \"subscribed\";\nconst ERR_MSG_SUB_FAILED = \"Subscription failed.\";\nconst ERR_MSG_SUB_REJECTED = \"Subscription rejected.\";\nconst ON_CLOSE_MSG_SERVER_INIT = \"ServerInitiated\";\nconst ON_CLOSE_MSG_CLIENT_INIT = \"ClientInitiated\";\nclass ClientStreaming {\n session;\n repository;\n logger;\n subscriptionsList = {};\n timedCache = new TimedCache({ ELEMENT_TTL_MS: 10000 });\n subscriptionIdToLocalKeyMap = {};\n nextSubLocalKey = 0;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"subscribed\", this.handleSubscribed);\n session.on(\"event\", this.handleEventData);\n session.on(\"subscription-cancelled\", this.handleSubscriptionCancelled);\n }\n subscribe(streamingMethod, params, targetServers, success, error, existingSub) {\n if (targetServers.length === 0) {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" No available servers matched the target params.\",\n });\n return;\n }\n const subLocalKey = this.getNextSubscriptionLocalKey();\n const pendingSub = this.registerSubscription(subLocalKey, streamingMethod, params, success, error, params.methodResponseTimeout || 10000, existingSub);\n if (typeof pendingSub !== \"object\") {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Unable to register the user callbacks.\",\n });\n return;\n }\n targetServers.forEach((target) => {\n const serverId = target.server.id;\n const method = target.methods.find((m) => m.name === streamingMethod.name);\n if (!method) {\n this.logger.error(`can not find method ${streamingMethod.name} for target ${target.server.id}`);\n return;\n }\n pendingSub.trackedServers.push({\n serverId,\n subscriptionId: undefined,\n });\n const msg = {\n type: \"subscribe\",\n server_id: serverId,\n method_id: method.gatewayId,\n arguments_kv: params.arguments,\n };\n this.session.send(msg, { serverId, subLocalKey })\n .then((m) => this.handleSubscribed(m))\n .catch((err) => this.handleErrorSubscribing(err));\n });\n }\n drainSubscriptions() {\n const existing = Object.values(this.subscriptionsList);\n this.subscriptionsList = {};\n this.subscriptionIdToLocalKeyMap = {};\n return existing;\n }\n drainSubscriptionsCache() {\n return this.timedCache.flush();\n }\n getNextSubscriptionLocalKey() {\n const current = this.nextSubLocalKey;\n this.nextSubLocalKey += 1;\n return current;\n }\n registerSubscription(subLocalKey, method, params, success, error, timeout, existingSub) {\n const subsInfo = {\n localKey: subLocalKey,\n status: STATUS_AWAITING_ACCEPT,\n method,\n params,\n success,\n error,\n trackedServers: [],\n handlers: {\n onData: existingSub?.handlers.onData || [],\n onClosed: existingSub?.handlers.onClosed || [],\n onConnected: existingSub?.handlers.onConnected || [],\n },\n queued: {\n data: [],\n closers: [],\n },\n timeoutId: undefined,\n close: () => this.closeSubscription(subLocalKey),\n subscription: existingSub?.subscription\n };\n if (!existingSub) {\n if (params.onData) {\n subsInfo.handlers.onData.push(params.onData);\n }\n if (params.onClosed) {\n subsInfo.handlers.onClosed.push(params.onClosed);\n }\n if (params.onConnected) {\n subsInfo.handlers.onConnected.push(params.onConnected);\n }\n }\n this.subscriptionsList[subLocalKey] = subsInfo;\n subsInfo.timeoutId = setTimeout(() => {\n if (this.subscriptionsList[subLocalKey] === undefined) {\n return;\n }\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n error({\n method,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Subscription attempt timed out after \" + timeout + \" ms.\",\n });\n delete this.subscriptionsList[subLocalKey];\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED && pendingSub.trackedServers.length > 0) {\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return (typeof server.subscriptionId !== \"undefined\");\n });\n delete pendingSub.timeoutId;\n if (pendingSub.trackedServers.length <= 0) {\n this.callOnClosedHandlers(pendingSub);\n delete this.subscriptionsList[subLocalKey];\n }\n }\n }, timeout);\n return subsInfo;\n }\n handleErrorSubscribing = (errorResponse) => {\n const tag = errorResponse._tag;\n const subLocalKey = tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return server.serverId !== tag.serverId;\n });\n if (pendingSub.trackedServers.length <= 0) {\n clearTimeout(pendingSub.timeoutId);\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n const reason = (typeof errorResponse.reason === \"string\" && errorResponse.reason !== \"\") ?\n ' Publisher said \"' + errorResponse.reason + '\".' :\n \" No reason given.\";\n const callArgs = typeof pendingSub.params.arguments === \"object\" ?\n JSON.stringify(pendingSub.params.arguments) :\n \"{}\";\n pendingSub.error({\n message: ERR_MSG_SUB_REJECTED + reason + \" Called with:\" + callArgs,\n called_with: pendingSub.params.arguments,\n method: pendingSub.method,\n });\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED) {\n this.callOnClosedHandlers(pendingSub);\n }\n delete this.subscriptionsList[subLocalKey];\n }\n };\n handleSubscribed = (msg) => {\n const subLocalKey = msg._tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n const serverId = msg._tag.serverId;\n const acceptingServer = pendingSub.trackedServers\n .filter((server) => {\n return server.serverId === serverId;\n })[0];\n if (typeof acceptingServer !== \"object\") {\n return;\n }\n acceptingServer.subscriptionId = msg.subscription_id;\n this.subscriptionIdToLocalKeyMap[msg.subscription_id] = subLocalKey;\n const isFirstResponse = (pendingSub.status === STATUS_AWAITING_ACCEPT);\n pendingSub.status = STATUS_SUBSCRIBED;\n if (isFirstResponse) {\n let reconnect = false;\n let sub = pendingSub.subscription;\n if (sub) {\n sub.setNewSubscription(pendingSub);\n pendingSub.success(sub);\n reconnect = true;\n }\n else {\n sub = new UserSubscription(this.repository, pendingSub);\n pendingSub.subscription = sub;\n pendingSub.success(sub);\n }\n for (const handler of pendingSub.handlers.onConnected) {\n try {\n handler(sub.serverInstance, reconnect);\n }\n catch (e) {\n }\n }\n }\n };\n handleEventData = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const trackedServersFound = subscription.trackedServers.filter((s) => {\n return s.subscriptionId === msg.subscription_id;\n });\n if (trackedServersFound.length !== 1) {\n return;\n }\n const isPrivateData = msg.oob;\n const sendingServerId = trackedServersFound[0].serverId;\n const server = this.repository.getServerById(sendingServerId);\n const receivedStreamData = () => {\n return {\n data: msg.data,\n server: server?.instance ?? {},\n requestArguments: subscription.params.arguments,\n message: undefined,\n private: isPrivateData,\n };\n };\n const onDataHandlers = subscription.handlers.onData;\n const queuedData = subscription.queued.data;\n if (onDataHandlers.length > 0) {\n onDataHandlers.forEach((callback) => {\n if (typeof callback === \"function\") {\n callback(receivedStreamData());\n }\n });\n }\n else {\n queuedData.push(receivedStreamData());\n }\n };\n handleSubscriptionCancelled = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const expectedNewLength = subscription.trackedServers.length - 1;\n subscription.trackedServers = subscription.trackedServers.filter((server) => {\n if (server.subscriptionId === msg.subscription_id) {\n subscription.queued.closers.push(server.serverId);\n return false;\n }\n else {\n return true;\n }\n });\n if (subscription.trackedServers.length !== expectedNewLength) {\n return;\n }\n if (subscription.trackedServers.length <= 0) {\n this.timedCache.add(subscription);\n clearTimeout(subscription.timeoutId);\n this.callOnClosedHandlers(subscription);\n delete this.subscriptionsList[subLocalKey];\n }\n delete this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n };\n callOnClosedHandlers(subscription, reason) {\n const closersCount = subscription.queued.closers.length;\n const closingServerId = (closersCount > 0) ? subscription.queued.closers[closersCount - 1] : null;\n let closingServer;\n if (closingServerId !== undefined && typeof closingServerId === \"string\") {\n closingServer = this.repository.getServerById(closingServerId)?.instance ?? {};\n }\n subscription.handlers.onClosed.forEach((callback) => {\n if (typeof callback !== \"function\") {\n return;\n }\n callback({\n message: reason || ON_CLOSE_MSG_SERVER_INIT,\n requestArguments: subscription.params.arguments || {},\n server: closingServer,\n stream: subscription.method,\n });\n });\n }\n closeSubscription(subLocalKey) {\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n subscription.trackedServers.forEach((server) => {\n if (typeof server.subscriptionId === \"undefined\") {\n return;\n }\n subscription.queued.closers.push(server.serverId);\n this.session.sendFireAndForget({\n type: \"unsubscribe\",\n subscription_id: server.subscriptionId,\n reason_uri: \"\",\n reason: ON_CLOSE_MSG_CLIENT_INIT,\n });\n delete this.subscriptionIdToLocalKeyMap[server.subscriptionId];\n });\n subscription.trackedServers = [];\n this.callOnClosedHandlers(subscription, ON_CLOSE_MSG_CLIENT_INIT);\n delete this.subscriptionsList[subLocalKey];\n }\n}\n\nclass ClientProtocol {\n session;\n repository;\n logger;\n streaming;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"peer-added\", (msg) => this.handlePeerAdded(msg));\n session.on(\"peer-removed\", (msg) => this.handlePeerRemoved(msg));\n session.on(\"methods-added\", (msg) => this.handleMethodsAddedMessage(msg));\n session.on(\"methods-removed\", (msg) => this.handleMethodsRemovedMessage(msg));\n this.streaming = new ClientStreaming(session, repository, logger);\n }\n subscribe(stream, options, targetServers, success, error, existingSub) {\n this.streaming.subscribe(stream, options, targetServers, success, error, existingSub);\n }\n invoke(id, method, args, target) {\n const serverId = target.id;\n const methodId = method.gatewayId;\n const msg = {\n type: \"call\",\n server_id: serverId,\n method_id: methodId,\n arguments_kv: args,\n };\n return this.session.send(msg, { invocationId: id, serverId })\n .then((m) => this.handleResultMessage(m))\n .catch((err) => this.handleInvocationError(err));\n }\n drainSubscriptions() {\n return this.streaming.drainSubscriptions();\n }\n drainSubscriptionsCache() {\n return this.streaming.drainSubscriptionsCache();\n }\n handlePeerAdded(msg) {\n const newPeerId = msg.new_peer_id;\n const remoteId = msg.identity;\n const isLocal = msg.meta ? msg.meta.local : true;\n const pid = Number(remoteId.process);\n const serverInfo = {\n machine: remoteId.machine,\n pid: isNaN(pid) ? remoteId.process : pid,\n instance: remoteId.instance,\n application: remoteId.application,\n applicationName: remoteId.applicationName,\n environment: remoteId.environment,\n region: remoteId.region,\n user: remoteId.user,\n windowId: remoteId.windowId,\n peerId: newPeerId,\n api: remoteId.api,\n isLocal\n };\n this.repository.addServer(serverInfo, newPeerId);\n }\n handlePeerRemoved(msg) {\n const removedPeerId = msg.removed_id;\n const reason = msg.reason;\n this.repository.removeServerById(removedPeerId, reason);\n }\n handleMethodsAddedMessage(msg) {\n const serverId = msg.server_id;\n const methods = msg.methods;\n methods.forEach((method) => {\n this.repository.addServerMethod(serverId, method);\n });\n }\n handleMethodsRemovedMessage(msg) {\n const serverId = msg.server_id;\n const methodIdList = msg.methods;\n const server = this.repository.getServerById(serverId);\n if (server) {\n const serverMethodKeys = Object.keys(server.methods);\n serverMethodKeys.forEach((methodKey) => {\n const method = server.methods[methodKey];\n if (methodIdList.indexOf(method.gatewayId) > -1) {\n this.repository.removeServerMethod(serverId, methodKey);\n }\n });\n }\n }\n handleResultMessage(msg) {\n const invocationId = msg._tag.invocationId;\n const result = msg.result;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n return {\n invocationId,\n result,\n instance: server?.instance,\n status: InvokeStatus.Success,\n message: \"\"\n };\n }\n handleInvocationError(msg) {\n this.logger.debug(`handle invocation error ${JSON.stringify(msg)}`);\n if (\"_tag\" in msg) {\n const invocationId = msg._tag.invocationId;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n const message = msg.reason;\n const context = msg.context;\n return {\n invocationId,\n result: context,\n instance: server?.instance,\n status: InvokeStatus.Error,\n message\n };\n }\n else {\n return {\n invocationId: \"\",\n message: msg.message,\n status: InvokeStatus.Error,\n error: msg\n };\n }\n }\n}\n\nfunction gW3ProtocolFactory (instance, connection, clientRepository, serverRepository, libConfig, interop) {\n const logger = libConfig.logger.subLogger(\"gw3-protocol\");\n let resolveReadyPromise;\n const readyPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n const session = connection.domain(\"agm\", [\"subscribed\"]);\n const server = new ServerProtocol(session, clientRepository, serverRepository, logger.subLogger(\"server\"));\n const client = new ClientProtocol(session, clientRepository, logger.subLogger(\"client\"));\n async function handleReconnect() {\n logger.info(\"reconnected - will replay registered methods and subscriptions\");\n client.drainSubscriptionsCache().forEach((sub) => {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to soft-re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`soft-subscribing to method ${methodInfo.name} DONE`)).catch((error) => logger.warn(`subscribing to method ${methodInfo.name} failed: ${JSON.stringify(error)}}`));\n });\n const reconnectionPromises = [];\n const existingSubscriptions = client.drainSubscriptions();\n for (const sub of existingSubscriptions) {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n reconnectionPromises.push(interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`subscribing to method ${methodInfo.name} DONE`)));\n }\n const registeredMethods = serverRepository.getList();\n serverRepository.reset();\n for (const method of registeredMethods) {\n const def = method.definition;\n if (method.stream) {\n reconnectionPromises.push(interop.server.createStream(def, method.streamCallbacks, undefined, undefined, method.stream)\n .then(() => logger.info(`subscribing to method ${def.name} DONE`))\n .catch(() => logger.warn(`subscribing to method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallback) {\n reconnectionPromises.push(interop.register(def, method.theFunction.userCallback)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallbackAsync) {\n reconnectionPromises.push(interop.registerAsync(def, method.theFunction.userCallbackAsync)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n }\n await Promise.all(reconnectionPromises);\n logger.info(\"Interop is re-announced\");\n }\n function handleInitialJoin() {\n if (resolveReadyPromise) {\n resolveReadyPromise({\n client,\n server,\n });\n resolveReadyPromise = undefined;\n }\n }\n session.onJoined((reconnect) => {\n clientRepository.addServer(instance, connection.peerId);\n if (reconnect) {\n handleReconnect().then(() => connection.setLibReAnnounced({ name: \"interop\" })).catch((error) => logger.warn(`Error while re-announcing interop: ${JSON.stringify(error)}`));\n }\n else {\n handleInitialJoin();\n }\n });\n session.onLeft(() => {\n clientRepository.reset();\n });\n session.join();\n return readyPromise;\n}\n\nclass Interop {\n instance;\n readyPromise;\n client;\n server;\n unwrappedInstance;\n protocol;\n clientRepository;\n serverRepository;\n constructor(configuration) {\n if (typeof configuration === \"undefined\") {\n throw new Error(\"configuration is required\");\n }\n if (typeof configuration.connection === \"undefined\") {\n throw new Error(\"configuration.connections is required\");\n }\n const connection = configuration.connection;\n if (typeof configuration.methodResponseTimeout !== \"number\") {\n configuration.methodResponseTimeout = 30 * 1000;\n }\n if (typeof configuration.waitTimeoutMs !== \"number\") {\n configuration.waitTimeoutMs = 30 * 1000;\n }\n this.unwrappedInstance = new InstanceWrapper(this, undefined, connection);\n this.instance = this.unwrappedInstance.unwrap();\n this.clientRepository = new ClientRepository(configuration.logger.subLogger(\"cRep\"), this);\n this.serverRepository = new ServerRepository();\n let protocolPromise;\n if (connection.protocolVersion === 3) {\n protocolPromise = gW3ProtocolFactory(this.instance, connection, this.clientRepository, this.serverRepository, configuration, this);\n }\n else {\n throw new Error(`protocol ${connection.protocolVersion} not supported`);\n }\n this.readyPromise = protocolPromise.then((protocol) => {\n this.protocol = protocol;\n this.client = new Client(this.protocol, this.clientRepository, this.instance, configuration);\n this.server = new Server(this.protocol, this.serverRepository);\n return this;\n });\n }\n ready() {\n return this.readyPromise;\n }\n serverRemoved(callback) {\n return this.client.serverRemoved(callback);\n }\n serverAdded(callback) {\n return this.client.serverAdded(callback);\n }\n serverMethodRemoved(callback) {\n return this.client.serverMethodRemoved(callback);\n }\n serverMethodAdded(callback) {\n return this.client.serverMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.client.methodRemoved(callback);\n }\n methodAdded(callback) {\n return this.client.methodAdded(callback);\n }\n methodsForInstance(instance) {\n return this.client.methodsForInstance(instance);\n }\n methods(methodFilter) {\n return this.client.methods(methodFilter);\n }\n servers(methodFilter) {\n return this.client.servers(methodFilter);\n }\n subscribe(method, options, successCallback, errorCallback) {\n return this.client.subscribe(method, options, successCallback, errorCallback);\n }\n createStream(streamDef, callbacks, successCallback, errorCallback) {\n return this.server.createStream(streamDef, callbacks, successCallback, errorCallback);\n }\n unregister(methodFilter) {\n return this.server.unregister(methodFilter);\n }\n registerAsync(methodDefinition, callback) {\n return this.server.registerAsync(methodDefinition, callback);\n }\n register(methodDefinition, callback) {\n return this.server.register(methodDefinition, callback);\n }\n invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n return this.client.invoke(methodFilter, argumentObj, target, additionalOptions, success, error);\n }\n waitForMethod(name) {\n const pw = new PromiseWrapper();\n const unsubscribe = this.client.methodAdded((m) => {\n if (m.name === name) {\n unsubscribe();\n pw.resolve(m);\n }\n });\n return pw.promise;\n }\n}\n\nconst successMessages = [\"subscribed\", \"success\"];\nclass MessageBus {\n connection;\n logger;\n peerId;\n session;\n subscriptions;\n readyPromise;\n constructor(connection, logger) {\n this.connection = connection;\n this.logger = logger;\n this.peerId = connection.peerId;\n this.subscriptions = [];\n this.session = connection.domain(\"bus\", successMessages);\n this.readyPromise = this.session.join();\n this.readyPromise.then(() => {\n this.watchOnEvent();\n });\n }\n ready() {\n return this.readyPromise;\n }\n publish = (topic, data, options) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"publish\",\n topic,\n data,\n peer_id: this.peerId,\n routing_key: routingKey,\n target_identity: target\n });\n this.session.send(args);\n };\n subscribe = (topic, callback, options) => {\n return new Promise((resolve, reject) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"subscribe\",\n topic,\n peer_id: this.peerId,\n routing_key: routingKey,\n source: target\n });\n this.session.send(args)\n .then((response) => {\n const { subscription_id } = response;\n this.subscriptions.push({ subscription_id, topic, callback, source: target });\n resolve({\n unsubscribe: () => {\n this.session.send({ type: \"unsubscribe\", subscription_id, peer_id: this.peerId });\n this.subscriptions = this.subscriptions.filter((s) => s.subscription_id !== subscription_id);\n return Promise.resolve();\n }\n });\n })\n .catch((error) => reject(error));\n });\n };\n watchOnEvent = () => {\n this.session.on(\"event\", (args) => {\n const { data, subscription_id } = args;\n const source = args[\"publisher-identity\"];\n const subscription = this.subscriptions.find((s) => s.subscription_id === subscription_id);\n if (subscription) {\n if (!subscription.source) {\n subscription.callback(data, subscription.topic, source);\n }\n else {\n if (this.keysMatch(subscription.source, source)) {\n subscription.callback(data, subscription.topic, source);\n }\n }\n }\n });\n };\n removeEmptyValues(obj) {\n const cleaned = {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] !== undefined && obj[key] !== null) {\n cleaned[key] = obj[key];\n }\n });\n return cleaned;\n }\n keysMatch(obj1, obj2) {\n const keysObj1 = Object.keys(obj1);\n let allMatch = true;\n keysObj1.forEach((key) => {\n if (obj1[key] !== obj2[key]) {\n allMatch = false;\n }\n });\n return allMatch;\n }\n}\n\nconst IOConnectCoreFactory = (userConfig, ext) => {\n const iodesktop = typeof window === \"object\" ? (window.iodesktop ?? window.glue42gd) : undefined;\n const preloadPromise = typeof window === \"object\" ? (window.gdPreloadPromise ?? Promise.resolve()) : Promise.resolve();\n const glueInitTimer = timer(\"glue\");\n userConfig = userConfig || {};\n ext = ext || {};\n const internalConfig = prepareConfig(userConfig, ext, iodesktop);\n let _connection;\n let _interop;\n let _logger;\n let _metrics;\n let _contexts;\n let _bus;\n let _allowTrace;\n const libs = {};\n function registerLib(name, inner, t) {\n _allowTrace = _logger.canPublish(\"trace\");\n if (_allowTrace) {\n _logger.trace(`registering ${name} module`);\n }\n const done = (e) => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (!_allowTrace) {\n return;\n }\n const traceMessage = e ?\n `${name} failed - ${e.message}` :\n `${name} is ready - ${t.endTime - t.startTime}`;\n _logger.trace(traceMessage);\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready()\n .then(() => {\n done();\n })\n .catch((e) => {\n const error = typeof e === \"string\" ? new Error(e) : e;\n done(error);\n });\n }\n else {\n done();\n }\n if (!Array.isArray(name)) {\n name = [name];\n }\n name.forEach((n) => {\n libs[n] = inner;\n IOConnectCoreFactory[n] = inner;\n });\n }\n function setupConnection() {\n const initTimer = timer(\"connection\");\n _connection = new Connection(internalConfig.connection, _logger.subLogger(\"connection\"));\n let authPromise = Promise.resolve(internalConfig.auth);\n if (internalConfig.connection && !internalConfig.auth) {\n if (iodesktop) {\n authPromise = iodesktop.getGWToken()\n .then((token) => {\n return {\n gatewayToken: token\n };\n });\n }\n else if (typeof window !== \"undefined\" && window?.glue42electron) {\n if (typeof window.glue42electron.gwToken === \"string\") {\n authPromise = Promise.resolve({\n gatewayToken: window.glue42electron.gwToken\n });\n }\n }\n else {\n authPromise = Promise.reject(\"You need to provide auth information\");\n }\n }\n return authPromise\n .then((authConfig) => {\n initTimer.mark(\"auth-promise-resolved\");\n let authRequest;\n if (Object.prototype.toString.call(authConfig) === \"[object Object]\") {\n authRequest = authConfig;\n }\n else {\n throw new Error(\"Invalid auth object - \" + JSON.stringify(authConfig));\n }\n return _connection.login(authRequest);\n })\n .then(() => {\n registerLib(\"connection\", _connection, initTimer);\n return internalConfig;\n })\n .catch((e) => {\n if (_connection) {\n _connection.logout();\n }\n throw e;\n });\n }\n function setupLogger() {\n const initTimer = timer(\"logger\");\n _logger = new Logger(`${internalConfig.connection.identity?.application}`, undefined, internalConfig.customLogger);\n _logger.consoleLevel(internalConfig.logger.console);\n _logger.publishLevel(internalConfig.logger.publish);\n if (_logger.canPublish(\"debug\")) {\n _logger.debug(\"initializing glue...\");\n }\n registerLib(\"logger\", _logger, initTimer);\n return Promise.resolve(undefined);\n }\n function setupMetrics() {\n const initTimer = timer(\"metrics\");\n const config = internalConfig.metrics;\n const metricsPublishingEnabledFunc = iodesktop?.getMetricsPublishingEnabled;\n const identity = internalConfig.connection.identity;\n const canUpdateMetric = metricsPublishingEnabledFunc ? metricsPublishingEnabledFunc : () => true;\n const disableAutoAppSystem = (typeof config !== \"boolean\" && config.disableAutoAppSystem) ?? false;\n _metrics = metrics({\n connection: config ? _connection : undefined,\n logger: _logger.subLogger(\"metrics\"),\n canUpdateMetric,\n system: \"Glue42\",\n service: identity?.service ?? iodesktop?.applicationName ?? internalConfig.application,\n instance: identity?.instance ?? identity?.windowId ?? nanoid(10),\n disableAutoAppSystem,\n pagePerformanceMetrics: typeof config !== \"boolean\" ? config?.pagePerformanceMetrics : undefined\n });\n registerLib(\"metrics\", _metrics, initTimer);\n return Promise.resolve();\n }\n function setupInterop() {\n const initTimer = timer(\"interop\");\n const agmConfig = {\n connection: _connection,\n logger: _logger.subLogger(\"interop\"),\n };\n _interop = new Interop(agmConfig);\n Logger.Interop = _interop;\n registerLib([\"interop\", \"agm\"], _interop, initTimer);\n return Promise.resolve();\n }\n function setupContexts() {\n const hasActivities = (internalConfig.activities && _connection.protocolVersion === 3);\n const needsContexts = internalConfig.contexts || hasActivities;\n if (needsContexts) {\n const initTimer = timer(\"contexts\");\n _contexts = new ContextsModule({\n connection: _connection,\n logger: _logger.subLogger(\"contexts\"),\n trackAllContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.trackAllContexts : false,\n reAnnounceKnownContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.reAnnounceKnownContexts : false\n });\n registerLib(\"contexts\", _contexts, initTimer);\n return _contexts;\n }\n else {\n const replayer = _connection.replayer;\n if (replayer) {\n replayer.drain(ContextMessageReplaySpec.name);\n }\n }\n }\n async function setupBus() {\n if (!internalConfig.bus) {\n return Promise.resolve();\n }\n const initTimer = timer(\"bus\");\n _bus = new MessageBus(_connection, _logger.subLogger(\"bus\"));\n registerLib(\"bus\", _bus, initTimer);\n return Promise.resolve();\n }\n function setupExternalLibs(externalLibs) {\n try {\n externalLibs.forEach((lib) => {\n setupExternalLib(lib.name, lib.create);\n });\n return Promise.resolve();\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n function setupExternalLib(name, createCallback) {\n const initTimer = timer(name);\n const lib = createCallback(libs);\n if (lib) {\n registerLib(name, lib, initTimer);\n }\n }\n function waitForLibs() {\n const libsReadyPromises = Object.keys(libs).map((key) => {\n const lib = libs[key];\n return lib.ready ?\n lib.ready() : Promise.resolve();\n });\n return Promise.all(libsReadyPromises);\n }\n function constructGlueObject() {\n const feedbackFunc = (feedbackInfo) => {\n if (!_interop) {\n return;\n }\n _interop.invoke(\"T42.ACS.Feedback\", feedbackInfo, \"best\");\n };\n const info = {\n coreVersion: version,\n version: internalConfig.version\n };\n glueInitTimer.stop();\n const glue = {\n feedback: feedbackFunc,\n info,\n logger: _logger,\n interop: _interop,\n agm: _interop,\n connection: _connection,\n metrics: _metrics,\n contexts: _contexts,\n bus: _bus,\n version: internalConfig.version,\n userConfig,\n done: () => {\n _logger?.info(\"done called by user...\");\n return _connection.logout();\n }\n };\n glue.performance = {\n get glueVer() {\n return internalConfig.version;\n },\n get glueConfig() {\n return JSON.stringify(userConfig);\n },\n get browser() {\n return window.performance.timing.toJSON();\n },\n get memory() {\n return window.performance.memory;\n },\n get initTimes() {\n const all = getAllTimers();\n return Object.keys(all).map((key) => {\n const t = all[key];\n return {\n name: key,\n duration: t.endTime - t.startTime,\n marks: t.marks,\n startTime: t.startTime,\n endTime: t.endTime\n };\n });\n }\n };\n Object.keys(libs).forEach((key) => {\n const lib = libs[key];\n glue[key] = lib;\n });\n glue.config = {};\n Object.keys(internalConfig).forEach((k) => {\n glue.config[k] = internalConfig[k];\n });\n if (ext && ext.extOptions) {\n Object.keys(ext.extOptions).forEach((k) => {\n glue.config[k] = ext?.extOptions[k];\n });\n }\n if (ext?.enrichGlue) {\n ext.enrichGlue(glue);\n }\n if (iodesktop && iodesktop.updatePerfData) {\n iodesktop.updatePerfData(glue.performance);\n }\n if (glue.agm) {\n const deprecatedDecorator = (fn, wrong, proper) => {\n return function () {\n glue.logger.warn(`glue.js - 'glue.agm.${wrong}' method is deprecated, use 'glue.interop.${proper}' instead.`);\n return fn.apply(glue.agm, arguments);\n };\n };\n const agmAny = glue.agm;\n agmAny.method_added = deprecatedDecorator(glue.agm.methodAdded, \"method_added\", \"methodAdded\");\n agmAny.method_removed = deprecatedDecorator(glue.agm.methodRemoved, \"method_removed\", \"methodRemoved\");\n agmAny.server_added = deprecatedDecorator(glue.agm.serverAdded, \"server_added\", \"serverAdded\");\n agmAny.server_method_aded = deprecatedDecorator(glue.agm.serverMethodAdded, \"server_method_aded\", \"serverMethodAdded\");\n agmAny.server_method_removed = deprecatedDecorator(glue.agm.serverMethodRemoved, \"server_method_removed\", \"serverMethodRemoved\");\n }\n return glue;\n }\n async function registerInstanceIfNeeded() {\n const RegisterInstanceMethodName = \"T42.ACS.RegisterInstance\";\n if (Utils.isNode() && typeof process.env._GD_STARTING_CONTEXT_ === \"undefined\" && typeof userConfig?.application !== \"undefined\") {\n const isMethodAvailable = _interop.methods({ name: RegisterInstanceMethodName }).length > 0;\n if (isMethodAvailable) {\n try {\n await _interop.invoke(RegisterInstanceMethodName, { appName: userConfig?.application, pid: process.pid });\n }\n catch (error) {\n const typedError = error;\n _logger.error(`Cannot register as an instance: ${JSON.stringify(typedError.message)}`);\n }\n }\n }\n }\n return preloadPromise\n .then(setupLogger)\n .then(setupConnection)\n .then(() => Promise.all([setupMetrics(), setupInterop(), setupContexts(), setupBus()]))\n .then(() => _interop.readyPromise)\n .then(() => registerInstanceIfNeeded())\n .then(() => {\n return setupExternalLibs(internalConfig.libs || []);\n })\n .then(waitForLibs)\n .then(constructGlueObject)\n .catch((err) => {\n return Promise.reject({\n err,\n libs\n });\n });\n};\nif (typeof window !== \"undefined\") {\n window.IOConnectCore = IOConnectCoreFactory;\n}\nIOConnectCoreFactory.version = version;\nIOConnectCoreFactory.default = IOConnectCoreFactory;\n\nexport { IOConnectCoreFactory as default };\n//# sourceMappingURL=core.es.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\n;\ncreateRegistry.default = createRegistry;\nmodule.exports = createRegistry;\n//# sourceMappingURL=index.js.map",null,null,null,"let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=application.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=system.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwimlaneItemType = exports.LayoutType = void 0;\nvar LayoutType;\n(function (LayoutType) {\n LayoutType[\"Global\"] = \"Global\";\n LayoutType[\"Activity\"] = \"Activity\";\n LayoutType[\"ApplicationDefault\"] = \"ApplicationDefault\";\n LayoutType[\"Swimlane\"] = \"Swimlane\";\n LayoutType[\"Workspaces\"] = \"Workspace\";\n})(LayoutType || (exports.LayoutType = LayoutType = {}));\nvar SwimlaneItemType;\n(function (SwimlaneItemType) {\n SwimlaneItemType[\"Tab\"] = \"tab\";\n SwimlaneItemType[\"Window\"] = \"window\";\n SwimlaneItemType[\"Canvas\"] = \"canvas\";\n})(SwimlaneItemType || (exports.SwimlaneItemType = SwimlaneItemType = {}));\n//# sourceMappingURL=layout.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swTheme.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swConfiguration.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// export { SchemaValidator } from \"./validator\";\n// export { FileProvider } from \"./fileProvider\";\n// export { SchemaProvider } from \"./provider\";\n__exportStar(require(\"./application\"), exports);\n__exportStar(require(\"./system\"), exports);\n__exportStar(require(\"./layout\"), exports);\n__exportStar(require(\"./swTheme\"), exports);\n__exportStar(require(\"./swConfiguration\"), exports);\n//# sourceMappingURL=main.js.map",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"const connectBrowserAppProps = [\"name\", \"title\", \"version\", \"customProperties\", \"icon\", \"caption\", \"type\"];\nconst fdc3v2AppProps = [\"appId\", \"name\", \"type\", \"details\", \"version\", \"title\", \"tooltip\", \"lang\", \"description\", \"categories\", \"icons\", \"screenshots\", \"contactEmail\", \"moreInfo\", \"publisher\", \"customConfig\", \"hostManifests\", \"interop\", \"localizedVersions\"];\n\n/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nDecoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nDecoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nDecoder.union;\r\n/** See `Decoder.intersection` */\r\nDecoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nDecoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nDecoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nDecoder.succeed;\r\n/** See `Decoder.fail` */\r\nDecoder.fail;\r\n/** See `Decoder.lazy` */\r\nDecoder.lazy;\n\nconst nonEmptyStringDecoder = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nconst nonNegativeNumberDecoder = number().where((num) => num >= 0, \"Expected a non-negative number\");\n\nconst intentDefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n displayName: optional(string()),\n contexts: optional(array(string())),\n customConfig: optional(object())\n});\nconst v2TypeDecoder = oneOf(constant(\"web\"), constant(\"native\"), constant(\"citrix\"), constant(\"onlineNative\"), constant(\"other\"));\nconst v2DetailsDecoder = object({\n url: nonEmptyStringDecoder\n});\nconst v2IconDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder)\n});\nconst v2ScreenshotDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder),\n label: optional(nonEmptyStringDecoder)\n});\nconst v2ListensForIntentDecoder = object({\n contexts: array(nonEmptyStringDecoder),\n displayName: optional(nonEmptyStringDecoder),\n resultType: optional(nonEmptyStringDecoder),\n customConfig: optional(anyJson())\n});\nconst v2IntentsDecoder = object({\n listensFor: optional(dict(v2ListensForIntentDecoder)),\n raises: optional(dict(array(nonEmptyStringDecoder)))\n});\nconst v2UserChannelDecoder = object({\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2AppChannelDecoder = object({\n name: nonEmptyStringDecoder,\n description: optional(nonEmptyStringDecoder),\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2InteropDecoder = object({\n intents: optional(v2IntentsDecoder),\n userChannels: optional(v2UserChannelDecoder),\n appChannels: optional(array(v2AppChannelDecoder))\n});\nconst glue42ApplicationDetailsDecoder = object({\n url: optional(nonEmptyStringDecoder),\n top: optional(number()),\n left: optional(number()),\n width: optional(nonNegativeNumberDecoder),\n height: optional(nonNegativeNumberDecoder)\n});\nconst glue42HostManifestsBrowserDecoder = object({\n name: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder.where((s) => s === \"window\", \"Expected a value of window\")),\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n customProperties: optional(anyJson()),\n icon: optional(string()),\n caption: optional(string()),\n details: optional(glue42ApplicationDetailsDecoder),\n intents: optional(array(intentDefinitionDecoder)),\n hidden: optional(boolean())\n});\nconst v1DefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n appId: nonEmptyStringDecoder,\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n manifest: nonEmptyStringDecoder,\n manifestType: nonEmptyStringDecoder,\n tooltip: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n images: optional(array(object({ url: optional(nonEmptyStringDecoder) }))),\n icons: optional(array(object({ icon: optional(nonEmptyStringDecoder) }))),\n customConfig: anyJson(),\n intents: optional(array(intentDefinitionDecoder))\n});\nconst v2LocalizedDefinitionDecoder = object({\n appId: optional(nonEmptyStringDecoder),\n name: optional(nonEmptyStringDecoder),\n details: optional(v2DetailsDecoder),\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder)\n});\nconst v2DefinitionDecoder = object({\n appId: nonEmptyStringDecoder,\n name: nonEmptyStringDecoder,\n type: v2TypeDecoder,\n details: v2DetailsDecoder,\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder),\n localizedVersions: optional(dict(v2LocalizedDefinitionDecoder))\n});\nconst allDefinitionsDecoder = oneOf(v1DefinitionDecoder, v2DefinitionDecoder);\n\nconst parseDecoderErrorToStringMessage = (error) => {\n return `${error.kind} at ${error.at}: ${JSON.stringify(error.input)}. Reason - ${error.message}`;\n};\n\nclass FDC3Service {\n fdc3ToDesktopDefinitionType = {\n web: \"window\",\n native: \"exe\",\n citrix: \"citrix\",\n onlineNative: \"clickonce\",\n other: \"window\"\n };\n toApi() {\n return {\n isFdc3Definition: this.isFdc3Definition.bind(this),\n parseToBrowserBaseAppData: this.parseToBrowserBaseAppData.bind(this),\n parseToDesktopAppConfig: this.parseToDesktopAppConfig.bind(this)\n };\n }\n isFdc3Definition(definition) {\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n return { isFdc3: false, reason: parseDecoderErrorToStringMessage(decodeRes.error) };\n }\n if (definition.appId && definition.details) {\n return { isFdc3: true, version: \"2.0\" };\n }\n if (definition.manifest) {\n return { isFdc3: true, version: \"1.2\" };\n }\n return { isFdc3: false, reason: \"The passed definition is not FDC3\" };\n }\n parseToBrowserBaseAppData(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n const userProperties = this.getUserPropertiesFromDefinition(definition, version);\n const createOptions = { url: this.getUrl(definition, version) };\n const baseApplicationData = {\n name: definition.appId,\n type: \"window\",\n createOptions,\n userProperties: {\n ...userProperties,\n intents: version === \"1.2\"\n ? userProperties.intents\n : this.getIntentsFromV2AppDefinition(definition),\n details: createOptions\n },\n title: definition.title,\n version: definition.version,\n icon: this.getIconFromDefinition(definition, version),\n caption: definition.description,\n fdc3: version === \"2.0\" ? { ...definition, definitionVersion: \"2.0\" } : undefined,\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return baseApplicationData;\n }\n const ioDefinitionDecodeRes = glue42HostManifestsBrowserDecoder.run(ioConnectDefinition);\n if (!ioDefinitionDecodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(ioDefinitionDecodeRes.error)}`);\n }\n if (!Object.keys(ioDefinitionDecodeRes.result).length) {\n return baseApplicationData;\n }\n return this.mergeBaseAppDataWithGlueManifest(baseApplicationData, ioDefinitionDecodeRes.result);\n }\n parseToDesktopAppConfig(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n if (version === \"1.2\") {\n const fdc3v1Definition = definition;\n return {\n name: fdc3v1Definition.appId,\n type: \"window\",\n details: {\n url: this.getUrl(definition, version)\n },\n version: fdc3v1Definition.version,\n title: fdc3v1Definition.title,\n tooltip: fdc3v1Definition.tooltip,\n caption: fdc3v1Definition.description,\n icon: fdc3v1Definition.icons?.[0].icon,\n intents: fdc3v1Definition.intents,\n customProperties: {\n manifestType: fdc3v1Definition.manifestType,\n images: fdc3v1Definition.images,\n contactEmail: fdc3v1Definition.contactEmail,\n supportEmail: fdc3v1Definition.supportEmail,\n publisher: fdc3v1Definition.publisher,\n icons: fdc3v1Definition.icons,\n customConfig: fdc3v1Definition.customConfig\n }\n };\n }\n const fdc3v2Definition = definition;\n const desktopDefinition = {\n name: fdc3v2Definition.appId,\n type: this.fdc3ToDesktopDefinitionType[fdc3v2Definition.type],\n details: fdc3v2Definition.details,\n version: fdc3v2Definition.version,\n title: fdc3v2Definition.title,\n tooltip: fdc3v2Definition.tooltip,\n caption: fdc3v2Definition.description,\n icon: this.getIconFromDefinition(fdc3v2Definition, \"2.0\"),\n intents: this.getIntentsFromV2AppDefinition(fdc3v2Definition),\n fdc3: { ...fdc3v2Definition, definitionVersion: \"2.0\" }\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return desktopDefinition;\n }\n if (typeof ioConnectDefinition !== \"object\" || Array.isArray(ioConnectDefinition)) {\n throw new Error(`Invalid '${definition.hostManifests.ioConnect ? \"hostManifests.ioConnect\" : \"hostManifests['Glue42']\"}' key`);\n }\n return this.mergeDesktopConfigWithGlueManifest(desktopDefinition, ioConnectDefinition);\n }\n getUserPropertiesFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key)));\n }\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key) && !fdc3v2AppProps.includes(key)));\n }\n getUrl(definition, version) {\n let url;\n if (version === \"1.2\") {\n const parsedManifest = JSON.parse(definition.manifest);\n url = parsedManifest.details?.url || parsedManifest.url;\n }\n else {\n url = definition.details?.url;\n }\n if (!url || typeof url !== \"string\") {\n throw new Error(`Invalid FDC3 ${version} definition. Provide valid 'url' under '${version === \"1.2\" ? \"manifest\" : \"details\"}' key`);\n }\n return url;\n }\n getIntentsFromV2AppDefinition(definition) {\n const fdc3Intents = definition.interop?.intents?.listensFor;\n if (!fdc3Intents) {\n return;\n }\n const intents = Object.entries(fdc3Intents).map((fdc3Intent) => {\n const [intentName, intentData] = fdc3Intent;\n return {\n name: intentName,\n ...intentData\n };\n });\n return intents;\n }\n getIconFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return definition.icons?.find((iconDef) => iconDef.icon)?.icon || undefined;\n }\n return definition.icons?.find((iconDef) => iconDef.src)?.src || undefined;\n }\n mergeBaseAppDataWithGlueManifest(baseAppData, hostManifestDefinition) {\n let baseApplicationDefinition = baseAppData;\n if (hostManifestDefinition.details) {\n const details = { ...baseAppData.createOptions, ...hostManifestDefinition.details };\n baseApplicationDefinition.createOptions = details;\n baseApplicationDefinition.userProperties.details = details;\n }\n if (Array.isArray(hostManifestDefinition.intents)) {\n baseApplicationDefinition.userProperties.intents = (baseApplicationDefinition.userProperties.intents || []).concat(hostManifestDefinition.intents);\n }\n baseApplicationDefinition = { ...baseApplicationDefinition, ...hostManifestDefinition };\n delete baseApplicationDefinition.details;\n delete baseApplicationDefinition.intents;\n return baseApplicationDefinition;\n }\n mergeDesktopConfigWithGlueManifest(config, desktopDefinition) {\n const appConfig = Object.assign({}, config, desktopDefinition, { details: { ...config.details, ...desktopDefinition.details } });\n if (Array.isArray(desktopDefinition.intents)) {\n appConfig.intents = (config.intents || []).concat(desktopDefinition.intents);\n }\n return appConfig;\n }\n}\n\nconst decoders$1 = {\n common: {\n nonEmptyStringDecoder,\n nonNegativeNumberDecoder\n },\n fdc3: {\n allDefinitionsDecoder,\n v1DefinitionDecoder,\n v2DefinitionDecoder\n }\n};\n\nvar INTENTS_ERRORS;\n(function (INTENTS_ERRORS) {\n INTENTS_ERRORS[\"USER_CANCELLED\"] = \"User Closed Intents Resolver UI without choosing a handler\";\n INTENTS_ERRORS[\"CALLER_NOT_DEFINED\"] = \"Caller Id is not defined\";\n INTENTS_ERRORS[\"TIMEOUT_HIT\"] = \"Timeout hit\";\n INTENTS_ERRORS[\"INTENT_NOT_FOUND\"] = \"Cannot find Intent\";\n INTENTS_ERRORS[\"HANDLER_NOT_FOUND\"] = \"Cannot find Intent Handler\";\n INTENTS_ERRORS[\"TARGET_INSTANCE_UNAVAILABLE\"] = \"Cannot start Target Instance\";\n INTENTS_ERRORS[\"INTENT_DELIVERY_FAILED\"] = \"Target Instance did not add a listener\";\n INTENTS_ERRORS[\"RESOLVER_UNAVAILABLE\"] = \"Intents Resolver UI unavailable\";\n INTENTS_ERRORS[\"RESOLVER_TIMEOUT\"] = \"User did not choose a handler\";\n INTENTS_ERRORS[\"INVALID_RESOLVER_RESPONSE\"] = \"Intents Resolver UI returned invalid response\";\n INTENTS_ERRORS[\"INTENT_HANDLER_REJECTION\"] = \"Intent Handler function processing the raised intent threw an error or rejected the promise it returned\";\n})(INTENTS_ERRORS || (INTENTS_ERRORS = {}));\n\nclass IoC {\n _fdc3;\n _decoders = decoders$1;\n _errors = {\n intents: INTENTS_ERRORS\n };\n get fdc3() {\n if (!this._fdc3) {\n this._fdc3 = new FDC3Service().toApi();\n }\n return this._fdc3;\n }\n get decoders() {\n return this._decoders;\n }\n get errors() {\n return this._errors;\n }\n}\n\nconst ioc = new IoC();\nconst fdc3 = ioc.fdc3;\nconst decoders = ioc.decoders;\nconst errors = ioc.errors;\n\nexport { decoders, errors, fdc3 };\n//# sourceMappingURL=utils.es.js.map\n",null,null,null,null,null,null,null,"export class PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n static async delayForever() {\n const biggestPossibleDelay = 2147483647;\n while (true) {\n await this.delay(biggestPossibleDelay);\n }\n }\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\nexport function callbackifyPromise(action, successCallback, errorCallback, logger, token) {\n const fail = (error) => {\n if (logger) {\n logger.error(`[${token}]`, error);\n }\n let msg = error;\n if (error instanceof Error) {\n msg = error.message;\n }\n if (typeof errorCallback === \"function\") {\n errorCallback(msg);\n return;\n }\n return PromiseWrapper.delay(0)\n .then(() => {\n throw error;\n });\n };\n return PromiseWrapper.delay(0)\n .then(action)\n .then((result) => {\n if (logger) {\n logger.info(`[${token}] successful`);\n }\n if (typeof successCallback === \"function\") {\n successCallback(result);\n }\n return result;\n })\n .catch((error) => {\n return fail(error);\n });\n}\n//# sourceMappingURL=promise.js.map",null,null,null,null,null,null,null,null,null],"names":["MetricTypes","getMetricTypeByValue","metric","type","getTypeByValue","value","constructor","Date","serializeMetric","serializedMetrics","values","Object","keys","reduce","memo","key","innerType","composite","defineNestedComposite","description","context","name","normalizeMetricName","path","join","length","getMetricValueByType","now","publishNestedComposite","getTime","Boolean","toString","flatten","arr","flat","toFlatten","concat","Array","isArray","composeMsgForRootStateMetric","system","merged","root","getAggregateState","highestState","sort","a","b","state","aggregateDesc","msg","forEach","m","idx","slice","aggregateDescription","Helpers","definition","parent","transport","Error","BaseMetric","repo","this","id","push","createMetric","update","newValue","updateMetric","NumberMetric","super","incrementBy","num","increment","decrement","decrementBy","ObjectMetric","mergeValues","k","StringMetric","TimestampMetric","protocol","_transport","_name","_description","_repo","_parent","_path","_buildPath","shadowedSystem","_state","separator","_subSystems","_metrics","_getOrCreateMetric","metricObject","expectedType","metricDef","matching","filter","shadowedMetric","existing","catch","me","subSystems","metrics","subSystem","nameSystem","descriptionSystem","match","s","_system","getState","setState","stateDescription","updateSystem","stringMetric","timestampMetric","objectMetric","numberMetric","aggState","shadowedSubSystem","result","createSystem","Repository","options","init","addSystemMetrics","clickStream","undefined","rootSystem","useClickStream","navigator","userAgent","document","documentClickHandler","e","target","className","getAttribute","timestamp","tagName","toLowerCase","href","title","page","window","location","addEventListener","attachEvent","urlMetric","appNameMetric","startUrl","glue42gd","appName","NullProtocol","Promise","resolve","PerfTracker","api","lastCount","initialPublishTimeout","publishInterval","scheduleCollection","setTimeout","collect","setInterval","collectMemory","collectEntries","memory","performance","JSON","stringify","totalJSHeapSize","usedJSHeapSize","allEntries","getEntries","jsonfiedEntries","map","i","toJSON","connection","config","joinPromise","session","replayRepo","replaySystem","ss","async","createMetricsMsg","Description","Value","send","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","sendFireAndForget","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","err","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","createRegistry$1","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","logger","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper$1","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","PromiseWrapper","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","children","extContentAvailable","extContentConnecting","extContentConnected","parentWindowId","parentInExtMode","webNamespace","parentType","parentPingTimeout","connectionRequestTimeout","defaultTargetString","connectionAccepted","handle","handleConnectionAccepted","bind","connectionRejected","handleConnectionRejected","connectionRequest","handleConnectionRequest","parentPing","handleParentPing","platformPing","handlePlatformPing","platformReady","handlePlatformReady","clientUnload","handleClientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","warn","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","origin","checkMessageTypeValid","messageType","clearInterval","source","handleAcceptanceOfMyRequest","handleAcceptanceOfGrandChildRequest","processExtContentConnection","applicationName","extData","glue42ExtInc","child","find","c","grandChildId","connected","errorMsg","rejectConnectionRequest","extMode","typeToValidate","rejection","requestConnectionPermissionFromExt","waitForContentScript","approved","content","findParent","connectionNotPossibleMsg","myInsideParents","getPossibleParentsInWindow","myOutsideParents","getPossibleParentsOutsideWindow","top","opener","uniqueParents","Set","confirmParent","from","currentWindow","current","targets","substring","AsyncSequelizer","minSequenceInterval","queue","isExecutingQueue","enqueue","executeQueue","operation","shift","actionResult","intervalBreak","res","domainSession","successMessages","errorMessages","_latestOptions","isJoined","tryReconnecting","_connectionOn","disconnected","loggedIn","handleSuccessMessage","handleErrorMessage","sm","requestsMap","destination","wasReconnect","handleJoined","requestId","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","leave","onLeft","Connection","protocolVersion","token","resolvedIdentity","availableDomains","gatewayToken","replayer","messageHandlers","ids","_connected","isTrace","_defaultTransport","_defaultAuth","_targetTransport","_targetAuth","_swapTransport","_switchInProgress","_transportSubscriptions","datePrefix","datePrefixLen","dateMinLen","datePrefixFirstChar","_sequelizer","_isLoggedIn","shouldTryLogin","pingTimer","sessions","globalDomain","initialLogin","initialLoginAttempts","loginConfig","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","trace","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","handleDisconnected","msgObj","processStringMessage","processObjectMessage","msgType","unsub","ready","invocations","left","waitForInvocations","transportConfig","url","assign","auth","parse","startsWith","milliseconds","parseInt","isNaN","ex","oldToJson","username","password","authentication","setupAuthConfig","helloMsg","sessionId","sendOptions","maxRetries","welcomeMsg","tryAuthenticate","resolved_identity","available_domains","access_token","flowCallback","Buffer","getNewGWToken","method","flowName","provider","secret","providerContext","promises","all","getGWToken","order","Logger$1","Logger","subLoggers","_consoleLevel","_publishLevel","loggerFullName","includeTimeAndLevel","logFn","customLogFn","existingSub","publishLevel","level","consoleLevel","publishMessage","compareWith","loggerName","split","interop","Interop","methods","InteropMethodName","args","invoke","prefix","date","getHours","getMinutes","getSeconds","getMilliseconds","toPrint","GW_MESSAGE_CREATE_CONTEXT","GW_MESSAGE_ACTIVITY_CREATED","GW_MESSAGE_ACTIVITY_DESTROYED","GW_MESSAGE_CONTEXT_CREATED","GW_MESSAGE_CONTEXT_ADDED","GW_MESSAGE_SUBSCRIBE_CONTEXT","GW_MESSAGE_SUBSCRIBED_CONTEXT","GW_MESSAGE_UNSUBSCRIBE_CONTEXT","GW_MESSAGE_DESTROY_CONTEXT","GW_MESSAGE_CONTEXT_DESTROYED","GW_MESSAGE_UPDATE_CONTEXT","GW_MESSAGE_CONTEXT_UPDATED","GW_MESSAGE_JOINED_ACTIVITY","ContextMessageReplaySpec","version","GW3ContextData","contextId","isAnnounced","joinedActivity","updateCallbacks","activityId","sentExplicitSubscription","hasReceivedSnapshot","hasCallbacks","lodash_clonedeep","exports","module","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","Function","freeExports","nodeType","freeModule","moduleExports","addMapEntry","pair","set","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","func","transform","arg","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","propertyIsEnumerable","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","n","baseTimes","String","skipIndexes","isIndex","assignValue","object","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","isObject","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","get","props","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","test","arrayBuffer","getMapData","getValue","pop","hash","string","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","ctorString","isLength","baseKeys","cloneDeep","applyContextDelta","delta","reset","deepClone","commands","command","deletePath","setValueToPath","added","updated","removed","mergeObjectsProperties","obj","what","withWhat","right","deepEqual","y","p","pathArr","isSubset","superObj","subObj","every","ele","GW3Bridge$1","_logger","_connection","_trackAllContexts","_reAnnounceKnownContexts","_gw3Session","_contextNameToData","_gw3Subscriptions","_nextCallbackSubscriptionNumber","_creationPromises","_contextNameToId","_contextIdToName","_protocolVersion","_contextsTempCache","_contextsSubscriptionsCache","_systemContextsSubKey","contextsDomainInfo","d","uri","setPathSupported","trackAllContexts","reAnnounceKnownContexts","resetState","reInitiateState","subscribeToContextCreatedMessages","subscribeToContextUpdatedMessages","subscribeToContextDestroyedMessages","handleContextCreatedMessage","handleContextUpdatedMessage","handleContextDestroyedMessage","dispose","contextName","createContext","lifetime","createContextMsg","context_id","contextData","currentContext","calculatedDelta","calculateContextDeltaV2","calculateContextDeltaV1","gwResponse","handleUpdated","updaterId","setPath","setPaths","pathValues","pathValue","subscribe","_d","_r","un","subscriptionKey","thisCallbackSubscriptionNumber","subscription","subKey","hadCallbacks","clone","sendSubscribe","sendUnsubscribe","destroy","_","extraData","oldContext","invokeUpdateCallbacks","createdMessageTypes","createdMessageType","contextCreatedMsg","activity_id","updatedMessageTypes","updatedMessageType","contextUpdatedMsg","justSeen","context_snapshot","updater_id","updateCallbackIndex","updateCallback","destroyedMessageTypes","destroyedMessageType","destroyedMsg","to","cacheSoFar","ctxName","flushQueue","lastKnownData","ContextsModule","initTime","initStartTime","initEndTime","_bridge","GW3Bridge","checkName","checkData","checkPath","paths","promisify","successCallback","errorCallback","rejectAfter","ms","clearTimeoutIfThere","InvokeStatus","Client","configuration","callProtocolSubscribe","targetServers","stream","successProxy","errorProxy","methodResponseTimeout","waitTimeoutMs","methodDef","method_response_timeout","wait_for_method_timeout","delayTillNow","currentServers","getServerMethodsByFilterAndTarget","retry","streamInfo","servers","methodFilter","filterCopy","getServers","serverMethodMap","server","getMethods","methodsForInstance","getMethodsForInstance","methodAdded","onMethodAdded","methodRemoved","onMethodRemoved","serverAdded","onServerAdded","serverRemoved","onServerRemoved","serverMethodAdded","onServerMethodAdded","serverMethodRemoved","onServerMethodRemoved","argumentObj","additionalOptions","methodDefinition","methodResponseTimeoutMs","serversMethodMap","tryToAwaitForMethods","errorObj","supportsStreaming","objectTypes","flags","metadata","called_with","executed_by","returned","additionalOptionsCopy","invokePromises","serversMethodPair","invId","invokePromise","race","invocationId","invocationMessages","getInvocationResultObj","getInvokePromise","invocationResults","calledWith","all_return_values","invokeMessage","Success","allValues","currentValue","all_errors","allErrors","currError","invResult","interval","filterByTarget","targetArray","matches","myMatches","serverMethodPair","instanceMatch","localMachine","isLocal","instanceFilter","instanceDefinition","containsProps","methodMatch","repoMethod","prop","isMatch","filterValue","repoMethodValue","filterValueEl","matchingServers","resultMethodsObject","methodKey","identifier","prev","matchingMethods","ServerSubscription","branchKey","closeSingleSubscription","pushDataToSingle","Request","requestContext","accept","acceptRequestOnBranch","acceptOnBranch","branch","rejectRequest","ServerStreaming$1","onSubRequest","rc","rm","handleSubRequest","onSubAdded","handleSubAdded","onSubRemoved","handleSubRemoved","streamCallbacks","subscriptionRequestHandler","subscriptionAddedHandler","subscriptionRemovedHandler","ServerBranch","subscriptions","getSubscriptionList","closeAllSubscriptions","pushData","ServerStream","_protocol","_repoMethod","_server","branches","bList","getBranchList","def2","accepts","displayName","returns","unregister","updateRepoMethod","Server","serverRepository","streaming","currentlyUnregistering","onInvoked","onMethodInvoked","createStream","streamDef","existingStream","streamMethodDefinition","getList","some","serverMethod","protocolState","streamUserObject","repoId","remove","register","wrappedCallbackFunction","resultCallback","userCallback","registerCore","registerAsync","wrappedCallback","resultCalled","methodResult","userCallbackAsync","forStream","unregisterWithPredicate","methodToBeRemoved","removeMethodsOrStreams","filterPredicate","methodsOrStreamsToRemove","methodsToRemove","methodUnregPromises","addAsCurrentlyUnregistering","methodName","theFunction","unregisterInProgress","methodToExecute","invocationArgs","unStrException","_value","methodInvocationResult","InstanceWrapper","wrapped","API","getStreams","refreshWrappedObject","refresh","unwrap","user","pid","floor","machine","environment","region","hideMethodSystemFlags","ClientRepository","myServer","methodsCount","wrapper","unwrappedInstance","addServer","serverId","serverEntry","removeServerById","methodId","removeServerMethod","addServerMethod","createMethodIdentifier","that","gatewayId","display_name","object_types","input_signature","result_signature","getServersByMethod","clientMethodDefinition","extractMethodsFromServers","hideServerMethodSystemFlags","unsubscribeFunc","serversWithMethodsToReplay","returnUnsubWithDelayedReplay","methodsToReplay","unsubCalled","getServerById","methodInfo","allServers","collectionToReplay","item","clientMethods","ServerRepository","nextId","TypeError","getById","SUBSCRIPTION_REQUEST","SUBSCRIPTION_ADDED","SUBSCRIPTION_REMOVED","ServerStreaming","repository","ERR_URI_SUBSCRIPTION_FAILED","nextStreamId","handleAddInterest","handleRemoveInterest","streamingMethod","subscriptionsMap","branchKeyToStreamIdMap","streamId","getStreamId","subscription_id","subscribeMsg","stream_id","sendSubscriptionFailed","br","dropSubscriptionMessage","closeMultipleSubscriptions","subscriptionsToClose","drop","allSubscriptions","onSubscriptionLifetimeEvent","method_id","eventName","handlerFunc","getNextStreamId","caller","caller_id","arguments_kv","subscriptionId","errorMessage","reason_uri","needleBranch","ServerProtocol","clientRepository","handleInvokeMessage","isStreaming","registerMsg","restrictions","invocation_id","callerId","UserSubscription","subscriptionData","requestArguments","params","trackedServers","serverInstance","onData","dataCallback","queued","dataItem","onClosed","closedCallback","onFailed","onConnected","setNewSubscription","newSub","TimedCache","timeoutIds","timeoutId","elementIdx","findIndex","ELEMENT_TTL_MS","flush","elements","STATUS_AWAITING_ACCEPT","STATUS_SUBSCRIBED","ERR_MSG_SUB_FAILED","ON_CLOSE_MSG_CLIENT_INIT","ClientStreaming","subscriptionsList","timedCache","subscriptionIdToLocalKeyMap","nextSubLocalKey","handleSubscribed","handleEventData","handleSubscriptionCancelled","subLocalKey","getNextSubscriptionLocalKey","pendingSub","registerSubscription","server_id","handleErrorSubscribing","drainSubscriptions","drainSubscriptionsCache","subsInfo","localKey","closers","closeSubscription","callOnClosedHandlers","errorResponse","callArgs","acceptingServer","isFirstResponse","trackedServersFound","isPrivateData","oob","sendingServerId","receivedStreamData","private","onDataHandlers","queuedData","expectedNewLength","closersCount","closingServerId","closingServer","ClientProtocol","handlePeerAdded","handlePeerRemoved","handleMethodsAddedMessage","handleMethodsRemovedMessage","handleResultMessage","handleInvocationError","newPeerId","new_peer_id","remoteId","meta","local","Number","serverInfo","removedPeerId","removed_id","methodIdList","gW3ProtocolFactory","libConfig","readyPromise","reconnectionPromises","existingSubscriptions","registeredMethods","handleReconnect","protocolPromise","waitForMethod","MessageBus","watchOnEvent","publish","topic","routingKey","removeEmptyValues","routing_key","target_identity","response","keysMatch","cleaned","obj1","obj2","keysObj1","allMatch","IOConnectCoreFactory","userConfig","ext","iodesktop","preloadPromise","gdPreloadPromise","glueInitTimer","internalConfig","nodeStartingContext","startingContextString","env","_GD_STARTING_CONTEXT_","getApplication","glue42electron","applicationConfig","gwConfig","gateway","instanceId","gwURL","uniqueAppName","appInstanceId","getConnection","windowAsAny","containerApplication","htmlContainer","containerName","bus","gwToken","defaultLevel","gdConsoleLevel","consoleLogLevel","getLogger","contexts","libs","customLogger","prepareConfig","_interop","_contexts","_bus","_allowTrace","registerLib","inner","done","traceMessage","setupMetrics","initTimer","metricsPublishingEnabledFunc","getMetricsPublishingEnabled","setupInterop","agmConfig","setupContexts","hasActivities","activities","setupBus","setupExternalLibs","externalLibs","createCallback","setupExternalLib","authPromise","authConfig","RegisterInstanceMethodName","typedError","registerInstanceIfNeeded","libsReadyPromises","coreVersion","glue","feedback","feedbackInfo","agm","glueVer","glueConfig","browser","timing","initTimes","duration","extOptions","enrichGlue","updatePerfData","deprecatedDecorator","fn","wrong","proper","agmAny","method_added","method_removed","server_added","server_method_aded","server_method_removed","IOConnectCore","ActivityEntity","_id","_update","_updateCore","_beforeDelete","isNumber","isString","isUndefined","isUndefinedOrNull","isNullOrWhiteSpace","str","isBoolean","ifNotUndefined","doWithIt","ActivityType","ownerWindow","helperWindows","_ownerWindow","_helperWindows","hw","covertToWindowDef","initiate","_manager","windowType","_b","WindowType","appByWindowTypeGetter","_appByWindowTypeGetter","windows","getWindows","activity","isIndependent","createWindow","EntityEvent","entitiy","entity","EntityEventContext","eventType","ActivityStatusChangeEventContext","newStatus","oldStatus","EntityEventType","StatusChange","ActivityContextChangedEventContext","ActivityContextChange","Added","Removed","Updated","Closed","ActivityWindowEvent","ActivityWindowJoinedActivity","ActivityWindowLeftActivity","ActivityState","Created","Started","Destroyed","ActivityAGM","_activity","_ensureHasAgm","AGM","util.isUndefinedOrNull","w","methodNames","methodsForWindow","currentWindowMethod","activityServers","util.isString","potentialTargets","util.isArray","firstElem","_isInstance","_isActivityWindow","win","parameters","AttachedActivityDescriptor","manager","ownerActivityId","_ownerActivityId","ownerId","windowIds","frameColor","detach","descriptor","detachActivities","nextTick","cb","nodeify","util.isFunction","resp","Activity","actType","_actType","_status","_context","_ownerId","_agm","getActivityType","owner","addWindow","addWindowToActivity","createStackedWindows","windowTypes","leaveWindowFromActivity","getWindowsByType","setContext","setActivityContext","updateContext","updateActivityContext","onStatusChange","subscribeActivityEvents","ns","os","onWindowEvent","subscribeWindowEvents","onContextChanged","subscribeActivityContextChanged","act","stopActivity","attach","attachActivities","onActivityAttached","subscribeActivitiesAttached","newActId","oldActId","onDetached","subscribeActivitiesDetached","newAct","originalActivity","_updateDescriptors","allStates","_attached","attached","setFrameColor","color","callbacksToWait","underlyingWindow","getFrameColor","LogLevel","Trace","Debug","Info","Warn","GetNamed","Get","GetTypeName","GlueLogger","_glueLogger","Level","_getMessage","ActivityWindow","windowGetter","hcWindowId","_type","_activityId","_instance","_isIndependent","_windowGetter","_hcWindowId","getBounds","getWindowBounds","getWindowType","util.isUndefined","getActivityById","isOwner","setVisible","isVisible","setWindowVisibility","activate","focus","activateWindow","setBounds","bounds","setWindowBounds","closeWindow","onActivityJoined","_subscribeForActivityWindowEvent","onActivityRemoved","ActivityStatus","getMessage","gwMmessageError","gwMessageAddActivityTypes","gwMessageActivityCreated","gwMessageActivityDestroyed","gwMessageActivityInitiated","gwMessageJoinedActivity","gwMessageActivityJoined","gwMessageActivityLeft","gwMessageOwnerChanged","gwMessageAddPeerFactories","gwMessagePeerFactoriesAdded","gwMessagePeerFactoriesRemoved","gwMessagePeerCreated","activityTypeGwMessageEntityToActivityType","nameToWindowType","windowName","owner_type","helper_types","peerFactoryGwMessageEntityToWindowType","peer_type","activityGwMessageToActivity","owner_id","activity_type","activityToActivityStatusChangeEvent","_activityChangeCallbacks","_activityTypeStatusChangeCallbacks","_activityWindowChangeCallbacks","_windowTypeStatusChangeCallbacks","_peerIdAndFactoryIdToPeerType","_peerFactoriesRegisteredByUs","_contextSubscriptions","_activityTypesInitiatedFromMe","_config","_windows","_sessionJoinedPromise","_sessionJoinedPromiseResolve","_activityJoinedPromise","_activityJoinedPromiseResolve","activityInfo","addRefreshHandler","setGWToken","addWillNavigateHandler","bridgeType","forwardActivityTypeMessagesToStatusEventHandlers","handleActivityCreatedMessage","handleActivityDestroyedMessage","forwardActivityMessagesToStatusEventHandlers","forwardActivityCreatedAndJoinedActivityToActivityWindowEventHandlers","forwardPeerFactoryMessagesToStatusEventHandlers","forwardPeerFactoryMessagesToPeerFactoryRequests","handlePeerFactoriesAdded","handlePeerFactoriesRemoved","forwardActivityWindowMessagesToEventHandlers","disposeRequestHandling","my","exit","mode","activity_types","typesToTrack","initReady","onActivityTypeStatusChange","registerActivityType","activityTypeName","toActivityPeerConfig","windowDefinition","activityType","invokeCallbacks","unregisterActivityType","onWindowTypeStatusChange","registerWindowFactory","factory","factories","unregisterWindowFactory","factory_ids","onActivityStatusChange","initiateActivity","initiateMsg","initial_context","isOverrideTypeDefinition","types_override","helpers","wd","sendCreateAndMapResultingMessagesToPromise","initMsg","fullReplace","removedKeys","announceWindow","activityWindowId","registerWindow","independent","shouldSendReady","getAgmInstance","generateWindowGetter","onActivityWindowChange","layout","width","height","cellSize","joinPeer","joinActivity","peer_name","created_id","destroy_peer_id","getAnnouncementInfo","announcementInfo","activityWindowType","activityWindowIndependent","activityWindowName","search","URLSearchParams","searchParams","maybeName","target_id","leaveActivity","getActivityTypes","getWindowTypes","getActivities","getActivityWindows","windowDefinitions","visible","cloneActivity","cloneOptions","into","merge","newActivityInfo","onActivitiesAttached","onActivitiesDetached","onActivityAttachedDescriptorsRefreshed","getAttachedDescriptors","getRandomRequestId","forwardAddedAndRemovedMessagesToEventHandler","addedMessageType","removedMessageType","mapper","getGetEntityEvent","isAdded","forwardMessageToEventHandler","getEntityEvent","ent","h","initiatedMessageType","initiatedMessageFilter","createdMessageFilter","cancelledMessageType","cancelledMessageFilter","createdMessageToPromiseResolution","listenForRecreates","reqId","resolveCreatedPromise","rejectCreatedPromise","createdPromise","initiatedSubscription","createdSubscription","cancelledSubscription","errorSubscription","initiatedMessageAck","dropSubscriptions","dropSubscription","msg4","recreated","msg1","msg2","msg3","toReturn","peerFactoryIdAndOwnerIdToWindowType","factoryId","peerType","subscribeToContext","unsubscribeContext","activityCreatedMessage","participants","createdMessage","peer_factory","gateway_token","joinedMessage","joinedId","joined_id","joinedType","joined_type","joinedName","joined_name","left_id","list","ActivityMy","_myAttached","_myDetached","_myAttachedTo","_myDetachedFrom","_myActivityFrameColorChanged","_myActivityJoinedCallbacks","_myActivityRemovedCallbacks","_myContextUpdateCallbacks","_m","am","_subscribeMyContextChanged","_subscribeMyWindowEvent","_subscribeActivitiesAttached","_subscribeActivitiesDetached","onWindowFrameColorChanged","_subscribeWindowFrameColorChanged","_w","announcedWindows","myWin","onActivityLeft","onActivityDetached","onAttachedToActivity","onDetachedFromActivity","onFrameColorChanged","myActivity","_notifyMyContextChanged","_notifyMyWindowEvent","callbackStore","_notifyAttached","_notifyDetached","_notifyAttachedTo","_notifyDetachedFrom","detached","oldAct","ReadyMarker","signalsToWait","_signals","_callbacks","setCallback","isSet","isError","_error","signal","getError","EntityObservableCollection","processNew","_items","_listeners","_processNew","addOne","items","internalEntity","_updateInternalCollections","_notifyListeners","getByName","getOrWait","entityAddedHandler","listener","entityAsAny","isActivityDestroy","isWindowClose","oldEntity","ActivityManager","usingHc","_announcedWindows","v","bridge","autoAnnounce","_attachedCallbacks","_detachedCallbacks","_frameColorChangesCallbacks","_windowHandlers","_activityTypes","_grabEntity","_windowTypes","_activities","_dataReadyMarker","_descriptorsMarker","_readyMarker","dataErr","errCatch","refreshDescriptors","_handleActivitiesAttached","_handleActivitiesDetached","_handleActivityDescriptorsRefreshed","_handleWindowFrameColorChanged","_subscribeForData","aw","_getInitialData","ownerWindowType","helperWindowTypes","ownerDefinition","helperDefinitions","relativeTo","relativeDirection","windowStyleAttributes","actId","subscribeActivityTypeEvents","at","factoryMethod","util.isObject","getName","predicate","util.some","windowEventHandler","unsubscribeWindowEvents","subscribeWindowTypeEvents","wt","wrappingHandler","found","windowTypeOrConfiguration","relativeToWindow","invalidKeys","filteredWindowTypeOrConfiguration","wid","relativeWindowTypes","stackedWindow","tasks","removedKey","descriptors","stateWrapped","u","subscribeActivityFrameColorChanged","ac","descriptorAsObjectFromAPI","oldActivityId","newActivityId","ActivityManagementAPI","_my","activityTypes","_getActivityTypesWrapper","_getWindowTypesWrapper","registerFactory","unregisterFactory","announce","instances","onAttached","onActivityFrameColorChanged","ActivityAPI","_mgr","aware","inActivity","getAvailableFrameColors","ActivityModule","checkIsUsingGW3Implementation","_api","logLevel","_isUsingHCImplementation","gdMajorVersion","_isUsingGW3Implementation","activityManager","disableAutoAnnounce","My","_readyPromise","isUsingHCImplementation","isUsingGW3Implementation","GetFunctionalEntitlementMethodName","CanIMethodName","OnEventMethodName","GetApplicationsMethodName","objectValues","objectClone","validate","throwErrors","INTEROP_METHOD_RESPONSE_TIMEOUT_MS","INTEROP_METHOD_WAIT_TIMEOUT_MS","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","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","onAgmReady","onInstanceAgmServerReady","acsResult","Context","Options","waitForInterop","Id","handleInstanceStarted","ActivityId","IsActivityOwner","AgmServers","onAvailable","onUnavailable","onChanged","onRemoved","InstanceImpl","_appName","startFailed","_unsubscribeInstanceStopped","_unsubscribeInstanceAgmServerReady","activityInstance","isActivityOwner","_isActivityOwner","activityInstances","activityOwnerInstance","inst","_startUpContext","_title","isActivityInstance","_isActivityInstance","_inActivity","isSingleWindowApp","_agmInstance","interopInstance","onInteropReady","onStopped","getWindow","timeoutInSeconds","onWindowAdded","updateAgmInstanceFromProps","agmInstances","idToResolve","handleInstanceStopped","getContext","startedBy","AppManagerImpl","_gdMajorVersion","_apps","_instances","getConfigurations","getMyInstance","getMyApplication","handleSnapshotAppsAdded","newApps","currentApps","handleAppRemoved","handleAppAdded","handleSnapshotInstanceStarted","newInstances","currentInstances","_getAppId","_updateAppFromProps","handleAppUpdated","handleAppReady","_getAppOrThrow","_getInstanceId","_getInstanceAppName","_updateInstanceFromProps","_getInstanceOrThrow","_matchInstance","handleInstanceAgmServerReady","handleInstanceStartFailed","handleInstanceUpdated","onInstanceStartFailed","onInstanceUpdated","onAppAdded","_getInstanceByIdAndName","EntitlementsImpl","_isMethodRegistered","handleBranchModified","handleBranchesModified","getRegion","_agmInvoke","Region","getBranches","Branches","getCurrentBranch","Branch","setRegion","ResultMessage","setCurrentBranch","currentUser","getFunctionalEntitlement","funct","AgmNames.GetFunctionalEntitlementMethodName","Entitlement","getFunctionalEntitlementBranch","canI","AgmNames.CanIMethodName","Result","canIBranch","onBranchesChanged","onBranchChanged","onShuttingDown","registerMethod","restart","transformFunction","prevent","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","T42JumpListAction","jumpListManager","_groupActionCallbacks","_registered","_executor","registerCallbackMethod","setEnabled","updateJumpList","createCategory","actions","validateActions","category","toUpdateActions","removeCategory","manageActionCallback","createActions","categoryTitle","removeActions","getActions","catgoryTitle","currentCategory","getJumpListSettings","categories","actionCallback","getActionCallback","callbackId","singleInstanceTitle","multiInstanceTitle","getJumpList","updateAction","groupCallbacksKey","categoryActionCallbacks","accCal","delete","callbackAction","cal","windowStore","waitForTimeoutInMilliseconds","_pendingWindows","_pendingWindowsStates","CallbackFactory","getIfReady","shouldMarkReadyToShow","markReadyToShow","setUrlChangedState","targetWindowState","urlChanged","setCompositionChangedState","compositionChanged","waitFor","unReady","unRemoved","cleanup","onReadyWindow","onAdded","JumpListActions","_categoryTitle","JumpListCategories","getCategories","cat","JumpList","_categories","isEnabled","windowFactory","appManagerGetter","displayAPIGetter","channelsAPIGetter","getChannels","channels","_mode","_bounds","_url","_frameColor","_focus","_neighbours","neighbours","_groupId","groupId","_isGroupHeaderVisible","isGroupHeaderVisible","_isTabHeaderVisible","isTabHeaderVisible","_isGroupHibernated","isGroupHibernated","_isGroupVisible","isGroupVisible","_isTabSelected","isTabSelected","_settings","_applicationName","_group","_isVisible","_isSticky","isSticky","_isCollapsed","isCollapsed","_windowState","_tabGroupId","tabGroupId","_tabIndex","tabIndex","_frameId","frameId","_isLocked","isLocked","_allowWorkspaceDrop","allowWorkspaceDrop","_isPinned","isPinned","_frameButtons","frameButtons","_zoomFactor","zoomFactor","_placementSettings","placementSettings","_jumpList","moveResize","utils","resultWindow","toBeVisible","onGroupChanged","onEventCore","replayArguments","getNeighboursByDirection","direction","winId","getApplicationName","_APPLICATION_NAME","_t42","getWindowInfo","hostInstance","agmInstance","b1","b2","minHeight","maxHeight","minWidth","maxWidth","isFocused","opened","group","topNeighbours","leftNeighbours","rightNeighbours","bottomNeighbours","screen","monitors","jumpList","maximize","restore","minimize","maximizeRestore","collapse","expand","toggleCollapse","setTitle","newTitle","setStyle","styleAsAny","util.isNumber","setOnTop","onTop","resetButtons","buttons","getButtons","setSizeConstraints","constraints","getSizeConstraints","navigate","newUrl","optionsOrCallback","util.isNullOrWhiteSpace","addFrameButton","buttonInfo","buttonId","imageBase64","removeFrameButton","show","hide","center","display","validateCenterArguments","cbOrOptions","snap","autoAlign","showLoader","loader","hideLoader","lock","unlock","getIcon","setIcon","base64Image","setTabTooltip","tooltip","getTabTooltip","attachTab","tab","opt","sourceWindow","attachOptions","selected","detachTab","argsForSend","hideTabHeader","setTabHeaderVisible","toBeTabHeaderVisible","showPopup","createFlydown","setModalState","isModal","setZoomFactor","zoomIn","zoomOut","showDevTools","capture","captureOptions","flash","suppliedOptions","flashOptions","shouldFlash","flashTab","setSticky","setAllowWorkspaceDrop","pin","unpin","print","printOptions","printToPDF","printToPDFOptions","place","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","dock","executeCode","getChannel","getWindowsWithChannels","channel","startDrag","option","showDialog","dialogOptions","timerDuration","showTimer","onClose","onUrlChanged","onTitleChanged","onFrameButtonAdded","onFrameButtonRemoved","onFrameButtonClicked","onCollapsed","onExpanded","onMinimized","onMaximized","onNormal","onVisibilityChanged","onContextUpdated","onLockingChanged","onBoundsChanged","onFocusChanged","onStickyChanged","onWindowAttached","onWindowDetached","onTabSelectionChanged","onTabHeaderVisibilityChanged","onClosing","onRefreshing","onZoomFactorChanged","onPlacementSettingsChanged","onNeighboursChanged","onDockingChanged","onNavigating","onChannelRestrictionsChanged","tabs","allWindows","w1","w2","MIN_SAFE_INTEGER","getAllTabs","getURL","getTitle","getDisplay","getByWindowId","resizeTo","moveTo","getParentWindow","myParentId","parentInstanceId","joinChannel","leaveChannel","Events","handleUpdate","handleWindowClose","handleWindowChangeState","finished","handleTitleChanged","finally","handleVisibilityChanged","handleUrlChanged","handleWindowSettingsChanged","handleContextUpdated","handleFrameIsLockedChanged","handleBoundsChanged","handleFocusChanged","handleFrameButtonAdded","frameButton","buttonObj","btn","handleFrameButtonRemoved","frameButtonId","button","handleFrameButtonClicked","handleFrameColorChanged","handleFrameAttached","handleFrameSelectionChanged","newWindow","prevWindow","selectedWindow","previousWindow","handleCompositionChanged","neighbors","handleAllowWorkspaceDropChanged","handleIsPinnedChanged","handleGroupHeaderVisibilityChanged","handleTabHeaderVisibilityChanged","handleGroupChanged","handleAttached","newTabGroupId","newFrameId","tabHeaderVisible","winsToBeNotified","handleWindowAttached","handleDetached","handleWindowDetached","handleZoomFactorChanged","handleIsStickyChanged","handlePlacementSettingsChanged","displayAPI","handleDockingChanged","docked","position","claimScreenArea","handleChannelRestrictionsChanged","GroupCreationArgs","getWindowsByTabGroupId","isEmpty","GroupMethodName","WndMethodName","_finished","windowAvailableOnURLChanged","unsubCallbacks","agmTarget","setConfiguration","handleEvent","finishedResolve","closed","urlLoadOptions","invocationOptions","stylePromises","wait","tabTooltip","tabToolTip","toolTip","tabTitle","allowClose","allowCollapse","allowLockUnlock","allowMaximize","allowMinimize","buttonsConfig","windowToPin","pinnedWindow","versionNum","rej","resolveImmediately","areBoundsEqual","unsubscribeBoundsChanged","resolveTimeout","targetWindow","targetWindowId","snappingEdge","sourceWindowId","eventKeys","contextWithoutUndefinedValues","swapUndefinedToNull","dataURL","toShow","showGroupPopup","reformatedOptions","showPopupCore","executeGroup","optionsCopy","horizontalOffset","verticalOffset","fullOptions","reformatFlydownOptions","zoneIds","zones","z","flydownSize","cancel","targetId","clearFlydownArea","autoArrange","displayId","handleFlydownBoundsRequested","callbackData","zoneId","flydownId","flydownWindowBounds","flydownWindowId","responses","defaultResponse","handleOnEventRequested","prevented","preventArgs","pArgs","captureGroup","groupWindowIds","filePath","enableDownloadBar","silent","fullPath","fileSize","executeCore","gdWindow","addCloseHandler","nonWindowHandlers","onGroupClosing","nonWindowHandlersCore","clearCallbacks","isGroup","assignGeneralIfUnassigned","zone","valueFromOptions","flydownBounds","targetLocation","flydownActiveArea","activeArea","areaIds","executeWithoutToken","uns","executed","executeWithToken","requested","areHeightsEqual","areWidthsEqual","areLeftsEqual","areTopsEqual","popupBounds","popupId","GDEnvironment","wndId","_windowId","_appManagerGetter","_displayAPIGetter","_channelsAPIGetter","respondToEvent","streamResolve","streamReject","withConfig","updateWindow","copyOptions","windowState","tabAttached","tabDetached","onEvent","myGroup","onCompositionChanged","onGroupHeaderVisibilityChanged","onGroupVisibilityChanged","onGroupStateChanged","onWindowGotFocus","onWindowLostFocus","onWindowsAutoArrangeChanged","windowInfo","readyResolve","extendedStreamEvent","getExtendedStreamEvent","existingWindow","mapToWindowConstructorOptions","mapToGroupCreationArgs","createWindowFromSnapshot","windowInfoCreatedEvent","createWindowFromStream","windowObjectAndEvents","theWindow","theWindowEvents","windowInfoBoundsChangedEvent","windowInfoUrlChangedEvent","windowInfoTitleChanged","windowInfoIsStickyChangedChanged","windowInfoCompositionChanged","groupHeaderVisible","windowInfoFocusChanged","focusChanged","oldTabGroupId","newWindowId","prevWindowId","windowObjAndEvents","createWindowCore","isRemote","isFrameless","isHidden","isActiveTab","jumpListOptions","streamEvent","charAt","toUpperCase","groupFactory","callbackRegistry","_windowsId","_isHibernatedFlag","groupObject","_mapToWindowObjects","winObjects","windowObject","_mapToWindowObject","isHeaderVisible","isHibernated","showHeader","hideHeader","onHeaderVisibilityChanged","onWindowRemoved","internal","removeWindow","handleGroupVisibilityChanged","visibile","handleGroupHibernateChanged","isHibernatedFlag","groupAPI","groupInternal","groupsFactory","_groups","heardForWindowsCounter","findGroupByWindow","groupObj","waitForGroup","groupWrapper","onGroupAdded","createdGroupWrapper","createOrGet","deleteIfEmpty","findGroupWrapperByWindow","validateGroupIdArg","currentGroup","fromGroup","toGroup","moveWindow","groupEvents","groups","groupIds","idOrGroup","getMyGroup","onGroupRemoved","hibernate","resume","onHibernated","onResumed","groupsAPI","groupsEvents","onWindowMoved","WindowsFactory","channelsGetter","isReady","GD","webGroupsManager","envDetector","myWindow","windowAdded","windowRemoved","optionsAsAny","windowsForListing","findById","onTabAttached","unsubFunc","unsubscribed","onTabDetached","onArrangementChanged","store","layouts","removeWhere","condition","removeAll","where","first","ContextProvider","activitiesGetter","registerRequestMethods","onSaveRequested","activityIsOwner","usersCbs","requestResult","autoSaveWindowContext","windowContext","activityContext","transformACSLayout","something","convertedValue","LayoutImpl","components","defineProperty","LayoutType","SwimlaneItemType","swTheme","swConfiguration","__createBinding","o","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__exportStar","require$$0","require$$1","require$$2","require$$3","require$$4","LayoutsCommandMethod","LayoutsAPIImpl","isRegisterMethodForLayoutModified","activityGetter","setDefaultGlobal","invokeMethodCore","clearDefaultGlobal","getDefaultGlobal","isSlimMode","l","gotSnapshot","save","verifyNotSlimMode","layoutObject","ignoreInstances","setAsCurrent","invokeMethodAndTrack","activityIdToJoin","closeRunningInstance","closeRunningInstances","closeMe","restoreOptions","activityToJoin","ignoreActivityWindowTypes","reuseExistingWindows","reuseWindows","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","DisplayManager","callGD","DisplayCommand","GetAll","decorateDisplay","getPrimary","isPrimary","Capture","captureAll","CaptureAll","getMousePosition","GetMousePosition","original","decoratedDisplay","workAreaAsAny","GetByWindowId","onDisplayChanged","SingleChannelID","isJoinedToAnyChannel","isOnChannel","equals","MultiChannelId","ChannelDelimiter","newChannel","ch","myInstanceId","T42_ANNOUNCE_METHOD_NAME","interopLib","loggerAPI","joinNoSelectorSwitch","leaveNoSelectorSwitch","isSupported","channelsToJoin","channelsToLeave","swId","handleRestrictionsChanged","sendLeaveChannel","sendSwitchChannelUI","getRestrictionsByWindow","addOrRemoveChannel","label","getChannelInitInfo","operationMode","validateMode","initialChannel","CONTEXT_PREFIX","LATEST_FDC3_TYPE","BaseSharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","clearContextData","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","rest","fdc3Context","fdc3","MultiSharedContextSubscriber","currentlySubscribedChannels","unsubscribeMap","switchChannel","newChannels","subscribeToChannel","unsubscribeFromChannel","usub","SharedContextSubscriber","ChannelsImpl","getWindowsAPI","getAppManagerAPI","subsKey","changedKey","channelsChangedKey","isInitialJoin","pendingReplays","pendingRestrictionCallbacks","getMyChannels","currentChannelID","shared","initial","subscribeForChannelRestrictionsChange","getID","contextType","getWrappedSubscribeCallbackWithFdc3Type","getWrappedSubscribeCallback","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","channelsToPublish","restrictedChannels","cn","restrictedChannelsErr","validatePathArgs","channelNames","validateFdc3Options","getContextWithFdc3Type","getMy","validateWindowIdArg","joinCore","leaveWhenMulti","leaveWhenSingle","leaveCore","myChannels","onChannelsChanged","changed","getWindowsOnChannel","validateChannelArg","validateWindowsWithChannelsFilter","getChannelsInfo","windowsAPI","er","restrict","restriction","validateRestrictionConfig","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","clearChannelData","changeSelector","newId","verifyChannelExists","raiseChannelsChangedEvents","doesChannelExist","channelExistsPromise","intervalId","channelID","leaveCoreMulti","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","parsedType","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","didReplay","replayed","callbackWithTypesChecks","searchedType","parseDataAndInvokeSubscribeCallback","latestFdc3TypeEncoded","fdc3Data","encodedType","latestTypePropName","latestFDC3Type","channelId","isRestrictions","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","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","NotificationFilterMethodName","methodsRegistered","NOTIFICATIONS_CONFIGURE_METHOD_NAME","methodNameRoot","notifications","subscribedForNotifications","subscribedCounterStream","subscriptionsCountForNotifications","subscriptionsCountForCounter","_panel","onStreamEventCore","_panelAPI","subscribeInternalEvents","maxActions","panel","raise","notification","createNotification","g42notification","invocationResult","handleNotificationErrorEvent","setFilter","getFilter","enable","enableToasts","toastExpiry","sourceFilter","allowed","blocked","toasts","_e","_f","stackBy","placement","_g","_h","closeNotificationOnClick","statesVersion2","attribute","stringValue","onRaised","onStateChanged","onConfigurationChanged","closeStreamSubscriptionIfNoNeeded","onCounterChanged","subscribeForCounterStream","closeStreamCounterSubscriptionIfNoNeeded","onDataChanged","clearAll","clearOld","clearMany","validateNotificationsArr","click","snooze","snoozeMany","validateState","setStates","importNotifications","notificationsToImport","notificationOptions","notificationSettings","imported","bunchOfPromises","handleNotificationEvent","severity","glueRoutingDetailMethodName","sourceId","publishExtraEvents","clickInterop","handleActions","handleOptions","attributes","dataAsString","panelExpiry","validActions","g42notificationId","g42action","g42interopMethod","g42interopTarget","g42interopArguments","glueAction","displayPath","validStates","sendDeltaOnly","subscriptionForNotifications","handleData","subscriptionForCounter","count","handleOnClosed","handleOnShow","handleItemsData","deltas","handleDeltas","allApplications","dataAttribute","getNotification","gnsNotificationArgs","getGnsNotificationArgs","notificationId","handleNotificationEventCore","handleNotificationActionEvent","notificationActionPayload","handleNotificationClickEvent","onaction","onclick","sourceNotificationId","getBackwardGnsNotificationArgs","ThemesImpl","isSubscribed","getMethodName","getCurrent","select","theme","setMethodName","sharedContextName","getThemesMethodName","setThemesMethodName","connectBrowserAppProps","fdc3v2AppProps","ok","map2","f","ar","mapError","__assign","isEqual","isJsonArray","json","isJsonObject","expectedGot","expected","got","typeString","printPath","prependAt","newAt","__rest","Decoder","decode","_this","run","kind","runPromise","runWithException","withException","andThen","succeed","number","boolean","constant","decoders","decoder","err$$1","decodeValue_1","tuple","nth","union","ad","bd","oneOf","intersection","ds","anyJson","unknownJson","dict","optional","errors","errorsList","withDefault","defaultValue","valueAt","jsonAtPath","fixedValue","lazy","mkDecoder","nonEmptyStringDecoder","nonNegativeNumberDecoder","intentDefinitionDecoder","customConfig","v2TypeDecoder","v2DetailsDecoder","v2IconDecoder","src","v2ScreenshotDecoder","v2ListensForIntentDecoder","resultType","v2IntentsDecoder","listensFor","raises","v2UserChannelDecoder","broadcasts","v2AppChannelDecoder","v2InteropDecoder","intents","userChannels","appChannels","glue42ApplicationDetailsDecoder","glue42HostManifestsBrowserDecoder","customProperties","v1DefinitionDecoder","appId","manifest","manifestType","contactEmail","supportEmail","publisher","images","icons","v2LocalizedDefinitionDecoder","screenshots","moreInfo","hostManifests","v2DefinitionDecoder","localizedVersions","allDefinitionsDecoder","parseDecoderErrorToStringMessage","FDC3Service","fdc3ToDesktopDefinitionType","web","native","citrix","onlineNative","toApi","isFdc3Definition","parseToBrowserBaseAppData","parseToDesktopAppConfig","decodeRes","isFdc3","getUserPropertiesFromDefinition","createOptions","getUrl","baseApplicationData","getIntentsFromV2AppDefinition","getIconFromDefinition","definitionVersion","ioConnectDefinition","ioConnect","ioDefinitionDecodeRes","mergeBaseAppDataWithGlueManifest","fdc3v1Definition","fdc3v2Definition","desktopDefinition","mergeDesktopConfigWithGlueManifest","fromEntries","parsedManifest","fdc3Intents","fdc3Intent","intentName","intentData","iconDef","baseAppData","hostManifestDefinition","baseApplicationDefinition","appConfig","decoders$1","common","INTENTS_ERRORS","ioc","_fdc3","_decoders","_errors","GLUE42_FDC3_INTENTS_METHOD_PREFIX","INTENT_HANDLER_DEFAULT_PROPS","ERRORS","PromiseWrap","promiseActive","validateResolverResponse","responseObj","intent","isValid","userSettings","preserveChoice","compulsoryKeysExist","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","addedHandlerInfoPerApp","checkIfIntentsResolverIsEnabled","intentFilter","ctToLower","contextTypes","ct","resultTypeToLower","intentRequest","removeRememberedHandler","resolverInstance","resultFromRememberedHandler","checkHandleRaiseWithRememberedHandler","coreRaiseIntentFn","coreRaiseIntent","TIMEOUT_HIT","handleRaiseOnError","withIntentsInfo","appsWithIntents","intentDef","applicationTitle","applicationDescription","applicationIcon","serverWindowIds","serverWindowId","T42WndGetInfo","windowsInfos","windowsIdToTitle","constructIntentHandler","addIntentListener","registerPromise","intentFlag","buildInteropMethodName","unsubscribeIntent","filterHandlers","handlerFilter","openResolver","applicationNames","ctx","validateHandlerFilter","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","instanceTitle","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","onHandlerAdded","unAppAdded","appDef","constructIntentHandlerFromApp","unServerMethodAdded","intentsInfo","onHandlerRemoved","unAppRemoved","addedHandlerInfo","filteredIntentsWithHandlers","INTENT_NOT_FOUND","checkIfResolverShouldBeOpenedForRaise","raiseIntent","resolverHandler","raiseIntentToTargetHandler","registeredIntent","firstFoundAppHandler","findHandlerByFilter","firstFoundInstanceHandler","instanceIdPromise","invokeStartApp","reasonMsg","TARGET_INSTANCE_UNAVAILABLE","invokeOptions","INTENT_HANDLER_REJECTION","intentsResolverAppName","responseMethodName","registerIntentResolverMethod","startContext","buildStartContext","startOptions","buildStartOptions","subscribeOnInstanceStopped","createResponsePromise","handleInstanceResponse","initialCaller","windowsInfo","subMessage","stopResolverInstance","saveUserChoice","resolverResponseHandler","validResponse","cleanUpIntentResolverPromise","myAppName","myAppTitle","baseStartContext","resolverApi","getResolverStartupTopBound","minWorkareaHeight","startedByIntentAPI","intentPromise","gdWin","enableIntentsResolverUI","intentsResolverResponseTimeout","checkOpen","checkIfIntentsResolverShouldBeOpened","checkIfIntentHasMoreThanOneHandler","removeSingletons","searchedAppName","isSingleton","currentHandlers","clearUnregistrationPromise","promiseToRemove","unregisterPromise","validIntentsWithInfo","currentHandler","intentWithInfo","prefs","intentPrefs","updatedPrefs","checkForRememberedHandler","prefsForIntent","rememberedHandler","prevPrefs","prevIntentsPrefs","prefsToUpdate","appWithIntents","appIntent","appDefIntent","Prefs","interopMethodRegistered","T42GetPrefsMethodName","verifyDataObject","T42SetPrefsMethodName","setFor","verifyApp","updateFor","clearFor","verifyCallback","unsubscribeFn","registerInteropIfNeeded","T42UpdatePrefsMethodName","Cookies","cookies","cookie","verifyCookieObject","secure","httpOnly","expirationDate","EventsDispatcher","glue42EventName","notifyStarted","handleNotifyStarted","requestGlue","handleRequestGlue","wireCustomEventListener","announceStarted","detail","glue42","glue42Event","foundHandler","CustomEvent","delayForever","Interception","InterceptorMethodName","InterceptorHandlerMethodName","interceptions","validateInterceptions","registerMethodIfNotRegistered","interception","handleInterception","operationArgs","phase","createProxyObject","apiToIntercept","OperationsPerDomain","Proxy","propertyKey","receiver","property","Reflect","shouldIntercept","isAwaitable","interceptMethod","originalMethod","beforeInterceptionResult","operationResult","afterInterceptionResult","whenRegisteredPromise","raisedInterception","interceptor","validateTypeString","isValidType","callInfo","initialized","addCall","g","firstRun","factoryCore","_displays","_channels","_prefs","_interceptors","_browserEventsDispatcher","getLibLogger","newLogger","loggerConfig","core","windowsLogger","debugLog","activityLogger","layoutsConfig","lay","acsStream","LayoutsFactory","channelsReadyPromise","sharedContexts","hotkeysAPI","displaysLogger","intentsAPI","proxyIntentsAPI","notificationsAPI","themesAPI","themes","currentLog","glueFactoryLog","glueApi","CoreFactory","libraries","calls","whatToExpose","CreateGlue","shouldSetToWindow","autoInjected","IODesktop","Glue","IOBrowser","GlueCore"],"mappings":"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","x_google_ignoreList":[0,22,26,72]}