@webiny/api-audit-logs 6.3.0-beta.4 → 6.4.0-beta.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 (196) hide show
  1. package/abstractions.js +2 -3
  2. package/abstractions.js.map +1 -1
  3. package/config.js +2 -1
  4. package/config.js.map +1 -1
  5. package/context/AuditLogsContextValue.js +115 -125
  6. package/context/AuditLogsContextValue.js.map +1 -1
  7. package/context/index.js +21 -27
  8. package/context/index.js.map +1 -1
  9. package/events/AuditLogAfterCreateEvent.js +8 -5
  10. package/events/AuditLogAfterCreateEvent.js.map +1 -1
  11. package/events/AuditLogAfterUpdateEvent.js +8 -5
  12. package/events/AuditLogAfterUpdateEvent.js.map +1 -1
  13. package/events/AuditLogBeforeCreateEvent.js +8 -5
  14. package/events/AuditLogBeforeCreateEvent.js.map +1 -1
  15. package/events/AuditLogBeforeUpdateEvent.js +8 -5
  16. package/events/AuditLogBeforeUpdateEvent.js.map +1 -1
  17. package/events/abstractions.js +5 -24
  18. package/events/abstractions.js.map +1 -1
  19. package/events/index.js +0 -2
  20. package/graphql/schema.js +37 -48
  21. package/graphql/schema.js.map +1 -1
  22. package/graphql/validation.d.ts +3 -3
  23. package/graphql/validation.js +26 -30
  24. package/graphql/validation.js.map +1 -1
  25. package/index.js +18 -15
  26. package/index.js.map +1 -1
  27. package/package.json +26 -26
  28. package/storage/AccessPatternHandler.js +31 -52
  29. package/storage/AccessPatternHandler.js.map +1 -1
  30. package/storage/Converter.js +45 -48
  31. package/storage/Converter.js.map +1 -1
  32. package/storage/Storage.js +69 -77
  33. package/storage/Storage.js.map +1 -1
  34. package/storage/abstractions/AccessPattern.js +0 -3
  35. package/storage/abstractions/AccessPatternHandler.js +0 -3
  36. package/storage/abstractions/Converter.js +0 -3
  37. package/storage/abstractions/Storage.js +0 -3
  38. package/storage/accessPatterns/AppAccessPattern.js +31 -25
  39. package/storage/accessPatterns/AppAccessPattern.js.map +1 -1
  40. package/storage/accessPatterns/AppCreatedByAccessPattern.js +34 -28
  41. package/storage/accessPatterns/AppCreatedByAccessPattern.js.map +1 -1
  42. package/storage/accessPatterns/AppEntityAccessPattern.js +31 -25
  43. package/storage/accessPatterns/AppEntityAccessPattern.js.map +1 -1
  44. package/storage/accessPatterns/AppEntityActionAccessPattern.js +31 -25
  45. package/storage/accessPatterns/AppEntityActionAccessPattern.js.map +1 -1
  46. package/storage/accessPatterns/AppEntityActionCreatedByAccessPattern.js +34 -28
  47. package/storage/accessPatterns/AppEntityActionCreatedByAccessPattern.js.map +1 -1
  48. package/storage/accessPatterns/AppEntityCreatedByAccessPattern.js +34 -28
  49. package/storage/accessPatterns/AppEntityCreatedByAccessPattern.js.map +1 -1
  50. package/storage/accessPatterns/BaseAccessPattern.js +47 -70
  51. package/storage/accessPatterns/BaseAccessPattern.js.map +1 -1
  52. package/storage/accessPatterns/CreatedByAccessPattern.js +34 -28
  53. package/storage/accessPatterns/CreatedByAccessPattern.js.map +1 -1
  54. package/storage/accessPatterns/CreatedOnAccessPattern.js +34 -26
  55. package/storage/accessPatterns/CreatedOnAccessPattern.js.map +1 -1
  56. package/storage/accessPatterns/DefaultAccessPattern.js +31 -32
  57. package/storage/accessPatterns/DefaultAccessPattern.js.map +1 -1
  58. package/storage/accessPatterns/EntityIdAccessPattern.js +32 -27
  59. package/storage/accessPatterns/EntityIdAccessPattern.js.map +1 -1
  60. package/storage/accessPatterns/index.js +44 -34
  61. package/storage/accessPatterns/index.js.map +1 -1
  62. package/storage/cursorSchema.js +15 -18
  63. package/storage/cursorSchema.js.map +1 -1
  64. package/storage/entity.js +115 -122
  65. package/storage/entity.js.map +1 -1
  66. package/storage/results/ListErrorResult.js +9 -8
  67. package/storage/results/ListErrorResult.js.map +1 -1
  68. package/storage/results/ListSuccessResult.js +13 -12
  69. package/storage/results/ListSuccessResult.js.map +1 -1
  70. package/storage/results/index.js +0 -2
  71. package/storage/startKey.js +4 -5
  72. package/storage/startKey.js.map +1 -1
  73. package/storage/types.js +0 -3
  74. package/subscriptions/aco/handlers/AuditLogFolderAfterCreateHandler.js +26 -25
  75. package/subscriptions/aco/handlers/AuditLogFolderAfterCreateHandler.js.map +1 -1
  76. package/subscriptions/aco/handlers/AuditLogFolderAfterDeleteHandler.js +29 -28
  77. package/subscriptions/aco/handlers/AuditLogFolderAfterDeleteHandler.js.map +1 -1
  78. package/subscriptions/aco/handlers/AuditLogFolderAfterUpdateHandler.js +32 -32
  79. package/subscriptions/aco/handlers/AuditLogFolderAfterUpdateHandler.js.map +1 -1
  80. package/subscriptions/aco/index.js +5 -4
  81. package/subscriptions/aco/index.js.map +1 -1
  82. package/subscriptions/fileManager/handlers/AuditLogFileAfterCreateHandler.js +21 -20
  83. package/subscriptions/fileManager/handlers/AuditLogFileAfterCreateHandler.js.map +1 -1
  84. package/subscriptions/fileManager/handlers/AuditLogFileAfterDeleteHandler.js +21 -20
  85. package/subscriptions/fileManager/handlers/AuditLogFileAfterDeleteHandler.js.map +1 -1
  86. package/subscriptions/fileManager/handlers/AuditLogFileAfterUpdateHandler.js +24 -24
  87. package/subscriptions/fileManager/handlers/AuditLogFileAfterUpdateHandler.js.map +1 -1
  88. package/subscriptions/fileManager/handlers/AuditLogSettingsAfterUpdateHandler.js +24 -24
  89. package/subscriptions/fileManager/handlers/AuditLogSettingsAfterUpdateHandler.js.map +1 -1
  90. package/subscriptions/fileManager/index.js +6 -8
  91. package/subscriptions/fileManager/index.js.map +1 -1
  92. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterCreateEventHandler.js +21 -23
  93. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterCreateEventHandler.js.map +1 -1
  94. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterDeleteEventHandler.js +26 -29
  95. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterDeleteEventHandler.js.map +1 -1
  96. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterPublishEventHandler.js +21 -23
  97. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterPublishEventHandler.js.map +1 -1
  98. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterRestoreFromBinEventHandler.js +21 -23
  99. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterRestoreFromBinEventHandler.js.map +1 -1
  100. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterUnpublishEventHandler.js +21 -23
  101. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterUnpublishEventHandler.js.map +1 -1
  102. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterUpdateEventHandler.js +24 -27
  103. package/subscriptions/headlessCms/handlers/AuditLogEntryAfterUpdateEventHandler.js.map +1 -1
  104. package/subscriptions/headlessCms/handlers/AuditLogEntryRevisionAfterCreateEventHandler.js +21 -23
  105. package/subscriptions/headlessCms/handlers/AuditLogEntryRevisionAfterCreateEventHandler.js.map +1 -1
  106. package/subscriptions/headlessCms/handlers/AuditLogEntryRevisionAfterDeleteEventHandler.js +21 -23
  107. package/subscriptions/headlessCms/handlers/AuditLogEntryRevisionAfterDeleteEventHandler.js.map +1 -1
  108. package/subscriptions/headlessCms/handlers/AuditLogGroupAfterCreateEventHandler.js +21 -20
  109. package/subscriptions/headlessCms/handlers/AuditLogGroupAfterCreateEventHandler.js.map +1 -1
  110. package/subscriptions/headlessCms/handlers/AuditLogGroupAfterDeleteEventHandler.js +21 -20
  111. package/subscriptions/headlessCms/handlers/AuditLogGroupAfterDeleteEventHandler.js.map +1 -1
  112. package/subscriptions/headlessCms/handlers/AuditLogGroupAfterUpdateEventHandler.js +24 -24
  113. package/subscriptions/headlessCms/handlers/AuditLogGroupAfterUpdateEventHandler.js.map +1 -1
  114. package/subscriptions/headlessCms/handlers/AuditLogModelAfterCreateEventHandler.js +21 -20
  115. package/subscriptions/headlessCms/handlers/AuditLogModelAfterCreateEventHandler.js.map +1 -1
  116. package/subscriptions/headlessCms/handlers/AuditLogModelAfterDeleteEventHandler.js +21 -20
  117. package/subscriptions/headlessCms/handlers/AuditLogModelAfterDeleteEventHandler.js.map +1 -1
  118. package/subscriptions/headlessCms/handlers/AuditLogModelAfterUpdateEventHandler.js +24 -24
  119. package/subscriptions/headlessCms/handlers/AuditLogModelAfterUpdateEventHandler.js.map +1 -1
  120. package/subscriptions/headlessCms/index.js +16 -20
  121. package/subscriptions/headlessCms/index.js.map +1 -1
  122. package/subscriptions/index.js +8 -7
  123. package/subscriptions/index.js.map +1 -1
  124. package/subscriptions/mailer/handlers/AuditLogMailerSettingsAfterSaveHandler.js +23 -22
  125. package/subscriptions/mailer/handlers/AuditLogMailerSettingsAfterSaveHandler.js.map +1 -1
  126. package/subscriptions/mailer/index.js +3 -3
  127. package/subscriptions/mailer/index.js.map +1 -1
  128. package/subscriptions/security/handlers/AuditLogApiKeyAfterCreateHandler.js +31 -37
  129. package/subscriptions/security/handlers/AuditLogApiKeyAfterCreateHandler.js.map +1 -1
  130. package/subscriptions/security/handlers/AuditLogApiKeyAfterDeleteHandler.js +31 -37
  131. package/subscriptions/security/handlers/AuditLogApiKeyAfterDeleteHandler.js.map +1 -1
  132. package/subscriptions/security/handlers/AuditLogApiKeyAfterUpdateHandler.js +35 -42
  133. package/subscriptions/security/handlers/AuditLogApiKeyAfterUpdateHandler.js.map +1 -1
  134. package/subscriptions/security/handlers/AuditLogRoleAfterCreateHandler.js +21 -20
  135. package/subscriptions/security/handlers/AuditLogRoleAfterCreateHandler.js.map +1 -1
  136. package/subscriptions/security/handlers/AuditLogRoleAfterDeleteHandler.js +21 -20
  137. package/subscriptions/security/handlers/AuditLogRoleAfterDeleteHandler.js.map +1 -1
  138. package/subscriptions/security/handlers/AuditLogRoleAfterUpdateHandler.js +24 -24
  139. package/subscriptions/security/handlers/AuditLogRoleAfterUpdateHandler.js.map +1 -1
  140. package/subscriptions/security/handlers/AuditLogTeamAfterCreateHandler.js +21 -20
  141. package/subscriptions/security/handlers/AuditLogTeamAfterCreateHandler.js.map +1 -1
  142. package/subscriptions/security/handlers/AuditLogTeamAfterDeleteHandler.js +21 -20
  143. package/subscriptions/security/handlers/AuditLogTeamAfterDeleteHandler.js.map +1 -1
  144. package/subscriptions/security/handlers/AuditLogTeamAfterUpdateHandler.js +24 -24
  145. package/subscriptions/security/handlers/AuditLogTeamAfterUpdateHandler.js.map +1 -1
  146. package/subscriptions/security/handlers/AuditLogUserAfterCreateHandler.js +21 -20
  147. package/subscriptions/security/handlers/AuditLogUserAfterCreateHandler.js.map +1 -1
  148. package/subscriptions/security/handlers/AuditLogUserAfterDeleteHandler.js +21 -20
  149. package/subscriptions/security/handlers/AuditLogUserAfterDeleteHandler.js.map +1 -1
  150. package/subscriptions/security/handlers/AuditLogUserAfterUpdateHandler.js +24 -24
  151. package/subscriptions/security/handlers/AuditLogUserAfterUpdateHandler.js.map +1 -1
  152. package/subscriptions/security/handlers/cleanupApiKey.js +10 -16
  153. package/subscriptions/security/handlers/cleanupApiKey.js.map +1 -1
  154. package/subscriptions/security/index.js +14 -20
  155. package/subscriptions/security/index.js.map +1 -1
  156. package/subscriptions/websiteBuilder/index.js +14 -16
  157. package/subscriptions/websiteBuilder/index.js.map +1 -1
  158. package/subscriptions/websiteBuilder/pages/PageAfterCreateHandler.js +20 -19
  159. package/subscriptions/websiteBuilder/pages/PageAfterCreateHandler.js.map +1 -1
  160. package/subscriptions/websiteBuilder/pages/PageAfterCreateRevisionFromHandler.js +20 -19
  161. package/subscriptions/websiteBuilder/pages/PageAfterCreateRevisionFromHandler.js.map +1 -1
  162. package/subscriptions/websiteBuilder/pages/PageAfterDeleteHandler.js +20 -19
  163. package/subscriptions/websiteBuilder/pages/PageAfterDeleteHandler.js.map +1 -1
  164. package/subscriptions/websiteBuilder/pages/PageAfterDuplicateHandler.js +23 -23
  165. package/subscriptions/websiteBuilder/pages/PageAfterDuplicateHandler.js.map +1 -1
  166. package/subscriptions/websiteBuilder/pages/PageAfterMoveHandler.js +20 -19
  167. package/subscriptions/websiteBuilder/pages/PageAfterMoveHandler.js.map +1 -1
  168. package/subscriptions/websiteBuilder/pages/PageAfterPublishHandler.js +20 -19
  169. package/subscriptions/websiteBuilder/pages/PageAfterPublishHandler.js.map +1 -1
  170. package/subscriptions/websiteBuilder/pages/PageAfterUnpublishHandler.js +20 -19
  171. package/subscriptions/websiteBuilder/pages/PageAfterUnpublishHandler.js.map +1 -1
  172. package/subscriptions/websiteBuilder/pages/PageAfterUpdateHandler.js +23 -23
  173. package/subscriptions/websiteBuilder/pages/PageAfterUpdateHandler.js.map +1 -1
  174. package/subscriptions/websiteBuilder/redirects/RedirectAfterCreateHandler.js +20 -19
  175. package/subscriptions/websiteBuilder/redirects/RedirectAfterCreateHandler.js.map +1 -1
  176. package/subscriptions/websiteBuilder/redirects/RedirectAfterDeleteHandler.js +20 -19
  177. package/subscriptions/websiteBuilder/redirects/RedirectAfterDeleteHandler.js.map +1 -1
  178. package/subscriptions/websiteBuilder/redirects/RedirectAfterMoveHandler.js +20 -19
  179. package/subscriptions/websiteBuilder/redirects/RedirectAfterMoveHandler.js.map +1 -1
  180. package/subscriptions/websiteBuilder/redirects/RedirectAfterUpdateHandler.js +23 -23
  181. package/subscriptions/websiteBuilder/redirects/RedirectAfterUpdateHandler.js.map +1 -1
  182. package/types.js +0 -3
  183. package/utils/expiresAt.js +14 -19
  184. package/utils/expiresAt.js.map +1 -1
  185. package/utils/getAuditConfig.js +79 -98
  186. package/utils/getAuditConfig.js.map +1 -1
  187. package/utils/getAuditObject.js +14 -15
  188. package/utils/getAuditObject.js.map +1 -1
  189. package/events/index.js.map +0 -1
  190. package/storage/abstractions/AccessPattern.js.map +0 -1
  191. package/storage/abstractions/AccessPatternHandler.js.map +0 -1
  192. package/storage/abstractions/Converter.js.map +0 -1
  193. package/storage/abstractions/Storage.js.map +0 -1
  194. package/storage/results/index.js.map +0 -1
  195. package/storage/types.js.map +0 -1
  196. package/types.js.map +0 -1
