@xylabs/express 5.0.83 → 5.0.86

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 (62) hide show
  1. package/README.md +471 -885
  2. package/dist/node/Handler/RouteDefinition/RouteDefinition.d.ts +2 -0
  3. package/dist/node/Handler/RouteDefinition/RouteDefinition.d.ts.map +1 -1
  4. package/dist/node/Handler/RouteDefinition/addRouteDefinitions.d.ts +5 -0
  5. package/dist/node/Handler/RouteDefinition/addRouteDefinitions.d.ts.map +1 -1
  6. package/dist/node/Handler/StatusCodeHandlers/notImplemented.d.ts +1 -0
  7. package/dist/node/Handler/StatusCodeHandlers/notImplemented.d.ts.map +1 -1
  8. package/dist/node/Handler/asyncHandler.d.ts +11 -0
  9. package/dist/node/Handler/asyncHandler.d.ts.map +1 -1
  10. package/dist/node/Handler/errorToJsonHandler.d.ts +7 -0
  11. package/dist/node/Handler/errorToJsonHandler.d.ts.map +1 -1
  12. package/dist/node/Logger/LogFormats/LocalDev/logFormatLocalDev.d.ts +1 -0
  13. package/dist/node/Logger/LogFormats/LocalDev/logFormatLocalDev.d.ts.map +1 -1
  14. package/dist/node/Logger/LogFormats/Rollbar/logFormatRollbar.d.ts +1 -0
  15. package/dist/node/Logger/LogFormats/Rollbar/logFormatRollbar.d.ts.map +1 -1
  16. package/dist/node/Logger/LogFormats/Structured/logFormatStructured.d.ts +1 -0
  17. package/dist/node/Logger/LogFormats/Structured/logFormatStructured.d.ts.map +1 -1
  18. package/dist/node/Logger/LoggerMeta.d.ts +1 -0
  19. package/dist/node/Logger/LoggerMeta.d.ts.map +1 -1
  20. package/dist/node/Logger/LoggerOptions.d.ts +1 -0
  21. package/dist/node/Logger/LoggerOptions.d.ts.map +1 -1
  22. package/dist/node/Logger/LoggerVerbosity.d.ts +1 -0
  23. package/dist/node/Logger/LoggerVerbosity.d.ts.map +1 -1
  24. package/dist/node/Logger/Transports/Rollbar/RollbarTransport.d.ts +1 -0
  25. package/dist/node/Logger/Transports/Rollbar/RollbarTransport.d.ts.map +1 -1
  26. package/dist/node/Logger/Transports/Rollbar/canGetDefaultRollbarTransport.d.ts +5 -0
  27. package/dist/node/Logger/Transports/Rollbar/canGetDefaultRollbarTransport.d.ts.map +1 -1
  28. package/dist/node/Logger/Transports/Rollbar/getDefaultRollbarTransport.d.ts +5 -0
  29. package/dist/node/Logger/Transports/Rollbar/getDefaultRollbarTransport.d.ts.map +1 -1
  30. package/dist/node/Logger/getDefaultLogger.d.ts +4 -0
  31. package/dist/node/Logger/getDefaultLogger.d.ts.map +1 -1
  32. package/dist/node/Logger/getLogger.d.ts +5 -0
  33. package/dist/node/Logger/getLogger.d.ts.map +1 -1
  34. package/dist/node/Logger/toWinstonVerbosity.d.ts +5 -0
  35. package/dist/node/Logger/toWinstonVerbosity.d.ts.map +1 -1
  36. package/dist/node/Model/ExpressError.d.ts +1 -0
  37. package/dist/node/Model/ExpressError.d.ts.map +1 -1
  38. package/dist/node/Performance/Counters.d.ts +1 -0
  39. package/dist/node/Performance/Counters.d.ts.map +1 -1
  40. package/dist/node/Performance/Profiler.d.ts +1 -0
  41. package/dist/node/Performance/Profiler.d.ts.map +1 -1
  42. package/dist/node/Util/compactObject.d.ts +5 -0
  43. package/dist/node/Util/compactObject.d.ts.map +1 -1
  44. package/dist/node/Util/tryParse.d.ts +1 -0
  45. package/dist/node/Util/tryParse.d.ts.map +1 -1
  46. package/dist/node/index.mjs.map +1 -1
  47. package/dist/node/middleware/customPoweredByHeader/customPoweredByHeader.d.ts +1 -0
  48. package/dist/node/middleware/customPoweredByHeader/customPoweredByHeader.d.ts.map +1 -1
  49. package/dist/node/middleware/metrics/counters.d.ts +4 -0
  50. package/dist/node/middleware/metrics/counters.d.ts.map +1 -1
  51. package/dist/node/middleware/standardResponses/getResponseMetadata.d.ts +5 -0
  52. package/dist/node/middleware/standardResponses/getResponseMetadata.d.ts.map +1 -1
  53. package/dist/node/middleware/standardResponses/jsonApi/links.d.ts +3 -0
  54. package/dist/node/middleware/standardResponses/jsonApi/links.d.ts.map +1 -1
  55. package/dist/node/middleware/standardResponses/jsonApi/relationship.d.ts +5 -0
  56. package/dist/node/middleware/standardResponses/jsonApi/relationship.d.ts.map +1 -1
  57. package/dist/node/middleware/standardResponses/jsonApi/response.d.ts +6 -0
  58. package/dist/node/middleware/standardResponses/jsonApi/response.d.ts.map +1 -1
  59. package/dist/node/middleware/standardResponses/standardErrors.d.ts +7 -0
  60. package/dist/node/middleware/standardResponses/standardErrors.d.ts.map +1 -1
  61. package/dist/node/middleware/standardResponses/standardResponses.d.ts.map +1 -1
  62. package/package.json +7 -7
