@warlock.js/cascade 1.0.4 → 1.0.5

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 (300) hide show
  1. package/cjs/commands/create-new-app/get-app-path.d.ts +2 -0
  2. package/cjs/commands/create-new-app/get-app-path.d.ts.map +1 -0
  3. package/cjs/commands/create-new-app/get-app-path.js +8 -0
  4. package/cjs/commands/create-new-app/get-app-path.js.map +1 -0
  5. package/cjs/commands/create-new-app/index.d.ts +2 -0
  6. package/cjs/commands/create-new-app/index.d.ts.map +1 -0
  7. package/cjs/commands/create-new-app/index.js +44 -0
  8. package/cjs/commands/create-new-app/index.js.map +1 -0
  9. package/cjs/commands/create-new-app/select-app-type.d.ts +2 -0
  10. package/cjs/commands/create-new-app/select-app-type.d.ts.map +1 -0
  11. package/cjs/commands/create-new-app/types.d.ts +9 -0
  12. package/cjs/commands/create-new-app/types.d.ts.map +1 -0
  13. package/cjs/commands/create-warlock-app/index.d.ts +3 -0
  14. package/cjs/commands/create-warlock-app/index.d.ts.map +1 -0
  15. package/cjs/commands/create-warlock-app/index.js +18 -0
  16. package/cjs/commands/create-warlock-app/index.js.map +1 -0
  17. package/cjs/helpers/app.d.ts +51 -0
  18. package/cjs/helpers/app.d.ts.map +1 -0
  19. package/cjs/helpers/app.js +127 -0
  20. package/cjs/helpers/app.js.map +1 -0
  21. package/cjs/helpers/exec.d.ts +10 -0
  22. package/cjs/helpers/exec.d.ts.map +1 -0
  23. package/cjs/helpers/exec.js +69 -0
  24. package/cjs/helpers/exec.js.map +1 -0
  25. package/cjs/helpers/package-manager.d.ts +6 -0
  26. package/cjs/helpers/package-manager.d.ts.map +1 -0
  27. package/cjs/helpers/package-manager.js +22 -0
  28. package/cjs/helpers/package-manager.js.map +1 -0
  29. package/cjs/helpers/paths.d.ts +4 -0
  30. package/cjs/helpers/paths.d.ts.map +1 -0
  31. package/cjs/helpers/paths.js +8 -0
  32. package/cjs/helpers/paths.js.map +1 -0
  33. package/cjs/helpers/project-builder-helpers.d.ts +7 -0
  34. package/cjs/helpers/project-builder-helpers.d.ts.map +1 -0
  35. package/cjs/helpers/project-builder-helpers.js +44 -0
  36. package/cjs/helpers/project-builder-helpers.js.map +1 -0
  37. package/cjs/index.d.ts +1 -11
  38. package/cjs/index.d.ts.map +1 -1
  39. package/cjs/index.js +5 -1
  40. package/cjs/index.js.map +1 -1
  41. package/esm/blueprint/blueprint.d.ts +2 -2
  42. package/esm/blueprint/blueprint.d.ts.map +1 -1
  43. package/esm/blueprint/blueprint.js +2 -0
  44. package/esm/blueprint/blueprint.js.map +1 -1
  45. package/esm/migration/migrate.d.ts.map +1 -1
  46. package/esm/migration/migrate.js +2 -6
  47. package/esm/migration/migrate.js.map +1 -1
  48. package/esm/migration/migration-office.d.ts +3 -3
  49. package/esm/migration/migration-office.d.ts.map +1 -1
  50. package/esm/migration/migration-office.js +15 -1
  51. package/esm/migration/migration-office.js.map +1 -1
  52. package/esm/migration/types.d.ts +10 -0
  53. package/esm/migration/types.d.ts.map +1 -1
  54. package/esm/model/ModelAggregate.js +1 -1
  55. package/esm/model/ModelAggregate.js.map +1 -1
  56. package/esm/model/base-model.d.ts +2 -2
  57. package/esm/model/base-model.d.ts.map +1 -1
  58. package/esm/model/base-model.js +14 -4
  59. package/esm/model/base-model.js.map +1 -1
  60. package/esm/model/model.d.ts +13 -2
  61. package/esm/model/model.d.ts.map +1 -1
  62. package/esm/model/model.js +41 -3
  63. package/esm/model/model.js.map +1 -1
  64. package/esm/types.d.ts +30 -0
  65. package/esm/types.d.ts.map +1 -1
  66. package/esm/utils/deep-diff.d.ts +9 -0
  67. package/esm/utils/deep-diff.d.ts.map +1 -0
  68. package/esm/utils/deep-diff.js +42 -0
  69. package/esm/utils/deep-diff.js.map +1 -0
  70. package/package.json +1 -1
  71. package/cjs/aggregate/DeselectPipeline.d.ts +0 -10
  72. package/cjs/aggregate/DeselectPipeline.d.ts.map +0 -1
  73. package/cjs/aggregate/DeselectPipeline.js +0 -17
  74. package/cjs/aggregate/DeselectPipeline.js.map +0 -1
  75. package/cjs/aggregate/GeoNearPipeline.d.ts +0 -34
  76. package/cjs/aggregate/GeoNearPipeline.d.ts.map +0 -1
  77. package/cjs/aggregate/GeoNearPipeline.js +0 -44
  78. package/cjs/aggregate/GeoNearPipeline.js.map +0 -1
  79. package/cjs/aggregate/GroupByPipeline.d.ts +0 -12
  80. package/cjs/aggregate/GroupByPipeline.d.ts.map +0 -1
  81. package/cjs/aggregate/GroupByPipeline.js +0 -28
  82. package/cjs/aggregate/GroupByPipeline.js.map +0 -1
  83. package/cjs/aggregate/LimitPipeline.d.ts +0 -10
  84. package/cjs/aggregate/LimitPipeline.d.ts.map +0 -1
  85. package/cjs/aggregate/LimitPipeline.js +0 -14
  86. package/cjs/aggregate/LimitPipeline.js.map +0 -1
  87. package/cjs/aggregate/LookupPipeline.d.ts +0 -19
  88. package/cjs/aggregate/LookupPipeline.d.ts.map +0 -1
  89. package/cjs/aggregate/LookupPipeline.js +0 -19
  90. package/cjs/aggregate/LookupPipeline.js.map +0 -1
  91. package/cjs/aggregate/OrWherePipeline.d.ts +0 -23
  92. package/cjs/aggregate/OrWherePipeline.d.ts.map +0 -1
  93. package/cjs/aggregate/OrWherePipeline.js +0 -42
  94. package/cjs/aggregate/OrWherePipeline.js.map +0 -1
  95. package/cjs/aggregate/SelectPipeline.d.ts +0 -10
  96. package/cjs/aggregate/SelectPipeline.d.ts.map +0 -1
  97. package/cjs/aggregate/SelectPipeline.js +0 -26
  98. package/cjs/aggregate/SelectPipeline.js.map +0 -1
  99. package/cjs/aggregate/SkipPipeline.d.ts +0 -10
  100. package/cjs/aggregate/SkipPipeline.d.ts.map +0 -1
  101. package/cjs/aggregate/SkipPipeline.js +0 -14
  102. package/cjs/aggregate/SkipPipeline.js.map +0 -1
  103. package/cjs/aggregate/SortByPipeline.d.ts +0 -10
  104. package/cjs/aggregate/SortByPipeline.d.ts.map +0 -1
  105. package/cjs/aggregate/SortByPipeline.js +0 -18
  106. package/cjs/aggregate/SortByPipeline.js.map +0 -1
  107. package/cjs/aggregate/SortPipeline.d.ts +0 -11
  108. package/cjs/aggregate/SortPipeline.d.ts.map +0 -1
  109. package/cjs/aggregate/SortPipeline.js +0 -18
  110. package/cjs/aggregate/SortPipeline.js.map +0 -1
  111. package/cjs/aggregate/SortRandomPipeline.d.ts +0 -10
  112. package/cjs/aggregate/SortRandomPipeline.d.ts.map +0 -1
  113. package/cjs/aggregate/SortRandomPipeline.js +0 -16
  114. package/cjs/aggregate/SortRandomPipeline.js.map +0 -1
  115. package/cjs/aggregate/UnwindPipeline.d.ts +0 -14
  116. package/cjs/aggregate/UnwindPipeline.d.ts.map +0 -1
  117. package/cjs/aggregate/UnwindPipeline.js +0 -19
  118. package/cjs/aggregate/UnwindPipeline.js.map +0 -1
  119. package/cjs/aggregate/WhereExpression.d.ts +0 -17
  120. package/cjs/aggregate/WhereExpression.d.ts.map +0 -1
  121. package/cjs/aggregate/WhereExpression.js +0 -149
  122. package/cjs/aggregate/WhereExpression.js.map +0 -1
  123. package/cjs/aggregate/WhereExpressionPipeline.d.ts +0 -10
  124. package/cjs/aggregate/WhereExpressionPipeline.d.ts.map +0 -1
  125. package/cjs/aggregate/WhereExpressionPipeline.js +0 -15
  126. package/cjs/aggregate/WhereExpressionPipeline.js.map +0 -1
  127. package/cjs/aggregate/WherePipeline.d.ts +0 -13
  128. package/cjs/aggregate/WherePipeline.d.ts.map +0 -1
  129. package/cjs/aggregate/WherePipeline.js +0 -12
  130. package/cjs/aggregate/WherePipeline.js.map +0 -1
  131. package/cjs/aggregate/aggregate.d.ts +0 -358
  132. package/cjs/aggregate/aggregate.d.ts.map +0 -1
  133. package/cjs/aggregate/aggregate.js +0 -680
  134. package/cjs/aggregate/aggregate.js.map +0 -1
  135. package/cjs/aggregate/expressions.d.ts +0 -361
  136. package/cjs/aggregate/expressions.d.ts.map +0 -1
  137. package/cjs/aggregate/expressions.js +0 -536
  138. package/cjs/aggregate/expressions.js.map +0 -1
  139. package/cjs/aggregate/index.d.ts +0 -21
  140. package/cjs/aggregate/index.d.ts.map +0 -1
  141. package/cjs/aggregate/parsePipelines.d.ts +0 -5
  142. package/cjs/aggregate/parsePipelines.d.ts.map +0 -1
  143. package/cjs/aggregate/parsePipelines.js +0 -6
  144. package/cjs/aggregate/parsePipelines.js.map +0 -1
  145. package/cjs/aggregate/pipeline.d.ts +0 -31
  146. package/cjs/aggregate/pipeline.d.ts.map +0 -1
  147. package/cjs/aggregate/pipeline.js +0 -42
  148. package/cjs/aggregate/pipeline.js.map +0 -1
  149. package/cjs/aggregate/types.d.ts +0 -8
  150. package/cjs/aggregate/types.d.ts.map +0 -1
  151. package/cjs/aggregate/types.js +0 -31
  152. package/cjs/aggregate/types.js.map +0 -1
  153. package/cjs/blueprint/blueprint-column.d.ts +0 -82
  154. package/cjs/blueprint/blueprint-column.d.ts.map +0 -1
  155. package/cjs/blueprint/blueprint.d.ts +0 -162
  156. package/cjs/blueprint/blueprint.d.ts.map +0 -1
  157. package/cjs/blueprint/blueprint.js +0 -338
  158. package/cjs/blueprint/blueprint.js.map +0 -1
  159. package/cjs/blueprint/index.d.ts +0 -3
  160. package/cjs/blueprint/index.d.ts.map +0 -1
  161. package/cjs/blueprint/model-blueprint.d.ts +0 -15
  162. package/cjs/blueprint/model-blueprint.d.ts.map +0 -1
  163. package/cjs/blueprint/model-blueprint.js +0 -16
  164. package/cjs/blueprint/model-blueprint.js.map +0 -1
  165. package/cjs/casts/arrayOf.d.ts +0 -5
  166. package/cjs/casts/arrayOf.d.ts.map +0 -1
  167. package/cjs/casts/arrayOf.js +0 -18
  168. package/cjs/casts/arrayOf.js.map +0 -1
  169. package/cjs/casts/cast-email.d.ts +0 -2
  170. package/cjs/casts/cast-email.d.ts.map +0 -1
  171. package/cjs/casts/cast-email.js +0 -5
  172. package/cjs/casts/cast-email.js.map +0 -1
  173. package/cjs/casts/castModel.d.ts +0 -3
  174. package/cjs/casts/castModel.d.ts.map +0 -1
  175. package/cjs/casts/castModel.js +0 -49
  176. package/cjs/casts/castModel.js.map +0 -1
  177. package/cjs/casts/expiresAfter.d.ts +0 -3
  178. package/cjs/casts/expiresAfter.d.ts.map +0 -1
  179. package/cjs/casts/expiresAfter.js +0 -5
  180. package/cjs/casts/expiresAfter.js.map +0 -1
  181. package/cjs/casts/index.d.ts +0 -9
  182. package/cjs/casts/index.d.ts.map +0 -1
  183. package/cjs/casts/oneOf.d.ts +0 -3
  184. package/cjs/casts/oneOf.d.ts.map +0 -1
  185. package/cjs/casts/oneOf.js +0 -22
  186. package/cjs/casts/oneOf.js.map +0 -1
  187. package/cjs/casts/random-string.d.ts +0 -2
  188. package/cjs/casts/random-string.d.ts.map +0 -1
  189. package/cjs/casts/random-string.js +0 -5
  190. package/cjs/casts/random-string.js.map +0 -1
  191. package/cjs/casts/randomInteger.d.ts +0 -2
  192. package/cjs/casts/randomInteger.d.ts.map +0 -1
  193. package/cjs/casts/randomInteger.js +0 -7
  194. package/cjs/casts/randomInteger.js.map +0 -1
  195. package/cjs/casts/shapedArray.d.ts +0 -26
  196. package/cjs/casts/shapedArray.d.ts.map +0 -1
  197. package/cjs/casts/shapedArray.js +0 -100
  198. package/cjs/casts/shapedArray.js.map +0 -1
  199. package/cjs/config.d.ts +0 -4
  200. package/cjs/config.d.ts.map +0 -1
  201. package/cjs/config.js +0 -10
  202. package/cjs/config.js.map +0 -1
  203. package/cjs/connection.d.ts +0 -45
  204. package/cjs/connection.d.ts.map +0 -1
  205. package/cjs/connection.js +0 -98
  206. package/cjs/connection.js.map +0 -1
  207. package/cjs/database.d.ts +0 -49
  208. package/cjs/database.d.ts.map +0 -1
  209. package/cjs/database.js +0 -85
  210. package/cjs/database.js.map +0 -1
  211. package/cjs/migration/index.d.ts +0 -4
  212. package/cjs/migration/index.d.ts.map +0 -1
  213. package/cjs/migration/migrate.d.ts +0 -13
  214. package/cjs/migration/migrate.d.ts.map +0 -1
  215. package/cjs/migration/migrate.js +0 -76
  216. package/cjs/migration/migrate.js.map +0 -1
  217. package/cjs/migration/migration-office.d.ts +0 -21
  218. package/cjs/migration/migration-office.d.ts.map +0 -1
  219. package/cjs/migration/migration-office.js +0 -26
  220. package/cjs/migration/migration-office.js.map +0 -1
  221. package/cjs/migration/migration-officer.d.ts +0 -33
  222. package/cjs/migration/migration-officer.d.ts.map +0 -1
  223. package/cjs/migration/migration-officer.js +0 -55
  224. package/cjs/migration/migration-officer.js.map +0 -1
  225. package/cjs/migration/types.d.ts +0 -24
  226. package/cjs/migration/types.d.ts.map +0 -1
  227. package/cjs/model/ModelAggregate.d.ts +0 -84
  228. package/cjs/model/ModelAggregate.d.ts.map +0 -1
  229. package/cjs/model/ModelAggregate.js +0 -164
  230. package/cjs/model/ModelAggregate.js.map +0 -1
  231. package/cjs/model/ModelSync.d.ts +0 -74
  232. package/cjs/model/ModelSync.d.ts.map +0 -1
  233. package/cjs/model/ModelSync.js +0 -215
  234. package/cjs/model/ModelSync.js.map +0 -1
  235. package/cjs/model/RelationshipWithMany.d.ts +0 -24
  236. package/cjs/model/RelationshipWithMany.d.ts.map +0 -1
  237. package/cjs/model/RelationshipWithMany.js +0 -42
  238. package/cjs/model/RelationshipWithMany.js.map +0 -1
  239. package/cjs/model/base-model.d.ts +0 -155
  240. package/cjs/model/base-model.d.ts.map +0 -1
  241. package/cjs/model/base-model.js +0 -220
  242. package/cjs/model/base-model.js.map +0 -1
  243. package/cjs/model/crud-model.d.ts +0 -117
  244. package/cjs/model/crud-model.d.ts.map +0 -1
  245. package/cjs/model/crud-model.js +0 -352
  246. package/cjs/model/crud-model.js.map +0 -1
  247. package/cjs/model/index.d.ts +0 -10
  248. package/cjs/model/index.d.ts.map +0 -1
  249. package/cjs/model/joinable.d.ts +0 -87
  250. package/cjs/model/joinable.d.ts.map +0 -1
  251. package/cjs/model/joinable.js +0 -155
  252. package/cjs/model/joinable.js.map +0 -1
  253. package/cjs/model/master-mind.d.ts +0 -44
  254. package/cjs/model/master-mind.d.ts.map +0 -1
  255. package/cjs/model/master-mind.js +0 -129
  256. package/cjs/model/master-mind.js.map +0 -1
  257. package/cjs/model/model-events.d.ts +0 -57
  258. package/cjs/model/model-events.d.ts.map +0 -1
  259. package/cjs/model/model-events.js +0 -102
  260. package/cjs/model/model-events.js.map +0 -1
  261. package/cjs/model/model.d.ts +0 -390
  262. package/cjs/model/model.d.ts.map +0 -1
  263. package/cjs/model/model.js +0 -990
  264. package/cjs/model/model.js.map +0 -1
  265. package/cjs/model/types.d.ts +0 -113
  266. package/cjs/model/types.d.ts.map +0 -1
  267. package/cjs/model/types.js +0 -11
  268. package/cjs/model/types.js.map +0 -1
  269. package/cjs/query/index.d.ts +0 -2
  270. package/cjs/query/index.d.ts.map +0 -1
  271. package/cjs/query/query.d.ts +0 -228
  272. package/cjs/query/query.d.ts.map +0 -1
  273. package/cjs/query/query.js +0 -675
  274. package/cjs/query/query.js.map +0 -1
  275. package/cjs/query/types.d.ts +0 -56
  276. package/cjs/query/types.d.ts.map +0 -1
  277. package/cjs/types.d.ts +0 -32
  278. package/cjs/types.d.ts.map +0 -1
  279. package/cjs/utils/connectToDatabase.d.ts +0 -3
  280. package/cjs/utils/connectToDatabase.d.ts.map +0 -1
  281. package/cjs/utils/connectToDatabase.js +0 -3
  282. package/cjs/utils/connectToDatabase.js.map +0 -1
  283. package/cjs/utils/dropAllDatabaseIndexes.d.ts +0 -2
  284. package/cjs/utils/dropAllDatabaseIndexes.d.ts.map +0 -1
  285. package/cjs/utils/dropAllDatabaseIndexes.js +0 -10
  286. package/cjs/utils/dropAllDatabaseIndexes.js.map +0 -1
  287. package/cjs/utils/index.d.ts +0 -5
  288. package/cjs/utils/index.d.ts.map +0 -1
  289. package/cjs/utils/joinable-proxy.d.ts +0 -3
  290. package/cjs/utils/joinable-proxy.d.ts.map +0 -1
  291. package/cjs/utils/joinable-proxy.js +0 -14
  292. package/cjs/utils/joinable-proxy.js.map +0 -1
  293. package/cjs/utils/listDatabaseIndexes.d.ts +0 -4
  294. package/cjs/utils/listDatabaseIndexes.d.ts.map +0 -1
  295. package/cjs/utils/listDatabaseIndexes.js +0 -101
  296. package/cjs/utils/listDatabaseIndexes.js.map +0 -1
  297. package/cjs/utils/onceConnected.d.ts +0 -2
  298. package/cjs/utils/onceConnected.d.ts.map +0 -1
  299. package/cjs/utils/onceConnected.js +0 -8
  300. package/cjs/utils/onceConnected.js.map +0 -1
