clivly 0.8.0 → 0.9.1

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 (112) hide show
  1. package/README.md +330 -134
  2. package/core-drizzle.cjs +3 -1
  3. package/core-drizzle.d.cts +3 -2
  4. package/core-drizzle.d.mts +3 -2
  5. package/core-drizzle.mjs +2 -2
  6. package/core-entity-config.cjs +2 -1
  7. package/core-entity-config.d.cts +2 -2
  8. package/core-entity-config.d.mts +2 -2
  9. package/core-entity-config.mjs +2 -2
  10. package/core-entity-heuristics.d.cts +3 -2
  11. package/core-entity-heuristics.d.mts +3 -2
  12. package/core-mapping-form.d.cts +1 -1
  13. package/core-mapping-form.d.mts +1 -1
  14. package/core-mappings-config.cjs +1 -1
  15. package/core-mappings-config.d.cts +1 -1
  16. package/core-mappings-config.d.mts +1 -1
  17. package/core-mappings-config.mjs +1 -1
  18. package/core-sync-engine.cjs +1 -1
  19. package/core-sync-engine.d.cts +1 -1
  20. package/core-sync-engine.d.mts +1 -1
  21. package/core-sync-engine.mjs +1 -1
  22. package/core-view-compiler.cjs +2 -1
  23. package/core-view-compiler.d.cts +2 -2
  24. package/core-view-compiler.d.mts +2 -2
  25. package/core-view-compiler.mjs +2 -2
  26. package/core.cjs +21 -5
  27. package/core.d.cts +7 -6
  28. package/core.d.mts +7 -6
  29. package/core.mjs +7 -6
  30. package/drizzle-3kvhkwO7.mjs +110 -0
  31. package/drizzle-DooDUGqO.d.mts +41 -0
  32. package/drizzle-bfjVzYR6.cjs +127 -0
  33. package/drizzle-jz0lrAgl.d.cts +41 -0
  34. package/drizzle.cjs +12 -40
  35. package/drizzle.d.cts +3 -11
  36. package/drizzle.d.mts +3 -11
  37. package/drizzle.mjs +12 -41
  38. package/entity-config-D08zAeFY.mjs +657 -0
  39. package/{entity-config-DoUCXtq5.d.cts → entity-config-fKQhimtD.d.cts} +263 -2
  40. package/{entity-config-DoUCXtq5.d.mts → entity-config-fKQhimtD.d.mts} +263 -2
  41. package/entity-config-nuXge6rY.cjs +778 -0
  42. package/index.cjs +768 -122
  43. package/index.d.cts +12 -0
  44. package/index.d.mts +12 -0
  45. package/index.mjs +769 -123
  46. package/internal-BGVUG312.mjs +68 -0
  47. package/internal-BLCK81kB.d.mts +72 -0
  48. package/internal-C-YBW2DB.d.cts +72 -0
  49. package/internal-D4HDi2GC.cjs +97 -0
  50. package/internal-drizzle.cjs +3 -1
  51. package/internal-drizzle.d.cts +2 -2
  52. package/internal-drizzle.d.mts +2 -2
  53. package/internal-drizzle.mjs +2 -2
  54. package/internal-entity-config.cjs +2 -1
  55. package/internal-entity-config.d.cts +2 -2
  56. package/internal-entity-config.d.mts +2 -2
  57. package/internal-entity-config.mjs +2 -2
  58. package/internal-entity-heuristics.cjs +28 -8
  59. package/internal-entity-heuristics.d.cts +2 -12
  60. package/internal-entity-heuristics.d.mts +2 -12
  61. package/internal-entity-heuristics.mjs +28 -8
  62. package/internal-mapping-form.d.cts +1 -1
  63. package/internal-mapping-form.d.mts +1 -1
  64. package/internal-mappings-config.cjs +1 -1
  65. package/internal-mappings-config.d.cts +1 -1
  66. package/internal-mappings-config.d.mts +1 -1
  67. package/internal-mappings-config.mjs +1 -1
  68. package/internal-sync-engine.cjs +1 -1
  69. package/internal-sync-engine.d.cts +1 -1
  70. package/internal-sync-engine.d.mts +1 -1
  71. package/internal-sync-engine.mjs +1 -1
  72. package/internal-view-compiler.cjs +2 -1
  73. package/internal-view-compiler.d.cts +2 -2
  74. package/internal-view-compiler.d.mts +2 -2
  75. package/internal-view-compiler.mjs +2 -2
  76. package/internal.cjs +21 -4
  77. package/internal.d.cts +7 -6
  78. package/internal.d.mts +7 -6
  79. package/internal.mjs +7 -5
  80. package/{mapping-form-D93lhHEc.d.mts → mapping-form-DhY0iFmN.d.cts} +1 -1
  81. package/{mapping-form-lfyEE7EJ.d.cts → mapping-form-Du36VZr1.d.mts} +1 -1
  82. package/{mappings-config-DsUa7-1w.d.mts → mappings-config-B1qNM8VL.d.cts} +7 -1
  83. package/{mappings-config-XmzB4dag.d.cts → mappings-config-BChZsany.d.mts} +7 -1
  84. package/{mappings-config-BsRADNRv.cjs → mappings-config-C8ynKmDK.cjs} +32 -6
  85. package/{mappings-config-Dbgxx3Nv.mjs → mappings-config-DNaYGyKN.mjs} +32 -6
  86. package/namespace-probe-BkUs8raG.d.mts +381 -0
  87. package/namespace-probe-aRFmpU85.d.cts +381 -0
  88. package/package.json +1 -1
  89. package/{entity-config-va2bkH5o.mjs → projection-C5244vGa.cjs} +130 -309
  90. package/{entity-config-D87rV-tE.cjs → projection-D7xmQP4S.mjs} +60 -381
  91. package/{sdk-iqOXeWIp.cjs → sdk-Bj-ZDf4u.cjs} +126 -28
  92. package/{sdk-C6WANW8M.mjs → sdk-BvRD2jAp.mjs} +126 -28
  93. package/sdk.cjs +2 -2
  94. package/sdk.d.cts +36 -1
  95. package/sdk.d.mts +36 -1
  96. package/sdk.mjs +2 -2
  97. package/{sync-engine-DGk_AeHJ.d.mts → sync-engine-DHQ7rXZe.d.mts} +2 -2
  98. package/{sync-engine-B7QIbXro.d.cts → sync-engine-DiPjH53O.d.cts} +2 -2
  99. package/{sync-engine-Do5ru3WF.mjs → sync-engine-SuxSzbZ4.mjs} +9 -2
  100. package/{sync-engine-CzEbpQGv.cjs → sync-engine-abE94g6X.cjs} +9 -2
  101. package/{view-compiler-BIwvm-o2.cjs → view-compiler-Blu4OXJ7.cjs} +103 -12
  102. package/{view-compiler-ChWr_Lml.mjs → view-compiler-CQx8TRrW.mjs} +98 -13
  103. package/{view-compiler-BWz0sGdm.d.cts → view-compiler-CcUwzZut.d.mts} +12 -2
  104. package/{view-compiler-Bn_EJJMO.d.mts → view-compiler-DqAdVxLq.d.cts} +12 -2
  105. package/vite.d.cts +1 -1
  106. package/vite.d.mts +1 -1
  107. package/drizzle-B89tLo4T.mjs +0 -31
  108. package/drizzle-CFOr9dU9.d.mts +0 -20
  109. package/drizzle-DiReZf6d.cjs +0 -36
  110. package/drizzle-DmeKSqeF.d.cts +0 -20
  111. package/types-CsL0rFYh.d.cts +0 -155
  112. package/types-CsL0rFYh.d.mts +0 -155
