@gaddario98/react-core 2.0.9 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,190 +1,8 @@
1
- 'use strict';var compilerRuntime=require('react/compiler-runtime'),jotai=require('jotai'),utils=require('jotai/utils'),fflate=require('fflate');const RAW_PREFIX = 'storage:raw:';
2
- const DEFLATE_PREFIX = 'storage:deflate:v1:';
3
- const isProbablyJson = value => {
4
- if (!value) return false;
5
- const c = value.charCodeAt(0);
6
- // { [ " digits, t/f/n (true/false/null)
7
- return c === 123 || c === 91 || c === 34 || c >= 48 && c <= 57 || c === 45 || c === 116 || c === 102 || c === 110;
8
- };
9
- const u8ToBase64 = bytes => {
10
- let binary = '';
11
- const chunkSize = 0x8000;
12
- for (let i = 0; i < bytes.length; i += chunkSize) {
13
- binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize));
14
- }
15
- return btoa(binary);
16
- };
17
- const base64ToU8 = base64 => {
18
- const binary = atob(base64);
19
- const bytes = new Uint8Array(binary.length);
20
- for (let i = 0; i < binary.length; i++) {
21
- bytes[i] = binary.charCodeAt(i);
22
- }
23
- return bytes;
24
- };
25
- const createCompressedStorage = (base, options = {}) => {
26
- const {
27
- minSizeToCompress = 1024,
28
- deflateLevel = 1,
29
- writeDebounceMs = 50
30
- } = options;
31
- const pendingWrites = new Map();
32
- let flushTimer;
33
- let lifecycleHooksInstalled = false;
34
- const flush = () => {
35
- flushTimer = undefined;
36
- for (const [key, value] of pendingWrites) {
37
- try {
38
- if (value.length < minSizeToCompress) {
39
- base.setItem(key, RAW_PREFIX + value);
40
- continue;
41
- }
42
- const input = fflate.strToU8(value);
43
- const compressed = fflate.deflateSync(input, {
44
- level: deflateLevel
45
- });
46
- base.setItem(key, DEFLATE_PREFIX + u8ToBase64(compressed));
47
- } catch (error) {
48
- console.error('Error setting item:', error);
49
- try {
50
- base.setItem(key, RAW_PREFIX + value);
51
- } catch (_a) {
52
- // ignore
53
- }
54
- }
55
- }
56
- pendingWrites.clear();
57
- };
58
- const scheduleFlush = () => {
59
- if (flushTimer != null) return;
60
- if (!lifecycleHooksInstalled && typeof window !== 'undefined') {
61
- lifecycleHooksInstalled = true;
62
- window.addEventListener('beforeunload', flush);
63
- document.addEventListener('visibilitychange', () => {
64
- if (document.visibilityState === 'hidden') flush();
65
- });
66
- }
67
- flushTimer = globalThis.setTimeout(flush, writeDebounceMs);
68
- };
69
- return {
70
- getItem: key => {
71
- try {
72
- const stored = base.getItem(key);
73
- if (!stored) return null;
74
- if (stored.startsWith(RAW_PREFIX)) {
75
- return stored.slice(RAW_PREFIX.length);
76
- }
77
- if (stored.startsWith(DEFLATE_PREFIX)) {
78
- const b64 = stored.slice(DEFLATE_PREFIX.length);
79
- const bytes = base64ToU8(b64);
80
- const decompressed = fflate.inflateSync(bytes);
81
- return fflate.strFromU8(decompressed);
82
- }
83
- // Back-compat: older versions may have stored raw JSON without any prefix
84
- if (isProbablyJson(stored)) return stored;
85
- return null;
86
- } catch (error) {
87
- console.error('Error getting item:', error);
88
- return null;
89
- }
90
- },
91
- setItem: (key, value) => {
92
- try {
93
- // Some upstream serializers can return `undefined` (e.g. JSON.stringify(undefined)).
94
- const rawValue = value;
95
- if (rawValue == null) {
96
- pendingWrites.delete(key);
97
- base.removeItem(key);
98
- return;
99
- }
100
- const stringValue = typeof rawValue === 'string' ? rawValue : String(rawValue);
101
- pendingWrites.set(key, stringValue);
102
- scheduleFlush();
103
- } catch (error) {
104
- console.error('Error setting item:', error);
105
- }
106
- },
107
- removeItem: key => {
108
- try {
109
- pendingWrites.delete(key);
110
- base.removeItem(key);
111
- } catch (error) {
112
- console.error('Error removing item:', error);
113
- }
114
- }
115
- };
116
- };
117
- const baseStorage = {
118
- getItem: key => {
119
- if (typeof localStorage === 'undefined') return null;
120
- return localStorage.getItem(key);
121
- },
122
- setItem: (key, value) => {
123
- if (typeof localStorage === 'undefined') return;
124
- localStorage.setItem(key, value);
125
- },
126
- removeItem: key => {
127
- if (typeof localStorage === 'undefined') return;
128
- localStorage.removeItem(key);
129
- }
130
- };
131
- let storage = createCompressedStorage(baseStorage);// Implementazione
132
- function atomStateGenerator({
133
- key,
134
- defaultValue,
135
- persist = false,
136
- storage: customStorage
137
- }) {
138
- const resolvedStorage = customStorage || storage;
139
- // Usa atomWithStorage solo se persist è true, altrimenti atom normale
140
- const jotaiAtom = persist ? utils.atomWithStorage(key, defaultValue, utils.createJSONStorage(() => resolvedStorage)) : jotai.atom(defaultValue);
141
- const useValue = () => {
142
- const [value] = jotai.useAtom(jotaiAtom);
143
- return value;
144
- };
145
- const useState = () => {
146
- const $ = compilerRuntime.c(3);
147
- const [value, setValue] = jotai.useAtom(jotaiAtom);
148
- let t0;
149
- if ($[0] !== setValue || $[1] !== value) {
150
- t0 = [value, setValue];
151
- $[0] = setValue;
152
- $[1] = value;
153
- $[2] = t0;
154
- } else {
155
- t0 = $[2];
156
- }
157
- return t0;
158
- };
159
- const useReset = () => {
160
- const $ = compilerRuntime.c(2);
161
- const [, setValue] = jotai.useAtom(jotaiAtom);
162
- let t0;
163
- if ($[0] !== setValue) {
164
- t0 = () => {
165
- setValue(defaultValue);
166
- if (persist) {
167
- resolvedStorage.removeItem(key);
168
- }
169
- };
170
- $[0] = setValue;
171
- $[1] = t0;
172
- } else {
173
- t0 = $[1];
174
- }
175
- return t0;
176
- };
177
- return {
178
- atom: jotaiAtom,
179
- useValue,
180
- useState,
181
- useReset
182
- };
183
- }const {
1
+ 'use strict';var index_ts=require('../state/index.js');const {
184
2
  atom: authAtom,
185
3
  useValue: useAuthValue,
186
4
  useState: useAuthState
187
- } = atomStateGenerator({
5
+ } = index_ts.atomStateGenerator({
188
6
  defaultValue: null,
189
7
  key: "reactAuthStore",
190
8
  persist: true
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../state/storage.ts","../../state/atomStateGenerator.ts","../../auth/state.ts"],"sourcesContent":["import { deflateSync, inflateSync, strFromU8, strToU8 } from 'fflate'\n\nexport type SyncStorage = Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>\n\nconst RAW_PREFIX = 'storage:raw:'\nconst DEFLATE_PREFIX = 'storage:deflate:v1:'\n\nconst isProbablyJson = (value: string) => {\n if (!value) return false\n const c = value.charCodeAt(0)\n // { [ \" digits, t/f/n (true/false/null)\n return (\n c === 123 ||\n c === 91 ||\n c === 34 ||\n (c >= 48 && c <= 57) ||\n c === 45 ||\n c === 116 ||\n c === 102 ||\n c === 110\n )\n}\n\nconst u8ToBase64 = (bytes: Uint8Array) => {\n let binary = ''\n const chunkSize = 0x8000\n for (let i = 0; i < bytes.length; i += chunkSize) {\n binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize))\n }\n return btoa(binary)\n}\n\nconst base64ToU8 = (base64: string) => {\n const binary = atob(base64)\n const bytes = new Uint8Array(binary.length)\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i)\n }\n return bytes\n}\n\ntype CompressedStorageOptions = {\n minSizeToCompress?: number\n deflateLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9\n writeDebounceMs?: number\n}\n\nconst createCompressedStorage = (\n base: SyncStorage,\n options: CompressedStorageOptions = {},\n): SyncStorage => {\n const {\n minSizeToCompress = 1024,\n deflateLevel = 1,\n writeDebounceMs = 50,\n } = options\n\n const pendingWrites = new Map<string, string>()\n let flushTimer: number | undefined\n let lifecycleHooksInstalled = false\n\n const flush = () => {\n flushTimer = undefined\n for (const [key, value] of pendingWrites) {\n try {\n if (value.length < minSizeToCompress) {\n base.setItem(key, RAW_PREFIX + value)\n continue\n }\n\n const input = strToU8(value)\n const compressed = deflateSync(input, { level: deflateLevel })\n base.setItem(key, DEFLATE_PREFIX + u8ToBase64(compressed))\n } catch (error) {\n console.error('Error setting item:', error)\n try {\n base.setItem(key, RAW_PREFIX + value)\n } catch {\n // ignore\n }\n }\n }\n pendingWrites.clear()\n }\n\n const scheduleFlush = () => {\n if (flushTimer != null) return\n if (!lifecycleHooksInstalled && typeof window !== 'undefined') {\n lifecycleHooksInstalled = true\n window.addEventListener('beforeunload', flush)\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'hidden') flush()\n })\n }\n flushTimer = globalThis.setTimeout(\n flush,\n writeDebounceMs,\n ) as unknown as number\n }\n\n return {\n getItem: (key: string): string | null => {\n try {\n const stored = base.getItem(key)\n if (!stored) return null\n\n if (stored.startsWith(RAW_PREFIX)) {\n return stored.slice(RAW_PREFIX.length)\n }\n\n if (stored.startsWith(DEFLATE_PREFIX)) {\n const b64 = stored.slice(DEFLATE_PREFIX.length)\n const bytes = base64ToU8(b64)\n const decompressed = inflateSync(bytes)\n return strFromU8(decompressed)\n }\n\n // Back-compat: older versions may have stored raw JSON without any prefix\n if (isProbablyJson(stored)) return stored\n\n return null\n } catch (error) {\n console.error('Error getting item:', error)\n return null\n }\n },\n\n setItem: (key: string, value: string) => {\n try {\n // Some upstream serializers can return `undefined` (e.g. JSON.stringify(undefined)).\n const rawValue = value as unknown as string | null | undefined\n if (rawValue == null) {\n pendingWrites.delete(key)\n base.removeItem(key)\n return\n }\n\n const stringValue = typeof rawValue === 'string' ? rawValue : String(rawValue)\n pendingWrites.set(key, stringValue)\n scheduleFlush()\n } catch (error) {\n console.error('Error setting item:', error)\n }\n },\n\n removeItem: (key: string) => {\n try {\n pendingWrites.delete(key)\n base.removeItem(key)\n } catch (error) {\n console.error('Error removing item:', error)\n }\n },\n }\n}\n\nconst baseStorage: SyncStorage = {\n getItem: (key) => {\n if (typeof localStorage === 'undefined') return null\n return localStorage.getItem(key)\n },\n setItem: (key, value) => {\n if (typeof localStorage === 'undefined') return\n localStorage.setItem(key, value)\n },\n removeItem: (key) => {\n if (typeof localStorage === 'undefined') return\n localStorage.removeItem(key)\n },\n}\n\nexport let storage: SyncStorage = createCompressedStorage(baseStorage)\n\nexport const setCustomStorage = (newStorage: SyncStorage) => {\n storage = newStorage\n}\n","import { atom, useAtom } from 'jotai'\nimport { atomWithStorage, createJSONStorage } from 'jotai/utils'\nimport { storage } from './storage'\nimport type { PrimitiveAtom } from 'jotai'\n\nexport type { PrimitiveAtom } from 'jotai'\n\nexport type AtomGeneratorOptions<T> = {\n key: string\n defaultValue: T\n persist?: boolean\n storage?: Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>\n}\n\nexport type AtomState<T> = {\n atom: PrimitiveAtom<T>\n useValue: () => T\n useState: () => [T, (value: T) => void]\n useReset: () => () => void\n}\n\n// Overload per persist = true\nexport function atomStateGenerator<T>(\n options: AtomGeneratorOptions<T> & { persist: true },\n): AtomState<T>\n\n// Overload per persist = false o undefined\nexport function atomStateGenerator<T>(\n options: AtomGeneratorOptions<T> & { persist?: false },\n): AtomState<T>\n\n// Implementazione\nexport function atomStateGenerator<T>({\n key,\n defaultValue,\n persist = false,\n storage: customStorage,\n}: AtomGeneratorOptions<T>): AtomState<T> {\n const resolvedStorage = customStorage || storage\n\n // Usa atomWithStorage solo se persist è true, altrimenti atom normale\n const jotaiAtom = persist\n ? atomWithStorage<T>(\n key,\n defaultValue,\n createJSONStorage<T>(() => resolvedStorage),\n )\n : atom<T>(defaultValue)\n\n const useValue = () => {\n const [value] = useAtom(jotaiAtom as PrimitiveAtom<T>)\n return value\n }\n\n const useState = () => {\n const [value, setValue] = useAtom(jotaiAtom as PrimitiveAtom<T>)\n return [value, setValue] as [T, (value: T) => void]\n }\n\n const useReset = () => {\n const [, setValue] = useAtom(jotaiAtom as PrimitiveAtom<T>)\n return () => {\n setValue(defaultValue)\n // Rimuovi dallo storage solo se era persistente\n if (persist) {\n resolvedStorage.removeItem(key)\n }\n }\n }\n\n return {\n atom: jotaiAtom as PrimitiveAtom<T>,\n useValue,\n useState,\n useReset,\n }\n}\n","import { atomStateGenerator } from \"../state\";\nimport type { AuthState } from \"./types\";\n\nconst {\n atom: authAtom,\n useValue: useAuthValue,\n useState: useAuthState,\n} = atomStateGenerator<AuthState | null>({\n defaultValue: null,\n key: \"reactAuthStore\",\n persist: true,\n});\nexport { authAtom, useAuthValue, useAuthState };\n"],"names":["RAW_PREFIX","DEFLATE_PREFIX","isProbablyJson","value","c","charCodeAt","u8ToBase64","bytes","binary","chunkSize","i","length","String","fromCharCode","subarray","btoa","base64ToU8","base64","atob","Uint8Array","createCompressedStorage","base","options","minSizeToCompress","deflateLevel","writeDebounceMs","pendingWrites","Map","flushTimer","lifecycleHooksInstalled","flush","undefined","key","setItem","input","strToU8","compressed","deflateSync","level","error","console","_a","clear","scheduleFlush","window","addEventListener","document","visibilityState","globalThis","setTimeout","getItem","stored","startsWith","slice","b64","decompressed","inflateSync","strFromU8","rawValue","delete","removeItem","stringValue","set","baseStorage","localStorage","storage","atomStateGenerator","defaultValue","persist","customStorage","resolvedStorage","jotaiAtom","atomWithStorage","createJSONStorage","atom","useValue","useAtom","useState","$","_c","setValue","t0","useReset","authAtom","useAuthValue","useAuthState"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../auth/state.ts"],"sourcesContent":["import { atomStateGenerator } from \"../state\";\nimport type { AuthState } from \"./types\";\n\nconst {\n atom: authAtom,\n useValue: useAuthValue,\n useState: useAuthState,\n} = atomStateGenerator<AuthState | null>({\n defaultValue: null,\n key: \"reactAuthStore\",\n persist: true,\n});\nexport { authAtom, useAuthValue, useAuthState };\n"],"names":["atom","authAtom","useValue","useAuthValue","useState","useAuthState","atomStateGenerator","defaultValue","key","persist"],"mappings":"uDAGA,MAAM;AACJA,EAAAA,IAAI,EAAEC,QAAQ;AACdC,EAAAA,QAAQ,EAAEC,YAAY;AACtBC,EAAAA,QAAQ,EAAEC;AAAY,CACvB,GAAGC,2BAAkB,CAAmB;AACvCC,EAAAA,YAAY,EAAE,IAAI;AAClBC,EAAAA,GAAG,EAAE,gBAAgB;AACrBC,EAAAA,OAAO,EAAE;AACV,CAAA"}
@@ -1,186 +1,4 @@
1
- import {c}from'react/compiler-runtime';import {atom,useAtom}from'jotai';import {atomWithStorage,createJSONStorage}from'jotai/utils';import {inflateSync,strFromU8,strToU8,deflateSync}from'fflate';const RAW_PREFIX = 'storage:raw:';
2
- const DEFLATE_PREFIX = 'storage:deflate:v1:';
3
- const isProbablyJson = value => {
4
- if (!value) return false;
5
- const c = value.charCodeAt(0);
6
- // { [ " digits, t/f/n (true/false/null)
7
- return c === 123 || c === 91 || c === 34 || c >= 48 && c <= 57 || c === 45 || c === 116 || c === 102 || c === 110;
8
- };
9
- const u8ToBase64 = bytes => {
10
- let binary = '';
11
- const chunkSize = 0x8000;
12
- for (let i = 0; i < bytes.length; i += chunkSize) {
13
- binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize));
14
- }
15
- return btoa(binary);
16
- };
17
- const base64ToU8 = base64 => {
18
- const binary = atob(base64);
19
- const bytes = new Uint8Array(binary.length);
20
- for (let i = 0; i < binary.length; i++) {
21
- bytes[i] = binary.charCodeAt(i);
22
- }
23
- return bytes;
24
- };
25
- const createCompressedStorage = (base, options = {}) => {
26
- const {
27
- minSizeToCompress = 1024,
28
- deflateLevel = 1,
29
- writeDebounceMs = 50
30
- } = options;
31
- const pendingWrites = new Map();
32
- let flushTimer;
33
- let lifecycleHooksInstalled = false;
34
- const flush = () => {
35
- flushTimer = undefined;
36
- for (const [key, value] of pendingWrites) {
37
- try {
38
- if (value.length < minSizeToCompress) {
39
- base.setItem(key, RAW_PREFIX + value);
40
- continue;
41
- }
42
- const input = strToU8(value);
43
- const compressed = deflateSync(input, {
44
- level: deflateLevel
45
- });
46
- base.setItem(key, DEFLATE_PREFIX + u8ToBase64(compressed));
47
- } catch (error) {
48
- console.error('Error setting item:', error);
49
- try {
50
- base.setItem(key, RAW_PREFIX + value);
51
- } catch (_a) {
52
- // ignore
53
- }
54
- }
55
- }
56
- pendingWrites.clear();
57
- };
58
- const scheduleFlush = () => {
59
- if (flushTimer != null) return;
60
- if (!lifecycleHooksInstalled && typeof window !== 'undefined') {
61
- lifecycleHooksInstalled = true;
62
- window.addEventListener('beforeunload', flush);
63
- document.addEventListener('visibilitychange', () => {
64
- if (document.visibilityState === 'hidden') flush();
65
- });
66
- }
67
- flushTimer = globalThis.setTimeout(flush, writeDebounceMs);
68
- };
69
- return {
70
- getItem: key => {
71
- try {
72
- const stored = base.getItem(key);
73
- if (!stored) return null;
74
- if (stored.startsWith(RAW_PREFIX)) {
75
- return stored.slice(RAW_PREFIX.length);
76
- }
77
- if (stored.startsWith(DEFLATE_PREFIX)) {
78
- const b64 = stored.slice(DEFLATE_PREFIX.length);
79
- const bytes = base64ToU8(b64);
80
- const decompressed = inflateSync(bytes);
81
- return strFromU8(decompressed);
82
- }
83
- // Back-compat: older versions may have stored raw JSON without any prefix
84
- if (isProbablyJson(stored)) return stored;
85
- return null;
86
- } catch (error) {
87
- console.error('Error getting item:', error);
88
- return null;
89
- }
90
- },
91
- setItem: (key, value) => {
92
- try {
93
- // Some upstream serializers can return `undefined` (e.g. JSON.stringify(undefined)).
94
- const rawValue = value;
95
- if (rawValue == null) {
96
- pendingWrites.delete(key);
97
- base.removeItem(key);
98
- return;
99
- }
100
- const stringValue = typeof rawValue === 'string' ? rawValue : String(rawValue);
101
- pendingWrites.set(key, stringValue);
102
- scheduleFlush();
103
- } catch (error) {
104
- console.error('Error setting item:', error);
105
- }
106
- },
107
- removeItem: key => {
108
- try {
109
- pendingWrites.delete(key);
110
- base.removeItem(key);
111
- } catch (error) {
112
- console.error('Error removing item:', error);
113
- }
114
- }
115
- };
116
- };
117
- const baseStorage = {
118
- getItem: key => {
119
- if (typeof localStorage === 'undefined') return null;
120
- return localStorage.getItem(key);
121
- },
122
- setItem: (key, value) => {
123
- if (typeof localStorage === 'undefined') return;
124
- localStorage.setItem(key, value);
125
- },
126
- removeItem: key => {
127
- if (typeof localStorage === 'undefined') return;
128
- localStorage.removeItem(key);
129
- }
130
- };
131
- let storage = createCompressedStorage(baseStorage);// Implementazione
132
- function atomStateGenerator({
133
- key,
134
- defaultValue,
135
- persist = false,
136
- storage: customStorage
137
- }) {
138
- const resolvedStorage = customStorage || storage;
139
- // Usa atomWithStorage solo se persist è true, altrimenti atom normale
140
- const jotaiAtom = persist ? atomWithStorage(key, defaultValue, createJSONStorage(() => resolvedStorage)) : atom(defaultValue);
141
- const useValue = () => {
142
- const [value] = useAtom(jotaiAtom);
143
- return value;
144
- };
145
- const useState = () => {
146
- const $ = c(3);
147
- const [value, setValue] = useAtom(jotaiAtom);
148
- let t0;
149
- if ($[0] !== setValue || $[1] !== value) {
150
- t0 = [value, setValue];
151
- $[0] = setValue;
152
- $[1] = value;
153
- $[2] = t0;
154
- } else {
155
- t0 = $[2];
156
- }
157
- return t0;
158
- };
159
- const useReset = () => {
160
- const $ = c(2);
161
- const [, setValue] = useAtom(jotaiAtom);
162
- let t0;
163
- if ($[0] !== setValue) {
164
- t0 = () => {
165
- setValue(defaultValue);
166
- if (persist) {
167
- resolvedStorage.removeItem(key);
168
- }
169
- };
170
- $[0] = setValue;
171
- $[1] = t0;
172
- } else {
173
- t0 = $[1];
174
- }
175
- return t0;
176
- };
177
- return {
178
- atom: jotaiAtom,
179
- useValue,
180
- useState,
181
- useReset
182
- };
183
- }const {
1
+ import {atomStateGenerator}from'../state/index.mjs';const {
184
2
  atom: authAtom,
185
3
  useValue: useAuthValue,
186
4
  useState: useAuthState
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../state/storage.ts","../../state/atomStateGenerator.ts","../../auth/state.ts"],"sourcesContent":["import { deflateSync, inflateSync, strFromU8, strToU8 } from 'fflate'\n\nexport type SyncStorage = Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>\n\nconst RAW_PREFIX = 'storage:raw:'\nconst DEFLATE_PREFIX = 'storage:deflate:v1:'\n\nconst isProbablyJson = (value: string) => {\n if (!value) return false\n const c = value.charCodeAt(0)\n // { [ \" digits, t/f/n (true/false/null)\n return (\n c === 123 ||\n c === 91 ||\n c === 34 ||\n (c >= 48 && c <= 57) ||\n c === 45 ||\n c === 116 ||\n c === 102 ||\n c === 110\n )\n}\n\nconst u8ToBase64 = (bytes: Uint8Array) => {\n let binary = ''\n const chunkSize = 0x8000\n for (let i = 0; i < bytes.length; i += chunkSize) {\n binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize))\n }\n return btoa(binary)\n}\n\nconst base64ToU8 = (base64: string) => {\n const binary = atob(base64)\n const bytes = new Uint8Array(binary.length)\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i)\n }\n return bytes\n}\n\ntype CompressedStorageOptions = {\n minSizeToCompress?: number\n deflateLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9\n writeDebounceMs?: number\n}\n\nconst createCompressedStorage = (\n base: SyncStorage,\n options: CompressedStorageOptions = {},\n): SyncStorage => {\n const {\n minSizeToCompress = 1024,\n deflateLevel = 1,\n writeDebounceMs = 50,\n } = options\n\n const pendingWrites = new Map<string, string>()\n let flushTimer: number | undefined\n let lifecycleHooksInstalled = false\n\n const flush = () => {\n flushTimer = undefined\n for (const [key, value] of pendingWrites) {\n try {\n if (value.length < minSizeToCompress) {\n base.setItem(key, RAW_PREFIX + value)\n continue\n }\n\n const input = strToU8(value)\n const compressed = deflateSync(input, { level: deflateLevel })\n base.setItem(key, DEFLATE_PREFIX + u8ToBase64(compressed))\n } catch (error) {\n console.error('Error setting item:', error)\n try {\n base.setItem(key, RAW_PREFIX + value)\n } catch {\n // ignore\n }\n }\n }\n pendingWrites.clear()\n }\n\n const scheduleFlush = () => {\n if (flushTimer != null) return\n if (!lifecycleHooksInstalled && typeof window !== 'undefined') {\n lifecycleHooksInstalled = true\n window.addEventListener('beforeunload', flush)\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'hidden') flush()\n })\n }\n flushTimer = globalThis.setTimeout(\n flush,\n writeDebounceMs,\n ) as unknown as number\n }\n\n return {\n getItem: (key: string): string | null => {\n try {\n const stored = base.getItem(key)\n if (!stored) return null\n\n if (stored.startsWith(RAW_PREFIX)) {\n return stored.slice(RAW_PREFIX.length)\n }\n\n if (stored.startsWith(DEFLATE_PREFIX)) {\n const b64 = stored.slice(DEFLATE_PREFIX.length)\n const bytes = base64ToU8(b64)\n const decompressed = inflateSync(bytes)\n return strFromU8(decompressed)\n }\n\n // Back-compat: older versions may have stored raw JSON without any prefix\n if (isProbablyJson(stored)) return stored\n\n return null\n } catch (error) {\n console.error('Error getting item:', error)\n return null\n }\n },\n\n setItem: (key: string, value: string) => {\n try {\n // Some upstream serializers can return `undefined` (e.g. JSON.stringify(undefined)).\n const rawValue = value as unknown as string | null | undefined\n if (rawValue == null) {\n pendingWrites.delete(key)\n base.removeItem(key)\n return\n }\n\n const stringValue = typeof rawValue === 'string' ? rawValue : String(rawValue)\n pendingWrites.set(key, stringValue)\n scheduleFlush()\n } catch (error) {\n console.error('Error setting item:', error)\n }\n },\n\n removeItem: (key: string) => {\n try {\n pendingWrites.delete(key)\n base.removeItem(key)\n } catch (error) {\n console.error('Error removing item:', error)\n }\n },\n }\n}\n\nconst baseStorage: SyncStorage = {\n getItem: (key) => {\n if (typeof localStorage === 'undefined') return null\n return localStorage.getItem(key)\n },\n setItem: (key, value) => {\n if (typeof localStorage === 'undefined') return\n localStorage.setItem(key, value)\n },\n removeItem: (key) => {\n if (typeof localStorage === 'undefined') return\n localStorage.removeItem(key)\n },\n}\n\nexport let storage: SyncStorage = createCompressedStorage(baseStorage)\n\nexport const setCustomStorage = (newStorage: SyncStorage) => {\n storage = newStorage\n}\n","import { atom, useAtom } from 'jotai'\nimport { atomWithStorage, createJSONStorage } from 'jotai/utils'\nimport { storage } from './storage'\nimport type { PrimitiveAtom } from 'jotai'\n\nexport type { PrimitiveAtom } from 'jotai'\n\nexport type AtomGeneratorOptions<T> = {\n key: string\n defaultValue: T\n persist?: boolean\n storage?: Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>\n}\n\nexport type AtomState<T> = {\n atom: PrimitiveAtom<T>\n useValue: () => T\n useState: () => [T, (value: T) => void]\n useReset: () => () => void\n}\n\n// Overload per persist = true\nexport function atomStateGenerator<T>(\n options: AtomGeneratorOptions<T> & { persist: true },\n): AtomState<T>\n\n// Overload per persist = false o undefined\nexport function atomStateGenerator<T>(\n options: AtomGeneratorOptions<T> & { persist?: false },\n): AtomState<T>\n\n// Implementazione\nexport function atomStateGenerator<T>({\n key,\n defaultValue,\n persist = false,\n storage: customStorage,\n}: AtomGeneratorOptions<T>): AtomState<T> {\n const resolvedStorage = customStorage || storage\n\n // Usa atomWithStorage solo se persist è true, altrimenti atom normale\n const jotaiAtom = persist\n ? atomWithStorage<T>(\n key,\n defaultValue,\n createJSONStorage<T>(() => resolvedStorage),\n )\n : atom<T>(defaultValue)\n\n const useValue = () => {\n const [value] = useAtom(jotaiAtom as PrimitiveAtom<T>)\n return value\n }\n\n const useState = () => {\n const [value, setValue] = useAtom(jotaiAtom as PrimitiveAtom<T>)\n return [value, setValue] as [T, (value: T) => void]\n }\n\n const useReset = () => {\n const [, setValue] = useAtom(jotaiAtom as PrimitiveAtom<T>)\n return () => {\n setValue(defaultValue)\n // Rimuovi dallo storage solo se era persistente\n if (persist) {\n resolvedStorage.removeItem(key)\n }\n }\n }\n\n return {\n atom: jotaiAtom as PrimitiveAtom<T>,\n useValue,\n useState,\n useReset,\n }\n}\n","import { atomStateGenerator } from \"../state\";\nimport type { AuthState } from \"./types\";\n\nconst {\n atom: authAtom,\n useValue: useAuthValue,\n useState: useAuthState,\n} = atomStateGenerator<AuthState | null>({\n defaultValue: null,\n key: \"reactAuthStore\",\n persist: true,\n});\nexport { authAtom, useAuthValue, useAuthState };\n"],"names":["RAW_PREFIX","DEFLATE_PREFIX","isProbablyJson","value","c","charCodeAt","u8ToBase64","bytes","binary","chunkSize","i","length","String","fromCharCode","subarray","btoa","base64ToU8","base64","atob","Uint8Array","createCompressedStorage","base","options","minSizeToCompress","deflateLevel","writeDebounceMs","pendingWrites","Map","flushTimer","lifecycleHooksInstalled","flush","undefined","key","setItem","input","strToU8","compressed","deflateSync","level","error","console","_a","clear","scheduleFlush","window","addEventListener","document","visibilityState","globalThis","setTimeout","getItem","stored","startsWith","slice","b64","decompressed","inflateSync","strFromU8","rawValue","delete","removeItem","stringValue","set","baseStorage","localStorage","storage","atomStateGenerator","defaultValue","persist","customStorage","resolvedStorage","jotaiAtom","atomWithStorage","createJSONStorage","atom","useValue","useAtom","useState","$","_c","setValue","t0","useReset","authAtom","useAuthValue","useAuthState"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../auth/state.ts"],"sourcesContent":["import { atomStateGenerator } from \"../state\";\nimport type { AuthState } from \"./types\";\n\nconst {\n atom: authAtom,\n useValue: useAuthValue,\n useState: useAuthState,\n} = atomStateGenerator<AuthState | null>({\n defaultValue: null,\n key: \"reactAuthStore\",\n persist: true,\n});\nexport { authAtom, useAuthValue, useAuthState };\n"],"names":["atom","authAtom","useValue","useAuthValue","useState","useAuthState","atomStateGenerator","defaultValue","key","persist"],"mappings":"oDAGA,MAAM;AACJA,EAAAA,IAAI,EAAEC,QAAQ;AACdC,EAAAA,QAAQ,EAAEC,YAAY;AACtBC,EAAAA,QAAQ,EAAEC;AAAY,CACvB,GAAGC,kBAAkB,CAAmB;AACvCC,EAAAA,YAAY,EAAE,IAAI;AAClBC,EAAAA,GAAG,EAAE,gBAAgB;AACrBC,EAAAA,OAAO,EAAE;AACV,CAAA"}
@@ -1,186 +1,4 @@
1
- 'use strict';var compilerRuntime=require('react/compiler-runtime'),jotai=require('jotai'),utils=require('jotai/utils'),fflate=require('fflate'),jsxRuntime=require('react/jsx-runtime'),react=require('react'),equal=require('fast-deep-equal'),reactForm=require('@tanstack/react-form');const RAW_PREFIX = 'storage:raw:';
2
- const DEFLATE_PREFIX = 'storage:deflate:v1:';
3
- const isProbablyJson = value => {
4
- if (!value) return false;
5
- const c = value.charCodeAt(0);
6
- // { [ " digits, t/f/n (true/false/null)
7
- return c === 123 || c === 91 || c === 34 || c >= 48 && c <= 57 || c === 45 || c === 116 || c === 102 || c === 110;
8
- };
9
- const u8ToBase64 = bytes => {
10
- let binary = '';
11
- const chunkSize = 0x8000;
12
- for (let i = 0; i < bytes.length; i += chunkSize) {
13
- binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize));
14
- }
15
- return btoa(binary);
16
- };
17
- const base64ToU8 = base64 => {
18
- const binary = atob(base64);
19
- const bytes = new Uint8Array(binary.length);
20
- for (let i = 0; i < binary.length; i++) {
21
- bytes[i] = binary.charCodeAt(i);
22
- }
23
- return bytes;
24
- };
25
- const createCompressedStorage = (base, options = {}) => {
26
- const {
27
- minSizeToCompress = 1024,
28
- deflateLevel = 1,
29
- writeDebounceMs = 50
30
- } = options;
31
- const pendingWrites = new Map();
32
- let flushTimer;
33
- let lifecycleHooksInstalled = false;
34
- const flush = () => {
35
- flushTimer = undefined;
36
- for (const [key, value] of pendingWrites) {
37
- try {
38
- if (value.length < minSizeToCompress) {
39
- base.setItem(key, RAW_PREFIX + value);
40
- continue;
41
- }
42
- const input = fflate.strToU8(value);
43
- const compressed = fflate.deflateSync(input, {
44
- level: deflateLevel
45
- });
46
- base.setItem(key, DEFLATE_PREFIX + u8ToBase64(compressed));
47
- } catch (error) {
48
- console.error('Error setting item:', error);
49
- try {
50
- base.setItem(key, RAW_PREFIX + value);
51
- } catch (_a) {
52
- // ignore
53
- }
54
- }
55
- }
56
- pendingWrites.clear();
57
- };
58
- const scheduleFlush = () => {
59
- if (flushTimer != null) return;
60
- if (!lifecycleHooksInstalled && typeof window !== 'undefined') {
61
- lifecycleHooksInstalled = true;
62
- window.addEventListener('beforeunload', flush);
63
- document.addEventListener('visibilitychange', () => {
64
- if (document.visibilityState === 'hidden') flush();
65
- });
66
- }
67
- flushTimer = globalThis.setTimeout(flush, writeDebounceMs);
68
- };
69
- return {
70
- getItem: key => {
71
- try {
72
- const stored = base.getItem(key);
73
- if (!stored) return null;
74
- if (stored.startsWith(RAW_PREFIX)) {
75
- return stored.slice(RAW_PREFIX.length);
76
- }
77
- if (stored.startsWith(DEFLATE_PREFIX)) {
78
- const b64 = stored.slice(DEFLATE_PREFIX.length);
79
- const bytes = base64ToU8(b64);
80
- const decompressed = fflate.inflateSync(bytes);
81
- return fflate.strFromU8(decompressed);
82
- }
83
- // Back-compat: older versions may have stored raw JSON without any prefix
84
- if (isProbablyJson(stored)) return stored;
85
- return null;
86
- } catch (error) {
87
- console.error('Error getting item:', error);
88
- return null;
89
- }
90
- },
91
- setItem: (key, value) => {
92
- try {
93
- // Some upstream serializers can return `undefined` (e.g. JSON.stringify(undefined)).
94
- const rawValue = value;
95
- if (rawValue == null) {
96
- pendingWrites.delete(key);
97
- base.removeItem(key);
98
- return;
99
- }
100
- const stringValue = typeof rawValue === 'string' ? rawValue : String(rawValue);
101
- pendingWrites.set(key, stringValue);
102
- scheduleFlush();
103
- } catch (error) {
104
- console.error('Error setting item:', error);
105
- }
106
- },
107
- removeItem: key => {
108
- try {
109
- pendingWrites.delete(key);
110
- base.removeItem(key);
111
- } catch (error) {
112
- console.error('Error removing item:', error);
113
- }
114
- }
115
- };
116
- };
117
- const baseStorage = {
118
- getItem: key => {
119
- if (typeof localStorage === 'undefined') return null;
120
- return localStorage.getItem(key);
121
- },
122
- setItem: (key, value) => {
123
- if (typeof localStorage === 'undefined') return;
124
- localStorage.setItem(key, value);
125
- },
126
- removeItem: key => {
127
- if (typeof localStorage === 'undefined') return;
128
- localStorage.removeItem(key);
129
- }
130
- };
131
- let storage = createCompressedStorage(baseStorage);// Implementazione
132
- function atomStateGenerator({
133
- key,
134
- defaultValue,
135
- persist = false,
136
- storage: customStorage
137
- }) {
138
- const resolvedStorage = customStorage || storage;
139
- // Usa atomWithStorage solo se persist è true, altrimenti atom normale
140
- const jotaiAtom = persist ? utils.atomWithStorage(key, defaultValue, utils.createJSONStorage(() => resolvedStorage)) : jotai.atom(defaultValue);
141
- const useValue = () => {
142
- const [value] = jotai.useAtom(jotaiAtom);
143
- return value;
144
- };
145
- const useState = () => {
146
- const $ = compilerRuntime.c(3);
147
- const [value, setValue] = jotai.useAtom(jotaiAtom);
148
- let t0;
149
- if ($[0] !== setValue || $[1] !== value) {
150
- t0 = [value, setValue];
151
- $[0] = setValue;
152
- $[1] = value;
153
- $[2] = t0;
154
- } else {
155
- t0 = $[2];
156
- }
157
- return t0;
158
- };
159
- const useReset = () => {
160
- const $ = compilerRuntime.c(2);
161
- const [, setValue] = jotai.useAtom(jotaiAtom);
162
- let t0;
163
- if ($[0] !== setValue) {
164
- t0 = () => {
165
- setValue(defaultValue);
166
- if (persist) {
167
- resolvedStorage.removeItem(key);
168
- }
169
- };
170
- $[0] = setValue;
171
- $[1] = t0;
172
- } else {
173
- t0 = $[1];
174
- }
175
- return t0;
176
- };
177
- return {
178
- atom: jotaiAtom,
179
- useValue,
180
- useState,
181
- useReset
182
- };
183
- }const DefaultContainer$1 = ({
1
+ 'use strict';var index_ts=require('../state/index.js'),compilerRuntime=require('react/compiler-runtime'),jsxRuntime=require('react/jsx-runtime'),react=require('react'),jotai=require('jotai'),utils=require('jotai/utils'),equal=require('fast-deep-equal'),reactForm=require('@tanstack/react-form');const DefaultContainer$1 = ({
184
2
  children
185
3
  }) => {
186
4
  return children;
@@ -194,7 +12,7 @@ const {
194
12
  useValue: useFormConfigValue,
195
13
  useState: useFormConfigState,
196
14
  useReset: useFormConfigReset
197
- } = atomStateGenerator({
15
+ } = index_ts.atomStateGenerator({
198
16
  key: 'formConfig',
199
17
  defaultValue: _formConfig,
200
18
  persist: false