@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.
- package/LICENSE +44 -0
- package/README.md +80 -0
- package/dist/blob/factories/index.cjs +31 -0
- package/dist/blob/factories/index.d.cts +6 -0
- package/dist/blob/factories/index.d.ts +6 -0
- package/dist/blob/factories/index.d.ts.map +1 -0
- package/dist/blob/factories/index.js +6 -0
- package/dist/blob/factories/local.cjs +38 -0
- package/dist/blob/factories/local.d.cts +21 -0
- package/dist/blob/factories/local.d.ts +17 -0
- package/dist/blob/factories/local.d.ts.map +1 -0
- package/dist/blob/factories/local.js +14 -0
- package/dist/blob/factories/memory.cjs +44 -0
- package/dist/blob/factories/memory.d.cts +21 -0
- package/dist/blob/factories/memory.d.ts +17 -0
- package/dist/blob/factories/memory.d.ts.map +1 -0
- package/dist/blob/factories/memory.js +20 -0
- package/dist/blob/factory.cjs +16 -0
- package/dist/blob/factory.d.cts +36 -0
- package/dist/blob/factory.d.ts +35 -0
- package/dist/blob/factory.d.ts.map +1 -0
- package/dist/blob/factory.js +0 -0
- package/dist/blob/index.cjs +45 -0
- package/dist/blob/index.d.cts +8 -0
- package/dist/blob/index.d.ts +26 -0
- package/dist/blob/index.d.ts.map +1 -0
- package/dist/blob/index.js +19 -0
- package/dist/blob/local-blob-store.cjs +532 -0
- package/dist/blob/local-blob-store.d.cts +56 -0
- package/dist/blob/local-blob-store.d.ts +54 -0
- package/dist/blob/local-blob-store.d.ts.map +1 -0
- package/dist/blob/local-blob-store.js +498 -0
- package/dist/blob/memory-blob-store.cjs +327 -0
- package/dist/blob/memory-blob-store.d.cts +69 -0
- package/dist/blob/memory-blob-store.d.ts +67 -0
- package/dist/blob/memory-blob-store.d.ts.map +1 -0
- package/dist/blob/memory-blob-store.js +303 -0
- package/dist/blob/schemas.cjs +52 -0
- package/dist/blob/schemas.d.cts +87 -0
- package/dist/blob/schemas.d.ts +86 -0
- package/dist/blob/schemas.d.ts.map +1 -0
- package/dist/blob/schemas.js +25 -0
- package/dist/blob/types.cjs +16 -0
- package/dist/blob/types.d.cts +1 -0
- package/dist/blob/types.d.ts +2 -0
- package/dist/blob/types.d.ts.map +1 -0
- package/dist/blob/types.js +0 -0
- package/dist/cache/factories/index.cjs +31 -0
- package/dist/cache/factories/index.d.cts +6 -0
- package/dist/cache/factories/index.d.ts +6 -0
- package/dist/cache/factories/index.d.ts.map +1 -0
- package/dist/cache/factories/index.js +6 -0
- package/dist/cache/factories/memory.cjs +39 -0
- package/dist/cache/factories/memory.d.cts +21 -0
- package/dist/cache/factories/memory.d.ts +17 -0
- package/dist/cache/factories/memory.d.ts.map +1 -0
- package/dist/cache/factories/memory.js +15 -0
- package/dist/cache/factories/redis.cjs +65 -0
- package/dist/cache/factories/redis.d.cts +24 -0
- package/dist/cache/factories/redis.d.ts +20 -0
- package/dist/cache/factories/redis.d.ts.map +1 -0
- package/dist/cache/factories/redis.js +31 -0
- package/dist/cache/factory.cjs +16 -0
- package/dist/cache/factory.d.cts +42 -0
- package/dist/cache/factory.d.ts +41 -0
- package/dist/cache/factory.d.ts.map +1 -0
- package/dist/cache/factory.js +0 -0
- package/dist/cache/index.cjs +42 -0
- package/dist/cache/index.d.cts +7 -0
- package/dist/cache/index.d.ts +25 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +17 -0
- package/dist/cache/memory-cache-store.cjs +106 -0
- package/dist/cache/memory-cache-store.d.cts +27 -0
- package/dist/cache/memory-cache-store.d.ts +25 -0
- package/dist/cache/memory-cache-store.d.ts.map +1 -0
- package/dist/cache/memory-cache-store.js +82 -0
- package/dist/cache/redis-store.cjs +176 -0
- package/dist/cache/redis-store.d.cts +34 -0
- package/dist/cache/redis-store.d.ts +32 -0
- package/dist/cache/redis-store.d.ts.map +1 -0
- package/dist/cache/redis-store.js +152 -0
- package/dist/cache/schemas.cjs +70 -0
- package/dist/cache/schemas.d.cts +93 -0
- package/dist/cache/schemas.d.ts +91 -0
- package/dist/cache/schemas.d.ts.map +1 -0
- package/dist/cache/schemas.js +43 -0
- package/dist/cache/types.cjs +16 -0
- package/dist/cache/types.d.cts +1 -0
- package/dist/cache/types.d.ts +2 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +0 -0
- package/dist/database/factories/index.cjs +34 -0
- package/dist/database/factories/index.d.cts +7 -0
- package/dist/database/factories/index.d.ts +7 -0
- package/dist/database/factories/index.d.ts.map +1 -0
- package/dist/database/factories/index.js +8 -0
- package/dist/database/factories/memory.cjs +39 -0
- package/dist/database/factories/memory.d.cts +20 -0
- package/dist/database/factories/memory.d.ts +16 -0
- package/dist/database/factories/memory.d.ts.map +1 -0
- package/dist/database/factories/memory.js +15 -0
- package/dist/database/factories/postgres.cjs +61 -0
- package/dist/database/factories/postgres.d.cts +23 -0
- package/dist/database/factories/postgres.d.ts +19 -0
- package/dist/database/factories/postgres.d.ts.map +1 -0
- package/dist/database/factories/postgres.js +27 -0
- package/dist/database/factories/sqlite.cjs +65 -0
- package/dist/database/factories/sqlite.d.cts +24 -0
- package/dist/database/factories/sqlite.d.ts +20 -0
- package/dist/database/factories/sqlite.d.ts.map +1 -0
- package/dist/database/factories/sqlite.js +31 -0
- package/dist/database/factory.cjs +16 -0
- package/dist/database/factory.d.cts +42 -0
- package/dist/database/factory.d.ts +41 -0
- package/dist/database/factory.d.ts.map +1 -0
- package/dist/database/factory.js +0 -0
- package/dist/database/index.cjs +46 -0
- package/dist/database/index.d.cts +8 -0
- package/dist/database/index.d.ts +26 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +24 -0
- package/dist/database/memory-database-store.cjs +121 -0
- package/dist/database/memory-database-store.d.cts +30 -0
- package/dist/database/memory-database-store.d.ts +28 -0
- package/dist/database/memory-database-store.d.ts.map +1 -0
- package/dist/database/memory-database-store.js +97 -0
- package/dist/database/postgres-store.cjs +342 -0
- package/dist/database/postgres-store.d.cts +57 -0
- package/dist/database/postgres-store.d.ts +55 -0
- package/dist/database/postgres-store.d.ts.map +1 -0
- package/dist/database/postgres-store.js +318 -0
- package/dist/database/schemas.cjs +82 -0
- package/dist/database/schemas.d.cts +127 -0
- package/dist/database/schemas.d.ts +125 -0
- package/dist/database/schemas.d.ts.map +1 -0
- package/dist/database/schemas.js +54 -0
- package/dist/database/sqlite-store.cjs +270 -0
- package/dist/database/sqlite-store.d.cts +35 -0
- package/dist/database/sqlite-store.d.ts +33 -0
- package/dist/database/sqlite-store.d.ts.map +1 -0
- package/dist/database/sqlite-store.js +236 -0
- package/dist/database/types.cjs +16 -0
- package/dist/database/types.d.cts +1 -0
- package/dist/database/types.d.ts +2 -0
- package/dist/database/types.d.ts.map +1 -0
- package/dist/database/types.js +0 -0
- package/dist/index.cjs +82 -0
- package/dist/index.d.cts +24 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/schemas.cjs +67 -0
- package/dist/schemas.d.cts +72 -0
- package/dist/schemas.d.ts +70 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +46 -0
- 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 @@
|
|
|
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 @@
|
|
|
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,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);
|