@warlock.js/cascade 1.0.5 → 1.0.7

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 (280) hide show
  1. package/cjs/aggregate/DeselectPipeline.d.ts +10 -0
  2. package/cjs/aggregate/DeselectPipeline.d.ts.map +1 -0
  3. package/cjs/aggregate/DeselectPipeline.js +17 -0
  4. package/cjs/aggregate/DeselectPipeline.js.map +1 -0
  5. package/cjs/aggregate/GeoNearPipeline.d.ts +34 -0
  6. package/cjs/aggregate/GeoNearPipeline.d.ts.map +1 -0
  7. package/cjs/aggregate/GeoNearPipeline.js +44 -0
  8. package/cjs/aggregate/GeoNearPipeline.js.map +1 -0
  9. package/cjs/aggregate/GroupByPipeline.d.ts +12 -0
  10. package/cjs/aggregate/GroupByPipeline.d.ts.map +1 -0
  11. package/cjs/aggregate/GroupByPipeline.js +28 -0
  12. package/cjs/aggregate/GroupByPipeline.js.map +1 -0
  13. package/cjs/aggregate/LimitPipeline.d.ts +10 -0
  14. package/cjs/aggregate/LimitPipeline.d.ts.map +1 -0
  15. package/cjs/aggregate/LimitPipeline.js +14 -0
  16. package/cjs/aggregate/LimitPipeline.js.map +1 -0
  17. package/cjs/aggregate/LookupPipeline.d.ts +19 -0
  18. package/cjs/aggregate/LookupPipeline.d.ts.map +1 -0
  19. package/cjs/aggregate/LookupPipeline.js +19 -0
  20. package/cjs/aggregate/LookupPipeline.js.map +1 -0
  21. package/cjs/aggregate/OrWherePipeline.d.ts +23 -0
  22. package/cjs/aggregate/OrWherePipeline.d.ts.map +1 -0
  23. package/cjs/aggregate/OrWherePipeline.js +42 -0
  24. package/cjs/aggregate/OrWherePipeline.js.map +1 -0
  25. package/cjs/aggregate/SelectPipeline.d.ts +10 -0
  26. package/cjs/aggregate/SelectPipeline.d.ts.map +1 -0
  27. package/cjs/aggregate/SelectPipeline.js +26 -0
  28. package/cjs/aggregate/SelectPipeline.js.map +1 -0
  29. package/cjs/aggregate/SkipPipeline.d.ts +10 -0
  30. package/cjs/aggregate/SkipPipeline.d.ts.map +1 -0
  31. package/cjs/aggregate/SkipPipeline.js +14 -0
  32. package/cjs/aggregate/SkipPipeline.js.map +1 -0
  33. package/cjs/aggregate/SortByPipeline.d.ts +10 -0
  34. package/cjs/aggregate/SortByPipeline.d.ts.map +1 -0
  35. package/cjs/aggregate/SortByPipeline.js +18 -0
  36. package/cjs/aggregate/SortByPipeline.js.map +1 -0
  37. package/cjs/aggregate/SortPipeline.d.ts +11 -0
  38. package/cjs/aggregate/SortPipeline.d.ts.map +1 -0
  39. package/cjs/aggregate/SortPipeline.js +18 -0
  40. package/cjs/aggregate/SortPipeline.js.map +1 -0
  41. package/cjs/aggregate/SortRandomPipeline.d.ts +10 -0
  42. package/cjs/aggregate/SortRandomPipeline.d.ts.map +1 -0
  43. package/cjs/aggregate/SortRandomPipeline.js +16 -0
  44. package/cjs/aggregate/SortRandomPipeline.js.map +1 -0
  45. package/cjs/aggregate/UnwindPipeline.d.ts +14 -0
  46. package/cjs/aggregate/UnwindPipeline.d.ts.map +1 -0
  47. package/cjs/aggregate/UnwindPipeline.js +19 -0
  48. package/cjs/aggregate/UnwindPipeline.js.map +1 -0
  49. package/cjs/aggregate/WhereExpression.d.ts +17 -0
  50. package/cjs/aggregate/WhereExpression.d.ts.map +1 -0
  51. package/cjs/aggregate/WhereExpression.js +149 -0
  52. package/cjs/aggregate/WhereExpression.js.map +1 -0
  53. package/cjs/aggregate/WhereExpressionPipeline.d.ts +10 -0
  54. package/cjs/aggregate/WhereExpressionPipeline.d.ts.map +1 -0
  55. package/cjs/aggregate/WhereExpressionPipeline.js +15 -0
  56. package/cjs/aggregate/WhereExpressionPipeline.js.map +1 -0
  57. package/cjs/aggregate/WherePipeline.d.ts +13 -0
  58. package/cjs/aggregate/WherePipeline.d.ts.map +1 -0
  59. package/cjs/aggregate/WherePipeline.js +12 -0
  60. package/cjs/aggregate/WherePipeline.js.map +1 -0
  61. package/cjs/aggregate/aggregate.d.ts +358 -0
  62. package/cjs/aggregate/aggregate.d.ts.map +1 -0
  63. package/cjs/aggregate/aggregate.js +680 -0
  64. package/cjs/aggregate/aggregate.js.map +1 -0
  65. package/cjs/aggregate/expressions.d.ts +361 -0
  66. package/cjs/aggregate/expressions.d.ts.map +1 -0
  67. package/cjs/aggregate/expressions.js +536 -0
  68. package/cjs/aggregate/expressions.js.map +1 -0
  69. package/cjs/aggregate/index.d.ts +21 -0
  70. package/cjs/aggregate/index.d.ts.map +1 -0
  71. package/cjs/aggregate/parsePipelines.d.ts +5 -0
  72. package/cjs/aggregate/parsePipelines.d.ts.map +1 -0
  73. package/cjs/aggregate/parsePipelines.js +6 -0
  74. package/cjs/aggregate/parsePipelines.js.map +1 -0
  75. package/cjs/aggregate/pipeline.d.ts +31 -0
  76. package/cjs/aggregate/pipeline.d.ts.map +1 -0
  77. package/cjs/aggregate/pipeline.js +42 -0
  78. package/cjs/aggregate/pipeline.js.map +1 -0
  79. package/cjs/aggregate/types.d.ts +8 -0
  80. package/cjs/aggregate/types.d.ts.map +1 -0
  81. package/cjs/aggregate/types.js +31 -0
  82. package/cjs/aggregate/types.js.map +1 -0
  83. package/cjs/blueprint/blueprint-column.d.ts +82 -0
  84. package/cjs/blueprint/blueprint-column.d.ts.map +1 -0
  85. package/cjs/blueprint/blueprint.d.ts +162 -0
  86. package/cjs/blueprint/blueprint.d.ts.map +1 -0
  87. package/cjs/blueprint/blueprint.js +340 -0
  88. package/cjs/blueprint/blueprint.js.map +1 -0
  89. package/cjs/blueprint/index.d.ts +3 -0
  90. package/cjs/blueprint/index.d.ts.map +1 -0
  91. package/cjs/blueprint/model-blueprint.d.ts +15 -0
  92. package/cjs/blueprint/model-blueprint.d.ts.map +1 -0
  93. package/cjs/blueprint/model-blueprint.js +16 -0
  94. package/cjs/blueprint/model-blueprint.js.map +1 -0
  95. package/cjs/casts/arrayOf.d.ts +5 -0
  96. package/cjs/casts/arrayOf.d.ts.map +1 -0
  97. package/cjs/casts/arrayOf.js +18 -0
  98. package/cjs/casts/arrayOf.js.map +1 -0
  99. package/cjs/casts/cast-email.d.ts +2 -0
  100. package/cjs/casts/cast-email.d.ts.map +1 -0
  101. package/cjs/casts/cast-email.js +5 -0
  102. package/cjs/casts/cast-email.js.map +1 -0
  103. package/cjs/casts/castModel.d.ts +3 -0
  104. package/cjs/casts/castModel.d.ts.map +1 -0
  105. package/cjs/casts/castModel.js +49 -0
  106. package/cjs/casts/castModel.js.map +1 -0
  107. package/cjs/casts/expiresAfter.d.ts +3 -0
  108. package/cjs/casts/expiresAfter.d.ts.map +1 -0
  109. package/cjs/casts/expiresAfter.js +5 -0
  110. package/cjs/casts/expiresAfter.js.map +1 -0
  111. package/cjs/casts/index.d.ts +9 -0
  112. package/cjs/casts/index.d.ts.map +1 -0
  113. package/cjs/casts/oneOf.d.ts +3 -0
  114. package/cjs/casts/oneOf.d.ts.map +1 -0
  115. package/cjs/casts/oneOf.js +22 -0
  116. package/cjs/casts/oneOf.js.map +1 -0
  117. package/cjs/casts/random-string.d.ts +2 -0
  118. package/cjs/casts/random-string.d.ts.map +1 -0
  119. package/cjs/casts/random-string.js +5 -0
  120. package/cjs/casts/random-string.js.map +1 -0
  121. package/cjs/casts/randomInteger.d.ts +2 -0
  122. package/cjs/casts/randomInteger.d.ts.map +1 -0
  123. package/cjs/casts/randomInteger.js +7 -0
  124. package/cjs/casts/randomInteger.js.map +1 -0
  125. package/cjs/casts/shapedArray.d.ts +26 -0
  126. package/cjs/casts/shapedArray.d.ts.map +1 -0
  127. package/cjs/casts/shapedArray.js +100 -0
  128. package/cjs/casts/shapedArray.js.map +1 -0
  129. package/cjs/config.d.ts +4 -0
  130. package/cjs/config.d.ts.map +1 -0
  131. package/cjs/config.js +10 -0
  132. package/cjs/config.js.map +1 -0
  133. package/cjs/connection.d.ts +45 -0
  134. package/cjs/connection.d.ts.map +1 -0
  135. package/cjs/connection.js +98 -0
  136. package/cjs/connection.js.map +1 -0
  137. package/cjs/database.d.ts +49 -0
  138. package/cjs/database.d.ts.map +1 -0
  139. package/cjs/database.js +85 -0
  140. package/cjs/database.js.map +1 -0
  141. package/cjs/index.d.ts +11 -1
  142. package/cjs/index.d.ts.map +1 -1
  143. package/cjs/index.js +1 -5
  144. package/cjs/index.js.map +1 -1
  145. package/cjs/migration/index.d.ts +4 -0
  146. package/cjs/migration/index.d.ts.map +1 -0
  147. package/cjs/migration/migrate.d.ts +13 -0
  148. package/cjs/migration/migrate.d.ts.map +1 -0
  149. package/cjs/migration/migrate.js +72 -0
  150. package/cjs/migration/migrate.js.map +1 -0
  151. package/cjs/migration/migration-office.d.ts +21 -0
  152. package/cjs/migration/migration-office.d.ts.map +1 -0
  153. package/cjs/migration/migration-office.js +40 -0
  154. package/cjs/migration/migration-office.js.map +1 -0
  155. package/cjs/migration/migration-officer.d.ts +33 -0
  156. package/cjs/migration/migration-officer.d.ts.map +1 -0
  157. package/cjs/migration/migration-officer.js +55 -0
  158. package/cjs/migration/migration-officer.js.map +1 -0
  159. package/cjs/migration/types.d.ts +34 -0
  160. package/cjs/migration/types.d.ts.map +1 -0
  161. package/cjs/model/ModelAggregate.d.ts +84 -0
  162. package/cjs/model/ModelAggregate.d.ts.map +1 -0
  163. package/cjs/model/ModelAggregate.js +164 -0
  164. package/cjs/model/ModelAggregate.js.map +1 -0
  165. package/cjs/model/ModelSync.d.ts +74 -0
  166. package/cjs/model/ModelSync.d.ts.map +1 -0
  167. package/cjs/model/ModelSync.js +215 -0
  168. package/cjs/model/ModelSync.js.map +1 -0
  169. package/cjs/model/RelationshipWithMany.d.ts +24 -0
  170. package/cjs/model/RelationshipWithMany.d.ts.map +1 -0
  171. package/cjs/model/RelationshipWithMany.js +42 -0
  172. package/cjs/model/RelationshipWithMany.js.map +1 -0
  173. package/cjs/model/base-model.d.ts +155 -0
  174. package/cjs/model/base-model.d.ts.map +1 -0
  175. package/cjs/model/base-model.js +230 -0
  176. package/cjs/model/base-model.js.map +1 -0
  177. package/cjs/model/crud-model.d.ts +117 -0
  178. package/cjs/model/crud-model.d.ts.map +1 -0
  179. package/cjs/model/crud-model.js +352 -0
  180. package/cjs/model/crud-model.js.map +1 -0
  181. package/cjs/model/index.d.ts +10 -0
  182. package/cjs/model/index.d.ts.map +1 -0
  183. package/cjs/model/joinable.d.ts +87 -0
  184. package/cjs/model/joinable.d.ts.map +1 -0
  185. package/cjs/model/joinable.js +155 -0
  186. package/cjs/model/joinable.js.map +1 -0
  187. package/cjs/model/master-mind.d.ts +44 -0
  188. package/cjs/model/master-mind.d.ts.map +1 -0
  189. package/cjs/model/master-mind.js +129 -0
  190. package/cjs/model/master-mind.js.map +1 -0
  191. package/cjs/model/model-events.d.ts +57 -0
  192. package/cjs/model/model-events.d.ts.map +1 -0
  193. package/cjs/model/model-events.js +102 -0
  194. package/cjs/model/model-events.js.map +1 -0
  195. package/cjs/model/model.d.ts +401 -0
  196. package/cjs/model/model.d.ts.map +1 -0
  197. package/cjs/model/model.js +1028 -0
  198. package/cjs/model/model.js.map +1 -0
  199. package/cjs/model/types.d.ts +113 -0
  200. package/cjs/model/types.d.ts.map +1 -0
  201. package/cjs/model/types.js +11 -0
  202. package/cjs/model/types.js.map +1 -0
  203. package/cjs/query/index.d.ts +2 -0
  204. package/cjs/query/index.d.ts.map +1 -0
  205. package/cjs/query/query.d.ts +228 -0
  206. package/cjs/query/query.d.ts.map +1 -0
  207. package/cjs/query/query.js +675 -0
  208. package/cjs/query/query.js.map +1 -0
  209. package/cjs/query/types.d.ts +56 -0
  210. package/cjs/query/types.d.ts.map +1 -0
  211. package/cjs/types.d.ts +62 -0
  212. package/cjs/types.d.ts.map +1 -0
  213. package/cjs/utils/connectToDatabase.d.ts +3 -0
  214. package/cjs/utils/connectToDatabase.d.ts.map +1 -0
  215. package/cjs/utils/connectToDatabase.js +3 -0
  216. package/cjs/utils/connectToDatabase.js.map +1 -0
  217. package/cjs/utils/deep-diff.d.ts +9 -0
  218. package/cjs/utils/deep-diff.d.ts.map +1 -0
  219. package/cjs/utils/deep-diff.js +44 -0
  220. package/cjs/utils/deep-diff.js.map +1 -0
  221. package/cjs/utils/dropAllDatabaseIndexes.d.ts +2 -0
  222. package/cjs/utils/dropAllDatabaseIndexes.d.ts.map +1 -0
  223. package/cjs/utils/dropAllDatabaseIndexes.js +10 -0
  224. package/cjs/utils/dropAllDatabaseIndexes.js.map +1 -0
  225. package/cjs/utils/index.d.ts +5 -0
  226. package/cjs/utils/index.d.ts.map +1 -0
  227. package/cjs/utils/joinable-proxy.d.ts +3 -0
  228. package/cjs/utils/joinable-proxy.d.ts.map +1 -0
  229. package/cjs/utils/joinable-proxy.js +14 -0
  230. package/cjs/utils/joinable-proxy.js.map +1 -0
  231. package/cjs/utils/listDatabaseIndexes.d.ts +4 -0
  232. package/cjs/utils/listDatabaseIndexes.d.ts.map +1 -0
  233. package/cjs/utils/listDatabaseIndexes.js +101 -0
  234. package/cjs/utils/listDatabaseIndexes.js.map +1 -0
  235. package/cjs/utils/onceConnected.d.ts +2 -0
  236. package/cjs/utils/onceConnected.d.ts.map +1 -0
  237. package/cjs/utils/onceConnected.js +8 -0
  238. package/cjs/utils/onceConnected.js.map +1 -0
  239. package/esm/connection.js +1 -1
  240. package/esm/connection.js.map +1 -1
  241. package/esm/utils/deep-diff.d.ts.map +1 -1
  242. package/esm/utils/deep-diff.js +5 -3
  243. package/esm/utils/deep-diff.js.map +1 -1
  244. package/package.json +1 -1
  245. package/cjs/commands/create-new-app/get-app-path.d.ts +0 -2
  246. package/cjs/commands/create-new-app/get-app-path.d.ts.map +0 -1
  247. package/cjs/commands/create-new-app/get-app-path.js +0 -8
  248. package/cjs/commands/create-new-app/get-app-path.js.map +0 -1
  249. package/cjs/commands/create-new-app/index.d.ts +0 -2
  250. package/cjs/commands/create-new-app/index.d.ts.map +0 -1
  251. package/cjs/commands/create-new-app/index.js +0 -44
  252. package/cjs/commands/create-new-app/index.js.map +0 -1
  253. package/cjs/commands/create-new-app/select-app-type.d.ts +0 -2
  254. package/cjs/commands/create-new-app/select-app-type.d.ts.map +0 -1
  255. package/cjs/commands/create-new-app/types.d.ts +0 -9
  256. package/cjs/commands/create-new-app/types.d.ts.map +0 -1
  257. package/cjs/commands/create-warlock-app/index.d.ts +0 -3
  258. package/cjs/commands/create-warlock-app/index.d.ts.map +0 -1
  259. package/cjs/commands/create-warlock-app/index.js +0 -18
  260. package/cjs/commands/create-warlock-app/index.js.map +0 -1
  261. package/cjs/helpers/app.d.ts +0 -51
  262. package/cjs/helpers/app.d.ts.map +0 -1
  263. package/cjs/helpers/app.js +0 -127
  264. package/cjs/helpers/app.js.map +0 -1
  265. package/cjs/helpers/exec.d.ts +0 -10
  266. package/cjs/helpers/exec.d.ts.map +0 -1
  267. package/cjs/helpers/exec.js +0 -69
  268. package/cjs/helpers/exec.js.map +0 -1
  269. package/cjs/helpers/package-manager.d.ts +0 -6
  270. package/cjs/helpers/package-manager.d.ts.map +0 -1
  271. package/cjs/helpers/package-manager.js +0 -22
  272. package/cjs/helpers/package-manager.js.map +0 -1
  273. package/cjs/helpers/paths.d.ts +0 -4
  274. package/cjs/helpers/paths.d.ts.map +0 -1
  275. package/cjs/helpers/paths.js +0 -8
  276. package/cjs/helpers/paths.js.map +0 -1
  277. package/cjs/helpers/project-builder-helpers.d.ts +0 -7
  278. package/cjs/helpers/project-builder-helpers.d.ts.map +0 -1
  279. package/cjs/helpers/project-builder-helpers.js +0 -44
  280. package/cjs/helpers/project-builder-helpers.js.map +0 -1
