@webex/common 3.0.0-beta.40 → 3.0.0-beta.400
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-detection.js +19 -3
- package/dist/browser-detection.js.map +1 -1
- package/dist/constants.js +5 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/patterns.js +5 -0
- package/dist/patterns.js.map +1 -1
- package/package.json +3 -3
- package/src/browser-detection.js +14 -0
- package/src/constants.js +4 -0
- package/src/index.js +1 -1
- package/src/patterns.js +6 -0
- package/test/unit/spec/browser-detection.js +44 -0
|
@@ -5,10 +5,26 @@ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequ
|
|
|
5
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.default = void 0;
|
|
8
|
+
exports.getBrowserSerial = exports.default = void 0;
|
|
9
9
|
var _memoize2 = _interopRequireDefault(require("lodash/memoize"));
|
|
10
10
|
var _bowser = _interopRequireDefault(require("bowser"));
|
|
11
11
|
var _window = _interopRequireDefault(require("global/window"));
|
|
12
|
+
var _constants = require("./constants");
|
|
13
|
+
var getBrowserSerial = function getBrowserSerial() {
|
|
14
|
+
var browserData;
|
|
15
|
+
try {
|
|
16
|
+
var _window$navigator;
|
|
17
|
+
browserData = _window.default !== null && _window.default !== void 0 && (_window$navigator = _window.default.navigator) !== null && _window$navigator !== void 0 && _window$navigator.userAgent ? _bowser.default.getParser(_window.default.navigator.userAgent) : {
|
|
18
|
+
error: _constants.browserDetection.unableToAccessUserAgent
|
|
19
|
+
};
|
|
20
|
+
} catch (err) {
|
|
21
|
+
browserData = {
|
|
22
|
+
error: err.message
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return browserData;
|
|
26
|
+
};
|
|
27
|
+
exports.getBrowserSerial = getBrowserSerial;
|
|
12
28
|
var mockDetectionObject = {
|
|
13
29
|
/* eslint-disable global-require */
|
|
14
30
|
getOSName: function getOSName() {
|
|
@@ -57,8 +73,8 @@ var createDetectionObject = function createDetectionObject(results) {
|
|
|
57
73
|
};
|
|
58
74
|
};
|
|
59
75
|
var _default = (0, _memoize2.default)(function (agent) {
|
|
60
|
-
var _window$
|
|
61
|
-
return agent || (_window$
|
|
76
|
+
var _window$navigator2;
|
|
77
|
+
return agent || (_window$navigator2 = _window.default.navigator) !== null && _window$navigator2 !== void 0 && _window$navigator2.userAgent ? createDetectionObject(_bowser.default.getParser(agent || _window.default.navigator.userAgent)) : mockDetectionObject;
|
|
62
78
|
});
|
|
63
79
|
exports.default = _default;
|
|
64
80
|
//# sourceMappingURL=browser-detection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["getBrowserSerial","browserData","window","navigator","userAgent","bowser","getParser","error","browserDetection","unableToAccessUserAgent","err","message","mockDetectionObject","getOSName","require","platform","getOSVersion","release","getBrowserName","getBrowserVersion","isBrowser","createDetectionObject","results","name","agent"],"sources":["browser-detection.js"],"sourcesContent":["import bowser from 'bowser';\nimport {memoize} from 'lodash';\nimport window from 'global/window';\nimport {browserDetection} from './constants';\n\nexport const getBrowserSerial = () => {\n let browserData;\n try {\n browserData = window?.navigator?.userAgent\n ? bowser.getParser(window.navigator.userAgent)\n : {error: browserDetection.unableToAccessUserAgent};\n } catch (err) {\n browserData = {error: err.message};\n }\n\n return browserData;\n};\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) =>\n agent || window.navigator?.userAgent\n ? createDetectionObject(bowser.getParser(agent || window.navigator.userAgent))\n : mockDetectionObject\n);\n"],"mappings":";;;;;;;;;AAAA;AAEA;AACA;AAEO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgB,GAAS;EACpC,IAAIC,WAAW;EACf,IAAI;IAAA;IACFA,WAAW,GAAGC,eAAM,aAANA,eAAM,oCAANA,eAAM,CAAEC,SAAS,8CAAjB,kBAAmBC,SAAS,GACtCC,eAAM,CAACC,SAAS,CAACJ,eAAM,CAACC,SAAS,CAACC,SAAS,CAAC,GAC5C;MAACG,KAAK,EAAEC,2BAAgB,CAACC;IAAuB,CAAC;EACvD,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZT,WAAW,GAAG;MAACM,KAAK,EAAEG,GAAG,CAACC;IAAO,CAAC;EACpC;EAEA,OAAOV,WAAW;AACpB,CAAC;AAAC;AAEF,IAAMW,mBAAmB,GAAG;EAC1B;EACAC,SAAS,EAAE;IAAA,OAAMC,OAAO,CAAC,IAAI,CAAC,CAACC,QAAQ,EAAE;EAAA;EACzCC,YAAY,EAAE;IAAA,OAAMF,OAAO,CAAC,IAAI,CAAC,CAACG,OAAO,EAAE;EAAA;EAC3C;EACAC,cAAc,EAAE;IAAA,OAAM,EAAE;EAAA;EACxBC,iBAAiB,EAAE;IAAA,OAAM,EAAE;EAAA;EAC3BC,SAAS,EAAE;IAAA,OAAM,KAAK;EAAA;AACxB,CAAC;AAED,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqB,CAAIC,OAAO,EAAK;EACzC,IAAMT,SAAS,GAAG,SAAZA,SAAS;IAAA;IAAA,6BAASS,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAET,SAAS,EAAE,mEAAI,EAAE;EAAA;EAClD,IAAMG,YAAY,GAAG,SAAfA,YAAY;IAAA;IAAA,gCAASM,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEN,YAAY,EAAE,yEAAI,EAAE;EAAA;EAExD,IAAME,cAAc,GAAG,SAAjBA,cAAc;IAAA;IAAA,gCAASI,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEJ,cAAc,EAAE,yEAAI,EAAE;EAAA;EAC5D,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiB;IAAA;IAAA,gCAASG,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEH,iBAAiB,EAAE,yEAAI,EAAE;EAAA;EAElE,IAAMC,SAAS,GAAG,SAAZA,SAAS,CAAIG,IAAI;IAAA,OAAK,CAAC,EAACD,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEF,SAAS,CAACG,IAAI,EAAE,IAAI,CAAC;EAAA;EAE5D,OAAO;IACLV,SAAS,EAATA,SAAS;IACTG,YAAY,EAAZA,YAAY;IACZE,cAAc,EAAdA,cAAc;IACdC,iBAAiB,EAAjBA,iBAAiB;IACjBC,SAAS,EAATA;EACF,CAAC;AACH,CAAC;AAAC,eAEa,uBAAQ,UAACI,KAAK;EAAA;EAAA,OAC3BA,KAAK,0BAAItB,eAAM,CAACC,SAAS,+CAAhB,mBAAkBC,SAAS,GAChCiB,qBAAqB,CAAChB,eAAM,CAACC,SAAS,CAACkB,KAAK,IAAItB,eAAM,CAACC,SAAS,CAACC,SAAS,CAAC,CAAC,GAC5EQ,mBAAmB;AAAA,EACxB;AAAA"}
|
package/dist/constants.js
CHANGED
|
@@ -4,7 +4,7 @@ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/defi
|
|
|
4
4
|
_Object$defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.hydraTypes = exports.deviceType = exports.SDK_EVENT = exports.INTERNAL_US_INTEGRATION_CLUSTER_NAME = exports.INTERNAL_US_CLUSTER_NAME = void 0;
|
|
7
|
+
exports.hydraTypes = exports.deviceType = exports.browserDetection = exports.SDK_EVENT = exports.INTERNAL_US_INTEGRATION_CLUSTER_NAME = exports.INTERNAL_US_CLUSTER_NAME = void 0;
|
|
8
8
|
var SDK_EVENT = {
|
|
9
9
|
INTERNAL: {
|
|
10
10
|
WEBEX_ACTIVITY: 'event:conversation.activity',
|
|
@@ -66,6 +66,10 @@ var SDK_EVENT = {
|
|
|
66
66
|
}
|
|
67
67
|
};
|
|
68
68
|
exports.SDK_EVENT = SDK_EVENT;
|
|
69
|
+
var browserDetection = {
|
|
70
|
+
unableToAccessUserAgent: 'unable to access window.navigator.userAgent'
|
|
71
|
+
};
|
|
72
|
+
exports.browserDetection = browserDetection;
|
|
69
73
|
var hydraTypes = {
|
|
70
74
|
ATTACHMENT_ACTION: 'ATTACHMENT_ACTION',
|
|
71
75
|
CONTENT: 'CONTENT',
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SDK_EVENT","INTERNAL","WEBEX_ACTIVITY","ACTIVITY_FIELD","ACTOR","OBJECT","TARGET","ACTIVITY_VERB","ACKNOWLEDGE","CARD_ACTION","CREATE","POST","SHARE","DELETE","ADD","LEAVE","ADD_MODERATOR","REMOVE_MODERATOR","LOCK","UNLOCK","HIDE","UPDATE","ACTIVITY_TAG","HIDDEN","ONE_ON_ONE","LOCKED","EXTERNAL","EVENT_TYPE","CREATED","DELETED","UPDATED","SEEN","OWNER","CREATOR","ORG","STATUS","ACTIVE","DISABLED","SPACE_TYPE","DIRECT","GROUP","RESOURCE","ATTACHMENT_ACTIONS","MEMBERSHIPS","MESSAGES","ROOMS","ATTACHMENTS","CARD_CONTENT_TYPE","hydraTypes","ATTACHMENT_ACTION","CONTENT","MEMBERSHIP","MESSAGE","ORGANIZATION","PEOPLE","ROOM","TEAM","deviceType","PROVISIONAL","WEB","INTERNAL_US_CLUSTER_NAME","INTERNAL_US_INTEGRATION_CLUSTER_NAME"],"sources":["constants.js"],"sourcesContent":["export const SDK_EVENT = {\n INTERNAL: {\n WEBEX_ACTIVITY: 'event:conversation.activity',\n ACTIVITY_FIELD: {\n ACTOR: 'actor',\n OBJECT: 'object',\n TARGET: 'target',\n },\n ACTIVITY_VERB: {\n ACKNOWLEDGE: 'acknowledge',\n CARD_ACTION: 'cardAction',\n CREATE: 'create',\n POST: 'post',\n SHARE: 'share',\n DELETE: 'delete',\n ADD: 'add',\n LEAVE: 'leave',\n ADD_MODERATOR: 'assignModerator',\n REMOVE_MODERATOR: 'unassignModerator',\n LOCK: 'lock',\n UNLOCK: 'unlock',\n HIDE: 'hide',\n UPDATE: 'update',\n },\n ACTIVITY_TAG: {\n HIDDEN: 'HIDDEN',\n ONE_ON_ONE: 'ONE_ON_ONE',\n LOCKED: 'LOCKED',\n },\n },\n EXTERNAL: {\n EVENT_TYPE: {\n CREATED: 'created',\n DELETED: 'deleted',\n UPDATED: 'updated',\n SEEN: 'seen',\n },\n OWNER: {\n CREATOR: 'creator',\n ORG: 'org',\n },\n STATUS: {\n ACTIVE: 'active',\n DISABLED: 'disabled',\n },\n SPACE_TYPE: {\n DIRECT: 'direct',\n GROUP: 'group',\n },\n RESOURCE: {\n ATTACHMENT_ACTIONS: 'attachmentActions',\n MEMBERSHIPS: 'memberships',\n MESSAGES: 'messages',\n ROOMS: 'rooms',\n },\n ATTACHMENTS: {\n CARD_CONTENT_TYPE: 'application/vnd.microsoft.card.adaptive',\n },\n },\n};\n\nexport const hydraTypes = {\n ATTACHMENT_ACTION: 'ATTACHMENT_ACTION',\n CONTENT: 'CONTENT',\n MEMBERSHIP: 'MEMBERSHIP',\n MESSAGE: 'MESSAGE',\n ORGANIZATION: 'ORGANIZATION',\n PEOPLE: 'PEOPLE',\n ROOM: 'ROOM',\n TEAM: 'TEAM',\n};\n\nexport const deviceType = {\n PROVISIONAL: 'PROVISIONAL',\n WEB: 'WEB',\n};\n\nexport const INTERNAL_US_CLUSTER_NAME = 'urn:TEAM:us-east-2_a';\nexport const INTERNAL_US_INTEGRATION_CLUSTER_NAME = 'urn:TEAM:us-east-1_int13';\n"],"mappings":";;;;;;;AAAO,IAAMA,SAAS,GAAG;EACvBC,QAAQ,EAAE;IACRC,cAAc,EAAE,6BAA6B;IAC7CC,cAAc,EAAE;MACdC,KAAK,EAAE,OAAO;MACdC,MAAM,EAAE,QAAQ;MAChBC,MAAM,EAAE;IACV,CAAC;IACDC,aAAa,EAAE;MACbC,WAAW,EAAE,aAAa;MAC1BC,WAAW,EAAE,YAAY;MACzBC,MAAM,EAAE,QAAQ;MAChBC,IAAI,EAAE,MAAM;MACZC,KAAK,EAAE,OAAO;MACdC,MAAM,EAAE,QAAQ;MAChBC,GAAG,EAAE,KAAK;MACVC,KAAK,EAAE,OAAO;MACdC,aAAa,EAAE,iBAAiB;MAChCC,gBAAgB,EAAE,mBAAmB;MACrCC,IAAI,EAAE,MAAM;MACZC,MAAM,EAAE,QAAQ;MAChBC,IAAI,EAAE,MAAM;MACZC,MAAM,EAAE;IACV,CAAC;IACDC,YAAY,EAAE;MACZC,MAAM,EAAE,QAAQ;MAChBC,UAAU,EAAE,YAAY;MACxBC,MAAM,EAAE;IACV;EACF,CAAC;EACDC,QAAQ,EAAE;IACRC,UAAU,EAAE;MACVC,OAAO,EAAE,SAAS;MAClBC,OAAO,EAAE,SAAS;MAClBC,OAAO,EAAE,SAAS;MAClBC,IAAI,EAAE;IACR,CAAC;IACDC,KAAK,EAAE;MACLC,OAAO,EAAE,SAAS;MAClBC,GAAG,EAAE;IACP,CAAC;IACDC,MAAM,EAAE;MACNC,MAAM,EAAE,QAAQ;MAChBC,QAAQ,EAAE;IACZ,CAAC;IACDC,UAAU,EAAE;MACVC,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAE;IACT,CAAC;IACDC,QAAQ,EAAE;MACRC,kBAAkB,EAAE,mBAAmB;MACvCC,WAAW,EAAE,aAAa;MAC1BC,QAAQ,EAAE,UAAU;MACpBC,KAAK,EAAE;IACT,CAAC;IACDC,WAAW,EAAE;MACXC,iBAAiB,EAAE;IACrB;EACF;AACF,CAAC;AAAC;AAEK,IAAMC,UAAU,GAAG;EACxBC,iBAAiB,EAAE,mBAAmB;EACtCC,OAAO,EAAE,SAAS;EAClBC,UAAU,EAAE,YAAY;EACxBC,OAAO,EAAE,SAAS;EAClBC,YAAY,EAAE,cAAc;EAC5BC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE;AACR,CAAC;AAAC;AAEK,IAAMC,UAAU,GAAG;EACxBC,WAAW,EAAE,aAAa;EAC1BC,GAAG,EAAE;AACP,CAAC;AAAC;AAEK,IAAMC,wBAAwB,GAAG,sBAAsB;AAAC;AACxD,IAAMC,oCAAoC,GAAG,0BAA0B;AAAC"}
|
|
1
|
+
{"version":3,"names":["SDK_EVENT","INTERNAL","WEBEX_ACTIVITY","ACTIVITY_FIELD","ACTOR","OBJECT","TARGET","ACTIVITY_VERB","ACKNOWLEDGE","CARD_ACTION","CREATE","POST","SHARE","DELETE","ADD","LEAVE","ADD_MODERATOR","REMOVE_MODERATOR","LOCK","UNLOCK","HIDE","UPDATE","ACTIVITY_TAG","HIDDEN","ONE_ON_ONE","LOCKED","EXTERNAL","EVENT_TYPE","CREATED","DELETED","UPDATED","SEEN","OWNER","CREATOR","ORG","STATUS","ACTIVE","DISABLED","SPACE_TYPE","DIRECT","GROUP","RESOURCE","ATTACHMENT_ACTIONS","MEMBERSHIPS","MESSAGES","ROOMS","ATTACHMENTS","CARD_CONTENT_TYPE","browserDetection","unableToAccessUserAgent","hydraTypes","ATTACHMENT_ACTION","CONTENT","MEMBERSHIP","MESSAGE","ORGANIZATION","PEOPLE","ROOM","TEAM","deviceType","PROVISIONAL","WEB","INTERNAL_US_CLUSTER_NAME","INTERNAL_US_INTEGRATION_CLUSTER_NAME"],"sources":["constants.js"],"sourcesContent":["export const SDK_EVENT = {\n INTERNAL: {\n WEBEX_ACTIVITY: 'event:conversation.activity',\n ACTIVITY_FIELD: {\n ACTOR: 'actor',\n OBJECT: 'object',\n TARGET: 'target',\n },\n ACTIVITY_VERB: {\n ACKNOWLEDGE: 'acknowledge',\n CARD_ACTION: 'cardAction',\n CREATE: 'create',\n POST: 'post',\n SHARE: 'share',\n DELETE: 'delete',\n ADD: 'add',\n LEAVE: 'leave',\n ADD_MODERATOR: 'assignModerator',\n REMOVE_MODERATOR: 'unassignModerator',\n LOCK: 'lock',\n UNLOCK: 'unlock',\n HIDE: 'hide',\n UPDATE: 'update',\n },\n ACTIVITY_TAG: {\n HIDDEN: 'HIDDEN',\n ONE_ON_ONE: 'ONE_ON_ONE',\n LOCKED: 'LOCKED',\n },\n },\n EXTERNAL: {\n EVENT_TYPE: {\n CREATED: 'created',\n DELETED: 'deleted',\n UPDATED: 'updated',\n SEEN: 'seen',\n },\n OWNER: {\n CREATOR: 'creator',\n ORG: 'org',\n },\n STATUS: {\n ACTIVE: 'active',\n DISABLED: 'disabled',\n },\n SPACE_TYPE: {\n DIRECT: 'direct',\n GROUP: 'group',\n },\n RESOURCE: {\n ATTACHMENT_ACTIONS: 'attachmentActions',\n MEMBERSHIPS: 'memberships',\n MESSAGES: 'messages',\n ROOMS: 'rooms',\n },\n ATTACHMENTS: {\n CARD_CONTENT_TYPE: 'application/vnd.microsoft.card.adaptive',\n },\n },\n};\n\nexport const browserDetection = {\n unableToAccessUserAgent: 'unable to access window.navigator.userAgent',\n};\n\nexport const hydraTypes = {\n ATTACHMENT_ACTION: 'ATTACHMENT_ACTION',\n CONTENT: 'CONTENT',\n MEMBERSHIP: 'MEMBERSHIP',\n MESSAGE: 'MESSAGE',\n ORGANIZATION: 'ORGANIZATION',\n PEOPLE: 'PEOPLE',\n ROOM: 'ROOM',\n TEAM: 'TEAM',\n};\n\nexport const deviceType = {\n PROVISIONAL: 'PROVISIONAL',\n WEB: 'WEB',\n};\n\nexport const INTERNAL_US_CLUSTER_NAME = 'urn:TEAM:us-east-2_a';\nexport const INTERNAL_US_INTEGRATION_CLUSTER_NAME = 'urn:TEAM:us-east-1_int13';\n"],"mappings":";;;;;;;AAAO,IAAMA,SAAS,GAAG;EACvBC,QAAQ,EAAE;IACRC,cAAc,EAAE,6BAA6B;IAC7CC,cAAc,EAAE;MACdC,KAAK,EAAE,OAAO;MACdC,MAAM,EAAE,QAAQ;MAChBC,MAAM,EAAE;IACV,CAAC;IACDC,aAAa,EAAE;MACbC,WAAW,EAAE,aAAa;MAC1BC,WAAW,EAAE,YAAY;MACzBC,MAAM,EAAE,QAAQ;MAChBC,IAAI,EAAE,MAAM;MACZC,KAAK,EAAE,OAAO;MACdC,MAAM,EAAE,QAAQ;MAChBC,GAAG,EAAE,KAAK;MACVC,KAAK,EAAE,OAAO;MACdC,aAAa,EAAE,iBAAiB;MAChCC,gBAAgB,EAAE,mBAAmB;MACrCC,IAAI,EAAE,MAAM;MACZC,MAAM,EAAE,QAAQ;MAChBC,IAAI,EAAE,MAAM;MACZC,MAAM,EAAE;IACV,CAAC;IACDC,YAAY,EAAE;MACZC,MAAM,EAAE,QAAQ;MAChBC,UAAU,EAAE,YAAY;MACxBC,MAAM,EAAE;IACV;EACF,CAAC;EACDC,QAAQ,EAAE;IACRC,UAAU,EAAE;MACVC,OAAO,EAAE,SAAS;MAClBC,OAAO,EAAE,SAAS;MAClBC,OAAO,EAAE,SAAS;MAClBC,IAAI,EAAE;IACR,CAAC;IACDC,KAAK,EAAE;MACLC,OAAO,EAAE,SAAS;MAClBC,GAAG,EAAE;IACP,CAAC;IACDC,MAAM,EAAE;MACNC,MAAM,EAAE,QAAQ;MAChBC,QAAQ,EAAE;IACZ,CAAC;IACDC,UAAU,EAAE;MACVC,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAE;IACT,CAAC;IACDC,QAAQ,EAAE;MACRC,kBAAkB,EAAE,mBAAmB;MACvCC,WAAW,EAAE,aAAa;MAC1BC,QAAQ,EAAE,UAAU;MACpBC,KAAK,EAAE;IACT,CAAC;IACDC,WAAW,EAAE;MACXC,iBAAiB,EAAE;IACrB;EACF;AACF,CAAC;AAAC;AAEK,IAAMC,gBAAgB,GAAG;EAC9BC,uBAAuB,EAAE;AAC3B,CAAC;AAAC;AAEK,IAAMC,UAAU,GAAG;EACxBC,iBAAiB,EAAE,mBAAmB;EACtCC,OAAO,EAAE,SAAS;EAClBC,UAAU,EAAE,YAAY;EACxBC,OAAO,EAAE,SAAS;EAClBC,YAAY,EAAE,cAAc;EAC5BC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE;AACR,CAAC;AAAC;AAEK,IAAMC,UAAU,GAAG;EACxBC,WAAW,EAAE,aAAa;EAC1BC,GAAG,EAAE;AACP,CAAC;AAAC;AAEK,IAAMC,wBAAwB,GAAG,sBAAsB;AAAC;AACxD,IAAMC,oCAAoC,GAAG,0BAA0B;AAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
|
|
3
5
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
4
7
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
8
|
_Object$defineProperty(exports, "__esModule", {
|
|
6
9
|
value: true
|
|
@@ -125,6 +128,12 @@ _Object$defineProperty(exports, "ensureMyIdIsAvailable", {
|
|
|
125
128
|
return _eventEnvelope.ensureMyIdIsAvailable;
|
|
126
129
|
}
|
|
127
130
|
});
|
|
131
|
+
_Object$defineProperty(exports, "getBrowserSerial", {
|
|
132
|
+
enumerable: true,
|
|
133
|
+
get: function get() {
|
|
134
|
+
return _browserDetection.getBrowserSerial;
|
|
135
|
+
}
|
|
136
|
+
});
|
|
128
137
|
_Object$defineProperty(exports, "getHydraClusterString", {
|
|
129
138
|
enumerable: true,
|
|
130
139
|
get: function get() {
|
|
@@ -240,6 +249,8 @@ var _exception = _interopRequireDefault(require("./exception"));
|
|
|
240
249
|
var _deprecated = _interopRequireDefault(require("./deprecated"));
|
|
241
250
|
var _inBrowser = _interopRequireDefault(require("./in-browser"));
|
|
242
251
|
var _constants = require("./constants");
|
|
243
|
-
var _browserDetection =
|
|
252
|
+
var _browserDetection = _interopRequireWildcard(require("./browser-detection"));
|
|
244
253
|
var _uuidUtils = require("./uuid-utils");
|
|
254
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
255
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
245
256
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport {default as base64} from './base64';\nexport {default as isBuffer} from './isBuffer';\nexport {default as cappedDebounce} from './capped-debounce';\nexport {default as checkRequired} from './check-required';\nexport {default as Defer} from './defer';\nexport {default as makeStateDataType} from './make-state-datatype';\nexport {default as make} from './template-container';\nexport {default as oneFlight} from './one-flight';\nexport {default as patterns} from './patterns';\n\nexport {proxyEvents, transferEvents} from './events';\nexport {createEventEnvelope, ensureMyIdIsAvailable} from './event-envelope';\nexport {default as resolveWith} from './resolve-with';\nexport {default as retry} from './retry';\nexport {default as tap} from './tap';\nexport {default as whileInFlight} from './while-in-flight';\nexport {default as Exception} from './exception';\nexport {default as deprecated} from './deprecated';\nexport {default as inBrowser} from './in-browser';\nexport {\n deviceType,\n hydraTypes,\n SDK_EVENT,\n INTERNAL_US_CLUSTER_NAME,\n INTERNAL_US_INTEGRATION_CLUSTER_NAME,\n} from './constants';\n\nexport {default as BrowserDetection} from './browser-detection';\nexport {\n buildHydraMembershipId,\n buildHydraMessageId,\n buildHydraOrgId,\n buildHydraPersonId,\n buildHydraRoomId,\n getHydraRoomType,\n getHydraClusterString,\n getHydraFiles,\n constructHydraId,\n deconstructHydraId,\n} from './uuid-utils';\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport {default as base64} from './base64';\nexport {default as isBuffer} from './isBuffer';\nexport {default as cappedDebounce} from './capped-debounce';\nexport {default as checkRequired} from './check-required';\nexport {default as Defer} from './defer';\nexport {default as makeStateDataType} from './make-state-datatype';\nexport {default as make} from './template-container';\nexport {default as oneFlight} from './one-flight';\nexport {default as patterns} from './patterns';\n\nexport {proxyEvents, transferEvents} from './events';\nexport {createEventEnvelope, ensureMyIdIsAvailable} from './event-envelope';\nexport {default as resolveWith} from './resolve-with';\nexport {default as retry} from './retry';\nexport {default as tap} from './tap';\nexport {default as whileInFlight} from './while-in-flight';\nexport {default as Exception} from './exception';\nexport {default as deprecated} from './deprecated';\nexport {default as inBrowser} from './in-browser';\nexport {\n deviceType,\n hydraTypes,\n SDK_EVENT,\n INTERNAL_US_CLUSTER_NAME,\n INTERNAL_US_INTEGRATION_CLUSTER_NAME,\n} from './constants';\n\nexport {default as BrowserDetection, getBrowserSerial} from './browser-detection';\nexport {\n buildHydraMembershipId,\n buildHydraMessageId,\n buildHydraOrgId,\n buildHydraPersonId,\n buildHydraRoomId,\n getHydraRoomType,\n getHydraClusterString,\n getHydraFiles,\n constructHydraId,\n deconstructHydraId,\n} from './uuid-utils';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AAWsB;AAAA"}
|
package/dist/patterns.js
CHANGED
|
@@ -38,6 +38,11 @@ var _default = {
|
|
|
38
38
|
* @type {RegExp}
|
|
39
39
|
*/
|
|
40
40
|
uuid: /^[a-f\d]{8}(?:-[a-f\d]{4}){3}-[a-f\d]{12}$/,
|
|
41
|
+
/**
|
|
42
|
+
* Regular expression that validates an ambiguous string contains MTID
|
|
43
|
+
* @type {RegExp}
|
|
44
|
+
*/
|
|
45
|
+
containsMTID: /(MTID=)[^&$#]*/g,
|
|
41
46
|
/**
|
|
42
47
|
* Same as this.email, but allows for surrounding characters
|
|
43
48
|
* @type {RegExp}
|
package/dist/patterns.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["email","containsEmails","uuid","execEmail","execUuid"],"sources":["patterns.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/**\n * @description Set of regex patterns to compile once and use throughout the\n * app. All non-prefixed patterns have start/end characters to ensure exact\n * matches. Patterns prefixed with \"exec\" are the same as their non-prefixed\n * counterparts but without the start/end characters so they can be used with\n * methods like `RegExp#exec`.\n */\nexport default {\n /**\n * Regular express that validates a string is strictly an email.\n * Allows for validation of emails within services such as conversation\n * activities or user details.\n * See [RegEx information here]{@link https://ihateregex.io/expr/email-2}.\n *\n * @type {RegExp}\n */\n email:\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n\n /**\n * Regular expression that validates an ambiguous string contains emails\n * (one or more) within.\n * See [RegEx information here]{@link https://ihateregex.io/expr/email-2}.\n *\n * @type {RegExp}\n */\n containsEmails:\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g,\n\n /**\n * Matches a UUID\n * @type {RegExp}\n */\n uuid: /^[a-f\\d]{8}(?:-[a-f\\d]{4}){3}-[a-f\\d]{12}$/,\n\n /**\n * Same as this.email, but allows for surrounding characters\n * @type {RegExp}\n */\n execEmail: /[^\\s]+?@[^\\s]+?/,\n\n /**\n * Same as this.uuid but allows for surrounding characters\n * @type {RegExp}\n */\n execUuid: /[a-f\\d]{8}(?:-[a-f\\d]{4}){3}-[a-f\\d]{12}/,\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,eAOe;EACb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEA,KAAK,EACH,sJAAsJ;EAExJ;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,cAAc,EACZ,qJAAqJ;EAEvJ;AACF;AACA;AACA;EACEC,IAAI,EAAE,4CAA4C;EAElD;AACF;AACA;AACA;EACEC,SAAS,EAAE,iBAAiB;EAE5B;AACF;AACA;AACA;EACEC,QAAQ,EAAE;AACZ,CAAC;AAAA"}
|
|
1
|
+
{"version":3,"names":["email","containsEmails","uuid","containsMTID","execEmail","execUuid"],"sources":["patterns.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/**\n * @description Set of regex patterns to compile once and use throughout the\n * app. All non-prefixed patterns have start/end characters to ensure exact\n * matches. Patterns prefixed with \"exec\" are the same as their non-prefixed\n * counterparts but without the start/end characters so they can be used with\n * methods like `RegExp#exec`.\n */\nexport default {\n /**\n * Regular express that validates a string is strictly an email.\n * Allows for validation of emails within services such as conversation\n * activities or user details.\n * See [RegEx information here]{@link https://ihateregex.io/expr/email-2}.\n *\n * @type {RegExp}\n */\n email:\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n\n /**\n * Regular expression that validates an ambiguous string contains emails\n * (one or more) within.\n * See [RegEx information here]{@link https://ihateregex.io/expr/email-2}.\n *\n * @type {RegExp}\n */\n containsEmails:\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g,\n\n /**\n * Matches a UUID\n * @type {RegExp}\n */\n uuid: /^[a-f\\d]{8}(?:-[a-f\\d]{4}){3}-[a-f\\d]{12}$/,\n\n /**\n * Regular expression that validates an ambiguous string contains MTID\n * @type {RegExp}\n */\n containsMTID: /(MTID=)[^&$#]*/g,\n\n /**\n * Same as this.email, but allows for surrounding characters\n * @type {RegExp}\n */\n execEmail: /[^\\s]+?@[^\\s]+?/,\n\n /**\n * Same as this.uuid but allows for surrounding characters\n * @type {RegExp}\n */\n execUuid: /[a-f\\d]{8}(?:-[a-f\\d]{4}){3}-[a-f\\d]{12}/,\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,eAOe;EACb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEA,KAAK,EACH,sJAAsJ;EAExJ;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,cAAc,EACZ,qJAAqJ;EAEvJ;AACF;AACA;AACA;EACEC,IAAI,EAAE,4CAA4C;EAElD;AACF;AACA;AACA;EACEC,YAAY,EAAE,iBAAiB;EAE/B;AACF;AACA;AACA;EACEC,SAAS,EAAE,iBAAiB;EAE5B;AACF;AACA;AACA;EACEC,QAAQ,EAAE;AACZ,CAAC;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/common",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.400",
|
|
4
4
|
"description": "Common utilities for Cisco Webex",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@sinonjs/fake-timers": "^6.0.1",
|
|
28
|
-
"@webex/common": "3.0.0-beta.
|
|
29
|
-
"@webex/test-helper-chai": "3.0.0-beta.
|
|
28
|
+
"@webex/common": "3.0.0-beta.400",
|
|
29
|
+
"@webex/test-helper-chai": "3.0.0-beta.400",
|
|
30
30
|
"ampersand-state": "^5.0.3",
|
|
31
31
|
"sinon": "^9.2.4"
|
|
32
32
|
},
|
package/src/browser-detection.js
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import bowser from 'bowser';
|
|
2
2
|
import {memoize} from 'lodash';
|
|
3
3
|
import window from 'global/window';
|
|
4
|
+
import {browserDetection} from './constants';
|
|
5
|
+
|
|
6
|
+
export const getBrowserSerial = () => {
|
|
7
|
+
let browserData;
|
|
8
|
+
try {
|
|
9
|
+
browserData = window?.navigator?.userAgent
|
|
10
|
+
? bowser.getParser(window.navigator.userAgent)
|
|
11
|
+
: {error: browserDetection.unableToAccessUserAgent};
|
|
12
|
+
} catch (err) {
|
|
13
|
+
browserData = {error: err.message};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return browserData;
|
|
17
|
+
};
|
|
4
18
|
|
|
5
19
|
const mockDetectionObject = {
|
|
6
20
|
/* eslint-disable global-require */
|
package/src/constants.js
CHANGED
|
@@ -59,6 +59,10 @@ export const SDK_EVENT = {
|
|
|
59
59
|
},
|
|
60
60
|
};
|
|
61
61
|
|
|
62
|
+
export const browserDetection = {
|
|
63
|
+
unableToAccessUserAgent: 'unable to access window.navigator.userAgent',
|
|
64
|
+
};
|
|
65
|
+
|
|
62
66
|
export const hydraTypes = {
|
|
63
67
|
ATTACHMENT_ACTION: 'ATTACHMENT_ACTION',
|
|
64
68
|
CONTENT: 'CONTENT',
|
package/src/index.js
CHANGED
|
@@ -29,7 +29,7 @@ export {
|
|
|
29
29
|
INTERNAL_US_INTEGRATION_CLUSTER_NAME,
|
|
30
30
|
} from './constants';
|
|
31
31
|
|
|
32
|
-
export {default as BrowserDetection} from './browser-detection';
|
|
32
|
+
export {default as BrowserDetection, getBrowserSerial} from './browser-detection';
|
|
33
33
|
export {
|
|
34
34
|
buildHydraMembershipId,
|
|
35
35
|
buildHydraMessageId,
|
package/src/patterns.js
CHANGED
|
@@ -37,6 +37,12 @@ export default {
|
|
|
37
37
|
*/
|
|
38
38
|
uuid: /^[a-f\d]{8}(?:-[a-f\d]{4}){3}-[a-f\d]{12}$/,
|
|
39
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Regular expression that validates an ambiguous string contains MTID
|
|
42
|
+
* @type {RegExp}
|
|
43
|
+
*/
|
|
44
|
+
containsMTID: /(MTID=)[^&$#]*/g,
|
|
45
|
+
|
|
40
46
|
/**
|
|
41
47
|
* Same as this.email, but allows for surrounding characters
|
|
42
48
|
* @type {RegExp}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import {assert} from '@webex/test-helper-chai';
|
|
6
|
+
import sinon from 'sinon';
|
|
7
|
+
import { getBrowserSerial } from '@webex/common';
|
|
8
|
+
import window from 'global/window';
|
|
9
|
+
import bowser from 'bowser';
|
|
10
|
+
import {browserDetection} from '@webex/common/src/constants.js';
|
|
11
|
+
|
|
12
|
+
describe('getBowserSerial()', () => {
|
|
13
|
+
const originalWindowNavigator = {...window.navigator};
|
|
14
|
+
|
|
15
|
+
after('restore window.navigator', () => {
|
|
16
|
+
window.navigator = originalWindowNavigator;
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('should provide the parsed bowser user agent when available', () => {
|
|
20
|
+
//@ts-ignore
|
|
21
|
+
window.navigator = {userAgent: 'user agent data'};
|
|
22
|
+
|
|
23
|
+
const res = getBrowserSerial();
|
|
24
|
+
assert.deepEqual(res._ua, 'user agent data');
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('should provide an error message when the user agent is not available', () => {
|
|
28
|
+
//@ts-ignore
|
|
29
|
+
window.navigator = undefined;
|
|
30
|
+
|
|
31
|
+
const res = getBrowserSerial();
|
|
32
|
+
assert.deepEqual(res, {error: browserDetection.unableToAccessUserAgent});
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('should provide an error message object when bowser.getParser() fails', () => {
|
|
36
|
+
//@ts-ignore
|
|
37
|
+
window.navigator = {userAgent: 'user agent data'};
|
|
38
|
+
|
|
39
|
+
bowser.getParser = sinon.stub().throws(new Error('test error'));
|
|
40
|
+
const res = getBrowserSerial();
|
|
41
|
+
assert.deepEqual(res, {error: 'test error'});
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
|