taon-storage 21.0.39 → 21.0.41

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,5 +1,5 @@
1
- {
2
- "commitHash": "e4edea0a879c16a5ff8704cbb2d6470bf0d47f41",
3
- "commitName": "chore: update",
4
- "commitDate": "03-07-2026 16:37:39"
1
+ {
2
+ "commitHash": "001cf92d180f0c16ecdbe2b4d1cf040a8e072a5a",
3
+ "commitName": "chore: update",
4
+ "commitDate": "11-07-2026 01:04:02"
5
5
  }
package/browser/README.md CHANGED
@@ -1,24 +1,24 @@
1
- # MyLib
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
- > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ # MyLib
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
+ > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -1 +1 @@
1
- {"version":3,"file":"taon-storage-browser.mjs","sources":["../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/taon-stor.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/taon-storage-browser.ts"],"sourcesContent":["import { signal, WritableSignal } from '@angular/core';\nimport { _, UtilsOs } from 'tnp-core/browser';\n\n//#region use all of this in new implementation\n\ninterface StorOptions<T = any> {\n defaultValue?: T;\n transformFrom?: (valueFromDb: any) => T;\n transformTo?: (valueToDb: T) => any;\n\n /**\n * property key in class\n * OR path to file/json\n */\n keyOrPath?: string;\n}\n\nconst isBrowser = UtilsOs.isBrowser;\nconst isNode = UtilsOs.isNode;\n\nconst safeLocationPort = (): string => {\n try {\n return (globalThis as any)?.location?.port || 'no-port';\n } catch {\n return 'no-port';\n }\n};\n\nconst storeName = `taon-storage_${safeLocationPort()}`;\n\nconst defaultNamespace = (): string => {\n const project = _.kebabCase(globalThis['CURRENT_PROJECT_GENERIC_NAME'] ?? '');\n return project ? `${storeName}_${project}` : storeName;\n};\n\nconst StorConfig = {\n namespace: defaultNamespace(),\n indexedDb: {\n dbName: `${defaultNamespace()}_INDEXEDDB`,\n storeName: 'keyvaluepairs',\n },\n};\n\ntype ClassLike = Function | { name: string } | undefined;\n\nconst normalizeScopeClass = (cls: ClassLike): { name: string } => {\n if (!cls) return { name: '__GLOBAL_NAMESPACE__' };\n // if it's a function/class\n if (typeof cls === 'function')\n return { name: (cls as any).name || '__ANON__' };\n // if it's already object with name\n return { name: (cls as any).name || '__ANON__' };\n};\n\nconst keyValue = (scopeClass: ClassLike, memberName: string) => {\n const c = normalizeScopeClass(scopeClass);\n return `${StorConfig.namespace}::taon.storage.class.${c.name}.prop.${memberName}`;\n};\n\nconst keyDefaultValueAlreadySet = (\n scopeClass: ClassLike,\n memberName: string,\n): string => {\n return `${keyValue(scopeClass, memberName)}::defaultvalueisset`;\n};\n//#endregion\n\n//#region core\n\ninterface AsyncKVStore {\n getItem<T = any>(key: string): Promise<T | undefined>;\n setItem<T = any>(key: string, value: T): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n//#region local storage\nclass LocalStorageStore implements AsyncKVStore {\n async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = localStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n localStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region session storage\nclass SessionStorageStore extends LocalStorageStore {\n override async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = sessionStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n override async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n override async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region indexed db store\nclass IndexedDbStore implements AsyncKVStore {\n private dbPromise: Promise<IDBDatabase> | null = null;\n\n private openDb(): Promise<IDBDatabase> {\n if (!isBrowser || !(window as any).indexedDB) {\n return Promise.reject(new Error('IndexedDB not available'));\n }\n if (this.dbPromise) return this.dbPromise;\n\n const { dbName, storeName } = StorConfig.indexedDb;\n\n this.dbPromise = new Promise<IDBDatabase>((resolve, reject) => {\n const req = indexedDB.open(dbName, 1);\n\n req.onupgradeneeded = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n };\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n\n return this.dbPromise;\n }\n\n private async withStore<T>(\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => IDBRequest<T>,\n ): Promise<T> {\n const db = await this.openDb();\n const { storeName } = StorConfig.indexedDb;\n\n return await new Promise<T>((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n const req = fn(store);\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n\n tx.onabort = () => reject(tx.error);\n // tx.oncomplete => nothing\n });\n }\n\n async getItem<T>(key: string): Promise<T | undefined> {\n try {\n const result = await this.withStore('readonly', s => s.get(key));\n return (result as any) === undefined ? undefined : (result as any);\n } catch {\n return undefined;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.put(value as any, key));\n } catch {\n // ignore\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.delete(key) as any);\n } catch {\n // ignore\n }\n }\n}\n//#endregion\n\n//#region file stor\nclass FileStor implements AsyncKVStore {\n constructor(\n private filePath: string,\n private useJSON = false,\n ) {}\n\n private isNodeRuntime(): boolean {\n return UtilsOs.isNode;\n }\n\n async setItem<T>(_key: string, value: T): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getItem<T>(_key: string): Promise<T | undefined> {\n if (!this.isNodeRuntime()) return undefined;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async removeItem(_key: string): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n//#endregion\n\n// --- global registry\nconst ALL_READY: Promise<void>[] = [];\n\n//#endregion\n\n//#region signal wrapper\nexport interface StorSignal<T> {\n (): T;\n set(v: T): Promise<void>;\n ready(): Promise<void>;\n signal: WritableSignal<T>;\n}\n\nfunction createStorSignal<T>(\n key: string,\n store: AsyncKVStore,\n options: StorOptions<T>,\n): StorSignal<T> {\n const hasDefault = options.defaultValue !== undefined;\n\n const s = signal<T>(options.defaultValue as T);\n\n const readyPromise = (async () => {\n // SSR: just use default\n if (!isBrowser && !isNode) {\n return;\n }\n\n const stored = await store.getItem<any>(key);\n\n if (stored !== undefined) {\n const v = options.transformFrom ? options.transformFrom(stored) : stored;\n\n s.set(v);\n } else if (hasDefault) {\n const toDb = options.transformTo\n ? options.transformTo(options.defaultValue as T)\n : options.defaultValue;\n\n await store.setItem(key, toDb as any);\n s.set(options.defaultValue as T);\n }\n })();\n\n ALL_READY.push(readyPromise);\n\n const fn = (() => s()) as StorSignal<T>;\n\n fn.signal = s;\n\n fn.set = async (v: T) => {\n s.set(v);\n\n const toDb = options.transformTo ? options.transformTo(v) : (v as any);\n\n await store.setItem(key, toDb);\n };\n\n fn.ready = () => readyPromise;\n\n return fn;\n}\n//#endregion\n\nconst create = <T>(\n engine: AsyncKVStore,\n scopeClass: ClassLike | undefined,\n memberName: string,\n options: StorOptions<T>,\n): StorSignal<T> => {\n const key = keyValue(scopeClass, memberName);\n return createStorSignal<T>(key, engine, options);\n};\n\nconst local = new LocalStorageStore();\nconst session = new SessionStorageStore();\nconst indexedDBInstace = new IndexedDbStore();\n\n//#region API\nexport namespace TaonStor {\n export function inLocalstorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n local,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inSessionStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n session,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inIndexedDbStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n indexedDBInstace,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inFile<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function inJson<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export async function awaitAll(): Promise<void> {\n await Promise.all(ALL_READY);\n }\n}\n//#endregion\n\n/**\n * exampel useage\n *\n * class SomeAngularComponentOrWhatever {\n *\n * positionX = TaonStor.inLocalstorage({\n * defaultValue: 0\n * });\n *\n * async ngOnInit() {\n * console.log(this.positionX()) // I wonder if this can be angular signal\n *\n * this.positionX.set(12)\n *\n * await this.positionX.ready(); // but with addional this\n * }\n *\n * }\n *\n\n *\n */\n","// export * from './storage';\nexport * from './taon-stor';\n// export * from './storage';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taon-storage-browser.mjs","sources":["../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/taon-stor.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist/taon-storage/projects/taon-storage/src/taon-storage-browser.ts"],"sourcesContent":["import { signal, WritableSignal } from '@angular/core';\nimport { _, UtilsOs } from 'tnp-core/browser';\n\n//#region use all of this in new implementation\n\ninterface StorOptions<T = any> {\n defaultValue?: T;\n transformFrom?: (valueFromDb: any) => T;\n transformTo?: (valueToDb: T) => any;\n\n /**\n * property key in class\n * OR path to file/json\n */\n keyOrPath?: string;\n}\n\nconst isBrowser = UtilsOs.isBrowser;\nconst isNode = UtilsOs.isNode;\n\nconst safeLocationPort = (): string => {\n try {\n return (globalThis as any)?.location?.port || 'no-port';\n } catch {\n return 'no-port';\n }\n};\n\nconst storeName = `taon-storage_${safeLocationPort()}`;\n\nconst defaultNamespace = (): string => {\n const project = _.kebabCase(globalThis['CURRENT_PROJECT_GENERIC_NAME'] ?? '');\n return project ? `${storeName}_${project}` : storeName;\n};\n\nconst StorConfig = {\n namespace: defaultNamespace(),\n indexedDb: {\n dbName: `${defaultNamespace()}_INDEXEDDB`,\n storeName: 'keyvaluepairs',\n },\n};\n\ntype ClassLike = Function | { name: string } | undefined;\n\nconst normalizeScopeClass = (cls: ClassLike): { name: string } => {\n if (!cls) return { name: '__GLOBAL_NAMESPACE__' };\n // if it's a function/class\n if (typeof cls === 'function')\n return { name: (cls as any).name || '__ANON__' };\n // if it's already object with name\n return { name: (cls as any).name || '__ANON__' };\n};\n\nconst keyValue = (scopeClass: ClassLike, memberName: string) => {\n const c = normalizeScopeClass(scopeClass);\n return `${StorConfig.namespace}::taon.storage.class.${c.name}.prop.${memberName}`;\n};\n\nconst keyDefaultValueAlreadySet = (\n scopeClass: ClassLike,\n memberName: string,\n): string => {\n return `${keyValue(scopeClass, memberName)}::defaultvalueisset`;\n};\n//#endregion\n\n//#region core\n\ninterface AsyncKVStore {\n getItem<T = any>(key: string): Promise<T | undefined>;\n setItem<T = any>(key: string, value: T): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n//#region local storage\nclass LocalStorageStore implements AsyncKVStore {\n async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = localStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n localStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region session storage\nclass SessionStorageStore extends LocalStorageStore {\n override async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = sessionStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n override async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n override async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region indexed db store\nclass IndexedDbStore implements AsyncKVStore {\n private dbPromise: Promise<IDBDatabase> | null = null;\n\n private openDb(): Promise<IDBDatabase> {\n if (!isBrowser || !(window as any).indexedDB) {\n return Promise.reject(new Error('IndexedDB not available'));\n }\n if (this.dbPromise) return this.dbPromise;\n\n const { dbName, storeName } = StorConfig.indexedDb;\n\n this.dbPromise = new Promise<IDBDatabase>((resolve, reject) => {\n const req = indexedDB.open(dbName, 1);\n\n req.onupgradeneeded = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n };\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n\n return this.dbPromise;\n }\n\n private async withStore<T>(\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => IDBRequest<T>,\n ): Promise<T> {\n const db = await this.openDb();\n const { storeName } = StorConfig.indexedDb;\n\n return await new Promise<T>((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n const req = fn(store);\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n\n tx.onabort = () => reject(tx.error);\n // tx.oncomplete => nothing\n });\n }\n\n async getItem<T>(key: string): Promise<T | undefined> {\n try {\n const result = await this.withStore('readonly', s => s.get(key));\n return (result as any) === undefined ? undefined : (result as any);\n } catch {\n return undefined;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.put(value as any, key));\n } catch {\n // ignore\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.delete(key) as any);\n } catch {\n // ignore\n }\n }\n}\n//#endregion\n\n//#region file stor\nclass FileStor implements AsyncKVStore {\n constructor(\n private filePath: string,\n private useJSON = false,\n ) {}\n\n private isNodeRuntime(): boolean {\n return UtilsOs.isNode;\n }\n\n async setItem<T>(_key: string, value: T): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getItem<T>(_key: string): Promise<T | undefined> {\n if (!this.isNodeRuntime()) return undefined;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async removeItem(_key: string): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n//#endregion\n\n// --- global registry\nconst ALL_READY: Promise<void>[] = [];\n\n//#endregion\n\n//#region signal wrapper\nexport interface StorSignal<T> {\n (): T;\n set(v: T): Promise<void>;\n ready(): Promise<void>;\n signal: WritableSignal<T>;\n}\n\nfunction createStorSignal<T>(\n key: string,\n store: AsyncKVStore,\n options: StorOptions<T>,\n): StorSignal<T> {\n const hasDefault = options.defaultValue !== undefined;\n\n const s = signal<T>(options.defaultValue as T);\n\n const readyPromise = (async () => {\n // SSR: just use default\n if (!isBrowser && !isNode) {\n return;\n }\n\n const stored = await store.getItem<any>(key);\n\n if (stored !== undefined) {\n const v = options.transformFrom ? options.transformFrom(stored) : stored;\n\n s.set(v);\n } else if (hasDefault) {\n const toDb = options.transformTo\n ? options.transformTo(options.defaultValue as T)\n : options.defaultValue;\n\n await store.setItem(key, toDb as any);\n s.set(options.defaultValue as T);\n }\n })();\n\n ALL_READY.push(readyPromise);\n\n const fn = (() => s()) as StorSignal<T>;\n\n fn.signal = s;\n\n fn.set = async (v: T) => {\n s.set(v);\n\n const toDb = options.transformTo ? options.transformTo(v) : (v as any);\n\n await store.setItem(key, toDb);\n };\n\n fn.ready = () => readyPromise;\n\n return fn;\n}\n//#endregion\n\nconst create = <T>(\n engine: AsyncKVStore,\n scopeClass: ClassLike | undefined,\n memberName: string,\n options: StorOptions<T>,\n): StorSignal<T> => {\n const key = keyValue(scopeClass, memberName);\n return createStorSignal<T>(key, engine, options);\n};\n\nconst local = new LocalStorageStore();\nconst session = new SessionStorageStore();\nconst indexedDBInstace = new IndexedDbStore();\n\n//#region API\nexport namespace TaonStor {\n export function inLocalstorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n local,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inSessionStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n session,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inIndexedDbStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n indexedDBInstace,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inFile<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function inJson<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export async function awaitAll(): Promise<void> {\n await Promise.all(ALL_READY);\n }\n}\n//#endregion\n\n/**\n * exampel useage\n *\n * class SomeAngularComponentOrWhatever {\n *\n * positionX = TaonStor.inLocalstorage({\n * defaultValue: 0\n * });\n *\n * async ngOnInit() {\n * console.log(this.positionX()) // I wonder if this can be angular signal\n *\n * this.positionX.set(12)\n *\n * await this.positionX.ready(); // but with addional this\n * }\n *\n * }\n *\n\n *\n */","// export * from './storage';\nexport * from './taon-stor';\n// export * from './storage';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taon-storage/browser",
3
- "version": "21.0.39",
3
+ "version": "21.0.41",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"
@@ -1,24 +1,24 @@
1
- # MyLib
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
- > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ # MyLib
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
+ > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -1 +1 @@
1
- {"version":3,"file":"taon-storage-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/lib/taon-stor.ts","../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/taon-storage-browser-prod.ts"],"sourcesContent":["import { signal, WritableSignal } from '@angular/core';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawHorizontalLine, UtilsOs__NS__drawVerticalLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsGitBash, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__safeExitProgramCleanUp, UtilsOs__NS__sendNotification, UtilsOs__NS__whichOrWherePackageLocated } from 'tnp-core/browser-prod';\n\n//#region use all of this in new implementation\n\ninterface StorOptions<T = any> {\n defaultValue?: T;\n transformFrom?: (valueFromDb: any) => T;\n transformTo?: (valueToDb: T) => any;\n\n /**\n * property key in class\n * OR path to file/json\n */\n keyOrPath?: string;\n}\n\nconst isBrowser = UtilsOs__NS__isBrowser;\nconst isNode = UtilsOs__NS__isNode;\n\nconst safeLocationPort = (): string => {\n try {\n return (globalThis as any)?.location?.port || 'no-port';\n } catch {\n return 'no-port';\n }\n};\n\nconst storeName = `taon-storage_${safeLocationPort()}`;\n\nconst defaultNamespace = (): string => {\n const project = ___NS__kebabCase(globalThis['CURRENT_PROJECT_GENERIC_NAME'] ?? '');\n return project ? `${storeName}_${project}` : storeName;\n};\n\nconst StorConfig = {\n namespace: defaultNamespace(),\n indexedDb: {\n dbName: `${defaultNamespace()}_INDEXEDDB`,\n storeName: 'keyvaluepairs',\n },\n};\n\ntype ClassLike = Function | { name: string } | undefined;\n\nconst normalizeScopeClass = (cls: ClassLike): { name: string } => {\n if (!cls) return { name: '__GLOBAL_NAMESPACE__' };\n // if it's a function/class\n if (typeof cls === 'function')\n return { name: (cls as any).name || '__ANON__' };\n // if it's already object with name\n return { name: (cls as any).name || '__ANON__' };\n};\n\nconst keyValue = (scopeClass: ClassLike, memberName: string) => {\n const c = normalizeScopeClass(scopeClass);\n return `${StorConfig.namespace}::taon.storage.class.${c.name}.prop.${memberName}`;\n};\n\nconst keyDefaultValueAlreadySet = (\n scopeClass: ClassLike,\n memberName: string,\n): string => {\n return `${keyValue(scopeClass, memberName)}::defaultvalueisset`;\n};\n//#endregion\n\n//#region core\n\ninterface AsyncKVStore {\n getItem<T = any>(key: string): Promise<T | undefined>;\n setItem<T = any>(key: string, value: T): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n//#region local storage\nclass LocalStorageStore implements AsyncKVStore {\n async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = localStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n localStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region session storage\nclass SessionStorageStore extends LocalStorageStore {\n override async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = sessionStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n override async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n override async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region indexed db store\nclass IndexedDbStore implements AsyncKVStore {\n private dbPromise: Promise<IDBDatabase> | null = null;\n\n private openDb(): Promise<IDBDatabase> {\n if (!isBrowser || !(window as any).indexedDB) {\n return Promise.reject(new Error('IndexedDB not available'));\n }\n if (this.dbPromise) return this.dbPromise;\n\n const { dbName, storeName } = StorConfig.indexedDb;\n\n this.dbPromise = new Promise<IDBDatabase>((resolve, reject) => {\n const req = indexedDB.open(dbName, 1);\n\n req.onupgradeneeded = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n };\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n\n return this.dbPromise;\n }\n\n private async withStore<T>(\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => IDBRequest<T>,\n ): Promise<T> {\n const db = await this.openDb();\n const { storeName } = StorConfig.indexedDb;\n\n return await new Promise<T>((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n const req = fn(store);\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n\n tx.onabort = () => reject(tx.error);\n // tx.oncomplete => nothing\n });\n }\n\n async getItem<T>(key: string): Promise<T | undefined> {\n try {\n const result = await this.withStore('readonly', s => s.get(key));\n return (result as any) === undefined ? undefined : (result as any);\n } catch {\n return undefined;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.put(value as any, key));\n } catch {\n // ignore\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.delete(key) as any);\n } catch {\n // ignore\n }\n }\n}\n//#endregion\n\n//#region file stor\nclass FileStor implements AsyncKVStore {\n constructor(\n private filePath: string,\n private useJSON = false,\n ) {}\n\n private isNodeRuntime(): boolean {\n return UtilsOs__NS__isNode;\n }\n\n async setItem<T>(_key: string, value: T): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getItem<T>(_key: string): Promise<T | undefined> {\n if (!this.isNodeRuntime()) return undefined;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async removeItem(_key: string): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n//#endregion\n\n// --- global registry\nconst ALL_READY: Promise<void>[] = [];\n\n//#endregion\n\n//#region signal wrapper\nexport interface StorSignal<T> {\n (): T;\n set(v: T): Promise<void>;\n ready(): Promise<void>;\n signal: WritableSignal<T>;\n}\n\nfunction createStorSignal<T>(\n key: string,\n store: AsyncKVStore,\n options: StorOptions<T>,\n): StorSignal<T> {\n const hasDefault = options.defaultValue !== undefined;\n\n const s = signal<T>(options.defaultValue as T);\n\n const readyPromise = (async () => {\n // SSR: just use default\n if (!isBrowser && !isNode) {\n return;\n }\n\n const stored = await store.getItem<any>(key);\n\n if (stored !== undefined) {\n const v = options.transformFrom ? options.transformFrom(stored) : stored;\n\n s.set(v);\n } else if (hasDefault) {\n const toDb = options.transformTo\n ? options.transformTo(options.defaultValue as T)\n : options.defaultValue;\n\n await store.setItem(key, toDb as any);\n s.set(options.defaultValue as T);\n }\n })();\n\n ALL_READY.push(readyPromise);\n\n const fn = (() => s()) as StorSignal<T>;\n\n fn.signal = s;\n\n fn.set = async (v: T) => {\n s.set(v);\n\n const toDb = options.transformTo ? options.transformTo(v) : (v as any);\n\n await store.setItem(key, toDb);\n };\n\n fn.ready = () => readyPromise;\n\n return fn;\n}\n//#endregion\n\nconst create = <T>(\n engine: AsyncKVStore,\n scopeClass: ClassLike | undefined,\n memberName: string,\n options: StorOptions<T>,\n): StorSignal<T> => {\n const key = keyValue(scopeClass, memberName);\n return createStorSignal<T>(key, engine, options);\n};\n\nconst local = new LocalStorageStore();\nconst session = new SessionStorageStore();\nconst indexedDBInstace = new IndexedDbStore();\n\n//#region API\n//namespace TaonStor\n\n export function TaonStor__NS__inLocalstorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n local,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inSessionStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n session,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inIndexedDbStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n indexedDBInstace,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inFile<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function TaonStor__NS__inJson<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export async function TaonStor__NS__awaitAll(): Promise<void> {\n await Promise.all(ALL_READY);\n }\n\n//end of namespace TaonStor\n\n//#endregion\n\n/**\n * exampel useage\n *\n * class SomeAngularComponentOrWhatever {\n *\n * positionX = TaonStor__NS__inLocalstorage({\n * defaultValue: 0\n * });\n *\n * async ngOnInit() {\n * console.log(this.positionX()) // I wonder if this can be angular signal\n *\n * this.positionX.set(12)\n *\n * await this.positionX.ready(); // but with addional this\n * }\n *\n * }\n *\n\n *\n */","// export * from './storage';\nexport * from './taon-stor';\n// export * from './storage';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taon-storage-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/lib/taon-stor.ts","../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist-prod/taon-storage/projects/taon-storage/src/taon-storage-browser-prod.ts"],"sourcesContent":["import { signal, WritableSignal } from '@angular/core';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawHorizontalLine, UtilsOs__NS__drawVerticalLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsGitBash, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__safeExitProgramCleanUp, UtilsOs__NS__sendNotification, UtilsOs__NS__whichOrWherePackageLocated } from 'tnp-core/browser-prod';\n\n//#region use all of this in new implementation\n\ninterface StorOptions<T = any> {\n defaultValue?: T;\n transformFrom?: (valueFromDb: any) => T;\n transformTo?: (valueToDb: T) => any;\n\n /**\n * property key in class\n * OR path to file/json\n */\n keyOrPath?: string;\n}\n\nconst isBrowser = UtilsOs__NS__isBrowser;\nconst isNode = UtilsOs__NS__isNode;\n\nconst safeLocationPort = (): string => {\n try {\n return (globalThis as any)?.location?.port || 'no-port';\n } catch {\n return 'no-port';\n }\n};\n\nconst storeName = `taon-storage_${safeLocationPort()}`;\n\nconst defaultNamespace = (): string => {\n const project = ___NS__kebabCase(globalThis['CURRENT_PROJECT_GENERIC_NAME'] ?? '');\n return project ? `${storeName}_${project}` : storeName;\n};\n\nconst StorConfig = {\n namespace: defaultNamespace(),\n indexedDb: {\n dbName: `${defaultNamespace()}_INDEXEDDB`,\n storeName: 'keyvaluepairs',\n },\n};\n\ntype ClassLike = Function | { name: string } | undefined;\n\nconst normalizeScopeClass = (cls: ClassLike): { name: string } => {\n if (!cls) return { name: '__GLOBAL_NAMESPACE__' };\n // if it's a function/class\n if (typeof cls === 'function')\n return { name: (cls as any).name || '__ANON__' };\n // if it's already object with name\n return { name: (cls as any).name || '__ANON__' };\n};\n\nconst keyValue = (scopeClass: ClassLike, memberName: string) => {\n const c = normalizeScopeClass(scopeClass);\n return `${StorConfig.namespace}::taon.storage.class.${c.name}.prop.${memberName}`;\n};\n\nconst keyDefaultValueAlreadySet = (\n scopeClass: ClassLike,\n memberName: string,\n): string => {\n return `${keyValue(scopeClass, memberName)}::defaultvalueisset`;\n};\n//#endregion\n\n//#region core\n\ninterface AsyncKVStore {\n getItem<T = any>(key: string): Promise<T | undefined>;\n setItem<T = any>(key: string, value: T): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n//#region local storage\nclass LocalStorageStore implements AsyncKVStore {\n async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = localStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n localStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region session storage\nclass SessionStorageStore extends LocalStorageStore {\n override async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = sessionStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n override async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n override async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region indexed db store\nclass IndexedDbStore implements AsyncKVStore {\n private dbPromise: Promise<IDBDatabase> | null = null;\n\n private openDb(): Promise<IDBDatabase> {\n if (!isBrowser || !(window as any).indexedDB) {\n return Promise.reject(new Error('IndexedDB not available'));\n }\n if (this.dbPromise) return this.dbPromise;\n\n const { dbName, storeName } = StorConfig.indexedDb;\n\n this.dbPromise = new Promise<IDBDatabase>((resolve, reject) => {\n const req = indexedDB.open(dbName, 1);\n\n req.onupgradeneeded = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n };\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n\n return this.dbPromise;\n }\n\n private async withStore<T>(\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => IDBRequest<T>,\n ): Promise<T> {\n const db = await this.openDb();\n const { storeName } = StorConfig.indexedDb;\n\n return await new Promise<T>((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n const req = fn(store);\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n\n tx.onabort = () => reject(tx.error);\n // tx.oncomplete => nothing\n });\n }\n\n async getItem<T>(key: string): Promise<T | undefined> {\n try {\n const result = await this.withStore('readonly', s => s.get(key));\n return (result as any) === undefined ? undefined : (result as any);\n } catch {\n return undefined;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.put(value as any, key));\n } catch {\n // ignore\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.delete(key) as any);\n } catch {\n // ignore\n }\n }\n}\n//#endregion\n\n//#region file stor\nclass FileStor implements AsyncKVStore {\n constructor(\n private filePath: string,\n private useJSON = false,\n ) {}\n\n private isNodeRuntime(): boolean {\n return UtilsOs__NS__isNode;\n }\n\n async setItem<T>(_key: string, value: T): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getItem<T>(_key: string): Promise<T | undefined> {\n if (!this.isNodeRuntime()) return undefined;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async removeItem(_key: string): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n//#endregion\n\n// --- global registry\nconst ALL_READY: Promise<void>[] = [];\n\n//#endregion\n\n//#region signal wrapper\nexport interface StorSignal<T> {\n (): T;\n set(v: T): Promise<void>;\n ready(): Promise<void>;\n signal: WritableSignal<T>;\n}\n\nfunction createStorSignal<T>(\n key: string,\n store: AsyncKVStore,\n options: StorOptions<T>,\n): StorSignal<T> {\n const hasDefault = options.defaultValue !== undefined;\n\n const s = signal<T>(options.defaultValue as T);\n\n const readyPromise = (async () => {\n // SSR: just use default\n if (!isBrowser && !isNode) {\n return;\n }\n\n const stored = await store.getItem<any>(key);\n\n if (stored !== undefined) {\n const v = options.transformFrom ? options.transformFrom(stored) : stored;\n\n s.set(v);\n } else if (hasDefault) {\n const toDb = options.transformTo\n ? options.transformTo(options.defaultValue as T)\n : options.defaultValue;\n\n await store.setItem(key, toDb as any);\n s.set(options.defaultValue as T);\n }\n })();\n\n ALL_READY.push(readyPromise);\n\n const fn = (() => s()) as StorSignal<T>;\n\n fn.signal = s;\n\n fn.set = async (v: T) => {\n s.set(v);\n\n const toDb = options.transformTo ? options.transformTo(v) : (v as any);\n\n await store.setItem(key, toDb);\n };\n\n fn.ready = () => readyPromise;\n\n return fn;\n}\n//#endregion\n\nconst create = <T>(\n engine: AsyncKVStore,\n scopeClass: ClassLike | undefined,\n memberName: string,\n options: StorOptions<T>,\n): StorSignal<T> => {\n const key = keyValue(scopeClass, memberName);\n return createStorSignal<T>(key, engine, options);\n};\n\nconst local = new LocalStorageStore();\nconst session = new SessionStorageStore();\nconst indexedDBInstace = new IndexedDbStore();\n\n//#region API\n//namespace TaonStor\n\n export function TaonStor__NS__inLocalstorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n local,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inSessionStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n session,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inIndexedDbStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n indexedDBInstace,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inFile<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function TaonStor__NS__inJson<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export async function TaonStor__NS__awaitAll(): Promise<void> {\n await Promise.all(ALL_READY);\n }\n\n//end of namespace TaonStor\n\n//#endregion\n\n/**\n * exampel useage\n *\n * class SomeAngularComponentOrWhatever {\n *\n * positionX = TaonStor__NS__inLocalstorage({\n * defaultValue: 0\n * });\n *\n * async ngOnInit() {\n * console.log(this.positionX()) // I wonder if this can be angular signal\n *\n * this.positionX.set(12)\n *\n * await this.positionX.ready(); // but with addional this\n * }\n *\n * }\n *\n\n *\n */","// export * from './storage';\nexport * from './taon-stor';\n// export * from './storage';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taon-storage/browser-prod",
3
- "version": "21.0.39",
3
+ "version": "21.0.41",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"
@@ -21,4 +21,4 @@ export declare const CURRENT_PACKAGE_TAON_VERSION = "v21";
21
21
  /**
22
22
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
23
23
  */
24
- export declare const CURRENT_PACKAGE_VERSION = "21.0.39";
24
+ export declare const CURRENT_PACKAGE_VERSION = "21.0.41";
@@ -25,6 +25,6 @@ exports.CURRENT_PACKAGE_TAON_VERSION = 'v21';
25
25
  /**
26
26
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
27
27
  */
28
- exports.CURRENT_PACKAGE_VERSION = '21.0.39';
28
+ exports.CURRENT_PACKAGE_VERSION = '21.0.41';
29
29
  // THIS FILE IS GENERATED - DO NOT MODIFY
30
30
  //# sourceMappingURL=build-info._auto-generated_.js.map
package/lib/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "taon-storage/lib",
3
- "version": "21.0.39"
3
+ "version": "21.0.41"
4
4
  }
@@ -48,4 +48,4 @@ export {};
48
48
  *
49
49
 
50
50
  *
51
- */
51
+ */
package/lib/taon-stor.js CHANGED
@@ -312,5 +312,5 @@ var TaonStor;
312
312
  *
313
313
 
314
314
  *
315
- */
315
+ */
316
316
  //# sourceMappingURL=taon-stor.js.map
@@ -79,5 +79,5 @@ async function startElectron() {
79
79
  }
80
80
  }
81
81
  export default startElectron;
82
- //#endregion
82
+ //#endregion
83
83
  //# sourceMappingURL=app.electron.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.electron.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.electron.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EACP,IAAI;AACJ,kBAAkB;AAClB,GAAG;AACH,YAAY;EACX,MAAM,cAAc,CAAC;AACtB,kBAAkB;AAClB,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEtD,IAAI,GAAG,GAAyB,IAAI,CAAC;AACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;AAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;AAEpD,SAAS,YAAY;IAErB,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,YAAY,CAAC;IAErD,6BAA6B;IAC7B,GAAG,GAAG,IAAI,aAAa,CAAC;QACtB,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,eAAe,EAAE,IAAI;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;QACvB,cAAc,EAAE;YACd,eAAe,EAAE,IAAI;YACrB,2BAA2B,EAAE,CAAC,KAAK,CAAC;YACpC,gBAAgB,EAAE,KAAK;SACxB;KACF,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxC,KAAK,EAAE,CAAC;QAER,OAAO,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;QACrC,GAAG,CAAC,OAAO,CAAC,mBAAmB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACxG,CAAC;SAAM,CAAC;QACN,wCAAwC;QACxC,IAAI,SAAS,GAAG,cAAc,CAAC;QAE/B,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC;YAC/D,6CAA6C;YAC7C,SAAS,GAAG,oBAAoB,CAAC;QACnC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,qCAAqC;IACrC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,gEAAgE;QAChE,mEAAmE;QACnE,oDAAoD;QACpD,GAAG,GAAG,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACX,CAAC;AAED,KAAK,UAAU,aAAa;IAC5B,IAAI,CAAC;QACH,wDAAwD;QACxD,yDAAyD;QACzD,sDAAsD;QACtD,kJAAkJ;QAClJ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;QAErD,oCAAoC;QACpC,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC/B,2DAA2D;YAC3D,8DAA8D;YAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAClC,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;YACtB,gEAAgE;YAChE,4DAA4D;YAC5D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,cAAc;QACd,WAAW;IACb,CAAC;AACD,CAAC;AAED,eAAe,aAAa,CAAC;AAC7B,YAAY"}
@@ -24,7 +24,7 @@ export declare const CLIENT_DEV_WEBSQL_APP_PORT_1: any;
24
24
  /**
25
25
  * Electron/angular website url for electron app purpose (ipc backend)
26
26
  */
27
- export declare const FRONTEND_NORMAL_ELECTRON_PORT_1 = 4237;
27
+ export declare const FRONTEND_NORMAL_ELECTRON_PORT_1 = 4245;
28
28
  /**
29
29
  * Backend url - use as "host" inside your context
30
30
  *
@@ -65,7 +65,7 @@ export declare const CLIENT_DEV_WEBSQL_APP_PORT: any;
65
65
  /**
66
66
  * Electron/angular website url for electron app purpose (ipc backend)
67
67
  */
68
- export declare const FRONTEND_NORMAL_ELECTRON_PORT = 4237;
68
+ export declare const FRONTEND_NORMAL_ELECTRON_PORT = 4245;
69
69
  /**
70
70
  * Backend url - use as "host" inside your context
71
71
  * @deprecated use HOST_URL_n instead
@@ -47,12 +47,12 @@ const ACTIVE_CONTEXT = nodeENV['ACTIVE_CONTEXT'] || argsENV['ACTIVE_CONTEXT'] ||
47
47
  * Your context backend port
48
48
  *
49
49
  */
50
- export const HOST_BACKEND_PORT_1 = (nodeENV['HOST_BACKEND_PORT_1']) || (windowENV['HOST_BACKEND_PORT_1']) || (argsENV['HOST_BACKEND_PORT_1']) || 4113;
50
+ export const HOST_BACKEND_PORT_1 = (nodeENV['HOST_BACKEND_PORT_1']) || (windowENV['HOST_BACKEND_PORT_1']) || (argsENV['HOST_BACKEND_PORT_1']) || 4112;
51
51
  /**
52
52
  * Angular website url with normal/nodejs backend
53
53
  *
54
54
  */
55
- export const FRONTEND_NORMAL_APP_PORT_1 = (nodeENV['FRONTEND_NORMAL_APP_PORT_1']) || (windowENV['FRONTEND_NORMAL_APP_PORT_1']) || (argsENV['FRONTEND_NORMAL_APP_PORT_1']) || 4235;
55
+ export const FRONTEND_NORMAL_APP_PORT_1 = (nodeENV['FRONTEND_NORMAL_APP_PORT_1']) || (windowENV['FRONTEND_NORMAL_APP_PORT_1']) || (argsENV['FRONTEND_NORMAL_APP_PORT_1']) || 4243;
56
56
  /**
57
57
  * @deprecated use FRONTEND_NORMAL_APP_PORT instead
58
58
  */
@@ -61,7 +61,7 @@ export const CLIENT_DEV_NORMAL_APP_PORT_1 = FRONTEND_NORMAL_APP_PORT_1;
61
61
  * Angular website url with websql backend
62
62
  *
63
63
  */
64
- export const FRONTEND_WEBSQL_APP_PORT_1 = (nodeENV['FRONTEND_WEBSQL_APP_PORT_1']) || (windowENV['FRONTEND_WEBSQL_APP_PORT_1']) || (argsENV['FRONTEND_WEBSQL_APP_PORT_1']) || 4234;
64
+ export const FRONTEND_WEBSQL_APP_PORT_1 = (nodeENV['FRONTEND_WEBSQL_APP_PORT_1']) || (windowENV['FRONTEND_WEBSQL_APP_PORT_1']) || (argsENV['FRONTEND_WEBSQL_APP_PORT_1']) || 4242;
65
65
  /**
66
66
  * @deprecated use FRONTEND_WEBSQL_APP_PORT instead
67
67
  */
@@ -69,7 +69,7 @@ export const CLIENT_DEV_WEBSQL_APP_PORT_1 = FRONTEND_WEBSQL_APP_PORT_1;
69
69
  /**
70
70
  * Electron/angular website url for electron app purpose (ipc backend)
71
71
  */
72
- export const FRONTEND_NORMAL_ELECTRON_PORT_1 = 4237;
72
+ export const FRONTEND_NORMAL_ELECTRON_PORT_1 = 4245;
73
73
  // electron websql not supported yet
74
74
  // export const FRONTEND_WEBSQL_ELECTRON_PORT_1 = undefined;
75
75
  /**
@@ -21,4 +21,4 @@ export declare const CURRENT_PACKAGE_TAON_VERSION = "v21";
21
21
  /**
22
22
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
23
23
  */
24
- export declare const CURRENT_PACKAGE_VERSION = "21.0.39";
24
+ export declare const CURRENT_PACKAGE_VERSION = "21.0.41";
@@ -22,6 +22,6 @@ export const CURRENT_PACKAGE_TAON_VERSION = 'v21';
22
22
  /**
23
23
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
24
24
  */
25
- export const CURRENT_PACKAGE_VERSION = '21.0.39';
25
+ export const CURRENT_PACKAGE_VERSION = '21.0.41';
26
26
  // THIS FILE IS GENERATED - DO NOT MODIFY
27
27
  //# sourceMappingURL=build-info._auto-generated_.js.map
@@ -48,4 +48,4 @@ export {};
48
48
  *
49
49
 
50
50
  *
51
- */
51
+ */
@@ -309,5 +309,5 @@ export var TaonStor;
309
309
  *
310
310
 
311
311
  *
312
- */
312
+ */
313
313
  //# sourceMappingURL=taon-stor.js.map
@@ -21,4 +21,4 @@ export declare const CURRENT_PACKAGE_TAON_VERSION = "v21";
21
21
  /**
22
22
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
23
23
  */
24
- export declare const CURRENT_PACKAGE_VERSION = "21.0.39";
24
+ export declare const CURRENT_PACKAGE_VERSION = "21.0.41";
@@ -22,6 +22,6 @@ export const CURRENT_PACKAGE_TAON_VERSION = 'v21';
22
22
  /**
23
23
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
24
24
  */
25
- export const CURRENT_PACKAGE_VERSION = '21.0.39';
25
+ export const CURRENT_PACKAGE_VERSION = '21.0.41';
26
26
  // THIS FILE IS GENERATED - DO NOT MODIFY
27
27
  //# sourceMappingURL=build-info._auto-generated_.js.map
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "taon-storage/lib-prod",
3
- "version": "21.0.39"
3
+ "version": "21.0.41"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taon-storage",
3
- "version": "21.0.39",
3
+ "version": "21.0.41",
4
4
  "scripts": {
5
5
  "taon init": "taon init",
6
6
  "taon start": "taon start",
package/websql/README.md CHANGED
@@ -1,24 +1,24 @@
1
- # MyLib
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
- > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ # MyLib
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
+ > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -1 +1 @@
1
- {"version":3,"file":"taon-storage-websql.mjs","sources":["../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/taon-stor.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/taon-storage-websql.ts"],"sourcesContent":["import { signal, WritableSignal } from '@angular/core';\nimport { _, UtilsOs } from 'tnp-core/websql';\n\n//#region use all of this in new implementation\n\ninterface StorOptions<T = any> {\n defaultValue?: T;\n transformFrom?: (valueFromDb: any) => T;\n transformTo?: (valueToDb: T) => any;\n\n /**\n * property key in class\n * OR path to file/json\n */\n keyOrPath?: string;\n}\n\nconst isBrowser = UtilsOs.isBrowser;\nconst isNode = UtilsOs.isNode;\n\nconst safeLocationPort = (): string => {\n try {\n return (globalThis as any)?.location?.port || 'no-port';\n } catch {\n return 'no-port';\n }\n};\n\nconst storeName = `taon-storage_${safeLocationPort()}`;\n\nconst defaultNamespace = (): string => {\n const project = _.kebabCase(globalThis['CURRENT_PROJECT_GENERIC_NAME'] ?? '');\n return project ? `${storeName}_${project}` : storeName;\n};\n\nconst StorConfig = {\n namespace: defaultNamespace(),\n indexedDb: {\n dbName: `${defaultNamespace()}_INDEXEDDB`,\n storeName: 'keyvaluepairs',\n },\n};\n\ntype ClassLike = Function | { name: string } | undefined;\n\nconst normalizeScopeClass = (cls: ClassLike): { name: string } => {\n if (!cls) return { name: '__GLOBAL_NAMESPACE__' };\n // if it's a function/class\n if (typeof cls === 'function')\n return { name: (cls as any).name || '__ANON__' };\n // if it's already object with name\n return { name: (cls as any).name || '__ANON__' };\n};\n\nconst keyValue = (scopeClass: ClassLike, memberName: string) => {\n const c = normalizeScopeClass(scopeClass);\n return `${StorConfig.namespace}::taon.storage.class.${c.name}.prop.${memberName}`;\n};\n\nconst keyDefaultValueAlreadySet = (\n scopeClass: ClassLike,\n memberName: string,\n): string => {\n return `${keyValue(scopeClass, memberName)}::defaultvalueisset`;\n};\n//#endregion\n\n//#region core\n\ninterface AsyncKVStore {\n getItem<T = any>(key: string): Promise<T | undefined>;\n setItem<T = any>(key: string, value: T): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n//#region local storage\nclass LocalStorageStore implements AsyncKVStore {\n async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = localStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n localStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region session storage\nclass SessionStorageStore extends LocalStorageStore {\n override async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = sessionStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n override async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n override async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region indexed db store\nclass IndexedDbStore implements AsyncKVStore {\n private dbPromise: Promise<IDBDatabase> | null = null;\n\n private openDb(): Promise<IDBDatabase> {\n if (!isBrowser || !(window as any).indexedDB) {\n return Promise.reject(new Error('IndexedDB not available'));\n }\n if (this.dbPromise) return this.dbPromise;\n\n const { dbName, storeName } = StorConfig.indexedDb;\n\n this.dbPromise = new Promise<IDBDatabase>((resolve, reject) => {\n const req = indexedDB.open(dbName, 1);\n\n req.onupgradeneeded = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n };\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n\n return this.dbPromise;\n }\n\n private async withStore<T>(\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => IDBRequest<T>,\n ): Promise<T> {\n const db = await this.openDb();\n const { storeName } = StorConfig.indexedDb;\n\n return await new Promise<T>((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n const req = fn(store);\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n\n tx.onabort = () => reject(tx.error);\n // tx.oncomplete => nothing\n });\n }\n\n async getItem<T>(key: string): Promise<T | undefined> {\n try {\n const result = await this.withStore('readonly', s => s.get(key));\n return (result as any) === undefined ? undefined : (result as any);\n } catch {\n return undefined;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.put(value as any, key));\n } catch {\n // ignore\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.delete(key) as any);\n } catch {\n // ignore\n }\n }\n}\n//#endregion\n\n//#region file stor\nclass FileStor implements AsyncKVStore {\n constructor(\n private filePath: string,\n private useJSON = false,\n ) {}\n\n private isNodeRuntime(): boolean {\n return UtilsOs.isNode;\n }\n\n async setItem<T>(_key: string, value: T): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getItem<T>(_key: string): Promise<T | undefined> {\n if (!this.isNodeRuntime()) return undefined;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async removeItem(_key: string): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n//#endregion\n\n// --- global registry\nconst ALL_READY: Promise<void>[] = [];\n\n//#endregion\n\n//#region signal wrapper\nexport interface StorSignal<T> {\n (): T;\n set(v: T): Promise<void>;\n ready(): Promise<void>;\n signal: WritableSignal<T>;\n}\n\nfunction createStorSignal<T>(\n key: string,\n store: AsyncKVStore,\n options: StorOptions<T>,\n): StorSignal<T> {\n const hasDefault = options.defaultValue !== undefined;\n\n const s = signal<T>(options.defaultValue as T);\n\n const readyPromise = (async () => {\n // SSR: just use default\n if (!isBrowser && !isNode) {\n return;\n }\n\n const stored = await store.getItem<any>(key);\n\n if (stored !== undefined) {\n const v = options.transformFrom ? options.transformFrom(stored) : stored;\n\n s.set(v);\n } else if (hasDefault) {\n const toDb = options.transformTo\n ? options.transformTo(options.defaultValue as T)\n : options.defaultValue;\n\n await store.setItem(key, toDb as any);\n s.set(options.defaultValue as T);\n }\n })();\n\n ALL_READY.push(readyPromise);\n\n const fn = (() => s()) as StorSignal<T>;\n\n fn.signal = s;\n\n fn.set = async (v: T) => {\n s.set(v);\n\n const toDb = options.transformTo ? options.transformTo(v) : (v as any);\n\n await store.setItem(key, toDb);\n };\n\n fn.ready = () => readyPromise;\n\n return fn;\n}\n//#endregion\n\nconst create = <T>(\n engine: AsyncKVStore,\n scopeClass: ClassLike | undefined,\n memberName: string,\n options: StorOptions<T>,\n): StorSignal<T> => {\n const key = keyValue(scopeClass, memberName);\n return createStorSignal<T>(key, engine, options);\n};\n\nconst local = new LocalStorageStore();\nconst session = new SessionStorageStore();\nconst indexedDBInstace = new IndexedDbStore();\n\n//#region API\nexport namespace TaonStor {\n export function inLocalstorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n local,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inSessionStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n session,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inIndexedDbStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n indexedDBInstace,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inFile<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function inJson<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export async function awaitAll(): Promise<void> {\n await Promise.all(ALL_READY);\n }\n}\n//#endregion\n\n/**\n * exampel useage\n *\n * class SomeAngularComponentOrWhatever {\n *\n * positionX = TaonStor.inLocalstorage({\n * defaultValue: 0\n * });\n *\n * async ngOnInit() {\n * console.log(this.positionX()) // I wonder if this can be angular signal\n *\n * this.positionX.set(12)\n *\n * await this.positionX.ready(); // but with addional this\n * }\n *\n * }\n *\n\n *\n */\n","// export * from './storage';\nexport * from './taon-stor';\n// export * from './storage';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taon-storage-websql.mjs","sources":["../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/taon-stor.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist-websql/taon-storage/projects/taon-storage/src/taon-storage-websql.ts"],"sourcesContent":["import { signal, WritableSignal } from '@angular/core';\nimport { _, UtilsOs } from 'tnp-core/websql';\n\n//#region use all of this in new implementation\n\ninterface StorOptions<T = any> {\n defaultValue?: T;\n transformFrom?: (valueFromDb: any) => T;\n transformTo?: (valueToDb: T) => any;\n\n /**\n * property key in class\n * OR path to file/json\n */\n keyOrPath?: string;\n}\n\nconst isBrowser = UtilsOs.isBrowser;\nconst isNode = UtilsOs.isNode;\n\nconst safeLocationPort = (): string => {\n try {\n return (globalThis as any)?.location?.port || 'no-port';\n } catch {\n return 'no-port';\n }\n};\n\nconst storeName = `taon-storage_${safeLocationPort()}`;\n\nconst defaultNamespace = (): string => {\n const project = _.kebabCase(globalThis['CURRENT_PROJECT_GENERIC_NAME'] ?? '');\n return project ? `${storeName}_${project}` : storeName;\n};\n\nconst StorConfig = {\n namespace: defaultNamespace(),\n indexedDb: {\n dbName: `${defaultNamespace()}_INDEXEDDB`,\n storeName: 'keyvaluepairs',\n },\n};\n\ntype ClassLike = Function | { name: string } | undefined;\n\nconst normalizeScopeClass = (cls: ClassLike): { name: string } => {\n if (!cls) return { name: '__GLOBAL_NAMESPACE__' };\n // if it's a function/class\n if (typeof cls === 'function')\n return { name: (cls as any).name || '__ANON__' };\n // if it's already object with name\n return { name: (cls as any).name || '__ANON__' };\n};\n\nconst keyValue = (scopeClass: ClassLike, memberName: string) => {\n const c = normalizeScopeClass(scopeClass);\n return `${StorConfig.namespace}::taon.storage.class.${c.name}.prop.${memberName}`;\n};\n\nconst keyDefaultValueAlreadySet = (\n scopeClass: ClassLike,\n memberName: string,\n): string => {\n return `${keyValue(scopeClass, memberName)}::defaultvalueisset`;\n};\n//#endregion\n\n//#region core\n\ninterface AsyncKVStore {\n getItem<T = any>(key: string): Promise<T | undefined>;\n setItem<T = any>(key: string, value: T): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n//#region local storage\nclass LocalStorageStore implements AsyncKVStore {\n async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = localStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n localStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region session storage\nclass SessionStorageStore extends LocalStorageStore {\n override async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = sessionStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n override async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n override async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region indexed db store\nclass IndexedDbStore implements AsyncKVStore {\n private dbPromise: Promise<IDBDatabase> | null = null;\n\n private openDb(): Promise<IDBDatabase> {\n if (!isBrowser || !(window as any).indexedDB) {\n return Promise.reject(new Error('IndexedDB not available'));\n }\n if (this.dbPromise) return this.dbPromise;\n\n const { dbName, storeName } = StorConfig.indexedDb;\n\n this.dbPromise = new Promise<IDBDatabase>((resolve, reject) => {\n const req = indexedDB.open(dbName, 1);\n\n req.onupgradeneeded = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n };\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n\n return this.dbPromise;\n }\n\n private async withStore<T>(\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => IDBRequest<T>,\n ): Promise<T> {\n const db = await this.openDb();\n const { storeName } = StorConfig.indexedDb;\n\n return await new Promise<T>((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n const req = fn(store);\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n\n tx.onabort = () => reject(tx.error);\n // tx.oncomplete => nothing\n });\n }\n\n async getItem<T>(key: string): Promise<T | undefined> {\n try {\n const result = await this.withStore('readonly', s => s.get(key));\n return (result as any) === undefined ? undefined : (result as any);\n } catch {\n return undefined;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.put(value as any, key));\n } catch {\n // ignore\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.delete(key) as any);\n } catch {\n // ignore\n }\n }\n}\n//#endregion\n\n//#region file stor\nclass FileStor implements AsyncKVStore {\n constructor(\n private filePath: string,\n private useJSON = false,\n ) {}\n\n private isNodeRuntime(): boolean {\n return UtilsOs.isNode;\n }\n\n async setItem<T>(_key: string, value: T): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getItem<T>(_key: string): Promise<T | undefined> {\n if (!this.isNodeRuntime()) return undefined;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async removeItem(_key: string): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n//#endregion\n\n// --- global registry\nconst ALL_READY: Promise<void>[] = [];\n\n//#endregion\n\n//#region signal wrapper\nexport interface StorSignal<T> {\n (): T;\n set(v: T): Promise<void>;\n ready(): Promise<void>;\n signal: WritableSignal<T>;\n}\n\nfunction createStorSignal<T>(\n key: string,\n store: AsyncKVStore,\n options: StorOptions<T>,\n): StorSignal<T> {\n const hasDefault = options.defaultValue !== undefined;\n\n const s = signal<T>(options.defaultValue as T);\n\n const readyPromise = (async () => {\n // SSR: just use default\n if (!isBrowser && !isNode) {\n return;\n }\n\n const stored = await store.getItem<any>(key);\n\n if (stored !== undefined) {\n const v = options.transformFrom ? options.transformFrom(stored) : stored;\n\n s.set(v);\n } else if (hasDefault) {\n const toDb = options.transformTo\n ? options.transformTo(options.defaultValue as T)\n : options.defaultValue;\n\n await store.setItem(key, toDb as any);\n s.set(options.defaultValue as T);\n }\n })();\n\n ALL_READY.push(readyPromise);\n\n const fn = (() => s()) as StorSignal<T>;\n\n fn.signal = s;\n\n fn.set = async (v: T) => {\n s.set(v);\n\n const toDb = options.transformTo ? options.transformTo(v) : (v as any);\n\n await store.setItem(key, toDb);\n };\n\n fn.ready = () => readyPromise;\n\n return fn;\n}\n//#endregion\n\nconst create = <T>(\n engine: AsyncKVStore,\n scopeClass: ClassLike | undefined,\n memberName: string,\n options: StorOptions<T>,\n): StorSignal<T> => {\n const key = keyValue(scopeClass, memberName);\n return createStorSignal<T>(key, engine, options);\n};\n\nconst local = new LocalStorageStore();\nconst session = new SessionStorageStore();\nconst indexedDBInstace = new IndexedDbStore();\n\n//#region API\nexport namespace TaonStor {\n export function inLocalstorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n local,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inSessionStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n session,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inIndexedDbStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n indexedDBInstace,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function inFile<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function inJson<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export async function awaitAll(): Promise<void> {\n await Promise.all(ALL_READY);\n }\n}\n//#endregion\n\n/**\n * exampel useage\n *\n * class SomeAngularComponentOrWhatever {\n *\n * positionX = TaonStor.inLocalstorage({\n * defaultValue: 0\n * });\n *\n * async ngOnInit() {\n * console.log(this.positionX()) // I wonder if this can be angular signal\n *\n * this.positionX.set(12)\n *\n * await this.positionX.ready(); // but with addional this\n * }\n *\n * }\n *\n\n *\n */","// export * from './storage';\nexport * from './taon-stor';\n// export * from './storage';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAiBA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;AACnC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;AAE7B,MAAM,gBAAgB,GAAG,MAAa;AACpC,IAAA,IAAI;AACF,QAAA,OAAQ,UAAkB,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS;IACzD;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,SAAS;IAClB;AACF,CAAC;AAED,MAAM,SAAS,GAAG,CAAA,aAAA,EAAgB,gBAAgB,EAAE,EAAE;AAEtD,MAAM,gBAAgB,GAAG,MAAa;AACpC,IAAA,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,8BAA8B,CAAC,IAAI,EAAE,CAAC;AAC7E,IAAA,OAAO,OAAO,GAAG,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,GAAG,SAAS;AACxD,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,SAAS,EAAE,gBAAgB,EAAE;AAC7B,IAAA,SAAS,EAAE;AACT,QAAA,MAAM,EAAE,CAAA,EAAG,gBAAgB,EAAE,CAAA,UAAA,CAAY;AACzC,QAAA,SAAS,EAAE,eAAe;AAC3B,KAAA;CACF;AAID,MAAM,mBAAmB,GAAG,CAAC,GAAc,KAAsB;AAC/D,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE;;IAEjD,IAAI,OAAO,GAAG,KAAK,UAAU;QAC3B,OAAO,EAAE,IAAI,EAAG,GAAW,CAAC,IAAI,IAAI,UAAU,EAAE;;IAElD,OAAO,EAAE,IAAI,EAAG,GAAW,CAAC,IAAI,IAAI,UAAU,EAAE;AAClD,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,UAAqB,EAAE,UAAkB,KAAI;AAC7D,IAAA,MAAM,CAAC,GAAG,mBAAmB,CAAC,UAAU,CAAC;IACzC,OAAO,CAAA,EAAG,UAAU,CAAC,SAAS,CAAA,qBAAA,EAAwB,CAAC,CAAC,IAAI,CAAA,MAAA,EAAS,UAAU,CAAA,CAAE;AACnF,CAAC;AAED,MAAM,yBAAyB,GAAG,CAChC,UAAqB,EACrB,UAAkB,KACR;IACV,OAAO,CAAA,EAAG,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,qBAAqB;AACjE,CAAC;AAWD;AACA,MAAM,iBAAiB,CAAA;IACrB,MAAM,OAAO,CAAI,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,SAAS;QAChC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;QACrC,IAAI,GAAG,IAAI,IAAI;AAAE,YAAA,OAAO,SAAS;AACjC,QAAA,IAAI;AACF,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACxB;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,GAAU;QACnB;IACF;AAEA,IAAA,MAAM,OAAO,CAAI,GAAW,EAAE,KAAQ,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS;YAAE;AAChB,QAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClD;IAEA,MAAM,UAAU,CAAC,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS;YAAE;AAChB,QAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;IAC9B;AACD;AACD;AAEA;AACA,MAAM,mBAAoB,SAAQ,iBAAiB,CAAA;IACxC,MAAM,OAAO,CAAI,GAAW,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,SAAS;QAChC,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI;AAAE,YAAA,OAAO,SAAS;AACjC,QAAA,IAAI;AACF,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACxB;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,GAAU;QACnB;IACF;AAES,IAAA,MAAM,OAAO,CAAI,GAAW,EAAE,KAAQ,EAAA;AAC7C,QAAA,IAAI,CAAC,SAAS;YAAE;AAChB,QAAA,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpD;IAES,MAAM,UAAU,CAAC,GAAW,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS;YAAE;AAChB,QAAA,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;IAChC;AACD;AACD;AAEA;AACA,MAAM,cAAc,CAAA;AAApB,IAAA,WAAA,GAAA;QACU,IAAA,CAAA,SAAS,GAAgC,IAAI;IAuEvD;IArEU,MAAM,GAAA;QACZ,IAAI,CAAC,SAAS,IAAI,CAAE,MAAc,CAAC,SAAS,EAAE;YAC5C,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7D;QACA,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS;QAEzC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,SAAS;QAElD,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,MAAM,KAAI;YAC5D,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAErC,YAAA,GAAG,CAAC,eAAe,GAAG,MAAK;AACzB,gBAAA,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM;gBACrB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC5C,oBAAA,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;gBACjC;AACF,YAAA,CAAC;AAED,YAAA,GAAG,CAAC,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AACzC,YAAA,GAAG,CAAC,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACvC,QAAA,CAAC,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS;IACvB;AAEQ,IAAA,MAAM,SAAS,CACrB,IAAwB,EACxB,EAA4C,EAAA;AAE5C,QAAA,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE;AAC9B,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,SAAS;QAE1C,OAAO,MAAM,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,KAAI;YAC9C,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;YAC1C,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;AACvC,YAAA,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;AAErB,YAAA,GAAG,CAAC,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AACzC,YAAA,GAAG,CAAC,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AAErC,YAAA,EAAE,CAAC,OAAO,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;;AAErC,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,OAAO,CAAI,GAAW,EAAA;AAC1B,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChE,OAAQ,MAAc,KAAK,SAAS,GAAG,SAAS,GAAI,MAAc;QACpE;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,SAAS;QAClB;IACF;AAEA,IAAA,MAAM,OAAO,CAAI,GAAW,EAAE,KAAQ,EAAA;AACpC,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAY,EAAE,GAAG,CAAC,CAAC;QAClE;AAAE,QAAA,MAAM;;QAER;IACF;IAEA,MAAM,UAAU,CAAC,GAAW,EAAA;AAC1B,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAQ,CAAC;QAC9D;AAAE,QAAA,MAAM;;QAER;IACF;AACD;AACD;AAEA;AACA,MAAM,QAAQ,CAAA;IACZ,WAAA,CACU,QAAgB,EAChB,OAAA,GAAU,KAAK,EAAA;QADf,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,OAAO,GAAP,OAAO;IACd;IAEK,aAAa,GAAA;QACnB,OAAO,OAAO,CAAC,MAAM;IACvB;AAEA,IAAA,MAAM,OAAO,CAAI,IAAY,EAAE,KAAQ,EAAA;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE;;;;;;;;;;AAUzB,QAAA,QAAQ,KAAK,CAAC;IAClB;IAEA,MAAM,OAAO,CAAI,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAAE,YAAA,OAAO,SAAS;;;;;;;;;;;AAWzC,QAAA,QAAQ,KAAK,CAAC;IAClB;IAEA,MAAM,UAAU,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE;;;;;;;;AAQzB,QAAA,QAAQ,KAAK,CAAC;IAClB;AACD;AACD;AAEA;AACA,MAAM,SAAS,GAAoB,EAAE;AAYrC,SAAS,gBAAgB,CACvB,GAAW,EACX,KAAmB,EACnB,OAAuB,EAAA;AAEvB,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,KAAK,SAAS;IAErD,MAAM,CAAC,GAAG,MAAM,CAAI,OAAO,CAAC,YAAiB,6CAAC;AAE9C,IAAA,MAAM,YAAY,GAAG,CAAC,YAAW;;AAE/B,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE;YACzB;QACF;QAEA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAM,GAAG,CAAC;AAE5C,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM;AAExE,YAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACV;aAAO,IAAI,UAAU,EAAE;AACrB,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC;kBACjB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,YAAiB;AAC/C,kBAAE,OAAO,CAAC,YAAY;YAExB,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAW,CAAC;AACrC,YAAA,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAiB,CAAC;QAClC;IACF,CAAC,GAAG;AAEJ,IAAA,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;IAE5B,MAAM,EAAE,IAAI,MAAM,CAAC,EAAE,CAAkB;AAEvC,IAAA,EAAE,CAAC,MAAM,GAAG,CAAC;AAEb,IAAA,EAAE,CAAC,GAAG,GAAG,OAAO,CAAI,KAAI;AACtB,QAAA,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAER,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAI,CAAS;QAEtE,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;AAChC,IAAA,CAAC;AAED,IAAA,EAAE,CAAC,KAAK,GAAG,MAAM,YAAY;AAE7B,IAAA,OAAO,EAAE;AACX;AACA;AAEA,MAAM,MAAM,GAAG,CACb,MAAoB,EACpB,UAAiC,EACjC,UAAkB,EAClB,OAAuB,KACN;IACjB,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAC5C,OAAO,gBAAgB,CAAI,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC;AAClD,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAE;AACrC,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE;AACzC,MAAM,gBAAgB,GAAG,IAAI,cAAc,EAAE;AAE7C;AACM,IAAW;AAAjB,CAAA,UAAiB,QAAQ,EAAA;AACvB,IAAA,SAAgB,cAAc,CAC5B,OAAuB,EACvB,UAAsB,EAAA;AAEtB,QAAA,OAAO,MAAM,CACX,KAAK,EACL,UAAU,EACV,OAAO,CAAC,SAAS,IAAI,YAAY,EACjC,OAAO,CACR;IACH;AAVgB,IAAA,QAAA,CAAA,cAAc,iBAU7B;AAED,IAAA,SAAgB,gBAAgB,CAC9B,OAAuB,EACvB,UAAsB,EAAA;AAEtB,QAAA,OAAO,MAAM,CACX,OAAO,EACP,UAAU,EACV,OAAO,CAAC,SAAS,IAAI,YAAY,EACjC,OAAO,CACR;IACH;AAVgB,IAAA,QAAA,CAAA,gBAAgB,mBAU/B;AAED,IAAA,SAAgB,kBAAkB,CAChC,OAAuB,EACvB,UAAsB,EAAA;AAEtB,QAAA,OAAO,MAAM,CACX,gBAAgB,EAChB,UAAU,EACV,OAAO,CAAC,SAAS,IAAI,YAAY,EACjC,OAAO,CACR;IACH;AAVgB,IAAA,QAAA,CAAA,kBAAkB,qBAUjC;AAED,IAAA,SAAgB,MAAM,CACpB,OAAuB,EACvB,UAAsB,EAAA;;;;;;;;;AAUtB,QAAA,QAAQ,KAAK,CAAC;IAChB;AAbgB,IAAA,QAAA,CAAA,MAAM,SAarB;AAED,IAAA,SAAgB,MAAM,CACpB,OAAuB,EACvB,UAAsB,EAAA;;;;;;;;;AAUtB,QAAA,QAAQ,KAAK,CAAC;IAChB;AAbgB,IAAA,QAAA,CAAA,MAAM,SAarB;AAEM,IAAA,eAAe,QAAQ,GAAA;AAC5B,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IAC9B;AAFsB,IAAA,QAAA,CAAA,QAAQ,WAE7B;AACH,CAAC,EAtEgB,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;AAuEzB;AAEA;;;;;;;;;;;;;;;;;;;;;AAqBG;;AC5aH;AAEA;;ACFA;;AAEG;;;;"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taon-storage/websql",
3
- "version": "21.0.39",
3
+ "version": "21.0.41",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"
@@ -1,24 +1,24 @@
1
- # MyLib
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
- > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ # MyLib
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
8
+ > Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -1 +1 @@
1
- {"version":3,"file":"taon-storage-websql-prod.mjs","sources":["../../../tmp-libs-for-dist-websql-prod/taon-storage/projects/taon-storage/src/lib/taon-stor.ts","../../../tmp-libs-for-dist-websql-prod/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist-websql-prod/taon-storage/projects/taon-storage/src/taon-storage-websql-prod.ts"],"sourcesContent":["import { signal, WritableSignal } from '@angular/core';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawHorizontalLine, UtilsOs__NS__drawVerticalLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsGitBash, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__safeExitProgramCleanUp, UtilsOs__NS__sendNotification, UtilsOs__NS__whichOrWherePackageLocated } from 'tnp-core/websql-prod';\n\n//#region use all of this in new implementation\n\ninterface StorOptions<T = any> {\n defaultValue?: T;\n transformFrom?: (valueFromDb: any) => T;\n transformTo?: (valueToDb: T) => any;\n\n /**\n * property key in class\n * OR path to file/json\n */\n keyOrPath?: string;\n}\n\nconst isBrowser = UtilsOs__NS__isBrowser;\nconst isNode = UtilsOs__NS__isNode;\n\nconst safeLocationPort = (): string => {\n try {\n return (globalThis as any)?.location?.port || 'no-port';\n } catch {\n return 'no-port';\n }\n};\n\nconst storeName = `taon-storage_${safeLocationPort()}`;\n\nconst defaultNamespace = (): string => {\n const project = ___NS__kebabCase(globalThis['CURRENT_PROJECT_GENERIC_NAME'] ?? '');\n return project ? `${storeName}_${project}` : storeName;\n};\n\nconst StorConfig = {\n namespace: defaultNamespace(),\n indexedDb: {\n dbName: `${defaultNamespace()}_INDEXEDDB`,\n storeName: 'keyvaluepairs',\n },\n};\n\ntype ClassLike = Function | { name: string } | undefined;\n\nconst normalizeScopeClass = (cls: ClassLike): { name: string } => {\n if (!cls) return { name: '__GLOBAL_NAMESPACE__' };\n // if it's a function/class\n if (typeof cls === 'function')\n return { name: (cls as any).name || '__ANON__' };\n // if it's already object with name\n return { name: (cls as any).name || '__ANON__' };\n};\n\nconst keyValue = (scopeClass: ClassLike, memberName: string) => {\n const c = normalizeScopeClass(scopeClass);\n return `${StorConfig.namespace}::taon.storage.class.${c.name}.prop.${memberName}`;\n};\n\nconst keyDefaultValueAlreadySet = (\n scopeClass: ClassLike,\n memberName: string,\n): string => {\n return `${keyValue(scopeClass, memberName)}::defaultvalueisset`;\n};\n//#endregion\n\n//#region core\n\ninterface AsyncKVStore {\n getItem<T = any>(key: string): Promise<T | undefined>;\n setItem<T = any>(key: string, value: T): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n//#region local storage\nclass LocalStorageStore implements AsyncKVStore {\n async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = localStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n localStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region session storage\nclass SessionStorageStore extends LocalStorageStore {\n override async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = sessionStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n override async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n override async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region indexed db store\nclass IndexedDbStore implements AsyncKVStore {\n private dbPromise: Promise<IDBDatabase> | null = null;\n\n private openDb(): Promise<IDBDatabase> {\n if (!isBrowser || !(window as any).indexedDB) {\n return Promise.reject(new Error('IndexedDB not available'));\n }\n if (this.dbPromise) return this.dbPromise;\n\n const { dbName, storeName } = StorConfig.indexedDb;\n\n this.dbPromise = new Promise<IDBDatabase>((resolve, reject) => {\n const req = indexedDB.open(dbName, 1);\n\n req.onupgradeneeded = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n };\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n\n return this.dbPromise;\n }\n\n private async withStore<T>(\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => IDBRequest<T>,\n ): Promise<T> {\n const db = await this.openDb();\n const { storeName } = StorConfig.indexedDb;\n\n return await new Promise<T>((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n const req = fn(store);\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n\n tx.onabort = () => reject(tx.error);\n // tx.oncomplete => nothing\n });\n }\n\n async getItem<T>(key: string): Promise<T | undefined> {\n try {\n const result = await this.withStore('readonly', s => s.get(key));\n return (result as any) === undefined ? undefined : (result as any);\n } catch {\n return undefined;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.put(value as any, key));\n } catch {\n // ignore\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.delete(key) as any);\n } catch {\n // ignore\n }\n }\n}\n//#endregion\n\n//#region file stor\nclass FileStor implements AsyncKVStore {\n constructor(\n private filePath: string,\n private useJSON = false,\n ) {}\n\n private isNodeRuntime(): boolean {\n return UtilsOs__NS__isNode;\n }\n\n async setItem<T>(_key: string, value: T): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getItem<T>(_key: string): Promise<T | undefined> {\n if (!this.isNodeRuntime()) return undefined;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async removeItem(_key: string): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n//#endregion\n\n// --- global registry\nconst ALL_READY: Promise<void>[] = [];\n\n//#endregion\n\n//#region signal wrapper\nexport interface StorSignal<T> {\n (): T;\n set(v: T): Promise<void>;\n ready(): Promise<void>;\n signal: WritableSignal<T>;\n}\n\nfunction createStorSignal<T>(\n key: string,\n store: AsyncKVStore,\n options: StorOptions<T>,\n): StorSignal<T> {\n const hasDefault = options.defaultValue !== undefined;\n\n const s = signal<T>(options.defaultValue as T);\n\n const readyPromise = (async () => {\n // SSR: just use default\n if (!isBrowser && !isNode) {\n return;\n }\n\n const stored = await store.getItem<any>(key);\n\n if (stored !== undefined) {\n const v = options.transformFrom ? options.transformFrom(stored) : stored;\n\n s.set(v);\n } else if (hasDefault) {\n const toDb = options.transformTo\n ? options.transformTo(options.defaultValue as T)\n : options.defaultValue;\n\n await store.setItem(key, toDb as any);\n s.set(options.defaultValue as T);\n }\n })();\n\n ALL_READY.push(readyPromise);\n\n const fn = (() => s()) as StorSignal<T>;\n\n fn.signal = s;\n\n fn.set = async (v: T) => {\n s.set(v);\n\n const toDb = options.transformTo ? options.transformTo(v) : (v as any);\n\n await store.setItem(key, toDb);\n };\n\n fn.ready = () => readyPromise;\n\n return fn;\n}\n//#endregion\n\nconst create = <T>(\n engine: AsyncKVStore,\n scopeClass: ClassLike | undefined,\n memberName: string,\n options: StorOptions<T>,\n): StorSignal<T> => {\n const key = keyValue(scopeClass, memberName);\n return createStorSignal<T>(key, engine, options);\n};\n\nconst local = new LocalStorageStore();\nconst session = new SessionStorageStore();\nconst indexedDBInstace = new IndexedDbStore();\n\n//#region API\n//namespace TaonStor\n\n export function TaonStor__NS__inLocalstorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n local,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inSessionStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n session,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inIndexedDbStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n indexedDBInstace,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inFile<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function TaonStor__NS__inJson<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export async function TaonStor__NS__awaitAll(): Promise<void> {\n await Promise.all(ALL_READY);\n }\n\n//end of namespace TaonStor\n\n//#endregion\n\n/**\n * exampel useage\n *\n * class SomeAngularComponentOrWhatever {\n *\n * positionX = TaonStor__NS__inLocalstorage({\n * defaultValue: 0\n * });\n *\n * async ngOnInit() {\n * console.log(this.positionX()) // I wonder if this can be angular signal\n *\n * this.positionX.set(12)\n *\n * await this.positionX.ready(); // but with addional this\n * }\n *\n * }\n *\n\n *\n */","// export * from './storage';\nexport * from './taon-stor';\n// export * from './storage';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taon-storage-websql-prod.mjs","sources":["../../../tmp-libs-for-dist-websql-prod/taon-storage/projects/taon-storage/src/lib/taon-stor.ts","../../../tmp-libs-for-dist-websql-prod/taon-storage/projects/taon-storage/src/lib/index.ts","../../../tmp-libs-for-dist-websql-prod/taon-storage/projects/taon-storage/src/taon-storage-websql-prod.ts"],"sourcesContent":["import { signal, WritableSignal } from '@angular/core';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawHorizontalLine, UtilsOs__NS__drawVerticalLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsGitBash, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__safeExitProgramCleanUp, UtilsOs__NS__sendNotification, UtilsOs__NS__whichOrWherePackageLocated } from 'tnp-core/websql-prod';\n\n//#region use all of this in new implementation\n\ninterface StorOptions<T = any> {\n defaultValue?: T;\n transformFrom?: (valueFromDb: any) => T;\n transformTo?: (valueToDb: T) => any;\n\n /**\n * property key in class\n * OR path to file/json\n */\n keyOrPath?: string;\n}\n\nconst isBrowser = UtilsOs__NS__isBrowser;\nconst isNode = UtilsOs__NS__isNode;\n\nconst safeLocationPort = (): string => {\n try {\n return (globalThis as any)?.location?.port || 'no-port';\n } catch {\n return 'no-port';\n }\n};\n\nconst storeName = `taon-storage_${safeLocationPort()}`;\n\nconst defaultNamespace = (): string => {\n const project = ___NS__kebabCase(globalThis['CURRENT_PROJECT_GENERIC_NAME'] ?? '');\n return project ? `${storeName}_${project}` : storeName;\n};\n\nconst StorConfig = {\n namespace: defaultNamespace(),\n indexedDb: {\n dbName: `${defaultNamespace()}_INDEXEDDB`,\n storeName: 'keyvaluepairs',\n },\n};\n\ntype ClassLike = Function | { name: string } | undefined;\n\nconst normalizeScopeClass = (cls: ClassLike): { name: string } => {\n if (!cls) return { name: '__GLOBAL_NAMESPACE__' };\n // if it's a function/class\n if (typeof cls === 'function')\n return { name: (cls as any).name || '__ANON__' };\n // if it's already object with name\n return { name: (cls as any).name || '__ANON__' };\n};\n\nconst keyValue = (scopeClass: ClassLike, memberName: string) => {\n const c = normalizeScopeClass(scopeClass);\n return `${StorConfig.namespace}::taon.storage.class.${c.name}.prop.${memberName}`;\n};\n\nconst keyDefaultValueAlreadySet = (\n scopeClass: ClassLike,\n memberName: string,\n): string => {\n return `${keyValue(scopeClass, memberName)}::defaultvalueisset`;\n};\n//#endregion\n\n//#region core\n\ninterface AsyncKVStore {\n getItem<T = any>(key: string): Promise<T | undefined>;\n setItem<T = any>(key: string, value: T): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n//#region local storage\nclass LocalStorageStore implements AsyncKVStore {\n async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = localStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n localStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region session storage\nclass SessionStorageStore extends LocalStorageStore {\n override async getItem<T>(key: string): Promise<T | undefined> {\n if (!isBrowser) return undefined;\n const raw = sessionStorage.getItem(key);\n if (raw == null) return undefined;\n try {\n return JSON.parse(raw);\n } catch {\n return raw as any;\n }\n }\n\n override async setItem<T>(key: string, value: T): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.setItem(key, JSON.stringify(value));\n }\n\n override async removeItem(key: string): Promise<void> {\n if (!isBrowser) return;\n sessionStorage.removeItem(key);\n }\n}\n//#endregion\n\n//#region indexed db store\nclass IndexedDbStore implements AsyncKVStore {\n private dbPromise: Promise<IDBDatabase> | null = null;\n\n private openDb(): Promise<IDBDatabase> {\n if (!isBrowser || !(window as any).indexedDB) {\n return Promise.reject(new Error('IndexedDB not available'));\n }\n if (this.dbPromise) return this.dbPromise;\n\n const { dbName, storeName } = StorConfig.indexedDb;\n\n this.dbPromise = new Promise<IDBDatabase>((resolve, reject) => {\n const req = indexedDB.open(dbName, 1);\n\n req.onupgradeneeded = () => {\n const db = req.result;\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n };\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n });\n\n return this.dbPromise;\n }\n\n private async withStore<T>(\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => IDBRequest<T>,\n ): Promise<T> {\n const db = await this.openDb();\n const { storeName } = StorConfig.indexedDb;\n\n return await new Promise<T>((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n const req = fn(store);\n\n req.onsuccess = () => resolve(req.result);\n req.onerror = () => reject(req.error);\n\n tx.onabort = () => reject(tx.error);\n // tx.oncomplete => nothing\n });\n }\n\n async getItem<T>(key: string): Promise<T | undefined> {\n try {\n const result = await this.withStore('readonly', s => s.get(key));\n return (result as any) === undefined ? undefined : (result as any);\n } catch {\n return undefined;\n }\n }\n\n async setItem<T>(key: string, value: T): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.put(value as any, key));\n } catch {\n // ignore\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.withStore('readwrite', s => s.delete(key) as any);\n } catch {\n // ignore\n }\n }\n}\n//#endregion\n\n//#region file stor\nclass FileStor implements AsyncKVStore {\n constructor(\n private filePath: string,\n private useJSON = false,\n ) {}\n\n private isNodeRuntime(): boolean {\n return UtilsOs__NS__isNode;\n }\n\n async setItem<T>(_key: string, value: T): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async getItem<T>(_key: string): Promise<T | undefined> {\n if (!this.isNodeRuntime()) return undefined;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async removeItem(_key: string): Promise<void> {\n if (!this.isNodeRuntime()) return;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}\n//#endregion\n\n// --- global registry\nconst ALL_READY: Promise<void>[] = [];\n\n//#endregion\n\n//#region signal wrapper\nexport interface StorSignal<T> {\n (): T;\n set(v: T): Promise<void>;\n ready(): Promise<void>;\n signal: WritableSignal<T>;\n}\n\nfunction createStorSignal<T>(\n key: string,\n store: AsyncKVStore,\n options: StorOptions<T>,\n): StorSignal<T> {\n const hasDefault = options.defaultValue !== undefined;\n\n const s = signal<T>(options.defaultValue as T);\n\n const readyPromise = (async () => {\n // SSR: just use default\n if (!isBrowser && !isNode) {\n return;\n }\n\n const stored = await store.getItem<any>(key);\n\n if (stored !== undefined) {\n const v = options.transformFrom ? options.transformFrom(stored) : stored;\n\n s.set(v);\n } else if (hasDefault) {\n const toDb = options.transformTo\n ? options.transformTo(options.defaultValue as T)\n : options.defaultValue;\n\n await store.setItem(key, toDb as any);\n s.set(options.defaultValue as T);\n }\n })();\n\n ALL_READY.push(readyPromise);\n\n const fn = (() => s()) as StorSignal<T>;\n\n fn.signal = s;\n\n fn.set = async (v: T) => {\n s.set(v);\n\n const toDb = options.transformTo ? options.transformTo(v) : (v as any);\n\n await store.setItem(key, toDb);\n };\n\n fn.ready = () => readyPromise;\n\n return fn;\n}\n//#endregion\n\nconst create = <T>(\n engine: AsyncKVStore,\n scopeClass: ClassLike | undefined,\n memberName: string,\n options: StorOptions<T>,\n): StorSignal<T> => {\n const key = keyValue(scopeClass, memberName);\n return createStorSignal<T>(key, engine, options);\n};\n\nconst local = new LocalStorageStore();\nconst session = new SessionStorageStore();\nconst indexedDBInstace = new IndexedDbStore();\n\n//#region API\n//namespace TaonStor\n\n export function TaonStor__NS__inLocalstorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n local,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inSessionStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n session,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inIndexedDbStorage<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n return create(\n indexedDBInstace,\n scopeClass,\n options.keyOrPath ?? '__global__',\n options,\n );\n }\n\n export function TaonStor__NS__inFile<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export function TaonStor__NS__inJson<T>(\n options: StorOptions<T>,\n scopeClass?: ClassLike,\n ): StorSignal<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n export async function TaonStor__NS__awaitAll(): Promise<void> {\n await Promise.all(ALL_READY);\n }\n\n//end of namespace TaonStor\n\n//#endregion\n\n/**\n * exampel useage\n *\n * class SomeAngularComponentOrWhatever {\n *\n * positionX = TaonStor__NS__inLocalstorage({\n * defaultValue: 0\n * });\n *\n * async ngOnInit() {\n * console.log(this.positionX()) // I wonder if this can be angular signal\n *\n * this.positionX.set(12)\n *\n * await this.positionX.ready(); // but with addional this\n * }\n *\n * }\n *\n\n *\n */","// export * from './storage';\nexport * from './taon-stor';\n// export * from './storage';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taon-storage/websql-prod",
3
- "version": "21.0.39",
3
+ "version": "21.0.41",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"