@rspack/core 1.0.0-rc.1 → 1.0.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/compiled/zod-validation-error/index.d.ts +29 -10
- package/compiled/zod-validation-error/index.js +259 -141
- package/compiled/zod-validation-error/package.json +1 -1
- package/dist/config/zod.d.ts +2 -2
- package/dist/config/zod.js +7 -1
- package/dist/exports.d.ts +2 -0
- package/dist/exports.js +4 -2
- package/dist/util/validate.d.ts +3 -0
- package/dist/util/validate.js +53 -17
- package/package.json +6 -6
|
@@ -1,22 +1,41 @@
|
|
|
1
1
|
import * as zod from 'zod';
|
|
2
2
|
|
|
3
|
+
interface ErrorOptions {
|
|
4
|
+
cause?: unknown;
|
|
5
|
+
}
|
|
3
6
|
declare class ValidationError extends Error {
|
|
4
|
-
details: Array<zod.ZodIssue>;
|
|
5
7
|
name: 'ZodValidationError';
|
|
6
|
-
|
|
8
|
+
details: Array<zod.ZodIssue>;
|
|
9
|
+
constructor(message?: string, options?: ErrorOptions);
|
|
7
10
|
toString(): string;
|
|
8
11
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
|
|
13
|
+
declare function isValidationError(err: unknown): err is ValidationError;
|
|
14
|
+
|
|
15
|
+
declare function isValidationErrorLike(err: unknown): err is ValidationError;
|
|
16
|
+
|
|
17
|
+
declare function isZodErrorLike(err: unknown): err is zod.ZodError;
|
|
18
|
+
|
|
19
|
+
declare const errorMap: zod.ZodErrorMap;
|
|
20
|
+
|
|
21
|
+
type ZodIssue = zod.ZodIssue;
|
|
22
|
+
type FromZodIssueOptions = {
|
|
12
23
|
issueSeparator?: string;
|
|
13
24
|
unionSeparator?: string;
|
|
25
|
+
prefix?: string | null;
|
|
14
26
|
prefixSeparator?: string;
|
|
15
|
-
|
|
27
|
+
includePath?: boolean;
|
|
28
|
+
};
|
|
29
|
+
declare function fromZodIssue(issue: ZodIssue, options?: FromZodIssueOptions): ValidationError;
|
|
30
|
+
|
|
31
|
+
type ZodError = zod.ZodError;
|
|
32
|
+
type FromZodErrorOptions = FromZodIssueOptions & {
|
|
33
|
+
maxIssuesInMessage?: number;
|
|
16
34
|
};
|
|
17
35
|
declare function fromZodError(zodError: ZodError, options?: FromZodErrorOptions): ValidationError;
|
|
18
|
-
declare const toValidationError: (options?: Parameters<typeof fromZodError>[1]) => (err: unknown) => ValidationError | Error;
|
|
19
|
-
declare function isValidationError(err: unknown): err is ValidationError;
|
|
20
|
-
declare function isValidationErrorLike(err: unknown): err is ValidationError;
|
|
21
36
|
|
|
22
|
-
|
|
37
|
+
declare function fromError(err: unknown, options?: FromZodErrorOptions): ValidationError;
|
|
38
|
+
|
|
39
|
+
declare const toValidationError: (options?: Parameters<typeof fromZodError>[1]) => (err: unknown) => ValidationError;
|
|
40
|
+
|
|
41
|
+
export { type ErrorOptions, type FromZodErrorOptions, type FromZodIssueOptions, ValidationError, type ZodError, type ZodIssue, errorMap, fromError, fromZodError, fromZodIssue, isValidationError, isValidationErrorLike, isZodErrorLike, toValidationError };
|
|
@@ -2,152 +2,280 @@
|
|
|
2
2
|
/******/ "use strict";
|
|
3
3
|
/******/ var __webpack_modules__ = ({
|
|
4
4
|
|
|
5
|
-
/***/
|
|
6
|
-
/***/ (
|
|
5
|
+
/***/ 172:
|
|
6
|
+
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
o[k2] = m[k];
|
|
19
|
-
}));
|
|
20
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
-
}) : function(o, v) {
|
|
23
|
-
o["default"] = v;
|
|
24
|
-
});
|
|
25
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
-
if (mod && mod.__esModule) return mod;
|
|
27
|
-
var result = {};
|
|
28
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
-
__setModuleDefault(result, mod);
|
|
30
|
-
return result;
|
|
9
|
+
var __create = Object.create;
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
14
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
15
|
+
var __export = (target, all) => {
|
|
16
|
+
for (var name in all)
|
|
17
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
31
18
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
19
|
+
var __copyProps = (to, from, except, desc) => {
|
|
20
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
21
|
+
for (let key of __getOwnPropNames(from))
|
|
22
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
23
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
24
|
+
}
|
|
25
|
+
return to;
|
|
26
|
+
};
|
|
27
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
28
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
29
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
30
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
31
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
32
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
33
|
+
mod
|
|
34
|
+
));
|
|
35
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
36
|
+
|
|
37
|
+
// lib/index.ts
|
|
38
|
+
var lib_exports = {};
|
|
39
|
+
__export(lib_exports, {
|
|
40
|
+
ValidationError: () => ValidationError,
|
|
41
|
+
errorMap: () => errorMap,
|
|
42
|
+
fromError: () => fromError,
|
|
43
|
+
fromZodError: () => fromZodError,
|
|
44
|
+
fromZodIssue: () => fromZodIssue,
|
|
45
|
+
isValidationError: () => isValidationError,
|
|
46
|
+
isValidationErrorLike: () => isValidationErrorLike,
|
|
47
|
+
isZodErrorLike: () => isZodErrorLike,
|
|
48
|
+
toValidationError: () => toValidationError
|
|
49
|
+
});
|
|
50
|
+
module.exports = __toCommonJS(lib_exports);
|
|
51
|
+
|
|
52
|
+
// lib/isZodErrorLike.ts
|
|
53
|
+
function isZodErrorLike(err) {
|
|
54
|
+
return err instanceof Error && err.name === "ZodError" && "issues" in err && Array.isArray(err.issues);
|
|
48
55
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return `${issue.message} at index ${identifier}`;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return `${issue.message} at "${(0, joinPath_1.joinPath)(issue.path)}"`;
|
|
56
|
+
|
|
57
|
+
// lib/ValidationError.ts
|
|
58
|
+
var ValidationError = class extends Error {
|
|
59
|
+
name;
|
|
60
|
+
details;
|
|
61
|
+
constructor(message, options) {
|
|
62
|
+
super(message, options);
|
|
63
|
+
this.name = "ZodValidationError";
|
|
64
|
+
this.details = getIssuesFromErrorOptions(options);
|
|
65
|
+
}
|
|
66
|
+
toString() {
|
|
67
|
+
return this.message;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
function getIssuesFromErrorOptions(options) {
|
|
71
|
+
if (options) {
|
|
72
|
+
const cause = options.cause;
|
|
73
|
+
if (isZodErrorLike(cause)) {
|
|
74
|
+
return cause.issues;
|
|
72
75
|
}
|
|
73
|
-
|
|
76
|
+
}
|
|
77
|
+
return [];
|
|
74
78
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const reason = zodError.errors
|
|
78
|
-
.slice(0, maxIssuesInMessage)
|
|
79
|
-
.map((issue) => fromZodIssue(issue, issueSeparator, unionSeparator))
|
|
80
|
-
.join(issueSeparator);
|
|
81
|
-
const message = reason ? [prefix, reason].join(prefixSeparator) : prefix;
|
|
82
|
-
return new ValidationError(message, zodError.errors);
|
|
83
|
-
}
|
|
84
|
-
exports.fromZodError = fromZodError;
|
|
85
|
-
const toValidationError = (options = {}) => (err) => {
|
|
86
|
-
if (err instanceof zod.ZodError) {
|
|
87
|
-
return fromZodError(err, options);
|
|
88
|
-
}
|
|
89
|
-
if (err instanceof Error) {
|
|
90
|
-
return err;
|
|
91
|
-
}
|
|
92
|
-
return new Error('Unknown error');
|
|
93
|
-
};
|
|
94
|
-
exports.toValidationError = toValidationError;
|
|
79
|
+
|
|
80
|
+
// lib/isValidationError.ts
|
|
95
81
|
function isValidationError(err) {
|
|
96
|
-
|
|
82
|
+
return err instanceof ValidationError;
|
|
97
83
|
}
|
|
98
|
-
|
|
84
|
+
|
|
85
|
+
// lib/isValidationErrorLike.ts
|
|
99
86
|
function isValidationErrorLike(err) {
|
|
100
|
-
|
|
87
|
+
return err instanceof Error && err.name === "ZodValidationError";
|
|
101
88
|
}
|
|
102
|
-
exports.isValidationErrorLike = isValidationErrorLike;
|
|
103
89
|
|
|
90
|
+
// lib/fromZodIssue.ts
|
|
91
|
+
var zod = __toESM(__nccwpck_require__(934));
|
|
104
92
|
|
|
105
|
-
|
|
93
|
+
// lib/config.ts
|
|
94
|
+
var ISSUE_SEPARATOR = "; ";
|
|
95
|
+
var MAX_ISSUES_IN_MESSAGE = 99;
|
|
96
|
+
var PREFIX = "Validation error";
|
|
97
|
+
var PREFIX_SEPARATOR = ": ";
|
|
98
|
+
var UNION_SEPARATOR = ", or ";
|
|
106
99
|
|
|
107
|
-
|
|
108
|
-
|
|
100
|
+
// lib/prefixMessage.ts
|
|
101
|
+
function prefixMessage(message, prefix, prefixSeparator) {
|
|
102
|
+
if (prefix !== null) {
|
|
103
|
+
if (message.length > 0) {
|
|
104
|
+
return [prefix, message].join(prefixSeparator);
|
|
105
|
+
}
|
|
106
|
+
return prefix;
|
|
107
|
+
}
|
|
108
|
+
if (message.length > 0) {
|
|
109
|
+
return message;
|
|
110
|
+
}
|
|
111
|
+
return PREFIX;
|
|
112
|
+
}
|
|
109
113
|
|
|
114
|
+
// lib/utils/joinPath.ts
|
|
115
|
+
var identifierRegex = /[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*/u;
|
|
116
|
+
function joinPath(path) {
|
|
117
|
+
if (path.length === 1) {
|
|
118
|
+
return path[0].toString();
|
|
119
|
+
}
|
|
120
|
+
return path.reduce((acc, item) => {
|
|
121
|
+
if (typeof item === "number") {
|
|
122
|
+
return acc + "[" + item.toString() + "]";
|
|
123
|
+
}
|
|
124
|
+
if (item.includes('"')) {
|
|
125
|
+
return acc + '["' + escapeQuotes(item) + '"]';
|
|
126
|
+
}
|
|
127
|
+
if (!identifierRegex.test(item)) {
|
|
128
|
+
return acc + '["' + item + '"]';
|
|
129
|
+
}
|
|
130
|
+
const separator = acc.length === 0 ? "" : ".";
|
|
131
|
+
return acc + separator + item;
|
|
132
|
+
}, "");
|
|
133
|
+
}
|
|
134
|
+
function escapeQuotes(str) {
|
|
135
|
+
return str.replace(/"/g, '\\"');
|
|
136
|
+
}
|
|
110
137
|
|
|
111
|
-
|
|
112
|
-
exports.isNonEmptyArray = void 0;
|
|
138
|
+
// lib/utils/NonEmptyArray.ts
|
|
113
139
|
function isNonEmptyArray(value) {
|
|
114
|
-
|
|
140
|
+
return value.length !== 0;
|
|
115
141
|
}
|
|
116
|
-
exports.isNonEmptyArray = isNonEmptyArray;
|
|
117
142
|
|
|
143
|
+
// lib/fromZodIssue.ts
|
|
144
|
+
function getMessageFromZodIssue(props) {
|
|
145
|
+
const { issue, issueSeparator, unionSeparator, includePath } = props;
|
|
146
|
+
if (issue.code === "invalid_union") {
|
|
147
|
+
return issue.unionErrors.reduce((acc, zodError) => {
|
|
148
|
+
const newIssues = zodError.issues.map(
|
|
149
|
+
(issue2) => getMessageFromZodIssue({
|
|
150
|
+
issue: issue2,
|
|
151
|
+
issueSeparator,
|
|
152
|
+
unionSeparator,
|
|
153
|
+
includePath
|
|
154
|
+
})
|
|
155
|
+
).join(issueSeparator);
|
|
156
|
+
if (!acc.includes(newIssues)) {
|
|
157
|
+
acc.push(newIssues);
|
|
158
|
+
}
|
|
159
|
+
return acc;
|
|
160
|
+
}, []).join(unionSeparator);
|
|
161
|
+
}
|
|
162
|
+
if (issue.code === "invalid_arguments") {
|
|
163
|
+
return [
|
|
164
|
+
issue.message,
|
|
165
|
+
...issue.argumentsError.issues.map(
|
|
166
|
+
(issue2) => getMessageFromZodIssue({
|
|
167
|
+
issue: issue2,
|
|
168
|
+
issueSeparator,
|
|
169
|
+
unionSeparator,
|
|
170
|
+
includePath
|
|
171
|
+
})
|
|
172
|
+
)
|
|
173
|
+
].join(issueSeparator);
|
|
174
|
+
}
|
|
175
|
+
if (issue.code === "invalid_return_type") {
|
|
176
|
+
return [
|
|
177
|
+
issue.message,
|
|
178
|
+
...issue.returnTypeError.issues.map(
|
|
179
|
+
(issue2) => getMessageFromZodIssue({
|
|
180
|
+
issue: issue2,
|
|
181
|
+
issueSeparator,
|
|
182
|
+
unionSeparator,
|
|
183
|
+
includePath
|
|
184
|
+
})
|
|
185
|
+
)
|
|
186
|
+
].join(issueSeparator);
|
|
187
|
+
}
|
|
188
|
+
if (includePath && isNonEmptyArray(issue.path)) {
|
|
189
|
+
if (issue.path.length === 1) {
|
|
190
|
+
const identifier = issue.path[0];
|
|
191
|
+
if (typeof identifier === "number") {
|
|
192
|
+
return `${issue.message} at index ${identifier}`;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return `${issue.message} at "${joinPath(issue.path)}"`;
|
|
196
|
+
}
|
|
197
|
+
return issue.message;
|
|
198
|
+
}
|
|
199
|
+
function fromZodIssue(issue, options = {}) {
|
|
200
|
+
const {
|
|
201
|
+
issueSeparator = ISSUE_SEPARATOR,
|
|
202
|
+
unionSeparator = UNION_SEPARATOR,
|
|
203
|
+
prefixSeparator = PREFIX_SEPARATOR,
|
|
204
|
+
prefix = PREFIX,
|
|
205
|
+
includePath = true
|
|
206
|
+
} = options;
|
|
207
|
+
const reason = getMessageFromZodIssue({
|
|
208
|
+
issue,
|
|
209
|
+
issueSeparator,
|
|
210
|
+
unionSeparator,
|
|
211
|
+
includePath
|
|
212
|
+
});
|
|
213
|
+
const message = prefixMessage(reason, prefix, prefixSeparator);
|
|
214
|
+
return new ValidationError(message, { cause: new zod.ZodError([issue]) });
|
|
215
|
+
}
|
|
118
216
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
217
|
+
// lib/errorMap.ts
|
|
218
|
+
var errorMap = (issue, ctx) => {
|
|
219
|
+
const error = fromZodIssue({
|
|
220
|
+
...issue,
|
|
221
|
+
// fallback to the default error message
|
|
222
|
+
// when issue does not have a message
|
|
223
|
+
message: issue.message ?? ctx.defaultError
|
|
224
|
+
});
|
|
225
|
+
return {
|
|
226
|
+
message: error.message
|
|
227
|
+
};
|
|
228
|
+
};
|
|
124
229
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (typeof item === 'number') {
|
|
134
|
-
return acc + '[' + item.toString() + ']';
|
|
135
|
-
}
|
|
136
|
-
if (item.includes('"')) {
|
|
137
|
-
return acc + '["' + escapeQuotes(item) + '"]';
|
|
138
|
-
}
|
|
139
|
-
if (!identifierRegex.test(item)) {
|
|
140
|
-
return acc + '["' + item + '"]';
|
|
141
|
-
}
|
|
142
|
-
const separator = acc.length === 0 ? '' : '.';
|
|
143
|
-
return acc + separator + item;
|
|
144
|
-
}, '');
|
|
230
|
+
// lib/fromZodError.ts
|
|
231
|
+
function fromZodError(zodError, options = {}) {
|
|
232
|
+
if (!isZodErrorLike(zodError)) {
|
|
233
|
+
throw new TypeError(
|
|
234
|
+
`Invalid zodError param; expected instance of ZodError. Did you mean to use the "${fromError.name}" method instead?`
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
return fromZodErrorWithoutRuntimeCheck(zodError, options);
|
|
145
238
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
239
|
+
function fromZodErrorWithoutRuntimeCheck(zodError, options = {}) {
|
|
240
|
+
const {
|
|
241
|
+
maxIssuesInMessage = MAX_ISSUES_IN_MESSAGE,
|
|
242
|
+
issueSeparator = ISSUE_SEPARATOR,
|
|
243
|
+
unionSeparator = UNION_SEPARATOR,
|
|
244
|
+
prefixSeparator = PREFIX_SEPARATOR,
|
|
245
|
+
prefix = PREFIX,
|
|
246
|
+
includePath = true
|
|
247
|
+
} = options;
|
|
248
|
+
const zodIssues = zodError.errors;
|
|
249
|
+
const reason = zodIssues.length === 0 ? zodError.message : zodIssues.slice(0, maxIssuesInMessage).map(
|
|
250
|
+
(issue) => getMessageFromZodIssue({
|
|
251
|
+
issue,
|
|
252
|
+
issueSeparator,
|
|
253
|
+
unionSeparator,
|
|
254
|
+
includePath
|
|
255
|
+
})
|
|
256
|
+
).join(issueSeparator);
|
|
257
|
+
const message = prefixMessage(reason, prefix, prefixSeparator);
|
|
258
|
+
return new ValidationError(message, { cause: zodError });
|
|
149
259
|
}
|
|
150
260
|
|
|
261
|
+
// lib/toValidationError.ts
|
|
262
|
+
var toValidationError = (options = {}) => (err) => {
|
|
263
|
+
if (isZodErrorLike(err)) {
|
|
264
|
+
return fromZodErrorWithoutRuntimeCheck(err, options);
|
|
265
|
+
}
|
|
266
|
+
if (err instanceof Error) {
|
|
267
|
+
return new ValidationError(err.message, { cause: err });
|
|
268
|
+
}
|
|
269
|
+
return new ValidationError("Unknown error");
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
// lib/fromError.ts
|
|
273
|
+
function fromError(err, options = {}) {
|
|
274
|
+
return toValidationError(options)(err);
|
|
275
|
+
}
|
|
276
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
277
|
+
0 && (0);
|
|
278
|
+
//# sourceMappingURL=index.js.map
|
|
151
279
|
|
|
152
280
|
/***/ }),
|
|
153
281
|
|
|
@@ -180,7 +308,7 @@ module.exports = require("../zod");
|
|
|
180
308
|
/******/ // Execute the module function
|
|
181
309
|
/******/ var threw = true;
|
|
182
310
|
/******/ try {
|
|
183
|
-
/******/ __webpack_modules__[moduleId]
|
|
311
|
+
/******/ __webpack_modules__[moduleId](module, module.exports, __nccwpck_require__);
|
|
184
312
|
/******/ threw = false;
|
|
185
313
|
/******/ } finally {
|
|
186
314
|
/******/ if(threw) delete __webpack_module_cache__[moduleId];
|
|
@@ -196,22 +324,12 @@ module.exports = require("../zod");
|
|
|
196
324
|
/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/";
|
|
197
325
|
/******/
|
|
198
326
|
/************************************************************************/
|
|
199
|
-
|
|
200
|
-
//
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
var ValidationError_1 = __nccwpck_require__(381);
|
|
207
|
-
Object.defineProperty(exports, "ValidationError", ({ enumerable: true, get: function () { return ValidationError_1.ValidationError; } }));
|
|
208
|
-
Object.defineProperty(exports, "toValidationError", ({ enumerable: true, get: function () { return ValidationError_1.toValidationError; } }));
|
|
209
|
-
Object.defineProperty(exports, "isValidationError", ({ enumerable: true, get: function () { return ValidationError_1.isValidationError; } }));
|
|
210
|
-
Object.defineProperty(exports, "isValidationErrorLike", ({ enumerable: true, get: function () { return ValidationError_1.isValidationErrorLike; } }));
|
|
211
|
-
Object.defineProperty(exports, "fromZodError", ({ enumerable: true, get: function () { return ValidationError_1.fromZodError; } }));
|
|
212
|
-
|
|
213
|
-
})();
|
|
214
|
-
|
|
215
|
-
module.exports = __webpack_exports__;
|
|
327
|
+
/******/
|
|
328
|
+
/******/ // startup
|
|
329
|
+
/******/ // Load entry module and return exports
|
|
330
|
+
/******/ // This entry module is referenced by other modules so it can't be inlined
|
|
331
|
+
/******/ var __webpack_exports__ = __nccwpck_require__(172);
|
|
332
|
+
/******/ module.exports = __webpack_exports__;
|
|
333
|
+
/******/
|
|
216
334
|
/******/ })()
|
|
217
335
|
;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"zod-validation-error","author":{"name":"
|
|
1
|
+
{"name":"zod-validation-error","author":{"name":"Dimitrios C. Michalakos","email":"dimitris@jmike.gr","url":"https://github.com/jmike"},"version":"3.3.1","license":"MIT","types":"index.d.ts","type":"commonjs"}
|
package/dist/config/zod.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ declare const name: z.ZodString;
|
|
|
13
13
|
export type Name = z.infer<typeof name>;
|
|
14
14
|
declare const dependencies: z.ZodArray<z.ZodString, "many">;
|
|
15
15
|
export type Dependencies = z.infer<typeof dependencies>;
|
|
16
|
-
declare const context: z.ZodString
|
|
16
|
+
declare const context: z.ZodEffects<z.ZodString, string, string>;
|
|
17
17
|
export type Context = z.infer<typeof context>;
|
|
18
18
|
declare const mode: z.ZodEnum<["development", "production", "none"]>;
|
|
19
19
|
export type Mode = z.infer<typeof mode>;
|
|
@@ -7491,7 +7491,7 @@ export declare const rspackOptions: z.ZodObject<{
|
|
|
7491
7491
|
stream?: NodeJS.WritableStream | undefined;
|
|
7492
7492
|
}>>;
|
|
7493
7493
|
cache: z.ZodOptional<z.ZodBoolean>;
|
|
7494
|
-
context: z.ZodOptional<z.ZodString
|
|
7494
|
+
context: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
7495
7495
|
devtool: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodEnum<["eval", "cheap-source-map", "cheap-module-source-map", "source-map", "inline-cheap-source-map", "inline-cheap-module-source-map", "inline-source-map", "inline-nosources-cheap-source-map", "inline-nosources-cheap-module-source-map", "inline-nosources-source-map", "nosources-cheap-source-map", "nosources-cheap-module-source-map", "nosources-source-map", "hidden-nosources-cheap-source-map", "hidden-nosources-cheap-module-source-map", "hidden-nosources-source-map", "hidden-cheap-source-map", "hidden-cheap-module-source-map", "hidden-source-map", "eval-cheap-source-map", "eval-cheap-module-source-map", "eval-source-map", "eval-nosources-cheap-source-map", "eval-nosources-cheap-module-source-map", "eval-nosources-source-map"]>]>>;
|
|
7496
7496
|
node: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<false>, z.ZodObject<{
|
|
7497
7497
|
__dirname: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["warn-mock", "mock", "eval-only", "node-module"]>]>>;
|
package/dist/config/zod.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.rspackOptions = exports.externalsType = void 0;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
4
8
|
const zod_1 = require("../../compiled/zod");
|
|
5
9
|
const Chunk_1 = require("../Chunk");
|
|
6
10
|
const Module_1 = require("../Module");
|
|
@@ -16,7 +20,9 @@ const name = zod_1.z.string();
|
|
|
16
20
|
const dependencies = zod_1.z.array(name);
|
|
17
21
|
//#endregion
|
|
18
22
|
//#region Context
|
|
19
|
-
const context = zod_1.z.string()
|
|
23
|
+
const context = zod_1.z.string().refine(val => node_path_1.default.isAbsolute(val), val => ({
|
|
24
|
+
message: `The provided value ${JSON.stringify(val)} must be an absolute path.`
|
|
25
|
+
}));
|
|
20
26
|
//#endregion
|
|
21
27
|
//#region Mode
|
|
22
28
|
const mode = zod_1.z.enum(["development", "production", "none"]);
|
package/dist/exports.d.ts
CHANGED
|
@@ -33,6 +33,8 @@ type Config = {
|
|
|
33
33
|
};
|
|
34
34
|
export declare const config: Config;
|
|
35
35
|
export type * from "./config";
|
|
36
|
+
import { ValidationError } from "./util/validate";
|
|
37
|
+
export { ValidationError };
|
|
36
38
|
export declare const util: {
|
|
37
39
|
createHash: (algorithm: (string & {}) | "debug" | "xxhash64" | "md4" | "native-md4" | (new () => import("./util/hash").default)) => import("./util/hash").default;
|
|
38
40
|
cleverMerge: <First, Second>(first: First, second: Second) => First | Second | (First & Second);
|
package/dist/exports.js
CHANGED
|
@@ -26,8 +26,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
30
|
-
exports.experiments = void 0;
|
|
29
|
+
exports.EvalDevToolModulePlugin = exports.EvalSourceMapDevToolPlugin = exports.SourceMapDevToolPlugin = exports.CopyRspackPlugin = exports.LightningCssMinimizerRspackPlugin = exports.SwcJsMinimizerRspackPlugin = exports.HtmlRspackPlugin = exports.sharing = exports.container = exports.optimize = exports.webworker = exports.javascript = exports.wasm = exports.library = exports.electron = exports.node = exports.web = exports.NormalModuleReplacementPlugin = exports.LoaderTargetPlugin = exports.LoaderOptionsPlugin = exports.EnvironmentPlugin = exports.NoEmitOnErrorsPlugin = exports.HotModuleReplacementPlugin = exports.ExternalsPlugin = exports.DynamicEntryPlugin = exports.EntryPlugin = exports.ProgressPlugin = exports.DefinePlugin = exports.ProvidePlugin = exports.IgnorePlugin = exports.BannerPlugin = exports.EntryOptionPlugin = exports.util = exports.ValidationError = exports.config = exports.sources = exports.WebpackError = exports.Template = exports.ModuleFilenameHelpers = exports.Stats = exports.RuntimeGlobals = exports.NormalModule = exports.MultiStats = exports.WebpackOptionsApply = exports.RspackOptionsApply = exports.MultiCompiler = exports.Compiler = exports.Compilation = exports.version = exports.rspackVersion = void 0;
|
|
30
|
+
exports.experiments = exports.CssExtractRspackPlugin = void 0;
|
|
31
31
|
const package_json_1 = require("../package.json");
|
|
32
32
|
// this is a hack to be compatible with plugin which detect webpack's version
|
|
33
33
|
const rspackVersion = package_json_1.version;
|
|
@@ -67,6 +67,8 @@ exports.config = {
|
|
|
67
67
|
getNormalizedWebpackOptions: config_1.getNormalizedRspackOptions,
|
|
68
68
|
applyWebpackOptionsDefaults: config_1.applyRspackOptionsDefaults
|
|
69
69
|
};
|
|
70
|
+
const validate_1 = require("./util/validate");
|
|
71
|
+
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return validate_1.ValidationError; } });
|
|
70
72
|
const cleverMerge_1 = require("./util/cleverMerge");
|
|
71
73
|
const createHash_1 = require("./util/createHash");
|
|
72
74
|
exports.util = { createHash: createHash_1.createHash, cleverMerge: cleverMerge_1.cachedCleverMerge };
|
package/dist/util/validate.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { z } from "../../compiled/zod";
|
|
2
|
+
export declare class ValidationError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
2
5
|
export declare function validate<T extends z.ZodType>(opts: any, schema: T): void;
|
|
3
6
|
export declare function isValidate<T extends z.ZodType>(opts: any, schema: T): boolean;
|
package/dist/util/validate.js
CHANGED
|
@@ -1,34 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isValidate = exports.validate = void 0;
|
|
3
|
+
exports.isValidate = exports.validate = exports.ValidationError = void 0;
|
|
4
4
|
const zod_validation_error_1 = require("../../compiled/zod-validation-error");
|
|
5
|
+
class ValidationError extends Error {
|
|
6
|
+
constructor(message) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = "ValidationError";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ValidationError = ValidationError;
|
|
5
12
|
function validate(opts, schema) {
|
|
6
13
|
const res = schema.safeParse(opts);
|
|
7
14
|
if (!res.success) {
|
|
8
15
|
const strategy = process.env.RSPACK_CONFIG_VALIDATE ?? "strict";
|
|
9
16
|
if (strategy === "loose-silent")
|
|
10
17
|
return;
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
let friendlyErr;
|
|
19
|
+
const originalIssues = res.error.issues;
|
|
20
|
+
// Issues with code `unrecognized_keys` are ignored. Other issues are thrown.
|
|
21
|
+
// This does not work when `zodError.issues` is empty so we need to check the length of `zodError.issues`.
|
|
22
|
+
// See: https://github.com/causaly/zod-validation-error/blob/62684ba47cba9cbd84e2a75dfd5fd06dcd0e1ad5/lib/fromZodError.ts#L53
|
|
23
|
+
if (strategy === "loose-unrecognized-keys" && res.error.issues.length > 0) {
|
|
24
|
+
// This is based on the invariant that `fromZodError` always reads `zodError.errors` first and
|
|
25
|
+
// `zodError.errors` always returns `zodError.issues`:
|
|
26
|
+
// See: https://github.com/causaly/zod-validation-error/blob/62684ba47cba9cbd84e2a75dfd5fd06dcd0e1ad5/lib/fromZodError.ts#L55
|
|
27
|
+
// Also see: https://github.com/colinhacks/zod/blob/8552233c77426f77d3586cc877f7aec1aa0aa45b/src/ZodError.ts#L200
|
|
28
|
+
const unrecognizedKeys = originalIssues.filter(issue => issue.code === "unrecognized_keys");
|
|
29
|
+
if (unrecognizedKeys.length > 0) {
|
|
30
|
+
res.error.issues = unrecognizedKeys;
|
|
31
|
+
friendlyErr = toValidationError(res.error);
|
|
32
|
+
console.error(friendlyErr.message);
|
|
33
|
+
res.error.issues = originalIssues;
|
|
34
|
+
}
|
|
35
|
+
res.error.issues = originalIssues.filter(issue => issue.code !== "unrecognized_keys");
|
|
36
|
+
if (res.error.issues.length > 0) {
|
|
37
|
+
throw toValidationError(res.error);
|
|
38
|
+
}
|
|
39
|
+
return;
|
|
25
40
|
}
|
|
26
|
-
|
|
27
|
-
|
|
41
|
+
if (strategy === "loose-unrecognized-keys" || strategy === "loose") {
|
|
42
|
+
friendlyErr = toValidationError(res.error);
|
|
43
|
+
console.error(friendlyErr.message);
|
|
44
|
+
return;
|
|
28
45
|
}
|
|
46
|
+
// strict
|
|
47
|
+
friendlyErr = toValidationError(res.error);
|
|
48
|
+
throw friendlyErr;
|
|
29
49
|
}
|
|
30
50
|
}
|
|
31
51
|
exports.validate = validate;
|
|
52
|
+
function toValidationError(error) {
|
|
53
|
+
const issueSeparator = "$issue$";
|
|
54
|
+
const prefixSeparator = "$prefix$";
|
|
55
|
+
const validationErr = (0, zod_validation_error_1.fromZodError)(error, {
|
|
56
|
+
prefix: "Invalid configuration object. Rspack has been initialized using a configuration object that does not match the API schema.",
|
|
57
|
+
prefixSeparator,
|
|
58
|
+
issueSeparator
|
|
59
|
+
});
|
|
60
|
+
// The output validationErr.message looks like
|
|
61
|
+
// `Configuration error$prefix$xxxx error$issue$yyy error$issue$zzz error`
|
|
62
|
+
const [prefix, reason] = validationErr.message.split(prefixSeparator);
|
|
63
|
+
const reasonItem = reason.split(issueSeparator);
|
|
64
|
+
const message = `${prefix}\n${reasonItem.map(item => `- ${item}`).join("\n")}`;
|
|
65
|
+
const friendlyErr = new ValidationError(message);
|
|
66
|
+
return friendlyErr;
|
|
67
|
+
}
|
|
32
68
|
function isValidate(opts, schema) {
|
|
33
69
|
try {
|
|
34
70
|
validate(opts, schema);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rspack/core",
|
|
3
|
-
"version": "1.0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"webpackVersion": "5.75.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "The fast Rust-based web bundler with webpack-compatible API",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@swc/core": "1.4.0",
|
|
40
|
+
"@types/graceful-fs": "4.1.9",
|
|
40
41
|
"@types/neo-async": "^2.6.6",
|
|
41
42
|
"@types/watchpack": "^2.4.0",
|
|
42
43
|
"@types/webpack-sources": "3.2.3",
|
|
@@ -44,23 +45,22 @@
|
|
|
44
45
|
"cross-env": "^7.0.3",
|
|
45
46
|
"enhanced-resolve": "5.12.0",
|
|
46
47
|
"graceful-fs": "4.2.10",
|
|
47
|
-
"@types/graceful-fs": "4.1.9",
|
|
48
48
|
"json-parse-even-better-errors": "^3.0.0",
|
|
49
49
|
"neo-async": "2.6.2",
|
|
50
50
|
"prebundle": "^1.1.0",
|
|
51
|
-
"typescript": "5.0.2",
|
|
52
51
|
"tsc-alias": "^1.8.8",
|
|
52
|
+
"typescript": "5.0.2",
|
|
53
53
|
"watchpack": "^2.4.0",
|
|
54
|
-
"webpack-sources": "3.2.3",
|
|
55
54
|
"webpack-dev-server": "^5.0.4",
|
|
55
|
+
"webpack-sources": "3.2.3",
|
|
56
56
|
"zod": "^3.23.8",
|
|
57
|
-
"zod-validation-error": "
|
|
57
|
+
"zod-validation-error": "3.3.1"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
60
|
"@module-federation/runtime-tools": "0.5.1",
|
|
61
61
|
"@rspack/lite-tapable": "1.0.0",
|
|
62
62
|
"caniuse-lite": "^1.0.30001616",
|
|
63
|
-
"@rspack/binding": "1.0.0
|
|
63
|
+
"@rspack/binding": "1.0.0"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"@swc/helpers": ">=0.5.1"
|