@interopio/desktop 6.15.0 → 6.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +7 -0
- package/desktop.d.ts +745 -41
- package/dist/desktop.browser.js +2965 -1020
- package/dist/desktop.browser.js.map +1 -1
- package/dist/desktop.browser.min.js +1 -1
- package/dist/desktop.browser.min.js.map +1 -1
- package/dist/desktop.es.js +2965 -1020
- package/dist/desktop.es.js.map +1 -1
- package/dist/desktop.umd.js +2965 -1020
- package/dist/desktop.umd.js.map +1 -1
- package/dist/desktop.umd.min.js +1 -1
- package/dist/desktop.umd.min.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop.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.sendFireAndForget(defineRootMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for root state metric: ${JSON.stringify(err)}`);\n });\n if (reconnect) {\n replayRepo(repo);\n }\n });\n session.join({\n system: config.system,\n service: config.service,\n instance: config.instance\n });\n };\n const replayRepo = (repo) => {\n replaySystem(repo.root);\n };\n const replaySystem = (system) => {\n createSystem(system);\n system.metrics.forEach((m) => {\n createMetric(m);\n });\n system.subSystems.forEach((ss) => {\n replaySystem(ss);\n });\n };\n const createSystem = async (system) => {\n if (system.parent === undefined) {\n return;\n }\n await joinPromise;\n const metric = {\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const createMetricsMsg = {\n type: \"define\",\n metrics: [metric],\n };\n session.sendFireAndForget(createMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for system state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n };\n const updateSystem = async (system, state) => {\n await joinPromise;\n const shadowedUpdateMetric = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n value: {\n Description: state.description,\n Value: state.state,\n },\n timestamp: Date.now(),\n }],\n };\n session.sendFireAndForget(shadowedUpdateMetric)\n .catch((err) => {\n config.logger.warn(`Failed to send update for system state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n const stateObj = composeMsgForRootStateMetric(system);\n const rootMetric = {\n type: \"publish\",\n peer_id: connection.peerId,\n values: [{\n name: \"/State\",\n value: {\n Description: stateObj.description,\n Value: stateObj.value,\n },\n timestamp: Date.now(),\n }],\n };\n session.sendFireAndForget(rootMetric)\n .catch((err) => {\n config.logger.warn(`Failed to send update for root state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n };\n const createMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n const m = serializeMetric(metricClone);\n const createMetricsMsg = {\n type: \"define\",\n metrics: [m],\n };\n session.sendFireAndForget(createMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for metric ${metric.name}: ${JSON.stringify(err)}`);\n });\n if (typeof metricClone.value !== \"undefined\") {\n updateMetricCore(metricClone);\n }\n };\n const updateMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n updateMetricCore(metricClone);\n };\n const updateMetricCore = (metric) => {\n if (canUpdate()) {\n const value = getMetricValueByType(metric);\n const publishMetricsMsg = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name),\n value,\n timestamp: Date.now(),\n }],\n };\n return session.sendFireAndForget(publishMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to publish metric ${metric.name}: ${JSON.stringify(err)}`);\n });\n }\n return Promise.resolve();\n };\n const cloneMetric = (metric) => {\n const metricClone = { ...metric };\n if (typeof metric.value === \"object\" && metric.value !== null) {\n metricClone.value = { ...metric.value };\n }\n return metricClone;\n };\n const canUpdate = () => {\n try {\n const func = config.canUpdateMetric ?? (() => true);\n return func();\n }\n catch {\n return true;\n }\n };\n return {\n init,\n createSystem,\n updateSystem,\n createMetric,\n updateMetric,\n };\n}\n\nvar Helpers = {\n validate: (definition, parent, transport) => {\n if (definition === null || typeof definition !== \"object\") {\n throw new Error(\"Missing definition\");\n }\n if (parent === null || typeof parent !== \"object\") {\n throw new Error(\"Missing parent\");\n }\n if (transport === null || typeof transport !== \"object\") {\n throw new Error(\"Missing transport\");\n }\n },\n};\n\nclass BaseMetric {\n definition;\n system;\n transport;\n value;\n type;\n path = [];\n name;\n description;\n get repo() {\n return this.system?.repo;\n }\n get id() { return `${this.system.path}/${name}`; }\n constructor(definition, system, transport, value, type) {\n this.definition = definition;\n this.system = system;\n this.transport = transport;\n this.value = value;\n this.type = type;\n Helpers.validate(definition, system, transport);\n this.path = system.path.slice(0);\n this.path.push(system.name);\n this.name = definition.name;\n this.description = definition.description;\n transport.createMetric(this);\n }\n update(newValue) {\n this.value = newValue;\n return this.transport.updateMetric(this);\n }\n}\n\nclass NumberMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.NUMBER);\n }\n incrementBy(num) {\n this.update(this.value + num);\n }\n increment() {\n this.incrementBy(1);\n }\n decrement() {\n this.incrementBy(-1);\n }\n decrementBy(num) {\n this.incrementBy(num * -1);\n }\n}\n\nclass ObjectMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.OBJECT);\n }\n update(newValue) {\n this.mergeValues(newValue);\n return this.transport.updateMetric(this);\n }\n mergeValues(values) {\n return Object.keys(this.value).forEach((k) => {\n if (typeof values[k] !== \"undefined\") {\n this.value[k] = values[k];\n }\n });\n }\n}\n\nclass StringMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.STRING);\n }\n}\n\nclass TimestampMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.TIMESTAMP);\n }\n now() {\n this.update(new Date());\n }\n}\n\nfunction system(name, repo, protocol, parent, description) {\n if (!repo) {\n throw new Error(\"Repository is required\");\n }\n if (!protocol) {\n throw new Error(\"Transport is required\");\n }\n const _transport = protocol;\n const _name = name;\n const _description = description || \"\";\n const _repo = repo;\n const _parent = parent;\n const _path = _buildPath(parent);\n let _state = {};\n const id = _arrayToString(_path, \"/\") + name;\n const root = repo.root;\n const _subSystems = [];\n const _metrics = [];\n function subSystem(nameSystem, descriptionSystem) {\n if (!nameSystem || nameSystem.length === 0) {\n throw new Error(\"name is required\");\n }\n const match = _subSystems.filter((s) => s.name === nameSystem);\n if (match.length > 0) {\n return match[0];\n }\n const _system = system(nameSystem, _repo, _transport, me, descriptionSystem);\n _subSystems.push(_system);\n return _system;\n }\n function setState(state, stateDescription) {\n _state = { state, description: stateDescription };\n _transport.updateSystem(me, _state);\n }\n function stringMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.STRING, value, (metricDef) => new StringMetric(metricDef, me, _transport, value));\n }\n function numberMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.NUMBER, value, (metricDef) => new NumberMetric(metricDef, me, _transport, value));\n }\n function objectMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.OBJECT, value, (metricDef) => new ObjectMetric(metricDef, me, _transport, value));\n }\n function timestampMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.TIMESTAMP, value, (metricDef) => new TimestampMetric(metricDef, me, _transport, value));\n }\n function _getOrCreateMetric(metricObject, expectedType, value, createMetric) {\n let metricDef = { name: \"\" };\n if (typeof metricObject === \"string\") {\n metricDef = { name: metricObject };\n }\n else {\n metricDef = metricObject;\n }\n const matching = _metrics.filter((shadowedMetric) => shadowedMetric.name === metricDef.name);\n if (matching.length > 0) {\n const existing = matching[0];\n if (existing.type !== expectedType) {\n throw new Error(`A metric named ${metricDef.name} is already defined with different type.`);\n }\n if (typeof value !== \"undefined\") {\n existing\n .update(value)\n .catch(() => { });\n }\n return existing;\n }\n const metric = createMetric(metricDef);\n _metrics.push(metric);\n return metric;\n }\n function _buildPath(shadowedSystem) {\n if (!shadowedSystem || !shadowedSystem.parent) {\n return [];\n }\n const path = _buildPath(shadowedSystem.parent);\n path.push(shadowedSystem.name);\n return path;\n }\n function _arrayToString(path, separator) {\n return ((path && path.length > 0) ? path.join(separator) : \"\");\n }\n function getAggregateState() {\n const aggState = [];\n if (Object.keys(_state).length > 0) {\n aggState.push({\n name: _name,\n path: _path,\n state: _state.state,\n description: _state.description,\n });\n }\n _subSystems.forEach((shadowedSubSystem) => {\n const result = shadowedSubSystem.getAggregateState();\n if (result.length > 0) {\n aggState.push(...result);\n }\n });\n return aggState;\n }\n const me = {\n get name() {\n return _name;\n },\n get description() {\n return _description;\n },\n get repo() {\n return _repo;\n },\n get parent() {\n return _parent;\n },\n path: _path,\n id,\n root,\n get subSystems() {\n return _subSystems;\n },\n get metrics() {\n return _metrics;\n },\n subSystem,\n getState: () => {\n return _state;\n },\n setState,\n stringMetric,\n timestampMetric,\n objectMetric,\n numberMetric,\n getAggregateState,\n };\n _transport.createSystem(me);\n return me;\n}\n\nclass Repository {\n root;\n constructor(options, protocol) {\n protocol.init(this);\n this.root = system(\"\", this, protocol);\n this.addSystemMetrics(this.root, options.clickStream || options.clickStream === undefined);\n }\n addSystemMetrics(rootSystem, useClickStream) {\n if (typeof navigator !== \"undefined\") {\n rootSystem.stringMetric(\"UserAgent\", navigator.userAgent);\n }\n if (useClickStream && typeof document !== \"undefined\") {\n const clickStream = rootSystem.subSystem(\"ClickStream\");\n const documentClickHandler = (e) => {\n if (!e.target) {\n return;\n }\n const target = e.target;\n const className = target ? target.getAttribute(\"class\") ?? \"\" : \"\";\n clickStream.objectMetric(\"LastBrowserEvent\", {\n type: \"click\",\n timestamp: new Date(),\n target: {\n className,\n id: target.id,\n type: \"<\" + target.tagName.toLowerCase() + \">\",\n href: target.href || \"\",\n },\n });\n };\n clickStream.objectMetric(\"Page\", {\n title: document.title,\n page: window.location.href,\n });\n if (document.addEventListener) {\n document.addEventListener(\"click\", documentClickHandler);\n }\n else {\n document.attachEvent(\"onclick\", documentClickHandler);\n }\n }\n rootSystem.stringMetric(\"StartTime\", (new Date()).toString());\n const urlMetric = rootSystem.stringMetric(\"StartURL\", \"\");\n const appNameMetric = rootSystem.stringMetric(\"AppName\", \"\");\n if (typeof window !== \"undefined\") {\n if (typeof window.location !== \"undefined\") {\n const startUrl = window.location.href;\n urlMetric.update(startUrl);\n }\n if (typeof window.glue42gd !== \"undefined\") {\n appNameMetric.update(window.glue42gd.appName);\n }\n }\n }\n}\n\nclass NullProtocol {\n init(repo) {\n }\n createSystem(system) {\n return Promise.resolve();\n }\n updateSystem(metric, state) {\n return Promise.resolve();\n }\n createMetric(metric) {\n return Promise.resolve();\n }\n updateMetric(metric) {\n return Promise.resolve();\n }\n}\n\nclass PerfTracker {\n api;\n lastCount = 0;\n initialPublishTimeout = 10 * 1000;\n publishInterval = 60 * 1000;\n system;\n constructor(api, initialPublishTimeout, publishInterval) {\n this.api = api;\n this.initialPublishTimeout = initialPublishTimeout ?? this.initialPublishTimeout;\n this.publishInterval = publishInterval ?? this.publishInterval;\n this.scheduleCollection();\n this.system = this.api.subSystem(\"performance\", \"Performance data published by the web application\");\n }\n scheduleCollection() {\n setTimeout(() => {\n this.collect();\n setInterval(() => {\n this.collect();\n }, this.publishInterval);\n }, this.initialPublishTimeout);\n }\n collect() {\n try {\n this.collectMemory();\n this.collectEntries();\n }\n catch {\n }\n }\n collectMemory() {\n const memory = window.performance.memory;\n this.system.stringMetric(\"memory\", JSON.stringify({\n totalJSHeapSize: memory.totalJSHeapSize,\n usedJSHeapSize: memory.usedJSHeapSize\n }));\n }\n collectEntries() {\n const allEntries = window.performance.getEntries();\n if (allEntries.length <= this.lastCount) {\n return;\n }\n this.lastCount = allEntries.length;\n const jsonfiedEntries = allEntries.map((i) => i.toJSON());\n this.system.stringMetric(\"entries\", JSON.stringify(jsonfiedEntries));\n }\n}\n\nvar metrics = (options) => {\n let protocol;\n if (!options.connection || typeof options.connection !== \"object\") {\n protocol = new NullProtocol();\n }\n else {\n protocol = gw3(options.connection, options);\n }\n const repo = new Repository(options, protocol);\n let rootSystem = repo.root;\n if (!options.disableAutoAppSystem) {\n rootSystem = rootSystem.subSystem(\"App\");\n }\n const api = addFAVSupport(rootSystem);\n initPerf(api, options.pagePerformanceMetrics);\n return api;\n};\nfunction initPerf(api, config) {\n if (typeof window === \"undefined\") {\n return;\n }\n const perfConfig = window?.glue42gd?.metrics?.pagePerformanceMetrics;\n if (perfConfig) {\n config = perfConfig;\n }\n if (config?.enabled) {\n new PerfTracker(api, config.initialPublishTimeout, config.publishInterval);\n }\n}\nfunction addFAVSupport(system) {\n const reportingSystem = system.subSystem(\"reporting\");\n const def = {\n name: \"features\"\n };\n let featureMetric;\n const featureMetricFunc = (name, action, payload) => {\n if (typeof name === \"undefined\" || name === \"\") {\n throw new Error(\"name is mandatory\");\n }\n else if (typeof action === \"undefined\" || action === \"\") {\n throw new Error(\"action is mandatory\");\n }\n else if (typeof payload === \"undefined\" || payload === \"\") {\n throw new Error(\"payload is mandatory\");\n }\n if (!featureMetric) {\n featureMetric = reportingSystem.objectMetric(def, { name, action, payload });\n }\n else {\n featureMetric.update({\n name,\n action,\n payload\n });\n }\n };\n system.featureMetric = featureMetricFunc;\n return system;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\ncreateRegistry.default = createRegistry;\nvar lib = createRegistry;\n\n\nvar CallbackRegistryFactory = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass InProcTransport {\n gw;\n registry = CallbackRegistryFactory();\n client;\n constructor(settings, logger) {\n this.gw = settings.facade;\n this.gw.connect((_client, message) => {\n this.messageHandler(message);\n }).then((client) => {\n this.client = client;\n });\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n if (this.client) {\n this.client.send(msg);\n return Promise.resolve(undefined);\n }\n else {\n return Promise.reject(`not connected`);\n }\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"in-memory\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass SharedWorkerTransport {\n logger;\n worker;\n registry = CallbackRegistryFactory();\n constructor(workerFile, logger) {\n this.logger = logger;\n this.worker = new SharedWorker(workerFile);\n this.worker.port.onmessage = (e) => {\n this.messageHandler(e.data);\n };\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n this.worker.port.postMessage(msg);\n return Promise.resolve();\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"shared-worker\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass Utils {\n static isNode() {\n if (typeof Utils._isNode !== \"undefined\") {\n return Utils._isNode;\n }\n if (typeof window !== \"undefined\") {\n Utils._isNode = false;\n return false;\n }\n try {\n Utils._isNode = Object.prototype.toString.call(global.process) === \"[object process]\";\n }\n catch (e) {\n Utils._isNode = false;\n }\n return Utils._isNode;\n }\n static _isNode;\n}\n\nclass PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n resolve;\n reject;\n promise;\n rejected = false;\n resolved = false;\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\n\nconst timers = {};\nfunction getAllTimers() {\n return timers;\n}\nfunction timer (timerName) {\n const existing = timers[timerName];\n if (existing) {\n return existing;\n }\n const marks = [];\n function now() {\n return new Date().getTime();\n }\n const startTime = now();\n mark(\"start\", startTime);\n let endTime;\n let period;\n function stop() {\n endTime = now();\n mark(\"end\", endTime);\n period = endTime - startTime;\n return period;\n }\n function mark(name, time) {\n const currentTime = time ?? now();\n let diff = 0;\n if (marks.length > 0) {\n diff = currentTime - marks[marks.length - 1].time;\n }\n marks.push({ name, time: currentTime, diff });\n }\n const timerObj = {\n get startTime() {\n return startTime;\n },\n get endTime() {\n return endTime;\n },\n get period() {\n return period;\n },\n stop,\n mark,\n marks\n };\n timers[timerName] = timerObj;\n return timerObj;\n}\n\nconst WebSocketConstructor = Utils.isNode() ? require(\"ws\") : window.WebSocket;\nclass WS {\n ws;\n logger;\n settings;\n startupTimer = timer(\"connection\");\n _running = true;\n _registry = CallbackRegistryFactory();\n wsRequests = [];\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n if (!this.settings.ws) {\n throw new Error(\"ws is missing\");\n }\n }\n onMessage(callback) {\n return this._registry.add(\"onMessage\", callback);\n }\n send(msg, options) {\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(() => {\n try {\n this.ws?.send(msg);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n });\n }\n open() {\n this.logger.info(\"opening ws...\");\n this._running = true;\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(resolve, reject);\n });\n }\n close() {\n this._running = false;\n if (this.ws) {\n this.ws.close();\n }\n return Promise.resolve();\n }\n onConnectedChanged(callback) {\n return this._registry.add(\"onConnectedChanged\", callback);\n }\n name() {\n return this.settings.ws;\n }\n reconnect() {\n this.ws?.close();\n const pw = new PromiseWrapper();\n this.waitForSocketConnection(() => {\n pw.resolve();\n });\n return pw.promise;\n }\n waitForSocketConnection(callback, failed) {\n failed = failed ?? (() => { });\n if (!this._running) {\n failed(`wait for socket on ${this.settings.ws} failed - socket closed by user`);\n return;\n }\n if (this.ws?.readyState === 1) {\n callback();\n return;\n }\n this.wsRequests.push({ callback, failed });\n if (this.wsRequests.length > 1) {\n return;\n }\n this.openSocket();\n }\n async openSocket(retryInterval, retriesLeft) {\n this.logger.info(`opening ws to ${this.settings.ws}, retryInterval: ${retryInterval}, retriesLeft: ${retriesLeft}...`);\n this.startupTimer.mark(\"opening-socket\");\n if (retryInterval === undefined) {\n retryInterval = this.settings.reconnectInterval;\n }\n if (typeof retriesLeft === \"undefined\") {\n retriesLeft = this.settings.reconnectAttempts;\n }\n if (retriesLeft !== undefined) {\n if (retriesLeft === 0) {\n this.notifyForSocketState(`wait for socket on ${this.settings.ws} failed - no more retries left`);\n return;\n }\n this.logger.debug(`will retry ${retriesLeft} more times (every ${retryInterval} ms)`);\n }\n try {\n await this.initiateSocket();\n this.startupTimer.mark(\"socket-initiated\");\n this.notifyForSocketState();\n }\n catch {\n setTimeout(() => {\n const retries = retriesLeft === undefined ? undefined : retriesLeft - 1;\n this.openSocket(retryInterval, retries);\n }, retryInterval);\n }\n }\n initiateSocket() {\n const pw = new PromiseWrapper();\n this.logger.debug(`initiating ws to ${this.settings.ws}...`);\n this.ws = new WebSocketConstructor(this.settings.ws ?? \"\");\n let wasOpen = false;\n this.ws.onerror = (err) => {\n let reason;\n try {\n const seen = new WeakSet();\n const replacer = (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n if (value instanceof Error) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack\n };\n }\n return value;\n };\n reason = JSON.stringify(err, replacer);\n }\n catch {\n reason = err.message;\n }\n this.logger.info(`ws error - reason: ${reason}`);\n pw.reject(\"error\");\n if (wasOpen) {\n wasOpen = false;\n this.notifyForSocketState(\"error\");\n }\n this.notifyStatusChanged(false, reason);\n };\n this.ws.onclose = (err) => {\n this.logger.info(`ws closed - code: ${err?.code} reason: ${err?.reason}`);\n pw.reject(\"closed\");\n if (wasOpen) {\n wasOpen = false;\n this.notifyForSocketState(\"closed\");\n }\n this.notifyStatusChanged(false);\n };\n this.ws.onopen = () => {\n this.startupTimer.mark(\"ws-opened\");\n this.logger.info(`ws opened ${this.settings.identity?.application}`);\n pw.resolve();\n wasOpen = true;\n this.notifyStatusChanged(true);\n };\n this.ws.onmessage = (message) => {\n this._registry.execute(\"onMessage\", message.data);\n };\n return pw.promise;\n }\n notifyForSocketState(error) {\n this.wsRequests.forEach((wsRequest) => {\n if (error) {\n if (wsRequest.failed) {\n wsRequest.failed(error);\n }\n }\n else {\n wsRequest.callback();\n }\n });\n this.wsRequests = [];\n }\n notifyStatusChanged(status, reason) {\n this._registry.execute(\"onConnectedChanged\", status, reason);\n }\n}\n\nclass MessageReplayerImpl {\n specs;\n specsNames = [];\n messages = {};\n isDone;\n subs = {};\n subsRefCount = {};\n connection;\n constructor(specs) {\n this.specs = {};\n for (const spec of specs) {\n this.specs[spec.name] = spec;\n this.specsNames.push(spec.name);\n }\n }\n init(connection) {\n this.connection = connection;\n for (const name of this.specsNames) {\n for (const type of this.specs[name].types) {\n let refCount = this.subsRefCount[type];\n if (!refCount) {\n refCount = 0;\n }\n refCount += 1;\n this.subsRefCount[type] = refCount;\n if (refCount > 1) {\n continue;\n }\n const sub = connection.on(type, (msg) => this.processMessage(type, msg));\n this.subs[type] = sub;\n }\n }\n }\n processMessage(type, msg) {\n if (this.isDone || !msg) {\n return;\n }\n for (const name of this.specsNames) {\n if (this.specs[name].types.indexOf(type) !== -1) {\n const messages = this.messages[name] || [];\n this.messages[name] = messages;\n messages.push(msg);\n }\n }\n }\n drain(name, callback) {\n if (callback) {\n (this.messages[name] || []).forEach(callback);\n }\n delete this.messages[name];\n for (const type of this.specs[name].types) {\n this.subsRefCount[type] -= 1;\n if (this.subsRefCount[type] <= 0) {\n this.connection?.off(this.subs[type]);\n delete this.subs[type];\n delete this.subsRefCount[type];\n }\n }\n delete this.specs[name];\n if (!this.specs.length) {\n this.isDone = true;\n }\n }\n}\n\n/* @ts-self-types=\"./index.d.ts\" */\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size | 0;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n};\n\nconst PromisePlus = (executor, timeoutMilliseconds, timeoutMessage) => {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n reject(message);\n }, timeoutMilliseconds);\n const providedPromise = new Promise(executor);\n providedPromise\n .then((result) => {\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n\nclass WebPlatformTransport {\n settings;\n logger;\n identity;\n isPreferredActivated;\n _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 logger.debug(\"connection is down\");\n _connectionOn = false;\n isJoined = false;\n tryReconnecting = true;\n Object.keys(requestsMap).forEach(requestId => {\n const request = requestsMap[requestId];\n if (request) {\n logger.trace(`failing pending request ${requestId} due to connection lost`);\n request.error({\n err: \"Connection lost - gateway connection was disconnected\"\n });\n }\n });\n callbacks.execute(\"onLeft\", { disconnected: true });\n }\n async function handleConnectionLoggedIn() {\n _connectionOn = true;\n if (tryReconnecting) {\n logger.debug(\"connection is now up - trying to reconnect...\");\n try {\n await join(_latestOptions);\n }\n catch {\n logger.trace(`failed to reconnect`);\n }\n }\n }\n function onJoined(callback) {\n if (isJoined) {\n callback(false);\n }\n return callbacks.add(\"onJoined\", callback);\n }\n function onLeft(callback) {\n if (!isJoined) {\n callback();\n }\n return callbacks.add(\"onLeft\", callback);\n }\n function handleErrorMessage(msg) {\n if (domain !== msg.domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.error(msg);\n }\n function handleSuccessMessage(msg) {\n if (msg.domain !== domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.success(msg);\n }\n function getNextRequestId() {\n return nanoid(10);\n }\n let queuedCalls = [];\n function send(msg, tag, options) {\n const ignore = [\"hello\", \"join\"];\n if (msg.type && ignore.indexOf(msg.type) === -1) {\n if (!isJoined) {\n console.warn(`trying to send a message (${msg.domain} ${msg.type}) but not connected, will queue`);\n const pw = new PromiseWrapper();\n queuedCalls.push({ msg, tag, options, pw });\n if (queuedCalls.length === 1) {\n const unsubscribe = onJoined(() => {\n logger.info(`joined - will now send queued messages (${queuedCalls.length} -> [${queuedCalls.map((m) => m.msg.type)}])`);\n queuedCalls.forEach((qm) => {\n send(qm.msg, qm.tag, qm.options)\n .then((t) => qm.pw.resolve(t))\n .catch((e) => qm.pw.reject(e));\n });\n queuedCalls = [];\n unsubscribe();\n });\n }\n return pw.promise;\n }\n }\n options = options ?? {};\n msg.request_id = msg.request_id ?? getNextRequestId();\n msg.domain = msg.domain ?? domain;\n if (!options.skipPeerId) {\n msg.peer_id = connection.peerId;\n }\n const requestId = msg.request_id;\n return new Promise((resolve, reject) => {\n requestsMap[requestId] = {\n success: (successMsg) => {\n delete requestsMap[requestId];\n successMsg._tag = tag;\n resolve(successMsg);\n },\n error: (errorMsg) => {\n 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 loginRetryInProgress = false;\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n settings = settings || {};\n settings.reconnectAttempts = settings.reconnectAttempts ?? 10;\n settings.reconnectInterval = settings.reconnectInterval ?? 1000;\n if (settings.inproc) {\n this.transport = new InProcTransport(settings.inproc, logger.subLogger(\"inMemory\"));\n }\n else if (settings.sharedWorker) {\n this.transport = new SharedWorkerTransport(settings.sharedWorker, logger.subLogger(\"shared-worker\"));\n }\n else if (settings.webPlatform) {\n this.transport = new WebPlatformTransport(settings.webPlatform, logger.subLogger(\"web-platform\"), settings.identity);\n }\n else if (settings.ws !== undefined) {\n this.transport = new WS(settings, logger.subLogger(\"ws\"));\n }\n else {\n throw new Error(\"No connection information specified\");\n }\n this.isTrace = logger.canPublish(\"trace\");\n logger.debug(`starting with ${this.transport.name()} transport`);\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n this._defaultTransport = this.transport;\n this.ping();\n }\n async switchTransport(settings) {\n return this._sequelizer.enqueue(async () => {\n if (!settings || typeof settings !== \"object\") {\n throw new Error(\"Cannot switch transports, because the settings are missing or invalid.\");\n }\n if (typeof settings.type === \"undefined\") {\n throw new Error(\"Cannot switch the transport, because the type is not defined\");\n }\n this.logger.trace(`Starting transport switch with settings: ${JSON.stringify(settings)}`);\n const switchTargetTransport = settings.type === \"secondary\" ? this.getNewSecondaryTransport(settings) : this._defaultTransport;\n this._targetTransport = switchTargetTransport;\n this._targetAuth = settings.type === \"secondary\" ? this.getNewSecondaryAuth(settings) : this._defaultAuth;\n const verifyPromise = this.verifyConnection();\n this._swapTransport = true;\n this._switchInProgress = true;\n this.logger.trace(\"The new transport has been set, closing the current transport\");\n await this.transport.close();\n try {\n await verifyPromise;\n const isSwitchSuccess = this.transport === switchTargetTransport;\n this.logger.info(`The reconnection after the switch was completed. Was the switch a success: ${isSwitchSuccess}`);\n this._switchInProgress = false;\n return { success: isSwitchSuccess };\n }\n catch (error) {\n this.logger.info(\"The reconnection after the switch timed out, reverting back to the default transport.\");\n this.switchTransport({ type: \"default\" });\n this._switchInProgress = false;\n return { success: false };\n }\n });\n }\n onLibReAnnounced(callback) {\n return this.registry.add(\"libReAnnounced\", callback);\n }\n setLibReAnnounced(lib) {\n this.registry.execute(\"libReAnnounced\", lib);\n }\n send(message, options) {\n if (this.transport.sendObject &&\n this.transport.isObjectBasedTransport) {\n const msg = this.createObjectMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${JSON.stringify(msg)}`);\n }\n return this.transport.sendObject(msg, options);\n }\n else {\n const strMessage = this.createStringMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${strMessage}`);\n }\n return this.transport.send(strMessage, options);\n }\n }\n on(type, messageHandler) {\n type = type.toLowerCase();\n if (this.messageHandlers[type] === undefined) {\n this.messageHandlers[type] = {};\n }\n const id = this.ids++;\n this.messageHandlers[type][id] = messageHandler;\n return {\n type,\n id,\n };\n }\n off(info) {\n delete this.messageHandlers[info.type.toLowerCase()][info.id];\n }\n get isConnected() {\n return this._isLoggedIn;\n }\n connected(callback) {\n return this.loggedIn(() => {\n const currentServer = this.transport.name();\n callback(currentServer);\n });\n }\n disconnected(callback) {\n return this.registry.add(\"disconnected\", callback);\n }\n async login(authRequest, reconnect) {\n this.logger.debug(`Login initiated - reconnect: ${reconnect}, transport: ${this.transport.name()}`);\n if (!this._defaultAuth) {\n this._defaultAuth = authRequest;\n }\n if (this._swapTransport) {\n this.logger.trace(\"Detected a transport swap, swapping transports\");\n const newAuth = this.transportSwap();\n authRequest = newAuth ?? authRequest;\n }\n try {\n await this.transport.open();\n this.logger.debug(`Transport: ${this.transport.name()} opened, logging in`);\n timer(\"connection\").mark(\"transport-opened\");\n const identity = await this.loginCore(authRequest, reconnect);\n this.logger.debug(`Logged in with identity: ${JSON.stringify(identity)}`);\n timer(\"connection\").mark(\"protocol-logged-in\");\n return identity;\n }\n catch (error) {\n if (this._switchInProgress) {\n this.logger.debug(\"An error while logging in after a transport swap, preparing a default swap.\");\n this.prepareDefaultSwap();\n }\n throw new Error(error);\n }\n }\n async logout() {\n await this.logoutCore();\n await this.transport.close();\n }\n loggedIn(callback) {\n if (this._isLoggedIn) {\n callback();\n }\n return this.registry.add(\"onLoggedIn\", callback);\n }\n domain(domain, successMessages, errorMessages) {\n let session = this.sessions.find((s) => s.domain === domain);\n if (!session) {\n session = domainSession(domain, this, this.logger.subLogger(`domain=${domain}`), successMessages, errorMessages);\n this.sessions.push(session);\n }\n return session;\n }\n authToken() {\n const createTokenReq = {\n domain: \"global\",\n type: \"create-token\"\n };\n if (!this.globalDomain) {\n return Promise.reject(new Error(\"no global domain session\"));\n }\n return this.globalDomain.send(createTokenReq)\n .then((res) => {\n return res.token;\n });\n }\n reconnect() {\n return this.transport.reconnect();\n }\n setLoggedIn(value) {\n this._isLoggedIn = value;\n if (this._isLoggedIn) {\n this.initialLogin = false;\n this.registry.execute(\"onLoggedIn\");\n }\n }\n distributeMessage(message, type) {\n const handlers = this.messageHandlers[type.toLowerCase()];\n if (handlers !== undefined) {\n Object.keys(handlers).forEach((handlerId) => {\n const handler = handlers[handlerId];\n if (handler !== undefined) {\n try {\n handler(message);\n }\n catch (error) {\n try {\n this.logger.error(`Message handler failed with ${error.stack}`, error);\n }\n catch (loggerError) {\n console.log(\"Message handler failed\", error);\n }\n }\n }\n });\n }\n }\n handleConnectionChanged(connected) {\n if (this._connected === connected) {\n this.logger.trace(\"connection state unchanged, skipping\");\n return;\n }\n this.logger.info(`connection state changed to ${connected ? \"connected\" : \"disconnected\"}`);\n this._connected = connected;\n if (connected) {\n if (this.settings?.replaySpecs?.length) {\n this.replayer = new MessageReplayerImpl(this.settings.replaySpecs);\n this.replayer.init(this);\n }\n this.registry.execute(\"connected\");\n }\n else {\n this.setLoggedIn(false);\n if (this.shouldTryLogin) {\n this.attemptLoginWithRetry();\n }\n this.registry.execute(\"disconnected\");\n }\n }\n async attemptLoginWithRetry() {\n if (!this.loginConfig) {\n throw new Error(\"no login info\");\n }\n if (this.loginRetryInProgress) {\n this.logger.debug(\"login attempt already in progress, ignoring request...\");\n return;\n }\n if (this._isLoggedIn) {\n this.logger.debug(\"already logged in, ignoring request...\");\n return;\n }\n if (this.initialLogin) {\n this.logger.debug(`initial login attempt failed, ${this.initialLoginAttempts} attempts remaining...`);\n if (this.initialLoginAttempts <= 0) {\n this.logger.info(\"maximum initial login attempts reached, will not try to login again\");\n return;\n }\n this.initialLoginAttempts--;\n }\n try {\n this.logger.debug(`will try a new login... ${this.loginRetryInProgress}`);\n this.loginRetryInProgress = true;\n await this.login(this.loginConfig, true);\n }\n catch (e) {\n this.logger.error(`error trying to login: ${e?.message}`, e);\n setTimeout(this.attemptLoginWithRetry.bind(this), this.settings.reconnectInterval ?? 1000);\n }\n finally {\n this.loginRetryInProgress = false;\n }\n }\n handleTransportMessage(msg) {\n let msgObj;\n if (typeof msg === \"string\") {\n msgObj = this.processStringMessage(msg);\n }\n else {\n msgObj = this.processObjectMessage(msg);\n }\n if (this.isTrace) {\n this.logger.trace(`<< ${JSON.stringify(msgObj)}`);\n }\n this.distributeMessage(msgObj.msg, msgObj.msgType);\n }\n verifyConnection() {\n return PromisePlus((resolve) => {\n let unsub;\n const ready = waitForInvocations(2, () => {\n if (unsub) {\n unsub();\n }\n resolve();\n });\n unsub = this.onLibReAnnounced((lib) => {\n if (lib.name === \"interop\") {\n return ready();\n }\n if (lib.name === \"contexts\") {\n return ready();\n }\n });\n }, 10000, \"Transport switch timed out waiting for all libraries to be re-announced\");\n }\n getNewSecondaryTransport(settings) {\n if (!settings.transportConfig?.url) {\n throw new Error(\"Missing secondary transport URL.\");\n }\n return new WS(Object.assign({}, this.settings, { ws: settings.transportConfig.url, reconnectAttempts: 1 }), this.logger.subLogger(\"ws-secondary\"));\n }\n getNewSecondaryAuth(settings) {\n if (!settings.transportConfig?.auth) {\n throw new Error(\"Missing secondary transport auth information.\");\n }\n return settings.transportConfig.auth;\n }\n transportSwap() {\n this._swapTransport = false;\n if (!this._targetTransport || !this._targetAuth) {\n this.logger.warn(`Error while switching transports - either the target transport or auth is not defined: transport defined -> ${!!this._defaultTransport}, auth defined -> ${!!this._targetAuth}. Staying on the current one.`);\n return;\n }\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport = this._targetTransport;\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n return this._targetAuth;\n }\n prepareDefaultSwap() {\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport.close().catch((error) => this.logger.warn(`Error closing the ${this.transport.name()} transport after a failed connection attempt: ${JSON.stringify(error)}`));\n this._targetTransport = this._defaultTransport;\n this._targetAuth = this._defaultAuth;\n this._swapTransport = true;\n }\n processStringMessage(message) {\n const msg = JSON.parse(message, (key, value) => {\n if (typeof value !== \"string\") {\n return value;\n }\n if (value.length < this.dateMinLen) {\n return value;\n }\n if (!value.startsWith(this.datePrefixFirstChar)) {\n return value;\n }\n if (value.substring(0, this.datePrefixLen) !== this.datePrefix) {\n return value;\n }\n try {\n const milliseconds = parseInt(value.substring(this.datePrefixLen, value.length), 10);\n if (isNaN(milliseconds)) {\n return value;\n }\n return new Date(milliseconds);\n }\n catch (ex) {\n return value;\n }\n });\n return {\n msg,\n msgType: msg.type,\n };\n }\n createStringMessage(message) {\n const oldToJson = Date.prototype.toJSON;\n try {\n const datePrefix = this.datePrefix;\n Date.prototype.toJSON = function () {\n return datePrefix + this.getTime();\n };\n const result = JSON.stringify(message);\n return result;\n }\n finally {\n Date.prototype.toJSON = oldToJson;\n }\n }\n processObjectMessage(message) {\n if (!message.type) {\n throw new Error(\"Object should have type property\");\n }\n return {\n msg: message,\n msgType: message.type,\n };\n }\n createObjectMessage(message) {\n return message;\n }\n async loginCore(config, reconnect) {\n this.loginConfig = config;\n if (!this.loginConfig) {\n this.loginConfig = { username: \"\", password: \"\" };\n }\n this.shouldTryLogin = true;\n const authentication = await this.setupAuthConfig(config, reconnect);\n const helloMsg = {\n type: \"hello\",\n identity: this.settings.identity,\n authentication\n };\n if (config.sessionId) {\n helloMsg.request_id = config.sessionId;\n }\n if (!this.globalDomain) {\n this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\n \"welcome\",\n \"token\",\n \"authentication-request\"\n ]);\n }\n const sendOptions = { skipPeerId: true };\n if (this.initialLogin) {\n sendOptions.retryInterval = this.settings.reconnectInterval;\n sendOptions.maxRetries = this.settings.reconnectAttempts;\n }\n try {\n const welcomeMsg = await this.tryAuthenticate(this.globalDomain, helloMsg, sendOptions, config);\n this.logger.info(\"login successful with peerId \" + welcomeMsg.peer_id);\n this.peerId = welcomeMsg.peer_id;\n this.resolvedIdentity = welcomeMsg.resolved_identity;\n this.availableDomains = welcomeMsg.available_domains;\n if (welcomeMsg.options) {\n this.token = welcomeMsg.options.access_token;\n this.info = welcomeMsg.options.info;\n }\n this.setLoggedIn(true);\n return welcomeMsg.resolved_identity;\n }\n catch (err) {\n this.logger.error(\"error sending hello message - \" + (err.message || err.msg || err.reason || err), err);\n throw err;\n }\n finally {\n if (config?.flowCallback && config.sessionId) {\n config.flowCallback(config.sessionId, null);\n }\n }\n }\n async tryAuthenticate(globalDomain, helloMsg, sendOptions, config) {\n let welcomeMsg;\n while (true) {\n const msg = await globalDomain.send(helloMsg, undefined, sendOptions);\n if (msg.type === \"authentication-request\") {\n const token = Buffer.from(msg.authentication.token, \"base64\");\n if (config.flowCallback && config.sessionId) {\n helloMsg.authentication.token =\n (await config.flowCallback(config.sessionId, token))\n .data\n .toString(\"base64\");\n }\n helloMsg.request_id = config.sessionId;\n }\n else if (msg.type === \"welcome\") {\n welcomeMsg = msg;\n break;\n }\n else if (msg.type === \"error\") {\n throw new Error(\"Authentication failed: \" + msg.reason);\n }\n else {\n throw new Error(\"Unexpected message type during authentication: \" + msg.type);\n }\n }\n return welcomeMsg;\n }\n async setupAuthConfig(config, reconnect) {\n const authentication = {};\n this.gatewayToken = config.gatewayToken;\n if (config.gatewayToken) {\n if (reconnect) {\n try {\n config.gatewayToken = await this.getNewGWToken();\n }\n catch (e) {\n this.logger.warn(`failed to get GW token when reconnecting ${e?.message || e}`);\n }\n }\n authentication.method = \"gateway-token\";\n authentication.token = config.gatewayToken;\n this.gatewayToken = config.gatewayToken;\n }\n else if (config.flowName === \"sspi\") {\n authentication.provider = \"win\";\n authentication.method = \"access-token\";\n if (config.flowCallback && config.sessionId) {\n authentication.token =\n (await config.flowCallback(config.sessionId, null))\n .data\n .toString(\"base64\");\n }\n else {\n throw new Error(\"Invalid SSPI config\");\n }\n }\n else if (config.token) {\n authentication.method = \"access-token\";\n authentication.token = config.token;\n }\n else if (config.username) {\n authentication.method = \"secret\";\n authentication.login = config.username;\n authentication.secret = config.password;\n }\n else if (config.provider) {\n authentication.provider = config.provider;\n authentication.providerContext = config.providerContext;\n }\n else {\n throw new Error(\"invalid auth message\" + JSON.stringify(config));\n }\n return authentication;\n }\n async logoutCore() {\n this.logger.debug(\"logging out...\");\n this.shouldTryLogin = false;\n if (this.pingTimer) {\n clearTimeout(this.pingTimer);\n }\n const promises = this.sessions.map((session) => {\n return session.leave();\n });\n await Promise.all(promises);\n }\n getNewGWToken() {\n if (typeof window !== \"undefined\") {\n const glue42gd = window.glue42gd;\n if (glue42gd) {\n return glue42gd.getGWToken();\n }\n }\n return Promise.reject(new Error(\"not running in GD\"));\n }\n ping() {\n if (!this.shouldTryLogin) {\n return;\n }\n if (this._isLoggedIn) {\n this.send({ type: \"ping\" });\n }\n this.pingTimer = setTimeout(() => {\n this.ping();\n }, 30 * 1000);\n }\n}\n\nconst order = [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"off\"];\nclass Logger {\n name;\n parent;\n static Interop;\n static InteropMethodName = \"T42.AppLogger.Log\";\n static Instance;\n path;\n subLoggers = [];\n _consoleLevel;\n _publishLevel;\n loggerFullName;\n includeTimeAndLevel;\n logFn = console;\n customLogFn = false;\n constructor(name, parent, logFn) {\n this.name = name;\n this.parent = parent;\n this.name = name;\n if (parent) {\n this.path = `${parent.path}.${name}`;\n }\n else {\n this.path = name;\n }\n this.loggerFullName = `[${this.path}]`;\n this.includeTimeAndLevel = !logFn;\n if (logFn) {\n this.logFn = logFn;\n this.customLogFn = true;\n }\n }\n subLogger(name) {\n const existingSub = this.subLoggers.filter((subLogger) => {\n return subLogger.name === name;\n })[0];\n if (existingSub !== undefined) {\n return existingSub;\n }\n Object.keys(this).forEach((key) => {\n if (key === name) {\n throw new Error(\"This sub logger name is not allowed.\");\n }\n });\n const sub = new Logger(name, this, this.customLogFn ? this.logFn : undefined);\n this.subLoggers.push(sub);\n return sub;\n }\n publishLevel(level) {\n if (level) {\n this._publishLevel = level;\n }\n return this._publishLevel || this.parent?.publishLevel();\n }\n consoleLevel(level) {\n if (level) {\n this._consoleLevel = level;\n }\n return this._consoleLevel || this.parent?.consoleLevel();\n }\n log(message, level, error) {\n this.publishMessage(level || \"info\", message, error);\n }\n trace(message) {\n this.log(message, \"trace\");\n }\n debug(message) {\n this.log(message, \"debug\");\n }\n info(message) {\n this.log(message, \"info\");\n }\n warn(message) {\n this.log(message, \"warn\");\n }\n error(message, err) {\n this.log(message, \"error\", err);\n }\n canPublish(level, compareWith) {\n const levelIdx = order.indexOf(level);\n const restrictionIdx = order.indexOf(compareWith || this.consoleLevel() || \"trace\");\n return levelIdx >= restrictionIdx;\n }\n publishMessage(level, message, error) {\n const loggerName = this.loggerFullName;\n if (level === \"error\" && !error) {\n const e = new Error();\n if (e.stack) {\n message =\n message +\n \"\\n\" +\n e.stack\n .split(\"\\n\")\n .slice(4)\n .join(\"\\n\");\n }\n }\n if (this.canPublish(level, this.publishLevel())) {\n const interop = Logger.Interop;\n if (interop) {\n try {\n if (interop.methods({ name: Logger.InteropMethodName }).length > 0) {\n const args = {\n msg: message,\n logger: loggerName,\n level\n };\n if (error && error instanceof Error) {\n args.error = {\n message: error.message,\n stack: error.stack ?? \"\"\n };\n }\n interop.invoke(Logger.InteropMethodName, args)\n .catch((e) => {\n this.logFn.warn(`Unable to send log message to the platform: ${e.message}`, e);\n });\n }\n }\n catch {\n }\n }\n }\n if (this.canPublish(level)) {\n let prefix = \"\";\n if (this.includeTimeAndLevel) {\n const date = new Date();\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\n prefix = `[${time}] [${level}] `;\n }\n const toPrint = `${prefix}${loggerName}: ${message}`;\n switch (level) {\n case \"trace\":\n this.logFn.debug(toPrint);\n break;\n case \"debug\":\n if (this.logFn.debug) {\n this.logFn.debug(toPrint);\n }\n else {\n this.logFn.log(toPrint);\n }\n break;\n case \"info\":\n this.logFn.info(toPrint);\n break;\n case \"warn\":\n this.logFn.warn(toPrint);\n break;\n case \"error\":\n if (error) {\n this.logFn.error(toPrint, error);\n }\n else {\n this.logFn.error(toPrint);\n }\n break;\n }\n }\n }\n}\n\nconst GW_MESSAGE_CREATE_CONTEXT = \"create-context\";\nconst GW_MESSAGE_ACTIVITY_CREATED = \"created\";\nconst GW_MESSAGE_ACTIVITY_DESTROYED = \"destroyed\";\nconst GW_MESSAGE_CONTEXT_CREATED = \"context-created\";\nconst GW_MESSAGE_CONTEXT_ADDED = \"context-added\";\nconst GW_MESSAGE_SUBSCRIBE_CONTEXT = \"subscribe-context\";\nconst GW_MESSAGE_SUBSCRIBED_CONTEXT = \"subscribed-context\";\nconst GW_MESSAGE_UNSUBSCRIBE_CONTEXT = \"unsubscribe-context\";\nconst GW_MESSAGE_DESTROY_CONTEXT = \"destroy-context\";\nconst GW_MESSAGE_CONTEXT_DESTROYED = \"context-destroyed\";\nconst GW_MESSAGE_UPDATE_CONTEXT = \"update-context\";\nconst GW_MESSAGE_CONTEXT_UPDATED = \"context-updated\";\nconst GW_MESSAGE_JOINED_ACTIVITY = \"joined\";\n\nconst ContextMessageReplaySpec = {\n get name() {\n return \"context\";\n },\n get types() {\n return [\n GW_MESSAGE_CREATE_CONTEXT,\n GW_MESSAGE_ACTIVITY_CREATED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_SUBSCRIBE_CONTEXT,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n GW_MESSAGE_DESTROY_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_UPDATE_CONTEXT,\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_JOINED_ACTIVITY\n ];\n }\n};\n\nvar version = \"6.5.3-iocd-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()\n .then(() => this._connection.setLibReAnnounced({ name: \"contexts\" }))\n .catch((err) => {\n this._logger.warn(`Error while re-announcing contexts: ${JSON.stringify(err)}`);\n });\n });\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n }\n dispose() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n this._gw3Subscriptions.length = 0;\n for (const contextName in this._contextNameToData) {\n if (this._contextNameToId.hasOwnProperty(contextName)) {\n delete this._contextNameToData[contextName];\n }\n }\n }\n createContext(name, data) {\n if (name in this._creationPromises) {\n return this._creationPromises[name];\n }\n this._creationPromises[name] =\n this._gw3Session\n .send({\n type: GW_MESSAGE_CREATE_CONTEXT,\n domain: \"global\",\n name,\n data,\n lifetime: \"retained\",\n })\n .then((createContextMsg) => {\n this._contextNameToId[name] = createContextMsg.context_id;\n this._contextIdToName[createContextMsg.context_id] = name;\n const contextData = this._contextNameToData[name] || new GW3ContextData(createContextMsg.context_id, name, true, undefined);\n contextData.isAnnounced = true;\n contextData.name = name;\n contextData.contextId = createContextMsg.context_id;\n contextData.context = createContextMsg.data || deepClone(data);\n contextData.hasReceivedSnapshot = true;\n this._contextNameToData[name] = contextData;\n delete this._creationPromises[name];\n return createContextMsg.context_id;\n });\n return this._creationPromises[name];\n }\n all() {\n return Object.keys(this._contextNameToData)\n .filter((name) => this._contextNameToData[name].isAnnounced);\n }\n async update(name, delta) {\n if (delta) {\n delta = deepClone(delta);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n await this.createContext(name, delta);\n return;\n }\n 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, reject) => {\n this.subscribe(name, (data, _d, _r, un) => {\n this.unsubscribe(un);\n resolve(data);\n }).catch(reject);\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).catch(() => { });\n }\n }\n }\n else {\n this._contextNameToData[name] = contextData =\n new GW3ContextData(contextCreatedMsg.context_id, name, true, contextCreatedMsg.activity_id);\n if (this._trackAllContexts) {\n this.subscribe(name, () => { }).then((subKey) => this._systemContextsSubKey = subKey);\n }\n }\n }\n subscribeToContextUpdatedMessages() {\n const updatedMessageTypes = [\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_JOINED_ACTIVITY,\n ];\n for (const updatedMessageType of updatedMessageTypes) {\n const sub = this._connection.on(updatedMessageType, this.handleContextUpdatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextUpdatedMessage(contextUpdatedMsg) {\n const updatedMessageType = contextUpdatedMsg.type;\n const contextId = contextUpdatedMsg.context_id;\n let contextData = this._contextNameToData[this._contextIdToName[contextId]];\n const justSeen = !contextData || !contextData.isAnnounced;\n if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n if (!contextData) {\n contextData =\n this._contextNameToData[contextUpdatedMsg.activity_id] ||\n new GW3ContextData(contextId, contextUpdatedMsg.activity_id, true, contextUpdatedMsg.activity_id);\n }\n this._contextNameToData[contextUpdatedMsg.activity_id] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.activity_id;\n this._contextNameToId[contextUpdatedMsg.activity_id] = contextId;\n contextData.contextId = contextId;\n contextData.isAnnounced = true;\n contextData.activityId = contextUpdatedMsg.activity_id;\n contextData.joinedActivity = true;\n }\n else {\n if (!contextData || !contextData.isAnnounced) {\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData = contextData || new GW3ContextData(contextId, contextUpdatedMsg.name, true, undefined);\n contextData.sentExplicitSubscription = true;\n this._contextNameToData[contextUpdatedMsg.name] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.name;\n this._contextNameToId[contextUpdatedMsg.name] = contextId;\n }\n else {\n this._logger.error(`Received 'update' for unknown context: ${contextId}`);\n }\n return;\n }\n }\n const oldContext = contextData.context;\n contextData.hasReceivedSnapshot = true;\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData.context = contextUpdatedMsg.data || {};\n }\n else if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n contextData.context = contextUpdatedMsg.context_snapshot || {};\n }\n else if (updatedMessageType === GW_MESSAGE_CONTEXT_UPDATED) {\n contextData.context = applyContextDelta(contextData.context, contextUpdatedMsg.delta, this._logger);\n }\n else {\n throw new Error(\"Unrecognized context update message \" + updatedMessageType);\n }\n if (justSeen ||\n !deepEqual(contextData.context, oldContext) ||\n updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n this.invokeUpdateCallbacks(contextData, contextUpdatedMsg.delta, { updaterId: contextUpdatedMsg.updater_id });\n }\n }\n invokeUpdateCallbacks(contextData, delta, extraData) {\n delta = delta || { added: {}, updated: {}, reset: {}, removed: [] };\n if (delta.commands) {\n delta.added = delta.updated = delta.reset = {};\n delta.removed = [];\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n if (command.path.indexOf(\".\") === -1) {\n delta.removed.push(command.path);\n }\n setValueToPath(delta.updated, null, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(delta.updated, command.value, command.path);\n }\n }\n }\n for (const updateCallbackIndex in contextData.updateCallbacks) {\n if (contextData.updateCallbacks.hasOwnProperty(updateCallbackIndex)) {\n try {\n const updateCallback = contextData.updateCallbacks[updateCallbackIndex];\n updateCallback(deepClone(contextData.context), deepClone(Object.assign({}, delta.added || {}, delta.updated || {}, delta.reset || {})), delta.removed, parseInt(updateCallbackIndex, 10), extraData);\n }\n catch (err) {\n this._logger.debug(\"callback error: \" + JSON.stringify(err));\n }\n }\n }\n }\n subscribeToContextDestroyedMessages() {\n const destroyedMessageTypes = [\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n ];\n for (const destroyedMessageType of destroyedMessageTypes) {\n const sub = this._connection.on(destroyedMessageType, this.handleContextDestroyedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextDestroyedMessage(destroyedMsg) {\n const destroyedMessageType = destroyedMsg.type;\n let contextId;\n let name;\n if (destroyedMessageType === GW_MESSAGE_ACTIVITY_DESTROYED) {\n name = destroyedMsg.activity_id;\n contextId = this._contextNameToId[name];\n if (!contextId) {\n this._logger.error(`Received 'destroyed' for unknown activity: ${destroyedMsg.activity_id}`);\n return;\n }\n }\n else {\n contextId = destroyedMsg.context_id;\n name = this._contextIdToName[contextId];\n if (!name) {\n this._logger.error(`Received 'destroyed' for unknown context: ${destroyedMsg.context_id}`);\n return;\n }\n }\n delete this._contextIdToName[contextId];\n delete this._contextNameToId[name];\n const contextData = this._contextNameToData[name];\n delete this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n this._logger.error(`Received 'destroyed' for unknown context: ${contextId}`);\n return;\n }\n }\n 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 })\n .then(() => undefined)\n .catch(() => {\n contextData.sentExplicitSubscription = false;\n });\n }\n sendUnsubscribe(contextData) {\n const prev = contextData.sentExplicitSubscription;\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 })\n .then(() => undefined)\n .catch(() => {\n contextData.sentExplicitSubscription = prev;\n });\n }\n calculateContextDeltaV1(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined };\n if (from) {\n for (const x of Object.keys(from)) {\n if (Object.keys(to).indexOf(x) !== -1\n && to[x] !== null\n && !deepEqual(from[x], to[x])) {\n delta.updated[x] = to[x];\n }\n }\n }\n for (const x of Object.keys(to)) {\n if (!from || (Object.keys(from).indexOf(x) === -1)) {\n if (to[x] !== null) {\n delta.added[x] = to[x];\n }\n }\n else if (to[x] === null) {\n delta.removed.push(x);\n }\n }\n return delta;\n }\n calculateContextDeltaV2(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined, commands: [] };\n for (const x of Object.keys(to)) {\n if (to[x] !== null) {\n const fromX = from ? from[x] : null;\n if (!deepEqual(fromX, to[x])) {\n delta.commands?.push({ type: \"set\", path: x, value: to[x] });\n }\n }\n else {\n delta.commands?.push({ type: \"remove\", path: x });\n }\n }\n return delta;\n }\n resetState() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n if (this._systemContextsSubKey) {\n this.unsubscribe(this._systemContextsSubKey);\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 logger;\n ERR_URI_SUBSCRIPTION_FAILED = \"com.tick42.agm.errors.subscription.failure\";\n callbacks = CallbackRegistryFactory();\n nextStreamId = 0;\n constructor(session, repository, serverRepository, logger) {\n this.session = session;\n this.repository = repository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n session.on(\"add-interest\", (msg) => {\n this.handleAddInterest(msg);\n });\n session.on(\"remove-interest\", (msg) => {\n this.handleRemoveInterest(msg);\n });\n }\n acceptRequestOnBranch(requestContext, streamingMethod, branch) {\n if (typeof branch !== \"string\") {\n branch = \"\";\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n throw new TypeError(\"The streaming method is missing its subscriptions.\");\n }\n if (!Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n throw new TypeError(\"The streaming method is missing its branches.\");\n }\n const streamId = this.getStreamId(streamingMethod, branch);\n const key = requestContext.msg.subscription_id;\n const subscription = {\n id: key,\n arguments: requestContext.arguments,\n instance: requestContext.instance,\n branchKey: branch,\n streamId,\n subscribeMsg: requestContext.msg,\n };\n streamingMethod.protocolState.subscriptionsMap[key] = subscription;\n this.session.sendFireAndForget({\n type: \"accepted\",\n subscription_id: key,\n stream_id: streamId,\n }).catch((err) => {\n this.logger.warn(`Failed to send accepted message for subscription ${key}: ${JSON.stringify(err)}`);\n });\n this.callbacks.execute(SUBSCRIPTION_ADDED, subscription, streamingMethod);\n }\n rejectRequest(requestContext, streamingMethod, reason) {\n if (typeof reason !== \"string\") {\n reason = \"\";\n }\n this.sendSubscriptionFailed(\"Subscription rejected by user. \" + reason, requestContext.msg.subscription_id);\n }\n pushData(streamingMethod, data, branches) {\n if (typeof streamingMethod !== \"object\" || !Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n return;\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n if (typeof branches === \"string\") {\n branches = [branches];\n }\n else if (!Array.isArray(branches) || branches.length <= 0) {\n branches = [];\n }\n const streamIdList = streamingMethod.protocolState.branchKeyToStreamIdMap\n .filter((br) => {\n if (!branches || branches.length === 0) {\n return true;\n }\n return branches.indexOf(br.key) >= 0;\n }).map((br) => {\n return br.streamId;\n });\n streamIdList.forEach((streamId) => {\n const publishMessage = {\n type: \"publish\",\n stream_id: streamId,\n data,\n };\n this.session.sendFireAndForget(publishMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send publish message for stream ${streamId}: ${JSON.stringify(err)}`);\n });\n });\n }\n pushDataToSingle(method, subscription, data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n const postMessage = {\n type: \"post\",\n subscription_id: subscription.id,\n data,\n };\n this.session.sendFireAndForget(postMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send post message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n }\n closeSingleSubscription(streamingMethod, subscription) {\n if (streamingMethod.protocolState.subscriptionsMap) {\n delete streamingMethod.protocolState.subscriptionsMap[subscription.id];\n }\n const dropSubscriptionMessage = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping a single subscription\",\n };\n this.session.sendFireAndForget(dropSubscriptionMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send drop-subscription message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n subscription.instance;\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n closeMultipleSubscriptions(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\" || typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n let subscriptionsToClose = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey === \"string\") {\n subscriptionsToClose = subscriptionsToClose.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n subscriptionsToClose.forEach((subscription) => {\n delete subscriptionsMap[subscription.id];\n const drop = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping all subscriptions on stream_id: \" + subscription.streamId,\n };\n this.session.sendFireAndForget(drop)\n .catch((err) => {\n this.logger.warn(`Failed to send drop-subscription message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n });\n }\n getSubscriptionList(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n let subscriptions = [];\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey !== \"string\") {\n subscriptions = allSubscriptions;\n }\n else {\n subscriptions = allSubscriptions.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n return subscriptions;\n }\n getBranchList(streamingMethod) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n const result = [];\n allSubscriptions.forEach((sub) => {\n let branch = \"\";\n if (typeof sub === \"object\" && typeof sub.branchKey === \"string\") {\n branch = sub.branchKey;\n }\n if (result.indexOf(branch) === -1) {\n result.push(branch);\n }\n });\n return result;\n }\n onSubAdded(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_ADDED, callback);\n }\n onSubRequest(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REQUEST, callback);\n }\n onSubRemoved(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REMOVED, callback);\n }\n handleRemoveInterest(msg) {\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (typeof msg.subscription_id !== \"string\" ||\n typeof streamingMethod !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap[msg.subscription_id] !== \"object\") {\n return;\n }\n const subscription = streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n delete streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n onSubscriptionLifetimeEvent(eventName, handlerFunc) {\n this.callbacks.add(eventName, handlerFunc);\n }\n getNextStreamId() {\n return this.nextStreamId++ + \"\";\n }\n handleAddInterest(msg) {\n const caller = this.repository.getServerById(msg.caller_id);\n const instance = caller?.instance ?? {};\n const requestContext = {\n msg,\n arguments: msg.arguments_kv || {},\n instance,\n };\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (streamingMethod === undefined) {\n const errorMsg = \"No method with id \" + msg.method_id + \" on this server.\";\n this.sendSubscriptionFailed(errorMsg, msg.subscription_id);\n return;\n }\n if (streamingMethod.protocolState.subscriptionsMap &&\n streamingMethod.protocolState.subscriptionsMap[msg.subscription_id]) {\n this.sendSubscriptionFailed(\"A subscription with id \" + msg.subscription_id + \" already exists.\", msg.subscription_id);\n return;\n }\n this.callbacks.execute(SUBSCRIPTION_REQUEST, requestContext, streamingMethod);\n }\n sendSubscriptionFailed(reason, subscriptionId) {\n const errorMessage = {\n type: \"error\",\n reason_uri: this.ERR_URI_SUBSCRIPTION_FAILED,\n reason,\n request_id: subscriptionId,\n };\n this.session.sendFireAndForget(errorMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send subscription failed message for subscription ${subscriptionId}: ${JSON.stringify(err)}`);\n });\n }\n getStreamId(streamingMethod, branchKey) {\n if (typeof branchKey !== \"string\") {\n branchKey = \"\";\n }\n if (!streamingMethod.protocolState.branchKeyToStreamIdMap) {\n throw new Error(`streaming ${streamingMethod.definition.name} method without protocol state`);\n }\n const needleBranch = streamingMethod.protocolState.branchKeyToStreamIdMap.filter((branch) => {\n return branch.key === branchKey;\n })[0];\n let streamId = (needleBranch ? needleBranch.streamId : undefined);\n if (typeof streamId !== \"string\" || streamId === \"\") {\n streamId = this.getNextStreamId();\n streamingMethod.protocolState.branchKeyToStreamIdMap.push({ key: branchKey, streamId });\n }\n return streamId;\n }\n}\n\nclass ServerProtocol {\n session;\n clientRepository;\n serverRepository;\n logger;\n callbacks = CallbackRegistryFactory();\n streaming;\n constructor(session, clientRepository, serverRepository, logger) {\n this.session = session;\n this.clientRepository = clientRepository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n this.streaming = new ServerStreaming(session, clientRepository, serverRepository, logger.subLogger(\"streaming\"));\n this.session.on(\"invoke\", (msg) => this.handleInvokeMessage(msg));\n }\n createStream(repoMethod) {\n repoMethod.protocolState.subscriptionsMap = {};\n repoMethod.protocolState.branchKeyToStreamIdMap = [];\n return this.register(repoMethod, true);\n }\n register(repoMethod, isStreaming) {\n const methodDef = repoMethod.definition;\n const flags = Object.assign({}, { metadata: methodDef.flags ?? {} }, { streaming: isStreaming || false });\n const registerMsg = {\n type: \"register\",\n methods: [{\n id: repoMethod.repoId,\n name: methodDef.name,\n display_name: methodDef.displayName,\n description: methodDef.description,\n version: methodDef.version,\n flags,\n object_types: methodDef.objectTypes || methodDef.object_types,\n input_signature: methodDef.accepts,\n result_signature: methodDef.returns,\n restrictions: undefined,\n }],\n };\n return this.session.send(registerMsg, { methodId: repoMethod.repoId })\n .then(() => {\n this.logger.debug(\"registered method \" + repoMethod.definition.name + \" with id \" + repoMethod.repoId);\n })\n .catch((msg) => {\n this.logger.warn(`failed to register method ${repoMethod.definition.name} with id ${repoMethod.repoId} - ${JSON.stringify(msg)}`);\n throw msg;\n });\n }\n onInvoked(callback) {\n this.callbacks.add(\"onInvoked\", callback);\n }\n methodInvocationResult(method, invocationId, err, result) {\n let msg;\n if (err || err === \"\") {\n msg = {\n type: \"error\",\n request_id: invocationId,\n reason_uri: \"agm.errors.client_error\",\n reason: err,\n context: result,\n peer_id: undefined,\n };\n }\n else {\n msg = {\n type: \"yield\",\n invocation_id: invocationId,\n peer_id: this.session.peerId,\n result,\n request_id: undefined,\n };\n }\n this.session.sendFireAndForget(msg)\n .catch((error => {\n this.logger.warn(`Failed to send method invocation result for method ${method.definition.name} invocation ${invocationId} - ${JSON.stringify(error)}`);\n }));\n }\n async unregister(method) {\n const msg = {\n type: \"unregister\",\n methods: [method.repoId],\n };\n await this.session.send(msg);\n }\n getBranchList(method) {\n return this.streaming.getBranchList(method);\n }\n getSubscriptionList(method, branchKey) {\n return this.streaming.getSubscriptionList(method, branchKey);\n }\n closeAllSubscriptions(method, branchKey) {\n this.streaming.closeMultipleSubscriptions(method, branchKey);\n }\n pushData(method, data, branches) {\n this.streaming.pushData(method, data, branches);\n }\n pushDataToSingle(method, subscription, data) {\n this.streaming.pushDataToSingle(method, subscription, data);\n }\n closeSingleSubscription(method, subscription) {\n this.streaming.closeSingleSubscription(method, subscription);\n }\n acceptRequestOnBranch(requestContext, method, branch) {\n this.streaming.acceptRequestOnBranch(requestContext, method, branch);\n }\n rejectRequest(requestContext, method, reason) {\n this.streaming.rejectRequest(requestContext, method, reason);\n }\n onSubRequest(callback) {\n this.streaming.onSubRequest(callback);\n }\n onSubAdded(callback) {\n this.streaming.onSubAdded(callback);\n }\n onSubRemoved(callback) {\n this.streaming.onSubRemoved(callback);\n }\n handleInvokeMessage(msg) {\n const invocationId = msg.invocation_id;\n const callerId = msg.caller_id;\n const methodId = msg.method_id;\n const args = msg.arguments_kv;\n const methodList = this.serverRepository.getList();\n const method = methodList.filter((m) => {\n return m.repoId === methodId;\n })[0];\n if (method === undefined) {\n return;\n }\n const client = this.clientRepository.getServerById(callerId)?.instance;\n const invocationArgs = { args, instance: client };\n this.callbacks.execute(\"onInvoked\", method, invocationId, invocationArgs);\n }\n}\n\nclass UserSubscription {\n repository;\n subscriptionData;\n get requestArguments() {\n return this.subscriptionData.params.arguments || {};\n }\n get servers() {\n return this.subscriptionData.trackedServers.reduce((servers, pair) => {\n if (pair.subscriptionId) {\n const server = this.repository.getServerById(pair.serverId)?.instance;\n if (server) {\n servers.push(server);\n }\n }\n return servers;\n }, []);\n }\n get serverInstance() {\n return this.servers[0];\n }\n get stream() {\n return this.subscriptionData.method;\n }\n constructor(repository, subscriptionData) {\n this.repository = repository;\n this.subscriptionData = subscriptionData;\n }\n onData(dataCallback) {\n if (typeof dataCallback !== \"function\") {\n throw new TypeError(\"The data callback must be a function.\");\n }\n this.subscriptionData.handlers.onData.push(dataCallback);\n if (this.subscriptionData.handlers.onData.length === 1 && this.subscriptionData.queued.data.length > 0) {\n this.subscriptionData.queued.data.forEach((dataItem) => {\n dataCallback(dataItem);\n });\n }\n }\n onClosed(closedCallback) {\n if (typeof closedCallback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onClosed.push(closedCallback);\n }\n onFailed(callback) {\n }\n onConnected(callback) {\n if (typeof callback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onConnected.push(callback);\n }\n close() {\n this.subscriptionData.close();\n }\n setNewSubscription(newSub) {\n this.subscriptionData = newSub;\n }\n}\n\nclass TimedCache {\n config;\n cache = [];\n timeoutIds = [];\n constructor(config) {\n this.config = config;\n }\n add(element) {\n const id = nanoid(10);\n this.cache.push({ id, element });\n const timeoutId = setTimeout(() => {\n const elementIdx = this.cache.findIndex((entry) => entry.id === id);\n if (elementIdx < 0) {\n return;\n }\n this.cache.splice(elementIdx, 1);\n }, this.config.ELEMENT_TTL_MS);\n this.timeoutIds.push(timeoutId);\n }\n flush() {\n const elements = this.cache.map((entry) => entry.element);\n this.timeoutIds.forEach((id) => clearInterval(id));\n this.cache = [];\n this.timeoutIds = [];\n return elements;\n }\n}\n\nconst STATUS_AWAITING_ACCEPT = \"awaitingAccept\";\nconst STATUS_SUBSCRIBED = \"subscribed\";\nconst ERR_MSG_SUB_FAILED = \"Subscription failed.\";\nconst ERR_MSG_SUB_REJECTED = \"Subscription rejected.\";\nconst ON_CLOSE_MSG_SERVER_INIT = \"ServerInitiated\";\nconst ON_CLOSE_MSG_CLIENT_INIT = \"ClientInitiated\";\nclass ClientStreaming {\n session;\n repository;\n logger;\n subscriptionsList = {};\n timedCache = new TimedCache({ ELEMENT_TTL_MS: 10000 });\n subscriptionIdToLocalKeyMap = {};\n nextSubLocalKey = 0;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"subscribed\", this.handleSubscribed);\n session.on(\"event\", this.handleEventData);\n session.on(\"subscription-cancelled\", this.handleSubscriptionCancelled);\n }\n subscribe(streamingMethod, params, targetServers, success, error, existingSub) {\n if (targetServers.length === 0) {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" No available servers matched the target params.\",\n });\n return;\n }\n const subLocalKey = this.getNextSubscriptionLocalKey();\n const pendingSub = this.registerSubscription(subLocalKey, streamingMethod, params, success, error, params.methodResponseTimeout || 10000, existingSub);\n if (typeof pendingSub !== \"object\") {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Unable to register the user callbacks.\",\n });\n return;\n }\n targetServers.forEach((target) => {\n const serverId = target.server.id;\n const method = target.methods.find((m) => m.name === streamingMethod.name);\n if (!method) {\n this.logger.error(`can not find method ${streamingMethod.name} for target ${target.server.id}`);\n return;\n }\n pendingSub.trackedServers.push({\n serverId,\n subscriptionId: undefined,\n });\n const msg = {\n type: \"subscribe\",\n server_id: serverId,\n method_id: method.gatewayId,\n arguments_kv: params.arguments,\n };\n this.session.send(msg, { serverId, subLocalKey })\n .then((m) => this.handleSubscribed(m))\n .catch((err) => this.handleErrorSubscribing(err));\n });\n }\n drainSubscriptions() {\n const existing = Object.values(this.subscriptionsList);\n this.subscriptionsList = {};\n this.subscriptionIdToLocalKeyMap = {};\n return existing;\n }\n drainSubscriptionsCache() {\n return this.timedCache.flush();\n }\n getNextSubscriptionLocalKey() {\n const current = this.nextSubLocalKey;\n this.nextSubLocalKey += 1;\n return current;\n }\n registerSubscription(subLocalKey, method, params, success, error, timeout, existingSub) {\n const subsInfo = {\n localKey: subLocalKey,\n status: STATUS_AWAITING_ACCEPT,\n method,\n params,\n success,\n error,\n trackedServers: [],\n handlers: {\n onData: existingSub?.handlers.onData || [],\n onClosed: existingSub?.handlers.onClosed || [],\n onConnected: existingSub?.handlers.onConnected || [],\n },\n queued: {\n data: [],\n closers: [],\n },\n timeoutId: undefined,\n close: () => this.closeSubscription(subLocalKey),\n subscription: existingSub?.subscription\n };\n if (!existingSub) {\n if (params.onData) {\n subsInfo.handlers.onData.push(params.onData);\n }\n if (params.onClosed) {\n subsInfo.handlers.onClosed.push(params.onClosed);\n }\n if (params.onConnected) {\n subsInfo.handlers.onConnected.push(params.onConnected);\n }\n }\n this.subscriptionsList[subLocalKey] = subsInfo;\n subsInfo.timeoutId = setTimeout(() => {\n if (this.subscriptionsList[subLocalKey] === undefined) {\n return;\n }\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n error({\n method,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Subscription attempt timed out after \" + timeout + \" ms.\",\n });\n delete this.subscriptionsList[subLocalKey];\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED && pendingSub.trackedServers.length > 0) {\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return (typeof server.subscriptionId !== \"undefined\");\n });\n delete pendingSub.timeoutId;\n if (pendingSub.trackedServers.length <= 0) {\n this.callOnClosedHandlers(pendingSub);\n delete this.subscriptionsList[subLocalKey];\n }\n }\n }, timeout);\n return subsInfo;\n }\n handleErrorSubscribing = (errorResponse) => {\n const tag = errorResponse._tag;\n const subLocalKey = tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return server.serverId !== tag.serverId;\n });\n if (pendingSub.trackedServers.length <= 0) {\n clearTimeout(pendingSub.timeoutId);\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n const reason = (typeof errorResponse.reason === \"string\" && errorResponse.reason !== \"\") ?\n ' Publisher said \"' + errorResponse.reason + '\".' :\n \" No reason given.\";\n const callArgs = typeof pendingSub.params.arguments === \"object\" ?\n JSON.stringify(pendingSub.params.arguments) :\n \"{}\";\n pendingSub.error({\n message: ERR_MSG_SUB_REJECTED + reason + \" Called with:\" + callArgs,\n called_with: pendingSub.params.arguments,\n method: pendingSub.method,\n });\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED) {\n this.callOnClosedHandlers(pendingSub);\n }\n delete this.subscriptionsList[subLocalKey];\n }\n };\n handleSubscribed = (msg) => {\n const subLocalKey = msg._tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n const serverId = msg._tag.serverId;\n const acceptingServer = pendingSub.trackedServers\n .filter((server) => {\n return server.serverId === serverId;\n })[0];\n if (typeof acceptingServer !== \"object\") {\n return;\n }\n acceptingServer.subscriptionId = msg.subscription_id;\n this.subscriptionIdToLocalKeyMap[msg.subscription_id] = subLocalKey;\n const isFirstResponse = (pendingSub.status === STATUS_AWAITING_ACCEPT);\n pendingSub.status = STATUS_SUBSCRIBED;\n if (isFirstResponse) {\n let reconnect = false;\n let sub = pendingSub.subscription;\n if (sub) {\n sub.setNewSubscription(pendingSub);\n pendingSub.success(sub);\n reconnect = true;\n }\n else {\n sub = new UserSubscription(this.repository, pendingSub);\n pendingSub.subscription = sub;\n pendingSub.success(sub);\n }\n for (const handler of pendingSub.handlers.onConnected) {\n try {\n handler(sub.serverInstance, reconnect);\n }\n catch (e) {\n }\n }\n }\n };\n handleEventData = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const trackedServersFound = subscription.trackedServers.filter((s) => {\n return s.subscriptionId === msg.subscription_id;\n });\n if (trackedServersFound.length !== 1) {\n return;\n }\n const isPrivateData = msg.oob;\n const sendingServerId = trackedServersFound[0].serverId;\n const server = this.repository.getServerById(sendingServerId);\n const receivedStreamData = () => {\n return {\n data: msg.data,\n server: server?.instance ?? {},\n requestArguments: subscription.params.arguments,\n message: undefined,\n private: isPrivateData,\n };\n };\n const onDataHandlers = subscription.handlers.onData;\n const queuedData = subscription.queued.data;\n if (onDataHandlers.length > 0) {\n onDataHandlers.forEach((callback) => {\n if (typeof callback === \"function\") {\n callback(receivedStreamData());\n }\n });\n }\n else {\n queuedData.push(receivedStreamData());\n }\n };\n handleSubscriptionCancelled = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const expectedNewLength = subscription.trackedServers.length - 1;\n subscription.trackedServers = subscription.trackedServers.filter((server) => {\n if (server.subscriptionId === msg.subscription_id) {\n subscription.queued.closers.push(server.serverId);\n return false;\n }\n else {\n return true;\n }\n });\n if (subscription.trackedServers.length !== expectedNewLength) {\n return;\n }\n if (subscription.trackedServers.length <= 0) {\n this.timedCache.add(subscription);\n clearTimeout(subscription.timeoutId);\n this.callOnClosedHandlers(subscription);\n delete this.subscriptionsList[subLocalKey];\n }\n delete this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n };\n callOnClosedHandlers(subscription, reason) {\n const closersCount = subscription.queued.closers.length;\n const closingServerId = (closersCount > 0) ? subscription.queued.closers[closersCount - 1] : null;\n let closingServer;\n if (closingServerId !== undefined && typeof closingServerId === \"string\") {\n closingServer = this.repository.getServerById(closingServerId)?.instance ?? {};\n }\n subscription.handlers.onClosed.forEach((callback) => {\n if (typeof callback !== \"function\") {\n return;\n }\n callback({\n message: reason || ON_CLOSE_MSG_SERVER_INIT,\n requestArguments: subscription.params.arguments || {},\n server: closingServer,\n stream: subscription.method,\n });\n });\n }\n closeSubscription(subLocalKey) {\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n subscription.trackedServers.forEach((server) => {\n if (typeof server.subscriptionId === \"undefined\") {\n return;\n }\n subscription.queued.closers.push(server.serverId);\n this.session.sendFireAndForget({\n type: \"unsubscribe\",\n subscription_id: server.subscriptionId,\n reason_uri: \"\",\n reason: ON_CLOSE_MSG_CLIENT_INIT,\n }).catch((err) => {\n this.logger.warn(`Error sending unsubscribe for subscription id ${server.subscriptionId}: ${JSON.stringify(err)}`);\n });\n delete this.subscriptionIdToLocalKeyMap[server.subscriptionId];\n });\n subscription.trackedServers = [];\n this.callOnClosedHandlers(subscription, ON_CLOSE_MSG_CLIENT_INIT);\n delete this.subscriptionsList[subLocalKey];\n }\n}\n\nclass ClientProtocol {\n session;\n repository;\n logger;\n streaming;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"peer-added\", (msg) => this.handlePeerAdded(msg));\n session.on(\"peer-removed\", (msg) => this.handlePeerRemoved(msg));\n session.on(\"methods-added\", (msg) => this.handleMethodsAddedMessage(msg));\n session.on(\"methods-removed\", (msg) => this.handleMethodsRemovedMessage(msg));\n this.streaming = new ClientStreaming(session, repository, logger);\n }\n subscribe(stream, options, targetServers, success, error, existingSub) {\n this.streaming.subscribe(stream, options, targetServers, success, error, existingSub);\n }\n invoke(id, method, args, target) {\n const serverId = target.id;\n const methodId = method.gatewayId;\n const msg = {\n type: \"call\",\n server_id: serverId,\n method_id: methodId,\n arguments_kv: args,\n };\n return this.session.send(msg, { invocationId: id, serverId })\n .then((m) => this.handleResultMessage(m))\n .catch((err) => this.handleInvocationError(err));\n }\n drainSubscriptions() {\n return this.streaming.drainSubscriptions();\n }\n drainSubscriptionsCache() {\n return this.streaming.drainSubscriptionsCache();\n }\n handlePeerAdded(msg) {\n const newPeerId = msg.new_peer_id;\n const remoteId = msg.identity;\n const isLocal = msg.meta ? msg.meta.local : true;\n const pid = Number(remoteId.process);\n const serverInfo = {\n machine: remoteId.machine,\n pid: isNaN(pid) ? remoteId.process : pid,\n instance: remoteId.instance,\n application: remoteId.application,\n applicationName: remoteId.applicationName,\n environment: remoteId.environment,\n region: remoteId.region,\n user: remoteId.user,\n windowId: remoteId.windowId,\n peerId: newPeerId,\n api: remoteId.api,\n isLocal\n };\n this.repository.addServer(serverInfo, newPeerId);\n }\n handlePeerRemoved(msg) {\n const removedPeerId = msg.removed_id;\n const reason = msg.reason;\n this.repository.removeServerById(removedPeerId, reason);\n }\n handleMethodsAddedMessage(msg) {\n const serverId = msg.server_id;\n const methods = msg.methods;\n methods.forEach((method) => {\n this.repository.addServerMethod(serverId, method);\n });\n }\n handleMethodsRemovedMessage(msg) {\n const serverId = msg.server_id;\n const methodIdList = msg.methods;\n const server = this.repository.getServerById(serverId);\n if (server) {\n const serverMethodKeys = Object.keys(server.methods);\n serverMethodKeys.forEach((methodKey) => {\n const method = server.methods[methodKey];\n if (methodIdList.indexOf(method.gatewayId) > -1) {\n this.repository.removeServerMethod(serverId, methodKey);\n }\n });\n }\n }\n handleResultMessage(msg) {\n const invocationId = msg._tag.invocationId;\n const result = msg.result;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n return {\n invocationId,\n result,\n instance: server?.instance,\n status: InvokeStatus.Success,\n message: \"\"\n };\n }\n handleInvocationError(msg) {\n this.logger.debug(`handle invocation error ${JSON.stringify(msg)}`);\n if (\"_tag\" in msg) {\n const invocationId = msg._tag.invocationId;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n const message = msg.reason;\n const context = msg.context;\n return {\n invocationId,\n result: context,\n instance: server?.instance,\n status: InvokeStatus.Error,\n message\n };\n }\n else {\n return {\n invocationId: \"\",\n message: msg.message,\n status: InvokeStatus.Error,\n error: msg\n };\n }\n }\n}\n\nfunction gW3ProtocolFactory (instance, connection, clientRepository, serverRepository, libConfig, interop) {\n const logger = libConfig.logger.subLogger(\"gw3-protocol\");\n let resolveReadyPromise;\n const readyPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n const session = connection.domain(\"agm\", [\"subscribed\"]);\n const server = new ServerProtocol(session, clientRepository, serverRepository, logger.subLogger(\"server\"));\n const client = new ClientProtocol(session, clientRepository, logger.subLogger(\"client\"));\n async function handleReconnect() {\n logger.info(\"reconnected - will replay registered methods and subscriptions\");\n client.drainSubscriptionsCache().forEach((sub) => {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to soft-re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`soft-subscribing to method ${methodInfo.name} DONE`)).catch((error) => logger.warn(`subscribing to method ${methodInfo.name} failed: ${JSON.stringify(error)}}`));\n });\n const reconnectionPromises = [];\n const existingSubscriptions = client.drainSubscriptions();\n for (const sub of existingSubscriptions) {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n reconnectionPromises.push(interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`subscribing to method ${methodInfo.name} DONE`)));\n }\n const registeredMethods = serverRepository.getList();\n serverRepository.reset();\n for (const method of registeredMethods) {\n const def = method.definition;\n if (method.stream) {\n reconnectionPromises.push(interop.server.createStream(def, method.streamCallbacks, undefined, undefined, method.stream)\n .then(() => logger.info(`subscribing to method ${def.name} DONE`))\n .catch(() => logger.warn(`subscribing to method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallback) {\n reconnectionPromises.push(interop.register(def, method.theFunction.userCallback)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallbackAsync) {\n reconnectionPromises.push(interop.registerAsync(def, method.theFunction.userCallbackAsync)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n }\n await Promise.all(reconnectionPromises);\n logger.info(\"Interop is re-announced\");\n }\n function handleInitialJoin() {\n if (resolveReadyPromise) {\n resolveReadyPromise({\n client,\n server,\n });\n resolveReadyPromise = undefined;\n }\n }\n session.onJoined((reconnect) => {\n clientRepository.addServer(instance, connection.peerId);\n if (reconnect) {\n handleReconnect().then(() => connection.setLibReAnnounced({ name: \"interop\" })).catch((error) => logger.warn(`Error while re-announcing interop: ${JSON.stringify(error)}`));\n }\n else {\n handleInitialJoin();\n }\n });\n session.onLeft(() => {\n clientRepository.reset();\n });\n session.join();\n return readyPromise;\n}\n\nclass Interop {\n instance;\n readyPromise;\n client;\n server;\n unwrappedInstance;\n protocol;\n clientRepository;\n serverRepository;\n constructor(configuration) {\n if (typeof configuration === \"undefined\") {\n throw new Error(\"configuration is required\");\n }\n if (typeof configuration.connection === \"undefined\") {\n throw new Error(\"configuration.connections is required\");\n }\n const connection = configuration.connection;\n if (typeof configuration.methodResponseTimeout !== \"number\") {\n configuration.methodResponseTimeout = 30 * 1000;\n }\n if (typeof configuration.waitTimeoutMs !== \"number\") {\n configuration.waitTimeoutMs = 30 * 1000;\n }\n this.unwrappedInstance = new InstanceWrapper(this, undefined, connection);\n this.instance = this.unwrappedInstance.unwrap();\n this.clientRepository = new ClientRepository(configuration.logger.subLogger(\"cRep\"), this);\n this.serverRepository = new ServerRepository();\n let protocolPromise;\n if (connection.protocolVersion === 3) {\n protocolPromise = gW3ProtocolFactory(this.instance, connection, this.clientRepository, this.serverRepository, configuration, this);\n }\n else {\n throw new Error(`protocol ${connection.protocolVersion} not supported`);\n }\n this.readyPromise = protocolPromise.then((protocol) => {\n this.protocol = protocol;\n this.client = new Client(this.protocol, this.clientRepository, this.instance, configuration);\n this.server = new Server(this.protocol, this.serverRepository);\n return this;\n });\n }\n ready() {\n return this.readyPromise;\n }\n serverRemoved(callback) {\n return this.client.serverRemoved(callback);\n }\n serverAdded(callback) {\n return this.client.serverAdded(callback);\n }\n serverMethodRemoved(callback) {\n return this.client.serverMethodRemoved(callback);\n }\n serverMethodAdded(callback) {\n return this.client.serverMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.client.methodRemoved(callback);\n }\n methodAdded(callback) {\n return this.client.methodAdded(callback);\n }\n methodsForInstance(instance) {\n return this.client.methodsForInstance(instance);\n }\n methods(methodFilter) {\n return this.client.methods(methodFilter);\n }\n servers(methodFilter) {\n return this.client.servers(methodFilter);\n }\n subscribe(method, options, successCallback, errorCallback) {\n return this.client.subscribe(method, options, successCallback, errorCallback);\n }\n createStream(streamDef, callbacks, successCallback, errorCallback) {\n return this.server.createStream(streamDef, callbacks, successCallback, errorCallback);\n }\n unregister(methodFilter) {\n return this.server.unregister(methodFilter);\n }\n registerAsync(methodDefinition, callback) {\n return this.server.registerAsync(methodDefinition, callback);\n }\n register(methodDefinition, callback) {\n return this.server.register(methodDefinition, callback);\n }\n invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n return this.client.invoke(methodFilter, argumentObj, target, additionalOptions, success, error);\n }\n waitForMethod(name) {\n const pw = new PromiseWrapper();\n const unsubscribe = this.client.methodAdded((m) => {\n if (m.name === name) {\n unsubscribe();\n pw.resolve(m);\n }\n });\n return pw.promise;\n }\n}\n\nconst successMessages = [\"subscribed\", \"success\"];\nclass MessageBus {\n connection;\n logger;\n peerId;\n session;\n subscriptions;\n readyPromise;\n constructor(connection, logger) {\n this.connection = connection;\n this.logger = logger;\n this.peerId = connection.peerId;\n this.subscriptions = [];\n this.session = connection.domain(\"bus\", successMessages);\n this.readyPromise = this.session.join();\n this.readyPromise.then(() => {\n this.watchOnEvent();\n });\n }\n ready() {\n return this.readyPromise;\n }\n publish = (topic, data, options) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"publish\",\n topic,\n data,\n peer_id: this.peerId,\n routing_key: routingKey,\n target_identity: target\n });\n this.session.send(args)\n .catch((err) => {\n this.logger.error(`Failed to publish message to topic ${topic} with routing key ${routingKey} for ${JSON.stringify(target)}: ${JSON.stringify(err)}`);\n });\n };\n subscribe = (topic, callback, options) => {\n return new Promise((resolve, reject) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"subscribe\",\n topic,\n peer_id: this.peerId,\n routing_key: routingKey,\n source: target\n });\n this.session.send(args)\n .then((response) => {\n const { subscription_id } = response;\n this.subscriptions.push({ subscription_id, topic, callback, source: target });\n resolve({\n unsubscribe: () => {\n this.session.send({ type: \"unsubscribe\", subscription_id, peer_id: this.peerId })\n .then(() => {\n this.subscriptions = this.subscriptions.filter((s) => s.subscription_id !== subscription_id);\n }).catch((err) => {\n this.logger.warn(`Failed to send unsubscribe request for ${subscription_id}: ${JSON.stringify(err)}`);\n });\n return Promise.resolve();\n }\n });\n })\n .catch((error) => reject(error));\n });\n };\n watchOnEvent = () => {\n this.session.on(\"event\", (args) => {\n const { data, subscription_id } = args;\n const source = args[\"publisher-identity\"];\n const subscription = this.subscriptions.find((s) => s.subscription_id === subscription_id);\n if (subscription) {\n if (!subscription.source) {\n subscription.callback(data, subscription.topic, source);\n }\n else {\n if (this.keysMatch(subscription.source, source)) {\n subscription.callback(data, subscription.topic, source);\n }\n }\n }\n });\n };\n removeEmptyValues(obj) {\n const cleaned = {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] !== undefined && obj[key] !== null) {\n cleaned[key] = obj[key];\n }\n });\n return cleaned;\n }\n keysMatch(obj1, obj2) {\n const keysObj1 = Object.keys(obj1);\n let allMatch = true;\n keysObj1.forEach((key) => {\n if (obj1[key] !== obj2[key]) {\n allMatch = false;\n }\n });\n return allMatch;\n }\n}\n\nconst IOConnectCoreFactory = (userConfig, ext) => {\n const iodesktop = typeof window === \"object\" ? (window.iodesktop ?? window.glue42gd) : undefined;\n const preloadPromise = typeof window === \"object\" ? (window.gdPreloadPromise ?? Promise.resolve()) : Promise.resolve();\n const glueInitTimer = timer(\"glue\");\n userConfig = userConfig || {};\n ext = ext || {};\n const internalConfig = prepareConfig(userConfig, ext, iodesktop);\n let _connection;\n let _interop;\n let _logger;\n let _metrics;\n let _contexts;\n let _bus;\n let _allowTrace;\n const libs = {};\n function registerLib(name, inner, t) {\n _allowTrace = _logger.canPublish(\"trace\");\n if (_allowTrace) {\n _logger.trace(`registering ${name} module`);\n }\n const done = (e) => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (!_allowTrace) {\n return;\n }\n const traceMessage = e ?\n `${name} failed - ${e.message}` :\n `${name} is ready - ${t.endTime - t.startTime}`;\n _logger.trace(traceMessage);\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready()\n .then(() => {\n done();\n })\n .catch((e) => {\n const error = typeof e === \"string\" ? new Error(e) : e;\n done(error);\n });\n }\n else {\n done();\n }\n if (!Array.isArray(name)) {\n name = [name];\n }\n name.forEach((n) => {\n libs[n] = inner;\n IOConnectCoreFactory[n] = inner;\n });\n }\n function setupConnection() {\n const initTimer = timer(\"connection\");\n _connection = new Connection(internalConfig.connection, _logger.subLogger(\"connection\"));\n let authPromise = Promise.resolve(internalConfig.auth);\n if (internalConfig.connection && !internalConfig.auth) {\n if (iodesktop) {\n authPromise = iodesktop.getGWToken()\n .then((token) => {\n return {\n gatewayToken: token\n };\n });\n }\n else if (typeof window !== \"undefined\" && window?.glue42electron) {\n if (typeof window.glue42electron.gwToken === \"string\") {\n authPromise = Promise.resolve({\n gatewayToken: window.glue42electron.gwToken\n });\n }\n }\n else {\n authPromise = Promise.reject(\"You need to provide auth information\");\n }\n }\n return authPromise\n .then((authConfig) => {\n initTimer.mark(\"auth-promise-resolved\");\n let authRequest;\n if (Object.prototype.toString.call(authConfig) === \"[object Object]\") {\n authRequest = authConfig;\n }\n else {\n throw new Error(\"Invalid auth object - \" + JSON.stringify(authConfig));\n }\n return _connection.login(authRequest);\n })\n .then(() => {\n registerLib(\"connection\", _connection, initTimer);\n return internalConfig;\n })\n .catch((e) => {\n if (_connection) {\n _connection.logout();\n }\n throw e;\n });\n }\n function setupLogger() {\n const initTimer = timer(\"logger\");\n _logger = new Logger(`${internalConfig.connection.identity?.application}`, undefined, internalConfig.customLogger);\n _logger.consoleLevel(internalConfig.logger.console);\n _logger.publishLevel(internalConfig.logger.publish);\n if (_logger.canPublish(\"debug\")) {\n _logger.debug(\"initializing glue...\");\n }\n registerLib(\"logger\", _logger, initTimer);\n return Promise.resolve(undefined);\n }\n function setupMetrics() {\n const initTimer = timer(\"metrics\");\n const config = internalConfig.metrics;\n const metricsPublishingEnabledFunc = iodesktop?.getMetricsPublishingEnabled;\n const identity = internalConfig.connection.identity;\n const canUpdateMetric = metricsPublishingEnabledFunc ? metricsPublishingEnabledFunc : () => true;\n const disableAutoAppSystem = (typeof config !== \"boolean\" && config.disableAutoAppSystem) ?? false;\n _metrics = metrics({\n connection: config ? _connection : undefined,\n logger: _logger.subLogger(\"metrics\"),\n canUpdateMetric,\n system: \"Glue42\",\n service: identity?.service ?? iodesktop?.applicationName ?? internalConfig.application,\n instance: identity?.instance ?? identity?.windowId ?? nanoid(10),\n disableAutoAppSystem,\n pagePerformanceMetrics: typeof config !== \"boolean\" ? config?.pagePerformanceMetrics : undefined\n });\n registerLib(\"metrics\", _metrics, initTimer);\n return Promise.resolve();\n }\n function setupInterop() {\n const initTimer = timer(\"interop\");\n const agmConfig = {\n connection: _connection,\n logger: _logger.subLogger(\"interop\"),\n };\n _interop = new Interop(agmConfig);\n Logger.Interop = _interop;\n registerLib([\"interop\", \"agm\"], _interop, initTimer);\n return Promise.resolve();\n }\n function setupContexts() {\n const hasActivities = (internalConfig.activities && _connection.protocolVersion === 3);\n const needsContexts = internalConfig.contexts || hasActivities;\n if (needsContexts) {\n const initTimer = timer(\"contexts\");\n _contexts = new ContextsModule({\n connection: _connection,\n logger: _logger.subLogger(\"contexts\"),\n trackAllContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.trackAllContexts : false,\n reAnnounceKnownContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.reAnnounceKnownContexts : false\n });\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","sendFireAndForget","err","logger","warn","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","createRegistry$1","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","send","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper$1","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","PromiseWrapper","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","wasOpen","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_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","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","requestsMap","requestId","trace","loggedIn","handleSuccessMessage","handleErrorMessage","sm","destination","wasReconnect","handleJoined","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","loginRetryInProgress","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","attemptLoginWithRetry","msgObj","processStringMessage","processObjectMessage","msgType","unsub","ready","invocations","left","waitForInvocations","transportConfig","url","assign","auth","parse","startsWith","milliseconds","parseInt","isNaN","ex","oldToJson","username","password","authentication","setupAuthConfig","helloMsg","sessionId","sendOptions","maxRetries","welcomeMsg","tryAuthenticate","resolved_identity","available_domains","access_token","flowCallback","Buffer","getNewGWToken","method","flowName","provider","secret","providerContext","promises","all","getGWToken","order","Logger$1","Logger","subLoggers","_consoleLevel","_publishLevel","loggerFullName","includeTimeAndLevel","logFn","customLogFn","existingSub","publishLevel","level","consoleLevel","publishMessage","compareWith","loggerName","split","interop","Interop","methods","InteropMethodName","args","invoke","prefix","date","getHours","getMinutes","getSeconds","getMilliseconds","toPrint","GW_MESSAGE_CREATE_CONTEXT","GW_MESSAGE_ACTIVITY_CREATED","GW_MESSAGE_ACTIVITY_DESTROYED","GW_MESSAGE_CONTEXT_CREATED","GW_MESSAGE_CONTEXT_ADDED","GW_MESSAGE_SUBSCRIBE_CONTEXT","GW_MESSAGE_SUBSCRIBED_CONTEXT","GW_MESSAGE_UNSUBSCRIBE_CONTEXT","GW_MESSAGE_DESTROY_CONTEXT","GW_MESSAGE_CONTEXT_DESTROYED","GW_MESSAGE_UPDATE_CONTEXT","GW_MESSAGE_CONTEXT_UPDATED","GW_MESSAGE_JOINED_ACTIVITY","ContextMessageReplaySpec","version","GW3ContextData","contextId","isAnnounced","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","prev","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","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","isRunningInIoCdContext","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","myInstance","hasMyAppInSnapShot","hasMyInstanceInSnapShot","subscriptionFactory","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","dragMove","dragMoveSettings","showLoader","loader","hideLoader","lock","unlock","getIcon","setIcon","base64Image","setTabTooltip","tooltip","getTabTooltip","attachTab","tab","opt","sourceWindow","attachOptions","selected","detachTab","argsForSend","hideTabHeader","setTabHeaderVisible","toBeTabHeaderVisible","showPopup","createFlydown","setModalState","isModal","setZoomFactor","zoomIn","zoomOut","showDevTools","capture","captureOptions","flash","suppliedOptions","flashOptions","shouldFlash","flashTab","setSticky","setAllowWorkspaceDrop","pin","unpin","print","printOptions","printToPDF","printToPDFOptions","place","clearPlacement","clearPlacementSettings","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","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","noOperationHandler","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","reload","onHeaderVisibilityChanged","onWindowRemoved","internal","removeWindow","handleGroupVisibilityChanged","visibile","handleGroupHibernateChanged","isHibernatedFlag","groupAPI","groupInternal","groupsFactory","_groups","heardForWindowsCounter","findGroupByWindow","groupObj","waitForGroup","groupWrapper","onGroupAdded","createdGroupWrapper","createOrGet","deleteIfEmpty","findGroupWrapperByWindow","validateGroupIdArg","currentGroup","fromGroup","toGroup","moveWindow","groupEvents","groups","groupIds","idOrGroup","getMyGroup","onGroupRemoved","hibernate","resume","onHibernated","onResumed","groupsAPI","groupsEvents","onWindowMoved","WindowsFactory","channelsGetter","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","ignoreContexts","cbArgs","usersCbs","requestResult","autoSaveWindowContext","windowContext","activityContext","transformACSLayout","something","convertedValue","LayoutImpl","components","defineProperty","LayoutType","SwimlaneItemType","swTheme","swConfiguration","__createBinding","o","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__exportStar","require$$0","require$$1","require$$2","require$$3","require$$4","LayoutsCommandMethod","LayoutsAPIImpl","isRegisterMethodForLayoutModified","activityGetter","setDefaultGlobal","invokeMethodCore","clearDefaultGlobal","getDefaultGlobal","isSlimMode","l","gotSnapshot","save","verifyNotSlimMode","layoutObject","ignoreInstances","setAsCurrent","invokeMethodAndTrack","activityIdToJoin","closeRunningInstance","closeRunningInstances","closeMe","restoreOptions","activityToJoin","ignoreActivityWindowTypes","reuseExistingWindows","reuseWindows","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onDefaultGlobalChanged","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","selectedDefaultLayout","OnLayoutSelectedDefault","OnLayoutDeselectedDefault","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","selectedDefaultLayouts","deselected","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","verifyChannelExists","getWindowsOnChannel","validateChannelArg","validateWindowsWithChannelsFilter","getChannelsInfo","windowsAPI","er","restrict","restriction","validateRestrictionConfig","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","clearChannelData","changeSelector","newId","raiseChannelsChangedEvents","doesChannelExist","channelExistsPromise","intervalId","channelID","leaveCoreMulti","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","parsedType","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","didReplay","replayed","callbackWithTypesChecks","searchedType","parseDataAndInvokeSubscribeCallback","latestFdc3TypeEncoded","fdc3Data","encodedType","latestTypePropName","latestFDC3Type","channelId","isRestrictions","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","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","validateHandlerFilter","handlerFilter","openResolver","intent","contextTypes","applicationNames","excludeList","ctx","excludeListValidation","isExcludeListValid","validateResolverResponse","responseObj","isValid","userSettings","preserveChoice","compulsoryKeysExist","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","addedHandlerInfoPerApp","checkIfIntentsResolverIsEnabled","intentFilter","ctToLower","ct","resultTypeToLower","intentRequest","removeRememberedHandler","resolverInstance","resultFromRememberedHandler","checkHandleRaiseWithRememberedHandler","coreRaiseIntentFn","coreRaiseIntent","TIMEOUT_HIT","handleRaiseOnError","withIntentsInfo","appsWithIntents","intentDef","applicationTitle","applicationDescription","applicationIcon","serverWindowIds","serverWindowId","T42WndGetInfo","windowsInfos","windowsIdToTitle","constructIntentHandler","addIntentListener","registerPromise","intentFlag","buildInteropMethodName","unsubscribeIntent","filterHandlers","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","instanceTitle","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","onHandlerAdded","unAppAdded","appDef","constructIntentHandlerFromApp","unServerMethodAdded","intentsInfo","onHandlerRemoved","unAppRemoved","addedHandlerInfo","filteredIntentsWithHandlers","excludeIntentHandlers","exclusion","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]}
|
|
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/channels/channelIDUtils.ts","../src/windows/window.ts","../src/windows/environment/helpers.ts","../src/windows/environment/gd/executor.ts","../src/windows/environment/gd/gd.ts","../src/windows/environment/detector.ts","../src/windows/group.ts","../src/windows/groups.ts","../src/windows/main.ts","../src/layouts/store.ts","../src/layouts/contextProvider.ts","../src/layouts/transform.ts","../src/layouts/layout.ts","../../schemas/app/application.js","../../schemas/app/system.js","../../schemas/app/layout.js","../../schemas/app/swTheme.js","../../schemas/app/swConfiguration.js","../../schemas/app/main.js","../src/layouts/layouts.ts","../src/layouts/stream/acsStream.ts","../src/layouts/main.ts","../src/layouts/stream/nullStream.ts","../src/displays/displayManager.ts","../src/channels/agm.ts","../src/channels/contexts.ts","../src/channels/helpers.ts","../src/channels/channels.ts","../src/hotkeys/hotkeys.ts","../src/platform/main.ts","../src/config.ts","../src/notifications/notification.ts","../src/notifications/panel.ts","../src/notifications/main.ts","../src/themes/themes.ts","../node_modules/@interopio/utils/dist/utils.es.js","../src/intents/constants.ts","../src/intents/common.ts","../src/intents/helpers.ts","../src/intents/intents.ts","../src/prefs/index.ts","../src/cookies/index.ts","../src/eventsDispatcher.ts","../../../app/utils/promise.js","../src/interception/constants.ts","../src/interception/main.ts","../src/apps/my.ts","../src/apps/interop.ts","../src/apps/inMemoryStore.ts","../src/apps/registry.ts","../src/apps/errors.ts","../src/apps/instances.ts","../src/utils/appsController.ts","../src/glue.ts","../src/factoryCallInfo.ts","../src/apps/main.ts","../src/channels/main.ts","../src/hotkeys/main.ts","../src/themes/main.ts","../src/cookies/main.ts","../src/index.ts"],"sourcesContent":["var MetricTypes = {\n STRING: 1,\n NUMBER: 2,\n TIMESTAMP: 3,\n OBJECT: 4\n};\n\nfunction getMetricTypeByValue(metric) {\n if (metric.type === MetricTypes.TIMESTAMP) {\n return \"timestamp\";\n }\n else if (metric.type === MetricTypes.NUMBER) {\n return \"number\";\n }\n else if (metric.type === MetricTypes.STRING) {\n return \"string\";\n }\n else if (metric.type === MetricTypes.OBJECT) {\n return \"object\";\n }\n return \"unknown\";\n}\nfunction getTypeByValue(value) {\n if (value.constructor === Date) {\n return \"timestamp\";\n }\n else if (typeof value === \"number\") {\n return \"number\";\n }\n else if (typeof value === \"string\") {\n return \"string\";\n }\n else if (typeof value === \"object\") {\n return \"object\";\n }\n else {\n return \"string\";\n }\n}\nfunction serializeMetric(metric) {\n const serializedMetrics = {};\n const type = getMetricTypeByValue(metric);\n if (type === \"object\") {\n const values = Object.keys(metric.value).reduce((memo, key) => {\n const innerType = getTypeByValue(metric.value[key]);\n if (innerType === \"object\") {\n const composite = defineNestedComposite(metric.value[key]);\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite,\n };\n }\n else {\n memo[key] = {\n type: innerType,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n serializedMetrics.composite = values;\n }\n serializedMetrics.name = normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name);\n serializedMetrics.type = type;\n serializedMetrics.description = metric.description;\n serializedMetrics.context = {};\n return serializedMetrics;\n}\nfunction defineNestedComposite(values) {\n return Object.keys(values).reduce((memo, key) => {\n const type = getTypeByValue(values[key]);\n if (type === \"object\") {\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite: defineNestedComposite(values[key]),\n };\n }\n else {\n memo[key] = {\n type,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n}\nfunction normalizeMetricName(name) {\n if (typeof name !== \"undefined\" && name.length > 0 && name[0] !== \"/\") {\n return \"/\" + name;\n }\n else {\n return name;\n }\n}\nfunction getMetricValueByType(metric) {\n const type = getMetricTypeByValue(metric);\n if (type === \"timestamp\") {\n return Date.now();\n }\n else {\n return publishNestedComposite(metric.value);\n }\n}\nfunction publishNestedComposite(values) {\n if (typeof values !== \"object\") {\n return values;\n }\n return Object.keys(values).reduce((memo, key) => {\n const value = values[key];\n if (typeof value === \"object\" && value.constructor !== Date) {\n memo[key] = publishNestedComposite(value);\n }\n else if (value.constructor === Date) {\n memo[key] = new Date(value).getTime();\n }\n else if (value.constructor === Boolean) {\n memo[key] = value.toString();\n }\n else {\n memo[key] = value;\n }\n return memo;\n }, {});\n}\nfunction flatten(arr) {\n return arr.reduce((flat, toFlatten) => {\n return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);\n }, []);\n}\nfunction getHighestState(arr) {\n return arr.sort((a, b) => {\n if (!a.state) {\n return 1;\n }\n if (!b.state) {\n return -1;\n }\n return b.state - a.state;\n })[0];\n}\nfunction aggregateDescription(arr) {\n let msg = \"\";\n arr.forEach((m, idx, a) => {\n const path = m.path.join(\".\");\n if (idx === a.length - 1) {\n msg += path + \".\" + m.name + \": \" + m.description;\n }\n else {\n msg += path + \".\" + m.name + \": \" + m.description + \",\";\n }\n });\n if (msg.length > 100) {\n return msg.slice(0, 100) + \"...\";\n }\n else {\n return msg;\n }\n}\nfunction composeMsgForRootStateMetric(system) {\n const aggregatedState = system.root.getAggregateState();\n const merged = flatten(aggregatedState);\n const highestState = getHighestState(merged);\n const aggregateDesc = aggregateDescription(merged);\n return {\n description: aggregateDesc,\n value: highestState.state,\n };\n}\n\nfunction gw3 (connection, config) {\n if (!connection || typeof connection !== \"object\") {\n throw new Error(\"Connection is required parameter\");\n }\n let joinPromise;\n let session;\n const init = (repo) => {\n let resolveReadyPromise;\n joinPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n session = connection.domain(\"metrics\");\n session.onJoined((reconnect) => {\n if (!reconnect && resolveReadyPromise) {\n resolveReadyPromise();\n resolveReadyPromise = undefined;\n }\n const rootStateMetric = {\n name: \"/State\",\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const defineRootMetricsMsg = {\n type: \"define\",\n metrics: [rootStateMetric],\n };\n session.sendFireAndForget(defineRootMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for root state metric: ${JSON.stringify(err)}`);\n });\n if (reconnect) {\n replayRepo(repo);\n }\n });\n session.join({\n system: config.system,\n service: config.service,\n instance: config.instance\n });\n };\n const replayRepo = (repo) => {\n replaySystem(repo.root);\n };\n const replaySystem = (system) => {\n createSystem(system);\n system.metrics.forEach((m) => {\n createMetric(m);\n });\n system.subSystems.forEach((ss) => {\n replaySystem(ss);\n });\n };\n const createSystem = async (system) => {\n if (system.parent === undefined) {\n return;\n }\n await joinPromise;\n const metric = {\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const createMetricsMsg = {\n type: \"define\",\n metrics: [metric],\n };\n session.sendFireAndForget(createMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for system state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n };\n const updateSystem = async (system, state) => {\n await joinPromise;\n const shadowedUpdateMetric = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n value: {\n Description: state.description,\n Value: state.state,\n },\n timestamp: Date.now(),\n }],\n };\n session.sendFireAndForget(shadowedUpdateMetric)\n .catch((err) => {\n config.logger.warn(`Failed to send update for system state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n const stateObj = composeMsgForRootStateMetric(system);\n const rootMetric = {\n type: \"publish\",\n peer_id: connection.peerId,\n values: [{\n name: \"/State\",\n value: {\n Description: stateObj.description,\n Value: stateObj.value,\n },\n timestamp: Date.now(),\n }],\n };\n session.sendFireAndForget(rootMetric)\n .catch((err) => {\n config.logger.warn(`Failed to send update for root state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n };\n const createMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n const m = serializeMetric(metricClone);\n const createMetricsMsg = {\n type: \"define\",\n metrics: [m],\n };\n session.sendFireAndForget(createMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for metric ${metric.name}: ${JSON.stringify(err)}`);\n });\n if (typeof metricClone.value !== \"undefined\") {\n updateMetricCore(metricClone);\n }\n };\n const updateMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n updateMetricCore(metricClone);\n };\n const updateMetricCore = (metric) => {\n if (canUpdate()) {\n const value = getMetricValueByType(metric);\n const publishMetricsMsg = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name),\n value,\n timestamp: Date.now(),\n }],\n };\n return session.sendFireAndForget(publishMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to publish metric ${metric.name}: ${JSON.stringify(err)}`);\n });\n }\n return Promise.resolve();\n };\n const cloneMetric = (metric) => {\n const metricClone = { ...metric };\n if (typeof metric.value === \"object\" && metric.value !== null) {\n metricClone.value = { ...metric.value };\n }\n return metricClone;\n };\n const canUpdate = () => {\n try {\n const func = config.canUpdateMetric ?? (() => true);\n return func();\n }\n catch {\n return true;\n }\n };\n return {\n init,\n createSystem,\n updateSystem,\n createMetric,\n updateMetric,\n };\n}\n\nvar Helpers = {\n validate: (definition, parent, transport) => {\n if (definition === null || typeof definition !== \"object\") {\n throw new Error(\"Missing definition\");\n }\n if (parent === null || typeof parent !== \"object\") {\n throw new Error(\"Missing parent\");\n }\n if (transport === null || typeof transport !== \"object\") {\n throw new Error(\"Missing transport\");\n }\n },\n};\n\nclass BaseMetric {\n definition;\n system;\n transport;\n value;\n type;\n path = [];\n name;\n description;\n get repo() {\n return this.system?.repo;\n }\n get id() { return `${this.system.path}/${name}`; }\n constructor(definition, system, transport, value, type) {\n this.definition = definition;\n this.system = system;\n this.transport = transport;\n this.value = value;\n this.type = type;\n Helpers.validate(definition, system, transport);\n this.path = system.path.slice(0);\n this.path.push(system.name);\n this.name = definition.name;\n this.description = definition.description;\n transport.createMetric(this);\n }\n update(newValue) {\n this.value = newValue;\n return this.transport.updateMetric(this);\n }\n}\n\nclass NumberMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.NUMBER);\n }\n incrementBy(num) {\n this.update(this.value + num);\n }\n increment() {\n this.incrementBy(1);\n }\n decrement() {\n this.incrementBy(-1);\n }\n decrementBy(num) {\n this.incrementBy(num * -1);\n }\n}\n\nclass ObjectMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.OBJECT);\n }\n update(newValue) {\n this.mergeValues(newValue);\n return this.transport.updateMetric(this);\n }\n mergeValues(values) {\n return Object.keys(this.value).forEach((k) => {\n if (typeof values[k] !== \"undefined\") {\n this.value[k] = values[k];\n }\n });\n }\n}\n\nclass StringMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.STRING);\n }\n}\n\nclass TimestampMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.TIMESTAMP);\n }\n now() {\n this.update(new Date());\n }\n}\n\nfunction system(name, repo, protocol, parent, description) {\n if (!repo) {\n throw new Error(\"Repository is required\");\n }\n if (!protocol) {\n throw new Error(\"Transport is required\");\n }\n const _transport = protocol;\n const _name = name;\n const _description = description || \"\";\n const _repo = repo;\n const _parent = parent;\n const _path = _buildPath(parent);\n let _state = {};\n const id = _arrayToString(_path, \"/\") + name;\n const root = repo.root;\n const _subSystems = [];\n const _metrics = [];\n function subSystem(nameSystem, descriptionSystem) {\n if (!nameSystem || nameSystem.length === 0) {\n throw new Error(\"name is required\");\n }\n const match = _subSystems.filter((s) => s.name === nameSystem);\n if (match.length > 0) {\n return match[0];\n }\n const _system = system(nameSystem, _repo, _transport, me, descriptionSystem);\n _subSystems.push(_system);\n return _system;\n }\n function setState(state, stateDescription) {\n _state = { state, description: stateDescription };\n _transport.updateSystem(me, _state);\n }\n function stringMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.STRING, value, (metricDef) => new StringMetric(metricDef, me, _transport, value));\n }\n function numberMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.NUMBER, value, (metricDef) => new NumberMetric(metricDef, me, _transport, value));\n }\n function objectMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.OBJECT, value, (metricDef) => new ObjectMetric(metricDef, me, _transport, value));\n }\n function timestampMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.TIMESTAMP, value, (metricDef) => new TimestampMetric(metricDef, me, _transport, value));\n }\n function _getOrCreateMetric(metricObject, expectedType, value, createMetric) {\n let metricDef = { name: \"\" };\n if (typeof metricObject === \"string\") {\n metricDef = { name: metricObject };\n }\n else {\n metricDef = metricObject;\n }\n const matching = _metrics.filter((shadowedMetric) => shadowedMetric.name === metricDef.name);\n if (matching.length > 0) {\n const existing = matching[0];\n if (existing.type !== expectedType) {\n throw new Error(`A metric named ${metricDef.name} is already defined with different type.`);\n }\n if (typeof value !== \"undefined\") {\n existing\n .update(value)\n .catch(() => { });\n }\n return existing;\n }\n const metric = createMetric(metricDef);\n _metrics.push(metric);\n return metric;\n }\n function _buildPath(shadowedSystem) {\n if (!shadowedSystem || !shadowedSystem.parent) {\n return [];\n }\n const path = _buildPath(shadowedSystem.parent);\n path.push(shadowedSystem.name);\n return path;\n }\n function _arrayToString(path, separator) {\n return ((path && path.length > 0) ? path.join(separator) : \"\");\n }\n function getAggregateState() {\n const aggState = [];\n if (Object.keys(_state).length > 0) {\n aggState.push({\n name: _name,\n path: _path,\n state: _state.state,\n description: _state.description,\n });\n }\n _subSystems.forEach((shadowedSubSystem) => {\n const result = shadowedSubSystem.getAggregateState();\n if (result.length > 0) {\n aggState.push(...result);\n }\n });\n return aggState;\n }\n const me = {\n get name() {\n return _name;\n },\n get description() {\n return _description;\n },\n get repo() {\n return _repo;\n },\n get parent() {\n return _parent;\n },\n path: _path,\n id,\n root,\n get subSystems() {\n return _subSystems;\n },\n get metrics() {\n return _metrics;\n },\n subSystem,\n getState: () => {\n return _state;\n },\n setState,\n stringMetric,\n timestampMetric,\n objectMetric,\n numberMetric,\n getAggregateState,\n };\n _transport.createSystem(me);\n return me;\n}\n\nclass Repository {\n root;\n constructor(options, protocol) {\n protocol.init(this);\n this.root = system(\"\", this, protocol);\n this.addSystemMetrics(this.root, options.clickStream || options.clickStream === undefined);\n }\n addSystemMetrics(rootSystem, useClickStream) {\n if (typeof navigator !== \"undefined\") {\n rootSystem.stringMetric(\"UserAgent\", navigator.userAgent);\n }\n if (useClickStream && typeof document !== \"undefined\") {\n const clickStream = rootSystem.subSystem(\"ClickStream\");\n const documentClickHandler = (e) => {\n if (!e.target) {\n return;\n }\n const target = e.target;\n const className = target ? target.getAttribute(\"class\") ?? \"\" : \"\";\n clickStream.objectMetric(\"LastBrowserEvent\", {\n type: \"click\",\n timestamp: new Date(),\n target: {\n className,\n id: target.id,\n type: \"<\" + target.tagName.toLowerCase() + \">\",\n href: target.href || \"\",\n },\n });\n };\n clickStream.objectMetric(\"Page\", {\n title: document.title,\n page: window.location.href,\n });\n if (document.addEventListener) {\n document.addEventListener(\"click\", documentClickHandler);\n }\n else {\n document.attachEvent(\"onclick\", documentClickHandler);\n }\n }\n rootSystem.stringMetric(\"StartTime\", (new Date()).toString());\n const urlMetric = rootSystem.stringMetric(\"StartURL\", \"\");\n const appNameMetric = rootSystem.stringMetric(\"AppName\", \"\");\n if (typeof window !== \"undefined\") {\n if (typeof window.location !== \"undefined\") {\n const startUrl = window.location.href;\n urlMetric.update(startUrl);\n }\n if (typeof window.glue42gd !== \"undefined\") {\n appNameMetric.update(window.glue42gd.appName);\n }\n }\n }\n}\n\nclass NullProtocol {\n init(repo) {\n }\n createSystem(system) {\n return Promise.resolve();\n }\n updateSystem(metric, state) {\n return Promise.resolve();\n }\n createMetric(metric) {\n return Promise.resolve();\n }\n updateMetric(metric) {\n return Promise.resolve();\n }\n}\n\nclass PerfTracker {\n api;\n lastCount = 0;\n initialPublishTimeout = 10 * 1000;\n publishInterval = 60 * 1000;\n system;\n constructor(api, initialPublishTimeout, publishInterval) {\n this.api = api;\n this.initialPublishTimeout = initialPublishTimeout ?? this.initialPublishTimeout;\n this.publishInterval = publishInterval ?? this.publishInterval;\n this.scheduleCollection();\n this.system = this.api.subSystem(\"performance\", \"Performance data published by the web application\");\n }\n scheduleCollection() {\n setTimeout(() => {\n this.collect();\n setInterval(() => {\n this.collect();\n }, this.publishInterval);\n }, this.initialPublishTimeout);\n }\n collect() {\n try {\n this.collectMemory();\n this.collectEntries();\n }\n catch {\n }\n }\n collectMemory() {\n const memory = window.performance.memory;\n this.system.stringMetric(\"memory\", JSON.stringify({\n totalJSHeapSize: memory.totalJSHeapSize,\n usedJSHeapSize: memory.usedJSHeapSize\n }));\n }\n collectEntries() {\n const allEntries = window.performance.getEntries();\n if (allEntries.length <= this.lastCount) {\n return;\n }\n this.lastCount = allEntries.length;\n const jsonfiedEntries = allEntries.map((i) => i.toJSON());\n this.system.stringMetric(\"entries\", JSON.stringify(jsonfiedEntries));\n }\n}\n\nvar metrics = (options) => {\n let protocol;\n if (!options.connection || typeof options.connection !== \"object\") {\n protocol = new NullProtocol();\n }\n else {\n protocol = gw3(options.connection, options);\n }\n const repo = new Repository(options, protocol);\n let rootSystem = repo.root;\n if (!options.disableAutoAppSystem) {\n rootSystem = rootSystem.subSystem(\"App\");\n }\n const api = addFAVSupport(rootSystem);\n initPerf(api, options.pagePerformanceMetrics);\n return api;\n};\nfunction initPerf(api, config) {\n if (typeof window === \"undefined\") {\n return;\n }\n const perfConfig = window?.glue42gd?.metrics?.pagePerformanceMetrics;\n if (perfConfig) {\n config = perfConfig;\n }\n if (config?.enabled) {\n new PerfTracker(api, config.initialPublishTimeout, config.publishInterval);\n }\n}\nfunction addFAVSupport(system) {\n const reportingSystem = system.subSystem(\"reporting\");\n const def = {\n name: \"features\"\n };\n let featureMetric;\n const featureMetricFunc = (name, action, payload) => {\n if (typeof name === \"undefined\" || name === \"\") {\n throw new Error(\"name is mandatory\");\n }\n else if (typeof action === \"undefined\" || action === \"\") {\n throw new Error(\"action is mandatory\");\n }\n else if (typeof payload === \"undefined\" || payload === \"\") {\n throw new Error(\"payload is mandatory\");\n }\n if (!featureMetric) {\n featureMetric = reportingSystem.objectMetric(def, { name, action, payload });\n }\n else {\n featureMetric.update({\n name,\n action,\n payload\n });\n }\n };\n system.featureMetric = featureMetricFunc;\n return system;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\ncreateRegistry.default = createRegistry;\nvar lib = createRegistry;\n\n\nvar CallbackRegistryFactory = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass InProcTransport {\n gw;\n registry = CallbackRegistryFactory();\n client;\n constructor(settings, logger) {\n this.gw = settings.facade;\n this.gw.connect((_client, message) => {\n this.messageHandler(message);\n }).then((client) => {\n this.client = client;\n });\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n if (this.client) {\n this.client.send(msg);\n return Promise.resolve(undefined);\n }\n else {\n return Promise.reject(`not connected`);\n }\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"in-memory\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass SharedWorkerTransport {\n logger;\n worker;\n registry = CallbackRegistryFactory();\n constructor(workerFile, logger) {\n this.logger = logger;\n this.worker = new SharedWorker(workerFile);\n this.worker.port.onmessage = (e) => {\n this.messageHandler(e.data);\n };\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n this.worker.port.postMessage(msg);\n return Promise.resolve();\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"shared-worker\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass Utils {\n static isNode() {\n if (typeof Utils._isNode !== \"undefined\") {\n return Utils._isNode;\n }\n if (typeof window !== \"undefined\") {\n Utils._isNode = false;\n return false;\n }\n try {\n Utils._isNode = Object.prototype.toString.call(global.process) === \"[object process]\";\n }\n catch (e) {\n Utils._isNode = false;\n }\n return Utils._isNode;\n }\n static _isNode;\n}\n\nclass PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n resolve;\n reject;\n promise;\n rejected = false;\n resolved = false;\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\n\nconst timers = {};\nfunction getAllTimers() {\n return timers;\n}\nfunction timer (timerName) {\n const existing = timers[timerName];\n if (existing) {\n return existing;\n }\n const marks = [];\n function now() {\n return new Date().getTime();\n }\n const startTime = now();\n mark(\"start\", startTime);\n let endTime;\n let period;\n function stop() {\n endTime = now();\n mark(\"end\", endTime);\n period = endTime - startTime;\n return period;\n }\n function mark(name, time) {\n const currentTime = time ?? now();\n let diff = 0;\n if (marks.length > 0) {\n diff = currentTime - marks[marks.length - 1].time;\n }\n marks.push({ name, time: currentTime, diff });\n }\n const timerObj = {\n get startTime() {\n return startTime;\n },\n get endTime() {\n return endTime;\n },\n get period() {\n return period;\n },\n stop,\n mark,\n marks\n };\n timers[timerName] = timerObj;\n return timerObj;\n}\n\nconst WebSocketConstructor = Utils.isNode() ? require(\"ws\") : window.WebSocket;\nclass WS {\n ws;\n logger;\n settings;\n startupTimer = timer(\"connection\");\n _running = true;\n _registry = CallbackRegistryFactory();\n wsRequests = [];\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n if (!this.settings.ws) {\n throw new Error(\"ws is missing\");\n }\n }\n onMessage(callback) {\n return this._registry.add(\"onMessage\", callback);\n }\n send(msg, options) {\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(() => {\n try {\n this.ws?.send(msg);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n });\n }\n open() {\n this.logger.info(\"opening ws...\");\n this._running = true;\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(resolve, reject);\n });\n }\n close() {\n this._running = false;\n if (this.ws) {\n this.ws.close();\n }\n return Promise.resolve();\n }\n onConnectedChanged(callback) {\n return this._registry.add(\"onConnectedChanged\", callback);\n }\n name() {\n return this.settings.ws;\n }\n reconnect() {\n this.ws?.close();\n const pw = new PromiseWrapper();\n this.waitForSocketConnection(() => {\n pw.resolve();\n });\n return pw.promise;\n }\n waitForSocketConnection(callback, failed) {\n failed = failed ?? (() => { });\n if (!this._running) {\n failed(`wait for socket on ${this.settings.ws} failed - socket closed by user`);\n return;\n }\n if (this.ws?.readyState === 1) {\n callback();\n return;\n }\n this.wsRequests.push({ callback, failed });\n if (this.wsRequests.length > 1) {\n return;\n }\n this.openSocket();\n }\n async openSocket(retryInterval, retriesLeft) {\n this.logger.info(`opening ws to ${this.settings.ws}, retryInterval: ${retryInterval}, retriesLeft: ${retriesLeft}...`);\n this.startupTimer.mark(\"opening-socket\");\n if (retryInterval === undefined) {\n retryInterval = this.settings.reconnectInterval;\n }\n if (typeof retriesLeft === \"undefined\") {\n retriesLeft = this.settings.reconnectAttempts;\n }\n if (retriesLeft !== undefined) {\n if (retriesLeft === 0) {\n this.notifyForSocketState(`wait for socket on ${this.settings.ws} failed - no more retries left`);\n return;\n }\n this.logger.debug(`will retry ${retriesLeft} more times (every ${retryInterval} ms)`);\n }\n try {\n await this.initiateSocket();\n this.startupTimer.mark(\"socket-initiated\");\n this.notifyForSocketState();\n }\n catch {\n setTimeout(() => {\n const retries = retriesLeft === undefined ? undefined : retriesLeft - 1;\n this.openSocket(retryInterval, retries);\n }, retryInterval);\n }\n }\n initiateSocket() {\n const pw = new PromiseWrapper();\n this.logger.debug(`initiating ws to ${this.settings.ws}...`);\n this.ws = new WebSocketConstructor(this.settings.ws ?? \"\");\n let wasOpen = false;\n this.ws.onerror = (err) => {\n let reason;\n try {\n reason = JSON.stringify(err);\n }\n catch (error) {\n const seen = new WeakSet();\n const replacer = (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n reason = JSON.stringify(err, replacer);\n }\n this.logger.info(`ws error - reason: ${reason}`);\n pw.reject(\"error\");\n if (wasOpen) {\n wasOpen = false;\n this.notifyForSocketState(\"error\");\n }\n this.notifyStatusChanged(false, reason);\n };\n this.ws.onclose = (err) => {\n this.logger.info(`ws closed - code: ${err?.code} reason: ${err?.reason}`);\n pw.reject(\"closed\");\n if (wasOpen) {\n wasOpen = false;\n this.notifyForSocketState(\"closed\");\n }\n this.notifyStatusChanged(false);\n };\n this.ws.onopen = () => {\n this.startupTimer.mark(\"ws-opened\");\n this.logger.info(`ws opened ${this.settings.identity?.application}`);\n pw.resolve();\n wasOpen = true;\n this.notifyStatusChanged(true);\n };\n this.ws.onmessage = (message) => {\n this._registry.execute(\"onMessage\", message.data);\n };\n return pw.promise;\n }\n notifyForSocketState(error) {\n this.wsRequests.forEach((wsRequest) => {\n if (error) {\n if (wsRequest.failed) {\n wsRequest.failed(error);\n }\n }\n else {\n wsRequest.callback();\n }\n });\n this.wsRequests = [];\n }\n notifyStatusChanged(status, reason) {\n this._registry.execute(\"onConnectedChanged\", status, reason);\n }\n}\n\nclass MessageReplayerImpl {\n specs;\n specsNames = [];\n messages = {};\n isDone;\n subs = {};\n subsRefCount = {};\n connection;\n constructor(specs) {\n this.specs = {};\n for (const spec of specs) {\n this.specs[spec.name] = spec;\n this.specsNames.push(spec.name);\n }\n }\n init(connection) {\n this.connection = connection;\n for (const name of this.specsNames) {\n for (const type of this.specs[name].types) {\n let refCount = this.subsRefCount[type];\n if (!refCount) {\n refCount = 0;\n }\n refCount += 1;\n this.subsRefCount[type] = refCount;\n if (refCount > 1) {\n continue;\n }\n const sub = connection.on(type, (msg) => this.processMessage(type, msg));\n this.subs[type] = sub;\n }\n }\n }\n processMessage(type, msg) {\n if (this.isDone || !msg) {\n return;\n }\n for (const name of this.specsNames) {\n if (this.specs[name].types.indexOf(type) !== -1) {\n const messages = this.messages[name] || [];\n this.messages[name] = messages;\n messages.push(msg);\n }\n }\n }\n drain(name, callback) {\n if (callback) {\n (this.messages[name] || []).forEach(callback);\n }\n delete this.messages[name];\n for (const type of this.specs[name].types) {\n this.subsRefCount[type] -= 1;\n if (this.subsRefCount[type] <= 0) {\n this.connection?.off(this.subs[type]);\n delete this.subs[type];\n delete this.subsRefCount[type];\n }\n }\n delete this.specs[name];\n if (!this.specs.length) {\n this.isDone = true;\n }\n }\n}\n\n/* @ts-self-types=\"./index.d.ts\" */\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size | 0;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n};\n\nconst PromisePlus = (executor, timeoutMilliseconds, timeoutMessage) => {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n reject(message);\n }, timeoutMilliseconds);\n const providedPromise = new Promise(executor);\n providedPromise\n .then((result) => {\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n\nclass WebPlatformTransport {\n settings;\n logger;\n identity;\n isPreferredActivated;\n _connectionProtocolVersion;\n _communicationId;\n publicWindowId;\n selfAssignedWindowId;\n iAmConnected = false;\n parentReady = false;\n rejected = false;\n parentPingResolve;\n parentPingInterval;\n connectionResolve;\n extConnectionResolve;\n extConnectionReject;\n connectionReject;\n port;\n myClientId;\n extContentAvailable = false;\n extContentConnecting = false;\n extContentConnected = false;\n parentWindowId;\n parentInExtMode = false;\n webNamespace = \"g42_core_web\";\n parent;\n parentType;\n parentPingTimeout = 5000;\n connectionRequestTimeout = 7000;\n defaultTargetString = \"*\";\n registry = CallbackRegistryFactory();\n messages = {\n connectionAccepted: { name: \"connectionAccepted\", handle: this.handleConnectionAccepted.bind(this) },\n connectionRejected: { name: \"connectionRejected\", handle: this.handleConnectionRejected.bind(this) },\n connectionRequest: { name: \"connectionRequest\", handle: this.handleConnectionRequest.bind(this) },\n parentReady: {\n name: \"parentReady\", handle: () => {\n }\n },\n parentPing: { name: \"parentPing\", handle: this.handleParentPing.bind(this) },\n platformPing: { name: \"platformPing\", handle: this.handlePlatformPing.bind(this) },\n platformReady: { name: \"platformReady\", handle: this.handlePlatformReady.bind(this) },\n clientUnload: { name: \"clientUnload\", handle: () => { } },\n manualUnload: { name: \"manualUnload\", handle: this.handleManualUnload.bind(this) },\n extConnectionResponse: { name: \"extConnectionResponse\", handle: this.handleExtConnectionResponse.bind(this) },\n extSetupRequest: { name: \"extSetupRequest\", handle: this.handleExtSetupRequest.bind(this) },\n gatewayDisconnect: { name: \"gatewayDisconnect\", handle: this.handleGatewayDisconnect.bind(this) },\n gatewayInternalConnect: { name: \"gatewayInternalConnect\", handle: this.handleGatewayInternalConnect.bind(this) }\n };\n constructor(settings, logger, identity) {\n this.settings = settings;\n this.logger = logger;\n this.identity = identity;\n this.extContentAvailable = !!window.glue42ext;\n this.setUpMessageListener();\n this.setUpUnload();\n this.setupPlatformUnloadListener();\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : undefined;\n }\n manualSetReadyState() {\n this.iAmConnected = true;\n this.parentReady = true;\n }\n get transportWindowId() {\n return this.publicWindowId;\n }\n get communicationId() {\n return this._communicationId;\n }\n async sendObject(msg) {\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: msg }, window.origin);\n }\n if (!this.port) {\n throw new Error(\"Cannot send message, because the port was not opened yet\");\n }\n this.port.postMessage(msg);\n }\n get isObjectBasedTransport() {\n return true;\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n send() {\n return Promise.reject(\"not supported\");\n }\n onConnectedChanged(callback) {\n return this.registry.add(\"onConnectedChanged\", callback);\n }\n async open() {\n this.logger.debug(\"opening a connection to the web platform gateway.\");\n await this.connect();\n this.notifyStatusChanged(true);\n }\n close() {\n const message = {\n glue42core: {\n type: this.messages.gatewayDisconnect.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.port?.postMessage(message);\n this.parentReady = false;\n this.notifyStatusChanged(false, \"manual reconnection\");\n return Promise.resolve();\n }\n name() {\n return \"web-platform\";\n }\n async reconnect() {\n await this.close();\n return Promise.resolve();\n }\n initiateInternalConnection() {\n return new Promise((resolve, reject) => {\n this.logger.debug(\"opening an internal web platform connection\");\n this.port = this.settings.port;\n if (this.iAmConnected) {\n this.logger.warn(\"cannot open a new connection, because this client is currently connected\");\n return;\n }\n this.port.onmessage = (event) => {\n if (this.iAmConnected && !event.data?.glue42core) {\n this.registry.execute(\"onMessage\", event.data);\n return;\n }\n const data = event.data?.glue42core;\n if (!data) {\n return;\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.success) {\n this.publicWindowId = this.settings.windowId;\n if (this.identity && this.publicWindowId) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.publicWindowId;\n }\n resolve();\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.error) {\n reject(data.error);\n }\n };\n this.port.postMessage({\n glue42core: {\n type: this.messages.gatewayInternalConnect.name\n }\n });\n });\n }\n initiateRemoteConnection(target) {\n return PromisePlus((resolve, reject) => {\n this.connectionResolve = resolve;\n this.connectionReject = reject;\n this.myClientId = this.myClientId ?? nanoid(10);\n const bridgeInstanceId = this.getMyWindowId() || nanoid(10);\n const request = {\n glue42core: {\n type: this.messages.connectionRequest.name,\n clientId: this.myClientId,\n clientType: \"child\",\n bridgeInstanceId,\n selfAssignedWindowId: this.selfAssignedWindowId\n }\n };\n this.logger.debug(\"sending connection request\");\n if (this.extContentConnecting) {\n request.glue42core.clientType = \"child\";\n request.glue42core.bridgeInstanceId = this.myClientId;\n request.glue42core.parentWindowId = this.parentWindowId;\n return window.postMessage(request, window.origin);\n }\n if (!target) {\n throw new Error(\"Cannot send a connection request, because no glue target was specified!\");\n }\n target.postMessage(request, this.defaultTargetString);\n }, this.connectionRequestTimeout, \"The connection to the target glue window timed out\");\n }\n async isParentCheckSuccess(parentCheck) {\n try {\n await parentCheck;\n return { success: true };\n }\n catch (error) {\n return { success: false };\n }\n }\n setUpMessageListener() {\n if (this.settings.port) {\n this.logger.debug(\"skipping generic message listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"message\", (event) => {\n const data = event.data?.glue42core;\n if (!data || this.rejected) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n if (!this.checkMessageTypeValid(data.type)) {\n this.logger.error(`cannot handle the incoming glue42 core message, because the type is invalid: ${data.type}`);\n return;\n }\n const messageType = data.type;\n this.logger.debug(`received valid glue42core message of type: ${messageType}`);\n this.messages[messageType].handle(event);\n });\n }\n setUpUnload() {\n if (this.settings.port) {\n this.logger.debug(\"skipping unload event listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"beforeunload\", () => {\n if (this._connectionProtocolVersion) {\n return;\n }\n this.signalClientDisappearing();\n });\n window.addEventListener(\"pagehide\", () => {\n if (!this._connectionProtocolVersion) {\n return;\n }\n this.signalClientDisappearing();\n });\n }\n signalClientDisappearing() {\n if (this.extContentConnected) {\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.parent?.postMessage(message, this.defaultTargetString);\n this.port?.postMessage(message);\n }\n handlePlatformReady(event) {\n this.logger.debug(\"the web platform gave the ready signal\");\n this.parentReady = true;\n if (this.parentPingResolve) {\n this.parentPingResolve();\n delete this.parentPingResolve;\n }\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n this.parent = event.source;\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : \"window\";\n }\n handleConnectionAccepted(event) {\n const data = event.data?.glue42core;\n if (this.myClientId !== data.clientId) {\n return this.logger?.debug(`ignoring a connection accepted signal, because it is not targeted at me. My id: ${this.myClientId}, the id in the message: ${data.clientId}`);\n }\n return this.handleAcceptanceOfMyRequest(data);\n }\n handleAcceptanceOfMyRequest(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me.\");\n this.isPreferredActivated = data.isPreferredActivated;\n if (this.extContentConnecting) {\n return this.processExtContentConnection(data);\n }\n if (!data.port) {\n this.logger.error(\"cannot set up my connection, because I was not provided with a port\");\n return;\n }\n this._connectionProtocolVersion = data.connectionProtocolVersion;\n this.publicWindowId = this.getMyWindowId();\n if (this.identity) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.identity.instance ? this.identity.instance : this.publicWindowId || nanoid(10);\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n this._communicationId = data.communicationId;\n this.port = data.port;\n this.port.onmessage = (e) => this.registry.execute(\"onMessage\", e.data);\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n this.logger.error(\"unable to call the connection resolve, because no connection promise was found\");\n }\n processExtContentConnection(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me for extension content connection.\");\n this.extContentConnecting = false;\n this.extContentConnected = true;\n this.publicWindowId = this.parentWindowId || this.myClientId;\n if (this.extContentConnecting && this.identity) {\n this.identity.windowId = this.publicWindowId;\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n window.addEventListener(\"message\", (event) => {\n const extData = event.data?.glue42ExtInc;\n if (!extData) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n this.registry.execute(\"onMessage\", extData);\n });\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n }\n handleConnectionRejected(event) {\n this.logger.debug(\"handling a connection rejection. Most likely the reason is that this window was not created by a glue API call\");\n if (!this.connectionReject) {\n return;\n }\n const errorMsg = typeof event.data.glue42core?.error === \"string\"\n ? `Connection was rejected. ${event.data.glue42core?.error}`\n : \"The platform connection was rejected. Most likely because this window was not created by a glue API call\";\n this.connectionReject(errorMsg);\n delete this.connectionReject;\n }\n handleConnectionRequest() {\n if (this.extContentConnecting) {\n this.logger.debug(\"This connection request event is targeted at the extension content\");\n return;\n }\n }\n handleParentPing(event) {\n if (!this.parentReady) {\n this.logger.debug(\"my parent is not ready, I am ignoring the parent ping\");\n return;\n }\n if (!this.iAmConnected) {\n this.logger.debug(\"i am not fully connected yet, I am ignoring the parent ping\");\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.parentReady.name\n }\n };\n if (this.extContentConnected) {\n message.glue42core.extMode = { windowId: this.myClientId };\n }\n const source = event.source;\n this.logger.debug(\"responding to a parent ping with a ready message\");\n source.postMessage(message, event.origin);\n }\n setupPlatformUnloadListener() {\n this.onMessage((msg) => {\n if (msg.type === \"platformUnload\") {\n this.logger.debug(\"detected a web platform unload\");\n this.parentReady = false;\n this.notifyStatusChanged(false, \"Gateway unloaded\");\n }\n });\n }\n handleManualUnload() {\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: message }, window.origin);\n }\n this.port?.postMessage(message);\n }\n handlePlatformPing() {\n return;\n }\n notifyStatusChanged(status, reason) {\n this.iAmConnected = status;\n this.registry.execute(\"onConnectedChanged\", status, reason);\n }\n checkMessageTypeValid(typeToValidate) {\n return typeof typeToValidate === \"string\" && !!this.messages[typeToValidate];\n }\n requestConnectionPermissionFromExt() {\n return this.waitForContentScript()\n .then(() => PromisePlus((resolve, reject) => {\n this.extConnectionResolve = resolve;\n this.extConnectionReject = reject;\n const message = {\n glue42core: {\n type: \"extSetupRequest\"\n }\n };\n this.logger.debug(\"permission request to the extension content script was sent\");\n window.postMessage(message, window.origin);\n }, this.parentPingTimeout, \"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection timed out\"));\n }\n handleExtConnectionResponse(event) {\n const data = event.data?.glue42core;\n if (!data.approved) {\n return this.extConnectionReject ? this.extConnectionReject(\"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection was rejected\") : undefined;\n }\n if (this.extConnectionResolve) {\n this.extConnectionResolve();\n delete this.extConnectionResolve;\n }\n this.extContentConnecting = true;\n this.parentType = \"extension\";\n this.logger.debug(\"The extension connection was approved, proceeding.\");\n }\n handleExtSetupRequest() {\n return;\n }\n handleGatewayDisconnect() {\n return;\n }\n handleGatewayInternalConnect() {\n return;\n }\n waitForContentScript() {\n const contentReady = !!window.glue42ext?.content;\n if (contentReady) {\n return Promise.resolve();\n }\n return PromisePlus((resolve) => {\n window.addEventListener(\"Glue42EXTReady\", () => {\n resolve();\n });\n }, this.connectionRequestTimeout, \"The content script was available, but was never heard to be ready\");\n }\n async connect() {\n if (this.settings.port) {\n await this.initiateInternalConnection();\n this.logger.debug(\"internal web platform connection completed\");\n return;\n }\n this.logger.debug(\"opening a client web platform connection\");\n await this.findParent();\n await this.initiateRemoteConnection(this.parent);\n this.logger.debug(\"the client is connected\");\n }\n async findParent() {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const myInsideParents = this.getPossibleParentsInWindow(window);\n const myOutsideParents = this.getPossibleParentsOutsideWindow(window.top?.opener, window.top);\n const uniqueParents = new Set([...myInsideParents, ...myOutsideParents]);\n if (!uniqueParents.size && !this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n if (!uniqueParents.size && this.extContentAvailable) {\n await this.requestConnectionPermissionFromExt();\n return;\n }\n const defaultParentCheck = await this.isParentCheckSuccess(this.confirmParent(Array.from(uniqueParents)));\n if (defaultParentCheck.success) {\n this.logger.debug(\"The default parent was found!\");\n return;\n }\n if (!this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n await this.requestConnectionPermissionFromExt();\n }\n getPossibleParentsInWindow(currentWindow) {\n return (!currentWindow?.parent || currentWindow === currentWindow.parent) ? [] : [currentWindow.parent, ...this.getPossibleParentsInWindow(currentWindow.parent)];\n }\n getPossibleParentsOutsideWindow(opener, current) {\n return (!opener || !current || opener === current) ? [] : [opener, ...this.getPossibleParentsInWindow(opener), ...this.getPossibleParentsOutsideWindow(opener.opener, opener)];\n }\n confirmParent(targets) {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const parentCheck = PromisePlus((resolve) => {\n this.parentPingResolve = resolve;\n const message = {\n glue42core: {\n type: this.messages.platformPing.name\n }\n };\n this.parentPingInterval = setInterval(() => {\n targets.forEach((target) => {\n target.postMessage(message, this.defaultTargetString);\n });\n }, 1000);\n }, this.parentPingTimeout, connectionNotPossibleMsg);\n parentCheck.catch(() => {\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n });\n return parentCheck;\n }\n getMyWindowId() {\n if (this.parentType === \"workspace\") {\n return window.name.substring(0, window.name.indexOf(\"#wsp\"));\n }\n if (window !== window.top) {\n return;\n }\n if (window.name?.includes(\"g42\")) {\n return window.name;\n }\n this.selfAssignedWindowId = this.selfAssignedWindowId || `g42-${nanoid(10)}`;\n return this.selfAssignedWindowId;\n }\n}\n\nconst waitForInvocations = (invocations, callback) => {\n let left = invocations;\n return () => {\n left--;\n if (left === 0) {\n callback();\n }\n };\n};\n\nclass AsyncSequelizer {\n minSequenceInterval;\n queue = [];\n isExecutingQueue = false;\n constructor(minSequenceInterval = 0) {\n this.minSequenceInterval = minSequenceInterval;\n }\n enqueue(action) {\n return new Promise((resolve, reject) => {\n this.queue.push({ action, resolve, reject });\n this.executeQueue();\n });\n }\n async executeQueue() {\n if (this.isExecutingQueue) {\n return;\n }\n this.isExecutingQueue = true;\n while (this.queue.length) {\n const operation = this.queue.shift();\n if (!operation) {\n this.isExecutingQueue = false;\n return;\n }\n try {\n const actionResult = await operation.action();\n operation.resolve(actionResult);\n }\n catch (error) {\n operation.reject(error);\n }\n await this.intervalBreak();\n }\n this.isExecutingQueue = false;\n }\n intervalBreak() {\n return new Promise((res) => setTimeout(res, this.minSequenceInterval));\n }\n}\n\nfunction domainSession (domain, connection, logger, successMessages, errorMessages) {\n if (domain == null) {\n domain = \"global\";\n }\n successMessages = successMessages ?? [\"success\"];\n errorMessages = errorMessages ?? [\"error\"];\n let isJoined = domain === \"global\";\n let tryReconnecting = false;\n let _latestOptions;\n let _connectionOn = false;\n const callbacks = CallbackRegistryFactory();\n connection.disconnected(handleConnectionDisconnected);\n connection.loggedIn(handleConnectionLoggedIn);\n connection.on(\"success\", (msg) => handleSuccessMessage(msg));\n connection.on(\"error\", (msg) => handleErrorMessage(msg));\n connection.on(\"result\", (msg) => handleSuccessMessage(msg));\n if (successMessages) {\n successMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleSuccessMessage(msg));\n });\n }\n if (errorMessages) {\n errorMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleErrorMessage(msg));\n });\n }\n const requestsMap = {};\n function join(options) {\n _latestOptions = options;\n return new Promise((resolve, reject) => {\n if (isJoined) {\n resolve({});\n return;\n }\n let joinPromise;\n if (domain === \"global\") {\n joinPromise = _connectionOn ? Promise.resolve({}) : Promise.reject(\"not connected to gateway\");\n }\n else {\n logger.debug(`joining domain ${domain}`);\n const joinMsg = {\n type: \"join\",\n destination: domain,\n domain: \"global\",\n options,\n };\n joinPromise = send(joinMsg);\n }\n joinPromise\n .then(() => {\n handleJoined();\n resolve({});\n })\n .catch((err) => {\n logger.debug(\"error joining \" + domain + \" domain: \" + JSON.stringify(err));\n reject(err);\n });\n });\n }\n function leave() {\n if (domain === \"global\") {\n return Promise.resolve();\n }\n logger.debug(\"stopping session \" + domain + \"...\");\n const leaveMsg = {\n type: \"leave\",\n destination: domain,\n domain: \"global\",\n };\n tryReconnecting = false;\n return send(leaveMsg)\n .then(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n })\n .catch(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n });\n }\n function handleJoined() {\n logger.debug(\"did join \" + domain);\n isJoined = true;\n const wasReconnect = tryReconnecting;\n tryReconnecting = false;\n callbacks.execute(\"onJoined\", wasReconnect);\n }\n function handleConnectionDisconnected() {\n logger.debug(\"connection is down\");\n _connectionOn = false;\n isJoined = false;\n tryReconnecting = true;\n Object.keys(requestsMap).forEach(requestId => {\n const request = requestsMap[requestId];\n if (request) {\n logger.trace(`failing pending request ${requestId} due to connection lost`);\n request.error({\n err: \"Connection lost - gateway connection was disconnected\"\n });\n }\n });\n callbacks.execute(\"onLeft\", { disconnected: true });\n }\n async function handleConnectionLoggedIn() {\n _connectionOn = true;\n if (tryReconnecting) {\n logger.debug(\"connection is now up - trying to reconnect...\");\n try {\n await join(_latestOptions);\n }\n catch {\n logger.trace(`failed to reconnect`);\n }\n }\n }\n function onJoined(callback) {\n if (isJoined) {\n callback(false);\n }\n return callbacks.add(\"onJoined\", callback);\n }\n function onLeft(callback) {\n if (!isJoined) {\n callback();\n }\n return callbacks.add(\"onLeft\", callback);\n }\n function handleErrorMessage(msg) {\n if (domain !== msg.domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.error(msg);\n }\n function handleSuccessMessage(msg) {\n if (msg.domain !== domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.success(msg);\n }\n function getNextRequestId() {\n return nanoid(10);\n }\n let queuedCalls = [];\n function send(msg, tag, options) {\n const ignore = [\"hello\", \"join\"];\n if (msg.type && ignore.indexOf(msg.type) === -1) {\n if (!isJoined) {\n console.warn(`trying to send a message (${msg.domain} ${msg.type}) but not connected, will queue`);\n const pw = new PromiseWrapper();\n queuedCalls.push({ msg, tag, options, pw });\n if (queuedCalls.length === 1) {\n const unsubscribe = onJoined(() => {\n logger.info(`joined - will now send queued messages (${queuedCalls.length} -> [${queuedCalls.map((m) => m.msg.type)}])`);\n queuedCalls.forEach((qm) => {\n send(qm.msg, qm.tag, qm.options)\n .then((t) => qm.pw.resolve(t))\n .catch((e) => qm.pw.reject(e));\n });\n queuedCalls = [];\n unsubscribe();\n });\n }\n return pw.promise;\n }\n }\n options = options ?? {};\n msg.request_id = msg.request_id ?? getNextRequestId();\n msg.domain = msg.domain ?? domain;\n if (!options.skipPeerId) {\n msg.peer_id = connection.peerId;\n }\n const requestId = msg.request_id;\n return new Promise((resolve, reject) => {\n requestsMap[requestId] = {\n success: (successMsg) => {\n delete requestsMap[requestId];\n successMsg._tag = tag;\n resolve(successMsg);\n },\n error: (errorMsg) => {\n console.warn(`Gateway error - ${JSON.stringify(errorMsg)}`);\n delete requestsMap[requestId];\n errorMsg._tag = tag;\n reject(errorMsg);\n },\n };\n connection\n .send(msg, options)\n .catch((err) => {\n requestsMap[requestId]?.error({ err });\n });\n });\n }\n function sendFireAndForget(msg) {\n msg.request_id = msg.request_id ? msg.request_id : getNextRequestId();\n msg.domain = msg.domain ?? domain;\n msg.peer_id = connection.peerId;\n return connection.send(msg);\n }\n return {\n join,\n leave,\n onJoined,\n onLeft,\n send,\n sendFireAndForget,\n on: (type, callback) => {\n connection.on(type, (msg) => {\n if (msg.domain !== domain) {\n return;\n }\n try {\n callback(msg);\n }\n catch (e) {\n logger.error(`Callback failed: ${e} \\n ${e.stack} \\n msg was: ${JSON.stringify(msg)}`, e);\n }\n });\n },\n loggedIn: (callback) => connection.loggedIn(callback),\n connected: (callback) => connection.connected(callback),\n disconnected: (callback) => connection.disconnected(callback),\n get peerId() {\n return connection.peerId;\n },\n get domain() {\n return domain;\n },\n };\n}\n\nclass Connection {\n settings;\n logger;\n protocolVersion = 3;\n peerId;\n token;\n info;\n resolvedIdentity;\n availableDomains;\n gatewayToken;\n replayer;\n messageHandlers = {};\n ids = 1;\n registry = CallbackRegistryFactory();\n _connected = false;\n isTrace = false;\n transport;\n _defaultTransport;\n _defaultAuth;\n _targetTransport;\n _targetAuth;\n _swapTransport = false;\n _switchInProgress = false;\n _transportSubscriptions = [];\n datePrefix = \"#T42_DATE#\";\n datePrefixLen = this.datePrefix.length;\n dateMinLen = this.datePrefixLen + 1;\n datePrefixFirstChar = this.datePrefix[0];\n _sequelizer = new AsyncSequelizer();\n _isLoggedIn = false;\n shouldTryLogin = true;\n pingTimer;\n sessions = [];\n globalDomain;\n initialLogin = true;\n initialLoginAttempts = 3;\n loginConfig;\n loginRetryInProgress = false;\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n settings = settings || {};\n settings.reconnectAttempts = settings.reconnectAttempts ?? 10;\n settings.reconnectInterval = settings.reconnectInterval ?? 1000;\n if (settings.inproc) {\n this.transport = new InProcTransport(settings.inproc, logger.subLogger(\"inMemory\"));\n }\n else if (settings.sharedWorker) {\n this.transport = new SharedWorkerTransport(settings.sharedWorker, logger.subLogger(\"shared-worker\"));\n }\n else if (settings.webPlatform) {\n this.transport = new WebPlatformTransport(settings.webPlatform, logger.subLogger(\"web-platform\"), settings.identity);\n }\n else if (settings.ws !== undefined) {\n this.transport = new WS(settings, logger.subLogger(\"ws\"));\n }\n else {\n throw new Error(\"No connection information specified\");\n }\n this.isTrace = logger.canPublish(\"trace\");\n logger.debug(`starting with ${this.transport.name()} transport`);\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n this._defaultTransport = this.transport;\n this.ping();\n }\n async switchTransport(settings) {\n return this._sequelizer.enqueue(async () => {\n if (!settings || typeof settings !== \"object\") {\n throw new Error(\"Cannot switch transports, because the settings are missing or invalid.\");\n }\n if (typeof settings.type === \"undefined\") {\n throw new Error(\"Cannot switch the transport, because the type is not defined\");\n }\n this.logger.trace(`Starting transport switch with settings: ${JSON.stringify(settings)}`);\n const switchTargetTransport = settings.type === \"secondary\" ? this.getNewSecondaryTransport(settings) : this._defaultTransport;\n this._targetTransport = switchTargetTransport;\n this._targetAuth = settings.type === \"secondary\" ? this.getNewSecondaryAuth(settings) : this._defaultAuth;\n const verifyPromise = this.verifyConnection();\n this._swapTransport = true;\n this._switchInProgress = true;\n this.logger.trace(\"The new transport has been set, closing the current transport\");\n await this.transport.close();\n try {\n await verifyPromise;\n const isSwitchSuccess = this.transport === switchTargetTransport;\n this.logger.info(`The reconnection after the switch was completed. Was the switch a success: ${isSwitchSuccess}`);\n this._switchInProgress = false;\n return { success: isSwitchSuccess };\n }\n catch (error) {\n this.logger.info(\"The reconnection after the switch timed out, reverting back to the default transport.\");\n this.switchTransport({ type: \"default\" });\n this._switchInProgress = false;\n return { success: false };\n }\n });\n }\n onLibReAnnounced(callback) {\n return this.registry.add(\"libReAnnounced\", callback);\n }\n setLibReAnnounced(lib) {\n this.registry.execute(\"libReAnnounced\", lib);\n }\n send(message, options) {\n if (this.transport.sendObject &&\n this.transport.isObjectBasedTransport) {\n const msg = this.createObjectMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${JSON.stringify(msg)}`);\n }\n return this.transport.sendObject(msg, options);\n }\n else {\n const strMessage = this.createStringMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${strMessage}`);\n }\n return this.transport.send(strMessage, options);\n }\n }\n on(type, messageHandler) {\n type = type.toLowerCase();\n if (this.messageHandlers[type] === undefined) {\n this.messageHandlers[type] = {};\n }\n const id = this.ids++;\n this.messageHandlers[type][id] = messageHandler;\n return {\n type,\n id,\n };\n }\n off(info) {\n delete this.messageHandlers[info.type.toLowerCase()][info.id];\n }\n get isConnected() {\n return this._isLoggedIn;\n }\n connected(callback) {\n return this.loggedIn(() => {\n const currentServer = this.transport.name();\n callback(currentServer);\n });\n }\n disconnected(callback) {\n return this.registry.add(\"disconnected\", callback);\n }\n async login(authRequest, reconnect) {\n this.logger.debug(`Login initiated - reconnect: ${reconnect}, transport: ${this.transport.name()}`);\n if (!this._defaultAuth) {\n this._defaultAuth = authRequest;\n }\n if (this._swapTransport) {\n this.logger.trace(\"Detected a transport swap, swapping transports\");\n const newAuth = this.transportSwap();\n authRequest = newAuth ?? authRequest;\n }\n try {\n await this.transport.open();\n this.logger.debug(`Transport: ${this.transport.name()} opened, logging in`);\n timer(\"connection\").mark(\"transport-opened\");\n const identity = await this.loginCore(authRequest, reconnect);\n this.logger.debug(`Logged in with identity: ${JSON.stringify(identity)}`);\n timer(\"connection\").mark(\"protocol-logged-in\");\n return identity;\n }\n catch (error) {\n if (this._switchInProgress) {\n this.logger.debug(\"An error while logging in after a transport swap, preparing a default swap.\");\n this.prepareDefaultSwap();\n }\n throw new Error(error);\n }\n }\n async logout() {\n await this.logoutCore();\n await this.transport.close();\n }\n loggedIn(callback) {\n if (this._isLoggedIn) {\n callback();\n }\n return this.registry.add(\"onLoggedIn\", callback);\n }\n domain(domain, successMessages, errorMessages) {\n let session = this.sessions.find((s) => s.domain === domain);\n if (!session) {\n session = domainSession(domain, this, this.logger.subLogger(`domain=${domain}`), successMessages, errorMessages);\n this.sessions.push(session);\n }\n return session;\n }\n authToken() {\n const createTokenReq = {\n domain: \"global\",\n type: \"create-token\"\n };\n if (!this.globalDomain) {\n return Promise.reject(new Error(\"no global domain session\"));\n }\n return this.globalDomain.send(createTokenReq)\n .then((res) => {\n return res.token;\n });\n }\n reconnect() {\n return this.transport.reconnect();\n }\n setLoggedIn(value) {\n this._isLoggedIn = value;\n if (this._isLoggedIn) {\n this.initialLogin = false;\n this.registry.execute(\"onLoggedIn\");\n }\n }\n distributeMessage(message, type) {\n const handlers = this.messageHandlers[type.toLowerCase()];\n if (handlers !== undefined) {\n Object.keys(handlers).forEach((handlerId) => {\n const handler = handlers[handlerId];\n if (handler !== undefined) {\n try {\n handler(message);\n }\n catch (error) {\n try {\n this.logger.error(`Message handler failed with ${error.stack}`, error);\n }\n catch (loggerError) {\n console.log(\"Message handler failed\", error);\n }\n }\n }\n });\n }\n }\n handleConnectionChanged(connected) {\n if (this._connected === connected) {\n this.logger.trace(\"connection state unchanged, skipping\");\n return;\n }\n this.logger.info(`connection state changed to ${connected ? \"connected\" : \"disconnected\"}`);\n this._connected = connected;\n if (connected) {\n if (this.settings?.replaySpecs?.length) {\n this.replayer = new MessageReplayerImpl(this.settings.replaySpecs);\n this.replayer.init(this);\n }\n this.registry.execute(\"connected\");\n }\n else {\n this.setLoggedIn(false);\n if (this.shouldTryLogin) {\n this.attemptLoginWithRetry();\n }\n this.registry.execute(\"disconnected\");\n }\n }\n async attemptLoginWithRetry() {\n if (!this.loginConfig) {\n throw new Error(\"no login info\");\n }\n if (this.loginRetryInProgress) {\n this.logger.debug(\"login attempt already in progress, ignoring request...\");\n return;\n }\n if (this._isLoggedIn) {\n this.logger.debug(\"already logged in, ignoring request...\");\n return;\n }\n if (this.initialLogin) {\n this.logger.debug(`initial login attempt failed, ${this.initialLoginAttempts} attempts remaining...`);\n if (this.initialLoginAttempts <= 0) {\n this.logger.info(\"maximum initial login attempts reached, will not try to login again\");\n return;\n }\n this.initialLoginAttempts--;\n }\n try {\n this.logger.debug(`will try a new login... ${this.loginRetryInProgress}`);\n this.loginRetryInProgress = true;\n await this.login(this.loginConfig, true);\n }\n catch (e) {\n this.logger.error(`error trying to login: ${e?.message}`, e);\n setTimeout(this.attemptLoginWithRetry.bind(this), this.settings.reconnectInterval ?? 1000);\n }\n finally {\n this.loginRetryInProgress = false;\n }\n }\n handleTransportMessage(msg) {\n let msgObj;\n if (typeof msg === \"string\") {\n msgObj = this.processStringMessage(msg);\n }\n else {\n msgObj = this.processObjectMessage(msg);\n }\n if (this.isTrace) {\n this.logger.trace(`<< ${JSON.stringify(msgObj)}`);\n }\n this.distributeMessage(msgObj.msg, msgObj.msgType);\n }\n verifyConnection() {\n return PromisePlus((resolve) => {\n let unsub;\n const ready = waitForInvocations(2, () => {\n if (unsub) {\n unsub();\n }\n resolve();\n });\n unsub = this.onLibReAnnounced((lib) => {\n if (lib.name === \"interop\") {\n return ready();\n }\n if (lib.name === \"contexts\") {\n return ready();\n }\n });\n }, 10000, \"Transport switch timed out waiting for all libraries to be re-announced\");\n }\n getNewSecondaryTransport(settings) {\n if (!settings.transportConfig?.url) {\n throw new Error(\"Missing secondary transport URL.\");\n }\n return new WS(Object.assign({}, this.settings, { ws: settings.transportConfig.url, reconnectAttempts: 1 }), this.logger.subLogger(\"ws-secondary\"));\n }\n getNewSecondaryAuth(settings) {\n if (!settings.transportConfig?.auth) {\n throw new Error(\"Missing secondary transport auth information.\");\n }\n return settings.transportConfig.auth;\n }\n transportSwap() {\n this._swapTransport = false;\n if (!this._targetTransport || !this._targetAuth) {\n this.logger.warn(`Error while switching transports - either the target transport or auth is not defined: transport defined -> ${!!this._defaultTransport}, auth defined -> ${!!this._targetAuth}. Staying on the current one.`);\n return;\n }\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport = this._targetTransport;\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n return this._targetAuth;\n }\n prepareDefaultSwap() {\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport.close().catch((error) => this.logger.warn(`Error closing the ${this.transport.name()} transport after a failed connection attempt: ${JSON.stringify(error)}`));\n this._targetTransport = this._defaultTransport;\n this._targetAuth = this._defaultAuth;\n this._swapTransport = true;\n }\n processStringMessage(message) {\n const msg = JSON.parse(message, (key, value) => {\n if (typeof value !== \"string\") {\n return value;\n }\n if (value.length < this.dateMinLen) {\n return value;\n }\n if (!value.startsWith(this.datePrefixFirstChar)) {\n return value;\n }\n if (value.substring(0, this.datePrefixLen) !== this.datePrefix) {\n return value;\n }\n try {\n const milliseconds = parseInt(value.substring(this.datePrefixLen, value.length), 10);\n if (isNaN(milliseconds)) {\n return value;\n }\n return new Date(milliseconds);\n }\n catch (ex) {\n return value;\n }\n });\n return {\n msg,\n msgType: msg.type,\n };\n }\n createStringMessage(message) {\n const oldToJson = Date.prototype.toJSON;\n try {\n const datePrefix = this.datePrefix;\n Date.prototype.toJSON = function () {\n return datePrefix + this.getTime();\n };\n const result = JSON.stringify(message);\n return result;\n }\n finally {\n Date.prototype.toJSON = oldToJson;\n }\n }\n processObjectMessage(message) {\n if (!message.type) {\n throw new Error(\"Object should have type property\");\n }\n return {\n msg: message,\n msgType: message.type,\n };\n }\n createObjectMessage(message) {\n return message;\n }\n async loginCore(config, reconnect) {\n this.loginConfig = config;\n if (!this.loginConfig) {\n this.loginConfig = { username: \"\", password: \"\" };\n }\n this.shouldTryLogin = true;\n const authentication = await this.setupAuthConfig(config, reconnect);\n const helloMsg = {\n type: \"hello\",\n identity: this.settings.identity,\n authentication\n };\n if (config.sessionId) {\n helloMsg.request_id = config.sessionId;\n }\n if (!this.globalDomain) {\n this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\n \"welcome\",\n \"token\",\n \"authentication-request\"\n ]);\n }\n const sendOptions = { skipPeerId: true };\n if (this.initialLogin) {\n sendOptions.retryInterval = this.settings.reconnectInterval;\n sendOptions.maxRetries = this.settings.reconnectAttempts;\n }\n try {\n const welcomeMsg = await this.tryAuthenticate(this.globalDomain, helloMsg, sendOptions, config);\n this.logger.info(\"login successful with peerId \" + welcomeMsg.peer_id);\n this.peerId = welcomeMsg.peer_id;\n this.resolvedIdentity = welcomeMsg.resolved_identity;\n this.availableDomains = welcomeMsg.available_domains;\n if (welcomeMsg.options) {\n this.token = welcomeMsg.options.access_token;\n this.info = welcomeMsg.options.info;\n }\n this.setLoggedIn(true);\n return welcomeMsg.resolved_identity;\n }\n catch (err) {\n this.logger.error(\"error sending hello message - \" + (err.message || err.msg || err.reason || err), err);\n throw err;\n }\n finally {\n if (config?.flowCallback && config.sessionId) {\n config.flowCallback(config.sessionId, null);\n }\n }\n }\n async tryAuthenticate(globalDomain, helloMsg, sendOptions, config) {\n let welcomeMsg;\n while (true) {\n const msg = await globalDomain.send(helloMsg, undefined, sendOptions);\n if (msg.type === \"authentication-request\") {\n const token = Buffer.from(msg.authentication.token, \"base64\");\n if (config.flowCallback && config.sessionId) {\n helloMsg.authentication.token =\n (await config.flowCallback(config.sessionId, token))\n .data\n .toString(\"base64\");\n }\n helloMsg.request_id = config.sessionId;\n }\n else if (msg.type === \"welcome\") {\n welcomeMsg = msg;\n break;\n }\n else if (msg.type === \"error\") {\n throw new Error(\"Authentication failed: \" + msg.reason);\n }\n else {\n throw new Error(\"Unexpected message type during authentication: \" + msg.type);\n }\n }\n return welcomeMsg;\n }\n async setupAuthConfig(config, reconnect) {\n const authentication = {};\n this.gatewayToken = config.gatewayToken;\n if (config.gatewayToken) {\n if (reconnect) {\n try {\n config.gatewayToken = await this.getNewGWToken();\n }\n catch (e) {\n this.logger.warn(`failed to get GW token when reconnecting ${e?.message || e}`);\n }\n }\n authentication.method = \"gateway-token\";\n authentication.token = config.gatewayToken;\n this.gatewayToken = config.gatewayToken;\n }\n else if (config.flowName === \"sspi\") {\n authentication.provider = \"win\";\n authentication.method = \"access-token\";\n if (config.flowCallback && config.sessionId) {\n authentication.token =\n (await config.flowCallback(config.sessionId, null))\n .data\n .toString(\"base64\");\n }\n else {\n throw new Error(\"Invalid SSPI config\");\n }\n }\n else if (config.token) {\n authentication.method = \"access-token\";\n authentication.token = config.token;\n }\n else if (config.username) {\n authentication.method = \"secret\";\n authentication.login = config.username;\n authentication.secret = config.password;\n }\n else if (config.provider) {\n authentication.provider = config.provider;\n authentication.providerContext = config.providerContext;\n }\n else {\n throw new Error(\"invalid auth message\" + JSON.stringify(config));\n }\n return authentication;\n }\n async logoutCore() {\n this.logger.debug(\"logging out...\");\n this.shouldTryLogin = false;\n if (this.pingTimer) {\n clearTimeout(this.pingTimer);\n }\n const promises = this.sessions.map((session) => {\n return session.leave();\n });\n await Promise.all(promises);\n }\n getNewGWToken() {\n if (typeof window !== \"undefined\") {\n const glue42gd = window.glue42gd;\n if (glue42gd) {\n return glue42gd.getGWToken();\n }\n }\n return Promise.reject(new Error(\"not running in GD\"));\n }\n ping() {\n if (!this.shouldTryLogin) {\n return;\n }\n if (this._isLoggedIn) {\n this.send({ type: \"ping\" });\n }\n this.pingTimer = setTimeout(() => {\n this.ping();\n }, 30 * 1000);\n }\n}\n\nconst order = [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"off\"];\nclass Logger {\n name;\n parent;\n static Interop;\n static InteropMethodName = \"T42.AppLogger.Log\";\n static Instance;\n path;\n subLoggers = [];\n _consoleLevel;\n _publishLevel;\n loggerFullName;\n includeTimeAndLevel;\n logFn = console;\n customLogFn = false;\n constructor(name, parent, logFn) {\n this.name = name;\n this.parent = parent;\n this.name = name;\n if (parent) {\n this.path = `${parent.path}.${name}`;\n }\n else {\n this.path = name;\n }\n this.loggerFullName = `[${this.path}]`;\n this.includeTimeAndLevel = !logFn;\n if (logFn) {\n this.logFn = logFn;\n this.customLogFn = true;\n }\n }\n subLogger(name) {\n const existingSub = this.subLoggers.filter((subLogger) => {\n return subLogger.name === name;\n })[0];\n if (existingSub !== undefined) {\n return existingSub;\n }\n Object.keys(this).forEach((key) => {\n if (key === name) {\n throw new Error(\"This sub logger name is not allowed.\");\n }\n });\n const sub = new Logger(name, this, this.customLogFn ? this.logFn : undefined);\n this.subLoggers.push(sub);\n return sub;\n }\n publishLevel(level) {\n if (level) {\n this._publishLevel = level;\n }\n return this._publishLevel || this.parent?.publishLevel();\n }\n consoleLevel(level) {\n if (level) {\n this._consoleLevel = level;\n }\n return this._consoleLevel || this.parent?.consoleLevel();\n }\n log(message, level, error) {\n this.publishMessage(level || \"info\", message, error);\n }\n trace(message) {\n this.log(message, \"trace\");\n }\n debug(message) {\n this.log(message, \"debug\");\n }\n info(message) {\n this.log(message, \"info\");\n }\n warn(message) {\n this.log(message, \"warn\");\n }\n error(message, err) {\n this.log(message, \"error\", err);\n }\n canPublish(level, compareWith) {\n const levelIdx = order.indexOf(level);\n const restrictionIdx = order.indexOf(compareWith || this.consoleLevel() || \"trace\");\n return levelIdx >= restrictionIdx;\n }\n publishMessage(level, message, error) {\n const loggerName = this.loggerFullName;\n if (level === \"error\" && !error) {\n const e = new Error();\n if (e.stack) {\n message =\n message +\n \"\\n\" +\n e.stack\n .split(\"\\n\")\n .slice(4)\n .join(\"\\n\");\n }\n }\n if (this.canPublish(level, this.publishLevel())) {\n const interop = Logger.Interop;\n if (interop) {\n try {\n if (interop.methods({ name: Logger.InteropMethodName }).length > 0) {\n const args = {\n msg: message,\n logger: loggerName,\n level\n };\n if (error && error instanceof Error) {\n args.error = {\n message: error.message,\n stack: error.stack ?? \"\"\n };\n }\n interop.invoke(Logger.InteropMethodName, args)\n .catch((e) => {\n this.logFn.error(`Unable to send log message to the platform: ${e.message}`, e);\n });\n }\n }\n catch {\n }\n }\n }\n if (this.canPublish(level)) {\n let prefix = \"\";\n if (this.includeTimeAndLevel) {\n const date = new Date();\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\n prefix = `[${time}] [${level}] `;\n }\n const toPrint = `${prefix}${loggerName}: ${message}`;\n switch (level) {\n case \"trace\":\n this.logFn.debug(toPrint);\n break;\n case \"debug\":\n if (this.logFn.debug) {\n this.logFn.debug(toPrint);\n }\n else {\n this.logFn.log(toPrint);\n }\n break;\n case \"info\":\n this.logFn.info(toPrint);\n break;\n case \"warn\":\n this.logFn.warn(toPrint);\n break;\n case \"error\":\n if (error) {\n this.logFn.error(toPrint, error);\n }\n else {\n this.logFn.error(toPrint);\n }\n break;\n }\n }\n }\n}\n\nconst GW_MESSAGE_CREATE_CONTEXT = \"create-context\";\nconst GW_MESSAGE_ACTIVITY_CREATED = \"created\";\nconst GW_MESSAGE_ACTIVITY_DESTROYED = \"destroyed\";\nconst GW_MESSAGE_CONTEXT_CREATED = \"context-created\";\nconst GW_MESSAGE_CONTEXT_ADDED = \"context-added\";\nconst GW_MESSAGE_SUBSCRIBE_CONTEXT = \"subscribe-context\";\nconst GW_MESSAGE_SUBSCRIBED_CONTEXT = \"subscribed-context\";\nconst GW_MESSAGE_UNSUBSCRIBE_CONTEXT = \"unsubscribe-context\";\nconst GW_MESSAGE_DESTROY_CONTEXT = \"destroy-context\";\nconst GW_MESSAGE_CONTEXT_DESTROYED = \"context-destroyed\";\nconst GW_MESSAGE_UPDATE_CONTEXT = \"update-context\";\nconst GW_MESSAGE_CONTEXT_UPDATED = \"context-updated\";\nconst GW_MESSAGE_JOINED_ACTIVITY = \"joined\";\n\nconst ContextMessageReplaySpec = {\n get name() {\n return \"context\";\n },\n get types() {\n return [\n GW_MESSAGE_CREATE_CONTEXT,\n GW_MESSAGE_ACTIVITY_CREATED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_SUBSCRIBE_CONTEXT,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n GW_MESSAGE_DESTROY_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_UPDATE_CONTEXT,\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_JOINED_ACTIVITY\n ];\n }\n};\n\nvar version = \"6.7.3\";\n\nfunction prepareConfig (configuration, ext, glue42gd) {\n let nodeStartingContext;\n if (Utils.isNode()) {\n const startingContextString = process.env._GD_STARTING_CONTEXT_;\n if (startingContextString) {\n try {\n nodeStartingContext = JSON.parse(startingContextString);\n }\n catch {\n }\n }\n }\n function getConnection() {\n const gwConfig = configuration.gateway;\n const protocolVersion = gwConfig?.protocolVersion ?? 3;\n const reconnectInterval = gwConfig?.reconnectInterval;\n const reconnectAttempts = gwConfig?.reconnectAttempts;\n const defaultWs = \"ws://localhost:8385\";\n let ws = gwConfig?.ws;\n const sharedWorker = gwConfig?.sharedWorker;\n const inproc = gwConfig?.inproc;\n const webPlatform = gwConfig?.webPlatform ?? undefined;\n if (glue42gd) {\n ws = glue42gd.gwURL;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwURL) {\n ws = nodeStartingContext.gwURL;\n }\n if (!ws && !sharedWorker && !inproc) {\n ws = defaultWs;\n }\n let instanceId;\n let windowId;\n let pid;\n let environment;\n let region;\n const appName = getApplication();\n let uniqueAppName = appName;\n if (typeof glue42gd !== \"undefined\") {\n windowId = glue42gd.windowId;\n pid = glue42gd.pid;\n if (glue42gd.env) {\n environment = glue42gd.env.env;\n region = glue42gd.env.region;\n }\n uniqueAppName = glue42gd.application ?? \"glue-app\";\n instanceId = glue42gd.appInstanceId;\n }\n else if (Utils.isNode()) {\n pid = process.pid;\n if (nodeStartingContext) {\n environment = nodeStartingContext.env;\n region = nodeStartingContext.region;\n instanceId = nodeStartingContext.instanceId;\n }\n }\n else if (typeof window?.glue42electron !== \"undefined\") {\n windowId = window?.glue42electron.instanceId;\n pid = window?.glue42electron.pid;\n environment = window?.glue42electron.env;\n region = window?.glue42electron.region;\n uniqueAppName = window?.glue42electron.application ?? \"glue-app\";\n instanceId = window?.glue42electron.instanceId;\n }\n else ;\n const replaySpecs = configuration.gateway?.replaySpecs ?? [];\n replaySpecs.push(ContextMessageReplaySpec);\n let identity = {\n application: uniqueAppName,\n applicationName: appName,\n windowId,\n instance: instanceId,\n process: pid,\n region,\n environment,\n api: ext.version || version\n };\n if (configuration.identity) {\n identity = Object.assign(identity, configuration.identity);\n }\n return {\n identity,\n reconnectInterval,\n ws,\n sharedWorker,\n webPlatform,\n inproc,\n protocolVersion,\n reconnectAttempts,\n replaySpecs,\n };\n }\n function getContexts() {\n const defaultConfig = {\n reAnnounceKnownContexts: true,\n subscribeOnUpdate: true,\n subscribeOnGet: true,\n onlyReAnnounceSubscribedContexts: true\n };\n if (typeof configuration.contexts === \"undefined\") {\n return defaultConfig;\n }\n if (typeof configuration.contexts === \"boolean\" && configuration.contexts) {\n return defaultConfig;\n }\n if (typeof configuration.contexts === \"object\") {\n return { ...defaultConfig, ...configuration.contexts };\n }\n return false;\n }\n function getApplication() {\n if (configuration.application) {\n return configuration.application;\n }\n if (glue42gd) {\n return glue42gd.applicationName;\n }\n if (typeof window !== \"undefined\" && typeof window.glue42electron !== \"undefined\") {\n return window.glue42electron.application;\n }\n const uid = nanoid(10);\n if (Utils.isNode()) {\n if (nodeStartingContext) {\n return nodeStartingContext.applicationConfig.name;\n }\n return \"NodeJS\" + uid;\n }\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n return document.title + ` (${uid})`;\n }\n return uid;\n }\n function getAuth() {\n if (typeof configuration.auth === \"string\") {\n return {\n token: configuration.auth\n };\n }\n if (configuration.auth) {\n return configuration.auth;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwToken) {\n return {\n gatewayToken: nodeStartingContext.gwToken\n };\n }\n if (configuration.gateway?.webPlatform) {\n return {\n username: \"glue42\",\n password: \"\"\n };\n }\n }\n function getLogger() {\n let config = configuration.logger;\n const defaultLevel = \"warn\";\n if (!config) {\n config = defaultLevel;\n }\n let gdConsoleLevel;\n if (glue42gd) {\n gdConsoleLevel = glue42gd.consoleLogLevel;\n }\n if (typeof config === \"string\") {\n return { console: gdConsoleLevel ?? config, publish: defaultLevel };\n }\n return {\n console: gdConsoleLevel ?? config.console ?? defaultLevel,\n publish: config.publish ?? defaultLevel\n };\n }\n const connection = getConnection();\n let application = getApplication();\n if (typeof window !== \"undefined\") {\n const windowAsAny = window;\n const containerApplication = windowAsAny.htmlContainer ?\n `${windowAsAny.htmlContainer.containerName}.${windowAsAny.htmlContainer.application}` :\n windowAsAny?.glue42gd?.application;\n if (containerApplication) {\n application = containerApplication;\n }\n }\n return {\n bus: configuration.bus ?? false,\n application,\n auth: getAuth(),\n logger: getLogger(),\n connection,\n metrics: configuration.metrics ?? true,\n contexts: getContexts(),\n version: ext.version || version,\n libs: ext.libs ?? [],\n customLogger: configuration.customLogger\n };\n}\n\nclass GW3ContextData {\n name;\n contextId;\n context;\n isAnnounced;\n createdByUs;\n joinedActivity;\n updateCallbacks = {};\n activityId;\n sentExplicitSubscription;\n get hasReceivedSnapshot() {\n return this.snapshotPromiseWrapper.resolved;\n }\n set hasReceivedSnapshot(has) {\n if (has) {\n this.snapshotPromiseWrapper.resolve();\n }\n else {\n this.snapshotPromiseWrapper = new PromiseWrapper();\n }\n }\n get snapshotPromise() {\n return this.snapshotPromiseWrapper.promise;\n }\n snapshotPromiseWrapper;\n constructor(contextId, name, isAnnounced, activityId) {\n this.contextId = contextId;\n this.name = name;\n this.isAnnounced = isAnnounced;\n this.activityId = activityId;\n this.context = {};\n this.snapshotPromiseWrapper = new PromiseWrapper();\n }\n hasCallbacks() {\n return Object.keys(this.updateCallbacks).length > 0;\n }\n getState() {\n if (this.isAnnounced && this.hasCallbacks()) {\n return 3;\n }\n if (this.isAnnounced) {\n return 2;\n }\n if (this.hasCallbacks()) {\n return 1;\n }\n return 0;\n }\n}\n\nvar lodash_clonedeep = {exports: {}};\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nlodash_clonedeep.exports;\n\n(function (module, exports) {\n\t/** Used as the size to enable large array optimizations. */\n\tvar LARGE_ARRAY_SIZE = 200;\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t arrayTag = '[object Array]',\n\t boolTag = '[object Boolean]',\n\t dateTag = '[object Date]',\n\t errorTag = '[object Error]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t mapTag = '[object Map]',\n\t numberTag = '[object Number]',\n\t objectTag = '[object Object]',\n\t promiseTag = '[object Promise]',\n\t regexpTag = '[object RegExp]',\n\t setTag = '[object Set]',\n\t stringTag = '[object String]',\n\t symbolTag = '[object Symbol]',\n\t weakMapTag = '[object WeakMap]';\n\n\tvar arrayBufferTag = '[object ArrayBuffer]',\n\t dataViewTag = '[object DataView]',\n\t float32Tag = '[object Float32Array]',\n\t float64Tag = '[object Float64Array]',\n\t int8Tag = '[object Int8Array]',\n\t int16Tag = '[object Int16Array]',\n\t int32Tag = '[object Int32Array]',\n\t uint8Tag = '[object Uint8Array]',\n\t uint8ClampedTag = '[object Uint8ClampedArray]',\n\t uint16Tag = '[object Uint16Array]',\n\t uint32Tag = '[object Uint32Array]';\n\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n\t/** Used to match `RegExp` flags from their coerced string values. */\n\tvar reFlags = /\\w*$/;\n\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n\t/** Used to identify `toStringTag` values supported by `_.clone`. */\n\tvar cloneableTags = {};\n\tcloneableTags[argsTag] = cloneableTags[arrayTag] =\n\tcloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n\tcloneableTags[boolTag] = cloneableTags[dateTag] =\n\tcloneableTags[float32Tag] = cloneableTags[float64Tag] =\n\tcloneableTags[int8Tag] = cloneableTags[int16Tag] =\n\tcloneableTags[int32Tag] = cloneableTags[mapTag] =\n\tcloneableTags[numberTag] = cloneableTags[objectTag] =\n\tcloneableTags[regexpTag] = cloneableTags[setTag] =\n\tcloneableTags[stringTag] = cloneableTags[symbolTag] =\n\tcloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n\tcloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n\tcloneableTags[errorTag] = cloneableTags[funcTag] =\n\tcloneableTags[weakMapTag] = false;\n\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\n\t/** Detect free variable `exports`. */\n\tvar freeExports = exports && !exports.nodeType && exports;\n\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n\t/**\n\t * Adds the key-value `pair` to `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to modify.\n\t * @param {Array} pair The key-value pair to add.\n\t * @returns {Object} Returns `map`.\n\t */\n\tfunction addMapEntry(map, pair) {\n\t // Don't return `map.set` because it's not chainable in IE 11.\n\t map.set(pair[0], pair[1]);\n\t return map;\n\t}\n\n\t/**\n\t * Adds `value` to `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to modify.\n\t * @param {*} value The value to add.\n\t * @returns {Object} Returns `set`.\n\t */\n\tfunction addSetEntry(set, value) {\n\t // Don't return `set.add` because it's not chainable in IE 11.\n\t set.add(value);\n\t return set;\n\t}\n\n\t/**\n\t * A specialized version of `_.forEach` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayEach(array, iteratee) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\n\t while (++index < length) {\n\t if (iteratee(array[index], index, array) === false) {\n\t break;\n\t }\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Appends the elements of `values` to `array`.\n\t *\n\t * @private\n\t * @param {Array} array The array to modify.\n\t * @param {Array} values The values to append.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayPush(array, values) {\n\t var index = -1,\n\t length = values.length,\n\t offset = array.length;\n\n\t while (++index < length) {\n\t array[offset + index] = values[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * A specialized version of `_.reduce` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @param {*} [accumulator] The initial value.\n\t * @param {boolean} [initAccum] Specify using the first element of `array` as\n\t * the initial value.\n\t * @returns {*} Returns the accumulated value.\n\t */\n\tfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\t while (++index < length) {\n\t accumulator = iteratee(accumulator, array[index], index, array);\n\t }\n\t return accumulator;\n\t}\n\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Gets the value at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to query.\n\t * @param {string} key The key of the property to get.\n\t * @returns {*} Returns the property value.\n\t */\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Converts `map` to its key-value pairs.\n\t *\n\t * @private\n\t * @param {Object} map The map to convert.\n\t * @returns {Array} Returns the key-value pairs.\n\t */\n\tfunction mapToArray(map) {\n\t var index = -1,\n\t result = Array(map.size);\n\n\t map.forEach(function(value, key) {\n\t result[++index] = [key, value];\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\n\t/**\n\t * Converts `set` to an array of its values.\n\t *\n\t * @private\n\t * @param {Object} set The set to convert.\n\t * @returns {Array} Returns the values.\n\t */\n\tfunction setToArray(set) {\n\t var index = -1,\n\t result = Array(set.size);\n\n\t set.forEach(function(value) {\n\t result[++index] = value;\n\t });\n\t return result;\n\t}\n\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype,\n\t funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\n\t/** Built-in value references. */\n\tvar Buffer = moduleExports ? root.Buffer : undefined,\n\t Symbol = root.Symbol,\n\t Uint8Array = root.Uint8Array,\n\t getPrototype = overArg(Object.getPrototypeOf, Object),\n\t objectCreate = Object.create,\n\t propertyIsEnumerable = objectProto.propertyIsEnumerable,\n\t splice = arrayProto.splice;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeGetSymbols = Object.getOwnPropertySymbols,\n\t nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n\t nativeKeys = overArg(Object.keys, Object);\n\n\t/* Built-in method references that are verified to be native. */\n\tvar DataView = getNative(root, 'DataView'),\n\t Map = getNative(root, 'Map'),\n\t Promise = getNative(root, 'Promise'),\n\t Set = getNative(root, 'Set'),\n\t WeakMap = getNative(root, 'WeakMap'),\n\t nativeCreate = getNative(Object, 'create');\n\n\t/** Used to detect maps, sets, and weakmaps. */\n\tvar dataViewCtorString = toSource(DataView),\n\t mapCtorString = toSource(Map),\n\t promiseCtorString = toSource(Promise),\n\t setCtorString = toSource(Set),\n\t weakMapCtorString = toSource(WeakMap);\n\n\t/** Used to convert symbols to primitives and strings. */\n\tvar symbolProto = Symbol ? Symbol.prototype : undefined,\n\t symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t}\n\n\t/**\n\t * Removes `key` and its value from the hash.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Hash\n\t * @param {Object} hash The hash to modify.\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction hashDelete(key) {\n\t return this.has(key) && delete this.__data__[key];\n\t}\n\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n\t}\n\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the list cache.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf ListCache\n\t */\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t}\n\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t return true;\n\t}\n\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t return getMapData(this, key)['delete'](key);\n\t}\n\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t getMapData(this, key).set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\n\t/**\n\t * Creates a stack cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Stack(entries) {\n\t this.__data__ = new ListCache(entries);\n\t}\n\n\t/**\n\t * Removes all key-value entries from the stack.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Stack\n\t */\n\tfunction stackClear() {\n\t this.__data__ = new ListCache;\n\t}\n\n\t/**\n\t * Removes `key` and its value from the stack.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction stackDelete(key) {\n\t return this.__data__['delete'](key);\n\t}\n\n\t/**\n\t * Gets the stack value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction stackGet(key) {\n\t return this.__data__.get(key);\n\t}\n\n\t/**\n\t * Checks if a stack value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Stack\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction stackHas(key) {\n\t return this.__data__.has(key);\n\t}\n\n\t/**\n\t * Sets the stack `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the stack cache instance.\n\t */\n\tfunction stackSet(key, value) {\n\t var cache = this.__data__;\n\t if (cache instanceof ListCache) {\n\t var pairs = cache.__data__;\n\t if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n\t pairs.push([key, value]);\n\t return this;\n\t }\n\t cache = this.__data__ = new MapCache(pairs);\n\t }\n\t cache.set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `Stack`.\n\tStack.prototype.clear = stackClear;\n\tStack.prototype['delete'] = stackDelete;\n\tStack.prototype.get = stackGet;\n\tStack.prototype.has = stackHas;\n\tStack.prototype.set = stackSet;\n\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\n\t var length = result.length,\n\t skipIndexes = !!length;\n\n\t for (var key in value) {\n\t if ((hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\n\t/**\n\t * The base implementation of `_.assign` without support for multiple sources\n\t * or `customizer` functions.\n\t *\n\t * @private\n\t * @param {Object} object The destination object.\n\t * @param {Object} source The source object.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction baseAssign(object, source) {\n\t return object && copyObject(source, keys(source), object);\n\t}\n\n\t/**\n\t * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n\t * traversed objects.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @param {boolean} [isFull] Specify a clone including symbols.\n\t * @param {Function} [customizer] The function to customize cloning.\n\t * @param {string} [key] The key of `value`.\n\t * @param {Object} [object] The parent object of `value`.\n\t * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\tfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n\t var result;\n\t if (customizer) {\n\t result = object ? customizer(value, key, object, stack) : customizer(value);\n\t }\n\t if (result !== undefined) {\n\t return result;\n\t }\n\t if (!isObject(value)) {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isArr) {\n\t result = initCloneArray(value);\n\t if (!isDeep) {\n\t return copyArray(value, result);\n\t }\n\t } else {\n\t var tag = getTag(value),\n\t isFunc = tag == funcTag || tag == genTag;\n\n\t if (isBuffer(value)) {\n\t return cloneBuffer(value, isDeep);\n\t }\n\t if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n\t if (isHostObject(value)) {\n\t return object ? value : {};\n\t }\n\t result = initCloneObject(isFunc ? {} : value);\n\t if (!isDeep) {\n\t return copySymbols(value, baseAssign(result, value));\n\t }\n\t } else {\n\t if (!cloneableTags[tag]) {\n\t return object ? value : {};\n\t }\n\t result = initCloneByTag(value, tag, baseClone, isDeep);\n\t }\n\t }\n\t // Check for circular references and return its corresponding clone.\n\t stack || (stack = new Stack);\n\t var stacked = stack.get(value);\n\t if (stacked) {\n\t return stacked;\n\t }\n\t stack.set(value, result);\n\n\t if (!isArr) {\n\t var props = isFull ? getAllKeys(value) : keys(value);\n\t }\n\t arrayEach(props || value, function(subValue, key) {\n\t if (props) {\n\t key = subValue;\n\t subValue = value[key];\n\t }\n\t // Recursively populate clone (susceptible to call stack limits).\n\t assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\tfunction baseCreate(proto) {\n\t return isObject(proto) ? objectCreate(proto) : {};\n\t}\n\n\t/**\n\t * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n\t * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n\t * symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {Function} keysFunc The function to get the keys of `object`.\n\t * @param {Function} symbolsFunc The function to get the symbols of `object`.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n\t var result = keysFunc(object);\n\t return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n\t}\n\n\t/**\n\t * The base implementation of `getTag`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t return objectToString.call(value);\n\t}\n\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `buffer`.\n\t *\n\t * @private\n\t * @param {Buffer} buffer The buffer to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Buffer} Returns the cloned buffer.\n\t */\n\tfunction cloneBuffer(buffer, isDeep) {\n\t if (isDeep) {\n\t return buffer.slice();\n\t }\n\t var result = new buffer.constructor(buffer.length);\n\t buffer.copy(result);\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `arrayBuffer`.\n\t *\n\t * @private\n\t * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n\t * @returns {ArrayBuffer} Returns the cloned array buffer.\n\t */\n\tfunction cloneArrayBuffer(arrayBuffer) {\n\t var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n\t new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `dataView`.\n\t *\n\t * @private\n\t * @param {Object} dataView The data view to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned data view.\n\t */\n\tfunction cloneDataView(dataView, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n\t return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n\t}\n\n\t/**\n\t * Creates a clone of `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned map.\n\t */\n\tfunction cloneMap(map, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n\t return arrayReduce(array, addMapEntry, new map.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of `regexp`.\n\t *\n\t * @private\n\t * @param {Object} regexp The regexp to clone.\n\t * @returns {Object} Returns the cloned regexp.\n\t */\n\tfunction cloneRegExp(regexp) {\n\t var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n\t result.lastIndex = regexp.lastIndex;\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned set.\n\t */\n\tfunction cloneSet(set, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n\t return arrayReduce(array, addSetEntry, new set.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of the `symbol` object.\n\t *\n\t * @private\n\t * @param {Object} symbol The symbol object to clone.\n\t * @returns {Object} Returns the cloned symbol object.\n\t */\n\tfunction cloneSymbol(symbol) {\n\t return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n\t}\n\n\t/**\n\t * Creates a clone of `typedArray`.\n\t *\n\t * @private\n\t * @param {Object} typedArray The typed array to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned typed array.\n\t */\n\tfunction cloneTypedArray(typedArray, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n\t return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n\t}\n\n\t/**\n\t * Copies the values of `source` to `array`.\n\t *\n\t * @private\n\t * @param {Array} source The array to copy values from.\n\t * @param {Array} [array=[]] The array to copy values to.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction copyArray(source, array) {\n\t var index = -1,\n\t length = source.length;\n\n\t array || (array = Array(length));\n\t while (++index < length) {\n\t array[index] = source[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\n\t var index = -1,\n\t length = props.length;\n\n\t while (++index < length) {\n\t var key = props[index];\n\n\t var newValue = undefined;\n\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\n\t/**\n\t * Copies own symbol properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy symbols from.\n\t * @param {Object} [object={}] The object to copy symbols to.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copySymbols(source, object) {\n\t return copyObject(source, getSymbols(source), object);\n\t}\n\n\t/**\n\t * Creates an array of own enumerable property names and symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction getAllKeys(object) {\n\t return baseGetAllKeys(object, keys, getSymbols);\n\t}\n\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable symbol properties of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of symbols.\n\t */\n\tvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n\t/**\n\t * Gets the `toStringTag` of `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tvar getTag = baseGetTag;\n\n\t// Fallback for data views, maps, sets, and weak maps in IE 11,\n\t// for data views in Edge < 14, and promises in Node.js.\n\tif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n\t (Map && getTag(new Map) != mapTag) ||\n\t (Promise && getTag(Promise.resolve()) != promiseTag) ||\n\t (Set && getTag(new Set) != setTag) ||\n\t (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n\t getTag = function(value) {\n\t var result = objectToString.call(value),\n\t Ctor = result == objectTag ? value.constructor : undefined,\n\t ctorString = Ctor ? toSource(Ctor) : undefined;\n\n\t if (ctorString) {\n\t switch (ctorString) {\n\t case dataViewCtorString: return dataViewTag;\n\t case mapCtorString: return mapTag;\n\t case promiseCtorString: return promiseTag;\n\t case setCtorString: return setTag;\n\t case weakMapCtorString: return weakMapTag;\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\n\t/**\n\t * Initializes an array clone.\n\t *\n\t * @private\n\t * @param {Array} array The array to clone.\n\t * @returns {Array} Returns the initialized clone.\n\t */\n\tfunction initCloneArray(array) {\n\t var length = array.length,\n\t result = array.constructor(length);\n\n\t // Add properties assigned by `RegExp#exec`.\n\t if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n\t result.index = array.index;\n\t result.input = array.input;\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Initializes an object clone.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneObject(object) {\n\t return (typeof object.constructor == 'function' && !isPrototype(object))\n\t ? baseCreate(getPrototype(object))\n\t : {};\n\t}\n\n\t/**\n\t * Initializes an object clone based on its `toStringTag`.\n\t *\n\t * **Note:** This function only supports cloning values with tags of\n\t * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @param {string} tag The `toStringTag` of the object to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n\t var Ctor = object.constructor;\n\t switch (tag) {\n\t case arrayBufferTag:\n\t return cloneArrayBuffer(object);\n\n\t case boolTag:\n\t case dateTag:\n\t return new Ctor(+object);\n\n\t case dataViewTag:\n\t return cloneDataView(object, isDeep);\n\n\t case float32Tag: case float64Tag:\n\t case int8Tag: case int16Tag: case int32Tag:\n\t case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n\t return cloneTypedArray(object, isDeep);\n\n\t case mapTag:\n\t return cloneMap(object, isDeep, cloneFunc);\n\n\t case numberTag:\n\t case stringTag:\n\t return new Ctor(object);\n\n\t case regexpTag:\n\t return cloneRegExp(object);\n\n\t case setTag:\n\t return cloneSet(object, isDeep, cloneFunc);\n\n\t case symbolTag:\n\t return cloneSymbol(object);\n\t }\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\n\t/**\n\t * Checks if `value` is suitable for use as unique object key.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n\t */\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n\t return value === proto;\n\t}\n\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to process.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\n\t/**\n\t * This method is like `_.clone` except that it recursively clones `value`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 1.0.0\n\t * @category Lang\n\t * @param {*} value The value to recursively clone.\n\t * @returns {*} Returns the deep cloned value.\n\t * @see _.clone\n\t * @example\n\t *\n\t * var objects = [{ 'a': 1 }, { 'b': 2 }];\n\t *\n\t * var deep = _.cloneDeep(objects);\n\t * console.log(deep[0] === objects[0]);\n\t * // => false\n\t */\n\tfunction cloneDeep(value) {\n\t return baseClone(value, true, true);\n\t}\n\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\n\t/**\n\t * Checks if `value` is a buffer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.3.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n\t * @example\n\t *\n\t * _.isBuffer(new Buffer(2));\n\t * // => true\n\t *\n\t * _.isBuffer(new Uint8Array(2));\n\t * // => false\n\t */\n\tvar isBuffer = nativeIsBuffer || stubFalse;\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\n\t/**\n\t * This method returns a new empty array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {Array} Returns the new empty array.\n\t * @example\n\t *\n\t * var arrays = _.times(2, _.stubArray);\n\t *\n\t * console.log(arrays);\n\t * // => [[], []]\n\t *\n\t * console.log(arrays[0] === arrays[1]);\n\t * // => false\n\t */\n\tfunction stubArray() {\n\t return [];\n\t}\n\n\t/**\n\t * This method returns `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {boolean} Returns `false`.\n\t * @example\n\t *\n\t * _.times(2, _.stubFalse);\n\t * // => [false, false]\n\t */\n\tfunction stubFalse() {\n\t return false;\n\t}\n\n\tmodule.exports = cloneDeep; \n} (lodash_clonedeep, lodash_clonedeep.exports));\n\nvar lodash_clonedeepExports = lodash_clonedeep.exports;\nvar cloneDeep = /*@__PURE__*/getDefaultExportFromCjs(lodash_clonedeepExports);\n\nfunction applyContextDelta(context, delta, logger) {\n try {\n if (logger?.canPublish(\"trace\")) {\n logger?.trace(`applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`);\n }\n if (!delta) {\n return context;\n }\n if (delta.reset) {\n context = { ...delta.reset };\n return context;\n }\n context = deepClone(context, undefined);\n if (delta.commands) {\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n deletePath(context, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(context, command.value, command.path);\n }\n }\n return context;\n }\n const added = delta.added;\n const updated = delta.updated;\n const removed = delta.removed;\n if (added) {\n Object.keys(added).forEach((key) => {\n context[key] = added[key];\n });\n }\n if (updated) {\n Object.keys(updated).forEach((key) => {\n mergeObjectsProperties(key, context, updated);\n });\n }\n if (removed) {\n removed.forEach((key) => {\n delete context[key];\n });\n }\n return context;\n }\n catch (e) {\n logger?.error(`error applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`, e);\n return context;\n }\n}\nfunction deepClone(obj, hash) {\n return cloneDeep(obj);\n}\nconst mergeObjectsProperties = (key, what, withWhat) => {\n const right = withWhat[key];\n if (right === undefined) {\n return what;\n }\n const left = what[key];\n if (!left || !right) {\n what[key] = right;\n return what;\n }\n if (typeof left === \"string\" ||\n typeof left === \"number\" ||\n typeof left === \"boolean\" ||\n typeof right === \"string\" ||\n typeof right === \"number\" ||\n typeof right === \"boolean\" ||\n Array.isArray(left) ||\n Array.isArray(right)) {\n what[key] = right;\n return what;\n }\n what[key] = Object.assign({}, left, right);\n return what;\n};\nfunction deepEqual(x, y) {\n if (x === y) {\n return true;\n }\n if (!(x instanceof Object) || !(y instanceof Object)) {\n return false;\n }\n if (x.constructor !== y.constructor) {\n return false;\n }\n for (const p in x) {\n if (!x.hasOwnProperty(p)) {\n continue;\n }\n if (!y.hasOwnProperty(p)) {\n return false;\n }\n if (x[p] === y[p]) {\n continue;\n }\n if (typeof (x[p]) !== \"object\") {\n return false;\n }\n if (!deepEqual(x[p], y[p])) {\n return false;\n }\n }\n for (const p in y) {\n if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) {\n return false;\n }\n }\n return true;\n}\nfunction setValueToPath(obj, value, path) {\n const pathArr = path.split(\".\");\n const forbiddenKeys = [\"__proto__\", \"constructor\", \"prototype\"];\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n const key = pathArr[i];\n if (forbiddenKeys.includes(key)) {\n throw new Error(`The provided path ${path} is invalid. It cannot contain segment/key that is equal to one of the following values: ${forbiddenKeys}.`);\n }\n if (!obj[key]) {\n obj[key] = {};\n }\n if (typeof obj[key] !== \"object\") {\n obj[key] = {};\n }\n obj = obj[key];\n }\n obj[pathArr[i]] = value;\n}\nfunction isSubset(superObj, subObj) {\n return Object.keys(subObj).every((ele) => {\n if (typeof subObj[ele] === \"object\") {\n return isSubset(superObj?.[ele] || {}, subObj[ele] || {});\n }\n return subObj[ele] === superObj?.[ele];\n });\n}\nfunction deletePath(obj, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n return;\n }\n obj = obj[pathArr[i]];\n }\n delete obj[pathArr[i]];\n}\n\nclass GW3Bridge {\n ERROR_URI_FAILURE = \"global.errors.failure\";\n ERROR_URI_INVALID_CONTEXT = \"global.errors.invalid_context\";\n _logger;\n _connection;\n _trackAllContexts;\n _reAnnounceKnownContexts;\n _subscribeOnUpdate;\n _subscribeOnGet;\n _onlyReAnnounceSubscribedContexts;\n _gw3Session;\n _contextNameToData = {};\n _gw3Subscriptions = [];\n _nextCallbackSubscriptionNumber = 0;\n _creationPromises = {};\n _contextNameToId = {};\n _contextIdToName = {};\n _protocolVersion = undefined;\n _contextsTempCache = {};\n _contextsSubscriptionsCache = [];\n _systemContextsSubKey;\n get protocolVersion() {\n if (!this._protocolVersion) {\n const contextsDomainInfo = this._connection.availableDomains.find((d) => d.uri === \"context\");\n this._protocolVersion = contextsDomainInfo?.version ?? 1;\n }\n return this._protocolVersion;\n }\n get setPathSupported() {\n return this.protocolVersion >= 2;\n }\n constructor(config) {\n this._connection = config.connection;\n this._logger = config.logger;\n this._trackAllContexts = config.trackAllContexts;\n this._reAnnounceKnownContexts = config.reAnnounceKnownContexts;\n this._subscribeOnUpdate = config.subscribeOnUpdate ?? true;\n this._subscribeOnGet = config.subscribeOnGet ?? true;\n this._onlyReAnnounceSubscribedContexts = config.onlyReAnnounceSubscribedContexts ?? true;\n this._gw3Session = this._connection.domain(\"global\", [\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_CONTEXT_UPDATED,\n ]);\n this._gw3Session.disconnected(this.resetState.bind(this));\n this._gw3Session.onJoined((wasReconnect) => {\n if (!wasReconnect) {\n return;\n }\n if (!this._reAnnounceKnownContexts) {\n this._contextsTempCache = {};\n return this._connection.setLibReAnnounced({ name: \"contexts\" });\n }\n this.reInitiateState()\n .then(() => this._connection.setLibReAnnounced({ name: \"contexts\" }))\n .catch((err) => {\n this._logger.warn(`Error while re-announcing contexts: ${JSON.stringify(err)}`);\n });\n });\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n }\n dispose() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n this._gw3Subscriptions.length = 0;\n for (const contextName in this._contextNameToData) {\n if (this._contextNameToId.hasOwnProperty(contextName)) {\n delete this._contextNameToData[contextName];\n }\n }\n }\n createContext(name, data) {\n if (name in this._creationPromises) {\n return this._creationPromises[name];\n }\n this._creationPromises[name] =\n this._gw3Session\n .send({\n type: GW_MESSAGE_CREATE_CONTEXT,\n domain: \"global\",\n name,\n data,\n lifetime: \"retained\",\n })\n .then((createContextMsg) => {\n this._contextNameToId[name] = createContextMsg.context_id;\n this._contextIdToName[createContextMsg.context_id] = name;\n const contextData = this._contextNameToData[name] || new GW3ContextData(createContextMsg.context_id, name, true, undefined);\n contextData.isAnnounced = true;\n contextData.name = name;\n contextData.contextId = createContextMsg.context_id;\n contextData.context = createContextMsg.data || deepClone(data);\n contextData.hasReceivedSnapshot = true;\n this._contextNameToData[name] = contextData;\n delete this._creationPromises[name];\n contextData.sentExplicitSubscription = true;\n contextData.createdByUs = true;\n this.subscribe(name, () => { });\n return createContextMsg.context_id;\n });\n return this._creationPromises[name];\n }\n all() {\n return Object.keys(this._contextNameToData)\n .filter((name) => this._contextNameToData[name].isAnnounced);\n }\n async update(name, delta) {\n if (delta) {\n delta = deepClone(delta);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n await this.createContext(name, delta);\n return;\n }\n const currentContext = await this.get(contextData.name);\n const calculatedDelta = this.setPathSupported ?\n this.calculateContextDeltaV2(currentContext, delta) :\n this.calculateContextDeltaV1(currentContext, delta);\n if (!Object.keys(calculatedDelta.added).length\n && !Object.keys(calculatedDelta.updated).length\n && !calculatedDelta.removed.length\n && !calculatedDelta.commands?.length) {\n return Promise.resolve();\n }\n const gwResponse = await this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: calculatedDelta,\n }, {}, { skipPeerId: false });\n if (this._subscribeOnUpdate &&\n !contextData.sentExplicitSubscription &&\n !contextData.activityId) {\n this.subscribe(name, () => { });\n }\n if (this._subscribeOnUpdate ||\n contextData.sentExplicitSubscription ||\n contextData.activityId) {\n await contextData.snapshotPromise;\n this.handleUpdated(contextData, calculatedDelta, {\n updaterId: gwResponse.peer_id\n });\n }\n }\n async set(name, data) {\n if (data) {\n data = deepClone(data);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, data);\n }\n const gwResponse = await this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { reset: data },\n }, {}, { skipPeerId: false });\n if (this._subscribeOnUpdate &&\n !contextData.sentExplicitSubscription &&\n !contextData.activityId) {\n this.subscribe(name, () => { });\n }\n if (this._subscribeOnUpdate ||\n contextData.sentExplicitSubscription ||\n contextData.activityId) {\n this.handleUpdated(contextData, {\n reset: data,\n added: {},\n removed: [],\n updated: {}\n }, {\n updaterId: gwResponse.peer_id\n });\n }\n }\n setPath(name, path, value) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPath operation is not supported, use Glue42 3.10 or later\");\n }\n return this.setPaths(name, [{ path, value }]);\n }\n async setPaths(name, pathValues) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPaths operation is not supported, use Glue42 3.10 or later\");\n }\n if (pathValues) {\n pathValues = deepClone(pathValues);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n const obj = {};\n for (const pathValue of pathValues) {\n setValueToPath(obj, pathValue.value, pathValue.path);\n }\n return this.createContext(name, obj);\n }\n const commands = [];\n for (const pathValue of pathValues) {\n if (pathValue.value === null) {\n commands.push({ type: \"remove\", path: pathValue.path });\n }\n else {\n commands.push({ type: \"set\", path: pathValue.path, value: pathValue.value });\n }\n }\n const gwResponse = await this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { commands }\n }, {}, { skipPeerId: false });\n if (this._subscribeOnUpdate &&\n !contextData.sentExplicitSubscription &&\n !contextData.activityId) {\n this.subscribe(name, () => { });\n }\n if (this._subscribeOnUpdate ||\n contextData.sentExplicitSubscription ||\n contextData.activityId) {\n await contextData.snapshotPromise;\n this.handleUpdated(contextData, {\n added: {},\n removed: [],\n updated: {},\n commands\n }, {\n updaterId: gwResponse.peer_id\n });\n }\n }\n async get(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n if (!contextData && this._subscribeOnGet) {\n this.subscribe(name, () => { });\n }\n return Promise.resolve({});\n }\n if (contextData && !contextData.sentExplicitSubscription) {\n return new Promise((resolve, reject) => {\n this.subscribe(name, (data, _d, _r, un) => {\n if (!this._subscribeOnGet) {\n this.unsubscribe(un);\n }\n resolve(data);\n }).catch((e) => {\n if (this.isInvalidContextError(e)) {\n resolve({});\n return;\n }\n reject(e);\n });\n });\n }\n await contextData.snapshotPromise;\n const context = contextData?.context ?? {};\n return Promise.resolve(deepClone(context));\n }\n isInvalidContextError(e) {\n return e.reason_uri === this.ERROR_URI_INVALID_CONTEXT\n || (e.reason_uri === this.ERROR_URI_FAILURE && e.reason?.startsWith(\"Unable to find context with id\"));\n }\n async subscribe(name, callback, subscriptionKey) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const thisCallbackSubscriptionNumber = typeof subscriptionKey === \"undefined\" ? this._nextCallbackSubscriptionNumber : subscriptionKey;\n if (typeof subscriptionKey === \"undefined\") {\n this._nextCallbackSubscriptionNumber += 1;\n this._contextsSubscriptionsCache.push({ contextName: name, subKey: thisCallbackSubscriptionNumber, callback });\n }\n let contextData = this._contextNameToData[name];\n if (!contextData ||\n !contextData.isAnnounced) {\n contextData = contextData || new GW3ContextData(undefined, name, false, undefined);\n this._contextNameToData[name] = contextData;\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n const hadCallbacks = contextData.hasCallbacks();\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n if (!hadCallbacks) {\n if (!contextData.joinedActivity && !contextData.createdByUs) {\n if (contextData.context && contextData.sentExplicitSubscription) {\n if (contextData.hasReceivedSnapshot && !subscriptionKey) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n return this.sendSubscribe(contextData)\n .then(() => thisCallbackSubscriptionNumber, () => {\n this.unsubscribe(thisCallbackSubscriptionNumber, true);\n return thisCallbackSubscriptionNumber;\n });\n }\n else {\n if (contextData.hasReceivedSnapshot && !subscriptionKey) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n else {\n if (contextData.hasReceivedSnapshot && !subscriptionKey) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n unsubscribe(subscriptionKey, keepInSubscriptionsCache) {\n if (!keepInSubscriptionsCache) {\n this._contextsSubscriptionsCache = this._contextsSubscriptionsCache.filter(x => x.subKey !== subscriptionKey);\n }\n for (const name of Object.keys(this._contextNameToData)) {\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n continue;\n }\n const hadCallbacks = contextData.hasCallbacks();\n delete contextData.updateCallbacks[subscriptionKey];\n if (contextData.isAnnounced &&\n hadCallbacks &&\n !contextData.hasCallbacks() &&\n contextData.sentExplicitSubscription) {\n contextData.hasReceivedSnapshot = false;\n contextData.context = {};\n this.sendUnsubscribe(contextData).catch(() => { });\n }\n if (!contextData.isAnnounced &&\n !contextData.hasCallbacks()) {\n delete this._contextNameToData[name];\n delete this._contextNameToId[name];\n if (contextData.contextId) {\n delete this._contextIdToName[contextData.contextId];\n }\n }\n }\n }\n async destroy(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n const contextId = contextData?.contextId;\n if (!contextData || !contextId) {\n return Promise.reject(`context with ${name} does not exist`);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_DESTROY_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then(() => undefined);\n }\n handleUpdated(contextData, delta, extraData) {\n const oldContext = contextData.context;\n contextData.context = applyContextDelta(contextData.context, delta, this._logger);\n if (this._contextNameToData[contextData.name] === contextData &&\n !deepEqual(oldContext, contextData.context)) {\n this.invokeUpdateCallbacks(contextData, delta, extraData);\n }\n }\n subscribeToContextCreatedMessages() {\n const createdMessageTypes = [\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_ACTIVITY_CREATED,\n ];\n for (const createdMessageType of createdMessageTypes) {\n const sub = this._connection.on(createdMessageType, this.handleContextCreatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextCreatedMessage(contextCreatedMsg) {\n const createdMessageType = contextCreatedMsg.type;\n if (createdMessageType === GW_MESSAGE_ACTIVITY_CREATED) {\n this._contextNameToId[contextCreatedMsg.activity_id] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.activity_id;\n }\n else if (createdMessageType === GW_MESSAGE_CONTEXT_ADDED) {\n this._contextNameToId[contextCreatedMsg.name] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.name;\n }\n else ;\n const name = this._contextIdToName[contextCreatedMsg.context_id];\n if (!name) {\n throw new Error(\"Received created event for context with unknown name: \" + contextCreatedMsg.context_id);\n }\n if (!this._contextNameToId[name]) {\n throw new Error(\"Received created event for context with unknown id: \" + contextCreatedMsg.context_id);\n }\n let contextData = this._contextNameToData[name];\n if (contextData) {\n if (contextData.isAnnounced) {\n return;\n }\n else {\n if (!contextData.hasCallbacks()) {\n throw new Error(\"Assertion failure: contextData.hasCallbacks()\");\n }\n contextData.isAnnounced = true;\n contextData.contextId = contextCreatedMsg.context_id;\n contextData.activityId = contextCreatedMsg.activity_id;\n if (!contextData.sentExplicitSubscription) {\n this.sendSubscribe(contextData).catch(() => { });\n }\n }\n }\n else {\n this._contextNameToData[name] = contextData =\n new GW3ContextData(contextCreatedMsg.context_id, name, true, contextCreatedMsg.activity_id);\n if (this._trackAllContexts) {\n this.subscribe(name, () => { }).then((subKey) => this._systemContextsSubKey = subKey);\n }\n }\n }\n subscribeToContextUpdatedMessages() {\n const updatedMessageTypes = [\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_JOINED_ACTIVITY,\n ];\n for (const updatedMessageType of updatedMessageTypes) {\n const sub = this._connection.on(updatedMessageType, this.handleContextUpdatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextUpdatedMessage(contextUpdatedMsg) {\n const updatedMessageType = contextUpdatedMsg.type;\n const contextId = contextUpdatedMsg.context_id;\n let contextData = this._contextNameToData[this._contextIdToName[contextId]];\n const justSeen = !contextData || !contextData.isAnnounced;\n if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n if (!contextData) {\n contextData =\n this._contextNameToData[contextUpdatedMsg.activity_id] ||\n new GW3ContextData(contextId, contextUpdatedMsg.activity_id, true, contextUpdatedMsg.activity_id);\n }\n this._contextNameToData[contextUpdatedMsg.activity_id] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.activity_id;\n this._contextNameToId[contextUpdatedMsg.activity_id] = contextId;\n contextData.contextId = contextId;\n contextData.isAnnounced = true;\n contextData.activityId = contextUpdatedMsg.activity_id;\n contextData.joinedActivity = true;\n }\n else {\n if (!contextData || !contextData.isAnnounced) {\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData = contextData || new GW3ContextData(contextId, contextUpdatedMsg.name, true, undefined);\n contextData.sentExplicitSubscription = true;\n this._contextNameToData[contextUpdatedMsg.name] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.name;\n this._contextNameToId[contextUpdatedMsg.name] = contextId;\n }\n else {\n this._logger.error(`Received 'update' for unknown context: ${contextId}`);\n }\n return;\n }\n }\n const oldContext = contextData.context;\n contextData.hasReceivedSnapshot = true;\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData.context = contextUpdatedMsg.data ?? {};\n }\n else if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n contextData.context = contextUpdatedMsg.context_snapshot ?? {};\n }\n else if (updatedMessageType === GW_MESSAGE_CONTEXT_UPDATED) {\n contextData.context = applyContextDelta(contextData.context, contextUpdatedMsg.delta, this._logger);\n }\n else {\n throw new Error(\"Unrecognized context update message \" + updatedMessageType);\n }\n if (justSeen ||\n !deepEqual(contextData.context, oldContext) ||\n updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n this.invokeUpdateCallbacks(contextData, contextUpdatedMsg.delta, { updaterId: contextUpdatedMsg.updater_id });\n }\n }\n invokeUpdateCallbacks(contextData, delta, extraData) {\n delta = delta || { added: {}, updated: {}, reset: {}, removed: [] };\n if (delta.commands) {\n delta.added = delta.updated = delta.reset = {};\n delta.removed = [];\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n if (command.path.indexOf(\".\") === -1) {\n delta.removed.push(command.path);\n }\n setValueToPath(delta.updated, null, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(delta.updated, command.value, command.path);\n }\n }\n }\n for (const updateCallbackIndex in contextData.updateCallbacks) {\n if (contextData.updateCallbacks.hasOwnProperty(updateCallbackIndex)) {\n try {\n const updateCallback = contextData.updateCallbacks[updateCallbackIndex];\n updateCallback(deepClone(contextData.context), deepClone(Object.assign({}, delta.added || {}, delta.updated || {}, delta.reset || {})), delta.removed, parseInt(updateCallbackIndex, 10), extraData);\n }\n catch (err) {\n this._logger.debug(\"callback error: \" + JSON.stringify(err));\n }\n }\n }\n }\n subscribeToContextDestroyedMessages() {\n const destroyedMessageTypes = [\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n ];\n for (const destroyedMessageType of destroyedMessageTypes) {\n const sub = this._connection.on(destroyedMessageType, this.handleContextDestroyedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextDestroyedMessage(destroyedMsg) {\n const destroyedMessageType = destroyedMsg.type;\n let contextId;\n let name;\n if (destroyedMessageType === GW_MESSAGE_ACTIVITY_DESTROYED) {\n name = destroyedMsg.activity_id;\n contextId = this._contextNameToId[name];\n if (!contextId) {\n this._logger.error(`Received 'destroyed' for unknown activity: ${destroyedMsg.activity_id}`);\n return;\n }\n }\n else {\n contextId = destroyedMsg.context_id;\n name = this._contextIdToName[contextId];\n if (!name) {\n this._logger.error(`Received 'destroyed' for unknown context: ${destroyedMsg.context_id}`);\n return;\n }\n }\n delete this._contextIdToName[contextId];\n delete this._contextNameToId[name];\n const contextData = this._contextNameToData[name];\n delete this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n this._logger.error(`Received 'destroyed' for unknown context: ${contextId}`);\n return;\n }\n }\n async sendSubscribe(contextData) {\n contextData.sentExplicitSubscription = true;\n try {\n await this._gw3Session.send({\n type: GW_MESSAGE_SUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n });\n return;\n }\n catch (error) {\n contextData.sentExplicitSubscription = false;\n throw error;\n }\n }\n async sendUnsubscribe(contextData) {\n const prev = contextData.sentExplicitSubscription;\n contextData.sentExplicitSubscription = false;\n try {\n await this._gw3Session.send({\n type: GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n });\n return;\n }\n catch (error) {\n contextData.sentExplicitSubscription = prev;\n throw error;\n }\n }\n calculateContextDeltaV1(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined };\n if (from) {\n for (const x of Object.keys(from)) {\n if (Object.keys(to).indexOf(x) !== -1\n && to[x] !== null\n && !deepEqual(from[x], to[x])) {\n delta.updated[x] = to[x];\n }\n }\n }\n for (const x of Object.keys(to)) {\n if (!from || (Object.keys(from).indexOf(x) === -1)) {\n if (to[x] !== null) {\n delta.added[x] = to[x];\n }\n }\n else if (to[x] === null) {\n delta.removed.push(x);\n }\n }\n return delta;\n }\n calculateContextDeltaV2(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined, commands: [] };\n for (const x of Object.keys(to)) {\n if (to[x] !== null) {\n const fromX = from ? from[x] : null;\n if (!deepEqual(fromX, to[x])) {\n delta.commands?.push({ type: \"set\", path: x, value: to[x] });\n }\n }\n else {\n delta.commands?.push({ type: \"remove\", path: x });\n }\n }\n return delta;\n }\n resetState() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n if (this._systemContextsSubKey) {\n this.unsubscribe(this._systemContextsSubKey, true);\n delete this._systemContextsSubKey;\n }\n this._gw3Subscriptions = [];\n this._contextNameToId = {};\n this._contextIdToName = {};\n delete this._protocolVersion;\n this._contextsTempCache = Object.keys(this._contextNameToData).reduce((cacheSoFar, ctxName) => {\n const contextData = this._contextNameToData[ctxName];\n const addToCache = !this._onlyReAnnounceSubscribedContexts || contextData.hasReceivedSnapshot;\n if (addToCache) {\n cacheSoFar[ctxName] = this._contextNameToData[ctxName].context;\n }\n return cacheSoFar;\n }, {});\n this._contextNameToData = {};\n }\n async reInitiateState() {\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n await Promise.all(this._contextsSubscriptionsCache.map((subscription) => this.subscribe(subscription.contextName, subscription.callback, subscription.subKey)));\n await this.flushQueue();\n for (const ctxName in this._contextsTempCache) {\n if (typeof this._contextsTempCache[ctxName] !== \"object\" || Object.keys(this._contextsTempCache[ctxName]).length === 0) {\n continue;\n }\n const lastKnownData = this._contextsTempCache[ctxName];\n this._logger.info(`Re-announcing known context: ${ctxName}`);\n await this.flushQueue();\n await this.update(ctxName, lastKnownData);\n }\n this._contextsTempCache = {};\n this._logger.info(\"Contexts are re-announced\");\n }\n flushQueue() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n }\n}\n\nclass ContextsModule {\n initTime;\n initStartTime;\n initEndTime;\n _bridge;\n constructor(config) {\n this._bridge = new GW3Bridge(config);\n }\n all() {\n return this._bridge.all();\n }\n update(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.update(name, data);\n }\n set(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.set(name, data);\n }\n setPath(name, path, data) {\n this.checkName(name);\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(data);\n return this.set(name, data);\n }\n return this._bridge.setPath(name, path, data);\n }\n setPaths(name, paths) {\n this.checkName(name);\n if (!Array.isArray(paths)) {\n throw new Error(\"Please provide the paths as an array of PathValues!\");\n }\n for (const { path, value } of paths) {\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(value);\n }\n }\n return this._bridge.setPaths(name, paths);\n }\n subscribe(name, callback) {\n this.checkName(name);\n if (typeof callback !== \"function\") {\n throw new Error(\"Please provide the callback as a function!\");\n }\n return this._bridge\n .subscribe(name, (data, delta, removed, key, extraData) => callback(data, delta, removed, () => this._bridge.unsubscribe(key), extraData))\n .then((key) => () => {\n this._bridge.unsubscribe(key);\n });\n }\n get(name) {\n this.checkName(name);\n return this._bridge.get(name);\n }\n ready() {\n return Promise.resolve(this);\n }\n destroy(name) {\n this.checkName(name);\n return this._bridge.destroy(name);\n }\n get setPathSupported() {\n return this._bridge.setPathSupported;\n }\n checkName(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new Error(\"Please provide the name as a non-empty string!\");\n }\n }\n checkPath(path) {\n if (typeof path !== \"string\") {\n throw new Error(\"Please provide the path as a dot delimited string!\");\n }\n }\n checkData(data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Please provide the data as an object!\");\n }\n }\n}\n\nfunction promisify (promise, successCallback, errorCallback) {\n if (typeof successCallback !== \"function\" && typeof errorCallback !== \"function\") {\n return promise;\n }\n if (typeof successCallback !== \"function\") {\n successCallback = () => { };\n }\n else if (typeof errorCallback !== \"function\") {\n errorCallback = () => { };\n }\n return promise.then(successCallback, errorCallback);\n}\n\nfunction rejectAfter(ms = 0, promise, error) {\n let timeout;\n const clearTimeoutIfThere = () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n promise\n .then(() => {\n clearTimeoutIfThere();\n })\n .catch(() => {\n clearTimeoutIfThere();\n });\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => reject(error), ms);\n });\n}\n\n/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nDecoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nDecoder.tuple;\r\n/** See `Decoder.dict` */\r\nDecoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nDecoder.oneOf;\r\n/** See `Decoder.union` */\r\nvar union = Decoder.union;\r\n/** See `Decoder.intersection` */\r\nDecoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nDecoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nDecoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nDecoder.succeed;\r\n/** See `Decoder.fail` */\r\nvar fail = Decoder.fail;\r\n/** See `Decoder.lazy` */\r\nDecoder.lazy;\n\nconst functionCheck = (input, propDescription) => {\n const providedType = typeof input;\n return providedType === \"function\" ?\n anyJson() :\n fail(`The provided argument as ${propDescription} should be of type function, provided: ${typeof providedType}`);\n};\nconst nonEmptyStringDecoder = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nconst nonNegativeNumberDecoder = number().where((num) => num >= 0, \"Expected a non-negative number or 0\");\nconst positiveNumberDecoder = number().where((num) => num > 0, \"Expected a positive number\");\nconst methodDefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n objectTypes: optional(array(nonEmptyStringDecoder)),\n displayName: optional(nonEmptyStringDecoder),\n accepts: optional(nonEmptyStringDecoder),\n returns: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n version: optional(nonNegativeNumberDecoder),\n supportsStreaming: optional(boolean()),\n flags: optional(object()),\n getServers: optional(anyJson().andThen((result) => functionCheck(result, \"method definition getServers\")))\n});\nconst methodFilterDecoder = union(nonEmptyStringDecoder, methodDefinitionDecoder);\nconst instanceDecoder = object({\n application: optional(nonEmptyStringDecoder),\n applicationName: optional(nonEmptyStringDecoder),\n pid: optional(nonNegativeNumberDecoder),\n machine: optional(nonEmptyStringDecoder),\n user: optional(nonEmptyStringDecoder),\n environment: optional(nonEmptyStringDecoder),\n region: optional(nonEmptyStringDecoder),\n service: optional(nonEmptyStringDecoder),\n instance: optional(nonEmptyStringDecoder),\n windowId: optional(nonEmptyStringDecoder),\n peerId: optional(nonEmptyStringDecoder),\n isLocal: optional(boolean()),\n api: optional(nonEmptyStringDecoder),\n getMethods: optional(anyJson().andThen((result) => functionCheck(result, \"instance getMethods\"))),\n getStreams: optional(anyJson().andThen((result) => functionCheck(result, \"instance getStreams\")))\n});\nconst targetDecoder = union(constant(\"best\"), constant(\"all\"), constant(\"skipMine\"), instanceDecoder, array(instanceDecoder));\nconst invokeOptionsDecoder = object({\n waitTimeoutMs: optional(positiveNumberDecoder),\n methodResponseTimeoutMs: optional(positiveNumberDecoder)\n});\n\nvar InvokeStatus;\n(function (InvokeStatus) {\n InvokeStatus[InvokeStatus[\"Success\"] = 0] = \"Success\";\n InvokeStatus[InvokeStatus[\"Error\"] = 1] = \"Error\";\n})(InvokeStatus || (InvokeStatus = {}));\nclass Client {\n protocol;\n repo;\n instance;\n configuration;\n constructor(protocol, repo, instance, configuration) {\n this.protocol = protocol;\n this.repo = repo;\n this.instance = instance;\n this.configuration = configuration;\n }\n subscribe(method, options, successCallback, errorCallback, existingSub) {\n const callProtocolSubscribe = (targetServers, stream, successProxy, errorProxy) => {\n options.methodResponseTimeout = options.methodResponseTimeout ?? options.waitTimeoutMs;\n this.protocol.client.subscribe(stream, options, targetServers, successProxy, errorProxy, existingSub);\n };\n const promise = new Promise((resolve, reject) => {\n const successProxy = (sub) => {\n resolve(sub);\n };\n const errorProxy = (err) => {\n reject(err);\n };\n if (!method) {\n reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n return;\n }\n let methodDef;\n if (typeof method === \"string\") {\n methodDef = { name: method };\n }\n else {\n methodDef = method;\n }\n if (!methodDef.name) {\n reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n return;\n }\n if (options === undefined) {\n options = {};\n }\n let target = options.target;\n if (target === undefined) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\") {\n reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\", \"best\", or an instance.`));\n return;\n }\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = options.method_response_timeout;\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = this.configuration.methodResponseTimeout;\n }\n }\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = options.wait_for_method_timeout;\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n const delayStep = 500;\n let delayTillNow = 0;\n let currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n callProtocolSubscribe(currentServers, currentServers[0].methods[0], successProxy, errorProxy);\n }\n else {\n const retry = () => {\n if (!target || !(options.waitTimeoutMs)) {\n return;\n }\n delayTillNow += delayStep;\n currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n const streamInfo = currentServers[0].methods[0];\n callProtocolSubscribe(currentServers, streamInfo, successProxy, errorProxy);\n }\n else if (delayTillNow >= options.waitTimeoutMs) {\n const def = typeof method === \"string\" ? { name: method } : method;\n callProtocolSubscribe(currentServers, def, successProxy, errorProxy);\n }\n else {\n setTimeout(retry, delayStep);\n }\n };\n setTimeout(retry, delayStep);\n }\n });\n return promisify(promise, successCallback, errorCallback);\n }\n servers(methodFilter) {\n const filterCopy = methodFilter === undefined\n ? undefined\n : { ...methodFilter };\n return this.getServers(filterCopy).map((serverMethodMap) => {\n return serverMethodMap.server.instance;\n });\n }\n methods(methodFilter) {\n if (typeof methodFilter === \"string\") {\n methodFilter = { name: methodFilter };\n }\n else {\n methodFilter = { ...methodFilter };\n }\n return this.getMethods(methodFilter);\n }\n methodsForInstance(instance) {\n return this.getMethodsForInstance(instance);\n }\n methodAdded(callback) {\n return this.repo.onMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.repo.onMethodRemoved(callback);\n }\n serverAdded(callback) {\n return this.repo.onServerAdded(callback);\n }\n serverRemoved(callback) {\n return this.repo.onServerRemoved((server, reason) => {\n callback(server, reason);\n });\n }\n serverMethodAdded(callback) {\n return this.repo.onServerMethodAdded((server, method) => {\n callback({ server, method });\n });\n }\n serverMethodRemoved(callback) {\n return this.repo.onServerMethodRemoved((server, method) => {\n callback({ server, method });\n });\n }\n async invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n const getInvokePromise = async () => {\n const methodDefinition = typeof methodFilter === \"string\" ? { name: methodFilter } : { ...methodFilter };\n if (!argumentObj) {\n argumentObj = {};\n }\n if (!target) {\n target = \"best\";\n }\n if (!additionalOptions) {\n additionalOptions = {};\n }\n const methodFilterDecoderResult = methodFilterDecoder.run(methodDefinition);\n if (!methodFilterDecoderResult.ok) {\n const message = `The provided 'method' argument is invalid. Error: ${JSON.stringify(methodFilterDecoderResult.error)}.`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (typeof argumentObj !== \"object\") {\n const message = \"The provided 'argumentObj' argument is invalid. Error: The argumentObj should be an instance of an object\";\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n const targetDecoderResult = targetDecoder.run(target);\n if (!targetDecoderResult.ok) {\n const message = `The provided 'target' argument is invalid. Error: ${JSON.stringify(targetDecoderResult.error)}.`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n const invokeOptionsDecoderResult = invokeOptionsDecoder.run(additionalOptions);\n if (!invokeOptionsDecoderResult.ok) {\n const message = `The provided 'options' argument is invalid. Error: ${JSON.stringify(invokeOptionsDecoderResult.error)}.`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (success && typeof success !== \"function\") {\n const message = \"The provided 'success' function is invalid. Error: The success should be a valid function\";\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (error && typeof error !== \"function\") {\n const message = \"The provided 'error' function is invalid. Error: The error should be a valid function\";\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = additionalOptions.method_response_timeout;\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = this.configuration.methodResponseTimeout;\n }\n }\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = additionalOptions.wait_for_method_timeout;\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n let serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length === 0) {\n try {\n serversMethodMap = await this.tryToAwaitForMethods(methodDefinition, target, additionalOptions);\n }\n catch (err) {\n const message = `Can not find a method matching ${JSON.stringify(methodFilter)} with server filter ${JSON.stringify(target)}`;\n return Promise.reject(this.generateInvalidInputInvocationResult(message, methodDefinition, argumentObj));\n }\n }\n const timeout = additionalOptions.methodResponseTimeoutMs;\n const additionalOptionsCopy = additionalOptions;\n const invokePromises = serversMethodMap.map((serversMethodPair) => {\n const invId = nanoid(10);\n const method = serversMethodPair.methods[0];\n const server = serversMethodPair.server;\n const invokePromise = this.protocol.client.invoke(invId, method, argumentObj, server, additionalOptionsCopy);\n return Promise.race([\n invokePromise,\n rejectAfter(timeout, invokePromise, {\n invocationId: invId,\n message: `Invocation timeout (${timeout} ms) reached for method name: ${method?.name}, target instance: ${JSON.stringify(server.instance)}, options: ${JSON.stringify(additionalOptionsCopy)}`,\n status: InvokeStatus.Error,\n })\n ]);\n });\n const invocationMessages = await Promise.all(invokePromises);\n const results = this.getInvocationResultObj(invocationMessages, methodDefinition, argumentObj);\n const allRejected = invocationMessages.every((result) => result.status === InvokeStatus.Error);\n if (allRejected) {\n return Promise.reject(results);\n }\n return results;\n };\n return promisify(getInvokePromise(), success, error);\n }\n generateInvalidInputInvocationResult(message, methodDefinition, argumentObj) {\n const method = {\n ...methodDefinition,\n getServers: () => [],\n supportsStreaming: false,\n objectTypes: methodDefinition.objectTypes ?? [],\n flags: methodDefinition.flags?.metadata ?? {}\n };\n const invokeResultMessage = {\n invocationId: nanoid(10),\n status: InvokeStatus.Error,\n message\n };\n return this.getInvocationResultObj([invokeResultMessage], method, argumentObj);\n }\n getInvocationResultObj(invocationResults, method, calledWith) {\n const all_return_values = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Success)\n .reduce((allValues, currentValue) => {\n allValues = [\n ...allValues,\n {\n executed_by: currentValue.instance,\n returned: currentValue.result,\n called_with: calledWith,\n method,\n message: currentValue.message,\n status: currentValue.status,\n }\n ];\n return allValues;\n }, []);\n const all_errors = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Error)\n .reduce((allErrors, currError) => {\n allErrors = [\n ...allErrors,\n {\n executed_by: currError.instance,\n called_with: calledWith,\n name: method.name,\n message: currError.message,\n }\n ];\n return allErrors;\n }, []);\n const invResult = invocationResults[0];\n const result = {\n method,\n called_with: calledWith,\n returned: invResult.result,\n executed_by: invResult.instance,\n all_return_values,\n all_errors,\n message: invResult.message,\n status: invResult.status\n };\n return result;\n }\n tryToAwaitForMethods(methodDefinition, target, additionalOptions) {\n return new Promise((resolve, reject) => {\n if (additionalOptions.waitTimeoutMs === 0) {\n reject();\n return;\n }\n const delayStep = 500;\n let delayTillNow = 0;\n const retry = () => {\n delayTillNow += delayStep;\n const serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length > 0) {\n clearInterval(interval);\n resolve(serversMethodMap);\n }\n else if (delayTillNow >= (additionalOptions.waitTimeoutMs || 10000)) {\n clearInterval(interval);\n reject();\n return;\n }\n };\n const interval = setInterval(retry, delayStep);\n });\n }\n filterByTarget(target, serverMethodMap) {\n if (typeof target === \"string\") {\n if (target === \"all\") {\n return [...serverMethodMap];\n }\n else if (target === \"best\") {\n const localMachine = serverMethodMap\n .find((s) => s.server.instance.isLocal);\n if (localMachine) {\n return [localMachine];\n }\n if (serverMethodMap[0] !== undefined) {\n return [serverMethodMap[0]];\n }\n }\n else if (target === \"skipMine\") {\n return serverMethodMap.filter(({ server }) => server.instance.peerId !== this.instance.peerId);\n }\n }\n else {\n let targetArray;\n if (!Array.isArray(target)) {\n targetArray = [target];\n }\n else {\n targetArray = target;\n }\n const allServersMatching = targetArray.reduce((matches, filter) => {\n const myMatches = serverMethodMap.filter((serverMethodPair) => {\n return this.instanceMatch(filter, serverMethodPair.server.instance);\n });\n return matches.concat(myMatches);\n }, []);\n return allServersMatching;\n }\n return [];\n }\n instanceMatch(instanceFilter, instanceDefinition) {\n if (instanceFilter?.peerId && instanceFilter?.instance) {\n instanceFilter = { ...instanceFilter };\n delete instanceFilter.peerId;\n }\n return this.containsProps(instanceFilter, instanceDefinition);\n }\n methodMatch(methodFilter, methodDefinition) {\n return this.containsProps(methodFilter, methodDefinition);\n }\n containsProps(filter, repoMethod) {\n const filterProps = Object.keys(filter)\n .filter((prop) => {\n return filter[prop] !== undefined\n && filter[prop] !== null\n && typeof filter[prop] !== \"function\"\n && prop !== \"object_types\"\n && prop !== \"display_name\"\n && prop !== \"id\"\n && prop !== \"gatewayId\"\n && prop !== \"identifier\"\n && prop[0] !== \"_\";\n });\n return filterProps.every((prop) => {\n let isMatch;\n const filterValue = filter[prop];\n const repoMethodValue = repoMethod[prop];\n switch (prop) {\n case \"objectTypes\":\n isMatch = (filterValue || []).every((filterValueEl) => {\n return (repoMethodValue || []).includes(filterValueEl);\n });\n break;\n case \"flags\":\n isMatch = isSubset(repoMethodValue || {}, filterValue || {});\n break;\n default:\n isMatch = String(filterValue).toLowerCase() === String(repoMethodValue).toLowerCase();\n }\n return isMatch;\n });\n }\n getMethods(methodFilter) {\n if (methodFilter === undefined) {\n return this.repo.getMethods();\n }\n const methods = this.repo.getMethods().filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n return methods;\n }\n getMethodsForInstance(instanceFilter) {\n const allServers = this.repo.getServers();\n const matchingServers = allServers.filter((server) => {\n return this.instanceMatch(instanceFilter, server.instance);\n });\n if (matchingServers.length === 0) {\n return [];\n }\n let resultMethodsObject = {};\n if (matchingServers.length === 1) {\n resultMethodsObject = matchingServers[0].methods;\n }\n else {\n matchingServers.forEach((server) => {\n Object.keys(server.methods).forEach((methodKey) => {\n const method = server.methods[methodKey];\n resultMethodsObject[method.identifier] = method;\n });\n });\n }\n return Object.keys(resultMethodsObject)\n .map((key) => {\n return resultMethodsObject[key];\n });\n }\n getServers(methodFilter) {\n const servers = this.repo.getServers();\n if (methodFilter === undefined) {\n return servers.map((server) => {\n return { server, methods: [] };\n });\n }\n return servers.reduce((prev, current) => {\n const methodsForServer = Object.values(current.methods);\n const matchingMethods = methodsForServer.filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n if (matchingMethods.length > 0) {\n prev.push({ server: current, methods: matchingMethods });\n }\n return prev;\n }, []);\n }\n getServerMethodsByFilterAndTarget(methodFilter, target) {\n const serversMethodMap = this.getServers(methodFilter);\n return this.filterByTarget(target, serversMethodMap);\n }\n}\n\nclass ServerSubscription {\n protocol;\n repoMethod;\n subscription;\n constructor(protocol, repoMethod, subscription) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.subscription = subscription;\n }\n get stream() {\n if (!this.repoMethod.stream) {\n throw new Error(\"no stream\");\n }\n return this.repoMethod.stream;\n }\n get arguments() { return this.subscription.arguments || {}; }\n get branchKey() { return this.subscription.branchKey; }\n get instance() {\n if (!this.subscription.instance) {\n throw new Error(\"no instance\");\n }\n return this.subscription.instance;\n }\n close() {\n this.protocol.server.closeSingleSubscription(this.repoMethod, this.subscription);\n }\n push(data) {\n this.protocol.server.pushDataToSingle(this.repoMethod, this.subscription, data);\n }\n}\n\nclass Request {\n protocol;\n repoMethod;\n requestContext;\n arguments;\n instance;\n constructor(protocol, repoMethod, requestContext) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.requestContext = requestContext;\n this.arguments = requestContext.arguments;\n this.instance = requestContext.instance;\n }\n accept() {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, \"\");\n }\n acceptOnBranch(branch) {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, branch);\n }\n reject(reason) {\n this.protocol.server.rejectRequest(this.requestContext, this.repoMethod, reason);\n }\n}\n\nlet ServerStreaming$1 = class ServerStreaming {\n protocol;\n server;\n constructor(protocol, server) {\n this.protocol = protocol;\n this.server = server;\n protocol.server.onSubRequest((rc, rm) => this.handleSubRequest(rc, rm));\n protocol.server.onSubAdded((sub, rm) => this.handleSubAdded(sub, rm));\n protocol.server.onSubRemoved((sub, rm) => this.handleSubRemoved(sub, rm));\n }\n handleSubRequest(requestContext, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRequestHandler === \"function\")) {\n return;\n }\n const request = new Request(this.protocol, repoMethod, requestContext);\n repoMethod.streamCallbacks.subscriptionRequestHandler(request);\n }\n handleSubAdded(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionAddedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionAddedHandler(sub);\n }\n handleSubRemoved(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRemovedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionRemovedHandler(sub);\n }\n};\n\nclass ServerBranch {\n key;\n protocol;\n repoMethod;\n constructor(key, protocol, repoMethod) {\n this.key = key;\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n }\n subscriptions() {\n const subList = this.protocol.server.getSubscriptionList(this.repoMethod, this.key);\n return subList.map((sub) => {\n return new ServerSubscription(this.protocol, this.repoMethod, sub);\n });\n }\n close() {\n this.protocol.server.closeAllSubscriptions(this.repoMethod, this.key);\n }\n push(data) {\n this.protocol.server.pushData(this.repoMethod, data, [this.key]);\n }\n}\n\nclass ServerStream {\n _protocol;\n _repoMethod;\n _server;\n name;\n constructor(_protocol, _repoMethod, _server) {\n this._protocol = _protocol;\n this._repoMethod = _repoMethod;\n this._server = _server;\n this.name = this._repoMethod.definition.name;\n }\n branches(key) {\n const bList = this._protocol.server.getBranchList(this._repoMethod);\n if (key) {\n if (bList.indexOf(key) > -1) {\n return new ServerBranch(key, this._protocol, this._repoMethod);\n }\n return undefined;\n }\n else {\n return bList.map((branchKey) => {\n return new ServerBranch(branchKey, this._protocol, this._repoMethod);\n });\n }\n }\n branch(key) {\n return this.branches(key);\n }\n subscriptions() {\n const subList = this._protocol.server.getSubscriptionList(this._repoMethod);\n return subList.map((sub) => {\n return new ServerSubscription(this._protocol, this._repoMethod, sub);\n });\n }\n get definition() {\n const def2 = this._repoMethod.definition;\n return {\n accepts: def2.accepts,\n description: def2.description,\n displayName: def2.displayName,\n name: def2.name,\n objectTypes: def2.objectTypes,\n returns: def2.returns,\n supportsStreaming: def2.supportsStreaming,\n flags: def2.flags?.metadata,\n };\n }\n close() {\n this._protocol.server.closeAllSubscriptions(this._repoMethod);\n this._server.unregister(this._repoMethod.definition, true);\n }\n push(data, branches) {\n if (typeof branches !== \"string\" && !Array.isArray(branches) && branches !== undefined) {\n throw new Error(\"invalid branches should be string or string array\");\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n this._protocol.server.pushData(this._repoMethod, data, branches);\n }\n updateRepoMethod(repoMethod) {\n this._repoMethod = repoMethod;\n }\n}\n\nclass Server {\n protocol;\n serverRepository;\n streaming;\n invocations = 0;\n currentlyUnregistering = {};\n constructor(protocol, serverRepository) {\n this.protocol = protocol;\n this.serverRepository = serverRepository;\n this.streaming = new ServerStreaming$1(protocol, this);\n this.protocol.server.onInvoked(this.onMethodInvoked.bind(this));\n }\n createStream(streamDef, callbacks, successCallback, errorCallback, existingStream) {\n const promise = new Promise((resolve, reject) => {\n if (!streamDef) {\n reject(\"The stream name must be unique! Please, provide either a unique string for a stream name to “glue.interop.createStream()” or a “methodDefinition” object with a unique “name” property for the stream.\");\n return;\n }\n let streamMethodDefinition;\n if (typeof streamDef === \"string\") {\n streamMethodDefinition = { name: \"\" + streamDef };\n }\n else {\n streamMethodDefinition = { ...streamDef };\n }\n if (!streamMethodDefinition.name) {\n return reject(`The “name” property is required for the “streamDefinition” object and must be unique. Stream definition: ${JSON.stringify(streamMethodDefinition)}`);\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === streamMethodDefinition.name);\n if (nameAlreadyExists) {\n return reject(`A stream with the name \"${streamMethodDefinition.name}\" already exists! Please, provide a unique name for the stream.`);\n }\n streamMethodDefinition.supportsStreaming = true;\n if (!callbacks) {\n callbacks = {};\n }\n if (typeof callbacks.subscriptionRequestHandler !== \"function\") {\n callbacks.subscriptionRequestHandler = (request) => {\n request.accept();\n };\n }\n const repoMethod = this.serverRepository.add({\n definition: streamMethodDefinition,\n streamCallbacks: callbacks,\n protocolState: {},\n });\n this.protocol.server.createStream(repoMethod)\n .then(() => {\n let streamUserObject;\n if (existingStream) {\n streamUserObject = existingStream;\n existingStream.updateRepoMethod(repoMethod);\n }\n else {\n streamUserObject = new ServerStream(this.protocol, repoMethod, this);\n }\n repoMethod.stream = streamUserObject;\n resolve(streamUserObject);\n })\n .catch((err) => {\n if (repoMethod.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n reject(err);\n });\n });\n return promisify(promise, successCallback, errorCallback);\n }\n register(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallbackFunction = async (context, resultCallback) => {\n try {\n const result = callback(context.args, context.instance);\n if (result && typeof result.then === \"function\") {\n const resultValue = await result;\n resultCallback(undefined, resultValue);\n }\n else {\n resultCallback(undefined, result);\n }\n }\n catch (e) {\n resultCallback(e ?? \"\", e ?? \"\");\n }\n };\n wrappedCallbackFunction.userCallback = callback;\n return this.registerCore(methodDefinition, wrappedCallbackFunction);\n }\n registerAsync(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallback = async (context, resultCallback) => {\n try {\n let resultCalled = false;\n const success = (result) => {\n if (!resultCalled) {\n resultCallback(undefined, result);\n }\n resultCalled = true;\n };\n const error = (e) => {\n if (!resultCalled) {\n if (!e) {\n e = \"\";\n }\n resultCallback(e, e);\n }\n resultCalled = true;\n };\n const methodResult = callback(context.args, context.instance, success, error);\n if (methodResult && typeof methodResult.then === \"function\") {\n methodResult\n .then(success)\n .catch(error);\n }\n }\n catch (e) {\n resultCallback(e, undefined);\n }\n };\n wrappedCallback.userCallbackAsync = callback;\n return this.registerCore(methodDefinition, wrappedCallback);\n }\n async unregister(methodFilter, forStream = false) {\n if (methodFilter === undefined) {\n return Promise.reject(\"Please, provide either a unique string for a name or an object containing a “name” property.\");\n }\n if (typeof methodFilter === \"function\") {\n await this.unregisterWithPredicate(methodFilter, forStream);\n return;\n }\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = methodFilter;\n }\n if (methodDefinition.name === undefined) {\n return Promise.reject(\"Method name is required. Cannot find a method if the method name is undefined!\");\n }\n const methodToBeRemoved = this.serverRepository.getList().find((serverMethod) => {\n return serverMethod.definition.name === methodDefinition.name\n && (serverMethod.definition.supportsStreaming || false) === forStream;\n });\n if (!methodToBeRemoved) {\n return Promise.reject(`Method with a name \"${methodDefinition.name}\" does not exist or is not registered by your application!`);\n }\n await this.removeMethodsOrStreams([methodToBeRemoved]);\n }\n async unregisterWithPredicate(filterPredicate, forStream) {\n const methodsOrStreamsToRemove = this.serverRepository.getList()\n .filter((sm) => filterPredicate(sm.definition))\n .filter((serverMethod) => (serverMethod.definition.supportsStreaming || false) === forStream);\n if (!methodsOrStreamsToRemove || methodsOrStreamsToRemove.length === 0) {\n return Promise.reject(`Could not find a ${forStream ? \"stream\" : \"method\"} matching the specified condition!`);\n }\n await this.removeMethodsOrStreams(methodsOrStreamsToRemove);\n }\n removeMethodsOrStreams(methodsToRemove) {\n const methodUnregPromises = [];\n methodsToRemove.forEach((method) => {\n const promise = this.protocol.server.unregister(method)\n .then(() => {\n if (method.repoId) {\n this.serverRepository.remove(method.repoId);\n }\n });\n methodUnregPromises.push(promise);\n this.addAsCurrentlyUnregistering(method.definition.name, promise);\n });\n return Promise.all(methodUnregPromises);\n }\n async addAsCurrentlyUnregistering(methodName, promise) {\n const timeout = new Promise((resolve) => setTimeout(resolve, 5000));\n this.currentlyUnregistering[methodName] = Promise.race([promise, timeout]).then(() => {\n delete this.currentlyUnregistering[methodName];\n });\n }\n async registerCore(method, theFunction) {\n let methodDefinition;\n if (typeof method === \"string\") {\n methodDefinition = { name: \"\" + method };\n }\n else {\n methodDefinition = { ...method };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Please, provide a (unique) string value for the “name” property in the “methodDefinition” object: ${JSON.stringify(method)}`);\n }\n const unregisterInProgress = this.currentlyUnregistering[methodDefinition.name];\n if (typeof unregisterInProgress !== \"undefined\") {\n await unregisterInProgress;\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === methodDefinition.name);\n if (nameAlreadyExists) {\n return Promise.reject(`A method with the name \"${methodDefinition.name}\" already exists! Please, provide a unique name for the method.`);\n }\n if (methodDefinition.supportsStreaming) {\n return Promise.reject(`When you create methods with “glue.interop.register()” or “glue.interop.registerAsync()” the property “supportsStreaming” cannot be “true”. If you want “${methodDefinition.name}” to be a stream, please use the “glue.interop.createStream()” method.`);\n }\n const repoMethod = this.serverRepository.add({\n definition: methodDefinition,\n theFunction,\n protocolState: {},\n });\n return this.protocol.server.register(repoMethod)\n .catch((err) => {\n if (repoMethod?.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n throw err;\n });\n }\n onMethodInvoked(methodToExecute, invocationId, invocationArgs) {\n if (!methodToExecute || !methodToExecute.theFunction) {\n return;\n }\n methodToExecute.theFunction(invocationArgs, (err, result) => {\n if (err !== undefined && err !== null) {\n if (err.message && typeof err.message === \"string\") {\n err = err.message;\n }\n else if (typeof err !== \"string\") {\n try {\n err = JSON.stringify(err);\n }\n catch (unStrException) {\n err = `un-stringifyable error in onMethodInvoked! Top level prop names: ${Object.keys(err)}`;\n }\n }\n }\n if (!result) {\n result = {};\n }\n else if (typeof result !== \"object\" || Array.isArray(result)) {\n result = { _value: result };\n }\n this.protocol.server.methodInvocationResult(methodToExecute, invocationId, err, result);\n });\n }\n}\n\nclass InstanceWrapper {\n wrapped = {};\n constructor(API, instance, connection) {\n this.wrapped.getMethods = function () {\n return API.methodsForInstance(this);\n };\n this.wrapped.getStreams = function () {\n return API.methodsForInstance(this).filter((m) => m.supportsStreaming);\n };\n if (instance) {\n this.refreshWrappedObject(instance);\n }\n if (connection) {\n connection.loggedIn(() => {\n this.refresh(connection);\n });\n this.refresh(connection);\n }\n }\n unwrap() {\n return this.wrapped;\n }\n refresh(connection) {\n if (!connection) {\n return;\n }\n const resolvedIdentity = connection?.resolvedIdentity;\n const instance = Object.assign({}, resolvedIdentity ?? {}, { peerId: connection?.peerId });\n this.refreshWrappedObject(instance);\n }\n refreshWrappedObject(resolvedIdentity) {\n Object.keys(resolvedIdentity).forEach((key) => {\n this.wrapped[key] = resolvedIdentity[key];\n });\n this.wrapped.user = resolvedIdentity.user;\n this.wrapped.instance = resolvedIdentity.instance;\n this.wrapped.application = resolvedIdentity.application ?? nanoid(10);\n this.wrapped.applicationName = resolvedIdentity.applicationName;\n this.wrapped.pid = resolvedIdentity.pid ?? resolvedIdentity.process ?? Math.floor(Math.random() * 10000000000);\n this.wrapped.machine = resolvedIdentity.machine;\n this.wrapped.environment = resolvedIdentity.environment;\n this.wrapped.region = resolvedIdentity.region;\n this.wrapped.windowId = resolvedIdentity.windowId;\n this.wrapped.isLocal = resolvedIdentity.isLocal ?? true;\n this.wrapped.api = resolvedIdentity.api;\n this.wrapped.service = resolvedIdentity.service;\n this.wrapped.peerId = resolvedIdentity.peerId;\n }\n}\n\nconst hideMethodSystemFlags = (method) => {\n return {\n ...method,\n flags: method.flags.metadata || {}\n };\n};\nclass ClientRepository {\n logger;\n API;\n servers = {};\n myServer;\n methodsCount = {};\n callbacks = CallbackRegistryFactory();\n constructor(logger, API) {\n this.logger = logger;\n this.API = API;\n const peerId = this.API.instance.peerId;\n this.myServer = {\n id: peerId,\n methods: {},\n instance: this.API.instance,\n wrapper: this.API.unwrappedInstance,\n };\n this.servers[peerId] = this.myServer;\n }\n addServer(info, serverId) {\n this.logger.debug(`adding server ${serverId}`);\n const current = this.servers[serverId];\n if (current) {\n return current.id;\n }\n const wrapper = new InstanceWrapper(this.API, info);\n const serverEntry = {\n id: serverId,\n methods: {},\n instance: wrapper.unwrap(),\n wrapper,\n };\n this.servers[serverId] = serverEntry;\n this.callbacks.execute(\"onServerAdded\", serverEntry.instance);\n return serverId;\n }\n removeServerById(id, reason) {\n const server = this.servers[id];\n if (!server) {\n this.logger.warn(`not aware of server ${id}, my state ${JSON.stringify(Object.keys(this.servers))}`);\n return;\n }\n else {\n this.logger.debug(`removing server ${id}`);\n }\n Object.keys(server.methods).forEach((methodId) => {\n this.removeServerMethod(id, methodId);\n });\n delete this.servers[id];\n this.callbacks.execute(\"onServerRemoved\", server.instance, reason);\n }\n addServerMethod(serverId, method) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n if (server.methods[method.id]) {\n return;\n }\n const identifier = this.createMethodIdentifier(method);\n const that = this;\n const methodDefinition = {\n identifier,\n gatewayId: method.id,\n name: method.name,\n displayName: method.display_name,\n description: method.description,\n version: method.version,\n objectTypes: method.object_types || [],\n accepts: method.input_signature,\n returns: method.result_signature,\n supportsStreaming: typeof method.flags !== \"undefined\" ? method.flags.streaming : false,\n flags: method.flags ?? {},\n getServers: () => {\n return that.getServersByMethod(identifier);\n }\n };\n methodDefinition.object_types = methodDefinition.objectTypes;\n methodDefinition.display_name = methodDefinition.displayName;\n methodDefinition.version = methodDefinition.version;\n server.methods[method.id] = methodDefinition;\n const clientMethodDefinition = hideMethodSystemFlags(methodDefinition);\n if (!this.methodsCount[identifier]) {\n this.methodsCount[identifier] = 0;\n this.callbacks.execute(\"onMethodAdded\", clientMethodDefinition);\n }\n this.methodsCount[identifier] = this.methodsCount[identifier] + 1;\n this.callbacks.execute(\"onServerMethodAdded\", server.instance, clientMethodDefinition);\n return methodDefinition;\n }\n removeServerMethod(serverId, methodId) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n const method = server.methods[methodId];\n delete server.methods[methodId];\n const clientMethodDefinition = hideMethodSystemFlags(method);\n this.methodsCount[method.identifier] = this.methodsCount[method.identifier] - 1;\n if (this.methodsCount[method.identifier] === 0) {\n this.callbacks.execute(\"onMethodRemoved\", clientMethodDefinition);\n }\n this.callbacks.execute(\"onServerMethodRemoved\", server.instance, clientMethodDefinition);\n }\n getMethods() {\n return this.extractMethodsFromServers(Object.values(this.servers)).map(hideMethodSystemFlags);\n }\n getServers() {\n return Object.values(this.servers).map(this.hideServerMethodSystemFlags);\n }\n onServerAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerAdded\", callback);\n const serversWithMethodsToReplay = this.getServers().map((s) => s.instance);\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, serversWithMethodsToReplay, callback);\n }\n onMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodAdded\", callback);\n const methodsToReplay = this.getMethods();\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, methodsToReplay, callback);\n }\n onServerMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodAdded\", callback);\n let unsubCalled = false;\n const servers = this.getServers();\n setTimeout(() => {\n servers.forEach((server) => {\n const methods = server.methods;\n Object.keys(methods).forEach((methodId) => {\n if (!unsubCalled) {\n callback(server.instance, methods[methodId]);\n }\n });\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n onMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n getServerById(id) {\n const server = this.servers[id];\n if (!server) {\n return undefined;\n }\n return this.hideServerMethodSystemFlags(this.servers[id]);\n }\n reset() {\n Object.keys(this.servers).forEach((key) => {\n this.removeServerById(key, \"reset\");\n });\n this.servers = {\n [this.myServer.id]: this.myServer\n };\n this.methodsCount = {};\n }\n createMethodIdentifier(methodInfo) {\n const accepts = methodInfo.input_signature ?? \"\";\n const returns = methodInfo.result_signature ?? \"\";\n return (methodInfo.name + accepts + returns).toLowerCase();\n }\n getServersByMethod(identifier) {\n const allServers = [];\n Object.values(this.servers).forEach((server) => {\n Object.values(server.methods).forEach((method) => {\n if (method.identifier === identifier) {\n allServers.push(server.instance);\n }\n });\n });\n return allServers;\n }\n returnUnsubWithDelayedReplay(unsubscribeFunc, collectionToReplay, callback) {\n let unsubCalled = false;\n setTimeout(() => {\n collectionToReplay.forEach((item) => {\n if (!unsubCalled) {\n callback(item);\n }\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n hideServerMethodSystemFlags(server) {\n const clientMethods = {};\n Object.entries(server.methods).forEach(([name, method]) => {\n clientMethods[name] = hideMethodSystemFlags(method);\n });\n return {\n ...server,\n methods: clientMethods\n };\n }\n extractMethodsFromServers(servers) {\n const methods = Object.values(servers).reduce((clientMethods, server) => {\n return [...clientMethods, ...Object.values(server.methods)];\n }, []);\n return methods;\n }\n}\n\nclass ServerRepository {\n nextId = 0;\n methods = [];\n add(method) {\n method.repoId = String(this.nextId);\n this.nextId += 1;\n this.methods.push(method);\n return method;\n }\n remove(repoId) {\n if (typeof repoId !== \"string\") {\n return new TypeError(\"Expecting a string\");\n }\n this.methods = this.methods.filter((m) => {\n return m.repoId !== repoId;\n });\n }\n getById(id) {\n if (typeof id !== \"string\") {\n return undefined;\n }\n return this.methods.find((m) => {\n return m.repoId === id;\n });\n }\n getList() {\n return this.methods.map((m) => m);\n }\n length() {\n return this.methods.length;\n }\n reset() {\n this.methods = [];\n }\n}\n\nconst SUBSCRIPTION_REQUEST = \"onSubscriptionRequest\";\nconst SUBSCRIPTION_ADDED = \"onSubscriptionAdded\";\nconst SUBSCRIPTION_REMOVED = \"onSubscriptionRemoved\";\nclass ServerStreaming {\n session;\n repository;\n serverRepository;\n logger;\n ERR_URI_SUBSCRIPTION_FAILED = \"com.tick42.agm.errors.subscription.failure\";\n callbacks = CallbackRegistryFactory();\n nextStreamId = 0;\n constructor(session, repository, serverRepository, logger) {\n this.session = session;\n this.repository = repository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n session.on(\"add-interest\", (msg) => {\n this.handleAddInterest(msg);\n });\n session.on(\"remove-interest\", (msg) => {\n this.handleRemoveInterest(msg);\n });\n }\n acceptRequestOnBranch(requestContext, streamingMethod, branch) {\n if (typeof branch !== \"string\") {\n branch = \"\";\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n throw new TypeError(\"The streaming method is missing its subscriptions.\");\n }\n if (!Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n throw new TypeError(\"The streaming method is missing its branches.\");\n }\n const streamId = this.getStreamId(streamingMethod, branch);\n const key = requestContext.msg.subscription_id;\n const subscription = {\n id: key,\n arguments: requestContext.arguments,\n instance: requestContext.instance,\n branchKey: branch,\n streamId,\n subscribeMsg: requestContext.msg,\n };\n streamingMethod.protocolState.subscriptionsMap[key] = subscription;\n this.session.sendFireAndForget({\n type: \"accepted\",\n subscription_id: key,\n stream_id: streamId,\n }).catch((err) => {\n this.logger.warn(`Failed to send accepted message for subscription ${key}: ${JSON.stringify(err)}`);\n });\n this.callbacks.execute(SUBSCRIPTION_ADDED, subscription, streamingMethod);\n }\n rejectRequest(requestContext, streamingMethod, reason) {\n if (typeof reason !== \"string\") {\n reason = \"\";\n }\n this.sendSubscriptionFailed(\"Subscription rejected by user. \" + reason, requestContext.msg.subscription_id);\n }\n pushData(streamingMethod, data, branches) {\n if (typeof streamingMethod !== \"object\" || !Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n return;\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n if (typeof branches === \"string\") {\n branches = [branches];\n }\n else if (!Array.isArray(branches) || branches.length <= 0) {\n branches = [];\n }\n const streamIdList = streamingMethod.protocolState.branchKeyToStreamIdMap\n .filter((br) => {\n if (!branches || branches.length === 0) {\n return true;\n }\n return branches.indexOf(br.key) >= 0;\n }).map((br) => {\n return br.streamId;\n });\n streamIdList.forEach((streamId) => {\n const publishMessage = {\n type: \"publish\",\n stream_id: streamId,\n data,\n };\n this.session.sendFireAndForget(publishMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send publish message for stream ${streamId}: ${JSON.stringify(err)}`);\n });\n });\n }\n pushDataToSingle(method, subscription, data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n const postMessage = {\n type: \"post\",\n subscription_id: subscription.id,\n data,\n };\n this.session.sendFireAndForget(postMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send post message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n }\n closeSingleSubscription(streamingMethod, subscription) {\n if (streamingMethod.protocolState.subscriptionsMap) {\n delete streamingMethod.protocolState.subscriptionsMap[subscription.id];\n }\n const dropSubscriptionMessage = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping a single subscription\",\n };\n this.session.sendFireAndForget(dropSubscriptionMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send drop-subscription message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n subscription.instance;\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n closeMultipleSubscriptions(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\" || typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n let subscriptionsToClose = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey === \"string\") {\n subscriptionsToClose = subscriptionsToClose.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n subscriptionsToClose.forEach((subscription) => {\n delete subscriptionsMap[subscription.id];\n const drop = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping all subscriptions on stream_id: \" + subscription.streamId,\n };\n this.session.sendFireAndForget(drop)\n .catch((err) => {\n this.logger.warn(`Failed to send drop-subscription message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n });\n }\n getSubscriptionList(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n let subscriptions = [];\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey !== \"string\") {\n subscriptions = allSubscriptions;\n }\n else {\n subscriptions = allSubscriptions.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n return subscriptions;\n }\n getBranchList(streamingMethod) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n const result = [];\n allSubscriptions.forEach((sub) => {\n let branch = \"\";\n if (typeof sub === \"object\" && typeof sub.branchKey === \"string\") {\n branch = sub.branchKey;\n }\n if (result.indexOf(branch) === -1) {\n result.push(branch);\n }\n });\n return result;\n }\n onSubAdded(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_ADDED, callback);\n }\n onSubRequest(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REQUEST, callback);\n }\n onSubRemoved(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REMOVED, callback);\n }\n handleRemoveInterest(msg) {\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (typeof msg.subscription_id !== \"string\" ||\n typeof streamingMethod !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap[msg.subscription_id] !== \"object\") {\n return;\n }\n const subscription = streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n delete streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n onSubscriptionLifetimeEvent(eventName, handlerFunc) {\n this.callbacks.add(eventName, handlerFunc);\n }\n getNextStreamId() {\n return this.nextStreamId++ + \"\";\n }\n handleAddInterest(msg) {\n const caller = this.repository.getServerById(msg.caller_id);\n const instance = caller?.instance ?? {};\n const requestContext = {\n msg,\n arguments: msg.arguments_kv || {},\n instance,\n };\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (streamingMethod === undefined) {\n const errorMsg = \"No method with id \" + msg.method_id + \" on this server.\";\n this.sendSubscriptionFailed(errorMsg, msg.subscription_id);\n return;\n }\n if (streamingMethod.protocolState.subscriptionsMap &&\n streamingMethod.protocolState.subscriptionsMap[msg.subscription_id]) {\n this.sendSubscriptionFailed(\"A subscription with id \" + msg.subscription_id + \" already exists.\", msg.subscription_id);\n return;\n }\n this.callbacks.execute(SUBSCRIPTION_REQUEST, requestContext, streamingMethod);\n }\n sendSubscriptionFailed(reason, subscriptionId) {\n const errorMessage = {\n type: \"error\",\n reason_uri: this.ERR_URI_SUBSCRIPTION_FAILED,\n reason,\n request_id: subscriptionId,\n };\n this.session.sendFireAndForget(errorMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send subscription failed message for subscription ${subscriptionId}: ${JSON.stringify(err)}`);\n });\n }\n getStreamId(streamingMethod, branchKey) {\n if (typeof branchKey !== \"string\") {\n branchKey = \"\";\n }\n if (!streamingMethod.protocolState.branchKeyToStreamIdMap) {\n throw new Error(`streaming ${streamingMethod.definition.name} method without protocol state`);\n }\n const needleBranch = streamingMethod.protocolState.branchKeyToStreamIdMap.filter((branch) => {\n return branch.key === branchKey;\n })[0];\n let streamId = (needleBranch ? needleBranch.streamId : undefined);\n if (typeof streamId !== \"string\" || streamId === \"\") {\n streamId = this.getNextStreamId();\n streamingMethod.protocolState.branchKeyToStreamIdMap.push({ key: branchKey, streamId });\n }\n return streamId;\n }\n}\n\nclass ServerProtocol {\n session;\n clientRepository;\n serverRepository;\n logger;\n callbacks = CallbackRegistryFactory();\n streaming;\n constructor(session, clientRepository, serverRepository, logger) {\n this.session = session;\n this.clientRepository = clientRepository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n this.streaming = new ServerStreaming(session, clientRepository, serverRepository, logger.subLogger(\"streaming\"));\n this.session.on(\"invoke\", (msg) => this.handleInvokeMessage(msg));\n }\n createStream(repoMethod) {\n repoMethod.protocolState.subscriptionsMap = {};\n repoMethod.protocolState.branchKeyToStreamIdMap = [];\n return this.register(repoMethod, true);\n }\n register(repoMethod, isStreaming) {\n const methodDef = repoMethod.definition;\n const flags = Object.assign({}, { metadata: methodDef.flags ?? {} }, { streaming: isStreaming || false });\n const registerMsg = {\n type: \"register\",\n methods: [{\n id: repoMethod.repoId,\n name: methodDef.name,\n display_name: methodDef.displayName,\n description: methodDef.description,\n version: methodDef.version,\n flags,\n object_types: methodDef.objectTypes || methodDef.object_types,\n input_signature: methodDef.accepts,\n result_signature: methodDef.returns,\n restrictions: undefined,\n }],\n };\n return this.session.send(registerMsg, { methodId: repoMethod.repoId })\n .then(() => {\n this.logger.debug(\"registered method \" + repoMethod.definition.name + \" with id \" + repoMethod.repoId);\n })\n .catch((msg) => {\n this.logger.warn(`failed to register method ${repoMethod.definition.name} with id ${repoMethod.repoId} - ${JSON.stringify(msg)}`);\n throw msg;\n });\n }\n onInvoked(callback) {\n this.callbacks.add(\"onInvoked\", callback);\n }\n methodInvocationResult(method, invocationId, err, result) {\n let msg;\n if (err || err === \"\") {\n msg = {\n type: \"error\",\n request_id: invocationId,\n reason_uri: \"agm.errors.client_error\",\n reason: err,\n context: result,\n peer_id: undefined,\n };\n }\n else {\n msg = {\n type: \"yield\",\n invocation_id: invocationId,\n peer_id: this.session.peerId,\n result,\n request_id: undefined,\n };\n }\n this.session.sendFireAndForget(msg)\n .catch((error => {\n this.logger.warn(`Failed to send method invocation result for method ${method.definition.name} invocation ${invocationId} - ${JSON.stringify(error)}`);\n }));\n }\n async unregister(method) {\n const msg = {\n type: \"unregister\",\n methods: [method.repoId],\n };\n await this.session.send(msg);\n }\n getBranchList(method) {\n return this.streaming.getBranchList(method);\n }\n getSubscriptionList(method, branchKey) {\n return this.streaming.getSubscriptionList(method, branchKey);\n }\n closeAllSubscriptions(method, branchKey) {\n this.streaming.closeMultipleSubscriptions(method, branchKey);\n }\n pushData(method, data, branches) {\n this.streaming.pushData(method, data, branches);\n }\n pushDataToSingle(method, subscription, data) {\n this.streaming.pushDataToSingle(method, subscription, data);\n }\n closeSingleSubscription(method, subscription) {\n this.streaming.closeSingleSubscription(method, subscription);\n }\n acceptRequestOnBranch(requestContext, method, branch) {\n this.streaming.acceptRequestOnBranch(requestContext, method, branch);\n }\n rejectRequest(requestContext, method, reason) {\n this.streaming.rejectRequest(requestContext, method, reason);\n }\n onSubRequest(callback) {\n this.streaming.onSubRequest(callback);\n }\n onSubAdded(callback) {\n this.streaming.onSubAdded(callback);\n }\n onSubRemoved(callback) {\n this.streaming.onSubRemoved(callback);\n }\n handleInvokeMessage(msg) {\n const invocationId = msg.invocation_id;\n const callerId = msg.caller_id;\n const methodId = msg.method_id;\n const args = msg.arguments_kv;\n const methodList = this.serverRepository.getList();\n const method = methodList.filter((m) => {\n return m.repoId === methodId;\n })[0];\n if (method === undefined) {\n return;\n }\n const client = this.clientRepository.getServerById(callerId)?.instance;\n const invocationArgs = { args, instance: client };\n this.callbacks.execute(\"onInvoked\", method, invocationId, invocationArgs);\n }\n}\n\nclass UserSubscription {\n repository;\n subscriptionData;\n get requestArguments() {\n return this.subscriptionData.params.arguments || {};\n }\n get servers() {\n return this.subscriptionData.trackedServers.reduce((servers, pair) => {\n if (pair.subscriptionId) {\n const server = this.repository.getServerById(pair.serverId)?.instance;\n if (server) {\n servers.push(server);\n }\n }\n return servers;\n }, []);\n }\n get serverInstance() {\n return this.servers[0];\n }\n get stream() {\n return this.subscriptionData.method;\n }\n constructor(repository, subscriptionData) {\n this.repository = repository;\n this.subscriptionData = subscriptionData;\n }\n onData(dataCallback) {\n if (typeof dataCallback !== \"function\") {\n throw new TypeError(\"The data callback must be a function.\");\n }\n this.subscriptionData.handlers.onData.push(dataCallback);\n if (this.subscriptionData.handlers.onData.length === 1 && this.subscriptionData.queued.data.length > 0) {\n this.subscriptionData.queued.data.forEach((dataItem) => {\n dataCallback(dataItem);\n });\n }\n }\n onClosed(closedCallback) {\n if (typeof closedCallback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onClosed.push(closedCallback);\n }\n onFailed(callback) {\n }\n onConnected(callback) {\n if (typeof callback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onConnected.push(callback);\n }\n close() {\n this.subscriptionData.close();\n }\n setNewSubscription(newSub) {\n this.subscriptionData = newSub;\n }\n}\n\nclass TimedCache {\n config;\n cache = [];\n timeoutIds = [];\n constructor(config) {\n this.config = config;\n }\n add(element) {\n const id = nanoid(10);\n this.cache.push({ id, element });\n const timeoutId = setTimeout(() => {\n const elementIdx = this.cache.findIndex((entry) => entry.id === id);\n if (elementIdx < 0) {\n return;\n }\n this.cache.splice(elementIdx, 1);\n }, this.config.ELEMENT_TTL_MS);\n this.timeoutIds.push(timeoutId);\n }\n flush() {\n const elements = this.cache.map((entry) => entry.element);\n this.timeoutIds.forEach((id) => clearInterval(id));\n this.cache = [];\n this.timeoutIds = [];\n return elements;\n }\n}\n\nconst STATUS_AWAITING_ACCEPT = \"awaitingAccept\";\nconst STATUS_SUBSCRIBED = \"subscribed\";\nconst ERR_MSG_SUB_FAILED = \"Subscription failed.\";\nconst ERR_MSG_SUB_REJECTED = \"Subscription rejected.\";\nconst ON_CLOSE_MSG_SERVER_INIT = \"ServerInitiated\";\nconst ON_CLOSE_MSG_CLIENT_INIT = \"ClientInitiated\";\nclass ClientStreaming {\n session;\n repository;\n logger;\n subscriptionsList = {};\n timedCache = new TimedCache({ ELEMENT_TTL_MS: 10000 });\n subscriptionIdToLocalKeyMap = {};\n nextSubLocalKey = 0;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"subscribed\", this.handleSubscribed);\n session.on(\"event\", this.handleEventData);\n session.on(\"subscription-cancelled\", this.handleSubscriptionCancelled);\n }\n subscribe(streamingMethod, params, targetServers, success, error, existingSub) {\n if (targetServers.length === 0) {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" No available servers matched the target params.\",\n });\n return;\n }\n const subLocalKey = this.getNextSubscriptionLocalKey();\n const pendingSub = this.registerSubscription(subLocalKey, streamingMethod, params, success, error, params.methodResponseTimeout || 10000, existingSub);\n if (typeof pendingSub !== \"object\") {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Unable to register the user callbacks.\",\n });\n return;\n }\n targetServers.forEach((target) => {\n const serverId = target.server.id;\n const method = target.methods.find((m) => m.name === streamingMethod.name);\n if (!method) {\n this.logger.error(`can not find method ${streamingMethod.name} for target ${target.server.id}`);\n return;\n }\n pendingSub.trackedServers.push({\n serverId,\n subscriptionId: undefined,\n });\n const msg = {\n type: \"subscribe\",\n server_id: serverId,\n method_id: method.gatewayId,\n arguments_kv: params.arguments,\n };\n this.session.send(msg, { serverId, subLocalKey })\n .then((m) => this.handleSubscribed(m))\n .catch((err) => this.handleErrorSubscribing(err));\n });\n }\n drainSubscriptions() {\n const existing = Object.values(this.subscriptionsList);\n this.subscriptionsList = {};\n this.subscriptionIdToLocalKeyMap = {};\n return existing;\n }\n drainSubscriptionsCache() {\n return this.timedCache.flush();\n }\n getNextSubscriptionLocalKey() {\n const current = this.nextSubLocalKey;\n this.nextSubLocalKey += 1;\n return current;\n }\n registerSubscription(subLocalKey, method, params, success, error, timeout, existingSub) {\n const subsInfo = {\n localKey: subLocalKey,\n status: STATUS_AWAITING_ACCEPT,\n method,\n params,\n success,\n error,\n trackedServers: [],\n handlers: {\n onData: existingSub?.handlers.onData || [],\n onClosed: existingSub?.handlers.onClosed || [],\n onConnected: existingSub?.handlers.onConnected || [],\n },\n queued: {\n data: [],\n closers: [],\n },\n timeoutId: undefined,\n close: () => this.closeSubscription(subLocalKey),\n subscription: existingSub?.subscription\n };\n if (!existingSub) {\n if (params.onData) {\n subsInfo.handlers.onData.push(params.onData);\n }\n if (params.onClosed) {\n subsInfo.handlers.onClosed.push(params.onClosed);\n }\n if (params.onConnected) {\n subsInfo.handlers.onConnected.push(params.onConnected);\n }\n }\n this.subscriptionsList[subLocalKey] = subsInfo;\n subsInfo.timeoutId = setTimeout(() => {\n if (this.subscriptionsList[subLocalKey] === undefined) {\n return;\n }\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n error({\n method,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Subscription attempt timed out after \" + timeout + \" ms.\",\n });\n delete this.subscriptionsList[subLocalKey];\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED && pendingSub.trackedServers.length > 0) {\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return (typeof server.subscriptionId !== \"undefined\");\n });\n delete pendingSub.timeoutId;\n if (pendingSub.trackedServers.length <= 0) {\n this.callOnClosedHandlers(pendingSub);\n delete this.subscriptionsList[subLocalKey];\n }\n }\n }, timeout);\n return subsInfo;\n }\n handleErrorSubscribing = (errorResponse) => {\n const tag = errorResponse._tag;\n const subLocalKey = tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return server.serverId !== tag.serverId;\n });\n if (pendingSub.trackedServers.length <= 0) {\n clearTimeout(pendingSub.timeoutId);\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n const reason = (typeof errorResponse.reason === \"string\" && errorResponse.reason !== \"\") ?\n ' Publisher said \"' + errorResponse.reason + '\".' :\n \" No reason given.\";\n const callArgs = typeof pendingSub.params.arguments === \"object\" ?\n JSON.stringify(pendingSub.params.arguments) :\n \"{}\";\n pendingSub.error({\n message: ERR_MSG_SUB_REJECTED + reason + \" Called with:\" + callArgs,\n called_with: pendingSub.params.arguments,\n method: pendingSub.method,\n });\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED) {\n this.callOnClosedHandlers(pendingSub);\n }\n delete this.subscriptionsList[subLocalKey];\n }\n };\n handleSubscribed = (msg) => {\n const subLocalKey = msg._tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n const serverId = msg._tag.serverId;\n const acceptingServer = pendingSub.trackedServers\n .filter((server) => {\n return server.serverId === serverId;\n })[0];\n if (typeof acceptingServer !== \"object\") {\n return;\n }\n acceptingServer.subscriptionId = msg.subscription_id;\n this.subscriptionIdToLocalKeyMap[msg.subscription_id] = subLocalKey;\n const isFirstResponse = (pendingSub.status === STATUS_AWAITING_ACCEPT);\n pendingSub.status = STATUS_SUBSCRIBED;\n if (isFirstResponse) {\n let reconnect = false;\n let sub = pendingSub.subscription;\n if (sub) {\n sub.setNewSubscription(pendingSub);\n pendingSub.success(sub);\n reconnect = true;\n }\n else {\n sub = new UserSubscription(this.repository, pendingSub);\n pendingSub.subscription = sub;\n pendingSub.success(sub);\n }\n for (const handler of pendingSub.handlers.onConnected) {\n try {\n handler(sub.serverInstance, reconnect);\n }\n catch (e) {\n }\n }\n }\n };\n handleEventData = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const trackedServersFound = subscription.trackedServers.filter((s) => {\n return s.subscriptionId === msg.subscription_id;\n });\n if (trackedServersFound.length !== 1) {\n return;\n }\n const isPrivateData = msg.oob;\n const sendingServerId = trackedServersFound[0].serverId;\n const server = this.repository.getServerById(sendingServerId);\n const receivedStreamData = () => {\n return {\n data: msg.data,\n server: server?.instance ?? {},\n requestArguments: subscription.params.arguments,\n message: undefined,\n private: isPrivateData,\n };\n };\n const onDataHandlers = subscription.handlers.onData;\n const queuedData = subscription.queued.data;\n if (onDataHandlers.length > 0) {\n onDataHandlers.forEach((callback) => {\n if (typeof callback === \"function\") {\n callback(receivedStreamData());\n }\n });\n }\n else {\n queuedData.push(receivedStreamData());\n }\n };\n handleSubscriptionCancelled = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const expectedNewLength = subscription.trackedServers.length - 1;\n subscription.trackedServers = subscription.trackedServers.filter((server) => {\n if (server.subscriptionId === msg.subscription_id) {\n subscription.queued.closers.push(server.serverId);\n return false;\n }\n else {\n return true;\n }\n });\n if (subscription.trackedServers.length !== expectedNewLength) {\n return;\n }\n if (subscription.trackedServers.length <= 0) {\n this.timedCache.add(subscription);\n clearTimeout(subscription.timeoutId);\n this.callOnClosedHandlers(subscription);\n delete this.subscriptionsList[subLocalKey];\n }\n delete this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n };\n callOnClosedHandlers(subscription, reason) {\n const closersCount = subscription.queued.closers.length;\n const closingServerId = (closersCount > 0) ? subscription.queued.closers[closersCount - 1] : null;\n let closingServer;\n if (closingServerId !== undefined && typeof closingServerId === \"string\") {\n closingServer = this.repository.getServerById(closingServerId)?.instance ?? {};\n }\n subscription.handlers.onClosed.forEach((callback) => {\n if (typeof callback !== \"function\") {\n return;\n }\n callback({\n message: reason || ON_CLOSE_MSG_SERVER_INIT,\n requestArguments: subscription.params.arguments || {},\n server: closingServer,\n stream: subscription.method,\n });\n });\n }\n closeSubscription(subLocalKey) {\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n subscription.trackedServers.forEach((server) => {\n if (typeof server.subscriptionId === \"undefined\") {\n return;\n }\n subscription.queued.closers.push(server.serverId);\n this.session.sendFireAndForget({\n type: \"unsubscribe\",\n subscription_id: server.subscriptionId,\n reason_uri: \"\",\n reason: ON_CLOSE_MSG_CLIENT_INIT,\n }).catch((err) => {\n this.logger.warn(`Error sending unsubscribe for subscription id ${server.subscriptionId}: ${JSON.stringify(err)}`);\n });\n delete this.subscriptionIdToLocalKeyMap[server.subscriptionId];\n });\n subscription.trackedServers = [];\n this.callOnClosedHandlers(subscription, ON_CLOSE_MSG_CLIENT_INIT);\n delete this.subscriptionsList[subLocalKey];\n }\n}\n\nclass ClientProtocol {\n session;\n repository;\n logger;\n streaming;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"peer-added\", (msg) => this.handlePeerAdded(msg));\n session.on(\"peer-removed\", (msg) => this.handlePeerRemoved(msg));\n session.on(\"methods-added\", (msg) => this.handleMethodsAddedMessage(msg));\n session.on(\"methods-removed\", (msg) => this.handleMethodsRemovedMessage(msg));\n this.streaming = new ClientStreaming(session, repository, logger);\n }\n subscribe(stream, options, targetServers, success, error, existingSub) {\n this.streaming.subscribe(stream, options, targetServers, success, error, existingSub);\n }\n invoke(id, method, args, target) {\n const serverId = target.id;\n const methodId = method.gatewayId;\n const msg = {\n type: \"call\",\n server_id: serverId,\n method_id: methodId,\n arguments_kv: args,\n };\n return this.session.send(msg, { invocationId: id, serverId })\n .then((m) => this.handleResultMessage(m))\n .catch((err) => this.handleInvocationError(err));\n }\n drainSubscriptions() {\n return this.streaming.drainSubscriptions();\n }\n drainSubscriptionsCache() {\n return this.streaming.drainSubscriptionsCache();\n }\n handlePeerAdded(msg) {\n const newPeerId = msg.new_peer_id;\n const remoteId = msg.identity;\n const isLocal = msg.meta ? msg.meta.local : true;\n const pid = Number(remoteId.process);\n const serverInfo = {\n machine: remoteId.machine,\n pid: isNaN(pid) ? remoteId.process : pid,\n instance: remoteId.instance,\n application: remoteId.application,\n applicationName: remoteId.applicationName,\n environment: remoteId.environment,\n region: remoteId.region,\n user: remoteId.user,\n windowId: remoteId.windowId,\n peerId: newPeerId,\n api: remoteId.api,\n isLocal\n };\n this.repository.addServer(serverInfo, newPeerId);\n }\n handlePeerRemoved(msg) {\n const removedPeerId = msg.removed_id;\n const reason = msg.reason;\n this.repository.removeServerById(removedPeerId, reason);\n }\n handleMethodsAddedMessage(msg) {\n const serverId = msg.server_id;\n const methods = msg.methods;\n methods.forEach((method) => {\n this.repository.addServerMethod(serverId, method);\n });\n }\n handleMethodsRemovedMessage(msg) {\n const serverId = msg.server_id;\n const methodIdList = msg.methods;\n const server = this.repository.getServerById(serverId);\n if (server) {\n const serverMethodKeys = Object.keys(server.methods);\n serverMethodKeys.forEach((methodKey) => {\n const method = server.methods[methodKey];\n if (methodIdList.indexOf(method.gatewayId) > -1) {\n this.repository.removeServerMethod(serverId, methodKey);\n }\n });\n }\n }\n handleResultMessage(msg) {\n const invocationId = msg._tag.invocationId;\n const result = msg.result;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n return {\n invocationId,\n result,\n instance: server?.instance,\n status: InvokeStatus.Success,\n message: \"\"\n };\n }\n handleInvocationError(msg) {\n this.logger.debug(`handle invocation error ${JSON.stringify(msg)}`);\n if (\"_tag\" in msg) {\n const invocationId = msg._tag.invocationId;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n const message = msg.reason;\n const context = msg.context;\n return {\n invocationId,\n result: context,\n instance: server?.instance,\n status: InvokeStatus.Error,\n message\n };\n }\n else {\n return {\n invocationId: \"\",\n message: msg.message,\n status: InvokeStatus.Error,\n error: msg\n };\n }\n }\n}\n\nfunction gW3ProtocolFactory (instance, connection, clientRepository, serverRepository, libConfig, interop) {\n const logger = libConfig.logger.subLogger(\"gw3-protocol\");\n let resolveReadyPromise;\n const readyPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n const session = connection.domain(\"agm\", [\"subscribed\"]);\n const server = new ServerProtocol(session, clientRepository, serverRepository, logger.subLogger(\"server\"));\n const client = new ClientProtocol(session, clientRepository, logger.subLogger(\"client\"));\n async function handleReconnect() {\n logger.info(\"reconnected - will replay registered methods and subscriptions\");\n client.drainSubscriptionsCache().forEach((sub) => {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to soft-re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`soft-subscribing to method ${methodInfo.name} DONE`)).catch((error) => logger.warn(`subscribing to method ${methodInfo.name} failed: ${JSON.stringify(error)}}`));\n });\n const reconnectionPromises = [];\n const existingSubscriptions = client.drainSubscriptions();\n for (const sub of existingSubscriptions) {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n reconnectionPromises.push(interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`subscribing to method ${methodInfo.name} DONE`)));\n }\n const registeredMethods = serverRepository.getList();\n serverRepository.reset();\n for (const method of registeredMethods) {\n const def = method.definition;\n if (method.stream) {\n reconnectionPromises.push(interop.server.createStream(def, method.streamCallbacks, undefined, undefined, method.stream)\n .then(() => logger.info(`subscribing to method ${def.name} DONE`))\n .catch(() => logger.warn(`subscribing to method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallback) {\n reconnectionPromises.push(interop.register(def, method.theFunction.userCallback)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallbackAsync) {\n reconnectionPromises.push(interop.registerAsync(def, method.theFunction.userCallbackAsync)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n }\n await Promise.all(reconnectionPromises);\n logger.info(\"Interop is re-announced\");\n }\n function handleInitialJoin() {\n if (resolveReadyPromise) {\n resolveReadyPromise({\n client,\n server,\n });\n resolveReadyPromise = undefined;\n }\n }\n session.onJoined((reconnect) => {\n clientRepository.addServer(instance, connection.peerId);\n if (reconnect) {\n handleReconnect().then(() => connection.setLibReAnnounced({ name: \"interop\" })).catch((error) => logger.warn(`Error while re-announcing interop: ${JSON.stringify(error)}`));\n }\n else {\n handleInitialJoin();\n }\n });\n session.onLeft(() => {\n clientRepository.reset();\n });\n session.join();\n return readyPromise;\n}\n\nclass Interop {\n instance;\n readyPromise;\n client;\n server;\n unwrappedInstance;\n protocol;\n clientRepository;\n serverRepository;\n constructor(configuration) {\n if (typeof configuration === \"undefined\") {\n throw new Error(\"configuration is required\");\n }\n if (typeof configuration.connection === \"undefined\") {\n throw new Error(\"configuration.connections is required\");\n }\n const connection = configuration.connection;\n if (typeof configuration.methodResponseTimeout !== \"number\") {\n configuration.methodResponseTimeout = 30 * 1000;\n }\n if (typeof configuration.waitTimeoutMs !== \"number\") {\n configuration.waitTimeoutMs = 30 * 1000;\n }\n this.unwrappedInstance = new InstanceWrapper(this, undefined, connection);\n this.instance = this.unwrappedInstance.unwrap();\n this.clientRepository = new ClientRepository(configuration.logger.subLogger(\"cRep\"), this);\n this.serverRepository = new ServerRepository();\n let protocolPromise;\n if (connection.protocolVersion === 3) {\n protocolPromise = gW3ProtocolFactory(this.instance, connection, this.clientRepository, this.serverRepository, configuration, this);\n }\n else {\n throw new Error(`protocol ${connection.protocolVersion} not supported`);\n }\n this.readyPromise = protocolPromise.then((protocol) => {\n this.protocol = protocol;\n this.client = new Client(this.protocol, this.clientRepository, this.instance, configuration);\n this.server = new Server(this.protocol, this.serverRepository);\n return this;\n });\n }\n ready() {\n return this.readyPromise;\n }\n serverRemoved(callback) {\n return this.client.serverRemoved(callback);\n }\n serverAdded(callback) {\n return this.client.serverAdded(callback);\n }\n serverMethodRemoved(callback) {\n return this.client.serverMethodRemoved(callback);\n }\n serverMethodAdded(callback) {\n return this.client.serverMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.client.methodRemoved(callback);\n }\n methodAdded(callback) {\n return this.client.methodAdded(callback);\n }\n methodsForInstance(instance) {\n return this.client.methodsForInstance(instance);\n }\n methods(methodFilter) {\n return this.client.methods(methodFilter);\n }\n servers(methodFilter) {\n return this.client.servers(methodFilter);\n }\n subscribe(method, options, successCallback, errorCallback) {\n return this.client.subscribe(method, options, successCallback, errorCallback);\n }\n createStream(streamDef, callbacks, successCallback, errorCallback) {\n return this.server.createStream(streamDef, callbacks, successCallback, errorCallback);\n }\n unregister(methodFilter) {\n return this.server.unregister(methodFilter);\n }\n registerAsync(methodDefinition, callback) {\n return this.server.registerAsync(methodDefinition, callback);\n }\n register(methodDefinition, callback) {\n return this.server.register(methodDefinition, callback);\n }\n invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n return this.client.invoke(methodFilter, argumentObj, target, additionalOptions, success, error);\n }\n waitForMethod(name) {\n const pw = new PromiseWrapper();\n const unsubscribe = this.client.methodAdded((m) => {\n if (m.name === name) {\n unsubscribe();\n pw.resolve(m);\n }\n });\n return pw.promise;\n }\n}\n\nconst successMessages = [\"subscribed\", \"success\"];\nclass MessageBus {\n connection;\n logger;\n peerId;\n session;\n subscriptions;\n readyPromise;\n constructor(connection, logger) {\n this.connection = connection;\n this.logger = logger;\n this.peerId = connection.peerId;\n this.subscriptions = [];\n this.session = connection.domain(\"bus\", successMessages);\n this.readyPromise = this.session.join();\n this.readyPromise.then(() => {\n this.watchOnEvent();\n });\n }\n ready() {\n return this.readyPromise;\n }\n publish = (topic, data, options) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"publish\",\n topic,\n data,\n peer_id: this.peerId,\n routing_key: routingKey,\n target_identity: target\n });\n this.session.send(args)\n .catch((err) => {\n this.logger.error(`Failed to publish message to topic ${topic} with routing key ${routingKey} for ${JSON.stringify(target)}: ${JSON.stringify(err)}`);\n });\n };\n subscribe = (topic, callback, options) => {\n return new Promise((resolve, reject) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"subscribe\",\n topic,\n peer_id: this.peerId,\n routing_key: routingKey,\n source: target\n });\n this.session.send(args)\n .then((response) => {\n const { subscription_id } = response;\n this.subscriptions.push({ subscription_id, topic, callback, source: target });\n resolve({\n unsubscribe: () => {\n this.session.send({ type: \"unsubscribe\", subscription_id, peer_id: this.peerId })\n .then(() => {\n this.subscriptions = this.subscriptions.filter((s) => s.subscription_id !== subscription_id);\n }).catch((err) => {\n this.logger.warn(`Failed to send unsubscribe request for ${subscription_id}: ${JSON.stringify(err)}`);\n });\n return Promise.resolve();\n }\n });\n })\n .catch((error) => reject(error));\n });\n };\n watchOnEvent = () => {\n this.session.on(\"event\", (args) => {\n const { data, subscription_id } = args;\n const source = args[\"publisher-identity\"];\n const subscription = this.subscriptions.find((s) => s.subscription_id === subscription_id);\n if (subscription) {\n if (!subscription.source) {\n subscription.callback(data, subscription.topic, source);\n }\n else {\n if (this.keysMatch(subscription.source, source)) {\n subscription.callback(data, subscription.topic, source);\n }\n }\n }\n });\n };\n removeEmptyValues(obj) {\n const cleaned = {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] !== undefined && obj[key] !== null) {\n cleaned[key] = obj[key];\n }\n });\n return cleaned;\n }\n keysMatch(obj1, obj2) {\n const keysObj1 = Object.keys(obj1);\n let allMatch = true;\n keysObj1.forEach((key) => {\n if (obj1[key] !== obj2[key]) {\n allMatch = false;\n }\n });\n return allMatch;\n }\n}\n\nconst IOConnectCoreFactory = (userConfig, ext) => {\n const iodesktop = typeof window === \"object\" ? (window.iodesktop ?? window.glue42gd) : undefined;\n const preloadPromise = typeof window === \"object\" ? (window.gdPreloadPromise ?? Promise.resolve()) : Promise.resolve();\n const glueInitTimer = timer(\"glue\");\n userConfig = userConfig || {};\n ext = ext || {};\n const internalConfig = prepareConfig(userConfig, ext, iodesktop);\n let _connection;\n let _interop;\n let _logger;\n let _metrics;\n let _contexts;\n let _bus;\n let _allowTrace;\n const libs = {};\n function registerLib(name, inner, t) {\n _allowTrace = _logger.canPublish(\"trace\");\n if (_allowTrace) {\n _logger.trace(`registering ${name} module`);\n }\n const done = (e) => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (!_allowTrace) {\n return;\n }\n const traceMessage = e ?\n `${name} failed - ${e.message}` :\n `${name} is ready - ${t.endTime - t.startTime}`;\n _logger.trace(traceMessage);\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready()\n .then(() => {\n done();\n })\n .catch((e) => {\n const error = typeof e === \"string\" ? new Error(e) : e;\n done(error);\n });\n }\n else {\n done();\n }\n if (!Array.isArray(name)) {\n name = [name];\n }\n name.forEach((n) => {\n libs[n] = inner;\n IOConnectCoreFactory[n] = inner;\n });\n }\n function setupConnection() {\n const initTimer = timer(\"connection\");\n _connection = new Connection(internalConfig.connection, _logger.subLogger(\"connection\"));\n let authPromise = Promise.resolve(internalConfig.auth);\n if (internalConfig.connection && !internalConfig.auth) {\n if (iodesktop) {\n authPromise = iodesktop.getGWToken()\n .then((token) => {\n return {\n gatewayToken: token\n };\n });\n }\n else if (typeof window !== \"undefined\" && window?.glue42electron) {\n if (typeof window.glue42electron.gwToken === \"string\") {\n authPromise = Promise.resolve({\n gatewayToken: window.glue42electron.gwToken\n });\n }\n }\n else {\n authPromise = Promise.reject(\"You need to provide auth information\");\n }\n }\n return authPromise\n .then((authConfig) => {\n initTimer.mark(\"auth-promise-resolved\");\n let authRequest;\n if (Object.prototype.toString.call(authConfig) === \"[object Object]\") {\n authRequest = authConfig;\n }\n else {\n throw new Error(\"Invalid auth object - \" + JSON.stringify(authConfig));\n }\n return _connection.login(authRequest);\n })\n .then(() => {\n registerLib(\"connection\", _connection, initTimer);\n return internalConfig;\n })\n .catch((e) => {\n if (_connection) {\n _connection.logout();\n }\n throw e;\n });\n }\n function setupLogger() {\n const initTimer = timer(\"logger\");\n _logger = new Logger(`${internalConfig.connection.identity?.application}`, undefined, internalConfig.customLogger);\n _logger.consoleLevel(internalConfig.logger.console);\n _logger.publishLevel(internalConfig.logger.publish);\n if (_logger.canPublish(\"debug\")) {\n _logger.debug(\"initializing glue...\");\n }\n registerLib(\"logger\", _logger, initTimer);\n return Promise.resolve(undefined);\n }\n function setupMetrics() {\n const initTimer = timer(\"metrics\");\n const config = internalConfig.metrics;\n const metricsPublishingEnabledFunc = iodesktop?.getMetricsPublishingEnabled;\n const identity = internalConfig.connection.identity;\n const canUpdateMetric = metricsPublishingEnabledFunc ? metricsPublishingEnabledFunc : () => true;\n const disableAutoAppSystem = (typeof config !== \"boolean\" && config.disableAutoAppSystem) ?? false;\n _metrics = metrics({\n connection: config ? _connection : undefined,\n logger: _logger.subLogger(\"metrics\"),\n canUpdateMetric,\n system: \"Glue42\",\n service: identity?.service ?? iodesktop?.applicationName ?? internalConfig.application,\n instance: identity?.instance ?? identity?.windowId ?? nanoid(10),\n disableAutoAppSystem,\n pagePerformanceMetrics: typeof config !== \"boolean\" ? config?.pagePerformanceMetrics : undefined\n });\n registerLib(\"metrics\", _metrics, initTimer);\n return Promise.resolve();\n }\n function setupInterop() {\n const initTimer = timer(\"interop\");\n const agmConfig = {\n connection: _connection,\n logger: _logger.subLogger(\"interop\"),\n };\n _interop = new Interop(agmConfig);\n Logger.Interop = _interop;\n registerLib([\"interop\", \"agm\"], _interop, initTimer);\n return Promise.resolve();\n }\n function setupContexts() {\n const hasActivities = (internalConfig.activities && _connection.protocolVersion === 3);\n const needsContexts = internalConfig.contexts || hasActivities;\n if (needsContexts) {\n const initTimer = timer(\"contexts\");\n _contexts = new ContextsModule({\n connection: _connection,\n logger: _logger.subLogger(\"contexts\"),\n trackAllContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.trackAllContexts : false,\n reAnnounceKnownContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.reAnnounceKnownContexts : false,\n subscribeOnGet: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.subscribeOnGet : true,\n subscribeOnUpdate: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.subscribeOnUpdate : true,\n onlyReAnnounceSubscribedContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.onlyReAnnounceSubscribedContexts : true\n });\n registerLib(\"contexts\", _contexts, initTimer);\n }\n else {\n const replayer = _connection.replayer;\n if (replayer) {\n replayer.drain(ContextMessageReplaySpec.name);\n }\n }\n return Promise.resolve();\n }\n async function setupBus() {\n if (!internalConfig.bus) {\n return Promise.resolve();\n }\n const initTimer = timer(\"bus\");\n _bus = new MessageBus(_connection, _logger.subLogger(\"bus\"));\n registerLib(\"bus\", _bus, initTimer);\n return Promise.resolve();\n }\n function setupExternalLibs(externalLibs) {\n try {\n externalLibs.forEach((lib) => {\n setupExternalLib(lib.name, lib.create);\n });\n return Promise.resolve();\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n function setupExternalLib(name, createCallback) {\n const initTimer = timer(name);\n const lib = createCallback(libs);\n if (lib) {\n registerLib(name, lib, initTimer);\n }\n }\n function waitForLibs() {\n const libsReadyPromises = Object.keys(libs).map((key) => {\n const lib = libs[key];\n return lib.ready ?\n lib.ready() : Promise.resolve();\n });\n return Promise.all(libsReadyPromises);\n }\n function constructGlueObject() {\n const feedbackFunc = (feedbackInfo) => {\n if (!_interop) {\n return;\n }\n _interop.invoke(\"T42.ACS.Feedback\", feedbackInfo, \"best\");\n };\n const info = {\n coreVersion: version,\n version: internalConfig.version\n };\n glueInitTimer.stop();\n const glue = {\n feedback: feedbackFunc,\n info,\n logger: _logger,\n interop: _interop,\n agm: _interop,\n connection: _connection,\n metrics: _metrics,\n contexts: _contexts,\n bus: _bus,\n version: internalConfig.version,\n userConfig,\n done: () => {\n _logger?.info(\"done called by user...\");\n return _connection.logout();\n }\n };\n glue.performance = {\n get glueVer() {\n return internalConfig.version;\n },\n get glueConfig() {\n return JSON.stringify(userConfig);\n },\n get browser() {\n return window.performance.timing.toJSON();\n },\n get memory() {\n return window.performance.memory;\n },\n get initTimes() {\n const all = getAllTimers();\n return Object.keys(all).map((key) => {\n const t = all[key];\n return {\n name: key,\n duration: t.endTime - t.startTime,\n marks: t.marks,\n startTime: t.startTime,\n endTime: t.endTime\n };\n });\n }\n };\n Object.keys(libs).forEach((key) => {\n const lib = libs[key];\n glue[key] = lib;\n });\n glue.config = {};\n Object.keys(internalConfig).forEach((k) => {\n glue.config[k] = internalConfig[k];\n });\n if (ext && ext.extOptions) {\n Object.keys(ext.extOptions).forEach((k) => {\n glue.config[k] = ext?.extOptions[k];\n });\n }\n if (ext?.enrichGlue) {\n ext.enrichGlue(glue);\n }\n if (iodesktop && iodesktop.updatePerfData) {\n iodesktop.updatePerfData(glue.performance);\n }\n if (glue.agm) {\n const deprecatedDecorator = (fn, wrong, proper) => {\n return function () {\n glue.logger.warn(`glue.js - 'glue.agm.${wrong}' method is deprecated, use 'glue.interop.${proper}' instead.`);\n return fn.apply(glue.agm, arguments);\n };\n };\n const agmAny = glue.agm;\n agmAny.method_added = deprecatedDecorator(glue.agm.methodAdded, \"method_added\", \"methodAdded\");\n agmAny.method_removed = deprecatedDecorator(glue.agm.methodRemoved, \"method_removed\", \"methodRemoved\");\n agmAny.server_added = deprecatedDecorator(glue.agm.serverAdded, \"server_added\", \"serverAdded\");\n agmAny.server_method_aded = deprecatedDecorator(glue.agm.serverMethodAdded, \"server_method_aded\", \"serverMethodAdded\");\n agmAny.server_method_removed = deprecatedDecorator(glue.agm.serverMethodRemoved, \"server_method_removed\", \"serverMethodRemoved\");\n }\n return glue;\n }\n async function registerInstanceIfNeeded() {\n const RegisterInstanceMethodName = \"T42.ACS.RegisterInstance\";\n if (Utils.isNode() && typeof process.env._GD_STARTING_CONTEXT_ === \"undefined\" && typeof userConfig?.application !== \"undefined\") {\n const isMethodAvailable = _interop.methods({ name: RegisterInstanceMethodName }).length > 0;\n if (isMethodAvailable) {\n try {\n await _interop.invoke(RegisterInstanceMethodName, { appName: userConfig?.application, pid: process.pid });\n }\n catch (error) {\n const typedError = error;\n _logger.error(`Cannot register as an instance: ${JSON.stringify(typedError.message)}`);\n }\n }\n }\n }\n return preloadPromise\n .then(setupLogger)\n .then(setupConnection)\n .then(() => Promise.all([setupMetrics(), setupInterop(), setupContexts(), setupBus()]))\n .then(() => _interop.readyPromise)\n .then(() => registerInstanceIfNeeded())\n .then(() => {\n return setupExternalLibs(internalConfig.libs || []);\n })\n .then(waitForLibs)\n .then(constructGlueObject)\n .catch((err) => {\n return Promise.reject({\n err,\n libs\n });\n });\n};\nif (typeof window !== \"undefined\") {\n window.IOConnectCore = IOConnectCoreFactory;\n}\nIOConnectCoreFactory.version = version;\nIOConnectCoreFactory.default = IOConnectCoreFactory;\n\nexport { IOConnectCoreFactory as default };\n//# sourceMappingURL=core.es.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\n;\ncreateRegistry.default = createRegistry;\nmodule.exports = createRegistry;\n//# sourceMappingURL=index.js.map",null,null,null,"let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=application.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=system.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwimlaneItemType = exports.LayoutType = void 0;\nvar LayoutType;\n(function (LayoutType) {\n LayoutType[\"Global\"] = \"Global\";\n LayoutType[\"Activity\"] = \"Activity\";\n LayoutType[\"ApplicationDefault\"] = \"ApplicationDefault\";\n LayoutType[\"Swimlane\"] = \"Swimlane\";\n LayoutType[\"Workspaces\"] = \"Workspace\";\n})(LayoutType || (exports.LayoutType = LayoutType = {}));\nvar SwimlaneItemType;\n(function (SwimlaneItemType) {\n SwimlaneItemType[\"Tab\"] = \"tab\";\n SwimlaneItemType[\"Window\"] = \"window\";\n SwimlaneItemType[\"Canvas\"] = \"canvas\";\n})(SwimlaneItemType || (exports.SwimlaneItemType = SwimlaneItemType = {}));\n//# sourceMappingURL=layout.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swTheme.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swConfiguration.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// export { SchemaValidator } from \"./validator\";\n// export { FileProvider } from \"./fileProvider\";\n// export { SchemaProvider } from \"./provider\";\n__exportStar(require(\"./application\"), exports);\n__exportStar(require(\"./system\"), exports);\n__exportStar(require(\"./layout\"), exports);\n__exportStar(require(\"./swTheme\"), exports);\n__exportStar(require(\"./swConfiguration\"), exports);\n//# sourceMappingURL=main.js.map",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"const connectBrowserAppProps = [\"name\", \"title\", \"version\", \"customProperties\", \"icon\", \"caption\", \"type\"];\nconst fdc3v2AppProps = [\"appId\", \"name\", \"type\", \"details\", \"version\", \"title\", \"tooltip\", \"lang\", \"description\", \"categories\", \"icons\", \"screenshots\", \"contactEmail\", \"moreInfo\", \"publisher\", \"customConfig\", \"hostManifests\", \"interop\", \"localizedVersions\"];\n\n/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nDecoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nDecoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nDecoder.union;\r\n/** See `Decoder.intersection` */\r\nDecoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nDecoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nDecoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nDecoder.succeed;\r\n/** See `Decoder.fail` */\r\nDecoder.fail;\r\n/** See `Decoder.lazy` */\r\nDecoder.lazy;\n\nconst nonEmptyStringDecoder = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nconst nonNegativeNumberDecoder = number().where((num) => num >= 0, \"Expected a non-negative number\");\n\nconst intentDefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n displayName: optional(string()),\n contexts: optional(array(string())),\n customConfig: optional(object())\n});\nconst v2TypeDecoder = oneOf(constant(\"web\"), constant(\"native\"), constant(\"citrix\"), constant(\"onlineNative\"), constant(\"other\"));\nconst v2DetailsDecoder = object({\n url: nonEmptyStringDecoder\n});\nconst v2IconDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder)\n});\nconst v2ScreenshotDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder),\n label: optional(nonEmptyStringDecoder)\n});\nconst v2ListensForIntentDecoder = object({\n contexts: array(nonEmptyStringDecoder),\n displayName: optional(nonEmptyStringDecoder),\n resultType: optional(nonEmptyStringDecoder),\n customConfig: optional(anyJson())\n});\nconst v2IntentsDecoder = object({\n listensFor: optional(dict(v2ListensForIntentDecoder)),\n raises: optional(dict(array(nonEmptyStringDecoder)))\n});\nconst v2UserChannelDecoder = object({\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2AppChannelDecoder = object({\n name: nonEmptyStringDecoder,\n description: optional(nonEmptyStringDecoder),\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2InteropDecoder = object({\n intents: optional(v2IntentsDecoder),\n userChannels: optional(v2UserChannelDecoder),\n appChannels: optional(array(v2AppChannelDecoder))\n});\nconst glue42ApplicationDetailsDecoder = object({\n url: optional(nonEmptyStringDecoder),\n top: optional(number()),\n left: optional(number()),\n width: optional(nonNegativeNumberDecoder),\n height: optional(nonNegativeNumberDecoder)\n});\nconst glue42HostManifestsBrowserDecoder = object({\n name: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder.where((s) => s === \"window\", \"Expected a value of window\")),\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n customProperties: optional(anyJson()),\n icon: optional(string()),\n caption: optional(string()),\n details: optional(glue42ApplicationDetailsDecoder),\n intents: optional(array(intentDefinitionDecoder)),\n hidden: optional(boolean())\n});\nconst v1DefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n appId: nonEmptyStringDecoder,\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n manifest: nonEmptyStringDecoder,\n manifestType: nonEmptyStringDecoder,\n tooltip: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n images: optional(array(object({ url: optional(nonEmptyStringDecoder) }))),\n icons: optional(array(object({ icon: optional(nonEmptyStringDecoder) }))),\n customConfig: anyJson(),\n intents: optional(array(intentDefinitionDecoder))\n});\nconst v2LocalizedDefinitionDecoder = object({\n appId: optional(nonEmptyStringDecoder),\n name: optional(nonEmptyStringDecoder),\n details: optional(v2DetailsDecoder),\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder)\n});\nconst v2DefinitionDecoder = object({\n appId: nonEmptyStringDecoder,\n name: nonEmptyStringDecoder,\n type: v2TypeDecoder,\n details: v2DetailsDecoder,\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder),\n localizedVersions: optional(dict(v2LocalizedDefinitionDecoder))\n});\nconst allDefinitionsDecoder = oneOf(v1DefinitionDecoder, v2DefinitionDecoder);\n\nconst parseDecoderErrorToStringMessage = (error) => {\n return `${error.kind} at ${error.at}: ${JSON.stringify(error.input)}. Reason - ${error.message}`;\n};\n\nclass FDC3Service {\n fdc3ToDesktopDefinitionType = {\n web: \"window\",\n native: \"exe\",\n citrix: \"citrix\",\n onlineNative: \"clickonce\",\n other: \"window\"\n };\n toApi() {\n return {\n isFdc3Definition: this.isFdc3Definition.bind(this),\n parseToBrowserBaseAppData: this.parseToBrowserBaseAppData.bind(this),\n parseToDesktopAppConfig: this.parseToDesktopAppConfig.bind(this)\n };\n }\n isFdc3Definition(definition) {\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n return { isFdc3: false, reason: parseDecoderErrorToStringMessage(decodeRes.error) };\n }\n if (definition.appId && definition.details) {\n return { isFdc3: true, version: \"2.0\" };\n }\n if (definition.manifest) {\n return { isFdc3: true, version: \"1.2\" };\n }\n return { isFdc3: false, reason: \"The passed definition is not FDC3\" };\n }\n parseToBrowserBaseAppData(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n const userProperties = this.getUserPropertiesFromDefinition(definition, version);\n const createOptions = { url: this.getUrl(definition, version) };\n const baseApplicationData = {\n name: definition.appId,\n type: \"window\",\n createOptions,\n userProperties: {\n ...userProperties,\n intents: version === \"1.2\"\n ? userProperties.intents\n : this.getIntentsFromV2AppDefinition(definition),\n details: createOptions\n },\n title: definition.title,\n version: definition.version,\n icon: this.getIconFromDefinition(definition, version),\n caption: definition.description,\n fdc3: version === \"2.0\" ? { ...definition, definitionVersion: \"2.0\" } : undefined,\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return baseApplicationData;\n }\n const ioDefinitionDecodeRes = glue42HostManifestsBrowserDecoder.run(ioConnectDefinition);\n if (!ioDefinitionDecodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(ioDefinitionDecodeRes.error)}`);\n }\n if (!Object.keys(ioDefinitionDecodeRes.result).length) {\n return baseApplicationData;\n }\n return this.mergeBaseAppDataWithGlueManifest(baseApplicationData, ioDefinitionDecodeRes.result);\n }\n parseToDesktopAppConfig(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n if (version === \"1.2\") {\n const fdc3v1Definition = definition;\n return {\n name: fdc3v1Definition.appId,\n type: \"window\",\n details: {\n url: this.getUrl(definition, version)\n },\n version: fdc3v1Definition.version,\n title: fdc3v1Definition.title,\n tooltip: fdc3v1Definition.tooltip,\n caption: fdc3v1Definition.description,\n icon: fdc3v1Definition.icons?.[0].icon,\n intents: fdc3v1Definition.intents,\n customProperties: {\n manifestType: fdc3v1Definition.manifestType,\n images: fdc3v1Definition.images,\n contactEmail: fdc3v1Definition.contactEmail,\n supportEmail: fdc3v1Definition.supportEmail,\n publisher: fdc3v1Definition.publisher,\n icons: fdc3v1Definition.icons,\n customConfig: fdc3v1Definition.customConfig\n }\n };\n }\n const fdc3v2Definition = definition;\n const desktopDefinition = {\n name: fdc3v2Definition.appId,\n type: this.fdc3ToDesktopDefinitionType[fdc3v2Definition.type],\n details: fdc3v2Definition.details,\n version: fdc3v2Definition.version,\n title: fdc3v2Definition.title,\n tooltip: fdc3v2Definition.tooltip,\n caption: fdc3v2Definition.description,\n icon: this.getIconFromDefinition(fdc3v2Definition, \"2.0\"),\n intents: this.getIntentsFromV2AppDefinition(fdc3v2Definition),\n fdc3: { ...fdc3v2Definition, definitionVersion: \"2.0\" }\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return desktopDefinition;\n }\n if (typeof ioConnectDefinition !== \"object\" || Array.isArray(ioConnectDefinition)) {\n throw new Error(`Invalid '${definition.hostManifests.ioConnect ? \"hostManifests.ioConnect\" : \"hostManifests['Glue42']\"}' key`);\n }\n return this.mergeDesktopConfigWithGlueManifest(desktopDefinition, ioConnectDefinition);\n }\n getUserPropertiesFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key)));\n }\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key) && !fdc3v2AppProps.includes(key)));\n }\n getUrl(definition, version) {\n let url;\n if (version === \"1.2\") {\n const parsedManifest = JSON.parse(definition.manifest);\n url = parsedManifest.details?.url || parsedManifest.url;\n }\n else {\n url = definition.details?.url;\n }\n if (!url || typeof url !== \"string\") {\n throw new Error(`Invalid FDC3 ${version} definition. Provide valid 'url' under '${version === \"1.2\" ? \"manifest\" : \"details\"}' key`);\n }\n return url;\n }\n getIntentsFromV2AppDefinition(definition) {\n const fdc3Intents = definition.interop?.intents?.listensFor;\n if (!fdc3Intents) {\n return;\n }\n const intents = Object.entries(fdc3Intents).map((fdc3Intent) => {\n const [intentName, intentData] = fdc3Intent;\n return {\n name: intentName,\n ...intentData\n };\n });\n return intents;\n }\n getIconFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return definition.icons?.find((iconDef) => iconDef.icon)?.icon || undefined;\n }\n return definition.icons?.find((iconDef) => iconDef.src)?.src || undefined;\n }\n mergeBaseAppDataWithGlueManifest(baseAppData, hostManifestDefinition) {\n let baseApplicationDefinition = baseAppData;\n if (hostManifestDefinition.details) {\n const details = { ...baseAppData.createOptions, ...hostManifestDefinition.details };\n baseApplicationDefinition.createOptions = details;\n baseApplicationDefinition.userProperties.details = details;\n }\n if (Array.isArray(hostManifestDefinition.intents)) {\n baseApplicationDefinition.userProperties.intents = (baseApplicationDefinition.userProperties.intents || []).concat(hostManifestDefinition.intents);\n }\n baseApplicationDefinition = { ...baseApplicationDefinition, ...hostManifestDefinition };\n delete baseApplicationDefinition.details;\n delete baseApplicationDefinition.intents;\n return baseApplicationDefinition;\n }\n mergeDesktopConfigWithGlueManifest(config, desktopDefinition) {\n const appConfig = Object.assign({}, config, desktopDefinition, { details: { ...config.details, ...desktopDefinition.details } });\n if (Array.isArray(desktopDefinition.intents)) {\n appConfig.intents = (config.intents || []).concat(desktopDefinition.intents);\n }\n return appConfig;\n }\n}\n\nconst decoders$1 = {\n common: {\n nonEmptyStringDecoder,\n nonNegativeNumberDecoder\n },\n fdc3: {\n allDefinitionsDecoder,\n v1DefinitionDecoder,\n v2DefinitionDecoder\n }\n};\n\nvar INTENTS_ERRORS;\n(function (INTENTS_ERRORS) {\n INTENTS_ERRORS[\"USER_CANCELLED\"] = \"User Closed Intents Resolver UI without choosing a handler\";\n INTENTS_ERRORS[\"CALLER_NOT_DEFINED\"] = \"Caller Id is not defined\";\n INTENTS_ERRORS[\"TIMEOUT_HIT\"] = \"Timeout hit\";\n INTENTS_ERRORS[\"INTENT_NOT_FOUND\"] = \"Cannot find Intent\";\n INTENTS_ERRORS[\"HANDLER_NOT_FOUND\"] = \"Cannot find Intent Handler\";\n INTENTS_ERRORS[\"TARGET_INSTANCE_UNAVAILABLE\"] = \"Cannot start Target Instance\";\n INTENTS_ERRORS[\"INTENT_DELIVERY_FAILED\"] = \"Target Instance did not add a listener\";\n INTENTS_ERRORS[\"RESOLVER_UNAVAILABLE\"] = \"Intents Resolver UI unavailable\";\n INTENTS_ERRORS[\"RESOLVER_TIMEOUT\"] = \"User did not choose a handler\";\n INTENTS_ERRORS[\"INVALID_RESOLVER_RESPONSE\"] = \"Intents Resolver UI returned invalid response\";\n INTENTS_ERRORS[\"INTENT_HANDLER_REJECTION\"] = \"Intent Handler function processing the raised intent threw an error or rejected the promise it returned\";\n})(INTENTS_ERRORS || (INTENTS_ERRORS = {}));\n\nclass IoC {\n _fdc3;\n _decoders = decoders$1;\n _errors = {\n intents: INTENTS_ERRORS\n };\n get fdc3() {\n if (!this._fdc3) {\n this._fdc3 = new FDC3Service().toApi();\n }\n return this._fdc3;\n }\n get decoders() {\n return this._decoders;\n }\n get errors() {\n return this._errors;\n }\n}\n\nconst ioc = new IoC();\nconst fdc3 = ioc.fdc3;\nconst decoders = ioc.decoders;\nconst errors = ioc.errors;\n\nexport { decoders, errors, fdc3 };\n//# sourceMappingURL=utils.es.js.map\n",null,null,null,null,null,null,null,"export class PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n static async delayForever() {\n const biggestPossibleDelay = 2147483647;\n while (true) {\n await this.delay(biggestPossibleDelay);\n }\n }\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\nexport function callbackifyPromise(action, successCallback, errorCallback, logger, token) {\n const fail = (error) => {\n if (logger) {\n logger.error(`[${token}]`, error);\n }\n let msg = error;\n if (error instanceof Error) {\n msg = error.message;\n }\n if (typeof errorCallback === \"function\") {\n errorCallback(msg);\n return;\n }\n return PromiseWrapper.delay(0)\n .then(() => {\n throw error;\n });\n };\n return PromiseWrapper.delay(0)\n .then(action)\n .then((result) => {\n if (logger) {\n logger.info(`[${token}] successful`);\n }\n if (typeof successCallback === \"function\") {\n successCallback(result);\n }\n return result;\n })\n .catch((error) => {\n return fail(error);\n });\n}\nexport function nextTickPromise(action) {\n return new Promise((resolve, reject) => {\n process.nextTick(() => {\n try {\n resolve(action());\n }\n catch (e) {\n const error = e instanceof Error ? e : new Error(`${e}`);\n reject(error);\n }\n });\n });\n}\n//# sourceMappingURL=promise.js.map",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["MetricTypes","getMetricTypeByValue","metric","type","getTypeByValue","value","constructor","Date","serializeMetric","serializedMetrics","values","Object","keys","reduce","memo","key","innerType","composite","defineNestedComposite","description","context","name","normalizeMetricName","path","join","length","getMetricValueByType","now","publishNestedComposite","getTime","Boolean","toString","flatten","arr","flat","toFlatten","concat","Array","isArray","composeMsgForRootStateMetric","system","merged","root","getAggregateState","highestState","sort","a","b","state","aggregateDesc","msg","forEach","m","idx","slice","aggregateDescription","Helpers","definition","parent","transport","Error","BaseMetric","repo","this","id","push","createMetric","update","newValue","updateMetric","NumberMetric","super","incrementBy","num","increment","decrement","decrementBy","ObjectMetric","mergeValues","k","StringMetric","TimestampMetric","protocol","_transport","_name","_description","_repo","_parent","_path","_buildPath","shadowedSystem","_state","separator","_subSystems","_metrics","_getOrCreateMetric","metricObject","expectedType","metricDef","matching","filter","shadowedMetric","existing","catch","me","subSystems","metrics","subSystem","nameSystem","descriptionSystem","match","s","_system","getState","setState","stateDescription","updateSystem","stringMetric","timestampMetric","objectMetric","numberMetric","aggState","shadowedSubSystem","result","createSystem","Repository","options","init","addSystemMetrics","clickStream","undefined","rootSystem","useClickStream","navigator","userAgent","document","documentClickHandler","e","target","className","getAttribute","timestamp","tagName","toLowerCase","href","title","page","window","location","addEventListener","attachEvent","urlMetric","appNameMetric","startUrl","glue42gd","appName","NullProtocol","Promise","resolve","PerfTracker","api","lastCount","initialPublishTimeout","publishInterval","scheduleCollection","setTimeout","collect","setInterval","collectMemory","collectEntries","memory","performance","JSON","stringify","totalJSHeapSize","usedJSHeapSize","allEntries","getEntries","jsonfiedEntries","map","i","toJSON","connection","config","joinPromise","session","replayRepo","replaySystem","ss","async","createMetricsMsg","Description","Value","sendFireAndForget","err","logger","warn","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","send","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper$1","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","PromiseWrapper","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","wasOpen","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_connectionProtocolVersion","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","extContentAvailable","extContentConnecting","extContentConnected","parentWindowId","parentInExtMode","webNamespace","parentType","parentPingTimeout","connectionRequestTimeout","defaultTargetString","connectionAccepted","handle","handleConnectionAccepted","bind","connectionRejected","handleConnectionRejected","connectionRequest","handleConnectionRequest","parentPing","handleParentPing","platformPing","handlePlatformPing","platformReady","handlePlatformReady","clientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","origin","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","checkMessageTypeValid","messageType","signalClientDisappearing","clearInterval","source","handleAcceptanceOfMyRequest","processExtContentConnection","connectionProtocolVersion","applicationName","extData","glue42ExtInc","errorMsg","extMode","typeToValidate","requestConnectionPermissionFromExt","waitForContentScript","approved","content","findParent","connectionNotPossibleMsg","myInsideParents","getPossibleParentsInWindow","myOutsideParents","getPossibleParentsOutsideWindow","top","opener","uniqueParents","Set","confirmParent","from","currentWindow","current","targets","substring","AsyncSequelizer","minSequenceInterval","queue","isExecutingQueue","enqueue","executeQueue","operation","shift","actionResult","intervalBreak","res","domainSession","successMessages","errorMessages","_latestOptions","isJoined","tryReconnecting","_connectionOn","disconnected","requestsMap","requestId","trace","loggedIn","handleSuccessMessage","handleErrorMessage","sm","destination","wasReconnect","handleJoined","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","leave","onLeft","connected","Connection","protocolVersion","token","resolvedIdentity","availableDomains","gatewayToken","replayer","messageHandlers","ids","_connected","isTrace","_defaultTransport","_defaultAuth","_targetTransport","_targetAuth","_swapTransport","_switchInProgress","_transportSubscriptions","datePrefix","datePrefixLen","dateMinLen","datePrefixFirstChar","_sequelizer","_isLoggedIn","shouldTryLogin","pingTimer","sessions","globalDomain","initialLogin","initialLoginAttempts","loginConfig","loginRetryInProgress","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","find","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","attemptLoginWithRetry","msgObj","processStringMessage","processObjectMessage","msgType","unsub","ready","invocations","left","waitForInvocations","transportConfig","url","assign","auth","parse","startsWith","milliseconds","parseInt","isNaN","ex","oldToJson","username","password","authentication","setupAuthConfig","helloMsg","sessionId","sendOptions","maxRetries","welcomeMsg","tryAuthenticate","resolved_identity","available_domains","access_token","flowCallback","Buffer","getNewGWToken","method","flowName","provider","secret","providerContext","promises","all","getGWToken","order","Logger$1","Logger","subLoggers","_consoleLevel","_publishLevel","loggerFullName","includeTimeAndLevel","logFn","customLogFn","existingSub","publishLevel","level","consoleLevel","publishMessage","compareWith","loggerName","split","interop","Interop","methods","InteropMethodName","args","invoke","prefix","date","getHours","getMinutes","getSeconds","getMilliseconds","toPrint","GW_MESSAGE_CREATE_CONTEXT","GW_MESSAGE_ACTIVITY_CREATED","GW_MESSAGE_ACTIVITY_DESTROYED","GW_MESSAGE_CONTEXT_CREATED","GW_MESSAGE_CONTEXT_ADDED","GW_MESSAGE_SUBSCRIBE_CONTEXT","GW_MESSAGE_SUBSCRIBED_CONTEXT","GW_MESSAGE_UNSUBSCRIBE_CONTEXT","GW_MESSAGE_DESTROY_CONTEXT","GW_MESSAGE_CONTEXT_DESTROYED","GW_MESSAGE_UPDATE_CONTEXT","GW_MESSAGE_CONTEXT_UPDATED","GW_MESSAGE_JOINED_ACTIVITY","ContextMessageReplaySpec","version","GW3ContextData","contextId","isAnnounced","createdByUs","joinedActivity","updateCallbacks","activityId","sentExplicitSubscription","hasReceivedSnapshot","snapshotPromiseWrapper","snapshotPromise","hasCallbacks","lodash_clonedeep","exports","module","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","Function","freeExports","nodeType","freeModule","moduleExports","addMapEntry","pair","set","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","func","transform","arg","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","propertyIsEnumerable","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","n","baseTimes","String","skipIndexes","isIndex","assignValue","object","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","isObject","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","get","props","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","test","arrayBuffer","getMapData","getValue","pop","hash","string","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","ctorString","isLength","baseKeys","cloneDeep","applyContextDelta","delta","reset","deepClone","commands","command","deletePath","setValueToPath","added","updated","removed","mergeObjectsProperties","obj","what","withWhat","right","deepEqual","y","p","pathArr","forbiddenKeys","isSubset","superObj","subObj","every","ele","GW3Bridge$1","ERROR_URI_FAILURE","ERROR_URI_INVALID_CONTEXT","_logger","_connection","_trackAllContexts","_reAnnounceKnownContexts","_subscribeOnUpdate","_subscribeOnGet","_onlyReAnnounceSubscribedContexts","_gw3Session","_contextNameToData","_gw3Subscriptions","_nextCallbackSubscriptionNumber","_creationPromises","_contextNameToId","_contextIdToName","_protocolVersion","_contextsTempCache","_contextsSubscriptionsCache","_systemContextsSubKey","contextsDomainInfo","d","uri","setPathSupported","trackAllContexts","reAnnounceKnownContexts","subscribeOnUpdate","subscribeOnGet","onlyReAnnounceSubscribedContexts","resetState","reInitiateState","subscribeToContextCreatedMessages","subscribeToContextUpdatedMessages","subscribeToContextDestroyedMessages","handleContextCreatedMessage","handleContextUpdatedMessage","handleContextDestroyedMessage","dispose","contextName","createContext","lifetime","createContextMsg","context_id","contextData","subscribe","currentContext","calculatedDelta","calculateContextDeltaV2","calculateContextDeltaV1","gwResponse","handleUpdated","updaterId","setPath","setPaths","pathValues","pathValue","_d","_r","un","isInvalidContextError","reason_uri","subscriptionKey","thisCallbackSubscriptionNumber","subKey","hadCallbacks","clone","sendSubscribe","keepInSubscriptionsCache","sendUnsubscribe","destroy","extraData","oldContext","invokeUpdateCallbacks","createdMessageTypes","createdMessageType","contextCreatedMsg","activity_id","updatedMessageTypes","updatedMessageType","contextUpdatedMsg","justSeen","context_snapshot","updater_id","updateCallbackIndex","updateCallback","destroyedMessageTypes","destroyedMessageType","destroyedMsg","prev","to","cacheSoFar","ctxName","subscription","flushQueue","lastKnownData","ContextsModule","initTime","initStartTime","initEndTime","_bridge","GW3Bridge","checkName","checkData","checkPath","paths","promisify","successCallback","errorCallback","rejectAfter","ms","clearTimeoutIfThere","ok","map2","f","ar","br","mapError","r","__assign","isEqual","isJsonArray","json","isJsonObject","expectedGot","expected","got","typeString","printPath","prependAt","newAt","at","rest","__rest","Decoder","decode","_this","run","kind","runPromise","runWithException","withException","andThen","where","errorMessage","succeed","fail","number","boolean","constant","decoders","decoder","v","err$$1","decodeValue_1","tuple","nth","union","ad","bd","oneOf","intersection","ds","anyJson","unknownJson","dict","optional","errors","errorsList","withDefault","defaultValue","valueAt","jsonAtPath","fixedValue","lazy","mkDecoder","functionCheck","propDescription","providedType","nonEmptyStringDecoder","nonNegativeNumberDecoder","positiveNumberDecoder","methodFilterDecoder","objectTypes","displayName","accepts","returns","supportsStreaming","flags","getServers","instanceDecoder","pid","machine","user","environment","region","isLocal","getMethods","getStreams","targetDecoder","invokeOptionsDecoder","waitTimeoutMs","methodResponseTimeoutMs","InvokeStatus","Client","configuration","callProtocolSubscribe","targetServers","stream","successProxy","errorProxy","methodResponseTimeout","methodDef","method_response_timeout","wait_for_method_timeout","delayTillNow","currentServers","getServerMethodsByFilterAndTarget","retry","streamInfo","servers","methodFilter","filterCopy","serverMethodMap","server","methodsForInstance","getMethodsForInstance","methodAdded","onMethodAdded","methodRemoved","onMethodRemoved","serverAdded","onServerAdded","serverRemoved","onServerRemoved","serverMethodAdded","onServerMethodAdded","serverMethodRemoved","onServerMethodRemoved","argumentObj","additionalOptions","methodDefinition","methodFilterDecoderResult","generateInvalidInputInvocationResult","targetDecoderResult","invokeOptionsDecoderResult","serversMethodMap","tryToAwaitForMethods","additionalOptionsCopy","invokePromises","serversMethodPair","invId","invokePromise","race","invocationId","invocationMessages","getInvocationResultObj","getInvokePromise","metadata","invokeResultMessage","invocationResults","calledWith","all_return_values","invokeMessage","Success","allValues","currentValue","executed_by","returned","called_with","all_errors","allErrors","currError","invResult","interval","filterByTarget","targetArray","matches","myMatches","serverMethodPair","instanceMatch","localMachine","instanceFilter","instanceDefinition","containsProps","methodMatch","repoMethod","prop","isMatch","filterValue","repoMethodValue","filterValueEl","matchingServers","resultMethodsObject","methodKey","identifier","matchingMethods","ServerSubscription","branchKey","closeSingleSubscription","pushDataToSingle","Request","requestContext","accept","acceptRequestOnBranch","acceptOnBranch","branch","rejectRequest","ServerStreaming$1","onSubRequest","rc","rm","handleSubRequest","onSubAdded","handleSubAdded","onSubRemoved","handleSubRemoved","streamCallbacks","subscriptionRequestHandler","subscriptionAddedHandler","subscriptionRemovedHandler","ServerBranch","subscriptions","getSubscriptionList","closeAllSubscriptions","pushData","ServerStream","_protocol","_repoMethod","_server","branches","bList","getBranchList","def2","unregister","updateRepoMethod","Server","serverRepository","streaming","currentlyUnregistering","onInvoked","onMethodInvoked","createStream","streamDef","existingStream","streamMethodDefinition","getList","some","serverMethod","protocolState","streamUserObject","repoId","remove","register","wrappedCallbackFunction","resultCallback","userCallback","registerCore","registerAsync","wrappedCallback","resultCalled","methodResult","userCallbackAsync","forStream","unregisterWithPredicate","methodToBeRemoved","removeMethodsOrStreams","filterPredicate","methodsOrStreamsToRemove","methodsToRemove","methodUnregPromises","addAsCurrentlyUnregistering","methodName","theFunction","unregisterInProgress","methodToExecute","invocationArgs","unStrException","_value","methodInvocationResult","InstanceWrapper","wrapped","API","refreshWrappedObject","refresh","unwrap","floor","hideMethodSystemFlags","ClientRepository","myServer","methodsCount","wrapper","unwrappedInstance","addServer","serverId","serverEntry","removeServerById","methodId","removeServerMethod","addServerMethod","createMethodIdentifier","that","gatewayId","display_name","object_types","input_signature","result_signature","getServersByMethod","clientMethodDefinition","extractMethodsFromServers","hideServerMethodSystemFlags","unsubscribeFunc","serversWithMethodsToReplay","returnUnsubWithDelayedReplay","methodsToReplay","unsubCalled","getServerById","methodInfo","allServers","collectionToReplay","item","clientMethods","ServerRepository","nextId","TypeError","getById","SUBSCRIPTION_REQUEST","SUBSCRIPTION_ADDED","SUBSCRIPTION_REMOVED","ServerStreaming","repository","ERR_URI_SUBSCRIPTION_FAILED","nextStreamId","handleAddInterest","handleRemoveInterest","streamingMethod","subscriptionsMap","branchKeyToStreamIdMap","streamId","getStreamId","subscription_id","subscribeMsg","stream_id","sendSubscriptionFailed","dropSubscriptionMessage","closeMultipleSubscriptions","subscriptionsToClose","drop","allSubscriptions","onSubscriptionLifetimeEvent","method_id","eventName","handlerFunc","getNextStreamId","caller","caller_id","arguments_kv","subscriptionId","needleBranch","ServerProtocol","clientRepository","handleInvokeMessage","isStreaming","registerMsg","restrictions","invocation_id","callerId","UserSubscription","subscriptionData","requestArguments","params","trackedServers","serverInstance","onData","dataCallback","queued","dataItem","onClosed","closedCallback","onFailed","onConnected","setNewSubscription","newSub","TimedCache","timeoutIds","timeoutId","elementIdx","findIndex","ELEMENT_TTL_MS","flush","elements","STATUS_AWAITING_ACCEPT","STATUS_SUBSCRIBED","ERR_MSG_SUB_FAILED","ON_CLOSE_MSG_CLIENT_INIT","ClientStreaming","subscriptionsList","timedCache","subscriptionIdToLocalKeyMap","nextSubLocalKey","handleSubscribed","handleEventData","handleSubscriptionCancelled","subLocalKey","getNextSubscriptionLocalKey","pendingSub","registerSubscription","server_id","handleErrorSubscribing","drainSubscriptions","drainSubscriptionsCache","subsInfo","localKey","closers","closeSubscription","callOnClosedHandlers","errorResponse","callArgs","acceptingServer","isFirstResponse","trackedServersFound","isPrivateData","oob","sendingServerId","receivedStreamData","private","onDataHandlers","queuedData","expectedNewLength","closersCount","closingServerId","closingServer","ClientProtocol","handlePeerAdded","handlePeerRemoved","handleMethodsAddedMessage","handleMethodsRemovedMessage","handleResultMessage","handleInvocationError","newPeerId","new_peer_id","remoteId","meta","local","Number","serverInfo","removedPeerId","removed_id","methodIdList","gW3ProtocolFactory","libConfig","readyPromise","reconnectionPromises","existingSubscriptions","registeredMethods","handleReconnect","protocolPromise","waitForMethod","MessageBus","watchOnEvent","publish","topic","routingKey","removeEmptyValues","routing_key","target_identity","response","keysMatch","cleaned","obj1","obj2","keysObj1","allMatch","IOConnectCoreFactory","userConfig","ext","iodesktop","preloadPromise","gdPreloadPromise","glueInitTimer","internalConfig","nodeStartingContext","startingContextString","env","_GD_STARTING_CONTEXT_","getApplication","glue42electron","applicationConfig","gwConfig","gateway","instanceId","gwURL","uniqueAppName","appInstanceId","getConnection","windowAsAny","containerApplication","htmlContainer","containerName","bus","gwToken","defaultLevel","gdConsoleLevel","consoleLogLevel","getLogger","contexts","defaultConfig","getContexts","libs","customLogger","prepareConfig","_interop","_contexts","_bus","_allowTrace","registerLib","inner","done","traceMessage","setupMetrics","initTimer","metricsPublishingEnabledFunc","getMetricsPublishingEnabled","setupInterop","agmConfig","setupContexts","hasActivities","activities","setupBus","setupExternalLibs","externalLibs","createCallback","setupExternalLib","authPromise","authConfig","RegisterInstanceMethodName","typedError","registerInstanceIfNeeded","libsReadyPromises","coreVersion","glue","feedback","feedbackInfo","agm","glueVer","glueConfig","browser","timing","initTimes","duration","extOptions","enrichGlue","updatePerfData","deprecatedDecorator","fn","wrong","proper","agmAny","method_added","method_removed","server_added","server_method_aded","server_method_removed","IOConnectCore","ActivityEntity","_id","_update","_updateCore","_beforeDelete","isNumber","isString","isUndefined","isUndefinedOrNull","isNullOrWhiteSpace","str","isBoolean","ifNotUndefined","doWithIt","ActivityType","ownerWindow","helperWindows","_ownerWindow","_helperWindows","hw","covertToWindowDef","initiate","_manager","windowType","_b","WindowType","appByWindowTypeGetter","_appByWindowTypeGetter","windows","getWindows","activity","isIndependent","createWindow","EntityEvent","entitiy","entity","EntityEventContext","eventType","ActivityStatusChangeEventContext","newStatus","oldStatus","EntityEventType","StatusChange","ActivityContextChangedEventContext","ActivityContextChange","Added","Removed","Updated","Closed","ActivityWindowEvent","ActivityWindowJoinedActivity","ActivityWindowLeftActivity","ActivityState","Created","Started","Destroyed","ActivityAGM","_activity","_ensureHasAgm","AGM","util.isUndefinedOrNull","w","methodNames","methodsForWindow","currentWindowMethod","activityServers","util.isString","potentialTargets","util.isArray","firstElem","_isInstance","_isActivityWindow","win","parameters","AttachedActivityDescriptor","manager","ownerActivityId","_ownerActivityId","ownerId","windowIds","frameColor","detach","descriptor","detachActivities","nextTick","cb","nodeify","util.isFunction","resp","Activity","actType","_actType","_status","_context","_ownerId","_agm","getActivityType","owner","addWindow","addWindowToActivity","createStackedWindows","windowTypes","leaveWindowFromActivity","getWindowsByType","setContext","setActivityContext","updateContext","updateActivityContext","onStatusChange","subscribeActivityEvents","ns","os","onWindowEvent","subscribeWindowEvents","onContextChanged","subscribeActivityContextChanged","act","stopActivity","attach","attachActivities","onActivityAttached","subscribeActivitiesAttached","newActId","oldActId","onDetached","subscribeActivitiesDetached","newAct","originalActivity","_updateDescriptors","allStates","_attached","attached","setFrameColor","color","callbacksToWait","underlyingWindow","getFrameColor","LogLevel","Trace","Debug","Info","Warn","GetNamed","Get","GetTypeName","GlueLogger","_glueLogger","Level","_getMessage","ActivityWindow","windowGetter","hcWindowId","_type","_activityId","_instance","_isIndependent","_windowGetter","_hcWindowId","getBounds","getWindowBounds","getWindowType","util.isUndefined","getActivityById","isOwner","setVisible","isVisible","setWindowVisibility","activate","focus","activateWindow","setBounds","bounds","setWindowBounds","closeWindow","onActivityJoined","_subscribeForActivityWindowEvent","onActivityRemoved","ActivityStatus","getMessage","gwMmessageError","gwMessageAddActivityTypes","gwMessageActivityCreated","gwMessageActivityDestroyed","gwMessageActivityInitiated","gwMessageJoinedActivity","gwMessageActivityJoined","gwMessageActivityLeft","gwMessageOwnerChanged","gwMessageAddPeerFactories","gwMessagePeerFactoriesAdded","gwMessagePeerFactoriesRemoved","gwMessagePeerCreated","activityTypeGwMessageEntityToActivityType","nameToWindowType","windowName","owner_type","helper_types","peerFactoryGwMessageEntityToWindowType","peer_type","_","activityGwMessageToActivity","owner_id","activity_type","activityToActivityStatusChangeEvent","_activityChangeCallbacks","_activityTypeStatusChangeCallbacks","_activityWindowChangeCallbacks","_windowTypeStatusChangeCallbacks","_peerIdAndFactoryIdToPeerType","_peerFactoriesRegisteredByUs","_contextSubscriptions","_activityTypesInitiatedFromMe","_config","_windows","_sessionJoinedPromise","_sessionJoinedPromiseResolve","_activityJoinedPromise","_activityJoinedPromiseResolve","activityInfo","addRefreshHandler","setGWToken","addWillNavigateHandler","bridgeType","forwardActivityTypeMessagesToStatusEventHandlers","handleActivityCreatedMessage","handleActivityDestroyedMessage","forwardActivityMessagesToStatusEventHandlers","forwardActivityCreatedAndJoinedActivityToActivityWindowEventHandlers","forwardPeerFactoryMessagesToStatusEventHandlers","forwardPeerFactoryMessagesToPeerFactoryRequests","handlePeerFactoriesAdded","handlePeerFactoriesRemoved","forwardActivityWindowMessagesToEventHandlers","disposeRequestHandling","my","exit","mode","activity_types","typesToTrack","initReady","onActivityTypeStatusChange","registerActivityType","activityTypeName","toActivityPeerConfig","windowDefinition","activityType","invokeCallbacks","unregisterActivityType","onWindowTypeStatusChange","registerWindowFactory","factory","factories","unregisterWindowFactory","factory_ids","onActivityStatusChange","initiateActivity","initiateMsg","initial_context","isOverrideTypeDefinition","types_override","helpers","wd","sendCreateAndMapResultingMessagesToPromise","initMsg","fullReplace","removedKeys","announceWindow","activityWindowId","registerWindow","independent","shouldSendReady","getAgmInstance","generateWindowGetter","onActivityWindowChange","layout","width","height","cellSize","joinPeer","joinActivity","peer_name","created_id","destroy_peer_id","getAnnouncementInfo","announcementInfo","activityWindowType","activityWindowIndependent","activityWindowName","search","URLSearchParams","searchParams","maybeName","target_id","leaveActivity","getActivityTypes","getWindowTypes","getActivities","getActivityWindows","windowDefinitions","visible","cloneActivity","cloneOptions","into","merge","newActivityInfo","onActivitiesAttached","onActivitiesDetached","onActivityAttachedDescriptorsRefreshed","getAttachedDescriptors","getRandomRequestId","forwardAddedAndRemovedMessagesToEventHandler","addedMessageType","removedMessageType","mapper","getGetEntityEvent","isAdded","forwardMessageToEventHandler","getEntityEvent","ent","h","initiatedMessageType","initiatedMessageFilter","createdMessageFilter","cancelledMessageType","cancelledMessageFilter","createdMessageToPromiseResolution","listenForRecreates","reqId","resolveCreatedPromise","rejectCreatedPromise","createdPromise","initiatedSubscription","createdSubscription","cancelledSubscription","errorSubscription","initiatedMessageAck","dropSubscriptions","dropSubscription","msg4","recreated","msg1","msg2","msg3","toReturn","peerFactoryIdAndOwnerIdToWindowType","factoryId","peerType","subscribeToContext","unsubscribeContext","activityCreatedMessage","participants","createdMessage","peer_factory","gateway_token","joinedMessage","joinedId","joined_id","joinedType","joined_type","joinedName","joined_name","left_id","list","ActivityMy","_myAttached","_myDetached","_myAttachedTo","_myDetachedFrom","_myActivityFrameColorChanged","_myActivityJoinedCallbacks","_myActivityRemovedCallbacks","_myContextUpdateCallbacks","_m","am","_subscribeMyContextChanged","_subscribeMyWindowEvent","_subscribeActivitiesAttached","_subscribeActivitiesDetached","onWindowFrameColorChanged","_subscribeWindowFrameColorChanged","_w","announcedWindows","myWin","onActivityLeft","onActivityDetached","onAttachedToActivity","onDetachedFromActivity","onFrameColorChanged","myActivity","_notifyMyContextChanged","_notifyMyWindowEvent","callbackStore","_notifyAttached","_notifyDetached","_notifyAttachedTo","_notifyDetachedFrom","detached","oldAct","ReadyMarker","signalsToWait","_signals","_callbacks","setCallback","isSet","isError","_error","signal","getError","EntityObservableCollection","processNew","_items","_listeners","_processNew","addOne","items","internalEntity","_updateInternalCollections","_notifyListeners","getByName","getOrWait","entityAddedHandler","listener","entityAsAny","isActivityDestroy","isWindowClose","oldEntity","ActivityManager","usingHc","_announcedWindows","bridge","autoAnnounce","_attachedCallbacks","_detachedCallbacks","_frameColorChangesCallbacks","_windowHandlers","_activityTypes","_grabEntity","_windowTypes","_activities","_dataReadyMarker","_descriptorsMarker","_readyMarker","dataErr","errCatch","refreshDescriptors","_handleActivitiesAttached","_handleActivitiesDetached","_handleActivityDescriptorsRefreshed","_handleWindowFrameColorChanged","_subscribeForData","aw","_getInitialData","ownerWindowType","helperWindowTypes","ownerDefinition","helperDefinitions","relativeTo","relativeDirection","windowStyleAttributes","actId","subscribeActivityTypeEvents","factoryMethod","util.isObject","getName","predicate","util.some","windowEventHandler","unsubscribeWindowEvents","subscribeWindowTypeEvents","wt","wrappingHandler","found","windowTypeOrConfiguration","relativeToWindow","invalidKeys","filteredWindowTypeOrConfiguration","wid","relativeWindowTypes","stackedWindow","tasks","removedKey","descriptors","stateWrapped","u","subscribeActivityFrameColorChanged","ac","descriptorAsObjectFromAPI","oldActivityId","newActivityId","ActivityManagementAPI","_my","activityTypes","_getActivityTypesWrapper","_getWindowTypesWrapper","registerFactory","unregisterFactory","announce","instances","onAttached","onActivityFrameColorChanged","ActivityAPI","_mgr","aware","inActivity","getAvailableFrameColors","ActivityModule","checkIsUsingGW3Implementation","_api","logLevel","_isUsingHCImplementation","gdMajorVersion","_isUsingGW3Implementation","activityManager","disableAutoAnnounce","My","_readyPromise","isUsingHCImplementation","isUsingGW3Implementation","GetFunctionalEntitlementMethodName","CanIMethodName","OnEventMethodName","GetApplicationsMethodName","objectValues","objectClone","validate","throwErrors","INTEROP_METHOD_RESPONSE_TIMEOUT_MS","INTEROP_METHOD_WAIT_TIMEOUT_MS","INTEROP_METHOD_MAX_TIMEOUT_MS","getGDMajorVersion","glueDesktop","parsed","major","callbackifyPromise","getMonitor","displays","workingAreaWidth","workingAreaHeight","monitor","totalOverlap","calculateTotalOverlap","isRunningInIoCdContext","generateId","isPromise","isAsyncFunction","isNullOrUndefined","r1","r2","r1x","r1y","r1xMax","r1yMax","r2x","r2y","r2xMax","r2yMax","max","min","ApplicationImpl","_appManager","_configuration","onInstanceStarted","onInstanceStopped","onAppRemoved","app","onAppChanged","onAppAvailable","_props","IsReady","onAppUnavailable","Title","Version","autoStart","AutoStart","isShell","IsShell","caption","Caption","hidden","IsHidden","container","ApplicationName","ActivityWindowType","windowSettings","Arguments","allowMultiple","AllowMultiple","available","icon","Icon","iconURL","IconUrl","sortOrder","SortOrder","userProperties","UserProperties","keywords","Keywords","isActivity","Type","Mode","styleAttributes","WindowStyleAttributes","searchFor","modeIndex","startModeIndex","stopModeIndex","style","substr","getConfiguration","AgmNames.GetApplicationsMethodName","v2","apps","applications","updateFromProps","Name","start","waitForAGMInstance","awaitInterop","_c","waitForAGMReady","startTimeout","waitForApplicationInstance","unSubAgmReady","unInstanceStopped","cleanup","errMsg","waitFunc","onAgmReady","onInstanceAgmServerReady","acsResult","Context","Options","waitForInterop","Id","handleInstanceStarted","ActivityId","IsActivityOwner","AgmServers","onAvailable","onUnavailable","onChanged","onRemoved","InstanceImpl","_appName","startFailed","_unsubscribeInstanceStopped","_unsubscribeInstanceAgmServerReady","activityInstance","isActivityOwner","_isActivityOwner","activityInstances","activityOwnerInstance","inst","_startUpContext","_title","isActivityInstance","_isActivityInstance","_inActivity","isSingleWindowApp","_agmInstance","interopInstance","onInteropReady","onStopped","getWindow","timeoutInSeconds","onWindowAdded","updateAgmInstanceFromProps","agmInstances","idToResolve","handleInstanceStopped","getContext","startedBy","AppManagerImpl","_gdMajorVersion","_apps","_instances","getConfigurations","getMyInstance","getMyApplication","handleSnapshotAppsAdded","newApps","currentApps","handleAppRemoved","handleAppAdded","handleSnapshotInstanceStarted","newInstances","currentInstances","_getAppId","_updateAppFromProps","handleAppUpdated","handleAppReady","_getAppOrThrow","_getInstanceId","_getInstanceAppName","_updateInstanceFromProps","_getInstanceOrThrow","_matchInstance","handleInstanceAgmServerReady","handleInstanceStartFailed","handleInstanceUpdated","onInstanceStartFailed","onInstanceUpdated","onAppAdded","_getInstanceByIdAndName","EntitlementsImpl","_isMethodRegistered","handleBranchModified","handleBranchesModified","getRegion","_agmInvoke","Region","getBranches","Branches","getCurrentBranch","Branch","setRegion","ResultMessage","setCurrentBranch","currentUser","getFunctionalEntitlement","funct","AgmNames.GetFunctionalEntitlementMethodName","Entitlement","getFunctionalEntitlementBranch","canI","AgmNames.CanIMethodName","Result","canIBranch","onBranchesChanged","onBranchChanged","onShuttingDown","registerMethod","restart","transformFunction","prevent","InMemoryStoreCommandMethodName","InMemoryStore","import","createAppDef","details","AppManagerFactory","START_ONLY","SKIP_ICONS","appManager","entitlements","skipIcon","snapshot","skipIcons","initiated","resolveFunc","rejectFunc","resultPromise","AgmNames.OnEventMethodName","streamData","events","onApplicationAddedEventArgs","isSnapshot","onApplicationStartedEventArgs","myInstance","hasMyAppInSnapShot","hasMyInstanceInSnapShot","subscriptionFactory","c","myApplication","inMemory","T42JumpListAction","jumpListManager","_groupActionCallbacks","_registered","_executor","registerCallbackMethod","setEnabled","updateJumpList","createCategory","actions","validateActions","category","toUpdateActions","removeCategory","manageActionCallback","createActions","categoryTitle","removeActions","getActions","catgoryTitle","currentCategory","getJumpListSettings","categories","actionCallback","getActionCallback","callbackId","singleInstanceTitle","multiInstanceTitle","getJumpList","updateAction","groupCallbacksKey","categoryActionCallbacks","accCal","delete","callbackAction","cal","windowStore","waitForTimeoutInMilliseconds","_pendingWindows","_pendingWindowsStates","CallbackFactory","getIfReady","shouldMarkReadyToShow","markReadyToShow","setUrlChangedState","targetWindowState","urlChanged","setCompositionChangedState","compositionChanged","waitFor","unReady","unRemoved","onReadyWindow","waitForName","winId","onAdded","JumpListActions","_categoryTitle","JumpListCategories","getCategories","cat","JumpList","_categories","isEnabled","SingleChannelID","channel","isJoinedToAnyChannel","isOnChannel","leaveChannel","joinChannel","equals","MultiChannelId","channels","ChannelDelimiter","newChannel","ch","windowFactory","appsController","displayAPIGetter","channelsAPIGetter","getChannelsAPI","appManagerGetter","_mode","_bounds","_url","_frameColor","_focus","_neighbours","neighbours","_groupId","groupId","_isGroupHeaderVisible","isGroupHeaderVisible","_isTabHeaderVisible","isTabHeaderVisible","_isGroupHibernated","isGroupHibernated","_isGroupVisible","isGroupVisible","_isTabSelected","isTabSelected","_settings","_applicationName","_group","_isVisible","_isSticky","isSticky","_isCollapsed","isCollapsed","_windowState","_tabGroupId","tabGroupId","_tabIndex","tabIndex","_frameId","frameId","_isLocked","isLocked","_allowWorkspaceDrop","allowWorkspaceDrop","_isPinned","isPinned","_frameButtons","frameButtons","_zoomFactor","zoomFactor","_placementSettings","placementSettings","_jumpList","moveResize","utils","resultWindow","toBeVisible","onGroupChanged","onEventCore","replayArguments","getChannel","getWindowsWithChannels","getNeighboursByDirection","direction","getApplicationName","_APPLICATION_NAME","_t42","getWindowInfo","hostInstance","agmInstance","b1","b2","minHeight","maxHeight","minWidth","maxWidth","isFocused","opened","group","topNeighbours","leftNeighbours","rightNeighbours","bottomNeighbours","screen","monitors","jumpList","maximize","restore","minimize","maximizeRestore","collapse","expand","toggleCollapse","setTitle","newTitle","setStyle","styleAsAny","util.isNumber","setOnTop","onTop","resetButtons","buttons","getButtons","setSizeConstraints","constraints","getSizeConstraints","navigate","newUrl","optionsOrCallback","util.isNullOrWhiteSpace","addFrameButton","buttonInfo","buttonId","imageBase64","removeFrameButton","show","hide","center","display","workArea","scaleFactor","validateCenterArguments","cbOrOptions","snap","autoAlign","dragMove","dragMoveSettings","showLoader","loader","hideLoader","lock","unlock","getIcon","setIcon","base64Image","setTabTooltip","tooltip","getTabTooltip","attachTab","tab","opt","sourceWindow","attachOptions","selected","detachTab","argsForSend","hideTabHeader","setTabHeaderVisible","toBeTabHeaderVisible","showPopup","createFlydown","setModalState","isModal","setZoomFactor","zoomIn","zoomOut","showDevTools","capture","captureOptions","flash","suppliedOptions","flashOptions","shouldFlash","flashTab","setSticky","setAllowWorkspaceDrop","pin","unpin","print","printOptions","printToPDF","printToPDFOptions","place","clearPlacement","clearPlacementSettings","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","setDockingConfig","getDockingConfig","dock","undock","executeCode","getChannels","startDrag","option","showDialog","dialogOptions","timerDuration","showTimer","onClose","onUrlChanged","onTitleChanged","onFrameButtonAdded","onFrameButtonRemoved","onFrameButtonClicked","onCollapsed","onExpanded","onMinimized","onMaximized","onNormal","onVisibilityChanged","onContextUpdated","onLockingChanged","onBoundsChanged","onFocusChanged","onStickyChanged","onWindowAttached","onWindowDetached","onTabSelectionChanged","onTabHeaderVisibilityChanged","onClosing","onRefreshing","onZoomFactorChanged","onPlacementSettingsChanged","onNeighboursChanged","onDockingChanged","onNavigating","onChannelRestrictionsChanged","tabs","allWindows","w1","w2","MIN_SAFE_INTEGER","getAllTabs","getApp","getURL","getTitle","getDisplay","getByWindowId","resizeTo","moveTo","getParentWindow","myParentId","parentInstanceId","Events","handleUpdate","handleWindowClose","handleWindowChangeState","finished","handleTitleChanged","finally","handleVisibilityChanged","handleUrlChanged","handleWindowSettingsChanged","handleContextUpdated","handleFrameIsLockedChanged","handleBoundsChanged","handleFocusChanged","handleFrameButtonAdded","frameButton","buttonObj","btn","handleFrameButtonRemoved","frameButtonId","button","handleFrameButtonClicked","handleFrameColorChanged","handleFrameAttached","handleFrameSelectionChanged","newWindow","prevWindow","selectedWindow","previousWindow","handleCompositionChanged","neighbors","handleAllowWorkspaceDropChanged","handleIsPinnedChanged","handleGroupHeaderVisibilityChanged","handleTabHeaderVisibilityChanged","handleGroupChanged","handleAttached","newTabGroupId","newFrameId","tabHeaderVisible","winsToBeNotified","handleWindowAttached","handleDetached","handleWindowDetached","handleZoomFactorChanged","handleIsStickyChanged","handlePlacementSettingsChanged","displayAPI","handleDockingChanged","docked","position","claimScreenArea","handleChannelRestrictionsChanged","GroupCreationArgs","getWindowsByTabGroupId","isEmpty","GroupMethodName","WndMethodName","_finished","windowAvailableOnURLChanged","unsubCallbacks","agmTarget","setConfiguration","handleEvent","finishedResolve","closed","urlLoadOptions","invocationOptions","stylePromises","wait","tabTooltip","tabToolTip","toolTip","tabTitle","allowClose","allowCollapse","allowLockUnlock","allowMaximize","allowMinimize","buttonsConfig","windowToPin","pinnedWindow","versionNum","rej","resolveImmediately","areBoundsEqual","unsubscribeBoundsChanged","resolveTimeout","targetWindow","targetWindowId","snappingEdge","sourceWindowId","eventKeys","contextWithoutUndefinedValues","swapUndefinedToNull","dataURL","toShow","showGroupPopup","reformatedOptions","validatePopupOptions","executeGroup","optionsCopy","horizontalOffset","verticalOffset","fullOptions","reformatFlydownOptions","zoneIds","zones","z","flydownSize","cancel","targetId","clearFlydownArea","autoArrange","displayId","handleFlydownBoundsRequested","callbackData","zoneId","flydownId","flydownWindowBounds","flydownWindowId","responses","defaultResponse","handleOnEventRequested","prevented","preventArgs","pArgs","captureGroup","groupWindowIds","filePath","silent","enableDownloadBar","fullPath","fileSize","executeCore","gdWindow","addCloseHandler","nonWindowHandlers","onGroupClosing","nonWindowHandlersCore","clearCallbacks","isGroup","noOperationHandler","assignGeneralIfUnassigned","zone","valueFromOptions","flydownBounds","targetLocation","flydownActiveArea","activeArea","areaIds","executeWithoutToken","uns","executed","executeWithToken","requested","areHeightsEqual","areWidthsEqual","areLeftsEqual","areTopsEqual","popupBounds","popupId","GDEnvironment","wndId","_windowId","_appsController","_displayAPIGetter","_channelsAPIGetter","respondToEvent","streamResolve","streamReject","withConfig","updateWindow","copyOptions","windowState","tabAttached","tabDetached","onEvent","myGroup","onCompositionChanged","onGroupHeaderVisibilityChanged","onGroupVisibilityChanged","onGroupStateChanged","onWindowGotFocus","onWindowLostFocus","onWindowsAutoArrangeChanged","windowInfo","readyResolve","extendedStreamEvent","getExtendedStreamEvent","existingWindow","mapToWindowConstructorOptions","mapToGroupCreationArgs","createWindowFromSnapshot","windowInfoCreatedEvent","createWindowFromStream","windowObjectAndEvents","theWindow","theWindowEvents","windowInfoBoundsChangedEvent","windowInfoUrlChangedEvent","windowInfoTitleChanged","windowInfoIsStickyChangedChanged","windowInfoCompositionChanged","groupHeaderVisible","windowInfoFocusChanged","focusChanged","oldTabGroupId","newWindowId","prevWindowId","windowObjAndEvents","createWindowCore","isRemote","isFrameless","isHidden","isActiveTab","jumpListOptions","streamEvent","charAt","toUpperCase","groupFactory","callbackRegistry","_windowsId","_isHibernatedFlag","groupObject","_mapToWindowObjects","winObjects","windowObject","_mapToWindowObject","isHeaderVisible","isHibernated","showHeader","hideHeader","reload","onHeaderVisibilityChanged","onWindowRemoved","internal","removeWindow","handleGroupVisibilityChanged","visibile","handleGroupHibernateChanged","isHibernatedFlag","groupAPI","groupInternal","groupsFactory","_groups","heardForWindowsCounter","findGroupByWindow","groupObj","waitForGroup","groupWrapper","onGroupAdded","createdGroupWrapper","createOrGet","deleteIfEmpty","findGroupWrapperByWindow","validateGroupIdArg","currentGroup","fromGroup","toGroup","moveWindow","groupEvents","groups","groupIds","idOrGroup","getMyGroup","onGroupRemoved","hibernate","resume","onHibernated","onResumed","groupsAPI","groupsEvents","onWindowMoved","WindowsFactory","channelsGetter","popupCount","isReady","GD","webGroupsManager","envDetector","myWindow","windowAdded","windowRemoved","optionsAsAny","windowsForListing","findById","onTabAttached","unsubFunc","unsubscribed","onTabDetached","onArrangementChanged","createPopup","createProcessWindow","features","optionProperties","property","propertyValue","transparent","createProcessWindowOptions","copyStyles","browserWindow","windowWrapper","ioConnectWindow","store","layouts","removeWhere","condition","removeAll","first","ContextProvider","activitiesGetter","registerRequestMethods","onSaveRequested","activityIsOwner","ignoreContexts","cbArgs","usersCbs","requestResult","autoSaveWindowContext","windowContext","activityContext","transformACSLayout","something","convertedValue","LayoutImpl","components","defineProperty","LayoutType","SwimlaneItemType","swTheme","swConfiguration","__createBinding","o","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__exportStar","require$$0","require$$1","require$$2","require$$3","require$$4","LayoutsCommandMethod","LayoutsAPIImpl","isRegisterMethodForLayoutModified","activityGetter","setDefaultGlobal","invokeMethodCore","clearDefaultGlobal","getDefaultGlobal","isSlimMode","l","gotSnapshot","save","verifyNotSlimMode","layoutObject","ignoreInstances","setAsCurrent","invokeMethodAndTrack","activityIdToJoin","closeRunningInstance","closeRunningInstances","closeMe","restoreOptions","activityToJoin","ignoreActivityWindowTypes","reuseExistingWindows","reuseWindows","restoreWorkspacesByReference","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onDefaultGlobalChanged","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","errorHandler","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","selectedDefaultLayout","OnLayoutSelectedDefault","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","selectedDefaultLayouts","LayoutsFactory","acsStream","DisplayManager","callGD","DisplayCommand","GetAll","decorateDisplay","getPrimary","isPrimary","Capture","captureAll","CaptureAll","getMousePosition","GetMousePosition","original","decoratedDisplay","workAreaAsAny","GetByWindowId","onDisplayChanged","myInstanceId","T42_ANNOUNCE_METHOD_NAME","interopLib","loggerAPI","joinNoSelectorSwitch","leaveNoSelectorSwitch","swId","handleRestrictionsChanged","isSupported","channelsToJoin","channelsToLeave","sendLeaveChannel","sendSwitchChannelUI","getRestrictionsByWindow","addOrRemoveChannel","label","getChannelInitInfo","operationMode","validateMode","initialChannel","CONTEXT_PREFIX","LATEST_FDC3_TYPE","BaseSharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","clearContextData","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","fdc3Context","fdc3","MultiSharedContextSubscriber","currentlySubscribedChannels","unsubscribeMap","switchChannel","newChannels","subscribeToChannel","unsubscribeFromChannel","usub","SharedContextSubscriber","validateFdc3Options","contextType","ChannelsImpl","getWindowsAPI","subsKey","changedKey","channelsChangedKey","isInitialJoin","pendingRestrictionCallbacks","getMyChannels","currentChannelID","shared","initial","subscribeForChannelRestrictionsChange","getID","getWrappedSubscribeCallbackWithFdc3Type","getWrappedSubscribeCallback","timeoutIndex","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","channelsToPublish","restrictedChannels","cn","restrictedChannelsErr","validatePathArgs","channelNames","getContextWithFdc3Type","getMy","validateWindowIdArg","joinCore","leaveWhenMulti","leaveWhenSingle","leaveCore","myChannels","onChannelsChanged","changed","verifyChannelExists","getWindowsOnChannel","validateChannelArg","validateWindowsWithChannelsFilter","getChannelsInfo","windowsAPI","er","restrict","restriction","validateRestrictionConfig","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","clearChannelData","changeSelector","newId","raiseChannelsChangedEvents","doesChannelExist","channelExistsPromise","intervalId","channelID","leaveCoreMulti","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","parsedType","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","didReplay","replayed","callbackWithTypesChecks","searchedType","parseDataAndInvokeSubscribeCallback","latestFdc3TypeEncoded","fdc3Data","encodedType","latestTypePropName","latestFDC3Type","channelId","isRestrictions","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","Platform","RESTART_METHOD_NAME","SHUTDOWN_METHOD_NAME","ON_SHUTTING_DOWN_METHOD_NAME","shutdown","registerShutdownMethod","toAPI","getLibConfig","defaultMode","trueMode","getModeAsString","hasHtmlContainer","activitiesDefaultMode","layoutsDefaultMode","layoutsTrueMode","exposeAPI","exposeGlue","Glue42Notification","body","badge","dir","image","lang","renotify","requireInteraction","removeEventListener","dispatchEvent","PanelAPI","onStreamEvent","toggle","panelVisible","Notifications","NotificationsSubscribeStream","NotificationsCounterStream","RaiseNotificationMethodName","NotificationsExecuteMethod","NotificationFilterMethodName","methodsRegistered","NOTIFICATIONS_CONFIGURE_METHOD_NAME","methodNameRoot","notifications","subscribedForNotifications","subscribedCounterStream","subscriptionsCountForNotifications","subscriptionsCountForCounter","_panel","onStreamEventCore","_panelAPI","subscribeInternalEvents","maxActions","panel","raise","notification","createNotification","g42notification","invocationResult","handleNotificationErrorEvent","setFilter","getFilter","enable","enableToasts","toastExpiry","sourceFilter","allowed","blocked","toasts","_e","_f","stackBy","placement","_g","_h","closeNotificationOnClick","statesVersion2","attribute","stringValue","onRaised","onStateChanged","onConfigurationChanged","closeStreamSubscriptionIfNoNeeded","onCounterChanged","subscribeForCounterStream","closeStreamCounterSubscriptionIfNoNeeded","onDataChanged","clearAll","clearOld","clearMany","validateNotificationsArr","click","snooze","snoozeMany","validateState","setStates","importNotifications","notificationsToImport","notificationOptions","notificationSettings","imported","bunchOfPromises","handleNotificationEvent","severity","glueRoutingDetailMethodName","sourceId","publishExtraEvents","clickInterop","handleActions","handleOptions","attributes","dataAsString","panelExpiry","validActions","g42notificationId","g42action","g42interopMethod","g42interopTarget","g42interopArguments","glueAction","displayPath","validStates","sendDeltaOnly","subscriptionForNotifications","handleData","subscriptionForCounter","count","handleOnClosed","handleOnShow","handleItemsData","deltas","handleDeltas","allApplications","dataAttribute","getNotification","gnsNotificationArgs","getGnsNotificationArgs","notificationId","handleNotificationEventCore","handleNotificationActionEvent","notificationActionPayload","handleNotificationClickEvent","onaction","onclick","sourceNotificationId","getBackwardGnsNotificationArgs","ThemesImpl","isSubscribed","getMethodName","getCurrent","select","theme","setMethodName","sharedContextName","getThemesMethodName","setThemesMethodName","connectBrowserAppProps","fdc3v2AppProps","intentDefinitionDecoder","customConfig","v2TypeDecoder","v2DetailsDecoder","v2IconDecoder","src","v2ScreenshotDecoder","v2ListensForIntentDecoder","resultType","v2IntentsDecoder","listensFor","raises","v2UserChannelDecoder","broadcasts","v2AppChannelDecoder","v2InteropDecoder","intents","userChannels","appChannels","glue42ApplicationDetailsDecoder","glue42HostManifestsBrowserDecoder","customProperties","v1DefinitionDecoder","appId","manifest","manifestType","contactEmail","supportEmail","publisher","images","icons","v2LocalizedDefinitionDecoder","screenshots","moreInfo","hostManifests","v2DefinitionDecoder","localizedVersions","allDefinitionsDecoder","parseDecoderErrorToStringMessage","FDC3Service","fdc3ToDesktopDefinitionType","web","native","citrix","onlineNative","toApi","isFdc3Definition","parseToBrowserBaseAppData","parseToDesktopAppConfig","decodeRes","isFdc3","getUserPropertiesFromDefinition","createOptions","getUrl","baseApplicationData","getIntentsFromV2AppDefinition","getIconFromDefinition","definitionVersion","ioConnectDefinition","ioConnect","ioDefinitionDecodeRes","mergeBaseAppDataWithGlueManifest","fdc3v1Definition","fdc3v2Definition","desktopDefinition","mergeDesktopConfigWithGlueManifest","fromEntries","parsedManifest","fdc3Intents","fdc3Intent","intentName","intentData","iconDef","baseAppData","hostManifestDefinition","baseApplicationDefinition","appConfig","decoders$1","common","INTENTS_ERRORS","ioc","_fdc3","_decoders","_errors","GLUE42_FDC3_INTENTS_METHOD_PREFIX","INTENT_HANDLER_DEFAULT_PROPS","DEFAULT_RAISE_TIMEOUT_MS","ERRORS","PromiseWrap","promiseActive","validateHandlerFilter","handlerFilter","openResolver","intent","contextTypes","applicationNames","excludeList","ctx","excludeListValidation","isExcludeListValid","validateResolverResponse","responseObj","isValid","userSettings","preserveChoice","compulsoryKeysExist","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","addedHandlerInfoPerApp","checkIfIntentsResolverIsEnabled","intentFilter","ctToLower","ct","resultTypeToLower","intentRequest","removeRememberedHandler","resolverInstance","resultFromRememberedHandler","checkHandleRaiseWithRememberedHandler","coreRaiseIntentFn","coreRaiseIntent","TIMEOUT_HIT","handleRaiseOnError","withIntentsInfo","appsWithIntents","intentDef","applicationTitle","applicationDescription","applicationIcon","serverWindowIds","serverWindowId","T42WndGetInfo","windowsInfos","windowsIdToTitle","constructIntentHandler","addIntentListener","registerPromise","intentFlag","buildInteropMethodName","unsubscribeIntent","filterHandlers","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","instanceTitle","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","getMyAppName","onHandlerAdded","unAppAdded","appDef","constructIntentHandlerFromApp","unServerMethodAdded","intentsInfo","onHandlerRemoved","unAppRemoved","addedHandlerInfo","filteredIntentsWithHandlers","excludeIntentHandlers","exclusion","resolverConfig","INTENT_NOT_FOUND","checkIfResolverShouldBeOpenedForRaise","raiseIntent","resolverHandler","raiseIntentToTargetHandler","registeredIntent","firstFoundAppHandler","findHandlerByFilter","firstFoundInstanceHandler","instanceIdPromise","invokeStartApp","reasonMsg","TARGET_INSTANCE_UNAVAILABLE","invokeOptions","INTENT_HANDLER_REJECTION","intentsResolverAppName","responseMethodName","registerIntentResolverMethod","startContext","buildStartContext","startOptions","buildStartOptions","definitionOverride","subscribeOnInstanceStopped","createResponsePromise","handleInstanceResponse","initialCaller","windowsInfo","subMessage","stopResolverInstance","saveUserChoice","resolverResponseHandler","validResponse","cleanUpIntentResolverPromise","myAppName","myAppTitle","baseStartContext","resolverApi","getResolverStartupTopBound","minWorkareaHeight","startedByIntentAPI","intentPromise","gdWin","isInitialized","enableIntentsResolverUI","intentsResolverResponseTimeout","checkOpen","checkIfIntentsResolverShouldBeOpened","checkIfIntentHasMoreThanOneHandler","removeSingletons","searchedAppName","isSingleton","currentHandlers","clearUnregistrationPromise","promiseToRemove","unregisterPromise","validIntentsWithInfo","currentHandler","intentWithInfo","prefs","intentPrefs","updatedPrefs","checkForRememberedHandler","prefsForIntent","rememberedHandler","waitResponseTimeout","prevPrefs","prevIntentsPrefs","prefsToUpdate","appWithIntents","appIntent","appDefIntent","Prefs","interopMethodRegistered","verifyApp","T42GetPrefsMethodName","verifyDataObject","verifyOptions","T42SetPrefsMethodName","setFor","updateFor","clearFor","verifyCallback","unsubscribeFn","registerInteropIfNeeded","T42UpdatePrefsMethodName","Cookies","cookies","cookie","verifyCookieObject","secure","httpOnly","expirationDate","EventsDispatcher","glue42EventName","notifyStarted","handleNotifyStarted","requestGlue","handleRequestGlue","getAnnounceInfo","wireCustomEventListener","announceStarted","detail","glue42","glue42Event","foundHandler","CustomEvent","typedPerformance","delayForever","OperationsToCommandNameMap","Interception","InterceptorMethodName","InterceptorHandlerMethodName","interceptions","validateInterceptions","registerMethodIfNotRegistered","interception","handleInterception","operationArgs","phase","createProxyObject","apiToIntercept","OperationsPerDomain","Proxy","propertyKey","receiver","Reflect","shouldIntercept","isAwaitable","interceptMethod","originalMethod","beforeInterceptionResult","operationResult","afterInterceptionResult","whenRegisteredPromise","interceptorEntry","validateTypeString","isValidType","MyImpl","initialize","Domain","AppsCommandMethodName","AppsEventMethodName","invokeAppsCommand","subscribeToAppsEventWithLogging","decorator","subscribeAppsEvent","InMemoryStoreImpl","definitions","warnings","AppRegistryImpl","_inMemory","subscribeToEvent","getMany","onUpdated","AppsErrorHints","APP_NOT_FOUND","possibleCauses","solutions","INVALID_INSTANCE_ID","INSTANCE_NOT_FOUND","INVALID_APP_CONFIG","AppsError","hint","defaultMessage","getHint","appNotFound","instanceNotFound","invalidInstanceId","trim","invalidAppConfig","InstanceManagerImpl","subscribeToAppsEvent","buildInstanceObject","waitForReady","onStarted","enhancedInstance","AppsController","setAppManager","setApps","_j","_k","ensureInitialized","includeDefinition","oldInstance","startedAt","withAppDefinition","defin","callWithErrorGuard","getInstance","callInfo","initialized","addCall","g","firstRun","factoryCore","_displays","_channels","_prefs","_interceptors","_platform","_browserEventsDispatcher","getLibLogger","newLogger","loggerConfig","core","windowsLogger","debugLog","activityLogger","resolveCallback","rejectCallback","AppsFactory","layoutsConfig","lay","channelsReadyPromise","sharedContexts","hotkeysAPI","displaysLogger","intentsAPI","proxyIntentsAPI","notificationsAPI","themesAPI","themes","currentLog","glueFactoryLog","glueApi","CoreFactory","libraries","calls","whatToExpose","CreateGlue","shouldSetToWindow","autoInjected","IODesktop","Glue","IOBrowser","GlueCore"],"mappings":"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","x_google_ignoreList":[0,22,26,75]}
|