@dexto/storage 1.6.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 (158) hide show
  1. package/LICENSE +44 -0
  2. package/README.md +80 -0
  3. package/dist/blob/factories/index.cjs +31 -0
  4. package/dist/blob/factories/index.d.cts +6 -0
  5. package/dist/blob/factories/index.d.ts +6 -0
  6. package/dist/blob/factories/index.d.ts.map +1 -0
  7. package/dist/blob/factories/index.js +6 -0
  8. package/dist/blob/factories/local.cjs +38 -0
  9. package/dist/blob/factories/local.d.cts +21 -0
  10. package/dist/blob/factories/local.d.ts +17 -0
  11. package/dist/blob/factories/local.d.ts.map +1 -0
  12. package/dist/blob/factories/local.js +14 -0
  13. package/dist/blob/factories/memory.cjs +44 -0
  14. package/dist/blob/factories/memory.d.cts +21 -0
  15. package/dist/blob/factories/memory.d.ts +17 -0
  16. package/dist/blob/factories/memory.d.ts.map +1 -0
  17. package/dist/blob/factories/memory.js +20 -0
  18. package/dist/blob/factory.cjs +16 -0
  19. package/dist/blob/factory.d.cts +36 -0
  20. package/dist/blob/factory.d.ts +35 -0
  21. package/dist/blob/factory.d.ts.map +1 -0
  22. package/dist/blob/factory.js +0 -0
  23. package/dist/blob/index.cjs +45 -0
  24. package/dist/blob/index.d.cts +8 -0
  25. package/dist/blob/index.d.ts +26 -0
  26. package/dist/blob/index.d.ts.map +1 -0
  27. package/dist/blob/index.js +19 -0
  28. package/dist/blob/local-blob-store.cjs +532 -0
  29. package/dist/blob/local-blob-store.d.cts +56 -0
  30. package/dist/blob/local-blob-store.d.ts +54 -0
  31. package/dist/blob/local-blob-store.d.ts.map +1 -0
  32. package/dist/blob/local-blob-store.js +498 -0
  33. package/dist/blob/memory-blob-store.cjs +327 -0
  34. package/dist/blob/memory-blob-store.d.cts +69 -0
  35. package/dist/blob/memory-blob-store.d.ts +67 -0
  36. package/dist/blob/memory-blob-store.d.ts.map +1 -0
  37. package/dist/blob/memory-blob-store.js +303 -0
  38. package/dist/blob/schemas.cjs +52 -0
  39. package/dist/blob/schemas.d.cts +87 -0
  40. package/dist/blob/schemas.d.ts +86 -0
  41. package/dist/blob/schemas.d.ts.map +1 -0
  42. package/dist/blob/schemas.js +25 -0
  43. package/dist/blob/types.cjs +16 -0
  44. package/dist/blob/types.d.cts +1 -0
  45. package/dist/blob/types.d.ts +2 -0
  46. package/dist/blob/types.d.ts.map +1 -0
  47. package/dist/blob/types.js +0 -0
  48. package/dist/cache/factories/index.cjs +31 -0
  49. package/dist/cache/factories/index.d.cts +6 -0
  50. package/dist/cache/factories/index.d.ts +6 -0
  51. package/dist/cache/factories/index.d.ts.map +1 -0
  52. package/dist/cache/factories/index.js +6 -0
  53. package/dist/cache/factories/memory.cjs +39 -0
  54. package/dist/cache/factories/memory.d.cts +21 -0
  55. package/dist/cache/factories/memory.d.ts +17 -0
  56. package/dist/cache/factories/memory.d.ts.map +1 -0
  57. package/dist/cache/factories/memory.js +15 -0
  58. package/dist/cache/factories/redis.cjs +65 -0
  59. package/dist/cache/factories/redis.d.cts +24 -0
  60. package/dist/cache/factories/redis.d.ts +20 -0
  61. package/dist/cache/factories/redis.d.ts.map +1 -0
  62. package/dist/cache/factories/redis.js +31 -0
  63. package/dist/cache/factory.cjs +16 -0
  64. package/dist/cache/factory.d.cts +42 -0
  65. package/dist/cache/factory.d.ts +41 -0
  66. package/dist/cache/factory.d.ts.map +1 -0
  67. package/dist/cache/factory.js +0 -0
  68. package/dist/cache/index.cjs +42 -0
  69. package/dist/cache/index.d.cts +7 -0
  70. package/dist/cache/index.d.ts +25 -0
  71. package/dist/cache/index.d.ts.map +1 -0
  72. package/dist/cache/index.js +17 -0
  73. package/dist/cache/memory-cache-store.cjs +106 -0
  74. package/dist/cache/memory-cache-store.d.cts +27 -0
  75. package/dist/cache/memory-cache-store.d.ts +25 -0
  76. package/dist/cache/memory-cache-store.d.ts.map +1 -0
  77. package/dist/cache/memory-cache-store.js +82 -0
  78. package/dist/cache/redis-store.cjs +176 -0
  79. package/dist/cache/redis-store.d.cts +34 -0
  80. package/dist/cache/redis-store.d.ts +32 -0
  81. package/dist/cache/redis-store.d.ts.map +1 -0
  82. package/dist/cache/redis-store.js +152 -0
  83. package/dist/cache/schemas.cjs +70 -0
  84. package/dist/cache/schemas.d.cts +93 -0
  85. package/dist/cache/schemas.d.ts +91 -0
  86. package/dist/cache/schemas.d.ts.map +1 -0
  87. package/dist/cache/schemas.js +43 -0
  88. package/dist/cache/types.cjs +16 -0
  89. package/dist/cache/types.d.cts +1 -0
  90. package/dist/cache/types.d.ts +2 -0
  91. package/dist/cache/types.d.ts.map +1 -0
  92. package/dist/cache/types.js +0 -0
  93. package/dist/database/factories/index.cjs +34 -0
  94. package/dist/database/factories/index.d.cts +7 -0
  95. package/dist/database/factories/index.d.ts +7 -0
  96. package/dist/database/factories/index.d.ts.map +1 -0
  97. package/dist/database/factories/index.js +8 -0
  98. package/dist/database/factories/memory.cjs +39 -0
  99. package/dist/database/factories/memory.d.cts +20 -0
  100. package/dist/database/factories/memory.d.ts +16 -0
  101. package/dist/database/factories/memory.d.ts.map +1 -0
  102. package/dist/database/factories/memory.js +15 -0
  103. package/dist/database/factories/postgres.cjs +61 -0
  104. package/dist/database/factories/postgres.d.cts +23 -0
  105. package/dist/database/factories/postgres.d.ts +19 -0
  106. package/dist/database/factories/postgres.d.ts.map +1 -0
  107. package/dist/database/factories/postgres.js +27 -0
  108. package/dist/database/factories/sqlite.cjs +65 -0
  109. package/dist/database/factories/sqlite.d.cts +24 -0
  110. package/dist/database/factories/sqlite.d.ts +20 -0
  111. package/dist/database/factories/sqlite.d.ts.map +1 -0
  112. package/dist/database/factories/sqlite.js +31 -0
  113. package/dist/database/factory.cjs +16 -0
  114. package/dist/database/factory.d.cts +42 -0
  115. package/dist/database/factory.d.ts +41 -0
  116. package/dist/database/factory.d.ts.map +1 -0
  117. package/dist/database/factory.js +0 -0
  118. package/dist/database/index.cjs +46 -0
  119. package/dist/database/index.d.cts +8 -0
  120. package/dist/database/index.d.ts +26 -0
  121. package/dist/database/index.d.ts.map +1 -0
  122. package/dist/database/index.js +24 -0
  123. package/dist/database/memory-database-store.cjs +121 -0
  124. package/dist/database/memory-database-store.d.cts +30 -0
  125. package/dist/database/memory-database-store.d.ts +28 -0
  126. package/dist/database/memory-database-store.d.ts.map +1 -0
  127. package/dist/database/memory-database-store.js +97 -0
  128. package/dist/database/postgres-store.cjs +342 -0
  129. package/dist/database/postgres-store.d.cts +57 -0
  130. package/dist/database/postgres-store.d.ts +55 -0
  131. package/dist/database/postgres-store.d.ts.map +1 -0
  132. package/dist/database/postgres-store.js +318 -0
  133. package/dist/database/schemas.cjs +82 -0
  134. package/dist/database/schemas.d.cts +127 -0
  135. package/dist/database/schemas.d.ts +125 -0
  136. package/dist/database/schemas.d.ts.map +1 -0
  137. package/dist/database/schemas.js +54 -0
  138. package/dist/database/sqlite-store.cjs +270 -0
  139. package/dist/database/sqlite-store.d.cts +35 -0
  140. package/dist/database/sqlite-store.d.ts +33 -0
  141. package/dist/database/sqlite-store.d.ts.map +1 -0
  142. package/dist/database/sqlite-store.js +236 -0
  143. package/dist/database/types.cjs +16 -0
  144. package/dist/database/types.d.cts +1 -0
  145. package/dist/database/types.d.ts +2 -0
  146. package/dist/database/types.d.ts.map +1 -0
  147. package/dist/database/types.js +0 -0
  148. package/dist/index.cjs +82 -0
  149. package/dist/index.d.cts +24 -0
  150. package/dist/index.d.ts +25 -0
  151. package/dist/index.d.ts.map +1 -0
  152. package/dist/index.js +50 -0
  153. package/dist/schemas.cjs +67 -0
  154. package/dist/schemas.d.cts +72 -0
  155. package/dist/schemas.d.ts +70 -0
  156. package/dist/schemas.d.ts.map +1 -0
  157. package/dist/schemas.js +46 -0
  158. package/package.json +55 -0
