@interopio/workspaces-api 3.2.1 → 3.2.3
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/dist/workspaces.es.js +4295 -4648
- package/dist/workspaces.es.js.map +1 -1
- package/dist/workspaces.umd.js +5206 -5559
- package/dist/workspaces.umd.js.map +1 -1
- package/dist/workspaces.umd.min.js +1 -1
- package/package.json +36 -50
- package/workspaces.d.ts +8 -0
- package/rollup.config.js +0 -54
- package/src/builders/baseBuilder.ts +0 -50
- package/src/builders/parentBuilder.ts +0 -62
- package/src/builders/workspaceBuilder.ts +0 -102
- package/src/communication/bridge.ts +0 -263
- package/src/communication/constants.ts +0 -202
- package/src/communication/interop-transport.ts +0 -175
- package/src/controllers/base.ts +0 -487
- package/src/controllers/main.ts +0 -541
- package/src/controllers/shortcuts.ts +0 -28
- package/src/index.ts +0 -23
- package/src/main.ts +0 -415
- package/src/models/base/base.ts +0 -397
- package/src/models/column.ts +0 -187
- package/src/models/frame.ts +0 -368
- package/src/models/group.ts +0 -237
- package/src/models/row.ts +0 -188
- package/src/models/window.ts +0 -309
- package/src/models/workspace.ts +0 -717
- package/src/shared/decoders.ts +0 -939
- package/src/shared/ioc.ts +0 -227
- package/src/shared/privateDataManager.ts +0 -93
- package/src/shared/promisePlus.ts +0 -34
- package/src/shared/promiseWrapper.ts +0 -11
- package/src/types/builders.ts +0 -10
- package/src/types/controller.ts +0 -79
- package/src/types/glue.ts +0 -37
- package/src/types/ioc.ts +0 -33
- package/src/types/privateData.ts +0 -92
- package/src/types/protocol.ts +0 -453
- package/src/types/subscription.ts +0 -31
- package/temp.d.ts +0 -49
- package/tsconfig.json +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.es.js","sources":["../node_modules/callback-registry/lib/index.js","../node_modules/decoder-validate/dist/index.es5.js","../src/shared/decoders.ts","../src/communication/constants.ts","../src/shared/promiseWrapper.ts","../src/communication/bridge.ts","../src/shared/promisePlus.ts","../src/communication/interop-transport.ts","../src/builders/parentBuilder.ts","../src/builders/baseBuilder.ts","../src/builders/workspaceBuilder.ts","../src/models/row.ts","../src/models/column.ts","../src/models/group.ts","../src/models/workspace.ts","../src/models/window.ts","../src/models/frame.ts","../src/shared/privateDataManager.ts","../src/models/base/base.ts","../src/controllers/base.ts","../src/controllers/main.ts","../src/controllers/shortcuts.ts","../src/shared/ioc.ts","../src/main.ts","../src/index.ts"],"sourcesContent":["\"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","/**\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 * Typeguard for `Ok`.\r\n */\r\nvar isOk = function (r) { return r.ok === true; };\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 * Typeguard for `Err`.\r\n */\r\nvar isErr = function (r) { return r.ok === false; };\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 * Given an array of `Result`s, return the successful values.\r\n */\r\nvar successes = function (results) {\r\n return results.reduce(function (acc, r) { return (r.ok === true ? acc.concat(r.result) : acc); }, []);\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\nvar result = Object.freeze({\r\n\tok: ok,\r\n\tisOk: isOk,\r\n\terr: err,\r\n\tisErr: isErr,\r\n\tasPromise: asPromise,\r\n\twithDefault: withDefault,\r\n\twithException: withException,\r\n\tsuccesses: successes,\r\n\tmap: map,\r\n\tmap2: map2,\r\n\tmapError: mapError,\r\n\tandThen: andThen\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 * Type guard for `DecoderError`. One use case of the type guard is in the\r\n * `catch` of a promise. Typescript types the error argument of `catch` as\r\n * `any`, so when dealing with a decoder as a promise you may need to\r\n * distinguish between a `DecoderError` and an error string.\r\n */\r\nvar isDecoderError = function (a) {\r\n return a.kind === 'DecoderError' && typeof a.at === 'string' && typeof a.message === 'string';\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\nvar unknownJson = Decoder.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\nvar tuple = Decoder.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\nvar union = Decoder.union;\r\n/** See `Decoder.intersection` */\r\nvar intersection = Decoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nvar withDefault$1 = Decoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nvar valueAt = Decoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nvar succeed = Decoder.succeed;\r\n/** See `Decoder.fail` */\r\nvar fail = Decoder.fail;\r\n/** See `Decoder.lazy` */\r\nvar lazy = Decoder.lazy;\r\n\r\nexport { result as Result, Decoder, isDecoderError, string, number, boolean, anyJson, unknownJson, constant, object, array, tuple, dict, optional, oneOf, union, intersection, withDefault$1 as withDefault, valueAt, succeed, fail, lazy };\r\n//# sourceMappingURL=index.es5.js.map\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { Decoder, object, boolean, string, optional, array, oneOf, constant, lazy, number, anyJson, intersection } from \"decoder-validate\";\nimport {\n IsWindowInSwimlaneResult,\n WorkspaceSnapshotResult,\n ChildSnapshotResult,\n WorkspaceConfigResult,\n FrameSummaryResult,\n WorkspaceCreateConfigProtocol,\n GetFrameSummaryConfig,\n WorkspaceSummaryResult,\n LayoutSummariesResult,\n LayoutSummary,\n OpenWorkspaceConfig,\n FrameSummariesResult,\n WorkspaceSummariesResult,\n ExportedLayoutsResult,\n DeleteLayoutConfig,\n SimpleItemConfig,\n ResizeItemConfig,\n MoveFrameConfig,\n FrameSnapshotResult,\n BaseChildSnapshotConfig,\n ParentSnapshotConfig,\n SwimlaneWindowSnapshotConfig,\n SimpleWindowOperationSuccessResult,\n SetItemTitleConfig,\n MoveWindowConfig,\n AddWindowConfig,\n AddContainerConfig,\n AddItemResult,\n BundleWorkspaceConfig,\n WorkspaceStreamData,\n FrameStreamData,\n ContainerStreamData,\n ContainerSummaryResult,\n WindowStreamData,\n PingResult,\n FrameStateConfig,\n FrameStateResult,\n LockWorkspaceConfig,\n LockWindowConfig,\n LockContainerConfig,\n SubParentSnapshotResult,\n WindowSnapshotResult,\n LockRowConfig,\n LockColumnConfig,\n LockGroupConfig,\n FrameBoundsResult,\n GetWorkspaceIconResult,\n PinWorkspaceConfig,\n SetWorkspaceIconConfig,\n FrameInitializationConfigProtocol,\n WorkspaceSelector,\n ShortcutClickedData,\n ShortcutConfig,\n FrameSnapshotConfig,\n FrameBounds,\n SetMaximizationBoundaryConfig,\n LoadingAnimationConfig,\n GetPlatformFrameIdResult,\n ItemBundleConfig,\n OperationCheckConfig,\n OperationCheckResult\n} from \"../types/protocol\";\nimport { WorkspaceEventType, WorkspaceEventAction } from \"../types/subscription\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\n\nexport const nonEmptyStringDecoder: Decoder<string> = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nexport const nonNegativeNumberDecoder: Decoder<number> = number().where((num) => num >= 0, \"Expected a non-negative number\");\nexport const positiveNumberDecoder: Decoder<number> = number().where((num) => num > 0, \"Expected a positive number\");\n\n\nexport const isWindowInSwimlaneResultDecoder: Decoder<IsWindowInSwimlaneResult> = object({\n inWorkspace: boolean()\n});\n\nexport const allParentDecoder: Decoder<\"workspace\" | \"row\" | \"column\" | \"group\"> = oneOf<\"workspace\" | \"row\" | \"column\" | \"group\">(\n constant(\"workspace\"),\n constant(\"row\"),\n constant(\"column\"),\n constant(\"group\")\n);\n\nexport const subParentDecoder: Decoder<\"row\" | \"column\" | \"group\"> = oneOf<\"row\" | \"column\" | \"group\">(\n constant(\"row\"),\n constant(\"column\"),\n constant(\"group\")\n);\n\nexport const frameStateDecoder: Decoder<\"maximized\" | \"minimized\" | \"normal\"> = oneOf<\"maximized\" | \"minimized\" | \"normal\">(\n constant(\"maximized\"),\n constant(\"minimized\"),\n constant(\"normal\")\n);\n\nexport const loadingAnimationTypeDecoder: Decoder<\"workspace\"> = oneOf<\"workspace\">(\n constant(\"workspace\")\n);\n\nexport const checkThrowCallback = (callback: unknown, allowUndefined?: boolean): void => {\n const argumentType = typeof callback;\n\n if (allowUndefined && argumentType !== \"function\" && argumentType !== \"undefined\") {\n throw new Error(`Provided argument must be either undefined or of type function, provided: ${argumentType}`);\n }\n\n if (!allowUndefined && argumentType !== \"function\") {\n throw new Error(`Provided argument must be of type function, provided: ${argumentType}`);\n }\n};\n\nexport const workspaceBuilderCreateConfigDecoder: Decoder<IOConnectWorkspaces.WorkspaceCreateConfig> = optional(object({\n saveLayout: optional(boolean())\n}));\n\nexport const deleteLayoutConfigDecoder: Decoder<DeleteLayoutConfig> = object({\n name: nonEmptyStringDecoder\n});\n\nexport const windowDefinitionConfigDecoder: Decoder<IOConnectWorkspaces.WorkspaceWindowDefinitionConfig> = object({\n minWidth: optional(number()),\n maxWidth: optional(number()),\n minHeight: optional(number()),\n maxHeight: optional(number()),\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n showCloseButton: optional(boolean())\n});\n\nexport const groupDefinitionConfigDecoder: Decoder<IOConnectWorkspaces.GroupDefinitionConfig> = object({\n minWidth: optional(number()),\n maxWidth: optional(number()),\n minHeight: optional(number()),\n maxHeight: optional(number()),\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n allowDrop: optional(boolean()),\n allowDropHeader: optional(boolean()),\n allowDropLeft: optional(boolean()),\n allowDropRight: optional(boolean()),\n allowDropTop: optional(boolean()),\n allowDropBottom: optional(boolean()),\n showMaximizeButton: optional(boolean()),\n showEjectButton: optional(boolean()),\n showAddWindowButton: optional(boolean())\n});\n\nexport const rowDefinitionConfigDecoder: Decoder<IOConnectWorkspaces.RowDefinitionConfig> = object({\n minHeight: optional(number()),\n maxHeight: optional(number()),\n allowDrop: optional(boolean()),\n allowSplitters: optional(boolean()),\n isPinned: optional(boolean()),\n maximizationBoundary: optional(boolean())\n});\n\nexport const columnDefinitionConfigDecoder: Decoder<IOConnectWorkspaces.ColumnDefinitionConfig> = object({\n minWidth: optional(number()),\n maxWidth: optional(number()),\n allowDrop: optional(boolean()),\n allowSplitters: optional(boolean()),\n isPinned: optional(boolean()),\n maximizationBoundary: optional(boolean())\n});\n\nexport const swimlaneWindowDefinitionDecoder: Decoder<IOConnectWorkspaces.WorkspaceWindowDefinition> = object({\n type: optional(constant(\"window\")),\n appName: optional(nonEmptyStringDecoder),\n windowId: optional(nonEmptyStringDecoder),\n context: optional(anyJson()),\n config: optional(windowDefinitionConfigDecoder)\n});\n\nexport const strictSwimlaneWindowDefinitionDecoder: Decoder<IOConnectWorkspaces.WorkspaceWindowDefinition> = object({\n type: constant(\"window\"),\n appName: optional(nonEmptyStringDecoder),\n windowId: optional(nonEmptyStringDecoder),\n context: optional(anyJson()),\n config: optional(windowDefinitionConfigDecoder)\n});\n\nexport const parentDefinitionDecoder: Decoder<IOConnectWorkspaces.BoxDefinition> = optional(object({\n type: optional(subParentDecoder),\n children: optional(\n lazy(() => array(\n oneOf<IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition>(\n swimlaneWindowDefinitionDecoder,\n parentDefinitionDecoder\n )\n ))\n ),\n config: optional(anyJson())\n}));\n\n\nexport const strictColumnDefinitionDecoder: Decoder<IOConnectWorkspaces.BoxDefinition> = object({\n type: constant(\"column\"),\n children: optional(\n lazy(() => array(\n oneOf<IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition>(\n strictSwimlaneWindowDefinitionDecoder,\n strictParentDefinitionDecoder\n )\n ))\n ),\n config: optional(columnDefinitionConfigDecoder)\n});\n\nexport const strictRowDefinitionDecoder: Decoder<IOConnectWorkspaces.BoxDefinition> = object({\n type: constant(\"row\"),\n children: optional(\n lazy(() => array(\n oneOf<IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition>(\n strictSwimlaneWindowDefinitionDecoder,\n strictParentDefinitionDecoder\n )\n ))\n ),\n config: optional(rowDefinitionConfigDecoder)\n});\n\nexport const strictGroupDefinitionDecoder: Decoder<IOConnectWorkspaces.BoxDefinition> = object({\n type: constant(\"group\"),\n children: optional(\n lazy(() => array(\n oneOf<IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition>(\n strictSwimlaneWindowDefinitionDecoder,\n strictParentDefinitionDecoder\n )\n ))\n ),\n config: optional(groupDefinitionConfigDecoder)\n});\n\nexport const strictParentDefinitionDecoder: Decoder<IOConnectWorkspaces.BoxDefinition> = oneOf(strictGroupDefinitionDecoder, strictColumnDefinitionDecoder, strictRowDefinitionDecoder);\n\nexport const stateDecoder: Decoder<\"maximized\" | \"normal\"> = oneOf<\"maximized\" | \"normal\">(\n (string().where((s) => s.toLowerCase() === \"maximized\", \"Expected a case insensitive variation of 'maximized'\") as Decoder<\"maximized\">),\n (string().where((s) => s.toLowerCase() === \"normal\", \"Expected a case insensitive variation of 'normal'\") as Decoder<\"normal\">)\n);\n\nexport const newFrameConfigDecoder: Decoder<IOConnectWorkspaces.NewFrameConfig> = object({\n bounds: optional(object({\n left: optional(number()),\n top: optional(number()),\n width: optional(nonNegativeNumberDecoder),\n height: optional(nonNegativeNumberDecoder)\n })),\n frameId: optional(nonEmptyStringDecoder)\n});\n\nexport const loadingStrategyDecoder: Decoder<IOConnectWorkspaces.LoadingStrategy> = oneOf<\"direct\" | \"delayed\" | \"lazy\">(\n constant(\"direct\"),\n constant(\"delayed\"),\n constant(\"lazy\")\n);\n\nexport const restoreWorkspaceConfigDecoder: Decoder<IOConnectWorkspaces.RestoreWorkspaceConfig> = optional(object({\n app: optional(nonEmptyStringDecoder),\n context: optional(anyJson()),\n loadingStrategy: optional(loadingStrategyDecoder),\n title: optional(nonEmptyStringDecoder),\n reuseWorkspaceId: optional(nonEmptyStringDecoder),\n frameId: optional(nonEmptyStringDecoder),\n applicationName: optional(nonEmptyStringDecoder),\n lockdown: optional(boolean()),\n activateFrame: optional(boolean()),\n newFrame: optional(oneOf<IOConnectWorkspaces.NewFrameConfig | boolean>(\n newFrameConfigDecoder,\n boolean()\n )),\n noTabHeader: optional(boolean()),\n inMemoryLayout: optional(boolean()),\n icon: optional(nonEmptyStringDecoder),\n isPinned: optional(boolean()),\n isSelected: optional(boolean()),\n positionIndex: optional(nonNegativeNumberDecoder),\n allowSystemHibernation: optional(boolean())\n}));\n\nexport const openWorkspaceConfigDecoder: Decoder<OpenWorkspaceConfig> = object({\n name: nonEmptyStringDecoder,\n restoreOptions: optional(restoreWorkspaceConfigDecoder)\n});\n\nexport const workspaceDefinitionDecoder: Decoder<IOConnectWorkspaces.WorkspaceDefinition> = object({\n children: optional(array(oneOf<IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition>(\n swimlaneWindowDefinitionDecoder,\n strictParentDefinitionDecoder\n ))),\n context: optional(anyJson()),\n config: optional(object({\n title: optional(nonEmptyStringDecoder),\n position: optional(nonNegativeNumberDecoder),\n isFocused: optional(boolean()),\n noTabHeader: optional(boolean()),\n reuseWorkspaceId: optional(nonEmptyStringDecoder),\n loadingStrategy: optional(loadingStrategyDecoder),\n allowDrop: optional(boolean()),\n allowDropLeft: optional(boolean()),\n allowDropTop: optional(boolean()),\n allowDropRight: optional(boolean()),\n allowDropBottom: optional(boolean()),\n allowSystemHibernation: optional(boolean()),\n allowExtract: optional(boolean()),\n allowWindowReorder: optional(boolean()),\n showSaveButton: optional(boolean()),\n allowWorkspaceTabReorder: optional(boolean()),\n allowWorkspaceTabExtract: optional(boolean()),\n showCloseButton: optional(boolean()),\n allowSplitters: optional(boolean()),\n showWindowCloseButtons: optional(boolean()),\n showEjectButtons: optional(boolean()),\n showAddWindowButtons: optional(boolean()),\n icon: optional(nonEmptyStringDecoder),\n isPinned: optional(boolean()),\n isSelected: optional(boolean()),\n positionIndex: optional(nonNegativeNumberDecoder)\n })),\n frame: optional(object({\n reuseFrameId: optional(nonEmptyStringDecoder),\n applicationName: optional(nonEmptyStringDecoder),\n newFrame: optional(oneOf<boolean | IOConnectWorkspaces.NewFrameConfig>(\n boolean(),\n newFrameConfigDecoder\n ))\n }))\n});\n\nexport const workspaceSelectorDecoder: Decoder<WorkspaceSelector> = object({\n workspaceId: nonEmptyStringDecoder\n});\n\nexport const restoreWorkspaceDefinitionDecoder: Decoder<IOConnectWorkspaces.RestoreWorkspaceDefinition> = object({\n name: nonEmptyStringDecoder,\n restoreOptions: optional(restoreWorkspaceConfigDecoder)\n});\n\nexport const emptyFrameDefinitionDecoder: Decoder<IOConnectWorkspaces.EmptyFrameDefinition> = optional(object({\n applicationName: optional(string()),\n frameConfig: optional(newFrameConfigDecoder),\n context: optional(object()),\n layoutComponentId: optional(nonEmptyStringDecoder)\n}));\n\nexport const frameInitConfigDecoder: Decoder<IOConnectWorkspaces.FrameInitializationConfig> = object({\n workspaces: array(oneOf<IOConnectWorkspaces.WorkspaceDefinition | IOConnectWorkspaces.RestoreWorkspaceDefinition>(\n optional(workspaceDefinitionDecoder),\n optional(restoreWorkspaceDefinitionDecoder)\n ))\n});\n\nexport const frameInitProtocolConfigDecoder: Decoder<FrameInitializationConfigProtocol> = object({\n frameId: nonEmptyStringDecoder,\n workspaces: array(oneOf<IOConnectWorkspaces.WorkspaceDefinition | IOConnectWorkspaces.RestoreWorkspaceDefinition>(\n workspaceDefinitionDecoder,\n restoreWorkspaceDefinitionDecoder\n ))\n});\n\nexport const builderConfigDecoder: Decoder<IOConnectWorkspaces.BuilderConfig> = object({\n type: allParentDecoder,\n definition: optional(oneOf<IOConnectWorkspaces.WorkspaceDefinition | IOConnectWorkspaces.BoxDefinition>(\n workspaceDefinitionDecoder,\n parentDefinitionDecoder\n ))\n});\n\nexport const workspaceCreateConfigDecoder: Decoder<WorkspaceCreateConfigProtocol> = intersection(\n workspaceDefinitionDecoder,\n object({\n saveConfig: optional(object({\n saveLayout: optional(boolean())\n }))\n })\n);\n\nexport const getFrameSummaryConfigDecoder: Decoder<GetFrameSummaryConfig> = object({\n itemId: nonEmptyStringDecoder\n});\n\nexport const frameInitializationContextDecoder: Decoder<IOConnectWorkspaces.FrameInitializationContext> = object({\n context: optional(object())\n});\n\nexport const frameSummaryDecoder: Decoder<FrameSummaryResult> = object({\n id: nonEmptyStringDecoder,\n isFocused: optional(boolean()),\n isInitialized: optional(boolean()),\n initializationContext: optional(frameInitializationContextDecoder)\n});\n\nexport const containerSummaryDecoder: Decoder<IOConnectWorkspaces.BoxSummary> = object({\n type: subParentDecoder,\n id: nonEmptyStringDecoder,\n frameId: nonEmptyStringDecoder,\n workspaceId: nonEmptyStringDecoder,\n positionIndex: number()\n});\n\nexport const eventTypeDecoder: Decoder<WorkspaceEventType> = oneOf<\"frame\" | \"workspace\" | \"container\" | \"window\">(\n constant(\"frame\"),\n constant(\"workspace\"),\n constant(\"container\"),\n constant(\"window\")\n);\n\nexport const streamRequestArgumentsDecoder: Decoder<{ type: WorkspaceEventType; branch: string }> = object({\n type: eventTypeDecoder,\n branch: nonEmptyStringDecoder\n});\n\nexport const workspaceEventActionDecoder: Decoder<WorkspaceEventAction> = oneOf<\"opened\" | \"closing\" | \"closed\" | \"focus\" | \"added\" | \"loaded\" | \"removed\" | \"childrenUpdate\" | \"containerChange\" | \"maximized\" | \"restored\" | \"minimized\" | \"normal\" | \"selected\" | \"lock-configuration-changed\" | \"hibernated\" | \"resumed\">(\n constant(\"opened\"),\n constant(\"closing\"),\n constant(\"closed\"),\n constant(\"focus\"),\n constant(\"added\"),\n constant(\"loaded\"),\n constant(\"removed\"),\n constant(\"childrenUpdate\"),\n constant(\"containerChange\"),\n constant(\"maximized\"),\n constant(\"restored\"),\n constant(\"minimized\"),\n constant(\"normal\"),\n constant(\"selected\"),\n constant(\"lock-configuration-changed\"),\n constant(\"hibernated\"),\n constant(\"resumed\")\n);\n\nexport const workspaceConfigResultDecoder: Decoder<WorkspaceConfigResult> = object({\n frameId: nonEmptyStringDecoder,\n title: nonEmptyStringDecoder,\n positionIndex: nonNegativeNumberDecoder,\n name: nonEmptyStringDecoder,\n layoutName: optional(nonEmptyStringDecoder),\n isHibernated: optional(boolean()),\n isSelected: optional(boolean()),\n allowDrop: optional(boolean()),\n allowSystemHibernation: optional(boolean()),\n allowExtract: optional(boolean()),\n allowWindowReorder: optional(boolean()),\n allowSplitters: optional(boolean()),\n showCloseButton: optional(boolean()),\n showSaveButton: optional(boolean()),\n allowWorkspaceTabReorder: optional(boolean()),\n allowWorkspaceTabExtract: optional(boolean()),\n allowDropLeft: optional(boolean()),\n allowDropTop: optional(boolean()),\n allowDropRight: optional(boolean()),\n allowDropBottom: optional(boolean()),\n minWidth: optional(number()),\n maxWidth: optional(number()),\n minHeight: optional(number()),\n maxHeight: optional(number()),\n showAddWindowButtons: optional(boolean()),\n showEjectButtons: optional(boolean()),\n showWindowCloseButtons: optional(boolean()),\n widthInPx: optional(number()),\n heightInPx: optional(number()),\n isPinned: optional(boolean()),\n});\n\n// todo: remove number positionIndex when fixed\nexport const baseChildSnapshotConfigDecoder: Decoder<BaseChildSnapshotConfig> = object({\n frameId: nonEmptyStringDecoder,\n workspaceId: nonEmptyStringDecoder,\n positionIndex: number(),\n minWidth: optional(number()),\n maxWidth: optional(number()),\n minHeight: optional(number()),\n maxHeight: optional(number())\n});\n\nexport const parentSnapshotConfigDecoder: Decoder<ParentSnapshotConfig> = anyJson();\n\nexport const swimlaneWindowSnapshotConfigDecoder: Decoder<SwimlaneWindowSnapshotConfig> = intersection(\n baseChildSnapshotConfigDecoder,\n object({\n windowId: optional(nonEmptyStringDecoder),\n isMaximized: optional(boolean()),\n isFocused: boolean(),\n isSelected: optional(boolean()),\n title: optional(string()),\n appName: optional(nonEmptyStringDecoder),\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n showCloseButton: optional(boolean()),\n minWidth: optional(number()),\n minHeight: optional(number()),\n maxWidth: optional(number()),\n maxHeight: optional(number()),\n widthInPx: optional(number()),\n heightInPx: optional(number()),\n context: optional(anyJson())\n })\n) as any;\n\nexport const customWorkspaceSubParentSnapshotDecoder: Decoder<SubParentSnapshotResult> = object({\n id: optional(nonEmptyStringDecoder),\n config: parentSnapshotConfigDecoder,\n children: optional(lazy(() => array(customWorkspaceChildSnapshotDecoder))),\n type: oneOf<\"row\" | \"column\" | \"group\">(\n constant(\"row\"),\n constant(\"column\"),\n constant(\"group\")\n )\n});\n\nexport const customWorkspaceWindowSnapshotDecoder: Decoder<WindowSnapshotResult> = object({\n id: optional(nonEmptyStringDecoder),\n config: swimlaneWindowSnapshotConfigDecoder,\n type: constant(\"window\")\n});\n\nexport const customWorkspaceChildSnapshotDecoder: Decoder<ChildSnapshotResult> = oneOf<WindowSnapshotResult | SubParentSnapshotResult>(\n customWorkspaceWindowSnapshotDecoder,\n customWorkspaceSubParentSnapshotDecoder);\n\nexport const childSnapshotResultDecoder: Decoder<ChildSnapshotResult> = customWorkspaceChildSnapshotDecoder;\n\nexport const workspaceSnapshotResultDecoder: Decoder<WorkspaceSnapshotResult> = object({\n id: nonEmptyStringDecoder,\n config: workspaceConfigResultDecoder,\n children: array(childSnapshotResultDecoder),\n frameSummary: frameSummaryDecoder,\n context: optional(anyJson())\n});\n\nexport const windowLayoutItemDecoder: Decoder<IOConnectWorkspaces.WindowLayoutItem> = object({\n type: constant(\"window\"),\n config: object({\n appName: nonEmptyStringDecoder,\n windowId: optional(nonEmptyStringDecoder),\n context: optional(anyJson()),\n url: optional(nonEmptyStringDecoder),\n title: optional(string()),\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n showCloseButton: optional(boolean()),\n minWidth: optional(number()),\n minHeight: optional(number()),\n maxWidth: optional(number()),\n maxHeight: optional(number()),\n isMaximized: optional(boolean())\n })\n});\n\nexport const groupLayoutItemDecoder: Decoder<IOConnectWorkspaces.GroupLayoutItem> = object({\n type: constant(\"group\"),\n config: anyJson(),\n children: array(oneOf<IOConnectWorkspaces.WindowLayoutItem>(\n windowLayoutItemDecoder\n ))\n});\n\nexport const columnLayoutItemDecoder: Decoder<IOConnectWorkspaces.ColumnLayoutItem> = object({\n type: constant(\"column\"),\n config: anyJson(),\n children: array(oneOf<IOConnectWorkspaces.RowLayoutItem | IOConnectWorkspaces.ColumnLayoutItem | IOConnectWorkspaces.GroupLayoutItem | IOConnectWorkspaces.WindowLayoutItem>(\n groupLayoutItemDecoder,\n windowLayoutItemDecoder,\n lazy(() => columnLayoutItemDecoder),\n lazy(() => rowLayoutItemDecoder)\n ))\n});\n\nexport const rowLayoutItemDecoder: Decoder<IOConnectWorkspaces.RowLayoutItem> = object({\n type: constant(\"row\"),\n config: anyJson(),\n children: array(oneOf<IOConnectWorkspaces.RowLayoutItem | IOConnectWorkspaces.ColumnLayoutItem | IOConnectWorkspaces.GroupLayoutItem | IOConnectWorkspaces.WindowLayoutItem>(\n columnLayoutItemDecoder,\n groupLayoutItemDecoder,\n windowLayoutItemDecoder,\n lazy(() => rowLayoutItemDecoder)\n ))\n});\n\nexport const workspaceLayoutDecoder: Decoder<IOConnectWorkspaces.WorkspaceLayout> = object({\n name: nonEmptyStringDecoder,\n type: constant(\"Workspace\"),\n metadata: optional(anyJson()),\n components: array(object({\n type: constant(\"Workspace\"),\n application: optional(string()),\n state: object({\n config: anyJson(),\n context: anyJson(),\n children: array(oneOf<IOConnectWorkspaces.RowLayoutItem | IOConnectWorkspaces.ColumnLayoutItem | IOConnectWorkspaces.GroupLayoutItem | IOConnectWorkspaces.WindowLayoutItem>(\n rowLayoutItemDecoder,\n columnLayoutItemDecoder,\n groupLayoutItemDecoder,\n windowLayoutItemDecoder\n ))\n })\n }))\n});\n\nexport const workspacesImportLayoutDecoder: Decoder<{ layout: IOConnectWorkspaces.WorkspaceLayout; mode: \"replace\" | \"merge\" }> = object({\n layout: workspaceLayoutDecoder,\n mode: oneOf<\"replace\" | \"merge\">(\n constant(\"replace\"),\n constant(\"merge\")\n )\n});\n\nexport const workspacesImportLayoutsDecoder: Decoder<{ layouts: IOConnectWorkspaces.WorkspaceLayout[]; mode: \"replace\" | \"merge\" }> = object({\n layouts: array(workspaceLayoutDecoder),\n mode: oneOf<\"replace\" | \"merge\">(\n constant(\"replace\"),\n constant(\"merge\")\n )\n});\n\nexport const exportedLayoutsResultDecoder: Decoder<ExportedLayoutsResult> = object({\n layouts: array(workspaceLayoutDecoder)\n});\n\nexport const frameSummaryResultDecoder: Decoder<FrameSummaryResult> = object({\n id: nonEmptyStringDecoder,\n isFocused: optional(boolean()),\n isInitialized: optional(boolean()),\n initializationContext: optional(frameInitializationContextDecoder)\n});\n\nexport const frameSummariesResultDecoder: Decoder<FrameSummariesResult> = object({\n summaries: array(frameSummaryResultDecoder)\n});\n\nexport const workspaceSummaryResultDecoder: Decoder<WorkspaceSummaryResult> = object({\n id: nonEmptyStringDecoder,\n config: workspaceConfigResultDecoder\n});\n\nexport const workspaceSummariesResultDecoder: Decoder<WorkspaceSummariesResult> = object({\n summaries: array(workspaceSummaryResultDecoder)\n});\n\nexport const frameSnapshotResultDecoder: Decoder<FrameSnapshotResult> = object({\n id: nonEmptyStringDecoder,\n config: anyJson(),\n workspaces: array(workspaceSnapshotResultDecoder)\n});\n\nexport const layoutSummaryDecoder: Decoder<LayoutSummary> = object({\n name: nonEmptyStringDecoder,\n applicationName: optional(string())\n});\n\nexport const layoutSummariesDecoder: Decoder<LayoutSummariesResult> = object({\n summaries: array(layoutSummaryDecoder)\n});\n\nexport const simpleWindowOperationSuccessResultDecoder: Decoder<SimpleWindowOperationSuccessResult> = object({\n windowId: nonEmptyStringDecoder\n});\n\nexport const voidResultDecoder: Decoder<{}> = anyJson();\n\nexport const frameStateResultDecoder: Decoder<FrameStateResult> = object({\n state: frameStateDecoder\n});\n\nexport const frameBoundsDecoder: Decoder<FrameBounds> = object({\n top: number(),\n left: number(),\n width: nonNegativeNumberDecoder,\n height: nonNegativeNumberDecoder\n});\n\nexport const frameBoundsResultDecoder: Decoder<FrameBoundsResult> = object({\n bounds: frameBoundsDecoder\n});\n\nexport const getWorkspaceIconResultDecoder: Decoder<GetWorkspaceIconResult> = object({\n icon: optional(nonEmptyStringDecoder)\n});\n\nexport const getPlatformFrameIdResultDecoder: Decoder<GetPlatformFrameIdResult> = object({\n id: optional(nonEmptyStringDecoder)\n});\n\nexport const operationCheckResultDecoder: Decoder<OperationCheckResult> = object({\n isSupported: boolean()\n});\n\nexport const resizeConfigDecoder: Decoder<IOConnectWorkspaces.ResizeConfig> = object({\n width: optional(positiveNumberDecoder),\n height: optional(positiveNumberDecoder),\n relative: optional(boolean())\n});\n\nexport const moveConfigDecoder: Decoder<IOConnectWorkspaces.MoveConfig> = object({\n top: optional(number()),\n left: optional(number()),\n relative: optional(boolean())\n});\n\nexport const simpleItemConfigDecoder: Decoder<SimpleItemConfig> = object({\n itemId: nonEmptyStringDecoder\n});\n\nexport const frameSnapshotConfigDecoder: Decoder<FrameSnapshotConfig> = object({\n itemId: nonEmptyStringDecoder,\n excludeIds: optional(boolean())\n});\n\nexport const frameStateConfigDecoder: Decoder<FrameStateConfig> = object({\n frameId: nonEmptyStringDecoder,\n requestedState: frameStateDecoder\n});\n\nexport const setItemTitleConfigDecoder: Decoder<SetItemTitleConfig> = object({\n itemId: nonEmptyStringDecoder,\n title: nonEmptyStringDecoder\n});\n\nexport const moveWindowConfigDecoder: Decoder<MoveWindowConfig> = object({\n itemId: nonEmptyStringDecoder,\n containerId: nonEmptyStringDecoder\n});\n\nexport const resizeItemConfigDecoder: Decoder<ResizeItemConfig> = intersection(\n simpleItemConfigDecoder,\n resizeConfigDecoder\n);\n\nexport const setMaximizationBoundaryConfigDecoder: Decoder<SetMaximizationBoundaryConfig> = object({\n itemId: nonEmptyStringDecoder,\n enabled: boolean()\n});\n\nexport const moveFrameConfigDecoder: Decoder<MoveFrameConfig> = intersection(\n simpleItemConfigDecoder,\n moveConfigDecoder\n);\n\nexport const simpleParentDecoder: Decoder<{ id: string; type: \"row\" | \"column\" | \"group\" }> = object({\n id: nonEmptyStringDecoder,\n type: subParentDecoder\n});\n\nexport const addWindowConfigDecoder: Decoder<AddWindowConfig> = object({\n definition: swimlaneWindowDefinitionDecoder,\n parentId: nonEmptyStringDecoder,\n parentType: allParentDecoder\n});\n\nexport const addContainerConfigDecoder: Decoder<AddContainerConfig> = object({\n definition: strictParentDefinitionDecoder,\n parentId: nonEmptyStringDecoder,\n parentType: allParentDecoder\n});\n\nexport const addItemResultDecoder: Decoder<AddItemResult> = object({\n itemId: nonEmptyStringDecoder,\n windowId: optional(nonEmptyStringDecoder)\n});\n\nexport const pingResultDecoder: Decoder<PingResult> = object({\n live: boolean()\n});\n\nexport const bundleWorkspaceConfigDecoder: Decoder<BundleWorkspaceConfig> = object({\n type: oneOf<\"row\" | \"column\">(\n constant(\"row\"),\n constant(\"column\")\n ),\n workspaceId: nonEmptyStringDecoder\n});\n\nexport const bundleItemConfigDecoder: Decoder<ItemBundleConfig> = object({\n type: oneOf<\"row\" | \"column\">(\n constant(\"row\"),\n constant(\"column\")\n ),\n itemId: nonEmptyStringDecoder\n});\n\nexport const containerSummaryResultDecoder: Decoder<ContainerSummaryResult> = object({\n itemId: nonEmptyStringDecoder,\n config: parentSnapshotConfigDecoder\n});\n\nexport const frameStreamDataDecoder: Decoder<FrameStreamData> = object({\n frameSummary: frameSummaryDecoder,\n frameBounds: optional(frameBoundsDecoder)\n});\n\nexport const workspaceStreamDataDecoder: Decoder<WorkspaceStreamData> = object({\n workspaceSummary: workspaceSummaryResultDecoder,\n frameSummary: frameSummaryDecoder,\n workspaceSnapshot: optional(workspaceSnapshotResultDecoder),\n frameBounds: optional(frameBoundsDecoder)\n});\n\nexport const containerStreamDataDecoder: Decoder<ContainerStreamData> = object({\n containerSummary: containerSummaryResultDecoder\n});\n\nexport const windowStreamDataDecoder: Decoder<WindowStreamData> = object({\n windowSummary: object({\n itemId: nonEmptyStringDecoder,\n parentId: nonEmptyStringDecoder,\n config: swimlaneWindowSnapshotConfigDecoder\n })\n});\n\nexport const workspaceLayoutSaveConfigDecoder: Decoder<IOConnectWorkspaces.WorkspaceLayoutSaveConfig> = object({\n name: nonEmptyStringDecoder,\n workspaceId: nonEmptyStringDecoder,\n saveContext: optional(boolean()),\n metadata: optional(object())\n});\n\nexport const workspaceLockConfigDecoder: Decoder<IOConnectWorkspaces.WorkspaceLockConfig> = object({\n allowDrop: optional(boolean()),\n allowDropLeft: optional(boolean()),\n allowDropTop: optional(boolean()),\n allowDropRight: optional(boolean()),\n allowDropBottom: optional(boolean()),\n allowSystemHibernation: optional(boolean()),\n allowExtract: optional(boolean()),\n allowWindowReorder: optional(boolean()),\n allowSplitters: optional(boolean()),\n showCloseButton: optional(boolean()),\n showSaveButton: optional(boolean()),\n allowWorkspaceTabReorder: optional(boolean()),\n allowWorkspaceTabExtract: optional(boolean()),\n showWindowCloseButtons: optional(boolean()),\n showAddWindowButtons: optional(boolean()),\n showEjectButtons: optional(boolean()),\n});\n\nexport const lockWorkspaceDecoder: Decoder<LockWorkspaceConfig> = object({\n workspaceId: nonEmptyStringDecoder,\n config: optional(workspaceLockConfigDecoder)\n});\n\nexport const windowLockConfigDecoder: Decoder<IOConnectWorkspaces.WorkspaceWindowLockConfig> = object({\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n showCloseButton: optional(boolean())\n});\n\nexport const elementResizeConfigDecoder: Decoder<IOConnectWorkspaces.ElementResizeConfig> = object({\n width: optional(nonNegativeNumberDecoder),\n height: optional(nonNegativeNumberDecoder)\n});\n\nexport const lockWindowDecoder: Decoder<LockWindowConfig> = object({\n windowPlacementId: nonEmptyStringDecoder,\n config: optional(windowLockConfigDecoder)\n});\n\nexport const rowLockConfigDecoder: Decoder<IOConnectWorkspaces.RowLockConfig> = object({\n allowDrop: optional(boolean()),\n allowSplitters: optional(boolean()),\n});\n\nexport const columnLockConfigDecoder: Decoder<IOConnectWorkspaces.ColumnLockConfig> = object({\n allowDrop: optional(boolean()),\n allowSplitters: optional(boolean()),\n});\n\nexport const groupLockConfigDecoder: Decoder<IOConnectWorkspaces.GroupLockConfig> = object({\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n allowDrop: optional(boolean()),\n allowDropLeft: optional(boolean()),\n allowDropRight: optional(boolean()),\n allowDropTop: optional(boolean()),\n allowDropBottom: optional(boolean()),\n allowDropHeader: optional(boolean()),\n showMaximizeButton: optional(boolean()),\n showEjectButton: optional(boolean()),\n showAddWindowButton: optional(boolean()),\n});\n\nexport const lockRowDecoder: Decoder<LockRowConfig> = object({\n itemId: nonEmptyStringDecoder,\n type: constant(\"row\"),\n config: optional(rowLockConfigDecoder)\n});\n\nexport const lockColumnDecoder: Decoder<LockColumnConfig> = object({\n itemId: nonEmptyStringDecoder,\n type: constant(\"column\"),\n config: optional(columnLockConfigDecoder)\n});\n\nexport const lockGroupDecoder: Decoder<LockGroupConfig> = object({\n itemId: nonEmptyStringDecoder,\n type: constant(\"group\"),\n config: optional(groupLockConfigDecoder)\n});\n\nexport const lockContainerDecoder: Decoder<LockContainerConfig> = oneOf<LockGroupConfig | LockColumnConfig | LockRowConfig>(lockRowDecoder, lockColumnDecoder, lockGroupDecoder);\n\nexport const pinWorkspaceDecoder: Decoder<PinWorkspaceConfig> = object({\n workspaceId: nonEmptyStringDecoder,\n icon: optional(nonEmptyStringDecoder)\n});\n\nexport const setWorkspaceIconDecoder: Decoder<SetWorkspaceIconConfig> = object({\n workspaceId: nonEmptyStringDecoder,\n icon: optional(nonEmptyStringDecoder) // to enable the user to remove the icon from the workspace altogether\n});\n\nexport const workspacePinOptionsDecoder: Decoder<IOConnectWorkspaces.WorkspacePinOptions> = optional(object({\n icon: optional(nonEmptyStringDecoder)\n}));\n\nexport const shortcutConfigDecoder: Decoder<ShortcutConfig> = object({\n shortcut: nonEmptyStringDecoder,\n frameId: nonEmptyStringDecoder\n});\n\nexport const shortcutClickedDataDecoder: Decoder<ShortcutClickedData> = object({\n shortcut: nonEmptyStringDecoder,\n frameId: nonEmptyStringDecoder\n});\n\nexport const setMaximizationBoundaryAPIConfigDecoder: Decoder<IOConnectWorkspaces.SetMaximizationBoundaryConfig> = object({\n enabled: boolean()\n});\n\nexport const loadingAnimationConfigDecoder: Decoder<LoadingAnimationConfig> = object({\n itemId: nonEmptyStringDecoder,\n type: loadingAnimationTypeDecoder\n});\n\nexport const operationCheckConfigDecoder: Decoder<OperationCheckConfig> = object({\n operation: nonEmptyStringDecoder\n});\n","import {\n isWindowInSwimlaneResultDecoder,\n frameSummaryDecoder,\n workspaceSnapshotResultDecoder,\n frameSummariesResultDecoder,\n workspaceCreateConfigDecoder,\n getFrameSummaryConfigDecoder,\n layoutSummariesDecoder,\n openWorkspaceConfigDecoder,\n workspaceSummariesResultDecoder,\n voidResultDecoder,\n exportedLayoutsResultDecoder,\n workspaceLayoutDecoder,\n deleteLayoutConfigDecoder,\n simpleItemConfigDecoder,\n resizeItemConfigDecoder,\n moveFrameConfigDecoder,\n frameSnapshotResultDecoder,\n simpleWindowOperationSuccessResultDecoder,\n setItemTitleConfigDecoder,\n moveWindowConfigDecoder,\n addWindowConfigDecoder,\n addContainerConfigDecoder,\n addItemResultDecoder,\n bundleWorkspaceConfigDecoder,\n workspaceStreamDataDecoder,\n frameStreamDataDecoder,\n containerStreamDataDecoder,\n windowStreamDataDecoder,\n workspaceLayoutSaveConfigDecoder,\n pingResultDecoder,\n frameStateConfigDecoder,\n frameStateResultDecoder,\n workspacesImportLayoutDecoder,\n workspaceSelectorDecoder,\n lockWorkspaceDecoder,\n lockWindowDecoder,\n lockContainerDecoder,\n frameBoundsResultDecoder,\n getWorkspaceIconResultDecoder,\n pinWorkspaceDecoder,\n setWorkspaceIconDecoder,\n frameSummaryResultDecoder,\n emptyFrameDefinitionDecoder,\n frameInitProtocolConfigDecoder,\n shortcutClickedDataDecoder,\n shortcutConfigDecoder,\n frameSnapshotConfigDecoder,\n setMaximizationBoundaryConfigDecoder,\n loadingAnimationConfigDecoder,\n getPlatformFrameIdResultDecoder,\n workspacesImportLayoutsDecoder,\n bundleItemConfigDecoder,\n operationCheckConfigDecoder,\n operationCheckResultDecoder\n} from \"../shared/decoders\";\nimport { ControlOperation, StreamOperation } from \"../types/protocol\";\nimport { WorkspaceEventType } from \"../types/subscription\";\n\ntype OperationsTypes = \"isWindowInWorkspace\" |\n \"createWorkspace\" |\n \"getAllFramesSummaries\" |\n \"getFrameSummary\" |\n \"getAllWorkspacesSummaries\" |\n \"getWorkspaceSnapshot\" |\n \"getAllLayoutsSummaries\" |\n \"openWorkspace\" |\n \"deleteLayout\" |\n \"saveLayout\" |\n \"importLayout\" |\n \"importLayouts\" |\n \"exportAllLayouts\" |\n \"restoreItem\" |\n \"maximizeItem\" |\n \"focusItem\" |\n \"closeItem\" |\n \"resizeItem\" |\n \"setMaximizationBoundary\" |\n \"moveFrame\" |\n \"getFrameSnapshot\" |\n \"forceLoadWindow\" |\n \"ejectWindow\" |\n \"setItemTitle\" |\n \"moveWindowTo\" |\n \"addWindow\" |\n \"addContainer\" |\n \"bundleWorkspace\" |\n \"bundleItem\" |\n \"ping\" |\n \"changeFrameState\" |\n \"getFrameState\" |\n \"getFrameBounds\" |\n \"hibernateWorkspace\" |\n \"resumeWorkspace\" |\n \"lockWorkspace\" |\n \"lockWindow\" |\n \"lockContainer\" |\n \"pinWorkspace\" |\n \"unpinWorkspace\" |\n \"getWorkspaceIcon\" |\n \"setWorkspaceIcon\" |\n \"createFrame\" |\n \"registerShortcut\" |\n \"unregisterShortcut\" |\n \"initFrame\" |\n \"showLoadingAnimation\" |\n \"hideLoadingAnimation\" |\n \"getPlatformFrameId\" |\n \"operationCheck\";\ntype OutgoingMethodTypes = \"control\" | \"frameStream\" | \"workspaceStream\" | \"containerStream\" | \"windowStream\";\nexport type IncomingMethodTypes = \"control\";\n\nexport const webPlatformMethodName = \"T42.Web.Platform.Control\";\nexport const webPlatformWspStreamName = \"T42.Web.Platform.WSP.Stream\";\n\nexport const OUTGOING_METHODS: { [key in OutgoingMethodTypes]: { name: string; isStream: boolean } } = {\n control: { name: \"T42.Workspaces.Control\", isStream: false },\n frameStream: { name: \"T42.Workspaces.Stream.Frame\", isStream: true },\n workspaceStream: { name: \"T42.Workspaces.Stream.Workspace\", isStream: true },\n containerStream: { name: \"T42.Workspaces.Stream.Container\", isStream: true },\n windowStream: { name: \"T42.Workspaces.Stream.Window\", isStream: true }\n};\n\nexport const INCOMING_METHODS: { [key in IncomingMethodTypes]: { name: string; isStream: boolean } } = {\n control: { name: \"T42.Workspaces.Client.Control\", isStream: false },\n};\n\nexport const STREAMS: { [key in WorkspaceEventType]: StreamOperation } = {\n frame: { name: \"T42.Workspaces.Stream.Frame\", payloadDecoder: frameStreamDataDecoder },\n workspace: { name: \"T42.Workspaces.Stream.Workspace\", payloadDecoder: workspaceStreamDataDecoder },\n container: { name: \"T42.Workspaces.Stream.Container\", payloadDecoder: containerStreamDataDecoder },\n window: { name: \"T42.Workspaces.Stream.Window\", payloadDecoder: windowStreamDataDecoder }\n};\n\ninterface ShortcutClicked {\n operation: \"shortcutClicked\",\n data: {\n shortcut: string;\n frameId: string;\n }\n}\n\nexport type ClientOperations = ShortcutClicked;\n\nexport type OnOperationsTypes = \"shortcutClicked\";\n\nexport const CLIENT_OPERATIONS: { [key in OnOperationsTypes]: ControlOperation } = {\n shortcutClicked: { name: \"shortcutClicked\", argsDecoder: shortcutClickedDataDecoder, resultDecoder: voidResultDecoder },\n};\n\nexport const OPERATIONS: { [key in OperationsTypes]: ControlOperation } = {\n ping: { name: \"ping\", resultDecoder: pingResultDecoder },\n isWindowInWorkspace: { name: \"isWindowInWorkspace\", argsDecoder: simpleItemConfigDecoder, resultDecoder: isWindowInSwimlaneResultDecoder },\n createWorkspace: { name: \"createWorkspace\", resultDecoder: workspaceSnapshotResultDecoder, argsDecoder: workspaceCreateConfigDecoder },\n createFrame: { name: \"createFrame\", resultDecoder: frameSummaryResultDecoder, argsDecoder: emptyFrameDefinitionDecoder },\n initFrame: { name: \"initFrame\", resultDecoder: voidResultDecoder, argsDecoder: frameInitProtocolConfigDecoder },\n getAllFramesSummaries: { name: \"getAllFramesSummaries\", resultDecoder: frameSummariesResultDecoder },\n getFrameSummary: { name: \"getFrameSummary\", resultDecoder: frameSummaryDecoder, argsDecoder: getFrameSummaryConfigDecoder },\n getAllWorkspacesSummaries: { name: \"getAllWorkspacesSummaries\", resultDecoder: workspaceSummariesResultDecoder },\n getWorkspaceSnapshot: { name: \"getWorkspaceSnapshot\", resultDecoder: workspaceSnapshotResultDecoder, argsDecoder: simpleItemConfigDecoder },\n getAllLayoutsSummaries: { name: \"getAllLayoutsSummaries\", resultDecoder: layoutSummariesDecoder },\n openWorkspace: { name: \"openWorkspace\", argsDecoder: openWorkspaceConfigDecoder, resultDecoder: workspaceSnapshotResultDecoder },\n deleteLayout: { name: \"deleteLayout\", resultDecoder: voidResultDecoder, argsDecoder: deleteLayoutConfigDecoder },\n saveLayout: { name: \"saveLayout\", resultDecoder: workspaceLayoutDecoder, argsDecoder: workspaceLayoutSaveConfigDecoder },\n importLayout: { name: \"importLayout\", resultDecoder: voidResultDecoder, argsDecoder: workspacesImportLayoutDecoder },\n importLayouts: { name: \"importLayouts\", resultDecoder: voidResultDecoder, argsDecoder: workspacesImportLayoutsDecoder },\n exportAllLayouts: { name: \"exportAllLayouts\", resultDecoder: exportedLayoutsResultDecoder },\n restoreItem: { name: \"restoreItem\", argsDecoder: simpleItemConfigDecoder, resultDecoder: voidResultDecoder },\n maximizeItem: { name: \"maximizeItem\", argsDecoder: simpleItemConfigDecoder, resultDecoder: voidResultDecoder },\n focusItem: { name: \"focusItem\", argsDecoder: simpleItemConfigDecoder, resultDecoder: voidResultDecoder },\n closeItem: { name: \"closeItem\", argsDecoder: simpleItemConfigDecoder, resultDecoder: voidResultDecoder },\n resizeItem: { name: \"resizeItem\", argsDecoder: resizeItemConfigDecoder, resultDecoder: voidResultDecoder },\n setMaximizationBoundary: { name: \"setMaximizationBoundary\", argsDecoder: setMaximizationBoundaryConfigDecoder, resultDecoder: voidResultDecoder },\n changeFrameState: { name: \"changeFrameState\", argsDecoder: frameStateConfigDecoder, resultDecoder: voidResultDecoder },\n getFrameState: { name: \"getFrameState\", argsDecoder: simpleItemConfigDecoder, resultDecoder: frameStateResultDecoder },\n getFrameBounds: { name: \"getFrameBounds\", argsDecoder: simpleItemConfigDecoder, resultDecoder: frameBoundsResultDecoder },\n moveFrame: { name: \"moveFrame\", argsDecoder: moveFrameConfigDecoder, resultDecoder: voidResultDecoder },\n getFrameSnapshot: { name: \"getFrameSnapshot\", argsDecoder: frameSnapshotConfigDecoder, resultDecoder: frameSnapshotResultDecoder },\n forceLoadWindow: { name: \"forceLoadWindow\", argsDecoder: simpleItemConfigDecoder, resultDecoder: simpleWindowOperationSuccessResultDecoder },\n ejectWindow: { name: \"ejectWindow\", argsDecoder: simpleItemConfigDecoder, resultDecoder: simpleWindowOperationSuccessResultDecoder },\n setItemTitle: { name: \"setItemTitle\", argsDecoder: setItemTitleConfigDecoder, resultDecoder: voidResultDecoder },\n moveWindowTo: { name: \"moveWindowTo\", argsDecoder: moveWindowConfigDecoder, resultDecoder: voidResultDecoder },\n addWindow: { name: \"addWindow\", argsDecoder: addWindowConfigDecoder, resultDecoder: addItemResultDecoder },\n addContainer: { name: \"addContainer\", argsDecoder: addContainerConfigDecoder, resultDecoder: addItemResultDecoder },\n bundleWorkspace: { name: \"bundleWorkspace\", argsDecoder: bundleWorkspaceConfigDecoder, resultDecoder: voidResultDecoder },\n bundleItem: { name: \"bundleItem\", argsDecoder: bundleItemConfigDecoder, resultDecoder: voidResultDecoder },\n hibernateWorkspace: { name: \"hibernateWorkspace\", argsDecoder: workspaceSelectorDecoder, resultDecoder: voidResultDecoder },\n resumeWorkspace: { name: \"resumeWorkspace\", argsDecoder: workspaceSelectorDecoder, resultDecoder: voidResultDecoder },\n lockWorkspace: { name: \"lockWorkspace\", argsDecoder: lockWorkspaceDecoder, resultDecoder: voidResultDecoder },\n lockWindow: { name: \"lockWindow\", argsDecoder: lockWindowDecoder, resultDecoder: voidResultDecoder },\n lockContainer: { name: \"lockContainer\", argsDecoder: lockContainerDecoder, resultDecoder: voidResultDecoder },\n pinWorkspace: { name: \"pinWorkspace\", argsDecoder: pinWorkspaceDecoder, resultDecoder: voidResultDecoder },\n unpinWorkspace: { name: \"unpinWorkspace\", argsDecoder: workspaceSelectorDecoder, resultDecoder: voidResultDecoder },\n getWorkspaceIcon: { name: \"getWorkspaceIcon\", argsDecoder: workspaceSelectorDecoder, resultDecoder: getWorkspaceIconResultDecoder },\n setWorkspaceIcon: { name: \"setWorkspaceIcon\", argsDecoder: setWorkspaceIconDecoder, resultDecoder: voidResultDecoder },\n registerShortcut: { name: \"registerShortcut\", argsDecoder: shortcutConfigDecoder, resultDecoder: voidResultDecoder },\n unregisterShortcut: { name: \"unregisterShortcut\", argsDecoder: shortcutConfigDecoder, resultDecoder: voidResultDecoder },\n showLoadingAnimation: { name: \"showLoadingAnimation\", argsDecoder: loadingAnimationConfigDecoder, resultDecoder: voidResultDecoder },\n hideLoadingAnimation: { name: \"hideLoadingAnimation\", argsDecoder: loadingAnimationConfigDecoder, resultDecoder: voidResultDecoder },\n getPlatformFrameId: { name: \"getPlatformFrameId\", resultDecoder: getPlatformFrameIdResultDecoder },\n operationCheck: { name: \"operationCheck\", argsDecoder: operationCheckConfigDecoder, resultDecoder: operationCheckResultDecoder },\n};\n","export class PromiseWrapper<T> {\r\n public resolve: (value: T | PromiseLike<T>) => void;\r\n public reject: (err: string) => void;\r\n public readonly promise: Promise<T>;\r\n constructor() {\r\n this.promise = new Promise<T>((res, rej) => {\r\n this.resolve = res;\r\n this.reject = rej;\r\n });\r\n }\r\n}","import { CallbackRegistry, UnsubscribeFunction } from \"callback-registry\";\nimport { SubscriptionConfig, ActiveSubscription, WorkspaceEventType, WorkspaceEventAction, WorkspacePayload, WorkspaceEventScope, PendingSubscription } from \"../types/subscription\";\nimport { ClientOperations, CLIENT_OPERATIONS, STREAMS } from \"./constants\";\nimport { OPERATIONS } from \"./constants\";\nimport { eventTypeDecoder, streamRequestArgumentsDecoder, workspaceEventActionDecoder } from \"../shared/decoders\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { InteropTransport } from \"./interop-transport\";\nimport { PromiseWrapper } from \"../shared/promiseWrapper\";\nimport { Instance } from \"../types/glue\";\n\nexport class Bridge {\n\n private readonly activeSubscriptions: ActiveSubscription[] = [];\n private readonly pendingSubScriptions: PendingSubscription[] = [];\n\n constructor(\n private readonly transport: InteropTransport,\n private readonly registry: CallbackRegistry\n ) { }\n\n public async createCoreEventSubscription(): Promise<void> {\n await this.transport.coreSubscriptionReady(this.handleCoreEvent.bind(this));\n }\n\n public handleCoreSubscription(config: SubscriptionConfig): UnsubscribeFunction {\n const registryKey = `${config.eventType}-${config.action}`;\n const scope = config.scope;\n const scopeId = config.scopeId;\n\n return this.registry.add(registryKey, (args) => {\n const scopeConfig = {\n type: scope,\n id: scopeId\n };\n\n const receivedIds = {\n frame: args.frameSummary?.id || args.windowSummary?.config.frameId,\n workspace: args.workspaceSummary?.id || args.windowSummary?.config.workspaceId,\n container: args.containerSummary?.itemId,\n window: args.windowSummary?.itemId\n };\n\n const shouldInvokeCallback = this.checkScopeMatch(scopeConfig, receivedIds);\n\n if (!shouldInvokeCallback) {\n return;\n }\n\n config.callback(args);\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public async send<T>(operationName: string, operationArgs?: any): Promise<T> {\n\n const operationDefinition = Object.values(OPERATIONS).find((operation) => operation.name === operationName);\n\n if (!operationDefinition) {\n throw new Error(`Cannot find definition for operation name: ${operationName}`);\n }\n\n if (operationDefinition.argsDecoder) {\n try {\n operationDefinition.argsDecoder.runWithException(operationArgs);\n } catch (error) {\n throw new Error(`Unexpected internal outgoing validation error: ${error.message}, for input: ${JSON.stringify(error.input)}, for operation ${operationName}`);\n }\n }\n\n try {\n const operationResult = await this.transport.transmitControl(operationDefinition.name, operationArgs);\n\n operationDefinition.resultDecoder.runWithException(operationResult);\n\n return operationResult;\n } catch (error) {\n if (error.kind) {\n throw new Error(`Unexpected internal incoming validation error: ${error.message}, for input: ${JSON.stringify(error.input)}, for operation ${operationName}`);\n }\n throw new Error(error.message);\n }\n }\n\n public async subscribe(config: SubscriptionConfig): Promise<IOConnectWorkspaces.Unsubscribe> {\n const pendingSub = this.getPendingSubscription(config);\n if (pendingSub) {\n await pendingSub.promise;\n }\n\n let activeSub = this.getActiveSubscription(config);\n const registryKey = this.getRegistryKey(config);\n\n if (!activeSub) {\n const pendingPromise = new PromiseWrapper<void>();\n const pendingSubscription = {\n streamType: config.eventType,\n level: config.scope,\n levelId: config.scopeId,\n promise: pendingPromise.promise\n };\n this.pendingSubScriptions.push(pendingSubscription);\n try {\n const stream = STREAMS[config.eventType];\n const gdSub = await this.transport.subscribe(stream.name, this.getBranchKey(config), config.eventType);\n\n gdSub.onData((streamData) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data = streamData.data as { action: string; payload: any };\n\n // important to decode without exception, because we do not want to throw an exception here\n const requestedArgumentsResult = streamRequestArgumentsDecoder.run(streamData.requestArguments);\n const actionResult = workspaceEventActionDecoder.run(data.action);\n\n if (!requestedArgumentsResult.ok || !actionResult.ok) {\n return;\n }\n\n const streamType = requestedArgumentsResult.result.type;\n const branch = requestedArgumentsResult.result.branch;\n\n const keyToExecute = `${streamType}-${branch}-${actionResult.result}`;\n const validatedPayload = STREAMS[streamType].payloadDecoder.run(data.payload);\n if (!validatedPayload.ok) {\n return;\n }\n\n this.registry.execute(keyToExecute, validatedPayload.result);\n });\n\n activeSub = {\n streamType: config.eventType,\n level: config.scope,\n levelId: config.scopeId,\n callbacksCount: 0,\n gdSub\n };\n\n this.activeSubscriptions.push(activeSub);\n\n pendingPromise.resolve();\n } catch (error) {\n pendingPromise.reject(error);\n\n throw error;\n } finally {\n this.removePendingSubscription(pendingSubscription);\n }\n\n }\n\n const unsubscribe = this.registry.add(registryKey, config.callback);\n\n ++activeSub.callbacksCount;\n\n return (): void => {\n unsubscribe();\n --activeSub.callbacksCount;\n\n if (activeSub.callbacksCount === 0) {\n activeSub.gdSub.close();\n this.activeSubscriptions.splice(this.activeSubscriptions.indexOf(activeSub), 1);\n }\n };\n }\n\n public onOperation(callback: (operation: ClientOperations, caller: Instance) => void) {\n\n const wrappedCallback = (payload: ClientOperations, caller: Instance) => {\n const operationName = payload.operation;\n const operationArgs = payload.data;\n const operationDefinition = Object.values(CLIENT_OPERATIONS).find((operation) => operation.name === operationName);\n\n if (!operationDefinition) {\n throw new Error(`Cannot find definition for operation name: ${operationName}`);\n }\n\n if (operationDefinition.argsDecoder) {\n try {\n operationDefinition.argsDecoder.runWithException(operationArgs);\n } catch (error) {\n throw new Error(`Unexpected internal outgoing validation error: ${error.message}, for input: ${JSON.stringify(error.input)}, for operation ${operationName}`);\n }\n }\n\n callback(payload, caller);\n };\n\n return this.transport.onInternalMethodInvoked(\"control\", wrappedCallback);\n }\n\n private checkScopeMatch(scope: { type: WorkspaceEventScope; id?: string }, receivedIds: { frame: string; workspace: string; container: string; window: string }): boolean {\n\n if (scope.type === \"global\") {\n return true;\n }\n\n if (scope.type === \"frame\" && scope.id === receivedIds.frame) {\n return true;\n }\n\n if (scope.type === \"workspace\" && scope.id === receivedIds.workspace) {\n return true;\n }\n\n if (scope.type === \"container\" && scope.id === receivedIds.container) {\n return true;\n }\n\n if (scope.type === \"window\" && scope.id === receivedIds.window) {\n return true;\n }\n\n return false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private handleCoreEvent(args: any): void {\n const data = args.data;\n try {\n const verifiedAction: WorkspaceEventAction = workspaceEventActionDecoder.runWithException(data.action);\n const verifiedType: WorkspaceEventType = eventTypeDecoder.runWithException(data.type);\n const verifiedPayload: WorkspacePayload = STREAMS[verifiedType].payloadDecoder.runWithException(data.payload);\n\n const registryKey = `${verifiedType}-${verifiedAction}`;\n\n this.registry.execute(registryKey, verifiedPayload);\n } catch (error) {\n console.warn(`Cannot handle event with data ${JSON.stringify(data)}, because of validation error: ${error.message}`);\n }\n }\n\n private getBranchKey(config: SubscriptionConfig): string {\n return config.scope === \"global\" ? config.scope : `${config.scope}_${config.scopeId}`;\n }\n\n private getRegistryKey(config: SubscriptionConfig): string {\n return `${config.eventType}-${this.getBranchKey(config)}-${config.action}`;\n }\n\n private getActiveSubscription(config: SubscriptionConfig): ActiveSubscription {\n return this.activeSubscriptions\n .find((activeSub) => activeSub.streamType === config.eventType &&\n activeSub.level === config.scope &&\n activeSub.levelId === config.scopeId\n );\n }\n\n private getPendingSubscription(config: SubscriptionConfig): PendingSubscription {\n return this.pendingSubScriptions\n .find((activeSub) => activeSub.streamType === config.eventType &&\n activeSub.level === config.scope &&\n activeSub.levelId === config.scopeId\n );\n }\n\n private removePendingSubscription(pendingSubscription: PendingSubscription): void {\n const index = this.pendingSubScriptions.indexOf(pendingSubscription);\n\n if (index >= 0) {\n this.pendingSubScriptions.splice(index, 1);\n }\n }\n}\n","export const promisePlus = <T>(promise: () => Promise<T>, timeoutMilliseconds: number, timeoutMessage?: string): Promise<T> => {\n return new Promise<T>((resolve, reject) => {\n\n let promiseActive = true;\n\n const timeout = setTimeout(() => {\n if (!promiseActive) {\n return;\n }\n promiseActive = false;\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n\n reject(message);\n }, timeoutMilliseconds);\n\n promise()\n .then((result) => {\n if (!promiseActive) {\n return;\n }\n promiseActive = false;\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n if (!promiseActive) {\n return;\n }\n promiseActive = false;\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ClientOperations, IncomingMethodTypes, INCOMING_METHODS, OUTGOING_METHODS, webPlatformMethodName, webPlatformWspStreamName } from \"./constants\";\nimport { promisePlus } from \"../shared/promisePlus\";\nimport { WorkspaceEventType } from \"../types/subscription\";\nimport { InteropAPI, Subscription, InvocationResult, Instance } from \"../types/glue\";\nimport { CallbackRegistry } from \"callback-registry\";\n\nexport class InteropTransport {\n\n private readonly defaultTransportTimeout: number = 30000;\n private coreEventMethodInitiated = false;\n private corePlatformSubPromise: Promise<Subscription>;\n\n constructor(private readonly agm: InteropAPI,\n private readonly registry: CallbackRegistry) { }\n\n public async initiate(actualWindowId: string): Promise<void> {\n\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (desktopGlobal) {\n await Promise.all(\n Object.values(OUTGOING_METHODS).map((method) => {\n return this.verifyMethodLive(method.name);\n })\n );\n\n await Promise.all(\n Object.keys(INCOMING_METHODS).map((method: IncomingMethodTypes) => {\n return this.registerMethod(method);\n })\n );\n\n return;\n }\n\n const browserGlobal = (window as any).glue42core || (window as any).iobrowser;\n\n const systemId = browserGlobal.communicationId;\n\n await Promise.all([\n this.verifyMethodLive(webPlatformMethodName, systemId),\n this.verifyMethodLive(webPlatformWspStreamName, systemId)\n ]);\n\n await this.transmitControl(\"frameHello\", { windowId: actualWindowId });\n }\n\n public coreSubscriptionReady(eventCallback: (args?: any) => void): Promise<Subscription> {\n if (!this.coreEventMethodInitiated) {\n this.subscribePlatform(eventCallback);\n }\n return this.corePlatformSubPromise;\n }\n\n public subscribePlatform(eventCallback: (args?: any) => void): void {\n this.coreEventMethodInitiated = true;\n\n const browserGlobal = (window as any).glue42core || (window as any).iobrowser;\n\n const systemId = browserGlobal.communicationId;\n\n this.corePlatformSubPromise = this.agm.subscribe(webPlatformWspStreamName, systemId ? { target: { instance: systemId } } : undefined);\n\n this.corePlatformSubPromise\n .then((sub) => {\n sub.onData((data) => eventCallback(data.data));\n });\n }\n\n public async subscribe(streamName: string, streamBranch: string, streamType: WorkspaceEventType): Promise<Subscription> {\n\n const subscriptionArgs = {\n branch: streamBranch,\n type: streamType\n };\n\n let subscription: Subscription;\n\n try {\n subscription = await this.agm.subscribe(streamName, { arguments: subscriptionArgs });\n } catch (error) {\n const message = `Internal subscription error! Error details: stream - ${streamName}, branch: ${streamBranch}. Internal message: ${error.message}`;\n throw new Error(message);\n }\n\n return subscription;\n }\n\n public async transmitControl(operation: string, operationArguments: any): Promise<any> {\n\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n const browserGlobal = (window as any).glue42core || (window as any).iobrowser;\n \n const invocationArguments = desktopGlobal ? { operation, operationArguments } : { operation, domain: \"workspaces\", data: operationArguments };\n const methodName = desktopGlobal ? OUTGOING_METHODS.control.name : webPlatformMethodName;\n\n const platformTarget = desktopGlobal ? undefined : browserGlobal.communicationId;\n\n let invocationResult: InvocationResult<any>;\n const baseErrorMessage = `Internal Workspaces Communication Error. Attempted operation: ${JSON.stringify(invocationArguments)}. `;\n\n // using the 0 index of the errors and values collections, because we expect only one server and\n // this is to safeguard in case in future we decide to deprecate the default returned/message properties in favor of using only collections\n try {\n invocationResult = await this.agm.invoke(methodName, invocationArguments, platformTarget ? { instance: platformTarget } : \"best\", { methodResponseTimeoutMs: this.defaultTransportTimeout });\n\n if (!invocationResult) {\n throw new Error(\"Received unsupported result from GD - empty result\");\n }\n\n if (!Array.isArray(invocationResult.all_return_values) || invocationResult.all_return_values.length === 0) {\n throw new Error(\"Received unsupported result from GD - empty values collection\");\n }\n\n } catch (error) {\n if (error && error.all_errors && error.all_errors.length) {\n // IMPORTANT: Do NOT change the `Inner message:` string, because it is used by other programs to extract the inner message of a communication error\n const invocationErrorMessage = error.all_errors[0].message;\n throw new Error(`${baseErrorMessage} -> Inner message: ${invocationErrorMessage}`);\n\n }\n // IMPORTANT: Do NOT change the `Inner message:` string, because it is used by other programs to extract the inner message of a communication error\n throw new Error(`${baseErrorMessage} -> Inner message: ${error.message}`);\n }\n\n return invocationResult.all_return_values[0].returned;\n }\n\n public onInternalMethodInvoked(key: IncomingMethodTypes, callback: (operation: ClientOperations, caller: Instance) => void) {\n return this.registry.add(key, callback);\n }\n\n private verifyMethodLive(name: string, systemId?: string): Promise<void> {\n return promisePlus(() => {\n return new Promise((resolve) => {\n const hasMethod = this.agm.methods().some((method) => {\n const nameMatch = method.name === name;\n \n const serverMatch = systemId ?\n method.getServers().some((server) => server.instance === systemId) :\n true;\n \n return nameMatch && serverMatch;\n });\n\n if (hasMethod) {\n resolve();\n return;\n }\n\n const unSub = this.agm.serverMethodAdded((data) => {\n const method = data.method;\n const server = data.server;\n \n const serverMatch = systemId ?\n server.instance === systemId :\n true;\n \n if (method.name === name && serverMatch) {\n unSub();\n resolve();\n }\n });\n });\n }, 15000, \"Timeout waiting for the Workspaces communication channels\");\n }\n\n private registerMethod(key: IncomingMethodTypes) {\n const method = INCOMING_METHODS[key];\n return this.agm.register(method.name, (args, caller) => {\n this.registry.execute(key, args, caller);\n });\n }\n}\n","import { BaseBuilder } from \"./baseBuilder\";\nimport { ChildBuilder } from \"../types/builders\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\n\ninterface PrivateData {\n definition: IOConnectWorkspaces.BoxDefinition;\n base: BaseBuilder;\n children: ChildBuilder[];\n}\n\nconst privateData = new WeakMap<ParentBuilder, PrivateData>();\n\nexport class ParentBuilder implements ParentBuilder {\n\n constructor(\n definition: IOConnectWorkspaces.BoxDefinition,\n base: BaseBuilder\n ) {\n const children = base.wrapChildren(definition.children);\n\n delete definition.children;\n\n privateData.set(this, { base, children, definition });\n }\n\n public get type(): \"column\" | \"row\" | \"group\" {\n return privateData.get(this).definition.type;\n }\n\n public addColumn(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const base = privateData.get(this).base;\n\n return base.add(\"column\", privateData.get(this).children, definition);\n }\n\n public addRow(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const base = privateData.get(this).base;\n\n return base.add(\"row\", privateData.get(this).children, definition);\n }\n\n public addGroup(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const base = privateData.get(this).base;\n\n return base.add(\"group\", privateData.get(this).children, definition);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): ParentBuilder {\n const base = privateData.get(this).base;\n\n base.addWindow(privateData.get(this).children, definition);\n\n return this;\n }\n\n public serialize(): IOConnectWorkspaces.BoxDefinition {\n const definition = privateData.get(this).definition;\n definition.children = privateData.get(this).base.serializeChildren(privateData.get(this).children);\n return definition;\n }\n\n}\n","import { ParentBuilder } from \"./parentBuilder\";\nimport { ChildDefinition, ChildBuilder } from \"../types/builders\";\nimport { parentDefinitionDecoder, swimlaneWindowDefinitionDecoder } from \"../shared/decoders\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { WorkspaceBuilder } from \"./workspaceBuilder\";\n\nexport class BaseBuilder {\n\n constructor(\n private readonly getBuilder: (config: IOConnectWorkspaces.BuilderConfig) => ParentBuilder | WorkspaceBuilder,\n ) { }\n\n public wrapChildren(children: ChildDefinition[]): ChildBuilder[] {\n return children.map((child) => {\n if (child.type === \"window\") {\n return child;\n }\n\n return this.getBuilder({ type: child.type, definition: child }) as ParentBuilder;\n });\n }\n\n public add(type: \"row\" | \"column\" | \"group\", children: ChildBuilder[], definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const validatedDefinition = parentDefinitionDecoder.runWithException(definition);\n\n const childBuilder = this.getBuilder({ type, definition: validatedDefinition }) as ParentBuilder;\n\n children.push(childBuilder);\n\n return childBuilder;\n }\n\n public addWindow(children: ChildBuilder[], definition: IOConnectWorkspaces.WorkspaceWindowDefinition): void {\n const validatedDefinition = swimlaneWindowDefinitionDecoder.runWithException(definition);\n\n validatedDefinition.type = \"window\";\n\n children.push(validatedDefinition);\n }\n\n public serializeChildren(children: ChildBuilder[]): ChildDefinition[] {\n return children.map((child) => {\n if (child instanceof ParentBuilder) {\n return child.serialize();\n } else {\n return child as IOConnectWorkspaces.WorkspaceWindowDefinition;\n }\n });\n }\n}\n","import { BaseBuilder } from \"./baseBuilder\";\nimport { ChildBuilder } from \"../types/builders\";\nimport { ParentBuilder } from \"./parentBuilder\";\nimport { workspaceBuilderCreateConfigDecoder, nonNegativeNumberDecoder } from \"../shared/decoders\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { WorkspacesController } from \"../types/controller\";\n\ninterface PrivateData {\n definition: IOConnectWorkspaces.WorkspaceDefinition;\n children: ChildBuilder[];\n base: BaseBuilder;\n controller: WorkspacesController;\n}\n\nconst privateData = new WeakMap<WorkspaceBuilder, PrivateData>();\n\nexport class WorkspaceBuilder implements WorkspaceBuilder {\n\n constructor(\n definition: IOConnectWorkspaces.WorkspaceDefinition,\n base: BaseBuilder,\n controller: WorkspacesController\n ) {\n const children = base.wrapChildren(definition.children);\n\n delete definition.children;\n\n privateData.set(this, { base, children, definition, controller });\n }\n\n public addColumn(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const children = privateData.get(this).children;\n\n const areAllColumns = children.every((child) => child instanceof ParentBuilder && child.type === \"column\");\n\n if (!areAllColumns) {\n throw new Error(\"Cannot add a column to this workspace, because there are already children of another type\");\n }\n\n const base = privateData.get(this).base;\n\n return base.add(\"column\", children, definition);\n }\n\n public addRow(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const children = privateData.get(this).children;\n\n const areAllRows = children.every((child) => child instanceof ParentBuilder && child.type === \"row\");\n\n if (!areAllRows) {\n throw new Error(\"Cannot add a row to this workspace, because there are already children of another type\");\n }\n\n const base = privateData.get(this).base;\n\n return base.add(\"row\", children, definition);\n }\n\n public addGroup(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const children = privateData.get(this).children;\n\n if (children.length !== 0) {\n throw new Error(\"Cannot add a group to this workspace, because there are already defined children.\");\n }\n\n const base = privateData.get(this).base;\n\n return base.add(\"group\", children, definition);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): WorkspaceBuilder {\n const children = privateData.get(this).children;\n\n if (children.length !== 0) {\n throw new Error(\"Cannot add a window to this workspace, because there are already defined children.\");\n }\n\n const base = privateData.get(this).base;\n\n base.addWindow(children, definition);\n\n return this;\n }\n\n public getChildAt(index: number): ChildBuilder {\n nonNegativeNumberDecoder.runWithException(index);\n const data = privateData.get(this).children;\n\n return data[index];\n }\n\n public async create(config?: IOConnectWorkspaces.WorkspaceCreateConfig): Promise<IOConnectWorkspaces.Workspace> {\n const saveConfig = workspaceBuilderCreateConfigDecoder.runWithException(config);\n\n const definition = privateData.get(this).definition;\n definition.children = privateData.get(this).base.serializeChildren(privateData.get(this).children);\n\n const controller = privateData.get(this).controller;\n\n return controller.createWorkspace(definition, saveConfig);\n }\n}\n","import { Base } from \"./base/base\";\nimport { IOConnectWorkspaces } from \"../../workspaces.d\";\nimport { checkThrowCallback, nonNegativeNumberDecoder, rowLockConfigDecoder, setMaximizationBoundaryAPIConfigDecoder } from \"../shared/decoders\";\nimport { SubscriptionConfig } from \"../types/subscription\";\n\ninterface PrivateData {\n base: Base;\n}\n\nconst privateData = new WeakMap<Row, PrivateData>();\n\nconst getBase = (model: Row): Base => {\n return privateData.get(model).base;\n};\n\nexport class Row implements IOConnectWorkspaces.Row {\n\n constructor(base: Base) {\n privateData.set(this, { base });\n }\n\n public get type(): \"row\" {\n return \"row\";\n }\n\n public get id(): string {\n return getBase(this).getId(this);\n }\n\n public get frameId(): string {\n return getBase(this).getFrameId(this);\n }\n\n public get workspaceId(): string {\n return getBase(this).getWorkspaceId(this);\n }\n\n public get positionIndex(): number {\n return getBase(this).getPositionIndex(this);\n }\n\n public get children(): IOConnectWorkspaces.WorkspaceElement[] {\n return getBase(this).getAllChildren(this);\n }\n\n public get parent(): IOConnectWorkspaces.Workspace | IOConnectWorkspaces.WorkspaceBox {\n return getBase(this).getMyParent(this);\n }\n\n public get frame(): IOConnectWorkspaces.Frame {\n return getBase(this).getMyFrame(this);\n }\n\n public get workspace(): IOConnectWorkspaces.Workspace {\n return getBase(this).getMyWorkspace(this);\n }\n\n public get allowDrop(): boolean {\n return getBase(this).getAllowDrop(this);\n }\n\n public get allowSplitters(): boolean {\n return getBase(this).getAllowSplitters(this);\n }\n\n public get minWidth(): number {\n return getBase(this).getMinWidth(this);\n }\n\n public get minHeight(): number {\n return getBase(this).getMinHeight(this);\n }\n\n public get maxWidth(): number {\n return getBase(this).getMaxWidth(this);\n }\n\n public get maxHeight(): number {\n return getBase(this).getMaxHeight(this);\n }\n\n public get width(): number {\n return getBase(this).getWidthInPx(this);\n }\n\n public get height(): number {\n return getBase(this).getHeightInPx(this);\n }\n\n public get isPinned(): boolean {\n return getBase(this).getIsPinned(this);\n }\n\n public get isMaximized(): boolean {\n return getBase(this).getIsMaximized(this);\n }\n\n public get maximizationBoundary(): boolean {\n return getBase(this).getMaximizationBoundary(this);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n return getBase(this).addWindow(this, definition, \"row\");\n }\n\n public async addGroup(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Group> {\n if (definition?.type && definition.type !== \"group\") {\n throw new Error(`Expected a group definition, but received ${definition.type}`);\n }\n return getBase(this).addParent<IOConnectWorkspaces.Group>(this, \"group\", \"row\", definition);\n }\n\n public async addColumn(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Column> {\n if (definition?.type && definition.type !== \"column\") {\n throw new Error(`Expected a column definition, but received ${definition.type}`);\n }\n return getBase(this).addParent<IOConnectWorkspaces.Column>(this, \"column\", \"row\", definition);\n }\n\n public async addRow(): Promise<Row> {\n throw new Error(\"Adding rows as row children is not supported\");\n }\n\n public removeChild(predicate: (child: IOConnectWorkspaces.WorkspaceElement) => boolean): Promise<void> {\n return getBase(this).removeChild(this, predicate);\n }\n\n public maximize(): Promise<void> {\n return getBase(this).maximize(this);\n }\n\n public restore(): Promise<void> {\n return getBase(this).restore(this);\n }\n\n public close(): Promise<void> {\n return getBase(this).close(this);\n }\n\n public lock(config?: IOConnectWorkspaces.RowLockConfig | ((config: IOConnectWorkspaces.RowLockConfig) => IOConnectWorkspaces.RowLockConfig)): Promise<void> {\n let lockConfigResult = undefined;\n\n if (typeof config === \"function\") {\n const currentLockConfig = {\n allowDrop: this.allowDrop,\n allowSplitters: this.allowSplitters\n };\n\n lockConfigResult = config(currentLockConfig);\n } else {\n lockConfigResult = config;\n }\n\n const verifiedConfig = lockConfigResult === undefined ? undefined : rowLockConfigDecoder.runWithException(lockConfigResult);\n\n return getBase(this).lockContainer(this, verifiedConfig);\n }\n\n public async setHeight(height: number): Promise<void> {\n nonNegativeNumberDecoder.runWithException(height);\n return getBase(this).setHeight(this, height);\n }\n\n\n public async onLockConfigurationChanged(callback: (config: IOConnectWorkspaces.RowLockConfig) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const wrappedCallback = async (): Promise<void> => {\n await this.workspace.refreshReference();\n callback({\n allowDrop: this.allowDrop,\n allowSplitters: this.allowSplitters\n });\n };\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"lock-configuration-changed\",\n eventType: \"container\",\n scope: \"container\"\n };\n const unsubscribe = await getBase(this).processLocalSubscription(this, config);\n return unsubscribe;\n }\n public async setMaximizationBoundary(config: IOConnectWorkspaces.SetMaximizationBoundaryConfig): Promise<void> {\n const validatedConfig = setMaximizationBoundaryAPIConfigDecoder.runWithException(config);\n return getBase(this).setMaximizationBoundary(this, validatedConfig);\n }\n\n}\n","import { Base } from \"./base/base\";\nimport { IOConnectWorkspaces } from \"../../workspaces.d\";\nimport { checkThrowCallback, columnLockConfigDecoder, nonNegativeNumberDecoder, setMaximizationBoundaryAPIConfigDecoder } from \"../shared/decoders\";\nimport { SubscriptionConfig } from \"../types/subscription\";\n\ninterface PrivateData {\n base: Base;\n}\n\nconst privateData = new WeakMap<Column, PrivateData>();\n\nconst getBase = (model: Column): Base => {\n return privateData.get(model).base;\n};\n\nexport class Column implements IOConnectWorkspaces.Column {\n\n constructor(base: Base) {\n privateData.set(this, { base });\n }\n\n public get type(): \"column\" {\n return \"column\";\n }\n\n public get id(): string {\n return getBase(this).getId(this);\n }\n\n public get frameId(): string {\n return getBase(this).getFrameId(this);\n }\n\n public get workspaceId(): string {\n return getBase(this).getWorkspaceId(this);\n }\n\n public get positionIndex(): number {\n return getBase(this).getPositionIndex(this);\n }\n\n public get children(): IOConnectWorkspaces.WorkspaceElement[] {\n return getBase(this).getAllChildren(this);\n }\n\n public get parent(): IOConnectWorkspaces.Workspace | IOConnectWorkspaces.WorkspaceBox {\n return getBase(this).getMyParent(this);\n }\n\n public get frame(): IOConnectWorkspaces.Frame {\n return getBase(this).getMyFrame(this);\n }\n\n public get workspace(): IOConnectWorkspaces.Workspace {\n return getBase(this).getMyWorkspace(this);\n }\n\n public get allowDrop(): boolean {\n return getBase(this).getAllowDrop(this);\n }\n\n public get allowSplitters(): boolean {\n return getBase(this).getAllowSplitters(this);\n }\n\n public get minWidth(): number {\n return getBase(this).getMinWidth(this);\n }\n\n public get minHeight(): number {\n return getBase(this).getMinHeight(this);\n }\n\n public get maxWidth(): number {\n return getBase(this).getMaxWidth(this);\n }\n\n public get maxHeight(): number {\n return getBase(this).getMaxHeight(this);\n }\n\n public get width(): number {\n return getBase(this).getWidthInPx(this);\n }\n\n public get height(): number {\n return getBase(this).getHeightInPx(this);\n }\n\n public get isPinned(): boolean {\n return getBase(this).getIsPinned(this);\n }\n\n public get isMaximized(): boolean {\n return getBase(this).getIsMaximized(this);\n }\n\n public get maximizationBoundary(): boolean {\n return getBase(this).getMaximizationBoundary(this);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n return getBase(this).addWindow(this, definition, \"column\");\n }\n\n public async addGroup(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Group> {\n if (definition?.type && definition.type !== \"group\") {\n throw new Error(`Expected a group definition, but received ${definition.type}`);\n }\n return getBase(this).addParent<IOConnectWorkspaces.Group>(this, \"group\", \"column\", definition);\n }\n\n public async addColumn(): Promise<Column> {\n throw new Error(\"Adding columns as column children is not supported\");\n }\n\n public async addRow(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Row> {\n if (definition?.type && definition.type !== \"row\") {\n throw new Error(`Expected a row definition, but received ${definition.type}`);\n }\n return getBase(this).addParent<IOConnectWorkspaces.Row>(this, \"row\", \"column\", definition);\n }\n\n public removeChild(predicate: (child: IOConnectWorkspaces.WorkspaceElement) => boolean): Promise<void> {\n return getBase(this).removeChild(this, predicate);\n }\n\n public maximize(): Promise<void> {\n return getBase(this).maximize(this);\n }\n\n public restore(): Promise<void> {\n return getBase(this).restore(this);\n }\n\n public close(): Promise<void> {\n return getBase(this).close(this);\n }\n\n public lock(config?: IOConnectWorkspaces.ColumnLockConfig | ((config: IOConnectWorkspaces.ColumnLockConfig) => IOConnectWorkspaces.ColumnLockConfig)): Promise<void> {\n let lockConfigResult = undefined;\n\n if (typeof config === \"function\") {\n const currentLockConfig = {\n allowDrop: this.allowDrop,\n allowSplitters: this.allowSplitters\n };\n\n lockConfigResult = config(currentLockConfig);\n\n } else {\n lockConfigResult = config;\n }\n const verifiedConfig = lockConfigResult === undefined ? undefined : columnLockConfigDecoder.runWithException(lockConfigResult);\n return getBase(this).lockContainer(this, verifiedConfig);\n }\n\n public async setWidth(width: number): Promise<void> {\n nonNegativeNumberDecoder.runWithException(width);\n return getBase(this).setWidth(this, width);\n }\n\n\n public async onLockConfigurationChanged(callback: (config: IOConnectWorkspaces.ColumnLockConfig) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const wrappedCallback = async (): Promise<void> => {\n await this.workspace.refreshReference();\n callback({\n allowDrop: this.allowDrop,\n allowSplitters: this.allowSplitters\n });\n };\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"lock-configuration-changed\",\n eventType: \"container\",\n scope: \"container\"\n };\n const unsubscribe = await getBase(this).processLocalSubscription(this, config);\n return unsubscribe;\n }\n public async setMaximizationBoundary(config: IOConnectWorkspaces.SetMaximizationBoundaryConfig): Promise<void> {\n const validatedConfig = setMaximizationBoundaryAPIConfigDecoder.runWithException(config);\n return getBase(this).setMaximizationBoundary(this, validatedConfig);\n\n }\n}\n","import { Base } from \"./base/base\";\nimport { IOConnectWorkspaces } from \"../../workspaces.d\";\nimport { checkThrowCallback, elementResizeConfigDecoder, groupLockConfigDecoder } from \"../shared/decoders\";\nimport { SubscriptionConfig } from \"../types/subscription\";\n\ninterface PrivateData {\n base: Base;\n}\n\nconst privateData = new WeakMap<Group, PrivateData>();\n\nconst getBase = (model: Group): Base => {\n return privateData.get(model).base;\n};\n\nexport class Group implements IOConnectWorkspaces.Group {\n\n constructor(base: Base) {\n privateData.set(this, { base });\n }\n\n public get type(): \"group\" {\n return \"group\";\n }\n\n public get id(): string {\n return getBase(this).getId(this);\n }\n\n public get frameId(): string {\n return getBase(this).getFrameId(this);\n }\n\n public get workspaceId(): string {\n return getBase(this).getWorkspaceId(this);\n }\n\n public get positionIndex(): number {\n return getBase(this).getPositionIndex(this);\n }\n\n public get children(): IOConnectWorkspaces.WorkspaceElement[] {\n return getBase(this).getAllChildren(this);\n }\n\n public get parent(): IOConnectWorkspaces.Workspace | IOConnectWorkspaces.WorkspaceBox {\n return getBase(this).getMyParent(this);\n }\n\n public get frame(): IOConnectWorkspaces.Frame {\n return getBase(this).getMyFrame(this);\n }\n\n public get workspace(): IOConnectWorkspaces.Workspace {\n return getBase(this).getMyWorkspace(this);\n }\n\n public get allowExtract(): boolean {\n return getBase(this).getAllowExtract(this);\n }\n\n public get allowReorder(): boolean {\n return getBase(this).getAllowReorder(this);\n }\n\n public get allowDropLeft(): boolean {\n return getBase(this).getAllowDropLeft(this);\n }\n\n public get allowDropRight(): boolean {\n return getBase(this).getAllowDropRight(this);\n }\n\n public get allowDropTop(): boolean {\n return getBase(this).getAllowDropTop(this);\n }\n\n public get allowDropBottom(): boolean {\n return getBase(this).getAllowDropBottom(this);\n }\n\n public get allowDropHeader(): boolean {\n return getBase(this).getAllowDropHeader(this);\n }\n\n public get allowDrop(): boolean {\n return getBase(this).getAllowDrop(this);\n }\n\n public get showMaximizeButton(): boolean {\n return getBase(this).getShowMaximizeButton(this);\n }\n\n public get showEjectButton(): boolean {\n return getBase(this).getShowEjectButton(this);\n }\n\n public get showAddWindowButton(): boolean {\n return getBase(this).getShowAddWindowButton(this);\n }\n\n public get minWidth(): number {\n return getBase(this).getMinWidth(this);\n }\n\n public get minHeight(): number {\n return getBase(this).getMinHeight(this);\n }\n\n public get maxWidth(): number {\n return getBase(this).getMaxWidth(this);\n }\n\n public get maxHeight(): number {\n return getBase(this).getMaxHeight(this);\n }\n\n public get width(): number {\n return getBase(this).getWidthInPx(this);\n }\n\n public get height(): number {\n return getBase(this).getHeightInPx(this);\n }\n\n public get isMaximized(): boolean {\n return getBase(this).getIsMaximized(this);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n return getBase(this).addWindow(this, definition, \"group\");\n }\n\n public async addGroup(): Promise<Group> {\n throw new Error(\"Adding groups as group child is not supported\");\n }\n\n public async addColumn(): Promise<IOConnectWorkspaces.Column> {\n throw new Error(\"Adding columns as group child is not supported\");\n }\n\n public async addRow(): Promise<IOConnectWorkspaces.Row> {\n throw new Error(\"Adding rows as group child is not supported\");\n }\n\n public removeChild(predicate: (child: IOConnectWorkspaces.WorkspaceElement) => boolean): Promise<void> {\n return getBase(this).removeChild(this, predicate);\n }\n\n public maximize(): Promise<void> {\n return getBase(this).maximize(this);\n }\n\n public restore(): Promise<void> {\n return getBase(this).restore(this);\n }\n\n public close(): Promise<void> {\n return getBase(this).close(this);\n }\n\n public lock(config?: IOConnectWorkspaces.GroupLockConfig | ((config: IOConnectWorkspaces.GroupLockConfig) => IOConnectWorkspaces.GroupLockConfig)): Promise<void> {\n let lockConfigResult = undefined;\n\n if (typeof config === \"function\") {\n const currentLockConfig = {\n allowDrop: this.allowDrop,\n allowDropHeader: this.allowDropHeader,\n allowDropLeft: this.allowDropLeft,\n allowDropRight: this.allowDropRight,\n allowDropTop: this.allowDropTop,\n allowDropBottom: this.allowDropBottom,\n allowExtract: this.allowExtract,\n allowReorder: this.allowReorder,\n showAddWindowButton: this.showAddWindowButton,\n showEjectButton: this.showEjectButton,\n showMaximizeButton: this.showMaximizeButton\n };\n\n lockConfigResult = config(currentLockConfig);\n } else {\n lockConfigResult = config;\n }\n const verifiedConfig = lockConfigResult === undefined ? undefined : groupLockConfigDecoder.runWithException(lockConfigResult);\n return getBase(this).lockContainer(this, verifiedConfig);\n }\n\n public async setSize(config: IOConnectWorkspaces.ElementResizeConfig): Promise<void> {\n const verifiedConfig = elementResizeConfigDecoder.runWithException(config);\n\n if (!verifiedConfig.width && !verifiedConfig.height) {\n throw new Error(\"Expected either width or height to be passed.\");\n }\n\n\n return getBase(this).setSize(this, config.width, config.height);\n }\n\n public async bundleToRow(): Promise<void> {\n await getBase(this).bundleTo(this, \"row\");\n await this.workspace.refreshReference();\n }\n\n public async bundleToColumn(): Promise<void> {\n await getBase(this).bundleTo(this, \"column\");\n await this.workspace.refreshReference();\n }\n\n public async onLockConfigurationChanged(callback: (config: IOConnectWorkspaces.GroupLockConfig) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const wrappedCallback = async (): Promise<void> => {\n await this.workspace.refreshReference();\n callback({\n allowDrop: this.allowDrop,\n allowDropHeader: this.allowDropHeader,\n allowDropLeft: this.allowDropLeft,\n allowDropTop: this.allowDropTop,\n allowDropRight: this.allowDropRight,\n allowDropBottom: this.allowDropBottom,\n allowExtract: this.allowExtract,\n allowReorder: this.allowReorder,\n showAddWindowButton: this.showAddWindowButton,\n showEjectButton: this.showEjectButton,\n showMaximizeButton: this.showMaximizeButton\n });\n };\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"lock-configuration-changed\",\n eventType: \"container\",\n scope: \"container\"\n };\n const unsubscribe = await getBase(this).processLocalSubscription(this, config);\n return unsubscribe;\n }\n\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { WorkspaceSnapshotResult, WindowStreamData, WorkspaceStreamData } from \"../types/protocol\";\nimport { checkThrowCallback, nonEmptyStringDecoder, workspaceLockConfigDecoder, workspacePinOptionsDecoder } from \"../shared/decoders\";\nimport { PrivateDataManager } from \"../shared/privateDataManager\";\nimport { FrameCreateConfig } from \"../types/ioc\";\nimport { Frame } from \"./frame\";\nimport { SubscriptionConfig } from \"../types/subscription\";\nimport { WorkspacePrivateData } from \"../types/privateData\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { Workspace as WorkspaceTemp, WorkspaceLockConfig } from \"../../temp\";\n\ninterface PrivateData {\n manager: PrivateDataManager;\n}\n\nconst data = new WeakMap<Workspace, PrivateData>();\n\nconst getData = (model: Workspace): WorkspacePrivateData => {\n return data.get(model).manager.getWorkspaceData(model);\n};\n\nconst getDataManager = (model: Workspace): PrivateDataManager => {\n return data.get(model).manager;\n};\n\ntype SaveLayoutConfig = Omit<Omit<IOConnectWorkspaces.WorkspaceLayoutSaveConfig, \"name\">, \"workspaceId\">;\n\nexport class Workspace implements WorkspaceTemp {\n\n constructor(dataManager: PrivateDataManager) {\n data.set(this, { manager: dataManager });\n }\n\n public get id(): string {\n return getData(this).id;\n }\n\n public get frameId(): string {\n return getData(this).config.frameId;\n }\n\n public get positionIndex(): number {\n return getData(this).config.positionIndex;\n }\n\n public get title(): string {\n return getData(this).config.title;\n }\n\n public get layoutName(): string {\n return getData(this).config.layoutName;\n }\n\n public get isHibernated(): boolean | undefined {\n return getData(this).config.isHibernated;\n }\n\n public get isSelected(): boolean {\n return getData(this).config.isSelected;\n }\n\n public get children(): IOConnectWorkspaces.WorkspaceElement[] {\n return getData(this).children;\n }\n\n public get frame(): Frame {\n return getData(this).frame;\n }\n\n public get allowSplitters(): boolean {\n return getData(this).config.allowSplitters;\n }\n\n public get allowSystemHibernation(): boolean {\n return getData(this).config.allowSystemHibernation;\n }\n\n public get allowDrop(): boolean {\n return getData(this).config.allowDrop;\n }\n\n public get allowDropLeft(): boolean {\n return getData(this).config.allowDropLeft;\n }\n\n public get allowDropTop(): boolean {\n return getData(this).config.allowDropTop;\n }\n\n public get allowDropRight(): boolean {\n return getData(this).config.allowDropRight;\n }\n\n public get allowDropBottom(): boolean {\n return getData(this).config.allowDropBottom;\n }\n\n public get allowExtract(): boolean {\n return getData(this).config.allowExtract;\n }\n\n public get allowWindowReorder(): boolean {\n return getData(this).config.allowWindowReorder;\n }\n\n public get showCloseButton(): boolean {\n return getData(this).config.showCloseButton;\n }\n\n public get showSaveButton(): boolean {\n return getData(this).config.showSaveButton;\n }\n\n public get allowWorkspaceTabReorder(): boolean {\n return getData(this).config.allowWorkspaceTabReorder;\n }\n\n public get allowWorkspaceTabExtract(): boolean {\n return getData(this).config.allowWorkspaceTabExtract;\n }\n\n public get minWidth(): number {\n return getData(this).config.minWidth;\n }\n\n public get minHeight(): number {\n return getData(this).config.minHeight;\n }\n\n public get maxWidth(): number {\n return getData(this).config.maxWidth;\n }\n\n public get maxHeight(): number {\n return getData(this).config.maxHeight;\n }\n\n public get width(): number {\n return getData(this).config.widthInPx;\n }\n\n public get height(): number {\n return getData(this).config.heightInPx;\n }\n\n public get showWindowCloseButtons(): boolean {\n return getData(this).config.showWindowCloseButtons;\n }\n\n public get showEjectButtons(): boolean {\n return getData(this).config.showEjectButtons;\n }\n\n public get showAddWindowButtons(): boolean {\n return getData(this).config.showAddWindowButtons;\n }\n\n public get isPinned(): boolean {\n return getData(this).config.isPinned;\n }\n\n public async removeChild(predicate: (child: IOConnectWorkspaces.WorkspaceElement) => boolean): Promise<void> {\n checkThrowCallback(predicate);\n const child = this.children.find(predicate);\n if (!child) {\n return;\n }\n await child.close();\n await this.refreshReference();\n }\n\n public async remove(predicate: (child: IOConnectWorkspaces.WorkspaceElement) => boolean): Promise<void> {\n checkThrowCallback(predicate);\n const controller = getData(this).controller;\n\n const child = controller.iterateFindChild(this.children, predicate);\n\n await child.close();\n\n await this.refreshReference();\n }\n\n public async focus(): Promise<void> {\n await getData(this).controller.focusItem(this.id);\n await this.refreshReference();\n }\n\n public async close(): Promise<void> {\n const controller = getData(this).controller;\n\n const workspaces = await getData(this).frame.workspaces();\n\n // should close the frame only if the frame is NOT a platform\n const platformFrameId = (await controller.getPlatformFrameId()).id;\n\n const shouldCloseFrame = workspaces.length === 1 &&\n workspaces.every((wsp) => wsp.id === this.id) &&\n platformFrameId !== this.frame.id;\n\n if (shouldCloseFrame) {\n return this.frame.close();\n }\n\n await controller.closeItem(this.id);\n }\n\n public snapshot(): Promise<IOConnectWorkspaces.WorkspaceSnapshot> {\n return getData(this).controller.getSnapshot(this.id, \"workspace\") as Promise<IOConnectWorkspaces.WorkspaceSnapshot>;\n }\n\n public async saveLayout(name: string, config?: SaveLayoutConfig): Promise<void> {\n nonEmptyStringDecoder.runWithException(name);\n await getData(this).controller.saveLayout({ name, workspaceId: this.id, saveContext: config?.saveContext, metadata: config?.metadata });\n }\n\n public async setTitle(title: string): Promise<void> {\n nonEmptyStringDecoder.runWithException(title);\n const controller = getData(this).controller;\n\n await controller.setItemTitle(this.id, title);\n await this.refreshReference();\n }\n\n public getContext(): Promise<any> {\n const controller = getData(this).controller;\n return controller.getWorkspaceContext(this.id);\n }\n\n public setContext(data: any): Promise<void> {\n const controller = getData(this).controller;\n return controller.setWorkspaceContext(this.id, data);\n }\n\n public updateContext(data: any): Promise<void> {\n const controller = getData(this).controller;\n return controller.updateWorkspaceContext(this.id, data);\n }\n\n public onContextUpdated(callback: (data: any) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n const controller = getData(this).controller;\n return controller.subscribeWorkspaceContextUpdated(this.id, callback);\n }\n\n public async refreshReference(): Promise<void> {\n const newSnapshot = (await getData(this).controller.getSnapshot(this.id, \"workspace\")) as WorkspaceSnapshotResult;\n\n const currentChildrenFlat = getData(this).controller.flatChildren(getData(this).children);\n\n const newChildren = getData(this).controller.refreshChildren({\n existingChildren: currentChildrenFlat,\n workspace: this,\n parent: this,\n children: newSnapshot.children\n });\n\n const currentFrame = this.frame;\n let actualFrame: Frame;\n\n if (currentFrame.id === newSnapshot.config.frameId) {\n getDataManager(this).remapFrame(currentFrame, newSnapshot.frameSummary);\n actualFrame = currentFrame;\n } else {\n const frameCreateConfig: FrameCreateConfig = {\n summary: newSnapshot.frameSummary\n };\n const newFrame = getData(this).ioc.getModel<\"frame\">(\"frame\", frameCreateConfig);\n actualFrame = newFrame;\n }\n\n getDataManager(this).remapWorkspace(this, {\n config: newSnapshot.config,\n children: newChildren,\n frame: actualFrame\n });\n }\n\n public async getIcon(): Promise<string> {\n const controller = getData(this).controller;\n return controller.getWorkspaceIcon(this.id);\n }\n\n public async setIcon(icon: string): Promise<void> {\n const controller = getData(this).controller;\n return controller.setWorkspaceIcon(this.id, icon);\n }\n\n public getBox(predicate: (box: IOConnectWorkspaces.WorkspaceBox) => boolean): IOConnectWorkspaces.WorkspaceBox {\n checkThrowCallback(predicate);\n const children = getData(this).children;\n const controller = getData(this).controller;\n\n return controller.iterateFindChild(children, (child) => child.type !== \"window\" && predicate(child)) as IOConnectWorkspaces.WorkspaceBox;\n }\n\n public getAllBoxes(predicate?: (parent: IOConnectWorkspaces.WorkspaceBox) => boolean): IOConnectWorkspaces.WorkspaceBox[] {\n checkThrowCallback(predicate, true);\n const children = getData(this).children;\n const controller = getData(this).controller;\n\n const allParents = controller.iterateFilterChildren(children, (child) => child.type !== \"window\") as IOConnectWorkspaces.WorkspaceBox[];\n\n if (!predicate) {\n return allParents;\n }\n\n return allParents.filter(predicate);\n }\n\n public getRow(predicate: (row: IOConnectWorkspaces.Row) => boolean): IOConnectWorkspaces.Row {\n checkThrowCallback(predicate);\n return this.getBox((parent) => parent.type === \"row\" && predicate(parent)) as IOConnectWorkspaces.Row;\n }\n\n public getAllRows(predicate?: (row: IOConnectWorkspaces.Row) => boolean): IOConnectWorkspaces.Row[] {\n checkThrowCallback(predicate, true);\n if (predicate) {\n return this.getAllBoxes((parent) => parent.type === \"row\" && predicate(parent)) as IOConnectWorkspaces.Row[];\n }\n return this.getAllBoxes((parent) => parent.type === \"row\") as IOConnectWorkspaces.Row[];\n }\n\n public getColumn(predicate: (column: IOConnectWorkspaces.Column) => boolean): IOConnectWorkspaces.Column {\n checkThrowCallback(predicate);\n return this.getBox((parent) => parent.type === \"column\" && predicate(parent)) as IOConnectWorkspaces.Column;\n }\n\n public getAllColumns(predicate?: (columns: IOConnectWorkspaces.Column) => boolean): IOConnectWorkspaces.Column[] {\n checkThrowCallback(predicate, true);\n if (predicate) {\n return this.getAllBoxes((parent) => parent.type === \"column\" && predicate(parent)) as IOConnectWorkspaces.Column[];\n }\n return this.getAllBoxes((parent) => parent.type === \"column\") as IOConnectWorkspaces.Column[];\n }\n\n public getGroup(predicate: (group: IOConnectWorkspaces.Group) => boolean): IOConnectWorkspaces.Group {\n checkThrowCallback(predicate);\n return this.getBox((parent) => parent.type === \"group\" && predicate(parent)) as IOConnectWorkspaces.Group;\n }\n\n public getAllGroups(predicate?: (group: IOConnectWorkspaces.Group) => boolean): IOConnectWorkspaces.Group[] {\n checkThrowCallback(predicate, true);\n if (predicate) {\n return this.getAllBoxes((parent) => parent.type === \"group\" && predicate(parent)) as IOConnectWorkspaces.Group[];\n }\n return this.getAllBoxes((parent) => parent.type === \"group\") as IOConnectWorkspaces.Group[];\n }\n\n public getWindow(predicate: (window: IOConnectWorkspaces.WorkspaceWindow) => boolean): IOConnectWorkspaces.WorkspaceWindow {\n checkThrowCallback(predicate);\n const children = getData(this).children;\n const controller = getData(this).controller;\n\n return controller.iterateFindChild(children, (child) => child.type === \"window\" && predicate(child)) as IOConnectWorkspaces.WorkspaceWindow;\n }\n\n public getAllWindows(predicate?: (window: IOConnectWorkspaces.WorkspaceWindow) => boolean): IOConnectWorkspaces.WorkspaceWindow[] {\n checkThrowCallback(predicate, true);\n const children = getData(this).children;\n const controller = getData(this).controller;\n\n const allWindows = controller.iterateFilterChildren(children, (child) => child.type === \"window\") as IOConnectWorkspaces.WorkspaceWindow[];\n\n if (!predicate) {\n return allWindows;\n }\n\n return allWindows.filter(predicate);\n }\n\n public addRow(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Row> {\n return getData(this).base.addParent<IOConnectWorkspaces.Row>(this, \"row\", \"workspace\", definition);\n }\n\n public addColumn(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Column> {\n return getData(this).base.addParent<IOConnectWorkspaces.Column>(this, \"column\", \"workspace\", definition);\n }\n\n public addGroup(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Group> {\n return getData(this).base.addParent<IOConnectWorkspaces.Group>(this, \"group\", \"workspace\", definition);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n return getData(this).base.addWindow(this, definition, \"workspace\");\n }\n\n public async bundleToRow(): Promise<void> {\n await getData(this).controller.bundleWorkspaceTo(\"row\", this.id);\n await this.refreshReference();\n }\n\n public async bundleToColumn(): Promise<void> {\n await getData(this).controller.bundleWorkspaceTo(\"column\", this.id);\n await this.refreshReference();\n }\n\n public async hibernate(): Promise<void> {\n await getData(this).controller.hibernateWorkspace(this.id);\n await this.refreshReference();\n }\n\n public async resume(): Promise<void> {\n await getData(this).controller.resumeWorkspace(this.id);\n await this.refreshReference();\n }\n\n public async lock(config?: IOConnectWorkspaces.WorkspaceLockConfig | ((config: IOConnectWorkspaces.WorkspaceLockConfig) => IOConnectWorkspaces.WorkspaceLockConfig)): Promise<void> {\n let lockConfigResult = undefined;\n\n if (typeof config === \"function\") {\n const currentLockConfig = {\n allowDrop: this.allowDrop,\n allowDropLeft: this.allowDropLeft,\n allowDropTop: this.allowDropTop,\n allowDropRight: this.allowDropRight,\n allowDropBottom: this.allowDropBottom,\n allowSystemHibernation: this.allowSystemHibernation,\n allowExtract: this.allowExtract,\n allowWindowReorder: this.allowWindowReorder,\n allowSplitters: this.allowSplitters,\n showCloseButton: this.showCloseButton,\n showSaveButton: this.showSaveButton,\n allowWorkspaceTabReorder: this.allowWorkspaceTabReorder,\n allowWorkspaceTabExtract: this.allowWorkspaceTabExtract,\n showAddWindowButtons: this.showAddWindowButtons,\n showEjectButtons: this.showEjectButtons,\n showWindowCloseButtons: this.showWindowCloseButtons\n };\n\n lockConfigResult = config(currentLockConfig);\n } else {\n lockConfigResult = config;\n }\n\n const verifiedConfig = lockConfigResult === undefined ? undefined : workspaceLockConfigDecoder.runWithException(lockConfigResult);\n\n await getData(this).controller.lockWorkspace(this.id, verifiedConfig);\n await this.refreshReference();\n }\n\n public async pin(options: IOConnectWorkspaces.WorkspacePinOptions): Promise<void> {\n workspacePinOptionsDecoder.runWithException(options);\n await getData(this).controller.pinWorkspace(this.id, options?.icon);\n await this.refreshReference();\n }\n\n public async unpin(): Promise<void> {\n await getData(this).controller.unpinWorkspace(this.id);\n await this.refreshReference();\n }\n\n public async showLoadingAnimation(): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"Not supported in IO Connect Browser\");\n }\n\n await getData(this).controller.showWorkspaceLoadingAnimation(this.id);\n }\n\n public async hideLoadingAnimation(): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"Not supported in IO Connect Browser\");\n }\n\n await getData(this).controller.hideWorkspaceLoadingAnimation(this.id);\n }\n\n public async onClosed(callback: (closed: IOConnectWorkspaces.WorkspaceClosedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n // await this.refreshReference();\n callback({ frameId: payload.frameSummary.id, workspaceId: payload.workspaceSummary.id, frameBounds: payload.frameBounds });\n };\n const config: SubscriptionConfig = {\n action: \"closed\",\n eventType: \"workspace\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onHibernated(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n\n const wrappedCallback = async (): Promise<void> => {\n await this.refreshReference();\n callback();\n };\n const config: SubscriptionConfig = {\n action: \"hibernated\",\n eventType: \"workspace\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onResumed(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n\n const wrappedCallback = async (): Promise<void> => {\n await this.refreshReference();\n callback();\n };\n const config: SubscriptionConfig = {\n action: \"resumed\",\n eventType: \"workspace\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowAdded(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const windowParent = this.getBox((parent) => parent.id === payload.windowSummary.parentId);\n\n const foundWindow = windowParent.children.find((child) => {\n\n return child.type === \"window\" && child.elementId === payload.windowSummary.itemId;\n });\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n action: \"added\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowRemoved(callback: (removed: { windowId?: string; workspaceId: string; frameId: string }) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const { windowId, workspaceId, frameId } = payload.windowSummary.config;\n callback({ windowId, workspaceId, frameId });\n };\n\n const config: SubscriptionConfig = {\n action: \"removed\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowLoaded(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const foundWindow = this.getWindow((win) => {\n return win.id && win.id === payload.windowSummary.config.windowId;\n });\n callback(foundWindow);\n };\n\n const config: SubscriptionConfig = {\n action: \"loaded\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowMaximized(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const windowParent = this.getBox((parent) => parent.id === payload.windowSummary.parentId);\n\n const foundWindow = windowParent.children.find((child) => {\n\n return child.type === \"window\" && child.elementId === payload.windowSummary.itemId;\n });\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n action: \"maximized\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowRestored(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const windowParent = this.getBox((parent) => parent.id === payload.windowSummary.parentId);\n\n const foundWindow = windowParent.children.find((child) => {\n\n return child.type === \"window\" && child.elementId === payload.windowSummary.itemId;\n });\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n action: \"restored\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowSelected(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const windowParent = this.getBox((parent) => parent.id === payload.windowSummary.parentId);\n\n const foundWindow = windowParent.children.find((child) => {\n\n return child.type === \"window\" && child.elementId === payload.windowSummary.itemId;\n });\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n action: \"selected\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onLockConfigurationChanged(callback: (config: WorkspaceLockConfig) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (): Promise<void> => {\n await this.refreshReference();\n callback({\n allowDrop: this.allowDrop,\n allowDropLeft: this.allowDropLeft,\n allowDropTop: this.allowDropTop,\n allowDropRight: this.allowDropRight,\n allowDropBottom: this.allowDropBottom,\n allowSystemHibernation: this.allowSystemHibernation,\n allowExtract: this.allowExtract,\n allowSplitters: this.allowSplitters,\n allowWindowReorder: this.allowWindowReorder,\n allowWorkspaceTabExtract: this.allowWorkspaceTabExtract,\n allowWorkspaceTabReorder: this.allowWorkspaceTabReorder,\n showAddWindowButtons: this.showAddWindowButtons,\n showCloseButton: this.showCloseButton,\n showEjectButtons: this.showEjectButtons,\n showSaveButton: this.showSaveButton,\n showWindowCloseButtons: this.showWindowCloseButtons\n });\n };\n\n const config: SubscriptionConfig = {\n action: \"lock-configuration-changed\",\n eventType: \"workspace\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n}\n","import { checkThrowCallback, nonEmptyStringDecoder, windowLockConfigDecoder, elementResizeConfigDecoder } from \"../shared//decoders\";\nimport { SubscriptionConfig } from \"../types/subscription\";\nimport { PrivateDataManager } from \"../shared/privateDataManager\";\nimport { WindowPrivateData } from \"../types/privateData\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { GDWindow } from \"../types/glue\";\nimport { Row } from \"./row\";\nimport { Column } from \"./column\";\nimport { Group } from \"./group\";\n\ninterface PrivateData {\n manager: PrivateDataManager;\n}\n\nconst data = new WeakMap<Window, PrivateData>();\n\nconst getData = (model: Window): WindowPrivateData => {\n return data.get(model).manager.getWindowData(model);\n};\n\nexport class Window implements IOConnectWorkspaces.WorkspaceWindow {\n\n constructor(dataManager: PrivateDataManager) {\n data.set(this, { manager: dataManager });\n }\n\n public get id(): string {\n return getData(this).config.windowId;\n }\n\n public get elementId(): string {\n return getData(this).id;\n }\n\n public get type(): \"window\" {\n return \"window\";\n }\n\n public get frameId(): string {\n return getData(this).frame.id;\n }\n\n public get workspaceId(): string {\n return getData(this).workspace.id;\n }\n\n public get positionIndex(): number {\n return getData(this).config.positionIndex;\n }\n\n public get isMaximized(): boolean {\n return getData(this).config.isMaximized;\n }\n\n public get isLoaded(): boolean {\n return getData(this).controller.checkIsWindowLoaded(this.id);\n }\n\n public get isSelected(): boolean {\n return getData(this).config.isSelected;\n }\n\n public get focused(): boolean {\n return this.getGdWindow().isFocused;\n }\n\n public get title(): string {\n return getData(this).config.title;\n }\n\n public get allowExtract(): boolean {\n return getData(this).config.allowExtract;\n }\n\n public get allowReorder(): boolean {\n return getData(this).config.allowReorder;\n }\n\n public get showCloseButton(): boolean {\n return getData(this).config.showCloseButton;\n }\n\n public get width(): number {\n return getData(this).config.widthInPx;\n }\n\n public get height(): number {\n return getData(this).config.heightInPx;\n }\n\n public get minWidth(): number {\n return getData(this).config.minWidth;\n }\n\n public get minHeight(): number {\n return getData(this).config.minHeight;\n }\n\n public get maxWidth(): number {\n return getData(this).config.maxWidth;\n }\n\n public get maxHeight(): number {\n return getData(this).config.maxHeight;\n }\n\n public get workspace(): IOConnectWorkspaces.Workspace {\n return getData(this).workspace;\n }\n\n public get frame(): IOConnectWorkspaces.Frame {\n return getData(this).frame;\n }\n\n public get parent(): IOConnectWorkspaces.Workspace | IOConnectWorkspaces.Row | IOConnectWorkspaces.Column | IOConnectWorkspaces.Group {\n return getData(this).parent;\n }\n\n public get appName(): string {\n return getData(this).config.appName;\n }\n\n public async forceLoad(): Promise<void> {\n if (this.isLoaded) {\n return;\n }\n const controller = getData(this).controller;\n const itemId = getData(this).id;\n\n const windowId = await controller.forceLoadWindow(itemId);\n\n getData(this).config.windowId = windowId;\n\n await this.workspace.refreshReference();\n }\n\n public async focus(): Promise<void> {\n const id = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.focusItem(id);\n\n await this.workspace.refreshReference();\n }\n\n public async close(): Promise<void> {\n const id = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.closeItem(id);\n\n await getData(this)\n .parent\n .removeChild((child) => child.id === id);\n\n await this.workspace.refreshReference();\n }\n\n public async setTitle(title: string): Promise<void> {\n nonEmptyStringDecoder.runWithException(title);\n\n const itemId = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.setItemTitle(itemId, title);\n\n await this.workspace.refreshReference();\n }\n\n public async maximize(): Promise<void> {\n const id = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.maximizeItem(id);\n\n await this.workspace.refreshReference();\n }\n\n public async restore(): Promise<void> {\n const id = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.restoreItem(id);\n\n await this.workspace.refreshReference();\n }\n\n public async eject(): Promise<GDWindow> {\n if (!this.isLoaded) {\n throw new Error(\"Cannot eject this window, because it is not loaded yet\");\n }\n const itemId: string = getData(this).id;\n\n const newWindowId: string = await getData(this).controller.ejectWindow(itemId);\n\n getData(this).config.windowId = newWindowId;\n\n await this.workspace.refreshReference();\n\n return this.getGdWindow();\n }\n\n public getGdWindow(): GDWindow {\n if (!this.isLoaded) {\n throw new Error(\"Cannot fetch this GD window, because the window is not yet loaded\");\n }\n\n const myId = getData(this).config.windowId;\n const controller = getData(this).controller;\n\n return controller.getGDWindow(myId);\n }\n\n public async moveTo(parent: IOConnectWorkspaces.Row | IOConnectWorkspaces.Column | IOConnectWorkspaces.Group): Promise<void> {\n if (!(parent instanceof Row || parent instanceof Column || parent instanceof Group)) {\n throw new Error(\"Cannot add to the provided parent, because the provided parent is not an instance of Row, Column or Group\");\n }\n\n const myId = getData(this).id;\n const controller = getData(this).controller;\n\n const foundParent = await controller.getParent((p) => p.id === parent.id);\n\n if (!foundParent) {\n throw new Error(\"Cannot move the window to the selected parent, because this parent does not exist.\");\n }\n\n await controller.moveWindowTo(myId, parent.id);\n\n await this.workspace.refreshReference();\n }\n\n public async lock(config?: IOConnectWorkspaces.WorkspaceWindowLockConfig | ((config: IOConnectWorkspaces.WorkspaceWindowLockConfig) => IOConnectWorkspaces.WorkspaceWindowLockConfig)): Promise<void> {\n let lockConfigResult = undefined;\n\n if (typeof config === \"function\") {\n const currentLockConfig = {\n allowExtract: this.allowExtract,\n allowReorder: this.allowReorder,\n showCloseButton: this.showCloseButton\n };\n lockConfigResult = config(currentLockConfig);\n } else {\n lockConfigResult = config;\n }\n\n const verifiedConfig = lockConfigResult === undefined ? undefined : windowLockConfigDecoder.runWithException(lockConfigResult);\n const windowPlacementId = getData(this).id;\n await getData(this).controller.lockWindow(windowPlacementId, verifiedConfig);\n await this.workspace.refreshReference();\n }\n\n public async setSize(config: IOConnectWorkspaces.ElementResizeConfig): Promise<void> {\n const verifiedConfig = elementResizeConfigDecoder.runWithException(config);\n\n if (!verifiedConfig.width && !verifiedConfig.height) {\n throw new Error(\"Expected either width or height to be passed.\");\n }\n\n const myId = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.resizeItem(myId, {\n height: verifiedConfig.height,\n width: verifiedConfig.width,\n relative: false\n });\n\n await this.workspace.refreshReference();\n }\n\n public async onRemoved(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (): Promise<void> => {\n await this.workspace.refreshReference();\n callback();\n };\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"removed\",\n eventType: \"window\",\n scope: \"window\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onLockConfigurationChanged(callback:(config:IOConnectWorkspaces.WorkspaceWindowLockConfig)=>void): Promise<IOConnectWorkspaces.Unsubscribe>{\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (): Promise<void> => {\n await this.workspace.refreshReference();\n callback({\n allowExtract: this.allowExtract,\n allowReorder: this.allowReorder,\n showCloseButton: this.showCloseButton\n });\n };\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"lock-configuration-changed\",\n eventType: \"window\",\n scope: \"window\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n}\n","import { checkThrowCallback, nonEmptyStringDecoder, restoreWorkspaceConfigDecoder, workspaceDefinitionDecoder, workspaceBuilderCreateConfigDecoder, resizeConfigDecoder, moveConfigDecoder, frameInitConfigDecoder } from \"../shared/decoders\";\nimport { SubscriptionConfig } from \"../types/subscription\";\nimport { PrivateDataManager } from \"../shared/privateDataManager\";\nimport { FrameStreamData, WorkspaceStreamData, WindowStreamData } from \"../types/protocol\";\nimport { IOConnectWorkspaces } from \"../../workspaces.d\";\nimport { FramePrivateData } from \"../types/privateData\";\nimport { UnsubscribeFunction } from \"callback-registry\";\n\ninterface PrivateData {\n manager: PrivateDataManager;\n}\n\nconst data = new WeakMap<Frame, PrivateData>();\n\nconst getData = (model: Frame): FramePrivateData => {\n return data.get(model).manager.getFrameData(model);\n};\n\nexport class Frame implements IOConnectWorkspaces.Frame {\n\n constructor(dataManager: PrivateDataManager) {\n data.set(this, { manager: dataManager });\n }\n\n public async registerShortcut(shortcut: string, callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n nonEmptyStringDecoder.runWithException(shortcut);\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n const unsubscribe = await getData(this).controller.registerShortcut(shortcut, myId, callback);\n return unsubscribe;\n }\n\n public get id(): string {\n return getData(this).summary.id;\n }\n\n public get isInitialized(): boolean {\n return getData(this).summary.isInitialized;\n }\n\n public getBounds(): Promise<IOConnectWorkspaces.FrameBounds> {\n const myId = getData(this).summary.id;\n\n return getData(this).controller.getFrameBounds(myId);\n }\n\n public async resize(config: IOConnectWorkspaces.ResizeConfig): Promise<void> {\n const validatedConfig = resizeConfigDecoder.runWithException(config);\n const myId = getData(this).summary.id;\n\n return getData(this).controller.resizeItem(myId, validatedConfig);\n }\n\n public async move(config: IOConnectWorkspaces.MoveConfig): Promise<void> {\n const validatedConfig = moveConfigDecoder.runWithException(config);\n\n const myId = getData(this).summary.id;\n return getData(this).controller.moveFrame(myId, validatedConfig);\n }\n\n public focus(): Promise<void> {\n const myId = getData(this).summary.id;\n return getData(this).controller.focusItem(myId);\n }\n\n public async state(): Promise<IOConnectWorkspaces.FrameState> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"State operations are not supported in IO Connect Browser\");\n }\n const myId = getData(this).summary.id;\n return getData(this).controller.getFrameState(myId);\n }\n\n public async minimize(): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"State operations are not supported in IO Connect Browser\");\n }\n const myId = getData(this).summary.id;\n return getData(this).controller.changeFrameState(myId, \"minimized\");\n }\n\n public async maximize(): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"State operations are not supported in IO Connect Browser\");\n }\n const myId = getData(this).summary.id;\n return getData(this).controller.changeFrameState(myId, \"maximized\");\n }\n\n public async restore(): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"State operations are not supported in IO Connect Browser\");\n }\n const myId = getData(this).summary.id;\n return getData(this).controller.changeFrameState(myId, \"normal\");\n }\n\n public close(): Promise<void> {\n const myId = getData(this).summary.id;\n return getData(this).controller.closeItem(myId);\n }\n\n public snapshot(): Promise<IOConnectWorkspaces.FrameSnapshot> {\n const myId = getData(this).summary.id;\n return getData(this).controller.getSnapshot(myId, \"frame\") as Promise<IOConnectWorkspaces.FrameSnapshot>;\n }\n\n public async workspaces(): Promise<IOConnectWorkspaces.Workspace[]> {\n const controller = getData(this).controller;\n return controller.getWorkspacesByFrameId(this.id);\n }\n\n public async getConstraints(): Promise<IOConnectWorkspaces.FrameConstraints> {\n const controller = getData(this).controller;\n const myId = getData(this).summary.id;\n\n return controller.getFrameConstraints(myId);\n }\n\n public async restoreWorkspace(name: string, options?: IOConnectWorkspaces.RestoreWorkspaceConfig): Promise<IOConnectWorkspaces.Workspace> {\n nonEmptyStringDecoder.runWithException(name);\n const validatedOptions = restoreWorkspaceConfigDecoder.runWithException(options);\n\n return getData(this).controller.restoreWorkspace(name, validatedOptions);\n }\n\n public createWorkspace(definition: IOConnectWorkspaces.WorkspaceDefinition, config?: IOConnectWorkspaces.WorkspaceCreateConfig): Promise<IOConnectWorkspaces.Workspace> {\n const validatedDefinition = workspaceDefinitionDecoder.runWithException(definition);\n const validatedConfig = workspaceBuilderCreateConfigDecoder.runWithException(config);\n\n return getData(this).controller.createWorkspace(validatedDefinition, validatedConfig);\n }\n\n public async init(config: IOConnectWorkspaces.FrameInitializationConfig): Promise<void> {\n frameInitConfigDecoder.runWithException(config);\n\n if (getData(this).summary.isInitialized) {\n throw new Error(\"The frame has already been initialized\");\n }\n return getData(this).controller.initFrame(this.id, config);\n }\n\n public async onClosed(callback: (closed: IOConnectWorkspaces.FrameClosedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (payload: FrameStreamData): void => {\n callback({ frameId: payload.frameSummary.id, frameBounds: payload.frameBounds });\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"closed\",\n eventType: \"frame\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onMaximized(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (): void => {\n callback();\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"maximized\",\n eventType: \"frame\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onMinimized(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (): void => {\n callback();\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"minimized\",\n eventType: \"frame\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onNormal(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (): void => {\n callback();\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"normal\",\n eventType: \"frame\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWorkspaceOpened(callback: (workspace: IOConnectWorkspaces.Workspace) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n const workspace = await getData(this).controller.transformStreamPayloadToWorkspace(payload);\n callback(workspace);\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"opened\",\n eventType: \"workspace\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWorkspaceSelected(callback: (workspace: IOConnectWorkspaces.Workspace) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n const workspace = await getData(this).controller.getWorkspaceById(payload.workspaceSummary.id);\n callback(workspace);\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"selected\",\n eventType: \"workspace\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWorkspaceClosed(callback: (closed: IOConnectWorkspaces.WorkspaceClosedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (payload: WorkspaceStreamData): void => {\n callback({ frameId: payload.frameSummary.id, workspaceId: payload.workspaceSummary.id, frameBounds: payload.frameBounds });\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"closed\",\n eventType: \"workspace\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWindowAdded(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const foundParent = await getData(this).controller.getParent((parent) => parent.id === payload.windowSummary.parentId);\n const foundWindow = foundParent.children.find((child) => child.type === \"window\" && child.positionIndex === payload.windowSummary.config.positionIndex);\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"added\",\n eventType: \"window\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWindowRemoved(callback: (removed: { windowId?: string; workspaceId: string; frameId: string }) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (payload: WindowStreamData): void => {\n const { windowId, workspaceId, frameId } = payload.windowSummary.config;\n callback({ windowId, workspaceId, frameId });\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"removed\",\n eventType: \"window\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWindowLoaded(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const foundParent = await getData(this).controller.getParent((parent) => {\n return parent.id === payload.windowSummary.parentId;\n });\n const foundWindow = foundParent.children.find((child) => child.type === \"window\" && child.positionIndex === payload.windowSummary.config.positionIndex);\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"loaded\",\n eventType: \"window\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onInitializationRequested(callback: (context?: IOConnectWorkspaces.FrameInitializationContext) => void): Promise<UnsubscribeFunction> {\n checkThrowCallback(callback);\n\n if (!this.isInitialized) {\n callback(getData(this).summary.initializationContext);\n }\n\n return () => {};\n }\n\n public async onFocusChanged(callback: (data: IOConnectWorkspaces.FrameFocusChangedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myData = getData(this);\n const { id } = myData.summary;\n\n const wrappedCallback = (args: FrameStreamData): void => {\n callback({ isFocused: args.frameSummary.isFocused });\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"focus\",\n eventType: \"frame\",\n scope: \"frame\"\n };\n const unsubscribe = await myData.controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n}\n","import { Row } from \"../models/row\";\nimport { Column } from \"../models/column\";\nimport { Group } from \"../models/group\";\nimport { ParentPrivateData, WorkspacePrivateData, WindowPrivateData, FramePrivateData, RemapChildData, RemapWorkspaceData } from \"../types/privateData\";\nimport { Workspace } from \"../models/workspace\";\nimport { Window } from \"../models/window\";\nimport { Frame } from \"../models/frame\";\nimport { SwimlaneWindowSnapshotConfig, ParentSnapshotConfig, FrameSummaryResult } from \"../types/protocol\";\nimport { Child, SubParentTypes } from \"../types/builders\";\n\nexport class PrivateDataManager {\n private readonly parentsData = new WeakMap<SubParentTypes, ParentPrivateData>();\n private readonly workspacesData = new WeakMap<Workspace, WorkspacePrivateData>();\n private readonly windowsData = new WeakMap<Window, WindowPrivateData>();\n private readonly framesData = new WeakMap<Frame, FramePrivateData>();\n\n public deleteData<T>(model: T): void {\n if (model instanceof Window) {\n this.windowsData.delete(model);\n }\n\n if (model instanceof Workspace) {\n this.workspacesData.delete(model);\n }\n\n if (model instanceof Row || model instanceof Column || model instanceof Group) {\n this.parentsData.delete(model);\n }\n\n if (model instanceof Frame) {\n this.framesData.delete(model);\n }\n }\n\n public setWindowData(model: Window, data: WindowPrivateData): void {\n this.windowsData.set(model, data);\n }\n\n public setWorkspaceData(model: Workspace, data: WorkspacePrivateData): void {\n this.workspacesData.set(model, data);\n }\n\n public setParentData(model: SubParentTypes, data: ParentPrivateData): void {\n this.parentsData.set(model, data);\n }\n\n public setFrameData(model: Frame, data: FramePrivateData): void {\n this.framesData.set(model, data);\n }\n\n public getWindowData(model: Window): WindowPrivateData {\n return this.windowsData.get(model);\n }\n\n public getWorkspaceData(model: Workspace): WorkspacePrivateData {\n return this.workspacesData.get(model);\n }\n\n public getParentData(model: SubParentTypes): ParentPrivateData {\n return this.parentsData.get(model);\n }\n\n public getFrameData(model: Frame): FramePrivateData {\n return this.framesData.get(model);\n }\n\n public remapChild(model: Child, newData: RemapChildData): void {\n if (model instanceof Window) {\n const data = this.windowsData.get(model);\n data.parent = newData.parent || data.parent;\n data.config = newData.config as SwimlaneWindowSnapshotConfig || data.config;\n }\n\n if (model instanceof Row || model instanceof Column || model instanceof Group) {\n const data = this.parentsData.get(model);\n data.parent = newData.parent || data.parent;\n data.config = newData.config as ParentSnapshotConfig || data.config;\n data.children = newData.children || data.children;\n }\n }\n\n public remapFrame(model: Frame, newData: FrameSummaryResult): void {\n const data = this.framesData.get(model);\n data.summary = newData;\n }\n\n public remapWorkspace(model: Workspace, newData: RemapWorkspaceData): void {\n const data = this.workspacesData.get(model);\n data.frame = newData.frame || data.frame;\n data.config = newData.config || data.config;\n data.children = newData.children || data.children;\n }\n}\n","import { Workspace } from \"../workspace\";\nimport { ParentBuilder } from \"../../builders/parentBuilder\";\nimport { strictParentDefinitionDecoder, swimlaneWindowDefinitionDecoder, checkThrowCallback } from \"../../shared/decoders\";\nimport { SubParent, AllParentTypes, Child, SubParentTypes, AllParent, ContainerLockConfig } from \"../../types/builders\";\nimport { PrivateDataManager } from \"../../shared/privateDataManager\";\nimport { ParentPrivateData, WorkspacePrivateData } from \"../../types/privateData\";\nimport { Window } from \"../../models/window\";\nimport { IOConnectWorkspaces } from \"../../../workspaces\";\nimport { Group } from \"../group\";\nimport { Row } from \"../row\";\nimport { Column } from \"../column\";\nimport { ColumnSnapshotConfig, GroupSnapshotConfig, RowSnapshotConfig } from \"../../types/protocol\";\nimport { SubscriptionConfig } from \"../../types/subscription\";\n\ninterface PrivateData {\n manager: PrivateDataManager;\n}\n\nconst data = new WeakMap<Base, PrivateData>();\n\nconst getData = (base: Base, model: AllParentTypes): WorkspacePrivateData | ParentPrivateData => {\n const manager = data.get(base).manager;\n\n if (model instanceof Workspace) {\n return manager.getWorkspaceData(model);\n }\n\n return data.get(base).manager.getParentData(model as SubParentTypes);\n};\n\nexport class Base {\n public frameId: string;\n public workspaceId: string;\n public positionIndex: number;\n\n constructor(dataManager: PrivateDataManager) {\n data.set(this, { manager: dataManager });\n }\n\n public getId(model: AllParentTypes): string {\n return getData(this, model).id;\n }\n\n public getPositionIndex(model: AllParentTypes): number {\n return getData(this, model).config.positionIndex;\n }\n\n public getWorkspaceId(model: AllParentTypes): string {\n const privateData = getData(this, model) as ParentPrivateData;\n return privateData.config.workspaceId || privateData.workspace.id;\n }\n\n public getFrameId(model: AllParentTypes): string {\n return getData(this, model).frame.id;\n }\n\n public getAllChildren(model: AllParentTypes, predicate?: (child: Child) => boolean): Child[] {\n checkThrowCallback(predicate, true);\n const children = getData(this, model).children;\n\n if (typeof predicate === \"undefined\") {\n return children;\n }\n\n return children.filter(predicate);\n }\n\n public getMyParent(model: AllParentTypes): AllParentTypes {\n if (model instanceof Workspace) {\n return model;\n }\n return (getData(this, model) as ParentPrivateData).parent;\n }\n\n public getMyFrame(model: AllParentTypes): IOConnectWorkspaces.Frame {\n return getData(this, model).frame;\n }\n\n public getMyWorkspace(model: AllParentTypes): Workspace {\n if (model instanceof Workspace) {\n return model;\n }\n return (getData(this, model) as ParentPrivateData).workspace;\n }\n\n public async addWindow(model: AllParentTypes, definition: IOConnectWorkspaces.WorkspaceWindowDefinition, parentType: AllParent): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n if (!definition.appName && !definition.windowId) {\n throw new Error(\"The window definition should contain either an appName or a windowId\");\n }\n\n const validatedDefinition = swimlaneWindowDefinitionDecoder.runWithException(definition);\n const controller = getData(this, model).controller;\n\n const operationResult = await controller.add(\"window\", getData(this, model).id, parentType, validatedDefinition);\n\n if (model instanceof Workspace) {\n await model.refreshReference();\n return model.getWindow(w => w.elementId === operationResult.itemId);\n }\n\n const myWorkspace = this.getMyWorkspace(model);\n await myWorkspace.refreshReference();\n\n return myWorkspace.getWindow(w => w.elementId === operationResult.itemId);\n }\n\n public async addParent<T>(model: AllParentTypes, typeToAdd: SubParent, parentType: AllParent, definition?: IOConnectWorkspaces.BoxDefinition | ParentBuilder): Promise<T> {\n const parentDefinition = this.transformDefinition(typeToAdd, definition);\n const controller = getData(this, model).controller;\n\n const newParentId = (await controller.add(\"container\", getData(this, model).id, parentType, parentDefinition)).itemId;\n\n if (model instanceof Workspace) {\n await model.refreshReference();\n return model.getBox((parent) => parent.id === newParentId) as unknown as T;\n }\n\n const myWorkspace = this.getMyWorkspace(model);\n await myWorkspace.refreshReference();\n\n return myWorkspace.getBox((parent) => parent.id === newParentId) as unknown as T;\n }\n\n public async removeChild(model: AllParentTypes, predicate: (child: Child) => boolean): Promise<void> {\n checkThrowCallback(predicate);\n const child = this.getAllChildren(model).find(predicate);\n if (!child) {\n return;\n }\n\n await child.close();\n\n if (model instanceof Workspace) {\n\n await model.refreshReference();\n return;\n }\n\n await this.getMyWorkspace(model).refreshReference();\n }\n\n public async maximize(model: SubParentTypes): Promise<void> {\n const { controller, id } = getData(this, model);\n\n await controller.maximizeItem(id);\n\n await this.getMyWorkspace(model.parent).refreshReference();\n }\n\n public async restore(model: SubParentTypes): Promise<void> {\n const { controller, id } = getData(this, model);\n\n await controller.restoreItem(id);\n\n await this.getMyWorkspace(model.parent).refreshReference();\n }\n\n public async close(model: SubParentTypes): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n\n const controller = getData(this, model).controller;\n\n await controller.closeItem(modelData.id);\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public async lockContainer(model: SubParentTypes, config?: ContainerLockConfig): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n\n const controller = getData(this, model).controller;\n\n await controller.lockContainer(modelData.id, model.type, config);\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public getAllowDrop(model: SubParentTypes): boolean {\n return getData(this, model).config.allowDrop;\n }\n\n public getAllowDropLeft(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Property allowDropLeft is available only for groups and not on ${model.type} ${model.id}`);\n }\n return privateData.config.allowDropLeft;\n }\n\n public getAllowDropRight(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Property allowDropRight is available only for groups and not on ${model.type} ${model.id}`);\n }\n return privateData.config.allowDropRight;\n }\n\n public getAllowDropTop(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Property allowDropTop is available only for groups and not on ${model.type} ${model.id}`);\n }\n return privateData.config.allowDropTop;\n }\n\n public getAllowDropBottom(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Property allowDropBottom is available only for groups and not on ${model.type} ${model.id}`);\n }\n return privateData.config.allowDropBottom;\n }\n\n public getAllowDropHeader(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Property allowDropHeader is available only for groups and not on ${model.type} ${model.id}`);\n }\n return privateData.config.allowDropHeader;\n }\n\n public getAllowSplitters(model: Row | Column): boolean {\n const privateData = getData(this, model);\n\n if (privateData.type === \"group\") {\n throw new Error(`Cannot get allow splitters from private data ${privateData.type}`);\n }\n\n return privateData.config.allowSplitters;\n }\n\n public getAllowExtract(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Cannot get allow extract from private data ${privateData.type} with config ${privateData.type !== \"workspace\" ? privateData.config.type : \"\"}`);\n }\n return privateData.config.allowExtract;\n }\n\n public getAllowReorder(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Cannot get allow extract from private data ${privateData.type} with config ${privateData.type !== \"workspace\" ? privateData.config.type : \"\"}`);\n }\n return privateData.config.allowReorder;\n }\n\n public getShowMaximizeButton(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Cannot get show maximize button from private data${privateData.type} with config ${privateData.type !== \"workspace\" ? privateData.config.type : \"\"}`);\n }\n return privateData.config.showMaximizeButton;\n }\n\n public getShowEjectButton(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Cannot get show eject button from private data${privateData.type} with config ${privateData.type !== \"workspace\" ? privateData.config.type : \"\"}`);\n }\n return privateData.config.showEjectButton;\n }\n\n public getShowAddWindowButton(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Cannot get add window button from private data${privateData.type} with config ${privateData.type !== \"workspace\" ? privateData.config.type : \"\"}`);\n }\n return privateData.config.showAddWindowButton;\n }\n\n public getMinWidth(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.minWidth;\n }\n\n public getMaxWidth(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.maxWidth;\n }\n\n public getMinHeight(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.minHeight;\n }\n\n public getMaxHeight(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.maxHeight;\n }\n\n public getWidthInPx(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.widthInPx;\n }\n\n public getHeightInPx(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.heightInPx;\n }\n\n public getIsPinned(model: Column | Row): boolean {\n const privateData = getData(this, model);\n\n return (privateData.config as RowSnapshotConfig | ColumnSnapshotConfig).isPinned;\n }\n\n public getIsMaximized(model: Column | Row | Group): boolean {\n const privateData = getData(this, model);\n\n return (privateData.config as RowSnapshotConfig | ColumnSnapshotConfig | GroupSnapshotConfig).isMaximized;\n }\n\n public getMaximizationBoundary(model: Column | Row): boolean {\n const privateData = getData(this, model);\n\n return (privateData.config as RowSnapshotConfig | ColumnSnapshotConfig).maximizationBoundary;\n }\n\n public async setHeight(model: Row, height: number): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n const { controller, id } = modelData;\n\n await controller.resizeItem(id, {\n height\n });\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public async setWidth(model: Column, width: number): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n const { controller, id } = modelData;\n\n await controller.resizeItem(id, {\n width\n });\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public async setSize(model: Group, width?: number, height?: number): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n const { controller, id } = modelData;\n\n await controller.resizeItem(id, {\n width,\n height\n });\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public async setMaximizationBoundary(model: Row | Column, config: IOConnectWorkspaces.SetMaximizationBoundaryConfig): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n const { controller, id } = modelData;\n\n await controller.setMaximizationBoundary(id, config);\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public async bundleTo(model: Group, type: \"row\" | \"column\") {\n const modelData = getData(this, model) as ParentPrivateData;\n const { controller, id } = modelData;\n\n await controller.bundleItemTo(type, id);\n }\n\n public async processLocalSubscription(model: SubParentTypes, subscriptionConfig: SubscriptionConfig): Promise<IOConnectWorkspaces.Unsubscribe> {\n return getData(this, model).controller.processLocalSubscription(subscriptionConfig, this.getId(model))\n }\n\n private transformDefinition(type: \"group\" | \"row\" | \"column\", definition?: IOConnectWorkspaces.BoxDefinition | ParentBuilder): IOConnectWorkspaces.BoxDefinition {\n let parentDefinition: IOConnectWorkspaces.BoxDefinition;\n\n if (typeof definition === \"undefined\") {\n parentDefinition = { type, children: [] };\n } else if (definition instanceof ParentBuilder) {\n parentDefinition = definition.serialize();\n } else {\n if (typeof definition.type === \"undefined\") {\n definition.type = type;\n }\n parentDefinition = strictParentDefinitionDecoder.runWithException(definition);\n parentDefinition.children = parentDefinition.children || [];\n }\n\n return parentDefinition;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Workspace } from \"../models/workspace\";\r\nimport { WorkspaceSnapshotResult, WorkspaceCreateConfigProtocol, FrameSummaryResult, AddItemResult, WorkspaceSummariesResult, WorkspaceSummaryResult, SimpleWindowOperationSuccessResult, FrameSnapshotResult, WorkspaceStreamData, GetPlatformFrameIdResult, OperationCheckResult } from \"../types/protocol\";\r\nimport { OPERATIONS } from \"../communication/constants\";\r\nimport { FrameCreateConfig, WorkspaceIoCCreateConfig, WindowCreateConfig, ParentCreateConfig } from \"../types/ioc\";\r\nimport { IoC } from \"../shared/ioc\";\r\nimport { Bridge } from \"../communication/bridge\";\r\nimport { GDWindow, WindowsAPI, ContextsAPI, LayoutsAPI } from \"../types/glue\";\r\nimport { IOConnectWorkspaces } from \"../../workspaces\";\r\nimport { Frame } from \"../models/frame\";\r\nimport { RefreshChildrenConfig } from \"../types/privateData\";\r\nimport { AllParentTypes, Child, ContainerLockConfig, SubParentTypes } from \"../types/builders\";\r\nimport { PrivateDataManager } from \"../shared/privateDataManager\";\r\nimport { Window } from \"../models/window\";\r\nimport { UnsubscribeFunction } from \"callback-registry\";\r\n\r\nexport class BaseController {\r\n\r\n constructor(\r\n private readonly ioc: IoC,\r\n private readonly windows: WindowsAPI,\r\n private readonly contexts: ContextsAPI,\r\n private readonly layouts: LayoutsAPI,\r\n ) { }\r\n\r\n private get bridge(): Bridge {\r\n return this.ioc.bridge;\r\n }\r\n\r\n private get privateDataManager(): PrivateDataManager {\r\n return this.ioc.privateDataManager;\r\n }\r\n\r\n public checkIsWindowLoaded(windowId: string): boolean {\r\n return (!!windowId) && this.windows.list().some((win) => win.id === windowId);\r\n }\r\n\r\n public async createWorkspace(createConfig: WorkspaceCreateConfigProtocol): Promise<Workspace> {\r\n const snapshot = await this.bridge.send<WorkspaceSnapshotResult>(OPERATIONS.createWorkspace.name, createConfig);\r\n\r\n const frameConfig: FrameCreateConfig = {\r\n summary: snapshot.frameSummary\r\n };\r\n const frame = this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\r\n\r\n return this.ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\r\n }\r\n\r\n public async createEmptyFrame(definition: IOConnectWorkspaces.EmptyFrameDefinition): Promise<Frame> {\r\n const frameSummary = await this.bridge.send<FrameSummaryResult>(OPERATIONS.createFrame.name, definition);\r\n const frameConfig: FrameCreateConfig = {\r\n summary: frameSummary\r\n };\r\n\r\n return this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n }\r\n\r\n public async initFrame(frameId: string, config: IOConnectWorkspaces.FrameInitializationConfig): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.initFrame.name, { frameId, ...config });\r\n }\r\n\r\n public async restoreWorkspace(name: string, options: IOConnectWorkspaces.RestoreWorkspaceConfig): Promise<Workspace> {\r\n const snapshot = await this.bridge.send<WorkspaceSnapshotResult>(OPERATIONS.openWorkspace.name, { name, restoreOptions: options });\r\n\r\n const frameSummary = await this.bridge.send<FrameSummaryResult>(OPERATIONS.getFrameSummary.name, { itemId: snapshot.config.frameId });\r\n\r\n const frameConfig: FrameCreateConfig = {\r\n summary: frameSummary\r\n };\r\n const frame = this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\r\n\r\n return this.ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\r\n }\r\n\r\n public async add(type: \"container\" | \"window\", parentId: string, parentType: \"row\" | \"column\" | \"group\" | \"workspace\", definition: IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition): Promise<AddItemResult> {\r\n let operationName: string;\r\n const operationArgs = { definition, parentId, parentType };\r\n\r\n if (type === \"window\") {\r\n operationName = OPERATIONS.addWindow.name;\r\n } else if (type === \"container\") {\r\n operationName = OPERATIONS.addContainer.name;\r\n } else {\r\n throw new Error(`Unrecognized add type: ${type}`);\r\n }\r\n\r\n return await this.bridge.send<AddItemResult>(operationName, operationArgs);\r\n }\r\n\r\n public async getFrame(windowId: string): Promise<Frame> {\r\n const frameSummary = await this.bridge.send<FrameSummaryResult>(OPERATIONS.getFrameSummary.name, { itemId: windowId });\r\n\r\n const frameConfig: FrameCreateConfig = {\r\n summary: frameSummary\r\n };\r\n return this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n }\r\n\r\n public getFrames(allFrameSummaries: FrameSummaryResult[], predicate?: (frame: Frame) => boolean): Frame[] {\r\n\r\n return allFrameSummaries.reduce<Frame[]>((frames, frameSummary) => {\r\n\r\n const frameConfig: FrameCreateConfig = {\r\n summary: frameSummary\r\n };\r\n const frameToCheck = this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n if (!predicate || predicate(frameToCheck)) {\r\n frames.push(frameToCheck);\r\n }\r\n\r\n return frames;\r\n }, []);\r\n }\r\n\r\n public getAllWorkspaceSummaries(...bridgeResults: WorkspaceSummariesResult[]): IOConnectWorkspaces.WorkspaceSummary[] {\r\n\r\n const allSummaries = bridgeResults.reduce<WorkspaceSummaryResult[]>((summaries, summaryResult) => {\r\n summaries.push(...summaryResult.summaries);\r\n return summaries;\r\n }, []);\r\n\r\n return allSummaries.map<IOConnectWorkspaces.WorkspaceSummary>((summary) => {\r\n\r\n return Object.assign(\r\n {},\r\n { id: summary.id, width: summary.config.widthInPx, height: summary.config.heightInPx },\r\n summary.config\r\n );\r\n });\r\n }\r\n\r\n public handleOnSaved(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): UnsubscribeFunction {\r\n const wrappedCallback = (layout: IOConnectWorkspaces.WorkspaceLayout): void => {\r\n if (layout.type !== \"Workspace\") {\r\n return;\r\n }\r\n\r\n callback(layout);\r\n };\r\n\r\n const addedUnSub: UnsubscribeFunction = this.layouts.onAdded(wrappedCallback);\r\n const changedUnSub: UnsubscribeFunction = this.layouts.onChanged(wrappedCallback);\r\n\r\n return (): void => {\r\n addedUnSub();\r\n changedUnSub();\r\n };\r\n }\r\n\r\n public handleOnRemoved(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): UnsubscribeFunction {\r\n const wrappedCallback = (layout: IOConnectWorkspaces.WorkspaceLayout): void => {\r\n if (layout.type !== \"Workspace\") {\r\n return;\r\n }\r\n\r\n callback(layout);\r\n };\r\n\r\n return this.layouts.onRemoved(wrappedCallback);\r\n }\r\n\r\n public async importLayouts(layouts: IOConnectWorkspaces.WorkspaceLayout[], mode: \"replace\" | \"merge\"): Promise<void> {\r\n await this.layouts.import(layouts, mode);\r\n }\r\n\r\n public async transformStreamPayloadToWorkspace(payload: WorkspaceStreamData): Promise<Workspace> {\r\n const frameConfig: FrameCreateConfig = {\r\n summary: payload.frameSummary\r\n };\r\n const frame = this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n const snapshot = payload.workspaceSnapshot || (await this.bridge.send<WorkspaceSnapshotResult>(OPERATIONS.getWorkspaceSnapshot.name, { itemId: payload.workspaceSummary.id }));\r\n\r\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\r\n\r\n const workspace = this.ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\r\n\r\n return workspace;\r\n }\r\n\r\n public async fetchWorkspace(itemId: string): Promise<Workspace> {\r\n\r\n const snapshot = await this.bridge.send<WorkspaceSnapshotResult>(OPERATIONS.getWorkspaceSnapshot.name, { itemId });\r\n\r\n const frameConfig: FrameCreateConfig = {\r\n summary: snapshot.frameSummary\r\n };\r\n\r\n const frame = this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\r\n\r\n return this.ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\r\n\r\n }\r\n\r\n public async bundleWorkspaceTo(type: \"row\" | \"column\", workspaceId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.bundleWorkspace.name, { type, workspaceId });\r\n }\r\n\r\n public async bundleItemTo(type: \"row\" | \"column\", itemId: string): Promise<void> {\r\n const isSupported = await this.isOperationSupported(OPERATIONS.bundleItem.name);\r\n\r\n if (!isSupported) {\r\n throw new Error(`Operation ${OPERATIONS.bundleItem.name} is not supported. Ensure that you are running the latest version of all packages`);\r\n }\r\n\r\n await this.bridge.send(OPERATIONS.bundleItem.name, { type, itemId });\r\n }\r\n\r\n public getWorkspaceContext(workspaceId: string): Promise<any> {\r\n const contextName = `___workspace___${workspaceId}`;\r\n return this.contexts.get(contextName);\r\n }\r\n\r\n public setWorkspaceContext(workspaceId: string, data: any): Promise<void> {\r\n const contextName = `___workspace___${workspaceId}`;\r\n return this.contexts.set(contextName, data);\r\n }\r\n\r\n public updateWorkspaceContext(workspaceId: string, data: any): Promise<void> {\r\n const contextName = `___workspace___${workspaceId}`;\r\n return this.contexts.update(contextName, data);\r\n }\r\n\r\n public subscribeWorkspaceContextUpdated(workspaceId: string, callback: (data: any) => void): Promise<UnsubscribeFunction> {\r\n const contextName = `___workspace___${workspaceId}`;\r\n return this.contexts.subscribe(contextName, callback);\r\n }\r\n\r\n public async restoreItem(itemId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.restoreItem.name, { itemId });\r\n }\r\n\r\n public async maximizeItem(itemId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.maximizeItem.name, { itemId });\r\n }\r\n\r\n public async focusItem(itemId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.focusItem.name, { itemId });\r\n }\r\n\r\n public async closeItem(itemId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.closeItem.name, { itemId });\r\n }\r\n\r\n public async resizeItem(itemId: string, config: IOConnectWorkspaces.ResizeConfig): Promise<void> {\r\n await this.bridge.send(OPERATIONS.resizeItem.name, Object.assign({}, { itemId }, config));\r\n }\r\n\r\n public async setMaximizationBoundary(itemId: string, config: IOConnectWorkspaces.SetMaximizationBoundaryConfig): Promise<void> {\r\n await this.bridge.send(OPERATIONS.setMaximizationBoundary.name, Object.assign({}, { itemId }, config));\r\n }\r\n\r\n public async showWorkspaceLoadingAnimation(workspaceId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.showLoadingAnimation.name, { itemId: workspaceId, type: \"workspace\" });\r\n }\r\n\r\n public async hideWorkspaceLoadingAnimation(workspaceId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.hideLoadingAnimation.name, { itemId: workspaceId, type: \"workspace\" });\r\n }\r\n\r\n public async moveFrame(itemId: string, config: IOConnectWorkspaces.MoveConfig): Promise<void> {\r\n await this.bridge.send(OPERATIONS.moveFrame.name, Object.assign({}, { itemId }, config));\r\n }\r\n\r\n public getGDWindow(itemId: string): GDWindow {\r\n return this.windows.list().find((gdWindow) => gdWindow.id === itemId);\r\n }\r\n\r\n public async forceLoadWindow(itemId: string): Promise<string> {\r\n const controlResult = await this.bridge.send<SimpleWindowOperationSuccessResult>(OPERATIONS.forceLoadWindow.name, { itemId });\r\n\r\n return controlResult.windowId;\r\n }\r\n\r\n public async ejectWindow(itemId: string): Promise<SimpleWindowOperationSuccessResult> {\r\n return await this.bridge.send<SimpleWindowOperationSuccessResult>(OPERATIONS.ejectWindow.name, { itemId });\r\n }\r\n\r\n public async moveWindowTo(itemId: string, newParentId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.moveWindowTo.name, { itemId, containerId: newParentId });\r\n }\r\n\r\n public async getSnapshot(itemId: string, type: \"workspace\" | \"frame\"): Promise<WorkspaceSnapshotResult | FrameSnapshotResult> {\r\n let result: WorkspaceSnapshotResult | FrameSnapshotResult;\r\n\r\n if (type === \"workspace\") {\r\n result = await this.bridge.send<WorkspaceSnapshotResult>(OPERATIONS.getWorkspaceSnapshot.name, { itemId });\r\n } else if (type === \"frame\") {\r\n result = await this.bridge.send<FrameSnapshotResult>(OPERATIONS.getFrameSnapshot.name, { itemId });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public async setItemTitle(itemId: string, title: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.setItemTitle.name, { itemId, title });\r\n }\r\n\r\n public refreshChildren(config: RefreshChildrenConfig): Child[] {\r\n const { parent, children, existingChildren, workspace } = config;\r\n if (parent instanceof Window || (parent as IOConnectWorkspaces.WorkspaceWindow).type === \"window\") {\r\n return;\r\n }\r\n\r\n const newChildren = children.map((newChildSnapshot) => {\r\n let childToAdd = existingChildren.find((child) => {\r\n return child.type === \"window\" ? child.elementId === newChildSnapshot.id : child.id === newChildSnapshot.id;\r\n });\r\n\r\n if (childToAdd) {\r\n this.privateDataManager.remapChild(childToAdd, {\r\n parent: parent as AllParentTypes,\r\n children: [],\r\n config: newChildSnapshot.config\r\n });\r\n } else {\r\n let createConfig: WindowCreateConfig | ParentCreateConfig;\r\n if (newChildSnapshot.type === \"window\") {\r\n createConfig = {\r\n id: newChildSnapshot.id,\r\n parent: parent as AllParentTypes,\r\n frame: workspace.frame,\r\n workspace,\r\n config: newChildSnapshot.config,\r\n } as WindowCreateConfig;\r\n } else {\r\n createConfig = {\r\n id: newChildSnapshot.id,\r\n parent: parent as AllParentTypes,\r\n frame: workspace.frame,\r\n workspace,\r\n config: newChildSnapshot.config,\r\n children: []\r\n } as ParentCreateConfig;\r\n }\r\n\r\n childToAdd = this.ioc.getModel<\"child\">(newChildSnapshot.type, createConfig);\r\n }\r\n\r\n if (newChildSnapshot.type !== \"window\") {\r\n this.refreshChildren({\r\n workspace, existingChildren,\r\n children: newChildSnapshot.children,\r\n parent: childToAdd\r\n });\r\n }\r\n\r\n return childToAdd;\r\n });\r\n\r\n if (parent instanceof Workspace) {\r\n return newChildren;\r\n } else {\r\n this.privateDataManager.remapChild(parent as SubParentTypes, { children: newChildren });\r\n return newChildren;\r\n }\r\n }\r\n\r\n public iterateFindChild(children: Child[], predicate: (child: Child) => boolean): Child {\r\n let foundChild = children.find((child) => predicate(child));\r\n\r\n if (foundChild) {\r\n return foundChild;\r\n }\r\n\r\n children.some((child) => {\r\n if (child instanceof Window) {\r\n return false;\r\n }\r\n\r\n foundChild = this.iterateFindChild((child as SubParentTypes).children, predicate);\r\n\r\n if (foundChild) {\r\n return true;\r\n }\r\n });\r\n\r\n return foundChild;\r\n }\r\n\r\n public iterateFilterChildren(children: Child[], predicate: (child: Child) => boolean): Child[] {\r\n const foundChildren = children.filter((child) => predicate(child));\r\n\r\n const grandChildren = children.reduce<Child[]>((innerFound, child) => {\r\n if (child instanceof Window) {\r\n return innerFound;\r\n }\r\n\r\n innerFound.push(...this.iterateFilterChildren((child as SubParentTypes).children, predicate));\r\n\r\n return innerFound;\r\n }, []);\r\n\r\n foundChildren.push(...grandChildren);\r\n\r\n return foundChildren;\r\n }\r\n\r\n public notifyWindowAdded(windowId: string): Promise<void> {\r\n return new Promise((resolve) => {\r\n\r\n const alreadyPresent: boolean = this.windows.list().some((win) => win.id === windowId);\r\n\r\n if (alreadyPresent) {\r\n return resolve();\r\n }\r\n\r\n const unsubscribe: UnsubscribeFunction = this.windows.onWindowAdded((win) => {\r\n\r\n if (win.id !== windowId) {\r\n return;\r\n }\r\n\r\n if (unsubscribe) {\r\n unsubscribe();\r\n }\r\n\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n public async hibernateWorkspace(workspaceId: string): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.hibernateWorkspace.name, { workspaceId });\r\n }\r\n\r\n public async resumeWorkspace(workspaceId: string): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.resumeWorkspace.name, { workspaceId });\r\n }\r\n\r\n public async lockWorkspace(workspaceId: string, config?: IOConnectWorkspaces.WorkspaceLockConfig): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.lockWorkspace.name, { workspaceId, config });\r\n }\r\n\r\n public async lockWindow(windowPlacementId: string, config?: IOConnectWorkspaces.WorkspaceWindowLockConfig): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.lockWindow.name, { windowPlacementId, config });\r\n }\r\n\r\n public async lockContainer(itemId: string, type: SubParentTypes[\"type\"], config?: ContainerLockConfig): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.lockContainer.name, { itemId, type, config });\r\n }\r\n\r\n public async pinWorkspace(workspaceId: string, icon?: string): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.pinWorkspace.name, { workspaceId, icon });\r\n }\r\n\r\n public async unpinWorkspace(workspaceId: string): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.unpinWorkspace.name, { workspaceId });\r\n }\r\n\r\n public async getWorkspaceIcon(workspaceId: string): Promise<string> {\r\n const result = await this.bridge.send<{ icon: string }>(OPERATIONS.getWorkspaceIcon.name, { workspaceId });\r\n return result.icon;\r\n }\r\n\r\n public setWorkspaceIcon(workspaceId: string, icon: string): Promise<void> {\r\n return this.bridge.send<void>(OPERATIONS.setWorkspaceIcon.name, { workspaceId, icon });\r\n }\r\n\r\n public async getPlatformFrameId(): Promise<GetPlatformFrameIdResult> {\r\n try {\r\n const result = await this.bridge.send<GetPlatformFrameIdResult>(OPERATIONS.getPlatformFrameId.name, {});\r\n\r\n return result;\r\n } catch (error) {\r\n return {}\r\n }\r\n }\r\n\r\n public async isOperationSupported(operation: string): Promise<OperationCheckResult> {\r\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\r\n\r\n if (desktopGlobal) {\r\n // operation check is not supported in Glue42Desktop\r\n return { isSupported: true };\r\n }\r\n return await this.bridge.send<OperationCheckResult>(OPERATIONS.operationCheck.name, { operation });\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Bridge } from \"../communication/bridge\";\nimport { IsWindowInSwimlaneResult, WorkspaceCreateConfigProtocol, WorkspaceSnapshotResult, FrameSummariesResult, WorkspaceSummariesResult, LayoutSummariesResult, ExportedLayoutsResult, FrameSnapshotResult, AddItemResult, WindowStreamData, FrameStateResult, FrameBoundsResult, WorkspaceStreamData } from \"../types/protocol\";\nimport { OPERATIONS } from \"../communication/constants\";\nimport { SubscriptionConfig, WorkspaceEventType, WorkspaceEventAction } from \"../types/subscription\";\nimport { Workspace } from \"../models/workspace\";\nimport { Frame } from \"../models/frame\";\nimport { Child, ContainerLockConfig, SubParentTypes } from \"../types/builders\";\nimport { RefreshChildrenConfig } from \"../types/privateData\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { WorkspacesController } from \"../types/controller\";\nimport { GDWindow } from \"../types/glue\";\nimport { BaseController } from \"./base\";\nimport { UnsubscribeFunction } from \"callback-registry\";\nimport { ShortcutsController } from \"./shortcuts\";\n\nexport class MainController implements WorkspacesController {\n\n constructor(\n private readonly bridge: Bridge,\n private readonly base: BaseController,\n private readonly shortcutsController: ShortcutsController\n ) { }\n\n public checkIsWindowLoaded(windowId: string): boolean {\n return this.base.checkIsWindowLoaded(windowId);\n }\n\n public async checkIsInSwimlane(windowId: string): Promise<boolean> {\n\n const controlResult = await this.bridge.send<IsWindowInSwimlaneResult>(OPERATIONS.isWindowInWorkspace.name, { itemId: windowId });\n\n return controlResult.inWorkspace;\n }\n\n public async createWorkspace(definition: IOConnectWorkspaces.WorkspaceDefinition, saveConfig?: IOConnectWorkspaces.WorkspaceCreateConfig): Promise<Workspace> {\n const createConfig: WorkspaceCreateConfigProtocol = Object.assign({}, definition, { saveConfig });\n\n return await this.base.createWorkspace(createConfig);\n }\n\n public async createEmptyFrame(definition: IOConnectWorkspaces.EmptyFrameDefinition): Promise<Frame> {\n return await this.base.createEmptyFrame(definition);\n }\n\n public async initFrame(frameId: string, config: IOConnectWorkspaces.FrameInitializationConfig): Promise<void> {\n return this.base.initFrame(frameId, config);\n }\n\n public async restoreWorkspace(name: string, options?: IOConnectWorkspaces.RestoreWorkspaceConfig): Promise<Workspace> {\n const allLayouts = await this.getLayoutSummaries();\n\n const layoutExists = allLayouts.some((summary) => summary.name === name);\n\n if (!layoutExists) {\n throw new Error(`This layout: ${name} cannot be restored, because it doesn't exist.`);\n }\n\n if (options?.frameId) {\n const allFrameSummaries = await this.bridge.send<FrameSummariesResult>(OPERATIONS.getAllFramesSummaries.name);\n\n const foundMatchingFrame = allFrameSummaries.summaries.some((summary) => summary.id === options.frameId);\n\n if (!foundMatchingFrame) {\n throw new Error(`Cannot reuse the frame with id: ${options.frameId}, because there is no frame with that ID found`);\n }\n }\n\n return await this.base.restoreWorkspace(name, options);\n }\n\n public async add(type: \"container\" | \"window\", parentId: string, parentType: \"row\" | \"column\" | \"group\" | \"workspace\", definition: IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition): Promise<AddItemResult> {\n return await this.base.add(type, parentId, parentType, definition);\n }\n\n public processLocalSubscription(config: SubscriptionConfig, levelId: string): Promise<IOConnectWorkspaces.Unsubscribe> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n return desktopGlobal ?\n this.handleEnterpriseLocalSubscription(config, levelId) :\n this.handleCoreLocalSubscription(config, levelId);\n }\n\n public processGlobalSubscription(callback: (callbackData: unknown) => void | Promise<void>, eventType: WorkspaceEventType, action: WorkspaceEventAction): Promise<IOConnectWorkspaces.Unsubscribe> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n return desktopGlobal ?\n this.handleEnterpriseGlobalSubscription(callback, eventType, action) :\n this.handleCoreGlobalSubscription(callback, eventType, action);\n }\n\n public async getFrame(selector: { windowId?: string; predicate?: (frame: Frame) => boolean }): Promise<Frame> {\n\n if (selector.windowId) {\n return await this.base.getFrame(selector.windowId);\n }\n\n if (selector.predicate) {\n return (await this.getFrames(selector.predicate))[0];\n }\n\n throw new Error(`The provided selector is not valid: ${JSON.stringify(selector)}`);\n }\n\n public async getFrames(predicate?: (frame: Frame) => boolean): Promise<Frame[]> {\n\n const allFrameSummaries = await this.bridge.send<FrameSummariesResult>(OPERATIONS.getAllFramesSummaries.name);\n\n return this.base.getFrames(allFrameSummaries.summaries, predicate);\n }\n\n public getWorkspaceById(workspaceId: string): Promise<Workspace> {\n return this.base.fetchWorkspace(workspaceId);\n }\n\n public async getWorkspaceByWindowId(itemId: string): Promise<Workspace> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n // workspace-ui-core doesn't accept an itemId for getWorkspaceSnapshot, but GD does and getWorkspaceSnapshot is significantly faster\n return (await this.getWorkspaces((wsp) => !!wsp.getWindow((w) => w.id === itemId)))[0];\n }\n return this.base.fetchWorkspace(itemId);\n }\n\n public transformStreamPayloadToWorkspace(payload: WorkspaceStreamData): Promise<Workspace> {\n return this.base.transformStreamPayloadToWorkspace(payload);\n }\n\n public async getWorkspace(predicate: (workspace: Workspace) => boolean): Promise<Workspace> {\n let foundWorkspace: Workspace;\n\n await this.iterateWorkspaces((wsp, end) => {\n if (predicate(wsp)) {\n foundWorkspace = wsp;\n end();\n }\n });\n\n return foundWorkspace;\n }\n\n public async getWorkspaces(predicate?: (workspace: Workspace) => boolean): Promise<Workspace[]> {\n const matchingWorkspaces: Workspace[] = [] as Workspace[];\n\n await this.iterateWorkspaces((wsp) => {\n if (!predicate || predicate(wsp)) {\n matchingWorkspaces.push(wsp);\n }\n });\n\n return matchingWorkspaces;\n }\n\n public async getWorkspacesByFrameId(frameId: string): Promise<Workspace[]> {\n const workspaceSummaries = await this.getAllWorkspaceSummaries();\n const summariesForFrame = workspaceSummaries.filter((s) => s.frameId === frameId);\n\n const workspacesForFrame = await Promise.all(summariesForFrame.map((summary) => {\n return this.base.fetchWorkspace(summary.id);\n }));\n\n return workspacesForFrame;\n }\n\n public async getAllWorkspaceSummaries(): Promise<IOConnectWorkspaces.WorkspaceSummary[]> {\n\n const allSummariesResult = await this.bridge.send<WorkspaceSummariesResult>(OPERATIONS.getAllWorkspacesSummaries.name, {});\n\n return this.base.getAllWorkspaceSummaries(allSummariesResult);\n }\n\n public async getWindow(predicate: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => boolean): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n let resultWindow: IOConnectWorkspaces.WorkspaceWindow;\n\n await this.iterateWorkspaces((wsp, end) => {\n const foundWindow = wsp.getWindow(predicate);\n\n if (foundWindow) {\n resultWindow = foundWindow;\n end();\n }\n });\n\n return resultWindow;\n }\n\n public async getParent(predicate: (parent: IOConnectWorkspaces.WorkspaceBox) => boolean): Promise<IOConnectWorkspaces.WorkspaceBox> {\n let resultParent: IOConnectWorkspaces.WorkspaceBox;\n\n await this.iterateWorkspaces((wsp, end) => {\n\n const foundParent = wsp.getBox(predicate);\n\n if (foundParent) {\n resultParent = foundParent;\n end();\n }\n });\n\n return resultParent;\n }\n\n public async getLayoutSummaries(): Promise<IOConnectWorkspaces.WorkspaceLayoutSummary[]> {\n const allLayouts = await this.bridge.send<LayoutSummariesResult>(OPERATIONS.getAllLayoutsSummaries.name);\n return allLayouts.summaries;\n }\n\n public async deleteLayout(name: string): Promise<void> {\n await this.bridge.send(OPERATIONS.deleteLayout.name, { name });\n }\n\n public async exportLayout(predicate?: (layout: IOConnectWorkspaces.WorkspaceLayout) => boolean): Promise<IOConnectWorkspaces.WorkspaceLayout[]> {\n const allLayoutsResult = await this.bridge.send<ExportedLayoutsResult>(OPERATIONS.exportAllLayouts.name);\n return allLayoutsResult.layouts.reduce<IOConnectWorkspaces.WorkspaceLayout[]>((matchingLayouts, layout) => {\n\n if (!predicate || predicate(layout)) {\n matchingLayouts.push(layout);\n }\n\n return matchingLayouts;\n }, []);\n }\n\n public async saveLayout(config: IOConnectWorkspaces.WorkspaceLayoutSaveConfig): Promise<IOConnectWorkspaces.WorkspaceLayout> {\n return await this.bridge.send(OPERATIONS.saveLayout.name, config);\n }\n\n public async importLayouts(layouts: IOConnectWorkspaces.WorkspaceLayout[], mode: \"replace\" | \"merge\"): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (desktopGlobal) {\n try {\n // ensuring backwards compatibility\n await this.bridge.send(OPERATIONS.importLayouts.name, { layouts, mode });\n } catch (error) {\n // this is a soft-reversal to handle an import issue with GD\n await Promise.all(layouts.map((layout) => this.bridge.send(OPERATIONS.importLayout.name, { layout, mode })));\n }\n return;\n }\n\n await this.base.importLayouts(layouts, mode);\n }\n\n public handleOnSaved(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): UnsubscribeFunction {\n return this.base.handleOnSaved(callback);\n }\n\n public handleOnRemoved(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): UnsubscribeFunction {\n return this.base.handleOnRemoved(callback);\n }\n\n public async bundleWorkspaceTo(type: \"row\" | \"column\", workspaceId: string): Promise<void> {\n return await this.base.bundleWorkspaceTo(type, workspaceId);\n }\n\n public async bundleItemTo(type: \"row\" | \"column\", id: string): Promise<void> {\n return await this.base.bundleItemTo(type, id);\n }\n\n public getWorkspaceContext(workspaceId: string): Promise<any> {\n return this.base.getWorkspaceContext(workspaceId);\n }\n\n public setWorkspaceContext(workspaceId: string, data: any): Promise<void> {\n return this.base.setWorkspaceContext(workspaceId, data);\n }\n\n public updateWorkspaceContext(workspaceId: string, data: any): Promise<void> {\n return this.base.updateWorkspaceContext(workspaceId, data);\n }\n\n public subscribeWorkspaceContextUpdated(workspaceId: string, callback: (data: any) => void): Promise<import(\"callback-registry\").UnsubscribeFunction> {\n return this.base.subscribeWorkspaceContextUpdated(workspaceId, callback);\n }\n\n public async restoreItem(itemId: string): Promise<void> {\n return await this.base.restoreItem(itemId);\n }\n\n public async maximizeItem(itemId: string): Promise<void> {\n return await this.base.maximizeItem(itemId);\n }\n\n public async focusItem(itemId: string): Promise<void> {\n return await this.base.focusItem(itemId);\n }\n\n public async changeFrameState(frameId: string, state: IOConnectWorkspaces.FrameState): Promise<void> {\n await this.bridge.send<void>(OPERATIONS.changeFrameState.name, { frameId, requestedState: state });\n }\n\n public async getFrameBounds(frameId: string): Promise<IOConnectWorkspaces.FrameBounds> {\n const frameResult = await this.bridge.send<FrameBoundsResult>(OPERATIONS.getFrameBounds.name, { itemId: frameId });\n return frameResult.bounds;\n }\n\n public async getFrameState(frameId: string): Promise<IOConnectWorkspaces.FrameState> {\n const frameResult = await this.bridge.send<FrameStateResult>(OPERATIONS.getFrameState.name, { itemId: frameId });\n return frameResult.state;\n }\n\n public async closeItem(itemId: string): Promise<void> {\n return await this.base.closeItem(itemId);\n }\n\n public async resizeItem(itemId: string, config: IOConnectWorkspaces.ResizeConfig): Promise<void> {\n return await this.base.resizeItem(itemId, config);\n }\n\n public async setMaximizationBoundary(itemId: string, config: IOConnectWorkspaces.SetMaximizationBoundaryConfig): Promise<void> {\n return await this.base.setMaximizationBoundary(itemId, config);\n }\n\n public async showWorkspaceLoadingAnimation(workspaceId: string): Promise<void> {\n return await this.base.showWorkspaceLoadingAnimation(workspaceId);\n }\n\n public async hideWorkspaceLoadingAnimation(workspaceId: string): Promise<void> {\n return await this.base.hideWorkspaceLoadingAnimation(workspaceId);\n }\n\n public async moveFrame(itemId: string, config: IOConnectWorkspaces.MoveConfig): Promise<void> {\n return await this.base.moveFrame(itemId, config);\n }\n\n public getGDWindow(itemId: string): GDWindow {\n return this.base.getGDWindow(itemId);\n }\n\n public async forceLoadWindow(itemId: string): Promise<string> {\n const windowId = await this.base.forceLoadWindow(itemId);\n\n await this.base.notifyWindowAdded(windowId);\n\n return windowId;\n }\n\n public async ejectWindow(itemId: string): Promise<string> {\n const windowId: string = (await this.base.ejectWindow(itemId)).windowId;\n\n await this.base.notifyWindowAdded(windowId);\n\n return windowId;\n }\n\n public async moveWindowTo(itemId: string, newParentId: string): Promise<void> {\n return await this.base.moveWindowTo(itemId, newParentId);\n }\n\n public async getSnapshot(itemId: string, type: \"workspace\"): Promise<WorkspaceSnapshotResult>\n public async getSnapshot(itemId: string, type: \"frame\"): Promise<FrameSnapshotResult>\n public async getSnapshot(itemId: string, type: \"workspace\" | \"frame\"): Promise<WorkspaceSnapshotResult | FrameSnapshotResult> {\n return await this.base.getSnapshot(itemId, type);\n }\n\n public async setItemTitle(itemId: string, title: string): Promise<void> {\n return await this.base.setItemTitle(itemId, title);\n }\n\n public flatChildren(children: Child[]): Child[] {\n return children.reduce<Child[]>((soFar, child) => {\n\n soFar.push(child);\n\n if (child.type !== \"window\") {\n soFar.push(...this.flatChildren(child.children));\n }\n\n return soFar;\n }, []);\n }\n\n public refreshChildren(config: RefreshChildrenConfig): Child[] {\n return this.base.refreshChildren(config);\n }\n\n public iterateFindChild(children: Child[], predicate: (child: Child) => boolean): Child {\n return this.base.iterateFindChild(children, predicate);\n }\n\n public iterateFilterChildren(children: Child[], predicate: (child: Child) => boolean): Child[] {\n return this.base.iterateFilterChildren(children, predicate);\n }\n\n public hibernateWorkspace(workspaceId: string): Promise<void> {\n return this.base.hibernateWorkspace(workspaceId);\n }\n\n public resumeWorkspace(workspaceId: string): Promise<void> {\n return this.base.resumeWorkspace(workspaceId);\n }\n\n public lockWorkspace(workspaceId: string, config?: IOConnectWorkspaces.WorkspaceLockConfig): Promise<void> {\n return this.base.lockWorkspace(workspaceId, config);\n }\n\n public lockWindow(windowPlacementId: string, config?: IOConnectWorkspaces.WorkspaceWindowLockConfig): Promise<void> {\n return this.base.lockWindow(windowPlacementId, config);\n }\n\n public lockContainer(itemId: string, type: SubParentTypes[\"type\"], config?: ContainerLockConfig): Promise<void> {\n return this.base.lockContainer(itemId, type, config);\n }\n\n public pinWorkspace(workspaceId: string, icon?: string): Promise<void> {\n return this.base.pinWorkspace(workspaceId, icon);\n }\n\n public unpinWorkspace(workspaceId: string): Promise<void> {\n return this.base.unpinWorkspace(workspaceId);\n }\n\n public getWorkspaceIcon(workspaceId: string): Promise<string> {\n return this.base.getWorkspaceIcon(workspaceId);\n }\n\n public setWorkspaceIcon(workspaceId: string, icon: string): Promise<void> {\n return this.base.setWorkspaceIcon(workspaceId, icon);\n }\n\n public async getFrameConstraints(frameId: string): Promise<IOConnectWorkspaces.FrameConstraints> {\n const frameSnapshot = await this.getSnapshot(frameId, \"frame\");\n\n return {\n minWidth: frameSnapshot.config.minWidth,\n maxWidth: frameSnapshot.config.maxWidth,\n minHeight: frameSnapshot.config.minHeight,\n maxHeight: frameSnapshot.config.maxHeight,\n };\n }\n\n public registerShortcut(shortcut: string, frameId: string, callback: () => void): Promise<UnsubscribeFunction> {\n return this.shortcutsController.registerShortcut(shortcut, frameId, callback);\n }\n\n public getPlatformFrameId(): Promise<{id?: string}> {\n return this.base.getPlatformFrameId();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCoreLocalSubscription(config: SubscriptionConfig, levelId: string): Promise<IOConnectWorkspaces.Unsubscribe> {\n await this.bridge.createCoreEventSubscription();\n\n config.scopeId = config.scopeId || levelId;\n\n if (config.eventType === \"window\" && config.action === \"loaded\") {\n const originalCB = config.callback;\n\n const wrappedCB = async (callbackData: WindowStreamData): Promise<void> => {\n\n await this.base.notifyWindowAdded(callbackData.windowSummary.config.windowId);\n\n originalCB(callbackData);\n };\n\n config.callback = wrappedCB;\n }\n\n return this.bridge.handleCoreSubscription(config);\n }\n\n private handleEnterpriseLocalSubscription(config: SubscriptionConfig, levelId: string): Promise<IOConnectWorkspaces.Unsubscribe> {\n config.scopeId = config.scopeId || levelId;\n\n if (config.eventType === \"window\" && config.action === \"loaded\") {\n const originalCB = config.callback;\n\n const wrappedCB = async (callbackData: WindowStreamData): Promise<void> => {\n await this.base.notifyWindowAdded(callbackData.windowSummary.config.windowId);\n originalCB(callbackData);\n };\n\n config.callback = wrappedCB;\n }\n\n return this.bridge.subscribe(config);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCoreGlobalSubscription(callback: (callbackData: unknown) => void | Promise<void>, eventType: WorkspaceEventType, action: WorkspaceEventAction): Promise<IOConnectWorkspaces.Unsubscribe> {\n await this.bridge.createCoreEventSubscription();\n\n const config: SubscriptionConfig = {\n eventType, callback, action,\n scope: \"global\",\n };\n\n if (eventType === \"window\" && action === \"loaded\") {\n const wrappedCB = async (callbackData: WindowStreamData): Promise<void> => {\n\n await this.base.notifyWindowAdded(callbackData.windowSummary.config.windowId);\n\n callback(callbackData);\n };\n\n config.callback = wrappedCB;\n }\n\n return this.bridge.handleCoreSubscription(config);\n }\n\n private handleEnterpriseGlobalSubscription(callback: (callbackData: unknown) => void | Promise<void>, eventType: WorkspaceEventType, action: WorkspaceEventAction): Promise<IOConnectWorkspaces.Unsubscribe> {\n const config: SubscriptionConfig = {\n eventType, callback, action,\n scope: \"global\",\n };\n\n if (eventType === \"window\" && action === \"loaded\") {\n const wrappedCB = async (callbackData: WindowStreamData): Promise<void> => {\n\n await this.base.notifyWindowAdded(callbackData.windowSummary.config.windowId);\n\n callback(callbackData);\n };\n\n config.callback = wrappedCB;\n }\n\n return this.bridge.subscribe(config);\n }\n\n private async iterateWorkspaces(callback: (workspace: Workspace, end: () => void) => void): Promise<void> {\n let ended = false;\n\n const end = (): void => { ended = true; };\n\n const workspaceSummaries = await this.getAllWorkspaceSummaries();\n\n for (const summary of workspaceSummaries) {\n if (ended) {\n return;\n }\n\n const wsp = await this.base.fetchWorkspace(summary.id);\n\n callback(wsp, end);\n }\n }\n}\n","import { UnsubscribeFunction } from \"callback-registry\";\r\nimport { Bridge } from \"../communication/bridge\";\r\nimport { CLIENT_OPERATIONS, OPERATIONS } from \"../communication/constants\";\r\nimport CallbackRegistry from \"callback-registry\";\r\n\r\n\r\nexport class ShortcutsController {\r\n private _shortcuts = CallbackRegistry();\r\n constructor(\r\n private readonly bridge: Bridge,\r\n ) {\r\n this.bridge.onOperation((payload, caller) => {\r\n if (payload.operation === CLIENT_OPERATIONS.shortcutClicked.name) {\r\n const data = payload.data;\r\n this._shortcuts.execute(`${data.frameId}-${data.shortcut}`);\r\n }\r\n })\r\n }\r\n\r\n public async registerShortcut(shortcut: string, frameId: string, callback: () => void): Promise<UnsubscribeFunction> {\r\n await this.bridge.send<void>(OPERATIONS.registerShortcut.name, { shortcut, frameId });\r\n const un = this._shortcuts.add(`${frameId}-${shortcut}`, callback);\r\n return () => {\r\n un();\r\n this.bridge.send<void>(OPERATIONS.unregisterShortcut.name, { shortcut, frameId });\r\n }\r\n }\r\n}\r\n","/*eslint indent: [2, 4, {\"SwitchCase\": 1}]*/\nimport CallbackFactory from \"callback-registry\";\nimport { Bridge } from \"../communication/bridge\";\nimport { InteropTransport } from \"../communication/interop-transport\";\nimport { BaseBuilder } from \"../builders/baseBuilder\";\nimport { ParentBuilder } from \"../builders/parentBuilder\";\nimport { WorkspaceBuilder } from \"../builders/workspaceBuilder\";\nimport { ModelMaps, ModelTypes, FramePrivateData, WindowPrivateData, WorkspacePrivateData, ParentPrivateData } from \"../types/privateData\";\nimport { PrivateDataManager } from \"./privateDataManager\";\nimport { FrameCreateConfig, ModelCreateConfig, WindowCreateConfig, WorkspaceIoCCreateConfig, ParentCreateConfig } from \"../types/ioc\";\nimport { Frame } from \"../models/frame\";\nimport { Window } from \"../models/window\";\nimport { Workspace } from \"../models/workspace\";\nimport { ChildSnapshotResult } from \"../types/protocol\";\nimport { AllParentTypes, Child } from \"../types/builders\";\nimport { Row } from \"../models/row\";\nimport { Column } from \"../models/column\";\nimport { Group } from \"../models/group\";\nimport { Base } from \"../models/base/base\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { WorkspacesController } from \"../types/controller\";\nimport { InteropAPI, WindowsAPI, LayoutsAPI, ContextsAPI } from \"../types/glue\";\nimport { BaseController } from \"../controllers/base\";\nimport { MainController } from \"../controllers/main\";\nimport { ShortcutsController } from \"../controllers/shortcuts\";\n\nexport class IoC {\n\n private _controllerInstance: WorkspacesController;\n private _bridgeInstance: Bridge;\n private _transportInstance: InteropTransport;\n private _privateDataManagerInstance: PrivateDataManager;\n private _parentBaseInstance: Base;\n private _baseController: BaseController;\n private _shortcutsController: ShortcutsController;\n\n constructor(\n private readonly agm: InteropAPI,\n private readonly windows: WindowsAPI,\n private readonly layouts: LayoutsAPI,\n private readonly contexts: ContextsAPI\n ) { }\n\n public get baseController(): BaseController {\n if (!this._baseController) {\n this._baseController = new BaseController(this, this.windows, this.contexts, this.layouts);\n }\n\n return this._baseController;\n }\n\n public get controller(): WorkspacesController {\n if (!this._controllerInstance) {\n this._controllerInstance = new MainController(this.bridge, this.baseController, this.shortcutsController);\n }\n return this._controllerInstance;\n }\n\n public get shortcutsController(): ShortcutsController {\n if (!this._shortcutsController) {\n this._shortcutsController = new ShortcutsController(this.bridge);\n }\n return this._shortcutsController;\n }\n\n public get bridge(): Bridge {\n if (!this._bridgeInstance) {\n this._bridgeInstance = new Bridge(this.transport, CallbackFactory());\n }\n return this._bridgeInstance;\n }\n\n public get transport(): InteropTransport {\n\n if (!this._transportInstance) {\n this._transportInstance = new InteropTransport(this.agm, CallbackFactory());\n }\n\n return this._transportInstance;\n }\n\n public get privateDataManager(): PrivateDataManager {\n if (!this._privateDataManagerInstance) {\n this._privateDataManagerInstance = new PrivateDataManager();\n }\n return this._privateDataManagerInstance;\n }\n\n public get parentBase(): Base {\n if (!this._parentBaseInstance) {\n this._parentBaseInstance = new Base(this.privateDataManager);\n }\n return this._parentBaseInstance;\n }\n\n public async initiate(actualWindowId: string): Promise<void> {\n await this.transport.initiate(actualWindowId);\n }\n\n public getModel<T extends ModelTypes>(type: ModelTypes, createConfig: ModelCreateConfig): ModelMaps[T] {\n switch (type) {\n case \"frame\": {\n const newFrame = new Frame(this.privateDataManager);\n\n const { summary } = createConfig as FrameCreateConfig;\n\n const frameData: FramePrivateData = { summary, controller: this.controller };\n\n this.privateDataManager.setFrameData(newFrame, frameData);\n\n return newFrame as ModelMaps[T];\n }\n case \"window\": {\n const { id, parent, frame, workspace, config } = createConfig as WindowCreateConfig;\n\n const windowPrivateData: WindowPrivateData = {\n type: \"window\",\n controller: this.controller,\n config, id, parent, frame, workspace\n };\n\n const newWindow = new Window(this.privateDataManager);\n\n this.privateDataManager.setWindowData(newWindow, windowPrivateData);\n\n return newWindow as ModelMaps[T];\n }\n case \"row\":\n case \"column\":\n case \"group\": {\n const { id, children, parent, frame, workspace, config } = createConfig as ParentCreateConfig;\n\n const newParent = type === \"column\" ? new Column(this.parentBase) :\n type === \"row\" ? new Row(this.parentBase) : new Group(this.parentBase);\n\n const builtChildren = this.buildChildren(children, frame, workspace, newParent);\n\n const parentPrivateData = {\n id, parent, frame, workspace,\n config,\n type,\n controller: this.controller,\n children: builtChildren,\n };\n\n this.privateDataManager.setParentData(newParent, parentPrivateData as ParentPrivateData);\n\n return newParent as ModelMaps[T];\n }\n case \"workspace\": {\n const { snapshot, frame } = createConfig as WorkspaceIoCCreateConfig;\n\n const newWorkspace = new Workspace(this.privateDataManager);\n\n const children = this.buildChildren(snapshot.children, frame, newWorkspace, newWorkspace);\n\n const workspacePrivateData: WorkspacePrivateData = {\n id: snapshot.id,\n type: \"workspace\",\n config: snapshot.config,\n base: this.parentBase,\n controller: this.controller,\n children, frame, ioc: this\n };\n\n this.privateDataManager.setWorkspaceData(newWorkspace, workspacePrivateData);\n return newWorkspace as ModelMaps[T];\n }\n default: throw new Error(`Unrecognized type: ${type}`);\n }\n }\n\n public getBuilder(config: IOConnectWorkspaces.BuilderConfig): WorkspaceBuilder | ParentBuilder {\n config.definition = config.definition || {};\n\n if (!Array.isArray(config.definition.children)) {\n config.definition.children = [];\n }\n\n const baseBuilder = new BaseBuilder(this.getBuilder.bind(this));\n\n switch (config.type) {\n case \"workspace\": {\n return new WorkspaceBuilder(config.definition as IOConnectWorkspaces.WorkspaceDefinition, baseBuilder, this.controller);\n }\n case \"row\":\n case \"column\":\n case \"group\": {\n (config.definition as IOConnectWorkspaces.BoxDefinition).type = config.type;\n return new ParentBuilder(config.definition as IOConnectWorkspaces.BoxDefinition, baseBuilder);\n }\n default: throw new Error(`Unexpected Builder creation error, provided config: ${JSON.stringify(config)}`);\n }\n }\n\n private buildChildren(children: ChildSnapshotResult[], frame: Frame, workspace: IOConnectWorkspaces.Workspace, parent: AllParentTypes): Child[] {\n return children.map<Child>((child) => {\n switch (child.type) {\n case \"window\": return this.getModel<\"window\">(\"window\", {\n id: child.id,\n config: child.config,\n frame, workspace, parent\n } as WindowCreateConfig);\n case \"column\": return this.getModel<\"column\">(child.type, {\n id: child.id,\n config: child.config,\n children: child.children,\n frame, workspace, parent\n } as ParentCreateConfig);\n case \"row\": return this.getModel<\"row\">(child.type, {\n id: child.id,\n config: child.config,\n children: child.children,\n frame, workspace, parent\n } as ParentCreateConfig);\n case \"group\": return this.getModel<\"group\">(child.type, {\n id: child.id,\n config: child.config,\n children: child.children,\n frame, workspace, parent\n } as ParentCreateConfig);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default: throw new Error(`Unsupported child type: ${(child as any).type}`);\n }\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { IoC } from \"./shared/ioc\";\nimport { checkThrowCallback, nonEmptyStringDecoder, workspaceLayoutDecoder, workspaceDefinitionDecoder, workspaceBuilderCreateConfigDecoder, builderConfigDecoder, restoreWorkspaceConfigDecoder, workspaceLayoutSaveConfigDecoder, emptyFrameDefinitionDecoder } from \"./shared/decoders\";\nimport { FrameStreamData, WorkspaceStreamData, WorkspaceSnapshotResult, WindowStreamData } from \"./types/protocol\";\nimport { FrameCreateConfig, WorkspaceIoCCreateConfig } from \"./types/ioc\";\nimport { IOConnectWorkspaces } from \"./../workspaces\";\nimport { WorkspacesController } from \"./types/controller\";\nimport { version } from \"../package.json\";\nimport { API } from \"../temp\";\n\nexport const composeAPI = (glue: any, ioc: IoC): API => {\n\n const controller: WorkspacesController = ioc.controller;\n\n const inWorkspace = (): Promise<boolean> => {\n const myId: string = glue.windows.my().id;\n\n if (!myId) {\n throw new Error(\"Cannot get my frame, because my id is undefined.\");\n }\n\n return controller.checkIsInSwimlane(myId);\n };\n\n const getBuilder = (config: IOConnectWorkspaces.BuilderConfig): IOConnectWorkspaces.WorkspaceBuilder | IOConnectWorkspaces.BoxBuilder => {\n const validatedConfig = builderConfigDecoder.runWithException(config);\n\n return ioc.getBuilder(validatedConfig);\n };\n\n const getMyFrame = async (): Promise<IOConnectWorkspaces.Frame> => {\n const windowId: string = glue.windows.my().id;\n\n if (!windowId) {\n throw new Error(\"Cannot get my frame, because my id is undefined.\");\n }\n\n const isInSwimlane = await controller.checkIsInSwimlane(windowId);\n\n if (!isInSwimlane) {\n throw new Error(\"Cannot fetch your frame, because this window is not in a workspace\");\n }\n\n return controller.getFrame({ windowId });\n };\n\n const getFrame = async (predicate: (frame: IOConnectWorkspaces.Frame) => boolean): Promise<IOConnectWorkspaces.Frame> => {\n checkThrowCallback(predicate);\n\n return controller.getFrame({ predicate });\n };\n\n const getAllFrames = async (predicate?: (frame: IOConnectWorkspaces.Frame) => boolean): Promise<IOConnectWorkspaces.Frame[]> => {\n checkThrowCallback(predicate, true);\n\n return controller.getFrames(predicate);\n };\n\n const getAllWorkspacesSummaries = (): Promise<IOConnectWorkspaces.WorkspaceSummary[]> => {\n return controller.getAllWorkspaceSummaries();\n };\n\n const getMyWorkspace = async (): Promise<IOConnectWorkspaces.Workspace> => {\n const myId: string = glue.windows.my().id;\n\n if (!myId) {\n throw new Error(\"Cannot get my workspace, because my id is undefined.\");\n }\n\n const isInSwimlane = await controller.checkIsInSwimlane(myId);\n\n if (!isInSwimlane) {\n throw new Error(\"Cannot fetch your workspace, because this window is not in a workspace\");\n }\n\n return await controller.getWorkspaceByWindowId(myId);\n };\n\n const getWorkspace = async (predicate: (workspace: IOConnectWorkspaces.Workspace) => boolean): Promise<IOConnectWorkspaces.Workspace> => {\n checkThrowCallback(predicate);\n return (await controller.getWorkspaces(predicate))[0];\n };\n\n const getWorkspaceById = async (workspaceId: string): Promise<IOConnectWorkspaces.Workspace> => {\n nonEmptyStringDecoder.runWithException(workspaceId);\n\n return controller.getWorkspaceById(workspaceId);\n };\n\n const getAllWorkspaces = (predicate?: (workspace: IOConnectWorkspaces.Workspace) => boolean): Promise<IOConnectWorkspaces.Workspace[]> => {\n checkThrowCallback(predicate, true);\n return controller.getWorkspaces(predicate);\n };\n\n const getWindow = async (predicate: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => boolean): Promise<IOConnectWorkspaces.WorkspaceWindow> => {\n checkThrowCallback(predicate);\n return controller.getWindow(predicate);\n };\n\n const getParent = async (predicate: (parent: IOConnectWorkspaces.WorkspaceBox) => boolean): Promise<IOConnectWorkspaces.WorkspaceBox> => {\n checkThrowCallback(predicate);\n return controller.getParent(predicate);\n };\n\n const restoreWorkspace = async (name: string, options?: IOConnectWorkspaces.RestoreWorkspaceConfig): Promise<IOConnectWorkspaces.Workspace> => {\n nonEmptyStringDecoder.runWithException(name);\n const validatedOptions = restoreWorkspaceConfigDecoder.runWithException(options);\n return controller.restoreWorkspace(name, validatedOptions);\n };\n\n const createWorkspace = async (definition: IOConnectWorkspaces.WorkspaceDefinition, saveConfig?: IOConnectWorkspaces.WorkspaceCreateConfig): Promise<IOConnectWorkspaces.Workspace> => {\n const validatedDefinition = workspaceDefinitionDecoder.runWithException(definition);\n const validatedConfig = workspaceBuilderCreateConfigDecoder.runWithException(saveConfig);\n\n return controller.createWorkspace(validatedDefinition, validatedConfig);\n };\n\n const createEmptyFrame = async (definition?: IOConnectWorkspaces.EmptyFrameDefinition): Promise<IOConnectWorkspaces.Frame> => {\n const validatedDefinition = emptyFrameDefinitionDecoder.runWithException(definition);\n\n return controller.createEmptyFrame(validatedDefinition ?? {});\n };\n\n const layouts = {\n getSummaries: (): Promise<IOConnectWorkspaces.WorkspaceLayoutSummary[]> => {\n return controller.getLayoutSummaries();\n },\n delete: async (name: string): Promise<void> => {\n nonEmptyStringDecoder.runWithException(name);\n return controller.deleteLayout(name);\n },\n export: async (predicate?: (layout: IOConnectWorkspaces.WorkspaceLayout) => boolean): Promise<IOConnectWorkspaces.WorkspaceLayout[]> => {\n checkThrowCallback(predicate, true);\n return controller.exportLayout(predicate);\n },\n import: async (layouts: IOConnectWorkspaces.WorkspaceLayout[], mode: \"replace\" | \"merge\" = \"replace\"): Promise<void> => {\n\n if (!Array.isArray(layouts)) {\n throw new Error(`The provided layouts argument is not an array: ${JSON.stringify(layouts)}`);\n }\n\n layouts.forEach((layout) => workspaceLayoutDecoder.runWithException(layout));\n return controller.importLayouts(layouts, mode);\n },\n save: async (config: IOConnectWorkspaces.WorkspaceLayoutSaveConfig): Promise<IOConnectWorkspaces.WorkspaceLayout> => {\n const verifiedConfig = workspaceLayoutSaveConfigDecoder.runWithException(config);\n return controller.saveLayout(verifiedConfig);\n },\n onSaved: async (callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n return controller.handleOnSaved(callback);\n },\n onRemoved: async (callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n return controller.handleOnRemoved(callback);\n }\n };\n\n const onFrameOpened = async (callback: (frame: IOConnectWorkspaces.Frame) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n const wrappedCallback = (payload: FrameStreamData): void => {\n const frameConfig: FrameCreateConfig = {\n summary: payload.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n callback(frame);\n };\n\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"frame\", \"opened\");\n return unsubscribe;\n };\n\n const onFrameClosed = async (callback: (closed: IOConnectWorkspaces.FrameClosedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = (payload: FrameStreamData): void => {\n callback({ frameId: payload.frameSummary.id, frameBounds: payload.frameBounds });\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"frame\", \"closed\");\n return unsubscribe;\n };\n\n const onWorkspaceOpened = async (callback: (workspace: IOConnectWorkspaces.Workspace) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n const workspace = await controller.transformStreamPayloadToWorkspace(payload);\n\n callback(workspace);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"workspace\", \"opened\");\n return unsubscribe;\n };\n\n const onWorkspaceClosed = async (callback: (closed: IOConnectWorkspaces.WorkspaceClosedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n const wrappedCallback = (payload: WorkspaceStreamData): void => {\n callback({ frameId: payload.frameSummary.id, workspaceId: payload.workspaceSummary.id, frameBounds: payload.frameBounds });\n };\n\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"workspace\", \"closed\");\n return unsubscribe;\n };\n\n const onWorkspaceHibernated = async (callback: (workspace: IOConnectWorkspaces.Workspace) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n const workspace = await controller.transformStreamPayloadToWorkspace(payload);\n\n callback(workspace);\n };\n\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"workspace\", \"hibernated\");\n return unsubscribe;\n };\n\n const onWorkspaceResumed = async (callback: (workspace: IOConnectWorkspaces.Workspace) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n const workspace = await controller.transformStreamPayloadToWorkspace(payload);\n\n callback(workspace);\n };\n\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"workspace\", \"resumed\");\n return unsubscribe;\n };\n\n const onWindowAdded = async (callback: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const snapshot = (await controller.getSnapshot(payload.windowSummary.config.workspaceId, \"workspace\")) as WorkspaceSnapshotResult;\n\n const frameConfig: FrameCreateConfig = {\n summary: snapshot.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\n\n const workspace = ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\n\n const windowParent = workspace.getBox((parent) => parent.id === payload.windowSummary.parentId);\n const foundWindow = windowParent.children.find((child) => child.type === \"window\" && child.elementId === payload.windowSummary.itemId);\n\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"added\");\n return unsubscribe;\n };\n\n const onWindowLoaded = async (callback: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const snapshot = (await controller.getSnapshot(payload.windowSummary.config.workspaceId, \"workspace\")) as WorkspaceSnapshotResult;\n\n const frameConfig: FrameCreateConfig = {\n summary: snapshot.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\n\n const workspace = ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\n\n const foundWindow = workspace.getWindow((win) => win.id && win.id === payload.windowSummary.config.windowId);\n\n callback(foundWindow);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"loaded\");\n return unsubscribe;\n };\n\n const onWindowRemoved = async (callback: (removed: { windowId: string; workspaceId: string; frameId: string }) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = (payload: WindowStreamData): void => {\n const { windowId, workspaceId, frameId } = payload.windowSummary.config;\n callback({ windowId, workspaceId, frameId });\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"removed\");\n return unsubscribe;\n };\n\n const onWindowMaximized = async (callback: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const snapshot = (await controller.getSnapshot(payload.windowSummary.config.workspaceId, \"workspace\")) as WorkspaceSnapshotResult;\n\n const frameConfig: FrameCreateConfig = {\n summary: snapshot.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\n\n const workspace = ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\n\n const windowParent = workspace.getBox((parent) => parent.id === payload.windowSummary.parentId);\n const foundWindow = windowParent.children.find((child) => child.type === \"window\" && child.elementId === payload.windowSummary.itemId);\n\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"maximized\");\n return unsubscribe;\n };\n\n const onWindowRestored = async (callback: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const snapshot = (await controller.getSnapshot(payload.windowSummary.config.workspaceId, \"workspace\")) as WorkspaceSnapshotResult;\n\n const frameConfig: FrameCreateConfig = {\n summary: snapshot.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\n\n const workspace = ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\n\n const windowParent = workspace.getBox((parent) => parent.id === payload.windowSummary.parentId);\n const foundWindow = windowParent.children.find((child) => child.type === \"window\" && child.elementId === payload.windowSummary.itemId);\n\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"restored\");\n return unsubscribe;\n };\n\n\n const onWindowSelected = async (callback: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const snapshot = (await controller.getSnapshot(payload.windowSummary.config.workspaceId, \"workspace\")) as WorkspaceSnapshotResult;\n\n const frameConfig: FrameCreateConfig = {\n summary: snapshot.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\n\n const workspace = ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\n\n const windowParent = workspace.getBox((parent) => parent.id === payload.windowSummary.parentId);\n const foundWindow = windowParent.children.find((child) => child.type === \"window\" && child.elementId === payload.windowSummary.itemId);\n\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"selected\");\n return unsubscribe;\n };\n\n const waitForFrame = async (id: string): Promise<IOConnectWorkspaces.Frame> => {\n nonEmptyStringDecoder.runWithException(id);\n return new Promise<IOConnectWorkspaces.Frame>((res, rej) => {\n let unsub: IOConnectWorkspaces.Unsubscribe = () => {\n // do nothing\n };\n onFrameOpened((f) => {\n if (f.id === id) {\n res(f);\n unsub();\n }\n }).then((u) => {\n unsub = u;\n return getAllFrames();\n }).then((frames) => {\n const myFrame = frames.find((f) => f.id === id);\n if (myFrame) {\n res(myFrame);\n unsub();\n }\n }).catch(rej);\n });\n };\n\n return {\n inWorkspace,\n getBuilder,\n getMyFrame,\n getFrame,\n getAllFrames,\n getAllWorkspacesSummaries,\n getMyWorkspace,\n getWorkspace,\n getWorkspaceById,\n getAllWorkspaces,\n getWindow,\n getBox: getParent,\n restoreWorkspace,\n createWorkspace,\n createEmptyFrame,\n waitForFrame,\n layouts,\n onFrameOpened,\n onFrameClosed,\n onWorkspaceOpened,\n onWorkspaceClosed,\n onWorkspaceHibernated,\n onWorkspaceResumed,\n onWindowAdded,\n onWindowLoaded,\n onWindowRemoved,\n onWindowMaximized,\n onWindowRestored,\n onWindowSelected,\n version\n };\n};\n","import { IoC } from \"./shared/ioc\";\r\nimport { composeAPI } from \"./main\";\r\nimport { WorkspacesFactoryFunction } from \"../workspaces\";\r\n\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nconst factoryFunction: WorkspacesFactoryFunction = async (io: any): Promise<void> => {\r\n\r\n const ioc = new IoC(io.agm, io.windows, io.layouts, io.contexts);\r\n\r\n const actualWindowId = io.interop.instance.windowId;\r\n\r\n await ioc.initiate(actualWindowId);\r\n\r\n io.workspaces = composeAPI(io, ioc);\r\n};\r\n\r\n// attach to window object\r\nif (typeof window !== \"undefined\") {\r\n /* eslint-disable @typescript-eslint/no-explicit-any */\r\n (window as any).IOWorkspaces = factoryFunction;\r\n}\r\n\r\nexport default factoryFunction;\r\n"],"names":["privateData","getBase","data","getData","CallbackRegistry","CallbackFactory"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaces.es.js","sources":["../../../node_modules/callback-registry/lib/index.js","../../../node_modules/decoder-validate/dist/index.es5.js","../src/shared/decoders.ts","../src/communication/constants.ts","../src/shared/promiseWrapper.ts","../src/communication/bridge.ts","../src/shared/promisePlus.ts","../src/communication/interop-transport.ts","../src/builders/parentBuilder.ts","../src/builders/baseBuilder.ts","../src/builders/workspaceBuilder.ts","../src/models/row.ts","../src/models/column.ts","../src/models/group.ts","../src/models/workspace.ts","../src/models/window.ts","../src/models/frame.ts","../src/shared/privateDataManager.ts","../src/models/base/base.ts","../src/controllers/base.ts","../src/controllers/main.ts","../src/controllers/shortcuts.ts","../src/shared/ioc.ts","../src/main.ts","../src/index.ts"],"sourcesContent":["\"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","/**\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 * Typeguard for `Ok`.\r\n */\r\nvar isOk = function (r) { return r.ok === true; };\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 * Typeguard for `Err`.\r\n */\r\nvar isErr = function (r) { return r.ok === false; };\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 * Given an array of `Result`s, return the successful values.\r\n */\r\nvar successes = function (results) {\r\n return results.reduce(function (acc, r) { return (r.ok === true ? acc.concat(r.result) : acc); }, []);\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\nvar result = Object.freeze({\r\n\tok: ok,\r\n\tisOk: isOk,\r\n\terr: err,\r\n\tisErr: isErr,\r\n\tasPromise: asPromise,\r\n\twithDefault: withDefault,\r\n\twithException: withException,\r\n\tsuccesses: successes,\r\n\tmap: map,\r\n\tmap2: map2,\r\n\tmapError: mapError,\r\n\tandThen: andThen\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 * Type guard for `DecoderError`. One use case of the type guard is in the\r\n * `catch` of a promise. Typescript types the error argument of `catch` as\r\n * `any`, so when dealing with a decoder as a promise you may need to\r\n * distinguish between a `DecoderError` and an error string.\r\n */\r\nvar isDecoderError = function (a) {\r\n return a.kind === 'DecoderError' && typeof a.at === 'string' && typeof a.message === 'string';\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\nvar unknownJson = Decoder.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\nvar tuple = Decoder.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\nvar union = Decoder.union;\r\n/** See `Decoder.intersection` */\r\nvar intersection = Decoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nvar withDefault$1 = Decoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nvar valueAt = Decoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nvar succeed = Decoder.succeed;\r\n/** See `Decoder.fail` */\r\nvar fail = Decoder.fail;\r\n/** See `Decoder.lazy` */\r\nvar lazy = Decoder.lazy;\r\n\r\nexport { result as Result, Decoder, isDecoderError, string, number, boolean, anyJson, unknownJson, constant, object, array, tuple, dict, optional, oneOf, union, intersection, withDefault$1 as withDefault, valueAt, succeed, fail, lazy };\r\n//# sourceMappingURL=index.es5.js.map\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["privateData","getBase","data","getData","CallbackRegistry"],"mappings":"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","x_google_ignoreList":[0,1]}
|