package/drizzle.cjs CHANGED
@@ -1,43 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_drizzle_meta = require("./drizzle-meta-Bb1JWYqf.cjs");
3
- const require_drizzle = require("./drizzle-DiReZf6d.cjs");
3
+ const require_drizzle = require("./drizzle-bfjVzYR6.cjs");
4
4
  let drizzle_orm = require("drizzle-orm");
5
- let drizzle_orm_pg_core = require("drizzle-orm/pg-core");
6
5
  //#region ../sdk/src/drizzle.ts
7
- function buildColumnsMeta(table) {
8
- const columns = (0, drizzle_orm.getTableColumns)(table);
9
- const fkByColumn = /* @__PURE__ */ new Map();
10
- try {
11
- for (const fk of (0, drizzle_orm_pg_core.getTableConfig)(table).foreignKeys) {
12
- const ref = fk.reference();
13
- const foreignTable = (0, drizzle_orm.getTableName)(ref.foreignTable);
14
- ref.columns.forEach((col, i) => {
15
- const foreignCol = ref.foreignColumns[i];
16
- if (foreignCol) fkByColumn.set(col.name, {
17
- table: foreignTable,
18
- column: foreignCol.name
19
- });
20
- });
21
- }
22
- } catch {}
23
- return Object.values(columns).map((col) => {
24
- const references = fkByColumn.get(col.name);
25
- let type;
26
- try {
27
- type = col.getSQLType();
28
- } catch {
29
- type = void 0;
30
- }
31
- return {
32
- name: col.name,
33
- type,
34
- nullable: !col.notNull,
35
- isPrimaryKey: Boolean(col.primary),
36
- isForeignKey: references !== void 0,
37
- ...references ? { references } : {}
38
- };
39
- });
40
- }
41
6
  function inferIdField(table) {
42
7
  const columns = (0, drizzle_orm.getTableColumns)(table);
43
8
  const primaryKeys = Object.entries(columns).filter(([, column]) => column.primary);
@@ -65,18 +30,24 @@ function fromDrizzle(db, table, opts) {
65
30
  const idColumn = columns[idField];
66
31
  if (!cursorColumn) throw new Error(`fromDrizzle: cursorField "${opts.cursorField}" is not a column on "${(0, drizzle_orm.getTableName)(table)}".`);
67
32
  if (!idColumn) throw new Error(`fromDrizzle: idField "${idField}" is not a column on "${(0, drizzle_orm.getTableName)(table)}".`);
33
+ const projection = {};
34
+ for (const column of Object.values(columns)) projection[column.name] = column;
35
+ const cursorColumnName = cursorColumn.name;
36
+ const idColumnName = idColumn.name;
68
37
  const source = {
69
38
  entity: opts.entity,
70
- cursorField: opts.cursorField,
71
- idField,
72
- fetchPage: ({ since, limit }) => drizzleDb.select().from(table).where(since ? drizzle_orm.sql`(${cursorColumn}, ${idColumn}) > (${since.time}, ${since.id})` : void 0).orderBy((0, drizzle_orm.asc)(cursorColumn), (0, drizzle_orm.asc)(idColumn)).limit(limit)
39
+ cursorField: cursorColumnName,
40
+ idField: idColumnName,
41
+ fetchPage: ({ since, limit }) => drizzleDb.select(projection).from(table).where(since ? drizzle_orm.sql`(${cursorColumn}, ${idColumn}) > (${since.time}, ${since.id})` : void 0).orderBy((0, drizzle_orm.asc)(cursorColumn), (0, drizzle_orm.asc)(idColumn)).limit(limit)
73
42
  };
43
+ const uniqueConstraints = require_drizzle.buildUniqueConstraints(table);
74
44
  const meta = {
75
45
  columnKeys: Object.keys(columns),
76
46
  cursorField: opts.cursorField,
77
47
  idField,
78
48
  tableName: (0, drizzle_orm.getTableName)(table),
79
- columnsMeta: buildColumnsMeta(table)
49
+ columnsMeta: require_drizzle.buildColumnsMeta(table),
50
+ ...uniqueConstraints === void 0 ? {} : { uniqueConstraints }
80
51
  };
81
52
  Object.defineProperty(source, require_drizzle_meta.DRIZZLE_META, {
82
53
  value: meta,
@@ -104,6 +75,7 @@ function drizzleIntrospector(db) {
104
75
  };
105
76
  }
106
77
  //#endregion
78
+ exports.buildUniqueConstraints = require_drizzle.buildUniqueConstraints;
107
79
  exports.discoverFromDrizzle = require_drizzle.discoverFromDrizzle;
108
80
  exports.drizzleIntrospector = drizzleIntrospector;
109
81
  exports.fromDrizzle = fromDrizzle;
package/drizzle.d.cts CHANGED
@@ -1,14 +1,6 @@
1
- import { t as discoverFromDrizzle } from "./drizzle-DmeKSqeF.cjs";
2
- import { n as SyncSource } from "./types-CsL0rFYh.cjs";
1
+ import { n as buildUniqueConstraints, r as discoverFromDrizzle } from "./drizzle-jz0lrAgl.cjs";
2
+ import { m as SyncSource, t as NamespaceIntrospector } from "./namespace-probe-aRFmpU85.cjs";
3
3
  import { Table } from "drizzle-orm";
4
- //#region ../sdk/src/namespace-probe.d.ts
5
- interface NamespaceIntrospector {
6
- /** All base table names in the reachable schema. */
7
- listTables(): Promise<string[]>;
8
- /** Prove a table is genuinely selectable (SELECT ... LIMIT 1). Throws if unreachable/denied. */
9
- sampleSelect(table: string): Promise<void>;
10
- }
11
- //#endregion
12
4
  //#region ../sdk/src/drizzle.d.ts
13
5
  interface DrizzleDb {
14
6
  select: (...args: any[]) => any;
@@ -33,4 +25,4 @@ declare function fromDrizzle(db: DrizzleDb, table: Table, opts: {
33
25
  */
34
26
  declare function drizzleIntrospector(db: unknown): NamespaceIntrospector;
35
27
  //#endregion
36
- export { discoverFromDrizzle, drizzleIntrospector, fromDrizzle };
28
+ export { buildUniqueConstraints, discoverFromDrizzle, drizzleIntrospector, fromDrizzle };
package/drizzle.d.mts CHANGED
@@ -1,14 +1,6 @@
1
- import { t as discoverFromDrizzle } from "./drizzle-CFOr9dU9.mjs";
2
- import { n as SyncSource } from "./types-CsL0rFYh.mjs";
1
+ import { n as buildUniqueConstraints, r as discoverFromDrizzle } from "./drizzle-DooDUGqO.mjs";
2
+ import { m as SyncSource, t as NamespaceIntrospector } from "./namespace-probe-BkUs8raG.mjs";
3
3
  import { Table } from "drizzle-orm";
4
- //#region ../sdk/src/namespace-probe.d.ts
5
- interface NamespaceIntrospector {
6
- /** All base table names in the reachable schema. */
7
- listTables(): Promise<string[]>;
8
- /** Prove a table is genuinely selectable (SELECT ... LIMIT 1). Throws if unreachable/denied. */
9
- sampleSelect(table: string): Promise<void>;
10
- }
11
- //#endregion
12
4
  //#region ../sdk/src/drizzle.d.ts
13
5
  interface DrizzleDb {
14
6
  select: (...args: any[]) => any;
@@ -33,4 +25,4 @@ declare function fromDrizzle(db: DrizzleDb, table: Table, opts: {
33
25
  */
34
26
  declare function drizzleIntrospector(db: unknown): NamespaceIntrospector;
35
27
  //#endregion
36
- export { discoverFromDrizzle, drizzleIntrospector, fromDrizzle };
28
+ export { buildUniqueConstraints, discoverFromDrizzle, drizzleIntrospector, fromDrizzle };
package/drizzle.mjs CHANGED
@@ -1,42 +1,7 @@
1
1
  import { t as DRIZZLE_META } from "./drizzle-meta-D-5k3n0i.mjs";
2
- import { t as discoverFromDrizzle } from "./drizzle-B89tLo4T.mjs";
2
+ import { n as buildUniqueConstraints, r as discoverFromDrizzle, t as buildColumnsMeta } from "./drizzle-3kvhkwO7.mjs";
3
3
  import { asc, getTableColumns, getTableName, sql } from "drizzle-orm";
4
- import { getTableConfig } from "drizzle-orm/pg-core";
5
4
  //#region ../sdk/src/drizzle.ts
6
- function buildColumnsMeta(table) {
7
- const columns = getTableColumns(table);
8
- const fkByColumn = /* @__PURE__ */ new Map();
9
- try {
10
- for (const fk of getTableConfig(table).foreignKeys) {
11
- const ref = fk.reference();
12
- const foreignTable = getTableName(ref.foreignTable);
13
- ref.columns.forEach((col, i) => {
14
- const foreignCol = ref.foreignColumns[i];
15
- if (foreignCol) fkByColumn.set(col.name, {
16
- table: foreignTable,
17
- column: foreignCol.name
18
- });
19
- });
20
- }
21
- } catch {}
22
- return Object.values(columns).map((col) => {
23
- const references = fkByColumn.get(col.name);
24
- let type;
25
- try {
26
- type = col.getSQLType();
27
- } catch {
28
- type = void 0;
29
- }
30
- return {
31
- name: col.name,
32
- type,
33
- nullable: !col.notNull,
34
- isPrimaryKey: Boolean(col.primary),
35
- isForeignKey: references !== void 0,
36
- ...references ? { references } : {}
37
- };
38
- });
39
- }
40
5
  function inferIdField(table) {
41
6
  const columns = getTableColumns(table);
42
7
  const primaryKeys = Object.entries(columns).filter(([, column]) => column.primary);
@@ -64,18 +29,24 @@ function fromDrizzle(db, table, opts) {
64
29
  const idColumn = columns[idField];
65
30
  if (!cursorColumn) throw new Error(`fromDrizzle: cursorField "${opts.cursorField}" is not a column on "${getTableName(table)}".`);
66
31
  if (!idColumn) throw new Error(`fromDrizzle: idField "${idField}" is not a column on "${getTableName(table)}".`);
32
+ const projection = {};
33
+ for (const column of Object.values(columns)) projection[column.name] = column;
34
+ const cursorColumnName = cursorColumn.name;
35
+ const idColumnName = idColumn.name;
67
36
  const source = {
68
37
  entity: opts.entity,
69
- cursorField: opts.cursorField,
70
- idField,
71
- fetchPage: ({ since, limit }) => drizzleDb.select().from(table).where(since ? sql`(${cursorColumn}, ${idColumn}) > (${since.time}, ${since.id})` : void 0).orderBy(asc(cursorColumn), asc(idColumn)).limit(limit)
38
+ cursorField: cursorColumnName,
39
+ idField: idColumnName,
40
+ fetchPage: ({ since, limit }) => drizzleDb.select(projection).from(table).where(since ? sql`(${cursorColumn}, ${idColumn}) > (${since.time}, ${since.id})` : void 0).orderBy(asc(cursorColumn), asc(idColumn)).limit(limit)
72
41
  };
42
+ const uniqueConstraints = buildUniqueConstraints(table);
73
43
  const meta = {
74
44
  columnKeys: Object.keys(columns),
75
45
  cursorField: opts.cursorField,
76
46
  idField,
77
47
  tableName: getTableName(table),
78
- columnsMeta: buildColumnsMeta(table)
48
+ columnsMeta: buildColumnsMeta(table),
49
+ ...uniqueConstraints === void 0 ? {} : { uniqueConstraints }
79
50
  };
80
51
  Object.defineProperty(source, DRIZZLE_META, {
81
52
  value: meta,
@@ -103,4 +74,4 @@ function drizzleIntrospector(db) {
103
74
  };
104
75
  }
105
76
  //#endregion
106
- export { discoverFromDrizzle, drizzleIntrospector, fromDrizzle };
77
+ export { buildUniqueConstraints, discoverFromDrizzle, drizzleIntrospector, fromDrizzle };