@inboxsdk/core 1.2.8-0 → 2.0.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.
Files changed (47) hide show
  1. package/inboxsdk.js +383 -643
  2. package/inboxsdk.js.map +1 -1
  3. package/package.json +2 -3
  4. package/pageWorld.js +25702 -2
  5. package/pageWorld.js.map +1 -1
  6. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.d.ts +2 -2
  7. package/src/inboxsdk-js/inboxsdk-NONREMOTE-INTEGRATED-PAGEWORLD.d.ts.map +1 -1
  8. package/src/inboxsdk-js/inboxsdk-NONREMOTE-setup.d.ts +2 -0
  9. package/src/inboxsdk-js/inboxsdk-NONREMOTE-setup.d.ts.map +1 -0
  10. package/src/inboxsdk-js/inboxsdk-NONREMOTE.d.ts +3 -2
  11. package/src/inboxsdk-js/inboxsdk-NONREMOTE.d.ts.map +1 -1
  12. package/src/inboxsdk-js/inboxsdk-REMOTE-setup.d.ts +2 -0
  13. package/src/inboxsdk-js/inboxsdk-REMOTE-setup.d.ts.map +1 -0
  14. package/src/inboxsdk-js/inboxsdk-REMOTE.d.ts +1 -0
  15. package/src/inboxsdk-js/inboxsdk-REMOTE.d.ts.map +1 -1
  16. package/src/inboxsdk-js/inboxsdk-TEST-setup.d.ts +2 -0
  17. package/src/inboxsdk-js/inboxsdk-TEST-setup.d.ts.map +1 -0
  18. package/src/inboxsdk-js/inboxsdk-TEST.d.ts +3 -2
  19. package/src/inboxsdk-js/inboxsdk-TEST.d.ts.map +1 -1
  20. package/src/inboxsdk-js/inboxsdk.d.ts +6 -2
  21. package/src/inboxsdk-js/inboxsdk.d.ts.map +1 -1
  22. package/src/inboxsdk-js/load-script-proxy.d.ts +4 -0
  23. package/src/inboxsdk-js/load-script-proxy.d.ts.map +1 -0
  24. package/src/inboxsdk-js/loading/load-platform-implementation-NONREMOTE.d.ts +2 -0
  25. package/src/inboxsdk-js/loading/load-platform-implementation-NONREMOTE.d.ts.map +1 -0
  26. package/src/inboxsdk-js/loading/load-platform-implementation-REMOTE.d.ts +3 -0
  27. package/src/inboxsdk-js/loading/load-platform-implementation-REMOTE.d.ts.map +1 -0
  28. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts +12 -7
  29. package/src/inboxsdk-js/loading/platform-implementation-loader.d.ts.map +1 -1
  30. package/src/inboxsdk.d.ts +5 -19
  31. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.d.ts +6 -2
  32. package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.d.ts.map +1 -1
  33. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.d.ts +0 -9
  34. package/src/platform-implementation-js/driver-interfaces/mole-view-driver.d.ts.map +1 -1
  35. package/src/platform-implementation-js/lib/inject-script.d.ts +4 -0
  36. package/src/platform-implementation-js/lib/inject-script.d.ts.map +1 -1
  37. package/src/platform-implementation-js/main.d.ts +4 -1
  38. package/src/platform-implementation-js/main.d.ts.map +1 -1
  39. package/src/platform-implementation-js/namespaces/widgets.d.ts +6 -3
  40. package/src/platform-implementation-js/namespaces/widgets.d.ts.map +1 -1
  41. package/src/platform-implementation-js/widgets/mole-view.d.ts +18 -4
  42. package/src/platform-implementation-js/widgets/mole-view.d.ts.map +1 -1
  43. package/src/platform-implementation-js/widgets/top-message-bar-view.d.ts +2 -1
  44. package/src/platform-implementation-js/widgets/top-message-bar-view.d.ts.map +1 -1
  45. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.d.ts +0 -2
  46. package/src/inboxsdk-js/loading/load-platform-implementation-DEV.d.ts.map +0 -1
  47. package/src/types/gulp-terser.d.ts +0 -4
package/inboxsdk.js CHANGED
@@ -2575,16 +2575,31 @@ module.exports["default"] = exports.default;
2575
2575
 
2576
2576
  /***/ }),
2577
2577
 
2578
- /***/ 76827:
2578
+ /***/ 77036:
2579
2579
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2580
2580
 
2581
2581
  "use strict";
2582
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2583
- /* harmony export */ "Z": () => (/* binding */ ajax)
2584
- /* harmony export */ });
2585
- /* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(87735);
2586
- /* harmony import */ var pdelay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(40443);
2587
- /* harmony import */ var _cachebust_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65385);
2582
+
2583
+ // EXPORTS
2584
+ __webpack_require__.d(__webpack_exports__, {
2585
+ "Z": () => (/* binding */ ajax)
2586
+ });
2587
+
2588
+ // EXTERNAL MODULE: ./node_modules/querystring-es3/index.js
2589
+ var querystring_es3 = __webpack_require__(87735);
2590
+ // EXTERNAL MODULE: ./node_modules/pdelay/js/index.js
2591
+ var js = __webpack_require__(40443);
2592
+ ;// CONCATENATED MODULE: ./src/common/cachebust-url.ts
2593
+ const r = /([?&])_=[^&]*/;
2594
+ let nonce = Date.now() + Math.floor(Math.random() * Math.pow(2, 32));
2595
+ function cachebustUrl(url) {
2596
+ if (r.test(url)) {
2597
+ return url.replace(r, '$1_=' + nonce++);
2598
+ } else {
2599
+ return url + (/\?/.test(url) ? '&' : '?') + '_=' + nonce++;
2600
+ }
2601
+ }
2602
+ ;// CONCATENATED MODULE: ./src/common/ajax.ts
2588
2603
 
2589
2604
 
2590
2605
 
@@ -2610,7 +2625,7 @@ function ajax(opts) {
2610
2625
  let url = opts.url;
2611
2626
  let stringData = null;
2612
2627
  if (opts.data) {
2613
- stringData = typeof opts.data === 'string' ? opts.data : querystring__WEBPACK_IMPORTED_MODULE_0__.stringify(opts.data);
2628
+ stringData = typeof opts.data === 'string' ? opts.data : querystring_es3.stringify(opts.data);
2614
2629
  if (method === 'GET' || method === 'HEAD') {
2615
2630
  url += (/\?/.test(url) ? '&' : '?') + stringData;
2616
2631
  stringData = null;
@@ -2627,7 +2642,7 @@ function ajax(opts) {
2627
2642
  return;
2628
2643
  }
2629
2644
  if (opts.cachebust) {
2630
- url = (0,_cachebust_url__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(url);
2645
+ url = cachebustUrl(url);
2631
2646
  }
2632
2647
  const XMLHttpRequest = opts.XMLHttpRequest || window.XMLHttpRequest;
2633
2648
  const xhr = new XMLHttpRequest();
@@ -2680,32 +2695,13 @@ function _retry(opts) {
2680
2695
 
2681
2696
  // 2000 4000 8000...
2682
2697
  const retryTimeout = Math.min(Math.pow(2, retryNum) * 1000, MAX_TIMEOUT);
2683
- return (0,pdelay__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(retryTimeout).then(() => ajax(Object.assign({}, opts, {
2698
+ return (0,js/* default */.Z)(retryTimeout).then(() => ajax(Object.assign({}, opts, {
2684
2699
  retryNum
2685
2700
  })));
2686
2701
  }
2687
2702
 
2688
2703
  /***/ }),
2689
2704
 
2690
- /***/ 65385:
2691
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2692
-
2693
- "use strict";
2694
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2695
- /* harmony export */ "Z": () => (/* binding */ cachebustUrl)
2696
- /* harmony export */ });
2697
- const r = /([?&])_=[^&]*/;
2698
- let nonce = Date.now() + Math.floor(Math.random() * Math.pow(2, 32));
2699
- function cachebustUrl(url) {
2700
- if (r.test(url)) {
2701
- return url.replace(r, '$1_=' + nonce++);
2702
- } else {
2703
- return url + (/\?/.test(url) ? '&' : '?') + '_=' + nonce++;
2704
- }
2705
- }
2706
-
2707
- /***/ }),
2708
-
2709
2705
  /***/ 96272:
2710
2706
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2711
2707
 
@@ -2773,23 +2769,6 @@ function censorHTMLtree(target) {
2773
2769
 
2774
2770
  /***/ }),
2775
2771
 
2776
- /***/ 83223:
2777
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2778
-
2779
- "use strict";
2780
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2781
- /* harmony export */ "Z": () => (/* binding */ getExtensionId)
2782
- /* harmony export */ });
2783
- function getExtensionId() {
2784
- const chrome = __webpack_require__.g.chrome;
2785
- if (chrome && chrome.extension && chrome.extension.getURL) {
2786
- return chrome.extension.getURL('');
2787
- }
2788
- return null;
2789
- }
2790
-
2791
- /***/ }),
2792
-
2793
2772
  /***/ 7791:
