tnp-core 21.0.120 → 21.0.122

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.
Files changed (133) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/package.json +1 -1
  3. package/browser-prod/package.json +1 -1
  4. package/cli.backend.js +2 -2
  5. package/lib/build-info._auto-generated_.d.ts +1 -1
  6. package/lib/build-info._auto-generated_.js +1 -1
  7. package/lib/index.d.ts +1 -0
  8. package/lib/index.js +1 -0
  9. package/lib/index.js.map +1 -1
  10. package/lib/lowdb/adapters/Memory.d.ts +11 -0
  11. package/lib/lowdb/adapters/Memory.js +26 -0
  12. package/lib/lowdb/adapters/Memory.js.map +1 -0
  13. package/lib/lowdb/adapters/client/LocalStorage.d.ts +4 -0
  14. package/lib/lowdb/adapters/client/LocalStorage.js +13 -0
  15. package/lib/lowdb/adapters/client/LocalStorage.js.map +1 -0
  16. package/lib/lowdb/adapters/client/SessionStorage.d.ts +4 -0
  17. package/lib/lowdb/adapters/client/SessionStorage.js +13 -0
  18. package/lib/lowdb/adapters/client/SessionStorage.js.map +1 -0
  19. package/lib/lowdb/adapters/client/WebStorage.d.ts +8 -0
  20. package/lib/lowdb/adapters/client/WebStorage.js +24 -0
  21. package/lib/lowdb/adapters/client/WebStorage.js.map +1 -0
  22. package/lib/lowdb/adapters/node/DataFile.d.ts +25 -0
  23. package/lib/lowdb/adapters/node/DataFile.js +52 -0
  24. package/lib/lowdb/adapters/node/DataFile.js.map +1 -0
  25. package/lib/lowdb/adapters/node/JSONFile.d.ts +8 -0
  26. package/lib/lowdb/adapters/node/JSONFile.js +24 -0
  27. package/lib/lowdb/adapters/node/JSONFile.js.map +1 -0
  28. package/lib/lowdb/adapters/node/TextFile.d.ts +17 -0
  29. package/lib/lowdb/adapters/node/TextFile.js +62 -0
  30. package/lib/lowdb/adapters/node/TextFile.js.map +1 -0
  31. package/lib/lowdb/adapters/node/steno.d.ts +13 -0
  32. package/lib/lowdb/adapters/node/steno.js +93 -0
  33. package/lib/lowdb/adapters/node/steno.js.map +1 -0
  34. package/lib/lowdb/browser.d.ts +3 -0
  35. package/lib/lowdb/browser.js +22 -0
  36. package/lib/lowdb/browser.js.map +1 -0
  37. package/lib/lowdb/core/Low.d.ts +24 -0
  38. package/lib/lowdb/core/Low.js +57 -0
  39. package/lib/lowdb/core/Low.js.map +1 -0
  40. package/lib/lowdb/examples/browser.d.ts +1 -0
  41. package/lib/lowdb/examples/browser.js +9 -0
  42. package/lib/lowdb/examples/browser.js.map +1 -0
  43. package/lib/lowdb/examples/cli.d.ts +0 -0
  44. package/lib/lowdb/examples/cli.js +9 -0
  45. package/lib/lowdb/examples/cli.js.map +1 -0
  46. package/lib/lowdb/examples/in-memory.d.ts +0 -0
  47. package/lib/lowdb/examples/in-memory.js +22 -0
  48. package/lib/lowdb/examples/in-memory.js.map +1 -0
  49. package/lib/lowdb/examples/server.d.ts +0 -0
  50. package/lib/lowdb/examples/server.js +36 -0
  51. package/lib/lowdb/examples/server.js.map +1 -0
  52. package/lib/lowdb/index.d.ts +3 -0
  53. package/lib/lowdb/index.js +22 -0
  54. package/lib/lowdb/index.js.map +1 -0
  55. package/lib/lowdb/node.d.ts +4 -0
  56. package/lib/lowdb/node.js +23 -0
  57. package/lib/lowdb/node.js.map +1 -0
  58. package/lib/lowdb/presets/browser.d.ts +3 -0
  59. package/lib/lowdb/presets/browser.js +22 -0
  60. package/lib/lowdb/presets/browser.js.map +1 -0
  61. package/lib/lowdb/presets/node.d.ts +4 -0
  62. package/lib/lowdb/presets/node.js +25 -0
  63. package/lib/lowdb/presets/node.js.map +1 -0
  64. package/lib/node-chalk-mock.js +2 -2
  65. package/lib/node-path-mock.js +2 -2
  66. package/lib/package.json +1 -1
  67. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  68. package/lib-prod/build-info._auto-generated_.js +1 -1
  69. package/lib-prod/index.d.ts +1 -0
  70. package/lib-prod/index.js +1 -0
  71. package/lib-prod/index.js.map +1 -1
  72. package/lib-prod/lowdb/adapters/Memory.d.ts +11 -0
  73. package/lib-prod/lowdb/adapters/Memory.js +21 -0
  74. package/lib-prod/lowdb/adapters/Memory.js.map +1 -0
  75. package/lib-prod/lowdb/adapters/client/LocalStorage.d.ts +4 -0
  76. package/lib-prod/lowdb/adapters/client/LocalStorage.js +9 -0
  77. package/lib-prod/lowdb/adapters/client/LocalStorage.js.map +1 -0
  78. package/lib-prod/lowdb/adapters/client/SessionStorage.d.ts +4 -0
  79. package/lib-prod/lowdb/adapters/client/SessionStorage.js +9 -0
  80. package/lib-prod/lowdb/adapters/client/SessionStorage.js.map +1 -0
  81. package/lib-prod/lowdb/adapters/client/WebStorage.d.ts +8 -0
  82. package/lib-prod/lowdb/adapters/client/WebStorage.js +20 -0
  83. package/lib-prod/lowdb/adapters/client/WebStorage.js.map +1 -0
  84. package/lib-prod/lowdb/adapters/node/DataFile.d.ts +25 -0
  85. package/lib-prod/lowdb/adapters/node/DataFile.js +47 -0
  86. package/lib-prod/lowdb/adapters/node/DataFile.js.map +1 -0
  87. package/lib-prod/lowdb/adapters/node/JSONFile.d.ts +8 -0
  88. package/lib-prod/lowdb/adapters/node/JSONFile.js +19 -0
  89. package/lib-prod/lowdb/adapters/node/JSONFile.js.map +1 -0
  90. package/lib-prod/lowdb/adapters/node/TextFile.d.ts +17 -0
  91. package/lib-prod/lowdb/adapters/node/TextFile.js +57 -0
  92. package/lib-prod/lowdb/adapters/node/TextFile.js.map +1 -0
  93. package/lib-prod/lowdb/adapters/node/steno.d.ts +13 -0
  94. package/lib-prod/lowdb/adapters/node/steno.js +89 -0
  95. package/lib-prod/lowdb/adapters/node/steno.js.map +1 -0
  96. package/lib-prod/lowdb/browser.d.ts +3 -0
  97. package/lib-prod/lowdb/browser.js +6 -0
  98. package/lib-prod/lowdb/browser.js.map +1 -0
  99. package/lib-prod/lowdb/core/Low.d.ts +24 -0
  100. package/lib-prod/lowdb/core/Low.js +52 -0
  101. package/lib-prod/lowdb/core/Low.js.map +1 -0
  102. package/lib-prod/lowdb/examples/browser.d.ts +1 -0
  103. package/lib-prod/lowdb/examples/browser.js +8 -0
  104. package/lib-prod/lowdb/examples/browser.js.map +1 -0
  105. package/lib-prod/lowdb/examples/cli.d.ts +0 -0
  106. package/lib-prod/lowdb/examples/cli.js +9 -0
  107. package/lib-prod/lowdb/examples/cli.js.map +1 -0
  108. package/lib-prod/lowdb/examples/in-memory.d.ts +0 -0
  109. package/lib-prod/lowdb/examples/in-memory.js +22 -0
  110. package/lib-prod/lowdb/examples/in-memory.js.map +1 -0
  111. package/lib-prod/lowdb/examples/server.d.ts +0 -0
  112. package/lib-prod/lowdb/examples/server.js +36 -0
  113. package/lib-prod/lowdb/examples/server.js.map +1 -0
  114. package/lib-prod/lowdb/index.d.ts +3 -0
  115. package/lib-prod/lowdb/index.js +6 -0
  116. package/lib-prod/lowdb/index.js.map +1 -0
  117. package/lib-prod/lowdb/node.d.ts +4 -0
  118. package/lib-prod/lowdb/node.js +7 -0
  119. package/lib-prod/lowdb/node.js.map +1 -0
  120. package/lib-prod/lowdb/presets/browser.d.ts +3 -0
  121. package/lib-prod/lowdb/presets/browser.js +18 -0
  122. package/lib-prod/lowdb/presets/browser.js.map +1 -0
  123. package/lib-prod/lowdb/presets/node.d.ts +4 -0
  124. package/lib-prod/lowdb/presets/node.js +21 -0
  125. package/lib-prod/lowdb/presets/node.js.map +1 -0
  126. package/lib-prod/node-chalk-mock.d.ts +1 -1
  127. package/lib-prod/node-chalk-mock.js +1 -1
  128. package/lib-prod/node-path-mock.d.ts +1 -1
  129. package/lib-prod/node-path-mock.js +1 -1
  130. package/lib-prod/package.json +1 -1
  131. package/package.json +1 -1
  132. package/websql/package.json +1 -1
  133. package/websql-prod/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "commitHash": "b7471485d14d8ec0b932489d9fec27db265b8db7",
