@ragestudio/scylla-odm 0.22.0 → 0.22.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 (196) hide show
  1. package/batch/index.d.ts +19 -21
  2. package/batch/index.d.ts.map +1 -0
  3. package/batch/index.js +41 -1
  4. package/batch/index.js.map +1 -0
  5. package/client.d.ts +24 -27
  6. package/client.d.ts.map +1 -0
  7. package/client.js +197 -1
  8. package/client.js.map +1 -0
  9. package/cql_gen/create_keyspace.d.ts +8 -9
  10. package/cql_gen/create_keyspace.d.ts.map +1 -0
  11. package/cql_gen/create_keyspace.js +17 -1
  12. package/cql_gen/create_keyspace.js.map +1 -0
  13. package/cql_gen/create_table.d.ts +3 -6
  14. package/cql_gen/create_table.d.ts.map +1 -0
  15. package/cql_gen/create_table.js +54 -1
  16. package/cql_gen/create_table.js.map +1 -0
  17. package/document/index.d.ts +11 -14
  18. package/document/index.d.ts.map +1 -0
  19. package/document/index.js +80 -1
  20. package/document/index.js.map +1 -0
  21. package/global.d.ts +6 -0
  22. package/global.d.ts.map +1 -0
  23. package/global.js +3 -0
  24. package/global.js.map +1 -0
  25. package/index.d.ts +9 -7
  26. package/index.d.ts.map +1 -0
  27. package/index.js +20 -1
  28. package/index.js.map +1 -0
  29. package/logger/index.d.ts +7 -8
  30. package/logger/index.d.ts.map +1 -0
  31. package/logger/index.js +18 -1
  32. package/logger/index.js.map +1 -0
  33. package/migrate/index.d.ts +12 -14
  34. package/migrate/index.d.ts.map +1 -0
  35. package/migrate/index.js +297 -4
  36. package/migrate/index.js.map +1 -0
  37. package/model/index.d.ts +64 -67
  38. package/model/index.d.ts.map +1 -0
  39. package/model/index.js +78 -1
  40. package/model/index.js.map +1 -0
  41. package/operations/countAll.d.ts +3 -6
  42. package/operations/countAll.d.ts.map +1 -0
  43. package/operations/countAll.js +16 -1
  44. package/operations/countAll.js.map +1 -0
  45. package/operations/delete.d.ts +5 -8
  46. package/operations/delete.d.ts.map +1 -0
  47. package/operations/delete.js +29 -1
  48. package/operations/delete.js.map +1 -0
  49. package/operations/find.d.ts +4 -7
  50. package/operations/find.d.ts.map +1 -0
  51. package/operations/find.js +25 -1
  52. package/operations/find.js.map +1 -0
  53. package/operations/findOne.d.ts +4 -7
  54. package/operations/findOne.d.ts.map +1 -0
  55. package/operations/findOne.js +27 -1
  56. package/operations/findOne.js.map +1 -0
  57. package/operations/insert.d.ts +5 -8
  58. package/operations/insert.d.ts.map +1 -0
  59. package/operations/insert.js +30 -1
  60. package/operations/insert.js.map +1 -0
  61. package/operations/sync.d.ts +3 -6
  62. package/operations/sync.d.ts.map +1 -0
  63. package/operations/sync.js +22 -1
  64. package/operations/sync.js.map +1 -0
  65. package/operations/tableExists.d.ts +3 -6
  66. package/operations/tableExists.d.ts.map +1 -0
  67. package/operations/tableExists.js +18 -2
  68. package/operations/tableExists.js.map +1 -0
  69. package/operations/update.d.ts +5 -8
  70. package/operations/update.d.ts.map +1 -0
  71. package/operations/update.js +41 -1
  72. package/operations/update.js.map +1 -0
  73. package/package.json +13 -3
  74. package/schema/index.d.ts +13 -15
  75. package/schema/index.d.ts.map +1 -0
  76. package/schema/index.js +27 -1
  77. package/schema/index.js.map +1 -0
  78. package/types.d.ts +98 -84
  79. package/types.d.ts.map +1 -0
  80. package/types.js +37 -1
  81. package/types.js.map +1 -0
  82. package/utils/buildMapper.d.ts +12 -4
  83. package/utils/buildMapper.d.ts.map +1 -0
  84. package/utils/buildMapper.js +13 -1
  85. package/utils/buildMapper.js.map +1 -0
  86. package/utils/delay.d.ts +3 -4
  87. package/utils/delay.d.ts.map +1 -0
  88. package/utils/delay.js +8 -1
  89. package/utils/delay.js.map +1 -0
  90. package/utils/fillDefaults.d.ts +2 -4
  91. package/utils/fillDefaults.d.ts.map +1 -0
  92. package/utils/fillDefaults.js +27 -1
  93. package/utils/fillDefaults.js.map +1 -0
  94. package/utils/isPlainObject.d.ts +3 -4
  95. package/utils/isPlainObject.d.ts.map +1 -0
  96. package/utils/isPlainObject.js +13 -1
  97. package/utils/isPlainObject.js.map +1 -0
  98. package/utils/loadModels.d.ts +3 -4
  99. package/utils/loadModels.d.ts.map +1 -0
  100. package/utils/loadModels.js +67 -1
  101. package/utils/loadModels.js.map +1 -0
  102. package/utils/queryParser.d.ts +5 -8
  103. package/utils/queryParser.d.ts.map +1 -0
  104. package/utils/queryParser.js +110 -1
  105. package/utils/queryParser.js.map +1 -0
  106. package/utils/typeChecker.d.ts +3 -6
  107. package/utils/typeChecker.d.ts.map +1 -0
  108. package/utils/typeChecker.js +96 -1
  109. package/utils/typeChecker.js.map +1 -0
  110. package/driver/auth/index.d.ts +0 -34
  111. package/driver/auth/index.js +0 -1
  112. package/driver/auth/no-auth-provider.js +0 -1
  113. package/driver/auth/plain-text-auth-provider.js +0 -1
  114. package/driver/auth/provider.js +0 -1
  115. package/driver/client-options.js +0 -1
  116. package/driver/client.js +0 -1
  117. package/driver/concurrent/index.d.ts +0 -1
  118. package/driver/concurrent/index.js +0 -1
  119. package/driver/connection.js +0 -1
  120. package/driver/control-connection.js +0 -1
  121. package/driver/encoder.js +0 -1
  122. package/driver/errors.js +0 -1
  123. package/driver/execution-options.js +0 -1
  124. package/driver/execution-profile.js +0 -1
  125. package/driver/host-connection-pool.js +0 -1
  126. package/driver/host.js +0 -1
  127. package/driver/index.d.ts +0 -212
  128. package/driver/index.js +0 -1
  129. package/driver/mapping/cache.js +0 -1
  130. package/driver/mapping/doc-info-adapter.js +0 -1
  131. package/driver/mapping/index.d.ts +0 -142
  132. package/driver/mapping/index.js +0 -1
  133. package/driver/mapping/mapper.js +0 -1
  134. package/driver/mapping/mapping-handler.js +0 -1
  135. package/driver/mapping/model-batch-item.js +0 -1
  136. package/driver/mapping/model-batch-mapper.js +0 -1
  137. package/driver/mapping/model-mapper.js +0 -1
  138. package/driver/mapping/model-mapping-info.js +0 -1
  139. package/driver/mapping/object-selector.js +0 -1
  140. package/driver/mapping/q.js +0 -1
  141. package/driver/mapping/query-generator.js +0 -9
  142. package/driver/mapping/result-mapper.js +0 -4
  143. package/driver/mapping/result.js +0 -1
  144. package/driver/mapping/table-mappings.js +0 -1
  145. package/driver/mapping/tree.js +0 -1
  146. package/driver/metadata/aggregate.js +0 -1
  147. package/driver/metadata/client-state.js +0 -1
  148. package/driver/metadata/data-collection.js +0 -1
  149. package/driver/metadata/event-debouncer.js +0 -1
  150. package/driver/metadata/index.d.ts +0 -184
  151. package/driver/metadata/index.js +0 -1
  152. package/driver/metadata/materialized-view.js +0 -1
  153. package/driver/metadata/schema-function.js +0 -1
  154. package/driver/metadata/schema-index.js +0 -1
  155. package/driver/metadata/schema-parser.js +0 -1
  156. package/driver/metadata/table-metadata.js +0 -1
  157. package/driver/operation-state.js +0 -1
  158. package/driver/policies/address-resolution.js +0 -1
  159. package/driver/policies/index.d.ts +0 -135
  160. package/driver/policies/index.js +0 -1
  161. package/driver/policies/load-balancing.js +0 -1
  162. package/driver/policies/reconnection.js +0 -1
  163. package/driver/policies/retry.js +0 -1
  164. package/driver/policies/speculative-execution.js +0 -1
  165. package/driver/policies/timestamp-generation.js +0 -1
  166. package/driver/prepare-handler.js +0 -1
  167. package/driver/promise-utils.js +0 -1
  168. package/driver/readers.js +0 -1
  169. package/driver/request-execution.js +0 -1
  170. package/driver/request-handler.js +0 -1
  171. package/driver/requests.js +0 -1
  172. package/driver/stream-id-stack.js +0 -1
  173. package/driver/streams.js +0 -1
  174. package/driver/token.js +0 -1
  175. package/driver/tokenizer.js +0 -1
  176. package/driver/types/big-decimal.js +0 -1
  177. package/driver/types/duration.js +0 -1
  178. package/driver/types/index.d.ts +0 -320
  179. package/driver/types/index.js +0 -1
  180. package/driver/types/inet-address.js +0 -1
  181. package/driver/types/integer.js +0 -1
  182. package/driver/types/local-date.js +0 -1
  183. package/driver/types/local-time.js +0 -1
  184. package/driver/types/mutable-long.js +0 -1
  185. package/driver/types/protocol-version.js +0 -1
  186. package/driver/types/result-set.js +0 -1
  187. package/driver/types/result-stream.js +0 -1
  188. package/driver/types/row.js +0 -1
  189. package/driver/types/time-uuid.js +0 -1
  190. package/driver/types/tuple.js +0 -1
  191. package/driver/types/uuid.js +0 -1
  192. package/driver/types/vector.js +0 -1
  193. package/driver/types/version-number.js +0 -1
  194. package/driver/utils.js +0 -4
  195. package/driver/writers.js +0 -1
  196. package/package.js +0 -1