package/abstractions.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
- // TODO: this is a bridge for legacy context; needs review and refactor of code that uses it.
3
-
4
- export const AuditLogsContext = createAbstraction("AuditLogsContext");
2
+ const AuditLogsContext = createAbstraction("AuditLogsContext");
3
+ export { AuditLogsContext };
5
4
 
6
5
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","AuditLogsContext"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { AuditLogsContext as Context } from \"~/types.js\";\n\n// TODO: this is a bridge for legacy context; needs review and refactor of code that uses it.\n\nexport const AuditLogsContext = createAbstraction<Context>(\"AuditLogsContext\");\n\nexport namespace AuditLogsContext {\n export type Interface = Context;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAGvD;;AAEA,OAAO,MAAMC,gBAAgB,GAAGD,iBAAiB,CAAU,kBAAkB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"abstractions.js","sources":["../src/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { AuditLogsContext as Context } from \"~/types.js\";\n\n// TODO: this is a bridge for legacy context; needs review and refactor of code that uses it.\n\nexport const AuditLogsContext = createAbstraction<Context>(\"AuditLogsContext\");\n\nexport namespace AuditLogsContext {\n export type Interface = Context;\n}\n"],"names":["AuditLogsContext","createAbstraction"],"mappings":";AAKO,MAAMA,mBAAmBC,kBAA2B"}
package/config.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { getAuditObject } from "./utils/getAuditObject.js";
2
2
  import { apps } from "@webiny/common-audit-logs";
