@ismael1361/router 1.1.1 → 1.1.3

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.
Files changed (101) hide show
  1. package/dist/HandleError.esm.js +126 -1
  2. package/dist/HandleError.esm.js.map +1 -1
  3. package/dist/HandleError.js +128 -1
  4. package/dist/HandleError.js.map +1 -1
  5. package/dist/Layer.esm.js +250 -1
  6. package/dist/Layer.esm.js.map +1 -1
  7. package/dist/Layer.js +252 -1
  8. package/dist/Layer.js.map +1 -1
  9. package/dist/Middlewares.esm.js +187 -1
  10. package/dist/Middlewares.esm.js.map +1 -1
  11. package/dist/Middlewares.js +194 -1
  12. package/dist/Middlewares.js.map +1 -1
  13. package/dist/handler.esm.js +170 -1
  14. package/dist/handler.esm.js.map +1 -1
  15. package/dist/handler.js +173 -1
  16. package/dist/handler.js.map +1 -1
  17. package/dist/index.esm.js +141 -1
  18. package/dist/index.esm.js.map +1 -1
  19. package/dist/index.js +152 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/middleware.esm.js +151 -1
  22. package/dist/middleware.esm.js.map +1 -1
  23. package/dist/middleware.js +154 -1
  24. package/dist/middleware.js.map +1 -1
  25. package/dist/node_modules/tslib/tslib.es6.esm.js +45 -1
  26. package/dist/node_modules/tslib/tslib.es6.esm.js.map +1 -1
  27. package/dist/node_modules/tslib/tslib.es6.js +48 -1
  28. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  29. package/dist/redocUi/index.esm.js +74 -1
  30. package/dist/redocUi/index.esm.js.map +1 -1
  31. package/dist/redocUi/index.js +76 -1
  32. package/dist/redocUi/index.js.map +1 -1
  33. package/dist/router.esm.js +436 -1
  34. package/dist/router.esm.js.map +1 -1
  35. package/dist/router.js +438 -1
  36. package/dist/router.js.map +1 -1
  37. package/dist/swagger-markdown/index.esm.js +128 -1
  38. package/dist/swagger-markdown/index.esm.js.map +1 -1
  39. package/dist/swagger-markdown/index.js +134 -1
  40. package/dist/swagger-markdown/index.js.map +1 -1
  41. package/dist/swagger-markdown/lib/anchor.esm.js +6 -1
  42. package/dist/swagger-markdown/lib/anchor.esm.js.map +1 -1
  43. package/dist/swagger-markdown/lib/anchor.js +8 -1
  44. package/dist/swagger-markdown/lib/anchor.js.map +1 -1
  45. package/dist/swagger-markdown/lib/inArray.esm.js +20 -1
  46. package/dist/swagger-markdown/lib/inArray.esm.js.map +1 -1
  47. package/dist/swagger-markdown/lib/inArray.js +22 -1
  48. package/dist/swagger-markdown/lib/inArray.js.map +1 -1
  49. package/dist/swagger-markdown/models/schema.esm.js +64 -1
  50. package/dist/swagger-markdown/models/schema.esm.js.map +1 -1
  51. package/dist/swagger-markdown/models/schema.js +66 -1
  52. package/dist/swagger-markdown/models/schema.js.map +1 -1
  53. package/dist/swagger-markdown/transformers/contact.esm.js +23 -1
  54. package/dist/swagger-markdown/transformers/contact.esm.js.map +1 -1
  55. package/dist/swagger-markdown/transformers/contact.js +25 -1
  56. package/dist/swagger-markdown/transformers/contact.js.map +1 -1
  57. package/dist/swagger-markdown/transformers/dataTypes.esm.js +59 -1
  58. package/dist/swagger-markdown/transformers/dataTypes.esm.js.map +1 -1
  59. package/dist/swagger-markdown/transformers/dataTypes.js +61 -1
  60. package/dist/swagger-markdown/transformers/dataTypes.js.map +1 -1
  61. package/dist/swagger-markdown/transformers/definitions.esm.js +75 -1
  62. package/dist/swagger-markdown/transformers/definitions.esm.js.map +1 -1
  63. package/dist/swagger-markdown/transformers/definitions.js +80 -1
  64. package/dist/swagger-markdown/transformers/definitions.js.map +1 -1
  65. package/dist/swagger-markdown/transformers/externalDocs.esm.js +13 -1
  66. package/dist/swagger-markdown/transformers/externalDocs.esm.js.map +1 -1
  67. package/dist/swagger-markdown/transformers/externalDocs.js +15 -1
  68. package/dist/swagger-markdown/transformers/externalDocs.js.map +1 -1
  69. package/dist/swagger-markdown/transformers/info.esm.js +36 -1
  70. package/dist/swagger-markdown/transformers/info.esm.js.map +1 -1
  71. package/dist/swagger-markdown/transformers/info.js +38 -1
  72. package/dist/swagger-markdown/transformers/info.js.map +1 -1
  73. package/dist/swagger-markdown/transformers/license.esm.js +20 -1
  74. package/dist/swagger-markdown/transformers/license.esm.js.map +1 -1
  75. package/dist/swagger-markdown/transformers/license.js +22 -1
  76. package/dist/swagger-markdown/transformers/license.js.map +1 -1
  77. package/dist/swagger-markdown/transformers/path.esm.js +71 -1
  78. package/dist/swagger-markdown/transformers/path.esm.js.map +1 -1
  79. package/dist/swagger-markdown/transformers/path.js +76 -1
  80. package/dist/swagger-markdown/transformers/path.js.map +1 -1
  81. package/dist/swagger-markdown/transformers/pathParameters.esm.js +62 -1
  82. package/dist/swagger-markdown/transformers/pathParameters.esm.js.map +1 -1
  83. package/dist/swagger-markdown/transformers/pathParameters.js +64 -1
  84. package/dist/swagger-markdown/transformers/pathParameters.js.map +1 -1
  85. package/dist/swagger-markdown/transformers/pathResponses.esm.js +45 -1
  86. package/dist/swagger-markdown/transformers/pathResponses.esm.js.map +1 -1
  87. package/dist/swagger-markdown/transformers/pathResponses.js +47 -1
  88. package/dist/swagger-markdown/transformers/pathResponses.js.map +1 -1
  89. package/dist/swagger-markdown/transformers/security.esm.js +41 -1
  90. package/dist/swagger-markdown/transformers/security.esm.js.map +1 -1
  91. package/dist/swagger-markdown/transformers/security.js +43 -1
  92. package/dist/swagger-markdown/transformers/security.js.map +1 -1
  93. package/dist/swagger-markdown/transformers/securityDefinitions.esm.js +51 -1
  94. package/dist/swagger-markdown/transformers/securityDefinitions.esm.js.map +1 -1
  95. package/dist/swagger-markdown/transformers/securityDefinitions.js +57 -1
  96. package/dist/swagger-markdown/transformers/securityDefinitions.js.map +1 -1
  97. package/dist/utils.esm.js +244 -1
  98. package/dist/utils.esm.js.map +1 -1
  99. package/dist/utils.js +256 -1
  100. package/dist/utils.js.map +1 -1
  101. package/package.json +2 -2