@@ -0,0 +1,91 @@
1
+ import { z } from 'zod';
2
+ export declare const CACHE_TYPES: readonly ["in-memory", "redis"];
3
+ export type CacheType = (typeof CACHE_TYPES)[number];
4
+ export declare const InMemoryCacheSchema: z.ZodObject<{
5
+ maxConnections: z.ZodOptional<z.ZodNumber>;
6
+ idleTimeoutMillis: z.ZodOptional<z.ZodNumber>;
7
+ connectionTimeoutMillis: z.ZodOptional<z.ZodNumber>;
8
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
9
+ } & {
10
+ type: z.ZodLiteral<"in-memory">;
11
+ }, "strict", z.ZodTypeAny, {
12
+ type: "in-memory";
13
+ maxConnections?: number | undefined;
14
+ idleTimeoutMillis?: number | undefined;
15
+ connectionTimeoutMillis?: number | undefined;
16
+ options?: Record<string, unknown> | undefined;
17
+ }, {
18
+ type: "in-memory";
19
+ maxConnections?: number | undefined;
20
+ idleTimeoutMillis?: number | undefined;
21
+ connectionTimeoutMillis?: number | undefined;
22
+ options?: Record<string, unknown> | undefined;
23
+ }>;
24
+ export type InMemoryCacheConfig = z.output<typeof InMemoryCacheSchema>;
25
+ export declare const RedisCacheSchema: z.ZodEffects<z.ZodObject<{
26
+ maxConnections: z.ZodOptional<z.ZodNumber>;
27
+ idleTimeoutMillis: z.ZodOptional<z.ZodNumber>;
28
+ connectionTimeoutMillis: z.ZodOptional<z.ZodNumber>;
29
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
30
+ } & {
31
+ type: z.ZodLiteral<"redis">;
32
+ url: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
33
+ host: z.ZodOptional<z.ZodString>;
34
+ port: z.ZodOptional<z.ZodNumber>;
35
+ password: z.ZodOptional<z.ZodString>;
36
+ database: z.ZodOptional<z.ZodNumber>;
37
+ }, "strict", z.ZodTypeAny, {
38
+ type: "redis";
39
+ maxConnections?: number | undefined;
40
+ idleTimeoutMillis?: number | undefined;
41
+ connectionTimeoutMillis?: number | undefined;
42
+ options?: Record<string, unknown> | undefined;
43
+ url?: string | undefined;
44
+ host?: string | undefined;
45
+ port?: number | undefined;
46
+ password?: string | undefined;
47
+ database?: number | undefined;
48
+ }, {
49
+ type: "redis";
50
+ maxConnections?: number | undefined;
51
+ idleTimeoutMillis?: number | undefined;
52
+ connectionTimeoutMillis?: number | undefined;
53
+ options?: Record<string, unknown> | undefined;
54
+ url?: string | undefined;
55
+ host?: string | undefined;
56
+ port?: number | undefined;
57
+ password?: string | undefined;
58
+ database?: number | undefined;
59
+ }>, {
60
+ type: "redis";
61
+ maxConnections?: number | undefined;
62
+ idleTimeoutMillis?: number | undefined;
63
+ connectionTimeoutMillis?: number | undefined;
64
+ options?: Record<string, unknown> | undefined;
65
+ url?: string | undefined;
66
+ host?: string | undefined;
67
+ port?: number | undefined;
68
+ password?: string | undefined;
69
+ database?: number | undefined;
70
+ }, {
71
+ type: "redis";
72
+ maxConnections?: number | undefined;
73
+ idleTimeoutMillis?: number | undefined;
74
+ connectionTimeoutMillis?: number | undefined;
75
+ options?: Record<string, unknown> | undefined;
76
+ url?: string | undefined;
77
+ host?: string | undefined;
78
+ port?: number | undefined;
79
+ password?: string | undefined;
80
+ database?: number | undefined;
81
+ }>;
82
+ export type RedisCacheConfig = z.output<typeof RedisCacheSchema>;
83
+ export declare const CacheConfigSchema: z.ZodObject<{
84
+ type: z.ZodString;
85
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
86
+ type: z.ZodString;
87
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
88
+ type: z.ZodString;
89
+ }, z.ZodTypeAny, "passthrough">>;
90
+ export type CacheConfig = z.output<typeof CacheConfigSchema>;
91
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/cache/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,WAAW,iCAAkC,CAAC;AAC3D,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAoBrD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;EAGrB,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGvE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBvB,CAAC;AAEP,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAGjE,eAAO,MAAM,iBAAiB;;;;;;gCAKmC,CAAC;AAElE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { z } from "zod";
2
+ import { EnvExpandedString, ErrorScope, ErrorType, StorageErrorCode } from "@dexto/core";
3
+ const CACHE_TYPES = ["in-memory", "redis"];
4
+ const BaseCacheSchema = z.object({
5
+ maxConnections: z.number().int().positive().optional().describe("Maximum connections"),
6
+ idleTimeoutMillis: z.number().int().positive().optional().describe("Idle timeout in milliseconds"),
7
+ connectionTimeoutMillis: z.number().int().positive().optional().describe("Connection timeout in milliseconds"),
8
+ options: z.record(z.unknown()).optional().describe("Backend-specific options")
9
+ });
10
+ const InMemoryCacheSchema = BaseCacheSchema.extend({
11
+ type: z.literal("in-memory")
12
+ // In-memory cache doesn't need connection options, but inherits pool options for consistency
13
+ }).strict();
14
+ const RedisCacheSchema = BaseCacheSchema.extend({
15
+ type: z.literal("redis"),
16
+ url: EnvExpandedString().optional().describe("Redis connection URL (redis://...)"),
17
+ host: z.string().optional().describe("Redis host"),
18
+ port: z.number().int().positive().optional().describe("Redis port"),
19
+ password: z.string().optional().describe("Redis password"),
20
+ database: z.number().int().nonnegative().optional().describe("Redis database number")
21
+ }).strict().superRefine((data, ctx) => {
22
+ if (!data.url && !data.host) {
23
+ ctx.addIssue({
24
+ code: z.ZodIssueCode.custom,
25
+ message: "Redis cache requires either 'url' or 'host' to be specified",
26
+ path: ["url"],
27
+ params: {
28
+ code: StorageErrorCode.CONNECTION_CONFIG_MISSING,
29
+ scope: ErrorScope.STORAGE,
30
+ type: ErrorType.USER
31
+ }
32
+ });
33
+ }
34
+ });
35
+ const CacheConfigSchema = z.object({
36
+ type: z.string().describe("Cache backend type identifier")
37
+ }).passthrough().describe("Cache configuration (validated by image factory)");
38
+ export {
39
+ CACHE_TYPES,
40
+ CacheConfigSchema,
41
+ InMemoryCacheSchema,
42
+ RedisCacheSchema
43
+ };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
@@ -0,0 +1 @@
1
+ export { Cache } from '@dexto/core';
@@ -0,0 +1,2 @@
1
+ export type { Cache } from '@dexto/core';
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cache/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC"}
File without changes
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var factories_exports = {};
20
+ __export(factories_exports, {
21
+ inMemoryDatabaseFactory: () => import_memory.inMemoryDatabaseFactory,
22
+ postgresDatabaseFactory: () => import_postgres.postgresDatabaseFactory,
23
+ sqliteDatabaseFactory: () => import_sqlite.sqliteDatabaseFactory
24
+ });
25
+ module.exports = __toCommonJS(factories_exports);
26
+ var import_memory = require("./memory.js");
27
+ var import_sqlite = require("./sqlite.js");
28
+ var import_postgres = require("./postgres.js");
29
+ // Annotate the CommonJS export names for ESM import in node:
30
+ 0 && (module.exports = {
31
+ inMemoryDatabaseFactory,
32
+ postgresDatabaseFactory,
33
+ sqliteDatabaseFactory
34
+ });
@@ -0,0 +1,7 @@
1
+ export { inMemoryDatabaseFactory } from './memory.cjs';
2
+ export { sqliteDatabaseFactory } from './sqlite.cjs';
3
+ export { postgresDatabaseFactory } from './postgres.cjs';
4
+ import '../schemas.cjs';
5
+ import 'zod';
6
+ import '../factory.cjs';
7
+ import '@dexto/core';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Built-in database factories.
3
+ */
4
+ export { inMemoryDatabaseFactory } from './memory.js';
5
+ export { sqliteDatabaseFactory } from './sqlite.js';
6
+ export { postgresDatabaseFactory } from './postgres.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/factories/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { inMemoryDatabaseFactory } from "./memory.js";
2
+ import { sqliteDatabaseFactory } from "./sqlite.js";
3
+ import { postgresDatabaseFactory } from "./postgres.js";
4
+ export {
5
+ inMemoryDatabaseFactory,
6
+ postgresDatabaseFactory,
7
+ sqliteDatabaseFactory
8
+ };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var memory_exports = {};
20
+ __export(memory_exports, {
21
+ inMemoryDatabaseFactory: () => inMemoryDatabaseFactory
22
+ });
23
+ module.exports = __toCommonJS(memory_exports);
24
+ var import_schemas = require("../schemas.js");
25
+ var import_memory_database_store = require("../memory-database-store.js");
26
+ const inMemoryDatabaseFactory = {
27
+ configSchema: import_schemas.InMemoryDatabaseSchema,
28
+ create: (_config, _logger) => new import_memory_database_store.MemoryDatabaseStore(),
29
+ metadata: {
30
+ displayName: "In-Memory",
31
+ description: "Store data in RAM (ephemeral, for testing and development)",
32
+ requiresNetwork: false,
33
+ supportsListOperations: true
34
+ }
35
+ };
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ inMemoryDatabaseFactory
39
+ });
@@ -0,0 +1,20 @@
1
+ import { InMemoryDatabaseConfig } from '../schemas.cjs';
2
+ import { DatabaseFactory } from '../factory.cjs';
3
+ import 'zod';
4
+ import '@dexto/core';
5
+
6
+ /**
7
+ * Factory for in-memory database storage.
8
+ *
9
+ * This factory stores data in RAM and is ideal for development,
10
+ * testing, and ephemeral use cases where persistence is not required.
11
+ *
12
+ * Features:
13
+ * - Zero external dependencies
14
+ * - Fast in-memory operations
15
+ * - No network required
16
+ * - Data is lost on restart
17
+ */
18
+ declare const inMemoryDatabaseFactory: DatabaseFactory<InMemoryDatabaseConfig>;
19
+
20
+ export { inMemoryDatabaseFactory };
@@ -0,0 +1,16 @@
1
+ import type { InMemoryDatabaseConfig } from '../schemas.js';
2
+ import type { DatabaseFactory } from '../factory.js';
3
+ /**
4
+ * Factory for in-memory database storage.
5
+ *
6
+ * This factory stores data in RAM and is ideal for development,
7
+ * testing, and ephemeral use cases where persistence is not required.
8
+ *
9
+ * Features:
10
+ * - Zero external dependencies
11
+ * - Fast in-memory operations
12
+ * - No network required
13
+ * - Data is lost on restart
14
+ */
15
+ export declare const inMemoryDatabaseFactory: DatabaseFactory<InMemoryDatabaseConfig>;
16
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/database/factories/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,sBAAsB,CAS3E,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { InMemoryDatabaseSchema } from "../schemas.js";
2
+ import { MemoryDatabaseStore } from "../memory-database-store.js";
3
+ const inMemoryDatabaseFactory = {
4
+ configSchema: InMemoryDatabaseSchema,
5
+ create: (_config, _logger) => new MemoryDatabaseStore(),
6
+ metadata: {
7
+ displayName: "In-Memory",
8
+ description: "Store data in RAM (ephemeral, for testing and development)",
9
+ requiresNetwork: false,
10
+ supportsListOperations: true
11
+ }
12
+ };
13
+ export {
14
+ inMemoryDatabaseFactory
15
+ };
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var postgres_exports = {};
30
+ __export(postgres_exports, {
31
+ postgresDatabaseFactory: () => postgresDatabaseFactory
32
+ });
33
+ module.exports = __toCommonJS(postgres_exports);
34
+ var import_schemas = require("../schemas.js");
35
+ var import_core = require("@dexto/core");
36
+ const postgresDatabaseFactory = {
37
+ configSchema: import_schemas.PostgresDatabaseSchema,
38
+ create: async (config, logger) => {
39
+ try {
40
+ const module2 = await import("../postgres-store.js");
41
+ logger.info("Connecting to PostgreSQL database");
42
+ return new module2.PostgresStore(config, logger);
43
+ } catch (error) {
44
+ const err = error;
45
+ if (err.code === "ERR_MODULE_NOT_FOUND") {
46
+ throw import_core.StorageError.dependencyNotInstalled("PostgreSQL", "pg", "npm install pg");
47
+ }
48
+ throw error;
49
+ }
50
+ },
51
+ metadata: {
52
+ displayName: "PostgreSQL",
53
+ description: "Production PostgreSQL database with connection pooling",
54
+ requiresNetwork: true,
55
+ supportsListOperations: true
56
+ }
57
+ };
58
+ // Annotate the CommonJS export names for ESM import in node:
59
+ 0 && (module.exports = {
60
+ postgresDatabaseFactory
61
+ });
@@ -0,0 +1,23 @@
1
+ import { PostgresDatabaseConfig } from '../schemas.cjs';
2
+ import { DatabaseFactory } from '../factory.cjs';
3
+ import 'zod';
4
+ import '@dexto/core';
5
+
6
+ /**
7
+ * Factory for PostgreSQL database storage.
8
+ *
9
+ * This factory stores data in a PostgreSQL database server using the pg package.
10
+ * It's ideal for production deployments requiring scalability and multi-machine access.
11
+ *
12
+ * Features:
13
+ * - Connection pooling for efficient resource usage
14
+ * - JSONB storage for flexible data types
15
+ * - Transaction support
16
+ * - Suitable for distributed deployments
17
+ *
18
+ * Note: pg is an optional dependency. Install it with:
19
+ * npm install pg
20
+ */
21
+ declare const postgresDatabaseFactory: DatabaseFactory<PostgresDatabaseConfig>;
22
+
23
+ export { postgresDatabaseFactory };
@@ -0,0 +1,19 @@
1
+ import type { PostgresDatabaseConfig } from '../schemas.js';
2
+ import type { DatabaseFactory } from '../factory.js';
3
+ /**
4
+ * Factory for PostgreSQL database storage.
5
+ *
6
+ * This factory stores data in a PostgreSQL database server using the pg package.
7
+ * It's ideal for production deployments requiring scalability and multi-machine access.
8
+ *
9
+ * Features:
10
+ * - Connection pooling for efficient resource usage
11
+ * - JSONB storage for flexible data types
12
+ * - Transaction support
13
+ * - Suitable for distributed deployments
14
+ *
15
+ * Note: pg is an optional dependency. Install it with:
16
+ * npm install pg
17
+ */
18
+ export declare const postgresDatabaseFactory: DatabaseFactory<PostgresDatabaseConfig>;
19
+ //# sourceMappingURL=postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/database/factories/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAG5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,sBAAsB,CAqB3E,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { PostgresDatabaseSchema } from "../schemas.js";
2
+ import { StorageError } from "@dexto/core";
3
+ const postgresDatabaseFactory = {
4
+ configSchema: PostgresDatabaseSchema,
5
+ create: async (config, logger) => {
6
+ try {
7
+ const module = await import("../postgres-store.js");
8
+ logger.info("Connecting to PostgreSQL database");
9
+ return new module.PostgresStore(config, logger);
10
+ } catch (error) {
11
+ const err = error;
12
+ if (err.code === "ERR_MODULE_NOT_FOUND") {
13
+ throw StorageError.dependencyNotInstalled("PostgreSQL", "pg", "npm install pg");
14
+ }
15
+ throw error;
16
+ }
17
+ },
18
+ metadata: {
19
+ displayName: "PostgreSQL",
20
+ description: "Production PostgreSQL database with connection pooling",
21
+ requiresNetwork: true,
22
+ supportsListOperations: true
23
+ }
24
+ };
25
+ export {
26
+ postgresDatabaseFactory
27
+ };
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var sqlite_exports = {};
30
+ __export(sqlite_exports, {
31
+ sqliteDatabaseFactory: () => sqliteDatabaseFactory
32
+ });
33
+ module.exports = __toCommonJS(sqlite_exports);
34
+ var import_schemas = require("../schemas.js");
35
+ var import_core = require("@dexto/core");
36
+ const sqliteDatabaseFactory = {
37
+ configSchema: import_schemas.SqliteDatabaseSchema,
38
+ create: async (config, logger) => {
39
+ try {
40
+ const module2 = await import("../sqlite-store.js");
41
+ logger.info(`Creating SQLite database store: ${config.path}`);
42
+ return new module2.SQLiteStore(config, logger);
43
+ } catch (error) {
44
+ const err = error;
45
+ if (err.code === "ERR_MODULE_NOT_FOUND" && typeof err.message === "string" && err.message.includes("better-sqlite3")) {
46
+ throw import_core.StorageError.dependencyNotInstalled(
47
+ "SQLite",
48
+ "better-sqlite3",
49
+ "npm install better-sqlite3"
50
+ );
51
+ }
52
+ throw error;
53
+ }
54
+ },
55
+ metadata: {
56
+ displayName: "SQLite",
57
+ description: "Local SQLite database for persistent storage",
58
+ requiresNetwork: false,
59
+ supportsListOperations: true
60
+ }
61
+ };
62
+ // Annotate the CommonJS export names for ESM import in node:
63
+ 0 && (module.exports = {
64
+ sqliteDatabaseFactory
65
+ });
@@ -0,0 +1,24 @@
1
+ import { SqliteDatabaseConfig } from '../schemas.cjs';
2
+ import { DatabaseFactory } from '../factory.cjs';
3
+ import 'zod';
4
+ import '@dexto/core';
5
+
6
+ /**
7
+ * Factory for SQLite database storage.
8
+ *
9
+ * This factory stores data in a local SQLite database file using better-sqlite3.
10
+ * It's ideal for single-machine deployments and development scenarios where
11
+ * persistence is required without the overhead of a database server.
12
+ *
13
+ * Features:
14
+ * - Uses better-sqlite3 for synchronous, fast operations
15
+ * - WAL mode enabled for better concurrency
16
+ * - No external server required
17
+ * - Persistent storage survives restarts
18
+ *
19
+ * Note: better-sqlite3 is an optional dependency. Install it with:
20
+ * npm install better-sqlite3
21
+ */
22
+ declare const sqliteDatabaseFactory: DatabaseFactory<SqliteDatabaseConfig>;
23
+
24
+ export { sqliteDatabaseFactory };
@@ -0,0 +1,20 @@
1
+ import type { SqliteDatabaseConfig } from '../schemas.js';
2
+ import type { DatabaseFactory } from '../factory.js';
3
+ /**
4
+ * Factory for SQLite database storage.
5
+ *
6
+ * This factory stores data in a local SQLite database file using better-sqlite3.
7
+ * It's ideal for single-machine deployments and development scenarios where
8
+ * persistence is required without the overhead of a database server.
9
+ *
10
+ * Features:
11
+ * - Uses better-sqlite3 for synchronous, fast operations
12
+ * - WAL mode enabled for better concurrency
13
+ * - No external server required
14
+ * - Persistent storage survives restarts
15
+ *
16
+ * Note: better-sqlite3 is an optional dependency. Install it with:
17
+ * npm install better-sqlite3
18
+ */
19
+ export declare const sqliteDatabaseFactory: DatabaseFactory<SqliteDatabaseConfig>;
20
+ //# sourceMappingURL=sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/database/factories/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAG1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAAe,CAAC,oBAAoB,CA6BvE,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { SqliteDatabaseSchema } from "../schemas.js";
2
+ import { StorageError } from "@dexto/core";
3
+ const sqliteDatabaseFactory = {
4
+ configSchema: SqliteDatabaseSchema,
5
+ create: async (config, logger) => {
6
+ try {
7
+ const module = await import("../sqlite-store.js");
8
+ logger.info(`Creating SQLite database store: ${config.path}`);
9
+ return new module.SQLiteStore(config, logger);
10
+ } catch (error) {
11
+ const err = error;
12
+ if (err.code === "ERR_MODULE_NOT_FOUND" && typeof err.message === "string" && err.message.includes("better-sqlite3")) {
13
+ throw StorageError.dependencyNotInstalled(
14
+ "SQLite",
15
+ "better-sqlite3",
16
+ "npm install better-sqlite3"
17
+ );
18
+ }
19
+ throw error;
20
+ }
21
+ },
22
+ metadata: {
23
+ displayName: "SQLite",
24
+ description: "Local SQLite database for persistent storage",
25
+ requiresNetwork: false,
26
+ supportsListOperations: true
27
+ }
28
+ };
29
+ export {
30
+ sqliteDatabaseFactory
31
+ };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var factory_exports = {};
16
+ module.exports = __toCommonJS(factory_exports);