velocious 1.0.484 → 1.0.486
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.
- package/README.md +2 -1
- package/build/current.js +3 -2
- package/build/database/query/create-index-base.js +1 -1
- package/build/database/query/create-table-base.js +2 -2
- package/build/database/record/auditing.js +407 -0
- package/build/database/record/index.js +101 -0
- package/build/src/current.d.ts +4 -3
- package/build/src/current.d.ts.map +1 -1
- package/build/src/current.js +4 -3
- package/build/src/database/query/create-index-base.js +2 -2
- package/build/src/database/query/create-table-base.js +4 -4
- package/build/src/database/record/auditing.d.ts +156 -0
- package/build/src/database/record/auditing.d.ts.map +1 -0
- package/build/src/database/record/auditing.js +349 -0
- package/build/src/database/record/index.d.ts +69 -0
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +89 -1
- package/build/src/tenants/tenant.d.ts +4 -3
- package/build/src/tenants/tenant.d.ts.map +1 -1
- package/build/src/tenants/tenant.js +4 -3
- package/build/tenants/tenant.js +3 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/current.js +3 -2
- package/src/database/query/create-index-base.js +1 -1
- package/src/database/query/create-table-base.js +2 -2
- package/src/database/record/auditing.js +407 -0
- package/src/database/record/index.js +101 -0
- package/src/tenants/tenant.js +3 -2
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import UUID from "pure-uuid";
|
|
3
|
+
/**
|
|
4
|
+
* AuditChanges type.
|
|
5
|
+
* @typedef {Record<string, ?>} AuditChanges
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* AuditEventPayload type.
|
|
9
|
+
* @typedef {object} AuditEventPayload
|
|
10
|
+
* @property {string} action - Audit action name.
|
|
11
|
+
* @property {number | string} auditId - Created audit row id.
|
|
12
|
+
* @property {AuditChanges | null} auditedChanges - Changes captured for the audit.
|
|
13
|
+
* @property {Record<string, ?> | null} params - Optional caller-supplied audit params.
|
|
14
|
+
* @property {import("./index.js").default} record - Audited record.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* AuditCallback type.
|
|
18
|
+
* @typedef {(payload: AuditEventPayload) => void | Promise<void>} AuditCallback
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* CreateAuditArgs type.
|
|
22
|
+
* @typedef {object} CreateAuditArgs
|
|
23
|
+
* @property {string} action - Audit action name.
|
|
24
|
+
* @property {AuditChanges | null} [auditedChanges] - Explicit changes to persist.
|
|
25
|
+
* @property {Record<string, ?> | null} [params] - Optional metadata to store with the audit.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* AuditedModelClass type.
|
|
29
|
+
* @typedef {typeof import("./index.js").default & {
|
|
30
|
+
* _auditCallbacks?: Record<string, AuditCallback[]>,
|
|
31
|
+
* _auditLifecycleCallbacksRegistered?: boolean
|
|
32
|
+
* }} AuditedModelClass
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* Adds automatic create/update/destroy auditing callbacks to a model class.
|
|
36
|
+
* @param {AuditedModelClass} modelClass - Model class to audit.
|
|
37
|
+
* @returns {void}
|
|
38
|
+
*/
|
|
39
|
+
function registerAuditing(modelClass) {
|
|
40
|
+
if (Object.prototype.hasOwnProperty.call(modelClass, "_auditLifecycleCallbacksRegistered") && modelClass._auditLifecycleCallbacksRegistered) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
modelClass._auditLifecycleCallbacksRegistered = true;
|
|
44
|
+
modelClass.beforeCreate("captureCreateAuditChanges");
|
|
45
|
+
modelClass.afterCreate("createCreateAudit");
|
|
46
|
+
modelClass.beforeUpdate("captureUpdateAuditChanges");
|
|
47
|
+
modelClass.afterUpdate("createUpdateAudit");
|
|
48
|
+
modelClass.afterDestroy("createDestroyAudit");
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Registers an audit event callback for a model/action pair.
|
|
52
|
+
* @param {AuditedModelClass} modelClass - Model class to observe.
|
|
53
|
+
* @param {string} action - Audit action name.
|
|
54
|
+
* @param {AuditCallback} callback - Callback invoked after matching audit rows are created.
|
|
55
|
+
* @returns {() => void} Unsubscribe function.
|
|
56
|
+
*/
|
|
57
|
+
function registerAuditCallback(modelClass, action, callback) {
|
|
58
|
+
const normalizedAction = normalizeAction(action);
|
|
59
|
+
const callbacks = auditCallbacksForModelClass(modelClass);
|
|
60
|
+
if (!callbacks[normalizedAction]) {
|
|
61
|
+
callbacks[normalizedAction] = [];
|
|
62
|
+
}
|
|
63
|
+
callbacks[normalizedAction].push(callback);
|
|
64
|
+
return () => {
|
|
65
|
+
const actionCallbacks = callbacks[normalizedAction];
|
|
66
|
+
const index = actionCallbacks.indexOf(callback);
|
|
67
|
+
if (index >= 0) {
|
|
68
|
+
actionCallbacks.splice(index, 1);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Captures the new values for fields changed on a record.
|
|
74
|
+
* @param {import("./index.js").default} record - Record whose pending changes should be captured.
|
|
75
|
+
* @returns {AuditChanges} New values keyed by attribute name.
|
|
76
|
+
*/
|
|
77
|
+
function auditChangesForCurrentChanges(record) {
|
|
78
|
+
const changes = record.changes();
|
|
79
|
+
/** @type {AuditChanges} */
|
|
80
|
+
const auditedChanges = {};
|
|
81
|
+
const columnNameToAttributeName = record.getModelClass().getColumnNameToAttributeNameMap();
|
|
82
|
+
for (const [attributeName, change] of Object.entries(changes)) {
|
|
83
|
+
auditedChanges[columnNameToAttributeName[attributeName] || attributeName] = change[1];
|
|
84
|
+
}
|
|
85
|
+
return auditedChanges;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Captures the current attributes for a destroy audit.
|
|
89
|
+
* @param {import("./index.js").default} record - Record being destroyed.
|
|
90
|
+
* @returns {AuditChanges} Current attributes keyed by attribute name.
|
|
91
|
+
*/
|
|
92
|
+
function auditChangesForDestroy(record) {
|
|
93
|
+
return { ...record.attributes() };
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Creates an audit row for a record.
|
|
97
|
+
* @param {import("./index.js").default} record - Record to audit.
|
|
98
|
+
* @param {CreateAuditArgs} args - Audit row options.
|
|
99
|
+
* @returns {Promise<number | string>} Created audit row id.
|
|
100
|
+
*/
|
|
101
|
+
async function createAudit(record, args) {
|
|
102
|
+
const modelClass = /** @type {AuditedModelClass} */ (record.getModelClass());
|
|
103
|
+
return await modelClass._getConfiguration().ensureConnections({ name: `${modelClass.getModelName()} audit` }, async () => {
|
|
104
|
+
return await createAuditWithCurrentConnection(record, args, modelClass);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Creates an audit row using the current model database connection.
|
|
109
|
+
* @param {import("./index.js").default} record - Record to audit.
|
|
110
|
+
* @param {CreateAuditArgs} args - Audit row options.
|
|
111
|
+
* @param {AuditedModelClass} modelClass - Audited model class.
|
|
112
|
+
* @returns {Promise<number | string>} Created audit row id.
|
|
113
|
+
*/
|
|
114
|
+
async function createAuditWithCurrentConnection(record, args, modelClass) {
|
|
115
|
+
if (!record.isPersisted())
|
|
116
|
+
throw new Error(`Cannot audit unpersisted ${modelClass.getModelName()} record`);
|
|
117
|
+
const action = normalizeAction(args.action);
|
|
118
|
+
const auditedChanges = args.auditedChanges === undefined ? null : args.auditedChanges;
|
|
119
|
+
const params = args.params === undefined ? null : args.params;
|
|
120
|
+
const db = modelClass.connection();
|
|
121
|
+
const currentDate = new Date();
|
|
122
|
+
const auditActionId = await findOrCreateLookupId({
|
|
123
|
+
columnName: "action",
|
|
124
|
+
db,
|
|
125
|
+
tableName: "audit_actions",
|
|
126
|
+
value: action,
|
|
127
|
+
currentDate
|
|
128
|
+
});
|
|
129
|
+
const auditAuditableTypeId = await findOrCreateLookupId({
|
|
130
|
+
columnName: "name",
|
|
131
|
+
db,
|
|
132
|
+
tableName: "audit_auditable_types",
|
|
133
|
+
value: modelClass.getModelName(),
|
|
134
|
+
currentDate
|
|
135
|
+
});
|
|
136
|
+
const auditId = new UUID(4).format();
|
|
137
|
+
const insertResult = await db.query(db.insertSql({
|
|
138
|
+
returnLastInsertedColumnNames: ["id"],
|
|
139
|
+
tableName: "audits",
|
|
140
|
+
data: {
|
|
141
|
+
id: auditId,
|
|
142
|
+
audit_action_id: auditActionId,
|
|
143
|
+
audit_auditable_type_id: auditAuditableTypeId,
|
|
144
|
+
auditable_id: record.id(),
|
|
145
|
+
auditable_type: modelClass.getModelName(),
|
|
146
|
+
audited_changes: auditedChanges,
|
|
147
|
+
params,
|
|
148
|
+
created_at: currentDate,
|
|
149
|
+
updated_at: currentDate
|
|
150
|
+
}
|
|
151
|
+
}));
|
|
152
|
+
const insertedAuditId = auditIdFromInsertResult(insertResult) ?? auditId;
|
|
153
|
+
await emitAuditEvent(modelClass, action, {
|
|
154
|
+
action,
|
|
155
|
+
auditId: insertedAuditId,
|
|
156
|
+
auditedChanges,
|
|
157
|
+
params,
|
|
158
|
+
record
|
|
159
|
+
});
|
|
160
|
+
return insertedAuditId;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Reads an audit id returned by INSERT ... RETURNING / OUTPUT.
|
|
164
|
+
* @param {Array<Record<string, ?>> | null | undefined} insertResult - Insert query result.
|
|
165
|
+
* @returns {number | string | null} Created audit id when the driver returned it.
|
|
166
|
+
*/
|
|
167
|
+
function auditIdFromInsertResult(insertResult) {
|
|
168
|
+
if (!Array.isArray(insertResult))
|
|
169
|
+
return null;
|
|
170
|
+
const row = insertResult[0];
|
|
171
|
+
if (!row)
|
|
172
|
+
return null;
|
|
173
|
+
const id = row.id;
|
|
174
|
+
if (typeof id == "number" || typeof id == "string")
|
|
175
|
+
return id;
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Captures create changes on a model instance.
|
|
180
|
+
* @param {import("./index.js").default & {_pendingCreateAuditChanges?: AuditChanges}} record - Record to capture.
|
|
181
|
+
* @returns {void}
|
|
182
|
+
*/
|
|
183
|
+
function captureCreateAuditChanges(record) {
|
|
184
|
+
record._pendingCreateAuditChanges = auditChangesForCurrentChanges(record);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Creates the create audit row for a model instance.
|
|
188
|
+
* @param {import("./index.js").default & {_pendingCreateAuditChanges?: AuditChanges}} record - Record to audit.
|
|
189
|
+
* @returns {Promise<void>}
|
|
190
|
+
*/
|
|
191
|
+
async function createCreateAudit(record) {
|
|
192
|
+
await createAudit(record, {
|
|
193
|
+
action: "create",
|
|
194
|
+
auditedChanges: record._pendingCreateAuditChanges || null
|
|
195
|
+
});
|
|
196
|
+
record._pendingCreateAuditChanges = undefined;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Captures update changes on a model instance.
|
|
200
|
+
* @param {import("./index.js").default & {_pendingUpdateAuditChanges?: AuditChanges}} record - Record to capture.
|
|
201
|
+
* @returns {void}
|
|
202
|
+
*/
|
|
203
|
+
function captureUpdateAuditChanges(record) {
|
|
204
|
+
record._pendingUpdateAuditChanges = auditChangesForCurrentChanges(record);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Creates the update audit row for a model instance.
|
|
208
|
+
* @param {import("./index.js").default & {_pendingUpdateAuditChanges?: AuditChanges}} record - Record to audit.
|
|
209
|
+
* @returns {Promise<void>}
|
|
210
|
+
*/
|
|
211
|
+
async function createUpdateAudit(record) {
|
|
212
|
+
const auditedChanges = record._pendingUpdateAuditChanges || null;
|
|
213
|
+
record._pendingUpdateAuditChanges = undefined;
|
|
214
|
+
if (!auditedChanges || Object.keys(auditedChanges).length <= 0)
|
|
215
|
+
return;
|
|
216
|
+
await createAudit(record, {
|
|
217
|
+
action: "update",
|
|
218
|
+
auditedChanges
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Creates the destroy audit row for a model instance.
|
|
223
|
+
* @param {import("./index.js").default} record - Record to audit.
|
|
224
|
+
* @returns {Promise<void>}
|
|
225
|
+
*/
|
|
226
|
+
async function createDestroyAudit(record) {
|
|
227
|
+
await createAudit(record, {
|
|
228
|
+
action: "destroy",
|
|
229
|
+
auditedChanges: auditChangesForDestroy(record)
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Returns records without an audit row for the given action.
|
|
234
|
+
* @template {AuditedModelClass} MC
|
|
235
|
+
* @param {MC} modelClass - Model class to scope.
|
|
236
|
+
* @param {string} action - Audit action to exclude.
|
|
237
|
+
* @returns {import("../query/model-class-query.js").default<MC>} Query scoped to records without that audit action.
|
|
238
|
+
*/
|
|
239
|
+
function withoutAudit(modelClass, action) {
|
|
240
|
+
const db = modelClass.connection();
|
|
241
|
+
const modelTableSql = db.quoteTable(modelClass.tableName());
|
|
242
|
+
const auditsTableSql = db.quoteTable("audits");
|
|
243
|
+
const auditActionsTableSql = db.quoteTable("audit_actions");
|
|
244
|
+
const modelPrimaryKeySql = `${modelTableSql}.${db.quoteColumn(modelClass.primaryKey())}`;
|
|
245
|
+
const auditAuditableIdSql = `${auditsTableSql}.${db.quoteColumn("auditable_id")}`;
|
|
246
|
+
const auditAuditableTypeSql = `${auditsTableSql}.${db.quoteColumn("auditable_type")}`;
|
|
247
|
+
const auditActionIdSql = `${auditsTableSql}.${db.quoteColumn("audit_action_id")}`;
|
|
248
|
+
const auditActionsIdSql = `${auditActionsTableSql}.${db.quoteColumn("id")}`;
|
|
249
|
+
const auditActionsActionSql = `${auditActionsTableSql}.${db.quoteColumn("action")}`;
|
|
250
|
+
return modelClass
|
|
251
|
+
.all()
|
|
252
|
+
.where(`
|
|
253
|
+
NOT EXISTS (
|
|
254
|
+
SELECT 1
|
|
255
|
+
FROM ${auditsTableSql}
|
|
256
|
+
INNER JOIN ${auditActionsTableSql}
|
|
257
|
+
ON ${auditActionsIdSql} = ${auditActionIdSql}
|
|
258
|
+
WHERE ${auditAuditableTypeSql} = ${db.quote(modelClass.getModelName())}
|
|
259
|
+
AND ${auditAuditableIdSql} = ${modelPrimaryKeySql}
|
|
260
|
+
AND ${auditActionsActionSql} = ${db.quote(normalizeAction(action))}
|
|
261
|
+
)
|
|
262
|
+
`);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Finds or creates a lookup row and returns its id.
|
|
266
|
+
* @param {object} args - Options object.
|
|
267
|
+
* @param {string} args.columnName - Lookup value column.
|
|
268
|
+
* @param {Date} args.currentDate - Timestamp to write when inserting.
|
|
269
|
+
* @param {import("../drivers/base.js").default} args.db - Database driver.
|
|
270
|
+
* @param {string} args.tableName - Lookup table.
|
|
271
|
+
* @param {string} args.value - Lookup value.
|
|
272
|
+
* @returns {Promise<number | string>} Lookup row id.
|
|
273
|
+
*/
|
|
274
|
+
async function findOrCreateLookupId({ columnName, currentDate, db, tableName, value }) {
|
|
275
|
+
await db.upsert({
|
|
276
|
+
tableName,
|
|
277
|
+
conflictColumns: [columnName],
|
|
278
|
+
updateColumns: [columnName],
|
|
279
|
+
data: {
|
|
280
|
+
id: new UUID(4).format(),
|
|
281
|
+
[columnName]: value,
|
|
282
|
+
created_at: currentDate,
|
|
283
|
+
updated_at: currentDate
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
const id = await findLookupId({ columnName, db, tableName, value });
|
|
287
|
+
if (id === null)
|
|
288
|
+
throw new Error(`Couldn't find ${tableName}.${columnName} after upsert`);
|
|
289
|
+
return id;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Finds a lookup id by value.
|
|
293
|
+
* @param {object} args - Options object.
|
|
294
|
+
* @param {string} args.columnName - Lookup value column.
|
|
295
|
+
* @param {import("../drivers/base.js").default} args.db - Database driver.
|
|
296
|
+
* @param {string} args.tableName - Lookup table.
|
|
297
|
+
* @param {string} args.value - Lookup value.
|
|
298
|
+
* @returns {Promise<number | string | null>} Lookup row id or null.
|
|
299
|
+
*/
|
|
300
|
+
async function findLookupId({ columnName, db, tableName, value }) {
|
|
301
|
+
const rows = /** @type {Array<{id: number | string}>} */ (await db.query(`
|
|
302
|
+
SELECT ${db.quoteColumn("id")} AS id
|
|
303
|
+
FROM ${db.quoteTable(tableName)}
|
|
304
|
+
WHERE ${db.quoteColumn(columnName)} = ${db.quote(value)}
|
|
305
|
+
`));
|
|
306
|
+
if (rows[0])
|
|
307
|
+
return rows[0].id;
|
|
308
|
+
return null;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Normalizes an audit action.
|
|
312
|
+
* @param {string} action - Action name.
|
|
313
|
+
* @returns {string} Normalized action.
|
|
314
|
+
*/
|
|
315
|
+
function normalizeAction(action) {
|
|
316
|
+
const normalizedAction = action.trim();
|
|
317
|
+
if (!normalizedAction)
|
|
318
|
+
throw new Error("Audit action must be present");
|
|
319
|
+
return normalizedAction;
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Returns the callback map owned by a model class.
|
|
323
|
+
* @param {AuditedModelClass} modelClass - Model class.
|
|
324
|
+
* @returns {Record<string, AuditCallback[]>} Callback map.
|
|
325
|
+
*/
|
|
326
|
+
function auditCallbacksForModelClass(modelClass) {
|
|
327
|
+
if (!Object.prototype.hasOwnProperty.call(modelClass, "_auditCallbacks")) {
|
|
328
|
+
modelClass._auditCallbacks = {};
|
|
329
|
+
}
|
|
330
|
+
const callbacks = modelClass._auditCallbacks;
|
|
331
|
+
if (!callbacks)
|
|
332
|
+
throw new Error(`Audit callbacks weren't initialized for ${modelClass.getModelName()}`);
|
|
333
|
+
return callbacks;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Emits audit callbacks for a model/action pair.
|
|
337
|
+
* @param {AuditedModelClass} modelClass - Model class.
|
|
338
|
+
* @param {string} action - Audit action.
|
|
339
|
+
* @param {AuditEventPayload} payload - Event payload.
|
|
340
|
+
* @returns {Promise<void>}
|
|
341
|
+
*/
|
|
342
|
+
async function emitAuditEvent(modelClass, action, payload) {
|
|
343
|
+
const callbacks = auditCallbacksForModelClass(modelClass)[action] || [];
|
|
344
|
+
for (const callback of [...callbacks]) {
|
|
345
|
+
await callback(payload);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
export { captureCreateAuditChanges, captureUpdateAuditChanges, createAudit, createCreateAudit, createDestroyAudit, createUpdateAudit, registerAuditCallback, registerAuditing, withoutAudit };
|
|
349
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvcmVjb3JkL2F1ZGl0aW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLElBQUksTUFBTSxXQUFXLENBQUE7QUFFNUI7OztHQUdHO0FBRUg7Ozs7Ozs7O0dBUUc7QUFFSDs7O0dBR0c7QUFFSDs7Ozs7O0dBTUc7QUFFSDs7Ozs7O0dBTUc7QUFFSDs7OztHQUlHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxVQUFVO0lBQ2xDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxvQ0FBb0MsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO1FBQzVJLE9BQU07SUFDUixDQUFDO0lBRUQsVUFBVSxDQUFDLGtDQUFrQyxHQUFHLElBQUksQ0FBQTtJQUNwRCxVQUFVLENBQUMsWUFBWSxDQUFDLDJCQUEyQixDQUFDLENBQUE7SUFDcEQsVUFBVSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQzNDLFVBQVUsQ0FBQyxZQUFZLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtJQUNwRCxVQUFVLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUE7SUFDM0MsVUFBVSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0FBQy9DLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUTtJQUN6RCxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNoRCxNQUFNLFNBQVMsR0FBRywyQkFBMkIsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUV6RCxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUNqQyxTQUFTLENBQUMsZ0JBQWdC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LENBQUE7SUFFNUMsSUFBSSxDQUFDLFNBQVM7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxVQUFVLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRXZHLE9BQU8sU0FBUyxDQUFBO0FBQ2xCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxLQUFLLFVBQVUsY0FBYyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTztJQUN2RCxNQUFNLFNBQVMsR0FBRywyQkFBMkIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7SUFFdkUsS0FBSyxNQUFNLFFBQVEsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN6QixDQUFDO0FBQ0gsQ0FBQztBQUVELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDYixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBVVUlEIGZyb20gXCJwdXJlLXV1aWRcIlxuXG4vKipcbiAqIEF1ZGl0Q2hhbmdlcyB0eXBlLlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsID8+fSBBdWRpdENoYW5nZXNcbiAqL1xuXG4vKipcbiAqIEF1ZGl0RXZlbnRQYXlsb2FkIHR5cGUuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBBdWRpdEV2ZW50UGF5bG9hZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGFjdGlvbiAtIEF1ZGl0IGFjdGlvbiBuYW1lLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBzdHJpbmd9IGF1ZGl0SWQgLSBDcmVhdGVkIGF1ZGl0IHJvdyBpZC5cbiAqIEBwcm9wZXJ0eSB7QXVkaXRDaGFuZ2VzIHwgbnVsbH0gYXVkaXRlZENoYW5nZXMgLSBDaGFuZ2VzIGNhcHR1cmVkIGZvciB0aGUgYXVkaXQuXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsID8+IHwgbnVsbH0gcGFyYW1zIC0gT3B0aW9uYWwgY2FsbGVyLXN1cHBsaWVkIGF1ZGl0IHBhcmFtcy5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9pbmRleC5qc1wiKS5kZWZhdWx0fSByZWNvcmQgLSBBdWRpdGVkIHJlY29yZC5cbiAqL1xuXG4vKipcbiAqIEF1ZGl0Q2FsbGJhY2sgdHlwZS5cbiAqIEB0eXBlZGVmIHsocGF5bG9hZDogQXVkaXRFdmVudFBheWxvYWQpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+fSBBdWRpdENhbGxiYWNrXG4gKi9cblxuLyoqXG4gKiBDcmVhdGVBdWRpdEFyZ3MgdHlwZS5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IENyZWF0ZUF1ZGl0QXJnc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IGFjdGlvbiAtIEF1ZGl0IGFjdGlvbiBuYW1lLlxuICogQHByb3BlcnR5IHtBdWRpdENoYW5nZXMgfCBudWxsfSBbYXVkaXRlZENoYW5nZXNdIC0gRXhwbGljaXQgY2hhbmdlcyB0byBwZXJzaXN0LlxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCA/PiB8IG51bGx9IFtwYXJhbXNdIC0gT3B0aW9uYWwgbWV0YWRhdGEgdG8gc3RvcmUgd2l0aCB0aGUgYXVkaXQuXG4gKi9cblxuLyoqXG4gKiBBdWRpdGVkTW9kZWxDbGFzcyB0eXBlLlxuICogQHR5cGVkZWYge3R5cGVvZiBpbXBvcnQoXCIuL2luZGV4LmpzXCIpLmRlZmF1bHQgJiB7XG4gKiAgIF9hdWRpdENhbGxiYWNrcz86IFJlY29yZDxzdHJpbmcsIEF1ZGl0Q2FsbGJhY2tbXT4sXG4gKiAgIF9hdWRpdExpZmVjeWNsZUNhbGxiYWNrc1JlZ2lzdGVyZWQ/OiBib29sZWFuXG4gKiB9fSBBdWRpdGVkTW9kZWxDbGFzc1xuICovXG5cbi8qKlxuICogQWRkcyBhdXRvbWF0aWMgY3JlYXRlL3VwZGF0ZS9kZXN0cm95IGF1ZGl0aW5nIGNhbGxiYWNrcyB0byBhIG1vZGVsIGNsYXNzLlxuICogQHBhcmFtIHtBdWRpdGVkTW9kZWxDbGFzc30gbW9kZWxDbGFzcyAtIE1vZGVsIGNsYXNzIHRvIGF1ZGl0LlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIHJlZ2lzdGVyQXVkaXRpbmcobW9kZWxDbGFzcykge1xuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZGVsQ2xhc3MsIFwiX2F1ZGl0TGlmZWN5Y2xlQ2FsbGJhY2tzUmVnaXN0ZXJlZFwiKSAmJiBtb2RlbENsYXNzLl9hdWRpdExpZmVjeWNsZUNhbGxiYWNrc1JlZ2lzdGVyZWQpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIG1vZGVsQ2xhc3MuX2F1ZGl0TGlmZWN5Y2xlQ2FsbGJhY2tzUmVnaXN0ZXJlZCA9IHRydWVcbiAgbW9kZWxDbGFzcy5iZWZvcmVDcmVhdGUoXCJjYXB0dXJlQ3JlYXRlQXVkaXRDaGFuZ2VzXCIpXG4gIG1vZGVsQ2xhc3MuYWZ0ZXJDcmVhdGUoXCJjcmVhdGVDcmVhdGVBdWRpdFwiKVxuICBtb2RlbENsYXNzLmJlZm9yZVVwZGF0ZShcImNhcHR1cmVVcGRhdGVBdWRpdENoYW5nZXNcIilcbiAgbW9kZWxDbGFzcy5hZnRlclVwZGF0ZShcImNyZWF0ZVVwZGF0ZUF1ZGl0XCIpXG4gIG1vZGVsQ2xhc3MuYWZ0ZXJEZXN0cm95KFwiY3JlYXRlRGVzdHJveUF1ZGl0XCIpXG59XG5cbi8qKlxuICogUmVnaXN0ZXJzIGFuIGF1ZGl0IGV2ZW50IGNhbGxiYWNrIGZvciBhIG1vZGVsL2FjdGlvbiBwYWlyLlxuICogQHBhcmFtIHtBdWRpdGVkTW9kZWxDbGFzc30gbW9kZWxDbGFzcyAtIE1vZGVsIGNsYXNzIHRvIG9ic2VydmUuXG4gKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uIC0gQXVkaXQgYWN0aW9uIG5hbWUuXG4gKiBAcGFyYW0ge0F1ZGl0Q2FsbGJhY2t9IGNhbGxiYWNrIC0gQ2FsbGJhY2sgaW52b2tlZCBhZnRlciBtYXRjaGluZyBhdWRpdCByb3dzIGFyZSBjcmVhdGVkLlxuICogQHJldHVybnMgeygpID0+IHZvaWR9IFVuc3Vic2NyaWJlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiByZWdpc3RlckF1ZGl0Q2FsbGJhY2sobW9kZWxDbGFzcywgYWN0aW9uLCBjYWxsYmFjaykge1xuICBjb25zdCBub3JtYWxpemVkQWN0aW9uID0gbm9ybWFsaXplQWN0aW9uKGFjdGlvbilcbiAgY29uc3QgY2FsbGJhY2tzID0gYXVkaXRDYWxsYmFja3NGb3JNb2RlbENsYXNzKG1vZGVsQ2xhc3MpXG5cbiAgaWYgKCFjYWxsYmFja3Nbbm9ybWFsaXplZEFjdGlvbl0pIHtcbiAgICBjYWxsYmFja3Nbbm9ybWFsaXplZEFjdGlvbl0gPSBbXVxuICB9XG5cbiAgY2FsbGJhY2tzW25vcm1hbGl6ZWRBY3Rpb25dLnB1c2goY2FsbGJhY2spXG5cbiAgcmV0dXJuICgpID0+IHtcbiAgICBjb25zdCBhY3Rpb25DYWxsYmFja3MgPSBjYWxsYmFja3Nbbm9ybWFsaXplZEFjdGlvbl1cbiAgICBjb25zdCBpbmRleCA9IGFjdGlvbkNhbGxiYWNrcy5pbmRleE9mKGNhbGxiYWNrKVxuXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIGFjdGlvbkNhbGxiYWNrcy5zcGxpY2UoaW5kZXgsIDEpXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ2FwdHVyZXMgdGhlIG5ldyB2YWx1ZXMgZm9yIGZpZWxkcyBjaGFuZ2VkIG9uIGEgcmVjb3JkLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2luZGV4LmpzXCIpLmRlZmF1bHR9IHJlY29yZCAtIFJlY29yZCB3aG9zZSBwZW5kaW5nIGNoYW5nZXMgc2hvdWxkIGJlIGNhcHR1cmVkLlxuICogQHJldHVybnMge0F1ZGl0Q2hhbmdlc30gTmV3IHZhbHVlcyBrZXllZCBieSBhdHRyaWJ1dGUgbmFtZS5cbiAqL1xuZnVuY3Rpb24gYXVkaXRDaGFuZ2VzRm9yQ3VycmVudENoYW5nZXMocmVjb3JkKSB7XG4gIGNvbnN0IGNoYW5nZXMgPSByZWNvcmQuY2hhbmdlcygpXG4gIC8qKiBAdHlwZSB7QXVkaXRDaGFuZ2VzfSAqL1xuICBjb25zdCBhdWRpdGVkQ2hhbmdlcyA9IHt9XG4gIGNvbnN0IGNvbHVtbk5hbWVUb0F0dHJpYnV0ZU5hbWUgPSByZWNvcmQuZ2V0TW9kZWxDbGFzcygpLmdldENvbHVtbk5hbWVUb0F0dHJpYnV0ZU5hbWVNYXAoKVxuXG4gIGZvciAoY29uc3QgW2F0dHJpYnV0ZU5hbWUsIGNoYW5nZV0gb2YgT2JqZWN0LmVudHJpZXMoY2hhbmdlcykpIHtcbiAgICBhdWRpdGVkQ2hhbmdlc1tjb2x1bW5OYW1lVG9BdHRyaWJ1dGVOYW1lW2F0dHJpYnV0ZU5hbWVdIHx8IGF0dHJpYnV0ZU5hbWVdID0gY2hhbmdlWzFdXG4gIH1cblxuICByZXR1cm4gYXVkaXRlZENoYW5nZXNcbn1cblxuLyoqXG4gKiBDYXB0dXJlcyB0aGUgY3VycmVudCBhdHRyaWJ1dGVzIGZvciBhIGRlc3Ryb3kgYXVkaXQuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vaW5kZXguanNcIikuZGVmYXVsdH0gcmVjb3JkIC0gUmVjb3JkIGJlaW5nIGRlc3Ryb3llZC5cbiAqIEByZXR1cm5zIHtBdWRpdENoYW5nZXN9IEN1cnJlbnQgYXR0cmlidXRlcyBrZXllZCBieSBhdHRyaWJ1dGUgbmFtZS5cbiAqL1xuZnVuY3Rpb24gYXVkaXRDaGFuZ2VzRm9yRGVzdHJveShyZWNvcmQpIHtcbiAgcmV0dXJuIHsuLi5yZWNvcmQuYXR0cmlidXRlcygpfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXVkaXQgcm93IGZvciBhIHJlY29yZC5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9pbmRleC5qc1wiKS5kZWZhdWx0fSByZWNvcmQgLSBSZWNvcmQgdG8gYXVkaXQuXG4gKiBAcGFyYW0ge0NyZWF0ZUF1ZGl0QXJnc30gYXJncyAtIEF1ZGl0IHJvdyBvcHRpb25zLlxuICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyIHwgc3RyaW5nPn0gQ3JlYXRlZCBhdWRpdCByb3cgaWQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUF1ZGl0KHJlY29yZCwgYXJncykge1xuICBjb25zdCBtb2RlbENsYXNzID0gLyoqIEB0eXBlIHtBdWRpdGVkTW9kZWxDbGFzc30gKi8gKHJlY29yZC5nZXRNb2RlbENsYXNzKCkpXG5cbiAgcmV0dXJuIGF3YWl0IG1vZGVsQ2xhc3MuX2dldENvbmZpZ3VyYXRpb24oKS5lbnN1cmVDb25uZWN0aW9ucyh7bmFtZTogYCR7bW9kZWxDbGFzcy5nZXRNb2RlbE5hbWUoKX0gYXVkaXRgfSwgYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBhd2FpdCBjcmVhdGVBdWRpdFdpdGhDdXJyZW50Q29ubmVjdGlvbihyZWNvcmQsIGFyZ3MsIG1vZGVsQ2xhc3MpXG4gIH0pXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhdWRpdCByb3cgdXNpbmcgdGhlIGN1cnJlbnQgbW9kZWwgZGF0YWJhc2UgY29ubmVjdGlvbi5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9pbmRleC5qc1wiKS5kZWZhdWx0fSByZWNvcmQgLSBSZWNvcmQgdG8gYXVkaXQuXG4gKiBAcGFyYW0ge0NyZWF0ZUF1ZGl0QXJnc30gYXJncyAtIEF1ZGl0IHJvdyBvcHRpb25zLlxuICogQHBhcmFtIHtBdWRpdGVkTW9kZWxDbGFzc30gbW9kZWxDbGFzcyAtIEF1ZGl0ZWQgbW9kZWwgY2xhc3MuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXIgfCBzdHJpbmc+fSBDcmVhdGVkIGF1ZGl0IHJvdyBpZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQXVkaXRXaXRoQ3VycmVudENvbm5lY3Rpb24ocmVjb3JkLCBhcmdzLCBtb2RlbENsYXNzKSB7XG4gIGlmICghcmVjb3JkLmlzUGVyc2lzdGVkKCkpIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGF1ZGl0IHVucGVyc2lzdGVkICR7bW9kZWxDbGFzcy5nZXRNb2RlbE5hbWUoKX0gcmVjb3JkYClcblxuICBjb25zdCBhY3Rpb24gPSBub3JtYWxpemVBY3Rpb24oYXJncy5hY3Rpb24pXG4gIGNvbnN0IGF1ZGl0ZWRDaGFuZ2VzID0gYXJncy5hdWRpdGVkQ2hhbmdlcyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3MuYXVkaXRlZENoYW5nZXNcbiAgY29uc3QgcGFyYW1zID0gYXJncy5wYXJhbXMgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmdzLnBhcmFtc1xuICBjb25zdCBkYiA9IG1vZGVsQ2xhc3MuY29ubmVjdGlvbigpXG4gIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKVxuICBjb25zdCBhdWRpdEFjdGlvbklkID0gYXdhaXQgZmluZE9yQ3JlYXRlTG9va3VwSWQoe1xuICAgIGNvbHVtbk5hbWU6IFwiYWN0aW9uXCIsXG4gICAgZGIsXG4gICAgdGFibGVOYW1lOiBcImF1ZGl0X2FjdGlvbnNcIixcbiAgICB2YWx1ZTogYWN0aW9uLFxuICAgIGN1cnJlbnREYXRlXG4gIH0pXG4gIGNvbnN0IGF1ZGl0QXVkaXRhYmxlVHlwZUlkID0gYXdhaXQgZmluZE9yQ3JlYXRlTG9va3VwSWQoe1xuICAgIGNvbHVtbk5hbWU6IFwibmFtZVwiLFxuICAgIGRiLFxuICAgIHRhYmxlTmFtZTogXCJhdWRpdF9hdWRpdGFibGVfdHlwZXNcIixcbiAgICB2YWx1ZTogbW9kZWxDbGFzcy5nZXRNb2RlbE5hbWUoKSxcbiAgICBjdXJyZW50RGF0ZVxuICB9KVxuICBjb25zdCBhdWRpdElkID0gbmV3IFVVSUQoNCkuZm9ybWF0KClcblxuICBjb25zdCBpbnNlcnRSZXN1bHQgPSBhd2FpdCBkYi5xdWVyeShkYi5pbnNlcnRTcWwoe1xuICAgIHJldHVybkxhc3RJbnNlcnRlZENvbHVtbk5hbWVzOiBbXCJpZFwiXSxcbiAgICB0YWJsZU5hbWU6IFwiYXVkaXRzXCIsXG4gICAgZGF0YToge1xuICAgICAgaWQ6IGF1ZGl0SWQsXG4gICAgICBhdWRpdF9hY3Rpb25faWQ6IGF1ZGl0QWN0aW9uSWQsXG4gICAgICBhdWRpdF9hdWRpdGFibGVfdHlwZV9pZDogYXVkaXRBdWRpdGFibGVUeXBlSWQsXG4gICAgICBhdWRpdGFibGVfaWQ6IHJlY29yZC5pZCgpLFxuICAgICAgYXVkaXRhYmxlX3R5cGU6IG1vZGVsQ2xhc3MuZ2V0TW9kZWxOYW1lKCksXG4gICAgICBhdWRpdGVkX2NoYW5nZXM6IGF1ZGl0ZWRDaGFuZ2VzLFxuICAgICAgcGFyYW1zLFxuICAgICAgY3JlYXRlZF9hdDogY3VycmVudERhdGUsXG4gICAgICB1cGRhdGVkX2F0OiBjdXJyZW50RGF0ZVxuICAgIH1cbiAgfSkpXG4gIGNvbnN0IGluc2VydGVkQXVkaXRJZCA9IGF1ZGl0SWRGcm9tSW5zZXJ0UmVzdWx0KGluc2VydFJlc3VsdCkgPz8gYXVkaXRJZFxuXG4gIGF3YWl0IGVtaXRBdWRpdEV2ZW50KG1vZGVsQ2xhc3MsIGFjdGlvbiwge1xuICAgIGFjdGlvbixcbiAgICBhdWRpdElkOiBpbnNlcnRlZEF1ZGl0SWQsXG4gICAgYXVkaXRlZENoYW5nZXMsXG4gICAgcGFyYW1zLFxuICAgIHJlY29yZFxuICB9KVxuXG4gIHJldHVybiBpbnNlcnRlZEF1ZGl0SWRcbn1cblxuLyoqXG4gKiBSZWFkcyBhbiBhdWRpdCBpZCByZXR1cm5lZCBieSBJTlNFUlQgLi4uIFJFVFVSTklORyAvIE9VVFBVVC5cbiAqIEBwYXJhbSB7QXJyYXk8UmVjb3JkPHN0cmluZywgPz4+IHwgbnVsbCB8IHVuZGVmaW5lZH0gaW5zZXJ0UmVzdWx0IC0gSW5zZXJ0IHF1ZXJ5IHJlc3VsdC5cbiAqIEByZXR1cm5zIHtudW1iZXIgfCBzdHJpbmcgfCBudWxsfSBDcmVhdGVkIGF1ZGl0IGlkIHdoZW4gdGhlIGRyaXZlciByZXR1cm5lZCBpdC5cbiAqL1xuZnVuY3Rpb24gYXVkaXRJZEZyb21JbnNlcnRSZXN1bHQoaW5zZXJ0UmVzdWx0KSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShpbnNlcnRSZXN1bHQpKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IHJvdyA9IGluc2VydFJlc3VsdFswXVxuXG4gIGlmICghcm93KSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IGlkID0gcm93LmlkXG5cbiAgaWYgKHR5cGVvZiBpZCA9PSBcIm51bWJlclwiIHx8IHR5cGVvZiBpZCA9PSBcInN0cmluZ1wiKSByZXR1cm4gaWRcblxuICByZXR1cm4gbnVsbFxufVxuXG4vKipcbiAqIENhcHR1cmVzIGNyZWF0ZSBjaGFuZ2VzIG9uIGEgbW9kZWwgaW5zdGFuY2UuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vaW5kZXguanNcIikuZGVmYXVsdCAmIHtfcGVuZGluZ0NyZWF0ZUF1ZGl0Q2hhbmdlcz86IEF1ZGl0Q2hhbmdlc319IHJlY29yZCAtIFJlY29yZCB0byBjYXB0dXJlLlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGNhcHR1cmVDcmVhdGVBdWRpdENoYW5nZXMocmVjb3JkKSB7XG4gIHJlY29yZC5fcGVuZGluZ0NyZWF0ZUF1ZGl0Q2hhbmdlcyA9IGF1ZGl0Q2hhbmdlc0ZvckN1cnJlbnRDaGFuZ2VzKHJlY29yZClcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBjcmVhdGUgYXVkaXQgcm93IGZvciBhIG1vZGVsIGluc3RhbmNlLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2luZGV4LmpzXCIpLmRlZmF1bHQgJiB7X3BlbmRpbmdDcmVhdGVBdWRpdENoYW5nZXM/OiBBdWRpdENoYW5nZXN9fSByZWNvcmQgLSBSZWNvcmQgdG8gYXVkaXQuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ3JlYXRlQXVkaXQocmVjb3JkKSB7XG4gIGF3YWl0IGNyZWF0ZUF1ZGl0KHJlY29yZCwge1xuICAgIGFjdGlvbjogXCJjcmVhdGVcIixcbiAgICBhdWRpdGVkQ2hhbmdlczogcmVjb3JkLl9wZW5kaW5nQ3JlYXRlQXVkaXRDaGFuZ2VzIHx8IG51bGxcbiAgfSlcblxuICByZWNvcmQuX3BlbmRpbmdDcmVhdGVBdWRpdENoYW5nZXMgPSB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBDYXB0dXJlcyB1cGRhdGUgY2hhbmdlcyBvbiBhIG1vZGVsIGluc3RhbmNlLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2luZGV4LmpzXCIpLmRlZmF1bHQgJiB7X3BlbmRpbmdVcGRhdGVBdWRpdENoYW5nZXM/OiBBdWRpdENoYW5nZXN9fSByZWNvcmQgLSBSZWNvcmQgdG8gY2FwdHVyZS5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiBjYXB0dXJlVXBkYXRlQXVkaXRDaGFuZ2VzKHJlY29yZCkge1xuICByZWNvcmQuX3BlbmRpbmdVcGRhdGVBdWRpdENoYW5nZXMgPSBhdWRpdENoYW5nZXNGb3JDdXJyZW50Q2hhbmdlcyhyZWNvcmQpXG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgdXBkYXRlIGF1ZGl0IHJvdyBmb3IgYSBtb2RlbCBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9pbmRleC5qc1wiKS5kZWZhdWx0ICYge19wZW5kaW5nVXBkYXRlQXVkaXRDaGFuZ2VzPzogQXVkaXRDaGFuZ2VzfX0gcmVjb3JkIC0gUmVjb3JkIHRvIGF1ZGl0LlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZUF1ZGl0KHJlY29yZCkge1xuICBjb25zdCBhdWRpdGVkQ2hhbmdlcyA9IHJlY29yZC5fcGVuZGluZ1VwZGF0ZUF1ZGl0Q2hhbmdlcyB8fCBudWxsXG5cbiAgcmVjb3JkLl9wZW5kaW5nVXBkYXRlQXVkaXRDaGFuZ2VzID0gdW5kZWZpbmVkXG5cbiAgaWYgKCFhdWRpdGVkQ2hhbmdlcyB8fCBPYmplY3Qua2V5cyhhdWRpdGVkQ2hhbmdlcykubGVuZ3RoIDw9IDApIHJldHVyblxuXG4gIGF3YWl0IGNyZWF0ZUF1ZGl0KHJlY29yZCwge1xuICAgIGFjdGlvbjogXCJ1cGRhdGVcIixcbiAgICBhdWRpdGVkQ2hhbmdlc1xuICB9KVxufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGRlc3Ryb3kgYXVkaXQgcm93IGZvciBhIG1vZGVsIGluc3RhbmNlLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL2luZGV4LmpzXCIpLmRlZmF1bHR9IHJlY29yZCAtIFJlY29yZCB0byBhdWRpdC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVEZXN0cm95QXVkaXQocmVjb3JkKSB7XG4gIGF3YWl0IGNyZWF0ZUF1ZGl0KHJlY29yZCwge1xuICAgIGFjdGlvbjogXCJkZXN0cm95XCIsXG4gICAgYXVkaXRlZENoYW5nZXM6IGF1ZGl0Q2hhbmdlc0ZvckRlc3Ryb3kocmVjb3JkKVxuICB9KVxufVxuXG4vKipcbiAqIFJldHVybnMgcmVjb3JkcyB3aXRob3V0IGFuIGF1ZGl0IHJvdyBmb3IgdGhlIGdpdmVuIGFjdGlvbi5cbiAqIEB0ZW1wbGF0ZSB7QXVkaXRlZE1vZGVsQ2xhc3N9IE1DXG4gKiBAcGFyYW0ge01DfSBtb2RlbENsYXNzIC0gTW9kZWwgY2xhc3MgdG8gc2NvcGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uIC0gQXVkaXQgYWN0aW9uIHRvIGV4Y2x1ZGUuXG4gKiBAcmV0dXJucyB7aW1wb3J0KFwiLi4vcXVlcnkvbW9kZWwtY2xhc3MtcXVlcnkuanNcIikuZGVmYXVsdDxNQz59IFF1ZXJ5IHNjb3BlZCB0byByZWNvcmRzIHdpdGhvdXQgdGhhdCBhdWRpdCBhY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIHdpdGhvdXRBdWRpdChtb2RlbENsYXNzLCBhY3Rpb24pIHtcbiAgY29uc3QgZGIgPSBtb2RlbENsYXNzLmNvbm5lY3Rpb24oKVxuICBjb25zdCBtb2RlbFRhYmxlU3FsID0gZGIucXVvdGVUYWJsZShtb2RlbENsYXNzLnRhYmxlTmFtZSgpKVxuICBjb25zdCBhdWRpdHNUYWJsZVNxbCA9IGRiLnF1b3RlVGFibGUoXCJhdWRpdHNcIilcbiAgY29uc3QgYXVkaXRBY3Rpb25zVGFibGVTcWwgPSBkYi5xdW90ZVRhYmxlKFwiYXVkaXRfYWN0aW9uc1wiKVxuICBjb25zdCBtb2RlbFByaW1hcnlLZXlTcWwgPSBgJHttb2RlbFRhYmxlU3FsfS4ke2RiLnF1b3RlQ29sdW1uKG1vZGVsQ2xhc3MucHJpbWFyeUtleSgpKX1gXG4gIGNvbnN0IGF1ZGl0QXVkaXRhYmxlSWRTcWwgPSBgJHthdWRpdHNUYWJsZVNxbH0uJHtkYi5xdW90ZUNvbHVtbihcImF1ZGl0YWJsZV9pZFwiKX1gXG4gIGNvbnN0IGF1ZGl0QXVkaXRhYmxlVHlwZVNxbCA9IGAke2F1ZGl0c1RhYmxlU3FsfS4ke2RiLnF1b3RlQ29sdW1uKFwiYXVkaXRhYmxlX3R5cGVcIil9YFxuICBjb25zdCBhdWRpdEFjdGlvbklkU3FsID0gYCR7YXVkaXRzVGFibGVTcWx9LiR7ZGIucXVvdGVDb2x1bW4oXCJhdWRpdF9hY3Rpb25faWRcIil9YFxuICBjb25zdCBhdWRpdEFjdGlvbnNJZFNxbCA9IGAke2F1ZGl0QWN0aW9uc1RhYmxlU3FsfS4ke2RiLnF1b3RlQ29sdW1uKFwiaWRcIil9YFxuICBjb25zdCBhdWRpdEFjdGlvbnNBY3Rpb25TcWwgPSBgJHthdWRpdEFjdGlvbnNUYWJsZVNxbH0uJHtkYi5xdW90ZUNvbHVtbihcImFjdGlvblwiKX1gXG5cbiAgcmV0dXJuIG1vZGVsQ2xhc3NcbiAgICAuYWxsKClcbiAgICAud2hlcmUoYFxuICAgICAgTk9UIEVYSVNUUyAoXG4gICAgICAgIFNFTEVDVCAxXG4gICAgICAgIEZST00gJHthdWRpdHNUYWJsZVNxbH1cbiAgICAgICAgSU5ORVIgSk9JTiAke2F1ZGl0QWN0aW9uc1RhYmxlU3FsfVxuICAgICAgICAgIE9OICR7YXVkaXRBY3Rpb25zSWRTcWx9ID0gJHthdWRpdEFjdGlvbklkU3FsfVxuICAgICAgICBXSEVSRSAke2F1ZGl0QXVkaXRhYmxlVHlwZVNxbH0gPSAke2RiLnF1b3RlKG1vZGVsQ2xhc3MuZ2V0TW9kZWxOYW1lKCkpfVxuICAgICAgICAgIEFORCAke2F1ZGl0QXVkaXRhYmxlSWRTcWx9ID0gJHttb2RlbFByaW1hcnlLZXlTcWx9XG4gICAgICAgICAgQU5EICR7YXVkaXRBY3Rpb25zQWN0aW9uU3FsfSA9ICR7ZGIucXVvdGUobm9ybWFsaXplQWN0aW9uKGFjdGlvbikpfVxuICAgICAgKVxuICAgIGApXG59XG5cbi8qKlxuICogRmluZHMgb3IgY3JlYXRlcyBhIGxvb2t1cCByb3cgYW5kIHJldHVybnMgaXRzIGlkLlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmNvbHVtbk5hbWUgLSBMb29rdXAgdmFsdWUgY29sdW1uLlxuICogQHBhcmFtIHtEYXRlfSBhcmdzLmN1cnJlbnREYXRlIC0gVGltZXN0YW1wIHRvIHdyaXRlIHdoZW4gaW5zZXJ0aW5nLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdH0gYXJncy5kYiAtIERhdGFiYXNlIGRyaXZlci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnRhYmxlTmFtZSAtIExvb2t1cCB0YWJsZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnZhbHVlIC0gTG9va3VwIHZhbHVlLlxuICogQHJldHVybnMge1Byb21pc2U8bnVtYmVyIHwgc3RyaW5nPn0gTG9va3VwIHJvdyBpZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZmluZE9yQ3JlYXRlTG9va3VwSWQoe2NvbHVtbk5hbWUsIGN1cnJlbnREYXRlLCBkYiwgdGFibGVOYW1lLCB2YWx1ZX0pIHtcbiAgYXdhaXQgZGIudXBzZXJ0KHtcbiAgICB0YWJsZU5hbWUsXG4gICAgY29uZmxpY3RDb2x1bW5zOiBbY29sdW1uTmFtZV0sXG4gICAgdXBkYXRlQ29sdW1uczogW2NvbHVtbk5hbWVdLFxuICAgIGRhdGE6IHtcbiAgICAgIGlkOiBuZXcgVVVJRCg0KS5mb3JtYXQoKSxcbiAgICAgIFtjb2x1bW5OYW1lXTogdmFsdWUsXG4gICAgICBjcmVhdGVkX2F0OiBjdXJyZW50RGF0ZSxcbiAgICAgIHVwZGF0ZWRfYXQ6IGN1cnJlbnREYXRlXG4gICAgfVxuICB9KVxuXG4gIGNvbnN0IGlkID0gYXdhaXQgZmluZExvb2t1cElkKHtjb2x1bW5OYW1lLCBkYiwgdGFibGVOYW1lLCB2YWx1ZX0pXG5cbiAgaWYgKGlkID09PSBudWxsKSB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IGZpbmQgJHt0YWJsZU5hbWV9LiR7Y29sdW1uTmFtZX0gYWZ0ZXIgdXBzZXJ0YClcblxuICByZXR1cm4gaWRcbn1cblxuLyoqXG4gKiBGaW5kcyBhIGxvb2t1cCBpZCBieSB2YWx1ZS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncy5jb2x1bW5OYW1lIC0gTG9va3VwIHZhbHVlIGNvbHVtbi5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHR9IGFyZ3MuZGIgLSBEYXRhYmFzZSBkcml2ZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncy50YWJsZU5hbWUgLSBMb29rdXAgdGFibGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJncy52YWx1ZSAtIExvb2t1cCB2YWx1ZS5cbiAqIEByZXR1cm5zIHtQcm9taXNlPG51bWJlciB8IHN0cmluZyB8IG51bGw+fSBMb29rdXAgcm93IGlkIG9yIG51bGwuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZpbmRMb29rdXBJZCh7Y29sdW1uTmFtZSwgZGIsIHRhYmxlTmFtZSwgdmFsdWV9KSB7XG4gIGNvbnN0IHJvd3MgPSAvKiogQHR5cGUge0FycmF5PHtpZDogbnVtYmVyIHwgc3RyaW5nfT59ICovIChhd2FpdCBkYi5xdWVyeShgXG4gICAgU0VMRUNUICR7ZGIucXVvdGVDb2x1bW4oXCJpZFwiKX0gQVMgaWRcbiAgICBGUk9NICR7ZGIucXVvdGVUYWJsZSh0YWJsZU5hbWUpfVxuICAgIFdIRVJFICR7ZGIucXVvdGVDb2x1bW4oY29sdW1uTmFtZSl9ID0gJHtkYi5xdW90ZSh2YWx1ZSl9XG4gIGApKVxuXG4gIGlmIChyb3dzWzBdKSByZXR1cm4gcm93c1swXS5pZFxuXG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhbiBhdWRpdCBhY3Rpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uIC0gQWN0aW9uIG5hbWUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBOb3JtYWxpemVkIGFjdGlvbi5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplQWN0aW9uKGFjdGlvbikge1xuICBjb25zdCBub3JtYWxpemVkQWN0aW9uID0gYWN0aW9uLnRyaW0oKVxuXG4gIGlmICghbm9ybWFsaXplZEFjdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiQXVkaXQgYWN0aW9uIG11c3QgYmUgcHJlc2VudFwiKVxuXG4gIHJldHVybiBub3JtYWxpemVkQWN0aW9uXG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY2FsbGJhY2sgbWFwIG93bmVkIGJ5IGEgbW9kZWwgY2xhc3MuXG4gKiBAcGFyYW0ge0F1ZGl0ZWRNb2RlbENsYXNzfSBtb2RlbENsYXNzIC0gTW9kZWwgY2xhc3MuXG4gKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgQXVkaXRDYWxsYmFja1tdPn0gQ2FsbGJhY2sgbWFwLlxuICovXG5mdW5jdGlvbiBhdWRpdENhbGxiYWNrc0Zvck1vZGVsQ2xhc3MobW9kZWxDbGFzcykge1xuICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2RlbENsYXNzLCBcIl9hdWRpdENhbGxiYWNrc1wiKSkge1xuICAgIG1vZGVsQ2xhc3MuX2F1ZGl0Q2FsbGJhY2tzID0ge31cbiAgfVxuXG4gIGNvbnN0IGNhbGxiYWNrcyA9IG1vZGVsQ2xhc3MuX2F1ZGl0Q2FsbGJhY2tzXG5cbiAgaWYgKCFjYWxsYmFja3MpIHRocm93IG5ldyBFcnJvcihgQXVkaXQgY2FsbGJhY2tzIHdlcmVuJ3QgaW5pdGlhbGl6ZWQgZm9yICR7bW9kZWxDbGFzcy5nZXRNb2RlbE5hbWUoKX1gKVxuXG4gIHJldHVybiBjYWxsYmFja3Ncbn1cblxuLyoqXG4gKiBFbWl0cyBhdWRpdCBjYWxsYmFja3MgZm9yIGEgbW9kZWwvYWN0aW9uIHBhaXIuXG4gKiBAcGFyYW0ge0F1ZGl0ZWRNb2RlbENsYXNzfSBtb2RlbENsYXNzIC0gTW9kZWwgY2xhc3MuXG4gKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uIC0gQXVkaXQgYWN0aW9uLlxuICogQHBhcmFtIHtBdWRpdEV2ZW50UGF5bG9hZH0gcGF5bG9hZCAtIEV2ZW50IHBheWxvYWQuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZW1pdEF1ZGl0RXZlbnQobW9kZWxDbGFzcywgYWN0aW9uLCBwYXlsb2FkKSB7XG4gIGNvbnN0IGNhbGxiYWNrcyA9IGF1ZGl0Q2FsbGJhY2tzRm9yTW9kZWxDbGFzcyhtb2RlbENsYXNzKVthY3Rpb25dIHx8IFtdXG5cbiAgZm9yIChjb25zdCBjYWxsYmFjayBvZiBbLi4uY2FsbGJhY2tzXSkge1xuICAgIGF3YWl0IGNhbGxiYWNrKHBheWxvYWQpXG4gIH1cbn1cblxuZXhwb3J0IHtcbiAgY2FwdHVyZUNyZWF0ZUF1ZGl0Q2hhbmdlcyxcbiAgY2FwdHVyZVVwZGF0ZUF1ZGl0Q2hhbmdlcyxcbiAgY3JlYXRlQXVkaXQsXG4gIGNyZWF0ZUNyZWF0ZUF1ZGl0LFxuICBjcmVhdGVEZXN0cm95QXVkaXQsXG4gIGNyZWF0ZVVwZGF0ZUF1ZGl0LFxuICByZWdpc3RlckF1ZGl0Q2FsbGJhY2ssXG4gIHJlZ2lzdGVyQXVkaXRpbmcsXG4gIHdpdGhvdXRBdWRpdFxufVxuIl19
|
|
@@ -139,6 +139,14 @@ declare class VelociousDatabaseRecord<WriteAttributes extends Record<string, unk
|
|
|
139
139
|
* Narrows the runtime value to the documented type.
|
|
140
140
|
* @type {boolean | undefined} */
|
|
141
141
|
static _eagerLoadRecordMetadata: boolean | undefined;
|
|
142
|
+
/**
|
|
143
|
+
* Narrows the runtime value to the documented type.
|
|
144
|
+
* @type {Record<string, import("./auditing.js").AuditCallback[]> | undefined} */
|
|
145
|
+
static _auditCallbacks: Record<string, import("./auditing.js").AuditCallback[]> | undefined;
|
|
146
|
+
/**
|
|
147
|
+
* Narrows the runtime value to the documented type.
|
|
148
|
+
* @type {boolean | undefined} */
|
|
149
|
+
static _auditLifecycleCallbacksRegistered: boolean | undefined;
|
|
142
150
|
/**
|
|
143
151
|
* Returns the model name, preferring an explicit `static modelName` declaration
|
|
144
152
|
* over the JavaScript class `.name` property. This allows minified builds to
|
|
@@ -282,6 +290,28 @@ declare class VelociousDatabaseRecord<WriteAttributes extends Record<string, unk
|
|
|
282
290
|
* @returns {void}
|
|
283
291
|
*/
|
|
284
292
|
static afterDestroy<R>(this: ModelConstructor<R>, callback: LifecycleCallbackType<R>): void;
|
|
293
|
+
/**
|
|
294
|
+
* Enables automatic create/update/destroy auditing for this model.
|
|
295
|
+
* @returns {void}
|
|
296
|
+
*/
|
|
297
|
+
static audited(): void;
|
|
298
|
+
/**
|
|
299
|
+
* Registers a callback invoked after this model writes an audit row for the action.
|
|
300
|
+
* @template {typeof VelociousDatabaseRecord} MC
|
|
301
|
+
* @this {MC}
|
|
302
|
+
* @param {string} action - Audit action name.
|
|
303
|
+
* @param {import("./auditing.js").AuditCallback} callback - Callback to run after audit creation.
|
|
304
|
+
* @returns {() => void} Unsubscribe function.
|
|
305
|
+
*/
|
|
306
|
+
static onAudit<MC extends typeof VelociousDatabaseRecord>(this: MC, action: string, callback: import("./auditing.js").AuditCallback): () => void;
|
|
307
|
+
/**
|
|
308
|
+
* Returns records that do not have an audit row for the given action.
|
|
309
|
+
* @template {typeof VelociousDatabaseRecord} MC
|
|
310
|
+
* @this {MC}
|
|
311
|
+
* @param {string} action - Audit action name.
|
|
312
|
+
* @returns {ModelClassQuery<MC>} Query scoped to records without that audit action.
|
|
313
|
+
*/
|
|
314
|
+
static withoutAudit<MC extends typeof VelociousDatabaseRecord>(this: MC, action: string): ModelClassQuery<MC>;
|
|
285
315
|
/**
|
|
286
316
|
* Runs get validator type.
|
|
287
317
|
* @param {string} validatorName - Validator name.
|
|
@@ -1179,6 +1209,14 @@ declare class VelociousDatabaseRecord<WriteAttributes extends Record<string, unk
|
|
|
1179
1209
|
* Changes.
|
|
1180
1210
|
* @type {Record<string, ?>} */
|
|
1181
1211
|
_changes: Record<string, unknown>;
|
|
1212
|
+
/**
|
|
1213
|
+
* Changes captured before a create audit is written.
|
|
1214
|
+
* @type {import("./auditing.js").AuditChanges | undefined} */
|
|
1215
|
+
_pendingCreateAuditChanges: import("./auditing.js").AuditChanges | undefined;
|
|
1216
|
+
/**
|
|
1217
|
+
* Changes captured before an update audit is written.
|
|
1218
|
+
* @type {import("./auditing.js").AuditChanges | undefined} */
|
|
1219
|
+
_pendingUpdateAuditChanges: import("./auditing.js").AuditChanges | undefined;
|
|
1182
1220
|
/**
|
|
1183
1221
|
* Attribute names explicitly assigned in the current update call.
|
|
1184
1222
|
* @type {Set<string> | undefined}
|
|
@@ -1501,6 +1539,37 @@ declare class VelociousDatabaseRecord<WriteAttributes extends Record<string, unk
|
|
|
1501
1539
|
* @returns {Promise<void>} - Resolves when complete.
|
|
1502
1540
|
*/
|
|
1503
1541
|
destroy(): Promise<void>;
|
|
1542
|
+
/**
|
|
1543
|
+
* Stores an audit row for this record.
|
|
1544
|
+
* @param {import("./auditing.js").CreateAuditArgs} args - Audit row options.
|
|
1545
|
+
* @returns {Promise<number | string>} Created audit row id.
|
|
1546
|
+
*/
|
|
1547
|
+
createAudit(args: import("./auditing.js").CreateAuditArgs): Promise<number | string>;
|
|
1548
|
+
/**
|
|
1549
|
+
* Captures create changes before persistence clears the change set.
|
|
1550
|
+
* @returns {void}
|
|
1551
|
+
*/
|
|
1552
|
+
captureCreateAuditChanges(): void;
|
|
1553
|
+
/**
|
|
1554
|
+
* Writes the create audit row.
|
|
1555
|
+
* @returns {Promise<void>}
|
|
1556
|
+
*/
|
|
1557
|
+
createCreateAudit(): Promise<void>;
|
|
1558
|
+
/**
|
|
1559
|
+
* Captures update changes before persistence clears the change set.
|
|
1560
|
+
* @returns {void}
|
|
1561
|
+
*/
|
|
1562
|
+
captureUpdateAuditChanges(): void;
|
|
1563
|
+
/**
|
|
1564
|
+
* Writes the update audit row.
|
|
1565
|
+
* @returns {Promise<void>}
|
|
1566
|
+
*/
|
|
1567
|
+
createUpdateAudit(): Promise<void>;
|
|
1568
|
+
/**
|
|
1569
|
+
* Writes the destroy audit row.
|
|
1570
|
+
* @returns {Promise<void>}
|
|
1571
|
+
*/
|
|
1572
|
+
createDestroyAudit(): Promise<void>;
|
|
1504
1573
|
/**
|
|
1505
1574
|
* Runs run lifecycle callbacks.
|
|
1506
1575
|
* @param {"afterCreate" | "afterDestroy" | "afterSave" | "afterUpdate" | "beforeCreate" | "beforeDestroy" | "beforeSave" | "beforeUpdate" | "beforeValidation"} callbackName - Callback type.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/record/index.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/record/index.js"],"names":[],"mappings":"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"}
|