@@ -1,2 +1,127 @@
1
- const e={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a Teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"};class t extends Error{constructor(e,t="DEFAULT",o,a="ERROR"){super(e),this.message=e,this.name=t,this.cause=o,this.level=a}get code(){return"number"==typeof this.cause?this.cause:200}get status(){return{code:this.code,message:e[this.code]}}}export{t as HandleError};
1
+ const codes = {
2
+ 100: "Continue",
3
+ 101: "Switching Protocols",
4
+ 102: "Processing",
5
+ 103: "Early Hints",
6
+ 200: "OK",
7
+ 201: "Created",
8
+ 202: "Accepted",
9
+ 203: "Non-Authoritative Information",
10
+ 204: "No Content",
11
+ 205: "Reset Content",
12
+ 206: "Partial Content",
13
+ 207: "Multi-Status",
14
+ 208: "Already Reported",
15
+ 226: "IM Used",
16
+ 300: "Multiple Choices",
17
+ 301: "Moved Permanently",
18
+ 302: "Found",
19
+ 303: "See Other",
20
+ 304: "Not Modified",
21
+ 305: "Use Proxy",
22
+ 307: "Temporary Redirect",
23
+ 308: "Permanent Redirect",
24
+ 400: "Bad Request",
25
+ 401: "Unauthorized",
26
+ 402: "Payment Required",
27
+ 403: "Forbidden",
28
+ 404: "Not Found",
29
+ 405: "Method Not Allowed",
30
+ 406: "Not Acceptable",
31
+ 407: "Proxy Authentication Required",
32
+ 408: "Request Timeout",
33
+ 409: "Conflict",
34
+ 410: "Gone",
35
+ 411: "Length Required",
36
+ 412: "Precondition Failed",
37
+ 413: "Payload Too Large",
38
+ 414: "URI Too Long",
39
+ 415: "Unsupported Media Type",
40
+ 416: "Range Not Satisfiable",
41
+ 417: "Expectation Failed",
42
+ 418: "I'm a Teapot",
43
+ 421: "Misdirected Request",
44
+ 422: "Unprocessable Entity",
45
+ 423: "Locked",
46
+ 424: "Failed Dependency",
47
+ 425: "Too Early",
48
+ 426: "Upgrade Required",
49
+ 428: "Precondition Required",
50
+ 429: "Too Many Requests",
51
+ 431: "Request Header Fields Too Large",
52
+ 451: "Unavailable For Legal Reasons",
53
+ 500: "Internal Server Error",
54
+ 501: "Not Implemented",
55
+ 502: "Bad Gateway",
56
+ 503: "Service Unavailable",
57
+ 504: "Gateway Timeout",
58
+ 505: "HTTP Version Not Supported",
59
+ 506: "Variant Also Negotiates",
60
+ 507: "Insufficient Storage",
61
+ 508: "Loop Detected",
62
+ 510: "Not Extended",
63
+ 511: "Network Authentication Required",
64
+ };
65
+ /**
66
+ * Uma classe de erro personalizada projetada para lidar com erros operacionais em uma aplicação,
67
+ * especialmente em um contexto de API HTTP. Permite encapsular uma mensagem de erro, um nome,
68
+ * um código de status HTTP e um nível de log.
69
+ *
70
+ * @example
71
+ * // Exemplo 1: Erro com mensagem e código de status.
72
+ * try {
73
+ * throw new HandleError("Recurso não encontrado.", "NOT_FOUND", 404);
74
+ * } catch (e) {
75
+ * if (e instanceof HandleError) {
76
+ * // Em um handler de API, você poderia usar e.code para definir o status da resposta.
77
+ * // res.status(e.code).json({ message: e.message, name: e.name });
78
+ * console.log(e.message); // "Recurso não encontrado."
79
+ * console.log(e.name); // "NOT_FOUND"
80
+ * console.log(e.code); // 404
81
+ * console.log(e.status); // { code: 404, message: 'Not Found' }
82
+ * }
83
+ * }
84
+ *
85
+ * // Exemplo 2: Erro de validação com nível de log 'WARN'.
86
+ * const validationError = new HandleError(
87
+ * "O campo 'email' é inválido.",
88
+ * "VALIDATION_ERROR",
89
+ * 400, // Bad Request
90
+ * "WARN"
91
+ * );
92
+ *
93
+ * // Exemplo 3: Erro genérico, usando os valores padrão.
94
+ * const genericError = new HandleError("Algo deu errado.");
95
+ * console.log(genericError.name); // "DEFAULT"
96
+ * console.log(genericError.code); // 200 (comportamento padrão quando 'cause' não é número)
97
+ * console.log(genericError.level); // "ERROR"
98
+ */
99
+ class HandleError extends Error {
100
+ /**
101
+ * @param {string} message A mensagem de erro principal, legível para humanos.
102
+ * @param {string} [name="DEFAULT"] Um nome/código para categorizar o erro (ex: "VALIDATION_ERROR").
103
+ * @param {keyof typeof codes | HandleError | Error | string | object} [cause] A causa raiz do erro. Se for um número, será tratado como um código de status HTTP.
104
+ * @param {"ERROR" | "WARN" | "INFO" | "NONE"} [level="ERROR"] O nível de severidade do erro, usado para controle de logs.
105
+ */
106
+ constructor(message, name = "DEFAULT", cause, level = "ERROR") {
107
+ super(message);
108
+ this.message = message;
109
+ this.name = name;
110
+ this.cause = cause;
111
+ this.level = level;
112
+ }
113
+ /** Retorna o código de status HTTP associado ao erro. Extraído da propriedade `cause` se for um número, caso contrário, o padrão é 200. */
114
+ get code() {
115
+ return typeof this.cause === "number" ? this.cause : 200;
116
+ }
117
+ /** Retorna um objeto contendo o código de status e a mensagem HTTP correspondente. */
118
+ get status() {
119
+ return {
120
+ code: this.code,
121
+ message: codes[this.code],
122
+ };
123
+ }
124
+ }
125
+
126
+ export { HandleError };
2
127
  //# sourceMappingURL=HandleError.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HandleError.esm.js","sources":["../src/HandleError.ts"],"sourcesContent":[null],"names":["codes","HandleError","Error","constructor","message","name","cause","level","super","this","code","status"],"mappings":"AAAA,MAAMA,EAAQ,CACb,IAAK,WACL,IAAK,sBACL,IAAK,aACL,IAAK,cACL,IAAK,KACL,IAAK,UACL,IAAK,WACL,IAAK,gCACL,IAAK,aACL,IAAK,gBACL,IAAK,kBACL,IAAK,eACL,IAAK,mBACL,IAAK,UACL,IAAK,mBACL,IAAK,oBACL,IAAK,QACL,IAAK,YACL,IAAK,eACL,IAAK,YACL,IAAK,qBACL,IAAK,qBACL,IAAK,cACL,IAAK,eACL,IAAK,mBACL,IAAK,YACL,IAAK,YACL,IAAK,qBACL,IAAK,iBACL,IAAK,gCACL,IAAK,kBACL,IAAK,WACL,IAAK,OACL,IAAK,kBACL,IAAK,sBACL,IAAK,oBACL,IAAK,eACL,IAAK,yBACL,IAAK,wBACL,IAAK,qBACL,IAAK,eACL,IAAK,sBACL,IAAK,uBACL,IAAK,SACL,IAAK,oBACL,IAAK,YACL,IAAK,mBACL,IAAK,wBACL,IAAK,oBACL,IAAK,kCACL,IAAK,gCACL,IAAK,wBACL,IAAK,kBACL,IAAK,cACL,IAAK,sBACL,IAAK,kBACL,IAAK,6BACL,IAAK,0BACL,IAAK,uBACL,IAAK,gBACL,IAAK,eACL,IAAK,mCAqCA,MAAOC,UAAoBC,MAOhC,WAAAC,CACUC,EACAC,EAAe,UACfC,EACAC,EAA4C,SAErDC,MAAMJ,GALGK,KAAOL,QAAPA,EACAK,KAAIJ,KAAJA,EACAI,KAAKH,MAALA,EACAG,KAAKF,MAALA,CAGT,CAGD,QAAIG,GACH,MAA6B,iBAAfD,KAAKH,MAAqBG,KAAKH,MAAQ,GACrD,CAGD,UAAIK,GACH,MAAO,CACND,KAAMD,KAAKC,KACXN,QAASJ,EAAMS,KAAKC,MAErB"}
1
+ {"version":3,"file":"HandleError.esm.js","sources":["../src/HandleError.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,2 +1,129 @@
1
- "use strict";const e={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a Teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"};class t extends Error{constructor(e,t="DEFAULT",o,r="ERROR"){super(e),this.message=e,this.name=t,this.cause=o,this.level=r}get code(){return"number"==typeof this.cause?this.cause:200}get status(){return{code:this.code,message:e[this.code]}}}exports.HandleError=t;
1
+ 'use strict';
2
+
3
+ const codes = {
4
+ 100: "Continue",
5
+ 101: "Switching Protocols",
6
+ 102: "Processing",
7
+ 103: "Early Hints",
8
+ 200: "OK",
9
+ 201: "Created",
10
+ 202: "Accepted",
11
+ 203: "Non-Authoritative Information",
12
+ 204: "No Content",
13
+ 205: "Reset Content",
14
+ 206: "Partial Content",
15
+ 207: "Multi-Status",
16
+ 208: "Already Reported",
17
+ 226: "IM Used",
18
+ 300: "Multiple Choices",
19
+ 301: "Moved Permanently",
20
+ 302: "Found",
21
+ 303: "See Other",
22
+ 304: "Not Modified",
23
+ 305: "Use Proxy",
24
+ 307: "Temporary Redirect",
25
+ 308: "Permanent Redirect",
26
+ 400: "Bad Request",
27
+ 401: "Unauthorized",
28
+ 402: "Payment Required",
29
+ 403: "Forbidden",
30
+ 404: "Not Found",
31
+ 405: "Method Not Allowed",
32
+ 406: "Not Acceptable",
33
+ 407: "Proxy Authentication Required",
34
+ 408: "Request Timeout",
35
+ 409: "Conflict",
36
+ 410: "Gone",
37
+ 411: "Length Required",
38
+ 412: "Precondition Failed",
39
+ 413: "Payload Too Large",
40
+ 414: "URI Too Long",
41
+ 415: "Unsupported Media Type",
42
+ 416: "Range Not Satisfiable",
43
+ 417: "Expectation Failed",
44
+ 418: "I'm a Teapot",
45
+ 421: "Misdirected Request",
46
+ 422: "Unprocessable Entity",
47
+ 423: "Locked",
48
+ 424: "Failed Dependency",
49
+ 425: "Too Early",
50
+ 426: "Upgrade Required",
51
+ 428: "Precondition Required",
52
+ 429: "Too Many Requests",
53
+ 431: "Request Header Fields Too Large",
54
+ 451: "Unavailable For Legal Reasons",
55
+ 500: "Internal Server Error",
56
+ 501: "Not Implemented",
57
+ 502: "Bad Gateway",
58
+ 503: "Service Unavailable",
59
+ 504: "Gateway Timeout",
60
+ 505: "HTTP Version Not Supported",
61
+ 506: "Variant Also Negotiates",
62
+ 507: "Insufficient Storage",
63
+ 508: "Loop Detected",
64
+ 510: "Not Extended",
65
+ 511: "Network Authentication Required",
66
+ };
67
+ /**
68
+ * Uma classe de erro personalizada projetada para lidar com erros operacionais em uma aplicação,
69
+ * especialmente em um contexto de API HTTP. Permite encapsular uma mensagem de erro, um nome,
70
+ * um código de status HTTP e um nível de log.
71
+ *
72
+ * @example
73
+ * // Exemplo 1: Erro com mensagem e código de status.
74
+ * try {
75
+ * throw new HandleError("Recurso não encontrado.", "NOT_FOUND", 404);
76
+ * } catch (e) {
77
+ * if (e instanceof HandleError) {
78
+ * // Em um handler de API, você poderia usar e.code para definir o status da resposta.
79
+ * // res.status(e.code).json({ message: e.message, name: e.name });
80
+ * console.log(e.message); // "Recurso não encontrado."
81
+ * console.log(e.name); // "NOT_FOUND"
82
+ * console.log(e.code); // 404
83
+ * console.log(e.status); // { code: 404, message: 'Not Found' }
84
+ * }
85
+ * }
86
+ *
87
+ * // Exemplo 2: Erro de validação com nível de log 'WARN'.
88
+ * const validationError = new HandleError(
89
+ * "O campo 'email' é inválido.",
90
+ * "VALIDATION_ERROR",
91
+ * 400, // Bad Request
92
+ * "WARN"
93
+ * );
94
+ *
95
+ * // Exemplo 3: Erro genérico, usando os valores padrão.
96
+ * const genericError = new HandleError("Algo deu errado.");
97
+ * console.log(genericError.name); // "DEFAULT"
98
+ * console.log(genericError.code); // 200 (comportamento padrão quando 'cause' não é número)
99
+ * console.log(genericError.level); // "ERROR"
100
+ */
101
+ class HandleError extends Error {
102
+ /**
103
+ * @param {string} message A mensagem de erro principal, legível para humanos.
104
+ * @param {string} [name="DEFAULT"] Um nome/código para categorizar o erro (ex: "VALIDATION_ERROR").
105
+ * @param {keyof typeof codes | HandleError | Error | string | object} [cause] A causa raiz do erro. Se for um número, será tratado como um código de status HTTP.
106
+ * @param {"ERROR" | "WARN" | "INFO" | "NONE"} [level="ERROR"] O nível de severidade do erro, usado para controle de logs.
107
+ */
108
+ constructor(message, name = "DEFAULT", cause, level = "ERROR") {
109
+ super(message);
110
+ this.message = message;
111
+ this.name = name;
112
+ this.cause = cause;
113
+ this.level = level;
114
+ }
115
+ /** Retorna o código de status HTTP associado ao erro. Extraído da propriedade `cause` se for um número, caso contrário, o padrão é 200. */
116
+ get code() {
117
+ return typeof this.cause === "number" ? this.cause : 200;
118
+ }
119
+ /** Retorna um objeto contendo o código de status e a mensagem HTTP correspondente. */
120
+ get status() {
121
+ return {
122
+ code: this.code,
123
+ message: codes[this.code],
124
+ };
125
+ }
126
+ }
127
+
128
+ exports.HandleError = HandleError;
2
129
  //# sourceMappingURL=HandleError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HandleError.js","sources":["../src/HandleError.ts"],"sourcesContent":[null],"names":["codes","HandleError","Error","constructor","message","name","cause","level","super","this","code","status"],"mappings":"aAAA,MAAMA,EAAQ,CACb,IAAK,WACL,IAAK,sBACL,IAAK,aACL,IAAK,cACL,IAAK,KACL,IAAK,UACL,IAAK,WACL,IAAK,gCACL,IAAK,aACL,IAAK,gBACL,IAAK,kBACL,IAAK,eACL,IAAK,mBACL,IAAK,UACL,IAAK,mBACL,IAAK,oBACL,IAAK,QACL,IAAK,YACL,IAAK,eACL,IAAK,YACL,IAAK,qBACL,IAAK,qBACL,IAAK,cACL,IAAK,eACL,IAAK,mBACL,IAAK,YACL,IAAK,YACL,IAAK,qBACL,IAAK,iBACL,IAAK,gCACL,IAAK,kBACL,IAAK,WACL,IAAK,OACL,IAAK,kBACL,IAAK,sBACL,IAAK,oBACL,IAAK,eACL,IAAK,yBACL,IAAK,wBACL,IAAK,qBACL,IAAK,eACL,IAAK,sBACL,IAAK,uBACL,IAAK,SACL,IAAK,oBACL,IAAK,YACL,IAAK,mBACL,IAAK,wBACL,IAAK,oBACL,IAAK,kCACL,IAAK,gCACL,IAAK,wBACL,IAAK,kBACL,IAAK,cACL,IAAK,sBACL,IAAK,kBACL,IAAK,6BACL,IAAK,0BACL,IAAK,uBACL,IAAK,gBACL,IAAK,eACL,IAAK,mCAqCA,MAAOC,UAAoBC,MAOhC,WAAAC,CACUC,EACAC,EAAe,UACfC,EACAC,EAA4C,SAErDC,MAAMJ,GALGK,KAAOL,QAAPA,EACAK,KAAIJ,KAAJA,EACAI,KAAKH,MAALA,EACAG,KAAKF,MAALA,CAGT,CAGD,QAAIG,GACH,MAA6B,iBAAfD,KAAKH,MAAqBG,KAAKH,MAAQ,GACrD,CAGD,UAAIK,GACH,MAAO,CACND,KAAMD,KAAKC,KACXN,QAASJ,EAAMS,KAAKC,MAErB"}
1
+ {"version":3,"file":"HandleError.js","sources":["../src/HandleError.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/dist/Layer.esm.js CHANGED
@@ -1,2 +1,251 @@
1
- import{__rest as t,__awaiter as e}from"./node_modules/tslib/tslib.es6.esm.js";import{joinDocs as s,getDocHandles as h,joinPath as r}from"./utils.esm.js";import{EventEmitter as o}from"@ismael1361/utils";class i extends Array{constructor(t="",e={}){super(),this.path=t,this.doc=e,this.__event__=new o,this.index=-1}addListener(t,e){return this.__event__.on(t,e)}removeListener(t,e){return this.__event__.off(t,e)}pushPath(t,e,r,o,n={}){const a=this.length;this.push({path:r,method:e,type:t,handle:o instanceof i?void 0:o,doc:s(this.doc,...o instanceof i?[o.doc]:h(...o),n),route:o instanceof i?o:void 0});const u=this.routes.find(t=>t.index===a);return u&&this.__event__.emit("add",u),Object.assign(Object.assign({},this),{index:a,get doc(){var t;return(null===(t=this[a])||void 0===t?void 0:t.doc)||{}},set doc(t){this[a].doc=t}})}route(...t){const e="string"==typeof t[0]?t[0]:"",s=t[1]instanceof i?t[2]:t[0]instanceof i||"string"==typeof t[0]?t[1]:t[0],h=new i(r(this.path,e),s);if(t[0]instanceof i||t[1]instanceof i){const e=t[0]instanceof i?t[0]:t[1];return this.push({path:"",method:"use",type:"route",route:h}),h.push({path:"",method:"use",type:"route",route:e}),e}return this.push({path:e,method:"use",type:"route",route:h}),h}static route(t,e){return new i(t,e)}by(t,e,s){const h="string"==typeof t?t:t.path,r="string"==typeof t?e:t,o="string"==typeof t?s:e;return this.route(h,r,o),this}get stack(){return Array.from(this).map(e=>{var{route:s}=e,h=t(e,["route"]);return Object.assign(Object.assign({},h),{get route(){return null==s?void 0:s.stack}})})}executeMiddlewares(t,s,h){return e(this,void 0,void 0,function*(){const e=[];let r;this.filter(({type:t})=>"middleware"===t).forEach(({handle:t})=>{e.push(...t||[])});for(let o=0;o<e.length&&!s.headersSent;o++){const i=e[o];r=yield Promise.race([i(t,s,o>=e.length-1?h:()=>{})])}return r})}get routes(){const t=[],e=[],o=[];let i=-1;for(const n of this)switch(i++,n.type){case"middleware":{const t=n.handle||[];e.push(...t),o.push(...h(...t),n.doc||{});break}case"route":n.route.routes.forEach(a=>{const u=[...e,...n.handle||[],...a.handle];t.push({index:i,path:r(n.path||"",a.path),method:a.method,handle:u,doc:s(...o,...h(...u),n.doc||{},a.doc||{})})});break;default:{const r=[...e,...n.handle||[]];t.push({index:i,path:n.path||"",method:n.method,handle:r,doc:s(...o,...h(...r),n.doc||{})});break}}return t}middleware(t,e={}){return this.pushPath("middleware","use",this.path,t,s(this.doc,e))}get(t,e,h={}){return this.pushPath("layer","get",r(this.path,t),e,s(this.doc,h))}post(t,e,h={}){return this.pushPath("layer","post",r(this.path,t),e,s(this.doc,h))}put(t,e,h={}){return this.pushPath("layer","put",r(this.path,t),e,s(this.doc,h))}delete(t,e,h={}){return this.pushPath("layer","delete",r(this.path,t),e,s(this.doc,h))}patch(t,e,h={}){return this.pushPath("layer","patch",r(this.path,t),e,s(this.doc,h))}options(t,e,h={}){return this.pushPath("layer","options",r(this.path,t),e,s(this.doc,h))}head(t,e,h={}){return this.pushPath("layer","head",r(this.path,t),e,s(this.doc,h))}all(t,e,h={}){return this.pushPath("layer","all",r(this.path,t),e,s(this.doc,h))}use(t,e,h={}){return this.pushPath("layer","use",r(this.path,t),e,s(this.doc,h))}}export{i as Layer};
1
+ import { __rest, __awaiter } from './node_modules/tslib/tslib.es6.esm.js';
2
+ import { joinDocs, getDocHandles, joinPath } from './utils.esm.js';
3
+ import { EventEmitter } from '@ismael1361/utils';
4
+
5
+ /**
6
+ * @internal
7
+ * Representa uma camada interna do roteador, funcionando como uma coleção estruturada
8
+ * de definições de rotas e middlewares.
9
+ *
10
+ * Esta classe é o núcleo do sistema de roteamento, permitindo a construção de uma árvore
11
+ * de rotas aninhadas, onde middlewares de camadas superiores são aplicados às camadas inferiores.
12
+ * Ela não deve ser usada diretamente pelo consumidor da biblioteca.
13
+ */
14
+ class Layer extends Array {
15
+ /**
16
+ * @internal
17
+ * @param {string} [path=""] O prefixo de caminho para esta camada.
18
+ * @param {MiddlewareFCDoc} [doc={}] A documentação base para esta camada.
19
+ */
20
+ constructor(path = "", doc = {}) {
21
+ super();
22
+ this.path = path;
23
+ this.doc = doc;
24
+ this.__event__ = new EventEmitter();
25
+ /** @internal O índice da última camada adicionada. */
26
+ this.index = -1;
27
+ }
28
+ /**
29
+ * Adiciona um ouvinte para eventos internos da camada.
30
+ * @param {"add"} event O nome do evento. Atualmente, apenas 'add' é suportado.
31
+ * @param {(route: IRoute) => void} listener A função a ser chamada quando o evento é emitido.
32
+ */
33
+ addListener(event, listener) {
34
+ return this.__event__.on(event, listener);
35
+ }
36
+ /**
37
+ * Remove um ouvinte de eventos.
38
+ * @param {"add"} event O nome do evento.
39
+ * @param {(route: IRoute) => void} listener A função ouvinte a ser removida.
40
+ */
41
+ removeListener(event, listener) {
42
+ return this.__event__.off(event, listener);
43
+ }
44
+ /**
45
+ * @internal
46
+ * Adiciona uma nova definição (camada) à pilha. Este é o método base usado por `get`, `post`, `middleware`, etc.
47
+ * Retorna um objeto semelhante a `this` com um getter/setter para a documentação da camada recém-adicionada.
48
+ */
49
+ pushPath(type, method, path, handle, doc = {}) {
50
+ const index = this.length;
51
+ this.push({
52
+ path,
53
+ method,
54
+ type,
55
+ handle: handle instanceof Layer ? undefined : handle,
56
+ doc: joinDocs(this.doc, ...(handle instanceof Layer ? [handle.doc] : getDocHandles(...handle)), doc),
57
+ route: handle instanceof Layer ? handle : undefined,
58
+ });
59
+ const route = this.routes.find((r) => r.index === index);
60
+ if (route)
61
+ this.__event__.emit("add", route);
62
+ return Object.assign(Object.assign({}, this), { index,
63
+ get doc() {
64
+ var _a;
65
+ return ((_a = this[index]) === null || _a === void 0 ? void 0 : _a.doc) || {};
66
+ },
67
+ set doc(doc) {
68
+ this[index].doc = doc;
69
+ } });
70
+ }
71
+ route(...args) {
72
+ const path = typeof args[0] === "string" ? args[0] : "";
73
+ const doc = args[1] instanceof Layer ? args[2] : args[0] instanceof Layer || typeof args[0] === "string" ? args[1] : args[0];
74
+ const root = new Layer(joinPath(this.path, path), doc);
75
+ if (args[0] instanceof Layer || args[1] instanceof Layer) {
76
+ const route = args[0] instanceof Layer ? args[0] : args[1];
77
+ this.push({ path: "", method: "use", type: "route", route: root });
78
+ root.push({ path: "", method: "use", type: "route", route });
79
+ return route;
80
+ }
81
+ else {
82
+ this.push({ path: path, method: "use", type: "route", route: root });
83
+ }
84
+ return root;
85
+ }
86
+ /**
87
+ * @internal
88
+ * Fábrica estática para criar uma nova instância de `Layer`.
89
+ */
90
+ static route(path, doc) {
91
+ return new Layer(path, doc);
92
+ }
93
+ by(path, route, doc) {
94
+ const _path = typeof path === "string" ? path : path.path;
95
+ const _route = typeof path === "string" ? route : path;
96
+ const _doc = typeof path === "string" ? doc : route;
97
+ this.route(_path, _route, _doc);
98
+ return this;
99
+ }
100
+ /**
101
+ * @internal
102
+ * Retorna uma representação da pilha de camadas para fins de depuração.
103
+ */
104
+ get stack() {
105
+ return Array.from(this).map((_a) => {
106
+ var { route } = _a, props = __rest(_a, ["route"]);
107
+ return Object.assign(Object.assign({}, props), { get route() {
108
+ return route === null || route === void 0 ? void 0 : route.stack;
109
+ } });
110
+ });
111
+ }
112
+ executeMiddlewares(request, response, next) {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ const middlewares = [];
115
+ this.filter(({ type }) => {
116
+ return type === "middleware";
117
+ }).forEach(({ handle }) => {
118
+ middlewares.push(...(handle || []));
119
+ });
120
+ let resolve = undefined;
121
+ for (let i = 0; i < middlewares.length; i++) {
122
+ if (response.headersSent) {
123
+ break;
124
+ }
125
+ const middleware = middlewares[i];
126
+ resolve = yield Promise.race([middleware(request, response, i >= middlewares.length - 1 ? next : () => { })]);
127
+ }
128
+ return resolve;
129
+ });
130
+ }
131
+ /**
132
+ * Processa e achata a árvore de camadas em uma lista linear de rotas finais (`IRoute`).
133
+ * Este getter é fundamental, pois resolve os middlewares aninhados, aplica-os às rotas filhas
134
+ * e consolida os caminhos e a documentação.
135
+ */
136
+ get routes() {
137
+ const routes = [];
138
+ const middlewares = [];
139
+ const docs = [];
140
+ let index = -1;
141
+ for (const layer of this) {
142
+ index++;
143
+ switch (layer.type) {
144
+ case "middleware": {
145
+ const handles = layer.handle || [];
146
+ middlewares.push(...handles);
147
+ docs.push(...getDocHandles(...handles), layer.doc || {});
148
+ break;
149
+ }
150
+ case "route": {
151
+ layer.route.routes.forEach((route) => {
152
+ const handles = [...middlewares, ...(layer.handle || []), ...route.handle];
153
+ routes.push({
154
+ index,
155
+ path: joinPath(layer.path || "", route.path),
156
+ method: route.method,
157
+ handle: handles,
158
+ doc: joinDocs(...docs, ...getDocHandles(...handles), layer.doc || {}, route.doc || {}),
159
+ });
160
+ });
161
+ break;
162
+ }
163
+ default: {
164
+ const handles = [...middlewares, ...(layer.handle || [])];
165
+ routes.push({
166
+ index,
167
+ path: layer.path || "",
168
+ method: layer.method,
169
+ handle: handles,
170
+ doc: joinDocs(...docs, ...getDocHandles(...handles), layer.doc || {}),
171
+ });
172
+ break;
173
+ }
174
+ }
175
+ }
176
+ return routes;
177
+ }
178
+ /**
179
+ * @internal
180
+ * Adiciona um middleware a esta camada.
181
+ */
182
+ middleware(handle, doc = {}) {
183
+ return this.pushPath("middleware", "use", this.path, handle, joinDocs(this.doc, doc));
184
+ }
185
+ /**
186
+ * @internal
187
+ * Adiciona uma rota do tipo GET.
188
+ */
189
+ get(path, handle, doc = {}) {
190
+ return this.pushPath("layer", "get", joinPath(this.path, path), handle, joinDocs(this.doc, doc));
191
+ }
192
+ /**
193
+ * @internal
194
+ * Adiciona uma rota do tipo POST.
195
+ */
196
+ post(path, handle, doc = {}) {
197
+ return this.pushPath("layer", "post", joinPath(this.path, path), handle, joinDocs(this.doc, doc));
198
+ }
199
+ /**
200
+ * @internal
201
+ * Adiciona uma rota do tipo PUT.
202
+ */
203
+ put(path, handle, doc = {}) {
204
+ return this.pushPath("layer", "put", joinPath(this.path, path), handle, joinDocs(this.doc, doc));
205
+ }
206
+ /**
207
+ * @internal
208
+ * Adiciona uma rota do tipo DELETE.
209
+ */
210
+ delete(path, handle, doc = {}) {
211
+ return this.pushPath("layer", "delete", joinPath(this.path, path), handle, joinDocs(this.doc, doc));
212
+ }
213
+ /**
214
+ * @internal
215
+ * Adiciona uma rota do tipo PATCH.
216
+ */
217
+ patch(path, handle, doc = {}) {
218
+ return this.pushPath("layer", "patch", joinPath(this.path, path), handle, joinDocs(this.doc, doc));
219
+ }
220
+ /**
221
+ * @internal
222
+ * Adiciona uma rota do tipo OPTIONS.
223
+ */
224
+ options(path, handle, doc = {}) {
225
+ return this.pushPath("layer", "options", joinPath(this.path, path), handle, joinDocs(this.doc, doc));
226
+ }
227
+ /**
228
+ * @internal
229
+ * Adiciona uma rota do tipo HEAD.
230
+ */
231
+ head(path, handle, doc = {}) {
232
+ return this.pushPath("layer", "head", joinPath(this.path, path), handle, joinDocs(this.doc, doc));
233
+ }
234
+ /**
235
+ * @internal
236
+ * Adiciona uma rota que corresponde a todos os métodos HTTP.
237
+ */
238
+ all(path, handle, doc = {}) {
239
+ return this.pushPath("layer", "all", joinPath(this.path, path), handle, joinDocs(this.doc, doc));
240
+ }
241
+ /**
242
+ * @internal
243
+ * Adiciona um middleware a um caminho específico.
244
+ */
245
+ use(path, handle, doc = {}) {
246
+ return this.pushPath("layer", "use", joinPath(this.path, path), handle, joinDocs(this.doc, doc));
247
+ }
248
+ }
249
+
250
+ export { Layer };
2
251
  //# sourceMappingURL=Layer.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layer.esm.js","sources":["../src/Layer.ts"],"sourcesContent":[null],"names":["Layer","Array","constructor","path","doc","super","this","__event__","EventEmitter","index","addListener","event","listener","on","removeListener","off","pushPath","type","method","handle","length","push","undefined","joinDocs","getDocHandles","route","routes","find","r","emit","Object","assign","_a","args","root","joinPath","by","_path","_route","_doc","stack","from","map","props","__rest","executeMiddlewares","request","response","next","middlewares","resolve","filter","forEach","i","headersSent","middleware","Promise","race","docs","layer","handles","get","post","put","patch","options","head","all","use"],"mappings":"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"}
1
+ {"version":3,"file":"Layer.esm.js","sources":["../src/Layer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}