2794
2773
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2795
2774
 
@@ -2808,28 +2787,6 @@ const get = function get(map, key) {
2808
2787
 
2809
2788
  /***/ }),
2810
2789
 
2811
- /***/ 89968:
2812
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2813
-
2814
- "use strict";
2815
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2816
- /* harmony export */ "Z": () => (/* binding */ getSessionId)
2817
- /* harmony export */ });
2818
- function getSessionId() {
2819
- const attrValue = typeof document !== 'undefined' && document.documentElement.getAttribute('data-inboxsdk-session-id');
2820
- if (typeof attrValue === 'string') {
2821
- return attrValue;
2822
- } else {
2823
- const sessionId = Date.now() + '-' + Math.random();
2824
- if (typeof document !== 'undefined') {
2825
- document.documentElement.setAttribute('data-inboxsdk-session-id', sessionId);
2826
- }
2827
- return sessionId;
2828
- }
2829
- }
2830
-
2831
- /***/ }),
2832
-
2833
2790
  /***/ 89865:
2834
2791
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2835
2792
 
@@ -2864,407 +2821,6 @@ function isElementVisible(el) {
2864
2821
 
2865
2822
  /***/ }),
2866
2823
 
2867
- /***/ 25351:
2868
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2869
-
2870
- "use strict";
2871
-
2872
- // EXPORTS
2873
- __webpack_require__.d(__webpack_exports__, {
2874
- "Z": () => (/* binding */ loadScript)
2875
- });
2876
-
2877
- // EXTERNAL MODULE: ./node_modules/lodash/once.js
2878
- var once = __webpack_require__(51463);
2879
- var once_default = /*#__PURE__*/__webpack_require__.n(once);
2880
- // EXTERNAL MODULE: ./src/common/cachebust-url.ts
2881
- var cachebust_url = __webpack_require__(65385);
2882
- // EXTERNAL MODULE: ./node_modules/lodash/fromPairs.js
2883
- var fromPairs = __webpack_require__(17204);
2884
- var fromPairs_default = /*#__PURE__*/__webpack_require__.n(fromPairs);
2885
- ;// CONCATENATED MODULE: ./src/common/connectivity-test.ts
2886
-
2887
-
2888
- const URLS = ['https://www.inboxsdk.com/images/logo-red.png'];
2889
- function imageTest(url) {
2890
- return new Promise(resolve => {
2891
- const img = document.createElement('img');
2892
- img.onload = function () {
2893
- resolve(true);
2894
- };
2895
- img.addEventListener('loadend', function () {
2896
- resolve(false);
2897
- });
2898
- img.onerror = function () {
2899
- resolve(false);
2900
- };
2901
- img.src = (0,cachebust_url/* default */.Z)(url);
2902
- });
2903
- }
2904
- function connectivityTest() {
2905
- return Promise.all(URLS.map(url => imageTest(url).then(success => [url, success]))).then(results => fromPairs_default()(results));
2906
- }
2907
- // EXTERNAL MODULE: ./src/common/log-error.ts + 2 modules
2908
- var log_error = __webpack_require__(1540);
2909
- // EXTERNAL MODULE: ./src/common/ajax.ts
2910
- var ajax = __webpack_require__(76827);
2911
- // EXTERNAL MODULE: ./node_modules/pdelay/js/index.js
2912
- var js = __webpack_require__(40443);
2913
- ;// CONCATENATED MODULE: ./src/common/load-script.ts
2914
-
2915
-
2916
-
2917
-
2918
-
2919
- const isContentScript = once_default()(function () {
2920
- if (__webpack_require__.g.chrome && __webpack_require__.g.chrome.extension) return true;
2921
- if (__webpack_require__.g.safari && __webpack_require__.g.safari.extension) return true;
2922
- return false;
2923
- });
2924
- function addScriptToPage(url, cors) {
2925
- const script = document.createElement('script');
2926
- script.type = 'text/javascript';
2927
- if (cors) {
2928
- script.crossOrigin = 'anonymous';
2929
- }
2930
- const promise = new Promise((resolve, reject) => {
2931
- script.addEventListener('error', function (event) {
2932
- reject(event.error || new Error(event.message || 'Load failure: ' + url, event.filename, event.lineno, event.column));
2933
- }, false);
2934
- script.addEventListener('load', function () {
2935
- // Make sure the script has a moment to execute before this promise
2936
- // resolves.
2937
- setTimeout(resolve, 1);
2938
- }, false);
2939
- });
2940
- script.src = url;
2941
- if (!document.head) throw new Error('missing head');
2942
- document.head.appendChild(script);
2943
- return promise;
2944
- }
2945
- function loadScript(url, opts) {
2946
- let pr;
2947
- if (isContentScript()) {
2948
- const attempt = function (retryNum, lastErr) {
2949
- if (retryNum > 3) {
2950
- throw lastErr || new Error('Ran out of loadScript attempts for unknown reason');
2951
- }
2952
- return (0,ajax/* default */.Z)({
2953
- url,
2954
- cachebust: retryNum > 0,
2955
- XMLHttpRequest: opts ? opts.XMLHttpRequest : undefined
2956
- }).then(response => {
2957
- // Q: Why put the code into a function before executing it instead of
2958
- // evaling it immediately?
2959
- // A: Chrome would execute it before applying any remembered
2960
- // breakpoints.
2961
- // Q: Why not just use `... = new Function(...)`?
2962
- // A: The sourcemaps would be off by one line in Chrome because of
2963
- // https://code.google.com/p/chromium/issues/detail?id=109362
2964
- // Q: indirectEval?
2965
- // A: Using the eval value rather than the eval keyword causes the
2966
- // code passed to it to be run in the global scope instead of the
2967
- // current scope. (Seriously, it's a javascript thing.)
2968
- const originalCode = response.text;
2969
- const indirectEval = eval;
2970
- const codeParts = [];
2971
- if (opts && opts.disableSourceMappingURL) {
2972
- // Don't remove a data: URI sourcemap (used in dev)
2973
- codeParts.push(originalCode.replace(/\/\/# sourceMappingURL=(?!data:)[^\n]*\n?$/, ''));
2974
- } else {
2975
- codeParts.push(originalCode);
2976
- }
2977
- if (!opts || !opts.nowrap) {
2978
- codeParts.unshift('(function(){');
2979
- codeParts.push('\n});');
2980
- }
2981
- codeParts.push('\n//# sourceURL=' + url + '\n');
2982
- const codeToRun = codeParts.join('');
2983
- let program;
2984
- try {
2985
- program = indirectEval(codeToRun);
2986
- } catch (err) {
2987
- if (err && err.name === 'SyntaxError') {
2988
- (0,log_error/* default */.Z)(err, {
2989
- retryNum,
2990
- caughtSyntaxError: true,
2991
- url,
2992
- message: `SyntaxError in loading ${url}. Did we not load it fully? Trying again...`
2993
- }, {});
2994
- return (0,js/* default */.Z)(5000).then(() => attempt(retryNum + 1, err));
2995
- }
2996
- // SyntaxErrors are the only errors that can happen during eval that we
2997
- // retry because sometimes AppEngine doesn't serve the full javascript.
2998
- // No other error is retried because other errors aren't likely to be
2999
- // transient.
3000
- throw err;
3001
- }
3002
- if (!opts || !opts.nowrap) {
3003
- program.call(__webpack_require__.g);
3004
- }
3005
- });
3006
- };
3007
- pr = attempt(0, null);
3008
- } else {
3009
- // Try to add script as CORS first so we can get error stack data from it.
3010
- pr = addScriptToPage(url, true).catch(() => {
3011
- // Only show the warning if we successfully load the script on retry.
3012
- return addScriptToPage(url, false).then(() => {
3013
- console.warn('Script ' + url + ' included without CORS headers. Error logs might be censored by the browser.');
3014
- });
3015
- });
3016
- }
3017
- pr.catch(err => {
3018
- return connectivityTest().then(connectivityTestResults => {
3019
- (0,log_error/* default */.Z)(err, {
3020
- url,
3021
- connectivityTestResults,
3022
- status: err && err.status,
3023
- response: err && err.xhr ? err.xhr.responseText : null,
3024
- message: 'Failed to load script'
3025
- }, {});
3026
- });
3027
- });
3028
- return pr;
3029
- }
3030
-
3031
- /***/ }),
3032
-
3033
- /***/ 1540:
3034
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3035
-
3036
- "use strict";
3037
-
3038
- // EXPORTS
3039
- __webpack_require__.d(__webpack_exports__, {
3040
- "Z": () => (/* binding */ logError)
3041
- });
3042
-
3043
- // EXTERNAL MODULE: ./src/common/ajax.ts
3044
- var ajax = __webpack_require__(76827);
3045
- ;// CONCATENATED MODULE: ./src/common/rate-limit.ts
3046
- // Returns a wrapped version of the function which throws an exception if it's
3047
- // called more than count times within period amount of time.
3048
- function rateLimit(fn, period, count) {
3049
- let calls = [];
3050
- return function () {
3051
- const now = Date.now();
3052
- calls = calls.filter(time => time > now - period);
3053
- if (calls.length >= count) {
3054
- throw new Error('Function rate limit exceeded');
3055
- }
3056
- calls.push(now);
3057
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3058
- args[_key] = arguments[_key];
3059
- }
3060
- return fn.apply(this, args);
3061
- };
3062
- }
3063
- ;// CONCATENATED MODULE: ./src/common/get-stack-trace.ts
3064
- function getStackTrace() {
3065
- const err = new Error('Stack saver');
3066
- // Cut the first two lines off. The first line has the error name, and the
3067
- // second line is inside this function.
3068
- return ('' + err.stack).replace(/^([^\n]*\n){2}/, '');
3069
- }
3070
- // EXTERNAL MODULE: ./src/common/get-extension-id.ts
3071
- var get_extension_id = __webpack_require__(83223);
3072
- // EXTERNAL MODULE: ./src/common/get-session-id.ts
3073
- var get_session_id = __webpack_require__(89968);
3074
- // EXTERNAL MODULE: ./src/common/version.ts
3075
- var version = __webpack_require__(17403);
3076
- // EXTERNAL MODULE: ./node_modules/lodash/isObject.js
3077
- var isObject = __webpack_require__(13218);
3078
- var isObject_default = /*#__PURE__*/__webpack_require__.n(isObject);
3079
- ;// CONCATENATED MODULE: ./src/common/log-error.ts
3080
-
3081
-
3082
-
3083
-
3084
-
3085
-
3086
-
3087
- const sessionId = (0,get_session_id/* default */.Z)();
3088
-
3089
- // code inside the platform-implementation should use logger.js instead of
3090
- // interacting with this directly!
3091
- function logError(err, details, context) {
3092
- if (typeof document === 'undefined') {
3093
- // In tests, just throw the error.
3094
- throw err;
3095
- }
3096
-
3097
- // It's important that we can't throw an error or leave a rejected promise
3098
- // unheard while logging an error in order to make sure to avoid ever
3099
- // getting into an infinite loop of reporting uncaught errors.
3100
- try {
3101
- if (haveWeSeenThisErrorAlready(err)) {
3102
- return;
3103
- } else {
3104
- markErrorAsSeen(err);
3105
- }
3106
- if (!(err instanceof Error)) {
3107
- console.warn('First parameter to Logger.error was not an error object:', err);
3108
- err = new Error('Logger.error called with non-error: ' + err);
3109
- markErrorAsSeen(err);
3110
- }
3111
- const {
3112
- appIds,
3113
- implVersion,
3114
- isUsingSyncAPI,
3115
- userEmailHash
3116
- } = context;
3117
- const loaderVersion = context.loaderVersion || version/* BUILD_VERSION */.b;
3118
- const sentByApp = !!context.sentByApp;
3119
- const errorProperties = {};
3120
- for (const name in err) {
3121
- if (Object.prototype.hasOwnProperty.call(err, name)) {
3122
- try {
3123
- const value = err[name];
3124
- JSON.stringify(value);
3125
- errorProperties[name] = value;
3126
- } catch (err) {
3127
- // ignore
3128
- }
3129
- }
3130
- }
3131
- if (Object.keys(errorProperties).length > 0) {
3132
- details = {
3133
- errorProperties,
3134
- details
3135
- };
3136
- }
3137
-
3138
- // Might not have been passed a useful error object with a stack, so get
3139
- // our own current stack just in case.
3140
- const nowStack = getStackTrace();
3141
- const stuffToLog = ['Error logged:', err];
3142
- if (err && err.stack) {
3143
- stuffToLog.push('\n\nOriginal error stack:\n' + err.stack);
3144
- }
3145
- stuffToLog.push('\n\nError logged from:\n' + nowStack);
3146
- if (details) {
3147
- stuffToLog.push('\n\nError details:', details);
3148
- }
3149
- stuffToLog.push('\n\nExtension App Ids:', JSON.stringify(appIds, null, 2));
3150
- stuffToLog.push('\nSent by App:', sentByApp);
3151
- stuffToLog.push('\nSession Id:', sessionId);
3152
- stuffToLog.push('\nExtension Id:', (0,get_extension_id/* default */.Z)());
3153
- stuffToLog.push('\nInboxSDK Loader Version:', loaderVersion);
3154
- stuffToLog.push('\nInboxSDK Implementation Version:', implVersion);
3155
- stuffToLog.push('\nIs Using Sync API:', isUsingSyncAPI);
3156
- console.error(...stuffToLog);
3157
- const report = {
3158
- message: err && err.message || err,
3159
- stack: err && err.stack,
3160
- loggedFrom: nowStack,
3161
- details,
3162
- appIds,
3163
- sentByApp,
3164
- sessionId,
3165
- emailHash: userEmailHash,
3166
- extensionId: (0,get_extension_id/* default */.Z)(),
3167
- loaderVersion: loaderVersion,
3168
- implementationVersion: implVersion,
3169
- isUsingSyncAPI,
3170
- origin: document.location.origin,
3171
- timestamp: Date.now() * 1000
3172
- };
3173
- sendError(report);
3174
- if (document.documentElement.getAttribute('inboxsdk-emit-error-event') === 'true') {
3175
- document.documentElement.dispatchEvent(new CustomEvent('inboxSDKerror', {
3176
- bubbles: false,
3177
- cancelable: false,
3178
- detail: {
3179
- message: err && err.message || err,
3180
- stack: err && err.stack,
3181
- loggedFrom: nowStack,
3182
- details,
3183
- sentByApp
3184
- }
3185
- }));
3186
- }
3187
- } catch (err2) {
3188
- tooManyErrors(err2, [err, details, context]);
3189
- }
3190
- }
3191
- const _extensionSeenErrors = (() => {
3192
- // Safari <9 doesn't have WeakSet and we don't want to pull in the polyfill,
3193
- // so we make one out of a WeakMap.
3194
- if (!__webpack_require__.g.__inboxsdk_extensionSeenErrors && __webpack_require__.g.WeakMap) {
3195
- Object.defineProperty(__webpack_require__.g, '__inboxsdk_extensionSeenErrors', {
3196
- value: new __webpack_require__.g.WeakMap()
3197
- });
3198
- }
3199
- return {
3200
- has(e) {
3201
- if (__webpack_require__.g.__inboxsdk_extensionSeenErrors) {
3202
- return __webpack_require__.g.__inboxsdk_extensionSeenErrors.has(e);
3203
- } else {
3204
- try {
3205
- return !!e.__inboxsdk_extensionHasSeenError;
3206
- } catch (err) {
3207
- console.error(err);
3208
- return false;
3209
- }
3210
- }
3211
- },
3212
- add(e) {
3213
- if (__webpack_require__.g.__inboxsdk_extensionSeenErrors && __webpack_require__.g.__inboxsdk_extensionSeenErrors.set) {
3214
- // It's a WeakMap.
3215
- __webpack_require__.g.__inboxsdk_extensionSeenErrors.set(e, true);
3216
- } else if (__webpack_require__.g.__inboxsdk_extensionSeenErrors && __webpack_require__.g.__inboxsdk_extensionSeenErrors.add) {
3217
- // Older versions of inboxsdk.js initialized it as a WeakSet instead,
3218
- // so handle that too.
3219
- __webpack_require__.g.__inboxsdk_extensionSeenErrors.add(e);
3220
- } else {
3221
- try {
3222
- Object.defineProperty(e, '__inboxsdk_extensionHasSeenError', {
3223
- value: true
3224
- });
3225
- } catch (err) {
3226
- console.error(err);
3227
- }
3228
- }
3229
- }
3230
- };
3231
- })();
3232
- function haveWeSeenThisErrorAlready(error) {
3233
- if (isObject_default()(error)) {
3234
- return _extensionSeenErrors.has(error);
3235
- }
3236
- return false;
3237
- }
3238
- function markErrorAsSeen(error) {
3239
- if (isObject_default()(error)) {
3240
- _extensionSeenErrors.add(error);
3241
- }
3242
- }
3243
-
3244
- // Only let 10 errors be sent per minute.
3245
- const sendError = rateLimit(function (report) {
3246
- try {
3247
- (0,ajax/* default */.Z)({
3248
- url: 'https://api.inboxsdk.com/api/v2/errors',
3249
- method: 'POST',
3250
- headers: {
3251
- 'Content-Type': 'application/json'
3252
- },
3253
- data: JSON.stringify(report)
3254
- }).catch(err2 => {
3255
- tooManyErrors(err2, [report]);
3256
- });
3257
- } catch (err2) {
3258
- tooManyErrors(err2, [report]);
3259
- }
3260
- }, 60 * 1000, 10);
3261
- function tooManyErrors(err2, originalArgs) {
3262
- console.error('ERROR REPORTING ERROR', err2);
3263
- console.error('ORIGINAL ERROR', originalArgs);
3264
- }
3265
-
3266
- /***/ }),
3267
-
3268
2824
  /***/ 17403:
