@strapi/utils 4.14.2 → 4.14.4
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/index.d.ts +19 -143
- package/dist/index.js +7223 -104
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7206 -0
- package/dist/index.mjs.map +1 -0
- package/dist/parse-multipart.d.ts +1 -2
- package/dist/print-value.d.ts +1 -1
- package/dist/template-configuration.d.ts +1 -1
- package/dist/types.d.ts +1 -1
- package/package.json +12 -12
- package/dist/async.js +0 -33
- package/dist/async.js.map +0 -1
- package/dist/code-generator.js +0 -11
- package/dist/code-generator.js.map +0 -1
- package/dist/config.js +0 -79
- package/dist/config.js.map +0 -1
- package/dist/content-types.js +0 -162
- package/dist/content-types.js.map +0 -1
- package/dist/convert-query-params.js +0 -477
- package/dist/convert-query-params.js.map +0 -1
- package/dist/env-helper.js +0 -84
- package/dist/env-helper.js.map +0 -1
- package/dist/errors.js +0 -101
- package/dist/errors.js.map +0 -1
- package/dist/file.js +0 -54
- package/dist/file.js.map +0 -1
- package/dist/format-yup-error.js +0 -17
- package/dist/format-yup-error.js.map +0 -1
- package/dist/hooks.js +0 -89
- package/dist/hooks.js.map +0 -1
- package/dist/import-default.js +0 -9
- package/dist/import-default.js.map +0 -1
- package/dist/object-formatting.js +0 -14
- package/dist/object-formatting.js.map +0 -1
- package/dist/operators.js +0 -72
- package/dist/operators.js.map +0 -1
- package/dist/pagination.js +0 -80
- package/dist/pagination.js.map +0 -1
- package/dist/parse-multipart.js +0 -36
- package/dist/parse-multipart.js.map +0 -1
- package/dist/parse-type.js +0 -108
- package/dist/parse-type.js.map +0 -1
- package/dist/policy.js +0 -109
- package/dist/policy.js.map +0 -1
- package/dist/print-value.js +0 -50
- package/dist/print-value.js.map +0 -1
- package/dist/provider-factory.js +0 -80
- package/dist/provider-factory.js.map +0 -1
- package/dist/relations.js +0 -23
- package/dist/relations.js.map +0 -1
- package/dist/sanitize/index.js +0 -156
- package/dist/sanitize/index.js.map +0 -1
- package/dist/sanitize/sanitizers.js +0 -147
- package/dist/sanitize/sanitizers.js.map +0 -1
- package/dist/sanitize/visitors/index.js +0 -21
- package/dist/sanitize/visitors/index.js.map +0 -1
- package/dist/sanitize/visitors/remove-disallowed-fields.js +0 -83
- package/dist/sanitize/visitors/remove-disallowed-fields.js.map +0 -1
- package/dist/sanitize/visitors/remove-dynamic-zones.js +0 -10
- package/dist/sanitize/visitors/remove-dynamic-zones.js.map +0 -1
- package/dist/sanitize/visitors/remove-morph-to-relations.js +0 -10
- package/dist/sanitize/visitors/remove-morph-to-relations.js.map +0 -1
- package/dist/sanitize/visitors/remove-password.js +0 -9
- package/dist/sanitize/visitors/remove-password.js.map +0 -1
- package/dist/sanitize/visitors/remove-private.js +0 -14
- package/dist/sanitize/visitors/remove-private.js.map +0 -1
- package/dist/sanitize/visitors/remove-restricted-fields.js +0 -25
- package/dist/sanitize/visitors/remove-restricted-fields.js.map +0 -1
- package/dist/sanitize/visitors/remove-restricted-relations.js +0 -88
- package/dist/sanitize/visitors/remove-restricted-relations.js.map +0 -1
- package/dist/set-creator-fields.js +0 -39
- package/dist/set-creator-fields.js.map +0 -1
- package/dist/string-formatting.js +0 -85
- package/dist/string-formatting.js.map +0 -1
- package/dist/template-configuration.js +0 -30
- package/dist/template-configuration.js.map +0 -1
- package/dist/template.js +0 -20
- package/dist/template.js.map +0 -1
- package/dist/traverse/factory.js +0 -127
- package/dist/traverse/factory.js.map +0 -1
- package/dist/traverse/index.js +0 -17
- package/dist/traverse/index.js.map +0 -1
- package/dist/traverse/query-fields.js +0 -35
- package/dist/traverse/query-fields.js.map +0 -1
- package/dist/traverse/query-filters.js +0 -75
- package/dist/traverse/query-filters.js.map +0 -1
- package/dist/traverse/query-populate.js +0 -171
- package/dist/traverse/query-populate.js.map +0 -1
- package/dist/traverse/query-sort.js +0 -117
- package/dist/traverse/query-sort.js.map +0 -1
- package/dist/traverse-entity.js +0 -134
- package/dist/traverse-entity.js.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/validate/index.js +0 -121
- package/dist/validate/index.js.map +0 -1
- package/dist/validate/utils.js +0 -9
- package/dist/validate/utils.js.map +0 -1
- package/dist/validate/validators.js +0 -115
- package/dist/validate/validators.js.map +0 -1
- package/dist/validate/visitors/index.js +0 -21
- package/dist/validate/visitors/index.js.map +0 -1
- package/dist/validate/visitors/throw-disallowed-fields.js +0 -84
- package/dist/validate/visitors/throw-disallowed-fields.js.map +0 -1
- package/dist/validate/visitors/throw-dynamic-zones.js +0 -11
- package/dist/validate/visitors/throw-dynamic-zones.js.map +0 -1
- package/dist/validate/visitors/throw-morph-to-relations.js +0 -11
- package/dist/validate/visitors/throw-morph-to-relations.js.map +0 -1
- package/dist/validate/visitors/throw-password.js +0 -10
- package/dist/validate/visitors/throw-password.js.map +0 -1
- package/dist/validate/visitors/throw-private.js +0 -15
- package/dist/validate/visitors/throw-private.js.map +0 -1
- package/dist/validate/visitors/throw-restricted-fields.js +0 -24
- package/dist/validate/visitors/throw-restricted-fields.js.map +0 -1
- package/dist/validate/visitors/throw-restricted-relations.js +0 -81
- package/dist/validate/visitors/throw-restricted-relations.js.map +0 -1
- package/dist/validators.js +0 -64
- package/dist/validators.js.map +0 -1
- package/dist/webhook.js +0 -27
- package/dist/webhook.js.map +0 -1
- package/dist/yup.js +0 -108
- package/dist/yup.js.map +0 -1
package/dist/errors.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
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
|
-
details;
|
|
11
|
-
constructor(message = 'An application error occured', details = {}) {
|
|
12
|
-
super();
|
|
13
|
-
this.name = 'ApplicationError';
|
|
14
|
-
this.message = message;
|
|
15
|
-
this.details = details;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.ApplicationError = ApplicationError;
|
|
19
|
-
class ValidationError extends ApplicationError {
|
|
20
|
-
constructor(message = 'Validation error', details) {
|
|
21
|
-
super(message, details);
|
|
22
|
-
this.name = 'ValidationError';
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.ValidationError = ValidationError;
|
|
26
|
-
class YupValidationError extends ValidationError {
|
|
27
|
-
constructor(yupError, message) {
|
|
28
|
-
super('Validation');
|
|
29
|
-
const { errors, message: yupMessage } = (0, format_yup_error_1.formatYupErrors)(yupError);
|
|
30
|
-
this.message = message || yupMessage;
|
|
31
|
-
this.details = { errors };
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
exports.YupValidationError = YupValidationError;
|
|
35
|
-
class PaginationError extends ApplicationError {
|
|
36
|
-
constructor(message = 'Invalid pagination', details) {
|
|
37
|
-
super(message, details);
|
|
38
|
-
this.name = 'PaginationError';
|
|
39
|
-
this.message = message;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.PaginationError = PaginationError;
|
|
43
|
-
class NotFoundError extends ApplicationError {
|
|
44
|
-
constructor(message = 'Entity not found', details) {
|
|
45
|
-
super(message, details);
|
|
46
|
-
this.name = 'NotFoundError';
|
|
47
|
-
this.message = message;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.NotFoundError = NotFoundError;
|
|
51
|
-
class ForbiddenError extends ApplicationError {
|
|
52
|
-
constructor(message = 'Forbidden access', details) {
|
|
53
|
-
super(message, details);
|
|
54
|
-
this.name = 'ForbiddenError';
|
|
55
|
-
this.message = message;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
exports.ForbiddenError = ForbiddenError;
|
|
59
|
-
class UnauthorizedError extends ApplicationError {
|
|
60
|
-
constructor(message = 'Unauthorized', details) {
|
|
61
|
-
super(message, details);
|
|
62
|
-
this.name = 'UnauthorizedError';
|
|
63
|
-
this.message = message;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
exports.UnauthorizedError = UnauthorizedError;
|
|
67
|
-
class RateLimitError extends ApplicationError {
|
|
68
|
-
constructor(message = 'Too many requests, please try again later.', details) {
|
|
69
|
-
super(message, details);
|
|
70
|
-
this.name = 'RateLimitError';
|
|
71
|
-
this.message = message;
|
|
72
|
-
this.details = details || {};
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
exports.RateLimitError = RateLimitError;
|
|
76
|
-
class PayloadTooLargeError extends ApplicationError {
|
|
77
|
-
constructor(message = 'Entity too large', details) {
|
|
78
|
-
super(message, details);
|
|
79
|
-
this.name = 'PayloadTooLargeError';
|
|
80
|
-
this.message = message;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.PayloadTooLargeError = PayloadTooLargeError;
|
|
84
|
-
class PolicyError extends ForbiddenError {
|
|
85
|
-
constructor(message = 'Policy Failed', details) {
|
|
86
|
-
super(message, details);
|
|
87
|
-
this.name = 'PolicyError';
|
|
88
|
-
this.message = message;
|
|
89
|
-
this.details = details || {};
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
exports.PolicyError = PolicyError;
|
|
93
|
-
class NotImplementedError extends ApplicationError {
|
|
94
|
-
constructor(message = 'This feature is not implemented yet', details) {
|
|
95
|
-
super(message, details);
|
|
96
|
-
this.name = 'NotImplementedError';
|
|
97
|
-
this.message = message;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
exports.NotImplementedError = NotImplementedError;
|
|
101
|
-
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/file.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
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
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/format-yup-error.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
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
|
package/dist/hooks.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":";;;AAAA,kCAAkD;AA0BlD;;GAEG;AACH,MAAM,UAAU,GAAG,GAAyC,EAAE;IAK5D,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"}
|
package/dist/import-default.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
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
|
-
//# sourceMappingURL=import-default.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.keysDeep = exports.removeUndefined = void 0;
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const removeUndefined = (obj) => lodash_1.default.pickBy(obj, (value) => typeof value !== 'undefined');
|
|
9
|
-
exports.removeUndefined = removeUndefined;
|
|
10
|
-
const keysDeep = (obj, path = []) => !lodash_1.default.isObject(obj)
|
|
11
|
-
? [path.join('.')]
|
|
12
|
-
: lodash_1.default.reduce(obj, (acc, next, key) => lodash_1.default.concat(acc, keysDeep(next, [...path, key])), []);
|
|
13
|
-
exports.keysDeep = keysDeep;
|
|
14
|
-
//# sourceMappingURL=object-formatting.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object-formatting.js","sourceRoot":"","sources":["../src/object-formatting.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AAEvB,MAAM,eAAe,GAAG,CAAmB,GAAM,EAAE,EAAE,CACnD,gBAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC;AAWhD,0CAAe;AATxB,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,OAAiB,EAAE,EAAY,EAAE,CAC9D,CAAC,gBAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;IACd,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC,CAAC,gBAAC,CAAC,MAAM,CACN,GAAG,EACH,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAC,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EACjE,EAAc,CACf,CAAC;AAEkB,4BAAQ"}
|
package/dist/operators.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isOperator = exports.isOperatorOfType = void 0;
|
|
4
|
-
const GROUP_OPERATORS = ['$and', '$or'];
|
|
5
|
-
const WHERE_OPERATORS = [
|
|
6
|
-
'$not',
|
|
7
|
-
'$in',
|
|
8
|
-
'$notIn',
|
|
9
|
-
'$eq',
|
|
10
|
-
'$eqi',
|
|
11
|
-
'$ne',
|
|
12
|
-
'$nei',
|
|
13
|
-
'$gt',
|
|
14
|
-
'$gte',
|
|
15
|
-
'$lt',
|
|
16
|
-
'$lte',
|
|
17
|
-
'$null',
|
|
18
|
-
'$notNull',
|
|
19
|
-
'$between',
|
|
20
|
-
'$startsWith',
|
|
21
|
-
'$endsWith',
|
|
22
|
-
'$startsWithi',
|
|
23
|
-
'$endsWithi',
|
|
24
|
-
'$contains',
|
|
25
|
-
'$notContains',
|
|
26
|
-
'$containsi',
|
|
27
|
-
'$notContainsi',
|
|
28
|
-
// Experimental, only for internal use
|
|
29
|
-
'$jsonSupersetOf',
|
|
30
|
-
];
|
|
31
|
-
const CAST_OPERATORS = [
|
|
32
|
-
'$not',
|
|
33
|
-
'$in',
|
|
34
|
-
'$notIn',
|
|
35
|
-
'$eq',
|
|
36
|
-
'$ne',
|
|
37
|
-
'$gt',
|
|
38
|
-
'$gte',
|
|
39
|
-
'$lt',
|
|
40
|
-
'$lte',
|
|
41
|
-
'$between',
|
|
42
|
-
];
|
|
43
|
-
const ARRAY_OPERATORS = ['$in', '$notIn', '$between'];
|
|
44
|
-
const OPERATORS = {
|
|
45
|
-
where: WHERE_OPERATORS,
|
|
46
|
-
cast: CAST_OPERATORS,
|
|
47
|
-
group: GROUP_OPERATORS,
|
|
48
|
-
array: ARRAY_OPERATORS,
|
|
49
|
-
};
|
|
50
|
-
// for performance, cache all operators in lowercase
|
|
51
|
-
const OPERATORS_LOWERCASE = Object.fromEntries(Object.entries(OPERATORS).map(([key, values]) => [
|
|
52
|
-
key,
|
|
53
|
-
values.map((value) => value.toLowerCase()),
|
|
54
|
-
]));
|
|
55
|
-
const isObjKey = (key, obj) => {
|
|
56
|
-
return key in obj;
|
|
57
|
-
};
|
|
58
|
-
const isOperatorOfType = (type, key, ignoreCase = false) => {
|
|
59
|
-
if (ignoreCase) {
|
|
60
|
-
return OPERATORS_LOWERCASE[type]?.includes(key.toLowerCase()) ?? false;
|
|
61
|
-
}
|
|
62
|
-
if (isObjKey(type, OPERATORS)) {
|
|
63
|
-
return OPERATORS[type]?.includes(key) ?? false;
|
|
64
|
-
}
|
|
65
|
-
return false;
|
|
66
|
-
};
|
|
67
|
-
exports.isOperatorOfType = isOperatorOfType;
|
|
68
|
-
const isOperator = (key, ignoreCase = false) => {
|
|
69
|
-
return Object.keys(OPERATORS).some((type) => (0, exports.isOperatorOfType)(type, key, ignoreCase));
|
|
70
|
-
};
|
|
71
|
-
exports.isOperator = isOperator;
|
|
72
|
-
//# sourceMappingURL=operators.js.map
|
package/dist/operators.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":";;;AAAA,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAExC,MAAM,eAAe,GAAG;IACtB,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,UAAU;IACV,UAAU;IACV,aAAa;IACb,WAAW;IACX,cAAc;IACd,YAAY;IACZ,WAAW;IACX,cAAc;IACd,YAAY;IACZ,eAAe;IACf,sCAAsC;IACtC,iBAAiB;CAClB,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,UAAU;CACX,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAEtD,MAAM,SAAS,GAAG;IAChB,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,eAAe;CACvB,CAAC;AAEF,oDAAoD;AACpD,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAC5C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IAC/C,GAAG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;CAC3C,CAAC,CACH,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAmB,GAA6B,EAAE,GAAM,EAAkB,EAAE;IAC3F,OAAO,GAAG,IAAI,GAAG,CAAC;AACpB,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,UAAU,GAAG,KAAK,EAAE,EAAE;IAChF,IAAI,UAAU,EAAE;QACd,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;KACxE;IAED,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;QAC7B,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;KAChD;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAVW,QAAA,gBAAgB,oBAU3B;AAEK,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,UAAU,GAAG,KAAK,EAAE,EAAE;IAC5D,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAgB,EAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB"}
|
package/dist/pagination.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.withDefaultPagination = void 0;
|
|
4
|
-
const fp_1 = require("lodash/fp");
|
|
5
|
-
const errors_1 = require("./errors");
|
|
6
|
-
const STRAPI_DEFAULTS = {
|
|
7
|
-
offset: {
|
|
8
|
-
start: 0,
|
|
9
|
-
limit: 10,
|
|
10
|
-
},
|
|
11
|
-
page: {
|
|
12
|
-
page: 1,
|
|
13
|
-
pageSize: 10,
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
const paginationAttributes = ['start', 'limit', 'page', 'pageSize'];
|
|
17
|
-
const withMaxLimit = (limit, maxLimit = -1) => {
|
|
18
|
-
if (maxLimit === -1 || limit < maxLimit) {
|
|
19
|
-
return limit;
|
|
20
|
-
}
|
|
21
|
-
return maxLimit;
|
|
22
|
-
};
|
|
23
|
-
// Ensure minimum page & pageSize values (page >= 1, pageSize >= 0, start >= 0, limit >= 0)
|
|
24
|
-
const ensureMinValues = ({ start, limit }) => ({
|
|
25
|
-
start: Math.max(start, 0),
|
|
26
|
-
limit: limit === -1 ? limit : Math.max(limit, 1),
|
|
27
|
-
});
|
|
28
|
-
const ensureMaxValues = (maxLimit = -1) => ({ start, limit }) => ({
|
|
29
|
-
start,
|
|
30
|
-
limit: withMaxLimit(limit, maxLimit),
|
|
31
|
-
});
|
|
32
|
-
// Apply maxLimit as the limit when limit is -1
|
|
33
|
-
const withNoLimit = (pagination, maxLimit = -1) => ({
|
|
34
|
-
...pagination,
|
|
35
|
-
limit: pagination.limit === -1 ? maxLimit : pagination.limit,
|
|
36
|
-
});
|
|
37
|
-
const withDefaultPagination = (args, { defaults = {}, maxLimit = -1 } = {}) => {
|
|
38
|
-
const defaultValues = (0, fp_1.merge)(STRAPI_DEFAULTS, defaults);
|
|
39
|
-
const usePagePagination = !(0, fp_1.isNil)(args.page) || !(0, fp_1.isNil)(args.pageSize);
|
|
40
|
-
const useOffsetPagination = !(0, fp_1.isNil)(args.start) || !(0, fp_1.isNil)(args.limit);
|
|
41
|
-
const ensureValidValues = (0, fp_1.pipe)(ensureMinValues, ensureMaxValues(maxLimit));
|
|
42
|
-
// If there is no pagination attribute, don't modify the payload
|
|
43
|
-
if (!usePagePagination && !useOffsetPagination) {
|
|
44
|
-
return (0, fp_1.merge)(args, ensureValidValues(defaultValues.offset));
|
|
45
|
-
}
|
|
46
|
-
// If there is page & offset pagination attributes, throw an error
|
|
47
|
-
if (usePagePagination && useOffsetPagination) {
|
|
48
|
-
throw new errors_1.PaginationError('Cannot use both page & offset pagination in the same query');
|
|
49
|
-
}
|
|
50
|
-
const pagination = {
|
|
51
|
-
start: 0,
|
|
52
|
-
limit: 0,
|
|
53
|
-
};
|
|
54
|
-
// Start / Limit
|
|
55
|
-
if (useOffsetPagination) {
|
|
56
|
-
const { start, limit } = (0, fp_1.merge)(defaultValues.offset, args);
|
|
57
|
-
Object.assign(pagination, { start, limit });
|
|
58
|
-
}
|
|
59
|
-
// Page / PageSize
|
|
60
|
-
if (usePagePagination) {
|
|
61
|
-
const { page, pageSize } = (0, fp_1.merge)(defaultValues.page, {
|
|
62
|
-
...args,
|
|
63
|
-
pageSize: Math.max(1, args.pageSize ?? 0),
|
|
64
|
-
});
|
|
65
|
-
Object.assign(pagination, {
|
|
66
|
-
start: (page - 1) * pageSize,
|
|
67
|
-
limit: pageSize,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
// Handle -1 limit
|
|
71
|
-
Object.assign(pagination, withNoLimit(pagination, maxLimit));
|
|
72
|
-
const replacePaginationAttributes = (0, fp_1.pipe)(
|
|
73
|
-
// Remove pagination attributes
|
|
74
|
-
(0, fp_1.omit)(paginationAttributes),
|
|
75
|
-
// Merge the object with the new pagination + ensure minimum & maximum values
|
|
76
|
-
(0, fp_1.merge)(ensureValidValues(pagination)));
|
|
77
|
-
return replacePaginationAttributes(args);
|
|
78
|
-
};
|
|
79
|
-
exports.withDefaultPagination = withDefaultPagination;
|
|
80
|
-
//# sourceMappingURL=pagination.js.map
|
package/dist/pagination.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}
|
package/dist/parse-multipart.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
6
|
-
module.exports = (ctx) => {
|
|
7
|
-
if (!ctx.is('multipart')) {
|
|
8
|
-
return { data: ctx.request.body, files: {} };
|
|
9
|
-
}
|
|
10
|
-
const { body = {}, files = {} } = ctx.request;
|
|
11
|
-
if (!body.data) {
|
|
12
|
-
return ctx.badRequest(`When using multipart/form-data you need to provide your data in a JSON 'data' field.`);
|
|
13
|
-
}
|
|
14
|
-
let data;
|
|
15
|
-
try {
|
|
16
|
-
data = JSON.parse(body.data);
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
return ctx.badRequest(`Invalid 'data' field. 'data' should be a valid JSON.`);
|
|
20
|
-
}
|
|
21
|
-
const filesToUpload = Object.keys(files).reduce((acc, key) => {
|
|
22
|
-
const fullPath = lodash_1.default.toPath(key);
|
|
23
|
-
if (fullPath.length <= 1 || fullPath[0] !== 'files') {
|
|
24
|
-
return ctx.badRequest(`When using multipart/form-data you need to provide your files by prefixing them with the 'files'.
|
|
25
|
-
For example, when a media file is named "avatar", make sure the form key name is "files.avatar"`);
|
|
26
|
-
}
|
|
27
|
-
const path = lodash_1.default.tail(fullPath);
|
|
28
|
-
acc[path.join('.')] = files[key];
|
|
29
|
-
return acc;
|
|
30
|
-
}, {});
|
|
31
|
-
return {
|
|
32
|
-
data,
|
|
33
|
-
files: filesToUpload,
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=parse-multipart.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-multipart.js","sourceRoot":"","sources":["../src/parse-multipart.ts"],"names":[],"mappings":";;;;AAAA,oDAAuB;AAGvB,iBAAS,CAAC,GAAgB,EAAE,EAAE;IAC5B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;QACxB,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;KAC9C;IAED,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;IAE9C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACd,OAAO,GAAG,CAAC,UAAU,CACnB,sFAAsF,CACvF,CAAC;KACH;IAED,IAAI,IAAI,CAAC;IACT,IAAI;QACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,GAAG,CAAC,UAAU,CAAC,sDAAsD,CAAC,CAAC;KAC/E;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3D,MAAM,QAAQ,GAAG,gBAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;YACnD,OAAO,GAAG,CAAC,UAAU,CACnB;gGACwF,CACzF,CAAC;SACH;QAED,MAAM,IAAI,GAAG,gBAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAuC,CAAC,CAAC;IAE5C,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,aAAa;KACrB,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/parse-type.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const _ = require("lodash");
|
|
4
|
-
const dates = require("date-fns");
|
|
5
|
-
const timeRegex = /^(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(.[0-9]{1,3})?$/;
|
|
6
|
-
const isDate = (v) => {
|
|
7
|
-
return dates.isDate(v);
|
|
8
|
-
};
|
|
9
|
-
const parseTime = (value) => {
|
|
10
|
-
if (isDate(value)) {
|
|
11
|
-
return dates.format(value, 'HH:mm:ss.SSS');
|
|
12
|
-
}
|
|
13
|
-
if (typeof value !== 'string') {
|
|
14
|
-
throw new Error(`Expected a string, got a ${typeof value}`);
|
|
15
|
-
}
|
|
16
|
-
const result = value.match(timeRegex);
|
|
17
|
-
if (result === null) {
|
|
18
|
-
throw new Error('Invalid time format, expected HH:mm:ss.SSS');
|
|
19
|
-
}
|
|
20
|
-
const [, hours, minutes, seconds, fraction = '.000'] = result;
|
|
21
|
-
const fractionPart = _.padEnd(fraction.slice(1), 3, '0');
|
|
22
|
-
return `${hours}:${minutes}:${seconds}.${fractionPart}`;
|
|
23
|
-
};
|
|
24
|
-
const parseDate = (value) => {
|
|
25
|
-
if (isDate(value)) {
|
|
26
|
-
return dates.format(value, 'yyyy-MM-dd');
|
|
27
|
-
}
|
|
28
|
-
if (typeof value !== 'string') {
|
|
29
|
-
throw new Error(`Expected a string, got a ${typeof value}`);
|
|
30
|
-
}
|
|
31
|
-
try {
|
|
32
|
-
const date = dates.parseISO(value);
|
|
33
|
-
if (dates.isValid(date))
|
|
34
|
-
return dates.format(date, 'yyyy-MM-dd');
|
|
35
|
-
throw new Error(`Invalid format, expected an ISO compatible date`);
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
throw new Error(`Invalid format, expected an ISO compatible date`);
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
const parseDateTimeOrTimestamp = (value) => {
|
|
42
|
-
if (isDate(value)) {
|
|
43
|
-
return value;
|
|
44
|
-
}
|
|
45
|
-
if (typeof value !== 'string') {
|
|
46
|
-
throw new Error(`Expected a string, got a ${typeof value}`);
|
|
47
|
-
}
|
|
48
|
-
try {
|
|
49
|
-
const date = dates.parseISO(value);
|
|
50
|
-
if (dates.isValid(date))
|
|
51
|
-
return date;
|
|
52
|
-
const milliUnixDate = dates.parse(value, 'T', new Date());
|
|
53
|
-
if (dates.isValid(milliUnixDate))
|
|
54
|
-
return milliUnixDate;
|
|
55
|
-
throw new Error(`Invalid format, expected a timestamp or an ISO date`);
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
throw new Error(`Invalid format, expected a timestamp or an ISO date`);
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
const parseBoolean = (value, options) => {
|
|
62
|
-
const { forceCast = false } = options;
|
|
63
|
-
if (typeof value === 'boolean') {
|
|
64
|
-
return value;
|
|
65
|
-
}
|
|
66
|
-
if (typeof value === 'string' || typeof value === 'number') {
|
|
67
|
-
if (['true', 't', '1', 1].includes(value)) {
|
|
68
|
-
return true;
|
|
69
|
-
}
|
|
70
|
-
if (['false', 'f', '0', 0].includes(value)) {
|
|
71
|
-
return false;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (forceCast) {
|
|
75
|
-
return Boolean(value);
|
|
76
|
-
}
|
|
77
|
-
throw new Error('Invalid boolean input. Expected "t","1","true","false","0","f"');
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* Cast basic values based on attribute type
|
|
81
|
-
*/
|
|
82
|
-
const parseType = (options) => {
|
|
83
|
-
const { type, value, forceCast } = options;
|
|
84
|
-
switch (type) {
|
|
85
|
-
case 'boolean':
|
|
86
|
-
return parseBoolean(value, { forceCast });
|
|
87
|
-
case 'integer':
|
|
88
|
-
case 'biginteger':
|
|
89
|
-
case 'float':
|
|
90
|
-
case 'decimal': {
|
|
91
|
-
return _.toNumber(value);
|
|
92
|
-
}
|
|
93
|
-
case 'time': {
|
|
94
|
-
return parseTime(value);
|
|
95
|
-
}
|
|
96
|
-
case 'date': {
|
|
97
|
-
return parseDate(value);
|
|
98
|
-
}
|
|
99
|
-
case 'timestamp':
|
|
100
|
-
case 'datetime': {
|
|
101
|
-
return parseDateTimeOrTimestamp(value);
|
|
102
|
-
}
|
|
103
|
-
default:
|
|
104
|
-
return value;
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
exports.default = parseType;
|
|
108
|
-
//# sourceMappingURL=parse-type.js.map
|
package/dist/parse-type.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-type.js","sourceRoot":"","sources":["../src/parse-type.ts"],"names":[],"mappings":"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"}
|