@daiso-tech/core 0.36.0 → 0.37.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.
Files changed (99) hide show
  1. package/dist/async/middlewares/_shared.d.ts +6 -1
  2. package/dist/async/middlewares/_shared.js +11 -1
  3. package/dist/async/middlewares/_shared.js.map +1 -1
  4. package/dist/async/middlewares/fallback/fallback.middleware.d.ts +1 -1
  5. package/dist/async/middlewares/fallback/fallback.middleware.js +2 -1
  6. package/dist/async/middlewares/fallback/fallback.middleware.js.map +1 -1
  7. package/dist/async/middlewares/retry/retry.middleware.js +2 -2
  8. package/dist/async/middlewares/retry/retry.middleware.js.map +1 -1
  9. package/dist/cache/contracts/cache-factory.contract.d.ts +2 -2
  10. package/dist/cache/implementations/adapters/_module-exports.d.ts +1 -2
  11. package/dist/cache/implementations/adapters/_module-exports.js +1 -2
  12. package/dist/cache/implementations/adapters/_module-exports.js.map +1 -1
  13. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.d.ts +41 -16
  14. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +102 -57
  15. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -1
  16. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +1 -1
  17. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  18. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +1 -1
  19. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
  20. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +1 -1
  21. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  22. package/dist/cache/implementations/derivables/cache/cache.d.ts +15 -3
  23. package/dist/cache/implementations/derivables/cache/cache.js +15 -2
  24. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  25. package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +11 -8
  26. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +9 -0
  27. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  28. package/dist/collection/contracts/async-collection.contract.d.ts +6 -0
  29. package/dist/collection/contracts/collection.contract.d.ts +6 -0
  30. package/dist/collection/implementations/async-iterable-collection/_shared/_module.d.ts +1 -0
  31. package/dist/collection/implementations/async-iterable-collection/_shared/_module.js +1 -0
  32. package/dist/collection/implementations/async-iterable-collection/_shared/_module.js.map +1 -1
  33. package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.d.ts +7 -0
  34. package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.js +17 -0
  35. package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.js.map +1 -0
  36. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +2 -0
  37. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +4 -1
  38. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  39. package/dist/collection/implementations/iterable-collection/_shared/_module.d.ts +1 -0
  40. package/dist/collection/implementations/iterable-collection/_shared/_module.js +1 -0
  41. package/dist/collection/implementations/iterable-collection/_shared/_module.js.map +1 -1
  42. package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.d.ts +7 -0
  43. package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.js +21 -0
  44. package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.js.map +1 -0
  45. package/dist/collection/implementations/iterable-collection/iterable-collection.d.ts +2 -0
  46. package/dist/collection/implementations/iterable-collection/iterable-collection.js +4 -1
  47. package/dist/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  48. package/dist/collection/implementations/list-collection/list-collection.d.ts +2 -0
  49. package/dist/collection/implementations/list-collection/list-collection.js +14 -1
  50. package/dist/collection/implementations/list-collection/list-collection.js.map +1 -1
  51. package/dist/event-bus/contracts/event-bus-factory.contract.d.ts +2 -2
  52. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +34 -4
  53. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +46 -6
  54. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  55. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +9 -7
  56. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +11 -0
  57. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  58. package/dist/lock/implementations/adapters/_module-exports.d.ts +1 -2
  59. package/dist/lock/implementations/adapters/_module-exports.js +1 -2
  60. package/dist/lock/implementations/adapters/_module-exports.js.map +1 -1
  61. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +37 -12
  62. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +73 -32
  63. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  64. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js +1 -1
  65. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js.map +1 -1
  66. package/dist/utilities/functions/_module-exports.d.ts +1 -0
  67. package/dist/utilities/functions/_module-exports.js +1 -0
  68. package/dist/utilities/functions/_module-exports.js.map +1 -1
  69. package/dist/utilities/functions/lazy.d.ts +4 -0
  70. package/dist/utilities/functions/lazy.js +9 -3
  71. package/dist/utilities/functions/lazy.js.map +1 -1
  72. package/dist/utilities/functions/validate.d.ts +8 -0
  73. package/dist/utilities/functions/validate.js +17 -0
  74. package/dist/utilities/functions/validate.js.map +1 -0
  75. package/package.json +14 -11
  76. package/dist/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +0 -1
  77. package/dist/cache/implementations/adapters/libsql-cache-adapter/_module.js +0 -2
  78. package/dist/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +0 -1
  79. package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +0 -75
  80. package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -95
  81. package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +0 -1
  82. package/dist/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +0 -1
  83. package/dist/cache/implementations/adapters/sqlite-cache-adapter/_module.js +0 -2
  84. package/dist/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +0 -1
  85. package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +0 -70
  86. package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -94
  87. package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +0 -1
  88. package/dist/lock/implementations/adapters/libsql-lock-adapter/_module.d.ts +0 -1
  89. package/dist/lock/implementations/adapters/libsql-lock-adapter/_module.js +0 -2
  90. package/dist/lock/implementations/adapters/libsql-lock-adapter/_module.js.map +0 -1
  91. package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.d.ts +0 -60
  92. package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +0 -84
  93. package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +0 -1
  94. package/dist/lock/implementations/adapters/sqlite-lock-adapter/_module.d.ts +0 -1
  95. package/dist/lock/implementations/adapters/sqlite-lock-adapter/_module.js +0 -2
  96. package/dist/lock/implementations/adapters/sqlite-lock-adapter/_module.js.map +0 -1
  97. package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.d.ts +0 -59
  98. package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +0 -83
  99. package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +0 -1