3269
2825
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3270
2826
 
@@ -3277,87 +2833,11 @@ function tooManyErrors(err2, originalArgs) {
3277
2833
 
3278
2834
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- SDK_VERSION is injected by webpack
3279
2835
  ///@ts-ignore
3280
- const BUILD_VERSION = "1.2.8-0-1692796553002-340dce14f2295104-MODIFIED";
2836
+ const BUILD_VERSION = "2.0.0-1693511616623-5f5494bd7d345fbe";
3281
2837
  if (false) {}
3282
2838
 
3283
2839
  /***/ }),
3284
2840
 
3285
- /***/ 86915:
3286
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3287
-
3288
- "use strict";
3289
- __webpack_require__.r(__webpack_exports__);
3290
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3291
- /* harmony export */ "LOADER_VERSION": () => (/* binding */ LOADER_VERSION),
3292
- /* harmony export */ "load": () => (/* binding */ load),
3293
- /* harmony export */ "loadScript": () => (/* binding */ loadScript)
3294
- /* harmony export */ });
3295
- /* harmony import */ var _loading_platform_implementation_loader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52459);
3296
- /* harmony import */ var _common_version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17403);
3297
- /* harmony import */ var _common_load_script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25351);
3298
-
3299
-
3300
-
3301
- const LOADER_VERSION = _common_version__WEBPACK_IMPORTED_MODULE_2__/* .BUILD_VERSION */ .b;
3302
- const loadScript = _common_load_script__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z;
3303
- function load(version, appId, opts) {
3304
- opts = Object.assign({
3305
- // defaults
3306
- globalErrorLogging: true
3307
- }, opts, {
3308
- // stuff that can't be overridden, such as extra stuff this file passes to
3309
- // the implementation script.
3310
- VERSION: LOADER_VERSION,
3311
- REQUESTED_API_VERSION: version
3312
- });
3313
- return _loading_platform_implementation_loader__WEBPACK_IMPORTED_MODULE_0__/* ["default"].load */ .Z.load(appId, opts);
3314
- }
3315
- const pageOrigin = false || document.location.origin;
3316
- if (['https://mail.google.com', 'https://inbox.google.com'].indexOf(pageOrigin) != -1) {
3317
- _loading_platform_implementation_loader__WEBPACK_IMPORTED_MODULE_0__/* ["default"].preload */ .Z.preload();
3318
- }
3319
-
3320
- /***/ }),
3321
-
3322
- /***/ 52459:
3323
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3324
-
3325
- "use strict";
3326
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3327
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
3328
- /* harmony export */ });
3329
- /* harmony import */ var lodash_once__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51463);
3330
- /* harmony import */ var lodash_once__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_once__WEBPACK_IMPORTED_MODULE_0__);
3331
- /* harmony import */ var _common_load_script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25351);
3332
-
3333
-
3334
- const PlatformImplementationLoader = {
3335
- load(appId, opts) {
3336
- return Promise.resolve().then(() => {
3337
- if (!__webpack_require__.g.__InboxSDKImpLoader) {
3338
- return PlatformImplementationLoader._loadScript().then(() => {
3339
- if (!__webpack_require__.g.__InboxSDKImpLoader) {
3340
- throw new Error('Implementation file did not load correctly');
3341
- }
3342
- });
3343
- }
3344
- }).then(() => __webpack_require__.g.__InboxSDKImpLoader.load('0.1', appId, opts));
3345
- },
3346
- _loadScript: lodash_once__WEBPACK_IMPORTED_MODULE_0___default()(function () {
3347
- return (0,_common_load_script__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)("https://www.inboxsdk.com/build/platform-implementation.js", {
3348
- // platform-implementation has no top-level vars so no need for function wrapping
3349
- nowrap: true
3350
- });
3351
- }),
3352
- preload() {
3353
- // Prime the load by calling it and letting the promise be memoized.
3354
- PlatformImplementationLoader._loadScript();
3355
- }
3356
- };
3357
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PlatformImplementationLoader);
3358
-
3359
- /***/ }),
3360
-
3361
2841
  /***/ 32753:
