@strapi/utils 4.11.0-exp.9xg4-3qfm-9w8f.1 → 4.11.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.
- package/dist/async.d.ts +10 -0
- package/dist/async.js +33 -0
- package/dist/async.js.map +1 -0
- package/dist/code-generator.d.ts +2 -0
- package/dist/code-generator.js +11 -0
- package/dist/code-generator.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.js +79 -0
- package/dist/config.js.map +1 -0
- package/dist/content-types.d.ts +60 -0
- package/dist/content-types.js +147 -0
- package/dist/content-types.js.map +1 -0
- package/dist/convert-query-params.d.ts +72 -0
- package/dist/convert-query-params.js +451 -0
- package/dist/convert-query-params.js.map +1 -0
- package/dist/env-helper.d.ts +18 -0
- package/dist/env-helper.js +84 -0
- package/dist/env-helper.js.map +1 -0
- package/dist/errors.d.ts +37 -0
- package/dist/errors.js +100 -0
- package/dist/errors.js.map +1 -0
- package/dist/file.d.ts +16 -0
- package/dist/file.js +54 -0
- package/dist/file.js.map +1 -0
- package/dist/format-yup-error.d.ts +10 -0
- package/dist/format-yup-error.js +17 -0
- package/dist/format-yup-error.js.map +1 -0
- package/dist/hooks.d.ts +92 -0
- package/dist/hooks.js +89 -0
- package/dist/hooks.js.map +1 -0
- package/dist/import-default.d.ts +1 -0
- package/dist/import-default.js +10 -0
- package/dist/import-default.js.map +1 -0
- package/dist/index.d.ts +200 -0
- package/dist/index.js +151 -0
- package/dist/index.js.map +1 -0
- package/dist/object-formatting.d.ts +3 -0
- package/dist/object-formatting.js +14 -0
- package/dist/object-formatting.js.map +1 -0
- package/dist/pagination.d.ts +14 -0
- package/dist/pagination.js +80 -0
- package/dist/pagination.js.map +1 -0
- package/dist/parse-multipart.d.ts +8 -0
- package/dist/parse-multipart.js +36 -0
- package/dist/parse-multipart.js.map +1 -0
- package/dist/parse-type.d.ts +21 -0
- package/dist/parse-type.js +97 -0
- package/dist/parse-type.js.map +1 -0
- package/dist/policy.d.ts +41 -0
- package/dist/policy.js +109 -0
- package/dist/policy.js.map +1 -0
- package/dist/print-value.d.ts +2 -0
- package/dist/print-value.js +50 -0
- package/dist/print-value.js.map +1 -0
- package/dist/provider-factory.d.ts +84 -0
- package/dist/provider-factory.js +88 -0
- package/dist/provider-factory.js.map +1 -0
- package/dist/relations.d.ts +10 -0
- package/dist/relations.js +23 -0
- package/dist/relations.js.map +1 -0
- package/dist/sanitize/index.d.ts +23 -0
- package/dist/sanitize/index.js +135 -0
- package/dist/sanitize/index.js.map +1 -0
- package/dist/sanitize/sanitizers.d.ts +10 -0
- package/dist/sanitize/sanitizers.js +106 -0
- package/dist/sanitize/sanitizers.js.map +1 -0
- package/dist/sanitize/visitors/allowed-fields.d.ts +3 -0
- package/dist/sanitize/visitors/allowed-fields.js +83 -0
- package/dist/sanitize/visitors/allowed-fields.js.map +1 -0
- package/dist/sanitize/visitors/index.d.ts +7 -0
- package/dist/sanitize/visitors/index.js +21 -0
- package/dist/sanitize/visitors/index.js.map +1 -0
- package/dist/sanitize/visitors/remove-dynamic-zones.d.ts +3 -0
- package/dist/sanitize/visitors/remove-dynamic-zones.js +10 -0
- package/dist/sanitize/visitors/remove-dynamic-zones.js.map +1 -0
- package/dist/sanitize/visitors/remove-morph-to-relations.d.ts +3 -0
- package/dist/sanitize/visitors/remove-morph-to-relations.js +10 -0
- package/dist/sanitize/visitors/remove-morph-to-relations.js.map +1 -0
- package/dist/sanitize/visitors/remove-password.d.ts +3 -0
- package/dist/sanitize/visitors/remove-password.js +9 -0
- package/dist/sanitize/visitors/remove-password.js.map +1 -0
- package/dist/sanitize/visitors/remove-private.d.ts +3 -0
- package/dist/sanitize/visitors/remove-private.js +14 -0
- package/dist/sanitize/visitors/remove-private.js.map +1 -0
- package/dist/sanitize/visitors/remove-restricted-relations.d.ts +3 -0
- package/dist/sanitize/visitors/remove-restricted-relations.js +88 -0
- package/dist/sanitize/visitors/remove-restricted-relations.js.map +1 -0
- package/dist/sanitize/visitors/restricted-fields.d.ts +3 -0
- package/dist/sanitize/visitors/restricted-fields.js +25 -0
- package/dist/sanitize/visitors/restricted-fields.js.map +1 -0
- package/dist/set-creator-fields.d.ts +9 -0
- package/dist/set-creator-fields.js +38 -0
- package/dist/set-creator-fields.js.map +1 -0
- package/dist/string-formatting.d.ts +16 -0
- package/dist/string-formatting.js +85 -0
- package/dist/string-formatting.js.map +1 -0
- package/dist/template-configuration.d.ts +5 -0
- package/dist/template-configuration.js +28 -0
- package/dist/template-configuration.js.map +1 -0
- package/dist/template.d.ts +9 -0
- package/dist/template.js +20 -0
- package/dist/template.js.map +1 -0
- package/dist/traverse/factory.d.ts +80 -0
- package/dist/traverse/factory.js +127 -0
- package/dist/traverse/factory.js.map +1 -0
- package/dist/traverse/index.d.ts +5 -0
- package/dist/traverse/index.js +17 -0
- package/dist/traverse/index.js.map +1 -0
- package/dist/traverse/query-fields.d.ts +3 -0
- package/dist/traverse/query-fields.js +35 -0
- package/dist/traverse/query-fields.js.map +1 -0
- package/dist/traverse/query-filters.d.ts +3 -0
- package/dist/traverse/query-filters.js +75 -0
- package/dist/traverse/query-filters.js.map +1 -0
- package/dist/traverse/query-populate.d.ts +3 -0
- package/dist/traverse/query-populate.js +144 -0
- package/dist/traverse/query-populate.js.map +1 -0
- package/dist/traverse/query-sort.d.ts +3 -0
- package/dist/traverse/query-sort.js +116 -0
- package/dist/traverse/query-sort.js.map +1 -0
- package/dist/traverse-entity.d.ts +33 -0
- package/dist/traverse-entity.js +134 -0
- package/dist/traverse-entity.js.map +1 -0
- package/dist/types.d.ts +66 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/validators.d.ts +13 -0
- package/dist/validators.js +120 -0
- package/dist/validators.js.map +1 -0
- package/dist/webhook.d.ts +10 -0
- package/dist/webhook.js +14 -0
- package/dist/webhook.js.map +1 -0
- package/lib/content-types.js +5 -4
- package/package.json +2 -2
package/dist/errors.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable max-classes-per-file */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.NotImplementedError = exports.PolicyError = exports.PayloadTooLargeError = exports.RateLimitError = exports.UnauthorizedError = exports.ForbiddenError = exports.NotFoundError = exports.PaginationError = exports.YupValidationError = exports.ValidationError = exports.ApplicationError = exports.HttpError = void 0;
|
|
5
|
+
const http_errors_1 = require("http-errors");
|
|
6
|
+
Object.defineProperty(exports, "HttpError", { enumerable: true, get: function () { return http_errors_1.HttpError; } });
|
|
7
|
+
const format_yup_error_1 = require("./format-yup-error");
|
|
8
|
+
/* ApplicationError */
|
|
9
|
+
class ApplicationError extends Error {
|
|
10
|
+
constructor(message, details = {}) {
|
|
11
|
+
super();
|
|
12
|
+
this.name = 'ApplicationError';
|
|
13
|
+
this.message = message || 'An application error occured';
|
|
14
|
+
this.details = details;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.ApplicationError = ApplicationError;
|
|
18
|
+
class ValidationError extends ApplicationError {
|
|
19
|
+
constructor(message, details) {
|
|
20
|
+
super(message, details);
|
|
21
|
+
this.name = 'ValidationError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ValidationError = ValidationError;
|
|
25
|
+
class YupValidationError extends ValidationError {
|
|
26
|
+
constructor(yupError, message) {
|
|
27
|
+
super('Validation');
|
|
28
|
+
const { errors, message: yupMessage } = (0, format_yup_error_1.formatYupErrors)(yupError);
|
|
29
|
+
this.message = message || yupMessage;
|
|
30
|
+
this.details = { errors };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.YupValidationError = YupValidationError;
|
|
34
|
+
class PaginationError extends ApplicationError {
|
|
35
|
+
constructor(message, details) {
|
|
36
|
+
super(message, details);
|
|
37
|
+
this.name = 'PaginationError';
|
|
38
|
+
this.message = message || 'Invalid pagination';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.PaginationError = PaginationError;
|
|
42
|
+
class NotFoundError extends ApplicationError {
|
|
43
|
+
constructor(message, details) {
|
|
44
|
+
super(message, details);
|
|
45
|
+
this.name = 'NotFoundError';
|
|
46
|
+
this.message = message || 'Entity not found';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.NotFoundError = NotFoundError;
|
|
50
|
+
class ForbiddenError extends ApplicationError {
|
|
51
|
+
constructor(message, details) {
|
|
52
|
+
super(message, details);
|
|
53
|
+
this.name = 'ForbiddenError';
|
|
54
|
+
this.message = message || 'Forbidden access';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.ForbiddenError = ForbiddenError;
|
|
58
|
+
class UnauthorizedError extends ApplicationError {
|
|
59
|
+
constructor(message, details) {
|
|
60
|
+
super(message, details);
|
|
61
|
+
this.name = 'UnauthorizedError';
|
|
62
|
+
this.message = message || 'Unauthorized';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.UnauthorizedError = UnauthorizedError;
|
|
66
|
+
class RateLimitError extends ApplicationError {
|
|
67
|
+
constructor(message, details) {
|
|
68
|
+
super(message, details);
|
|
69
|
+
this.name = 'RateLimitError';
|
|
70
|
+
this.message = message || 'Too many requests, please try again later.';
|
|
71
|
+
this.details = details || {};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.RateLimitError = RateLimitError;
|
|
75
|
+
class PayloadTooLargeError extends ApplicationError {
|
|
76
|
+
constructor(message, details) {
|
|
77
|
+
super(message, details);
|
|
78
|
+
this.name = 'PayloadTooLargeError';
|
|
79
|
+
this.message = message || 'Entity too large';
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.PayloadTooLargeError = PayloadTooLargeError;
|
|
83
|
+
class PolicyError extends ForbiddenError {
|
|
84
|
+
constructor(message, details) {
|
|
85
|
+
super(message, details);
|
|
86
|
+
this.name = 'PolicyError';
|
|
87
|
+
this.message = message || 'Policy Failed';
|
|
88
|
+
this.details = details || {};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.PolicyError = PolicyError;
|
|
92
|
+
class NotImplementedError extends ApplicationError {
|
|
93
|
+
constructor(message, details) {
|
|
94
|
+
super(message, details);
|
|
95
|
+
this.name = 'NotImplementedError';
|
|
96
|
+
this.message = message || 'This feature is not implemented yet';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.NotImplementedError = NotImplementedError;
|
|
100
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/file.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/**
|
|
3
|
+
* Utils file containing file treatment utils
|
|
4
|
+
*/
|
|
5
|
+
import { Readable, Writable, WritableOptions } from 'node:stream';
|
|
6
|
+
declare const kbytesToBytes: (kbytes: number) => number;
|
|
7
|
+
declare const bytesToKbytes: (bytes: number) => number;
|
|
8
|
+
declare const bytesToHumanReadable: (bytes: number) => string;
|
|
9
|
+
declare const streamToBuffer: (stream: Readable) => Promise<unknown>;
|
|
10
|
+
declare const getStreamSize: (stream: Readable) => Promise<unknown>;
|
|
11
|
+
/**
|
|
12
|
+
* Create a writeable Node.js stream that discards received data.
|
|
13
|
+
* Useful for testing, draining a stream of data, etc.
|
|
14
|
+
*/
|
|
15
|
+
declare function writableDiscardStream(options: WritableOptions): Writable;
|
|
16
|
+
export { streamToBuffer, bytesToHumanReadable, bytesToKbytes, kbytesToBytes, getStreamSize, writableDiscardStream, };
|
package/dist/file.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writableDiscardStream = exports.getStreamSize = exports.kbytesToBytes = exports.bytesToKbytes = exports.bytesToHumanReadable = exports.streamToBuffer = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Utils file containing file treatment utils
|
|
6
|
+
*/
|
|
7
|
+
const node_stream_1 = require("node:stream");
|
|
8
|
+
const kbytesToBytes = (kbytes) => kbytes * 1000;
|
|
9
|
+
exports.kbytesToBytes = kbytesToBytes;
|
|
10
|
+
const bytesToKbytes = (bytes) => Math.round((bytes / 1000) * 100) / 100;
|
|
11
|
+
exports.bytesToKbytes = bytesToKbytes;
|
|
12
|
+
const bytesToHumanReadable = (bytes) => {
|
|
13
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];
|
|
14
|
+
if (bytes === 0)
|
|
15
|
+
return '0 Bytes';
|
|
16
|
+
const i = parseInt(`${Math.floor(Math.log(bytes) / Math.log(1000))}`, 10);
|
|
17
|
+
return `${Math.round(bytes / 1000 ** i)} ${sizes[i]}`;
|
|
18
|
+
};
|
|
19
|
+
exports.bytesToHumanReadable = bytesToHumanReadable;
|
|
20
|
+
const streamToBuffer = (stream) => new Promise((resolve, reject) => {
|
|
21
|
+
const chunks = [];
|
|
22
|
+
stream.on('data', (chunk) => {
|
|
23
|
+
chunks.push(chunk);
|
|
24
|
+
});
|
|
25
|
+
stream.on('end', () => {
|
|
26
|
+
resolve(Buffer.concat(chunks));
|
|
27
|
+
});
|
|
28
|
+
stream.on('error', reject);
|
|
29
|
+
});
|
|
30
|
+
exports.streamToBuffer = streamToBuffer;
|
|
31
|
+
const getStreamSize = (stream) => new Promise((resolve, reject) => {
|
|
32
|
+
let size = 0;
|
|
33
|
+
stream.on('data', (chunk) => {
|
|
34
|
+
size += Buffer.byteLength(chunk);
|
|
35
|
+
});
|
|
36
|
+
stream.on('close', () => resolve(size));
|
|
37
|
+
stream.on('error', reject);
|
|
38
|
+
stream.resume();
|
|
39
|
+
});
|
|
40
|
+
exports.getStreamSize = getStreamSize;
|
|
41
|
+
/**
|
|
42
|
+
* Create a writeable Node.js stream that discards received data.
|
|
43
|
+
* Useful for testing, draining a stream of data, etc.
|
|
44
|
+
*/
|
|
45
|
+
function writableDiscardStream(options) {
|
|
46
|
+
return new node_stream_1.Writable({
|
|
47
|
+
...options,
|
|
48
|
+
write(chunk, encding, callback) {
|
|
49
|
+
setImmediate(callback);
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.writableDiscardStream = writableDiscardStream;
|
|
54
|
+
//# sourceMappingURL=file.js.map
|
package/dist/file.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,6CAAkE;AAElE,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;AAiDtD,sCAAa;AAhDf,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AA+C9E,sCAAa;AA9Cf,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtD,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC,CAAC;AAwCA,oDAAoB;AAtCtB,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAE,EAAE,CAC1C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QACpB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AA2BH,wCAAc;AAzBhB,MAAM,aAAa,GAAG,CAAC,MAAgB,EAAE,EAAE,CACzC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1B,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3B,MAAM,CAAC,MAAM,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAoBH,sCAAa;AAlBf;;;GAGG;AACH,SAAS,qBAAqB,CAAC,OAAwB;IACrD,OAAO,IAAI,sBAAQ,CAAC;QAClB,GAAG,OAAO;QACV,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ;YAC5B,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAQC,sDAAqB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatYupErrors = void 0;
|
|
4
|
+
const fp_1 = require("lodash/fp");
|
|
5
|
+
const formatYupInnerError = (yupError) => ({
|
|
6
|
+
path: (0, fp_1.toPath)(yupError.path),
|
|
7
|
+
message: yupError.message,
|
|
8
|
+
name: yupError.name,
|
|
9
|
+
});
|
|
10
|
+
const formatYupErrors = (yupError) => ({
|
|
11
|
+
errors: (0, fp_1.isEmpty)(yupError.inner)
|
|
12
|
+
? [formatYupInnerError(yupError)]
|
|
13
|
+
: yupError.inner.map(formatYupInnerError),
|
|
14
|
+
message: yupError.message,
|
|
15
|
+
});
|
|
16
|
+
exports.formatYupErrors = formatYupErrors;
|
|
17
|
+
//# sourceMappingURL=format-yup-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-yup-error.js","sourceRoot":"","sources":["../src/format-yup-error.ts"],"names":[],"mappings":";;;AAAA,kCAA4C;AAG5C,MAAM,mBAAmB,GAAG,CAAC,QAAyB,EAAE,EAAE,CAAC,CAAC;IAC1D,IAAI,EAAE,IAAA,WAAM,EAAC,QAAQ,CAAC,IAAI,CAAC;IAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;IACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;CACpB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,QAAyB,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,EAAE,IAAA,YAAO,EAAC,QAAQ,CAAC,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC3C,OAAO,EAAE,QAAQ,CAAC,OAAO;CAC1B,CAAC,CAAC;AAEM,0CAAe"}
|
package/dist/hooks.d.ts
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export interface Handler {
|
|
2
|
+
(...args: any[]): any;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Create an async series hook.
|
|
6
|
+
* Upon execution, it will execute every handler in order with the same context
|
|
7
|
+
*/
|
|
8
|
+
declare const createAsyncSeriesHook: <T extends Handler = Handler>() => {
|
|
9
|
+
call(context: unknown): Promise<void>;
|
|
10
|
+
getHandlers(): T[];
|
|
11
|
+
register(handler: T): {
|
|
12
|
+
getHandlers(): T[];
|
|
13
|
+
register(handler: T): any;
|
|
14
|
+
delete(handler: T): any;
|
|
15
|
+
call(): never;
|
|
16
|
+
};
|
|
17
|
+
delete(handler: T): {
|
|
18
|
+
getHandlers(): T[];
|
|
19
|
+
register(handler: T): any;
|
|
20
|
+
delete(handler: T): any;
|
|
21
|
+
call(): never;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Create an async series waterfall hook.
|
|
26
|
+
* Upon execution, it will execute every handler in order and pass the return value of the last handler to the next one
|
|
27
|
+
*/
|
|
28
|
+
declare const createAsyncSeriesWaterfallHook: <T extends Handler = Handler>() => {
|
|
29
|
+
call(param: unknown): Promise<unknown>;
|
|
30
|
+
getHandlers(): T[];
|
|
31
|
+
register(handler: T): {
|
|
32
|
+
getHandlers(): T[];
|
|
33
|
+
register(handler: T): any;
|
|
34
|
+
delete(handler: T): any;
|
|
35
|
+
call(): never;
|
|
36
|
+
};
|
|
37
|
+
delete(handler: T): {
|
|
38
|
+
getHandlers(): T[];
|
|
39
|
+
register(handler: T): any;
|
|
40
|
+
delete(handler: T): any;
|
|
41
|
+
call(): never;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Create an async parallel hook.
|
|
46
|
+
* Upon execution, it will execute every registered handler in band.
|
|
47
|
+
*/
|
|
48
|
+
declare const createAsyncParallelHook: <T extends Handler = Handler>() => {
|
|
49
|
+
call(context: unknown): Promise<any[]>;
|
|
50
|
+
getHandlers(): T[];
|
|
51
|
+
register(handler: T): {
|
|
52
|
+
getHandlers(): T[];
|
|
53
|
+
register(handler: T): any;
|
|
54
|
+
delete(handler: T): any;
|
|
55
|
+
call(): never;
|
|
56
|
+
};
|
|
57
|
+
delete(handler: T): {
|
|
58
|
+
getHandlers(): T[];
|
|
59
|
+
register(handler: T): any;
|
|
60
|
+
delete(handler: T): any;
|
|
61
|
+
call(): never;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Create an async parallel hook.
|
|
66
|
+
* Upon execution, it will execute every registered handler in serie and return the first result found.
|
|
67
|
+
*/
|
|
68
|
+
declare const createAsyncBailHook: <T extends Handler = Handler>() => {
|
|
69
|
+
call(context: unknown): Promise<any>;
|
|
70
|
+
getHandlers(): T[];
|
|
71
|
+
register(handler: T): {
|
|
72
|
+
getHandlers(): T[];
|
|
73
|
+
register(handler: T): any;
|
|
74
|
+
delete(handler: T): any;
|
|
75
|
+
call(): never;
|
|
76
|
+
};
|
|
77
|
+
delete(handler: T): {
|
|
78
|
+
getHandlers(): T[];
|
|
79
|
+
register(handler: T): any;
|
|
80
|
+
delete(handler: T): any;
|
|
81
|
+
call(): never;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
export declare const internals: {
|
|
85
|
+
createHook: <T extends Handler = Handler>() => {
|
|
86
|
+
getHandlers(): T[];
|
|
87
|
+
register(handler: T): any;
|
|
88
|
+
delete(handler: T): any;
|
|
89
|
+
call(): never;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
export { createAsyncSeriesHook, createAsyncSeriesWaterfallHook, createAsyncParallelHook, createAsyncBailHook, };
|
package/dist/hooks.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAsyncBailHook = exports.createAsyncParallelHook = exports.createAsyncSeriesWaterfallHook = exports.createAsyncSeriesHook = exports.internals = void 0;
|
|
4
|
+
const fp_1 = require("lodash/fp");
|
|
5
|
+
/**
|
|
6
|
+
* Create a default Strapi hook
|
|
7
|
+
*/
|
|
8
|
+
const createHook = () => {
|
|
9
|
+
const state = {
|
|
10
|
+
handlers: [],
|
|
11
|
+
};
|
|
12
|
+
return {
|
|
13
|
+
getHandlers() {
|
|
14
|
+
return state.handlers;
|
|
15
|
+
},
|
|
16
|
+
register(handler) {
|
|
17
|
+
state.handlers.push(handler);
|
|
18
|
+
return this;
|
|
19
|
+
},
|
|
20
|
+
delete(handler) {
|
|
21
|
+
state.handlers = (0, fp_1.remove)((0, fp_1.eq)(handler), state.handlers);
|
|
22
|
+
return this;
|
|
23
|
+
},
|
|
24
|
+
call() {
|
|
25
|
+
throw new Error('Method not implemented');
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Create an async series hook.
|
|
31
|
+
* Upon execution, it will execute every handler in order with the same context
|
|
32
|
+
*/
|
|
33
|
+
const createAsyncSeriesHook = () => ({
|
|
34
|
+
...createHook(),
|
|
35
|
+
async call(context) {
|
|
36
|
+
for (const handler of this.getHandlers()) {
|
|
37
|
+
await handler(context);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
exports.createAsyncSeriesHook = createAsyncSeriesHook;
|
|
42
|
+
/**
|
|
43
|
+
* Create an async series waterfall hook.
|
|
44
|
+
* Upon execution, it will execute every handler in order and pass the return value of the last handler to the next one
|
|
45
|
+
*/
|
|
46
|
+
const createAsyncSeriesWaterfallHook = () => ({
|
|
47
|
+
...createHook(),
|
|
48
|
+
async call(param) {
|
|
49
|
+
let res = param;
|
|
50
|
+
for (const handler of this.getHandlers()) {
|
|
51
|
+
res = await handler(res);
|
|
52
|
+
}
|
|
53
|
+
return res;
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
exports.createAsyncSeriesWaterfallHook = createAsyncSeriesWaterfallHook;
|
|
57
|
+
/**
|
|
58
|
+
* Create an async parallel hook.
|
|
59
|
+
* Upon execution, it will execute every registered handler in band.
|
|
60
|
+
*/
|
|
61
|
+
const createAsyncParallelHook = () => ({
|
|
62
|
+
...createHook(),
|
|
63
|
+
async call(context) {
|
|
64
|
+
const promises = this.getHandlers().map((handler) => handler((0, fp_1.cloneDeep)(context)));
|
|
65
|
+
return Promise.all(promises);
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
exports.createAsyncParallelHook = createAsyncParallelHook;
|
|
69
|
+
/**
|
|
70
|
+
* Create an async parallel hook.
|
|
71
|
+
* Upon execution, it will execute every registered handler in serie and return the first result found.
|
|
72
|
+
*/
|
|
73
|
+
const createAsyncBailHook = () => ({
|
|
74
|
+
...createHook(),
|
|
75
|
+
async call(context) {
|
|
76
|
+
for (const handler of this.getHandlers()) {
|
|
77
|
+
const result = await handler(context);
|
|
78
|
+
if (result !== undefined) {
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
exports.createAsyncBailHook = createAsyncBailHook;
|
|
85
|
+
exports.internals = {
|
|
86
|
+
// Internal utils
|
|
87
|
+
createHook,
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":";;;AAAA,kCAAkD;AAMlD;;GAEG;AACH,MAAM,UAAU,GAAG,GAAgC,EAAE;IAKnD,MAAM,KAAK,GAAU;QACnB,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,OAAO;QACL,WAAW;YACT,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;QAED,QAAQ,CAAC,OAAU;YACjB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,OAAU;YACf,KAAK,CAAC,QAAQ,GAAG,IAAA,WAAM,EAAC,IAAA,OAAE,EAAC,OAAO,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAErD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI;YACF,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,qBAAqB,GAAG,GAAgC,EAAE,CAAC,CAAC;IAChE,GAAG,UAAU,EAAK;IAElB,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACxC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;SACxB;IACH,CAAC;CACF,CAAC,CAAC;AA0DD,sDAAqB;AAxDvB;;;GAGG;AACH,MAAM,8BAA8B,GAAG,GAAgC,EAAE,CAAC,CAAC;IACzE,GAAG,UAAU,EAAK;IAElB,KAAK,CAAC,IAAI,CAAC,KAAc;QACvB,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACxC,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;SAC1B;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC,CAAC;AAyCD,wEAA8B;AAvChC;;;GAGG;AACH,MAAM,uBAAuB,GAAG,GAAgC,EAAE,CAAC,CAAC;IAClE,GAAG,UAAU,EAAK;IAElB,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAA,cAAS,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAElF,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;CACF,CAAC,CAAC;AA4BD,0DAAuB;AA1BzB;;;GAGG;AACH,MAAM,mBAAmB,GAAG,GAAgC,EAAE,CAAC,CAAC;IAC9D,GAAG,UAAU,EAAK;IAElB,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YAEtC,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,OAAO,MAAM,CAAC;aACf;SACF;IACH,CAAC;CACF,CAAC,CAAC;AAWD,kDAAmB;AATR,QAAA,SAAS,GAAG;IACvB,iBAAiB;IACjB,UAAU;CACX,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function importDefault(modName: string): any;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
function importDefault(modName) {
|
|
5
|
+
const mod = require(modName);
|
|
6
|
+
return mod && mod.__esModule ? mod.default : mod;
|
|
7
|
+
}
|
|
8
|
+
exports.default = importDefault;
|
|
9
|
+
;
|
|
10
|
+
//# sourceMappingURL=import-default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-default.js","sourceRoot":"","sources":["../src/import-default.ts"],"names":[],"mappings":";AAAA,uDAAuD;;AAEvD,SAAwB,aAAa,CAAC,OAAe;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACnD,CAAC;AAHD,gCAGC;AAAA,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/// <reference types="koa" />
|
|
2
|
+
/// <reference types="formidable" />
|
|
3
|
+
/// <reference types="lodash" />
|
|
4
|
+
/**
|
|
5
|
+
* Export shared utilities
|
|
6
|
+
*/
|
|
7
|
+
import parseMultipartData from './parse-multipart';
|
|
8
|
+
import parseType from './parse-type';
|
|
9
|
+
import * as policy from './policy';
|
|
10
|
+
import templateConfiguration from './template-configuration';
|
|
11
|
+
import { yup, handleYupError, validateYupSchema, validateYupSchemaSync } from './validators';
|
|
12
|
+
import * as errors from './errors';
|
|
13
|
+
import { nameToSlug, nameToCollectionName, getCommonBeginning, escapeQuery, stringIncludes, stringEquals, isKebabCase, isCamelCase, toRegressedEnumValue, startsWithANumber, joinBy, toKebabCase } from './string-formatting';
|
|
14
|
+
import { removeUndefined, keysDeep } from './object-formatting';
|
|
15
|
+
import { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './config';
|
|
16
|
+
import { generateTimestampCode } from './code-generator';
|
|
17
|
+
import * as contentTypes from './content-types';
|
|
18
|
+
import env from './env-helper';
|
|
19
|
+
import * as relations from './relations';
|
|
20
|
+
import setCreatorFields from './set-creator-fields';
|
|
21
|
+
import * as hooks from './hooks';
|
|
22
|
+
import providerFactory from './provider-factory';
|
|
23
|
+
import * as pagination from './pagination';
|
|
24
|
+
import sanitize from './sanitize';
|
|
25
|
+
import traverseEntity from './traverse-entity';
|
|
26
|
+
import { pipeAsync, mapAsync, reduceAsync, forEachAsync } from './async';
|
|
27
|
+
import convertQueryParams from './convert-query-params';
|
|
28
|
+
import importDefault from './import-default';
|
|
29
|
+
import * as template from './template';
|
|
30
|
+
import * as file from './file';
|
|
31
|
+
import * as traverse from './traverse';
|
|
32
|
+
export { yup, handleYupError, policy, templateConfiguration, parseMultipartData, sanitize, traverseEntity, parseType, nameToSlug, toRegressedEnumValue, startsWithANumber, joinBy, nameToCollectionName, getCommonBeginning, getConfigUrls, escapeQuery, removeUndefined, keysDeep, getAbsoluteAdminUrl, getAbsoluteServerUrl, generateTimestampCode, stringIncludes, stringEquals, template, isKebabCase, isCamelCase, toKebabCase, contentTypes, env, relations, setCreatorFields, hooks, providerFactory, pagination, pipeAsync, mapAsync, reduceAsync, forEachAsync, errors, validateYupSchema, validateYupSchemaSync, convertQueryParams, importDefault, file, traverse, };
|
|
33
|
+
declare const utils: {
|
|
34
|
+
yup: typeof import("yup") & {
|
|
35
|
+
strapiID: () => import("./validators").StrapiIDSchema;
|
|
36
|
+
};
|
|
37
|
+
handleYupError: (error: import("yup").ValidationError, errorMessage: string) => never;
|
|
38
|
+
policy: typeof policy;
|
|
39
|
+
templateConfiguration: (obj: Record<string, any>, configPath?: string) => Record<string, any>;
|
|
40
|
+
parseMultipartData: (ctx: import("./types").Context) => import("koa").Context | {
|
|
41
|
+
data: any;
|
|
42
|
+
files: import("formidable").Files;
|
|
43
|
+
};
|
|
44
|
+
sanitize: {
|
|
45
|
+
contentAPI: {
|
|
46
|
+
input: import("./sanitize").SanitizeFunc;
|
|
47
|
+
output: import("./sanitize").SanitizeFunc;
|
|
48
|
+
query: (query: Record<string, unknown>, schema: import("./types").Model, { auth }?: import("./sanitize").Options) => Promise<Record<string, unknown>>;
|
|
49
|
+
filters: import("./sanitize").SanitizeFunc;
|
|
50
|
+
sort: import("./sanitize").SanitizeFunc;
|
|
51
|
+
fields: import("./sanitize").SanitizeFunc;
|
|
52
|
+
populate: import("./sanitize").SanitizeFunc;
|
|
53
|
+
};
|
|
54
|
+
sanitizers: typeof import("./sanitize/sanitizers");
|
|
55
|
+
visitors: typeof import("./sanitize/visitors");
|
|
56
|
+
};
|
|
57
|
+
traverseEntity: import("lodash").CurriedFunction3<import("./traverse-entity").Visitor, import("./traverse-entity").TraverseOptions, import("./traverse-entity").Data, Promise<import("./traverse-entity").Data>>;
|
|
58
|
+
parseType: (options: import("./parse-type").ParseTypeOptions) => any;
|
|
59
|
+
nameToSlug: (name: string, options?: {
|
|
60
|
+
separator: string;
|
|
61
|
+
}) => string;
|
|
62
|
+
toRegressedEnumValue: (value: string) => string;
|
|
63
|
+
startsWithANumber: (value: string) => boolean;
|
|
64
|
+
joinBy: (joint: string, ...args: string[]) => string;
|
|
65
|
+
nameToCollectionName: (name: string) => string;
|
|
66
|
+
getCommonBeginning: (...strings: string[]) => string;
|
|
67
|
+
getConfigUrls: (config: import("./types").Config, forAdminBuild?: boolean) => {
|
|
68
|
+
serverUrl: string;
|
|
69
|
+
adminUrl: any;
|
|
70
|
+
adminPath: any;
|
|
71
|
+
};
|
|
72
|
+
escapeQuery: (query: string, charsToEscape: string, escapeChar?: string) => string;
|
|
73
|
+
removeUndefined: (obj: object) => object;
|
|
74
|
+
keysDeep: (obj: object, path?: string[]) => string[];
|
|
75
|
+
getAbsoluteAdminUrl: (config: import("./types").Config, forAdminBuild?: boolean) => any;
|
|
76
|
+
getAbsoluteServerUrl: (config: import("./types").Config, forAdminBuild?: boolean) => any;
|
|
77
|
+
generateTimestampCode: (date: Date) => string;
|
|
78
|
+
stringIncludes: (arr: unknown[], val: unknown) => boolean;
|
|
79
|
+
stringEquals: (a: unknown, b: unknown) => boolean;
|
|
80
|
+
template: typeof template;
|
|
81
|
+
isKebabCase: (value: string) => boolean;
|
|
82
|
+
isCamelCase: (value: string) => boolean;
|
|
83
|
+
toKebabCase: (value: string) => string;
|
|
84
|
+
contentTypes: typeof contentTypes;
|
|
85
|
+
env: (<T>(key: string, defaultValue?: T | undefined) => string | T | undefined) & {
|
|
86
|
+
int(key: string, defaultValue?: number | undefined): number | undefined;
|
|
87
|
+
float(key: string, defaultValue?: number | undefined): number | undefined;
|
|
88
|
+
bool(key: string, defaultValue?: boolean | undefined): boolean | undefined;
|
|
89
|
+
json(key: string, defaultValue?: object | undefined): any;
|
|
90
|
+
array(key: string, defaultValue?: string[] | undefined): string[] | undefined;
|
|
91
|
+
date(key: string, defaultValue?: Date | undefined): Date | undefined;
|
|
92
|
+
oneOf(key: string, expectedValues?: unknown[] | undefined, defaultValue?: unknown): unknown;
|
|
93
|
+
};
|
|
94
|
+
relations: typeof relations;
|
|
95
|
+
setCreatorFields: ({ user, isEdition }: import("./set-creator-fields").Options) => (data: object) => object;
|
|
96
|
+
hooks: typeof hooks;
|
|
97
|
+
providerFactory: (options?: import("./provider-factory").Options) => {
|
|
98
|
+
hooks: {
|
|
99
|
+
willRegister: {
|
|
100
|
+
call(context: unknown): Promise<void>;
|
|
101
|
+
getHandlers(): hooks.Handler[];
|
|
102
|
+
register(handler: hooks.Handler): {
|
|
103
|
+
getHandlers(): hooks.Handler[];
|
|
104
|
+
register(handler: hooks.Handler): any;
|
|
105
|
+
delete(handler: hooks.Handler): any;
|
|
106
|
+
call(): never;
|
|
107
|
+
};
|
|
108
|
+
delete(handler: hooks.Handler): {
|
|
109
|
+
getHandlers(): hooks.Handler[];
|
|
110
|
+
register(handler: hooks.Handler): any;
|
|
111
|
+
delete(handler: hooks.Handler): any;
|
|
112
|
+
call(): never;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
didRegister: {
|
|
116
|
+
call(context: unknown): Promise<any[]>;
|
|
117
|
+
getHandlers(): hooks.Handler[];
|
|
118
|
+
register(handler: hooks.Handler): {
|
|
119
|
+
getHandlers(): hooks.Handler[];
|
|
120
|
+
register(handler: hooks.Handler): any;
|
|
121
|
+
delete(handler: hooks.Handler): any;
|
|
122
|
+
call(): never;
|
|
123
|
+
};
|
|
124
|
+
delete(handler: hooks.Handler): {
|
|
125
|
+
getHandlers(): hooks.Handler[];
|
|
126
|
+
register(handler: hooks.Handler): any;
|
|
127
|
+
delete(handler: hooks.Handler): any;
|
|
128
|
+
call(): never;
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
willDelete: {
|
|
132
|
+
call(context: unknown): Promise<any[]>;
|
|
133
|
+
getHandlers(): hooks.Handler[];
|
|
134
|
+
register(handler: hooks.Handler): {
|
|
135
|
+
getHandlers(): hooks.Handler[];
|
|
136
|
+
register(handler: hooks.Handler): any;
|
|
137
|
+
delete(handler: hooks.Handler): any;
|
|
138
|
+
call(): never;
|
|
139
|
+
};
|
|
140
|
+
delete(handler: hooks.Handler): {
|
|
141
|
+
getHandlers(): hooks.Handler[];
|
|
142
|
+
register(handler: hooks.Handler): any;
|
|
143
|
+
delete(handler: hooks.Handler): any;
|
|
144
|
+
call(): never;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
didDelete: {
|
|
148
|
+
call(context: unknown): Promise<any[]>;
|
|
149
|
+
getHandlers(): hooks.Handler[];
|
|
150
|
+
register(handler: hooks.Handler): {
|
|
151
|
+
getHandlers(): hooks.Handler[];
|
|
152
|
+
register(handler: hooks.Handler): any;
|
|
153
|
+
delete(handler: hooks.Handler): any;
|
|
154
|
+
call(): never;
|
|
155
|
+
};
|
|
156
|
+
delete(handler: hooks.Handler): {
|
|
157
|
+
getHandlers(): hooks.Handler[];
|
|
158
|
+
register(handler: hooks.Handler): any;
|
|
159
|
+
delete(handler: hooks.Handler): any;
|
|
160
|
+
call(): never;
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
register(key: string, item: unknown): Promise<any>;
|
|
165
|
+
delete(key: string): Promise<any>;
|
|
166
|
+
get(key: string): any;
|
|
167
|
+
getWhere(filters?: {}): any[];
|
|
168
|
+
values(): any[];
|
|
169
|
+
keys(): any[];
|
|
170
|
+
has(key: string): boolean;
|
|
171
|
+
size(): number;
|
|
172
|
+
clear(): Promise<any>;
|
|
173
|
+
};
|
|
174
|
+
pagination: typeof pagination;
|
|
175
|
+
pipeAsync: typeof pipeAsync;
|
|
176
|
+
mapAsync: (...args: any[]) => any;
|
|
177
|
+
reduceAsync: (mixedArray: any[]) => <T_1>(iteratee: (...args: any) => any, initialValue?: T_1 | undefined) => Promise<T_1 | undefined>;
|
|
178
|
+
forEachAsync: <T_2, R>(array: T_2[], func: import("p-map").Mapper<T_2, R>, options: import("p-map").Options) => Promise<void>;
|
|
179
|
+
errors: typeof errors;
|
|
180
|
+
validateYupSchema: (schema: import("yup").AnySchema, options?: {}) => (body: unknown, errorMessage: string) => Promise<any>;
|
|
181
|
+
validateYupSchemaSync: (schema: import("yup").AnySchema, options?: {}) => (body: unknown, errorMessage: string) => any;
|
|
182
|
+
convertQueryParams: {
|
|
183
|
+
convertSortQueryParams: (sortQuery: string | object | string[]) => import("./convert-query-params").SortMap | import("./convert-query-params").SortMap[];
|
|
184
|
+
convertStartQueryParams: (startQuery: unknown) => number;
|
|
185
|
+
convertLimitQueryParams: (limitQuery: unknown) => number | undefined;
|
|
186
|
+
convertPopulateQueryParams: (populate: string | string[] | import("./convert-query-params").PopulateAttributesParams, schema: import("./types").Model, depth?: number) => boolean | string[] | {
|
|
187
|
+
[key: string]: boolean | string[] | any;
|
|
188
|
+
};
|
|
189
|
+
convertFiltersQueryParams: (filters: unknown, schema: import("./types").Model) => import("./convert-query-params").WhereQuery;
|
|
190
|
+
convertFieldsQueryParams: (fields: string | string[], depth?: number) => (string | string[]) | undefined;
|
|
191
|
+
convertPublicationStateParams: (schema: import("./types").Model, params?: {
|
|
192
|
+
publicationState?: "live" | "preview" | undefined;
|
|
193
|
+
}, query?: import("./convert-query-params").Query) => void;
|
|
194
|
+
transformParamsToQuery: (uid: string, params: import("./convert-query-params").Params) => import("./convert-query-params").Query;
|
|
195
|
+
};
|
|
196
|
+
importDefault: typeof importDefault;
|
|
197
|
+
file: typeof file;
|
|
198
|
+
traverse: typeof traverse;
|
|
199
|
+
};
|
|
200
|
+
export default utils;
|