package/cjs/database.js DELETED
@@ -1,85 +0,0 @@
1
- 'use strict';var async_hooks=require('async_hooks');class Database {
2
- /**
3
- * MongoDB Internal Database instance
4
- */
5
- database;
6
- /**
7
- * Current Connection
8
- */
9
- connection;
10
- sessionsContainer = new async_hooks.AsyncLocalStorage();
11
- /**
12
- * Create a new transaction session and wrap it with a context
13
- */
14
- async startSession(callback, sessionOptions = {
15
- defaultTransactionOptions: {
16
- readPreference: "primary",
17
- readConcern: { level: "local" },
18
- writeConcern: { w: "majority" },
19
- },
20
- }) {
21
- const session = this.connection.client.startSession(sessionOptions);
22
- return new Promise((resolve, reject) => {
23
- this.sessionsContainer.run({
24
- session,
25
- database: this,
26
- }, async () => {
27
- try {
28
- await session.withTransaction(async () => {
29
- const result = await callback({
30
- session,
31
- database: this,
32
- });
33
- resolve(result);
34
- session.commitTransaction();
35
- });
36
- }
37
- catch (error) {
38
- reject(error);
39
- }
40
- finally {
41
- session.endSession();
42
- }
43
- });
44
- });
45
- }
46
- /**
47
- * Get active session
48
- */
49
- getActiveSession() {
50
- return this.sessionsContainer.getStore();
51
- }
52
- /**
53
- * Set connection instance
54
- */
55
- setConnection(connection) {
56
- this.connection = connection;
57
- return this;
58
- }
59
- /**
60
- * Set database instance
61
- */
62
- setDatabase(database) {
63
- this.database = database;
64
- return this;
65
- }
66
- /**
67
- * Get database collection instance
68
- */
69
- collection(collection) {
70
- return this.database.collection(collection);
71
- }
72
- /**
73
- * List collection names
74
- */
75
- async listCollectionNames() {
76
- return (await this.database.listCollections().toArray()).map(collection => collection.name);
77
- }
78
- /**
79
- * Drop database
80
- */
81
- async drop() {
82
- return await this.database.dropDatabase();
83
- }
84
- }
85
- const database = new Database();exports.Database=Database;exports.database=database;//# sourceMappingURL=database.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.js","sources":["../src/database.ts"],"sourcesContent":[null],"names":["AsyncLocalStorage"],"mappings":"0DAca,QAAQ,CAAA;AACnB;;AAEG;AACI,IAAA,QAAQ,CAAM;AAErB;;AAEG;AACI,IAAA,UAAU,CAAc;AAExB,IAAA,iBAAiB,GACtB,IAAIA,6BAAiB,EAA8B,CAAC;AAEtD;;AAEG;AACI,IAAA,MAAM,YAAY,CACvB,QAAmE,EACnE,cAAuC,GAAA;AACrC,QAAA,yBAAyB,EAAE;AACzB,YAAA,cAAc,EAAE,SAAS;AACzB,YAAA,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AAC/B,YAAA,YAAY,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE;AAChC,SAAA;AACF,KAAA,EAAA;AAED,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAEpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CACxB;gBACE,OAAO;AACP,gBAAA,QAAQ,EAAE,IAAI;aACf,EACD,YAAW;gBACT,IAAI;AACF,oBAAA,MAAM,OAAO,CAAC,eAAe,CAAC,YAAW;AACvC,wBAAA,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;4BAC5B,OAAO;AACP,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA,CAAC,CAAC;wBAEH,OAAO,CAAC,MAAM,CAAC,CAAC;wBAEhB,OAAO,CAAC,iBAAiB,EAAE,CAAC;AAC9B,qBAAC,CAAC,CAAC;AACJ,iBAAA;AAAC,gBAAA,OAAO,KAAK,EAAE;oBACd,MAAM,CAAC,KAAK,CAAC,CAAC;AACf,iBAAA;AAAS,wBAAA;oBACR,OAAO,CAAC,UAAU,EAAE,CAAC;AACtB,iBAAA;AACH,aAAC,CACF,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED;;AAEG;IACI,gBAAgB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;KAC1C;AACD;;AAEG;AACI,IAAA,aAAa,CAAC,UAAsB,EAAA;AACzC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAE7B,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,WAAW,CAAC,QAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAEzB,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,UAAU,CAAC,UAAkB,EAAA;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;KAC7C;AAED;;AAEG;AACI,IAAA,MAAM,mBAAmB,GAAA;QAC9B,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,CAC1D,UAAU,IAAI,UAAU,CAAC,IAAI,CAC9B,CAAC;KACH;AAED;;AAEG;AACI,IAAA,MAAM,IAAI,GAAA;AACf,QAAA,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;KAC3C;AACF,CAAA;AAEY,MAAA,QAAQ,GAAG,IAAI,QAAQ"}
@@ -1,4 +0,0 @@
1
- export * from "./migrate";
2
- export * from "./migration-office";
3
- export * from "./types";
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migration/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * List all created migrations
3
- */
4
- export declare function listMigrations(): void;
5
- /**
6
- * Drop all migrations
7
- */
8
- export declare function dropMigrations(): Promise<void>;
9
- /**
10
- * Run migrations
11
- */
12
- export declare function migrate(fresh?: boolean): Promise<void>;
13
- //# sourceMappingURL=migrate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/migration/migrate.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAgB,cAAc,SAkC7B;AAED;;GAEG;AACH,wBAAsB,cAAc,kBAsCnC;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,KAAK,UAAQ,iBAuD1C"}
@@ -1,76 +0,0 @@
1
- 'use strict';var copper=require('@mongez/copper'),dayjs=require('dayjs');require('@mongez/events'),require('@warlock.js/logger'),require('mongodb'),require('async_hooks'),require('process');var onceConnected=require('../utils/onceConnected.js');require('console-table-printer');var migrationOffice=require('./migration-office.js'),migrationOfficer=require('./migration-officer.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var dayjs__default=/*#__PURE__*/_interopDefault(dayjs);/**
2
- * List all created migrations
3
- */
4
- function listMigrations() {
5
- onceConnected.onceConnected(async () => {
6
- console.log(copper.colors.blue("→"), copper.colors.cyan("[migration]"), copper.colors.yellow('"Listing all migrations"'));
7
- // get migrations from database
8
- const migrations = await migrationOfficer.migrationOfficer.list();
9
- if (!migrations.length) {
10
- console.log(
11
- // exclamation mark
12
- copper.colors.yellow("⚠"), copper.colors.cyan("[migration]"), "No migrations found");
13
- return;
14
- }
15
- for (const migration of migrations) {
16
- console.log(
17
- // add green check mark
18
- copper.colors.green("✓"), copper.colors.cyan("[migration]"), copper.colors.magentaBright(dayjs__default.default(migration.createdAt).format("YYYY-MM-DD HH:mm:ss")), copper.colors.greenBright(migration.name));
19
- }
20
- });
21
- }
22
- /**
23
- * Drop all migrations
24
- */
25
- async function dropMigrations() {
26
- for (const migration of migrationOffice.migrationOffice.list()) {
27
- const migrationName = migration.name;
28
- const blueprint = migration.blueprint.clone();
29
- console.log(copper.colors.blue("→"), copper.colors.cyan("[migration]"), copper.colors.gray("[dropping]"), copper.colors.red("Dropping"), copper.colors.yellowBright(`${migrationName} migration`));
30
- try {
31
- await migration.down(blueprint);
32
- await blueprint.execute();
33
- await migrationOfficer.migrationOfficer.dropMigration(migrationName);
34
- console.log(copper.colors.green("✓"), copper.colors.cyan("[migration]"), copper.colors.gray("[dropped]"), copper.colors.redBright("Dropped"), copper.colors.greenBright(`${migrationName} migration`));
35
- }
36
- catch (error) {
37
- console.log(copper.colors.red("✗"), copper.colors.cyan("[migration]"), copper.colors.gray("[dropFailed]"), copper.colors.redBright("Failed to drop"), copper.colors.greenBright(`${migrationName} migration`));
38
- console.log(error.message);
39
- }
40
- }
41
- }
42
- /**
43
- * Run migrations
44
- */
45
- async function migrate(fresh = false) {
46
- if (fresh) {
47
- await dropMigrations();
48
- }
49
- const migrations = migrationOffice.migrationOffice.list();
50
- for (const migration of migrations) {
51
- const migrationName = migration.name;
52
- const index = migrations.indexOf(migration);
53
- console.log(
54
- // add blue arrow mark
55
- copper.colors.blue("→"), copper.colors.cyan("[migration] " + (index + 1) + "/" + migrations.length), copper.colors.magenta("[migrating]"), "Creating " + copper.colors.yellowBright(`${migrationName} migration`));
56
- try {
57
- const isMigrated = await migrationOfficer.migrationOfficer.isMigrated(migrationName);
58
- if (isMigrated) {
59
- console.log(
60
- // add red x mark
61
- copper.colors.red("✗"), copper.colors.cyan("[migration]"), copper.colors.gray("[skipped]"), `${copper.colors.redBright(migrationName + " Migration")} has been done before.`);
62
- continue;
63
- }
64
- const blueprint = migration.blueprint.clone();
65
- await migration.up(blueprint);
66
- await blueprint.execute();
67
- await migrationOfficer.migrationOfficer.migrate(migrationName);
68
- console.log(
69
- // add green check mark
70
- copper.colors.green("✓"), copper.colors.cyan("[migration]"), copper.colors.magentaBright("[migrated]"), `${copper.colors.greenBright(migrationName + " Migration")} has been migrated successfully.`);
71
- }
72
- catch (error) {
73
- console.log(error);
74
- }
75
- }
76
- }exports.dropMigrations=dropMigrations;exports.listMigrations=listMigrations;exports.migrate=migrate;//# sourceMappingURL=migrate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate.js","sources":["../../src/migration/migrate.ts"],"sourcesContent":[null],"names":["onceConnected","colors","migrationOfficer","dayjs","migrationOffice"],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { Migration } from "./types";
2
- export declare class MigrationOffice {
3
- /**
4
- * Migrations list
5
- */
6
- protected migrations: Migration[];
7
- /**
8
- * Register a migration
9
- */
10
- register(migration: Migration): this;
11
- /**
12
- * Get all migrations
13
- */
14
- list(): Migration[];
15
- /**
16
- * Get blueprints only
17
- */
18
- blueprints(): import("..").Blueprint[];
19
- }
20
- export declare const migrationOffice: MigrationOffice;
21
- //# sourceMappingURL=migration-office.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration-office.d.ts","sourceRoot":"","sources":["../../src/migration/migration-office.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,eAAe;IAC1B;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,CAAM;IAEvC;;OAEG;IACI,QAAQ,CAAC,SAAS,EAAE,SAAS;IAMpC;;OAEG;IACI,IAAI;IAIX;;OAEG;IACI,UAAU;CAGlB;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -1,26 +0,0 @@
1
- 'use strict';class MigrationOffice {
2
- /**
3
- * Migrations list
4
- */
5
- migrations = [];
6
- /**
7
- * Register a migration
8
- */
9
- register(migration) {
10
- this.migrations.push(migration);
11
- return this;
12
- }
13
- /**
14
- * Get all migrations
15
- */
16
- list() {
17
- return this.migrations;
18
- }
19
- /**
20
- * Get blueprints only
21
- */
22
- blueprints() {
23
- return this.migrations.map(migration => migration.blueprint);
24
- }
25
- }
26
- const migrationOffice = new MigrationOffice();exports.MigrationOffice=MigrationOffice;exports.migrationOffice=migrationOffice;//# sourceMappingURL=migration-office.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration-office.js","sources":["../../src/migration/migration-office.ts"],"sourcesContent":[null],"names":[],"mappings":"mBAEa,eAAe,CAAA;AAC1B;;AAEG;IACO,UAAU,GAAgB,EAAE,CAAC;AAEvC;;AAEG;AACI,IAAA,QAAQ,CAAC,SAAoB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEhC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,IAAI,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED;;AAEG;IACI,UAAU,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;KAC9D;AACF,CAAA;AAEY,MAAA,eAAe,GAAG,IAAI,eAAe"}
@@ -1,33 +0,0 @@
1
- import type { Query } from "../query";
2
- export declare class MigrationOfficer {
3
- /**
4
- * Master Mind Collection name
5
- */
6
- collection: string;
7
- /**
8
- * Connection Instance
9
- */
10
- query: Query;
11
- /**
12
- * Check if the given migration name is already migrated
13
- */
14
- isMigrated(migrationName: string): Promise<boolean>;
15
- /**
16
- * Migrate the given migration name
17
- */
18
- migrate(migrationName: string): Promise<void>;
19
- /**
20
- * Drop all migrations
21
- */
22
- drop(): Promise<void>;
23
- /**
24
- * Drop the given migration name
25
- */
26
- dropMigration(migrationName: string): Promise<void>;
27
- /**
28
- * Get migrations list
29
- */
30
- list(): Promise<any>;
31
- }
32
- export declare const migrationOfficer: MigrationOfficer;
33
- //# sourceMappingURL=migration-officer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration-officer.d.ts","sourceRoot":"","sources":["../../src/migration/migration-officer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtC,qBAAa,gBAAgB;IAC3B;;OAEG;IACI,UAAU,SAAgB;IAEjC;;OAEG;IACI,KAAK,EAAE,KAAK,CAAS;IAE5B;;OAEG;IACU,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQhE;;OAEG;IACU,OAAO,CAAC,aAAa,EAAE,MAAM;IAY1C;;OAEG;IACU,IAAI;IAiBjB;;OAEG;IACU,aAAa,CAAC,aAAa,EAAE,MAAM;IAMhD;;OAEG;IACU,IAAI;CAGlB;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -1,55 +0,0 @@
1
- 'use strict';var copper=require('@mongez/copper'),model=require('../model/model.js'),query=require('../query/query.js');class MigrationOfficer {
2
- /**
3
- * Master Mind Collection name
4
- */
5
- collection = "migrations";
6
- /**
7
- * Connection Instance
8
- */
9
- query = query.query;
10
- /**
11
- * Check if the given migration name is already migrated
12
- */
13
- async isMigrated(migrationName) {
14
- const migrationDocument = await this.query.first(this.collection, {
15
- name: migrationName,
16
- });
17
- return !!migrationDocument;
18
- }
19
- /**
20
- * Migrate the given migration name
21
- */
22
- async migrate(migrationName) {
23
- const collectionName = this.collection;
24
- class Migration extends model.Model {
25
- static collection = collectionName;
26
- }
27
- await Migration.create({
28
- name: migrationName,
29
- createdAt: new Date(),
30
- });
31
- }
32
- /**
33
- * Drop all migrations
34
- */
35
- async drop() {
36
- console.log(copper.colors.blue("→"), copper.colors.cyan("[migration]"), copper.colors.redBright("Dropping"), "all migrations");
37
- await this.query.delete(this.collection);
38
- console.log(copper.colors.green("✓"), copper.colors.cyan("[migration]"), "All migrations has been " + copper.colors.greenBright("dropped successfully."));
39
- }
40
- /**
41
- * Drop the given migration name
42
- */
43
- async dropMigration(migrationName) {
44
- await this.query.delete(this.collection, {
45
- name: migrationName,
46
- });
47
- }
48
- /**
49
- * Get migrations list
50
- */
51
- async list() {
52
- return await this.query.list(this.collection);
53
- }
54
- }
55
- const migrationOfficer = new MigrationOfficer();exports.MigrationOfficer=MigrationOfficer;exports.migrationOfficer=migrationOfficer;//# sourceMappingURL=migration-officer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration-officer.js","sources":["../../src/migration/migration-officer.ts"],"sourcesContent":[null],"names":["query","Model","colors"],"mappings":"8HAKa,gBAAgB,CAAA;AAC3B;;AAEG;IACI,UAAU,GAAG,YAAY,CAAC;AAEjC;;AAEG;IACI,KAAK,GAAUA,WAAK,CAAC;AAE5B;;AAEG;IACI,MAAM,UAAU,CAAC,aAAqB,EAAA;AAC3C,QAAA,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE;AAChE,YAAA,IAAI,EAAE,aAAa;AACpB,SAAA,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,iBAAiB,CAAC;KAC5B;AAED;;AAEG;IACI,MAAM,OAAO,CAAC,aAAqB,EAAA;AACxC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;QACvC,MAAM,SAAU,SAAQC,WAAK,CAAA;AACpB,YAAA,OAAO,UAAU,GAAG,cAAc,CAAC;;QAG5C,MAAM,SAAS,CAAC,MAAM,CAAC;AACrB,YAAA,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,IAAI,IAAI,EAAE;AACtB,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;AACI,IAAA,MAAM,IAAI,GAAA;QACf,OAAO,CAAC,GAAG,CACTC,aAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAChBA,aAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAC1BA,aAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAC5B,gBAAgB,CACjB,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEzC,OAAO,CAAC,GAAG,CACTA,aAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACjBA,aAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAC1B,0BAA0B,GAAGA,aAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CACzE,CAAC;KACH;AAED;;AAEG;IACI,MAAM,aAAa,CAAC,aAAqB,EAAA;QAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;AACvC,YAAA,IAAI,EAAE,aAAa;AACpB,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;AACI,IAAA,MAAM,IAAI,GAAA;QACf,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/C;AACF,CAAA;AAEY,MAAA,gBAAgB,GAAG,IAAI,gBAAgB"}
@@ -1,24 +0,0 @@
1
- import { type Blueprint } from "../blueprint/blueprint";
2
- export type Migration = {
3
- /**
4
- * Migration name
5
- */
6
- name: string;
7
- /**
8
- * Migration Created at time
9
- */
10
- createdAt?: string;
11
- /**
12
- * Migration BluePrint
13
- */
14
- blueprint: Blueprint;
15
- /**
16
- * Run the migration
17
- */
18
- up: (blueprint: Blueprint) => Promise<void> | void;
19
- /**
20
- * Rollback the migration
21
- */
22
- down: (blueprint: Blueprint) => Promise<void> | void;
23
- };
24
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/migration/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG;IACtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnD;;OAEG;IACH,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACtD,CAAC"}
@@ -1,84 +0,0 @@
1
- import type { GenericObject } from "@mongez/reinforcements";
2
- import type { Pipeline } from "../aggregate";
3
- import { Aggregate } from "../aggregate";
4
- import type { Model } from "../model/model";
5
- import type { Joinable, JoinableProxy } from "./joinable";
6
- import type { ChunkCallback, Document, Filter, PaginationListing } from "./types";
7
- export declare class ModelAggregate<T extends Model> extends Aggregate {
8
- protected readonly model: typeof Model;
9
- /**
10
- * Joining list
11
- * Each key will have the model as a value reference to it
12
- */
13
- protected joiningList: GenericObject;
14
- /**
15
- * Constructor
16
- */
17
- constructor(model: typeof Model);
18
- /**
19
- * {@inheritDoc}
20
- */
21
- get<Output = T>(mapData?: (record: any) => any): Promise<Output[]>;
22
- /**
23
- * Find or create
24
- */
25
- findOrCreate<Data extends Document = Document>(data: Data): Promise<T>;
26
- /**
27
- * Find and update the given data
28
- * Please note that the filter should be done via where() methods
29
- * This method returns the updated records
30
- * If you need just to update the records directly in the database, then use `update` method directly.
31
- */
32
- findAndUpdate<Data extends Document = Document>(data: Data): Promise<T[]>;
33
- /**
34
- * {@inheritdoc}
35
- */
36
- chunk<Output = T>(limit: number, callback: ChunkCallback<Output>, mapData?: (data: any) => any): Promise<void>;
37
- /**
38
- * {@inheritDoc}
39
- */
40
- first(mapData?: (data: any) => any): Promise<T>;
41
- /**
42
- * {@inheritDoc}
43
- */
44
- last(filters?: Filter): Promise<T>;
45
- /**
46
- * {@inheritDoc}
47
- */
48
- paginate<G = T>(page?: number, limit?: number): Promise<PaginationListing<G>>;
49
- /**
50
- * Delete records
51
- */
52
- delete(): Promise<number>;
53
- /**
54
- * Perform a join
55
- */
56
- joining(joining: string | JoinableProxy, options?: {
57
- where?: GenericObject;
58
- select?: string[];
59
- pipeline: (GenericObject | Pipeline)[];
60
- as?: string;
61
- } | ((query: JoinableProxy) => any)): this;
62
- /**
63
- * Get joinable instance for current model
64
- */
65
- protected getJoinable(joinable: string | Joinable): JoinableProxy;
66
- /**
67
- * Perform a join and count the records of the joined collection
68
- */
69
- countJoining(joining: string | JoinableProxy, options?: {
70
- where?: GenericObject;
71
- select?: string[];
72
- pipeline: (GenericObject | Pipeline)[];
73
- as?: string;
74
- }): this;
75
- /**
76
- * Join the given alias
77
- */
78
- with(alias: string, ...moreParams: any[]): this;
79
- /**
80
- * Clone the aggregate model class
81
- */
82
- clone(): this;
83
- }
84
- //# sourceMappingURL=ModelAggregate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelAggregate.d.ts","sourceRoot":"","sources":["../../src/model/ModelAggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAQ,SAAS,EAAkB,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,MAAM,EACN,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,qBAAa,cAAc,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,SAAS;IAUzC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,KAAK;IATzD;;;OAGG;IACH,SAAS,CAAC,WAAW,EAAE,aAAa,CAAM;IAE1C;;OAEG;gBACmC,KAAK,EAAE,OAAO,KAAK;IAKzD;;OAEG;IACU,GAAG,CAAC,MAAM,GAAG,CAAC,EACzB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC;IAmBpB;;OAEG;IACU,YAAY,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,EACxD,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,CAAC,CAAC;IAIb;;;;;OAKG;IACU,aAAa,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,EACzD,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,CAAC,EAAE,CAAC;IAQf;;OAEG;IACU,KAAK,CAAC,MAAM,GAAG,CAAC,EAC3B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,EAC/B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG;IAK9B;;OAEG;IACU,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG;IAI/C;;OAEG;IACU,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM;IAIlC;;OAEG;IACU,QAAQ,CAAC,CAAC,GAAG,CAAC,EACzB,IAAI,SAAI,EACR,KAAK,SAAqB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAIhC;;OAEG;IACU,MAAM;IAUnB;;OAEG;IACI,OAAO,CACZ,OAAO,EAAE,MAAM,GAAG,aAAa,EAC/B,OAAO,CAAC,EACJ;QACE,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,CAAC,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAC;QACvC,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,GACD,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC;IA+BrC;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAQjD;;OAEG;IACI,YAAY,CACjB,OAAO,EAAE,MAAM,GAAG,aAAa,EAC/B,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,CAAC,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAC;QACvC,EAAE,CAAC,EAAE,MAAM,CAAC;KACb;IAaH;;OAEG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE;IAqC/C;;OAEG;IACI,KAAK;CAOb"}
@@ -1,164 +0,0 @@
1
- 'use strict';var reinforcements=require('@mongez/reinforcements'),expressions=require('../aggregate/expressions.js');require('@mongez/supportive-is'),require('@mongez/time-wizard');var SelectPipeline=require('../aggregate/SelectPipeline.js'),aggregate=require('../aggregate/aggregate.js'),joinableProxy=require('../utils/joinable-proxy.js');class ModelAggregate extends aggregate.Aggregate {
2
- model;
3
- /**
4
- * Joining list
5
- * Each key will have the model as a value reference to it
6
- */
7
- joiningList = {};
8
- /**
9
- * Constructor
10
- */
11
- constructor(model) {
12
- super(model.collection);
13
- this.model = model;
14
- this.query = model.query;
15
- }
16
- /**
17
- * {@inheritDoc}
18
- */
19
- async get(mapData) {
20
- if (!mapData) {
21
- mapData = (record) => {
22
- const model = new this.model(record);
23
- for (const relation in this.joiningList) {
24
- const data = model.get(relation);
25
- if (!data)
26
- continue;
27
- model.set(relation, this.joiningList[relation](data));
28
- }
29
- return model;
30
- };
31
- }
32
- return (await super.get(mapData));
33
- }
34
- /**
35
- * Find or create
36
- */
37
- async findOrCreate(data) {
38
- return (await this.first()) || (await this.model.create(data));
39
- }
40
- /**
41
- * Find and update the given data
42
- * Please note that the filter should be done via where() methods
43
- * This method returns the updated records
44
- * If you need just to update the records directly in the database, then use `update` method directly.
45
- */
46
- async findAndUpdate(data) {
47
- const records = await this.get();
48
- await Promise.all(records.map(async (model) => await model.save(data)));
49
- return records;
50
- }
51
- /**
52
- * {@inheritdoc}
53
- */
54
- async chunk(limit, callback, mapData) {
55
- return super.chunk(limit, callback, mapData);
56
- }
57
- /**
58
- * {@inheritDoc}
59
- */
60
- async first(mapData) {
61
- return (await super.first(mapData));
62
- }
63
- /**
64
- * {@inheritDoc}
65
- */
66
- async last(filters) {
67
- return (await super.last(filters));
68
- }
69
- /**
70
- * {@inheritDoc}
71
- */
72
- async paginate(page = 1, limit = this.model.perPage) {
73
- return await super.paginate(page, limit);
74
- }
75
- /**
76
- * Delete records
77
- */
78
- async delete() {
79
- const records = await this.get();
80
- records.forEach(async (model) => {
81
- await model.destroy();
82
- });
83
- return records.length;
84
- }
85
- /**
86
- * Perform a join
87
- */
88
- joining(joining, options) {
89
- joining = this.getJoinable(joining);
90
- if (typeof options === "function") {
91
- options(joining);
92
- }
93
- else {
94
- if (options?.where) {
95
- joining.where(options.where);
96
- }
97
- if (options?.select) {
98
- joining.select(...options.select);
99
- }
100
- if (options?.as) {
101
- joining.as(options.as);
102
- }
103
- if (options?.pipeline) {
104
- joining.addPipelines(options.pipeline);
105
- }
106
- }
107
- const data = joining.parse();
108
- this.joiningList[data.as] = joining.getReturnAs();
109
- return this.lookup(data);
110
- }
111
- /**
112
- * Get joinable instance for current model
113
- */
114
- getJoinable(joinable) {
115
- if (typeof joinable === "string") {
116
- joinable = this.model.joinings[joinable];
117
- }
118
- return joinableProxy.joinableProxy(joinable.clone());
119
- }
120
- /**
121
- * Perform a join and count the records of the joined collection
122
- */
123
- countJoining(joining, options) {
124
- joining = this.getJoinable(joining);
125
- const as = joining.get("as");
126
- const returnAs = options?.as || as + "Count";
127
- return this.joining(joining, options).addField(returnAs, {
128
- $size: expressions.$agg.columnName(as),
129
- });
130
- }
131
- /**
132
- * Join the given alias
133
- */
134
- with(alias, ...moreParams) {
135
- const method = `with${reinforcements.toStudlyCase(alias)}`;
136
- const relation = this.model[method];
137
- if (!relation) {
138
- throw new Error(`Relation ${alias} not found`);
139
- }
140
- const { model, localField, as, foreignField, single = false, select: selectColumns, pipeline = [], } = relation.call(this.model, ...moreParams);
141
- if (selectColumns) {
142
- pipeline.push(SelectPipeline.selectPipeline(selectColumns));
143
- }
144
- this.lookup({
145
- as,
146
- single,
147
- from: model.collection,
148
- // related to from field
149
- foreignField: foreignField || `${as}.id`,
150
- // related to current model
151
- localField: localField || "id",
152
- pipeline,
153
- });
154
- return this;
155
- }
156
- /**
157
- * Clone the aggregate model class
158
- */
159
- clone() {
160
- const aggregate = new ModelAggregate(this.model);
161
- aggregate.pipelines = this.pipelines.slice();
162
- return aggregate;
163
- }
164
- }exports.ModelAggregate=ModelAggregate;//# sourceMappingURL=ModelAggregate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelAggregate.js","sources":["../../src/model/ModelAggregate.ts"],"sourcesContent":[null],"names":["Aggregate","joinableProxy","$agg","toStudlyCase","selectPipeline"],"mappings":"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"}