3
- "commitName": "fix: hide node notifier helper",
4
- "commitDate": "08-04-2026 00:42:33"
2
+ "commitHash": "4343c78d3bb254924f599f919a08ff1776d9c5ee",
3
+ "commitName": "chore: update",
4
+ "commitDate": "09-04-2026 20:13:18"
5
5
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tnp-core/browser",
3
- "version": "21.0.120",
3
+ "version": "21.0.122",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tnp-core/browser-prod",
3
- "version": "21.0.120",
3
+ "version": "21.0.122",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"
package/cli.backend.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dummy1775603814823 = dummy1775603814823;
4
- function dummy1775603814823() { }
3
+ exports.dummy1775776052151 = dummy1775776052151;
4
+ function dummy1775776052151() { }
5
5
  //# sourceMappingURL=cli.backend.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.120";
24
+ export declare const CURRENT_PACKAGE_VERSION = "21.0.122";
@@ -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.120';
28
+ exports.CURRENT_PACKAGE_VERSION = '21.0.122';
29
29
  // THIS FILE IS GENERATED - DO NOT MODIFY
30
30
  //# sourceMappingURL=build-info._auto-generated_.js.map
package/lib/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export * from './utils-os';
13
13
  export * from './utils-process';
14
14
  export * from './utils-process-logger';
