@rapidrest/service-core 1.0.0-beta.5 → 1.0.0-rc.0

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 (180) hide show
  1. package/dist/lib/Server.js +20 -14
  2. package/dist/lib/Server.js.map +1 -1
  3. package/dist/lib/database/MongoRepository.js +22 -24
  4. package/dist/lib/database/MongoRepository.js.map +1 -1
  5. package/dist/lib/database/MongoSchemaSync.js +65 -20
  6. package/dist/lib/database/MongoSchemaSync.js.map +1 -1
  7. package/dist/lib/database/NamingUtils.js +4 -4
  8. package/dist/lib/database/NamingUtils.js.map +1 -1
  9. package/dist/lib/decorators/PersistenceDecorators.js +17 -17
  10. package/dist/lib/decorators/PersistenceDecorators.js.map +1 -1
  11. package/dist/lib/models/BaseEntity.js +1 -1
  12. package/dist/lib/models/BaseEntity.js.map +1 -1
  13. package/dist/lib/models/BaseMongoEntity.js +10 -3
  14. package/dist/lib/models/BaseMongoEntity.js.map +1 -1
  15. package/dist/lib/models/ModelUtils.js +31 -34
  16. package/dist/lib/models/ModelUtils.js.map +1 -1
  17. package/dist/lib/models/RecoverableBaseMongoEntity.js +11 -3
  18. package/dist/lib/models/RecoverableBaseMongoEntity.js.map +1 -1
  19. package/dist/lib/models/RepoUtils.js +54 -60
  20. package/dist/lib/models/RepoUtils.js.map +1 -1
  21. package/dist/lib/models/SimpleEntity.js +1 -1
  22. package/dist/lib/models/SimpleEntity.js.map +1 -1
  23. package/dist/lib/routes/ModelRoute.js +6 -15
  24. package/dist/lib/routes/ModelRoute.js.map +1 -1
  25. package/dist/lib/routes/RouteUtils.js +14 -6
  26. package/dist/lib/routes/RouteUtils.js.map +1 -1
  27. package/dist/lib/security/ACLUtils.js +43 -15
  28. package/dist/lib/security/ACLUtils.js.map +1 -1
  29. package/dist/types/database/MongoRepository.d.ts +17 -11
  30. package/dist/types/database/MongoSchemaSync.d.ts +22 -3
  31. package/dist/types/database/NamingUtils.d.ts +1 -1
  32. package/dist/types/decorators/PersistenceDecorators.d.ts +29 -3
  33. package/dist/types/models/ModelUtils.d.ts +3 -6
  34. package/dist/types/models/RepoUtils.d.ts +1 -7
  35. package/dist/types/routes/ModelRoute.d.ts +0 -4
  36. package/dist/types/security/ACLUtils.d.ts +3 -0
  37. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/MongoRepository.md +1 -1
  38. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/RedisConnection.md +1 -1
  39. package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/Repository.md +1 -1
  40. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Default.md +1 -1
  41. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Description.md +1 -1
  42. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Document.md +1 -1
  43. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Example.md +1 -1
  44. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Format.md +1 -1
  45. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Returns.md +1 -1
  46. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Summary.md +1 -1
  47. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Tags.md +1 -1
  48. package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/TypeInfo.md +1 -1
  49. package/docs/reference/@rapidrest/namespaces/DocDecorators/interfaces/DocumentsData.md +7 -7
  50. package/docs/reference/@rapidrest/namespaces/EventDecorators/functions/EventListener.md +1 -1
  51. package/docs/reference/@rapidrest/namespaces/EventDecorators/functions/OnEvent.md +1 -1
  52. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Cache.md +1 -1
  53. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/ChildEntity.md +2 -2
  54. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/DataStore.md +1 -1
  55. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Identifier.md +1 -1
  56. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Protect.md +5 -5
  57. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Reference.md +1 -1
  58. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Shard.md +1 -1
  59. package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/TrackChanges.md +2 -2
  60. package/docs/reference/@rapidrest/namespaces/ModelDecorators/interfaces/PendingTypeOrmColumn.md +7 -7
  61. package/docs/reference/@rapidrest/namespaces/ModelDecorators/variables/pendingTypeOrmColumns.md +2 -2
  62. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/README.md +2 -0
  63. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Column.md +1 -1
  64. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Entity.md +5 -6
  65. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Index.md +3 -3
  66. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/PrimaryColumn.md +1 -1
  67. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Unique.md +3 -3
  68. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getColumnMetadata.md +1 -1
  69. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getEntityName.md +1 -1
  70. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getIndexMetadata.md +1 -1
  71. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/CollationOptions.md +79 -0
  72. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/ColumnInfo.md +4 -4
  73. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/ColumnOptions.md +5 -5
  74. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/EntityOptions.md +32 -0
  75. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/IndexInfo.md +4 -4
  76. package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/IndexOptions.md +15 -5
  77. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/After.md +1 -1
  78. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Auth.md +1 -1
  79. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/AuthResult.md +1 -1
  80. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Before.md +1 -1
  81. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/ContentType.md +1 -1
  82. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Delete.md +1 -1
  83. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Get.md +1 -1
  84. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Head.md +1 -1
  85. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Header.md +1 -1
  86. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Method.md +1 -1
  87. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Model.md +1 -1
  88. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Options.md +1 -1
  89. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Param.md +1 -1
  90. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Patch.md +1 -1
  91. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Post.md +1 -1
  92. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Protect.md +1 -1
  93. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Put.md +1 -1
  94. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Query.md +1 -1
  95. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Request.md +1 -1
  96. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/RequiresRole.md +1 -1
  97. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Response.md +1 -1
  98. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Route.md +1 -1
  99. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Socket.md +1 -1
  100. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/User.md +1 -1
  101. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Validate.md +1 -1
  102. package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/WebSocket.md +1 -1
  103. package/docs/reference/classes/ACLUtils.md +17 -9
  104. package/docs/reference/classes/AdminRoute.md +3 -3
  105. package/docs/reference/classes/AuthMiddleware.md +8 -8
  106. package/docs/reference/classes/BackgroundService.md +8 -8
  107. package/docs/reference/classes/BackgroundServiceManager.md +7 -7
  108. package/docs/reference/classes/BaseEntity.md +6 -6
  109. package/docs/reference/classes/BaseMongoEntity.md +7 -7
  110. package/docs/reference/classes/BasicStrategy.md +5 -5
  111. package/docs/reference/classes/BasicStrategyOptions.md +7 -7
  112. package/docs/reference/classes/BulkError.md +3 -3
  113. package/docs/reference/classes/ConnectionManager.md +4 -4
  114. package/docs/reference/classes/EventListenerManager.md +5 -5
  115. package/docs/reference/classes/HttpRouter.md +16 -16
  116. package/docs/reference/classes/JWTStrategy.md +5 -5
  117. package/docs/reference/classes/JWTStrategyOptions.md +8 -8
  118. package/docs/reference/classes/MetricsRoute.md +2 -2
  119. package/docs/reference/classes/ModelRoute.md +46 -46
  120. package/docs/reference/classes/ModelUtils.md +13 -31
  121. package/docs/reference/classes/MongoConnection.md +12 -12
  122. package/docs/reference/classes/MongoRepository.md +73 -37
  123. package/docs/reference/classes/MongoSchemaSync.md +33 -3
  124. package/docs/reference/classes/NetUtils.md +3 -3
  125. package/docs/reference/classes/NotificationUtils.md +3 -3
  126. package/docs/reference/classes/ObjectFactory.md +3 -3
  127. package/docs/reference/classes/OpenAPIRoute.md +5 -5
  128. package/docs/reference/classes/OpenApiSpec.md +45 -45
  129. package/docs/reference/classes/RecoverableBaseEntity.md +7 -7
  130. package/docs/reference/classes/RecoverableBaseMongoEntity.md +8 -8
  131. package/docs/reference/classes/RedisTransport.md +4 -4
  132. package/docs/reference/classes/RepoUtils.md +29 -33
  133. package/docs/reference/classes/RouteUtils.md +7 -7
  134. package/docs/reference/classes/Server.md +26 -26
  135. package/docs/reference/classes/SimpleEntity.md +3 -3
  136. package/docs/reference/classes/SimpleMongoEntity.md +4 -4
  137. package/docs/reference/classes/StatusExtraData.md +4 -4
  138. package/docs/reference/classes/StatusRoute.md +1 -1
  139. package/docs/reference/classes/UWSRequest.md +16 -16
  140. package/docs/reference/classes/UWSResponse.md +13 -13
  141. package/docs/reference/classes/UWSWebSocketShim.md +5 -5
  142. package/docs/reference/enumerations/ACLAction.md +7 -7
  143. package/docs/reference/enumerations/ApiErrorMessages.md +15 -15
  144. package/docs/reference/enumerations/ApiErrors.md +15 -15
  145. package/docs/reference/functions/createWebSocketStream.md +1 -1
  146. package/docs/reference/functions/isSqlDataSource.md +1 -1
  147. package/docs/reference/functions/readBody.md +1 -1
  148. package/docs/reference/functions/resolveCollectionName.md +2 -2
  149. package/docs/reference/functions/runChain.md +1 -1
  150. package/docs/reference/functions/snakeCase.md +1 -1
  151. package/docs/reference/interfaces/ACLRecord.md +8 -8
  152. package/docs/reference/interfaces/AccessControlList.md +5 -5
  153. package/docs/reference/interfaces/AuthResult.md +5 -5
  154. package/docs/reference/interfaces/AuthStrategy.md +4 -4
  155. package/docs/reference/interfaces/CreateRequestOptions.md +9 -9
  156. package/docs/reference/interfaces/DeleteRequestOptions.md +10 -20
  157. package/docs/reference/interfaces/FindRequestOptions.md +10 -10
  158. package/docs/reference/interfaces/HttpRequest.md +15 -15
  159. package/docs/reference/interfaces/HttpResponse.md +11 -11
  160. package/docs/reference/interfaces/JWTAuthResult.md +6 -6
  161. package/docs/reference/interfaces/RepoCreateOptions.md +7 -7
  162. package/docs/reference/interfaces/RepoDeleteOptions.md +8 -18
  163. package/docs/reference/interfaces/RepoFindOptions.md +10 -20
  164. package/docs/reference/interfaces/RepoOperationOptions.md +6 -6
  165. package/docs/reference/interfaces/RepoUpdateOptions.md +7 -17
  166. package/docs/reference/interfaces/RequestOptions.md +8 -8
  167. package/docs/reference/interfaces/RequestWS.md +17 -17
  168. package/docs/reference/interfaces/TruncateRequestOptions.md +12 -26
  169. package/docs/reference/interfaces/UpdateRequestOptions.md +10 -20
  170. package/docs/reference/type-aliases/ErrorHandler.md +1 -1
  171. package/docs/reference/type-aliases/NextFunction.md +1 -1
  172. package/docs/reference/type-aliases/OneOrMany.md +1 -1
  173. package/docs/reference/type-aliases/OneOrNull.md +1 -1
  174. package/docs/reference/type-aliases/PartialBaseEntity.md +1 -1
  175. package/docs/reference/type-aliases/PartialSimpleEntity.md +1 -1
  176. package/docs/reference/type-aliases/RequestHandler.md +1 -1
  177. package/docs/reference/type-aliases/UpdateObject.md +1 -1
  178. package/docs/reference/type-aliases/WsUpgradeAuth.md +1 -1
  179. package/docs/reference/type-aliases/WsUpgradeAuthResult.md +5 -5
  180. package/package.json +1 -1