@@ -0,0 +1,401 @@
1
+ import { ObjectId } from "mongodb";
2
+ import { ModelAggregate } from "./ModelAggregate";
3
+ import { ModelSync } from "./ModelSync";
4
+ import { RelationshipWithMany } from "./RelationshipWithMany";
5
+ import { CrudModel } from "./crud-model";
6
+ import { Joinable } from "./joinable";
7
+ import type { CastType, Casts, ChildModel, CustomCasts, Document, ModelDocument } from "./types";
8
+ export type Schema<ModelSchema = Document> = ModelSchema & {
9
+ _id?: ObjectId;
10
+ id?: number;
11
+ createdAt?: Date;
12
+ updatedAt?: Date;
13
+ };
14
+ type ModelSchema = Schema;
15
+ export declare class Model extends CrudModel {
16
+ /**
17
+ * Model Initial Document data
18
+ */
19
+ initialData: Partial<ModelSchema>;
20
+ /**
21
+ * Relations list
22
+ */
23
+ static relations: Record<string, Joinable>;
24
+ /**
25
+ * Model Document data
26
+ */
27
+ data: ModelSchema;
28
+ /**
29
+ * Define Default value data that will be merged with the models' data
30
+ * on the create process
31
+ */
32
+ defaultValue: Partial<ModelSchema>;
33
+ /**
34
+ * A flag to determine if the model is being restored
35
+ */
36
+ protected isRestored: boolean;
37
+ /**
38
+ * Model casts types
39
+ */
40
+ protected casts: Casts;
41
+ /**
42
+ * Sync with list
43
+ */
44
+ syncWith: ModelSync[];
45
+ /**
46
+ * Set custom casts that will be used to cast the model's data are not related to the current value of the collection's column
47
+ *
48
+ * For example: `name` is not a column in the given data, but it will be concatenation of `firstName` and `lastName`
49
+ */
50
+ protected customCasts: CustomCasts<string>;
51
+ /**
52
+ * Guarded fields
53
+ */
54
+ guarded: (keyof ModelDocument)[];
55
+ /**
56
+ * Fillable fields
57
+ */
58
+ filled: (keyof ModelDocument)[];
59
+ /**
60
+ * Embedded columns
61
+ */
62
+ embedded: (keyof ModelSchema)[];
63
+ /**
64
+ * Embed all columns except the given columns
65
+ */
66
+ embedAllExcept: (keyof ModelDocument)[];
67
+ /**
68
+ * Embed all columns except timestamps and created|updated|deleted by columns
69
+ */
70
+ embedAllExceptTimestampsAndUserColumns: boolean;
71
+ /**
72
+ * Created at column
73
+ */
74
+ createdAtColumn: string;
75
+ /**
76
+ * Updated at column
77
+ */
78
+ updatedAtColumn: string;
79
+ /**
80
+ * Deleted at column
81
+ */
82
+ deletedAtColumn: string;
83
+ /**
84
+ * Created by column
85
+ */
86
+ createdByColumn: string;
87
+ /**
88
+ * Updated by column
89
+ */
90
+ updatedByColumn: string;
91
+ /**
92
+ * Deleted by column
93
+ */
94
+ deletedByColumn: string;
95
+ /**
96
+ * Date format
97
+ */
98
+ dateFormat: string;
99
+ /**
100
+ * A flag to determine if the id is auto generated not added manually
101
+ */
102
+ protected autoGeneratedId: boolean;
103
+ /**
104
+ * Is active column
105
+ */
106
+ protected isActiveColumn: string;
107
+ /**
108
+ * Original data
109
+ */
110
+ originalData: ModelSchema;
111
+ /**
112
+ * List of dirty columns
113
+ */
114
+ dirtyColumns: Record<string, {
115
+ oldValue: any;
116
+ newValue: any;
117
+ }>;
118
+ /**
119
+ * Constructor
120
+ */
121
+ constructor(originalData?: Partial<ModelSchema>);
122
+ /**
123
+ * Get save columns which are the casts keys
124
+ */
125
+ get castColumns(): string[];
126
+ /**
127
+ * Get value from original data
128
+ */
129
+ original(key: string, defaultValue?: any): any;
130
+ /**
131
+ * Get all data except the guarded fields
132
+ */
133
+ get publicData(): any;
134
+ /**
135
+ * Get guarded data
136
+ */
137
+ get guardedData(): any;
138
+ /**
139
+ * Get the model's id
140
+ */
141
+ get id(): number;
142
+ /**
143
+ * Check if current user is active
144
+ */
145
+ get isActive(): boolean;
146
+ /**
147
+ * Get mongodb id
148
+ */
149
+ get _id(): ObjectId;
150
+ /**
151
+ * Mark the current model as being restored
152
+ */
153
+ markAsRestored(): void;
154
+ /**
155
+ * Set a column in the model data
156
+ */
157
+ set(column: keyof ModelSchema, value: any): this;
158
+ /**
159
+ * Increment the given column by the given value
160
+ */
161
+ increment(column: keyof ModelSchema, value?: number): this;
162
+ /**
163
+ * Decrement the given column by the given value
164
+ */
165
+ decrement(column: keyof ModelSchema, value?: number): this;
166
+ /**
167
+ * Get initial value of the given column
168
+ */
169
+ getInitial(column: keyof ModelSchema, defaultValue?: any): any;
170
+ /**
171
+ * Get value of the given column
172
+ */
173
+ get<ValueType = any>(column: keyof ModelSchema, defaultValue?: any): ValueType;
174
+ /**
175
+ * Return the value of the given column as a string
176
+ */
177
+ string(column: keyof ModelSchema, defaultValue?: any): string;
178
+ /**
179
+ * Return the value of the given column as an integer
180
+ */
181
+ int(column: keyof ModelSchema, defaultValue?: any): number;
182
+ /**
183
+ * Return the value of the given column as a float
184
+ */
185
+ float(column: keyof ModelSchema, defaultValue?: any): number;
186
+ /**
187
+ * Return the value of the given column as a number
188
+ */
189
+ number(column: keyof ModelSchema, defaultValue?: any): number;
190
+ /**
191
+ * Return the value of the given column as a boolean
192
+ */
193
+ bool(column: keyof ModelSchema, defaultValue?: any): boolean;
194
+ /**
195
+ * Determine whether the given column exists in the document
196
+ */
197
+ has(column: keyof ModelSchema): boolean;
198
+ /**
199
+ * Get all columns except the given ones
200
+ */
201
+ except(columns: (keyof ModelSchema)[]): Document;
202
+ /**
203
+ * Get only the given columns
204
+ */
205
+ only(columns: (keyof ModelSchema)[]): Document;
206
+ /**
207
+ * Get only id
208
+ */
209
+ get onlyId(): Document;
210
+ /**
211
+ * Unset or remove the given columns from the data
212
+ */
213
+ unset(...columns: (keyof ModelSchema)[]): this;
214
+ /**
215
+ * Replace the entire document data with the given new data
216
+ */
217
+ replaceWith(data: ModelSchema): this;
218
+ /**
219
+ * Merge the given documents to current document
220
+ */
221
+ merge(data: Document): this;
222
+ /**
223
+ * Push the given values to the given column
224
+ * If the given column does not exists, it will be created
225
+ * If the given value exists but not an array it will be ignored
226
+ */
227
+ push(column: keyof ModelSchema, ...values: any[]): this;
228
+ /**
229
+ * Push the given values to the given column only if not exists
230
+ */
231
+ pushOnce(column: keyof ModelSchema, ...values: any[]): this;
232
+ /**
233
+ * Add the given values to the beginning of the given column
234
+ * If the given column does not exists, it will be created
235
+ * If the given value exists but not an array it will be ignored
236
+ */
237
+ unshift(column: keyof ModelSchema, ...values: any[]): this;
238
+ /**
239
+ * Add the given values to the beginning of the given column only if not exists
240
+ */
241
+ unshiftOnce(column: keyof ModelSchema, ...values: any[]): this;
242
+ /**
243
+ * Perform saving operation either by updating or creating a new record in database
244
+ */
245
+ save(mergedData?: Omit<ModelSchema, "id" | "_id">, { triggerEvents, cast, forceUpdate, }?: {
246
+ triggerEvents?: boolean;
247
+ cast?: boolean;
248
+ forceUpdate?: boolean;
249
+ }): Promise<this>;
250
+ /**
251
+ * Generate and return next id
252
+ */
253
+ generateNextId(): Promise<number>;
254
+ /**
255
+ * Perform saving but without any events triggers
256
+ */
257
+ silentSaving(mergedData?: Omit<ModelSchema, "id" | "_id">, options?: {
258
+ cast?: boolean;
259
+ }): Promise<this>;
260
+ /**
261
+ * Determine whether the model should be updated or not
262
+ */
263
+ protected shouldUpdate(originalData: ModelSchema, data: ModelSchema): boolean;
264
+ /**
265
+ * Triggered before saving the model either by creating or updating
266
+ */
267
+ protected onSaving(): Promise<void>;
268
+ /**
269
+ * Triggered after saving the model either by creating or updating
270
+ */
271
+ protected onSaved(): Promise<void>;
272
+ /**
273
+ * Triggered before creating the model
274
+ */
275
+ protected onCreating(): Promise<void>;
276
+ /**
277
+ * Triggered after creating the model
278
+ */
279
+ protected onCreated(): Promise<void>;
280
+ /**
281
+ * Triggered before updating the model
282
+ */
283
+ protected onUpdating(): Promise<void>;
284
+ /**
285
+ * Triggered after updating the model
286
+ */
287
+ protected onUpdated(): Promise<void>;
288
+ /**
289
+ * Triggered before deleting the model
290
+ */
291
+ protected onDeleting(): Promise<void>;
292
+ /**
293
+ * Triggered after deleting the model
294
+ */
295
+ protected onDeleted(): Promise<void>;
296
+ /**
297
+ * Cast data before saving
298
+ */
299
+ protected castData(forceUpdate?: boolean): Promise<void>;
300
+ /**
301
+ * Return only the given columns to be used in output
302
+ */
303
+ outputOnly(columns: string[]): this;
304
+ /**
305
+ * Return all columns except the given columns to be used in output
306
+ */
307
+ outputExcept(columns: string[]): this;
308
+ /**
309
+ * Cast the given value based on the given cast type
310
+ */
311
+ protected castValue(value: any, castType: CastType): any;
312
+ /**
313
+ * Check for default values
314
+ */
315
+ protected checkDefaultValues(): void;
316
+ /**
317
+ * Destroy the model and delete it from database collection
318
+ */
319
+ destroy(): Promise<void>;
320
+ /**
321
+ * Determine if the given column is dirty column
322
+ *
323
+ * Dirty columns are columns that their values have been changed from the original data
324
+ */
325
+ isDirty(column?: string): boolean;
326
+ /**
327
+ * Check if current model is a new model
328
+ */
329
+ isNewModel(): boolean;
330
+ /**
331
+ * Get embedded data
332
+ */
333
+ get embeddedData(): any;
334
+ /**
335
+ * Clone the model
336
+ */
337
+ clone(data?: Document): this;
338
+ /**
339
+ * Get relationship with the given model class
340
+ */
341
+ hasMany<T extends Model = Model>(modelClass: typeof Model, column: string): RelationshipWithMany<T>;
342
+ /**
343
+ * Get new aggregate for current model
344
+ */
345
+ static aggregate<T extends Model = Model>(this: ChildModel<T>): ModelAggregate<T>;
346
+ /**
347
+ * @alias aggregate
348
+ */
349
+ static $(): ModelAggregate<Model>;
350
+ /**
351
+ * Get query builder
352
+ * @alias aggregate
353
+ */
354
+ static queryBuilder<T extends Model = Model>(this: ChildModel<T>): ModelAggregate<T>;
355
+ /**
356
+ * Sync with the given model
357
+ */
358
+ static sync(columns: string | string[], embedMethod?: string): ModelSync;
359
+ /**
360
+ * Sync data on saving
361
+ */
362
+ startSyncing(saveMode: "create" | "update", oldModel?: Model): void;
363
+ /**
364
+ * Sync destruction
365
+ * Called when destroy method is called
366
+ */
367
+ syncDestruction(): void;
368
+ /**
369
+ * The syncing model (That calls startSyncing) is being embedded in multiple documents of current model
370
+ * I.e Country.syncMany('cities') while current model is City
371
+ */
372
+ static syncMany(columns: string | string[], embedMethod?: string): ModelSync;
373
+ /**
374
+ * Reassociate a model/object/document with the current model
375
+ * If the model is already associated, it will be updated
376
+ * If not, it will be associated
377
+ * the model/document must have an id
378
+ *
379
+ * If it is a model, you can set the embed method to use
380
+ */
381
+ reassociate(this: Model, column: string, model: Model | ModelDocument | any, embedWith?: string): Model;
382
+ /**
383
+ * Associate a model with the current model
384
+ */
385
+ associate(this: Model, column: string, model: Model | ModelDocument | any, embedWith?: string): Model;
386
+ /**
387
+ * Disassociate a model with the current model
388
+ */
389
+ disassociate(this: Model, column: string, model: Model | ModelDocument | any): Model;
390
+ /**
391
+ * Make a wrapper to list when models should be updated when only one of the given columns is updated
392
+ */
393
+ syncUpdateWhenChange(columns: string | string[], syncModels: ModelSync[]): ModelSync[];
394
+ /**
395
+ * Get a Joinable instance for current model
396
+ */
397
+ static joinable(localField?: string, foreignField?: string, single?: boolean, as?: string): import("./joinable").JoinableProxy;
398
+ }
399
+ export type ModelType = typeof Model;
400
+ export {};
401
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}