15
15
  export * from './utils-terminal';
16
+ export * from './lowdb';
16
17
  export * from './core-cli';
17
18
  export * from './required-global-npm-packages';
18
19
  export * from './helpers';
package/lib/index.js CHANGED
@@ -29,6 +29,7 @@ __exportStar(require("./utils-os"), exports);
29
29
  __exportStar(require("./utils-process"), exports);
30
30
  __exportStar(require("./utils-process-logger"), exports);
31
31
  __exportStar(require("./utils-terminal"), exports);
32
+ __exportStar(require("./lowdb"), exports); // @backend
32
33
  __exportStar(require("./core-cli"), exports);
33
34
  __exportStar(require("./required-global-npm-packages"), exports);
34
35
  __exportStar(require("./helpers"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,qDAAmC;AACnC,iDAA+B;AAC/B,gDAA8B;AAC9B,gDAA8B;AAC9B,kDAAgC;AAChC,0CAAwB;AACxB,oDAAkC;AAClC,oDAAkC;AAClC,wDAAsC;AACtC,kDAAgC;AAChC,6CAA2B;AAC3B,kDAAgC;AAChC,yDAAuC;AACvC,mDAAiC;AAEjC,6CAA2B;AAC3B,iEAA+C;AAC/C,4CAA0B;AAC1B,mDAAiC;AACjC,wDAAsC;AACtC,2CAAyB;AACzB,8CAA4B;AAC5B,kEAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,qDAAmC;AACnC,iDAA+B;AAC/B,gDAA8B;AAC9B,gDAA8B;AAC9B,kDAAgC;AAChC,0CAAwB;AACxB,oDAAkC;AAClC,oDAAkC;AAClC,wDAAsC;AACtC,kDAAgC;AAChC,6CAA2B;AAC3B,kDAAgC;AAChC,yDAAuC;AACvC,mDAAiC;AACjC,0CAAwB,CAAC,WAAW;AAEpC,6CAA2B;AAC3B,iEAA+C;AAC/C,4CAA0B;AAC1B,mDAAiC;AACjC,wDAAsC;AACtC,2CAAyB;AACzB,8CAA4B;AAC5B,kEAAgD"}
@@ -0,0 +1,11 @@
1
+ import { Adapter, SyncAdapter } from '../core/Low';
2
+ export declare class Memory<T> implements Adapter<T> {
3
+ __data: T | null;
4
+ read(): Promise<T | null>;
5
+ write(obj: T): Promise<void>;
6
+ }
7
+ export declare class MemorySync<T> implements SyncAdapter<T> {
8
+ __data: T | null;
9
+ read(): T | null;
10
+ write(obj: T): void;
11
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemorySync = exports.Memory = void 0;
4
+ class Memory {
5
+ __data = null;
6
+ read() {
7
+ return Promise.resolve(this.__data);
8
+ }
9
+ write(obj) {
10
+ this.__data = obj;
11
+ return Promise.resolve();
12
+ }
13
+ }
14
+ exports.Memory = Memory;
15
+ class MemorySync {
16
+ __data = null;
17
+ read() {
18
+ return this.__data || null;
19
+ }
20
+ write(obj) {
21
+ this.__data = obj;
22
+ }
23
+ }
24
+ exports.MemorySync = MemorySync;
25
+ //#endregion
26
+ //# sourceMappingURL=Memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Memory.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAGA,MAAa,MAAM;IACjB,MAAM,GAAa,IAAI,CAAA;IAEvB,IAAI;QACF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,GAAM;QACV,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;QACjB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF;AAXD,wBAWC;AAED,MAAa,UAAU;IACrB,MAAM,GAAa,IAAI,CAAA;IAEvB,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,GAAM;QACV,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;IACnB,CAAC;CACF;AAVD,gCAUC;AACD,YAAY"}
@@ -0,0 +1,4 @@
1
+ import { WebStorage } from './WebStorage';
2
+ export declare class LocalStorage<T> extends WebStorage<T> {
3
+ constructor(key: string);
4
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocalStorage = void 0;
4
+ //#region @backend
5
+ const WebStorage_1 = require("./WebStorage");
6
+ class LocalStorage extends WebStorage_1.WebStorage {
7
+ constructor(key) {
8
+ super(key, localStorage);
9
+ }
10
+ }
11
+ exports.LocalStorage = LocalStorage;
12
+ //#endregion
13
+ //# sourceMappingURL=LocalStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalStorage.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,kBAAkB;AAClB,6CAA0C;AAE1C,MAAa,YAAgB,SAAQ,uBAAa;IAChD,YAAY,GAAW;QACrB,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC3B,CAAC;CACF;AAJD,oCAIC;AACD,YAAY"}
@@ -0,0 +1,4 @@
1
+ import { WebStorage } from './WebStorage';
2
+ export declare class SessionStorage<T> extends WebStorage<T> {
3
+ constructor(key: string);
4
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionStorage = void 0;
4
+ //#region @backend
5
+ const WebStorage_1 = require("./WebStorage");
6
+ class SessionStorage extends WebStorage_1.WebStorage {
7
+ constructor(key) {
8
+ super(key, sessionStorage);
9
+ }
10
+ }
11
+ exports.SessionStorage = SessionStorage;
12
+ //#endregion
13
+ //# sourceMappingURL=SessionStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionStorage.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,oBAAoB;AACpB,6CAAyC;AAEzC,MAAa,cAAkB,SAAQ,uBAAa;IAClD,YAAY,GAAW;QACrB,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IAC5B,CAAC;CACF;AAJD,wCAIC;AACD,YAAY"}
@@ -0,0 +1,8 @@
1
+ import { SyncAdapter } from '../../core/Low';
2
+ export declare class WebStorage<T> implements SyncAdapter<T> {
3
+ __key: string;
4
+ __storage: Storage;
5
+ constructor(key: string, storage: Storage);
6
+ read(): T | null;
7
+ write(obj: T): void;
8
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebStorage = void 0;
4
+ class WebStorage {
5
+ __key;
6
+ __storage;
7
+ constructor(key, storage) {
8
+ this.__key = key;
9
+ this.__storage = storage;
10
+ }
11
+ read() {
12
+ const value = this.__storage.getItem(this.__key);
13
+ if (value === null) {
14
+ return null;
15
+ }
16
+ return JSON.parse(value);
17
+ }
18
+ write(obj) {
19
+ this.__storage.setItem(this.__key, JSON.stringify(obj));
20
+ }
21
+ }
22
+ exports.WebStorage = WebStorage;
23
+ //#endregion
24
+ //# sourceMappingURL=WebStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebStorage.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IACrB,KAAK,CAAQ;IACb,SAAS,CAAS;IAElB,YAAY,GAAW,EAAE,OAAgB;QACvC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAA;IAC1B,CAAC;IAED,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEhD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,GAAM;QACV,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IACzD,CAAC;CACF;AAtBD,gCAsBC;AACD,YAAY"}
@@ -0,0 +1,25 @@
1
+ import { PathLike } from 'fs';
2
+ import { Adapter, SyncAdapter } from '../../core/Low';
3
+ import { TextFile, TextFileSync } from './TextFile';
4
+ export declare class DataFile<T> implements Adapter<T> {
5
+ __adapter: TextFile;
6
+ __parse: (str: string) => T;
7
+ __stringify: (data: T) => string;
8
+ constructor(filename: PathLike, { parse, stringify, }: {
9
+ parse: (str: string) => T;
10
+ stringify: (data: T) => string;
11
+ });
12
+ read(): Promise<T | null>;
13
+ write(obj: T): Promise<void>;
14
+ }
15
+ export declare class DataFileSync<T> implements SyncAdapter<T> {
16
+ __adapter: TextFileSync;
17
+ __parse: (str: string) => T;
18
+ __stringify: (data: T) => string;
19
+ constructor(filename: PathLike, { parse, stringify, }: {
20
+ parse: (str: string) => T;
21
+ stringify: (data: T) => string;
22
+ });
23
+ read(): T | null;
24
+ write(obj: T): void;
25
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataFileSync = exports.DataFile = void 0;
4
+ const TextFile_1 = require("./TextFile");
5
+ class DataFile {
6
+ __adapter;
7
+ __parse;
8
+ __stringify;
9
+ constructor(filename, { parse, stringify, }) {
10
+ this.__adapter = new TextFile_1.TextFile(filename);
11
+ this.__parse = parse;
12
+ this.__stringify = stringify;
13
+ }
14
+ async read() {
15
+ const data = await this.__adapter.read();
16
+ if (data === null) {
17
+ return null;
18
+ }
19
+ else {
20
+ return this.__parse(data);
21
+ }
22
+ }
23
+ write(obj) {
24
+ return this.__adapter.write(this.__stringify(obj));
25
+ }
26
+ }
27
+ exports.DataFile = DataFile;
28
+ class DataFileSync {
29
+ __adapter;
30
+ __parse;
31
+ __stringify;
32
+ constructor(filename, { parse, stringify, }) {
33
+ this.__adapter = new TextFile_1.TextFileSync(filename);
34
+ this.__parse = parse;
35
+ this.__stringify = stringify;
36
+ }
37
+ read() {
38
+ const data = this.__adapter.read();
39
+ if (data === null) {
40
+ return null;
41
+ }
42
+ else {
43
+ return this.__parse(data);
44
+ }
45
+ }
46
+ write(obj) {
47
+ this.__adapter.write(this.__stringify(obj));
48
+ }
49
+ }
50
+ exports.DataFileSync = DataFileSync;
51
+ //#endregion
52
+ //# sourceMappingURL=DataFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataFile.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAIA,yCAAmD;AAEnD,MAAa,QAAQ;IACnB,SAAS,CAAU;IACnB,OAAO,CAAoB;IAC3B,WAAW,CAAqB;IAEhC,YACE,QAAkB,EAClB,EACE,KAAK,EACL,SAAS,GAIV;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAQ,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QACxC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAM;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;CACF;AAhCD,4BAgCC;AAED,MAAa,YAAY;IACvB,SAAS,CAAc;IACvB,OAAO,CAAoB;IAC3B,WAAW,CAAqB;IAEhC,YACE,QAAkB,EAClB,EACE,KAAK,EACL,SAAS,GAIV;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,uBAAY,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;IAC9B,CAAC;IAED,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAM;QACV,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7C,CAAC;CACF;AAhCD,oCAgCC;AACD,YAAY"}
@@ -0,0 +1,8 @@
1
+ import { PathLike } from 'fs';
2
+ import { DataFile, DataFileSync } from './DataFile';
3
+ export declare class JSONFile<T> extends DataFile<T> {
4
+ constructor(filename: PathLike);
5
+ }
6
+ export declare class JSONFileSync<T> extends DataFileSync<T> {
7
+ constructor(filename: PathLike);
8
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JSONFileSync = exports.JSONFile = void 0;
4
+ const DataFile_1 = require("./DataFile");
5
+ class JSONFile extends DataFile_1.DataFile {
6
+ constructor(filename) {
7
+ super(filename, {
8
+ parse: JSON.parse,
9
+ stringify: (data) => JSON.stringify(data, null, 2),
10
+ });
11
+ }
12
+ }
13
+ exports.JSONFile = JSONFile;
14
+ class JSONFileSync extends DataFile_1.DataFileSync {
15
+ constructor(filename) {
16
+ super(filename, {
17
+ parse: JSON.parse,
18
+ stringify: (data) => JSON.stringify(data, null, 2),
19
+ });
20
+ }
21
+ }
22
+ exports.JSONFileSync = JSONFileSync;
23
+ //#endregion
24
+ //# sourceMappingURL=JSONFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JSONFile.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAGA,yCAAoD;AAEpD,MAAa,QAAY,SAAQ,mBAAW;IAC1C,YAAY,QAAkB;QAC5B,KAAK,CAAC,QAAQ,EAAE;YACd,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,CAAC,IAAO,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;CACF;AAPD,4BAOC;AAED,MAAa,YAAgB,SAAQ,uBAAe;IAClD,YAAY,QAAkB;QAC5B,KAAK,CAAC,QAAQ,EAAE;YACd,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,CAAC,IAAO,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;CACF;AAPD,oCAOC;AACD,YAAY"}
@@ -0,0 +1,17 @@
1
+ import { PathLike } from 'node:fs';
2
+ import { Adapter, SyncAdapter } from '../../core/Low';
3
+ import { Writer } from './steno';
4
+ export declare class TextFile implements Adapter<string> {
5
+ __filename: PathLike;
6
+ __writer: Writer;
7
+ constructor(filename: PathLike);
8
+ read(): Promise<string | null>;
9
+ write(str: string): Promise<void>;
10
+ }
11
+ export declare class TextFileSync implements SyncAdapter<string> {
12
+ __tempFilename: PathLike;
13
+ __filename: PathLike;
14
+ constructor(filename: PathLike);
15
+ read(): string | null;
16
+ write(str: string): void;
17
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextFileSync = exports.TextFile = void 0;
4
+ //#region @backend
5
+ const node_fs_1 = require("node:fs");
6
+ const promises_1 = require("node:fs/promises");
7
+ const core_imports_1 = require("../../../core-imports");
8
+ const steno_1 = require("./steno");
9
+ class TextFile {
10
+ __filename;
11
+ __writer;
12
+ constructor(filename) {
13
+ this.__filename = filename;
14
+ this.__writer = new steno_1.Writer(filename);
15
+ }
16
+ async read() {
17
+ let data;
18
+ try {
19
+ data = await (0, promises_1.readFile)(this.__filename, 'utf-8');
20
+ }
21
+ catch (e) {
22
+ if (e.code === 'ENOENT') {
23
+ return null;
24
+ }
25
+ throw e;
26
+ }
27
+ return data;
28
+ }
29
+ write(str) {
30
+ return this.__writer.write(str);
31
+ }
32
+ }
33
+ exports.TextFile = TextFile;
34
+ class TextFileSync {
35
+ __tempFilename;
36
+ __filename;
37
+ constructor(filename) {
38
+ this.__filename = filename;
39
+ const f = filename.toString();
40
+ this.__tempFilename = core_imports_1.path.join(core_imports_1.path.dirname(f), `.${core_imports_1.path.basename(f)}.tmp`);
41
+ }
42
+ read() {
43
+ let data;
44
+ try {
45
+ data = (0, node_fs_1.readFileSync)(this.__filename, 'utf-8');
46
+ }
47
+ catch (e) {
48
+ if (e.code === 'ENOENT') {
49
+ return null;
50
+ }
51
+ throw e;
52
+ }
53
+ return data;
54
+ }
55
+ write(str) {
56
+ (0, node_fs_1.writeFileSync)(this.__tempFilename, str);
57
+ (0, node_fs_1.renameSync)(this.__tempFilename, this.__filename);
58
+ }
59
+ }
60
+ exports.TextFileSync = TextFileSync;
61
+ //#endregion
62
+ //# sourceMappingURL=TextFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextFile.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,kBAAkB;AAClB,qCAA4E;AAC5E,+CAA2C;AAE3C,wDAA6C;AAG7C,mCAAgC;AAGhC,MAAa,QAAQ;IACnB,UAAU,CAAU;IAEpB,QAAQ,CAAQ;IAEhB,YAAY,QAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAM,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAA;QAER,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,CAAC,CAAA;QACT,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAW;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAQ,CAAC;IACzC,CAAC;CACF;AA5BD,4BA4BC;AAED,MAAa,YAAY;IACvB,cAAc,CAAU;IAExB,UAAU,CAAU;IAEpB,YAAY,QAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;QAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;QAC7B,IAAI,CAAC,cAAc,GAAG,mBAAI,CAAC,IAAI,CAAC,mBAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,mBAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC9E,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAA;QAER,IAAI,CAAC;YACH,IAAI,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,CAAC,CAAA;QACT,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAW;QACf,IAAA,uBAAa,EAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;QACvC,IAAA,oBAAU,EAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAClD,CAAC;CACF;AA9BD,oCA8BC;AACD,YAAY"}
@@ -0,0 +1,13 @@
1
+ export declare class Writer {
2
+ __filename: any;
3
+ __tempFilename: any;
4
+ __locked: boolean;
5
+ __prev: any;
6
+ __next: any;
7
+ __nextPromise: any;
8
+ __nextData: any;
9
+ __add(data: any): Promise<unknown>;
10
+ __write(data: any): Promise<void>;
11
+ constructor(filename: any);
12
+ write(data: any): Promise<unknown>;
13
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Writer = void 0;
4
+ //#region @backend
5
+ const promises_1 = require("node:fs/promises");
6
+ const node_path_1 = require("node:path");
7
+ const node_url_1 = require("node:url");
8
+ // Returns a temporary file
9
+ // Example: for /some/file will return /some/.file.tmp
10
+ function getTempFilename(file) {
11
+ const f = file instanceof URL ? (0, node_url_1.fileURLToPath)(file) : file.toString();
12
+ return (0, node_path_1.join)((0, node_path_1.dirname)(f), `.${(0, node_path_1.basename)(f)}.tmp`);
13
+ }
14
+ // Retries an asynchronous operation with a delay between retries and a maximum retry count
15
+ async function retryAsyncOperation(fn, maxRetries, delayMs) {
16
+ for (let i = 0; i < maxRetries; i++) {
17
+ try {
18
+ return await fn();
19
+ }
20
+ catch (error) {
21
+ if (i < maxRetries - 1) {
22
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
23
+ }
24
+ else {
25
+ throw error; // Rethrow the error if max retries reached
26
+ }
27
+ }
28
+ }
29
+ }
30
+ class Writer {
31
+ __filename;
32
+ __tempFilename;
33
+ __locked = false;
34
+ __prev = null;
35
+ __next = null;
36
+ __nextPromise = null;
37
+ __nextData = null;
38
+ // File is locked, add data for later
39
+ __add(data) {
40
+ // Only keep most recent data
41
+ this.__nextData = data;
42
+ // Create a singleton promise to resolve all next promises once next data is written
43
+ this.__nextPromise ||= new Promise((resolve, reject) => {
44
+ this.__next = [resolve, reject];
45
+ });
46
+ // Return a promise that will resolve at the same time as next promise
47
+ return new Promise((resolve, reject) => {
48
+ this.__nextPromise?.then(resolve).catch(reject);
49
+ });
50
+ }
51
+ // File isn't locked, write data
52
+ async __write(data) {
53
+ // Lock file
54
+ this.__locked = true;
55
+ try {
56
+ // Atomic write
57
+ await (0, promises_1.writeFile)(this.__tempFilename, data, 'utf-8');
58
+ await retryAsyncOperation(async () => {
59
+ await (0, promises_1.rename)(this.__tempFilename, this.__filename);
60
+ }, 10, 100);
61
+ // Call resolve
62
+ this.__prev?.[0]();
63
+ }
64
+ catch (err) {
65
+ // Call reject
66
+ if (err instanceof Error) {
67
+ this.__prev?.[1](err);
68
+ }
69
+ throw err;
70
+ }
71
+ finally {
72
+ // Unlock file
73
+ this.__locked = false;
74
+ this.__prev = this.__next;
75
+ this.__next = this.__nextPromise = null;
76
+ if (this.__nextData !== null) {
77
+ const nextData = this.__nextData;
78
+ this.__nextData = null;
79
+ await this.write(nextData);
80
+ }
81
+ }
82
+ }
83
+ constructor(filename) {
84
+ this.__filename = filename;
85
+ this.__tempFilename = getTempFilename(filename);
86
+ }
87
+ async write(data) {
88
+ return this.__locked ? this.__add(data) : this.__write(data);
89
+ }
90
+ }
91
+ exports.Writer = Writer;
92
+ //#endregion
93
+ //# sourceMappingURL=steno.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steno.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './adapters/client/LocalStorage';
2
+ export * from './adapters/client/SessionStorage';
3
+ export * from './presets/browser';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ //#region @backend
18
+ __exportStar(require("./adapters/client/LocalStorage"), exports);
19
+ __exportStar(require("./adapters/client/SessionStorage"), exports);
20
+ __exportStar(require("./presets/browser"), exports);
21
+ //#endregion
22
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kBAAkB;AAClB,iEAA8C;AAC9C,mEAAgD;AAChD,oDAAiC;AACjC,YAAY"}
@@ -0,0 +1,24 @@
1
+ export interface Adapter<T> {
2
+ read: () => Promise<T | null>;
3
+ write: (data: T) => Promise<void>;
4
+ }
5
+ export interface SyncAdapter<T> {
6
+ read: () => T | null;
7
+ write: (data: T) => void;
8
+ }
9
+ export declare class Low<T = unknown> {
10
+ adapter: Adapter<T>;
11
+ data: T;
12
+ constructor(adapter: Adapter<T>, defaultData: T);
13
+ read(): Promise<void>;
14
+ write(): Promise<void>;
15
+ update(fn: (data: T) => unknown): Promise<void>;
16
+ }
17
+ export declare class LowSync<T = unknown> {
18
+ adapter: SyncAdapter<T>;
19
+ data: T;
20
+ constructor(adapter: SyncAdapter<T>, defaultData: T);
21
+ read(): void;
22
+ write(): void;
23
+ update(fn: (data: T) => unknown): void;
24
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LowSync = exports.Low = void 0;
4
+ function checkArgs(adapter, defaultData) {
5
+ if (adapter === undefined)
6
+ throw new Error('lowdb: missing adapter');
7
+ if (defaultData === undefined)
8
+ throw new Error('lowdb: missing default data');
9
+ }
10
+ class Low {
11
+ adapter;
12
+ data;
13
+ constructor(adapter, defaultData) {
14
+ checkArgs(adapter, defaultData);
15
+ this.adapter = adapter;
16
+ this.data = defaultData;
17
+ }
18
+ async read() {
19
+ const data = await this.adapter.read();
20
+ if (data)
21
+ this.data = data;
22
+ }
23
+ async write() {
24
+ if (this.data)
25
+ await this.adapter.write(this.data);
26
+ }
27
+ async update(fn) {
28
+ fn(this.data);
29
+ await this.write();
30
+ }
31
+ }
32
+ exports.Low = Low;
33
+ class LowSync {
34
+ adapter;
35
+ data;
36
+ constructor(adapter, defaultData) {
37
+ checkArgs(adapter, defaultData);
38
+ this.adapter = adapter;
39
+ this.data = defaultData;
40
+ }
41
+ read() {
42
+ const data = this.adapter.read();
43
+ if (data)
44
+ this.data = data;
45
+ }
46
+ write() {
47
+ if (this.data)
48
+ this.adapter.write(this.data);
49
+ }
50
+ update(fn) {
51
+ fn(this.data);
52
+ this.write();
53
+ }
54
+ }
55
+ exports.LowSync = LowSync;
56
+ //#endregion
57
+ //# sourceMappingURL=Low.js.map