@restura/core 1.0.12 → 1.0.14

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 CHANGED
@@ -29,17 +29,26 @@ interface RsErrorInternalData {
29
29
  declare enum HtmlStatusCodes {
30
30
  BAD_REQUEST = 400,
31
31
  UNAUTHORIZED = 401,
32
+ PAYMENT_REQUIRED = 402,
32
33
  FORBIDDEN = 403,
33
34
  NOT_FOUND = 404,
34
35
  METHOD_NOT_ALLOWED = 405,
36
+ REQUEST_TIMEOUT = 408,
35
37
  CONFLICT = 409,
36
- VERSION_OUT_OF_DATE = 418,// Technically this is the I'm a teapot code that was a joke.
38
+ GONE = 410,
39
+ PAYLOAD_TOO_LARGE = 413,
40
+ UNSUPPORTED_MEDIA_TYPE = 415,
41
+ UPGRADE_REQUIRED = 426,
37
42
  UNPROCESSABLE_ENTITY = 422,
43
+ TOO_MANY_REQUESTS = 429,
38
44
  SERVER_ERROR = 500,
45
+ NOT_IMPLEMENTED = 501,
46
+ BAD_GATEWAY = 502,
39
47
  SERVICE_UNAVAILABLE = 503,
48
+ GATEWAY_TIMEOUT = 504,
40
49
  NETWORK_CONNECT_TIMEOUT = 599
41
50
  }
42
- type ErrorCode = 'UNKNOWN_ERROR' | 'NOT_FOUND' | 'EMAIL_TAKEN' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'UPDATE_FORBIDDEN' | 'CREATE_FORBIDDEN' | 'DELETE_FORBIDDEN' | 'DELETE_FAILURE' | 'BAD_REQUEST' | 'INVALID_TOKEN' | 'INCORRECT_EMAIL_OR_PASSWORD' | 'DUPLICATE_TOKEN' | 'DUPLICATE_USERNAME' | 'DUPLICATE_EMAIL' | 'DUPLICATE' | 'EMAIL_NOT_VERIFIED' | 'UPDATE_WITHOUT_ID' | 'CONNECTION_ERROR' | 'INVALID_PAYMENT' | 'DECLINED_PAYMENT' | 'INTEGRATION_ERROR' | 'CANNOT_RESERVE' | 'REFUND_FAILURE' | 'INVALID_INVOICE' | 'INVALID_COUPON' | 'SERVICE_UNAVAILABLE' | 'METHOD_UNALLOWED' | 'LOGIN_EXPIRED' | 'THIRD_PARTY_ERROR' | 'ACCESS_DENIED' | 'DATABASE_ERROR' | 'SCHEMA_ERROR' | 'DATA_INCOMPLETE';
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';
43
52
  declare class RsError {
44
53
  err: ErrorCode;
45
54
  msg: string;
package/dist/index.js CHANGED
@@ -210,14 +210,23 @@ var SqlUtils = class _SqlUtils {
210
210
  var HtmlStatusCodes = /* @__PURE__ */ ((HtmlStatusCodes2) => {
211
211
  HtmlStatusCodes2[HtmlStatusCodes2["BAD_REQUEST"] = 400] = "BAD_REQUEST";
212
212
  HtmlStatusCodes2[HtmlStatusCodes2["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
213
+ HtmlStatusCodes2[HtmlStatusCodes2["PAYMENT_REQUIRED"] = 402] = "PAYMENT_REQUIRED";
213
214
  HtmlStatusCodes2[HtmlStatusCodes2["FORBIDDEN"] = 403] = "FORBIDDEN";
214
215
  HtmlStatusCodes2[HtmlStatusCodes2["NOT_FOUND"] = 404] = "NOT_FOUND";
215
216
  HtmlStatusCodes2[HtmlStatusCodes2["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED";
217
+ HtmlStatusCodes2[HtmlStatusCodes2["REQUEST_TIMEOUT"] = 408] = "REQUEST_TIMEOUT";
216
218
  HtmlStatusCodes2[HtmlStatusCodes2["CONFLICT"] = 409] = "CONFLICT";
217
- HtmlStatusCodes2[HtmlStatusCodes2["VERSION_OUT_OF_DATE"] = 418] = "VERSION_OUT_OF_DATE";
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";
218
223
  HtmlStatusCodes2[HtmlStatusCodes2["UNPROCESSABLE_ENTITY"] = 422] = "UNPROCESSABLE_ENTITY";
224
+ HtmlStatusCodes2[HtmlStatusCodes2["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
219
225
  HtmlStatusCodes2[HtmlStatusCodes2["SERVER_ERROR"] = 500] = "SERVER_ERROR";
226
+ HtmlStatusCodes2[HtmlStatusCodes2["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
227
+ HtmlStatusCodes2[HtmlStatusCodes2["BAD_GATEWAY"] = 502] = "BAD_GATEWAY";
220
228
  HtmlStatusCodes2[HtmlStatusCodes2["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
229
+ HtmlStatusCodes2[HtmlStatusCodes2["GATEWAY_TIMEOUT"] = 504] = "GATEWAY_TIMEOUT";
221
230
  HtmlStatusCodes2[HtmlStatusCodes2["NETWORK_CONNECT_TIMEOUT"] = 599] = "NETWORK_CONNECT_TIMEOUT";
222
231
  return HtmlStatusCodes2;
223
232
  })(HtmlStatusCodes || {});
@@ -240,41 +249,36 @@ var RsError = class _RsError {
240
249
  }
241
250
  };
242
251
  var htmlStatusMap = {
243
- UNKNOWN_ERROR: 500 /* SERVER_ERROR */,
244
- NOT_FOUND: 404 /* NOT_FOUND */,
245
- EMAIL_TAKEN: 409 /* CONFLICT */,
252
+ // 1:1 mappings to HTTP status codes
253
+ BAD_REQUEST: 400 /* BAD_REQUEST */,
254
+ UNAUTHORIZED: 401 /* UNAUTHORIZED */,
255
+ PAYMENT_REQUIRED: 402 /* PAYMENT_REQUIRED */,
246
256
  FORBIDDEN: 403 /* FORBIDDEN */,
257
+ NOT_FOUND: 404 /* NOT_FOUND */,
258
+ METHOD_NOT_ALLOWED: 405 /* METHOD_NOT_ALLOWED */,
259
+ REQUEST_TIMEOUT: 408 /* REQUEST_TIMEOUT */,
247
260
  CONFLICT: 409 /* CONFLICT */,
248
- UNAUTHORIZED: 401 /* UNAUTHORIZED */,
249
- UPDATE_FORBIDDEN: 403 /* FORBIDDEN */,
250
- CREATE_FORBIDDEN: 403 /* FORBIDDEN */,
251
- DELETE_FORBIDDEN: 403 /* FORBIDDEN */,
252
- DELETE_FAILURE: 500 /* SERVER_ERROR */,
253
- BAD_REQUEST: 400 /* BAD_REQUEST */,
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 */,
254
276
  INVALID_TOKEN: 401 /* UNAUTHORIZED */,
255
277
  INCORRECT_EMAIL_OR_PASSWORD: 401 /* UNAUTHORIZED */,
256
- DUPLICATE_TOKEN: 409 /* CONFLICT */,
257
- DUPLICATE_USERNAME: 409 /* CONFLICT */,
258
- DUPLICATE_EMAIL: 409 /* CONFLICT */,
259
278
  DUPLICATE: 409 /* CONFLICT */,
260
- EMAIL_NOT_VERIFIED: 400 /* BAD_REQUEST */,
261
- UPDATE_WITHOUT_ID: 400 /* BAD_REQUEST */,
262
- CONNECTION_ERROR: 599 /* NETWORK_CONNECT_TIMEOUT */,
263
- INVALID_PAYMENT: 403 /* FORBIDDEN */,
264
- DECLINED_PAYMENT: 403 /* FORBIDDEN */,
265
- INTEGRATION_ERROR: 500 /* SERVER_ERROR */,
266
- CANNOT_RESERVE: 403 /* FORBIDDEN */,
267
- REFUND_FAILURE: 403 /* FORBIDDEN */,
268
- INVALID_INVOICE: 403 /* FORBIDDEN */,
269
- INVALID_COUPON: 403 /* FORBIDDEN */,
270
- SERVICE_UNAVAILABLE: 503 /* SERVICE_UNAVAILABLE */,
271
- METHOD_UNALLOWED: 405 /* METHOD_NOT_ALLOWED */,
272
- LOGIN_EXPIRED: 401 /* UNAUTHORIZED */,
273
- THIRD_PARTY_ERROR: 400 /* BAD_REQUEST */,
274
- ACCESS_DENIED: 403 /* FORBIDDEN */,
275
- DATABASE_ERROR: 500 /* SERVER_ERROR */,
279
+ CONNECTION_ERROR: 504 /* GATEWAY_TIMEOUT */,
276
280
  SCHEMA_ERROR: 500 /* SERVER_ERROR */,
277
- DATA_INCOMPLETE: 422 /* UNPROCESSABLE_ENTITY */
281
+ DATABASE_ERROR: 500 /* SERVER_ERROR */
278
282
  };
279
283
 
280
284
  // src/restura/validators/ResponseValidator.ts
@@ -2524,7 +2528,7 @@ var PsqlEngine = class extends SqlEngine {
2524
2528
  );
2525
2529
  const whereClause = this.generateWhereClause(req, routeData.where, routeData, sqlParams);
2526
2530
  if (whereClause.replace(/\s/g, "") === "") {
2527
- throw new RsError("DELETE_FORBIDDEN", "Deletes need a where clause");
2531
+ throw new RsError("FORBIDDEN", "Deletes need a where clause");
2528
2532
  }
2529
2533
  const deleteStatement = `
2530
2534
  DELETE FROM "${routeData.table}" ${joinStatement} ${whereClause}`;