botframework-webchat-core 4.13.0 → 4.14.2
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/lib/createPromiseQueue.js +1 -1
- package/lib/createStore.d.ts +3 -2
- package/lib/createStore.d.ts.map +1 -0
- package/lib/createStore.js +1 -1
- package/lib/index.d.ts +49 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +26 -6
- package/lib/reducer.d.ts +1 -0
- package/lib/reducer.d.ts.map +1 -0
- package/lib/reducers/activities.js +1 -1
- package/lib/reducers/clockSkewAdjustment.js +1 -1
- package/lib/reducers/lastTypingAt.js +1 -1
- package/lib/reducers/notifications.js +1 -1
- package/lib/reducers/typing.js +1 -1
- package/lib/sagas/connectSaga.js +14 -8
- package/lib/sagas/connectionStatusToNotificationSaga.js +1 -1
- package/lib/sagas/effects/forkPut.js +1 -1
- package/lib/sagas/markAllAsSpokenOnStopSpeakActivitySaga.js +1 -1
- package/lib/sagas/observeActivitySaga.js +1 -1
- package/lib/sagas/postActivitySaga.js +39 -32
- package/lib/sagas/queueIncomingActivitySaga.js +7 -3
- package/lib/sagas/sendMessageBackToPostActivitySaga.js +4 -4
- package/lib/sagas/sendPostBackToPostActivitySaga.js +4 -4
- package/lib/selectors/combineSelectors.js +1 -1
- package/lib/types/OneOrMany.d.ts +3 -0
- package/lib/types/OneOrMany.d.ts.map +1 -0
- package/lib/types/OneOrMany.js +2 -0
- package/lib/types/external/DirectLineActivity.d.ts +3 -0
- package/lib/types/external/DirectLineActivity.d.ts.map +1 -0
- package/lib/types/external/DirectLineActivity.js +2 -0
- package/lib/types/external/DirectLineAnimationCard.d.ts +3 -0
- package/lib/types/external/DirectLineAnimationCard.d.ts.map +1 -0
- package/lib/types/external/DirectLineAnimationCard.js +2 -0
- package/lib/types/external/DirectLineAttachment.d.ts +3 -0
- package/lib/types/external/DirectLineAttachment.d.ts.map +1 -0
- package/lib/types/external/DirectLineAttachment.js +2 -0
- package/lib/types/external/DirectLineAudioCard.d.ts +3 -0
- package/lib/types/external/DirectLineAudioCard.d.ts.map +1 -0
- package/lib/types/external/DirectLineAudioCard.js +2 -0
- package/lib/types/external/DirectLineCardAction.d.ts +110 -0
- package/lib/types/external/DirectLineCardAction.d.ts.map +1 -0
- package/lib/types/external/DirectLineCardAction.js +2 -0
- package/lib/types/external/DirectLineHeroCard.d.ts +3 -0
- package/lib/types/external/DirectLineHeroCard.d.ts.map +1 -0
- package/lib/types/external/DirectLineHeroCard.js +2 -0
- package/lib/types/external/DirectLineJSBotConnection.d.ts +3 -0
- package/lib/types/external/DirectLineJSBotConnection.d.ts.map +1 -0
- package/lib/types/external/DirectLineJSBotConnection.js +2 -0
- package/lib/types/external/DirectLineOAuthCard.d.ts +3 -0
- package/lib/types/external/DirectLineOAuthCard.d.ts.map +1 -0
- package/lib/types/external/DirectLineOAuthCard.js +2 -0
- package/lib/types/external/DirectLineReceiptCard.d.ts +3 -0
- package/lib/types/external/DirectLineReceiptCard.d.ts.map +1 -0
- package/lib/types/external/DirectLineReceiptCard.js +2 -0
- package/lib/types/external/DirectLineSignInCard.d.ts +3 -0
- package/lib/types/external/DirectLineSignInCard.d.ts.map +1 -0
- package/lib/types/external/DirectLineSignInCard.js +2 -0
- package/lib/types/external/DirectLineSuggestedAction.d.ts +3 -0
- package/lib/types/external/DirectLineSuggestedAction.d.ts.map +1 -0
- package/lib/types/external/DirectLineSuggestedAction.js +2 -0
- package/lib/types/external/DirectLineThumbnailCard.d.ts +3 -0
- package/lib/types/external/DirectLineThumbnailCard.d.ts.map +1 -0
- package/lib/types/external/DirectLineThumbnailCard.js +2 -0
- package/lib/types/external/DirectLineVideoCard.d.ts +3 -0
- package/lib/types/external/DirectLineVideoCard.d.ts.map +1 -0
- package/lib/types/external/DirectLineVideoCard.js +2 -0
- package/lib/utils/dateToLocaleISOString.js +37 -0
- package/lib/utils/deleteKey.js +1 -1
- package/lib/utils/once.d.ts +2 -0
- package/lib/utils/once.d.ts.map +1 -0
- package/lib/utils/once.js +17 -0
- package/lib/utils/singleToArray.d.ts +2 -0
- package/lib/utils/singleToArray.d.ts.map +1 -0
- package/lib/utils/singleToArray.js +11 -0
- package/lib/utils/warnOnce.d.ts +2 -0
- package/lib/utils/warnOnce.d.ts.map +1 -0
- package/lib/utils/warnOnce.js +17 -0
- package/package.json +25 -21
- package/src/createStore.ts +2 -2
- package/src/{index.js → index.ts} +38 -4
- package/src/sagas/connectSaga.js +9 -2
- package/src/sagas/postActivitySaga.js +11 -4
- package/src/sagas/sendMessageBackToPostActivitySaga.js +3 -3
- package/src/sagas/sendPostBackToPostActivitySaga.js +2 -3
- package/src/tsconfig.json +7 -3
- package/src/types/OneOrMany.ts +3 -0
- package/src/types/external/DirectLineActivity.ts +6 -0
- package/src/types/external/DirectLineAnimationCard.ts +6 -0
- package/src/types/external/DirectLineAttachment.ts +6 -0
- package/src/types/external/DirectLineAudioCard.ts +6 -0
- package/src/types/external/DirectLineCardAction.ts +128 -0
- package/src/types/external/DirectLineHeroCard.ts +6 -0
- package/src/types/external/DirectLineJSBotConnection.ts +6 -0
- package/src/types/external/DirectLineOAuthCard.ts +6 -0
- package/src/types/external/DirectLineReceiptCard.ts +6 -0
- package/src/types/external/DirectLineSignInCard.ts +6 -0
- package/src/types/external/DirectLineSuggestedAction.ts +6 -0
- package/src/types/external/DirectLineThumbnailCard.ts +6 -0
- package/src/types/external/DirectLineVideoCard.ts +6 -0
- package/src/utils/dateToLocaleISOString.chatham.spec.js +13 -0
- package/src/utils/dateToLocaleISOString.japan.spec.js +13 -0
- package/src/utils/dateToLocaleISOString.js +34 -0
- package/src/utils/dateToLocaleISOString.pacific.spec.js +13 -0
- package/src/utils/dateToLocaleISOString.utc.spec.js +20 -0
- package/src/utils/once.ts +10 -0
- package/src/utils/singleToArray.ts +3 -0
- package/src/utils/warnOnce.ts +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectLineHeroCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineHeroCard.ts"],"names":[],"mappings":"AAGA,aAAK,kBAAkB,GAAG,GAAG,CAAC;AAE9B,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectLineJSBotConnection.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineJSBotConnection.ts"],"names":[],"mappings":"AAGA,aAAK,yBAAyB,GAAG,GAAG,CAAC;AAErC,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectLineOAuthCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineOAuthCard.ts"],"names":[],"mappings":"AAGA,aAAK,mBAAmB,GAAG,GAAG,CAAC;AAE/B,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectLineReceiptCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineReceiptCard.ts"],"names":[],"mappings":"AAGA,aAAK,qBAAqB,GAAG,GAAG,CAAC;AAEjC,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectLineSignInCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineSignInCard.ts"],"names":[],"mappings":"AAGA,aAAK,oBAAoB,GAAG,GAAG,CAAC;AAEhC,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectLineSuggestedAction.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineSuggestedAction.ts"],"names":[],"mappings":"AAGA,aAAK,yBAAyB,GAAG,GAAG,CAAC;AAErC,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectLineThumbnailCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineThumbnailCard.ts"],"names":[],"mappings":"AAGA,aAAK,uBAAuB,GAAG,GAAG,CAAC;AAEnC,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectLineVideoCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineVideoCard.ts"],"names":[],"mappings":"AAGA,aAAK,mBAAmB,GAAG,GAAG,CAAC;AAE/B,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = dateToLocaleISOString;
|
|
7
|
+
|
|
8
|
+
/* eslint no-magic-numbers: ["off", { "ignore": [1, 2, 3, 60] }] */
|
|
9
|
+
function pad(value) {
|
|
10
|
+
var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
|
|
11
|
+
|
|
12
|
+
if (typeof value !== 'number') {
|
|
13
|
+
throw new Error('First argument must be a number');
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
value += '';
|
|
17
|
+
|
|
18
|
+
while (value.length < count) {
|
|
19
|
+
value = '0' + value;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return value;
|
|
23
|
+
} // Adopted from https://stackoverflow.com/questions/17415579/how-to-iso-8601-format-a-date-with-timezone-offset-in-javascript.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
function dateToLocaleISOString(date) {
|
|
27
|
+
if (!(date instanceof Date)) {
|
|
28
|
+
throw new Error('First argument must be a Date object');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
var timezoneOffset = -date.getTimezoneOffset();
|
|
32
|
+
var timezoneSign = timezoneOffset < 0 ? '-' : '+'; // "yyyy-MM-DDTHH:mm:ss.fff+08:00" for GMT+08
|
|
33
|
+
// "yyyy-MM-DDTHH:mm:ss.fffZ" for UTC
|
|
34
|
+
|
|
35
|
+
return "".concat(date.getFullYear(), "-").concat(pad(date.getMonth() + 1), "-").concat(pad(date.getDate()), "T").concat(pad(date.getHours()), ":").concat(pad(date.getMinutes()), ":").concat(pad(date.getSeconds()), ".").concat(pad(date.getMilliseconds(), 3)).concat(timezoneOffset ? "".concat(timezoneSign).concat(pad(~~(Math.abs(timezoneOffset) / 60)), ":").concat(pad(timezoneOffset % 60)) : 'Z');
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kYXRlVG9Mb2NhbGVJU09TdHJpbmcuanMiXSwibmFtZXMiOlsicGFkIiwidmFsdWUiLCJjb3VudCIsIkVycm9yIiwibGVuZ3RoIiwiZGF0ZVRvTG9jYWxlSVNPU3RyaW5nIiwiZGF0ZSIsIkRhdGUiLCJ0aW1lem9uZU9mZnNldCIsImdldFRpbWV6b25lT2Zmc2V0IiwidGltZXpvbmVTaWduIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJnZXRTZWNvbmRzIiwiZ2V0TWlsbGlzZWNvbmRzIiwiTWF0aCIsImFicyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBRUEsU0FBU0EsR0FBVCxDQUFhQyxLQUFiLEVBQStCO0FBQUEsTUFBWEMsS0FBVyx1RUFBSCxDQUFHOztBQUM3QixNQUFJLE9BQU9ELEtBQVAsS0FBaUIsUUFBckIsRUFBK0I7QUFDN0IsVUFBTSxJQUFJRSxLQUFKLENBQVUsaUNBQVYsQ0FBTjtBQUNEOztBQUVERixFQUFBQSxLQUFLLElBQUksRUFBVDs7QUFFQSxTQUFPQSxLQUFLLENBQUNHLE1BQU4sR0FBZUYsS0FBdEIsRUFBNkI7QUFDM0JELElBQUFBLEtBQUssR0FBRyxNQUFNQSxLQUFkO0FBQ0Q7O0FBRUQsU0FBT0EsS0FBUDtBQUNELEMsQ0FFRDs7O0FBQ2UsU0FBU0kscUJBQVQsQ0FBK0JDLElBQS9CLEVBQXFDO0FBQ2xELE1BQUksRUFBRUEsSUFBSSxZQUFZQyxJQUFsQixDQUFKLEVBQTZCO0FBQzNCLFVBQU0sSUFBSUosS0FBSixDQUFVLHNDQUFWLENBQU47QUFDRDs7QUFFRCxNQUFNSyxjQUFjLEdBQUcsQ0FBQ0YsSUFBSSxDQUFDRyxpQkFBTCxFQUF4QjtBQUNBLE1BQU1DLFlBQVksR0FBR0YsY0FBYyxHQUFHLENBQWpCLEdBQXFCLEdBQXJCLEdBQTJCLEdBQWhELENBTmtELENBUWxEO0FBQ0E7O0FBRUEsbUJBQVVGLElBQUksQ0FBQ0ssV0FBTCxFQUFWLGNBQWdDWCxHQUFHLENBQUNNLElBQUksQ0FBQ00sUUFBTCxLQUFrQixDQUFuQixDQUFuQyxjQUE0RFosR0FBRyxDQUFDTSxJQUFJLENBQUNPLE9BQUwsRUFBRCxDQUEvRCxjQUFtRmIsR0FBRyxDQUFDTSxJQUFJLENBQUNRLFFBQUwsRUFBRCxDQUF0RixjQUEyR2QsR0FBRyxDQUM1R00sSUFBSSxDQUFDUyxVQUFMLEVBRDRHLENBQTlHLGNBRUtmLEdBQUcsQ0FBQ00sSUFBSSxDQUFDVSxVQUFMLEVBQUQsQ0FGUixjQUUrQmhCLEdBQUcsQ0FBQ00sSUFBSSxDQUFDVyxlQUFMLEVBQUQsRUFBeUIsQ0FBekIsQ0FGbEMsU0FHRVQsY0FBYyxhQUFNRSxZQUFOLFNBQXFCVixHQUFHLENBQUMsQ0FBQyxFQUFFa0IsSUFBSSxDQUFDQyxHQUFMLENBQVNYLGNBQVQsSUFBMkIsRUFBN0IsQ0FBRixDQUF4QixjQUErRFIsR0FBRyxDQUFDUSxjQUFjLEdBQUcsRUFBbEIsQ0FBbEUsSUFBNEYsR0FINUc7QUFLRCIsInNvdXJjZVJvb3QiOiJjb3JlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby1tYWdpYy1udW1iZXJzOiBbXCJvZmZcIiwgeyBcImlnbm9yZVwiOiBbMSwgMiwgMywgNjBdIH1dICovXG5cbmZ1bmN0aW9uIHBhZCh2YWx1ZSwgY291bnQgPSAyKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyJyk7XG4gIH1cblxuICB2YWx1ZSArPSAnJztcblxuICB3aGlsZSAodmFsdWUubGVuZ3RoIDwgY291bnQpIHtcbiAgICB2YWx1ZSA9ICcwJyArIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vLyBBZG9wdGVkIGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTc0MTU1NzkvaG93LXRvLWlzby04NjAxLWZvcm1hdC1hLWRhdGUtd2l0aC10aW1lem9uZS1vZmZzZXQtaW4tamF2YXNjcmlwdC5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRhdGVUb0xvY2FsZUlTT1N0cmluZyhkYXRlKSB7XG4gIGlmICghKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIERhdGUgb2JqZWN0Jyk7XG4gIH1cblxuICBjb25zdCB0aW1lem9uZU9mZnNldCA9IC1kYXRlLmdldFRpbWV6b25lT2Zmc2V0KCk7XG4gIGNvbnN0IHRpbWV6b25lU2lnbiA9IHRpbWV6b25lT2Zmc2V0IDwgMCA/ICctJyA6ICcrJztcblxuICAvLyBcInl5eXktTU0tRERUSEg6bW06c3MuZmZmKzA4OjAwXCIgZm9yIEdNVCswOFxuICAvLyBcInl5eXktTU0tRERUSEg6bW06c3MuZmZmWlwiIGZvciBVVENcblxuICByZXR1cm4gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfS0ke3BhZChkYXRlLmdldE1vbnRoKCkgKyAxKX0tJHtwYWQoZGF0ZS5nZXREYXRlKCkpfVQke3BhZChkYXRlLmdldEhvdXJzKCkpfToke3BhZChcbiAgICBkYXRlLmdldE1pbnV0ZXMoKVxuICApfToke3BhZChkYXRlLmdldFNlY29uZHMoKSl9LiR7cGFkKGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCksIDMpfSR7XG4gICAgdGltZXpvbmVPZmZzZXQgPyBgJHt0aW1lem9uZVNpZ259JHtwYWQofn4oTWF0aC5hYnModGltZXpvbmVPZmZzZXQpIC8gNjApKX06JHtwYWQodGltZXpvbmVPZmZzZXQgJSA2MCl9YCA6ICdaJ1xuICB9YDtcbn1cbiJdfQ==
|
package/lib/utils/deleteKey.js
CHANGED
|
@@ -27,4 +27,4 @@ function deleteKey(map, key) {
|
|
|
27
27
|
nextMap = (0, _objectWithoutProperties2["default"])(map, [key].map(_toPropertyKey));
|
|
28
28
|
return nextMap;
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kZWxldGVLZXkuanMiXSwibmFtZXMiOlsiZGVsZXRlS2V5IiwibWFwIiwia2V5IiwiZGVsZXRlZCIsIm5leHRNYXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUVlLFNBQVNBLFNBQVQsQ0FBbUJDLEdBQW5CLEVBQXdCQyxHQUF4QixFQUE2QjtBQUMxQyxNQUFJLENBQUNELEdBQUwsRUFBVTtBQUNSLFdBQU9BLEdBQVA7QUFDRDs7QUFFRCxNQUFlRSxPQUFmLEdBQXVDRixHQUF2QyxDQUFTQyxHQUFUO0FBQUEsTUFBMkJFLE9BQTNCLDZDQUF1Q0gsR0FBdkMsR0FBU0MsR0FBVDtBQUVBLFNBQU9FLE9BQVA7QUFDRCIsInNvdXJjZVJvb3QiOiJjb3JlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby11bnVzZWQtdmFyczogW1wiZXJyb3JcIiwgeyBcInZhcnNJZ25vcmVQYXR0ZXJuXCI6IFwiXmRlbGV0ZWQkXCIgfV0gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVsZXRlS2V5KG1hcCwga2V5KSB7XG4gIGlmICghbWFwKSB7XG4gICAgcmV0dXJuIG1hcDtcbiAgfVxuXG4gIGNvbnN0IHsgW2tleV06IGRlbGV0ZWQsIC4uLm5leHRNYXAgfSA9IG1hcDtcblxuICByZXR1cm4gbmV4dE1hcDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"once.d.ts","sourceRoot":"","sources":["../../src/utils/once.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CASvD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = once;
|
|
7
|
+
|
|
8
|
+
function once(fn) {
|
|
9
|
+
var done;
|
|
10
|
+
return function () {
|
|
11
|
+
if (!done) {
|
|
12
|
+
fn();
|
|
13
|
+
done = 1;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9vbmNlLnRzIl0sIm5hbWVzIjpbIm9uY2UiLCJmbiIsImRvbmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZSxTQUFTQSxJQUFULENBQWNDLEVBQWQsRUFBMEM7QUFDdkQsTUFBSUMsSUFBSjtBQUVBLFNBQU8sWUFBTTtBQUNYLFFBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1RELE1BQUFBLEVBQUU7QUFDRkMsTUFBQUEsSUFBSSxHQUFHLENBQVA7QUFDRDtBQUNGLEdBTEQ7QUFNRCIsInNvdXJjZVJvb3QiOiJjb3JlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9uY2UoZm46ICgpID0+IHZvaWQpOiAoKSA9PiB2b2lkIHtcbiAgbGV0IGRvbmU7XG5cbiAgcmV0dXJuICgpID0+IHtcbiAgICBpZiAoIWRvbmUpIHtcbiAgICAgIGZuKCk7XG4gICAgICBkb25lID0gMTtcbiAgICB9XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"singleToArray.d.ts","sourceRoot":"","sources":["../../src/utils/singleToArray.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAEpE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = singleToArray;
|
|
7
|
+
|
|
8
|
+
function singleToArray(singleOrArray) {
|
|
9
|
+
return singleOrArray ? Array.isArray(singleOrArray) ? singleOrArray : [singleOrArray] : [];
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zaW5nbGVUb0FycmF5LnRzIl0sIm5hbWVzIjpbInNpbmdsZVRvQXJyYXkiLCJzaW5nbGVPckFycmF5IiwiQXJyYXkiLCJpc0FycmF5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWUsU0FBU0EsYUFBVCxDQUEwQkMsYUFBMUIsRUFBdUQ7QUFDcEUsU0FBT0EsYUFBYSxHQUFJQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0YsYUFBZCxJQUErQkEsYUFBL0IsR0FBK0MsQ0FBQ0EsYUFBRCxDQUFuRCxHQUFzRSxFQUExRjtBQUNEIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2luZ2xlVG9BcnJheTxUPihzaW5nbGVPckFycmF5OiBUIHwgVFtdKTogVFtdIHtcbiAgcmV0dXJuIHNpbmdsZU9yQXJyYXkgPyAoQXJyYXkuaXNBcnJheShzaW5nbGVPckFycmF5KSA/IHNpbmdsZU9yQXJyYXkgOiBbc2luZ2xlT3JBcnJheV0pIDogW107XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warnOnce.d.ts","sourceRoot":"","sources":["../../src/utils/warnOnce.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,IAAI,CAE5D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = warnOnce;
|
|
9
|
+
|
|
10
|
+
var _once = _interopRequireDefault(require("./once"));
|
|
11
|
+
|
|
12
|
+
function warnOnce(message) {
|
|
13
|
+
return (0, _once["default"])(function () {
|
|
14
|
+
return console.warn("botframework-webchat: ".concat(message, "."));
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy93YXJuT25jZS50cyJdLCJuYW1lcyI6WyJ3YXJuT25jZSIsIm1lc3NhZ2UiLCJjb25zb2xlIiwid2FybiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRWUsU0FBU0EsUUFBVCxDQUFrQkMsT0FBbEIsRUFBK0M7QUFDNUQsU0FBTyxzQkFBSztBQUFBLFdBQU1DLE9BQU8sQ0FBQ0MsSUFBUixpQ0FBc0NGLE9BQXRDLE9BQU47QUFBQSxHQUFMLENBQVA7QUFDRCIsInNvdXJjZVJvb3QiOiJjb3JlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvbmNlIGZyb20gJy4vb25jZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHdhcm5PbmNlKG1lc3NhZ2U6IHN0cmluZyk6ICgpID0+IHZvaWQge1xuICByZXR1cm4gb25jZSgoKSA9PiBjb25zb2xlLndhcm4oYGJvdGZyYW1ld29yay13ZWJjaGF0OiAke21lc3NhZ2V9LmApKTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "botframework-webchat-core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.14.2",
|
|
4
4
|
"description": "Core of botframework-webchat",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -20,40 +20,44 @@
|
|
|
20
20
|
"build": "npm run build:typescript && npm run build:babel",
|
|
21
21
|
"build:babel": "babel src --extensions .js,.ts,.tsx --ignore **/*.spec.js,**/*.spec.ts,**/*.spec.tsx,**/*.test.js,**/*.test.ts,**/*.test.tsx,__tests__/**/*.js,__tests__/**/*.ts,__tests__/**/*.tsx --out-dir lib --verbose",
|
|
22
22
|
"build:typescript": "tsc --project src/tsconfig.json",
|
|
23
|
-
"eslint": "
|
|
23
|
+
"eslint": "npm run precommit",
|
|
24
|
+
"precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck",
|
|
25
|
+
"precommit:eslint": "eslint",
|
|
26
|
+
"precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false",
|
|
27
|
+
"prettier": "prettier --check src/**/*.{js,ts,tsx}",
|
|
24
28
|
"prestart": "npm run build:babel",
|
|
25
29
|
"start": "concurrently --kill-others --names \"babel,tsc\" \"npm run start:babel\" \"npm run start:typescript\"",
|
|
26
30
|
"start:babel": "npm run build:babel -- --skip-initial-build --watch",
|
|
27
31
|
"start:typescript": "npm run build:typescript -- --watch"
|
|
28
32
|
},
|
|
29
33
|
"devDependencies": {
|
|
30
|
-
"@babel/cli": "^7.
|
|
31
|
-
"@babel/core": "^7.
|
|
32
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
33
|
-
"@babel/preset-env": "^7.
|
|
34
|
-
"@babel/preset-typescript": "^7.
|
|
35
|
-
"@types/node": "^
|
|
36
|
-
"@typescript-eslint/eslint-plugin": "^4.
|
|
37
|
-
"@typescript-eslint/parser": "^4.
|
|
34
|
+
"@babel/cli": "^7.14.5",
|
|
35
|
+
"@babel/core": "^7.14.6",
|
|
36
|
+
"@babel/plugin-transform-runtime": "^7.14.5",
|
|
37
|
+
"@babel/preset-env": "^7.14.7",
|
|
38
|
+
"@babel/preset-typescript": "^7.14.5",
|
|
39
|
+
"@types/node": "^16.3.1",
|
|
40
|
+
"@typescript-eslint/eslint-plugin": "^4.28.3",
|
|
41
|
+
"@typescript-eslint/parser": "^4.28.3",
|
|
38
42
|
"babel-plugin-istanbul": "^6.0.0",
|
|
39
43
|
"babel-plugin-transform-inline-environment-variables": "^0.4.3",
|
|
40
|
-
"botframework-directlinejs": "
|
|
41
|
-
"concurrently": "^6.
|
|
42
|
-
"eslint": "^7.
|
|
44
|
+
"botframework-directlinejs": "0.15.0",
|
|
45
|
+
"concurrently": "^6.2.0",
|
|
46
|
+
"eslint": "^7.30.0",
|
|
43
47
|
"eslint-plugin-node": "^11.1.0",
|
|
44
|
-
"eslint-plugin-prettier": "^3.
|
|
45
|
-
"prettier": "^2.2
|
|
46
|
-
"typescript": "^4.
|
|
48
|
+
"eslint-plugin-prettier": "^3.4.0",
|
|
49
|
+
"prettier": "^2.3.2",
|
|
50
|
+
"typescript": "^4.3.5"
|
|
47
51
|
},
|
|
48
52
|
"dependencies": {
|
|
49
|
-
"@babel/runtime": "7.
|
|
50
|
-
"
|
|
53
|
+
"@babel/runtime": "7.14.6",
|
|
54
|
+
"jwt-decode": "3.1.2",
|
|
51
55
|
"math-random": "2.0.1",
|
|
52
56
|
"mime": "2.5.2",
|
|
53
|
-
"p-defer": "
|
|
54
|
-
"p-defer-es5": "
|
|
57
|
+
"p-defer": "4.0.0",
|
|
58
|
+
"p-defer-es5": "2.0.0",
|
|
55
59
|
"redux": "4.0.5",
|
|
56
|
-
"redux-devtools-extension": "2.13.
|
|
60
|
+
"redux-devtools-extension": "2.13.9",
|
|
57
61
|
"redux-saga": "1.1.3",
|
|
58
62
|
"simple-update-in": "2.2.0"
|
|
59
63
|
},
|
package/src/createStore.ts
CHANGED
|
@@ -29,7 +29,7 @@ function createEnhancerAndSagaMiddleware(getStore, ...middlewares) {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
export default function createStore(initialState
|
|
32
|
+
export default function createStore(initialState?, ...middlewares): Store {
|
|
33
33
|
const { enhancer, sagaMiddleware } = createEnhancerAndSagaMiddleware(() => store, ...middlewares);
|
|
34
34
|
const store = createReduxStore(reducer, initialState || {}, enhancer);
|
|
35
35
|
|
|
@@ -38,7 +38,7 @@ export default function createStore(initialState, ...middlewares): Store {
|
|
|
38
38
|
return store;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export function withDevTools(initialState
|
|
41
|
+
export function withDevTools(initialState?, ...middlewares): Store {
|
|
42
42
|
const { enhancer, sagaMiddleware } = createEnhancerAndSagaMiddleware(() => store, ...middlewares);
|
|
43
43
|
const store = createReduxStore(reducer, initialState || {}, composeWithDevTools(enhancer));
|
|
44
44
|
|
|
@@ -1,10 +1,26 @@
|
|
|
1
|
+
import * as ActivityClientState from './constants/ActivityClientState';
|
|
2
|
+
import * as DictateState from './constants/DictateState';
|
|
1
3
|
import clearSuggestedActions from './actions/clearSuggestedActions';
|
|
2
4
|
import connect from './actions/connect';
|
|
3
5
|
import createStore, { withDevTools as createStoreWithDevTools } from './createStore';
|
|
6
|
+
import DirectLineActivity from './types/external/DirectLineActivity';
|
|
7
|
+
import DirectLineAnimationCard from './types/external/DirectLineAnimationCard';
|
|
8
|
+
import DirectLineAttachment from './types/external/DirectLineAttachment';
|
|
9
|
+
import DirectLineAudioCard from './types/external/DirectLineAudioCard';
|
|
10
|
+
import DirectLineCardAction from './types/external/DirectLineCardAction';
|
|
11
|
+
import DirectLineHeroCard from './types/external/DirectLineHeroCard';
|
|
12
|
+
import DirectLineJSBotConnection from './types/external/DirectLineJSBotConnection';
|
|
13
|
+
import DirectLineOAuthCard from './types/external/DirectLineOAuthCard';
|
|
14
|
+
import DirectLineReceiptCard from './types/external/DirectLineReceiptCard';
|
|
15
|
+
import DirectLineSignInCard from './types/external/DirectLineSignInCard';
|
|
16
|
+
import DirectLineSuggestedAction from './types/external/DirectLineSuggestedAction';
|
|
17
|
+
import DirectLineThumbnailCard from './types/external/DirectLineThumbnailCard';
|
|
18
|
+
import DirectLineVideoCard from './types/external/DirectLineVideoCard';
|
|
4
19
|
import disconnect from './actions/disconnect';
|
|
5
20
|
import dismissNotification from './actions/dismissNotification';
|
|
6
21
|
import emitTypingIndicator from './actions/emitTypingIndicator';
|
|
7
22
|
import markActivity from './actions/markActivity';
|
|
23
|
+
import OneOrMany from './types/OneOrMany';
|
|
8
24
|
import postActivity from './actions/postActivity';
|
|
9
25
|
import sendEvent from './actions/sendEvent';
|
|
10
26
|
import sendFiles from './actions/sendFiles';
|
|
@@ -18,14 +34,13 @@ import setNotification from './actions/setNotification';
|
|
|
18
34
|
import setSendBox from './actions/setSendBox';
|
|
19
35
|
import setSendTimeout from './actions/setSendTimeout';
|
|
20
36
|
import setSendTypingIndicator from './actions/setSendTypingIndicator';
|
|
37
|
+
import singleToArray from './utils/singleToArray';
|
|
21
38
|
import startDictate from './actions/startDictate';
|
|
22
39
|
import startSpeakingActivity from './actions/startSpeakingActivity';
|
|
23
40
|
import stopDictate from './actions/stopDictate';
|
|
24
41
|
import stopSpeakingActivity from './actions/stopSpeakingActivity';
|
|
25
42
|
import submitSendBox from './actions/submitSendBox';
|
|
26
|
-
|
|
27
|
-
import * as ActivityClientState from './constants/ActivityClientState';
|
|
28
|
-
import * as DictateState from './constants/DictateState';
|
|
43
|
+
import warnOnce from './utils/warnOnce';
|
|
29
44
|
|
|
30
45
|
const Constants = { ActivityClientState, DictateState };
|
|
31
46
|
const version = process.env.npm_package_version;
|
|
@@ -53,10 +68,29 @@ export {
|
|
|
53
68
|
setSendBox,
|
|
54
69
|
setSendTimeout,
|
|
55
70
|
setSendTypingIndicator,
|
|
71
|
+
singleToArray,
|
|
56
72
|
startDictate,
|
|
57
73
|
startSpeakingActivity,
|
|
58
74
|
stopDictate,
|
|
59
75
|
stopSpeakingActivity,
|
|
60
76
|
submitSendBox,
|
|
61
|
-
version
|
|
77
|
+
version,
|
|
78
|
+
warnOnce
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export type {
|
|
82
|
+
DirectLineActivity,
|
|
83
|
+
DirectLineAnimationCard,
|
|
84
|
+
DirectLineAttachment,
|
|
85
|
+
DirectLineAudioCard,
|
|
86
|
+
DirectLineCardAction,
|
|
87
|
+
DirectLineHeroCard,
|
|
88
|
+
DirectLineOAuthCard,
|
|
89
|
+
DirectLineJSBotConnection,
|
|
90
|
+
DirectLineReceiptCard,
|
|
91
|
+
DirectLineSignInCard,
|
|
92
|
+
DirectLineSuggestedAction,
|
|
93
|
+
DirectLineThumbnailCard,
|
|
94
|
+
DirectLineVideoCard,
|
|
95
|
+
OneOrMany
|
|
62
96
|
};
|
package/src/sagas/connectSaga.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { call, cancel, cancelled, fork, put, race, take } from 'redux-saga/effects';
|
|
4
4
|
|
|
5
5
|
import { ConnectionStatus } from 'botframework-directlinejs';
|
|
6
|
-
import
|
|
6
|
+
import decode from 'jwt-decode';
|
|
7
7
|
|
|
8
8
|
import { CONNECT } from '../actions/connect';
|
|
9
9
|
import createPromiseQueue from '../createPromiseQueue';
|
|
@@ -39,7 +39,14 @@ function* observeAndPutConnectionStatusUpdate(directLine) {
|
|
|
39
39
|
// TODO: [P2] We should move this check and rectification to DirectLineJS.
|
|
40
40
|
function rectifyUserID(directLine, userIDFromAction) {
|
|
41
41
|
const { token } = directLine;
|
|
42
|
-
|
|
42
|
+
|
|
43
|
+
let userIDFromToken;
|
|
44
|
+
|
|
45
|
+
// TODO: Add test to make sure "jwt-decode" work as expected.
|
|
46
|
+
try {
|
|
47
|
+
userIDFromToken = (decode(token) || {}).user;
|
|
48
|
+
// eslint-disable-next-line no-empty
|
|
49
|
+
} catch (err) {}
|
|
43
50
|
|
|
44
51
|
const result = {
|
|
45
52
|
fromAction: userIDFromAction,
|
|
@@ -5,6 +5,7 @@ import whileConnected from './effects/whileConnected';
|
|
|
5
5
|
|
|
6
6
|
import clockSkewAdjustmentSelector from '../selectors/clockSkewAdjustment';
|
|
7
7
|
import combineSelectors from '../selectors/combineSelectors';
|
|
8
|
+
import dateToLocaleISOString from '../utils/dateToLocaleISOString';
|
|
8
9
|
import languageSelector from '../selectors/language';
|
|
9
10
|
import sendTimeoutSelector from '../selectors/sendTimeout';
|
|
10
11
|
|
|
@@ -21,8 +22,9 @@ import {
|
|
|
21
22
|
|
|
22
23
|
import { INCOMING_ACTIVITY } from '../actions/incomingActivity';
|
|
23
24
|
|
|
24
|
-
function getTimestamp(clockSkewAdjustment = 0) {
|
|
25
|
-
return
|
|
25
|
+
function getTimestamp(date, clockSkewAdjustment = 0) {
|
|
26
|
+
// "+date" will return epoch time in milliseconds, same as Date.getTime().
|
|
27
|
+
return new Date(+date + clockSkewAdjustment).toISOString();
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
function* postActivity(directLine, userID, username, numActivitiesPosted, { meta: { method }, payload: { activity } }) {
|
|
@@ -31,6 +33,9 @@ function* postActivity(directLine, userID, username, numActivitiesPosted, { meta
|
|
|
31
33
|
);
|
|
32
34
|
const { attachments } = activity;
|
|
33
35
|
const clientActivityID = uniqueID();
|
|
36
|
+
const now = new Date();
|
|
37
|
+
const localTimeZone =
|
|
38
|
+
typeof window.Intl === 'undefined' ? undefined : new Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
34
39
|
|
|
35
40
|
activity = {
|
|
36
41
|
...deleteKey(activity, 'id'),
|
|
@@ -46,7 +51,7 @@ function* postActivity(directLine, userID, username, numActivitiesPosted, { meta
|
|
|
46
51
|
...deleteKey(activity.channelData, 'state'),
|
|
47
52
|
clientActivityID,
|
|
48
53
|
// This is unskewed local timestamp for estimating clock skew.
|
|
49
|
-
clientTimestamp: getTimestamp()
|
|
54
|
+
clientTimestamp: getTimestamp(now)
|
|
50
55
|
},
|
|
51
56
|
channelId: 'webchat',
|
|
52
57
|
from: {
|
|
@@ -55,9 +60,11 @@ function* postActivity(directLine, userID, username, numActivitiesPosted, { meta
|
|
|
55
60
|
role: 'user'
|
|
56
61
|
},
|
|
57
62
|
locale,
|
|
63
|
+
localTimestamp: dateToLocaleISOString(now),
|
|
64
|
+
localTimezone: localTimeZone,
|
|
58
65
|
// This timestamp will be replaced by Direct Line Channel in echoback.
|
|
59
66
|
// We are temporarily adding this timestamp for sorting.
|
|
60
|
-
timestamp: getTimestamp(clockSkewAdjustment)
|
|
67
|
+
timestamp: getTimestamp(now, clockSkewAdjustment)
|
|
61
68
|
};
|
|
62
69
|
|
|
63
70
|
if (!numActivitiesPosted) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { put, takeEvery } from 'redux-saga/effects';
|
|
2
|
-
|
|
3
|
-
import { SEND_MESSAGE_BACK } from '../actions/sendMessageBack';
|
|
4
2
|
import postActivity from '../actions/postActivity';
|
|
3
|
+
import { SEND_MESSAGE_BACK } from '../actions/sendMessageBack';
|
|
5
4
|
import whileConnected from './effects/whileConnected';
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
|
|
7
|
+
// https://github.com/microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#message-back
|
|
8
8
|
function* postActivityWithMessageBack({ payload: { displayText, text, value } }) {
|
|
9
9
|
yield put(
|
|
10
10
|
postActivity({
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
/* eslint no-undefined: "off" */
|
|
3
3
|
|
|
4
4
|
import { put, takeEvery } from 'redux-saga/effects';
|
|
5
|
-
|
|
6
|
-
import { SEND_POST_BACK } from '../actions/sendPostBack';
|
|
7
5
|
import postActivity from '../actions/postActivity';
|
|
6
|
+
import { SEND_POST_BACK } from '../actions/sendPostBack';
|
|
8
7
|
import whileConnected from './effects/whileConnected';
|
|
9
8
|
|
|
10
|
-
// https://github.com/microsoft/botframework-sdk/blob/
|
|
9
|
+
// https://github.com/microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#post-back
|
|
11
10
|
function* postActivityWithPostBack({ payload: { value } }) {
|
|
12
11
|
yield put(
|
|
13
12
|
postActivity({
|
package/src/tsconfig.json
CHANGED
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
"allowSyntheticDefaultImports": true,
|
|
4
4
|
"declaration": true,
|
|
5
5
|
"declarationDir": "../lib",
|
|
6
|
+
"declarationMap": true,
|
|
7
|
+
"downlevelIteration": true,
|
|
6
8
|
"emitDeclarationOnly": true,
|
|
7
|
-
"isolatedModules": true,
|
|
8
9
|
"jsx": "react",
|
|
9
10
|
"preserveWatchOutput": true,
|
|
10
11
|
"pretty": true,
|
|
11
|
-
"
|
|
12
|
-
|
|
12
|
+
"resolveJsonModule": true, // Required for localization files
|
|
13
|
+
"skipLibCheck": true,
|
|
14
|
+
"sourceMap": true
|
|
15
|
+
},
|
|
16
|
+
"files": ["index.ts"]
|
|
13
17
|
}
|