@ima/devtools-scripts
Version:
IMA.js devtool script used in the @ima/devtools.
1 lines • 55.8 kB
Source Map (JSON)
{"version":3,"file":"main.mjs","sources":["../../../node_modules/easy-uid/es/index.js","../../../node_modules/to-aop/dist/toAop.mjs","../src/DevToolManager.js","../src/main.js"],"sourcesContent":["function t(){return Date.now().toString(32).substring(5)+Math.random().toString(32).substring(2)}export{t as default};\n","const AOP_PATTERN = Symbol('AopPattern');\nconst AOP_HOOKS = Symbol('AopHooks');\nconst AOP_STATIC_ALLOW = Symbol('AopStaticAllow');\nconst AOP_FILTER_FUNCTION = Symbol('AopFilterFunction');\n\nfunction invokePattern(pattern, meta) {\n if (!pattern) {\n return;\n }\n\n if (Array.isArray(pattern)) {\n return pattern.map((rule) => {\n return Reflect.apply(rule, rule.context, [meta]);\n });\n } else {\n const method = typeof pattern === 'function' ? pattern : pattern.method;\n return Reflect.apply(method, pattern.context, [meta]);\n }\n}\n\nfunction isConstructable(func) {\n return !!(func && func.prototype && func.prototype.constructor);\n}\n\nfunction createCallTrap({\n target,\n object,\n property,\n pattern,\n context,\n method,\n}) {\n function callTrap(...rest) {\n const self = this;\n let payload = undefined;\n let meta = {};\n\n callTrap[AOP_HOOKS].forEach(\n ({ target, object, property, pattern, context }) => {\n invokePattern(pattern.beforeMethod, {\n target,\n object,\n property,\n context: context || self,\n args: rest,\n meta,\n });\n }\n );\n\n {\n const { target, object, property, pattern, context } =\n callTrap[AOP_HOOKS][callTrap[AOP_HOOKS].length - 1];\n const aroundPattern = Array.isArray(pattern.aroundMethod)\n ? pattern.aroundMethod[pattern.aroundMethod.length - 1]\n : pattern.aroundMethod;\n\n if (aroundPattern) {\n payload = invokePattern(aroundPattern, {\n target,\n object,\n property,\n context: context || self,\n args: rest,\n original:\n typeof object[property] === 'function' ? object[property] : method,\n meta,\n });\n } else {\n const { object, property, context } =\n callTrap[AOP_HOOKS][callTrap[AOP_HOOKS].length - 1];\n\n if (object && typeof object[property] === 'function') {\n if (property === 'constructor' && isConstructable(object)) {\n payload = Reflect.construct(object, rest);\n } else {\n payload = Reflect.apply(object[property], context || self, rest);\n }\n } else {\n payload = Reflect.apply(method, context || self, rest);\n }\n }\n }\n\n callTrap[AOP_HOOKS].forEach(\n ({ target, object, property, pattern, context }) => {\n invokePattern(pattern.afterMethod, {\n target,\n object,\n property,\n context: context || self,\n args: rest,\n payload,\n meta,\n });\n }\n );\n\n return payload;\n }\n\n callTrap[AOP_HOOKS] = [{ target, object, property, pattern, context }];\n\n return callTrap;\n}\n\nfunction createHook(name, regular, callback) {\n function hook(meta) {\n return hookFor(meta, regular, callback);\n }\n\n hook[AOP_FILTER_FUNCTION] = function ({ property, target, prototype }) {\n return (\n (typeof regular === 'string' && property.includes(regular)) ||\n (regular instanceof RegExp && regular.test(property)) ||\n (typeof regular === 'function' &&\n regular({ property, target, name, prototype }))\n );\n };\n\n return {\n [name]: hook,\n };\n}\n\nfunction hookFor(meta, regular, callback) {\n if (typeof regular === 'string') {\n if (meta.property.includes(regular)) {\n return callback(meta);\n }\n\n return null;\n }\n if (regular instanceof RegExp) {\n if (regular.test(meta.property)) {\n return callback(meta);\n }\n\n return null;\n }\n\n if (typeof regular === 'function') {\n if (regular(meta)) {\n return callback(meta);\n }\n\n return null;\n }\n\n if (Array.isArray(regular)) {\n return regular.map(({ rule, action }) => {\n return hookFor(meta, rule, action || callback);\n });\n }\n\n throw new TypeError(\n `Invalid rule type ${typeof regular}. Method accept string, regexp, function and array.`\n );\n}\n\nfunction hasToRegisterHook(hooks) {\n return (pattern, props) => {\n return hooks.reduce((result, hook) => {\n return (\n result ||\n (pattern[hook] &&\n typeof pattern[hook][AOP_FILTER_FUNCTION] === 'function' &&\n pattern[hook][AOP_FILTER_FUNCTION](props))\n );\n }, false);\n };\n}\n\nconst hookName = Object.freeze({\n beforeMethod: 'beforeMethod',\n afterMethod: 'afterMethod',\n aroundMethod: 'aroundMethod',\n beforeGetter: 'beforeGetter',\n afterGetter: 'afterGetter',\n aroundGetter: 'aroundGetter',\n beforeSetter: 'beforeSetter',\n afterSetter: 'afterSetter',\n aroundSetter: 'aroundSetter',\n});\n\nconst hasToRegisterMethodHook = hasToRegisterHook([\n hookName.beforeMethod,\n hookName.afterMethod,\n hookName.aroundMethod,\n]);\n\nfunction overOwnProperty({ target, pattern, original, object }) {\n Object.entries(Object.getOwnPropertyDescriptors(object)).forEach(function ([\n property,\n ]) {\n try {\n if (!hasToRegisterMethodHook(pattern, { property, target, object })) {\n original[property] = object[property];\n return;\n }\n\n if (property in original) {\n return;\n }\n\n if (!object[property]) {\n return;\n }\n\n let aopHooks = object[property][AOP_HOOKS];\n if (aopHooks) {\n const { object: lastObject } = aopHooks[aopHooks.length - 1];\n aopHooks.push({\n target,\n object: lastObject,\n property,\n pattern,\n });\n\n if (!(property in original)) {\n original[property] = () => {};\n }\n\n return;\n }\n\n if (\n typeof object[property] === 'function' &&\n !isConstructable(object[property])\n ) {\n original[property] = object[property];\n object[property] = createCallTrap({\n target,\n object: original,\n property,\n pattern,\n });\n }\n } catch (_) {\n //console.warn(`The '${property}' property is not hooked.`, _);\n } // eslint-disable-line no-empty\n });\n}\n\nfunction aopForMethods(target, pattern) {\n let original = {};\n let prototype = target.prototype;\n while (prototype) {\n overOwnProperty({ target, pattern, original, object: prototype });\n\n prototype = Reflect.getPrototypeOf(prototype);\n }\n}\n\nfunction createGetTrap({\n target,\n object,\n property,\n pattern,\n context,\n method,\n}) {\n function getTrap() {\n const hasProperty = getTrap[AOP_HOOKS].reduce(\n (result, { object, property }) => {\n return result && Reflect.has(object, property);\n },\n true\n );\n\n if (!hasProperty) {\n return;\n }\n\n let payload = undefined;\n let meta = {};\n\n getTrap[AOP_HOOKS].forEach(\n ({ target, object, property, pattern, context }) => {\n invokePattern(pattern.beforeGetter, {\n target,\n object,\n property,\n context,\n meta,\n });\n }\n );\n\n const { target, object, property, pattern, context } =\n getTrap[AOP_HOOKS][getTrap[AOP_HOOKS].length - 1];\n const aroundGetter = Array.isArray(pattern.aroundGetter)\n ? pattern.aroundGetter[pattern.aroundGetter.length - 1]\n : pattern.aroundGetter;\n\n payload = aroundGetter\n ? invokePattern(aroundGetter, {\n target,\n object,\n property,\n context,\n meta,\n })\n : Reflect.get(object, property);\n\n getTrap[AOP_HOOKS].forEach(\n ({ target, object, property, pattern, context }) => {\n invokePattern(pattern.afterGetter, {\n target,\n object,\n property,\n context,\n payload,\n meta,\n });\n }\n );\n\n if (typeof payload === 'function') {\n payload = createCallTrap({\n target,\n object,\n property,\n pattern,\n context,\n method,\n });\n }\n\n return payload;\n }\n\n getTrap[AOP_HOOKS] = [{ target, object, property, pattern, context }];\n\n return getTrap;\n}\n\nfunction createSetTrap({\n target,\n object,\n property,\n pattern,\n context,\n}) {\n function setTrap(payload) {\n let meta = {};\n\n setTrap[AOP_HOOKS].forEach(\n ({ target, object, property, context, pattern }) => {\n invokePattern(pattern.beforeSetter, {\n target,\n object,\n property,\n payload,\n context,\n meta,\n });\n }\n );\n\n const { target, object, property, pattern, context } =\n setTrap[AOP_HOOKS][setTrap[AOP_HOOKS].length - 1];\n const aroundSetter = Array.isArray(pattern.aroundSetter)\n ? pattern.aroundSetter[pattern.aroundSetter.length - 1]\n : pattern.aroundSetter;\n\n let result = aroundSetter\n ? invokePattern(aroundSetter, {\n target,\n object,\n property,\n payload,\n context,\n meta,\n })\n : Reflect.set(object, property, payload);\n\n setTrap[AOP_HOOKS].forEach(\n ({ target, object, property, context, pattern }) => {\n invokePattern(pattern.afterSetter, {\n target,\n object,\n property,\n payload,\n context,\n meta,\n });\n }\n );\n\n return result;\n }\n\n setTrap[AOP_HOOKS] = [{ target, object, property, pattern, context }];\n\n return setTrap;\n}\n\nconst hasToRegisterGetterSetterHook = hasToRegisterHook([\n hookName.beforeGetter,\n hookName.afterGetter,\n hookName.aroundGetter,\n hookName.beforeSetter,\n hookName.afterSetter,\n hookName.aroundSetter,\n]);\n\nfunction aopForStatic(target, pattern) {\n let original = {};\n let originalTarget = target;\n\n if (!Object.prototype.hasOwnProperty.call(originalTarget, AOP_STATIC_ALLOW)) {\n Reflect.defineProperty(originalTarget, AOP_STATIC_ALLOW, {\n value: false,\n enumerable: false,\n writable: true,\n });\n } else {\n originalTarget[AOP_STATIC_ALLOW] = false;\n }\n\n while (target && target !== Function.prototype) {\n // TODO improve\n Object.entries(Object.getOwnPropertyDescriptors(target)).forEach(\n ([property, descriptor]) => {\n if (\n typeof descriptor.get === 'function' ||\n typeof descriptor.set === 'function'\n ) {\n if (Object.prototype.hasOwnProperty.call(original, property)) {\n return;\n }\n\n Reflect.defineProperty(original, property, descriptor);\n if (\n !hasToRegisterGetterSetterHook(pattern, {\n target,\n property,\n object: original,\n })\n ) {\n return;\n }\n\n Reflect.defineProperty(\n target,\n property,\n Object.assign({}, descriptor, {\n get: (...rest) => {\n if (originalTarget[AOP_STATIC_ALLOW] === true) {\n let aopHooks = descriptor.get[AOP_HOOKS];\n if (aopHooks) {\n const { object } = aopHooks[aopHooks.length - 1];\n\n aopHooks.push({\n target,\n object,\n property,\n pattern,\n });\n\n return typeof descriptor.get === 'function'\n ? descriptor.get(...rest)\n : undefined;\n }\n\n return createGetTrap({\n target,\n object: original,\n property,\n pattern,\n })(...rest);\n } else {\n return typeof descriptor.get === 'function'\n ? descriptor.get(...rest)\n : undefined;\n }\n },\n set: (payload) => {\n if (originalTarget[AOP_STATIC_ALLOW] === true) {\n return createSetTrap({\n target,\n object: original,\n property,\n pattern,\n })(payload);\n }\n },\n })\n );\n }\n }\n );\n\n overOwnProperty({ target, pattern, original, object: target });\n target = Reflect.getPrototypeOf(target);\n }\n\n originalTarget[AOP_STATIC_ALLOW] = true;\n}\n\nfunction createProxy(target, pattern, context) {\n pattern = pattern || target[AOP_PATTERN] || {};\n\n const proxy = new Proxy(target, {\n get(object, property) {\n let original = object[property];\n let value = createGetTrap({ target, object, property, pattern })();\n\n if (value === undefined || original === undefined) {\n return;\n }\n\n if (typeof original !== 'object' && typeof original !== 'function') {\n return value;\n }\n\n return createProxy(original, pattern, object);\n },\n set(object, property, payload) {\n return createSetTrap({ target, object, property, pattern })(payload);\n },\n apply(method, object, args) {\n return createCallTrap({\n target,\n object: context || object,\n property: method.name,\n pattern,\n context: context || object,\n method,\n })(...args);\n },\n });\n\n return proxy;\n}\n\nfunction createAspect(pattern) {\n return function applyAop(target) {\n return aop(target, pattern);\n };\n}\n\nfunction aop(target, pattern, settings = { constructor: false }) {\n if (settings && settings.constructor && typeof target === 'function') {\n return aopWithConstructor(target, pattern);\n }\n\n return applyAop(target, pattern);\n}\n\nfunction aopWithConstructor(target, pattern) {\n let prototype = target.prototype;\n\n function AOPConstructor(...rest) {\n return createCallTrap({\n target,\n object: target,\n property: 'constructor',\n pattern,\n context: this,\n })(...rest);\n }\n\n AOPConstructor.prototype = prototype;\n\n applyAop(AOPConstructor, pattern);\n\n return AOPConstructor;\n}\n\nfunction unAop(target) {\n if (target[AOP_PATTERN]) {\n target[AOP_PATTERN] = Object.keys(target[AOP_PATTERN]).reduce(\n (pattern, hookName) => {\n pattern[hookName] = undefined;\n\n return pattern;\n },\n target[AOP_PATTERN]\n );\n\n target[AOP_PATTERN] = undefined;\n }\n}\n\nfunction applyAop(target, pattern) {\n if (target[AOP_PATTERN]) {\n if (typeof target === 'function') {\n aopForStatic(target, pattern);\n aopForMethods(target, pattern);\n\n return;\n }\n\n mergePattern(target, pattern);\n\n return;\n }\n\n Reflect.defineProperty(target, AOP_PATTERN, {\n value: Object.assign({}, pattern),\n enumerable: false,\n writable: true,\n });\n\n if (typeof target === 'function') {\n return applyAopToClass(target);\n }\n\n if (typeof target === 'object') {\n return applyAopToInstance(target);\n }\n\n throw new TypeError(\n `aop accept only object and class. You gave type of ${typeof target}.`\n );\n}\n\nfunction applyAopToInstance(instance) {\n return createProxy(instance);\n}\n\nfunction applyAopToClass(target) {\n let pattern = target[AOP_PATTERN];\n\n aopForStatic(target, pattern);\n aopForMethods(target, pattern);\n}\n\nfunction mergePattern(target, pattern) {\n let currentTargetPattern = target[AOP_PATTERN];\n\n target[AOP_PATTERN] = Object.entries(pattern).reduce(\n (resultPattern, [hookName, hookValue]) => {\n if (!resultPattern[hookName]) {\n resultPattern = hookName;\n }\n\n if (resultPattern[hookName]) {\n if (!Array.isArray(resultPattern[hookName])) {\n resultPattern[hookName] = [resultPattern[hookName]];\n }\n if (!Array.isArray(hookValue)) {\n hookValue = [hookValue];\n }\n\n resultPattern[hookName] = resultPattern[hookName].concat(hookValue);\n }\n\n return resultPattern;\n },\n currentTargetPattern\n );\n}\n\nexport { aop, createAspect, createCallTrap, createGetTrap, createHook, createProxy, createSetTrap, hookFor, hookName, unAop };\n","export default class DevManager {\n static get $dependencies() {\n return [\n '$PageManager',\n '$PageStateManager',\n '$Window',\n '$Dispatcher',\n '$EventBus',\n '$SessionMapStorage',\n ];\n }\n\n constructor(\n pageManager,\n stateManager,\n window,\n dispatcher,\n eventBus,\n sessionMapStorage\n ) {\n this._pageManager = pageManager;\n this._stateManager = stateManager;\n this._window = window;\n this._dispatcher = dispatcher;\n this._eventBus = eventBus;\n this._sessionMapStorage = sessionMapStorage;\n }\n\n /**\n * Initializes the developer tools.\n */\n init() {\n let window = this._window.getWindow();\n this._window.bindEventListener(window, 'keydown', e => {\n // Alt + S\n if (e.altKey && e.keyCode === 83) {\n // eslint-disable-next-line no-console\n console.log(\n '%cApp state:',\n 'background: #f03e3e; color: white; padding: 2px 4px; margin: 2px 0; font-weight: bold; font-size: 90%;'\n );\n console.log(this._stateManager.getState()); //eslint-disable-line no-console\n }\n\n // Alt + C\n if (e.altKey && e.keyCode === 67) {\n // eslint-disable-next-line no-console\n console.log(\n '%cCache keys:',\n 'background: #f03e3e; color: white; padding: 2px 4px; margin: 2px 0; font-weight: bold; font-size: 90%;'\n );\n console.log(this._sessionMapStorage.keys()); //eslint-disable-line no-console\n }\n\n // Alt + V\n if (e.altKey && e.keyCode === 86) {\n // eslint-disable-next-line no-console\n console.log(\n '%c$IMA.$Version:',\n 'background: #f03e3e; color: white; padding: 2px 4px; margin: 2px 0; font-weight: bold; font-size: 90%;'\n );\n console.log($IMA.$Version); //eslint-disable-line no-console\n }\n });\n\n // Print welcome message\n // eslint-disable-next-line no-console\n console.log(\n '%cIMA.js Devtools are initialized, you can use following keyboard shortcuts:%c' +\n '\\\\n%cAlt + S%c - App state' +\n '\\\\n%cAlt + C%c - Cache keys' +\n '\\\\n%cAlt + V%c - $IMA.$Version',\n 'margin-top: 6px; background: #f03e3e; color: white; padding: 4px 8px; font-weight: bold;',\n 'font-weight: bold;',\n 'padding: 2px 4px; color: #c92a2a; background: #ffe3e3; border-radius: 3px; border: 1px solid #ffa8a8; margin: 10px 2px 2px 10px;',\n 'font-weight: bold;',\n 'padding: 2px 4px; color: #c92a2a; background: #ffe3e3; border-radius: 3px; border: 1px solid #ffa8a8; margin: 2px 2px 2px 10px;',\n 'font-weight: bold;',\n 'padding: 2px 4px; color: #c92a2a; background: #ffe3e3; border-radius: 3px; border: 1px solid #ffa8a8; margin: 2px 2px 2px 10px;',\n 'font-weight: bold; margin-bottom: 10px;'\n );\n }\n\n /**\n * Sets the provided state to the state manager.\n *\n * @param {Object<string, *>} statePatch A patch of the current page state.\n */\n setState(statePatch) {\n this._stateManager.setState(statePatch);\n }\n\n /**\n * Returns the current page state.\n *\n * @return {Object<string, *>} The current page state.\n */\n getState() {\n return this._stateManager.getState();\n }\n\n /**\n * Clears the current application state.\n */\n clearAppSource() {\n this._pageManager.destroy();\n this._dispatcher.clear();\n }\n}\n","import uid from 'easy-uid';\nimport { aop, createHook, hookName, createCallTrap } from 'to-aop';\n\nimport DevToolManager from './DevToolManager';\n\nconst ImaMainModules = [\n 'onLoad',\n 'getInitialImaConfigFunctions',\n 'getNamespace',\n 'getInitialPluginConfig',\n 'createImaApp',\n 'getClientBootConfig',\n 'bootClientApp',\n 'routeClientApp',\n 'reviveClientApp',\n];\n\n// eslint-disable-next-line no-unused-vars\nfunction createDevtool(registerHook) {\n $IMA.devtool = $IMA.devtool || {};\n\n function separatePromisesAndValues(dataMap) {\n let promises = {};\n let values = {};\n\n if (dataMap === undefined) {\n return { promises, values };\n }\n\n for (let field of Object.keys(dataMap)) {\n let value = dataMap[field];\n\n if (value instanceof Promise) {\n promises[field] = value;\n } else {\n values[field] = value;\n }\n }\n\n return { promises, values };\n }\n\n function clone(data, deep = 1) {\n if (data === undefined) {\n return 'undefined';\n }\n\n try {\n return JSON.parse(JSON.stringify(data));\n } catch (e) {\n if (deep === 0) {\n return e.message;\n }\n\n return Object.keys(data).reduce((result, property) => {\n return (result[property] = clone(data[property], deep - 1));\n }, {});\n }\n }\n\n function generateState(meta, overrides) {\n if (overrides.state) {\n return overrides.state;\n }\n\n return {\n args: meta.args,\n payload: meta.payload,\n };\n }\n\n //eslint-disable-line no-undef\n function emit(identifier, meta, options, overrides = {}) {\n const id = uid();\n const label = overrides.label\n ? overrides.label\n : identifier + ':' + meta.property;\n let state = generateState(meta, overrides);\n\n let { promises: argsPromise } = separatePromisesAndValues(state.args);\n let { promises: payloadPromise } = separatePromisesAndValues(state.payload);\n\n const promise = {\n args: argsPromise,\n payload: payloadPromise,\n };\n const stateKeys = ['args', 'payload'];\n let pendingPromises = stateKeys\n .map(key => Object.keys(promise[key]).length)\n .reduce((sum, value) => sum + value, 0);\n\n stateKeys.map(key => {\n Object.keys(promise[key]).map(property => {\n promise[key][property].then(value => {\n pendingPromises--;\n state[key][property] = value;\n\n $IMA.devtool.postMessage({\n id,\n label,\n type: meta.property,\n origin: identifier,\n time: new Date().getTime(),\n state: clone(state, 2),\n color: options.color,\n promises: pendingPromises > 0 ? 'pending' : 'resolved',\n });\n });\n });\n });\n\n if (state.payload instanceof Promise) {\n pendingPromises += 1;\n\n state.payload.then(value => {\n pendingPromises--;\n state.payload = value;\n\n $IMA.devtool.postMessage({\n id,\n label,\n type: meta.property,\n origin: identifier,\n time: new Date().getTime(),\n state: clone(state, 2),\n color: options.color,\n promises: pendingPromises > 0 ? 'pending' : 'resolved',\n });\n });\n }\n\n $IMA.devtool.postMessage({\n id,\n label,\n type: meta.property,\n origin: identifier,\n time: new Date().getTime(),\n state: clone(state, 2),\n color: options.color,\n promises: pendingPromises > 0 ? 'pending' : null,\n });\n }\n\n function importIMAClass(path, module = null) {\n try {\n const file = $IMA.Loader.importSync(path);\n const key = module ? module : 'default';\n return file[key] ? file[key] : file;\n } catch (e) {\n console.error('[IMA Devtools]', e.message);\n }\n }\n\n $IMA.Runner.registerPreRunCommand(function () {\n if (!window.__IMA_DEVTOOLS_INIT) {\n return;\n }\n\n registerHook({\n importIMAClass,\n clone,\n aop,\n createHook,\n hookName,\n createCallTrap,\n emit,\n });\n\n let revivePattern = createHook(\n hookName.afterMethod,\n 'reviveClientApp',\n meta => {\n if (meta.payload && typeof meta.payload.then === 'function') {\n meta.payload.then(page => {\n if (page.app) {\n const oc = page.app.oc;\n $IMA.devtool.oc = oc;\n $IMA.devtool.bootstrap = page.app.bootstrap;\n\n $IMA.devtool.manager = oc.create(DevToolManager);\n $IMA.devtool.manager.init();\n }\n });\n }\n }\n );\n\n let imaCore = importIMAClass('@ima/core', true);\n ImaMainModules.forEach(moduleName => {\n const key = `__${moduleName}__`;\n\n Object.defineProperty(imaCore, key, {\n value: imaCore[moduleName],\n enumerable: false,\n configurable: false,\n writable: false,\n });\n\n imaCore[key] = imaCore[moduleName];\n imaCore[moduleName] = createCallTrap({\n target: imaCore,\n object: imaCore,\n property: key,\n pattern: revivePattern,\n });\n });\n });\n}\n\n// IMA v17 check\n$IMA.Runner.registerPreRunCommand(function () {\n try {\n window.__IMA_DEVTOOLS_INIT = true;\n $IMA.Loader.importSync('@ima/core');\n } catch (_) {\n $IMA.devtool.postMessage(\n { message: 'Current IMA.js version is not supported' },\n 'ima:devtool:unsupported'\n );\n window.__IMA_DEVTOOLS_INIT = false;\n }\n});\n"],"names":["t","Date","now","toString","substring","Math","random","AOP_PATTERN","Symbol","AOP_HOOKS","AOP_STATIC_ALLOW","AOP_FILTER_FUNCTION","invokePattern","pattern","meta","Array","isArray","map","rule","Reflect","apply","context","method","isConstructable","func","prototype","constructor","createCallTrap","target","object","property","callTrap","rest","self","payload","undefined","forEach","beforeMethod","args","length","aroundPattern","aroundMethod","original","construct","afterMethod","createHook","name","regular","callback","hook","hookFor","includes","RegExp","test","action","TypeError","hasToRegisterHook","hooks","props","reduce","result","hookName","Object","freeze","beforeGetter","afterGetter","aroundGetter","beforeSetter","afterSetter","aroundSetter","hasToRegisterMethodHook","overOwnProperty","entries","getOwnPropertyDescriptors","aopHooks","lastObject","push","_","aopForMethods","getPrototypeOf","createGetTrap","getTrap","hasProperty","has","get","createSetTrap","setTrap","set","hasToRegisterGetterSetterHook","aopForStatic","originalTarget","hasOwnProperty","call","defineProperty","value","enumerable","writable","Function","descriptor","assign","createProxy","proxy","Proxy","createAspect","applyAop","aop","settings","aopWithConstructor","AOPConstructor","unAop","keys","mergePattern","applyAopToClass","applyAopToInstance","instance","currentTargetPattern","resultPattern","hookValue","concat","DevManager","$dependencies","pageManager","stateManager","window","dispatcher","eventBus","sessionMapStorage","_pageManager","_stateManager","_window","_dispatcher","_eventBus","_sessionMapStorage","init","getWindow","bindEventListener","e","altKey","keyCode","console","log","getState","$IMA","$Version","setState","statePatch","clearAppSource","destroy","clear","ImaMainModules","createDevtool","registerHook","devtool","separatePromisesAndValues","dataMap","promises","values","field","Promise","clone","data","deep","JSON","parse","stringify","message","generateState","overrides","state","emit","identifier","options","id","uid","label","argsPromise","payloadPromise","promise","stateKeys","pendingPromises","key","sum","then","postMessage","type","origin","time","getTime","color","importIMAClass","path","module","file","Loader","importSync","error","Runner","registerPreRunCommand","__IMA_DEVTOOLS_INIT","revivePattern","page","app","oc","bootstrap","manager","create","DevToolManager","imaCore","moduleName","configurable"],"mappings":"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