@furystack/rest-service 7.0.0 → 7.0.1

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 (76) hide show
  1. package/esm/actions/error-action.js +25 -0
  2. package/esm/actions/error-action.js.map +1 -0
  3. package/esm/actions/get-current-user.js +12 -0
  4. package/esm/actions/get-current-user.js.map +1 -0
  5. package/esm/actions/index.js +7 -0
  6. package/esm/actions/index.js.map +1 -0
  7. package/esm/actions/is-authenticated.js +13 -0
  8. package/esm/actions/is-authenticated.js.map +1 -0
  9. package/esm/actions/login.js +22 -0
  10. package/esm/actions/login.js.map +1 -0
  11. package/esm/actions/logout.js +15 -0
  12. package/esm/actions/logout.js.map +1 -0
  13. package/esm/actions/not-found-action.js +10 -0
  14. package/esm/actions/not-found-action.js.map +1 -0
  15. package/esm/api-manager.js +153 -0
  16. package/esm/api-manager.js.map +1 -0
  17. package/esm/authenticate.js +16 -0
  18. package/esm/authenticate.js.map +1 -0
  19. package/esm/authorize.js +19 -0
  20. package/esm/authorize.js.map +1 -0
  21. package/esm/endpoint-generators/create-delete-endpoint.js +20 -0
  22. package/esm/endpoint-generators/create-delete-endpoint.js.map +1 -0
  23. package/esm/endpoint-generators/create-get-collection-endpoint.js +22 -0
  24. package/esm/endpoint-generators/create-get-collection-endpoint.js.map +1 -0
  25. package/esm/endpoint-generators/create-get-entity-endpoint.js +25 -0
  26. package/esm/endpoint-generators/create-get-entity-endpoint.js.map +1 -0
  27. package/esm/endpoint-generators/create-patch-endpoint.js +22 -0
  28. package/esm/endpoint-generators/create-patch-endpoint.js.map +1 -0
  29. package/esm/endpoint-generators/create-post-endpoint.js +25 -0
  30. package/esm/endpoint-generators/create-post-endpoint.js.map +1 -0
  31. package/esm/endpoint-generators/index.js +6 -0
  32. package/esm/endpoint-generators/index.js.map +1 -0
  33. package/esm/endpoint-generators/utils.js +23 -0
  34. package/esm/endpoint-generators/utils.js.map +1 -0
  35. package/esm/helpers.js +28 -0
  36. package/esm/helpers.js.map +1 -0
  37. package/esm/http-authentication-settings.js +26 -0
  38. package/esm/http-authentication-settings.js.map +1 -0
  39. package/esm/http-user-context.js +168 -0
  40. package/esm/http-user-context.js.map +1 -0
  41. package/esm/incoming-message-extensions.js +11 -0
  42. package/esm/incoming-message-extensions.js.map +1 -0
  43. package/esm/index.js +19 -0
  44. package/esm/index.js.map +1 -0
  45. package/esm/mime-types.js +333 -0
  46. package/esm/mime-types.js.map +1 -0
  47. package/esm/models/cors-options.js +2 -0
  48. package/esm/models/cors-options.js.map +1 -0
  49. package/esm/models/default-session.js +6 -0
  50. package/esm/models/default-session.js.map +1 -0
  51. package/esm/models/index.js +3 -0
  52. package/esm/models/index.js.map +1 -0
  53. package/esm/request-action-implementation.js +34 -0
  54. package/esm/request-action-implementation.js.map +1 -0
  55. package/esm/schema-validator/index.js +3 -0
  56. package/esm/schema-validator/index.js.map +1 -0
  57. package/esm/schema-validator/schema-validation-error.js +11 -0
  58. package/esm/schema-validator/schema-validation-error.js.map +1 -0
  59. package/esm/schema-validator/schema-validator.js +31 -0
  60. package/esm/schema-validator/schema-validator.js.map +1 -0
  61. package/esm/schema-validator/validate-examples.js +26 -0
  62. package/esm/schema-validator/validate-examples.js.map +1 -0
  63. package/esm/server-manager.js +73 -0
  64. package/esm/server-manager.js.map +1 -0
  65. package/esm/server-response-extensions.js +12 -0
  66. package/esm/server-response-extensions.js.map +1 -0
  67. package/esm/static-server-manager.js +68 -0
  68. package/esm/static-server-manager.js.map +1 -0
  69. package/esm/utils.js +70 -0
  70. package/esm/utils.js.map +1 -0
  71. package/esm/validate.integration.schema.js +2 -0
  72. package/esm/validate.integration.schema.js.map +1 -0
  73. package/esm/validate.integration.spec.schema.json +903 -0
  74. package/esm/validate.js +43 -0
  75. package/esm/validate.js.map +1 -0
  76. package/package.json +9 -9
