1 line
25 KiB
JSON
1 line
25 KiB
JSON
{"id":"H+FE","dependencies":[{"name":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map","includedInParent":true,"mtime":499162500000},{"name":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/node_modules/rxjs/src/internal/observable/fromEventPattern.ts","includedInParent":true,"mtime":499162500000},{"name":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/package.json","includedInParent":true,"mtime":1545395749058},{"name":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/node_modules/rxjs/package.json","includedInParent":true,"mtime":1545395355370},{"name":"../Observable","loc":{"line":2,"column":27},"parent":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js","resolved":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/node_modules/rxjs/_esm5/internal/Observable.js"},{"name":"../util/isArray","loc":{"line":3,"column":24},"parent":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js","resolved":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/node_modules/rxjs/_esm5/internal/util/isArray.js"},{"name":"../util/isFunction","loc":{"line":4,"column":27},"parent":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js","resolved":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/node_modules/rxjs/_esm5/internal/util/isFunction.js"},{"name":"../operators/map","loc":{"line":5,"column":20},"parent":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js","resolved":"/Users/philkunz/gitlab/pushrocks_meta/webdetector/node_modules/rxjs/_esm5/internal/operators/map.js"}],"generated":{"js":"\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.fromEventPattern=i;var r=require(\"../Observable\"),e=require(\"../util/isArray\"),t=require(\"../util/isFunction\"),n=require(\"../operators/map\");function i(u,o,a){return a?i(u,o).pipe((0,n.map)(function(r){return(0,e.isArray)(r)?a.apply(void 0,r):a(r)})):new r.Observable(function(r){var e,n=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r.next(1===e.length?e[0]:e)};try{e=u(n)}catch(i){return void r.error(i)}if((0,t.isFunction)(o))return function(){return o(n,e)}})}","map":{"mappings":[{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":0}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":13}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":20}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":35}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":43}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":56}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":57}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":64}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":68}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":76}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":93}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":1,"column":95}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":1,"column":99}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":1,"column":101}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":2,"column":0},"generated":{"line":1,"column":109}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":1,"column":126}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":1,"column":128}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":3,"column":0},"generated":{"line":1,"column":136}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":1,"column":155}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":1,"column":157}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":1,"column":165}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":135,"column":0},"generated":{"line":1,"column":187}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":135,"column":0},"generated":{"line":1,"column":189}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":135,"column":0},"generated":{"line":1,"column":197}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":139,"column":2},"generated":{"line":1,"column":217}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":139,"column":6},"generated":{"line":1,"column":226}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":139,"column":22},"generated":{"line":1,"column":228}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":139,"column":22},"generated":{"line":1,"column":230}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":139,"column":22},"generated":{"line":1,"column":232}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":141,"column":4},"generated":{"line":1,"column":235}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":141,"column":4},"generated":{"line":1,"column":242}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":244}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":246}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":248}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":251}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":257}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":259}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":261}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":266}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":275}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":278}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":285}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":287}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":289}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":298}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":301}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":303}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":314}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":316}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":319}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":144,"column":3},"generated":{"line":1,"column":321}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":327}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":10},"generated":{"line":1,"column":331}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":333}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":20},"generated":{"line":1,"column":344}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":20},"generated":{"line":1,"column":353}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":21},"generated":{"line":1,"column":356}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":150,"column":8},"generated":{"line":1,"column":360}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":21},"generated":{"line":1,"column":362}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":21},"generated":{"line":1,"column":364}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":21},"generated":{"line":1,"column":375}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":21},"generated":{"line":1,"column":379}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":21},"generated":{"line":1,"column":383}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":21},"generated":{"line":1,"column":385}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":21},"generated":{"line":1,"column":388}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":21},"generated":{"line":1,"column":390}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":21},"generated":{"line":1,"column":392}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":21},"generated":{"line":1,"column":394}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":30},"generated":{"line":1,"column":404}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":30},"generated":{"line":1,"column":411}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":415}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":417}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":420}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":4},"generated":{"line":1,"column":430}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":78},"generated":{"line":1,"column":433}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":78},"generated":{"line":1,"column":440}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":78},"generated":{"line":1,"column":442}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":78},"generated":{"line":1,"column":447}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":78},"generated":{"line":1,"column":451}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":78},"generated":{"line":1,"column":453}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":78},"generated":{"line":1,"column":460}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":78},"generated":{"line":1,"column":462}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":147,"column":78},"generated":{"line":1,"column":465}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":151,"column":6},"generated":{"line":1,"column":469}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":152,"column":5},"generated":{"line":1,"column":473}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":152,"column":5},"generated":{"line":1,"column":475}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":152,"column":5},"generated":{"line":1,"column":477}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":1,"column":480}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":153,"column":6},"generated":{"line":1,"column":486}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":155,"column":5},"generated":{"line":1,"column":489}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":154,"column":6},"generated":{"line":1,"column":501}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":154,"column":13},"generated":{"line":1,"column":503}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":154,"column":23},"generated":{"line":1,"column":509}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":158,"column":6},"generated":{"line":1,"column":512}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":158,"column":6},"generated":{"line":1,"column":516}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":158,"column":13},"generated":{"line":1,"column":518}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":158,"column":13},"generated":{"line":1,"column":520}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":158,"column":13},"generated":{"line":1,"column":532}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":162,"column":5},"generated":{"line":1,"column":535}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":162,"column":5},"generated":{"line":1,"column":542}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":162,"column":5},"generated":{"line":1,"column":553}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":162,"column":5},"generated":{"line":1,"column":560}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":162,"column":5},"generated":{"line":1,"column":562}},{"source":"../../../src/internal/observable/fromEventPattern.ts","name":null,"original":{"line":162,"column":5},"generated":{"line":1,"column":564}}],"sources":{"../../../src/internal/observable/fromEventPattern.ts":"import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { fromEvent } from './fromEvent';\nimport { map } from '../operators/map';\n\n/* tslint:disable:max-line-length */\nexport function fromEventPattern<T>(addHandler: (handler: Function) => any, removeHandler?: (handler: Function, signal?: any) => void): Observable<T>;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEventPattern<T>(addHandler: (handler: Function) => any, removeHandler?: (handler: Function, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable<T>;\n/* tslint:enable:max-line-length */\n\n/**\n * Creates an Observable from an arbitrary API for registering event handlers.\n *\n * <span class=\"informal\">When that method for adding event handler was something {@link fromEvent}\n * was not prepared for.</span>\n *\n * ![](fromEventPattern.png)\n *\n * `fromEventPattern` allows you to convert into an Observable any API that supports registering handler functions\n * for events. It is similar to {@link fromEvent}, but far\n * more flexible. In fact, all use cases of {@link fromEvent} could be easily handled by\n * `fromEventPattern` (although in slightly more verbose way).\n *\n * This operator accepts as a first argument an `addHandler` function, which will be injected with\n * handler parameter. That handler is actually an event handler function that you now can pass\n * to API expecting it. `addHandler` will be called whenever Observable\n * returned by the operator is subscribed, so registering handler in API will not\n * necessarily happen when `fromEventPattern` is called.\n *\n * After registration, every time an event that we listen to happens,\n * Observable returned by `fromEventPattern` will emit value that event handler\n * function was called with. Note that if event handler was called with more\n * then one argument, second and following arguments will not appear in the Observable.\n *\n * If API you are using allows to unregister event handlers as well, you can pass to `fromEventPattern`\n * another function - `removeHandler` - as a second parameter. It will be injected\n * with the same handler function as before, which now you can use to unregister\n * it from the API. `removeHandler` will be called when consumer of resulting Observable\n * unsubscribes from it.\n *\n * In some APIs unregistering is actually handled differently. Method registering an event handler\n * returns some kind of token, which is later used to identify which function should\n * be unregistered or it itself has method that unregisters event handler.\n * If that is the case with your API, make sure token returned\n * by registering method is returned by `addHandler`. Then it will be passed\n * as a second argument to `removeHandler`, where you will be able to use it.\n *\n * If you need access to all event handler parameters (not only the first one),\n * or you need to transform them in any way, you can call `fromEventPattern` with optional\n * third parameter - project function which will accept all arguments passed to\n * event handler when it is called. Whatever is returned from project function will appear on\n * resulting stream instead of usual event handlers first argument. This means\n * that default project can be thought of as function that takes its first parameter\n * and ignores the rest.\n *\n * ## Example\n * ### Emits clicks happening on the DOM document\n *\n * ```javascript\n * function addClickHandler(handler) {\n * document.addEventListener('click', handler);\n * }\n *\n * function removeClickHandler(handler) {\n * document.removeEventListener('click', handler);\n * }\n *\n * const clicks = fromEventPattern(\n * addClickHandler,\n * removeClickHandler\n * );\n * clicks.subscribe(x => console.log(x));\n *\n * // Whenever you click anywhere in the browser, DOM MouseEvent\n * // object will be logged.\n * ```\n *\n * ## Example\n * ### Use with API that returns cancellation token\n *\n * ```javascript\n * const token = someAPI.registerEventHandler(function() {});\n * someAPI.unregisterEventHandler(token); // this APIs cancellation method accepts\n * // not handler itself, but special token.\n *\n * const someAPIObservable = fromEventPattern(\n * function(handler) { return someAPI.registerEventHandler(handler); }, // Note that we return the token here...\n * function(handler, token) { someAPI.unregisterEventHandler(token); } // ...to then use it here.\n * );\n * ```\n *\n * ## Example\n * ### Use with project function\n *\n * ```javascript\n * someAPI.registerEventHandler((eventType, eventMessage) => {\n * console.log(eventType, eventMessage); // Logs \"EVENT_TYPE\" \"EVENT_MESSAGE\" to console.\n * });\n *\n * const someAPIObservable = fromEventPattern(\n * handler => someAPI.registerEventHandler(handler),\n * handler => someAPI.unregisterEventHandler(handler)\n * (eventType, eventMessage) => eventType + \" --- \" + eventMessage // without that function only \"EVENT_TYPE\"\n * ); // would be emitted by the Observable\n *\n * someAPIObservable.subscribe(value => console.log(value));\n *\n * // Logs:\n * // \"EVENT_TYPE --- EVENT_MESSAGE\"\n * ```\n *\n * @see {@link fromEvent}\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n *\n * @param {function(handler: Function): any} addHandler A function that takes\n * a `handler` function as argument and attaches it somehow to the actual\n * source of events.\n * @param {function(handler: Function, token?: any): void} [removeHandler] A function that\n * takes a `handler` function as an argument and removes it from the event source. If `addHandler`\n * returns some kind of token, `removeHandler` function will have it as a second parameter.\n * @param {function(...args: any): T} [project] A function to\n * transform results. It takes the arguments from the event handler and\n * should return a single value.\n * @return {Observable<T>} Observable which, when an event happens, emits first parameter\n * passed to registered event handler. Alternatively it emits whatever project function returns\n * at that moment.\n * @static true\n * @name fromEventPattern\n * @owner Observable\n */\n\nexport function fromEventPattern<T>(addHandler: (handler: Function) => any,\n removeHandler?: (handler: Function, signal?: any) => void,\n resultSelector?: (...args: any[]) => T): Observable<T | T[]> {\n\n if (resultSelector) {\n // DEPRECATED PATH\n return fromEventPattern<T>(addHandler, removeHandler).pipe(\n map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))\n );\n }\n\n return new Observable<T | T[]>(subscriber => {\n const handler = (...e: T[]) => subscriber.next(e.length === 1 ? e[0] : e);\n\n let retValue: any;\n try {\n retValue = addHandler(handler);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n\n return () => removeHandler(handler, retValue) ;\n });\n}\n"},"lineCount":null}},"hash":"d12a2346f6321afb670323c844a31dc2","cacheData":{"env":{}}} |