@@ -1,7 +1,6 @@
1
- export * from "../../../lock/implementations/adapters/libsql-lock-adapter/_module.js";
1
+ export * from "../../../lock/implementations/adapters/kysely-lock-adapter/_module.js";
2
2
  export * from "../../../lock/implementations/adapters/memory-lock-adapter/_module.js";
3
3
  export * from "../../../lock/implementations/adapters/mongodb-lock-adapter/_module.js";
4
4
  export * from "../../../lock/implementations/adapters/no-op-lock-adapter/_module.js";
5
5
  export * from "../../../lock/implementations/adapters/redis-lock-adapter/_module.js";
6
- export * from "../../../lock/implementations/adapters/sqlite-lock-adapter/_module.js";
7
6
  //# sourceMappingURL=_module-exports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../../src/lock/implementations/adapters/_module-exports.ts"],"names":[],"mappings":"AAAA,cAAc,gEAAgE,CAAC;AAC/E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,iEAAiE,CAAC;AAChF,cAAc,+DAA+D,CAAC;AAC9E,cAAc,+DAA+D,CAAC;AAC9E,cAAc,gEAAgE,CAAC"}
1
+ {"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../../src/lock/implementations/adapters/_module-exports.ts"],"names":[],"mappings":"AAAA,cAAc,gEAAgE,CAAC;AAC/E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,iEAAiE,CAAC;AAChF,cAAc,+DAA+D,CAAC;AAC9E,cAAc,+DAA+D,CAAC"}
@@ -5,36 +5,61 @@ import type { IDatabaseLockAdapter, ILockData } from "../../../../lock/contracts
5
5
  import type { Kysely } from "kysely";
6
6
  import { type IDeinitizable, type IInitizable, type IPrunable, TimeSpan } from "../../../../utilities/_module-exports.js";
7
7
  /**
8
- * @internal
8
+ *
9
+ * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
10
+ * @group Adapters
9
11
  */