@@ -1,4 +1,5 @@
1
1
  import type { ApiResourceIdentifierObject } from './resourceIdentifier.ts';
2
+ /** A relationship link pointing to the relationship itself. */
2
3
  export interface IRelationshipSelfLink {
3
4
  /**
4
5
  * A link for the relationship itself (a "relationship link"). This link allows the client to directly manipulate the relationship.
@@ -7,12 +8,14 @@ export interface IRelationshipSelfLink {
7
8
  */
8
9
  self: string;
9
10
  }
11
+ /** A relationship link pointing to a related resource. */
10
12
  export interface IRelationshipRelatedLink {
11
13
  /**
12
14
  * A related resource link
13
15
  */
14
16
  related: string;
15
17
  }
18
+ /** Contains the links for a JSON:API relationship. */
16
19
  export interface IRelationshipLinks {
17
20
  links: IRelationshipRelatedLink | IRelationshipSelfLink;
18
21
  }
@@ -25,9 +28,11 @@ export interface IRelationshipLinks {
25
28
  * • an array of resource identifier objects for non-empty to-many relationships.
26
29
  */
27
30
  export type ResourceLinkage = null | [] | ApiResourceIdentifierObject | ApiResourceIdentifierObject[];
31
+ /** Contains the resource linkage data for a JSON:API relationship. */
28
32
  export interface IRelationshipData {
29
33
  data: ResourceLinkage;
30
34
  }
35
+ /** Non-standard metadata associated with a JSON:API relationship. */
31
36
  export type RelationshipMeta = Record<string, unknown>;
32
37
  /**
33
38
  * The value of the relationships key MUST be an object (a "relationships object"). Members of the relationships object ("relationships")
@@ -1 +1 @@
1
- {"version":3,"file":"relationship.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/standardResponses/jsonApi/relationship.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAE1E,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,wBAAwB,GAAG,qBAAqB,CAAA;CACxD;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE,GAAG,2BAA2B,GAAG,2BAA2B,EAAE,CAAA;AACrG,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAA;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEtD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,CAAA"}
1
+ {"version":3,"file":"relationship.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/standardResponses/jsonApi/relationship.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAE1E,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,0DAA0D;AAC1D,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,wBAAwB,GAAG,qBAAqB,CAAA;CACxD;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE,GAAG,2BAA2B,GAAG,2BAA2B,EAAE,CAAA;AACrG,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAA;CACtB;AAED,qEAAqE;AACrE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEtD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,CAAA"}
@@ -6,6 +6,7 @@ import type { ApiError } from './error.ts';
6
6
  import type { ApiLinks } from './links.ts';
7
7
  import type { Relationship } from './relationship.ts';
8
8
  import type { ApiResourceIdentifierObject } from './resourceIdentifier.ts';
9
+ /** A JSON:API resource object with optional attributes, links, meta, and relationships. */
9
10
  export interface ApiResourceObject extends ApiResourceIdentifierObject {
10
11
  /**
11
12
  * An attributes object representing some of the resource's data.
@@ -24,21 +25,26 @@ export interface ApiResourceObject extends ApiResourceIdentifierObject {
24
25
  */
25
26
  relationships?: Record<string, Relationship>;
26
27
  }
28
+ /** JSON:API version and metadata descriptor. */
27
29
  export interface JsonApi {
28
30
  meta?: Record<string, unknown>;
29
31
  version?: '1.0' | '1.1';
30
32
  }
33
+ /** Base interface for all JSON:API responses, including optional links and metadata. */
31
34
  export interface ApiResponseBase {
32
35
  jsonapi?: JsonApi;
33
36
  links?: ApiLinks;
34
37
  meta?: Record<string, unknown>;
35
38
  }
39
+ /** A successful JSON:API response containing primary data and optional included resources. */
36
40
  export interface ApiDataResponse<T extends ApiResourceIdentifierObject> extends ApiResponseBase {
37
41
  data: T;
38
42
  included?: ApiResourceObject[];
39
43
  }
44
+ /** A JSON:API error response containing one or more error objects. */
40
45
  export interface ApiErrorResponse extends ApiResponseBase {
41
46
  errors: ApiError[];
42
47
  }
48
+ /** A JSON:API response, either a data response or an error response. */
43
49
  export type ApiResponse<T extends ApiResourceIdentifierObject> = ApiDataResponse<T> | ApiErrorResponse;
44
50
  //# sourceMappingURL=response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/standardResponses/jsonApi/response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAE1E,MAAM,WAAW,iBAAkB,SAAQ,2BAA2B;IACpE;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,2BAA2B,CAAE,SAAQ,eAAe;IAC7F,IAAI,EAAE,CAAC,CAAA;IACP,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAC/B;AACD,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,MAAM,EAAE,QAAQ,EAAE,CAAA;CACnB;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,2BAA2B,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAA"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/standardResponses/jsonApi/response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAE1E,2FAA2F;AAC3F,MAAM,WAAW,iBAAkB,SAAQ,2BAA2B;IACpE;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAC7C;AAED,gDAAgD;AAChD,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;CACxB;AAED,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,8FAA8F;AAC9F,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,2BAA2B,CAAE,SAAQ,eAAe;IAC7F,IAAI,EAAE,CAAC,CAAA;IACP,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAC/B;AACD,sEAAsE;AACtE,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,MAAM,EAAE,QAAQ,EAAE,CAAA;CACnB;AAED,wEAAwE;AACxE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,2BAA2B,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAA"}
@@ -1,4 +1,11 @@
1
1
  import type { NextFunction, Request, Response } from 'express-serve-static-core';
2
2
  import type { ExpressError } from '../../Model/index.ts';
3
+ /**
4
+ * Express error handler that logs the error and sends a JSON:API-compliant error response.
5
+ * @param err The error to handle, or undefined if no error.
6
+ * @param req The incoming request.
7
+ * @param res The outgoing response.
8
+ * @param next The next middleware function.
9
+ */
3
10
  export declare const standardErrors: (err: ExpressError | undefined, req: Request, res: Response, next: NextFunction) => void;
4
11
  //# sourceMappingURL=standardErrors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"standardErrors.d.ts","sourceRoot":"","sources":["../../../../src/middleware/standardResponses/standardErrors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EAAE,OAAO,EAAE,QAAQ,EAChC,MAAM,2BAA2B,CAAA;AAGlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD,eAAO,MAAM,cAAc,GAAI,KAAK,YAAY,GAAG,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,SAiB5G,CAAA"}
1
+ {"version":3,"file":"standardErrors.d.ts","sourceRoot":"","sources":["../../../../src/middleware/standardResponses/standardErrors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EAAE,OAAO,EAAE,QAAQ,EAChC,MAAM,2BAA2B,CAAA;AAGlC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGxD;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,YAAY,GAAG,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,SAiB5G,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"standardResponses.d.ts","sourceRoot":"","sources":["../../../../src/middleware/standardResponses/standardResponses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACD,cAAc,EAAE,QAAQ,EAClC,MAAM,2BAA2B,CAAA;AASlC;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,QAAQ,KAAG,IAEpD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,QAAQ,KAAG,IAEtD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,QAAQ,KAAG,OAEtD,CAAA;AAiBD;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,EAAE,cAAkE,CAAA"}
1
+ {"version":3,"file":"standardResponses.d.ts","sourceRoot":"","sources":["../../../../src/middleware/standardResponses/standardResponses.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACD,cAAc,EAAE,QAAQ,EAClC,MAAM,2BAA2B,CAAA;AAQlC;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,QAAQ,KAAG,IAEpD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,QAAQ,KAAG,IAEtD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,QAAQ,KAAG,OAEtD,CAAA;AAiBD;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,EAAE,cAAkE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/express",
3
- "version": "5.0.83",
3
+ "version": "5.0.86",
4
4
  "description": "SDK for base code for Api repos that use express and deploy on AWS ECS",
5
5
  "keywords": [
6
6
  "xylabs",
@@ -50,9 +50,9 @@
50
50
  "coverage": "vitest --coverage"
51
51
  },
52
52
  "dependencies": {
53
- "@xylabs/assert": "~5.0.83",
54
- "@xylabs/logger": "~5.0.83",
55
- "@xylabs/typeof": "~5.0.83",
53
+ "@xylabs/assert": "~5.0.86",
54
+ "@xylabs/logger": "~5.0.86",
55
+ "@xylabs/typeof": "~5.0.86",
56
56
  "body-parser": "~2.2.2",
57
57
  "connect": "^3.7.0",
58
58
  "express-mung": "~0.5.1",
@@ -67,9 +67,9 @@
67
67
  "@types/express-mung": "~0.5.5",
68
68
  "@types/express-serve-static-core": "^5.1.1",
69
69
  "@types/node": "~25.4.0",
70
- "@xylabs/ts-scripts-yarn3": "~7.4.11",
71
- "@xylabs/tsconfig": "~7.4.11",
72
- "@xylabs/vitest-extended": "~5.0.83",
70
+ "@xylabs/ts-scripts-yarn3": "~7.4.16",
71
+ "@xylabs/tsconfig": "~7.4.16",
72
+ "@xylabs/vitest-extended": "~5.0.86",
73
73
  "body-parser": "~2.2.2",
74
74
  "express-mung": "~0.5.1",
75
75
  "http-status-codes": "~2.3.0",