@sera4/essentia 3.0.12 → 3.0.13
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/package.json +9 -3
- package/package.tar.gz +0 -0
- package/scripts/publish.sh +46 -0
- package/dist/ts/cache/index.d.ts +0 -33
- package/dist/ts/cache/index.js +0 -171
- package/dist/ts/cache/index.js.map +0 -1
- package/dist/ts/configurations/server-config.d.ts +0 -4
- package/dist/ts/configurations/server-config.js +0 -2
- package/dist/ts/configurations/server-config.js.map +0 -1
- package/dist/ts/constants/index.d.ts +0 -7
- package/dist/ts/constants/index.js +0 -8
- package/dist/ts/constants/index.js.map +0 -1
- package/dist/ts/cycle/index.d.ts +0 -53
- package/dist/ts/cycle/index.js +0 -169
- package/dist/ts/cycle/index.js.map +0 -1
- package/dist/ts/dns/DnsCache.d.ts +0 -50
- package/dist/ts/dns/DnsCache.js +0 -137
- package/dist/ts/dns/DnsCache.js.map +0 -1
- package/dist/ts/dns/index.d.ts +0 -4
- package/dist/ts/dns/index.js +0 -4
- package/dist/ts/dns/index.js.map +0 -1
- package/dist/ts/formatter/index.d.ts +0 -44
- package/dist/ts/formatter/index.js +0 -76
- package/dist/ts/formatter/index.js.map +0 -1
- package/dist/ts/hal/index.d.ts +0 -26
- package/dist/ts/hal/index.js +0 -70
- package/dist/ts/hal/index.js.map +0 -1
- package/dist/ts/health/index.d.ts +0 -53
- package/dist/ts/health/index.js +0 -165
- package/dist/ts/health/index.js.map +0 -1
- package/dist/ts/helpers/index.d.ts +0 -1
- package/dist/ts/helpers/index.js +0 -2
- package/dist/ts/helpers/index.js.map +0 -1
- package/dist/ts/helpers/test-server-wrapper.d.ts +0 -56
- package/dist/ts/helpers/test-server-wrapper.js +0 -144
- package/dist/ts/helpers/test-server-wrapper.js.map +0 -1
- package/dist/ts/index.d.ts +0 -22
- package/dist/ts/index.js +0 -27
- package/dist/ts/index.js.map +0 -1
- package/dist/ts/last-commit/index.d.ts +0 -12
- package/dist/ts/last-commit/index.js +0 -82
- package/dist/ts/last-commit/index.js.map +0 -1
- package/dist/ts/logger/index.d.ts +0 -3
- package/dist/ts/logger/index.js +0 -4
- package/dist/ts/logger/index.js.map +0 -1
- package/dist/ts/logger/s4-logger.d.ts +0 -23
- package/dist/ts/logger/s4-logger.js +0 -105
- package/dist/ts/logger/s4-logger.js.map +0 -1
- package/dist/ts/paginator/index.d.ts +0 -2
- package/dist/ts/paginator/index.js +0 -3
- package/dist/ts/paginator/index.js.map +0 -1
- package/dist/ts/paginator/s4-pagination.d.ts +0 -26
- package/dist/ts/paginator/s4-pagination.js +0 -49
- package/dist/ts/paginator/s4-pagination.js.map +0 -1
- package/dist/ts/paginator/sql-pagination.d.ts +0 -52
- package/dist/ts/paginator/sql-pagination.js +0 -157
- package/dist/ts/paginator/sql-pagination.js.map +0 -1
- package/dist/ts/paper-trail/helpers.d.ts +0 -14
- package/dist/ts/paper-trail/helpers.js +0 -74
- package/dist/ts/paper-trail/helpers.js.map +0 -1
- package/dist/ts/paper-trail/index.d.ts +0 -54
- package/dist/ts/paper-trail/index.js +0 -236
- package/dist/ts/paper-trail/index.js.map +0 -1
- package/dist/ts/prompts/index.d.ts +0 -21
- package/dist/ts/prompts/index.js +0 -68
- package/dist/ts/prompts/index.js.map +0 -1
- package/dist/ts/queue/index.d.ts +0 -232
- package/dist/ts/queue/index.js +0 -451
- package/dist/ts/queue/index.js.map +0 -1
- package/dist/ts/queue/publisher.d.ts +0 -41
- package/dist/ts/queue/publisher.js +0 -84
- package/dist/ts/queue/publisher.js.map +0 -1
- package/dist/ts/queue/queue-logger.d.ts +0 -10
- package/dist/ts/queue/queue-logger.js +0 -35
- package/dist/ts/queue/queue-logger.js.map +0 -1
- package/dist/ts/queue/subscriber.d.ts +0 -55
- package/dist/ts/queue/subscriber.js +0 -98
- package/dist/ts/queue/subscriber.js.map +0 -1
- package/dist/ts/safe-proxy/index.d.ts +0 -35
- package/dist/ts/safe-proxy/index.js +0 -54
- package/dist/ts/safe-proxy/index.js.map +0 -1
- package/dist/ts/serializer/index.d.ts +0 -52
- package/dist/ts/serializer/index.js +0 -83
- package/dist/ts/serializer/index.js.map +0 -1
- package/dist/ts/utils/index.d.ts +0 -49
- package/dist/ts/utils/index.js +0 -157
- package/dist/ts/utils/index.js.map +0 -1
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
interface PaginateIn {
|
|
2
|
-
size: string;
|
|
3
|
-
index: string;
|
|
4
|
-
}
|
|
5
|
-
interface PaginateOut {
|
|
6
|
-
current_page: string;
|
|
7
|
-
first_page: string;
|
|
8
|
-
last_page: string;
|
|
9
|
-
next_page: string;
|
|
10
|
-
out_of_bounds: string;
|
|
11
|
-
page_size: string;
|
|
12
|
-
previous_page: string;
|
|
13
|
-
total_pages: string;
|
|
14
|
-
total_size: string;
|
|
15
|
-
links: string | boolean;
|
|
16
|
-
}
|
|
17
|
-
interface PaginationOptions {
|
|
18
|
-
limit?: number;
|
|
19
|
-
offset?: number;
|
|
20
|
-
[key: string]: any;
|
|
21
|
-
}
|
|
22
|
-
interface ModelInstance {
|
|
23
|
-
findAndCountAll: (options: PaginationOptions) => Promise<{
|
|
24
|
-
rows: any[];
|
|
25
|
-
count: number;
|
|
26
|
-
}>;
|
|
27
|
-
}
|
|
28
|
-
declare class SequelizePaginator {
|
|
29
|
-
private paginateIn;
|
|
30
|
-
private paginateOut;
|
|
31
|
-
private zeroBasedOffset;
|
|
32
|
-
private paginationHeader;
|
|
33
|
-
private headersOnly;
|
|
34
|
-
private paginationTag;
|
|
35
|
-
private collectionTag;
|
|
36
|
-
constructor();
|
|
37
|
-
paginate(Model: any, resource?: string): {
|
|
38
|
-
using: (options: PaginationOptions, resp: any) => ModelInstance;
|
|
39
|
-
paginate: (options?: PaginationOptions) => Promise<unknown>;
|
|
40
|
-
};
|
|
41
|
-
configure(options: Partial<{
|
|
42
|
-
paginateIn: Partial<PaginateIn>;
|
|
43
|
-
paginateOut: Partial<PaginateOut>;
|
|
44
|
-
zeroBasedOffset: boolean;
|
|
45
|
-
paginationHeader: string;
|
|
46
|
-
headersOnly: boolean;
|
|
47
|
-
paginationTag: string;
|
|
48
|
-
collectionTag: string;
|
|
49
|
-
}>): void;
|
|
50
|
-
}
|
|
51
|
-
declare const sqlPaginator: SequelizePaginator;
|
|
52
|
-
export default sqlPaginator;
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
class SequelizePaginator {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.paginateIn = {
|
|
4
|
-
size: "page_size",
|
|
5
|
-
index: "page_index"
|
|
6
|
-
};
|
|
7
|
-
this.paginateOut = {
|
|
8
|
-
current_page: "current_page",
|
|
9
|
-
first_page: "first_page",
|
|
10
|
-
last_page: "last_page",
|
|
11
|
-
next_page: "next_page",
|
|
12
|
-
out_of_bounds: "out_of_bounds",
|
|
13
|
-
page_size: "page_size",
|
|
14
|
-
previous_page: "previous_page",
|
|
15
|
-
total_pages: "total_pages",
|
|
16
|
-
total_size: "total_size",
|
|
17
|
-
links: "",
|
|
18
|
-
};
|
|
19
|
-
this.zeroBasedOffset = true;
|
|
20
|
-
this.paginationHeader = "tws-pagination";
|
|
21
|
-
this.headersOnly = false;
|
|
22
|
-
this.paginationTag = "_pagination";
|
|
23
|
-
this.collectionTag = "_collection";
|
|
24
|
-
}
|
|
25
|
-
paginate(Model, resource = "") {
|
|
26
|
-
const model = Model.instance || Model;
|
|
27
|
-
const DEFAULT_PAGINATION = { limit: 15, offset: 0 };
|
|
28
|
-
let pagination = { limit: 15, offset: 0 };
|
|
29
|
-
let response = null;
|
|
30
|
-
const using = (options, resp) => {
|
|
31
|
-
response = resp;
|
|
32
|
-
let limit = DEFAULT_PAGINATION.limit;
|
|
33
|
-
let offset = DEFAULT_PAGINATION.offset;
|
|
34
|
-
if (options && options[this.paginateIn.size]) {
|
|
35
|
-
limit = parseInt(options[this.paginateIn.size]);
|
|
36
|
-
}
|
|
37
|
-
if (options && options[this.paginateIn.index]) {
|
|
38
|
-
offset = parseInt(options[this.paginateIn.index]);
|
|
39
|
-
}
|
|
40
|
-
if (!Number.isInteger(limit) || limit < 1) {
|
|
41
|
-
limit = 1;
|
|
42
|
-
}
|
|
43
|
-
if (!Number.isInteger(offset) || offset < 0) {
|
|
44
|
-
offset = 0;
|
|
45
|
-
}
|
|
46
|
-
if (!this.zeroBasedOffset) {
|
|
47
|
-
offset = offset <= 1 ? 0 : offset - 1;
|
|
48
|
-
}
|
|
49
|
-
pagination.limit = limit;
|
|
50
|
-
pagination.offset = offset;
|
|
51
|
-
return model;
|
|
52
|
-
};
|
|
53
|
-
const paginate = (options = {}) => {
|
|
54
|
-
options.limit = pagination.limit;
|
|
55
|
-
options.offset = pagination.limit * pagination.offset;
|
|
56
|
-
return new Promise((resolve, reject) => {
|
|
57
|
-
model.findAndCountAll(options)
|
|
58
|
-
.then((r) => {
|
|
59
|
-
const paginationData = getPaginationData(r);
|
|
60
|
-
if (response) {
|
|
61
|
-
response.set(this.paginationHeader, JSON.stringify(paginationData));
|
|
62
|
-
}
|
|
63
|
-
let data = {};
|
|
64
|
-
if (this.headersOnly) {
|
|
65
|
-
data = r.rows;
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
data[this.paginationTag] = addLinks(paginationData);
|
|
69
|
-
data[this.collectionTag] = r.rows;
|
|
70
|
-
}
|
|
71
|
-
resolve(data);
|
|
72
|
-
}).catch((e) => reject(e));
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
|
-
const addLinks = (data) => {
|
|
76
|
-
let linksKey = null;
|
|
77
|
-
if (this.paginateOut.links === true) {
|
|
78
|
-
linksKey = "links";
|
|
79
|
-
}
|
|
80
|
-
else if (this.paginateOut.links) {
|
|
81
|
-
linksKey = this.paginateOut.links;
|
|
82
|
-
}
|
|
83
|
-
if (data && linksKey && !data[this.paginateOut.out_of_bounds]) {
|
|
84
|
-
const links = {};
|
|
85
|
-
const firstPageIndex = this.zeroBasedOffset ? 0 : 1;
|
|
86
|
-
const lastPageIndex = this.zeroBasedOffset ? data[this.paginateOut.total_pages] - 1 : data[this.paginateOut.total_pages];
|
|
87
|
-
links[this.paginateOut.first_page] = `${resource}?${this.paginateIn.index}=${firstPageIndex}&${this.paginateIn.size}=${data[this.paginateOut.page_size]}`;
|
|
88
|
-
links[this.paginateOut.last_page] = `${resource}?${this.paginateIn.index}=${lastPageIndex}&${this.paginateIn.size}=${data[this.paginateOut.page_size]}`;
|
|
89
|
-
if (data[this.paginateOut.previous_page]) {
|
|
90
|
-
const prevPageIndex = this.zeroBasedOffset ? data[this.paginateOut.previous_page] - 1 : data[this.paginateOut.previous_page];
|
|
91
|
-
links[this.paginateOut.previous_page] = `${resource}?${this.paginateIn.index}=${prevPageIndex}&${this.paginateIn.size}=${data[this.paginateOut.page_size]}`;
|
|
92
|
-
}
|
|
93
|
-
if (data[this.paginateOut.next_page]) {
|
|
94
|
-
const nextPageIndex = this.zeroBasedOffset ? data[this.paginateOut.next_page] - 1 : data[this.paginateOut.next_page];
|
|
95
|
-
links[this.paginateOut.next_page] = `${resource}?${this.paginateIn.index}=${nextPageIndex}&${this.paginateIn.size}=${data[this.paginateOut.page_size]}`;
|
|
96
|
-
}
|
|
97
|
-
data[linksKey] = links;
|
|
98
|
-
}
|
|
99
|
-
return data;
|
|
100
|
-
};
|
|
101
|
-
const getPaginationData = (result) => {
|
|
102
|
-
const totalSize = result.count;
|
|
103
|
-
const pageSize = pagination.limit;
|
|
104
|
-
const currentPage = Math.floor(pagination.offset / pageSize) + 1;
|
|
105
|
-
const totalPages = Math.ceil(totalSize / pageSize);
|
|
106
|
-
const outOfBounds = currentPage > totalPages || currentPage < 1;
|
|
107
|
-
const paginationData = {
|
|
108
|
-
[this.paginateOut.current_page]: currentPage,
|
|
109
|
-
[this.paginateOut.first_page]: currentPage === 1,
|
|
110
|
-
[this.paginateOut.last_page]: currentPage === totalPages,
|
|
111
|
-
[this.paginateOut.out_of_bounds]: outOfBounds,
|
|
112
|
-
[this.paginateOut.page_size]: pageSize,
|
|
113
|
-
[this.paginateOut.total_pages]: totalPages,
|
|
114
|
-
[this.paginateOut.total_size]: totalSize,
|
|
115
|
-
};
|
|
116
|
-
if (!outOfBounds) {
|
|
117
|
-
if (currentPage > 1) {
|
|
118
|
-
paginationData[this.paginateOut.previous_page] = currentPage - 1;
|
|
119
|
-
}
|
|
120
|
-
if (currentPage < totalPages) {
|
|
121
|
-
paginationData[this.paginateOut.next_page] = currentPage + 1;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return paginationData;
|
|
125
|
-
};
|
|
126
|
-
return {
|
|
127
|
-
using,
|
|
128
|
-
paginate
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
configure(options) {
|
|
132
|
-
if (options.paginateIn) {
|
|
133
|
-
this.paginateIn = { ...this.paginateIn, ...options.paginateIn };
|
|
134
|
-
}
|
|
135
|
-
if (options.paginateOut) {
|
|
136
|
-
this.paginateOut = { ...this.paginateOut, ...options.paginateOut };
|
|
137
|
-
}
|
|
138
|
-
if (options.zeroBasedOffset !== undefined) {
|
|
139
|
-
this.zeroBasedOffset = options.zeroBasedOffset;
|
|
140
|
-
}
|
|
141
|
-
if (options.paginationHeader) {
|
|
142
|
-
this.paginationHeader = options.paginationHeader;
|
|
143
|
-
}
|
|
144
|
-
if (options.headersOnly !== undefined) {
|
|
145
|
-
this.headersOnly = options.headersOnly;
|
|
146
|
-
}
|
|
147
|
-
if (options.paginationTag) {
|
|
148
|
-
this.paginationTag = options.paginationTag;
|
|
149
|
-
}
|
|
150
|
-
if (options.collectionTag) {
|
|
151
|
-
this.collectionTag = options.collectionTag;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
const sqlPaginator = new SequelizePaginator();
|
|
156
|
-
export default sqlPaginator;
|
|
157
|
-
//# sourceMappingURL=sql-pagination.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sql-pagination.js","sourceRoot":"","sources":["../../../ts/paginator/sql-pagination.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
interface DiffResult {
|
|
2
|
-
kind: string;
|
|
3
|
-
path: string[];
|
|
4
|
-
lhs?: any;
|
|
5
|
-
rhs?: any;
|
|
6
|
-
}
|
|
7
|
-
declare const _default: {
|
|
8
|
-
capitalizeFirstLetter: (string: string) => string;
|
|
9
|
-
toUnderscored: (obj: Record<string, string>) => Record<string, string>;
|
|
10
|
-
calcDelta: (current: Record<string, any>, next: Record<string, any>, exclude: string[], strict: boolean, DEBUG?: boolean) => DiffResult[] | null;
|
|
11
|
-
diffToString: (val: any) => string;
|
|
12
|
-
};
|
|
13
|
-
export default _default;
|
|
14
|
-
export type { DiffResult };
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import pkg from 'deep-diff';
|
|
2
|
-
import _ from 'lodash';
|
|
3
|
-
const { diff } = pkg;
|
|
4
|
-
const capitalizeFirstLetter = (string) => string.charAt(0).toUpperCase() + string.slice(1);
|
|
5
|
-
const toUnderscored = (obj) => {
|
|
6
|
-
_.forEach(obj, (k, v) => {
|
|
7
|
-
obj[k] = v
|
|
8
|
-
.replace(/(?:^|\.?)([A-Z])/g, (x, y) => `_${y.toLowerCase()}`)
|
|
9
|
-
.replace(/^_/, '');
|
|
10
|
-
});
|
|
11
|
-
return obj;
|
|
12
|
-
};
|
|
13
|
-
const calcDelta = (current, next, exclude, strict, DEBUG = false) => {
|
|
14
|
-
if (DEBUG) {
|
|
15
|
-
console.log('current', current);
|
|
16
|
-
console.log('next', next);
|
|
17
|
-
console.log('exclude', exclude);
|
|
18
|
-
}
|
|
19
|
-
const di = diff(current, next);
|
|
20
|
-
if (DEBUG) {
|
|
21
|
-
console.log('di', di);
|
|
22
|
-
let diffs2 = [];
|
|
23
|
-
if (di) {
|
|
24
|
-
diffs2 = di.map((i) => JSON.parse(JSON.stringify(i).replace('"__data",', '')));
|
|
25
|
-
}
|
|
26
|
-
console.log('diffs2', diffs2);
|
|
27
|
-
console.log('filter1', diffs2.filter(i => i.path.join(',').indexOf('_') === -1));
|
|
28
|
-
console.log('filter2', diffs2.filter(i => exclude.every(x => i.path.indexOf(x) === -1)));
|
|
29
|
-
}
|
|
30
|
-
let diffs = [];
|
|
31
|
-
if (di) {
|
|
32
|
-
diffs = di
|
|
33
|
-
.map((i) => JSON.parse(JSON.stringify(i).replace('"__data",', '')))
|
|
34
|
-
.filter((i) => {
|
|
35
|
-
if (!strict && i.kind === 'E') {
|
|
36
|
-
// eslint-disable-next-line eqeqeq
|
|
37
|
-
if (i.lhs != i.rhs)
|
|
38
|
-
return i;
|
|
39
|
-
}
|
|
40
|
-
else
|
|
41
|
-
return i;
|
|
42
|
-
return false;
|
|
43
|
-
})
|
|
44
|
-
.filter((i) => exclude.every((x) => i.path.indexOf(x) === -1));
|
|
45
|
-
}
|
|
46
|
-
if (diffs.length > 0) {
|
|
47
|
-
return diffs;
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
};
|
|
51
|
-
const diffToString = (val) => {
|
|
52
|
-
if (typeof val === 'undefined' || val === null)
|
|
53
|
-
return '';
|
|
54
|
-
if (val === true)
|
|
55
|
-
return '1';
|
|
56
|
-
if (val === false)
|
|
57
|
-
return '0';
|
|
58
|
-
if (typeof val === 'string')
|
|
59
|
-
return val;
|
|
60
|
-
if (!Number.isNaN(Number(val)))
|
|
61
|
-
return `${String(val)}`;
|
|
62
|
-
if ((typeof val === 'undefined' ? 'undefined' : typeof val) === 'object')
|
|
63
|
-
return `${JSON.stringify(val)}`;
|
|
64
|
-
if (Array.isArray(val))
|
|
65
|
-
return `${JSON.stringify(val)}`;
|
|
66
|
-
return '';
|
|
67
|
-
};
|
|
68
|
-
export default {
|
|
69
|
-
capitalizeFirstLetter,
|
|
70
|
-
toUnderscored,
|
|
71
|
-
calcDelta,
|
|
72
|
-
diffToString
|
|
73
|
-
};
|
|
74
|
-
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../ts/paper-trail/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
interface PaperTrailOptions {
|
|
2
|
-
debug?: boolean;
|
|
3
|
-
log?: any;
|
|
4
|
-
exclude?: string[];
|
|
5
|
-
excludeExtras?: string[];
|
|
6
|
-
excludeVirtualAttributes?: boolean;
|
|
7
|
-
censor?: string[];
|
|
8
|
-
revisionAttribute?: string;
|
|
9
|
-
revisionModel?: string;
|
|
10
|
-
revisionChangeModel?: string;
|
|
11
|
-
enableRevisionChangeModel?: boolean;
|
|
12
|
-
UUID?: boolean;
|
|
13
|
-
mixedDocumentReference?: boolean;
|
|
14
|
-
underscored?: boolean;
|
|
15
|
-
underscoredAttributes?: boolean;
|
|
16
|
-
includeReferences?: string[];
|
|
17
|
-
defaultAttributes?: {
|
|
18
|
-
documentId: string;
|
|
19
|
-
revisionId: string;
|
|
20
|
-
autoGenerated: string;
|
|
21
|
-
documentUuid?: string;
|
|
22
|
-
};
|
|
23
|
-
als?: any;
|
|
24
|
-
userModel?: boolean;
|
|
25
|
-
userModelAttribute?: string;
|
|
26
|
-
tenantModel?: boolean;
|
|
27
|
-
tenantModelAttribute?: string;
|
|
28
|
-
enableCompression?: boolean;
|
|
29
|
-
enableMigration?: boolean;
|
|
30
|
-
enableStrictDiff?: boolean;
|
|
31
|
-
continuationNamespace?: any;
|
|
32
|
-
continuationKey?: string;
|
|
33
|
-
continuationTenantKey?: string;
|
|
34
|
-
metaDataFields?: any;
|
|
35
|
-
metaDataContinuationKey?: string;
|
|
36
|
-
mysql?: boolean;
|
|
37
|
-
}
|
|
38
|
-
interface ModelInstance {
|
|
39
|
-
get: (key?: string) => Record<string, any> | any;
|
|
40
|
-
set: (key: string, value: any) => void;
|
|
41
|
-
save: () => Promise<any>;
|
|
42
|
-
[key: string]: any;
|
|
43
|
-
}
|
|
44
|
-
interface ModelOptions {
|
|
45
|
-
noPaperTrail?: boolean;
|
|
46
|
-
[key: string]: any;
|
|
47
|
-
}
|
|
48
|
-
declare const paperTrail: {
|
|
49
|
-
init: (sequelize: any, sequelizePackage: any, optionsArg?: PaperTrailOptions) => void;
|
|
50
|
-
hasPaperTrail: () => boolean;
|
|
51
|
-
defineModels: (db: any) => void;
|
|
52
|
-
};
|
|
53
|
-
export default paperTrail;
|
|
54
|
-
export type { PaperTrailOptions, ModelInstance, ModelOptions };
|
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
import _ from 'lodash';
|
|
2
|
-
import helpers from './helpers.js';
|
|
3
|
-
const censorText = "**********";
|
|
4
|
-
let failHard = false;
|
|
5
|
-
let Sequelize = null;
|
|
6
|
-
const paperTrail = {
|
|
7
|
-
init: (sequelize, sequelizePackage, optionsArg) => {
|
|
8
|
-
Sequelize = sequelizePackage;
|
|
9
|
-
// In case that options is being parsed as a readonly attribute.
|
|
10
|
-
// Or it is not passed at all
|
|
11
|
-
const optsArg = _.cloneDeep(optionsArg || {});
|
|
12
|
-
const defaultOptions = {
|
|
13
|
-
debug: false,
|
|
14
|
-
log: null,
|
|
15
|
-
exclude: [
|
|
16
|
-
'id',
|
|
17
|
-
'createdAt',
|
|
18
|
-
'updatedAt',
|
|
19
|
-
'deletedAt',
|
|
20
|
-
'created_at',
|
|
21
|
-
'updated_at',
|
|
22
|
-
'deleted_at',
|
|
23
|
-
'audit_source',
|
|
24
|
-
'revision',
|
|
25
|
-
],
|
|
26
|
-
// additional fields to exclude on a global basis
|
|
27
|
-
excludeExtras: [],
|
|
28
|
-
excludeVirtualAttributes: true, // by default do not record these
|
|
29
|
-
censor: ["password", "password_salt", "temp_secret", "mfa_totp_secret"],
|
|
30
|
-
revisionAttribute: 'revision',
|
|
31
|
-
revisionModel: 'Revision',
|
|
32
|
-
revisionChangeModel: 'RevisionChange',
|
|
33
|
-
enableRevisionChangeModel: false,
|
|
34
|
-
UUID: false,
|
|
35
|
-
// does this project use int's and UUIDs for some references (postgres)
|
|
36
|
-
mixedDocumentReference: false,
|
|
37
|
-
underscored: false,
|
|
38
|
-
underscoredAttributes: false,
|
|
39
|
-
// always store these keys in a reference value if seen
|
|
40
|
-
includeReferences: [],
|
|
41
|
-
defaultAttributes: {
|
|
42
|
-
documentId: 'documentId',
|
|
43
|
-
revisionId: 'revisionId',
|
|
44
|
-
autoGenerated: 'autoGenerated'
|
|
45
|
-
},
|
|
46
|
-
als: null,
|
|
47
|
-
userModel: false,
|
|
48
|
-
userModelAttribute: 'userId',
|
|
49
|
-
tenantModel: false,
|
|
50
|
-
tenantModelAttribute: 'tenantId',
|
|
51
|
-
enableCompression: false,
|
|
52
|
-
enableMigration: false,
|
|
53
|
-
enableStrictDiff: true,
|
|
54
|
-
continuationNamespace: null,
|
|
55
|
-
continuationKey: 'userId',
|
|
56
|
-
continuationTenantKey: 'tenantId',
|
|
57
|
-
metaDataFields: null,
|
|
58
|
-
metaDataContinuationKey: 'metaData',
|
|
59
|
-
mysql: false,
|
|
60
|
-
};
|
|
61
|
-
if (optsArg.mixedDocumentReference)
|
|
62
|
-
defaultOptions.defaultAttributes.documentUuid = "documentUuid";
|
|
63
|
-
if (optsArg.underscoredAttributes) {
|
|
64
|
-
helpers.toUnderscored(defaultOptions.defaultAttributes);
|
|
65
|
-
}
|
|
66
|
-
// deals with not wanting to overwrite the initial ones, just add some
|
|
67
|
-
if (optsArg.excludeExtras) {
|
|
68
|
-
if (optsArg.exclude) {
|
|
69
|
-
optsArg.exclude = [...optsArg.exclude, ...optsArg.excludeExtras];
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
optsArg.exclude = [...defaultOptions.exclude, ...optsArg.excludeExtras];
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
const options = _.defaults(optsArg, defaultOptions);
|
|
76
|
-
const log = options.log || console.log;
|
|
77
|
-
function createBeforeHook(operation) {
|
|
78
|
-
const beforeHook = function beforeHook(instance, opt) {
|
|
79
|
-
if (options.debug) {
|
|
80
|
-
log('beforeHook called');
|
|
81
|
-
log('instance:', instance);
|
|
82
|
-
log('opt:', opt);
|
|
83
|
-
}
|
|
84
|
-
if (opt.noPaperTrail) {
|
|
85
|
-
if (options.debug) {
|
|
86
|
-
log('noPaperTrail set, skipping');
|
|
87
|
-
}
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
// Store the original values for comparison
|
|
91
|
-
const originalValues = instance.get();
|
|
92
|
-
instance.set('_paperTrailOriginalValues', originalValues);
|
|
93
|
-
};
|
|
94
|
-
return beforeHook;
|
|
95
|
-
}
|
|
96
|
-
function createAfterHook(operation) {
|
|
97
|
-
const afterHook = function afterHook(instance, opt) {
|
|
98
|
-
if (options.debug) {
|
|
99
|
-
log('afterHook called');
|
|
100
|
-
log('instance:', instance);
|
|
101
|
-
log('opt:', opt);
|
|
102
|
-
}
|
|
103
|
-
if (opt.noPaperTrail) {
|
|
104
|
-
if (options.debug) {
|
|
105
|
-
log('noPaperTrail set, skipping');
|
|
106
|
-
}
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
// Get the original values and current values
|
|
110
|
-
const originalValues = instance.get('_paperTrailOriginalValues') || {};
|
|
111
|
-
const currentValues = instance.get();
|
|
112
|
-
// Remove the temporary field
|
|
113
|
-
delete currentValues._paperTrailOriginalValues;
|
|
114
|
-
// Calculate differences
|
|
115
|
-
const differences = helpers.calcDelta(originalValues, currentValues, options.exclude || [], options.enableStrictDiff || false, options.debug);
|
|
116
|
-
if (differences && differences.length > 0) {
|
|
117
|
-
// Create revision record
|
|
118
|
-
const revisionData = {
|
|
119
|
-
documentId: instance.get(options.defaultAttributes.documentId),
|
|
120
|
-
revision: instance.get(options.revisionAttribute),
|
|
121
|
-
document: JSON.stringify(currentValues),
|
|
122
|
-
operation: operation,
|
|
123
|
-
changes: JSON.stringify(differences),
|
|
124
|
-
createdAt: new Date()
|
|
125
|
-
};
|
|
126
|
-
// Add user information if available
|
|
127
|
-
if (options.userModel && options.als) {
|
|
128
|
-
const user = options.als.get(options.continuationKey);
|
|
129
|
-
if (user) {
|
|
130
|
-
revisionData[options.userModelAttribute] = user;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
// Add tenant information if available
|
|
134
|
-
if (options.tenantModel && options.als) {
|
|
135
|
-
const tenant = options.als.get(options.continuationTenantKey);
|
|
136
|
-
if (tenant) {
|
|
137
|
-
revisionData[options.tenantModelAttribute] = tenant;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
// Save revision
|
|
141
|
-
const Revision = sequelize.models[options.revisionModel];
|
|
142
|
-
if (Revision) {
|
|
143
|
-
Revision.create(revisionData).catch((err) => {
|
|
144
|
-
if (failHard) {
|
|
145
|
-
throw err;
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
log('Error creating revision:', err);
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
return afterHook;
|
|
155
|
-
}
|
|
156
|
-
// Add hooks to all models
|
|
157
|
-
Object.keys(sequelize.models).forEach(modelName => {
|
|
158
|
-
const model = sequelize.models[modelName];
|
|
159
|
-
// Add before hooks
|
|
160
|
-
model.addHook('beforeCreate', createBeforeHook('create'));
|
|
161
|
-
model.addHook('beforeUpdate', createBeforeHook('update'));
|
|
162
|
-
model.addHook('beforeDestroy', createBeforeHook('destroy'));
|
|
163
|
-
// Add after hooks
|
|
164
|
-
model.addHook('afterCreate', createAfterHook('create'));
|
|
165
|
-
model.addHook('afterUpdate', createAfterHook('update'));
|
|
166
|
-
model.addHook('afterDestroy', createAfterHook('destroy'));
|
|
167
|
-
});
|
|
168
|
-
},
|
|
169
|
-
hasPaperTrail: function hasPaperTrail() {
|
|
170
|
-
return Sequelize !== null;
|
|
171
|
-
},
|
|
172
|
-
defineModels: function defineModels(db) {
|
|
173
|
-
if (!Sequelize) {
|
|
174
|
-
throw new Error('PaperTrail not initialized. Call paperTrail.init() first.');
|
|
175
|
-
}
|
|
176
|
-
const Revision = db.define('Revision', {
|
|
177
|
-
id: {
|
|
178
|
-
type: Sequelize.INTEGER,
|
|
179
|
-
primaryKey: true,
|
|
180
|
-
autoIncrement: true
|
|
181
|
-
},
|
|
182
|
-
documentId: {
|
|
183
|
-
type: Sequelize.STRING,
|
|
184
|
-
allowNull: false
|
|
185
|
-
},
|
|
186
|
-
revision: {
|
|
187
|
-
type: Sequelize.INTEGER,
|
|
188
|
-
allowNull: false
|
|
189
|
-
},
|
|
190
|
-
document: {
|
|
191
|
-
type: Sequelize.TEXT,
|
|
192
|
-
allowNull: false
|
|
193
|
-
},
|
|
194
|
-
operation: {
|
|
195
|
-
type: Sequelize.STRING,
|
|
196
|
-
allowNull: false
|
|
197
|
-
},
|
|
198
|
-
changes: {
|
|
199
|
-
type: Sequelize.TEXT,
|
|
200
|
-
allowNull: true
|
|
201
|
-
},
|
|
202
|
-
userId: {
|
|
203
|
-
type: Sequelize.INTEGER,
|
|
204
|
-
allowNull: true
|
|
205
|
-
},
|
|
206
|
-
tenantId: {
|
|
207
|
-
type: Sequelize.INTEGER,
|
|
208
|
-
allowNull: true
|
|
209
|
-
},
|
|
210
|
-
createdAt: {
|
|
211
|
-
type: Sequelize.DATE,
|
|
212
|
-
allowNull: false
|
|
213
|
-
}
|
|
214
|
-
}, {
|
|
215
|
-
tableName: 'revisions',
|
|
216
|
-
timestamps: false
|
|
217
|
-
});
|
|
218
|
-
// Add associations if user and tenant models exist
|
|
219
|
-
if (db.models.User) {
|
|
220
|
-
Revision.belongsTo(db.models.User, { foreignKey: 'userId' });
|
|
221
|
-
}
|
|
222
|
-
if (db.models.Tenant) {
|
|
223
|
-
Revision.belongsTo(db.models.Tenant, { foreignKey: 'tenantId' });
|
|
224
|
-
}
|
|
225
|
-
Revision.associate = function associate(models) {
|
|
226
|
-
if (models.User) {
|
|
227
|
-
Revision.belongsTo(models.User, { foreignKey: 'userId' });
|
|
228
|
-
}
|
|
229
|
-
if (models.Tenant) {
|
|
230
|
-
Revision.belongsTo(models.Tenant, { foreignKey: 'tenantId' });
|
|
231
|
-
}
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
};
|
|
235
|
-
export default paperTrail;
|
|
236
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/paper-trail/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ArgumentParser } from 'argparse';
|
|
2
|
-
interface CLIInitOptions {
|
|
3
|
-
asyncFcns?: (() => Promise<void>)[];
|
|
4
|
-
extraFcns?: (() => void)[];
|
|
5
|
-
sleepTime?: number;
|
|
6
|
-
}
|
|
7
|
-
interface PromptOptions {
|
|
8
|
-
[key: string]: {
|
|
9
|
-
type: string;
|
|
10
|
-
description?: string;
|
|
11
|
-
required?: boolean;
|
|
12
|
-
default?: any;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
declare const setupCLIParser: (description: string) => ArgumentParser;
|
|
16
|
-
declare const commonCLIInit: (options?: CLIInitOptions) => Promise<void>;
|
|
17
|
-
declare const promptCLIAsync: (options: PromptOptions) => Promise<Record<string, any>>;
|
|
18
|
-
declare const waitCLIPrompt: PromptOptions;
|
|
19
|
-
declare const continueCLIPrompt: PromptOptions;
|
|
20
|
-
declare const cliSleep: (ms: number) => Promise<void>;
|
|
21
|
-
export { commonCLIInit, continueCLIPrompt, promptCLIAsync, setupCLIParser, cliSleep, waitCLIPrompt, type CLIInitOptions, type PromptOptions };
|