10
- type KyselyLockTable = {
12
+ type KyselyLockAdapterTable = {
11
13
  key: string;
12
14
  owner: string;
13
- expiresAt: number | null;
15
+ expiresAt: number | string | null;
14
16
  };
15
17
  /**
16
- * @internal
18
+ *
19
+ * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
20
+ * @group Adapters
17
21
  */
18
- type KyselyTables = {
19
- lock: KyselyLockTable;
22
+ type KyselyLockAdapterTables = {
23
+ lock: KyselyLockAdapterTable;
20
24
  };
21
25
  /**
22
- * @internal
26
+ *
27
+ * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
28
+ * @group Adapters
23
29
  */
24
- type KyselySettings = {
25
- database: Kysely<KyselyTables>;
30
+ type KyselyLockAdapterSettings = {
31
+ kysely: Kysely<KyselyLockAdapterTables>;
26
32
  expiredKeysRemovalInterval?: TimeSpan;
27
33
  shouldRemoveExpiredKeys?: boolean;
28
34
  };
29
35
  /**
30
- * @internal
36
+ *
37
+ * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
38
+ * @group Adapters
31
39
  */
32
40
  export declare class KyselyLockAdapter implements IDatabaseLockAdapter, IDeinitizable, IInitizable, IPrunable {
33
- private readonly database;
41
+ private readonly kysely;
34
42
  private readonly expiredKeysRemovalInterval;
35
43
  private readonly shouldRemoveExpiredKeys;
36
44
  private timeoutId;
37
- constructor(settings: KyselySettings);
45
+ /**
46
+ * @example
47
+ * ```ts
48
+ * import { KyselyLockAdapter } from "@daiso-tech/core/lock/adapters";
49
+ * import Sqlite from "better-sqlite3";
50
+ *
51
+ * const lockAdapter = new KyselyLockAdapter({
52
+ * kysely: new Kysely({
53
+ * dialect: new SqliteDialect({
54
+ * database: new Sqlite("local.db"),
55
+ * }),
56
+ * }),
57
+ * });
58
+ * // You need initialize the adapter once before using it.
59
+ * await lockAdapter.init();
60
+ * ```
61
+ */
62
+ constructor(settings: KyselyLockAdapterSettings);
38
63
  deInit(): Promise<void>;
39
64
  init(): Promise<void>;
40
65
  removeAllExpired(): Promise<void>;
@@ -3,44 +3,85 @@
3
3
  */
4
4
  import { TimeSpan, } from "../../../../utilities/_module-exports.js";
5
5
  /**
6
- * @internal
6
+ *
7
+ * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
8
+ * @group Adapters
7
9
  */
8
10
  export class KyselyLockAdapter {
9
- database;
11
+ kysely;
10
12
  expiredKeysRemovalInterval;
11
13
  shouldRemoveExpiredKeys;
12
- timeoutId;
14
+ timeoutId = null;
15
+ /**
16
+ * @example
17
+ * ```ts
18
+ * import { KyselyLockAdapter } from "@daiso-tech/core/lock/adapters";
19
+ * import Sqlite from "better-sqlite3";
20
+ *
21
+ * const lockAdapter = new KyselyLockAdapter({
22
+ * kysely: new Kysely({
23
+ * dialect: new SqliteDialect({
24
+ * database: new Sqlite("local.db"),
25
+ * }),
26
+ * }),
27
+ * });
28
+ * // You need initialize the adapter once before using it.
29
+ * await lockAdapter.init();
30
+ * ```
31
+ */
13
32
  constructor(settings) {
14
- const { database, expiredKeysRemovalInterval = TimeSpan.fromMinutes(1), shouldRemoveExpiredKeys = true, } = settings;
33
+ const { kysely, expiredKeysRemovalInterval = TimeSpan.fromMinutes(1), shouldRemoveExpiredKeys = true, } = settings;
15
34
  this.expiredKeysRemovalInterval = expiredKeysRemovalInterval;
16
35
  this.shouldRemoveExpiredKeys = shouldRemoveExpiredKeys;
17
- this.database = database;
36
+ this.kysely = kysely;
18
37
  }
19
38
  async deInit() {
20
- await this.database.schema
21
- .dropIndex("lock_expiresAt")
22
- .ifExists()
23
- .on("lock")
24
- .execute();
25
- await this.database.schema.dropTable("lock").ifExists().execute();
26
- if (this.shouldRemoveExpiredKeys) {
39
+ if (this.shouldRemoveExpiredKeys && this.timeoutId !== null) {
27
40
  clearTimeout(this.timeoutId);
28
41
  }
42
+ // Should not throw if the index does not exists thats why the try catch is used.
43
+ try {
44
+ await this.kysely.schema
45
+ .dropIndex("lock_expiresAt")
46
+ .on("lock")
47
+ .execute();
48
+ }
49
+ catch {
50
+ /* EMPTY */
51
+ }
52
+ // Should not throw if the table does not exists thats why the try catch is used.
53
+ try {
54
+ await this.kysely.schema.dropTable("lock").execute();
55
+ }
56
+ catch {
57
+ /* EMPTY */
58
+ }
29
59
  }
30
60
  async init() {
31
- await this.database.schema
32
- .createTable("lock")
33
- .ifNotExists()
34
- .addColumn("key", "varchar(255)", (col) => col.primaryKey())
35
- .addColumn("owner", "varchar(255)")
36
- .addColumn("expiresAt", "bigint")
37
- .execute();
38
- await this.database.schema
39
- .createIndex("lock_expiresAt")
40
- .ifNotExists()
41
- .on("lock")
42
- .columns(["expiresAt"])
43
- .execute();
61
+ // Should not throw if the table already exists thats why the try catch is used.
62
+ try {
63
+ await this.kysely.schema
64
+ .createTable("lock")
65
+ .ifNotExists()
66
+ .addColumn("key", "varchar(255)", (col) => col.primaryKey())
67
+ .addColumn("owner", "varchar(255)")
68
+ .addColumn("expiresAt", "bigint")
69
+ .execute();
70
+ }
71
+ catch {
72
+ /* EMPTY */
73
+ }
74
+ // Should not throw if the index already exists thats why the try catch is used.
75
+ try {
76
+ await this.kysely.schema
77
+ .createIndex("lock_expiresAt")
78
+ .on("lock")
79
+ .columns(["expiresAt"])
80
+ .execute();
81
+ }
82
+ catch {
83
+ /* EMPTY */
84
+ }
44
85
  if (this.shouldRemoveExpiredKeys) {
45
86
  this.timeoutId = setTimeout(() => {
46
87
  void this.removeAllExpired();
@@ -48,13 +89,13 @@ export class KyselyLockAdapter {
48
89
  }
49
90
  }
50
91
  async removeAllExpired() {
51
- await this.database
92
+ await this.kysely
52
93
  .deleteFrom("lock")
53
94
  .where("lock.expiresAt", "<=", new Date().getTime())
54
95
  .execute();
55
96
  }
56
97
  async insert(key, owner, expiration) {
57
- await this.database
98
+ await this.kysely
58
99
  .insertInto("lock")
59
100
  .values({
60
101
  key,
@@ -64,7 +105,7 @@ export class KyselyLockAdapter {
64
105
  .execute();
65
106
  }
66
107
  async update(key, owner, expiration) {
67
- const updateResult = await this.database
108
+ const updateResult = await this.kysely
68
109
  .updateTable("lock")
69
110
  .where("lock.key", "=", key)
70
111
  // Has expired
@@ -77,14 +118,14 @@ export class KyselyLockAdapter {
77
118
  return Number(updateResult.numUpdatedRows); // > 0;
78
119
  }
79
120
  async remove(key, owner) {
80
- await this.database
121
+ await this.kysely
81
122
  .deleteFrom("lock")
82
123
  .where("lock.key", "=", key)
83
124
  .$if(owner !== null, (query) => query.where("lock.owner", "=", owner))
84
125
  .execute();
85
126
  }
86
127
  async refresh(key, owner, expiration) {
87
- const updateResult = await this.database
128
+ const updateResult = await this.kysely
88
129
  .updateTable("lock")
89
130
  .where("lock.key", "=", key)
90
131
  .where("lock.owner", "=", owner)
@@ -93,7 +134,7 @@ export class KyselyLockAdapter {
93
134
  return Number(updateResult.numUpdatedRows); // > 0;
94
135
  }
95
136
  async find(key) {
96
- const row = await this.database
137
+ const row = await this.kysely
97
138
  .selectFrom("lock")
98
139
  .where("lock.key", "=", key)
99
140
  .select(["lock.owner", "lock.expiresAt"])
@@ -102,7 +143,7 @@ export class KyselyLockAdapter {
102
143
  return null;
103
144
  }
104
145
  return {
105
- expiration: row.expiresAt ? new Date(row.expiresAt) : null,
146
+ expiration: row.expiresAt ? new Date(Number(row.expiresAt)) : null,
106
147
  owner: row.owner,
107
148
  };
108
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"kysely-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kysely-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * @module Serde
3
3
  */
4
4
  import { DeserializationSerdeError, SerializationSerdeError, } from "../../../../serde/contracts/_module-exports.js";
5
- import { SuperJSON } from "superjson-cjs";
5
+ import { SuperJSON } from "superjson";
6
6
  /**
7
7
  *
8
8
  * IMPORT_PATH: `"@daiso-tech/core/serde/adapters"`
@@ -1 +1 @@
1
- {"version":3,"file":"super-json-serde-adapter.js","sourceRoot":"","sources":["../../../../../src/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGH,yBAAyB,EACzB,uBAAuB,GAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IACb,SAAS,GAAc,IAAI,SAAS,EAAE,CAAC;IAExD,cAAc,CACV,WAGC;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,CACzB;YACI,YAAY,CAAC,KAAK;gBACd,OAAO,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;YACD,SAAS,CAAC,iBAAiB;gBACvB,OAAO,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACpD,CAAC;YACD,WAAW,CAAC,eAAe;gBACvB,iEAAiE;gBACjE,OAAO,WAAW,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACpD,CAAC;SACJ,EACD,WAAW,CAAC,IAAI,CACnB,CAAC;IACN,CAAC;IAED,SAAS,CAAS,KAAa;QAC3B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,MAAM,IAAI,uBAAuB,CAC7B,wBAAwB,MAAM,CAAC,KAAK,CAAC,WAAW,EAChD,KAAK,CACR,CAAC;QACN,CAAC;IACL,CAAC;IAED,WAAW,CAAS,KAAa;QAC7B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,MAAM,IAAI,yBAAyB,CAC/B,0BAA0B,MAAM,CAAC,KAAK,CAAC,WAAW,EAClD,KAAK,CACR,CAAC;QACN,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"super-json-serde-adapter.js","sourceRoot":"","sources":["../../../../../src/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGH,yBAAyB,EACzB,uBAAuB,GAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IACb,SAAS,GAAc,IAAI,SAAS,EAAE,CAAC;IAExD,cAAc,CACV,WAGC;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,CACzB;YACI,YAAY,CAAC,KAAK;gBACd,OAAO,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;YACD,SAAS,CAAC,iBAAiB;gBACvB,OAAO,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACpD,CAAC;YACD,WAAW,CAAC,eAAe;gBACvB,iEAAiE;gBACjE,OAAO,WAAW,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACpD,CAAC;SACJ,EACD,WAAW,CAAC,IAAI,CACnB,CAAC;IACN,CAAC;IAED,SAAS,CAAS,KAAa;QAC3B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,MAAM,IAAI,uBAAuB,CAC7B,wBAAwB,MAAM,CAAC,KAAK,CAAC,WAAW,EAChD,KAAK,CACR,CAAC;QACN,CAAC;IACL,CAAC;IAED,WAAW,CAAS,KAAa;QAC7B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,MAAM,IAAI,yBAAyB,CAC/B,0BAA0B,MAAM,CAAC,KAAK,CAAC,WAAW,EAClD,KAAK,CACR,CAAC;QACN,CAAC;IACL,CAAC;CACJ"}
@@ -5,3 +5,4 @@ export * from "../../utilities/functions/object.js";
5
5
  export * from "../../utilities/functions/lazy.js";
6
6
  export * from "../../utilities/functions/resolve-one-or-more.js";
7
7
  export * from "../../utilities/functions/result.js";
8
+ export * from "../../utilities/functions/validate.js";
@@ -5,4 +5,5 @@ export * from "../../utilities/functions/object.js";
5
5
  export * from "../../utilities/functions/lazy.js";
6
6
  export * from "../../utilities/functions/resolve-one-or-more.js";
7
7
  export * from "../../utilities/functions/result.js";
8
+ export * from "../../utilities/functions/validate.js";
8
9
  //# sourceMappingURL=_module-exports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../src/utilities/functions/_module-exports.ts"],"names":[],"mappings":"AAAA,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../src/utilities/functions/_module-exports.ts"],"names":[],"mappings":"AAAA,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC"}
@@ -7,6 +7,10 @@ import type { AsyncLazyable, Lazyable, Lazy, AsyncLazy } from "../../utilities/t
7
7
  * @internal
8
8
  */
9
9
  export declare function isLazy<TValue>(lazyable: Lazyable<TValue>): lazyable is Lazy<TValue>;
10
+ /**
11
+ * @internal
12
+ */
13
+ export declare function isPromiseLike<TValue>(value: unknown): value is PromiseLike<TValue>;
10
14
  /**
11
15
  * @internal
12
16
  */
@@ -11,10 +11,16 @@ export function isLazy(lazyable) {
11
11
  /**
12
12
  * @internal
13
13
  */
14
- export function isLazyPromise(lazyable) {
15
- return (typeof lazyable === "object" &&
14
+ export function isPromiseLike(value) {
15
+ return (typeof value === "object" &&
16
16
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
17
- typeof lazyable?.then === "function" &&
17
+ typeof value?.then === "function");
18
+ }
19
+ /**
20
+ * @internal
21
+ */
22
+ export function isLazyPromise(lazyable) {
23
+ return (isPromiseLike(lazyable) &&
18
24
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
19
25
  typeof lazyable?.defer === "function");
20
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../src/utilities/functions/lazy.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EACH,WAAW,EACX,gBAAgB,GACnB,MAAM,oCAAoC,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,MAAM,CAClB,QAA0B;IAE1B,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CACzB,QAA+B;IAE/B,OAAO,CACH,OAAO,QAAQ,KAAK,QAAQ;QAC5B,sEAAsE;QACtE,OAAQ,QAAgB,EAAE,IAAI,KAAK,UAAU;QAC7C,sEAAsE;QACtE,OAAQ,QAAgB,EAAE,KAAK,KAAK,UAAU,CACjD,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACvB,QAA+B;IAE/B,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAS,QAA0B;IAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnB,OAAO,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,QAA+B;IAE/B,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM,QAAQ,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../src/utilities/functions/lazy.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EACH,WAAW,EACX,gBAAgB,GACnB,MAAM,oCAAoC,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,MAAM,CAClB,QAA0B;IAE1B,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CACzB,KAAc;IAEd,OAAO,CACH,OAAO,KAAK,KAAK,QAAQ;QACzB,sEAAsE;QACtE,OAAQ,KAAa,EAAE,IAAI,KAAK,UAAU,CAC7C,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CACzB,QAA+B;IAE/B,OAAO,CACH,aAAa,CAAC,QAAQ,CAAC;QACvB,sEAAsE;QACtE,OAAQ,QAAgB,EAAE,KAAK,KAAK,UAAU,CACjD,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACvB,QAA+B;IAE/B,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAS,QAA0B;IAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnB,OAAO,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,QAA+B;IAE/B,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM,QAAQ,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { StandardSchemaV1 } from "@standard-schema/spec";
2
+ export declare class ValidationError extends Error {
3
+ constructor(issues: ReadonlyArray<StandardSchemaV1.Issue>);
4
+ }
5
+ /**
6
+ * @throws {ValidationError} {@link ValidationError}
7
+ */
8
+ export declare function validate<TValue>(schema: StandardSchemaV1<TValue, TValue> | undefined, value: TValue): Promise<void>;
@@ -0,0 +1,17 @@
1
+ export class ValidationError extends Error {
2
+ constructor(issues) {
3
+ const jsonMessage = JSON.stringify(issues, null, 2);
4
+ super(`A validation error occured with the following issues:\n${jsonMessage}`);
5
+ this.name = ValidationError.name;
6
+ }
7
+ }
8
+ /**
9
+ * @throws {ValidationError} {@link ValidationError}
10
+ */
11
+ export async function validate(schema, value) {
12
+ const result = await schema?.["~standard"].validate(value);
13
+ if (result?.issues) {
14
+ throw new ValidationError(result.issues);
15
+ }
16
+ }
17
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/utilities/functions/validate.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACtC,YAAY,MAA6C;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpD,KAAK,CACD,0DAA0D,WAAW,EAAE,CAC1E,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IACrC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC1B,MAAoD,EACpD,KAAa;IAEb,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@daiso-tech/core",
3
3
  "private": false,
4
- "version": "0.36.0",
4
+ "version": "0.37.0",
5
5
  "author": "Yousif Abdulkarim",
6
6
  "license": "Apache-2.0",
7
7
  "type": "module",
@@ -158,10 +158,12 @@
158
158
  },
159
159
  "devDependencies": {
160
160
  "@changesets/cli": "^2.27.7",
161
- "@libsql/client": "^0.14.0",
162
161
  "@testcontainers/mongodb": "^10.13.2",
162
+ "@testcontainers/mysql": "^11.0.0",
163
+ "@testcontainers/postgresql": "^11.0.0",
163
164
  "@testcontainers/redis": "^10.13.2",
164
165
  "@types/better-sqlite3": "^7.6.11",
166
+ "@types/pg": "^8.15.4",
165
167
  "@types/uuid": "^10.0.0",
166
168
  "@typescript-eslint/eslint-plugin": "^8.1.0",
167
169
  "@typescript-eslint/parser": "^8.1.0",
@@ -176,7 +178,10 @@
176
178
  "eslint-plugin-typescript-enum": "^2.1.0",
177
179
  "eslint-plugin-vitest": "^0.5.4",
178
180
  "ioredis": "^5.4.1",
181
+ "kysely": "^0.28.2",
179
182
  "mongodb": "^6.10.0",
183
+ "mysql2": "^3.14.1",
184
+ "pg": "^8.16.0",
180
185
  "publint": "^0.3.8",
181
186
  "rimraf": "^6.0.1",
182
187
  "tsc-alias": "^1.8.10",
@@ -184,13 +189,13 @@
184
189
  "typedoc-plugin-merge-modules": "6.1.0",
185
190
  "typescript": "^5.5.4",
186
191
  "vite-tsconfig-paths": "^4.3.2",
187
- "vitest": "^3.0.2"
192
+ "vitest": "^3.0.2",
193
+ "zod": "^3.25.49"
188
194
  },
189
195
  "peerDependencies": {
190
- "@libsql/client": "^0.4.1",
191
- "better-sqlite3": "^11.5.0",
192
- "ioredis": "^5.4.1",
193
- "mongodb": "^6.10.0"
196
+ "ioredis": "^5.0.0",
197
+ "mongodb": "^6.0.0",
198
+ "kysely": "^0.28.0"
194
199
  },
195
200
  "peerDependenciesMeta": {
196
201
  "mongodb": {
@@ -207,11 +212,9 @@
207
212
  }
208
213
  },
209
214
  "dependencies": {
210
- "@libsql/kysely-libsql": "^0.4.0",
215
+ "@standard-schema/spec": "^1.0.0",
211
216
  "escape-string-regexp": "^5.0.0",
212
- "kysely": "^0.27.0",
213
- "superjson-cjs": "^2.2.3",
214
- "tsx": "^4.19.4",
217
+ "superjson": "^2.2.2",
215
218
  "uuid": "^11.0.5"
216
219
  }
217
220
  }
@@ -1 +0,0 @@
1
- export * from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js";
@@ -1,2 +0,0 @@
1
- export * from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js";
2
- //# sourceMappingURL=_module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_module.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/adapters/libsql-cache-adapter/_module.ts"],"names":[],"mappings":"AAAA,cAAc,+EAA+E,CAAC"}
@@ -1,75 +0,0 @@
1
- /**
2
- * @module Cache
3
- */
4
- import type { ICacheData, ICacheInsert, ICacheUpdate, IDatabaseCacheAdapter } from "../../../../cache/contracts/_module-exports.js";
5
- import type { TimeSpan, IDeinitizable, IInitizable, IPrunable } from "../../../../utilities/_module-exports.js";
6
- import type { ISerde } from "../../../../serde/contracts/_module-exports.js";
7
- import type { Client } from "@libsql/client";
8
- /**
9
- *
10
- * IMPORT_PATH: `"@daiso-tech/core/cache/adapters"`
11
- * @group Adapters
12
- */
13
- export type LibsqlCacheAdapterSettings = {
14
- database: Client;
15
- tableName?: string;
16
- serde: ISerde<string>;
17
- /**
18
- * @default {false}
19
- */
20
- disableTransaction?: boolean;
21
- /**
22
- * @default
23
- * ```ts
24
- * import { TimeSpan } from "@daiso-tech/core/utilities";
25
- *
26
- * TimeSpan.fromMinutes(1);
27
- * ```
28
- */
29
- expiredKeysRemovalInterval?: TimeSpan;
30
- /**
31
- * @default {true}
32
- */
33
- shouldRemoveExpiredKeys?: boolean;
34
- };
35
- /**
36
- * To utilize the `LibsqlCacheAdapter`, you must install the `"@libsql/client"` package and supply a {@link ISerde | `ISerde<string>`}, with an adapter like {@link SuperJsonSerdeAdapter | `SuperJsonSerdeAdapter `}.
37
- *
38
- * IMPORT_PATH: `"@daiso-tech/core/cache/adapters"`
39
- * @group Adapters
40
- */
41
- export declare class LibsqlCacheAdapter<TType = unknown> implements IDatabaseCacheAdapter<TType>, IInitizable, IDeinitizable, IPrunable {
42
- private readonly adapter;
43
- /***
44
- * @example
45
- * ```ts
46
- * import { LibsqlCacheAdapter } from "@daiso-tech/core/cache/adapters";
47
- * import { Serde } from "@daiso-tech/core/serde";
48
- * import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
49
- * import { createClient } from "@libsql/client";
50
- *
51
- * const database = createClient({ url: "file:local.db" });
52
- * const serde = new Serde(new SuperJsonSerdeAdapter());
53
- * const cacheAdapter = new LibsqlCacheAdapter({
54
- * database,
55
- * serde,
56
- * });
57
- * // You need initialize the adapter once before using it.
58
- * await cacheAdapter.init();
59
- * ```
60
- */
61
- constructor(settings: LibsqlCacheAdapterSettings);
62
- removeAllExpired(): Promise<void>;
63
- deInit(): Promise<void>;
64
- init(): Promise<void>;
65
- insert(data: ICacheInsert<TType>): Promise<void>;
66
- upsert(data: ICacheInsert<TType>): Promise<ICacheData<TType> | null>;
67
- find(key: string): Promise<ICacheData<TType> | null>;
68
- updateExpired(data: ICacheInsert<TType>): Promise<number>;
69
- updateUnexpired(data: ICacheUpdate<TType>): Promise<number>;
70
- incrementUnexpired(data: ICacheUpdate<number>): Promise<number>;
71
- removeUnexpiredMany(keys: string[]): Promise<number>;
72
- removeExpiredMany(keys: string[]): Promise<number>;
73
- removeAll(): Promise<void>;
74
- removeByKeyPrefix(prefix: string): Promise<void>;
75
- }
@@ -1,95 +0,0 @@
1
- /**
2
- * @module Cache
3
- */
4
- import { KyselyCacheAdapter } from "../../../../cache/implementations/adapters/kysely-cache-adapter/_module.js";
5
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
- import { SuperJsonSerdeAdapter } from "../../../../serde/implementations/adapters/_module-exports.js";
7
- import { Kysely } from "kysely";
8
- import { LibsqlDialect } from "@libsql/kysely-libsql";
9
- import { KyselyTableNameTransformerPlugin } from "../../../../utilities/_module-exports.js";
10
- /**
11
- * To utilize the `LibsqlCacheAdapter`, you must install the `"@libsql/client"` package and supply a {@link ISerde | `ISerde<string>`}, with an adapter like {@link SuperJsonSerdeAdapter | `SuperJsonSerdeAdapter `}.
12
- *
13
- * IMPORT_PATH: `"@daiso-tech/core/cache/adapters"`
14
- * @group Adapters
15
- */
16
- export class LibsqlCacheAdapter {
17
- adapter;
18
- /***
19
- * @example
20
- * ```ts
21
- * import { LibsqlCacheAdapter } from "@daiso-tech/core/cache/adapters";
22
- * import { Serde } from "@daiso-tech/core/serde";
23
- * import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
24
- * import { createClient } from "@libsql/client";
25
- *
26
- * const database = createClient({ url: "file:local.db" });
27
- * const serde = new Serde(new SuperJsonSerdeAdapter());
28
- * const cacheAdapter = new LibsqlCacheAdapter({
29
- * database,
30
- * serde,
31
- * });
32
- * // You need initialize the adapter once before using it.
33
- * await cacheAdapter.init();
34
- * ```
35
- */
36
- constructor(settings) {
37
- const { database, tableName = "cache", serde, disableTransaction, expiredKeysRemovalInterval, shouldRemoveExpiredKeys, } = settings;
38
- this.adapter = new KyselyCacheAdapter({
39
- database: new Kysely({
40
- dialect: new LibsqlDialect({
41
- client: database,
42
- }),
43
- plugins: [
44
- new KyselyTableNameTransformerPlugin({
45
- cache: tableName,
46
- }),
47
- ],
48
- }),
49
- serde,
50
- disableTransaction,
51
- expiredKeysRemovalInterval,
52
- shouldRemoveExpiredKeys,
53
- });
54
- }
55
- async removeAllExpired() {
56
- await this.adapter.removeAllExpired();
57
- }
58
- async deInit() {
59
- await this.adapter.deInit();
60
- }
61
- async init() {
62
- await this.adapter.init();
63
- }
64
- async insert(data) {
65
- await this.adapter.insert(data);
66
- }
67
- async upsert(data) {
68
- return await this.adapter.upsert(data);
69
- }
70
- async find(key) {
71
- return await this.adapter.find(key);
72
- }
73
- async updateExpired(data) {
74
- return await this.adapter.updateExpired(data);
75
- }
76
- async updateUnexpired(data) {
77
- return await this.adapter.updateUnexpired(data);
78
- }
79
- async incrementUnexpired(data) {
80
- return await this.adapter.incrementUnexpired(data);
81
- }
82
- async removeUnexpiredMany(keys) {
83
- return await this.adapter.removeUnexpiredMany(keys);
84
- }
85
- async removeExpiredMany(keys) {
86
- return await this.adapter.removeExpiredMany(keys);
87
- }
88
- async removeAll() {
89
- await this.adapter.removeAll();
90
- }
91
- async removeByKeyPrefix(prefix) {
92
- await this.adapter.removeByKeyPrefix(prefix);
93
- }
94
- }
95
- //# sourceMappingURL=libsql-cache-adapter.js.map