@@ -344,20 +344,26 @@ export class Server {
344
344
  allRoutes.push(admin);
345
345
  await this.routeUtils.registerRoute(this.app, admin);
346
346
  // Register the ACLs route if configured
347
- const aclConn = this.connectionManager?.connections.get("acl");
348
- if (aclConn instanceof MongoConnection) {
349
- const aclRoute = await this.objectFactory.newInstance(ACLRouteMongo, {
350
- name: "default",
351
- });
352
- await this.routeUtils.registerRoute(this.app, aclRoute);
353
- allRoutes.push(aclRoute);
354
- }
355
- else if (isSqlDataSource(aclConn)) {
356
- const aclRoute = await this.objectFactory.newInstance(ACLRouteSQL, {
357
- name: "default",
358
- });
359
- await this.routeUtils.registerRoute(this.app, aclRoute);
360
- allRoutes.push(aclRoute);
347
+ const rbacEnabled = this.config.get("rbac:enabled");
348
+ if (rbacEnabled) {
349
+ const aclConn = this.connectionManager?.connections.get("acl");
350
+ if (aclConn instanceof MongoConnection) {
351
+ const aclRoute = await this.objectFactory.newInstance(ACLRouteMongo, {
352
+ name: "default",
353
+ });
354
+ await this.routeUtils.registerRoute(this.app, aclRoute);
355
+ allRoutes.push(aclRoute);
356
+ }
357
+ else if (isSqlDataSource(aclConn)) {
358
+ const aclRoute = await this.objectFactory.newInstance(ACLRouteSQL, {
359
+ name: "default",
360
+ });
361
+ await this.routeUtils.registerRoute(this.app, aclRoute);
362
+ allRoutes.push(aclRoute);
363
+ }
364
+ else {
365
+ throw new Error("Failed to register ACL routes. Did you forget to configur the ACL datastore?");
366
+ }
361
367
  }
362
368
  // Register the OpenAPI route if a spec has been provided
363
369
  if (this.apiSpec) {
@@ -1 +1 @@
1
- {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/Server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/Server.ts"],"names":[],"mappings":"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"}
@@ -30,39 +30,34 @@ export class MongoRepository {
30
30
  * collection does not exist.
31
31
  */
32
32
  async clear() {
33
- try {
34
- await this.collection.drop();
35
- }
36
- catch (err) {
37
- // Ignore "ns not found" errors for collections that don't exist yet
38
- if (err.codeName !== "NamespaceNotFound" && !String(err.message).includes("ns not found")) {
39
- throw err;
40
- }
41
- }
33
+ await this.collection.deleteMany({});
42
34
  }
43
35
  /**
44
36
  * Returns the number of documents matching the given filter.
45
37
  *
46
- * @param filter The query filter to match documents against.
38
+ * @param filter - The filter for the count
39
+ * @param options - Optional settings for the command
47
40
  */
48
- async count(filter) {
49
- return this.collection.countDocuments(filter ?? {});
41
+ count(filter, options) {
42
+ return this.collection.countDocuments(filter ?? {}, options);
50
43
  }
51
44
  /**
52
45
  * Deletes all documents matching the given filter.
53
46
  *
54
47
  * @param filter The query filter to match documents against.
48
+ * @param options - Optional settings for the command
55
49
  */
56
- async deleteMany(filter) {
57
- return this.collection.deleteMany(filter);
50
+ deleteMany(filter, options) {
51
+ return this.collection.deleteMany(filter, options);
58
52
  }
59
53
  /**
60
54
  * Deletes the first document matching the given filter.
61
55
  *
62
56
  * @param filter The query filter to match documents against.
57
+ * @param options - Optional settings for the command
63
58
  */
64
- async deleteOne(filter) {
65
- return this.collection.deleteOne(filter);
59
+ deleteOne(filter, options) {
60
+ return this.collection.deleteOne(filter, options);
66
61
  }
67
62
  /**
68
63
  * Returns the list of distinct values of the given field for all documents matching the given filter.
@@ -70,23 +65,24 @@ export class MongoRepository {
70
65
  * @param field The name of the document field to return distinct values of.
71
66
  * @param filter The query filter to match documents against.
72
67
  */
73
- async distinct(field, filter) {
68
+ distinct(field, filter) {
74
69
  return this.collection.distinct(field, filter ?? {});
75
70
  }
76
71
  /**
77
72
  * Returns all documents matching the given filter.
78
73
  *
79
74
  * @param filter The query filter to match documents against.
75
+ * @param options - Optional settings for the command
80
76
  */
81
- async find(filter) {
82
- return this.collection.find(filter ?? {}).toArray();
77
+ find(filter, options) {
78
+ return this.collection.find(filter ?? {}, options);
83
79
  }
84
80
  /**
85
81
  * Returns the first document matching the given filter.
86
82
  *
87
83
  * @param filter The query filter to match documents against.
88
84
  */
89
- async findOne(filter) {
85
+ findOne(filter) {
90
86
  return this.collection.findOne(filter);
91
87
  }
92
88
  /**
@@ -119,18 +115,20 @@ export class MongoRepository {
119
115
  *
120
116
  * @param filter The query filter to match documents against.
121
117
  * @param update The update operations (e.g. `$set`) to apply.
118
+ * @param options - Optional settings for the command
122
119
  */
123
- async updateMany(filter, update) {
124
- return this.collection.updateMany(filter, update);
120
+ updateMany(filter, update, options) {
121
+ return this.collection.updateMany(filter, update, options);
125
122
  }
126
123
  /**
127
124
  * Updates the first document matching the given filter with the provided update operations.
128
125
  *
129
126
  * @param filter The query filter to match documents against.
130
127
  * @param update The update operations (e.g. `$set`) to apply.
128
+ * @param options - Optional settings for the command
131
129
  */
132
- async updateOne(filter, update) {
133
- return this.collection.updateOne(filter, update);
130
+ updateOne(filter, update, options) {
131
+ return this.collection.updateOne(filter, update, options);
134
132
  }
135
133
  }
136
134
  //# sourceMappingURL=MongoRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MongoRepository.js","sourceRoot":"","sources":["../../../src/database/MongoRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoRepository.js","sourceRoot":"","sources":["../../../src/database/MongoRepository.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { getIndexMetadata } from "../decorators/PersistenceDecorators.js";
2
- import { resolveCollectionName } from "./NamingUtils.js";
2
+ import { snakeCase } from "./NamingUtils.js";
3
3
  /**
4
4
  * Performs structure synchronization of MongoDB collections based on the persistence metadata of model classes.
5
5
  *
@@ -18,6 +18,47 @@ export class MongoSchemaSync {
18
18
  this.db = db;
19
19
  this.logger = logger;
20
20
  }
21
+ /**
22
+ * Resolves the entity info of the database collection (or table) that records of the given model class are stored in.
23
+ *
24
+ * The entity info is resolved using the following rules:
25
+ * 1. The nearest class in the inheritance chain (starting with `clazz` itself) that specifies an explicit
26
+ * entity info via the `@Entity(info)` decorator.
27
+ * 2. Otherwise, the most ancestral class in the inheritance chain that declares its own `@DataStore` binding.
28
+ * This ensures that `@ChildEntity` subclasses are stored in the same collection as their parent entity
29
+ * (single collection inheritance).
30
+ * 3. Otherwise, a new info object containing the snake_case form of the class name.
31
+ *
32
+ * @param clazz The model class to resolve the collection name for.
33
+ */
34
+ resolveCollectionInfo(clazz) {
35
+ // Rule 1: nearest explicit entity options
36
+ for (let c = clazz; c && c !== Function.prototype; c = Object.getPrototypeOf(c)) {
37
+ const entityOptions = Reflect.getOwnMetadata("rrst:entityOptions", c);
38
+ if (entityOptions) {
39
+ const info = {
40
+ name: entityOptions.name,
41
+ classes: [],
42
+ };
43
+ if (entityOptions.collation) {
44
+ info.options = { collation: entityOptions.collation };
45
+ }
46
+ return info;
47
+ }
48
+ }
49
+ // Rule 2: most ancestral class owning a datastore binding
50
+ let owner = undefined;
51
+ for (let c = clazz; c && c !== Function.prototype; c = Object.getPrototypeOf(c)) {
52
+ if (Reflect.getOwnMetadata("rrst:datastore", c)) {
53
+ owner = c;
54
+ }
55
+ }
56
+ // Rule 3: fall back to the class itself
57
+ return {
58
+ name: snakeCase((owner ?? clazz).name),
59
+ classes: [],
60
+ };
61
+ }
21
62
  /**
22
63
  * Synchronizes the structure of all collections associated with the given model classes.
23
64
  *
@@ -28,28 +69,26 @@ export class MongoSchemaSync {
28
69
  // collection (e.g. @ChildEntity subclasses) contribute their indexes to a single specification.
29
70
  const collections = new Map();
30
71
  for (const clazz of entities) {
31
- const name = resolveCollectionName(clazz);
32
- const group = collections.get(name) ?? [];
33
- group.push(clazz);
34
- collections.set(name, group);
72
+ const info = this.resolveCollectionInfo(clazz);
73
+ info.classes.push(clazz);
74
+ collections.set(info.name, info);
35
75
  }
36
- for (const [name, classes] of collections.entries()) {
37
- await this.syncCollection(name, classes);
76
+ for (const [name, info] of collections.entries()) {
77
+ await this.syncCollection(info);
38
78
  }
39
79
  }
40
80
  /**
41
81
  * Synchronizes the structure of a single collection.
42
82
  *
43
- * @param name The name of the collection to synchronize.
44
- * @param classes The list of model classes whose records are stored in the collection.
83
+ * @param info The information about the collection to synchronize.
45
84
  */
46
- async syncCollection(name, classes) {
85
+ async syncCollection(info) {
47
86
  // Create the collection if it doesn't already exist
48
- const existing = await this.db.listCollections({ name }, { nameOnly: true }).toArray();
87
+ const existing = await this.db.listCollections({ name: info.name }, { nameOnly: true }).toArray();
49
88
  if (existing.length === 0) {
50
89
  try {
51
- await this.db.createCollection(name);
52
- this.logger?.info(`Created collection: ${name}`);
90
+ await this.db.createCollection(info.name, info.options);
91
+ this.logger?.debug(`Created collection: ${info.name}`);
53
92
  }
54
93
  catch (err) {
55
94
  // Tolerate concurrent creation races
@@ -60,14 +99,14 @@ export class MongoSchemaSync {
60
99
  }
61
100
  // Build the merged set of desired indexes from all classes stored in this collection
62
101
  const desired = new Map();
63
- for (const clazz of classes) {
102
+ for (const clazz of info.classes) {
64
103
  for (const index of getIndexMetadata(clazz)) {
65
104
  const spec = this.toDesiredIndex(index);
66
105
  desired.set(JSON.stringify(spec.key), spec);
67
106
  }
68
107
  }
69
108
  // Retrieve the collection's current indexes
70
- const collection = this.db.collection(name);
109
+ const collection = this.db.collection(info.name);
71
110
  let currentIndexes = [];
72
111
  try {
73
112
  currentIndexes = await collection.listIndexes().toArray();
@@ -85,25 +124,30 @@ export class MongoSchemaSync {
85
124
  continue;
86
125
  }
87
126
  // The index definition has changed. Drop and re-create it.
88
- this.logger?.info(`Re-creating index ${current.name} on collection ${name} due to changed definition.`);
127
+ this.logger?.debug(`Re-creating index ${current.name} on collection ${info.name} due to changed definition.`);
89
128
  await collection.dropIndex(current.name);
90
129
  }
91
130
  else {
92
131
  // If an unrelated index already uses the desired name it must be dropped first to avoid a conflict
93
132
  const conflict = currentIndexes.find((idx) => idx.name === spec.name);
94
133
  if (conflict) {
95
- this.logger?.info(`Dropping index ${spec.name} on collection ${name} due to changed key.`);
134
+ this.logger?.debug(`Dropping index ${spec.name} on collection ${info.name} due to changed key.`);
96
135
  await collection.dropIndex(spec.name);
97
136
  }
98
- this.logger?.info(`Creating index ${spec.name} on collection ${name}.`);
137
+ this.logger?.debug(`Creating index ${spec.name} on collection ${info.name}.`);
99
138
  }
100
- await collection.createIndex(spec.key, {
139
+ const options = {
101
140
  name: spec.name,
102
141
  unique: spec.unique,
103
142
  sparse: spec.sparse,
104
143
  ...(spec.background !== undefined ? { background: spec.background } : {}),
105
144
  ...(spec.expireAfterSeconds !== undefined ? { expireAfterSeconds: spec.expireAfterSeconds } : {}),
106
- });
145
+ };
146
+ // HAX For some reason MongoDB chokes if you pass in `collation` with a value of `undefined`
147
+ if (spec.collation) {
148
+ options.collation = spec.collation;
149
+ }
150
+ await collection.createIndex(spec.key, options);
107
151
  }
108
152
  }
109
153
  /**
@@ -121,6 +165,7 @@ export class MongoSchemaSync {
121
165
  sparse: index.options.sparse ?? false,
122
166
  background: index.options.background,
123
167
  expireAfterSeconds: index.options.expireAfterSeconds,
168
+ collation: index.options.collation,
124
169
  };
125
170
  }
126
171
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MongoSchemaSync.js","sourceRoot":"","sources":["../../../src/database/MongoSchemaSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoSchemaSync.js","sourceRoot":"","sources":["../../../src/database/MongoSchemaSync.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export function snakeCase(str) {
23
23
  *
24
24
  * The name is resolved using the following rules:
25
25
  * 1. The nearest class in the inheritance chain (starting with `clazz` itself) that specifies an explicit
26
- * entity name via the `@Entity(name)` decorator.
26
+ * entity name via the `@Entity(options)` decorator.
27
27
  * 2. Otherwise, the most ancestral class in the inheritance chain that declares its own `@DataStore` binding.
28
28
  * This ensures that `@ChildEntity` subclasses are stored in the same collection as their parent entity
29
29
  * (single collection inheritance).
@@ -34,9 +34,9 @@ export function snakeCase(str) {
34
34
  export function resolveCollectionName(clazz) {
35
35
  // Rule 1: nearest explicit entity name
36
36
  for (let c = clazz; c && c !== Function.prototype; c = Object.getPrototypeOf(c)) {
37
- const entityName = Reflect.getOwnMetadata("rrst:entityName", c);
38
- if (entityName) {
39
- return entityName;
37
+ const options = Reflect.getOwnMetadata("rrst:entityOptions", c);
38
+ if (options && options.name) {
39
+ return options.name;
40
40
  }
41
41
  }
42
42
  // Rule 2: most ancestral class owning a datastore binding
@@ -1 +1 @@
1
- {"version":3,"file":"NamingUtils.js","sourceRoot":"","sources":["../../../src/database/NamingUtils.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,kBAAkB,CAAC;AAE1B;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACjC,OAAO,CACH,GAAG;QACC,cAAc;SACb,OAAO,CAAC,wBAAwB,EAAE,SAAS,CAAC;QAC7C,YAAY;SACX,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,WAAW,EAAE,CACrB,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAU;IAC5C,uCAAuC;IACvC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,UAAU,GAAuB,OAAO,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACpF,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,UAAU,CAAC;QACtB,CAAC;IACL,CAAC;IAED,0DAA0D;IAC1D,IAAI,KAAK,GAAQ,SAAS,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,IAAI,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9C,KAAK,GAAG,CAAC,CAAC;QACd,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,OAAO,SAAS,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"NamingUtils.js","sourceRoot":"","sources":["../../../src/database/NamingUtils.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,kBAAkB,CAAC;AAG1B;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACjC,OAAO,CACH,GAAG;QACC,cAAc;SACb,OAAO,CAAC,wBAAwB,EAAE,SAAS,CAAC;QAC7C,YAAY;SACX,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,WAAW,EAAE,CACrB,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAU;IAC5C,uCAAuC;IACvC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,OAAO,GAA8B,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC3F,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,IAAI,CAAC;QACxB,CAAC;IACL,CAAC;IAED,0DAA0D;IAC1D,IAAI,KAAK,GAAQ,SAAS,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,IAAI,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9C,KAAK,GAAG,CAAC,CAAC;QACd,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,OAAO,SAAS,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
@@ -102,18 +102,14 @@ export function Unique(nameOrFields, maybeFields) {
102
102
  /**
103
103
  * Indicates that the class describes an entity that is persisted to a datastore.
104
104
  *
105
- * @param name The name of the collection (or table) that records will be stored in. Defaults to the snake_case
106
- * form of the class name.
105
+ * @param options The options to set.
107
106
  */
108
- export function Entity(name) {
107
+ export function Entity(options) {
109
108
  return function (target) {
110
- const entityName = name ?? snakeCase(target.name);
111
- Reflect.defineMetadata(ENTITY_NAME_KEY, entityName, target);
112
- Object.defineProperty(target, "entityName", {
113
- enumerable: true,
114
- writable: true,
115
- value: entityName,
116
- });
109
+ options = options ?? {};
110
+ options.name = options.name ?? snakeCase(target.name);
111
+ Reflect.defineMetadata("rrst:entityOptions", options, target);
112
+ Reflect.defineMetadata("rrst:entityName", options.name, target);
117
113
  };
118
114
  }
119
115
  /**
@@ -144,18 +140,22 @@ export function getColumnMetadata(clazz) {
144
140
  export function getIndexMetadata(clazz) {
145
141
  const merged = new Map();
146
142
  const identity = (idx) => idx.name ?? `cols:${idx.columns.join(",")}`;
147
- // Most-derived first; first occurrence of an identity wins
148
- const lists = [
149
- ...collectOwnMetadata(INDEXES_KEY, clazz.prototype ?? clazz),
150
- ...collectOwnMetadata(CLASS_INDEXES_KEY, clazz),
151
- ];
152
- for (const list of lists) {
153
- for (const index of list) {
143
+ // Walk from most-derived to most-ancestral. At each class level, process class-level indexes
144
+ // (CLASS_INDEXES_KEY) before property-level indexes (INDEXES_KEY) so that a subclass can
145
+ // shadow an ancestor's property-level index via a class-level @Index declaration.
146
+ let ctor = clazz;
147
+ let proto = clazz.prototype ?? clazz;
148
+ while (ctor && ctor !== Function.prototype && ctor !== Object.prototype) {
149
+ const classIdxs = Reflect.getOwnMetadata(CLASS_INDEXES_KEY, ctor) ?? [];
150
+ const propIdxs = Reflect.getOwnMetadata(INDEXES_KEY, proto) ?? [];
151
+ for (const index of [...classIdxs, ...propIdxs]) {
154
152
  const key = identity(index);
155
153
  if (!merged.has(key)) {
156
154
  merged.set(key, index);
157
155
  }
158
156
  }
157
+ ctor = Object.getPrototypeOf(ctor);
158
+ proto = Object.getPrototypeOf(proto);
159
159
  }
160
160
  return Array.from(merged.values());
161
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PersistenceDecorators.js","sourceRoot":"","sources":["../../../src/decorators/PersistenceDecorators.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAsDvD,MAAM,WAAW,GAAG,cAAc,CAAC;AACnC,MAAM,WAAW,GAAG,cAAc,CAAC;AACnC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAC9C,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C;;;;GAIG;AACH,SAAS,eAAe,CAAC,GAAW,EAAE,MAAW,EAAE,KAAU;IACzD,MAAM,IAAI,GAAU,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAW,EAAE,MAAW;IAChD,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,SAAS,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACzG,MAAM,IAAI,GAAU,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnD,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,UAAyB,EAAE;IAC9C,OAAO,UAAU,MAAW,EAAE,WAA4B;QACtD,MAAM,UAAU,GAAQ,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChF,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE;YACjC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC;YACjC,UAAU;YACV,OAAO;SACW,CAAC,CAAC;IAC5B,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,UAAyB,EAAE;IACrD,OAAO,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AAuBD,MAAM,UAAU,KAAK,CAAC,qBAAwD,EAAE,eAAyC,EAAE,YAA2B;IAClJ,4CAA4C;IAC5C,MAAM,IAAI,GAAuB,OAAO,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/G,MAAM,MAAM,GAAyB,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC;QACrE,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;YAC9B,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,SAAS,CAAC;IAClB,MAAM,OAAO,GACT,CAAC,OAAO,qBAAqB,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAC/E,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,OAAO,eAAe,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;YACtE,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAEhC,OAAO,UAAU,MAAW,EAAE,WAA6B;QACvD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,uBAAuB;YACvB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE;gBACjC,IAAI;gBACJ,OAAO,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC9B,OAAO;aACU,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACJ,+BAA+B;YAC/B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,IAAI,qCAAqC,CAAC,CAAC;YACzF,CAAC;YACD,eAAe,CAAC,iBAAiB,EAAE,MAAM,EAAE;gBACvC,IAAI;gBACJ,OAAO,EAAE,MAAM;gBACf,OAAO;aACU,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC,CAAC;AACN,CAAC;AAWD,MAAM,UAAU,MAAM,CAAC,YAAgC,EAAE,WAAsB;IAC3E,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACpH,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACnC,CAAC;AACD,gCAAgC;AAEhC;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,IAAa;IAChC,OAAO,UAAU,MAAW;QACxB,MAAM,UAAU,GAAW,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;YACxC,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,UAAU;SACpB,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAU;IACxC,MAAM,MAAM,GAA4B,IAAI,GAAG,EAAE,CAAC;IAClD,+DAA+D;IAC/D,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3E,KAAK,MAAM,MAAM,IAAI,IAAoB,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAU;IACvC,MAAM,MAAM,GAA2B,IAAI,GAAG,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,CAAC,GAAc,EAAU,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACzF,2DAA2D;IAC3D,MAAM,KAAK,GAAY;QACnB,GAAG,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC;QAC5D,GAAG,kBAAkB,CAAC,iBAAiB,EAAE,KAAK,CAAC;KAClD,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,IAAmB,EAAE,CAAC;YACtC,MAAM,GAAG,GAAW,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAU;IACpC,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,UAAU,GAAuB,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAClF,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,UAAU,CAAC;QACtB,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"PersistenceDecorators.js","sourceRoot":"","sources":["../../../src/decorators/PersistenceDecorators.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,7 @@ __decorate([
59
59
  Description("The universally unique identifier of the entity."),
60
60
  Default("randomUUID()"),
61
61
  Identifier,
62
- Index("uid", { unique: true }),
62
+ Index("uid", { unique: true, collation: { locale: "en", strength: 2 } }),
63
63
  PrimaryColumn(),
64
64
  __metadata("design:type", String)
65
65
  ], BaseEntity.prototype, "uid", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../../../src/models/BaseEntity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,OAAgB,UAAU;IAkC5B,YAAY,KAA2B;QAjCvC;;WAEG;QAMI,QAAG,GAAW,IAAI,CAAC,EAAE,EAAE,CAAC;QAE/B;;WAEG;QAII,gBAAW,GAAS,IAAI,IAAI,EAAE,CAAC;QAEtC;;WAEG;QAII,iBAAY,GAAS,IAAI,IAAI,EAAE,CAAC;QAEvC;;WAEG;QAGI,YAAO,GAAW,CAAC,CAAC;QAGvB,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAC5E,IAAI,CAAC,WAAW;gBACZ,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;oBACjC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;oBAC7B,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;YAChD,IAAI,CAAC,YAAY;gBACb,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;oBAClC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;oBAC9B,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;YAClD,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACpG,CAAC;IACL,CAAC;CACJ;AAvCU;IALN,WAAW,CAAC,kDAAkD,CAAC;IAC/D,OAAO,CAAC,cAAc,CAAC;IACvB,UAAU;IACV,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC9B,aAAa,EAAE;;uCACe;AAQxB;IAHN,WAAW,CAAC,gDAAgD,CAAC;IAC7D,OAAO,CAAC,YAAY,CAAC;IACrB,MAAM,EAAE;8BACW,IAAI;+CAAc;AAQ/B;IAHN,WAAW,CAAC,sDAAsD,CAAC;IACnE,OAAO,CAAC,YAAY,CAAC;IACrB,MAAM,EAAE;8BACY,IAAI;gDAAc;AAOhC;IAFN,WAAW,CAAC,8BAA8B,CAAC;IAC3C,MAAM,EAAE;;2CACkB"}
1
+ {"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../../../src/models/BaseEntity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,OAAgB,UAAU;IAkC5B,YAAY,KAA2B;QAjCvC;;WAEG;QAMI,QAAG,GAAW,IAAI,CAAC,EAAE,EAAE,CAAC;QAE/B;;WAEG;QAII,gBAAW,GAAS,IAAI,IAAI,EAAE,CAAC;QAEtC;;WAEG;QAII,iBAAY,GAAS,IAAI,IAAI,EAAE,CAAC;QAEvC;;WAEG;QAGI,YAAO,GAAW,CAAC,CAAC;QAGvB,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAC5E,IAAI,CAAC,WAAW;gBACZ,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;oBACjC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;oBAC7B,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;YAChD,IAAI,CAAC,YAAY;gBACb,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;oBAClC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;oBAC9B,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;YAClD,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACpG,CAAC;IACL,CAAC;CACJ;AAvCU;IALN,WAAW,CAAC,kDAAkD,CAAC;IAC/D,OAAO,CAAC,cAAc,CAAC;IACvB,UAAU;IACV,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;IACxE,aAAa,EAAE;;uCACe;AAQxB;IAHN,WAAW,CAAC,gDAAgD,CAAC;IAC7D,OAAO,CAAC,YAAY,CAAC;IACrB,MAAM,EAAE;8BACW,IAAI;+CAAc;AAQ/B;IAHN,WAAW,CAAC,sDAAsD,CAAC;IACnE,OAAO,CAAC,YAAY,CAAC;IACrB,MAAM,EAAE;8BACY,IAAI;gDAAc;AAOhC;IAFN,WAAW,CAAC,8BAA8B,CAAC;IAC3C,MAAM,EAAE;;2CACkB"}
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  ///////////////////////////////////////////////////////////////////////////////
11
11
  // Copyright (C) 2020-2026 Jean-Philippe Steinmetz. All rights reserved.
12
12
  ///////////////////////////////////////////////////////////////////////////////
13
- import { Column } from "../decorators/PersistenceDecorators.js";
13
+ import { Column, Index } from "../decorators/PersistenceDecorators.js";
14
14
  import { BaseEntity } from "./BaseEntity.js";
15
15
  import { ObjectId } from "mongodb";
16
16
  import { ObjectDecorators } from "@rapidrest/core";
@@ -20,7 +20,9 @@ const { Nullable } = ObjectDecorators;
20
20
  *
21
21
  * @author Jean-Philippe Steinmetz <rapidrests@gmail.com>
22
22
  */
23
- export class BaseMongoEntity extends BaseEntity {
23
+ // Shadow BaseEntity's unique uid index — MongoDB entities store version history (multiple docs per uid),
24
+ // so uniqueness is enforced at the application layer (optimistic locking) rather than via a unique index.
25
+ let BaseMongoEntity = class BaseMongoEntity extends BaseEntity {
24
26
  constructor(other) {
25
27
  super(other);
26
28
  if (other) {
@@ -31,10 +33,15 @@ export class BaseMongoEntity extends BaseEntity {
31
33
  : this._id;
32
34
  }
33
35
  }
34
- }
36
+ };
35
37
  __decorate([
36
38
  Column({ isObjectId: true }),
37
39
  Nullable,
38
40
  __metadata("design:type", Object)
39
41
  ], BaseMongoEntity.prototype, "_id", void 0);
42
+ BaseMongoEntity = __decorate([
43
+ Index("uid", ["uid"], { collation: { locale: "en", strength: 2 } }),
44
+ __metadata("design:paramtypes", [Object])
45
+ ], BaseMongoEntity);
46
+ export { BaseMongoEntity };
40
47
  //# sourceMappingURL=BaseMongoEntity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMongoEntity.js","sourceRoot":"","sources":["../../../src/models/BaseMongoEntity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC;AAEtC;;;;GAIG;AACH,MAAM,OAAgB,eAAgB,SAAQ,UAAU;IAQpD,YAAY,KAAgC;QACxC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;gBAChB,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;oBAC5D,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjC,CAAC,CAAC,KAAK,CAAC,GAAG;gBACf,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB,CAAC;IACL,CAAC;CACJ;AAbU;IAFN,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC5B,QAAQ;;4CACQ"}
1
+ {"version":3,"file":"BaseMongoEntity.js","sourceRoot":"","sources":["../../../src/models/BaseMongoEntity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC;AAEtC;;;;GAIG;AACH,yGAAyG;AACzG,0GAA0G;AAEnG,IAAe,eAAe,GAA9B,MAAe,eAAgB,SAAQ,UAAU;IAQpD,YAAY,KAAgC;QACxC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;gBAChB,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;oBAC5D,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjC,CAAC,CAAC,KAAK,CAAC,GAAG;gBACf,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB,CAAC;IACL,CAAC;CACJ,CAAA;AAbU;IAFN,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC5B,QAAQ;;4CACQ;AANC,eAAe;IADpC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;;GAC9C,eAAe,CAmBpC"}