react-state-bucket 1.2.5 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Bucket.js CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});class Bucket {
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var Cookie=require('./Cookie.js');class Bucket {
2
2
  constructor(initial, option) {
3
3
  this.hooks = new Map();
4
4
  this.data = new Map();
@@ -27,7 +27,7 @@
27
27
  window.history.replaceState({}, '', url.toString());
28
28
  }
29
29
  else if (this.option.store === 'cookie') {
30
- document.cookie = `${key}=${encodeURIComponent(value)}; path=/`;
30
+ Cookie.setCookie(key, value);
31
31
  }
32
32
  else {
33
33
  this.data.set(key, value);
@@ -42,8 +42,8 @@
42
42
  }
43
43
  }
44
44
  get(key) {
45
+ let value;
45
46
  if (typeof window !== 'undefined') {
46
- let value;
47
47
  if (this.option.store === 'session' || this.option.store === 'local') {
48
48
  let storage = this.option.store === "session" ? sessionStorage : localStorage;
49
49
  value = storage.getItem(key);
@@ -54,10 +54,7 @@
54
54
  value = decodeURIComponent(storedValue);
55
55
  }
56
56
  else if (this.option.store === 'cookie') {
57
- let match = document.cookie.match(new RegExp('(^| )' + key + '=([^;]+)'));
58
- if (match) {
59
- value = decodeURIComponent(match[2]);
60
- }
57
+ value = Cookie.getCookie(key);
61
58
  }
62
59
  else {
63
60
  value = this.data.get(key);
@@ -66,13 +63,13 @@
66
63
  value = JSON.parse(value);
67
64
  }
68
65
  catch (error) { }
69
- try {
70
- value = this.initial[key].parse(value);
71
- }
72
- catch (error) {
73
- }
74
- return value;
75
66
  }
67
+ try {
68
+ value = this.initial[key].parse(value);
69
+ }
70
+ catch (error) {
71
+ }
72
+ return value;
76
73
  }
77
74
  sets(state) {
78
75
  for (let k in state) {
package/Bucket.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Bucket.js","sources":["../src/Bucket.ts"],"sourcesContent":["import { Infer, XVInstanceType } from \"xanv\"\nexport type StoreType = \"memory\" | \"session\" | \"local\" | \"url\" | \"cookie\"\n\nexport type InitialBucketData = {\n [key: string]: XVInstanceType\n}\n\nexport type BucketOptions = {\n store?: StoreType;\n onChange?: (key: string, value: any) => void\n}\n\nclass Bucket<IT extends InitialBucketData> {\n private initial: IT\n private option: BucketOptions\n private hooks: Map<string, Function> = new Map()\n private data: Map<keyof IT, IT[keyof IT]> = new Map()\n readonly changes: Map<keyof IT, boolean> = new Map()\n\n constructor(initial: IT, option?: BucketOptions) {\n this.initial = initial\n this.option = { store: \"memory\", ...option }\n }\n\n subscribe(id: string, hook: Function) {\n if (!id.startsWith(\"rsb_\")) throw new Error(\"Invalid subscription\")\n this.hooks.set(id, hook)\n }\n\n unsubscribe(id: string) {\n this.hooks.delete(id)\n }\n\n set<T extends keyof IT>(key: T, value: Infer<IT[T]>, dispatch = true) {\n if (typeof window !== 'undefined') {\n value = JSON.stringify(value) as any\n if (this.option.store === 'session' || this.option.store === 'local') {\n let storage = this.option.store === \"session\" ? sessionStorage : localStorage\n storage.setItem(key as string, value)\n } else if (this.option.store === 'url') {\n let url = new URL(window.location.href)\n url.searchParams.set(key as string, encodeURIComponent(value))\n window.history.replaceState({}, '', url.toString())\n } else if (this.option.store === 'cookie') {\n document.cookie = `${key as string}=${encodeURIComponent(value)}; path=/`\n } else {\n this.data.set(key as any, value)\n }\n\n this.changes.set(key as string, true)\n if (this.option.onChange) {\n this.option.onChange(key as string, value)\n }\n\n if (dispatch) {\n this.hooks.forEach(h => h())\n }\n }\n }\n\n get<T extends keyof IT>(key: T) {\n if (typeof window !== 'undefined') {\n let value;\n if (this.option.store === 'session' || this.option.store === 'local') {\n let storage = this.option.store === \"session\" ? sessionStorage : localStorage\n value = storage.getItem(key as string)!\n } else if (this.option.store === 'url') {\n let url = new URL(window.location.href)\n let storedValue = url.searchParams.get(key as string)!\n value = decodeURIComponent(storedValue)\n } else if (this.option.store === 'cookie') {\n let match = document.cookie.match(new RegExp('(^| )' + (key as string) + '=([^;]+)'))\n if (match) {\n value = decodeURIComponent(match[2])\n }\n } else {\n value = this.data.get(key as any)\n }\n\n try {\n value = JSON.parse(value as any)\n } catch (error) { }\n\n try {\n value = this.initial[key].parse(value)\n } catch (error) {\n }\n return value\n\n }\n }\n\n sets(state: { [key in keyof IT]?: Infer<IT[key]> }) {\n for (let k in state) {\n this.set(k as keyof IT, state[k as keyof IT]!, true)\n }\n this.hooks.forEach(h => h())\n }\n\n get state() {\n const state: { [key in keyof IT]: Infer<IT[key]> } = {} as any\n for (let k in this.initial) {\n state[k] = this.get(k as keyof IT)\n }\n return state\n }\n\n get errors() {\n const errors = new Map<keyof IT, string>()\n for (let k in this.initial) {\n try {\n // console.log(k, this.get(k as keyof IT));\n\n this.initial[k].parse(this.get(k as keyof IT))\n } catch (error: any) {\n errors.set(k, error.message)\n }\n }\n return errors\n }\n\n}\n\nexport default Bucket"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bucket.js","sources":["../src/Bucket.ts"],"sourcesContent":["import { Infer, XVInstanceType } from \"xanv\"\nimport { getCookie, setCookie } from \"./Cookie\"\nexport type StoreType = \"memory\" | \"session\" | \"local\" | \"url\" | \"cookie\"\n\nexport type InitialBucketData = {\n [key: string]: XVInstanceType\n}\n\nexport type BucketOptions = {\n store?: StoreType;\n onChange?: (key: string, value: any) => void\n}\n\n\n\n\n\nclass Bucket<IT extends InitialBucketData> {\n private initial: IT\n private option: BucketOptions\n private hooks: Map<string, Function> = new Map()\n private data: Map<keyof IT, IT[keyof IT]> = new Map()\n readonly changes: Map<keyof IT, boolean> = new Map()\n\n constructor(initial: IT, option?: BucketOptions) {\n this.initial = initial\n this.option = { store: \"memory\", ...option }\n }\n\n subscribe(id: string, hook: Function) {\n if (!id.startsWith(\"rsb_\")) throw new Error(\"Invalid subscription\")\n this.hooks.set(id, hook)\n }\n\n unsubscribe(id: string) {\n this.hooks.delete(id)\n }\n\n set<T extends keyof IT>(key: T, value: Infer<IT[T]>, dispatch = true) {\n if (typeof window !== 'undefined') {\n value = JSON.stringify(value) as any\n if (this.option.store === 'session' || this.option.store === 'local') {\n let storage = this.option.store === \"session\" ? sessionStorage : localStorage\n storage.setItem(key as string, value)\n } else if (this.option.store === 'url') {\n let url = new URL(window.location.href)\n url.searchParams.set(key as string, encodeURIComponent(value))\n window.history.replaceState({}, '', url.toString())\n } else if (this.option.store === 'cookie') {\n setCookie(key as string, value)\n } else {\n this.data.set(key as any, value)\n }\n\n this.changes.set(key as string, true)\n if (this.option.onChange) {\n this.option.onChange(key as string, value)\n }\n\n if (dispatch) {\n this.hooks.forEach(h => h())\n }\n }\n }\n\n get<T extends keyof IT>(key: T) {\n let value;\n\n if (typeof window !== 'undefined') {\n if (this.option.store === 'session' || this.option.store === 'local') {\n let storage = this.option.store === \"session\" ? sessionStorage : localStorage\n value = storage.getItem(key as string)!\n } else if (this.option.store === 'url') {\n let url = new URL(window.location.href)\n let storedValue = url.searchParams.get(key as string)!\n value = decodeURIComponent(storedValue)\n } else if (this.option.store === 'cookie') {\n value = getCookie(key as string)\n } else {\n value = this.data.get(key as any)\n }\n\n try {\n value = JSON.parse(value as any)\n } catch (error) { }\n }\n\n try {\n value = this.initial[key].parse(value)\n } catch (error) {\n }\n return value\n }\n\n sets(state: { [key in keyof IT]?: Infer<IT[key]> }) {\n for (let k in state) {\n this.set(k as keyof IT, state[k as keyof IT]!, true)\n }\n this.hooks.forEach(h => h())\n }\n\n get state() {\n const state: { [key in keyof IT]: Infer<IT[key]> } = {} as any\n for (let k in this.initial) {\n state[k] = this.get(k as keyof IT)\n }\n return state\n }\n\n get errors() {\n const errors = new Map<keyof IT, string>()\n for (let k in this.initial) {\n try {\n // console.log(k, this.get(k as keyof IT));\n\n this.initial[k].parse(this.get(k as keyof IT))\n } catch (error: any) {\n errors.set(k, error.message)\n }\n }\n return errors\n }\n\n}\n\nexport default Bucket"],"names":["setCookie","getCookie"],"mappings":"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"}
package/Bucket.mjs CHANGED
@@ -1,4 +1,4 @@
1
- class Bucket {
1
+ import {setCookie,getCookie}from'./Cookie.mjs';class Bucket {
2
2
  constructor(initial, option) {
3
3
  this.hooks = new Map();
4
4
  this.data = new Map();
@@ -27,7 +27,7 @@ class Bucket {
27
27
  window.history.replaceState({}, '', url.toString());
28
28
  }
29
29
  else if (this.option.store === 'cookie') {
30
- document.cookie = `${key}=${encodeURIComponent(value)}; path=/`;
30
+ setCookie(key, value);
31
31
  }
32
32
  else {
33
33
  this.data.set(key, value);
@@ -42,8 +42,8 @@ class Bucket {
42
42
  }
43
43
  }
44
44
  get(key) {
45
+ let value;
45
46
  if (typeof window !== 'undefined') {
46
- let value;
47
47
  if (this.option.store === 'session' || this.option.store === 'local') {
48
48
  let storage = this.option.store === "session" ? sessionStorage : localStorage;
49
49
  value = storage.getItem(key);
@@ -54,10 +54,7 @@ class Bucket {
54
54
  value = decodeURIComponent(storedValue);
55
55
  }
56
56
  else if (this.option.store === 'cookie') {
57
- let match = document.cookie.match(new RegExp('(^| )' + key + '=([^;]+)'));
58
- if (match) {
59
- value = decodeURIComponent(match[2]);
60
- }
57
+ value = getCookie(key);
61
58
  }
62
59
  else {
63
60
  value = this.data.get(key);
@@ -66,13 +63,13 @@ class Bucket {
66
63
  value = JSON.parse(value);
67
64
  }
68
65
  catch (error) { }
69
- try {
70
- value = this.initial[key].parse(value);
71
- }
72
- catch (error) {
73
- }
74
- return value;
75
66
  }
67
+ try {
68
+ value = this.initial[key].parse(value);
69
+ }
70
+ catch (error) {
71
+ }
72
+ return value;
76
73
  }
77
74
  sets(state) {
78
75
  for (let k in state) {
package/Bucket.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Bucket.mjs","sources":["../src/Bucket.ts"],"sourcesContent":["import { Infer, XVInstanceType } from \"xanv\"\nexport type StoreType = \"memory\" | \"session\" | \"local\" | \"url\" | \"cookie\"\n\nexport type InitialBucketData = {\n [key: string]: XVInstanceType\n}\n\nexport type BucketOptions = {\n store?: StoreType;\n onChange?: (key: string, value: any) => void\n}\n\nclass Bucket<IT extends InitialBucketData> {\n private initial: IT\n private option: BucketOptions\n private hooks: Map<string, Function> = new Map()\n private data: Map<keyof IT, IT[keyof IT]> = new Map()\n readonly changes: Map<keyof IT, boolean> = new Map()\n\n constructor(initial: IT, option?: BucketOptions) {\n this.initial = initial\n this.option = { store: \"memory\", ...option }\n }\n\n subscribe(id: string, hook: Function) {\n if (!id.startsWith(\"rsb_\")) throw new Error(\"Invalid subscription\")\n this.hooks.set(id, hook)\n }\n\n unsubscribe(id: string) {\n this.hooks.delete(id)\n }\n\n set<T extends keyof IT>(key: T, value: Infer<IT[T]>, dispatch = true) {\n if (typeof window !== 'undefined') {\n value = JSON.stringify(value) as any\n if (this.option.store === 'session' || this.option.store === 'local') {\n let storage = this.option.store === \"session\" ? sessionStorage : localStorage\n storage.setItem(key as string, value)\n } else if (this.option.store === 'url') {\n let url = new URL(window.location.href)\n url.searchParams.set(key as string, encodeURIComponent(value))\n window.history.replaceState({}, '', url.toString())\n } else if (this.option.store === 'cookie') {\n document.cookie = `${key as string}=${encodeURIComponent(value)}; path=/`\n } else {\n this.data.set(key as any, value)\n }\n\n this.changes.set(key as string, true)\n if (this.option.onChange) {\n this.option.onChange(key as string, value)\n }\n\n if (dispatch) {\n this.hooks.forEach(h => h())\n }\n }\n }\n\n get<T extends keyof IT>(key: T) {\n if (typeof window !== 'undefined') {\n let value;\n if (this.option.store === 'session' || this.option.store === 'local') {\n let storage = this.option.store === \"session\" ? sessionStorage : localStorage\n value = storage.getItem(key as string)!\n } else if (this.option.store === 'url') {\n let url = new URL(window.location.href)\n let storedValue = url.searchParams.get(key as string)!\n value = decodeURIComponent(storedValue)\n } else if (this.option.store === 'cookie') {\n let match = document.cookie.match(new RegExp('(^| )' + (key as string) + '=([^;]+)'))\n if (match) {\n value = decodeURIComponent(match[2])\n }\n } else {\n value = this.data.get(key as any)\n }\n\n try {\n value = JSON.parse(value as any)\n } catch (error) { }\n\n try {\n value = this.initial[key].parse(value)\n } catch (error) {\n }\n return value\n\n }\n }\n\n sets(state: { [key in keyof IT]?: Infer<IT[key]> }) {\n for (let k in state) {\n this.set(k as keyof IT, state[k as keyof IT]!, true)\n }\n this.hooks.forEach(h => h())\n }\n\n get state() {\n const state: { [key in keyof IT]: Infer<IT[key]> } = {} as any\n for (let k in this.initial) {\n state[k] = this.get(k as keyof IT)\n }\n return state\n }\n\n get errors() {\n const errors = new Map<keyof IT, string>()\n for (let k in this.initial) {\n try {\n // console.log(k, this.get(k as keyof IT));\n\n this.initial[k].parse(this.get(k as keyof IT))\n } catch (error: any) {\n errors.set(k, error.message)\n }\n }\n return errors\n }\n\n}\n\nexport default Bucket"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bucket.mjs","sources":["../src/Bucket.ts"],"sourcesContent":["import { Infer, XVInstanceType } from \"xanv\"\nimport { getCookie, setCookie } from \"./Cookie\"\nexport type StoreType = \"memory\" | \"session\" | \"local\" | \"url\" | \"cookie\"\n\nexport type InitialBucketData = {\n [key: string]: XVInstanceType\n}\n\nexport type BucketOptions = {\n store?: StoreType;\n onChange?: (key: string, value: any) => void\n}\n\n\n\n\n\nclass Bucket<IT extends InitialBucketData> {\n private initial: IT\n private option: BucketOptions\n private hooks: Map<string, Function> = new Map()\n private data: Map<keyof IT, IT[keyof IT]> = new Map()\n readonly changes: Map<keyof IT, boolean> = new Map()\n\n constructor(initial: IT, option?: BucketOptions) {\n this.initial = initial\n this.option = { store: \"memory\", ...option }\n }\n\n subscribe(id: string, hook: Function) {\n if (!id.startsWith(\"rsb_\")) throw new Error(\"Invalid subscription\")\n this.hooks.set(id, hook)\n }\n\n unsubscribe(id: string) {\n this.hooks.delete(id)\n }\n\n set<T extends keyof IT>(key: T, value: Infer<IT[T]>, dispatch = true) {\n if (typeof window !== 'undefined') {\n value = JSON.stringify(value) as any\n if (this.option.store === 'session' || this.option.store === 'local') {\n let storage = this.option.store === \"session\" ? sessionStorage : localStorage\n storage.setItem(key as string, value)\n } else if (this.option.store === 'url') {\n let url = new URL(window.location.href)\n url.searchParams.set(key as string, encodeURIComponent(value))\n window.history.replaceState({}, '', url.toString())\n } else if (this.option.store === 'cookie') {\n setCookie(key as string, value)\n } else {\n this.data.set(key as any, value)\n }\n\n this.changes.set(key as string, true)\n if (this.option.onChange) {\n this.option.onChange(key as string, value)\n }\n\n if (dispatch) {\n this.hooks.forEach(h => h())\n }\n }\n }\n\n get<T extends keyof IT>(key: T) {\n let value;\n\n if (typeof window !== 'undefined') {\n if (this.option.store === 'session' || this.option.store === 'local') {\n let storage = this.option.store === \"session\" ? sessionStorage : localStorage\n value = storage.getItem(key as string)!\n } else if (this.option.store === 'url') {\n let url = new URL(window.location.href)\n let storedValue = url.searchParams.get(key as string)!\n value = decodeURIComponent(storedValue)\n } else if (this.option.store === 'cookie') {\n value = getCookie(key as string)\n } else {\n value = this.data.get(key as any)\n }\n\n try {\n value = JSON.parse(value as any)\n } catch (error) { }\n }\n\n try {\n value = this.initial[key].parse(value)\n } catch (error) {\n }\n return value\n }\n\n sets(state: { [key in keyof IT]?: Infer<IT[key]> }) {\n for (let k in state) {\n this.set(k as keyof IT, state[k as keyof IT]!, true)\n }\n this.hooks.forEach(h => h())\n }\n\n get state() {\n const state: { [key in keyof IT]: Infer<IT[key]> } = {} as any\n for (let k in this.initial) {\n state[k] = this.get(k as keyof IT)\n }\n return state\n }\n\n get errors() {\n const errors = new Map<keyof IT, string>()\n for (let k in this.initial) {\n try {\n // console.log(k, this.get(k as keyof IT));\n\n this.initial[k].parse(this.get(k as keyof IT))\n } catch (error: any) {\n errors.set(k, error.message)\n }\n }\n return errors\n }\n\n}\n\nexport default Bucket"],"names":[],"mappings":"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"}
package/Cookie.js ADDED
@@ -0,0 +1,16 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});function setCookie(key, value, days = 7) {
2
+ const expires = new Date(Date.now() + days * 864e5).toUTCString();
3
+ document.cookie =
4
+ `${encodeURIComponent(key)}=${encodeURIComponent(value)}; ` +
5
+ `expires=${expires}; path=/; SameSite=Lax`;
6
+ }
7
+ function getCookie(key) {
8
+ const name = encodeURIComponent(key) + "=";
9
+ const parts = document.cookie.split("; ");
10
+ for (const part of parts) {
11
+ if (part.startsWith(name)) {
12
+ return decodeURIComponent(part.slice(name.length));
13
+ }
14
+ }
15
+ return null;
16
+ }exports.getCookie=getCookie;exports.setCookie=setCookie;//# sourceMappingURL=Cookie.js.map
package/Cookie.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cookie.js","sources":["../src/Cookie.ts"],"sourcesContent":["export function setCookie(\n key: string,\n value: string,\n days = 7\n) {\n const expires = new Date(Date.now() + days * 864e5).toUTCString();\n document.cookie =\n `${encodeURIComponent(key)}=${encodeURIComponent(value)}; ` +\n `expires=${expires}; path=/; SameSite=Lax`;\n}\n\nexport function getCookie(key: string): string | null {\n const name = encodeURIComponent(key) + \"=\";\n const parts = document.cookie.split(\"; \");\n\n for (const part of parts) {\n if (part.startsWith(name)) {\n return decodeURIComponent(part.slice(name.length));\n }\n }\n\n return null;\n}"],"names":[],"mappings":"sEAAM,SAAU,SAAS,CACtB,GAAW,EACX,KAAa,EACb,IAAI,GAAG,CAAC,EAAA;AAER,IAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE;AACjE,IAAA,QAAQ,CAAC,MAAM;QACZ,CAAA,EAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAA,EAAA,CAAI;YAC3D,CAAA,QAAA,EAAW,OAAO,wBAAwB;AAChD;AAEM,SAAU,SAAS,CAAC,GAAW,EAAA;IAClC,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,GAAG;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAEzC,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD;IACH;AAEA,IAAA,OAAO,IAAI;AACd"}
package/Cookie.mjs ADDED
@@ -0,0 +1,16 @@
1
+ function setCookie(key, value, days = 7) {
2
+ const expires = new Date(Date.now() + days * 864e5).toUTCString();
3
+ document.cookie =
4
+ `${encodeURIComponent(key)}=${encodeURIComponent(value)}; ` +
5
+ `expires=${expires}; path=/; SameSite=Lax`;
6
+ }
7
+ function getCookie(key) {
8
+ const name = encodeURIComponent(key) + "=";
9
+ const parts = document.cookie.split("; ");
10
+ for (const part of parts) {
11
+ if (part.startsWith(name)) {
12
+ return decodeURIComponent(part.slice(name.length));
13
+ }
14
+ }
15
+ return null;
16
+ }export{getCookie,setCookie};//# sourceMappingURL=Cookie.mjs.map
package/Cookie.mjs.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cookie.mjs","sources":["../src/Cookie.ts"],"sourcesContent":["export function setCookie(\n key: string,\n value: string,\n days = 7\n) {\n const expires = new Date(Date.now() + days * 864e5).toUTCString();\n document.cookie =\n `${encodeURIComponent(key)}=${encodeURIComponent(value)}; ` +\n `expires=${expires}; path=/; SameSite=Lax`;\n}\n\nexport function getCookie(key: string): string | null {\n const name = encodeURIComponent(key) + \"=\";\n const parts = document.cookie.split(\"; \");\n\n for (const part of parts) {\n if (part.startsWith(name)) {\n return decodeURIComponent(part.slice(name.length));\n }\n }\n\n return null;\n}"],"names":[],"mappings":"AAAM,SAAU,SAAS,CACtB,GAAW,EACX,KAAa,EACb,IAAI,GAAG,CAAC,EAAA;AAER,IAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE;AACjE,IAAA,QAAQ,CAAC,MAAM;QACZ,CAAA,EAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAA,EAAA,CAAI;YAC3D,CAAA,QAAA,EAAW,OAAO,wBAAwB;AAChD;AAEM,SAAU,SAAS,CAAC,GAAW,EAAA;IAClC,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,GAAG;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAEzC,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD;IACH;AAEA,IAAA,OAAO,IAAI;AACd"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.2.5",
2
+ "version": "1.2.6",
3
3
  "name": "react-state-bucket",
4
4
  "author": "Naxrul Ahmed",
5
5
  "license": "MIT",