react-wire-persisted 1.0.6 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1,802 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(this,(function(){return(()=>{"use strict";var e={253:(e,t,r)=>{r.r(t),r.d(t,{addKey:()=>l,fakeLocalStorage:()=>g,getKeys:()=>p,getPrefixedKeys:()=>v,isPrimitive:()=>y,key:()=>f});const n=require("@babel/runtime/helpers/typeof");var o=r.n(n),i=r(779),a=r.n(i);function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){a()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var u={},l=function(e){u[e]=e},f=function(e){return l(e)},p=function(){return u},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=t||u;return e?Object.keys(r).reduce((function(t,n){return c(c({},t),{},a()({},n,"".concat(e,".").concat(r[n])))}),{}):r},g={__IS_FAKE_LOCAL_STORAGE__:!0,getItem:function(e){return g[e]},setItem:function(e,t){g[e]=t},removeItem:function(e){delete g[e]}},y=function(e){var t=o()(e);return null===e||!Array.isArray(e)&&("object"!==t&&"function"!==t)}},779:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{r.r(n),r.d(n,{createPersistedWire:()=>C,defaultOptions:()=>w,getNamespace:()=>x,getOptions:()=>E,getStorage:()=>q,setNamespace:()=>N,setOptions:()=>D,utils:()=>e});var e=r(253);const t=require("@babel/runtime/helpers/toConsumableArray");var o=r.n(t),i=r(779),a=r.n(i);const s=require("@forminator/react-wire"),c=require("@babel/runtime/helpers/slicedToArray");var u=r.n(c);const l=require("@babel/runtime/helpers/classCallCheck");var f=r.n(l);const p=require("@babel/runtime/helpers/createClass");var v=r.n(p);const g=require("@babel/runtime/helpers/inherits");var y=r.n(g);const h=require("@babel/runtime/helpers/possibleConstructorReturn");var m=r.n(h);const b=require("@babel/runtime/helpers/getPrototypeOf");var d=r.n(b);function O(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=d()(e);if(t){var o=d()(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return m()(this,r)}}var j=function(t){y()(n,t);var r=O(n);function n(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return f()(this,n),(e=r.call(this,t,o)).storage=e.getStorage(),e}return v()(n,[{key:"getStorage",value:function(){try{return window.localStorage}catch(t){return console.warn("LocalStorageProvider: localStorage not supported"),e.fakeLocalStorage}}},{key:"setNamespace",value:function(e){if(this.namespace){if(this.namespace!==e){var t=JSON.parse(JSON.stringify(this.getAll()));this.removeAll();for(var r=0,n=Object.entries(t);r<n.length;r++){var o=u()(n[r],2),i=o[0],a=o[1],s=i.replace(this.namespace,e);this.setItem(s,a)}this.namespace=e}}else this.namespace=e}},{key:"getItem",value:function(e){var t=this.storage.getItem(e);if(null==t)return null;try{return JSON.parse(t)}catch(e){return t}}},{key:"setItem",value:function(t,r){var n=r;return null!=n&&(n=(0,e.isPrimitive)(r)?r:JSON.stringify(r)),this.storage.setItem(t,n)}},{key:"removeItem",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t&&delete this.registry[e],this.storage.removeItem(e)}},{key:"getAll",value:function(){var e=this,t="".concat(this.namespace,".");return Object.keys(this.storage).reduce((function(r,n){return e.namespace&&!n.startsWith(t)||(r[n]=e.storage.getItem(n)),r}),{})}},{key:"_resetAll",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o="".concat(this.namespace,".");Object.keys(localStorage).forEach((function(i){var a=!e.namespace||i.startsWith(o),s=(null==r?void 0:r.includes(i))||!1;a&&!s&&(t?Object.prototype.hasOwnProperty.call(e.registry,i)?e.storage.setItem(i,e.registry[i]):e.storage.removeItem(i):(e.storage.removeItem(i),n&&delete e.registry[i]))}))}},{key:"resetAll",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._resetAll(!0,e||[],t)}},{key:"removeAll",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._resetAll(!1,e||[],t)}}]),n}(function(){function e(t,r){if(f()(this,e),(this instanceof e?this.constructor:void 0)===e)throw TypeError("StorageProvider is abstract. Extend this class to implement it");this.namespace=t||null,this.registry=r||{}}return v()(e,[{key:"setNamespace",value:function(e){}},{key:"register",value:function(e,t){this.registry[e]=t}},{key:"getItem",value:function(e){}},{key:"setItem",value:function(e,t){}},{key:"removeItem",value:function(e){}},{key:"getAll",value:function(){}},{key:"_resetAll",value:function(){}},{key:"resetAll",value:function(){}},{key:"removeAll",value:function(){}}]),e}());function P(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?P(Object(r),!0).forEach((function(t){a()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):P(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var w={logging:!1},S=j,A=new S,I=k({},w),_=[],x=function(){return A.namespace},q=function(){return A},E=function(){return I},N=function(e){A.setNamespace(e),A=new S(e||x())},D=function(e){if((I=k(k({},I),e)).logging)for(console.info("Flushing",_.length,"pending logs");_.length;){var t;(t=console).log.apply(t,o()(_.shift()))}},R=function(){for(var e,t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];I.logging.enabled?(e=console).log.apply(e,r):_.push(r)},C=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!e&&"number"!=typeof e)throw new Error("createPersistedWire: Key cannot be a falsey value (".concat(e,"}"));A.register(e,t);var r=(0,s.createWire)(t),n=function(){return r.getValue()},o=function(t){return A.setItem(e,t),r.setValue(t)},i=function(e){r.subscribe(e)},a=A.getItem(e),c=null===a?t:a;return R("react-wire-persisted: create",e,{value:t,storedValue:a,initialValue:c}),c!==t&&o(c),k(k({},r),{},{getValue:n,setValue:o,subscribe:i})}})(),n})()}));
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var reactWire = require('@forminator/react-wire');
6
+
7
+ function unwrapExports (x) {
8
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
9
+ }
10
+
11
+ function createCommonjsModule(fn, module) {
12
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
13
+ }
14
+
15
+ var defineProperty = createCommonjsModule(function (module) {
16
+ function _defineProperty(obj, key, value) {
17
+ if (key in obj) {
18
+ Object.defineProperty(obj, key, {
19
+ value: value,
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true
23
+ });
24
+ } else {
25
+ obj[key] = value;
26
+ }
27
+
28
+ return obj;
29
+ }
30
+
31
+ module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
32
+ });
33
+
34
+ var _defineProperty = unwrapExports(defineProperty);
35
+
36
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
+
38
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
+
40
+ /**
41
+ * Convenience map of keys
42
+ */
43
+ var storageKeys = {};
44
+ /**
45
+ * Adds a key to the keys map
46
+ *
47
+ * @param {String} value Key name
48
+ */
49
+
50
+ var addKey = function addKey(value) {
51
+ storageKeys[value] = value;
52
+ };
53
+ /**
54
+ * Adds a key to the keys map
55
+ * (Alias for `addKey`)
56
+ *
57
+ * @param {String} value Key name
58
+ */
59
+
60
+ var key = function key(value) {
61
+ return addKey(value);
62
+ };
63
+ /**
64
+ * Convenience method to get internally managed storage keys
65
+ *
66
+ * @returns {Object} Storage keys map
67
+ */
68
+
69
+ var getKeys = function getKeys() {
70
+ return storageKeys;
71
+ };
72
+ /**
73
+ * Helper utility to prefix all keys in a map to use a namespace
74
+ *
75
+ * @param {String} namespace Storage namespace prefix
76
+ * @param {Object} keys (Optional) Storage key/values. Defaults to the internally managed keys map
77
+ */
78
+
79
+ var getPrefixedKeys = function getPrefixedKeys(namespace) {
80
+ var keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
81
+ var items = keys || storageKeys;
82
+ if (!namespace) return items;
83
+ return Object.keys(items).reduce(function (acc, it) {
84
+ return _objectSpread$1(_objectSpread$1({}, acc), {}, _defineProperty({}, it, "".concat(namespace, ".").concat(items[it])));
85
+ }, {});
86
+ };
87
+
88
+ var fakeLocalStorage = {
89
+ getItem: function getItem(key) {
90
+ return fakeLocalStorage[key];
91
+ },
92
+ setItem: function setItem(key, value) {
93
+ fakeLocalStorage[key] = value;
94
+ },
95
+ removeItem: function removeItem(key) {
96
+ delete fakeLocalStorage[key];
97
+ }
98
+ };
99
+
100
+ /**
101
+ * Checks if a value is a primitive type
102
+ *
103
+ * @param {*} val Value to check
104
+ * @returns {Boolean} True if value is a primitive type
105
+ */
106
+
107
+ var isPrimitive = function isPrimitive(val) {
108
+ var type = typeof val;
109
+ if (val === null) return true;
110
+ if (Array.isArray(val)) return false;
111
+ if (type === 'object') return false;
112
+ return type !== 'function';
113
+ };
114
+
115
+ var index = /*#__PURE__*/Object.freeze({
116
+ __proto__: null,
117
+ isPrimitive: isPrimitive,
118
+ addKey: addKey,
119
+ key: key,
120
+ getKeys: getKeys,
121
+ getPrefixedKeys: getPrefixedKeys,
122
+ fakeLocalStorage: fakeLocalStorage
123
+ });
124
+
125
+ var arrayLikeToArray = createCommonjsModule(function (module) {
126
+ function _arrayLikeToArray(arr, len) {
127
+ if (len == null || len > arr.length) len = arr.length;
128
+
129
+ for (var i = 0, arr2 = new Array(len); i < len; i++) {
130
+ arr2[i] = arr[i];
131
+ }
132
+
133
+ return arr2;
134
+ }
135
+
136
+ module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
137
+ });
138
+
139
+ unwrapExports(arrayLikeToArray);
140
+
141
+ var arrayWithoutHoles = createCommonjsModule(function (module) {
142
+ function _arrayWithoutHoles(arr) {
143
+ if (Array.isArray(arr)) return arrayLikeToArray(arr);
144
+ }
145
+
146
+ module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
147
+ });
148
+
149
+ unwrapExports(arrayWithoutHoles);
150
+
151
+ var iterableToArray = createCommonjsModule(function (module) {
152
+ function _iterableToArray(iter) {
153
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
154
+ }
155
+
156
+ module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
157
+ });
158
+
159
+ unwrapExports(iterableToArray);
160
+
161
+ var unsupportedIterableToArray = createCommonjsModule(function (module) {
162
+ function _unsupportedIterableToArray(o, minLen) {
163
+ if (!o) return;
164
+ if (typeof o === "string") return arrayLikeToArray(o, minLen);
165
+ var n = Object.prototype.toString.call(o).slice(8, -1);
166
+ if (n === "Object" && o.constructor) n = o.constructor.name;
167
+ if (n === "Map" || n === "Set") return Array.from(o);
168
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
169
+ }
170
+
171
+ module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
172
+ });
173
+
174
+ unwrapExports(unsupportedIterableToArray);
175
+
176
+ var nonIterableSpread = createCommonjsModule(function (module) {
177
+ function _nonIterableSpread() {
178
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
179
+ }
180
+
181
+ module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
182
+ });
183
+
184
+ unwrapExports(nonIterableSpread);
185
+
186
+ var toConsumableArray = createCommonjsModule(function (module) {
187
+ function _toConsumableArray(arr) {
188
+ return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
189
+ }
190
+
191
+ module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
192
+ });
193
+
194
+ var _toConsumableArray = unwrapExports(toConsumableArray);
195
+
196
+ var arrayWithHoles = createCommonjsModule(function (module) {
197
+ function _arrayWithHoles(arr) {
198
+ if (Array.isArray(arr)) return arr;
199
+ }
200
+
201
+ module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
202
+ });
203
+
204
+ unwrapExports(arrayWithHoles);
205
+
206
+ var iterableToArrayLimit = createCommonjsModule(function (module) {
207
+ function _iterableToArrayLimit(arr, i) {
208
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
209
+
210
+ if (_i == null) return;
211
+ var _arr = [];
212
+ var _n = true;
213
+ var _d = false;
214
+
215
+ var _s, _e;
216
+
217
+ try {
218
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
219
+ _arr.push(_s.value);
220
+
221
+ if (i && _arr.length === i) break;
222
+ }
223
+ } catch (err) {
224
+ _d = true;
225
+ _e = err;
226
+ } finally {
227
+ try {
228
+ if (!_n && _i["return"] != null) _i["return"]();
229
+ } finally {
230
+ if (_d) throw _e;
231
+ }
232
+ }
233
+
234
+ return _arr;
235
+ }
236
+
237
+ module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
238
+ });
239
+
240
+ unwrapExports(iterableToArrayLimit);
241
+
242
+ var nonIterableRest = createCommonjsModule(function (module) {
243
+ function _nonIterableRest() {
244
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
245
+ }
246
+
247
+ module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
248
+ });
249
+
250
+ unwrapExports(nonIterableRest);
251
+
252
+ var slicedToArray = createCommonjsModule(function (module) {
253
+ function _slicedToArray(arr, i) {
254
+ return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
255
+ }
256
+
257
+ module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
258
+ });
259
+
260
+ var _slicedToArray = unwrapExports(slicedToArray);
261
+
262
+ var classCallCheck = createCommonjsModule(function (module) {
263
+ function _classCallCheck(instance, Constructor) {
264
+ if (!(instance instanceof Constructor)) {
265
+ throw new TypeError("Cannot call a class as a function");
266
+ }
267
+ }
268
+
269
+ module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
270
+ });
271
+
272
+ var _classCallCheck = unwrapExports(classCallCheck);
273
+
274
+ var createClass = createCommonjsModule(function (module) {
275
+ function _defineProperties(target, props) {
276
+ for (var i = 0; i < props.length; i++) {
277
+ var descriptor = props[i];
278
+ descriptor.enumerable = descriptor.enumerable || false;
279
+ descriptor.configurable = true;
280
+ if ("value" in descriptor) descriptor.writable = true;
281
+ Object.defineProperty(target, descriptor.key, descriptor);
282
+ }
283
+ }
284
+
285
+ function _createClass(Constructor, protoProps, staticProps) {
286
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
287
+ if (staticProps) _defineProperties(Constructor, staticProps);
288
+ Object.defineProperty(Constructor, "prototype", {
289
+ writable: false
290
+ });
291
+ return Constructor;
292
+ }
293
+
294
+ module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
295
+ });
296
+
297
+ var _createClass = unwrapExports(createClass);
298
+
299
+ var setPrototypeOf = createCommonjsModule(function (module) {
300
+ function _setPrototypeOf(o, p) {
301
+ module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
302
+ o.__proto__ = p;
303
+ return o;
304
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports;
305
+ return _setPrototypeOf(o, p);
306
+ }
307
+
308
+ module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
309
+ });
310
+
311
+ unwrapExports(setPrototypeOf);
312
+
313
+ var inherits = createCommonjsModule(function (module) {
314
+ function _inherits(subClass, superClass) {
315
+ if (typeof superClass !== "function" && superClass !== null) {
316
+ throw new TypeError("Super expression must either be null or a function");
317
+ }
318
+
319
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
320
+ constructor: {
321
+ value: subClass,
322
+ writable: true,
323
+ configurable: true
324
+ }
325
+ });
326
+ Object.defineProperty(subClass, "prototype", {
327
+ writable: false
328
+ });
329
+ if (superClass) setPrototypeOf(subClass, superClass);
330
+ }
331
+
332
+ module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
333
+ });
334
+
335
+ var _inherits = unwrapExports(inherits);
336
+
337
+ var _typeof_1 = createCommonjsModule(function (module) {
338
+ function _typeof(obj) {
339
+ "@babel/helpers - typeof";
340
+
341
+ return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
342
+ return typeof obj;
343
+ } : function (obj) {
344
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
345
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
346
+ }
347
+
348
+ module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
349
+ });
350
+
351
+ unwrapExports(_typeof_1);
352
+
353
+ var assertThisInitialized = createCommonjsModule(function (module) {
354
+ function _assertThisInitialized(self) {
355
+ if (self === void 0) {
356
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
357
+ }
358
+
359
+ return self;
360
+ }
361
+
362
+ module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
363
+ });
364
+
365
+ unwrapExports(assertThisInitialized);
366
+
367
+ var possibleConstructorReturn = createCommonjsModule(function (module) {
368
+ var _typeof = _typeof_1["default"];
369
+
370
+
371
+
372
+ function _possibleConstructorReturn(self, call) {
373
+ if (call && (_typeof(call) === "object" || typeof call === "function")) {
374
+ return call;
375
+ } else if (call !== void 0) {
376
+ throw new TypeError("Derived constructors may only return object or undefined");
377
+ }
378
+
379
+ return assertThisInitialized(self);
380
+ }
381
+
382
+ module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
383
+ });
384
+
385
+ var _possibleConstructorReturn = unwrapExports(possibleConstructorReturn);
386
+
387
+ var getPrototypeOf = createCommonjsModule(function (module) {
388
+ function _getPrototypeOf(o) {
389
+ module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
390
+ return o.__proto__ || Object.getPrototypeOf(o);
391
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports;
392
+ return _getPrototypeOf(o);
393
+ }
394
+
395
+ module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
396
+ });
397
+
398
+ var _getPrototypeOf = unwrapExports(getPrototypeOf);
399
+
400
+ /**
401
+ * Base class to allow storage access
402
+ * @see `LocalStorageProvider.js` for an example implementation
403
+ */
404
+ var StorageProvider = /*#__PURE__*/function () {
405
+ /**
406
+ * Initializes the class
407
+ * @param {String} namespace Namespace to prefix all keys with. Mostly used for the logging & reset functions
408
+ * @param {Object} registry (Optional) Initialize the storage provider with an existing registry
409
+ */
410
+ function StorageProvider(namespace, registry) {
411
+ _classCallCheck(this, StorageProvider);
412
+
413
+ // Simulate being an abstract class
414
+ if ((this instanceof StorageProvider ? this.constructor : void 0) === StorageProvider) throw TypeError("StorageProvider is abstract. Extend this class to implement it");
415
+ this.namespace = namespace || null;
416
+ this.registry = registry ||
417
+ /* istanbul ignore next */
418
+ {};
419
+ }
420
+ /**
421
+ * Sets the namespace for this storage provider, and migrates
422
+ * all stored values to the new namespace
423
+ * @param {String} namespace New namespace for this storage provider
424
+ */
425
+
426
+ /* istanbul ignore next */
427
+
428
+
429
+ _createClass(StorageProvider, [{
430
+ key: "setNamespace",
431
+ value: function setNamespace(namespace) {}
432
+ /**
433
+ * Registers an item with it's initial value. This is used for logging, resetting, etc.
434
+ * @param {String} key Storage item's key
435
+ * @param {*} initialValue Storage item's initial value
436
+ */
437
+
438
+ }, {
439
+ key: "register",
440
+ value: function register(key, initialValue) {
441
+ this.registry[key] = initialValue;
442
+ }
443
+ /**
444
+ * Reads an item from storage
445
+ * @param {String} key Key for the item to retrieve
446
+ */
447
+
448
+ /* istanbul ignore next */
449
+
450
+ }, {
451
+ key: "getItem",
452
+ value: function getItem(key) {}
453
+ /**
454
+ * Stores a value
455
+ * @param {String} key Item's storage key
456
+ * @param {String} value Item's value to store
457
+ */
458
+
459
+ /* istanbul ignore next */
460
+
461
+ }, {
462
+ key: "setItem",
463
+ value: function setItem(key, value) {}
464
+ /**
465
+ * Removes an item from storage
466
+ * @param {String} key Item's storage key
467
+ * @param {Boolean} fromRegistry (Optional) If the item should also be removed from the registry
468
+ */
469
+
470
+ /* istanbul ignore next */
471
+
472
+ }, {
473
+ key: "removeItem",
474
+ value: function removeItem(key) {
475
+ }
476
+ /**
477
+ * Gets all stored keys & values
478
+ * If a `namespace` was set, only keys prefixed with the namespace will be returned
479
+ */
480
+
481
+ /* istanbul ignore next */
482
+
483
+ }, {
484
+ key: "getAll",
485
+ value: function getAll() {}
486
+ /**
487
+ *
488
+ * @param {Boolean} useInitialValues If values should be replaced with their initial values. If false, keys are removed
489
+ * @param {String[]} excludedKeys (Optional) List of keys to exclude
490
+ * @param {Boolean} clearRegistry (Optional) If the registry should also be cleared
491
+ */
492
+
493
+ /* istanbul ignore next */
494
+
495
+ }, {
496
+ key: "_resetAll",
497
+ value: function _resetAll() {
498
+ }
499
+ /**
500
+ * Resets all values to their initial values
501
+ * If a `namespace` is set, only keys prefixed with the namespace will be reset
502
+ * @param {String[]} excludedKeys (Optional) List of keys to exclude
503
+ */
504
+
505
+ /* istanbul ignore next */
506
+
507
+ }, {
508
+ key: "resetAll",
509
+ value: function resetAll() {
510
+ }
511
+ /**
512
+ * Removes all items from local storage.
513
+ * If a `namespace` is set, only keys prefixed with the namespace will be removed
514
+ * @param {String[]} excludedKeys (Optional) List of keys to exclude
515
+ */
516
+
517
+ /* istanbul ignore next */
518
+
519
+ }, {
520
+ key: "removeAll",
521
+ value: function removeAll() {
522
+ }
523
+ }]);
524
+
525
+ return StorageProvider;
526
+ }();
527
+
528
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
529
+
530
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
531
+ /**
532
+ * A storage provider for `localStorage`
533
+ * @see `StorageProvider.js` for documentation
534
+ */
535
+
536
+ var LocalStorageProvider = /*#__PURE__*/function (_StorageProvider) {
537
+ _inherits(LocalStorageProvider, _StorageProvider);
538
+
539
+ var _super = _createSuper(LocalStorageProvider);
540
+
541
+ function LocalStorageProvider() {
542
+ var _this;
543
+
544
+ var namespace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
545
+ var registry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
546
+
547
+ _classCallCheck(this, LocalStorageProvider);
548
+
549
+ _this = _super.call(this, namespace, registry);
550
+ _this.storage = _this.getStorage();
551
+ return _this;
552
+ }
553
+
554
+ _createClass(LocalStorageProvider, [{
555
+ key: "getStorage",
556
+ value: function getStorage() {
557
+ try {
558
+ return window.localStorage;
559
+ } catch (e) {
560
+ /* istanbul ignore next */
561
+ console.warn('LocalStorageProvider: localStorage not supported');
562
+ /* istanbul ignore next */
563
+
564
+ return fakeLocalStorage;
565
+ }
566
+ }
567
+ }, {
568
+ key: "setNamespace",
569
+ value: function setNamespace(namespace) {
570
+ if (!this.namespace) {
571
+ this.namespace = namespace;
572
+ return;
573
+ }
574
+
575
+ if (this.namespace === namespace) return;
576
+ var items = JSON.parse(JSON.stringify(this.getAll()));
577
+ this.removeAll();
578
+
579
+ for (var _i = 0, _Object$entries = Object.entries(items); _i < _Object$entries.length; _i++) {
580
+ var _ref3 = _Object$entries[_i];
581
+
582
+ var _ref2 = _slicedToArray(_ref3, 2);
583
+
584
+ var key = _ref2[0];
585
+ var value = _ref2[1];
586
+ var newKey = key.replace(this.namespace, namespace);
587
+ this.setItem(newKey, value);
588
+ }
589
+
590
+ this.namespace = namespace;
591
+ }
592
+ }, {
593
+ key: "getItem",
594
+ value: function getItem(key) {
595
+ var val = this.storage.getItem(key);
596
+ if (val === undefined || val === null) return null;
597
+
598
+ try {
599
+ return JSON.parse(val);
600
+ } catch (e) {
601
+ return val;
602
+ }
603
+ }
604
+ }, {
605
+ key: "setItem",
606
+ value: function setItem(key, value) {
607
+ var val = value; // Don't allow "null" & similar values to be stringified
608
+
609
+ if (val !== undefined && val !== null) val = isPrimitive(value) ? value : JSON.stringify(value);
610
+ return this.storage.setItem(key, val);
611
+ }
612
+ }, {
613
+ key: "removeItem",
614
+ value: function removeItem(key) {
615
+ var fromRegistry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
616
+ if (fromRegistry) delete this.registry[key];
617
+ return this.storage.removeItem(key);
618
+ }
619
+ }, {
620
+ key: "getAll",
621
+ value: function getAll() {
622
+ var _this2 = this;
623
+
624
+ var prefixNs = "".concat(this.namespace, ".");
625
+ return Object.keys(this.storage).reduce(function (acc, it) {
626
+ if (_this2.namespace ? it.startsWith(prefixNs) : true) acc[it] = _this2.storage.getItem(it);
627
+ return acc;
628
+ }, {});
629
+ }
630
+ }, {
631
+ key: "_resetAll",
632
+ value: function _resetAll() {
633
+ var _this3 = this;
634
+
635
+ var useInitialValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
636
+ var excludedKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
637
+ var clearRegistry = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
638
+ var prefixNs = "".concat(this.namespace, ".");
639
+ Object.keys(localStorage).forEach(function (it) {
640
+ var isAppKey = _this3.namespace ? it.startsWith(prefixNs) : true;
641
+ var isExcluded = (excludedKeys === null || excludedKeys === void 0 ? void 0 : excludedKeys.includes(it)) || false;
642
+ if (!isAppKey || isExcluded) return;
643
+
644
+ if (useInitialValues) {
645
+ var isRegistered = Object.prototype.hasOwnProperty.call(_this3.registry, it);
646
+ if (isRegistered) _this3.storage.setItem(it, _this3.registry[it]);else _this3.storage.removeItem(it);
647
+ } else {
648
+ _this3.storage.removeItem(it);
649
+
650
+ if (clearRegistry) delete _this3.registry[it];
651
+ }
652
+ });
653
+ }
654
+ }, {
655
+ key: "resetAll",
656
+ value: function resetAll() {
657
+ var excludedKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
658
+ var clearRegistry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
659
+
660
+ this._resetAll(true, excludedKeys || [], clearRegistry);
661
+ }
662
+ }, {
663
+ key: "removeAll",
664
+ value: function removeAll() {
665
+ var excludedKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
666
+ var clearRegistry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
667
+
668
+ this._resetAll(false, excludedKeys || [], clearRegistry);
669
+ }
670
+ }]);
671
+
672
+ return LocalStorageProvider;
673
+ }(StorageProvider);
674
+
675
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
676
+
677
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
678
+ var defaultOptions = {
679
+ logging: {
680
+ enabled: false
681
+ }
682
+ };
683
+ var Provider = LocalStorageProvider;
684
+ var storage = new Provider();
685
+
686
+ var options = _objectSpread({}, defaultOptions);
687
+
688
+ var pendingLogs = [];
689
+ /**
690
+ * Gets the namespace of the storage provider
691
+ *
692
+ * @returns {String}
693
+ */
694
+
695
+ var getNamespace = function getNamespace() {
696
+ return storage.namespace;
697
+ };
698
+ /**
699
+ * Gets the current storage provider class instance
700
+ *
701
+ * @returns {StorageProvider}
702
+ */
703
+
704
+ var getStorage = function getStorage() {
705
+ return storage;
706
+ };
707
+ var getOptions = function getOptions() {
708
+ return options;
709
+ };
710
+ /**
711
+ * Sets the namespace for the storage provider
712
+ *
713
+ * @param {String} namespace The namespace for the storage provider
714
+ */
715
+
716
+ var setNamespace = function setNamespace(namespace) {
717
+ storage.setNamespace(namespace);
718
+ storage = new Provider(namespace || getNamespace());
719
+ };
720
+ var setOptions = function setOptions(value) {
721
+ options = _objectSpread(_objectSpread({}, options), value);
722
+ /* istanbul ignore next */
723
+
724
+ if (options.logging.enabled) {
725
+ console.info('Flushing', pendingLogs.length, 'pending logs');
726
+
727
+ while (pendingLogs.length) {
728
+ var _console;
729
+
730
+ /* istanbul ignore next */
731
+ (_console = console).log.apply(_console, _toConsumableArray(pendingLogs.shift()));
732
+ }
733
+ }
734
+ };
735
+
736
+ var log = function log() {
737
+ var _console2;
738
+
739
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
740
+ args[_key] = arguments[_key];
741
+ }
742
+
743
+ /* istanbul ignore next */
744
+ if (options.logging.enabled)
745
+ /* istanbul ignore next */
746
+ (_console2 = console).log.apply(_console2, args);else pendingLogs.push(args);
747
+ };
748
+ /**
749
+ * Creates a persisted Wire using the `StorageProvider` that is currently set
750
+ * Defaults to `localStorage` via `LocalStorageProvider`
751
+ *
752
+ * @param {String} key Unique key for storing this value
753
+ * @param {*} value Initial value of this Wire
754
+ * @returns A new Wire decorated with localStorage functionality
755
+ */
756
+
757
+
758
+ var createPersistedWire = function createPersistedWire(key) {
759
+ var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
760
+ // This check helps ensure no accidental key typos occur
761
+ if (!key && typeof key !== 'number') throw new Error("createPersistedWire: Key cannot be a falsey value (".concat(key, "}")); // Track this writable entry so we can easily clear all
762
+
763
+ storage.register(key, value); // The actual Wire backing object
764
+
765
+ var wire = reactWire.createWire(value);
766
+
767
+ var getValue = function getValue() {
768
+ return wire.getValue();
769
+ };
770
+
771
+ var setValue = function setValue(newValue) {
772
+ storage.setItem(key, newValue);
773
+ return wire.setValue(newValue);
774
+ };
775
+
776
+ var subscribe = function subscribe(fn) {
777
+ wire.subscribe(fn);
778
+ };
779
+
780
+ var storedValue = storage.getItem(key);
781
+ var initialValue = storedValue === null ? value : storedValue;
782
+ log('react-wire-persisted: create', key, {
783
+ value: value,
784
+ storedValue: storedValue,
785
+ initialValue: initialValue
786
+ });
787
+ if (initialValue !== value) setValue(initialValue);
788
+ return _objectSpread(_objectSpread({}, wire), {}, {
789
+ getValue: getValue,
790
+ setValue: setValue,
791
+ subscribe: subscribe
792
+ });
793
+ };
794
+
795
+ exports.createPersistedWire = createPersistedWire;
796
+ exports.defaultOptions = defaultOptions;
797
+ exports.getNamespace = getNamespace;
798
+ exports.getOptions = getOptions;
799
+ exports.getStorage = getStorage;
800
+ exports.setNamespace = setNamespace;
801
+ exports.setOptions = setOptions;
802
+ exports.utils = index;