3
- export const AUDIT = getAuditObject(apps);
3
+ const AUDIT = getAuditObject(apps);
4
+ export { AUDIT };
4
5
 
5
6
  //# sourceMappingURL=config.js.map
package/config.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["getAuditObject","apps","AUDIT"],"sources":["config.ts"],"sourcesContent":["import { getAuditObject } from \"~/utils/getAuditObject.js\";\nimport { apps } from \"@webiny/common-audit-logs\";\n\nexport const AUDIT = getAuditObject(apps);\n"],"mappings":"AAAA,SAASA,cAAc;AACvB,SAASC,IAAI,QAAQ,2BAA2B;AAEhD,OAAO,MAAMC,KAAK,GAAGF,cAAc,CAACC,IAAI,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"config.js","sources":["../src/config.ts"],"sourcesContent":["import { getAuditObject } from \"~/utils/getAuditObject.js\";\nimport { apps } from \"@webiny/common-audit-logs\";\n\nexport const AUDIT = getAuditObject(apps);\n"],"names":["AUDIT","getAuditObject","apps"],"mappings":";;AAGO,MAAMA,QAAQC,eAAeC"}
@@ -1,139 +1,129 @@
1
1
  import { convertExpiresAtDaysToDate } from "../utils/expiresAt.js";
2
2
  import { mdbid } from "@webiny/utils/mdbid.js";
3
3
  import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
