@ragestudio/scylla-odm 0.22.0 → 0.22.2

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 +37 -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 +190 -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 +14 -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 +51 -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 +76 -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 +2 -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 +9 -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 +14 -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 +254 -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 +71 -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 +13 -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 +23 -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 +19 -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 +21 -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 +24 -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 +16 -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 +15 -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 +35 -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 +23 -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 +33 -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 +11 -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 +5 -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 +24 -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 +11 -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 +29 -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 +102 -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 +90 -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.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,9 @@
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
+ 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.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","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;AAErC,eAAe,MAAM,CAAA;AACrB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,IAAI,MAAM,EAAE,WAAW,EAAE,CAAA"}
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,14 @@
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
+ export class Logger {
2
+ prefix = "scylla";
3
+ log(...args) {
4
+ console.log(`[${this.prefix}]:`, ...args);
5
+ }
6
+ error(...args) {
7
+ console.error(`[${this.prefix}]:`, ...args);
8
+ }
9
+ warn(...args) {
10
+ console.error(`[${this.prefix}]:`, ...args);
11
+ }
12
+ }
13
+ export default Logger;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IAClB,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;AAED,eAAe,MAAM,CAAA"}
@@ -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,257 @@
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
+ import generateCreateTableCQL from "../cql_gen/create_table";
2
+ import * as readline from "node:readline";
3
+ const SYSTEM_COLUMNS_CQL = `
2
4
  SELECT column_name, kind, position, type, clustering_order
3
5
  FROM system_schema.columns
4
6
  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};
7
+ `;
8
+ function normalizeType(typeStr) {
9
+ return typeStr
10
+ .trim()
11
+ .toLowerCase()
12
+ .replace(/\s+/g, " ")
13
+ .replace(/,\s*/g, ", ");
14
+ }
15
+ async function getExistingSchema(client, keyspace, tableName) {
16
+ const result = await client.driver.execute(SYSTEM_COLUMNS_CQL, [keyspace, tableName], { prepare: true });
17
+ if (result.rows.length === 0) {
18
+ return null;
19
+ }
20
+ const columns = new Map();
21
+ for (const row of result.rows) {
22
+ columns.set(row.column_name, {
23
+ name: row.column_name,
24
+ kind: row.kind,
25
+ position: row.position,
26
+ type: normalizeType(row.type),
27
+ clustering_order: row.clustering_order || "none",
28
+ });
29
+ }
30
+ const partitionKeys = [];
31
+ const clusteringKeys = [];
32
+ const clusteringOrder = new Map();
33
+ for (const col of columns.values()) {
34
+ if (col.kind === "partition_key") {
35
+ partitionKeys.push(col.name);
36
+ }
37
+ else if (col.kind === "clustering") {
38
+ clusteringKeys.push(col.name);
39
+ if (col.clustering_order !== "none") {
40
+ clusteringOrder.set(col.name, col.clustering_order);
41
+ }
42
+ }
43
+ }
44
+ // Sort by position to maintain order
45
+ partitionKeys.sort((a, b) => (columns.get(a)?.position ?? 0) - (columns.get(b)?.position ?? 0));
46
+ clusteringKeys.sort((a, b) => (columns.get(a)?.position ?? 0) - (columns.get(b)?.position ?? 0));
47
+ return { columns, partitionKeys, clusteringKeys, clusteringOrder };
48
+ }
49
+ function getModelSchema(model) {
50
+ const fields = model.schema.fields;
51
+ const keys = model.schema.keys;
52
+ const clusteringOrder = model.schema.clustering_order;
53
+ const columns = new Map();
54
+ for (const fieldName in fields) {
55
+ const field = fields[fieldName];
56
+ const rawType = typeof field === "string"
57
+ ? field
58
+ : field?.type || "text";
59
+ const originalType = Array.isArray(rawType)
60
+ ? rawType.join(", ")
61
+ : rawType;
62
+ columns.set(fieldName, {
63
+ type: normalizeType(originalType),
64
+ originalType,
65
+ });
66
+ }
67
+ const partitionKeys = [];
68
+ const clusteringKeys = [];
69
+ if (typeof keys === "string") {
70
+ partitionKeys.push(keys);
71
+ }
72
+ else if (Array.isArray(keys) && keys.length > 0) {
73
+ const first = keys[0];
74
+ if (Array.isArray(first)) {
75
+ for (const k of first) {
76
+ partitionKeys.push(String(k));
77
+ }
78
+ }
79
+ else {
80
+ partitionKeys.push(String(first));
81
+ }
82
+ for (let i = 1; i < keys.length; i++) {
83
+ clusteringKeys.push(String(keys[i]));
84
+ }
85
+ }
86
+ const clusterMap = new Map();
87
+ if (clusteringOrder) {
88
+ for (const col in clusteringOrder) {
89
+ clusterMap.set(col, (clusteringOrder[col] || "asc").toLowerCase());
90
+ }
91
+ }
92
+ return {
93
+ columns,
94
+ partitionKeys,
95
+ clusteringKeys,
96
+ clusteringOrder: clusterMap,
97
+ };
98
+ }
99
+ export async function migrateModel(model) {
100
+ const client = model.client;
101
+ const keyspace = client.config.keyspace;
102
+ const tableName = model.schema.table_name;
103
+ const existing = await getExistingSchema(client, keyspace, tableName);
104
+ if (!existing) {
105
+ return {
106
+ type: "create",
107
+ cql: [generateCreateTableCQL(model)],
108
+ errors: [],
109
+ };
110
+ }
111
+ const modelSchema = getModelSchema(model);
112
+ const errors = [];
113
+ const alterStatements = [];
114
+ // Check partition key changes
115
+ const existingPKs = existing.partitionKeys;
116
+ const newPKs = modelSchema.partitionKeys;
117
+ if (JSON.stringify(existingPKs) !== JSON.stringify(newPKs)) {
118
+ errors.push(`partition key mismatch: existing [${existingPKs.join(", ")}] but model has [${newPKs.join(", ")}]` +
119
+ ", cannot alter primary key");
120
+ }
121
+ // Check clustering key changes
122
+ const existingCKs = existing.clusteringKeys;
123
+ const newCKs = modelSchema.clusteringKeys;
124
+ if (JSON.stringify(existingCKs) !== JSON.stringify(newCKs)) {
125
+ errors.push(`clustering key mismatch: existing [${existingCKs.join(", ")}] but model has [${newCKs.join(", ")}]` +
126
+ ", cannot alter clustering keys");
127
+ }
128
+ // Check clustering order changes (only if keys match)
129
+ if (!errors.length) {
130
+ for (const ck of newCKs) {
131
+ const existingOrder = existing.clusteringOrder.get(ck) || "asc";
132
+ const newOrder = modelSchema.clusteringOrder.get(ck) || "asc";
133
+ if (existingOrder !== newOrder) {
134
+ errors.push(`clustering order mismatch for column "${ck}": existing [${existingOrder}] but model has [${newOrder}]` +
135
+ ", cannot alter clustering order");
136
+ }
137
+ }
138
+ }
139
+ // Check for type changes in existing columns
140
+ for (const [colName, newCol] of modelSchema.columns) {
141
+ const existingCol = existing.columns.get(colName);
142
+ if (existingCol) {
143
+ if (existingCol.type !== newCol.type) {
144
+ errors.push(`type mismatch for column "${colName}": existing [${existingCol.type}] but model has [${newCol.type}]` +
145
+ ", cannot alter column type");
146
+ }
147
+ }
148
+ }
149
+ if (errors.length) {
150
+ return {
151
+ type: "alter",
152
+ cql: [],
153
+ errors,
154
+ createCql: generateCreateTableCQL(model),
155
+ };
156
+ }
157
+ // Generate ADD COLUMN statements for new columns
158
+ for (const [colName, newCol] of modelSchema.columns) {
159
+ if (!existing.columns.has(colName)) {
160
+ alterStatements.push(`ALTER TABLE ${keyspace}.${tableName} ADD "${colName}" ${newCol.originalType.toUpperCase()}`);
161
+ }
162
+ }
163
+ // Generate DROP COLUMN statements for removed columns
164
+ for (const [colName] of existing.columns) {
165
+ if (!modelSchema.columns.has(colName)) {
166
+ if (existingPKs.includes(colName) ||
167
+ existingCKs.includes(colName)) {
168
+ errors.push(`cannot drop primary/clustering key column "${colName}"`);
169
+ continue;
170
+ }
171
+ alterStatements.push(`ALTER TABLE ${keyspace}.${tableName} DROP "${colName}"`);
172
+ }
173
+ }
174
+ if (errors.length) {
175
+ return {
176
+ type: "alter",
177
+ cql: [],
178
+ errors,
179
+ createCql: generateCreateTableCQL(model),
180
+ };
181
+ }
182
+ if (alterStatements.length === 0) {
183
+ return {
184
+ type: "none",
185
+ cql: [],
186
+ errors: [],
187
+ };
188
+ }
189
+ return {
190
+ type: "alter",
191
+ cql: alterStatements,
192
+ errors: [],
193
+ };
194
+ }
195
+ function ask(rl, question) {
196
+ return new Promise((resolve) => {
197
+ rl.question(question, (answer) => {
198
+ resolve(answer.trim());
199
+ });
200
+ });
201
+ }
202
+ export async function promptMigration(modelName, result) {
203
+ if (result.type === "none") {
204
+ return false;
205
+ }
206
+ const action = result.type === "create" ? "CREATE" : "ALTER";
207
+ console.log(`\n[${modelName}] ${action} migration:`);
208
+ for (const cql of result.cql) {
209
+ console.log(` ${cql}`);
210
+ }
211
+ const rl = readline.createInterface({
212
+ input: process.stdin,
213
+ output: process.stdout,
214
+ });
215
+ const answer = await ask(rl, "\nApply this migration? [y/N]: ");
216
+ rl.close();
217
+ return answer.toLowerCase() === "y";
218
+ }
219
+ export async function promptResetMigration(modelName, result) {
220
+ if (!result.errors.length) {
221
+ return false;
222
+ }
223
+ console.log(`\n[${modelName}] alter migration is not possible:`);
224
+ for (const err of result.errors) {
225
+ console.log(` - ${err}`);
226
+ }
227
+ if (result.createCql) {
228
+ console.log(`\nnew table would be:\n ${result.createCql}`);
229
+ }
230
+ const rl = readline.createInterface({
231
+ input: process.stdin,
232
+ output: process.stdout,
233
+ });
234
+ console.log("\n⚠ warning: this will drop and recreate the table, all data will be lost.");
235
+ const firstAnswer = await ask(rl, "continue? [y/N]: ");
236
+ if (firstAnswer.toLowerCase() !== "y") {
237
+ rl.close();
238
+ return false;
239
+ }
240
+ const secondAnswer = await ask(rl, "are you absolutely sure? this action is irreversible. type 'yes' to confirm: ");
241
+ rl.close();
242
+ return secondAnswer === "yes";
243
+ }
244
+ export async function executeMigration(model, result) {
245
+ for (const cql of result.cql) {
246
+ await model.client.driver.execute(cql);
247
+ }
248
+ }
249
+ export async function executeResetMigration(model, result) {
250
+ const keyspace = model.client.config.keyspace;
251
+ const tableName = model.schema.table_name;
252
+ await model.client.driver.execute(`DROP TABLE IF EXISTS ${keyspace}.${tableName}`);
253
+ if (result.createCql) {
254
+ await model.client.driver.execute(result.createCql);
255
+ }
256
+ }
257
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"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"}
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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"}
package/model/index.js CHANGED
@@ -1 +1,71 @@
1
- import{Document as e}from"../document/index.js";import t from"../utils/fillDefaults.js";import n from"../operations/findOne.js";import r from"../operations/find.js";import i from"../operations/update.js";import a from"../operations/delete.js";import o from"../operations/countAll.js";import s from"../operations/tableExists.js";import c from"../operations/sync.js";import l from"../operations/insert.js";var Model=class{name;schema;get client(){return globalThis.__scylla_client}get mapper(){if(!globalThis.__scylla_client?.mapper)throw Error(`No mapper available`);return globalThis.__scylla_client.mapper.forModel(this.name)}constructor(e,t){if(this.name=e,this.schema=t,!Array.isArray(this.schema.keys))throw Error(`[${this.name}] model has missing "keys" array`);if(!this.schema.table_name)throw Error(`[${this.name}] model has missing "table_name"`);if(!this.schema.fields||typeof this.schema.fields!=`object`)throw Error(`[${this.name}] model has missing or invalid "fields"`)}create=e=>this._wrap(e);obj=e=>this._wrap(e);batch={update:(e,t,n={})=>{e.add(this.update(t,{...n,batch:!0}))},insert:(e,t,n={})=>{e.add(this.insert(t,{...n,batch:!0}))},delete:(e,t,n={})=>{e.add(this.delete(t,{...n,batch:!0}))}};find=r.bind(this);findOne=n.bind(this);update=i.bind(this);insert=l.bind(this);delete=a.bind(this);countAll=o.bind(this);_sync=c.bind(this);_tableExists=s.bind(this);_wrap(n){return new e(t(this.schema,n),this)}};export{Model,Model as default};
1
+ import { Document } from "../document";
2
+ import fillDefaults from "../utils/fillDefaults";
3
+ import findOneOP from "../operations/findOne";
4
+ import findOP from "../operations/find";
5
+ import updateOP from "../operations/update";
6
+ import deleteOP from "../operations/delete";
7
+ import countAllOP from "../operations/countAll";
8
+ import tableExistsOP from "../operations/tableExists";
9
+ import syncOP from "../operations/sync";
10
+ import insertOP from "../operations/insert";
11
+ export class Model {
12
+ name;
13
+ schema;
14
+ get client() {
15
+ return globalThis.__scylla_client;
16
+ }
17
+ get mapper() {
18
+ if (!globalThis.__scylla_client?.mapper) {
19
+ throw new Error("No mapper available");
20
+ }
21
+ return globalThis.__scylla_client.mapper.forModel(this.name);
22
+ }
23
+ constructor(name, schema) {
24
+ this.name = name;
25
+ this.schema = schema;
26
+ if (!Array.isArray(this.schema.keys)) {
27
+ throw new Error(`[${this.name}] model has missing "keys" array`);
28
+ }
29
+ if (!this.schema.table_name) {
30
+ throw new Error(`[${this.name}] model has missing "table_name"`);
31
+ }
32
+ if (!this.schema.fields || typeof this.schema.fields !== "object") {
33
+ throw new Error(`[${this.name}] model has missing or invalid "fields"`);
34
+ }
35
+ }
36
+ create = (data) => this._wrap(data);
37
+ obj = (data) => this._wrap(data);
38
+ batch = {
39
+ update: (batch, query, options = {}) => {
40
+ batch.add(this.update(query, {
41
+ ...options,
42
+ batch: true,
43
+ }));
44
+ },
45
+ insert: (batch, query, options = {}) => {
46
+ batch.add(this.insert(query, {
47
+ ...options,
48
+ batch: true,
49
+ }));
50
+ },
51
+ delete: (batch, query, options = {}) => {
52
+ batch.add(this.delete(query, {
53
+ ...options,
54
+ batch: true,
55
+ }));
56
+ },
57
+ };
58
+ find = findOP.bind(this);
59
+ findOne = findOneOP.bind(this);
60
+ update = updateOP.bind(this);
61
+ insert = insertOP.bind(this);
62
+ delete = deleteOP.bind(this);
63
+ countAll = countAllOP.bind(this);
64
+ _sync = syncOP.bind(this);
65
+ _tableExists = tableExistsOP.bind(this);
66
+ _wrap(row) {
67
+ return new Document(fillDefaults(this.schema, row), this);
68
+ }
69
+ }
70
+ export default Model;
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,3 @@
1
- import { Model } from "../model/index.js";
2
-
3
- //#region src/operations/countAll.d.ts
4
- declare function export_default(this: Model<any, any>, timeoutMs?: number): Promise<any>;
5
- //#endregion
6
- export { export_default as default };
1
+ import type Model from "../model";
2
+ export default function (this: Model<any, any>, timeoutMs?: number): Promise<any>;
3
+ //# sourceMappingURL=countAll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countAll.d.ts","sourceRoot":"","sources":["../../src/operations/countAll.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AAEjC,yBACC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EACrB,SAAS,GAAE,MAAc,gBAgBzB"}