3362
2842
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3363
2843
 
@@ -4010,8 +3490,8 @@ function _isNowVisible(mutation) {
4010
3490
  }
4011
3491
  // EXTERNAL MODULE: ./src/platform-implementation-js/dom-driver/gmail/gmail-driver/isIntegratedViewGmail.ts
4012
3492
  var isIntegratedViewGmail = __webpack_require__(98884);
4013
- // EXTERNAL MODULE: ./src/platform-implementation-js/lib/logger.ts + 1 modules
4014
- var logger = __webpack_require__(65371);
3493
+ // EXTERNAL MODULE: ./src/platform-implementation-js/lib/logger.ts + 6 modules
3494
+ var logger = __webpack_require__(68562);
4015
3495
  // EXTERNAL MODULE: ./src/platform-implementation-js/lib/wait-for.ts
4016
3496
  var wait_for = __webpack_require__(12392);
4017
3497
  ;// CONCATENATED MODULE: ./src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.ts
@@ -6797,8 +6277,8 @@ var handle_compose_link_chips = __webpack_require__(48407);
6797
6277
  var insert_link_chip_into_body = __webpack_require__(28244);
6798
6278
  // EXTERNAL MODULE: ./src/platform-implementation-js/lib/dom/insert-element-in-order.ts
6799
6279
  var insert_element_in_order = __webpack_require__(83825);
