@nxgt/shared-mongo 1.0.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 (169) hide show
  1. package/README.md +15 -0
  2. package/dist/audit/audit.model.d.ts +209 -0
  3. package/dist/audit/audit.model.d.ts.map +1 -0
  4. package/dist/audit/audit.service.d.ts +17 -0
  5. package/dist/audit/audit.service.d.ts.map +1 -0
  6. package/dist/audit/audit.types.d.ts +29 -0
  7. package/dist/audit/audit.types.d.ts.map +1 -0
  8. package/dist/audit/audit.utils.d.ts +50 -0
  9. package/dist/audit/audit.utils.d.ts.map +1 -0
  10. package/dist/audit/index.d.ts +5 -0
  11. package/dist/audit/index.d.ts.map +1 -0
  12. package/dist/filters/filter.utils.d.ts +112 -0
  13. package/dist/filters/filter.utils.d.ts.map +1 -0
  14. package/dist/filters/index.d.ts +16 -0
  15. package/dist/filters/index.d.ts.map +1 -0
  16. package/dist/filters/index.js +199 -0
  17. package/dist/filters/index.js.map +10 -0
  18. package/dist/index.d.ts +14 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +1847 -0
  21. package/dist/index.js.map +70 -0
  22. package/dist/integrity/index.d.ts +3 -0
  23. package/dist/integrity/index.d.ts.map +1 -0
  24. package/dist/integrity/integrity.registry.d.ts +38 -0
  25. package/dist/integrity/integrity.registry.d.ts.map +1 -0
  26. package/dist/integrity/integrity.types.d.ts +26 -0
  27. package/dist/integrity/integrity.types.d.ts.map +1 -0
  28. package/dist/migrations/cli.d.ts +28 -0
  29. package/dist/migrations/cli.d.ts.map +1 -0
  30. package/dist/migrations/disconnect.d.ts +8 -0
  31. package/dist/migrations/disconnect.d.ts.map +1 -0
  32. package/dist/migrations/index.d.ts +6 -0
  33. package/dist/migrations/index.d.ts.map +1 -0
  34. package/dist/migrations/migrate.d.ts +47 -0
  35. package/dist/migrations/migrate.d.ts.map +1 -0
  36. package/dist/migrations/migration.model.d.ts +7 -0
  37. package/dist/migrations/migration.model.d.ts.map +1 -0
  38. package/dist/migrations/migration.runner.d.ts +47 -0
  39. package/dist/migrations/migration.runner.d.ts.map +1 -0
  40. package/dist/migrations/migration.types.d.ts +48 -0
  41. package/dist/migrations/migration.types.d.ts.map +1 -0
  42. package/dist/migrations/migration.utils.d.ts +40 -0
  43. package/dist/migrations/migration.utils.d.ts.map +1 -0
  44. package/dist/models/index.d.ts +3 -0
  45. package/dist/models/index.d.ts.map +1 -0
  46. package/dist/models/pagination.d.ts +34 -0
  47. package/dist/models/pagination.d.ts.map +1 -0
  48. package/dist/models/postal-address.model.d.ts +64 -0
  49. package/dist/models/postal-address.model.d.ts.map +1 -0
  50. package/dist/mongoose.d.ts +3 -0
  51. package/dist/mongoose.d.ts.map +1 -0
  52. package/dist/plugins/consts.d.ts +6 -0
  53. package/dist/plugins/consts.d.ts.map +1 -0
  54. package/dist/plugins/errors.d.ts +3 -0
  55. package/dist/plugins/errors.d.ts.map +1 -0
  56. package/dist/plugins/index.d.ts +15 -0
  57. package/dist/plugins/index.d.ts.map +1 -0
  58. package/dist/plugins/pagination/index.d.ts +4 -0
  59. package/dist/plugins/pagination/index.d.ts.map +1 -0
  60. package/dist/plugins/pagination/types.d.ts +61 -0
  61. package/dist/plugins/pagination/types.d.ts.map +1 -0
  62. package/dist/plugins/pagination/utils.d.ts +24 -0
  63. package/dist/plugins/pagination/utils.d.ts.map +1 -0
  64. package/dist/plugins/shared/index.d.ts +3 -0
  65. package/dist/plugins/shared/index.d.ts.map +1 -0
  66. package/dist/plugins/shared/shared.d.ts +3 -0
  67. package/dist/plugins/shared/shared.d.ts.map +1 -0
  68. package/dist/plugins/soft-delete/index.d.ts +3 -0
  69. package/dist/plugins/soft-delete/index.d.ts.map +1 -0
  70. package/dist/plugins/soft-delete/soft-delete.d.ts +3 -0
  71. package/dist/plugins/soft-delete/soft-delete.d.ts.map +1 -0
  72. package/dist/services/crud.service.d.ts +88 -0
  73. package/dist/services/crud.service.d.ts.map +1 -0
  74. package/dist/services/index.d.ts +2 -0
  75. package/dist/services/index.d.ts.map +1 -0
  76. package/dist/types/index.d.ts +4 -0
  77. package/dist/types/index.d.ts.map +1 -0
  78. package/dist/types/pagination.d.ts +72 -0
  79. package/dist/types/shared.d.ts +49 -0
  80. package/dist/types/soft-delete.d.ts +627 -0
  81. package/dist/utils/clear-database.d.ts +24 -0
  82. package/dist/utils/clear-database.d.ts.map +1 -0
  83. package/dist/utils/error.utils.d.ts +4 -0
  84. package/dist/utils/error.utils.d.ts.map +1 -0
  85. package/dist/utils/filter.utils.d.ts +40 -0
  86. package/dist/utils/filter.utils.d.ts.map +1 -0
  87. package/dist/utils/helpers.d.ts +72 -0
  88. package/dist/utils/helpers.d.ts.map +1 -0
  89. package/dist/utils/index.d.ts +12 -0
  90. package/dist/utils/index.d.ts.map +1 -0
  91. package/dist/utils/mappers.d.ts +4 -0
  92. package/dist/utils/mappers.d.ts.map +1 -0
  93. package/dist/utils/models.d.ts +3 -0
  94. package/dist/utils/models.d.ts.map +1 -0
  95. package/dist/utils/mongo-utils.d.ts +45 -0
  96. package/dist/utils/mongo-utils.d.ts.map +1 -0
  97. package/dist/utils/object-id.utils.d.ts +16 -0
  98. package/dist/utils/object-id.utils.d.ts.map +1 -0
  99. package/dist/utils/pagination.utils.d.ts +6 -0
  100. package/dist/utils/pagination.utils.d.ts.map +1 -0
  101. package/dist/utils/schema.d.ts +2 -0
  102. package/dist/utils/schema.d.ts.map +1 -0
  103. package/dist/utils/sort.utils.d.ts +12 -0
  104. package/dist/utils/sort.utils.d.ts.map +1 -0
  105. package/dist/validation/index.d.ts +2 -0
  106. package/dist/validation/index.d.ts.map +1 -0
  107. package/dist/validation/validation.types.d.ts +36 -0
  108. package/dist/validation/validation.types.d.ts.map +1 -0
  109. package/dist/validation/validation.utils.d.ts +6 -0
  110. package/dist/validation/validation.utils.d.ts.map +1 -0
  111. package/dist/validation/validators/email.validator.d.ts +8 -0
  112. package/dist/validation/validators/email.validator.d.ts.map +1 -0
  113. package/dist/validation/validators/future.validator.d.ts +8 -0
  114. package/dist/validation/validators/future.validator.d.ts.map +1 -0
  115. package/dist/validation/validators/guid.validator.d.ts +6 -0
  116. package/dist/validation/validators/guid.validator.d.ts.map +1 -0
  117. package/dist/validation/validators/index.d.ts +30 -0
  118. package/dist/validation/validators/index.d.ts.map +1 -0
  119. package/dist/validation/validators/ip.validator.d.ts +6 -0
  120. package/dist/validation/validators/ip.validator.d.ts.map +1 -0
  121. package/dist/validation/validators/ipv4.validator.d.ts +6 -0
  122. package/dist/validation/validators/ipv4.validator.d.ts.map +1 -0
  123. package/dist/validation/validators/ipv6.validator.d.ts +6 -0
  124. package/dist/validation/validators/ipv6.validator.d.ts.map +1 -0
  125. package/dist/validation/validators/mac.validator.d.ts +6 -0
  126. package/dist/validation/validators/mac.validator.d.ts.map +1 -0
  127. package/dist/validation/validators/max-length.validator.d.ts +6 -0
  128. package/dist/validation/validators/max-length.validator.d.ts.map +1 -0
  129. package/dist/validation/validators/max.validator.d.ts +6 -0
  130. package/dist/validation/validators/max.validator.d.ts.map +1 -0
  131. package/dist/validation/validators/min-length.validator.d.ts +6 -0
  132. package/dist/validation/validators/min-length.validator.d.ts.map +1 -0
  133. package/dist/validation/validators/min.validator.d.ts +6 -0
  134. package/dist/validation/validators/min.validator.d.ts.map +1 -0
  135. package/dist/validation/validators/negative.validator.d.ts +6 -0
  136. package/dist/validation/validators/negative.validator.d.ts.map +1 -0
  137. package/dist/validation/validators/not-blank.validator.d.ts +6 -0
  138. package/dist/validation/validators/not-blank.validator.d.ts.map +1 -0
  139. package/dist/validation/validators/not-empty.validator.d.ts +6 -0
  140. package/dist/validation/validators/not-empty.validator.d.ts.map +1 -0
  141. package/dist/validation/validators/object-id.validator.d.ts +6 -0
  142. package/dist/validation/validators/object-id.validator.d.ts.map +1 -0
  143. package/dist/validation/validators/past.validator.d.ts +8 -0
  144. package/dist/validation/validators/past.validator.d.ts.map +1 -0
  145. package/dist/validation/validators/pattern.validator.d.ts +6 -0
  146. package/dist/validation/validators/pattern.validator.d.ts.map +1 -0
  147. package/dist/validation/validators/phone.validator.d.ts +6 -0
  148. package/dist/validation/validators/phone.validator.d.ts.map +1 -0
  149. package/dist/validation/validators/positive.validator.d.ts +6 -0
  150. package/dist/validation/validators/positive.validator.d.ts.map +1 -0
  151. package/dist/validation/validators/range.validator.d.ts +6 -0
  152. package/dist/validation/validators/range.validator.d.ts.map +1 -0
  153. package/dist/validation/validators/required.validator.d.ts +6 -0
  154. package/dist/validation/validators/required.validator.d.ts.map +1 -0
  155. package/dist/validation/validators/size.validator.d.ts +6 -0
  156. package/dist/validation/validators/size.validator.d.ts.map +1 -0
  157. package/dist/validation/validators/ssn.validator.d.ts +6 -0
  158. package/dist/validation/validators/ssn.validator.d.ts.map +1 -0
  159. package/dist/validation/validators/street.validator.d.ts +6 -0
  160. package/dist/validation/validators/street.validator.d.ts.map +1 -0
  161. package/dist/validation/validators/time.validator.d.ts +6 -0
  162. package/dist/validation/validators/time.validator.d.ts.map +1 -0
  163. package/dist/validation/validators/url.validator.d.ts +8 -0
  164. package/dist/validation/validators/url.validator.d.ts.map +1 -0
  165. package/dist/validation/validators/uuid.validator.d.ts +6 -0
  166. package/dist/validation/validators/uuid.validator.d.ts.map +1 -0
  167. package/dist/validation/validators/zip-code.validator.d.ts +6 -0
  168. package/dist/validation/validators/zip-code.validator.d.ts.map +1 -0
  169. package/package.json +68 -0
