@actdim/utico 0.9.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/store/persistentStore.d.ts +3 -3
- package/dist/store/persistentStore.d.ts.map +1 -1
- package/dist/store/persistentStore.es.js.map +1 -1
- package/dist/store/storeContracts.d.ts +2 -1
- package/dist/store/storeContracts.d.ts.map +1 -1
- package/dist/store/storeContracts.es.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { DataStore } from './dataStore';
|
|
2
|
-
import { MetadataRecord } from './storeContracts';
|
|
2
|
+
import { IPersistentStore, MetadataRecord } from './storeContracts';
|
|
3
3
|
export type PersistentStoreOptions = {
|
|
4
4
|
useEncryption: boolean;
|
|
5
5
|
};
|
|
6
|
-
export declare class PersistentStore
|
|
6
|
+
export declare class PersistentStore extends DataStore<MetadataRecord> implements IPersistentStore<MetadataRecord> {
|
|
7
7
|
private _options;
|
|
8
8
|
static deleteAsync(name: string): Promise<void>;
|
|
9
9
|
static existsAsync(name: string): Promise<boolean>;
|
|
10
|
-
static openAsync(name: string, options?: PersistentStoreOptions): Promise<PersistentStore
|
|
10
|
+
static openAsync(name: string, options?: PersistentStoreOptions): Promise<PersistentStore>;
|
|
11
11
|
constructor(name: string, options?: PersistentStoreOptions);
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=persistentStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistentStore.d.ts","sourceRoot":"","sources":["../../src/store/persistentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAY,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"persistentStore.d.ts","sourceRoot":"","sources":["../../src/store/persistentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAY,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAM9E,MAAM,MAAM,sBAAsB,GAAG;IACjC,aAAa,EAAE,OAAO,CAAC;CAC1B,CAAC;AASF,qBAAa,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAE,YAAW,gBAAgB,CAAC,cAAc,CAAC;IAEtG,OAAO,CAAC,QAAQ,CAAyB;IAEzC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM;IAI/B,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM;IAI/B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;gBAInD,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;CAI7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistentStore.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/persistentStore.ts"],"sourcesContent":["import { DataStore } from \"./dataStore\";\r\nimport { FieldDef, MetadataRecord } from \"./storeContracts\";\r\nimport { StoreDb } from \"./storeDb\";\r\n\r\n// TODO: implement real encryption:\r\n// https://stackoverflow.com/questions/18279141/javascript-string-encryption-and-decryption\r\n\r\nexport type PersistentStoreOptions = {\r\n useEncryption: boolean;\r\n};\r\n\r\nconst defaultPersistentStoreOptions = {\r\n useEncryption: false\r\n} satisfies PersistentStoreOptions;\r\n\r\n// (registry/catalog)fieldNames\r\nconst metadataFieldDefTemplate = [\"&key\", \"createdAt\", \"updatedAt\", \"tags\"] satisfies (FieldDef<keyof MetadataRecord>)[];\r\n// T extends MetadataRecord\r\nexport class PersistentStore
|
|
1
|
+
{"version":3,"file":"persistentStore.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/persistentStore.ts"],"sourcesContent":["import { DataStore } from \"./dataStore\";\r\nimport { FieldDef, IPersistentStore, MetadataRecord } from \"./storeContracts\";\r\nimport { StoreDb } from \"./storeDb\";\r\n\r\n// TODO: implement real encryption:\r\n// https://stackoverflow.com/questions/18279141/javascript-string-encryption-and-decryption\r\n\r\nexport type PersistentStoreOptions = {\r\n useEncryption: boolean;\r\n};\r\n\r\nconst defaultPersistentStoreOptions = {\r\n useEncryption: false\r\n} satisfies PersistentStoreOptions;\r\n\r\n// (registry/catalog)fieldNames\r\nconst metadataFieldDefTemplate = [\"&key\", \"createdAt\", \"updatedAt\", \"tags\"] satisfies (FieldDef<keyof MetadataRecord>)[];\r\n// T extends MetadataRecord\r\nexport class PersistentStore extends DataStore<MetadataRecord> implements IPersistentStore<MetadataRecord> {\r\n\r\n private _options: PersistentStoreOptions; // TODO: support\r\n\r\n static deleteAsync(name: string) {\r\n return StoreDb.deleteAsync(name);\r\n }\r\n\r\n static existsAsync(name: string) {\r\n return StoreDb.existsAsync(name);\r\n }\r\n\r\n static openAsync(name: string, options?: PersistentStoreOptions) {\r\n return StoreDb.openAsync(name, () => new PersistentStore(name, options));\r\n }\r\n\r\n constructor(name: string, options?: PersistentStoreOptions) {\r\n super(name, metadataFieldDefTemplate);\r\n this._options = { ...options, ...defaultPersistentStoreOptions };\r\n }\r\n}\r\n"],"names":["defaultPersistentStoreOptions","metadataFieldDefTemplate","PersistentStore","DataStore","name","StoreDb","options"],"mappings":";;AAWA,MAAMA,IAAgC;AAAA,EAClC,eAAe;AACnB,GAGMC,IAA2B,CAAC,QAAQ,aAAa,aAAa,MAAM;AAEnE,MAAMC,UAAwBC,EAAsE;AAAA,EAE/F;AAAA;AAAA,EAER,OAAO,YAAYC,GAAc;AAC7B,WAAOC,EAAQ,YAAYD,CAAI;AAAA,EACnC;AAAA,EAEA,OAAO,YAAYA,GAAc;AAC7B,WAAOC,EAAQ,YAAYD,CAAI;AAAA,EACnC;AAAA,EAEA,OAAO,UAAUA,GAAcE,GAAkC;AAC7D,WAAOD,EAAQ,UAAUD,GAAM,MAAM,IAAIF,EAAgBE,GAAME,CAAO,CAAC;AAAA,EAC3E;AAAA,EAEA,YAAYF,GAAcE,GAAkC;AACxD,UAAMF,GAAMH,CAAwB,GACpC,KAAK,WAAW,EAAE,GAAGK,GAAS,GAAGN,EAAA;AAAA,EACrC;AACJ;"}
|
|
@@ -41,7 +41,7 @@ export interface IStoreCollection<T extends MetadataRecord = MetadataRecord, TVa
|
|
|
41
41
|
modifyDataAsync(callback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;
|
|
42
42
|
modifyAsync(metadataCallback: (metadataRecord: T) => void, dataCallback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;
|
|
43
43
|
}
|
|
44
|
-
export interface IPersistentStore<T extends MetadataRecord> {
|
|
44
|
+
export interface IPersistentStore<T extends MetadataRecord = MetadataRecord> {
|
|
45
45
|
openAsync(): Promise<void>;
|
|
46
46
|
getKeysAsync(): Promise<string[]>;
|
|
47
47
|
containsAsync(key: string): Promise<boolean>;
|
|
@@ -53,5 +53,6 @@ export interface IPersistentStore<T extends MetadataRecord> {
|
|
|
53
53
|
getOrSetAsync<TValue = any>(metadataRecord: MetadataRecord, factory: (metadataRecord: MetadataRecord) => TValue): Promise<StoreItem<T, TValue>>;
|
|
54
54
|
bulkGetAsync<TValue = any>(keys: string[]): Promise<StoreItem<T, TValue>[]>;
|
|
55
55
|
bulkSetAsync<TValue = any>(metadataRecords: MetadataRecord[], dataRecords: DataRecord<TValue>[]): Promise<string[]>;
|
|
56
|
+
dispose(): void;
|
|
56
57
|
}
|
|
57
58
|
//# sourceMappingURL=storeContracts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storeContracts.d.ts","sourceRoot":"","sources":["../../src/store/storeContracts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"storeContracts.d.ts","sourceRoot":"","sources":["../../src/store/storeContracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storeContracts.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/storeContracts.ts"],"sourcesContent":["import { CommonPartFromSchema, KeyPathValueMap } from \"@/typeCore\";\r\nimport * as Dexie from \"dexie\";\r\n\r\n// Making some navigation properties non-enumerable will prevent them from being handled by IndexedDB\r\n// when doing put() or add().\r\n// Object.defineProperties(obj, {\r\n// ...: { value: [], enumerable: false, writable: true }\r\n// });\r\n\r\n// MetadataEntry\r\nexport class MetadataRecord {\r\n key?: string;\r\n createdAt?: number;\r\n updatedAt?: number; // lastModified\r\n tags?: string[];\r\n // timestamp?: number;\r\n // weight?: number;\r\n // score?: number;\r\n // startDate?/endDate?\r\n // validFrom?/validTo?\r\n}\r\n\r\n// DataEntry\r\nexport type DataRecord<TValue = any> = {\r\n key: string;\r\n value: TValue;\r\n}\r\n\r\nexport type StoreItem<T extends MetadataRecord = MetadataRecord, TValue = any> = {\r\n metadata?: T,\r\n data?: DataRecord<TValue>;\r\n}\r\n\r\nexport type ChangeSet<T, TKey = string> = {\r\n key: TKey;\r\n changes: KeyPathValueMap<T>;\r\n}\r\n\r\nexport type BaseMetadataField = keyof MetadataRecord;\r\n// ++: auto-increment primary key\r\n// &: unique\r\n// *: array\r\nexport type FieldDef<T extends string> = T | `&${T}` | `*${T}` | `++${T}`;\r\nexport type BaseFieldDef = FieldDef<BaseMetadataField>;\r\n\r\n// DbFieldTemplate\r\nexport type FieldDefTemplate<T extends string> = FieldDef<T>[];\r\n\r\nexport type IndexableType = Dexie.IndexableTypePart;\r\nexport type IndexableTypeArray = Dexie.IndexableTypeArray;\r\nexport type TransactionMode = Dexie.TransactionMode;\r\nexport type OrderDirection = \"asc\" | \"desc\";\r\n\r\nexport type StoreBase = {\r\n openAsync(): PromiseLike<void>;\r\n}\r\n\r\nexport interface IStoreCollection<T extends MetadataRecord = MetadataRecord, TValue = any> {\r\n\r\n toArrayAsync(orderBy?: keyof T, orderDirection?: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;\r\n\r\n orderByAsync(field: keyof T, direction: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;\r\n\r\n filter<S extends T>(filter: (x: T) => x is S): IStoreCollection<S, TValue>;\r\n\r\n limit(n: number): IStoreCollection<T, TValue>;\r\n\r\n offset(n: number): IStoreCollection<T, TValue>;\r\n\r\n getKeysAsync(): Promise<T[\"key\"][]>;\r\n\r\n getCountAsync(): Promise<number>;\r\n\r\n modifyMetadataAsync(callback: (metadataRecord: T) => void, transactionMode?: TransactionMode): Promise<number>;\r\n\r\n modifyDataAsync(callback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;\r\n\r\n modifyAsync(metadataCallback: (metadataRecord: T) => void, dataCallback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;\r\n}\r\n\r\n// IKVStore\r\nexport interface IPersistentStore<T extends MetadataRecord> {\r\n\r\n openAsync(): Promise<void>;\r\n\r\n getKeysAsync(): Promise<string[]>;\r\n\r\n containsAsync(key: string): Promise<boolean>;\r\n\r\n deleteAsync(key: string): Promise<void>;\r\n\r\n bulkDeleteAsync(keys: string[]): Promise<void>;\r\n\r\n clearAsync(): Promise<void>;\r\n\r\n getAsync<TValue = any>(key: string): Promise<StoreItem<T, TValue>>;\r\n\r\n setAsync<TValue = any>(metadataRecord: T, value: TValue): Promise<string>;\r\n\r\n getOrSetAsync<TValue = any>(metadataRecord: MetadataRecord, factory: (metadataRecord: MetadataRecord) => TValue): Promise<StoreItem<T, TValue>>\r\n\r\n bulkGetAsync<TValue = any>(keys: string[]): Promise<StoreItem<T, TValue>[]>;\r\n\r\n bulkSetAsync<TValue = any>(metadataRecords: MetadataRecord[], dataRecords: DataRecord<TValue>[]): Promise<string[]>;\r\n}"],"names":["MetadataRecord"],"mappings":"AAUO,MAAMA,EAAe;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMJ;"}
|
|
1
|
+
{"version":3,"file":"storeContracts.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/storeContracts.ts"],"sourcesContent":["import { CommonPartFromSchema, KeyPathValueMap } from \"@/typeCore\";\r\nimport * as Dexie from \"dexie\";\r\n\r\n// Making some navigation properties non-enumerable will prevent them from being handled by IndexedDB\r\n// when doing put() or add().\r\n// Object.defineProperties(obj, {\r\n// ...: { value: [], enumerable: false, writable: true }\r\n// });\r\n\r\n// MetadataEntry\r\nexport class MetadataRecord {\r\n key?: string;\r\n createdAt?: number;\r\n updatedAt?: number; // lastModified\r\n tags?: string[];\r\n // timestamp?: number;\r\n // weight?: number;\r\n // score?: number;\r\n // startDate?/endDate?\r\n // validFrom?/validTo?\r\n}\r\n\r\n// DataEntry\r\nexport type DataRecord<TValue = any> = {\r\n key: string;\r\n value: TValue;\r\n}\r\n\r\nexport type StoreItem<T extends MetadataRecord = MetadataRecord, TValue = any> = {\r\n metadata?: T,\r\n data?: DataRecord<TValue>;\r\n}\r\n\r\nexport type ChangeSet<T, TKey = string> = {\r\n key: TKey;\r\n changes: KeyPathValueMap<T>;\r\n}\r\n\r\nexport type BaseMetadataField = keyof MetadataRecord;\r\n// ++: auto-increment primary key\r\n// &: unique\r\n// *: array\r\nexport type FieldDef<T extends string> = T | `&${T}` | `*${T}` | `++${T}`;\r\nexport type BaseFieldDef = FieldDef<BaseMetadataField>;\r\n\r\n// DbFieldTemplate\r\nexport type FieldDefTemplate<T extends string> = FieldDef<T>[];\r\n\r\nexport type IndexableType = Dexie.IndexableTypePart;\r\nexport type IndexableTypeArray = Dexie.IndexableTypeArray;\r\nexport type TransactionMode = Dexie.TransactionMode;\r\nexport type OrderDirection = \"asc\" | \"desc\";\r\n\r\nexport type StoreBase = {\r\n openAsync(): PromiseLike<void>;\r\n}\r\n\r\nexport interface IStoreCollection<T extends MetadataRecord = MetadataRecord, TValue = any> {\r\n\r\n toArrayAsync(orderBy?: keyof T, orderDirection?: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;\r\n\r\n orderByAsync(field: keyof T, direction: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;\r\n\r\n filter<S extends T>(filter: (x: T) => x is S): IStoreCollection<S, TValue>;\r\n\r\n limit(n: number): IStoreCollection<T, TValue>;\r\n\r\n offset(n: number): IStoreCollection<T, TValue>;\r\n\r\n getKeysAsync(): Promise<T[\"key\"][]>;\r\n\r\n getCountAsync(): Promise<number>;\r\n\r\n modifyMetadataAsync(callback: (metadataRecord: T) => void, transactionMode?: TransactionMode): Promise<number>;\r\n\r\n modifyDataAsync(callback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;\r\n\r\n modifyAsync(metadataCallback: (metadataRecord: T) => void, dataCallback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;\r\n}\r\n\r\n// IKVStore\r\nexport interface IPersistentStore<T extends MetadataRecord = MetadataRecord> {\r\n\r\n openAsync(): Promise<void>;\r\n\r\n getKeysAsync(): Promise<string[]>;\r\n\r\n containsAsync(key: string): Promise<boolean>;\r\n\r\n deleteAsync(key: string): Promise<void>;\r\n\r\n bulkDeleteAsync(keys: string[]): Promise<void>;\r\n\r\n clearAsync(): Promise<void>;\r\n\r\n getAsync<TValue = any>(key: string): Promise<StoreItem<T, TValue>>;\r\n\r\n setAsync<TValue = any>(metadataRecord: T, value: TValue): Promise<string>;\r\n\r\n getOrSetAsync<TValue = any>(metadataRecord: MetadataRecord, factory: (metadataRecord: MetadataRecord) => TValue): Promise<StoreItem<T, TValue>>\r\n\r\n bulkGetAsync<TValue = any>(keys: string[]): Promise<StoreItem<T, TValue>[]>;\r\n\r\n bulkSetAsync<TValue = any>(metadataRecords: MetadataRecord[], dataRecords: DataRecord<TValue>[]): Promise<string[]>;\r\n\r\n dispose(): void;\r\n}"],"names":["MetadataRecord"],"mappings":"AAUO,MAAMA,EAAe;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMJ;"}
|