@restura/core 1.0.13 → 1.0.15
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 +7 -2
- package/dist/index.js +34 -36
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.d.ts
CHANGED
|
@@ -33,17 +33,22 @@ declare enum HtmlStatusCodes {
|
|
|
33
33
|
FORBIDDEN = 403,
|
|
34
34
|
NOT_FOUND = 404,
|
|
35
35
|
METHOD_NOT_ALLOWED = 405,
|
|
36
|
+
REQUEST_TIMEOUT = 408,
|
|
36
37
|
CONFLICT = 409,
|
|
37
|
-
|
|
38
|
+
GONE = 410,
|
|
39
|
+
PAYLOAD_TOO_LARGE = 413,
|
|
40
|
+
UNSUPPORTED_MEDIA_TYPE = 415,
|
|
41
|
+
UPGRADE_REQUIRED = 426,
|
|
38
42
|
UNPROCESSABLE_ENTITY = 422,
|
|
39
43
|
TOO_MANY_REQUESTS = 429,
|
|
40
44
|
SERVER_ERROR = 500,
|
|
45
|
+
NOT_IMPLEMENTED = 501,
|
|
41
46
|
BAD_GATEWAY = 502,
|
|
42
47
|
SERVICE_UNAVAILABLE = 503,
|
|
43
48
|
GATEWAY_TIMEOUT = 504,
|
|
44
49
|
NETWORK_CONNECT_TIMEOUT = 599
|
|
45
50
|
}
|
|
46
|
-
type ErrorCode = '
|
|
51
|
+
type ErrorCode = 'BAD_REQUEST' | 'UNAUTHORIZED' | 'PAYMENT_REQUIRED' | 'FORBIDDEN' | 'NOT_FOUND' | 'METHOD_NOT_ALLOWED' | 'REQUEST_TIMEOUT' | 'CONFLICT' | 'GONE' | 'PAYLOAD_TOO_LARGE' | 'UNSUPPORTED_MEDIA_TYPE' | 'UPGRADE_REQUIRED' | 'UNPROCESSABLE_ENTITY' | 'TOO_MANY_REQUESTS' | 'SERVER_ERROR' | 'NOT_IMPLEMENTED' | 'BAD_GATEWAY' | 'SERVICE_UNAVAILABLE' | 'GATEWAY_TIMEOUT' | 'NETWORK_CONNECT_TIMEOUT' | 'UNKNOWN_ERROR' | 'RATE_LIMIT_EXCEEDED' | 'INVALID_TOKEN' | 'INCORRECT_EMAIL_OR_PASSWORD' | 'DUPLICATE' | 'CONNECTION_ERROR' | 'SCHEMA_ERROR' | 'DATABASE_ERROR';
|
|
47
52
|
declare class RsError {
|
|
48
53
|
err: ErrorCode;
|
|
49
54
|
msg: string;
|
package/dist/index.js
CHANGED
|
@@ -214,11 +214,16 @@ var HtmlStatusCodes = /* @__PURE__ */ ((HtmlStatusCodes2) => {
|
|
|
214
214
|
HtmlStatusCodes2[HtmlStatusCodes2["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
215
215
|
HtmlStatusCodes2[HtmlStatusCodes2["NOT_FOUND"] = 404] = "NOT_FOUND";
|
|
216
216
|
HtmlStatusCodes2[HtmlStatusCodes2["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED";
|
|
217
|
+
HtmlStatusCodes2[HtmlStatusCodes2["REQUEST_TIMEOUT"] = 408] = "REQUEST_TIMEOUT";
|
|
217
218
|
HtmlStatusCodes2[HtmlStatusCodes2["CONFLICT"] = 409] = "CONFLICT";
|
|
218
|
-
HtmlStatusCodes2[HtmlStatusCodes2["
|
|
219
|
+
HtmlStatusCodes2[HtmlStatusCodes2["GONE"] = 410] = "GONE";
|
|
220
|
+
HtmlStatusCodes2[HtmlStatusCodes2["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
|
|
221
|
+
HtmlStatusCodes2[HtmlStatusCodes2["UNSUPPORTED_MEDIA_TYPE"] = 415] = "UNSUPPORTED_MEDIA_TYPE";
|
|
222
|
+
HtmlStatusCodes2[HtmlStatusCodes2["UPGRADE_REQUIRED"] = 426] = "UPGRADE_REQUIRED";
|
|
219
223
|
HtmlStatusCodes2[HtmlStatusCodes2["UNPROCESSABLE_ENTITY"] = 422] = "UNPROCESSABLE_ENTITY";
|
|
220
224
|
HtmlStatusCodes2[HtmlStatusCodes2["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
|
|
221
225
|
HtmlStatusCodes2[HtmlStatusCodes2["SERVER_ERROR"] = 500] = "SERVER_ERROR";
|
|
226
|
+
HtmlStatusCodes2[HtmlStatusCodes2["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
|
|
222
227
|
HtmlStatusCodes2[HtmlStatusCodes2["BAD_GATEWAY"] = 502] = "BAD_GATEWAY";
|
|
223
228
|
HtmlStatusCodes2[HtmlStatusCodes2["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
|
|
224
229
|
HtmlStatusCodes2[HtmlStatusCodes2["GATEWAY_TIMEOUT"] = 504] = "GATEWAY_TIMEOUT";
|
|
@@ -244,43 +249,36 @@ var RsError = class _RsError {
|
|
|
244
249
|
}
|
|
245
250
|
};
|
|
246
251
|
var htmlStatusMap = {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
RATE_LIMIT_EXCEEDED: 429 /* TOO_MANY_REQUESTS */,
|
|
252
|
+
// 1:1 mappings to HTTP status codes
|
|
253
|
+
BAD_REQUEST: 400 /* BAD_REQUEST */,
|
|
254
|
+
UNAUTHORIZED: 401 /* UNAUTHORIZED */,
|
|
255
|
+
PAYMENT_REQUIRED: 402 /* PAYMENT_REQUIRED */,
|
|
252
256
|
FORBIDDEN: 403 /* FORBIDDEN */,
|
|
257
|
+
NOT_FOUND: 404 /* NOT_FOUND */,
|
|
258
|
+
METHOD_NOT_ALLOWED: 405 /* METHOD_NOT_ALLOWED */,
|
|
259
|
+
REQUEST_TIMEOUT: 408 /* REQUEST_TIMEOUT */,
|
|
253
260
|
CONFLICT: 409 /* CONFLICT */,
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
261
|
+
GONE: 410 /* GONE */,
|
|
262
|
+
PAYLOAD_TOO_LARGE: 413 /* PAYLOAD_TOO_LARGE */,
|
|
263
|
+
UNSUPPORTED_MEDIA_TYPE: 415 /* UNSUPPORTED_MEDIA_TYPE */,
|
|
264
|
+
UPGRADE_REQUIRED: 426 /* UPGRADE_REQUIRED */,
|
|
265
|
+
UNPROCESSABLE_ENTITY: 422 /* UNPROCESSABLE_ENTITY */,
|
|
266
|
+
TOO_MANY_REQUESTS: 429 /* TOO_MANY_REQUESTS */,
|
|
267
|
+
SERVER_ERROR: 500 /* SERVER_ERROR */,
|
|
268
|
+
NOT_IMPLEMENTED: 501 /* NOT_IMPLEMENTED */,
|
|
269
|
+
BAD_GATEWAY: 502 /* BAD_GATEWAY */,
|
|
270
|
+
SERVICE_UNAVAILABLE: 503 /* SERVICE_UNAVAILABLE */,
|
|
271
|
+
GATEWAY_TIMEOUT: 504 /* GATEWAY_TIMEOUT */,
|
|
272
|
+
NETWORK_CONNECT_TIMEOUT: 599 /* NETWORK_CONNECT_TIMEOUT */,
|
|
273
|
+
// Specific business errors mapped to appropriate HTTP codes
|
|
274
|
+
UNKNOWN_ERROR: 500 /* SERVER_ERROR */,
|
|
275
|
+
RATE_LIMIT_EXCEEDED: 429 /* TOO_MANY_REQUESTS */,
|
|
260
276
|
INVALID_TOKEN: 401 /* UNAUTHORIZED */,
|
|
261
277
|
INCORRECT_EMAIL_OR_PASSWORD: 401 /* UNAUTHORIZED */,
|
|
262
|
-
DUPLICATE_TOKEN: 409 /* CONFLICT */,
|
|
263
|
-
DUPLICATE_USERNAME: 409 /* CONFLICT */,
|
|
264
|
-
DUPLICATE_EMAIL: 409 /* CONFLICT */,
|
|
265
278
|
DUPLICATE: 409 /* CONFLICT */,
|
|
266
|
-
|
|
267
|
-
UPDATE_WITHOUT_ID: 400 /* BAD_REQUEST */,
|
|
268
|
-
CONNECTION_ERROR: 599 /* NETWORK_CONNECT_TIMEOUT */,
|
|
269
|
-
INVALID_PAYMENT: 403 /* FORBIDDEN */,
|
|
270
|
-
DECLINED_PAYMENT: 403 /* FORBIDDEN */,
|
|
271
|
-
INTEGRATION_ERROR: 500 /* SERVER_ERROR */,
|
|
272
|
-
CANNOT_RESERVE: 403 /* FORBIDDEN */,
|
|
273
|
-
REFUND_FAILURE: 403 /* FORBIDDEN */,
|
|
274
|
-
INVALID_INVOICE: 403 /* FORBIDDEN */,
|
|
275
|
-
INVALID_COUPON: 403 /* FORBIDDEN */,
|
|
276
|
-
SERVICE_UNAVAILABLE: 503 /* SERVICE_UNAVAILABLE */,
|
|
277
|
-
METHOD_UNALLOWED: 405 /* METHOD_NOT_ALLOWED */,
|
|
278
|
-
LOGIN_EXPIRED: 401 /* UNAUTHORIZED */,
|
|
279
|
-
THIRD_PARTY_ERROR: 400 /* BAD_REQUEST */,
|
|
280
|
-
ACCESS_DENIED: 403 /* FORBIDDEN */,
|
|
281
|
-
DATABASE_ERROR: 500 /* SERVER_ERROR */,
|
|
279
|
+
CONNECTION_ERROR: 504 /* GATEWAY_TIMEOUT */,
|
|
282
280
|
SCHEMA_ERROR: 500 /* SERVER_ERROR */,
|
|
283
|
-
|
|
281
|
+
DATABASE_ERROR: 500 /* SERVER_ERROR */
|
|
284
282
|
};
|
|
285
283
|
|
|
286
284
|
// src/restura/validators/ResponseValidator.ts
|
|
@@ -2058,9 +2056,9 @@ text = text:[a-z0-9 \\t\\r\\n\\-_:@']i+ { return text.join(""); }
|
|
|
2058
2056
|
|
|
2059
2057
|
|
|
2060
2058
|
type = "type" _ ":" _ type:typeString { return type; }
|
|
2061
|
-
typeString = text:"startsWith" { return function(column, value) { return \`\${column} ILIKE '\${format.literal(value).slice(1,-1)}%'\`; } } /
|
|
2062
|
-
text:"endsWith" { return function(column, value) { return \`\${column} ILIKE '%\${format.literal(value).slice(1,-1)}'\`; } } /
|
|
2063
|
-
text:"contains" { return function(column, value) { return \`\${column} ILIKE '%\${format.literal(value).slice(1,-1)}%'\`; } } /
|
|
2059
|
+
typeString = text:"startsWith" { return function(column, value) { return \`\${column}::text ILIKE '\${format.literal(value).slice(1,-1)}%'\`; } } /
|
|
2060
|
+
text:"endsWith" { return function(column, value) { return \`\${column}::text ILIKE '%\${format.literal(value).slice(1,-1)}'\`; } } /
|
|
2061
|
+
text:"contains" { return function(column, value) { return \`\${column}::text ILIKE '%\${format.literal(value).slice(1,-1)}%'\`; } } /
|
|
2064
2062
|
text:"exact" { return function(column, value) { return \`\${column} = '\${format.literal(value).slice(1,-1)}'\`; } } /
|
|
2065
2063
|
text:"greaterThanEqual" { return function(column, value) { return \`\${column} >= '\${format.literal(value).slice(1,-1)}'\`; } } /
|
|
2066
2064
|
text:"greaterThan" { return function(column, value) { return \`\${column} > '\${format.literal(value).slice(1,-1)}'\`; } } /
|
|
@@ -2530,7 +2528,7 @@ var PsqlEngine = class extends SqlEngine {
|
|
|
2530
2528
|
);
|
|
2531
2529
|
const whereClause = this.generateWhereClause(req, routeData.where, routeData, sqlParams);
|
|
2532
2530
|
if (whereClause.replace(/\s/g, "") === "") {
|
|
2533
|
-
throw new RsError("
|
|
2531
|
+
throw new RsError("FORBIDDEN", "Deletes need a where clause");
|
|
2534
2532
|
}
|
|
2535
2533
|
const deleteStatement = `
|
|
2536
2534
|
DELETE FROM "${routeData.table}" ${joinStatement} ${whereClause}`;
|