6800
- // EXTERNAL MODULE: ./src/platform-implementation-js/lib/logger.ts + 1 modules
6801
- var logger = __webpack_require__(65371);
6280
+ // EXTERNAL MODULE: ./src/platform-implementation-js/lib/logger.ts + 6 modules
6281
+ var logger = __webpack_require__(68562);
6802
6282
  // EXTERNAL MODULE: ./src/platform-implementation-js/views/SimpleElementView.ts
6803
6283
  var SimpleElementView = __webpack_require__(68777);
6804
6284
  ;// CONCATENATED MODULE: ./src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-compose-notice.ts
@@ -9511,7 +8991,7 @@ class GmailComposeView {
9511
8991
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94184);
9512
8992
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
9513
8993
  /* harmony import */ var _lib_dom_insert_element_in_order__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83825);
9514
- /* harmony import */ var _lib_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65371);
8994
+ /* harmony import */ var _lib_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68562);
9515
8995
  /* harmony import */ var _lib_dom_querySelectorOrFail__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(88873);
9516
8996
  /* harmony import */ var _views_SimpleElementView__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(68777);
9517
8997
  /* module decorator */ module = __webpack_require__.hmd(module);
@@ -9705,7 +9185,7 @@ function getMinimizedStream_(gmailComposeView) {
9705
9185
  /* harmony import */ var kefir__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26609);
9706
9186
  /* harmony import */ var kefir_bus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(93652);
9707
9187
  /* harmony import */ var kefir_bus__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(kefir_bus__WEBPACK_IMPORTED_MODULE_4__);
9708
- /* harmony import */ var _lib_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65371);
9188
+ /* harmony import */ var _lib_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(68562);
9709
9189
  /* harmony import */ var _lib_dom_simulate_mouse_event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96827);
9710
9190
  /* harmony import */ var _lib_dom_keyboard_shortcut_stream__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(91284);
9711
9191
 
@@ -9945,8 +9425,8 @@ var insert_element_in_order = __webpack_require__(83825);
9945
9425
  var simulate_mouse_event = __webpack_require__(96827);
9946
9426
  // EXTERNAL MODULE: ./src/platform-implementation-js/lib/wait-for.ts
9947
9427
  var wait_for = __webpack_require__(12392);
9948
- // EXTERNAL MODULE: ./src/platform-implementation-js/lib/logger.ts + 1 modules
9949
- var logger = __webpack_require__(65371);
9428
+ // EXTERNAL MODULE: ./src/platform-implementation-js/lib/logger.ts + 6 modules
9429
+ var logger = __webpack_require__(68562);
9950
9430
  // EXTERNAL MODULE: ./src/platform-implementation-js/lib/dom/querySelectorOrFail.ts
9951
9431
  var querySelectorOrFail = __webpack_require__(88873);
9952
9432
  // EXTERNAL MODULE: ./src/common/censorHTMLtree.ts
@@ -11358,8 +10838,8 @@ var kefir_esm = __webpack_require__(26609);
11358
10838
  // EXTERNAL MODULE: ./node_modules/kefir-bus/index.js
11359
10839
  var kefir_bus = __webpack_require__(93652);
11360
10840
  var kefir_bus_default = /*#__PURE__*/__webpack_require__.n(kefir_bus);
11361
- // EXTERNAL MODULE: ./src/platform-implementation-js/lib/logger.ts + 1 modules
11362
- var logger = __webpack_require__(65371);
10841
+ // EXTERNAL MODULE: ./src/platform-implementation-js/lib/logger.ts + 6 modules
10842
+ var logger = __webpack_require__(68562);
11363
10843
  // EXTERNAL MODULE: ./src/platform-implementation-js/lib/dom/simulate-mouse-event.ts
11364
10844
  var simulate_mouse_event = __webpack_require__(96827);
11365
10845
  // EXTERNAL MODULE: ./src/platform-implementation-js/lib/dom/keyboard-shortcut-stream.ts
@@ -12356,8 +11836,8 @@ function rateLimitQueuer(fn, period, count) {
12356
11836
  return promise;
12357
11837
  };
12358
11838
  }
12359
- // EXTERNAL MODULE: ./src/common/ajax.ts
12360
- var ajax = __webpack_require__(76827);
11839
+ // EXTERNAL MODULE: ./src/common/ajax.ts + 1 modules
11840
+ var ajax = __webpack_require__(77036);
12361
11841
  ;// CONCATENATED MODULE: ./src/platform-implementation-js/driver-common/gmailAjax.ts
12362
11842
  /* module decorator */ module = __webpack_require__.hmd(module);
12363
11843
 
@@ -13203,7 +12683,7 @@ function _addEnhancements(chipElement) {
13203
12683
  /* harmony import */ var lodash_remove__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_remove__WEBPACK_IMPORTED_MODULE_0__);
13204
12684
  /* harmony import */ var asap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69272);
13205
12685
  /* harmony import */ var asap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(asap__WEBPACK_IMPORTED_MODULE_1__);
13206
- /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65371);
12686
+ /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(68562);
13207
12687
 
13208
12688
 
13209
12689
 
@@ -13352,7 +12832,7 @@ options.insert = htmlElement => {
13352
12832
  htmlElement.setAttribute('data-inboxsdk-version',
13353
12833
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- this is injected by webpack
13354
12834
  ///@ts-ignore
13355
- "1.2.8-0-1692796553002-340dce14f2295104-MODIFIED");
12835
+ "2.0.0-1693511616623-5f5494bd7d345fbe");
13356
12836
  document.head.append(htmlElement);
13357
12837
  };
13358
12838
  options.domAPI = (styleDomAPI_default());
@@ -13500,7 +12980,7 @@ function isStreakAppId(appId) {
13500
12980
 
13501
12981
  /***/ }),
13502
12982
 
13503
- /***/ 65371:
12983
+ /***/ 68562:
13504
12984
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13505
12985
 
13506
12986
  "use strict";