@@ -0,0 +1,43 @@
1
+ import { SchemaValidator } from './schema-validator';
2
+ export const Validate = (validationOptions) => (action) => {
3
+ const schema = { ...validationOptions.schema };
4
+ Object.values(schema.definitions).forEach((definition) => {
5
+ if (definition.required && definition.required.includes('result')) {
6
+ definition.required = definition.required.filter((value) => value !== 'result');
7
+ }
8
+ definition.additionalProperties = true;
9
+ if (definition.properties?.headers) {
10
+ definition.properties.headers.additionalProperties = true;
11
+ }
12
+ });
13
+ const validator = new SchemaValidator(schema, { coerceTypes: true, strict: false });
14
+ return async (args) => {
15
+ const anyArgs = args;
16
+ let body;
17
+ const { headers } = anyArgs;
18
+ const query = anyArgs.getQuery?.();
19
+ const url = anyArgs.getUrlParams?.();
20
+ try {
21
+ body = await anyArgs.getBody?.();
22
+ }
23
+ catch (error) {
24
+ // ignore
25
+ }
26
+ validator.isValid({
27
+ ...(query ? { query } : {}),
28
+ ...(body ? { body } : {}),
29
+ ...(url ? { url } : {}),
30
+ ...(headers ? { headers } : {}),
31
+ }, { schemaName: validationOptions.schemaName });
32
+ return await action({
33
+ request: args.request,
34
+ response: args.response,
35
+ injector: args.injector,
36
+ headers,
37
+ getQuery: () => query,
38
+ getUrlParams: () => url,
39
+ getBody: () => Promise.resolve(body),
40
+ });
41
+ };
42
+ };
43
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,MAAM,CAAC,MAAM,QAAQ,GACnB,CAAkF,iBASjF,EAAE,EAAE,CACL,CAA4B,MAAwB,EAAoB,EAAE;IACxE,MAAM,MAAM,GAAG,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAA;IAE9C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACvD,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACjE,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAA;SACrF;QACD,UAAU,CAAC,oBAAoB,GAAG,IAAI,CAAA;QACtC,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE;YAClC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAA;SAC1D;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IAEnF,OAAO,KAAK,EAAE,IAA6B,EAA4B,EAAE;QACvE,MAAM,OAAO,GAAG,IAAW,CAAA;QAC3B,IAAI,IAAU,CAAA;QACd,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAA;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,CAAA;QACpC,IAAI;YACF,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,CAAA;SACjC;QAAC,OAAO,KAAK,EAAE;YACd,SAAS;SACV;QACD,SAAS,CAAC,OAAO,CACf;YACE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,EACD,EAAE,UAAU,EAAE,iBAAiB,CAAC,UAAU,EAAE,CAC7C,CAAA;QACD,OAAO,MAAM,MAAM,CAAC;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO;YACP,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;YACrB,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG;YACvB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;SAC9B,CAAC,CAAA;IACX,CAAC,CAAA;AACH,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@furystack/rest-service",
3
- "version": "7.0.0",
3
+ "version": "7.0.1",
4
4
  "description": "Repository implementation for FuryStack",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -21,7 +21,7 @@
21
21
  }
22
22
  },
23
23
  "files": [
24
- "dist",
24
+ "esm",
25
25
  "types",
26
26
  "src"
27
27
  ],
@@ -46,19 +46,19 @@
46
46
  },
47
47
  "homepage": "https://github.com/furystack/furystack",
48
48
  "dependencies": {
49
- "@furystack/core": "^12.0.0",
50
- "@furystack/inject": "^8.0.0",
51
- "@furystack/repository": "^7.0.0",
52
- "@furystack/rest": "^5.0.0",
53
- "@furystack/security": "^3.0.0",
54
- "@furystack/utils": "^4.0.0",
49
+ "@furystack/core": "^12.0.1",
50
+ "@furystack/inject": "^8.0.1",
51
+ "@furystack/repository": "^7.0.1",
52
+ "@furystack/rest": "^5.0.1",
53
+ "@furystack/security": "^3.0.1",
54
+ "@furystack/utils": "^4.0.1",
55
55
  "ajv": "^8.12.0",
56
56
  "ajv-formats": "^2.1.1",
57
57
  "path-to-regexp": "^6.2.1",
58
58
  "semaphore-async-await": "^1.5.1"
59
59
  },
60
60
  "devDependencies": {
61
- "@furystack/rest-client-fetch": "^5.0.0",
61
+ "@furystack/rest-client-fetch": "^5.0.1",
62
62
  "@types/node": "^18.15.11",
63
63
  "typescript": "^5.0.4",
64
64
  "vitest": "^0.30.1"