package/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
- import { Schema } from "./schema/index.js";
2
- import { Model } from "./model/index.js";
3
- import { Document } from "./document/index.js";
4
- import { ColumnTypes } from "./types.js";
5
- import { Client } from "./client.js";
6
- import { Batch } from "./batch/index.js";
7
- export { Batch, Client, Client as default, ColumnTypes, Model, Document as Result, Schema };
1
+ import Client from "./client";
2
+ import Model from "./model";
3
+ import Schema from "./schema";
4
+ import Document from "./document";
5
+ import { Batch } from "./batch";
6
+ import { ColumnTypes } from "./types";
7
+ export default Client;
8
+ export { Client, Batch, Model, Schema, Document as Result, ColumnTypes };
9
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;eAEtB,MAAM;AACrB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,IAAI,MAAM,EAAE,WAAW,EAAE,CAAA"}
package/index.js CHANGED
@@ -1 +1,20 @@
1
- import{Document as e}from"./document/index.js";import{Model as t}from"./model/index.js";import{Batch as n}from"./batch/index.js";import{Client as r}from"./client.js";import{Schema as i}from"./schema/index.js";import{ColumnTypes as a}from"./types.js";var o=r;export{n as Batch,r as Client,a as ColumnTypes,t as Model,e as Result,i as Schema,o as default};
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ColumnTypes = exports.Result = exports.Schema = exports.Model = exports.Batch = exports.Client = void 0;
7
+ const client_1 = __importDefault(require("./client"));
8
+ exports.Client = client_1.default;
9
+ const model_1 = __importDefault(require("./model"));
10
+ exports.Model = model_1.default;
11
+ const schema_1 = __importDefault(require("./schema"));
12
+ exports.Schema = schema_1.default;
13
+ const document_1 = __importDefault(require("./document"));
14
+ exports.Result = document_1.default;
15
+ const batch_1 = require("./batch");
16
+ Object.defineProperty(exports, "Batch", { enumerable: true, get: function () { return batch_1.Batch; } });
17
+ const types_1 = require("./types");
18
+ Object.defineProperty(exports, "ColumnTypes", { enumerable: true, get: function () { return types_1.ColumnTypes; } });
19
+ exports.default = client_1.default;
20
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA6B;QAQpB,MAAM,GARR,gBAAM;AACb,oDAA2B;QAOH,KAAK,GAPtB,eAAK;AACZ,sDAA6B;QAME,MAAM,GAN9B,gBAAM;AACb,0DAAiC;QAKkB,MAAM,GALlD,kBAAQ;AACf,mCAA+B;sFAAtB,aAAK;AACd,mCAAqC;4FAA5B,mBAAW;kBAEL,gBAAM"}
package/logger/index.d.ts CHANGED
@@ -1,9 +1,8 @@
1
- //#region src/logger/index.d.ts
2
- declare class Logger {
3
- prefix: string;
4
- log(...args: any[]): void;
5
- error(...args: any[]): void;
6
- warn(...args: any[]): void;
1
+ export declare class Logger {
2
+ prefix: string;
3
+ log(...args: any[]): void;
4
+ error(...args: any[]): void;
5
+ warn(...args: any[]): void;
7
6
  }
8
- //#endregion
9
- export { Logger, Logger as default };
7
+ export default Logger;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;IAClB,MAAM,EAAE,MAAM,CAAW;IAEzB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,QAEjB;IAED,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,QAEnB;IAED,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,QAElB;CACD;eAEc,MAAM"}
package/logger/index.js CHANGED
@@ -1 +1,18 @@
1
- var Logger=class{prefix=`scylla`;log(...e){console.log(`[${this.prefix}]:`,...e)}error(...e){console.error(`[${this.prefix}]:`,...e)}warn(...e){console.error(`[${this.prefix}]:`,...e)}};export{Logger,Logger as default};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logger = void 0;
4
+ class Logger {
5
+ prefix = "scylla";
6
+ log(...args) {
7
+ console.log(`[${this.prefix}]:`, ...args);
8
+ }
9
+ error(...args) {
10
+ console.error(`[${this.prefix}]:`, ...args);
11
+ }
12
+ warn(...args) {
13
+ console.error(`[${this.prefix}]:`, ...args);
14
+ }
15
+ }
16
+ exports.Logger = Logger;
17
+ exports.default = Logger;
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;AAAA;IACC,MAAM,GAAW,QAAQ,CAAA;IAEzB,GAAG,CAAC,GAAG,IAAW;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,IAAW;QACnB,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,CAAC,GAAG,IAAW;QAClB,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;IAC5C,CAAC;CACD;;kBAEc,MAAM"}
@@ -1,16 +1,14 @@
1
- import { Model } from "../model/index.js";
2
-
3
- //#region src/migrate/index.d.ts
1
+ import type Model from "../model";
4
2
  interface MigrationResult {
5
- type: "create" | "alter" | "none";
6
- cql: string[];
7
- errors: string[];
8
- createCql?: string;
3
+ type: "create" | "alter" | "none";
4
+ cql: string[];
5
+ errors: string[];
6
+ createCql?: string;
9
7
  }
10
- declare function migrateModel(model: Model): Promise<MigrationResult>;
11
- declare function promptMigration(modelName: string, result: MigrationResult): Promise<boolean>;
12
- declare function promptResetMigration(modelName: string, result: MigrationResult): Promise<boolean>;
13
- declare function executeMigration(model: Model, result: MigrationResult): Promise<void>;
14
- declare function executeResetMigration(model: Model, result: MigrationResult): Promise<void>;
15
- //#endregion
16
- export { executeMigration, executeResetMigration, migrateModel, promptMigration, promptResetMigration };
8
+ export declare function migrateModel(model: Model): Promise<MigrationResult>;
9
+ export declare function promptMigration(modelName: string, result: MigrationResult): Promise<boolean>;
10
+ export declare function promptResetMigration(modelName: string, result: MigrationResult): Promise<boolean>;
11
+ export declare function executeMigration(model: Model, result: MigrationResult): Promise<void>;
12
+ export declare function executeResetMigration(model: Model, result: MigrationResult): Promise<void>;
13
+ export {};
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AA2BjC,UAAU,eAAe;IACxB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IACjC,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAwID,wBAAsB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,CAiIzE;AAUD,wBAAsB,eAAe,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,GACrB,OAAO,CAAC,OAAO,CAAC,CAoBlB;AAED,wBAAsB,oBAAoB,CACzC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,GACrB,OAAO,CAAC,OAAO,CAAC,CAmClB;AAED,wBAAsB,gBAAgB,CACrC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,eAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,qBAAqB,CAC1C,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,eAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAWf"}
package/migrate/index.js CHANGED
@@ -1,7 +1,300 @@
1
- import e from"../cql_gen/create_table.js";import*as t from"node:readline";function normalizeType(e){return e.trim().toLowerCase().replace(/\s+/g,` `).replace(/,\s*/g,`, `)}async function getExistingSchema(e,t,n){let r=await e.driver.execute(`
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.migrateModel = migrateModel;
40
+ exports.promptMigration = promptMigration;
41
+ exports.promptResetMigration = promptResetMigration;
42
+ exports.executeMigration = executeMigration;
43
+ exports.executeResetMigration = executeResetMigration;
44
+ const create_table_1 = __importDefault(require("../cql_gen/create_table"));
45
+ const readline = __importStar(require("node:readline"));
46
+ const SYSTEM_COLUMNS_CQL = `
2
47
  SELECT column_name, kind, position, type, clustering_order
3
48
  FROM system_schema.columns
4
49
  WHERE keyspace_name = ? AND table_name = ?
5
- `,[t,n],{prepare:!0});if(r.rows.length===0)return null;let i=new Map;for(let e of r.rows)i.set(e.column_name,{name:e.column_name,kind:e.kind,position:e.position,type:normalizeType(e.type),clustering_order:e.clustering_order||`none`});let a=[],o=[],s=new Map;for(let e of i.values())e.kind===`partition_key`?a.push(e.name):e.kind===`clustering`&&(o.push(e.name),e.clustering_order!==`none`&&s.set(e.name,e.clustering_order));return a.sort((e,t)=>(i.get(e)?.position??0)-(i.get(t)?.position??0)),o.sort((e,t)=>(i.get(e)?.position??0)-(i.get(t)?.position??0)),{columns:i,partitionKeys:a,clusteringKeys:o,clusteringOrder:s}}function getModelSchema(e){let t=e.schema.fields,n=e.schema.keys,r=e.schema.clustering_order,i=new Map;for(let e in t){let n=t[e],r=typeof n==`string`?n:n?.type||`text`;i.set(e,{type:normalizeType(r),originalType:r})}let a=[],o=[];if(typeof n==`string`)a.push(n);else if(Array.isArray(n)&&n.length>0){let e=n[0];if(Array.isArray(e))for(let t of e)a.push(String(t));else a.push(String(e));for(let e=1;e<n.length;e++)o.push(String(n[e]))}let s=new Map;if(r)for(let e in r)s.set(e,(r[e]||`asc`).toLowerCase());return{columns:i,partitionKeys:a,clusteringKeys:o,clusteringOrder:s}}async function migrateModel(t){let n=t.client,r=n.config.keyspace,i=t.schema.table_name,a=await getExistingSchema(n,r,i);if(!a)return{type:`create`,cql:[e(t)],errors:[]};let o=getModelSchema(t),s=[],c=[],l=a.partitionKeys,u=o.partitionKeys;JSON.stringify(l)!==JSON.stringify(u)&&s.push(`partition key mismatch: existing [${l.join(`, `)}] but model has [${u.join(`, `)}], cannot alter primary key`);let d=a.clusteringKeys,f=o.clusteringKeys;if(JSON.stringify(d)!==JSON.stringify(f)&&s.push(`clustering key mismatch: existing [${d.join(`, `)}] but model has [${f.join(`, `)}], cannot alter clustering keys`),!s.length)for(let e of f){let t=a.clusteringOrder.get(e)||`asc`,n=o.clusteringOrder.get(e)||`asc`;t!==n&&s.push(`clustering order mismatch for column "${e}": existing [${t}] but model has [${n}], cannot alter clustering order`)}for(let[e,t]of o.columns){let n=a.columns.get(e);n&&n.type!==t.type&&s.push(`type mismatch for column "${e}": existing [${n.type}] but model has [${t.type}], cannot alter column type`)}if(s.length)return{type:`alter`,cql:[],errors:s,createCql:e(t)};for(let[e,t]of o.columns)a.columns.has(e)||c.push(`ALTER TABLE ${r}.${i} ADD "${e}" ${t.originalType.toUpperCase()}`);for(let[e]of a.columns)if(!o.columns.has(e)){if(l.includes(e)||d.includes(e)){s.push(`cannot drop primary/clustering key column "${e}"`);continue}c.push(`ALTER TABLE ${r}.${i} DROP "${e}"`)}return s.length?{type:`alter`,cql:[],errors:s,createCql:e(t)}:c.length===0?{type:`none`,cql:[],errors:[]}:{type:`alter`,cql:c,errors:[]}}function ask(e,t){return new Promise(n=>{e.question(t,e=>{n(e.trim())})})}async function promptMigration(e,n){if(n.type===`none`)return!1;let r=n.type===`create`?`CREATE`:`ALTER`;console.log(`\n[${e}] ${r} migration:`);for(let e of n.cql)console.log(` ${e}`);let i=t.createInterface({input:process.stdin,output:process.stdout}),a=await ask(i,`
6
- Apply this migration? [y/N]: `);return i.close(),a.toLowerCase()===`y`}async function promptResetMigration(e,n){if(!n.errors.length)return!1;console.log(`\n[${e}] alter migration is not possible:`);for(let e of n.errors)console.log(` - ${e}`);n.createCql&&console.log(`\nnew table would be:\n ${n.createCql}`);let r=t.createInterface({input:process.stdin,output:process.stdout});if(console.log(`
7
- ⚠ warning: this will drop and recreate the table, all data will be lost.`),(await ask(r,`continue? [y/N]: `)).toLowerCase()!==`y`)return r.close(),!1;let i=await ask(r,`are you absolutely sure? this action is irreversible. type 'yes' to confirm: `);return r.close(),i===`yes`}async function executeMigration(e,t){for(let n of t.cql)await e.client.driver.execute(n)}async function executeResetMigration(e,t){let n=e.client.config.keyspace,r=e.schema.table_name;await e.client.driver.execute(`DROP TABLE IF EXISTS ${n}.${r}`),t.createCql&&await e.client.driver.execute(t.createCql)}export{executeMigration,executeResetMigration,migrateModel,promptMigration,promptResetMigration};
50
+ `;
51
+ function normalizeType(typeStr) {
52
+ return typeStr
53
+ .trim()
54
+ .toLowerCase()
55
+ .replace(/\s+/g, " ")
56
+ .replace(/,\s*/g, ", ");
57
+ }
58
+ async function getExistingSchema(client, keyspace, tableName) {
59
+ const result = await client.driver.execute(SYSTEM_COLUMNS_CQL, [keyspace, tableName], { prepare: true });
60
+ if (result.rows.length === 0) {
61
+ return null;
62
+ }
63
+ const columns = new Map();
64
+ for (const row of result.rows) {
65
+ columns.set(row.column_name, {
66
+ name: row.column_name,
67
+ kind: row.kind,
68
+ position: row.position,
69
+ type: normalizeType(row.type),
70
+ clustering_order: row.clustering_order || "none",
71
+ });
72
+ }
73
+ const partitionKeys = [];
74
+ const clusteringKeys = [];
75
+ const clusteringOrder = new Map();
76
+ for (const col of columns.values()) {
77
+ if (col.kind === "partition_key") {
78
+ partitionKeys.push(col.name);
79
+ }
80
+ else if (col.kind === "clustering") {
81
+ clusteringKeys.push(col.name);
82
+ if (col.clustering_order !== "none") {
83
+ clusteringOrder.set(col.name, col.clustering_order);
84
+ }
85
+ }
86
+ }
87
+ // Sort by position to maintain order
88
+ partitionKeys.sort((a, b) => (columns.get(a)?.position ?? 0) - (columns.get(b)?.position ?? 0));
89
+ clusteringKeys.sort((a, b) => (columns.get(a)?.position ?? 0) - (columns.get(b)?.position ?? 0));
90
+ return { columns, partitionKeys, clusteringKeys, clusteringOrder };
91
+ }
92
+ function getModelSchema(model) {
93
+ const fields = model.schema.fields;
94
+ const keys = model.schema.keys;
95
+ const clusteringOrder = model.schema.clustering_order;
96
+ const columns = new Map();
97
+ for (const fieldName in fields) {
98
+ const field = fields[fieldName];
99
+ const rawType = typeof field === "string"
100
+ ? field
101
+ : field?.type || "text";
102
+ const originalType = Array.isArray(rawType)
103
+ ? rawType.join(", ")
104
+ : rawType;
105
+ columns.set(fieldName, {
106
+ type: normalizeType(originalType),
107
+ originalType,
108
+ });
109
+ }
110
+ const partitionKeys = [];
111
+ const clusteringKeys = [];
112
+ if (typeof keys === "string") {
113
+ partitionKeys.push(keys);
114
+ }
115
+ else if (Array.isArray(keys) && keys.length > 0) {
116
+ const first = keys[0];
117
+ if (Array.isArray(first)) {
118
+ for (const k of first) {
119
+ partitionKeys.push(String(k));
120
+ }
121
+ }
122
+ else {
123
+ partitionKeys.push(String(first));
124
+ }
125
+ for (let i = 1; i < keys.length; i++) {
126
+ clusteringKeys.push(String(keys[i]));
127
+ }
128
+ }
129
+ const clusterMap = new Map();
130
+ if (clusteringOrder) {
131
+ for (const col in clusteringOrder) {
132
+ clusterMap.set(col, (clusteringOrder[col] || "asc").toLowerCase());
133
+ }
134
+ }
135
+ return {
136
+ columns,
137
+ partitionKeys,
138
+ clusteringKeys,
139
+ clusteringOrder: clusterMap,
140
+ };
141
+ }
142
+ async function migrateModel(model) {
143
+ const client = model.client;
144
+ const keyspace = client.config.keyspace;
145
+ const tableName = model.schema.table_name;
146
+ const existing = await getExistingSchema(client, keyspace, tableName);
147
+ if (!existing) {
148
+ return {
149
+ type: "create",
150
+ cql: [(0, create_table_1.default)(model)],
151
+ errors: [],
152
+ };
153
+ }
154
+ const modelSchema = getModelSchema(model);
155
+ const errors = [];
156
+ const alterStatements = [];
157
+ // Check partition key changes
158
+ const existingPKs = existing.partitionKeys;
159
+ const newPKs = modelSchema.partitionKeys;
160
+ if (JSON.stringify(existingPKs) !== JSON.stringify(newPKs)) {
161
+ errors.push(`partition key mismatch: existing [${existingPKs.join(", ")}] but model has [${newPKs.join(", ")}]` +
162
+ ", cannot alter primary key");
163
+ }
164
+ // Check clustering key changes
165
+ const existingCKs = existing.clusteringKeys;
166
+ const newCKs = modelSchema.clusteringKeys;
167
+ if (JSON.stringify(existingCKs) !== JSON.stringify(newCKs)) {
168
+ errors.push(`clustering key mismatch: existing [${existingCKs.join(", ")}] but model has [${newCKs.join(", ")}]` +
169
+ ", cannot alter clustering keys");
170
+ }
171
+ // Check clustering order changes (only if keys match)
172
+ if (!errors.length) {
173
+ for (const ck of newCKs) {
174
+ const existingOrder = existing.clusteringOrder.get(ck) || "asc";
175
+ const newOrder = modelSchema.clusteringOrder.get(ck) || "asc";
176
+ if (existingOrder !== newOrder) {
177
+ errors.push(`clustering order mismatch for column "${ck}": existing [${existingOrder}] but model has [${newOrder}]` +
178
+ ", cannot alter clustering order");
179
+ }
180
+ }
181
+ }
182
+ // Check for type changes in existing columns
183
+ for (const [colName, newCol] of modelSchema.columns) {
184
+ const existingCol = existing.columns.get(colName);
185
+ if (existingCol) {
186
+ if (existingCol.type !== newCol.type) {
187
+ errors.push(`type mismatch for column "${colName}": existing [${existingCol.type}] but model has [${newCol.type}]` +
188
+ ", cannot alter column type");
189
+ }
190
+ }
191
+ }
192
+ if (errors.length) {
193
+ return {
194
+ type: "alter",
195
+ cql: [],
196
+ errors,
197
+ createCql: (0, create_table_1.default)(model),
198
+ };
199
+ }
200
+ // Generate ADD COLUMN statements for new columns
201
+ for (const [colName, newCol] of modelSchema.columns) {
202
+ if (!existing.columns.has(colName)) {
203
+ alterStatements.push(`ALTER TABLE ${keyspace}.${tableName} ADD "${colName}" ${newCol.originalType.toUpperCase()}`);
204
+ }
205
+ }
206
+ // Generate DROP COLUMN statements for removed columns
207
+ for (const [colName] of existing.columns) {
208
+ if (!modelSchema.columns.has(colName)) {
209
+ if (existingPKs.includes(colName) ||
210
+ existingCKs.includes(colName)) {
211
+ errors.push(`cannot drop primary/clustering key column "${colName}"`);
212
+ continue;
213
+ }
214
+ alterStatements.push(`ALTER TABLE ${keyspace}.${tableName} DROP "${colName}"`);
215
+ }
216
+ }
217
+ if (errors.length) {
218
+ return {
219
+ type: "alter",
220
+ cql: [],
221
+ errors,
222
+ createCql: (0, create_table_1.default)(model),
223
+ };
224
+ }
225
+ if (alterStatements.length === 0) {
226
+ return {
227
+ type: "none",
228
+ cql: [],
229
+ errors: [],
230
+ };
231
+ }
232
+ return {
233
+ type: "alter",
234
+ cql: alterStatements,
235
+ errors: [],
236
+ };
237
+ }
238
+ function ask(rl, question) {
239
+ return new Promise((resolve) => {
240
+ rl.question(question, (answer) => {
241
+ resolve(answer.trim());
242
+ });
243
+ });
244
+ }
245
+ async function promptMigration(modelName, result) {
246
+ if (result.type === "none") {
247
+ return false;
248
+ }
249
+ const action = result.type === "create" ? "CREATE" : "ALTER";
250
+ console.log(`\n[${modelName}] ${action} migration:`);
251
+ for (const cql of result.cql) {
252
+ console.log(` ${cql}`);
253
+ }
254
+ const rl = readline.createInterface({
255
+ input: process.stdin,
256
+ output: process.stdout,
257
+ });
258
+ const answer = await ask(rl, "\nApply this migration? [y/N]: ");
259
+ rl.close();
260
+ return answer.toLowerCase() === "y";
261
+ }
262
+ async function promptResetMigration(modelName, result) {
263
+ if (!result.errors.length) {
264
+ return false;
265
+ }
266
+ console.log(`\n[${modelName}] alter migration is not possible:`);
267
+ for (const err of result.errors) {
268
+ console.log(` - ${err}`);
269
+ }
270
+ if (result.createCql) {
271
+ console.log(`\nnew table would be:\n ${result.createCql}`);
272
+ }
273
+ const rl = readline.createInterface({
274
+ input: process.stdin,
275
+ output: process.stdout,
276
+ });
277
+ console.log("\n⚠ warning: this will drop and recreate the table, all data will be lost.");
278
+ const firstAnswer = await ask(rl, "continue? [y/N]: ");
279
+ if (firstAnswer.toLowerCase() !== "y") {
280
+ rl.close();
281
+ return false;
282
+ }
283
+ const secondAnswer = await ask(rl, "are you absolutely sure? this action is irreversible. type 'yes' to confirm: ");
284
+ rl.close();
285
+ return secondAnswer === "yes";
286
+ }
287
+ async function executeMigration(model, result) {
288
+ for (const cql of result.cql) {
289
+ await model.client.driver.execute(cql);
290
+ }
291
+ }
292
+ async function executeResetMigration(model, result) {
293
+ const keyspace = model.client.config.keyspace;
294
+ const tableName = model.schema.table_name;
295
+ await model.client.driver.execute(`DROP TABLE IF EXISTS ${keyspace}.${tableName}`);
296
+ if (result.createCql) {
297
+ await model.client.driver.execute(result.createCql);
298
+ }
299
+ }
300
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,2EAA4D;AAC5D,MAAY,QAAQ,0CAAqB;AA+BzC,MAAM,kBAAkB,GAAG;;;;CAI1B,CAAA;AAED,SAAS,aAAa,CAAC,OAAe;IACrC,OAAO,OAAO;SACZ,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC/B,MAAW,EACX,QAAgB,EAChB,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CACzC,kBAAkB,EAClB,CAAC,QAAQ,EAAE,SAAS,CAAC,EACrB,EAAE,OAAO,EAAE,IAAI,EAAE,CACjB,CAAA;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAA;IAEjD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE;YAC5B,IAAI,EAAE,GAAG,CAAC,WAAW;YACrB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAC7B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,MAAM;SAChD,CAAC,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAa,EAAE,CAAA;IAClC,MAAM,cAAc,GAAa,EAAE,CAAA;IACnC,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAA;IAEzD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAClC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACtC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC7B,IAAI,GAAG,CAAC,gBAAgB,KAAK,MAAM,EAAE,CAAC;gBACrC,eAAe,CAAC,GAAG,CAClB,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,gBAAkC,CACtC,CAAA;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,qCAAqC;IACrC,aAAa,CAAC,IAAI,CACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACR,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,CAClE,CAAA;IACD,cAAc,CAAC,IAAI,CAClB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACR,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,CAClE,CAAA;IAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA;AACnE,CAAC;AAED,SAAS,cAAc,CAAC,KAAY;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAA;IAC9B,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAA;IAErD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkD,CAAA;IAEzE,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QAC/B,MAAM,OAAO,GACZ,OAAO,KAAK,KAAK,QAAQ;YACxB,CAAC,CAAC,KAAK;YACP,CAAC,CAAE,KAAqB,EAAE,IAAI,IAAI,MAAM,CAAA;QAC1C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAC1C,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACpB,CAAC,CAAC,OAAO,CAAA;QAEV,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE;YACtB,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC;YACjC,YAAY;SACZ,CAAC,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAa,EAAE,CAAA;IAClC,MAAM,cAAc,GAAa,EAAE,CAAA;IAEnC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAErB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACvB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9B,CAAC;QACF,CAAC;aAAM,CAAC;YACP,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAClC,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC;IACF,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAA;IACpD,IAAI,eAAe,EAAE,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACnC,UAAU,CAAC,GAAG,CACb,GAAG,EACH,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAoB,CAC/D,CAAA;QACF,CAAC;IACF,CAAC;IAED,OAAO;QACN,OAAO;QACP,aAAa;QACb,cAAc;QACd,eAAe,EAAE,UAAU;KAC3B,CAAA;AACF,CAAC;AAEM,KAAK,uBAAuB,KAAY;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAS,CAAA;IACxC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAA;IAEzC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAErE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO;YACN,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,CAAC,IAAA,sBAAsB,EAAC,KAAK,CAAC,CAAC;YACpC,MAAM,EAAE,EAAE;SACV,CAAA;IACF,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,eAAe,GAAa,EAAE,CAAA;IAEpC,8BAA8B;IAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAA;IAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAA;IAExC,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CACV,qCAAqC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAClG,4BAA4B,CAC7B,CAAA;IACF,CAAC;IAED,+BAA+B;IAC/B,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAA;IAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAA;IAEzC,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CACV,sCAAsC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACnG,gCAAgC,CACjC,CAAA;IACF,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAA;YAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAA;YAE7D,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CACV,yCAAyC,EAAE,gBAAgB,aAAa,oBAAoB,QAAQ,GAAG;oBACtG,iCAAiC,CAClC,CAAA;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,6CAA6C;IAC7C,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAEjD,IAAI,WAAW,EAAE,CAAC;YACjB,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CACV,6BAA6B,OAAO,gBAAgB,WAAW,CAAC,IAAI,oBAAoB,MAAM,CAAC,IAAI,GAAG;oBACrG,4BAA4B,CAC7B,CAAA;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACN,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,EAAE;YACP,MAAM;YACN,SAAS,EAAE,IAAA,sBAAsB,EAAC,KAAK,CAAC;SACxC,CAAA;IACF,CAAC;IAED,iDAAiD;IACjD,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,eAAe,CAAC,IAAI,CACnB,eAAe,QAAQ,IAAI,SAAS,SAAS,OAAO,KAAK,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAC5F,CAAA;QACF,CAAC;IACF,CAAC;IAED,sDAAsD;IACtD,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,IACC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC7B,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC5B,CAAC;gBACF,MAAM,CAAC,IAAI,CACV,8CAA8C,OAAO,GAAG,CACxD,CAAA;gBACD,SAAQ;YACT,CAAC;YAED,eAAe,CAAC,IAAI,CACnB,eAAe,QAAQ,IAAI,SAAS,UAAU,OAAO,GAAG,CACxD,CAAA;QACF,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACN,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,EAAE;YACP,MAAM;YACN,SAAS,EAAE,IAAA,sBAAsB,EAAC,KAAK,CAAC;SACxC,CAAA;IACF,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO;YACN,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,EAAE;YACP,MAAM,EAAE,EAAE;SACV,CAAA;IACF,CAAC;IAED,OAAO;QACN,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,eAAe;QACpB,MAAM,EAAE,EAAE;KACV,CAAA;AACF,CAAC;AAED,SAAS,GAAG,CAAC,EAAsB,EAAE,QAAgB;IACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAChC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC;AAEM,KAAK,0BACX,SAAiB,EACjB,MAAuB;IAEvB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;IAE5D,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,KAAK,MAAM,aAAa,CAAC,CAAA;IACpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;IACxB,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,iCAAiC,CAAC,CAAA;IAC/D,EAAE,CAAC,KAAK,EAAE,CAAA;IACV,OAAO,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAA;AACpC,CAAC;AAEM,KAAK,+BACX,SAAiB,EACjB,MAAuB;IAEvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAA;IACb,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,SAAS,oCAAoC,CAAC,CAAA;IAChE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,CACV,6EAA6E,CAC7E,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAA;IACtD,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;QACvC,EAAE,CAAC,KAAK,EAAE,CAAA;QACV,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,GAAG,CAC7B,EAAE,EACF,+EAA+E,CAC/E,CAAA;IACD,EAAE,CAAC,KAAK,EAAE,CAAA;IACV,OAAO,YAAY,KAAK,KAAK,CAAA;AAC9B,CAAC;AAEM,KAAK,2BACX,KAAY,EACZ,MAAuB;IAEvB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;AACF,CAAC;AAEM,KAAK,gCACX,KAAY,EACZ,MAAuB;IAEvB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAS,CAAA;IAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAA;IAEzC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAChC,wBAAwB,QAAQ,IAAI,SAAS,EAAE,CAC/C,CAAA;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACpD,CAAC;AACF,CAAC"}
package/model/index.d.ts CHANGED
@@ -1,68 +1,65 @@
1
- import { mapping } from "../driver/mapping/index.js";
2
- import { Schema } from "../schema/index.js";
3
- import export_default from "../operations/tableExists.js";
4
- import syncOP from "../operations/sync.js";
5
- import { DeleteQueryOptions, Doc, FindQueryOptions, InferDoc, InsertQueryOptions, Query, UpdateQueryOptions } from "../types.js";
6
- import { Client } from "../client.js";
7
- import { Batch } from "../batch/index.js";
8
-
9
- //#region src/model/index.d.ts
10
- declare class Model<TSchema extends Schema<any> = Schema<any>, TDoc = InferDoc<TSchema>> {
11
- name: string;
12
- schema: TSchema;
13
- get client(): Client;
14
- get mapper(): mapping.ModelMapper;
15
- constructor(name: string, schema: TSchema);
16
- create: (data: TDoc) => Doc<TDoc>;
17
- obj: (data: TDoc) => Doc<TDoc>;
18
- batch: {
19
- update: (batch: Batch, query: Query<TDoc>, options?: UpdateQueryOptions<TDoc>) => void;
20
- insert: (batch: Batch, query: Query<TDoc>, options?: InsertQueryOptions<TDoc>) => void;
21
- delete: (batch: Batch, query: Query<TDoc>, options?: DeleteQueryOptions<TDoc>) => void;
22
- };
23
- find: {
24
- (query: Query<TDoc>, options: FindQueryOptions<TDoc> & {
25
- raw: true;
26
- }): Promise<TDoc[]>;
27
- (query: Query<TDoc>, options?: FindQueryOptions<TDoc>): Promise<Doc<TDoc>[]>;
28
- };
29
- findOne: {
30
- (query: Query<TDoc>, options: FindQueryOptions<TDoc> & {
31
- raw: true;
32
- }): Promise<TDoc | null>;
33
- (query: Query<TDoc>, options?: FindQueryOptions<TDoc>): Promise<Doc<TDoc> | null>;
34
- };
35
- update: {
36
- (query: Query<TDoc>, options: UpdateQueryOptions<TDoc> & {
37
- batch: true;
38
- }): mapping.ModelBatchItem;
39
- (query: Query<TDoc>, options: UpdateQueryOptions<TDoc> & {
40
- raw: true;
41
- }): Promise<TDoc[]>;
42
- (query: Query<TDoc>, options?: UpdateQueryOptions<TDoc>): Promise<Doc<TDoc>[]>;
43
- };
44
- insert: {
45
- (query: Query<TDoc>, options: InsertQueryOptions<TDoc> & {
46
- batch: true;
47
- }): mapping.ModelBatchItem;
48
- (query: Query<TDoc>, options: InsertQueryOptions<TDoc> & {
49
- raw: true;
50
- }): Promise<TDoc[]>;
51
- (query: Query<TDoc>, options?: InsertQueryOptions<TDoc>): Promise<Doc<TDoc>[]>;
52
- };
53
- delete: {
54
- (query: Query<TDoc>, options: DeleteQueryOptions<TDoc> & {
55
- batch: true;
56
- }): mapping.ModelBatchItem;
57
- (query: Query<TDoc>, options: DeleteQueryOptions<TDoc> & {
58
- raw: true;
59
- }): Promise<TDoc[]>;
60
- (query: Query<TDoc>, options?: DeleteQueryOptions<TDoc>): Promise<Doc<TDoc>[]>;
61
- };
62
- countAll: () => Promise<number>;
63
- _sync: typeof syncOP;
64
- _tableExists: typeof export_default;
65
- _wrap(row: any): Doc<TDoc>;
1
+ import Client, { Batch } from "..";
2
+ import { mapping } from "../driver/mapping";
3
+ import type { Query, FindQueryOptions, InferDoc, Doc, UpdateQueryOptions, InsertQueryOptions, DeleteQueryOptions } from "../types";
4
+ import type { Schema } from "../schema";
5
+ import tableExistsOP from "../operations/tableExists";
6
+ import syncOP from "../operations/sync";
7
+ export declare class Model<TSchema extends Schema<any> = Schema<any>, TDoc = InferDoc<TSchema>> {
8
+ name: string;
9
+ schema: TSchema;
10
+ get client(): Client;
11
+ get mapper(): mapping.ModelMapper;
12
+ constructor(name: string, schema: TSchema);
13
+ create: (data: TDoc) => Doc<TDoc>;
14
+ obj: (data: TDoc) => Doc<TDoc>;
15
+ batch: {
16
+ update: (batch: Batch, query: Query<TDoc>, options?: UpdateQueryOptions<TDoc>) => void;
17
+ insert: (batch: Batch, query: Query<TDoc>, options?: InsertQueryOptions<TDoc>) => void;
18
+ delete: (batch: Batch, query: Query<TDoc>, options?: DeleteQueryOptions<TDoc>) => void;
19
+ };
20
+ find: {
21
+ (query: Query<TDoc>, options: FindQueryOptions<TDoc> & {
22
+ raw: true;
23
+ }): Promise<TDoc[]>;
24
+ (query: Query<TDoc>, options?: FindQueryOptions<TDoc>): Promise<Doc<TDoc>[]>;
25
+ };
26
+ findOne: {
27
+ (query: Query<TDoc>, options: FindQueryOptions<TDoc> & {
28
+ raw: true;
29
+ }): Promise<TDoc | null>;
30
+ (query: Query<TDoc>, options?: FindQueryOptions<TDoc>): Promise<Doc<TDoc> | null>;
31
+ };
32
+ update: {
33
+ (query: Query<TDoc>, options: UpdateQueryOptions<TDoc> & {
34
+ batch: true;
35
+ }): mapping.ModelBatchItem;
36
+ (query: Query<TDoc>, options: UpdateQueryOptions<TDoc> & {
37
+ raw: true;
38
+ }): Promise<TDoc[]>;
39
+ (query: Query<TDoc>, options?: UpdateQueryOptions<TDoc>): Promise<Doc<TDoc>[]>;
40
+ };
41
+ insert: {
42
+ (query: Query<TDoc>, options: InsertQueryOptions<TDoc> & {
43
+ batch: true;
44
+ }): mapping.ModelBatchItem;
45
+ (query: Query<TDoc>, options: InsertQueryOptions<TDoc> & {
46
+ raw: true;
47
+ }): Promise<TDoc[]>;
48
+ (query: Query<TDoc>, options?: InsertQueryOptions<TDoc>): Promise<Doc<TDoc>[]>;
49
+ };
50
+ delete: {
51
+ (query: Query<TDoc>, options: DeleteQueryOptions<TDoc> & {
52
+ batch: true;
53
+ }): mapping.ModelBatchItem;
54
+ (query: Query<TDoc>, options: DeleteQueryOptions<TDoc> & {
55
+ raw: true;
56
+ }): Promise<TDoc[]>;
57
+ (query: Query<TDoc>, options?: DeleteQueryOptions<TDoc>): Promise<Doc<TDoc>[]>;
58
+ };
59
+ countAll: () => Promise<number>;
60
+ _sync: typeof syncOP;
61
+ _tableExists: typeof tableExistsOP;
62
+ _wrap(row: any): Doc<TDoc>;
66
63
  }
67
- //#endregion
68
- export { Model, Model as default };
64
+ export default Model;
65
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"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"}