@@ -13515,14 +12995,245 @@ __webpack_require__.d(__webpack_exports__, {
13515
12995
  // EXTERNAL MODULE: ./node_modules/sha.js/sha256.js
13516
12996
  var sha256 = __webpack_require__(67499);
13517
12997
  var sha256_default = /*#__PURE__*/__webpack_require__.n(sha256);
13518
- // EXTERNAL MODULE: ./src/common/ajax.ts
13519
- var ajax = __webpack_require__(76827);
13520
- // EXTERNAL MODULE: ./src/common/get-extension-id.ts
13521
- var get_extension_id = __webpack_require__(83223);
13522
- // EXTERNAL MODULE: ./src/common/get-session-id.ts
13523
- var get_session_id = __webpack_require__(89968);
13524
- // EXTERNAL MODULE: ./src/common/log-error.ts + 2 modules
13525
- var log_error = __webpack_require__(1540);
12998
+ // EXTERNAL MODULE: ./src/common/ajax.ts + 1 modules
12999
+ var ajax = __webpack_require__(77036);
13000
+ ;// CONCATENATED MODULE: ./src/common/get-extension-id.ts
13001
+ function getExtensionId() {
13002
+ const chrome = __webpack_require__.g.chrome;
13003
+ if (chrome && chrome.extension && chrome.extension.getURL) {
13004
+ return chrome.extension.getURL('');
13005
+ }
13006
+ return null;
13007
+ }
13008
+ ;// CONCATENATED MODULE: ./src/common/get-session-id.ts
13009
+ function getSessionId() {
13010
+ const attrValue = typeof document !== 'undefined' && document.documentElement.getAttribute('data-inboxsdk-session-id');
13011
+ if (typeof attrValue === 'string') {
13012
+ return attrValue;
13013
+ } else {
13014
+ const sessionId = Date.now() + '-' + Math.random();
13015
+ if (typeof document !== 'undefined') {
13016
+ document.documentElement.setAttribute('data-inboxsdk-session-id', sessionId);
13017
+ }
13018
+ return sessionId;
13019
+ }
13020
+ }
13021
+ ;// CONCATENATED MODULE: ./src/common/rate-limit.ts
13022
+ // Returns a wrapped version of the function which throws an exception if it's
13023
+ // called more than count times within period amount of time.
13024
+ function rateLimit(fn, period, count) {
13025
+ let calls = [];
13026
+ return function () {
13027
+ const now = Date.now();
13028
+ calls = calls.filter(time => time > now - period);
13029
+ if (calls.length >= count) {
13030
+ throw new Error('Function rate limit exceeded');
13031
+ }
13032
+ calls.push(now);
13033
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13034
+ args[_key] = arguments[_key];
13035
+ }
13036
+ return fn.apply(this, args);
13037
+ };
13038
+ }
13039
+ ;// CONCATENATED MODULE: ./src/common/get-stack-trace.ts
13040
+ function getStackTrace() {
13041
+ const err = new Error('Stack saver');
13042
+ // Cut the first two lines off. The first line has the error name, and the
13043
+ // second line is inside this function.
13044
+ return ('' + err.stack).replace(/^([^\n]*\n){2}/, '');
13045
+ }
13046
+ // EXTERNAL MODULE: ./src/common/version.ts
13047
+ var version = __webpack_require__(17403);
13048
+ // EXTERNAL MODULE: ./node_modules/lodash/isObject.js
13049
+ var isObject = __webpack_require__(13218);
13050
+ var isObject_default = /*#__PURE__*/__webpack_require__.n(isObject);
13051
+ ;// CONCATENATED MODULE: ./src/common/log-error.ts
13052
+
13053
+
13054
+
13055
+
13056
+
13057
+
13058
+
13059
+ const sessionId = getSessionId();
13060
+
13061
+ // code inside the platform-implementation should use logger.js instead of
13062
+ // interacting with this directly!
13063
+ function logError(err, details, context) {
13064
+ if (typeof document === 'undefined') {
13065
+ // In tests, just throw the error.
13066
+ throw err;
13067
+ }
13068
+
13069
+ // It's important that we can't throw an error or leave a rejected promise
13070
+ // unheard while logging an error in order to make sure to avoid ever
13071
+ // getting into an infinite loop of reporting uncaught errors.
13072
+ try {
13073
+ if (haveWeSeenThisErrorAlready(err)) {
13074
+ return;
13075
+ } else {
13076
+ markErrorAsSeen(err);
13077
+ }
13078
+ if (!(err instanceof Error)) {
13079
+ console.warn('First parameter to Logger.error was not an error object:', err);
13080
+ err = new Error('Logger.error called with non-error: ' + err);
13081
+ markErrorAsSeen(err);
13082
+ }
13083
+ const {
13084
+ appIds,
13085
+ implVersion,
13086
+ isUsingSyncAPI,
13087
+ userEmailHash
13088
+ } = context;
13089
+ const loaderVersion = context.loaderVersion || version/* BUILD_VERSION */.b;
13090
+ const sentByApp = !!context.sentByApp;
13091
+ const errorProperties = {};
13092
+ for (const name in err) {
13093
+ if (Object.prototype.hasOwnProperty.call(err, name)) {
13094
+ try {
13095
+ const value = err[name];
13096
+ JSON.stringify(value);
13097
+ errorProperties[name] = value;
13098
+ } catch (err) {
13099
+ // ignore
13100
+ }
13101
+ }
13102
+ }
13103
+ if (Object.keys(errorProperties).length > 0) {
13104
+ details = {
13105
+ errorProperties,
13106
+ details
13107
+ };
13108
+ }
13109
+
13110
+ // Might not have been passed a useful error object with a stack, so get
13111
+ // our own current stack just in case.
13112
+ const nowStack = getStackTrace();
13113
+ const stuffToLog = ['Error logged:', err];
13114
+ if (err && err.stack) {
13115
+ stuffToLog.push('\n\nOriginal error stack:\n' + err.stack);
13116
+ }
13117
+ stuffToLog.push('\n\nError logged from:\n' + nowStack);
13118
+ if (details) {
13119
+ stuffToLog.push('\n\nError details:', details);
13120
+ }
13121
+ stuffToLog.push('\n\nExtension App Ids:', JSON.stringify(appIds, null, 2));
13122
+ stuffToLog.push('\nSent by App:', sentByApp);
13123
+ stuffToLog.push('\nSession Id:', sessionId);
13124
+ stuffToLog.push('\nExtension Id:', getExtensionId());
13125
+ stuffToLog.push('\nInboxSDK Loader Version:', loaderVersion);
13126
+ stuffToLog.push('\nInboxSDK Implementation Version:', implVersion);
13127
+ stuffToLog.push('\nIs Using Sync API:', isUsingSyncAPI);
13128
+ console.error(...stuffToLog);
13129
+ const report = {
13130
+ message: err && err.message || err,
13131
+ stack: err && err.stack,
13132
+ loggedFrom: nowStack,
13133
+ details,
13134
+ appIds,
13135
+ sentByApp,
13136
+ sessionId,
13137
+ emailHash: userEmailHash,
13138
+ extensionId: getExtensionId(),
13139
+ loaderVersion: loaderVersion,
13140
+ implementationVersion: implVersion,
13141
+ isUsingSyncAPI,
13142
+ origin: document.location.origin,
13143
+ timestamp: Date.now() * 1000
13144
+ };
13145
+ sendError(report);
13146
+ if (document.documentElement.getAttribute('inboxsdk-emit-error-event') === 'true') {
13147
+ document.documentElement.dispatchEvent(new CustomEvent('inboxSDKerror', {
13148
+ bubbles: false,
13149
+ cancelable: false,
13150
+ detail: {
13151
+ message: err && err.message || err,
13152
+ stack: err && err.stack,
13153
+ loggedFrom: nowStack,
13154
+ details,
13155
+ sentByApp
13156
+ }
13157
+ }));
13158
+ }
13159
+ } catch (err2) {
13160
+ tooManyErrors(err2, [err, details, context]);
13161
+ }
13162
+ }
13163
+ const _extensionSeenErrors = (() => {
13164
+ // Safari <9 doesn't have WeakSet and we don't want to pull in the polyfill,
13165
+ // so we make one out of a WeakMap.
13166
+ if (!__webpack_require__.g.__inboxsdk_extensionSeenErrors && __webpack_require__.g.WeakMap) {
13167
+ Object.defineProperty(__webpack_require__.g, '__inboxsdk_extensionSeenErrors', {
13168
+ value: new __webpack_require__.g.WeakMap()
13169
+ });
13170
+ }
13171
+ return {
13172
+ has(e) {
13173
+ if (__webpack_require__.g.__inboxsdk_extensionSeenErrors) {
13174
+ return __webpack_require__.g.__inboxsdk_extensionSeenErrors.has(e);
13175
+ } else {
13176
+ try {
13177
+ return !!e.__inboxsdk_extensionHasSeenError;
13178
+ } catch (err) {
13179
+ console.error(err);
13180
+ return false;
13181
+ }
13182
+ }
13183
+ },
13184
+ add(e) {
13185
+ if (__webpack_require__.g.__inboxsdk_extensionSeenErrors && __webpack_require__.g.__inboxsdk_extensionSeenErrors.set) {
13186
+ // It's a WeakMap.
13187
+ __webpack_require__.g.__inboxsdk_extensionSeenErrors.set(e, true);
13188
+ } else if (__webpack_require__.g.__inboxsdk_extensionSeenErrors && __webpack_require__.g.__inboxsdk_extensionSeenErrors.add) {
13189
+ // Older versions of inboxsdk.js initialized it as a WeakSet instead,
13190
+ // so handle that too.
13191
+ __webpack_require__.g.__inboxsdk_extensionSeenErrors.add(e);
13192
+ } else {
13193
+ try {
13194
+ Object.defineProperty(e, '__inboxsdk_extensionHasSeenError', {
13195
+ value: true
13196
+ });
13197
+ } catch (err) {
13198
+ console.error(err);
13199
+ }
13200
+ }
13201
+ }
13202
+ };
13203
+ })();
13204
+ function haveWeSeenThisErrorAlready(error) {
13205
+ if (isObject_default()(error)) {
13206
+ return _extensionSeenErrors.has(error);
13207
+ }
13208
+ return false;
13209
+ }
13210
+ function markErrorAsSeen(error) {
13211
+ if (isObject_default()(error)) {
13212
+ _extensionSeenErrors.add(error);
13213
+ }
13214
+ }
13215
+
13216
+ // Only let 10 errors be sent per minute.
13217
+ const sendError = rateLimit(function (report) {
13218
+ try {
13219
+ (0,ajax/* default */.Z)({
13220
+ url: 'https://api.inboxsdk.com/api/v2/errors',
13221
+ method: 'POST',
13222
+ headers: {
13223
+ 'Content-Type': 'application/json'
13224
+ },
13225
+ data: JSON.stringify(report)
13226
+ }).catch(err2 => {
13227
+ tooManyErrors(err2, [report]);
13228
+ });
13229
+ } catch (err2) {
13230
+ tooManyErrors(err2, [report]);
13231
+ }
13232
+ }, 60 * 1000, 10);
13233
+ function tooManyErrors(err2, originalArgs) {
13234
+ console.error('ERROR REPORTING ERROR', err2);
13235
+ console.error('ORIGINAL ERROR', originalArgs);
13236
+ }
13526
13237
  ;// CONCATENATED MODULE: ./src/platform-implementation-js/lib/persistent-queue.ts
13527
13238
  // Queue which tries to persist its data into localStorage so its contents
13528
13239
  // aren't wiped when the page is closed. It handles localStorage not being
@@ -13652,7 +13363,7 @@ let _extensionImplVersion;
13652
13363
  let _extensionUserEmailHash;
13653
13364
  let _extensionUseEventTracking = false;
13654
13365
  let _isUsingSyncAPI = undefined;
13655
- const _sessionId = (0,get_session_id/* default */.Z)();
13366
+ const _sessionId = getSessionId();
13656
13367
  const _loggedDeprecatedMessages = new Set();
13657
13368
 
13658
13369
  // The logger master is the first InboxSDK extension to load. This
@@ -13947,7 +13658,7 @@ function getAppIdsProperty(causedByAppId) {
13947
13658
 
13948
13659
  // err should be an Error instance, and details can be any JSON-ifiable value.
13949
13660
  function _logError(err, details, appId, sentByApp) {
13950
- (0,log_error/* default */.Z)(err, details, {
13661
+ logError(err, details, {
13951
13662
  appId,
13952
13663
  sentByApp,
13953
13664
  appIds: getAppIdsProperty(appId),
@@ -13994,7 +13705,7 @@ function _trackEvent(appId, type, eventName, properties) {
13994
13705
  };
13995
13706
  if (type != 'gmail') {
13996
13707
  Object.assign(event, {
13997
- extensionId: (0,get_extension_id/* default */.Z)(),
13708
+ extensionId: getExtensionId(),
13998
13709
  appIds: getAppIdsProperty(appId)
13999
13710
  });
14000
13711
  } else {
@@ -14095,7 +13806,7 @@ if (_extensionIsLoggerMaster && typeof document !== 'undefined' && typeof Mutati
14095
13806
  /* harmony export */ });
14096
13807
  /* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17187);
14097
13808
  /* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);
14098
- /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65371);
13809
+ /* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(68562);
14099
13810
 
14100
13811
 
14101
13812
 
@@ -14236,21 +13947,20 @@ function waitFor(condition) {
14236
13947
 
14237
13948
  "use strict";
14238
13949
  __webpack_require__.r(__webpack_exports__);
14239
- /* eslint-disable @typescript-eslint/no-var-requires */
13950
+ /* harmony import */ var kefir__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26609);
14240
13951
 
14241
13952
  if (!__webpack_require__.g.__InboxSDKImpLoader) {
14242
13953
  var piMainStarted = Date.now();
14243
13954
  var wasAccountSwitcherReadyAtStart = !!document.querySelector('[role=banner] div[aria-label] div div a[href^="https://myaccount.google."], [role=banner]+div div[aria-label] div div a[href^="https://myaccount.google."]');
14244
- var Kefir = __webpack_require__(26609);
14245
13955
  var onready = new Promise(resolve => {
14246
13956
  if (document.readyState === 'complete' || document.readyState === 'interactive') {
14247
- resolve();
13957
+ resolve(null);
14248
13958
  } else {
14249
- resolve(Kefir.merge([Kefir.fromEvents(document, 'DOMContentLoaded'), Kefir.fromEvents(window, 'load')]).take(1).map(() => null).toPromise());
13959
+ resolve(kefir__WEBPACK_IMPORTED_MODULE_0__["default"].merge([kefir__WEBPACK_IMPORTED_MODULE_0__["default"].fromEvents(document, 'DOMContentLoaded'), kefir__WEBPACK_IMPORTED_MODULE_0__["default"].fromEvents(window, 'load')]).take(1).map(() => null).toPromise());
14250
13960
  }
14251
13961
  });
14252
13962
  __webpack_require__.g.__InboxSDKImpLoader = {
14253
- load: function (version, appId, opts) {
13963
+ async load(version, appId, opts) {
14254
13964
  if (version !== '0.1') {
14255
13965
  throw new Error('Unsupported InboxSDK version');
14256
13966
  }
@@ -14261,15 +13971,14 @@ if (!__webpack_require__.g.__InboxSDKImpLoader) {
14261
13971
  throw new Error('No longer supported');
14262
13972
  }
14263
13973
  var piLoadStarted = Date.now();
14264
- return onready.then(() => {
14265
- const {
14266
- makePlatformImplementation
14267
- } = __webpack_require__(23476);
14268
- return makePlatformImplementation(appId, opts, {
14269
- piMainStarted,
14270
- piLoadStarted,
14271
- wasAccountSwitcherReadyAtStart
14272
- });
13974
+ await onready;
13975
+ const {
13976
+ makePlatformImplementation
13977
+ } = await Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 23476));
13978
+ return makePlatformImplementation(appId, opts, {
13979
+ piMainStarted,
13980
+ piLoadStarted,
13981
+ wasAccountSwitcherReadyAtStart
14273
13982
  });
14274
13983
  }
14275
13984
  };
@@ -15541,8 +15250,8 @@ class GmailAttachmentAreaView {
15541
15250
  }
15542
15251
  }
15543
15252
  /* harmony default export */ const gmail_attachment_area_view = (GmailAttachmentAreaView);
15544
- // EXTERNAL MODULE: ./src/platform-implementation-js/lib/logger.ts + 1 modules
15545
- var lib_logger = __webpack_require__(65371);
15253
+ // EXTERNAL MODULE: ./src/platform-implementation-js/lib/logger.ts + 6 modules
15254
+ var lib_logger = __webpack_require__(68562);
15546
15255
  // EXTERNAL MODULE: ./src/platform-implementation-js/lib/extract-contact-from-email-contact-string.ts + 1 modules
15547
15256
  var extract_contact_from_email_contact_string = __webpack_require__(90680);
15548
15257
  ;// CONCATENATED MODULE: ./src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view/get-updated-contact.ts
@@ -19015,8 +18724,7 @@ var modal_view = __webpack_require__(3869);
19015
18724
  ;// CONCATENATED MODULE: ./src/platform-implementation-js/widgets/mole-view.ts
19016
18725
 
19017
18726
 
19018
- const mole_view_memberMap = new WeakMap(); // documented in src/docs/
19019
-
18727
+ const mole_view_memberMap = new WeakMap();
19020
18728
  class MoleView extends safe_event_emitter/* default */.Z {
19021
18729
  destroyed = false;
19022
18730
  constructor(options) {
@@ -19026,7 +18734,7 @@ class MoleView extends safe_event_emitter/* default */.Z {
19026
18734
  };
19027
18735
  mole_view_memberMap.set(this, members);
19028
18736
  members.driver.getEventStream().onValue(e => {
19029
- this.emit(e.eventName, e.detail);
18737
+ this.emit(e.eventName);
19030
18738
  });
19031
18739
  members.driver.getEventStream().onEnd(() => {
19032
18740
  this.destroyed = true;
@@ -19139,7 +18847,6 @@ const isComposeTitleBarLightColor = once_default()(() => {
19139
18847
 
19140
18848
 
19141
18849
 
19142
- // documented in src/docs/
19143
18850
 
19144
18851
  class Widgets {
19145
18852
  constructor(appId, driver) {
@@ -21196,11 +20903,9 @@ let injectScriptImplementation = () => {
21196
20903
  type: 'inboxsdk__injectPageWorld'
21197
20904
  }, didExecute => {
21198
20905
  if (!didExecute) {
21199
- // MV2 support
21200
- const scr = document.createElement('script');
21201
- scr.type = 'text/javascript';
21202
- scr.src = window.chrome.runtime.getURL('pageWorld.js');
21203
- document.documentElement.appendChild(scr);
20906
+ if (false) {} else {
20907
+ throw new Error("Couldn't inject pageWorld.js. Check that the extension is using MV3 and has the correct permissions and host_permissions in its manifest.");
20908
+ }
21204
20909
  }
21205
20910
  });
21206
20911
  };
@@ -21614,8 +21319,6 @@ class GmailMoleViewDriver {
21614
21319
  _eventStream = kefir_bus_default()();
21615
21320
  _stopper = js_default()();
21616
21321
  constructor(driver, options) {
21617
- this; // interface check
21618
-
21619
21322
  this._driver = driver;
21620
21323
  this._element = Object.assign(document.createElement('div'), {
21621
21324
  className: 'inboxsdk__mole_view ' + (options.className || ''),
@@ -53815,41 +53518,6 @@ function flatten(array) {
53815
53518
  module.exports = flatten;
53816
53519
 
53817
53520
 
53818
- /***/ }),
53819
-
53820
- /***/ 17204:
53821
- /***/ ((module) => {
53822
-
53823
- /**
53824
- * The inverse of `_.toPairs`; this method returns an object composed
53825
- * from key-value `pairs`.
53826
- *
53827
- * @static
53828
- * @memberOf _
53829
- * @since 4.0.0
53830
- * @category Array
53831
- * @param {Array} pairs The key-value pairs.
53832
- * @returns {Object} Returns the new object.
53833
- * @example
53834
- *
53835
- * _.fromPairs([['a', 1], ['b', 2]]);
53836
- * // => { 'a': 1, 'b': 2 }
53837
- */
53838
- function fromPairs(pairs) {
53839
- var index = -1,
53840
- length = pairs == null ? 0 : pairs.length,
53841
- result = {};
53842
-
53843
- while (++index < length) {
53844
- var pair = pairs[index];
53845
- result[pair[0]] = pair[1];
53846
- }
53847
- return result;
53848
- }
53849
-
53850
- module.exports = fromPairs;
53851
-
53852
-
53853
53521
  /***/ }),
53854
53522
 
53855
53523
  /***/ 27361:
@@ -66311,30 +65979,102 @@ __webpack_require__.d(__webpack_exports__, {
66311
65979
  "default": () => (/* binding */ inboxsdk_NONREMOTE)
66312
65980
  });
66313
65981
 
65982
+ // NAMESPACE OBJECT: ./src/inboxsdk-js/inboxsdk.ts
65983
+ var inboxsdk_namespaceObject = {};
65984
+ __webpack_require__.r(inboxsdk_namespaceObject);
65985
+ __webpack_require__.d(inboxsdk_namespaceObject, {
65986
+ "LOADER_VERSION": () => (LOADER_VERSION),
65987
+ "load": () => (load),
65988
+ "loadScript": () => (inboxsdk_loadScript)
65989
+ });
65990
+
66314
65991
  // EXTERNAL MODULE: ./node_modules/lodash/once.js
66315
65992
  var once = __webpack_require__(51463);
66316
65993
  var once_default = /*#__PURE__*/__webpack_require__.n(once);
66317
- ;// CONCATENATED MODULE: ./src/inboxsdk-js/loading/load-platform-implementation-DEV.ts
65994
+ ;// CONCATENATED MODULE: ./src/inboxsdk-js/loading/load-platform-implementation-NONREMOTE.ts
66318
65995
 
66319
- /* harmony default export */ function load_platform_implementation_DEV(delay) {
65996
+ function loadPi(delay) {
66320
65997
  return once_default()(() => new Promise((resolve, reject) => {
66321
65998
  setTimeout(() => {
66322
65999
  try {
66323
- __webpack_require__(43574);
66324
- resolve();
66000
+ Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 43574)).then(() => resolve()).catch(reject);
66325
66001
  } catch (e) {
66326
66002
  reject(e);
66327
66003
  }
66328
66004
  }, delay);
66329
66005
  }));
66330
66006
  }
66331
- // EXTERNAL MODULE: ./src/inboxsdk-js/loading/platform-implementation-loader.ts
66332
- var platform_implementation_loader = __webpack_require__(52459);
66007
+ ;// CONCATENATED MODULE: ./src/inboxsdk-js/loading/platform-implementation-loader.ts
66008
+ class PlatformImplementationLoader {
66009
+ /**
66010
+ * This must be overridden by the entrypoint to the InboxSDK.
66011
+ * This is done so the npm (non-remote) build doesn't contain code for dynamically
66012
+ * loading the remote build, which may set off the Chrome Web Store review process
66013
+ * scanning for that.
66014
+ */
66015
+ static loadScript = () => {
66016
+ throw new Error('Unexpected error: This function must be overridden');
66017
+ };
66018
+ static async load(appId, opts) {
66019
+ if (!__webpack_require__.g.__InboxSDKImpLoader) {
66020
+ await this.loadScript();
66021
+ if (!__webpack_require__.g.__InboxSDKImpLoader) {
66022
+ throw new Error('Implementation file did not load correctly');
66023
+ }
66024
+ }
66025
+ return __webpack_require__.g.__InboxSDKImpLoader.load('0.1', appId, opts);
66026
+ }
66027
+ static async preload() {
66028
+ // Prime the load by calling it and letting the promise be memoized.
66029
+ this.loadScript();
66030
+ }
66031
+ }
66032
+ ;// CONCATENATED MODULE: ./src/inboxsdk-js/inboxsdk-NONREMOTE-setup.ts
66033
+
66034
+
66035
+ PlatformImplementationLoader.loadScript = loadPi(500);
66036
+ // EXTERNAL MODULE: ./src/common/version.ts
66037
+ var version = __webpack_require__(17403);
66038
+ ;// CONCATENATED MODULE: ./src/inboxsdk-js/load-script-proxy.ts
66039
+ let loadScript = () => {
66040
+ throw new Error('This function is not usable in Chrome MV3 extensions');
66041
+ };
66042
+ function setLoadScript(fn) {
66043
+ loadScript = fn;
66044
+ }
66045
+ ;// CONCATENATED MODULE: ./src/inboxsdk-js/inboxsdk.ts
66046
+
66047
+
66048
+
66049
+ const LOADER_VERSION = version/* BUILD_VERSION */.b;
66050
+
66051
+ /**
66052
+ * Only works in the non-npm remote-loaded build for MV2 extensions.
66053
+ * @deprecated
66054
+ */
66055
+ function inboxsdk_loadScript(url, opts) {
66056
+ return loadScript(url, opts);
66057
+ }
66058
+ function load(version, appId, opts) {
66059
+ opts = Object.assign({
66060
+ // defaults
66061
+ globalErrorLogging: true
66062
+ }, opts, {
66063
+ // stuff that can't be overridden, such as extra stuff this file passes to
66064
+ // the implementation script.
66065
+ VERSION: LOADER_VERSION,
66066
+ REQUESTED_API_VERSION: version
66067
+ });
66068
+ return PlatformImplementationLoader.load(appId, opts);
66069
+ }
66070
+ const pageOrigin = false || document.location.origin;
66071
+ if ('https://mail.google.com' === pageOrigin) {
66072
+ PlatformImplementationLoader.preload();
66073
+ }
66333
66074
  ;// CONCATENATED MODULE: ./src/inboxsdk-js/inboxsdk-NONREMOTE.ts
66334
66075
 
66335
66076
 
66336
- platform_implementation_loader/* default._loadScript */.Z._loadScript = load_platform_implementation_DEV(500);
66337
- /* harmony default export */ const inboxsdk_NONREMOTE = (__webpack_require__(86915));
66077
+ /* harmony default export */ const inboxsdk_NONREMOTE = (inboxsdk_namespaceObject);
66338
66078
  })();
66339
66079
 
66340
66080
  __webpack_exports__ = __webpack_exports__["default"];