package/README.md ADDED
@@ -0,0 +1,15 @@
1
+ # @nxgt/shared-mongo
2
+
3
+ To install dependencies:
4
+
5
+ ```bash
6
+ bun install
7
+ ```
8
+
9
+ To run:
10
+
11
+ ```bash
12
+ bun run src/index.ts
13
+ ```
14
+
15
+ This project was created using `bun init` in bun v1.3.9. [Bun](https://bun.com) is a fast all-in-one JavaScript runtime.
@@ -0,0 +1,209 @@
1
+ import type { HydratedDocument, Model } from 'mongoose';
2
+ import { Schema } from 'mongoose';
3
+ export interface Audit {
4
+ id: string;
5
+ type: string;
6
+ globalId: string;
7
+ author: string;
8
+ state: any;
9
+ properties: string[];
10
+ changes: any[];
11
+ version: number;
12
+ }
13
+ export type AuditDocument = HydratedDocument<Audit>;
14
+ type AuditModel = Model<AuditDocument, object, object, object>;
15
+ export declare const AuditModel: Model<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
16
+ _id: import("mongoose").Types.ObjectId;
17
+ } & {
18
+ __v: number;
19
+ }, object, object, object, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
20
+ _id: import("mongoose").Types.ObjectId;
21
+ } & {
22
+ __v: number;
23
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
24
+ _id: import("mongoose").Types.ObjectId;
25
+ } & {
26
+ __v: number;
27
+ } & Required<{
28
+ _id: import("mongoose").Types.ObjectId;
29
+ }>, never> & object, Schema<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
30
+ _id: import("mongoose").Types.ObjectId;
31
+ } & {
32
+ __v: number;
33
+ }, AuditModel, object, object, object, {}, import("mongoose").DefaultSchemaOptions, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
34
+ _id: import("mongoose").Types.ObjectId;
35
+ } & {
36
+ __v: number;
37
+ }, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
38
+ _id: import("mongoose").Types.ObjectId;
39
+ } & {
40
+ __v: number;
41
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
42
+ _id: import("mongoose").Types.ObjectId;
43
+ } & {
44
+ __v: number;
45
+ } & Required<{
46
+ _id: import("mongoose").Types.ObjectId;
47
+ }>, never> & object, {
48
+ __v?: import("mongoose").SchemaDefinitionProperty<number, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
49
+ _id: import("mongoose").Types.ObjectId;
50
+ } & {
51
+ __v: number;
52
+ }, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
53
+ _id: import("mongoose").Types.ObjectId;
54
+ } & {
55
+ __v: number;
56
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
57
+ _id: import("mongoose").Types.ObjectId;
58
+ } & {
59
+ __v: number;
60
+ } & Required<{
61
+ _id: import("mongoose").Types.ObjectId;
62
+ }>, never> & object> | undefined;
63
+ _id?: import("mongoose").SchemaDefinitionProperty<import("mongoose").Types.ObjectId, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
64
+ _id: import("mongoose").Types.ObjectId;
65
+ } & {
66
+ __v: number;
67
+ }, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
68
+ _id: import("mongoose").Types.ObjectId;
69
+ } & {
70
+ __v: number;
71
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
72
+ _id: import("mongoose").Types.ObjectId;
73
+ } & {
74
+ __v: number;
75
+ } & Required<{
76
+ _id: import("mongoose").Types.ObjectId;
77
+ }>, never> & object> | undefined;
78
+ id?: import("mongoose").SchemaDefinitionProperty<string, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
79
+ _id: import("mongoose").Types.ObjectId;
80
+ } & {
81
+ __v: number;
82
+ }, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
83
+ _id: import("mongoose").Types.ObjectId;
84
+ } & {
85
+ __v: number;
86
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
87
+ _id: import("mongoose").Types.ObjectId;
88
+ } & {
89
+ __v: number;
90
+ } & Required<{
91
+ _id: import("mongoose").Types.ObjectId;
92
+ }>, never> & object> | undefined;
93
+ type?: import("mongoose").SchemaDefinitionProperty<string, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
94
+ _id: import("mongoose").Types.ObjectId;
95
+ } & {
96
+ __v: number;
97
+ }, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
98
+ _id: import("mongoose").Types.ObjectId;
99
+ } & {
100
+ __v: number;
101
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
102
+ _id: import("mongoose").Types.ObjectId;
103
+ } & {
104
+ __v: number;
105
+ } & Required<{
106
+ _id: import("mongoose").Types.ObjectId;
107
+ }>, never> & object> | undefined;
108
+ version?: import("mongoose").SchemaDefinitionProperty<number, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
109
+ _id: import("mongoose").Types.ObjectId;
110
+ } & {
111
+ __v: number;
112
+ }, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
113
+ _id: import("mongoose").Types.ObjectId;
114
+ } & {
115
+ __v: number;
116
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
117
+ _id: import("mongoose").Types.ObjectId;
118
+ } & {
119
+ __v: number;
120
+ } & Required<{
121
+ _id: import("mongoose").Types.ObjectId;
122
+ }>, never> & object> | undefined;
123
+ state?: import("mongoose").SchemaDefinitionProperty<any, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
124
+ _id: import("mongoose").Types.ObjectId;
125
+ } & {
126
+ __v: number;
127
+ }, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
128
+ _id: import("mongoose").Types.ObjectId;
129
+ } & {
130
+ __v: number;
131
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
132
+ _id: import("mongoose").Types.ObjectId;
133
+ } & {
134
+ __v: number;
135
+ } & Required<{
136
+ _id: import("mongoose").Types.ObjectId;
137
+ }>, never> & object> | undefined;
138
+ changes?: import("mongoose").SchemaDefinitionProperty<any[], import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
139
+ _id: import("mongoose").Types.ObjectId;
140
+ } & {
141
+ __v: number;
142
+ }, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
143
+ _id: import("mongoose").Types.ObjectId;
144
+ } & {
145
+ __v: number;
146
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
147
+ _id: import("mongoose").Types.ObjectId;
148
+ } & {
149
+ __v: number;
150
+ } & Required<{
151
+ _id: import("mongoose").Types.ObjectId;
152
+ }>, never> & object> | undefined;
153
+ properties?: import("mongoose").SchemaDefinitionProperty<string[], import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
154
+ _id: import("mongoose").Types.ObjectId;
155
+ } & {
156
+ __v: number;
157
+ }, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
158
+ _id: import("mongoose").Types.ObjectId;
159
+ } & {
160
+ __v: number;
161
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
162
+ _id: import("mongoose").Types.ObjectId;
163
+ } & {
164
+ __v: number;
165
+ } & Required<{
166
+ _id: import("mongoose").Types.ObjectId;
167
+ }>, never> & object> | undefined;
168
+ globalId?: import("mongoose").SchemaDefinitionProperty<string, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
169
+ _id: import("mongoose").Types.ObjectId;
170
+ } & {
171
+ __v: number;
172
+ }, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
173
+ _id: import("mongoose").Types.ObjectId;
174
+ } & {
175
+ __v: number;
176
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
177
+ _id: import("mongoose").Types.ObjectId;
178
+ } & {
179
+ __v: number;
180
+ } & Required<{
181
+ _id: import("mongoose").Types.ObjectId;
182
+ }>, never> & object> | undefined;
183
+ author?: import("mongoose").SchemaDefinitionProperty<string, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
184
+ _id: import("mongoose").Types.ObjectId;
185
+ } & {
186
+ __v: number;
187
+ }, import("mongoose").Document<unknown, object, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
188
+ _id: import("mongoose").Types.ObjectId;
189
+ } & {
190
+ __v: number;
191
+ }, object, import("mongoose").DefaultSchemaOptions> & Omit<import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
192
+ _id: import("mongoose").Types.ObjectId;
193
+ } & {
194
+ __v: number;
195
+ } & Required<{
196
+ _id: import("mongoose").Types.ObjectId;
197
+ }>, never> & object> | undefined;
198
+ }, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
199
+ _id: import("mongoose").Types.ObjectId;
200
+ } & {
201
+ __v: number;
202
+ }>, import("mongoose").Document<unknown, {}, Audit, {}, import("mongoose").DefaultSchemaOptions> & Audit & {
203
+ _id: import("mongoose").Types.ObjectId;
204
+ } & {
205
+ __v: number;
206
+ }>;
207
+ export declare const AUDIT_CHANGE_STREAM: import("mongodb").ChangeStream<any, any>;
208
+ export {};
209
+ //# sourceMappingURL=audit.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.model.d.ts","sourceRoot":"","sources":["../../src/audit/audit.model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAS,MAAM,EAAE,MAAM,UAAU,CAAC;AAKzC,MAAM,WAAW,KAAK;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAEpD,KAAK,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAyB/D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyB,CAAC;AAEjD,eAAO,MAAM,mBAAmB,0CAM9B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { QueryFilter } from 'mongoose';
2
+ import type { IConnection, PaginationOptions } from '../models';
3
+ import { type Audit, type AuditDocument } from './audit.model';
4
+ import type { Change } from './audit.types';
5
+ export declare class AuditService {
6
+ private model;
7
+ findChangesPaginated<T>(options: PaginationOptions): Promise<IConnection<Change<T>>>;
8
+ findChangesPaginatedByCollectionAndOid<T>(oid: string, collection: string, options: PaginationOptions): Promise<IConnection<Change<T>>>;
9
+ findChangesPaginatedByCollection<T>(collection: string, options: PaginationOptions): Promise<IConnection<Change<T>>>;
10
+ findChanges<T>(filter?: QueryFilter<AuditDocument>): Promise<Change<T>[]>;
11
+ matches(audit: Audit, filter: {
12
+ collection: string;
13
+ type?: string;
14
+ }): boolean;
15
+ extractId(audit: Audit): string | undefined;
16
+ }
17
+ //# sourceMappingURL=audit.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.service.d.ts","sourceRoot":"","sources":["../../src/audit/audit.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,aAAa,EAAc,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,YAAY;IACxB,OAAO,CAAC,KAAK,CAAc;IAErB,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB;IAIxD,sCAAsC,CAAC,CAAC,EACvC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB;IAa3B,gCAAgC,CAAC,CAAC,EACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB;IAarB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAE,WAAW,CAAC,aAAa,CAAM;IAI5D,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAOnE,SAAS,CAAC,KAAK,EAAE,KAAK;CAGtB"}
@@ -0,0 +1,29 @@
1
+ import type { Mutex } from 'async-mutex';
2
+ import type mongoose from 'mongoose';
3
+ import type { Audit } from './audit.model';
4
+ export declare enum ChangeOperationType {
5
+ ADD = "add",
6
+ REPLACE = "replace",
7
+ REMOVE = "remove"
8
+ }
9
+ export declare enum CommitType {
10
+ INITIAL = "INITIAL",
11
+ UPDATE = "UPDATE",
12
+ TERMINAL = "TERMINAL"
13
+ }
14
+ export interface Change<T> extends Omit<Audit, 'state' | 'changes' | 'properties'> {
15
+ state: T;
16
+ properties: (keyof T)[];
17
+ changes: {
18
+ op: ChangeOperationType;
19
+ path: [keyof T];
20
+ value: any;
21
+ }[];
22
+ }
23
+ export type ChangeListeningOptions = {
24
+ author?: string;
25
+ omitFields?: string[];
26
+ models: mongoose.Model<any>[];
27
+ mutex?: Mutex;
28
+ };
29
+ //# sourceMappingURL=audit.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.types.d.ts","sourceRoot":"","sources":["../../src/audit/audit.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,oBAAY,mBAAmB;IAC9B,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,MAAM,WAAW;CACjB;AAED,oBAAY,UAAU;IACrB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACrB;AAED,MAAM,WAAW,MAAM,CAAC,CAAC,CACxB,SAAQ,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC;IACT,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE;QAAE,EAAE,EAAE,mBAAmB,CAAC;QAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;CACpE;AAED,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC;CACd,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { mongoose } from '../mongoose';
2
+ import { type Audit } from './audit.model';
3
+ import type { ChangeListeningOptions } from './audit.types';
4
+ /**
5
+ * Processes MongoDB change streams and creates audit logs based on changes.
6
+ * @param {mongoose.mongo.ChangeStream<any, any>} changeStream - The MongoDB change stream.
7
+ * @param {Object} options - Configuration options for the audit process.
8
+ * @param {string[]} [options.omitFields] - Fields to omit when comparing states.
9
+ * @param {UserPrincipal} [options.user] - The user making the changes.
10
+ */
11
+ export declare function auditChanges(changeStream: mongoose.mongo.ChangeStream<any, any>, options: {
12
+ omitFields?: string[];
13
+ author?: string;
14
+ }): void;
15
+ /**
16
+ * Executes a given asynchronous block of code while listening for changes in specified MongoDB models.
17
+ * Automatically closes all change streams after execution.
18
+ *
19
+ * @template T
20
+ * @param {() => Promise<T>} bloc - An asynchronous function to execute while monitoring changes.
21
+ * @param {Object} options - Configuration options for the change listener.
22
+ * @param {string} [options.author] - The author initiating the change listener (used for auditing purposes).
23
+ * @param {string[]} [options.omitFields] - Fields to omit from the auditing process.
24
+ * @param {mongoose.Model<any>[]} options.models - The Mongoose models to watch for changes.
25
+ * @param {Mutex} [options.mutex] - An optional mutex to ensure exclusive access during execution.
26
+ *
27
+ * @returns {Promise<T>} - Resolves with the result of the executed block of code.
28
+ *
29
+ * @throws {Error} - Propagates any errors from the `bloc` function or other internal operations.
30
+ */
31
+ export declare function runWithChangesListening<T>(bloc: () => Promise<T>, options: ChangeListeningOptions): Promise<T>;
32
+ export declare const AUDIT_EVENT = "event:audit";
33
+ type RegisterAuditSubscriptionOptions<T extends {
34
+ publish<D>(topic: string, data: D): void;
35
+ }> = {
36
+ pubsub: T;
37
+ };
38
+ /**
39
+ * Registers a subscription to MongoDB audit events, allowing real-time notifications of changes in the database.
40
+ * @param {Object} options - Configuration options for the subscription.
41
+ * @param {Object} options.pubsub - An object with a `publish` method to send notifications (e.g., a PubSub instance).
42
+ */
43
+ export declare function registerAuditSubscription<T extends {
44
+ publish(topic: string, ...data: any): void;
45
+ }>({ pubsub }: RegisterAuditSubscriptionOptions<T>): void;
46
+ export type AuditPayload = {
47
+ [AUDIT_EVENT]: [payload: Audit];
48
+ };
49
+ export {};
50
+ //# sourceMappingURL=audit.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.utils.d.ts","sourceRoot":"","sources":["../../src/audit/audit.utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,KAAK,KAAK,EAAc,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAM5D;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC3B,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EACnD,OAAO,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,QAoEnD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACxC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,OAAO,EAAE,sBAAsB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAED,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,KAAK,gCAAgC,CACpC,CAAC,SAAS;IACT,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;CACzC,IACE;IACH,MAAM,EAAE,CAAC,CAAC;CACV,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,yBAAyB,CACxC,CAAC,SAAS;IAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAA;CAAE,EACvD,EAAE,MAAM,EAAE,EAAE,gCAAgC,CAAC,CAAC,CAAC,QAmBhD;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;CAChC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './audit.model';
2
+ export * from './audit.service';
3
+ export * from './audit.types';
4
+ export * from './audit.utils';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,112 @@
1
+ import type { QueryFilter } from 'mongoose';
2
+ export type SortDirection = 'ASC' | 'DESC';
3
+ export type SortObject = Record<string, SortDirection>;
4
+ export type LogicalOperator = 'AND' | 'OR';
5
+ export type NumberOperator = 'EQ' | 'NE' | 'GT' | 'GTE' | 'LT' | 'LTE' | 'IN' | 'NOT_IN';
6
+ export type StringOperator = 'EQ' | 'NE' | 'CONTAINS' | 'STARTS_WITH' | 'ENDS_WITH' | 'REGEX' | 'IN' | 'NOT_IN';
7
+ export type ArrayOperator = 'ALL' | 'ANY' | 'NONE' | 'EXACT';
8
+ export type ObjectIDOperator = 'EQ' | 'NE' | 'IN' | 'NOT_IN' | 'EXISTS';
9
+ /**
10
+ * Generic filter types matching GraphQL inputs
11
+ */
12
+ export interface StringFilter {
13
+ operator: StringOperator;
14
+ value?: string | null;
15
+ values?: string[] | null;
16
+ caseSensitive?: boolean | null;
17
+ }
18
+ export interface NumberFilter {
19
+ operator?: NumberOperator | null;
20
+ value?: number | null;
21
+ values?: number[] | null;
22
+ }
23
+ export interface DateRangeFilter {
24
+ from?: Date | string | null;
25
+ to?: Date | string | null;
26
+ eq?: Date | string | null;
27
+ before?: Date | string | null;
28
+ after?: Date | string | null;
29
+ }
30
+ export interface ArrayFilter {
31
+ operator?: ArrayOperator | null;
32
+ values: string[];
33
+ }
34
+ export interface ObjectIDFilter {
35
+ eq?: string | null;
36
+ ne?: string | null;
37
+ in?: string[] | null;
38
+ notIn?: string[] | null;
39
+ exists?: boolean | null;
40
+ }
41
+ export interface BooleanFilter {
42
+ eq: boolean;
43
+ }
44
+ /**
45
+ * Build MongoDB query from StringFilter
46
+ */
47
+ export declare function buildStringFilter(filter?: StringFilter | null): any;
48
+ /**
49
+ * Build MongoDB query from NumberFilter
50
+ */
51
+ export declare function buildNumberFilter(filter?: NumberFilter | null): any;
52
+ /**
53
+ * Build MongoDB query from DateRangeFilter
54
+ */
55
+ export declare function buildDateRangeFilter(filter?: DateRangeFilter | null): any;
56
+ /**
57
+ * Build MongoDB query from ArrayFilter
58
+ */
59
+ export declare function buildArrayFilter(filter?: ArrayFilter | null): any;
60
+ /**
61
+ * Build MongoDB query from ObjectIDFilter
62
+ */
63
+ export declare function buildObjectIDFilter(filter?: ObjectIDFilter | null): any;
64
+ /**
65
+ * Build MongoDB query from BooleanFilter
66
+ */
67
+ export declare function buildBooleanFilter(filter?: BooleanFilter | null): any;
68
+ /**
69
+ * Build MongoDB sort object from typed sort input
70
+ * @param sort Object with field names as keys and 'ASC' or 'DESC' as values
71
+ * @returns MongoDB sort object
72
+ */
73
+ export declare function buildSort(sort?: SortObject | null): any;
74
+ /**
75
+ * Shape of the `AND`/`OR`/`NOT` combinators every generated GraphQL
76
+ * `<Entity>Filter` input carries.
77
+ */
78
+ export type LogicalFilterInput<TFilter> = {
79
+ AND?: TFilter[] | TFilter | null;
80
+ OR?: TFilter[] | TFilter | null;
81
+ NOT?: TFilter[] | TFilter | null;
82
+ };
83
+ /**
84
+ * Build the `$and`/`$or`/`$not` part of a Mongo filter from the recursive
85
+ * `AND`/`OR`/`NOT` combinators of a generated GraphQL filter input.
86
+ *
87
+ * Every module's `build<Entity>Filter` starts with the exact same block; this
88
+ * factors it out without changing behaviour. Call it first, then add the
89
+ * module's own leaf conditions onto the returned object:
90
+ *
91
+ * ```ts
92
+ * function buildBedFilter(filter?: BedFilter | null): QueryFilter<BedDocument> {
93
+ * const mongoFilter = buildLogicalFilter(filter, buildBedFilter);
94
+ * if (!filter) return mongoFilter;
95
+ * addFilterCondition(mongoFilter, 'name', buildStringFilter(filter.name));
96
+ * return mongoFilter;
97
+ * }
98
+ * ```
99
+ *
100
+ * Note `NOT` maps to `$not`, matching the behaviour of the hand-written
101
+ * blocks this replaces.
102
+ */
103
+ export declare function buildLogicalFilter<TFilter, TDoc = any>(filter: TFilter | null | undefined, build: (filter?: TFilter | null) => QueryFilter<TDoc>): QueryFilter<TDoc>;
104
+ /**
105
+ * Combine multiple filters with logical operator
106
+ */
107
+ export declare function combineFilters(filters: Array<QueryFilter<any> | undefined>, operator?: LogicalOperator): QueryFilter<any>;
108
+ /**
109
+ * Helper to add a filter condition to a query object
110
+ */
111
+ export declare function addFilterCondition(query: QueryFilter<any>, field: string, condition: any): void;
112
+ //# sourceMappingURL=filter.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.utils.d.ts","sourceRoot":"","sources":["../../src/filters/filter.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The generated-GraphQL filter DSL.
3
+ *
4
+ * A separate entry point (`@nxgt/shared-mongo/filters`) rather than part of the
5
+ * package root, because it and the REST filter helpers in `../utils/filter.utils.ts`
6
+ * share three names with incompatible meanings — most sharply
7
+ * `buildArrayFilter`, whose default is an exact match on one side and `$in` on
8
+ * the other. Merging them would silently change what a query matches. It also
9
+ * carries its own `SortDirection` and `buildSort`, which mean something else
10
+ * again from the ones in `@nxgt/shared`.
11
+ *
12
+ * Import from here when the filters come from a GraphQL input; import from the
13
+ * package root when they come from REST query parameters.
14
+ */
15
+ export * from './filter.utils';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,cAAc,gBAAgB,CAAC"}