@webex/common 2.16.0 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"names":["fromBase64url","str","UrlSafeBase64","decode","toString","toBase64Url","buffer","Buffer","from","encode","validate"],"sources":["base64.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport UrlSafeBase64 from 'urlsafe-base64';\nimport {Buffer} from 'safe-buffer';\n\nimport isBuffer from './isBuffer';\n\n/**\n * Converts a string from a base64url-encoded string\n * @param {string} str\n * @returns {string}\n */\nexport function fromBase64url(str) {\n return UrlSafeBase64.decode(str).toString();\n}\n\n/**\n * Converts a string to a base64url-encoded string. It also accepts a buffer\n * @param {string|buffer} str\n * @returns {string}\n */\nexport function toBase64Url(str) {\n let buffer = str;\n\n if (!isBuffer(buffer)) {\n buffer = Buffer.from(buffer);\n }\n\n return UrlSafeBase64.encode(buffer);\n}\n\n/**\n * Converts a string to a base64url-encoded string. It also accepts a buffer\n * @param {string|buffer} str\n * @returns {string}\n */\nexport function encode(str) {\n return toBase64Url(str);\n}\n\n/**\n * Converts a string from a base64url-encoded string\n * @param {string} str\n * @returns {string}\n */\nexport function decode(str) {\n return fromBase64url(str);\n}\n\n/**\n * Indicates if the provided string is, in fact, a base64 string\n * @param {String} str\n * @returns {Boolean}\n */\nexport function validate(str) {\n return UrlSafeBase64.validate(str);\n}\n\nexport default {\n fromBase64url,\n toBase64Url,\n encode,\n decode,\n validate\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA;;AACA;;AAEA;;AAPA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACO,SAASA,aAAT,CAAuBC,GAAvB,EAA4B;EACjC,OAAOC,qBAAcC,MAAd,CAAqBF,GAArB,EAA0BG,QAA1B,EAAP;AACD;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASC,WAAT,CAAqBJ,GAArB,EAA0B;EAC/B,IAAIK,MAAM,GAAGL,GAAb;;EAEA,IAAI,CAAC,uBAASK,MAAT,CAAL,EAAuB;IACrBA,MAAM,GAAGC,mBAAOC,IAAP,CAAYF,MAAZ,CAAT;EACD;;EAED,OAAOJ,qBAAcO,MAAd,CAAqBH,MAArB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASG,MAAT,CAAgBR,GAAhB,EAAqB;EAC1B,OAAOI,WAAW,CAACJ,GAAD,CAAlB;AACD;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASE,MAAT,CAAgBF,GAAhB,EAAqB;EAC1B,OAAOD,aAAa,CAACC,GAAD,CAApB;AACD;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASS,QAAT,CAAkBT,GAAlB,EAAuB;EAC5B,OAAOC,qBAAcQ,QAAd,CAAuBT,GAAvB,CAAP;AACD;;eAEc;EACbD,aAAa,EAAbA,aADa;EAEbK,WAAW,EAAXA,WAFa;EAGbI,MAAM,EAANA,MAHa;EAIbN,MAAM,EAANA,MAJa;EAKbO,QAAQ,EAARA;AALa,C"}
1
+ {"version":3,"names":["fromBase64url","str","UrlSafeBase64","decode","toString","toBase64Url","buffer","isBuffer","Buffer","from","encode","validate"],"sources":["base64.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport UrlSafeBase64 from 'urlsafe-base64';\nimport {Buffer} from 'safe-buffer';\n\nimport isBuffer from './isBuffer';\n\n/**\n * Converts a string from a base64url-encoded string\n * @param {string} str\n * @returns {string}\n */\nexport function fromBase64url(str) {\n return UrlSafeBase64.decode(str).toString();\n}\n\n/**\n * Converts a string to a base64url-encoded string. It also accepts a buffer\n * @param {string|buffer} str\n * @returns {string}\n */\nexport function toBase64Url(str) {\n let buffer = str;\n\n if (!isBuffer(buffer)) {\n buffer = Buffer.from(buffer);\n }\n\n return UrlSafeBase64.encode(buffer);\n}\n\n/**\n * Converts a string to a base64url-encoded string. It also accepts a buffer\n * @param {string|buffer} str\n * @returns {string}\n */\nexport function encode(str) {\n return toBase64Url(str);\n}\n\n/**\n * Converts a string from a base64url-encoded string\n * @param {string} str\n * @returns {string}\n */\nexport function decode(str) {\n return fromBase64url(str);\n}\n\n/**\n * Indicates if the provided string is, in fact, a base64 string\n * @param {String} str\n * @returns {Boolean}\n */\nexport function validate(str) {\n return UrlSafeBase64.validate(str);\n}\n\nexport default {\n fromBase64url,\n toBase64Url,\n encode,\n decode,\n validate\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA;;AACA;;AAEA;;AAPA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACO,SAASA,aAAT,CAAuBC,GAAvB,EAA4B;EACjC,OAAOC,oBAAA,CAAcC,MAAd,CAAqBF,GAArB,EAA0BG,QAA1B,EAAP;AACD;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASC,WAAT,CAAqBJ,GAArB,EAA0B;EAC/B,IAAIK,MAAM,GAAGL,GAAb;;EAEA,IAAI,CAAC,IAAAM,iBAAA,EAASD,MAAT,CAAL,EAAuB;IACrBA,MAAM,GAAGE,kBAAA,CAAOC,IAAP,CAAYH,MAAZ,CAAT;EACD;;EAED,OAAOJ,oBAAA,CAAcQ,MAAd,CAAqBJ,MAArB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASI,MAAT,CAAgBT,GAAhB,EAAqB;EAC1B,OAAOI,WAAW,CAACJ,GAAD,CAAlB;AACD;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASE,MAAT,CAAgBF,GAAhB,EAAqB;EAC1B,OAAOD,aAAa,CAACC,GAAD,CAApB;AACD;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASU,QAAT,CAAkBV,GAAlB,EAAuB;EAC5B,OAAOC,oBAAA,CAAcS,QAAd,CAAuBV,GAAvB,CAAP;AACD;;eAEc;EACbD,aAAa,EAAbA,aADa;EAEbK,WAAW,EAAXA,WAFa;EAGbK,MAAM,EAANA,MAHa;EAIbP,MAAM,EAANA,MAJa;EAKbQ,QAAQ,EAARA;AALa,C"}
@@ -1 +1 @@
1
- {"version":3,"names":["mockDetectionObject","getOSName","require","platform","getOSVersion","release","getBrowserName","getBrowserVersion","isBrowser","createDetectionObject","results","name","agent","window","navigator","userAgent","bowser","getParser"],"sources":["browser-detection.js"],"sourcesContent":["import bowser from 'bowser';\nimport {memoize} from 'lodash';\nimport window from 'global/window';\n\nconst mockDetectionObject = {\n /* eslint-disable global-require */\n getOSName: () => require('os').platform(),\n getOSVersion: () => require('os').release(),\n /* eslint-enable global-require */\n getBrowserName: () => '',\n getBrowserVersion: () => '',\n isBrowser: () => false\n};\n\nconst createDetectionObject = (results) => {\n const getOSName = () => results?.getOSName() ?? '';\n const getOSVersion = () => results?.getOSVersion() ?? '';\n\n const getBrowserName = () => results?.getBrowserName() ?? '';\n const getBrowserVersion = () => results?.getBrowserVersion() ?? '';\n\n const isBrowser = (name) => !!results?.isBrowser(name, true);\n\n return {\n getOSName,\n getOSVersion,\n getBrowserName,\n getBrowserVersion,\n isBrowser\n };\n};\n\nexport default memoize((agent) => (agent || window.navigator?.userAgent ?\n createDetectionObject(bowser.getParser(agent || window.navigator.userAgent)) :\n mockDetectionObject\n));\n"],"mappings":";;;;;;;;;;;;;;AAAA;;AAEA;;AAEA,IAAMA,mBAAmB,GAAG;EAC1B;EACAC,SAAS,EAAE;IAAA,OAAMC,OAAO,CAAC,IAAD,CAAP,CAAcC,QAAd,EAAN;EAAA,CAFe;EAG1BC,YAAY,EAAE;IAAA,OAAMF,OAAO,CAAC,IAAD,CAAP,CAAcG,OAAd,EAAN;EAAA,CAHY;;EAI1B;EACAC,cAAc,EAAE;IAAA,OAAM,EAAN;EAAA,CALU;EAM1BC,iBAAiB,EAAE;IAAA,OAAM,EAAN;EAAA,CANO;EAO1BC,SAAS,EAAE;IAAA,OAAM,KAAN;EAAA;AAPe,CAA5B;;AAUA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,OAAD,EAAa;EACzC,IAAMT,SAAS,GAAG,SAAZA,SAAY;IAAA;;IAAA,6BAAMS,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAET,SAAT,EAAN,mEAA8B,EAA9B;EAAA,CAAlB;;EACA,IAAMG,YAAY,GAAG,SAAfA,YAAe;IAAA;;IAAA,gCAAMM,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAEN,YAAT,EAAN,yEAAiC,EAAjC;EAAA,CAArB;;EAEA,IAAME,cAAc,GAAG,SAAjBA,cAAiB;IAAA;;IAAA,gCAAMI,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAEJ,cAAT,EAAN,yEAAmC,EAAnC;EAAA,CAAvB;;EACA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB;IAAA;;IAAA,gCAAMG,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAEH,iBAAT,EAAN,yEAAsC,EAAtC;EAAA,CAA1B;;EAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACG,IAAD;IAAA,OAAU,CAAC,EAACD,OAAD,aAACA,OAAD,eAACA,OAAO,CAAEF,SAAT,CAAmBG,IAAnB,EAAyB,IAAzB,CAAD,CAAX;EAAA,CAAlB;;EAEA,OAAO;IACLV,SAAS,EAATA,SADK;IAELG,YAAY,EAAZA,YAFK;IAGLE,cAAc,EAAdA,cAHK;IAILC,iBAAiB,EAAjBA,iBAJK;IAKLC,SAAS,EAATA;EALK,CAAP;AAOD,CAhBD;;eAkBe,uBAAQ,UAACI,KAAD;EAAA;;EAAA,OAAYA,KAAK,yBAAIC,gBAAOC,SAAX,8CAAI,kBAAkBC,SAA3B,GACjCN,qBAAqB,CAACO,gBAAOC,SAAP,CAAiBL,KAAK,IAAIC,gBAAOC,SAAP,CAAiBC,SAA3C,CAAD,CADY,GAEjCf,mBAFqB;AAAA,CAAR,C"}
1
+ {"version":3,"names":["mockDetectionObject","getOSName","require","platform","getOSVersion","release","getBrowserName","getBrowserVersion","isBrowser","createDetectionObject","results","name","agent","window","navigator","userAgent","bowser","getParser"],"sources":["browser-detection.js"],"sourcesContent":["import bowser from 'bowser';\nimport {memoize} from 'lodash';\nimport window from 'global/window';\n\nconst mockDetectionObject = {\n /* eslint-disable global-require */\n getOSName: () => require('os').platform(),\n getOSVersion: () => require('os').release(),\n /* eslint-enable global-require */\n getBrowserName: () => '',\n getBrowserVersion: () => '',\n isBrowser: () => false\n};\n\nconst createDetectionObject = (results) => {\n const getOSName = () => results?.getOSName() ?? '';\n const getOSVersion = () => results?.getOSVersion() ?? '';\n\n const getBrowserName = () => results?.getBrowserName() ?? '';\n const getBrowserVersion = () => results?.getBrowserVersion() ?? '';\n\n const isBrowser = (name) => !!results?.isBrowser(name, true);\n\n return {\n getOSName,\n getOSVersion,\n getBrowserName,\n getBrowserVersion,\n isBrowser\n };\n};\n\nexport default memoize((agent) => (agent || window.navigator?.userAgent ?\n createDetectionObject(bowser.getParser(agent || window.navigator.userAgent)) :\n mockDetectionObject\n));\n"],"mappings":";;;;;;;;;;;;;;AAAA;;AAEA;;AAEA,IAAMA,mBAAmB,GAAG;EAC1B;EACAC,SAAS,EAAE;IAAA,OAAMC,OAAO,CAAC,IAAD,CAAP,CAAcC,QAAd,EAAN;EAAA,CAFe;EAG1BC,YAAY,EAAE;IAAA,OAAMF,OAAO,CAAC,IAAD,CAAP,CAAcG,OAAd,EAAN;EAAA,CAHY;;EAI1B;EACAC,cAAc,EAAE;IAAA,OAAM,EAAN;EAAA,CALU;EAM1BC,iBAAiB,EAAE;IAAA,OAAM,EAAN;EAAA,CANO;EAO1BC,SAAS,EAAE;IAAA,OAAM,KAAN;EAAA;AAPe,CAA5B;;AAUA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,OAAD,EAAa;EACzC,IAAMT,SAAS,GAAG,SAAZA,SAAY;IAAA;;IAAA,6BAAMS,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAET,SAAT,EAAN,mEAA8B,EAA9B;EAAA,CAAlB;;EACA,IAAMG,YAAY,GAAG,SAAfA,YAAe;IAAA;;IAAA,gCAAMM,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAEN,YAAT,EAAN,yEAAiC,EAAjC;EAAA,CAArB;;EAEA,IAAME,cAAc,GAAG,SAAjBA,cAAiB;IAAA;;IAAA,gCAAMI,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAEJ,cAAT,EAAN,yEAAmC,EAAnC;EAAA,CAAvB;;EACA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB;IAAA;;IAAA,gCAAMG,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAEH,iBAAT,EAAN,yEAAsC,EAAtC;EAAA,CAA1B;;EAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACG,IAAD;IAAA,OAAU,CAAC,EAACD,OAAD,aAACA,OAAD,eAACA,OAAO,CAAEF,SAAT,CAAmBG,IAAnB,EAAyB,IAAzB,CAAD,CAAX;EAAA,CAAlB;;EAEA,OAAO;IACLV,SAAS,EAATA,SADK;IAELG,YAAY,EAAZA,YAFK;IAGLE,cAAc,EAAdA,cAHK;IAILC,iBAAiB,EAAjBA,iBAJK;IAKLC,SAAS,EAATA;EALK,CAAP;AAOD,CAhBD;;eAkBe,uBAAQ,UAACI,KAAD;EAAA;;EAAA,OAAYA,KAAK,yBAAIC,eAAA,CAAOC,SAAX,8CAAI,kBAAkBC,SAA3B,GACjCN,qBAAqB,CAACO,eAAA,CAAOC,SAAP,CAAiBL,KAAK,IAAIC,eAAA,CAAOC,SAAP,CAAiBC,SAA3C,CAAD,CADY,GAEjCf,mBAFqB;AAAA,CAAR,C"}
@@ -1 +1 @@
1
- {"version":3,"names":["createEventEnvelope","webex","resource","ensureMyIdIsAvailable","then","resolve","createdBy","internal","me","id","orgId","ownedBy","SDK_EVENT","EXTERNAL","OWNER","CREATOR","status","STATUS","ACTIVE","created","Date","toISOString","data","catch","e","reject","Error","message","people","get","person"],"sources":["event-envelope.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {SDK_EVENT} from '@webex/common';\n\n/**\n * Creates a 'webhook' envelope to wrap Webex events in\n * @param {object} webex - sdk object\n * @param {string} resource - resource to create an envelope for\n * @returns {object} - Returns a promise of an event envelope object\n */\nexport function createEventEnvelope(webex, resource) {\n return ensureMyIdIsAvailable(webex)\n .then(() => Promise.resolve({\n createdBy: webex.internal.me.id,\n orgId: webex.internal.me.orgId,\n resource,\n // id -- webhook id concept does not correlate to SDK socket event\n // name -- webhook name concept does not correlate to SDK socket event\n // targetUrl -- targetUrl concept does not correlate to SDK socket event\n // secret -- secret concept does not correlate to SDK socket event\n ownedBy: SDK_EVENT.EXTERNAL.OWNER.CREATOR,\n status: SDK_EVENT.EXTERNAL.STATUS.ACTIVE,\n created: new Date().toISOString(),\n data: {}\n })).catch((e) => {\n Promise.reject(new Error(`Unable to get person info for ${resource} \\\nevent envelope: ${e.message}`));\n });\n}\n\n/**\n * Stores SDK users info in the sdk object if it doesn't already exist\n * @param {object} webex - sdk object\n * @returns {Promise} - Returns a promise that user info will be available\n */\nexport async function ensureMyIdIsAvailable(webex) {\n // If we don't have it, save info about our user\n if (('me' in webex.internal)) {\n return Promise.resolve();\n }\n\n return webex.people.get('me')\n .then((person) => {\n webex.internal.me = person;\n\n return Promise.resolve();\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAIA;;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAT,CAA6BC,KAA7B,EAAoCC,QAApC,EAA8C;EACnD,OAAOC,qBAAqB,CAACF,KAAD,CAArB,CACJG,IADI,CACC;IAAA,OAAM,iBAAQC,OAAR,CAAgB;MAC1BC,SAAS,EAAEL,KAAK,CAACM,QAAN,CAAeC,EAAf,CAAkBC,EADH;MAE1BC,KAAK,EAAET,KAAK,CAACM,QAAN,CAAeC,EAAf,CAAkBE,KAFC;MAG1BR,QAAQ,EAARA,QAH0B;MAI1B;MACA;MACA;MACA;MACAS,OAAO,EAAEC,kBAAUC,QAAV,CAAmBC,KAAnB,CAAyBC,OARR;MAS1BC,MAAM,EAAEJ,kBAAUC,QAAV,CAAmBI,MAAnB,CAA0BC,MATR;MAU1BC,OAAO,EAAE,IAAIC,IAAJ,GAAWC,WAAX,EAViB;MAW1BC,IAAI,EAAE;IAXoB,CAAhB,CAAN;EAAA,CADD,EAaDC,KAbC,CAaK,UAACC,CAAD,EAAO;IACf,iBAAQC,MAAR,CAAe,IAAIC,KAAJ,yCAA2CxB,QAA3C,8BACHsB,CAAC,CAACG,OADC,EAAf;EAED,CAhBI,CAAP;AAiBD;AAED;AACA;AACA;AACA;AACA;;;SACsBxB,qB;;;;;mGAAf,iBAAqCF,KAArC;IAAA;MAAA;QAAA;UAAA;YAAA,MAEA,QAAQA,KAAK,CAACM,QAFd;cAAA;cAAA;YAAA;;YAAA,iCAGI,iBAAQF,OAAR,EAHJ;;UAAA;YAAA,iCAMEJ,KAAK,CAAC2B,MAAN,CAAaC,GAAb,CAAiB,IAAjB,EACJzB,IADI,CACC,UAAC0B,MAAD,EAAY;cAChB7B,KAAK,CAACM,QAAN,CAAeC,EAAf,GAAoBsB,MAApB;cAEA,OAAO,iBAAQzB,OAAR,EAAP;YACD,CALI,CANF;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,C"}
1
+ {"version":3,"names":["createEventEnvelope","webex","resource","ensureMyIdIsAvailable","then","resolve","createdBy","internal","me","id","orgId","ownedBy","SDK_EVENT","EXTERNAL","OWNER","CREATOR","status","STATUS","ACTIVE","created","Date","toISOString","data","catch","e","reject","Error","message","people","get","person"],"sources":["event-envelope.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {SDK_EVENT} from '@webex/common';\n\n/**\n * Creates a 'webhook' envelope to wrap Webex events in\n * @param {object} webex - sdk object\n * @param {string} resource - resource to create an envelope for\n * @returns {object} - Returns a promise of an event envelope object\n */\nexport function createEventEnvelope(webex, resource) {\n return ensureMyIdIsAvailable(webex)\n .then(() => Promise.resolve({\n createdBy: webex.internal.me.id,\n orgId: webex.internal.me.orgId,\n resource,\n // id -- webhook id concept does not correlate to SDK socket event\n // name -- webhook name concept does not correlate to SDK socket event\n // targetUrl -- targetUrl concept does not correlate to SDK socket event\n // secret -- secret concept does not correlate to SDK socket event\n ownedBy: SDK_EVENT.EXTERNAL.OWNER.CREATOR,\n status: SDK_EVENT.EXTERNAL.STATUS.ACTIVE,\n created: new Date().toISOString(),\n data: {}\n })).catch((e) => {\n Promise.reject(new Error(`Unable to get person info for ${resource} \\\nevent envelope: ${e.message}`));\n });\n}\n\n/**\n * Stores SDK users info in the sdk object if it doesn't already exist\n * @param {object} webex - sdk object\n * @returns {Promise} - Returns a promise that user info will be available\n */\nexport async function ensureMyIdIsAvailable(webex) {\n // If we don't have it, save info about our user\n if (('me' in webex.internal)) {\n return Promise.resolve();\n }\n\n return webex.people.get('me')\n .then((person) => {\n webex.internal.me = person;\n\n return Promise.resolve();\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAIA;;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAT,CAA6BC,KAA7B,EAAoCC,QAApC,EAA8C;EACnD,OAAOC,qBAAqB,CAACF,KAAD,CAArB,CACJG,IADI,CACC;IAAA,OAAM,iBAAQC,OAAR,CAAgB;MAC1BC,SAAS,EAAEL,KAAK,CAACM,QAAN,CAAeC,EAAf,CAAkBC,EADH;MAE1BC,KAAK,EAAET,KAAK,CAACM,QAAN,CAAeC,EAAf,CAAkBE,KAFC;MAG1BR,QAAQ,EAARA,QAH0B;MAI1B;MACA;MACA;MACA;MACAS,OAAO,EAAEC,iBAAA,CAAUC,QAAV,CAAmBC,KAAnB,CAAyBC,OARR;MAS1BC,MAAM,EAAEJ,iBAAA,CAAUC,QAAV,CAAmBI,MAAnB,CAA0BC,MATR;MAU1BC,OAAO,EAAE,IAAIC,IAAJ,GAAWC,WAAX,EAViB;MAW1BC,IAAI,EAAE;IAXoB,CAAhB,CAAN;EAAA,CADD,EAaDC,KAbC,CAaK,UAACC,CAAD,EAAO;IACf,iBAAQC,MAAR,CAAe,IAAIC,KAAJ,yCAA2CxB,QAA3C,8BACHsB,CAAC,CAACG,OADC,EAAf;EAED,CAhBI,CAAP;AAiBD;AAED;AACA;AACA;AACA;AACA;;;SACsBxB,qB;;;;;mGAAf,iBAAqCF,KAArC;IAAA;MAAA;QAAA;UAAA;YAAA,MAEA,QAAQA,KAAK,CAACM,QAFd;cAAA;cAAA;YAAA;;YAAA,iCAGI,iBAAQF,OAAR,EAHJ;;UAAA;YAAA,iCAMEJ,KAAK,CAAC2B,MAAN,CAAaC,GAAb,CAAiB,IAAjB,EACJzB,IADI,CACC,UAAC0B,MAAD,EAAY;cAChB7B,KAAK,CAACM,QAAN,CAAeC,EAAf,GAAoBsB,MAApB;cAEA,OAAO,iBAAQzB,OAAR,EAAP;YACD,CALI,CANF;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,C"}
@@ -1 +1 @@
1
- {"version":3,"names":["W","M","WeakMappedMappedMap","flights","oneFlight","params","length","oneFlightDecorator","options","cacheFailures","cacheSuccesses","keyFactory","target","prop","descriptor","key","value","oneFlightExecutor","fn","innerKey","args","flight","get","catch","reason","delete","reject","then","result","set","prototype"],"sources":["one-flight.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {wrap} from 'lodash';\n\nimport make from './template-container';\n\n// Alias Map and WeakMap to get around a babel compiler bug\nconst W = WeakMap;\nconst M = Map;\nconst WeakMappedMappedMap = make(W, M, M);\n\nconst flights = new WeakMappedMappedMap();\n\n/**\n * @memberof Util\n * @param {Object} options\n * @param {Function} options.keyFactory\n * @param {boolean} options.cacheFailures\n * @param {boolean} options.cacheSuccesses\n * @returns {Function}\n */\nexport default function oneFlight(...params) {\n if (params.length === 3) {\n return Reflect.apply(oneFlightDecorator, null, params);\n }\n\n const options = params[0] || {};\n\n const {\n cacheFailures,\n cacheSuccesses,\n keyFactory\n } = options;\n\n return oneFlightDecorator;\n\n /**\n * @param {Object} target\n * @param {string} prop\n * @param {Object} descriptor\n * @private\n * @returns {Object}\n */\n function oneFlightDecorator(target, prop, descriptor) {\n const key = prop;\n\n descriptor.value = wrap(descriptor.value, function oneFlightExecutor(fn, ...args) {\n let innerKey = key;\n\n if (keyFactory) {\n innerKey = `${innerKey}_${keyFactory(...args)}`;\n }\n\n /* eslint no-invalid-this: [0] */\n let flight = flights.get(this, target, innerKey);\n\n if (flight) {\n return flight;\n }\n\n flight = Reflect.apply(fn, this, args);\n if (!cacheFailures && flight && flight.catch) {\n flight = flight.catch((reason) => {\n flights.delete(this, target, innerKey);\n\n return Promise.reject(reason);\n });\n }\n\n if (!cacheSuccesses && flight && flight.then) {\n flight = flight.then((result) => {\n flights.delete(this, target, innerKey);\n\n return result;\n });\n }\n\n flights.set(this, target, innerKey, flight);\n\n return flight;\n });\n\n // This *should* make decorators compatible with AmpersandState class\n // definitions\n if (typeof target === 'object' && !target.prototype) {\n target[prop] = descriptor.value;\n }\n\n return descriptor;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA;;AAEA;AACA,IAAMA,CAAC,mBAAP;AACA,IAAMC,CAAC,eAAP;AACA,IAAMC,mBAAmB,GAAG,gCAAKF,CAAL,EAAQC,CAAR,EAAWA,CAAX,CAA5B;AAEA,IAAME,OAAO,GAAG,IAAID,mBAAJ,EAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASE,SAAT,GAA8B;EAAA,kCAARC,MAAQ;IAARA,MAAQ;EAAA;;EAC3C,IAAIA,MAAM,CAACC,MAAP,KAAkB,CAAtB,EAAyB;IACvB,OAAO,oBAAcC,kBAAd,EAAkC,IAAlC,EAAwCF,MAAxC,CAAP;EACD;;EAED,IAAMG,OAAO,GAAGH,MAAM,CAAC,CAAD,CAAN,IAAa,EAA7B;EAEA,IACEI,aADF,GAIID,OAJJ,CACEC,aADF;EAAA,IAEEC,cAFF,GAIIF,OAJJ,CAEEE,cAFF;EAAA,IAGEC,UAHF,GAIIH,OAJJ,CAGEG,UAHF;EAMA,OAAOJ,kBAAP;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;;EACE,SAASA,kBAAT,CAA4BK,MAA5B,EAAoCC,IAApC,EAA0CC,UAA1C,EAAsD;IACpD,IAAMC,GAAG,GAAGF,IAAZ;IAEAC,UAAU,CAACE,KAAX,GAAmB,oBAAKF,UAAU,CAACE,KAAhB,EAAuB,SAASC,iBAAT,CAA2BC,EAA3B,EAAwC;MAAA;;MAChF,IAAIC,QAAQ,GAAGJ,GAAf;;MADgF,mCAANK,IAAM;QAANA,IAAM;MAAA;;MAGhF,IAAIT,UAAJ,EAAgB;QACdQ,QAAQ,aAAMA,QAAN,cAAkBR,UAAU,MAAV,SAAcS,IAAd,CAAlB,CAAR;MACD;MAED;;;MACA,IAAIC,MAAM,GAAGlB,OAAO,CAACmB,GAAR,CAAY,IAAZ,EAAkBV,MAAlB,EAA0BO,QAA1B,CAAb;;MAEA,IAAIE,MAAJ,EAAY;QACV,OAAOA,MAAP;MACD;;MAEDA,MAAM,GAAG,oBAAcH,EAAd,EAAkB,IAAlB,EAAwBE,IAAxB,CAAT;;MACA,IAAI,CAACX,aAAD,IAAkBY,MAAlB,IAA4BA,MAAM,CAACE,KAAvC,EAA8C;QAC5CF,MAAM,GAAGA,MAAM,CAACE,KAAP,CAAa,UAACC,MAAD,EAAY;UAChCrB,OAAO,CAACsB,MAAR,CAAe,KAAf,EAAqBb,MAArB,EAA6BO,QAA7B;UAEA,OAAO,iBAAQO,MAAR,CAAeF,MAAf,CAAP;QACD,CAJQ,CAAT;MAKD;;MAED,IAAI,CAACd,cAAD,IAAmBW,MAAnB,IAA6BA,MAAM,CAACM,IAAxC,EAA8C;QAC5CN,MAAM,GAAGA,MAAM,CAACM,IAAP,CAAY,UAACC,MAAD,EAAY;UAC/BzB,OAAO,CAACsB,MAAR,CAAe,KAAf,EAAqBb,MAArB,EAA6BO,QAA7B;UAEA,OAAOS,MAAP;QACD,CAJQ,CAAT;MAKD;;MAEDzB,OAAO,CAAC0B,GAAR,CAAY,IAAZ,EAAkBjB,MAAlB,EAA0BO,QAA1B,EAAoCE,MAApC;MAEA,OAAOA,MAAP;IACD,CAlCkB,CAAnB,CAHoD,CAuCpD;IACA;;IACA,IAAI,sBAAOT,MAAP,MAAkB,QAAlB,IAA8B,CAACA,MAAM,CAACkB,SAA1C,EAAqD;MACnDlB,MAAM,CAACC,IAAD,CAAN,GAAeC,UAAU,CAACE,KAA1B;IACD;;IAED,OAAOF,UAAP;EACD;AACF"}
1
+ {"version":3,"names":["W","M","WeakMappedMappedMap","make","flights","oneFlight","params","length","oneFlightDecorator","options","cacheFailures","cacheSuccesses","keyFactory","target","prop","descriptor","key","value","oneFlightExecutor","fn","innerKey","args","flight","get","catch","reason","delete","reject","then","result","set","prototype"],"sources":["one-flight.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {wrap} from 'lodash';\n\nimport make from './template-container';\n\n// Alias Map and WeakMap to get around a babel compiler bug\nconst W = WeakMap;\nconst M = Map;\nconst WeakMappedMappedMap = make(W, M, M);\n\nconst flights = new WeakMappedMappedMap();\n\n/**\n * @memberof Util\n * @param {Object} options\n * @param {Function} options.keyFactory\n * @param {boolean} options.cacheFailures\n * @param {boolean} options.cacheSuccesses\n * @returns {Function}\n */\nexport default function oneFlight(...params) {\n if (params.length === 3) {\n return Reflect.apply(oneFlightDecorator, null, params);\n }\n\n const options = params[0] || {};\n\n const {\n cacheFailures,\n cacheSuccesses,\n keyFactory\n } = options;\n\n return oneFlightDecorator;\n\n /**\n * @param {Object} target\n * @param {string} prop\n * @param {Object} descriptor\n * @private\n * @returns {Object}\n */\n function oneFlightDecorator(target, prop, descriptor) {\n const key = prop;\n\n descriptor.value = wrap(descriptor.value, function oneFlightExecutor(fn, ...args) {\n let innerKey = key;\n\n if (keyFactory) {\n innerKey = `${innerKey}_${keyFactory(...args)}`;\n }\n\n /* eslint no-invalid-this: [0] */\n let flight = flights.get(this, target, innerKey);\n\n if (flight) {\n return flight;\n }\n\n flight = Reflect.apply(fn, this, args);\n if (!cacheFailures && flight && flight.catch) {\n flight = flight.catch((reason) => {\n flights.delete(this, target, innerKey);\n\n return Promise.reject(reason);\n });\n }\n\n if (!cacheSuccesses && flight && flight.then) {\n flight = flight.then((result) => {\n flights.delete(this, target, innerKey);\n\n return result;\n });\n }\n\n flights.set(this, target, innerKey, flight);\n\n return flight;\n });\n\n // This *should* make decorators compatible with AmpersandState class\n // definitions\n if (typeof target === 'object' && !target.prototype) {\n target[prop] = descriptor.value;\n }\n\n return descriptor;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA;;AAEA;AACA,IAAMA,CAAC,mBAAP;AACA,IAAMC,CAAC,eAAP;AACA,IAAMC,mBAAmB,GAAG,IAAAC,0BAAA,EAAKH,CAAL,EAAQC,CAAR,EAAWA,CAAX,CAA5B;AAEA,IAAMG,OAAO,GAAG,IAAIF,mBAAJ,EAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASG,SAAT,GAA8B;EAAA,kCAARC,MAAQ;IAARA,MAAQ;EAAA;;EAC3C,IAAIA,MAAM,CAACC,MAAP,KAAkB,CAAtB,EAAyB;IACvB,OAAO,oBAAcC,kBAAd,EAAkC,IAAlC,EAAwCF,MAAxC,CAAP;EACD;;EAED,IAAMG,OAAO,GAAGH,MAAM,CAAC,CAAD,CAAN,IAAa,EAA7B;EAEA,IACEI,aADF,GAIID,OAJJ,CACEC,aADF;EAAA,IAEEC,cAFF,GAIIF,OAJJ,CAEEE,cAFF;EAAA,IAGEC,UAHF,GAIIH,OAJJ,CAGEG,UAHF;EAMA,OAAOJ,kBAAP;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;;EACE,SAASA,kBAAT,CAA4BK,MAA5B,EAAoCC,IAApC,EAA0CC,UAA1C,EAAsD;IACpD,IAAMC,GAAG,GAAGF,IAAZ;IAEAC,UAAU,CAACE,KAAX,GAAmB,oBAAKF,UAAU,CAACE,KAAhB,EAAuB,SAASC,iBAAT,CAA2BC,EAA3B,EAAwC;MAAA;;MAChF,IAAIC,QAAQ,GAAGJ,GAAf;;MADgF,mCAANK,IAAM;QAANA,IAAM;MAAA;;MAGhF,IAAIT,UAAJ,EAAgB;QACdQ,QAAQ,aAAMA,QAAN,cAAkBR,UAAU,MAAV,SAAcS,IAAd,CAAlB,CAAR;MACD;MAED;;;MACA,IAAIC,MAAM,GAAGlB,OAAO,CAACmB,GAAR,CAAY,IAAZ,EAAkBV,MAAlB,EAA0BO,QAA1B,CAAb;;MAEA,IAAIE,MAAJ,EAAY;QACV,OAAOA,MAAP;MACD;;MAEDA,MAAM,GAAG,oBAAcH,EAAd,EAAkB,IAAlB,EAAwBE,IAAxB,CAAT;;MACA,IAAI,CAACX,aAAD,IAAkBY,MAAlB,IAA4BA,MAAM,CAACE,KAAvC,EAA8C;QAC5CF,MAAM,GAAGA,MAAM,CAACE,KAAP,CAAa,UAACC,MAAD,EAAY;UAChCrB,OAAO,CAACsB,MAAR,CAAe,KAAf,EAAqBb,MAArB,EAA6BO,QAA7B;UAEA,OAAO,iBAAQO,MAAR,CAAeF,MAAf,CAAP;QACD,CAJQ,CAAT;MAKD;;MAED,IAAI,CAACd,cAAD,IAAmBW,MAAnB,IAA6BA,MAAM,CAACM,IAAxC,EAA8C;QAC5CN,MAAM,GAAGA,MAAM,CAACM,IAAP,CAAY,UAACC,MAAD,EAAY;UAC/BzB,OAAO,CAACsB,MAAR,CAAe,KAAf,EAAqBb,MAArB,EAA6BO,QAA7B;UAEA,OAAOS,MAAP;QACD,CAJQ,CAAT;MAKD;;MAEDzB,OAAO,CAAC0B,GAAR,CAAY,IAAZ,EAAkBjB,MAAlB,EAA0BO,QAA1B,EAAoCE,MAApC;MAEA,OAAOA,MAAP;IACD,CAlCkB,CAAnB,CAHoD,CAuCpD;IACA;;IACA,IAAI,sBAAOT,MAAP,MAAkB,QAAlB,IAA8B,CAACA,MAAM,CAACkB,SAA1C,EAAqD;MACnDlB,MAAM,CAACC,IAAD,CAAN,GAAeC,UAAU,CAACE,KAA1B;IACD;;IAED,OAAOF,UAAP;EACD;AACF"}
package/dist/retry.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["retry","params","options","backoff","delay","maxAttempts","strategyOptions","initialDelay","maxDelay","length","retryDecorator","target","prop","descriptor","value","retryExecutor","fn","args","emitter","EventEmitter","promise","resolve","reject","call","cb","innerPromise","on","emit","bind","then","res","catch","reason","Error","err","setStrategy","ExponentialStrategy","failAfter","start","key","callback","prototype"],"sources":["retry.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\n\nimport {defaults, isFunction, wrap} from 'lodash';\nimport backoff from 'backoff';\n\n/* eslint max-nested-callbacks: [0] */\n\n/**\n * Makes a promise-returning method retryable according to the specified backoff\n * pattern\n * @param {Object} options\n * @param {boolean} options.backoff\n * @param {number} options.delay\n * @param {number} options.initialDelay\n * @param {number} options.maxAttempts\n * @param {number} options.maxDelay\n *\n * @returns {Function}\n */\nexport default function retry(...params) {\n let options = params[0] || {};\n\n options = Object.assign({}, options);\n defaults(options, {\n backoff: true,\n delay: 1,\n maxAttempts: 3\n });\n\n let strategyOptions;\n\n if (options.backoff) {\n strategyOptions = {\n initialDelay: options.delay,\n maxDelay: options.maxDelay\n };\n }\n else {\n strategyOptions = {\n initialDelay: 1,\n maxDelay: 1\n };\n }\n\n if (params.length === 3) {\n return Reflect.apply(retryDecorator, null, params);\n }\n\n return retryDecorator;\n\n /**\n * @param {Object} target\n * @param {string} prop\n * @param {Object} descriptor\n * @private\n * @returns {Object}\n */\n function retryDecorator(target, prop, descriptor) {\n descriptor.value = wrap(descriptor.value, function retryExecutor(fn, ...args) {\n const emitter = new EventEmitter();\n const promise = new Promise((resolve, reject) => {\n // backoff.call is not Function.prototype.call; it's an unfortunate naming\n // collision.\n /* eslint prefer-reflect: [0] */\n const call = backoff.call(\n (cb) => {\n /* eslint no-invalid-this: [0] */\n const innerPromise = Reflect.apply(fn, this, args);\n\n if (isFunction(innerPromise.on)) {\n innerPromise.on('progress', emitter.emit.bind(emitter, 'progress'));\n innerPromise.on('upload-progress', emitter.emit.bind(emitter, 'upload-progress'));\n innerPromise.on('download-progress', emitter.emit.bind(emitter, 'download-progress'));\n }\n\n return innerPromise\n .then((res) => {\n cb(null, res);\n })\n .catch((reason) => {\n if (!reason) {\n reason = new Error('retryable method failed without providing an error object');\n }\n cb(reason);\n });\n },\n (err, res) => {\n if (err) {\n return reject(err);\n }\n\n return resolve(res);\n }\n );\n\n call.setStrategy(new backoff.ExponentialStrategy(strategyOptions));\n if (options.maxAttempts) {\n call.failAfter(options.maxAttempts - 1);\n }\n\n call.start();\n });\n\n promise.on = function on(key, callback) {\n emitter.on(key, callback);\n\n return promise;\n };\n\n return promise;\n });\n\n // This *should* make decorators compatible with AmpersandState class\n // definitions\n if (typeof target === 'object' && !target.prototype) {\n target[prop] = descriptor.value;\n }\n\n return descriptor;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["retry","params","options","backoff","delay","maxAttempts","strategyOptions","initialDelay","maxDelay","length","retryDecorator","target","prop","descriptor","value","retryExecutor","fn","args","emitter","EventEmitter","promise","resolve","reject","call","cb","innerPromise","on","emit","bind","then","res","catch","reason","Error","err","setStrategy","ExponentialStrategy","failAfter","start","key","callback","prototype"],"sources":["retry.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\n\nimport {defaults, isFunction, wrap} from 'lodash';\nimport backoff from 'backoff';\n\n/* eslint max-nested-callbacks: [0] */\n\n/**\n * Makes a promise-returning method retryable according to the specified backoff\n * pattern\n * @param {Object} options\n * @param {boolean} options.backoff\n * @param {number} options.delay\n * @param {number} options.initialDelay\n * @param {number} options.maxAttempts\n * @param {number} options.maxDelay\n *\n * @returns {Function}\n */\nexport default function retry(...params) {\n let options = params[0] || {};\n\n options = Object.assign({}, options);\n defaults(options, {\n backoff: true,\n delay: 1,\n maxAttempts: 3\n });\n\n let strategyOptions;\n\n if (options.backoff) {\n strategyOptions = {\n initialDelay: options.delay,\n maxDelay: options.maxDelay\n };\n }\n else {\n strategyOptions = {\n initialDelay: 1,\n maxDelay: 1\n };\n }\n\n if (params.length === 3) {\n return Reflect.apply(retryDecorator, null, params);\n }\n\n return retryDecorator;\n\n /**\n * @param {Object} target\n * @param {string} prop\n * @param {Object} descriptor\n * @private\n * @returns {Object}\n */\n function retryDecorator(target, prop, descriptor) {\n descriptor.value = wrap(descriptor.value, function retryExecutor(fn, ...args) {\n const emitter = new EventEmitter();\n const promise = new Promise((resolve, reject) => {\n // backoff.call is not Function.prototype.call; it's an unfortunate naming\n // collision.\n /* eslint prefer-reflect: [0] */\n const call = backoff.call(\n (cb) => {\n /* eslint no-invalid-this: [0] */\n const innerPromise = Reflect.apply(fn, this, args);\n\n if (isFunction(innerPromise.on)) {\n innerPromise.on('progress', emitter.emit.bind(emitter, 'progress'));\n innerPromise.on('upload-progress', emitter.emit.bind(emitter, 'upload-progress'));\n innerPromise.on('download-progress', emitter.emit.bind(emitter, 'download-progress'));\n }\n\n return innerPromise\n .then((res) => {\n cb(null, res);\n })\n .catch((reason) => {\n if (!reason) {\n reason = new Error('retryable method failed without providing an error object');\n }\n cb(reason);\n });\n },\n (err, res) => {\n if (err) {\n return reject(err);\n }\n\n return resolve(res);\n }\n );\n\n call.setStrategy(new backoff.ExponentialStrategy(strategyOptions));\n if (options.maxAttempts) {\n call.failAfter(options.maxAttempts - 1);\n }\n\n call.start();\n });\n\n promise.on = function on(key, callback) {\n emitter.on(key, callback);\n\n return promise;\n };\n\n return promise;\n });\n\n // This *should* make decorators compatible with AmpersandState class\n // definitions\n if (typeof target === 'object' && !target.prototype) {\n target[prop] = descriptor.value;\n }\n\n return descriptor;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["make","containers","TopContainer","shift","data","sizes","ChildContainer","length","name","concat","map","container","join","Container","args","set","get","ret","clear","key","mine","keys","delete","next","size","undefined","overwrite","has","insert","util","inspect","depth","add","push","TypeError"],"sources":["template-container.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport util from 'util';\n\n/**\n * Factory which produces a multi-keyed container based on the provided set of\n * constructors\n * @param {mixed} containers\n * @returns {Container}\n */\nfunction make(...containers) {\n const TopContainer = containers.shift();\n\n const data = new WeakMap();\n const sizes = new WeakMap();\n\n const ChildContainer = containers.length > 1 ? make(...containers) : containers[0];\n\n const name = `(${[TopContainer.name].concat(containers.map((container) => container.name)).join(', ')})`;\n\n /**\n * Container that wraps an arbitrary set of tupples to their values\n */\n class Container {\n /**\n * @constructs Container\n */\n constructor(...args) {\n data.set(this, new TopContainer(...args));\n sizes.set(this, 0);\n }\n\n /**\n * getter for .size\n * @returns {number}\n */\n get size() {\n return sizes.get(this);\n }\n\n /**\n * Identical to Container#set() but leads slightly more intuitive code when\n * the container is based on a Set rather than a Map.\n * @returns {Container}\n */\n add(...args) {\n return this.set(...args);\n }\n\n /**\n * Removes all items from the container\n * @returns {undefined}\n */\n clear() {\n const ret = data.get(this).clear();\n\n sizes.set(this, 0);\n\n return ret;\n }\n\n /**\n * Removes the specified item to the container\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {boolean}\n */\n delete(key, ...keys) {\n const mine = data.get(this);\n\n if (!keys.length) {\n return mine.delete(key);\n }\n\n const next = mine.get(key);\n\n if (!next) {\n return false;\n }\n\n const ret = next.delete(...keys);\n\n if (ret) {\n sizes.set(this, sizes.get(this) - 1);\n }\n\n if (next.size === 0) {\n mine.delete(key);\n }\n\n return ret;\n }\n\n /**\n * Retrieves the specified item from the container\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {mixed}\n */\n get(key, ...keys) {\n const mine = data.get(this);\n\n if (!mine.get) {\n return mine;\n }\n\n if (!keys.length) {\n return mine.get(key);\n }\n\n const next = mine.get(key);\n\n if (!next) {\n return undefined;\n }\n\n if (!next.get) {\n return next;\n }\n\n return next.get(...keys);\n }\n\n /**\n * Indicates whether the container holds the specified item\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {Boolean}\n */\n has(...args) {\n return typeof this.get(...args) !== 'undefined';\n }\n\n /**\n * Stores the specified item in the container\n * @param {mixed} key\n * @param {Array<mixed>} args\n * @param {mixed} value\n * @returns {Container}\n */\n set(...args) {\n let overwrite = false;\n\n if (this.has(...args)) {\n overwrite = true;\n }\n const mine = data.get(this);\n\n const key = args.shift();\n\n if (!mine.get) {\n insert(mine, key, ...args);\n\n return this;\n }\n\n let next = mine.get(key);\n\n if (!next) {\n if (!ChildContainer) {\n insert(mine, key, ...args);\n\n return this;\n }\n next = new ChildContainer();\n insert(mine, key, next);\n }\n insert(next, ...args);\n\n if (!overwrite) {\n sizes.set(this, sizes.get(this) + 1);\n }\n\n return this;\n }\n\n /**\n * @private\n * @returns {string}\n */\n inspect() {\n return `Container${name} {\n ${util.inspect(data.get(this), {depth: null})}\n}`;\n }\n }\n\n return Container;\n}\n\n/**\n * Inserts into an arbitrary container\n * @param {Map|WeakMap|Set|WeakSet} container\n * @param {Array<mixed>} args\n * @private\n * @returns {undefined}\n */\nfunction insert(container, ...args) {\n if (container.add) {\n container.add(...args);\n\n return;\n }\n\n if (container.set) {\n container.set(...args);\n\n return;\n }\n\n if (container.push) {\n container.push(...args);\n\n return;\n }\n throw new TypeError('Could not determine how to insert into the specified container');\n}\nexport {make as default};\n"],"mappings":"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"}
1
+ {"version":3,"names":["make","containers","TopContainer","shift","data","sizes","ChildContainer","length","name","concat","map","container","join","Container","args","set","get","ret","clear","key","mine","keys","delete","next","size","undefined","overwrite","has","insert","util","inspect","depth","add","push","TypeError"],"sources":["template-container.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport util from 'util';\n\n/**\n * Factory which produces a multi-keyed container based on the provided set of\n * constructors\n * @param {mixed} containers\n * @returns {Container}\n */\nfunction make(...containers) {\n const TopContainer = containers.shift();\n\n const data = new WeakMap();\n const sizes = new WeakMap();\n\n const ChildContainer = containers.length > 1 ? make(...containers) : containers[0];\n\n const name = `(${[TopContainer.name].concat(containers.map((container) => container.name)).join(', ')})`;\n\n /**\n * Container that wraps an arbitrary set of tupples to their values\n */\n class Container {\n /**\n * @constructs Container\n */\n constructor(...args) {\n data.set(this, new TopContainer(...args));\n sizes.set(this, 0);\n }\n\n /**\n * getter for .size\n * @returns {number}\n */\n get size() {\n return sizes.get(this);\n }\n\n /**\n * Identical to Container#set() but leads slightly more intuitive code when\n * the container is based on a Set rather than a Map.\n * @returns {Container}\n */\n add(...args) {\n return this.set(...args);\n }\n\n /**\n * Removes all items from the container\n * @returns {undefined}\n */\n clear() {\n const ret = data.get(this).clear();\n\n sizes.set(this, 0);\n\n return ret;\n }\n\n /**\n * Removes the specified item to the container\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {boolean}\n */\n delete(key, ...keys) {\n const mine = data.get(this);\n\n if (!keys.length) {\n return mine.delete(key);\n }\n\n const next = mine.get(key);\n\n if (!next) {\n return false;\n }\n\n const ret = next.delete(...keys);\n\n if (ret) {\n sizes.set(this, sizes.get(this) - 1);\n }\n\n if (next.size === 0) {\n mine.delete(key);\n }\n\n return ret;\n }\n\n /**\n * Retrieves the specified item from the container\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {mixed}\n */\n get(key, ...keys) {\n const mine = data.get(this);\n\n if (!mine.get) {\n return mine;\n }\n\n if (!keys.length) {\n return mine.get(key);\n }\n\n const next = mine.get(key);\n\n if (!next) {\n return undefined;\n }\n\n if (!next.get) {\n return next;\n }\n\n return next.get(...keys);\n }\n\n /**\n * Indicates whether the container holds the specified item\n * @param {mixed} key\n * @param {Array<mixed>} keys\n * @returns {Boolean}\n */\n has(...args) {\n return typeof this.get(...args) !== 'undefined';\n }\n\n /**\n * Stores the specified item in the container\n * @param {mixed} key\n * @param {Array<mixed>} args\n * @param {mixed} value\n * @returns {Container}\n */\n set(...args) {\n let overwrite = false;\n\n if (this.has(...args)) {\n overwrite = true;\n }\n const mine = data.get(this);\n\n const key = args.shift();\n\n if (!mine.get) {\n insert(mine, key, ...args);\n\n return this;\n }\n\n let next = mine.get(key);\n\n if (!next) {\n if (!ChildContainer) {\n insert(mine, key, ...args);\n\n return this;\n }\n next = new ChildContainer();\n insert(mine, key, next);\n }\n insert(next, ...args);\n\n if (!overwrite) {\n sizes.set(this, sizes.get(this) + 1);\n }\n\n return this;\n }\n\n /**\n * @private\n * @returns {string}\n */\n inspect() {\n return `Container${name} {\n ${util.inspect(data.get(this), {depth: null})}\n}`;\n }\n }\n\n return Container;\n}\n\n/**\n * Inserts into an arbitrary container\n * @param {Map|WeakMap|Set|WeakSet} container\n * @param {Array<mixed>} args\n * @private\n * @returns {undefined}\n */\nfunction insert(container, ...args) {\n if (container.add) {\n container.add(...args);\n\n return;\n }\n\n if (container.set) {\n container.set(...args);\n\n return;\n }\n\n if (container.push) {\n container.push(...args);\n\n return;\n }\n throw new TypeError('Could not determine how to insert into the specified container');\n}\nexport {make as default};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["hydraBaseUrl","isRequired","Error","constructHydraId","type","id","cluster","toUpperCase","hydraTypes","PEOPLE","ORGANIZATION","deconstructHydraId","payload","split","pop","buildHydraMessageId","uuid","MESSAGE","buildHydraPersonId","buildHydraRoomId","ROOM","buildHydraOrgId","buildHydraMembershipId","personUUID","spaceUUID","MEMBERSHIP","getHydraClusterString","webex","conversationUrl","internalClusterString","internal","services","getClusterId","startsWith","INTERNAL_US_CLUSTER_NAME","INTERNAL_US_INTEGRATION_CLUSTER_NAME","clusterParts","length","getHydraRoomType","tags","includes","SDK_EVENT","INTERNAL","ACTIVITY_TAG","ONE_ON_ONE","EXTERNAL","SPACE_TYPE","DIRECT","GROUP","getHydraFiles","activity","hydraFiles","files","object","items","i","contentId","CONTENT","push"],"sources":["uuid-utils.js"],"sourcesContent":["import {encode, decode} from './base64';\nimport {SDK_EVENT, hydraTypes, INTERNAL_US_CLUSTER_NAME, INTERNAL_US_INTEGRATION_CLUSTER_NAME} from './constants';\n\nconst hydraBaseUrl = 'https://api.ciscospark.com/v1';\n\nconst isRequired = () => {\n throw Error('parameter is required');\n};\n\n/**\n * Constructs a Hydra ID for a given UUID and type.\n *\n * @export\n * @param {string} type one of PEOPLE, TEAM, ROOM\n * @param {any} id identifying the \"TYPE\" object\n * @param {string} cluster containing the \"TYPE\" object\n * @returns {string}\n */\nexport function constructHydraId(\n type = isRequired(),\n id = isRequired(),\n cluster = 'us'\n) {\n if (!type.toUpperCase) {\n throw Error('\"type\" must be a string');\n }\n\n if ((type === hydraTypes.PEOPLE) || (type === hydraTypes.ORGANIZATION)) {\n // Cluster is always \"us\" for people and orgs\n return encode(`ciscospark://us/${type.toUpperCase()}/${id}`);\n }\n\n return encode(`ciscospark://${cluster}/${type.toUpperCase()}/${id}`);\n}\n\n/**\n * @typedef {Object} DeconstructedHydraId\n * @property {UUID} id identifying the object\n * @property {String} type of the object\n * @property {String} cluster containing the object\n */\n\n/**\n * Deconstructs a Hydra ID.\n *\n * @export\n * @param {String} id Hydra style id\n * @returns {DeconstructedHydraId} deconstructed id\n */\nexport function deconstructHydraId(id) {\n const payload = decode(id).split('/');\n\n return {\n id: payload.pop(),\n type: payload.pop(),\n cluster: payload.pop()\n };\n}\n\n/**\n * Constructs a Hydra ID for a message based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the message\n * @returns {string}\n */\nexport function buildHydraMessageId(uuid, cluster) {\n return constructHydraId(hydraTypes.MESSAGE, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for a person based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the person\n * @returns {string}\n */\nexport function buildHydraPersonId(uuid, cluster) {\n return constructHydraId(hydraTypes.PEOPLE, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for a room based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the room\n * @returns {string}\n */\nexport function buildHydraRoomId(uuid, cluster) {\n return constructHydraId(hydraTypes.ROOM, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for an organization based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the organization\n * @returns {string}\n */\nexport function buildHydraOrgId(uuid, cluster) {\n return constructHydraId(hydraTypes.ORGANIZATION, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for an membership based on an\n * internal UUID for the person, and the space\n *\n * @export\n * @param {any} personUUID\n * @param {any} spaceUUID\n * @param {string} cluster containing the membership\n * @returns {string}\n */\nexport function buildHydraMembershipId(personUUID, spaceUUID, cluster) {\n return constructHydraId(hydraTypes.MEMBERSHIP,\n `${personUUID}:${spaceUUID}`, cluster);\n}\n\n/**\n * Returns a hydra cluster string based on a conversation url\n * @private\n * @memberof Messages\n * @param {Object} webex sdk instance\n * @param {String} conversationUrl url of space where activity took place\n * @returns {String} string suitable for UUID -> public ID encoding\n */\nexport function getHydraClusterString(webex, conversationUrl) {\n const internalClusterString =\n webex.internal.services.getClusterId(conversationUrl);\n\n if ((internalClusterString.startsWith(INTERNAL_US_CLUSTER_NAME)) ||\n (internalClusterString.startsWith(INTERNAL_US_INTEGRATION_CLUSTER_NAME))) {\n // Original US cluster is simply 'us' for backwards compatibility\n return 'us';\n }\n const clusterParts = internalClusterString.split(':');\n\n if (clusterParts.length < 3) {\n throw Error(`Unable to determine cluster for convo: ${conversationUrl}`);\n }\n\n return `${clusterParts[0]}:${clusterParts[1]}:${clusterParts[2]}`;\n}\n\n/**\n * Returns a Hydra roomType based on conversation tags\n *\n * @export\n * @param {arra} tags\n * @param {any} spaceUUID\n * @returns {string}\n */\nexport function getHydraRoomType(tags) {\n if (tags.includes(SDK_EVENT.INTERNAL.ACTIVITY_TAG.ONE_ON_ONE)) {\n return SDK_EVENT.EXTERNAL.SPACE_TYPE.DIRECT;\n }\n\n return SDK_EVENT.EXTERNAL.SPACE_TYPE.GROUP;\n}\n\n/**\n * Returns file URLs for the activity, adhering to Hydra details,\n * e.g., https://api.ciscospark.com/v1/contents/Y2lzY29zcGF...\n * @see https://developer.webex.com/docs/api/v1/messages/get-message-details\n * @param {Object} activity from mercury\n * @param {string} cluster containing the files\n * @returns {Array} file URLs\n */\nexport function getHydraFiles(activity, cluster) {\n const hydraFiles = [];\n const {files} = activity.object;\n\n if (files) {\n const {items} = files;\n\n // Note: Generated ID is dependent on file order.\n for (let i = 0; i < items.length; i += 1) {\n const contentId =\n constructHydraId(hydraTypes.CONTENT, `${activity.id}/${i}`, cluster);\n\n hydraFiles.push(`${hydraBaseUrl}/contents/${contentId}`);\n }\n }\n\n return hydraFiles;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["hydraBaseUrl","isRequired","Error","constructHydraId","type","id","cluster","toUpperCase","hydraTypes","PEOPLE","ORGANIZATION","encode","deconstructHydraId","payload","decode","split","pop","buildHydraMessageId","uuid","MESSAGE","buildHydraPersonId","buildHydraRoomId","ROOM","buildHydraOrgId","buildHydraMembershipId","personUUID","spaceUUID","MEMBERSHIP","getHydraClusterString","webex","conversationUrl","internalClusterString","internal","services","getClusterId","startsWith","INTERNAL_US_CLUSTER_NAME","INTERNAL_US_INTEGRATION_CLUSTER_NAME","clusterParts","length","getHydraRoomType","tags","includes","SDK_EVENT","INTERNAL","ACTIVITY_TAG","ONE_ON_ONE","EXTERNAL","SPACE_TYPE","DIRECT","GROUP","getHydraFiles","activity","hydraFiles","files","object","items","i","contentId","CONTENT","push"],"sources":["uuid-utils.js"],"sourcesContent":["import {encode, decode} from './base64';\nimport {SDK_EVENT, hydraTypes, INTERNAL_US_CLUSTER_NAME, INTERNAL_US_INTEGRATION_CLUSTER_NAME} from './constants';\n\nconst hydraBaseUrl = 'https://api.ciscospark.com/v1';\n\nconst isRequired = () => {\n throw Error('parameter is required');\n};\n\n/**\n * Constructs a Hydra ID for a given UUID and type.\n *\n * @export\n * @param {string} type one of PEOPLE, TEAM, ROOM\n * @param {any} id identifying the \"TYPE\" object\n * @param {string} cluster containing the \"TYPE\" object\n * @returns {string}\n */\nexport function constructHydraId(\n type = isRequired(),\n id = isRequired(),\n cluster = 'us'\n) {\n if (!type.toUpperCase) {\n throw Error('\"type\" must be a string');\n }\n\n if ((type === hydraTypes.PEOPLE) || (type === hydraTypes.ORGANIZATION)) {\n // Cluster is always \"us\" for people and orgs\n return encode(`ciscospark://us/${type.toUpperCase()}/${id}`);\n }\n\n return encode(`ciscospark://${cluster}/${type.toUpperCase()}/${id}`);\n}\n\n/**\n * @typedef {Object} DeconstructedHydraId\n * @property {UUID} id identifying the object\n * @property {String} type of the object\n * @property {String} cluster containing the object\n */\n\n/**\n * Deconstructs a Hydra ID.\n *\n * @export\n * @param {String} id Hydra style id\n * @returns {DeconstructedHydraId} deconstructed id\n */\nexport function deconstructHydraId(id) {\n const payload = decode(id).split('/');\n\n return {\n id: payload.pop(),\n type: payload.pop(),\n cluster: payload.pop()\n };\n}\n\n/**\n * Constructs a Hydra ID for a message based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the message\n * @returns {string}\n */\nexport function buildHydraMessageId(uuid, cluster) {\n return constructHydraId(hydraTypes.MESSAGE, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for a person based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the person\n * @returns {string}\n */\nexport function buildHydraPersonId(uuid, cluster) {\n return constructHydraId(hydraTypes.PEOPLE, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for a room based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the room\n * @returns {string}\n */\nexport function buildHydraRoomId(uuid, cluster) {\n return constructHydraId(hydraTypes.ROOM, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for an organization based on internal UUID\n *\n * @export\n * @param {any} uuid\n * @param {string} cluster containing the organization\n * @returns {string}\n */\nexport function buildHydraOrgId(uuid, cluster) {\n return constructHydraId(hydraTypes.ORGANIZATION, uuid, cluster);\n}\n\n/**\n * Constructs a Hydra ID for an membership based on an\n * internal UUID for the person, and the space\n *\n * @export\n * @param {any} personUUID\n * @param {any} spaceUUID\n * @param {string} cluster containing the membership\n * @returns {string}\n */\nexport function buildHydraMembershipId(personUUID, spaceUUID, cluster) {\n return constructHydraId(hydraTypes.MEMBERSHIP,\n `${personUUID}:${spaceUUID}`, cluster);\n}\n\n/**\n * Returns a hydra cluster string based on a conversation url\n * @private\n * @memberof Messages\n * @param {Object} webex sdk instance\n * @param {String} conversationUrl url of space where activity took place\n * @returns {String} string suitable for UUID -> public ID encoding\n */\nexport function getHydraClusterString(webex, conversationUrl) {\n const internalClusterString =\n webex.internal.services.getClusterId(conversationUrl);\n\n if ((internalClusterString.startsWith(INTERNAL_US_CLUSTER_NAME)) ||\n (internalClusterString.startsWith(INTERNAL_US_INTEGRATION_CLUSTER_NAME))) {\n // Original US cluster is simply 'us' for backwards compatibility\n return 'us';\n }\n const clusterParts = internalClusterString.split(':');\n\n if (clusterParts.length < 3) {\n throw Error(`Unable to determine cluster for convo: ${conversationUrl}`);\n }\n\n return `${clusterParts[0]}:${clusterParts[1]}:${clusterParts[2]}`;\n}\n\n/**\n * Returns a Hydra roomType based on conversation tags\n *\n * @export\n * @param {arra} tags\n * @param {any} spaceUUID\n * @returns {string}\n */\nexport function getHydraRoomType(tags) {\n if (tags.includes(SDK_EVENT.INTERNAL.ACTIVITY_TAG.ONE_ON_ONE)) {\n return SDK_EVENT.EXTERNAL.SPACE_TYPE.DIRECT;\n }\n\n return SDK_EVENT.EXTERNAL.SPACE_TYPE.GROUP;\n}\n\n/**\n * Returns file URLs for the activity, adhering to Hydra details,\n * e.g., https://api.ciscospark.com/v1/contents/Y2lzY29zcGF...\n * @see https://developer.webex.com/docs/api/v1/messages/get-message-details\n * @param {Object} activity from mercury\n * @param {string} cluster containing the files\n * @returns {Array} file URLs\n */\nexport function getHydraFiles(activity, cluster) {\n const hydraFiles = [];\n const {files} = activity.object;\n\n if (files) {\n const {items} = files;\n\n // Note: Generated ID is dependent on file order.\n for (let i = 0; i < items.length; i += 1) {\n const contentId =\n constructHydraId(hydraTypes.CONTENT, `${activity.id}/${i}`, cluster);\n\n hydraFiles.push(`${hydraBaseUrl}/contents/${contentId}`);\n }\n }\n\n return hydraFiles;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["whileInFlight","param","whileInFlightDecorator","target","name","descriptor","value","whileInFlightExecutor","fn","args","resolve","then","catch","reason","reject"],"sources":["while-in-flight.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint no-invalid-this: [0] */\n\nimport {wrap} from 'lodash';\n\nimport tap from './tap';\n\n/**\n * While the promise returned by the decorated is unfullfilled, sets, the\n * specified boolean on the target class to `true`\n * @param {string} param\n * @returns {Function}\n */\nexport default function whileInFlight(param) {\n return function whileInFlightDecorator(target, name, descriptor) {\n descriptor.value = wrap(descriptor.value, function whileInFlightExecutor(fn, ...args) {\n return new Promise((resolve) => {\n this[param] = true;\n resolve(Reflect.apply(fn, this, args)\n .then(tap(() => {\n this[param] = false;\n }))\n .catch((reason) => {\n this[param] = false;\n\n return Promise.reject(reason);\n }));\n });\n });\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAQA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,aAAT,CAAuBC,KAAvB,EAA8B;EAC3C,OAAO,SAASC,sBAAT,CAAgCC,MAAhC,EAAwCC,IAAxC,EAA8CC,UAA9C,EAA0D;IAC/DA,UAAU,CAACC,KAAX,GAAmB,oBAAKD,UAAU,CAACC,KAAhB,EAAuB,SAASC,qBAAT,CAA+BC,EAA/B,EAA4C;MAAA;;MAAA,kCAANC,IAAM;QAANA,IAAM;MAAA;;MACpF,OAAO,qBAAY,UAACC,OAAD,EAAa;QAC9B,KAAI,CAACT,KAAD,CAAJ,GAAc,IAAd;QACAS,OAAO,CAAC,oBAAcF,EAAd,EAAkB,KAAlB,EAAwBC,IAAxB,EACLE,IADK,CACA,kBAAI,YAAM;UACd,KAAI,CAACV,KAAD,CAAJ,GAAc,KAAd;QACD,CAFK,CADA,EAILW,KAJK,CAIC,UAACC,MAAD,EAAY;UACjB,KAAI,CAACZ,KAAD,CAAJ,GAAc,KAAd;UAEA,OAAO,iBAAQa,MAAR,CAAeD,MAAf,CAAP;QACD,CARK,CAAD,CAAP;MASD,CAXM,CAAP;IAYD,CAbkB,CAAnB;EAcD,CAfD;AAgBD"}
1
+ {"version":3,"names":["whileInFlight","param","whileInFlightDecorator","target","name","descriptor","value","whileInFlightExecutor","fn","args","resolve","then","tap","catch","reason","reject"],"sources":["while-in-flight.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint no-invalid-this: [0] */\n\nimport {wrap} from 'lodash';\n\nimport tap from './tap';\n\n/**\n * While the promise returned by the decorated is unfullfilled, sets, the\n * specified boolean on the target class to `true`\n * @param {string} param\n * @returns {Function}\n */\nexport default function whileInFlight(param) {\n return function whileInFlightDecorator(target, name, descriptor) {\n descriptor.value = wrap(descriptor.value, function whileInFlightExecutor(fn, ...args) {\n return new Promise((resolve) => {\n this[param] = true;\n resolve(Reflect.apply(fn, this, args)\n .then(tap(() => {\n this[param] = false;\n }))\n .catch((reason) => {\n this[param] = false;\n\n return Promise.reject(reason);\n }));\n });\n });\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAQA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,aAAT,CAAuBC,KAAvB,EAA8B;EAC3C,OAAO,SAASC,sBAAT,CAAgCC,MAAhC,EAAwCC,IAAxC,EAA8CC,UAA9C,EAA0D;IAC/DA,UAAU,CAACC,KAAX,GAAmB,oBAAKD,UAAU,CAACC,KAAhB,EAAuB,SAASC,qBAAT,CAA+BC,EAA/B,EAA4C;MAAA;;MAAA,kCAANC,IAAM;QAANA,IAAM;MAAA;;MACpF,OAAO,qBAAY,UAACC,OAAD,EAAa;QAC9B,KAAI,CAACT,KAAD,CAAJ,GAAc,IAAd;QACAS,OAAO,CAAC,oBAAcF,EAAd,EAAkB,KAAlB,EAAwBC,IAAxB,EACLE,IADK,CACA,IAAAC,YAAA,EAAI,YAAM;UACd,KAAI,CAACX,KAAD,CAAJ,GAAc,KAAd;QACD,CAFK,CADA,EAILY,KAJK,CAIC,UAACC,MAAD,EAAY;UACjB,KAAI,CAACb,KAAD,CAAJ,GAAc,KAAd;UAEA,OAAO,iBAAQc,MAAR,CAAeD,MAAf,CAAP;QACD,CARK,CAAD,CAAP;MASD,CAXM,CAAP;IAYD,CAbkB,CAAnB;EAcD,CAfD;AAgBD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/common",
3
- "version": "2.16.0",
3
+ "version": "2.17.0",
4
4
  "description": "Common utilities for Cisco Webex",
5
5
  "license": "MIT",
6
6
  "author": "Ian W. Remmel <iremmel@cisco.com>",
@@ -24,7 +24,7 @@
24
24
  "urlsafe-base64": "^1.0.0",
25
25
  "safe-buffer": "^5.2.0",
26
26
  "lodash": "^4.17.21",
27
- "@webex/common": "2.16.0",
27
+ "@webex/common": "2.17.0",
28
28
  "backoff": "^2.5.0",
29
29
  "core-decorators": "^0.20.0",
30
30
  "bowser": "^2.11.0",