@arki/db 0.1.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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +113 -0
  3. package/dist/builder.d.ts +119 -0
  4. package/dist/builder.d.ts.map +1 -0
  5. package/dist/builder.js +165 -0
  6. package/dist/builder.js.map +1 -0
  7. package/dist/bun.d.ts +22 -0
  8. package/dist/bun.d.ts.map +1 -0
  9. package/dist/bun.js +37 -0
  10. package/dist/bun.js.map +1 -0
  11. package/dist/client/ids.d.ts +12 -0
  12. package/dist/client/ids.d.ts.map +1 -0
  13. package/dist/client/ids.js +2 -0
  14. package/dist/client/ids.js.map +1 -0
  15. package/dist/client/index.d.ts +12 -0
  16. package/dist/client/index.d.ts.map +1 -0
  17. package/dist/client/index.js +2 -0
  18. package/dist/client/index.js.map +1 -0
  19. package/dist/connection-options.d.ts +30 -0
  20. package/dist/connection-options.d.ts.map +1 -0
  21. package/dist/connection-options.js +41 -0
  22. package/dist/connection-options.js.map +1 -0
  23. package/dist/debug.d.ts +21 -0
  24. package/dist/debug.d.ts.map +1 -0
  25. package/dist/debug.js +21 -0
  26. package/dist/debug.js.map +1 -0
  27. package/dist/dot.d.ts +87 -0
  28. package/dist/dot.d.ts.map +1 -0
  29. package/dist/dot.js +104 -0
  30. package/dist/dot.js.map +1 -0
  31. package/dist/env.d.ts +23 -0
  32. package/dist/env.d.ts.map +1 -0
  33. package/dist/env.js +77 -0
  34. package/dist/env.js.map +1 -0
  35. package/dist/factory.d.ts +18 -0
  36. package/dist/factory.d.ts.map +1 -0
  37. package/dist/factory.js +31 -0
  38. package/dist/factory.js.map +1 -0
  39. package/dist/id-factory.d.ts +85 -0
  40. package/dist/id-factory.d.ts.map +1 -0
  41. package/dist/id-factory.js +119 -0
  42. package/dist/id-factory.js.map +1 -0
  43. package/dist/id.d.ts +4 -0
  44. package/dist/id.d.ts.map +1 -0
  45. package/dist/id.js +10 -0
  46. package/dist/id.js.map +1 -0
  47. package/dist/init.bun.d.ts +25 -0
  48. package/dist/init.bun.d.ts.map +1 -0
  49. package/dist/init.bun.js +29 -0
  50. package/dist/init.bun.js.map +1 -0
  51. package/dist/init.d.ts +16 -0
  52. package/dist/init.d.ts.map +1 -0
  53. package/dist/init.js +24 -0
  54. package/dist/init.js.map +1 -0
  55. package/dist/orm.d.ts +3 -0
  56. package/dist/orm.d.ts.map +1 -0
  57. package/dist/orm.js +5 -0
  58. package/dist/orm.js.map +1 -0
  59. package/dist/pg.d.ts +2 -0
  60. package/dist/pg.d.ts.map +1 -0
  61. package/dist/pg.js +2 -0
  62. package/dist/pg.js.map +1 -0
  63. package/dist/runtime-local.d.ts +30 -0
  64. package/dist/runtime-local.d.ts.map +1 -0
  65. package/dist/runtime-local.js +31 -0
  66. package/dist/runtime-local.js.map +1 -0
  67. package/package.json +128 -0
