@webex/internal-plugin-board 2.59.3-next.1 → 2.59.4-next.1
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/.eslintrc.js +6 -6
- package/README.md +42 -42
- package/babel.config.js +3 -3
- package/dist/board.js +171 -174
- package/dist/board.js.map +1 -1
- package/dist/config.js +21 -21
- package/dist/config.js.map +1 -1
- package/dist/index.js +8 -9
- package/dist/index.js.map +1 -1
- package/dist/realtime-channel-collection.js +4 -4
- package/dist/realtime-channel-collection.js.map +1 -1
- package/dist/realtime-channel.js +4 -4
- package/dist/realtime-channel.js.map +1 -1
- package/dist/realtime.js +48 -48
- package/dist/realtime.js.map +1 -1
- package/jest.config.js +3 -3
- package/package.json +13 -13
- package/process +1 -1
- package/src/board.js +764 -764
- package/src/config.js +44 -44
- package/src/index.js +105 -105
- package/src/realtime-channel-collection.js +18 -18
- package/src/realtime-channel.js +40 -40
- package/src/realtime.js +252 -252
- package/test/integration/spec/board.js +717 -717
- package/test/integration/spec/realtime.js +194 -194
- package/test/integration/spec/sharing-mercury.js +285 -285
- package/test/unit/spec/board.js +635 -635
- package/test/unit/spec/encryption.js +255 -255
- package/test/unit/spec/realtime.js +473 -473
package/dist/realtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_uuid","_interopRequireDefault","require","_common","_webexCore","_realtimeChannelCollection","RealtimeService","WebexPlugin","extend","namespace","collections","realtimeChannels","RealtimeChannelCollection","publish","channel","message","_this","encryptionPromise","contentType","payload","file","webex","internal","board","encryptSingleFileContent","defaultEncryptionKeyUrl","encryptSingleContent","then","encryptedPayloadAndKeyUrl","publishEncrypted","realtimeChannel","get","channelId","_promise","default","reject","Error","data","id","uuid","v4","type","recipients","alertType","route","binding","headers","eventType","envelope","encryptionKeyUrl","send","createRealtimeChannel","_this2","requestBindings","_boardChannelIdToMercuryBinding","bindingObj","bindings","register","_ref","webSocketUrl","add","socketUrl","connectByOpenNewMercuryConnection","_this3","promise","resolve","logger","info","rc","connect","disconnectMercuryConnection","_this4","disconnect","tap","remove","config","mercuryBindingPrefix","replace","connectToSharedMercury","_this5","registerToShareMercury","res","sharedWebSocket","isSharingMercury","socket","mercury","off","refreshMercurySocketReference","on","handleBoardActivityMessages","event","_emit","_this6","forEach","disconnectFromSharedMercury","_this7","connected","unregisterFromSharedMercury","version","_default","exports"],"sources":["realtime.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport uuid from 'uuid';\r\nimport {tap} from '@webex/common';\r\nimport {WebexPlugin} from '@webex/webex-core';\r\n\r\nimport RealtimeChannelCollection from './realtime-channel-collection';\r\n\r\n/**\r\n * @class\r\n * @extends {Mercury}\r\n * @memberof Board\r\n */\r\nconst RealtimeService = WebexPlugin.extend({\r\n namespace: 'Board',\r\n\r\n collections: {\r\n realtimeChannels: RealtimeChannelCollection,\r\n },\r\n\r\n /**\r\n * Sends the message via the socket. Assumes that the message is already properly formatted\r\n * @memberof Board.RealtimeService\r\n * @param {Board~Channel} channel\r\n * @param {string} message Contains the un-encrypted message to send.\r\n * @returns {Promise<Board~Content>}\r\n */\r\n publish(channel, message) {\r\n let encryptionPromise;\r\n let contentType = 'STRING';\r\n\r\n if (message.payload.file) {\r\n contentType = 'FILE';\r\n encryptionPromise = this.webex.internal.board.encryptSingleFileContent(\r\n channel.defaultEncryptionKeyUrl,\r\n message.payload\r\n );\r\n } else {\r\n encryptionPromise = this.webex.internal.board.encryptSingleContent(\r\n channel.defaultEncryptionKeyUrl,\r\n message.payload\r\n );\r\n }\r\n\r\n return encryptionPromise.then((encryptedPayloadAndKeyUrl) =>\r\n this.publishEncrypted(channel, encryptedPayloadAndKeyUrl, contentType)\r\n );\r\n },\r\n\r\n /**\r\n * Sends the message via the socket. The message should already have been\r\n * encrypted\r\n * @memberof Board.RealtimeService\r\n * @param {Board~Channel} channel\r\n * @param {object} encryptedPayloadAndKeyUrl\r\n * @param {string} contentType - provides hint for decryption. Defaults to\r\n * `STRING`, and could also be `FILE`\r\n * @returns {Promise<Board~Content>}\r\n */\r\n publishEncrypted(channel, encryptedPayloadAndKeyUrl, contentType) {\r\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\r\n\r\n if (!realtimeChannel) {\r\n return Promise.reject(new Error('Realtime Channel not found'));\r\n }\r\n\r\n const data = {\r\n id: uuid.v4(),\r\n type: 'publishRequest',\r\n recipients: [\r\n {\r\n alertType: 'none',\r\n route: realtimeChannel.binding,\r\n headers: {},\r\n },\r\n ],\r\n data: {\r\n eventType: 'board.activity',\r\n contentType,\r\n payload: encryptedPayloadAndKeyUrl.payload,\r\n envelope: {\r\n encryptionKeyUrl: encryptedPayloadAndKeyUrl.encryptionKeyUrl,\r\n channelId: channel.channelId,\r\n },\r\n },\r\n };\r\n\r\n // provide a hint for decryption\r\n if (contentType === 'FILE') {\r\n data.data.payload = {\r\n file: encryptedPayloadAndKeyUrl.file,\r\n payload: encryptedPayloadAndKeyUrl.payload,\r\n };\r\n }\r\n\r\n return realtimeChannel.send(data);\r\n },\r\n\r\n createRealtimeChannel(channel) {\r\n const requestBindings = [this._boardChannelIdToMercuryBinding(channel.channelId)];\r\n const bindingObj = {bindings: requestBindings};\r\n\r\n return this.webex.internal.board.register(bindingObj).then(({webSocketUrl, bindings}) => {\r\n this.realtimeChannels.add({\r\n channelId: channel.channelId,\r\n socketUrl: webSocketUrl,\r\n binding: bindings[0],\r\n });\r\n\r\n return this.realtimeChannels.get(channel.channelId);\r\n });\r\n },\r\n\r\n /**\r\n * Open new mercury connection\r\n * @memberof Board.RealtimeService\r\n * @param {Board~Channel} channel\r\n * @returns {Promise}\r\n */\r\n connectByOpenNewMercuryConnection(channel) {\r\n let promise = Promise.resolve();\r\n let realtimeChannel = this.realtimeChannels.get(channel.channelId);\r\n\r\n if (!realtimeChannel) {\r\n this.logger.info('board realtime: realtime channel not found, creating new channel');\r\n promise = this.createRealtimeChannel(channel).then((rc) => {\r\n realtimeChannel = rc;\r\n this.logger.info('board realtime: realtime channel created');\r\n\r\n return realtimeChannel;\r\n });\r\n }\r\n\r\n return promise.then(() => realtimeChannel.connect(realtimeChannel.socketUrl));\r\n },\r\n\r\n /**\r\n * Disconnect connection\r\n * @memberof Board.RealtimeService\r\n * @param {Board~Channel} channel\r\n * @returns {Promise}\r\n */\r\n disconnectMercuryConnection(channel) {\r\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\r\n\r\n if (!realtimeChannel) {\r\n return Promise.reject(new Error('Realtime Channel not found!'));\r\n }\r\n\r\n return (\r\n realtimeChannel\r\n .disconnect()\r\n // even if we can't remove the channels from the collection, we can still\r\n // continue on execution\r\n .then(tap(() => this.realtimeChannels.remove(channel.channelId)))\r\n );\r\n },\r\n\r\n /**\r\n * Ensure board channelId is compatible with mercury bindings by replacing\r\n * '-' with '.' and '_' with '#'\r\n * @memberof Board.BoardService\r\n * @param {String} channelId channel.channelId\r\n * @returns {String} mercury-binding compatible string\r\n */\r\n _boardChannelIdToMercuryBinding(channelId) {\r\n // make channelId mercury compatible replace `-` with `.` and `_` with `#`\r\n return this.config.mercuryBindingPrefix + channelId.replace(/-/g, '.').replace(/_/g, '#');\r\n },\r\n\r\n /**\r\n * Connect and use an exisiting mercury connection\r\n * @memberof Board.RealtimeService\r\n * @param {Board~Channel} channel\r\n * @returns {Promise<Board~Registration>}\r\n */\r\n connectToSharedMercury(channel) {\r\n return this.webex.internal.board.registerToShareMercury(channel).then((res) => {\r\n this.realtimeChannels.add({\r\n channelId: channel.channelId,\r\n binding: res.binding,\r\n socketUrl: res.webSocketUrl,\r\n });\r\n\r\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\r\n\r\n if (!res.sharedWebSocket) {\r\n return realtimeChannel.connect(realtimeChannel.socketUrl).then(() => res);\r\n }\r\n\r\n realtimeChannel.isSharingMercury = true;\r\n realtimeChannel.socket = this.webex.internal.mercury.socket;\r\n // refresh socket reference when mercury is reconnected\r\n this.webex.internal.mercury.off('online', this.refreshMercurySocketReference, this);\r\n this.webex.internal.mercury.on('online', this.refreshMercurySocketReference, this);\r\n\r\n // make sure there's only one handler\r\n this.webex.internal.mercury.off(\r\n 'event:board.activity',\r\n this.handleBoardActivityMessages,\r\n this\r\n );\r\n this.webex.internal.mercury.on(\r\n 'event:board.activity',\r\n this.handleBoardActivityMessages,\r\n this\r\n );\r\n\r\n return res;\r\n });\r\n },\r\n\r\n handleBoardActivityMessages(event) {\r\n const realtimeChannel = this.realtimeChannels.get(event.data.envelope.channelId);\r\n\r\n if (realtimeChannel) {\r\n realtimeChannel._emit('event:board.activity', event);\r\n }\r\n },\r\n\r\n refreshMercurySocketReference() {\r\n this.realtimeChannels.forEach((realtimeChannel) => {\r\n realtimeChannel.socket = this.webex.internal.mercury.socket;\r\n });\r\n },\r\n\r\n /**\r\n * Remove board binding from existing mercury connection\r\n * @memberof Board.RealtimeService\r\n * @param {Board~Channel} channel\r\n * @returns {Promise<Board~Registration>}\r\n */\r\n disconnectFromSharedMercury(channel) {\r\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\r\n\r\n if (!realtimeChannel.isSharingMercury && realtimeChannel.socket && realtimeChannel.connected) {\r\n return this.disconnectMercuryConnection(channel);\r\n }\r\n\r\n return (\r\n this.webex.internal.board\r\n .unregisterFromSharedMercury(channel, realtimeChannel.binding)\r\n // tap suppress errors but we can still go on if the channel can't be\r\n // removed from the collection\r\n .then(tap(() => this.realtimeChannels.remove(channel.channelId)))\r\n );\r\n },\r\n});\r\n\r\nexport default RealtimeService;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_uuid","_interopRequireDefault","require","_common","_webexCore","_realtimeChannelCollection","RealtimeService","WebexPlugin","extend","namespace","collections","realtimeChannels","RealtimeChannelCollection","publish","channel","message","_this","encryptionPromise","contentType","payload","file","webex","internal","board","encryptSingleFileContent","defaultEncryptionKeyUrl","encryptSingleContent","then","encryptedPayloadAndKeyUrl","publishEncrypted","realtimeChannel","get","channelId","_promise","default","reject","Error","data","id","uuid","v4","type","recipients","alertType","route","binding","headers","eventType","envelope","encryptionKeyUrl","send","createRealtimeChannel","_this2","requestBindings","_boardChannelIdToMercuryBinding","bindingObj","bindings","register","_ref","webSocketUrl","add","socketUrl","connectByOpenNewMercuryConnection","_this3","promise","resolve","logger","info","rc","connect","disconnectMercuryConnection","_this4","disconnect","tap","remove","config","mercuryBindingPrefix","replace","connectToSharedMercury","_this5","registerToShareMercury","res","sharedWebSocket","isSharingMercury","socket","mercury","off","refreshMercurySocketReference","on","handleBoardActivityMessages","event","_emit","_this6","forEach","disconnectFromSharedMercury","_this7","connected","unregisterFromSharedMercury","version","_default","exports"],"sources":["realtime.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport uuid from 'uuid';\nimport {tap} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport RealtimeChannelCollection from './realtime-channel-collection';\n\n/**\n * @class\n * @extends {Mercury}\n * @memberof Board\n */\nconst RealtimeService = WebexPlugin.extend({\n namespace: 'Board',\n\n collections: {\n realtimeChannels: RealtimeChannelCollection,\n },\n\n /**\n * Sends the message via the socket. Assumes that the message is already properly formatted\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @param {string} message Contains the un-encrypted message to send.\n * @returns {Promise<Board~Content>}\n */\n publish(channel, message) {\n let encryptionPromise;\n let contentType = 'STRING';\n\n if (message.payload.file) {\n contentType = 'FILE';\n encryptionPromise = this.webex.internal.board.encryptSingleFileContent(\n channel.defaultEncryptionKeyUrl,\n message.payload\n );\n } else {\n encryptionPromise = this.webex.internal.board.encryptSingleContent(\n channel.defaultEncryptionKeyUrl,\n message.payload\n );\n }\n\n return encryptionPromise.then((encryptedPayloadAndKeyUrl) =>\n this.publishEncrypted(channel, encryptedPayloadAndKeyUrl, contentType)\n );\n },\n\n /**\n * Sends the message via the socket. The message should already have been\n * encrypted\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @param {object} encryptedPayloadAndKeyUrl\n * @param {string} contentType - provides hint for decryption. Defaults to\n * `STRING`, and could also be `FILE`\n * @returns {Promise<Board~Content>}\n */\n publishEncrypted(channel, encryptedPayloadAndKeyUrl, contentType) {\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel) {\n return Promise.reject(new Error('Realtime Channel not found'));\n }\n\n const data = {\n id: uuid.v4(),\n type: 'publishRequest',\n recipients: [\n {\n alertType: 'none',\n route: realtimeChannel.binding,\n headers: {},\n },\n ],\n data: {\n eventType: 'board.activity',\n contentType,\n payload: encryptedPayloadAndKeyUrl.payload,\n envelope: {\n encryptionKeyUrl: encryptedPayloadAndKeyUrl.encryptionKeyUrl,\n channelId: channel.channelId,\n },\n },\n };\n\n // provide a hint for decryption\n if (contentType === 'FILE') {\n data.data.payload = {\n file: encryptedPayloadAndKeyUrl.file,\n payload: encryptedPayloadAndKeyUrl.payload,\n };\n }\n\n return realtimeChannel.send(data);\n },\n\n createRealtimeChannel(channel) {\n const requestBindings = [this._boardChannelIdToMercuryBinding(channel.channelId)];\n const bindingObj = {bindings: requestBindings};\n\n return this.webex.internal.board.register(bindingObj).then(({webSocketUrl, bindings}) => {\n this.realtimeChannels.add({\n channelId: channel.channelId,\n socketUrl: webSocketUrl,\n binding: bindings[0],\n });\n\n return this.realtimeChannels.get(channel.channelId);\n });\n },\n\n /**\n * Open new mercury connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise}\n */\n connectByOpenNewMercuryConnection(channel) {\n let promise = Promise.resolve();\n let realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel) {\n this.logger.info('board realtime: realtime channel not found, creating new channel');\n promise = this.createRealtimeChannel(channel).then((rc) => {\n realtimeChannel = rc;\n this.logger.info('board realtime: realtime channel created');\n\n return realtimeChannel;\n });\n }\n\n return promise.then(() => realtimeChannel.connect(realtimeChannel.socketUrl));\n },\n\n /**\n * Disconnect connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise}\n */\n disconnectMercuryConnection(channel) {\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel) {\n return Promise.reject(new Error('Realtime Channel not found!'));\n }\n\n return (\n realtimeChannel\n .disconnect()\n // even if we can't remove the channels from the collection, we can still\n // continue on execution\n .then(tap(() => this.realtimeChannels.remove(channel.channelId)))\n );\n },\n\n /**\n * Ensure board channelId is compatible with mercury bindings by replacing\n * '-' with '.' and '_' with '#'\n * @memberof Board.BoardService\n * @param {String} channelId channel.channelId\n * @returns {String} mercury-binding compatible string\n */\n _boardChannelIdToMercuryBinding(channelId) {\n // make channelId mercury compatible replace `-` with `.` and `_` with `#`\n return this.config.mercuryBindingPrefix + channelId.replace(/-/g, '.').replace(/_/g, '#');\n },\n\n /**\n * Connect and use an exisiting mercury connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Registration>}\n */\n connectToSharedMercury(channel) {\n return this.webex.internal.board.registerToShareMercury(channel).then((res) => {\n this.realtimeChannels.add({\n channelId: channel.channelId,\n binding: res.binding,\n socketUrl: res.webSocketUrl,\n });\n\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!res.sharedWebSocket) {\n return realtimeChannel.connect(realtimeChannel.socketUrl).then(() => res);\n }\n\n realtimeChannel.isSharingMercury = true;\n realtimeChannel.socket = this.webex.internal.mercury.socket;\n // refresh socket reference when mercury is reconnected\n this.webex.internal.mercury.off('online', this.refreshMercurySocketReference, this);\n this.webex.internal.mercury.on('online', this.refreshMercurySocketReference, this);\n\n // make sure there's only one handler\n this.webex.internal.mercury.off(\n 'event:board.activity',\n this.handleBoardActivityMessages,\n this\n );\n this.webex.internal.mercury.on(\n 'event:board.activity',\n this.handleBoardActivityMessages,\n this\n );\n\n return res;\n });\n },\n\n handleBoardActivityMessages(event) {\n const realtimeChannel = this.realtimeChannels.get(event.data.envelope.channelId);\n\n if (realtimeChannel) {\n realtimeChannel._emit('event:board.activity', event);\n }\n },\n\n refreshMercurySocketReference() {\n this.realtimeChannels.forEach((realtimeChannel) => {\n realtimeChannel.socket = this.webex.internal.mercury.socket;\n });\n },\n\n /**\n * Remove board binding from existing mercury connection\n * @memberof Board.RealtimeService\n * @param {Board~Channel} channel\n * @returns {Promise<Board~Registration>}\n */\n disconnectFromSharedMercury(channel) {\n const realtimeChannel = this.realtimeChannels.get(channel.channelId);\n\n if (!realtimeChannel.isSharingMercury && realtimeChannel.socket && realtimeChannel.connected) {\n return this.disconnectMercuryConnection(channel);\n }\n\n return (\n this.webex.internal.board\n .unregisterFromSharedMercury(channel, realtimeChannel.binding)\n // tap suppress errors but we can still go on if the channel can't be\n // removed from the collection\n .then(tap(() => this.realtimeChannels.remove(channel.channelId)))\n );\n },\n});\n\nexport default RealtimeService;\n"],"mappings":"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"}
|
package/jest.config.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const config = require('@webex/jest-config-legacy');
|
|
2
|
-
|
|
3
|
-
module.exports = config;
|
|
1
|
+
const config = require('@webex/jest-config-legacy');
|
|
2
|
+
|
|
3
|
+
module.exports = config;
|
package/package.json
CHANGED
|
@@ -25,23 +25,23 @@
|
|
|
25
25
|
"@webex/eslint-config-legacy": "^0.0.0",
|
|
26
26
|
"@webex/jest-config-legacy": "^0.0.0",
|
|
27
27
|
"@webex/legacy-tools": "^0.0.0",
|
|
28
|
-
"@webex/test-helper-chai": "^2.59.
|
|
29
|
-
"@webex/test-helper-file": "^2.59.
|
|
30
|
-
"@webex/test-helper-mocha": "^2.59.
|
|
31
|
-
"@webex/test-helper-mock-web-socket": "^2.59.
|
|
32
|
-
"@webex/test-helper-mock-webex": "^2.59.
|
|
33
|
-
"@webex/test-helper-test-users": "^2.59.
|
|
28
|
+
"@webex/test-helper-chai": "^2.59.4-next.1",
|
|
29
|
+
"@webex/test-helper-file": "^2.59.4-next.1",
|
|
30
|
+
"@webex/test-helper-mocha": "^2.59.4-next.1",
|
|
31
|
+
"@webex/test-helper-mock-web-socket": "^2.59.4-next.1",
|
|
32
|
+
"@webex/test-helper-mock-webex": "^2.59.4-next.1",
|
|
33
|
+
"@webex/test-helper-test-users": "^2.59.4-next.1",
|
|
34
34
|
"eslint": "^8.24.0",
|
|
35
35
|
"prettier": "^2.7.1",
|
|
36
36
|
"sinon": "^9.2.4"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@webex/common": "^2.59.
|
|
40
|
-
"@webex/internal-plugin-conversation": "^2.59.
|
|
41
|
-
"@webex/internal-plugin-encryption": "^2.59.
|
|
42
|
-
"@webex/internal-plugin-feature": "^2.59.
|
|
43
|
-
"@webex/internal-plugin-mercury": "^2.59.
|
|
44
|
-
"@webex/webex-core": "^2.59.
|
|
39
|
+
"@webex/common": "^2.59.4-next.1",
|
|
40
|
+
"@webex/internal-plugin-conversation": "^2.59.4-next.1",
|
|
41
|
+
"@webex/internal-plugin-encryption": "^2.59.4-next.1",
|
|
42
|
+
"@webex/internal-plugin-feature": "^2.59.4-next.1",
|
|
43
|
+
"@webex/internal-plugin-mercury": "^2.59.4-next.1",
|
|
44
|
+
"@webex/webex-core": "^2.59.4-next.1",
|
|
45
45
|
"ampersand-collection": "^2.0.2",
|
|
46
46
|
"es6-promise-series": "^0.2.2",
|
|
47
47
|
"lodash": "^4.17.21",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"test:style": "eslint ./src/**/*.*",
|
|
58
58
|
"test:unit": "webex-legacy-tools test --unit --runner jest"
|
|
59
59
|
},
|
|
60
|
-
"version": "2.59.
|
|
60
|
+
"version": "2.59.4-next.1"
|
|
61
61
|
}
|
package/process
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = {browser: true};
|
|
1
|
+
module.exports = {browser: true};
|