4
- import { AuditLogBeforeCreateEvent, AuditLogAfterCreateEvent, AuditLogBeforeUpdateEvent, AuditLogAfterUpdateEvent } from "../events/index.js";
4
+ import { AuditLogAfterCreateEvent, AuditLogAfterUpdateEvent, AuditLogBeforeCreateEvent, AuditLogBeforeUpdateEvent } from "../events/index.js";
5
5
  class AuditLogsContextValueImpl {
6
- constructor(params) {
7
- this.getContext = params.getContext;
8
- this.deleteLogsAfterDays = params.deleteLogsAfterDays;
9
- this.storage = params.storage;
10
- this.eventPublisher = params.eventPublisher;
11
- }
12
- async createAuditLog(payload) {
13
- const context = this.getContext();
14
- const expiresAt = convertExpiresAtDaysToDate(this.deleteLogsAfterDays);
15
- const auditLog = {
16
- id: mdbid(),
17
- tenant: this.getTenantId(),
18
- createdBy: this.getIdentity(),
19
- createdOn: new Date(),
20
- ...payload,
21
- content: JSON.stringify(payload.content),
22
- expiresAt
23
- };
24
- await this.checkPermissions(auditLog);
25
- const beforeCreateEvent = new AuditLogBeforeCreateEvent({
26
- auditLog: auditLog,
27
- context,
28
- setAuditLog(input) {
29
- Object.assign(auditLog, input);
30
- }
31
- });
32
- await this.eventPublisher.publish(beforeCreateEvent);
33
- const result = await this.storage.store({
34
- data: auditLog
35
- });
36
- if (result.success) {
37
- const afterCreateEvent = new AuditLogAfterCreateEvent({
38
- auditLog: auditLog,
39
- context
40
- });
41
- await this.eventPublisher.publish(afterCreateEvent);
42
- return result.data;
6
+ constructor(params){
7
+ this.getContext = params.getContext;
8
+ this.deleteLogsAfterDays = params.deleteLogsAfterDays;
9
+ this.storage = params.storage;
10
+ this.eventPublisher = params.eventPublisher;
43
11
  }
44
- throw result.error;
45
- }
46
- async updateAuditLog(original, payload) {
47
- const context = this.getContext();
48
- const auditLog = {
49
- ...original,
50
- ...payload,
51
- content: payload.content ? JSON.stringify(payload.content) : original.content
52
- };
53
- await this.checkPermissions(auditLog);
54
- const beforeUpdateEvent = new AuditLogBeforeUpdateEvent({
55
- original,
56
- auditLog,
57
- context,
58
- setAuditLog(input) {
59
- Object.assign(auditLog, input);
60
- }
61
- });
62
- await this.eventPublisher.publish(beforeUpdateEvent);
63
- const result = await this.storage.store({
64
- data: auditLog
65
- });
66
- if (result.success) {
67
- const afterUpdateEvent = new AuditLogAfterUpdateEvent({
68
- original: original,
69
- auditLog: auditLog,
70
- context
71
- });
72
- await this.eventPublisher.publish(afterUpdateEvent);
73
- return result.data;
12
+ async createAuditLog(payload) {
13
+ const context = this.getContext();
14
+ const expiresAt = convertExpiresAtDaysToDate(this.deleteLogsAfterDays);
15
+ const auditLog = {
16
+ id: mdbid(),
17
+ tenant: this.getTenantId(),
18
+ createdBy: this.getIdentity(),
19
+ createdOn: new Date(),
20
+ ...payload,
21
+ content: JSON.stringify(payload.content),
22
+ expiresAt
23
+ };
24
+ await this.checkPermissions(auditLog);
25
+ const beforeCreateEvent = new AuditLogBeforeCreateEvent({
26
+ auditLog: auditLog,
27
+ context,
28
+ setAuditLog (input) {
29
+ Object.assign(auditLog, input);
30
+ }
31
+ });
32
+ await this.eventPublisher.publish(beforeCreateEvent);
33
+ const result = await this.storage.store({
34
+ data: auditLog
35
+ });
36
+ if (result.success) {
37
+ const afterCreateEvent = new AuditLogAfterCreateEvent({
38
+ auditLog: auditLog,
39
+ context
40
+ });
41
+ await this.eventPublisher.publish(afterCreateEvent);
42
+ return result.data;
43
+ }
44
+ throw result.error;
45
+ }
46
+ async updateAuditLog(original, payload) {
47
+ const context = this.getContext();
48
+ const auditLog = {
49
+ ...original,
50
+ ...payload,
51
+ content: payload.content ? JSON.stringify(payload.content) : original.content
52
+ };
53
+ await this.checkPermissions(auditLog);
54
+ const beforeUpdateEvent = new AuditLogBeforeUpdateEvent({
55
+ original,
56
+ auditLog,
57
+ context,
58
+ setAuditLog (input) {
59
+ Object.assign(auditLog, input);
60
+ }
61
+ });
62
+ await this.eventPublisher.publish(beforeUpdateEvent);
63
+ const result = await this.storage.store({
64
+ data: auditLog
65
+ });
66
+ if (result.success) {
67
+ const afterUpdateEvent = new AuditLogAfterUpdateEvent({
68
+ original: original,
69
+ auditLog: auditLog,
70
+ context
71
+ });
72
+ await this.eventPublisher.publish(afterUpdateEvent);
73
+ return result.data;
74
+ }
75
+ throw result.error;
76
+ }
77
+ async getAuditLog(id) {
78
+ const result = await this.storage.fetch({
79
+ id,
80
+ tenant: this.getTenantId()
81
+ });
82
+ if (result.success) {
83
+ await this.checkPermissions(result.data);
84
+ return result.data;
85
+ }
86
+ throw result.error;
74
87
  }
75
- throw result.error;
76
- }
77
- async getAuditLog(id) {
78
- const result = await this.storage.fetch({
79
- id,
80
- tenant: this.getTenantId()
81
- });
82
- if (result.success) {
83
- await this.checkPermissions(result.data);
84
- return result.data;
88
+ async listAuditLogs(params) {
89
+ const result = await this.storage.list({
90
+ ...params,
91
+ tenant: this.getTenantId()
92
+ });
93
+ if (result.success) return {
94
+ items: result.data,
95
+ meta: {
96
+ cursor: result.meta.after || null,
97
+ hasMoreItems: result.meta.hasMoreItems
98
+ }
99
+ };
100
+ throw result.error;
85
101
  }
86
- throw result.error;
87
- }
88
- async listAuditLogs(params) {
89
- const result = await this.storage.list({
90
- ...params,
91
- tenant: this.getTenantId()
92
- });
93
- if (result.success) {
94
- return {
95
- items: result.data,
96
- meta: {
97
- cursor: result.meta.after || null,
98
- hasMoreItems: result.meta.hasMoreItems
102
+ async checkPermissions(auditLog) {
103
+ if (!auditLog.action) throw new Error("Audit log action is not defined. Cannot check permissions.");
104
+ const permissions = await this.getContext().security.getPermissions("al.*");
105
+ for (const permission of permissions){
106
+ if ("*" === permission.name) return;
107
+ if ("al.*" === permission.name) return;
108
+ if (permission.name === `al.${auditLog.action}`) return;
99
109
  }
100
- };
110
+ throw new NotAuthorizedError({
111
+ message: "You cannot access audit logs."
112
+ });
101
113
  }
102
- throw result.error;
103
- }
104
- async checkPermissions(auditLog) {
105
- if (!auditLog.action) {
106
- throw new Error("Audit log action is not defined. Cannot check permissions.");
114
+ getTenantId() {
115
+ return this.getContext().tenancy.getCurrentTenant().id;
107
116
  }
108
- const permissions = await this.getContext().security.getPermissions("al.*");
109
- for (const permission of permissions) {
110
- if (permission.name === "*") {
111
- return;
112
- }
113
- if (permission.name === "al.*") {
114
- return;
115
- } else if (permission.name === `al.${auditLog.action}`) {
116
- return;
117
- }
117
+ getIdentity() {
118
+ const identity = this.getContext().security.getIdentity();
119
+ return {
120
+ id: identity.id,
121
+ type: identity.type,
122
+ displayName: identity.displayName || "unknown"
123
+ };
118
124
  }
119
- throw new NotAuthorizedError({
120
- message: "You cannot access audit logs."
121
- });
122
- }
123
- getTenantId() {
124
- return this.getContext().tenancy.getCurrentTenant().id;
125
- }
126
- getIdentity() {
127
- const identity = this.getContext().security.getIdentity();
128
- return {
129
- id: identity.id,
130
- type: identity.type,
131
- displayName: identity.displayName || "unknown"
132
- };
133
- }
134
125
  }
135
- export const createAuditLogsContextValue = params => {
136
- return new AuditLogsContextValueImpl(params);
137
- };
126
+ const createAuditLogsContextValue = (params)=>new AuditLogsContextValueImpl(params);
127
+ export { createAuditLogsContextValue };
138
128
 
139
129
  //# sourceMappingURL=AuditLogsContextValue.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["convertExpiresAtDaysToDate","mdbid","NotAuthorizedError","AuditLogBeforeCreateEvent","AuditLogAfterCreateEvent","AuditLogBeforeUpdateEvent","AuditLogAfterUpdateEvent","AuditLogsContextValueImpl","constructor","params","getContext","deleteLogsAfterDays","storage","eventPublisher","createAuditLog","payload","context","expiresAt","auditLog","id","tenant","getTenantId","createdBy","getIdentity","createdOn","Date","content","JSON","stringify","checkPermissions","beforeCreateEvent","setAuditLog","input","Object","assign","publish","result","store","data","success","afterCreateEvent","error","updateAuditLog","original","beforeUpdateEvent","afterUpdateEvent","getAuditLog","fetch","listAuditLogs","list","items","meta","cursor","after","hasMoreItems","action","Error","permissions","security","getPermissions","permission","name","message","tenancy","getCurrentTenant","identity","type","displayName","createAuditLogsContextValue"],"sources":["AuditLogsContextValue.ts"],"sourcesContent":["import type {\n AuditLogPayload,\n AuditLogsContext,\n AuditLogsContextValue,\n IListAuditLogsParams,\n IListAuditLogsResult\n} from \"~/types.js\";\nimport { convertExpiresAtDaysToDate } from \"~/utils/expiresAt.js\";\nimport type { IAuditLog, IAuditLogCreatedBy } from \"~/storage/types.js\";\nimport { mdbid } from \"@webiny/utils/mdbid.js\";\nimport type { IStorage, IStorageListParams } from \"~/storage/abstractions/Storage.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\nimport type { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n AuditLogBeforeCreateEvent,\n AuditLogAfterCreateEvent,\n AuditLogBeforeUpdateEvent,\n AuditLogAfterUpdateEvent\n} from \"~/events/index.js\";\n\nexport interface IAuditLogsContextValueParams {\n getContext: () => AuditLogsContext;\n deleteLogsAfterDays: number;\n storage: IStorage;\n eventPublisher: EventPublisher.Interface;\n}\n\nclass AuditLogsContextValueImpl implements AuditLogsContextValue {\n private readonly getContext;\n public readonly deleteLogsAfterDays;\n private readonly storage: IStorage;\n private readonly eventPublisher: EventPublisher.Interface;\n\n public constructor(params: IAuditLogsContextValueParams) {\n this.getContext = params.getContext;\n this.deleteLogsAfterDays = params.deleteLogsAfterDays;\n this.storage = params.storage;\n this.eventPublisher = params.eventPublisher;\n }\n\n public async createAuditLog(payload: AuditLogPayload): Promise<IAuditLog> {\n const context = this.getContext();\n const expiresAt = convertExpiresAtDaysToDate(this.deleteLogsAfterDays);\n\n const auditLog: IAuditLog = {\n id: mdbid(),\n tenant: this.getTenantId(),\n createdBy: this.getIdentity(),\n createdOn: new Date(),\n ...payload,\n content: JSON.stringify(payload.content),\n expiresAt\n };\n await this.checkPermissions(auditLog);\n\n const beforeCreateEvent = new AuditLogBeforeCreateEvent({\n auditLog: auditLog,\n context,\n setAuditLog(input) {\n Object.assign(auditLog, input);\n }\n });\n await this.eventPublisher.publish(beforeCreateEvent);\n\n const result = await this.storage.store({\n data: auditLog\n });\n if (result.success) {\n const afterCreateEvent = new AuditLogAfterCreateEvent({\n auditLog: auditLog,\n context\n });\n await this.eventPublisher.publish(afterCreateEvent);\n return result.data;\n }\n throw result.error;\n }\n\n public async updateAuditLog(\n original: IAuditLog,\n payload: Partial<AuditLogPayload>\n ): Promise<IAuditLog> {\n const context = this.getContext();\n const auditLog: IAuditLog = {\n ...original,\n ...payload,\n content: payload.content ? JSON.stringify(payload.content) : original.content\n };\n await this.checkPermissions(auditLog);\n\n const beforeUpdateEvent = new AuditLogBeforeUpdateEvent({\n original,\n auditLog,\n context,\n setAuditLog(input) {\n Object.assign(auditLog, input);\n }\n });\n await this.eventPublisher.publish(beforeUpdateEvent);\n\n const result = await this.storage.store({\n data: auditLog\n });\n if (result.success) {\n const afterUpdateEvent = new AuditLogAfterUpdateEvent({\n original: original,\n auditLog: auditLog,\n context\n });\n await this.eventPublisher.publish(afterUpdateEvent);\n return result.data;\n }\n throw result.error;\n }\n\n public async getAuditLog(id: string): Promise<IAuditLog | null> {\n const result = await this.storage.fetch({\n id,\n tenant: this.getTenantId()\n });\n if (result.success) {\n await this.checkPermissions(result.data);\n return result.data;\n }\n throw result.error;\n }\n\n public async listAuditLogs(params: IListAuditLogsParams): Promise<IListAuditLogsResult> {\n const result = await this.storage.list({\n ...params,\n tenant: this.getTenantId()\n } as unknown as IStorageListParams);\n if (result.success) {\n return {\n items: result.data,\n meta: {\n cursor: result.meta.after || null,\n hasMoreItems: result.meta.hasMoreItems\n }\n };\n }\n throw result.error;\n }\n\n private async checkPermissions(auditLog: Pick<IAuditLog, \"action\">): Promise<void> {\n if (!auditLog.action) {\n throw new Error(\"Audit log action is not defined. Cannot check permissions.\");\n }\n const permissions = await this.getContext().security.getPermissions(\"al.*\");\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return;\n }\n if (permission.name === \"al.*\") {\n return;\n } else if (permission.name === `al.${auditLog.action}`) {\n return;\n }\n }\n\n throw new NotAuthorizedError({\n message: \"You cannot access audit logs.\"\n });\n }\n\n private getTenantId(): string {\n return this.getContext().tenancy.getCurrentTenant().id;\n }\n\n private getIdentity(): IAuditLogCreatedBy {\n const identity = this.getContext().security.getIdentity();\n return {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName || \"unknown\"\n };\n }\n}\n\nexport const createAuditLogsContextValue = (\n params: IAuditLogsContextValueParams\n): AuditLogsContextValue => {\n return new AuditLogsContextValueImpl(params);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"context/AuditLogsContextValue.js","sources":["../../src/context/AuditLogsContextValue.ts"],"sourcesContent":["import type {\n AuditLogPayload,\n AuditLogsContext,\n AuditLogsContextValue,\n IListAuditLogsParams,\n IListAuditLogsResult\n} from \"~/types.js\";\nimport { convertExpiresAtDaysToDate } from \"~/utils/expiresAt.js\";\nimport type { IAuditLog, IAuditLogCreatedBy } from \"~/storage/types.js\";\nimport { mdbid } from \"@webiny/utils/mdbid.js\";\nimport type { IStorage, IStorageListParams } from \"~/storage/abstractions/Storage.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\nimport type { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {\n AuditLogBeforeCreateEvent,\n AuditLogAfterCreateEvent,\n AuditLogBeforeUpdateEvent,\n AuditLogAfterUpdateEvent\n} from \"~/events/index.js\";\n\nexport interface IAuditLogsContextValueParams {\n getContext: () => AuditLogsContext;\n deleteLogsAfterDays: number;\n storage: IStorage;\n eventPublisher: EventPublisher.Interface;\n}\n\nclass AuditLogsContextValueImpl implements AuditLogsContextValue {\n private readonly getContext;\n public readonly deleteLogsAfterDays;\n private readonly storage: IStorage;\n private readonly eventPublisher: EventPublisher.Interface;\n\n public constructor(params: IAuditLogsContextValueParams) {\n this.getContext = params.getContext;\n this.deleteLogsAfterDays = params.deleteLogsAfterDays;\n this.storage = params.storage;\n this.eventPublisher = params.eventPublisher;\n }\n\n public async createAuditLog(payload: AuditLogPayload): Promise<IAuditLog> {\n const context = this.getContext();\n const expiresAt = convertExpiresAtDaysToDate(this.deleteLogsAfterDays);\n\n const auditLog: IAuditLog = {\n id: mdbid(),\n tenant: this.getTenantId(),\n createdBy: this.getIdentity(),\n createdOn: new Date(),\n ...payload,\n content: JSON.stringify(payload.content),\n expiresAt\n };\n await this.checkPermissions(auditLog);\n\n const beforeCreateEvent = new AuditLogBeforeCreateEvent({\n auditLog: auditLog,\n context,\n setAuditLog(input) {\n Object.assign(auditLog, input);\n }\n });\n await this.eventPublisher.publish(beforeCreateEvent);\n\n const result = await this.storage.store({\n data: auditLog\n });\n if (result.success) {\n const afterCreateEvent = new AuditLogAfterCreateEvent({\n auditLog: auditLog,\n context\n });\n await this.eventPublisher.publish(afterCreateEvent);\n return result.data;\n }\n throw result.error;\n }\n\n public async updateAuditLog(\n original: IAuditLog,\n payload: Partial<AuditLogPayload>\n ): Promise<IAuditLog> {\n const context = this.getContext();\n const auditLog: IAuditLog = {\n ...original,\n ...payload,\n content: payload.content ? JSON.stringify(payload.content) : original.content\n };\n await this.checkPermissions(auditLog);\n\n const beforeUpdateEvent = new AuditLogBeforeUpdateEvent({\n original,\n auditLog,\n context,\n setAuditLog(input) {\n Object.assign(auditLog, input);\n }\n });\n await this.eventPublisher.publish(beforeUpdateEvent);\n\n const result = await this.storage.store({\n data: auditLog\n });\n if (result.success) {\n const afterUpdateEvent = new AuditLogAfterUpdateEvent({\n original: original,\n auditLog: auditLog,\n context\n });\n await this.eventPublisher.publish(afterUpdateEvent);\n return result.data;\n }\n throw result.error;\n }\n\n public async getAuditLog(id: string): Promise<IAuditLog | null> {\n const result = await this.storage.fetch({\n id,\n tenant: this.getTenantId()\n });\n if (result.success) {\n await this.checkPermissions(result.data);\n return result.data;\n }\n throw result.error;\n }\n\n public async listAuditLogs(params: IListAuditLogsParams): Promise<IListAuditLogsResult> {\n const result = await this.storage.list({\n ...params,\n tenant: this.getTenantId()\n } as unknown as IStorageListParams);\n if (result.success) {\n return {\n items: result.data,\n meta: {\n cursor: result.meta.after || null,\n hasMoreItems: result.meta.hasMoreItems\n }\n };\n }\n throw result.error;\n }\n\n private async checkPermissions(auditLog: Pick<IAuditLog, \"action\">): Promise<void> {\n if (!auditLog.action) {\n throw new Error(\"Audit log action is not defined. Cannot check permissions.\");\n }\n const permissions = await this.getContext().security.getPermissions(\"al.*\");\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return;\n }\n if (permission.name === \"al.*\") {\n return;\n } else if (permission.name === `al.${auditLog.action}`) {\n return;\n }\n }\n\n throw new NotAuthorizedError({\n message: \"You cannot access audit logs.\"\n });\n }\n\n private getTenantId(): string {\n return this.getContext().tenancy.getCurrentTenant().id;\n }\n\n private getIdentity(): IAuditLogCreatedBy {\n const identity = this.getContext().security.getIdentity();\n return {\n id: identity.id,\n type: identity.type,\n displayName: identity.displayName || \"unknown\"\n };\n }\n}\n\nexport const createAuditLogsContextValue = (\n params: IAuditLogsContextValueParams\n): AuditLogsContextValue => {\n return new AuditLogsContextValueImpl(params);\n};\n"],"names":["AuditLogsContextValueImpl","params","payload","context","expiresAt","convertExpiresAtDaysToDate","auditLog","mdbid","Date","JSON","beforeCreateEvent","AuditLogBeforeCreateEvent","input","Object","result","afterCreateEvent","AuditLogAfterCreateEvent","original","beforeUpdateEvent","AuditLogBeforeUpdateEvent","afterUpdateEvent","AuditLogAfterUpdateEvent","id","Error","permissions","permission","NotAuthorizedError","identity","createAuditLogsContextValue"],"mappings":"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"}
package/context/index.js CHANGED
@@ -3,35 +3,29 @@ import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.j
3
3
  import { createAuditLogsContextValue } from "./AuditLogsContextValue.js";
4
4
  import { createStorage } from "../storage/Storage.js";
5
5
  import { CompressionHandler } from "@webiny/utils/exports/api.js";
6
- const getDeleteLogsAfterDays = days => {
7
- if (days && days > 0) {
8
- return days;
9
- }
10
- /**
11
- * Default days to delete logs after.
12
- */
13
- return 60;
6
+ const getDeleteLogsAfterDays = (days)=>{
7
+ if (days && days > 0) return days;
8
+ return 60;
14
9
  };
15
- export const createAuditLogsContext = params => {
16
- const plugin = new ContextPlugin(async context => {
17
- const compressionHandler = context.container.resolve(CompressionHandler);
18
- const storage = createStorage({
19
- tableName: params?.tableName,
20
- client: params?.documentClient || context.db.driver.getClient(),
21
- compressionHandler
10
+ const createAuditLogsContext = (params)=>{
11
+ const plugin = new ContextPlugin(async (context)=>{
12
+ const compressionHandler = context.container.resolve(CompressionHandler);
13
+ const storage = createStorage({
14
+ tableName: params?.tableName,
15
+ client: params?.documentClient || context.db.driver.getClient(),
16
+ compressionHandler
17
+ });
18
+ const eventPublisher = context.container.resolve(EventPublisher);
19
+ context.auditLogs = createAuditLogsContextValue({
20
+ getContext: ()=>context,
21
+ deleteLogsAfterDays: getDeleteLogsAfterDays(params?.deleteLogsAfterDays),
22
+ storage,
23
+ eventPublisher
24
+ });
22
25
  });
23
- const eventPublisher = context.container.resolve(EventPublisher);
24
- context.auditLogs = createAuditLogsContextValue({
25
- getContext: () => {
26
- return context;
27
- },
28
- deleteLogsAfterDays: getDeleteLogsAfterDays(params?.deleteLogsAfterDays),
29
- storage,
30
- eventPublisher
31
- });
32
- });
33
- plugin.name = "audit-logs.createContext";
34
- return plugin;
26
+ plugin.name = "audit-logs.createContext";
27
+ return plugin;
35
28
  };
29
+ export { createAuditLogsContext };
36
30
 
37
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ContextPlugin","EventPublisher","createAuditLogsContextValue","createStorage","CompressionHandler","getDeleteLogsAfterDays","days","createAuditLogsContext","params","plugin","context","compressionHandler","container","resolve","storage","tableName","client","documentClient","db","driver","getClient","eventPublisher","auditLogs","getContext","deleteLogsAfterDays","name"],"sources":["index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport type { AuditLogsContext } from \"~/types.js\";\nimport { createAuditLogsContextValue } from \"./AuditLogsContextValue.js\";\nimport { createStorage } from \"~/storage/Storage.js\";\nimport { CompressionHandler } from \"@webiny/utils/exports/api.js\";\n\nexport interface ISetupContextOptions {\n deleteLogsAfterDays: number | undefined;\n tableName: string | undefined;\n documentClient: DynamoDBDocument | undefined;\n}\n\nconst getDeleteLogsAfterDays = (days?: number): number => {\n if (days && days > 0) {\n return days;\n }\n /**\n * Default days to delete logs after.\n */\n return 60;\n};\n\nexport const createAuditLogsContext = (params?: ISetupContextOptions) => {\n const plugin = new ContextPlugin<AuditLogsContext>(async context => {\n const compressionHandler = context.container.resolve(CompressionHandler);\n\n const storage = createStorage({\n tableName: params?.tableName,\n client: params?.documentClient || (context.db.driver.getClient() as DynamoDBDocument),\n compressionHandler\n });\n\n const eventPublisher = context.container.resolve(EventPublisher);\n\n context.auditLogs = createAuditLogsContextValue({\n getContext: () => {\n return context;\n },\n deleteLogsAfterDays: getDeleteLogsAfterDays(params?.deleteLogsAfterDays),\n storage,\n eventPublisher\n });\n });\n\n plugin.name = \"audit-logs.createContext\";\n\n return plugin;\n};\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,aAAa;AAC3C,SAASC,cAAc,QAAQ,mDAAmD;AAGlF,SAASC,2BAA2B;AACpC,SAASC,aAAa;AACtB,SAASC,kBAAkB,QAAQ,8BAA8B;AAQjE,MAAMC,sBAAsB,GAAIC,IAAa,IAAa;EACtD,IAAIA,IAAI,IAAIA,IAAI,GAAG,CAAC,EAAE;IAClB,OAAOA,IAAI;EACf;EACA;AACJ;AACA;EACI,OAAO,EAAE;AACb,CAAC;AAED,OAAO,MAAMC,sBAAsB,GAAIC,MAA6B,IAAK;EACrE,MAAMC,MAAM,GAAG,IAAIT,aAAa,CAAmB,MAAMU,OAAO,IAAI;IAChE,MAAMC,kBAAkB,GAAGD,OAAO,CAACE,SAAS,CAACC,OAAO,CAACT,kBAAkB,CAAC;IAExE,MAAMU,OAAO,GAAGX,aAAa,CAAC;MAC1BY,SAAS,EAAEP,MAAM,EAAEO,SAAS;MAC5BC,MAAM,EAAER,MAAM,EAAES,cAAc,IAAKP,OAAO,CAACQ,EAAE,CAACC,MAAM,CAACC,SAAS,CAAC,CAAsB;MACrFT;IACJ,CAAC,CAAC;IAEF,MAAMU,cAAc,GAAGX,OAAO,CAACE,SAAS,CAACC,OAAO,CAACZ,cAAc,CAAC;IAEhES,OAAO,CAACY,SAAS,GAAGpB,2BAA2B,CAAC;MAC5CqB,UAAU,EAAEA,CAAA,KAAM;QACd,OAAOb,OAAO;MAClB,CAAC;MACDc,mBAAmB,EAAEnB,sBAAsB,CAACG,MAAM,EAAEgB,mBAAmB,CAAC;MACxEV,OAAO;MACPO;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;EAEFZ,MAAM,CAACgB,IAAI,GAAG,0BAA0B;EAExC,OAAOhB,MAAM;AACjB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"context/index.js","sources":["../../src/context/index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\nimport type { AuditLogsContext } from \"~/types.js\";\nimport { createAuditLogsContextValue } from \"./AuditLogsContextValue.js\";\nimport { createStorage } from \"~/storage/Storage.js\";\nimport { CompressionHandler } from \"@webiny/utils/exports/api.js\";\n\nexport interface ISetupContextOptions {\n deleteLogsAfterDays: number | undefined;\n tableName: string | undefined;\n documentClient: DynamoDBDocument | undefined;\n}\n\nconst getDeleteLogsAfterDays = (days?: number): number => {\n if (days && days > 0) {\n return days;\n }\n /**\n * Default days to delete logs after.\n */\n return 60;\n};\n\nexport const createAuditLogsContext = (params?: ISetupContextOptions) => {\n const plugin = new ContextPlugin<AuditLogsContext>(async context => {\n const compressionHandler = context.container.resolve(CompressionHandler);\n\n const storage = createStorage({\n tableName: params?.tableName,\n client: params?.documentClient || (context.db.driver.getClient() as DynamoDBDocument),\n compressionHandler\n });\n\n const eventPublisher = context.container.resolve(EventPublisher);\n\n context.auditLogs = createAuditLogsContextValue({\n getContext: () => {\n return context;\n },\n deleteLogsAfterDays: getDeleteLogsAfterDays(params?.deleteLogsAfterDays),\n storage,\n eventPublisher\n });\n });\n\n plugin.name = \"audit-logs.createContext\";\n\n return plugin;\n};\n"],"names":["getDeleteLogsAfterDays","days","createAuditLogsContext","params","plugin","ContextPlugin","context","compressionHandler","CompressionHandler","storage","createStorage","eventPublisher","EventPublisher","createAuditLogsContextValue"],"mappings":";;;;;AAcA,MAAMA,yBAAyB,CAACC;IAC5B,IAAIA,QAAQA,OAAO,GACf,OAAOA;IAKX,OAAO;AACX;AAEO,MAAMC,yBAAyB,CAACC;IACnC,MAAMC,SAAS,IAAIC,cAAgC,OAAMC;QACrD,MAAMC,qBAAqBD,QAAQ,SAAS,CAAC,OAAO,CAACE;QAErD,MAAMC,UAAUC,cAAc;YAC1B,WAAWP,QAAQ;YACnB,QAAQA,QAAQ,kBAAmBG,QAAQ,EAAE,CAAC,MAAM,CAAC,SAAS;YAC9DC;QACJ;QAEA,MAAMI,iBAAiBL,QAAQ,SAAS,CAAC,OAAO,CAACM;QAEjDN,QAAQ,SAAS,GAAGO,4BAA4B;YAC5C,YAAY,IACDP;YAEX,qBAAqBN,uBAAuBG,QAAQ;YACpDM;YACAE;QACJ;IACJ;IAEAP,OAAO,IAAI,GAAG;IAEd,OAAOA;AACX"}
@@ -1,10 +1,13 @@
1
1
  import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import { AuditLogAfterCreateHandler } from "./abstractions.js";
3
- export class AuditLogAfterCreateEvent extends DomainEvent {
4
- eventType = "auditLog.afterCreate";
5
- getHandlerAbstraction() {
6
- return AuditLogAfterCreateHandler;
7
- }
3
+ class AuditLogAfterCreateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return AuditLogAfterCreateHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "auditLog.afterCreate";
9
+ }
8
10
  }
11
+ export { AuditLogAfterCreateEvent };
9
12
 
10
13
  //# sourceMappingURL=AuditLogAfterCreateEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","AuditLogAfterCreateHandler","AuditLogAfterCreateEvent","eventType","getHandlerAbstraction"],"sources":["AuditLogAfterCreateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogAfterCreateHandler, AuditLogAfterCreatePayload } from \"./abstractions.js\";\n\nexport class AuditLogAfterCreateEvent extends DomainEvent<AuditLogAfterCreatePayload> {\n eventType = \"auditLog.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogAfterCreateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,0BAA0B;AAEnC,OAAO,MAAMC,wBAAwB,SAASF,WAAW,CAA6B;EAClFG,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,0BAA0B;EACrC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"events/AuditLogAfterCreateEvent.js","sources":["../../src/events/AuditLogAfterCreateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogAfterCreateHandler, AuditLogAfterCreatePayload } from \"./abstractions.js\";\n\nexport class AuditLogAfterCreateEvent extends DomainEvent<AuditLogAfterCreatePayload> {\n eventType = \"auditLog.afterCreate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogAfterCreateHandler;\n }\n}\n"],"names":["AuditLogAfterCreateEvent","DomainEvent","AuditLogAfterCreateHandler"],"mappings":";;AAGO,MAAMA,iCAAiCC;IAG1C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
@@ -1,10 +1,13 @@
1
1
  import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import { AuditLogAfterUpdateHandler } from "./abstractions.js";
3
- export class AuditLogAfterUpdateEvent extends DomainEvent {
4
- eventType = "auditLog.afterUpdate";
5
- getHandlerAbstraction() {
6
- return AuditLogAfterUpdateHandler;
7
- }
3
+ class AuditLogAfterUpdateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return AuditLogAfterUpdateHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "auditLog.afterUpdate";
9
+ }
8
10
  }
11
+ export { AuditLogAfterUpdateEvent };
9
12
 
10
13
  //# sourceMappingURL=AuditLogAfterUpdateEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","AuditLogAfterUpdateHandler","AuditLogAfterUpdateEvent","eventType","getHandlerAbstraction"],"sources":["AuditLogAfterUpdateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogAfterUpdateHandler, AuditLogAfterUpdatePayload } from \"./abstractions.js\";\n\nexport class AuditLogAfterUpdateEvent extends DomainEvent<AuditLogAfterUpdatePayload> {\n eventType = \"auditLog.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogAfterUpdateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,0BAA0B;AAEnC,OAAO,MAAMC,wBAAwB,SAASF,WAAW,CAA6B;EAClFG,SAAS,GAAG,sBAAsB;EAElCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,0BAA0B;EACrC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"events/AuditLogAfterUpdateEvent.js","sources":["../../src/events/AuditLogAfterUpdateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogAfterUpdateHandler, AuditLogAfterUpdatePayload } from \"./abstractions.js\";\n\nexport class AuditLogAfterUpdateEvent extends DomainEvent<AuditLogAfterUpdatePayload> {\n eventType = \"auditLog.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogAfterUpdateHandler;\n }\n}\n"],"names":["AuditLogAfterUpdateEvent","DomainEvent","AuditLogAfterUpdateHandler"],"mappings":";;AAGO,MAAMA,iCAAiCC;IAG1C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
@@ -1,10 +1,13 @@
1
1
  import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import { AuditLogBeforeCreateHandler } from "./abstractions.js";
3
- export class AuditLogBeforeCreateEvent extends DomainEvent {
4
- eventType = "auditLog.beforeCreate";
5
- getHandlerAbstraction() {
6
- return AuditLogBeforeCreateHandler;
7
- }
3
+ class AuditLogBeforeCreateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return AuditLogBeforeCreateHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "auditLog.beforeCreate";
9
+ }
8
10
  }
11
+ export { AuditLogBeforeCreateEvent };
9
12
 
10
13
  //# sourceMappingURL=AuditLogBeforeCreateEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","AuditLogBeforeCreateHandler","AuditLogBeforeCreateEvent","eventType","getHandlerAbstraction"],"sources":["AuditLogBeforeCreateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogBeforeCreateHandler, AuditLogBeforeCreatePayload } from \"./abstractions.js\";\n\nexport class AuditLogBeforeCreateEvent extends DomainEvent<AuditLogBeforeCreatePayload> {\n eventType = \"auditLog.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogBeforeCreateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,2BAA2B;AAEpC,OAAO,MAAMC,yBAAyB,SAASF,WAAW,CAA8B;EACpFG,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,2BAA2B;EACtC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"events/AuditLogBeforeCreateEvent.js","sources":["../../src/events/AuditLogBeforeCreateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogBeforeCreateHandler, AuditLogBeforeCreatePayload } from \"./abstractions.js\";\n\nexport class AuditLogBeforeCreateEvent extends DomainEvent<AuditLogBeforeCreatePayload> {\n eventType = \"auditLog.beforeCreate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogBeforeCreateHandler;\n }\n}\n"],"names":["AuditLogBeforeCreateEvent","DomainEvent","AuditLogBeforeCreateHandler"],"mappings":";;AAGO,MAAMA,kCAAkCC;IAG3C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
@@ -1,10 +1,13 @@
1
1
  import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
2
2
  import { AuditLogBeforeUpdateHandler } from "./abstractions.js";
3
- export class AuditLogBeforeUpdateEvent extends DomainEvent {
4
- eventType = "auditLog.beforeUpdate";
5
- getHandlerAbstraction() {
6
- return AuditLogBeforeUpdateHandler;
7
- }
3
+ class AuditLogBeforeUpdateEvent extends DomainEvent {
4
+ getHandlerAbstraction() {
5
+ return AuditLogBeforeUpdateHandler;
6
+ }
7
+ constructor(...args){
8
+ super(...args), this.eventType = "auditLog.beforeUpdate";
9
+ }
8
10
  }
11
+ export { AuditLogBeforeUpdateEvent };
9
12
 
10
13
  //# sourceMappingURL=AuditLogBeforeUpdateEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DomainEvent","AuditLogBeforeUpdateHandler","AuditLogBeforeUpdateEvent","eventType","getHandlerAbstraction"],"sources":["AuditLogBeforeUpdateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogBeforeUpdateHandler, AuditLogBeforeUpdatePayload } from \"./abstractions.js\";\n\nexport class AuditLogBeforeUpdateEvent extends DomainEvent<AuditLogBeforeUpdatePayload> {\n eventType = \"auditLog.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogBeforeUpdateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mDAAmD;AAC/E,SAASC,2BAA2B;AAEpC,OAAO,MAAMC,yBAAyB,SAASF,WAAW,CAA8B;EACpFG,SAAS,GAAG,uBAAuB;EAEnCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,2BAA2B;EACtC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"events/AuditLogBeforeUpdateEvent.js","sources":["../../src/events/AuditLogBeforeUpdateEvent.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { AuditLogBeforeUpdateHandler, AuditLogBeforeUpdatePayload } from \"./abstractions.js\";\n\nexport class AuditLogBeforeUpdateEvent extends DomainEvent<AuditLogBeforeUpdatePayload> {\n eventType = \"auditLog.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return AuditLogBeforeUpdateHandler;\n }\n}\n"],"names":["AuditLogBeforeUpdateEvent","DomainEvent","AuditLogBeforeUpdateHandler"],"mappings":";;AAGO,MAAMA,kCAAkCC;IAG3C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB"}
@@ -1,27 +1,8 @@
1
1
  import { createAbstraction } from "@webiny/feature/api";
2
-
3
- // ============================================================================
4
- // AuditLogBeforeCreate Event
5
- // ============================================================================
6
-
7
- export const AuditLogBeforeCreateHandler = createAbstraction("AuditLogBeforeCreateHandler");
8
-
9
- // ============================================================================
10
- // AuditLogAfterCreate Event
11
- // ============================================================================
12
-
13
- export const AuditLogAfterCreateHandler = createAbstraction("AuditLogAfterCreateHandler");
14
-
15
- // ============================================================================
16
- // AuditLogBeforeUpdate Event
17
- // ============================================================================
18
-
19
- export const AuditLogBeforeUpdateHandler = createAbstraction("AuditLogBeforeUpdateHandler");
20
-
21
- // ============================================================================
22
- // AuditLogAfterUpdate Event
23
- // ============================================================================
24
-
25
- export const AuditLogAfterUpdateHandler = createAbstraction("AuditLogAfterUpdateHandler");
2
+ const AuditLogBeforeCreateHandler = createAbstraction("AuditLogBeforeCreateHandler");
3
+ const AuditLogAfterCreateHandler = createAbstraction("AuditLogAfterCreateHandler");
4
+ const AuditLogBeforeUpdateHandler = createAbstraction("AuditLogBeforeUpdateHandler");
5
+ const AuditLogAfterUpdateHandler = createAbstraction("AuditLogAfterUpdateHandler");
6
+ export { AuditLogAfterCreateHandler, AuditLogAfterUpdateHandler, AuditLogBeforeCreateHandler, AuditLogBeforeUpdateHandler };
26
7
 
27
8
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","AuditLogBeforeCreateHandler","AuditLogAfterCreateHandler","AuditLogBeforeUpdateHandler","AuditLogAfterUpdateHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { IAuditLog } from \"~/storage/types.js\";\nimport type { AuditLogsContext } from \"~/types.js\";\n\n// ============================================================================\n// AuditLogBeforeCreate Event\n// ============================================================================\n\nexport interface AuditLogBeforeCreatePayload {\n auditLog: IAuditLog;\n context: AuditLogsContext;\n setAuditLog(auditLog: Partial<IAuditLog>): void;\n}\n\nexport const AuditLogBeforeCreateHandler = createAbstraction<\n IEventHandler<DomainEvent<AuditLogBeforeCreatePayload>>\n>(\"AuditLogBeforeCreateHandler\");\n\nexport namespace AuditLogBeforeCreateHandler {\n export type Interface = IEventHandler<DomainEvent<AuditLogBeforeCreatePayload>>;\n export type Event = DomainEvent<AuditLogBeforeCreatePayload>;\n}\n\n// ============================================================================\n// AuditLogAfterCreate Event\n// ============================================================================\n\nexport interface AuditLogAfterCreatePayload {\n auditLog: IAuditLog;\n context: AuditLogsContext;\n}\n\nexport const AuditLogAfterCreateHandler = createAbstraction<\n IEventHandler<DomainEvent<AuditLogAfterCreatePayload>>\n>(\"AuditLogAfterCreateHandler\");\n\nexport namespace AuditLogAfterCreateHandler {\n export type Interface = IEventHandler<DomainEvent<AuditLogAfterCreatePayload>>;\n export type Event = DomainEvent<AuditLogAfterCreatePayload>;\n}\n\n// ============================================================================\n// AuditLogBeforeUpdate Event\n// ============================================================================\n\nexport interface AuditLogBeforeUpdatePayload {\n auditLog: IAuditLog;\n original: IAuditLog;\n context: AuditLogsContext;\n setAuditLog(auditLog: Partial<IAuditLog>): void;\n}\n\nexport const AuditLogBeforeUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<AuditLogBeforeUpdatePayload>>\n>(\"AuditLogBeforeUpdateHandler\");\n\nexport namespace AuditLogBeforeUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<AuditLogBeforeUpdatePayload>>;\n export type Event = DomainEvent<AuditLogBeforeUpdatePayload>;\n}\n\n// ============================================================================\n// AuditLogAfterUpdate Event\n// ============================================================================\n\nexport interface AuditLogAfterUpdatePayload {\n auditLog: IAuditLog;\n original: IAuditLog;\n context: AuditLogsContext;\n}\n\nexport const AuditLogAfterUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<AuditLogAfterUpdatePayload>>\n>(\"AuditLogAfterUpdateHandler\");\n\nexport namespace AuditLogAfterUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<AuditLogAfterUpdatePayload>>;\n export type Event = DomainEvent<AuditLogAfterUpdatePayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAKvD;AACA;AACA;;AAQA,OAAO,MAAMC,2BAA2B,GAAGD,iBAAiB,CAE1D,6BAA6B,CAAC;;AAOhC;AACA;AACA;;AAOA,OAAO,MAAME,0BAA0B,GAAGF,iBAAiB,CAEzD,4BAA4B,CAAC;;AAO/B;AACA;AACA;;AASA,OAAO,MAAMG,2BAA2B,GAAGH,iBAAiB,CAE1D,6BAA6B,CAAC;;AAOhC;AACA;AACA;;AAQA,OAAO,MAAMI,0BAA0B,GAAGJ,iBAAiB,CAEzD,4BAA4B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"events/abstractions.js","sources":["../../src/events/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { IAuditLog } from \"~/storage/types.js\";\nimport type { AuditLogsContext } from \"~/types.js\";\n\n// ============================================================================\n// AuditLogBeforeCreate Event\n// ============================================================================\n\nexport interface AuditLogBeforeCreatePayload {\n auditLog: IAuditLog;\n context: AuditLogsContext;\n setAuditLog(auditLog: Partial<IAuditLog>): void;\n}\n\nexport const AuditLogBeforeCreateHandler = createAbstraction<\n IEventHandler<DomainEvent<AuditLogBeforeCreatePayload>>\n>(\"AuditLogBeforeCreateHandler\");\n\nexport namespace AuditLogBeforeCreateHandler {\n export type Interface = IEventHandler<DomainEvent<AuditLogBeforeCreatePayload>>;\n export type Event = DomainEvent<AuditLogBeforeCreatePayload>;\n}\n\n// ============================================================================\n// AuditLogAfterCreate Event\n// ============================================================================\n\nexport interface AuditLogAfterCreatePayload {\n auditLog: IAuditLog;\n context: AuditLogsContext;\n}\n\nexport const AuditLogAfterCreateHandler = createAbstraction<\n IEventHandler<DomainEvent<AuditLogAfterCreatePayload>>\n>(\"AuditLogAfterCreateHandler\");\n\nexport namespace AuditLogAfterCreateHandler {\n export type Interface = IEventHandler<DomainEvent<AuditLogAfterCreatePayload>>;\n export type Event = DomainEvent<AuditLogAfterCreatePayload>;\n}\n\n// ============================================================================\n// AuditLogBeforeUpdate Event\n// ============================================================================\n\nexport interface AuditLogBeforeUpdatePayload {\n auditLog: IAuditLog;\n original: IAuditLog;\n context: AuditLogsContext;\n setAuditLog(auditLog: Partial<IAuditLog>): void;\n}\n\nexport const AuditLogBeforeUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<AuditLogBeforeUpdatePayload>>\n>(\"AuditLogBeforeUpdateHandler\");\n\nexport namespace AuditLogBeforeUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<AuditLogBeforeUpdatePayload>>;\n export type Event = DomainEvent<AuditLogBeforeUpdatePayload>;\n}\n\n// ============================================================================\n// AuditLogAfterUpdate Event\n// ============================================================================\n\nexport interface AuditLogAfterUpdatePayload {\n auditLog: IAuditLog;\n original: IAuditLog;\n context: AuditLogsContext;\n}\n\nexport const AuditLogAfterUpdateHandler = createAbstraction<\n IEventHandler<DomainEvent<AuditLogAfterUpdatePayload>>\n>(\"AuditLogAfterUpdateHandler\");\n\nexport namespace AuditLogAfterUpdateHandler {\n export type Interface = IEventHandler<DomainEvent<AuditLogAfterUpdatePayload>>;\n export type Event = DomainEvent<AuditLogAfterUpdatePayload>;\n}\n"],"names":["AuditLogBeforeCreateHandler","createAbstraction","AuditLogAfterCreateHandler","AuditLogBeforeUpdateHandler","AuditLogAfterUpdateHandler"],"mappings":";AAeO,MAAMA,8BAA8BC,kBAEzC;AAgBK,MAAMC,6BAA6BD,kBAExC;AAkBK,MAAME,8BAA8BF,kBAEzC;AAiBK,MAAMG,6BAA6BH,kBAExC"}
package/events/index.js CHANGED
@@ -3,5 +3,3 @@ export * from "./AuditLogBeforeCreateEvent.js";
3
3
  export * from "./AuditLogAfterCreateEvent.js";
4
4
  export * from "./AuditLogBeforeUpdateEvent.js";
5
5
  export * from "./AuditLogAfterUpdateEvent.js";
6
-
7
- //# sourceMappingURL=index.js.map