package/dist/id.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAmB,MAAS,EAAmB,EAAE;IAC/E,OAAO,GAAG,MAAM,GAAG,QAAQ,EAAE,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF,+BAA+B;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { AnyRelations } from 'drizzle-orm';
2
+ import type { DrizzlePgConfig } from 'drizzle-orm/pg-core/utils';
3
+ import { SQL } from 'bun';
4
+ export declare const initDb: <TRelations extends AnyRelations>(connectionString: string, config: Omit<DrizzlePgConfig<TRelations>, "relations"> & {
5
+ relations: TRelations;
6
+ }) => import("drizzle-orm/bun-sql/postgres").BunSQLDatabase<TRelations> & {
7
+ $client: SQL;
8
+ };
9
+ export declare const initDbWithOptions: <TRelations extends AnyRelations>(poolConfig: {
10
+ connectionString?: string;
11
+ host?: string;
12
+ port?: number;
13
+ database?: string;
14
+ user?: string;
15
+ password?: string;
16
+ min?: number;
17
+ max?: number;
18
+ }, config: Omit<DrizzlePgConfig<TRelations>, "relations"> & {
19
+ relations: TRelations;
20
+ }) => import("drizzle-orm/bun-sql/postgres").BunSQLDatabase<TRelations> & {
21
+ $client: SQL;
22
+ };
23
+ export { createDb } from './factory.js';
24
+ export { getDbConnectionOptions, getDbConnectionParams } from './connection-options.js';
25
+ //# sourceMappingURL=init.bun.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.bun.d.ts","sourceRoot":"","sources":["../src/init.bun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAM1B,eAAO,MAAM,MAAM,GAAI,UAAU,SAAS,YAAY,EACpD,kBAAkB,MAAM,EACxB,QAAQ,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,EAAE,UAAU,CAAA;CAAE;;CAUnF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,SAAS,YAAY,EAC/D,YAAY;IACV,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,EACD,QAAQ,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,EAAE,UAAU,CAAA;CAAE;;CAoBnF,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { drizzle } from 'drizzle-orm/bun-sql/postgres';
2
+ import { SQL } from 'bun';
3
+ import { debugInit } from './debug.js';
4
+ debugInit('[init.bun] Using Bun SQL (native) for database connections');
5
+ export const initDb = (connectionString, config) => {
6
+ debugInit('[init.bun] Initializing database with connection string (logger: %s)', !!config.logger);
7
+ const client = new SQL(connectionString);
8
+ const db = drizzle({ ...config, client });
9
+ debugInit('[init.bun] Database initialized successfully');
10
+ return db;
11
+ };
12
+ export const initDbWithOptions = (poolConfig, config) => {
13
+ debugInit('[init.bun] Initializing database with pool config (min: %d, max: %d, logger: %s)', poolConfig.min ?? 0, poolConfig.max ?? 10, !!config.logger);
14
+ const client = poolConfig.connectionString
15
+ ? new SQL(poolConfig.connectionString)
16
+ : new SQL({
17
+ hostname: poolConfig.host,
18
+ port: poolConfig.port,
19
+ database: poolConfig.database,
20
+ username: poolConfig.user,
21
+ password: poolConfig.password,
22
+ });
23
+ const db = drizzle({ ...config, client });
24
+ debugInit('[init.bun] Database initialized with custom pool configuration');
25
+ return db;
26
+ };
27
+ export { createDb } from './factory.js';
28
+ export { getDbConnectionOptions, getDbConnectionParams } from './connection-options.js';
29
+ //# sourceMappingURL=init.bun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.bun.js","sourceRoot":"","sources":["../src/init.bun.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,SAAS,CAAC,4DAA4D,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,gBAAwB,EACxB,MAAkF,EAClF,EAAE;IACF,SAAS,CAAC,sEAAsE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEnG,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,OAAO,CAAa,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtD,SAAS,CAAC,8CAA8C,CAAC,CAAC;IAE1D,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,UASC,EACD,MAAkF,EAClF,EAAE;IACF,SAAS,CAAC,kFAAkF,EAC1F,UAAU,CAAC,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB;QACxC,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACtC,CAAC,CAAC,IAAI,GAAG,CAAC;YACN,QAAQ,EAAE,UAAU,CAAC,IAAI;YACzB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,QAAQ,EAAE,UAAU,CAAC,IAAI;YACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC9B,CAAC,CAAC;IAEP,MAAM,EAAE,GAAG,OAAO,CAAa,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtD,SAAS,CAAC,gEAAgE,CAAC,CAAC;IAE5E,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/init.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import type { AnyRelations } from 'drizzle-orm';
2
+ import type { DrizzlePgConfig } from 'drizzle-orm/pg-core/utils';
3
+ import type { PoolConfig } from 'pg';
4
+ export declare const initDb: <TRelations extends AnyRelations>(connectionString: string, config: Omit<DrizzlePgConfig<TRelations>, "relations"> & {
5
+ relations: TRelations;
6
+ }) => import("drizzle-orm/node-postgres").NodePgDatabase<TRelations> & {
7
+ $client: import("pg").Pool;
8
+ };
9
+ export declare const initDbWithOptions: <TRelations extends AnyRelations>(poolConfig: PoolConfig, config: Omit<DrizzlePgConfig<TRelations>, "relations"> & {
10
+ relations: TRelations;
11
+ }) => import("drizzle-orm/node-postgres").NodePgDatabase<TRelations> & {
12
+ $client: import("pg").Pool;
13
+ };
14
+ export { createDb } from './factory.js';
15
+ export { getDbConnectionOptions, getDbConnectionParams } from './connection-options.js';
16
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AASrC,eAAO,MAAM,MAAM,GAAI,UAAU,SAAS,YAAY,EACpD,kBAAkB,MAAM,EACxB,QAAQ,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,EAAE,UAAU,CAAA;CAAE;;CAYnF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,SAAS,YAAY,EAC/D,YAAY,UAAU,EACtB,QAAQ,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,GAAG;IAAE,SAAS,EAAE,UAAU,CAAA;CAAE;;CAenF,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/init.js ADDED
@@ -0,0 +1,24 @@
1
+ import { drizzle } from 'drizzle-orm/node-postgres';
2
+ import pg from 'pg';
3
+ import { debugInit } from './debug.js';
4
+ const Pool = pg.Pool;
5
+ debugInit('[init] Using pg (pure JS) for database connections');
6
+ export const initDb = (connectionString, config) => {
7
+ debugInit('[init] Initializing database with connection string (logger: %s)', !!config.logger);
8
+ const client = new Pool({
9
+ connectionString,
10
+ });
11
+ const db = drizzle({ ...config, client });
12
+ debugInit('[init] Database initialized successfully');
13
+ return db;
14
+ };
15
+ export const initDbWithOptions = (poolConfig, config) => {
16
+ debugInit('[init] Initializing database with pool config (min: %d, max: %d, logger: %s)', poolConfig.min ?? 0, poolConfig.max ?? 10, !!config.logger);
17
+ const client = new Pool(poolConfig);
18
+ const db = drizzle({ ...config, client });
19
+ debugInit('[init] Database initialized with custom pool configuration');
20
+ return db;
21
+ };
22
+ export { createDb } from './factory.js';
23
+ export { getDbConnectionOptions, getDbConnectionParams } from './connection-options.js';
24
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;AACrB,SAAS,CAAC,oDAAoD,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,gBAAwB,EACxB,MAAkF,EAClF,EAAE;IACF,SAAS,CAAC,kEAAkE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE/F,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC;QACtB,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,OAAO,CAAa,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtD,SAAS,CAAC,0CAA0C,CAAC,CAAC;IAEtD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,UAAsB,EACtB,MAAkF,EAClF,EAAE;IACF,SAAS,CACP,8EAA8E,EAC9E,UAAU,CAAC,GAAG,IAAI,CAAC,EACnB,UAAU,CAAC,GAAG,IAAI,EAAE,EACpB,CAAC,CAAC,MAAM,CAAC,MAAM,CAChB,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IAEpC,MAAM,EAAE,GAAG,OAAO,CAAa,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtD,SAAS,CAAC,4DAA4D,CAAC,CAAC;IAExE,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/orm.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from 'drizzle-orm';
2
+ export { createInsertSchema, createSchemaFactory, createSelectSchema, createUpdateSchema, } from 'drizzle-orm/zod';
3
+ //# sourceMappingURL=orm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orm.d.ts","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAG5B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
package/dist/orm.js ADDED
@@ -0,0 +1,5 @@
1
+ export * from 'drizzle-orm';
2
+ // `drizzle-orm/zod` replaces the standalone drizzle-zod package in 1.0.
3
+ // Named re-export prevents an IsNever collision with drizzle-orm's main types.
4
+ export { createInsertSchema, createSchemaFactory, createSelectSchema, createUpdateSchema, } from 'drizzle-orm/zod';
5
+ //# sourceMappingURL=orm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orm.js","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
package/dist/pg.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from 'drizzle-orm/pg-core';
2
+ //# sourceMappingURL=pg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../src/pg.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
package/dist/pg.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from 'drizzle-orm/pg-core';
2
+ //# sourceMappingURL=pg.js.map
package/dist/pg.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg.js","sourceRoot":"","sources":["../src/pg.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { AnyRelations } from 'drizzle-orm';
2
+ import { PGlite, type Extension } from '@electric-sql/pglite';
3
+ import { type PgliteDatabase } from 'drizzle-orm/pglite';
4
+ export type PgliteInitOptions = {
5
+ /** Path to the PGlite data directory. Defaults to `./.local/db`. */
6
+ dataDir?: string;
7
+ /** Use an in-memory database (overrides dataDir). */
8
+ memory?: boolean;
9
+ /** PGlite extensions to load (e.g. `{ vector }` from `@electric-sql/pglite/vector`). */
10
+ extensions?: Record<string, Extension>;
11
+ };
12
+ /**
13
+ * Initialize a PGlite-backed Drizzle database for embedded local development.
14
+ *
15
+ * Returns the raw PGlite instance alongside the Drizzle handle so callers can
16
+ * share it with `@arki/queue/runtime-local` (one process, one PGlite).
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { initDbRuntimeLocal } from '@arki/db/runtime-local';
21
+ * const { db, pglite } = await initDbRuntimeLocal({ dataDir: './.local/db' }, { relations });
22
+ * ```
23
+ */
24
+ export declare function initDbRuntimeLocal<TRelations extends AnyRelations>(options: PgliteInitOptions, config: {
25
+ relations: TRelations;
26
+ }): Promise<{
27
+ db: PgliteDatabase<TRelations>;
28
+ pglite: PGlite;
29
+ }>;
30
+ //# sourceMappingURL=runtime-local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-local.d.ts","sourceRoot":"","sources":["../src/runtime-local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIlE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,SAAS,YAAY,EACtE,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE;IAAE,SAAS,EAAE,UAAU,CAAA;CAAE,GAChC,OAAO,CAAC;IAAE,EAAE,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAiB7D"}
@@ -0,0 +1,31 @@
1
+ import { PGlite } from '@electric-sql/pglite';
2
+ import { drizzle } from 'drizzle-orm/pglite';
3
+ import { debugInit } from './debug.js';
4
+ /**
5
+ * Initialize a PGlite-backed Drizzle database for embedded local development.
6
+ *
7
+ * Returns the raw PGlite instance alongside the Drizzle handle so callers can
8
+ * share it with `@arki/queue/runtime-local` (one process, one PGlite).
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { initDbRuntimeLocal } from '@arki/db/runtime-local';
13
+ * const { db, pglite } = await initDbRuntimeLocal({ dataDir: './.local/db' }, { relations });
14
+ * ```
15
+ */
16
+ export async function initDbRuntimeLocal(options, config) {
17
+ const url = options.memory === true ? 'memory://' : (options.dataDir ?? './.local/db');
18
+ debugInit('[runtime-local] Initializing PGlite at: %s', url);
19
+ const pglite = options.extensions
20
+ ? new PGlite(url, { extensions: options.extensions })
21
+ : new PGlite(url);
22
+ await pglite.waitReady;
23
+ debugInit('[runtime-local] PGlite ready');
24
+ const db = drizzle({
25
+ client: pglite,
26
+ relations: config.relations,
27
+ });
28
+ debugInit('[runtime-local] Drizzle database initialized');
29
+ return { db, pglite };
30
+ }
31
+ //# sourceMappingURL=runtime-local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-local.js","sourceRoot":"","sources":["../src/runtime-local.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAkB,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAuB,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAWvC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA0B,EAC1B,MAAiC;IAEjC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC;IACvF,SAAS,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU;QAC/B,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QACrD,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,MAAM,MAAM,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAE1C,MAAM,EAAE,GAAG,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAA+B,CAAC;IAEjC,SAAS,CAAC,8CAA8C,CAAC,CAAC;IAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACxB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,128 @@
1
+ {
2
+ "name": "@arki/db",
3
+ "version": "0.1.0",
4
+ "description": "Drizzle ORM repositories and database helpers for ARKI — Postgres + PGlite runtimes, projection builder, branded ID factory, and env-aware connection pooling.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/arki-labs/arki.git"
9
+ },
10
+ "homepage": "https://arki.dev",
11
+ "bugs": {
12
+ "url": "https://github.com/arki-labs/arki/issues"
13
+ },
14
+ "keywords": [
15
+ "arki",
16
+ "typescript",
17
+ "drizzle",
18
+ "postgres",
19
+ "pglite",
20
+ "database",
21
+ "orm",
22
+ "projections"
23
+ ],
24
+ "type": "module",
25
+ "sideEffects": false,
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/init.d.ts",
29
+ "import": "./dist/init.js",
30
+ "default": "./dist/init.js"
31
+ },
32
+ "./env": {
33
+ "types": "./dist/env.d.ts",
34
+ "import": "./dist/env.js",
35
+ "default": "./dist/env.js"
36
+ },
37
+ "./init": {
38
+ "bun": {
39
+ "types": "./dist/init.bun.d.ts",
40
+ "import": "./dist/init.bun.js",
41
+ "default": "./dist/init.bun.js"
42
+ },
43
+ "types": "./dist/init.d.ts",
44
+ "import": "./dist/init.js",
45
+ "default": "./dist/init.js"
46
+ },
47
+ "./factory": {
48
+ "types": "./dist/factory.d.ts",
49
+ "import": "./dist/factory.js",
50
+ "default": "./dist/factory.js"
51
+ },
52
+ "./builder": {
53
+ "types": "./dist/builder.d.ts",
54
+ "import": "./dist/builder.js",
55
+ "default": "./dist/builder.js"
56
+ },
57
+ "./client": {
58
+ "types": "./dist/client/index.d.ts",
59
+ "import": "./dist/client/index.js",
60
+ "default": "./dist/client/index.js"
61
+ },
62
+ "./runtime-local": {
63
+ "types": "./dist/runtime-local.d.ts",
64
+ "import": "./dist/runtime-local.js",
65
+ "default": "./dist/runtime-local.js"
66
+ },
67
+ "./id": {
68
+ "types": "./dist/id.d.ts",
69
+ "import": "./dist/id.js",
70
+ "default": "./dist/id.js"
71
+ },
72
+ "./id-factory": {
73
+ "types": "./dist/id-factory.d.ts",
74
+ "import": "./dist/id-factory.js",
75
+ "default": "./dist/id-factory.js"
76
+ },
77
+ "./orm": {
78
+ "types": "./dist/orm.d.ts",
79
+ "import": "./dist/orm.js",
80
+ "default": "./dist/orm.js"
81
+ },
82
+ "./pg": {
83
+ "types": "./dist/pg.d.ts",
84
+ "import": "./dist/pg.js",
85
+ "default": "./dist/pg.js"
86
+ },
87
+ "./bun": {
88
+ "types": "./dist/bun.d.ts",
89
+ "import": "./dist/bun.js",
90
+ "default": "./dist/bun.js"
91
+ },
92
+ "./dot": {
93
+ "types": "./dist/dot.d.ts",
94
+ "import": "./dist/dot.js",
95
+ "default": "./dist/dot.js"
96
+ },
97
+ "./package.json": "./package.json"
98
+ },
99
+ "files": [
100
+ "dist/**",
101
+ "README.md",
102
+ "LICENSE",
103
+ "package.json"
104
+ ],
105
+ "dependencies": {
106
+ "@arki/assert": "0.0.1",
107
+ "@arki/contracts": "0.0.1",
108
+ "@arki/log": "0.0.1",
109
+ "@electric-sql/pglite": "^0.4.5",
110
+ "@paralleldrive/cuid2": "^3.3.0",
111
+ "@t3-oss/env-core": "^0.13.10",
112
+ "drizzle-orm": "1.0.0-rc.1",
113
+ "pg": "8.17.1",
114
+ "postgres": "^3.4.8",
115
+ "zod": "4.3.5"
116
+ },
117
+ "peerDependencies": {
118
+ "@arki/dot": "^0.1.0"
119
+ },
120
+ "peerDependenciesMeta": {
121
+ "@arki/dot": {
122
+ "optional": true
123
+ }
124
+ },
125
+ "publishConfig": {
126
+ "access": "public"
127
+ }
128
+ }