@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.
- package/esm/actions/error-action.js +25 -0
- package/esm/actions/error-action.js.map +1 -0
- package/esm/actions/get-current-user.js +12 -0
- package/esm/actions/get-current-user.js.map +1 -0
- package/esm/actions/index.js +7 -0
- package/esm/actions/index.js.map +1 -0
- package/esm/actions/is-authenticated.js +13 -0
- package/esm/actions/is-authenticated.js.map +1 -0
- package/esm/actions/login.js +22 -0
- package/esm/actions/login.js.map +1 -0
- package/esm/actions/logout.js +15 -0
- package/esm/actions/logout.js.map +1 -0
- package/esm/actions/not-found-action.js +10 -0
- package/esm/actions/not-found-action.js.map +1 -0
- package/esm/api-manager.js +153 -0
- package/esm/api-manager.js.map +1 -0
- package/esm/authenticate.js +16 -0
- package/esm/authenticate.js.map +1 -0
- package/esm/authorize.js +19 -0
- package/esm/authorize.js.map +1 -0
- package/esm/endpoint-generators/create-delete-endpoint.js +20 -0
- package/esm/endpoint-generators/create-delete-endpoint.js.map +1 -0
- package/esm/endpoint-generators/create-get-collection-endpoint.js +22 -0
- package/esm/endpoint-generators/create-get-collection-endpoint.js.map +1 -0
- package/esm/endpoint-generators/create-get-entity-endpoint.js +25 -0
- package/esm/endpoint-generators/create-get-entity-endpoint.js.map +1 -0
- package/esm/endpoint-generators/create-patch-endpoint.js +22 -0
- package/esm/endpoint-generators/create-patch-endpoint.js.map +1 -0
- package/esm/endpoint-generators/create-post-endpoint.js +25 -0
- package/esm/endpoint-generators/create-post-endpoint.js.map +1 -0
- package/esm/endpoint-generators/index.js +6 -0
- package/esm/endpoint-generators/index.js.map +1 -0
- package/esm/endpoint-generators/utils.js +23 -0
- package/esm/endpoint-generators/utils.js.map +1 -0
- package/esm/helpers.js +28 -0
- package/esm/helpers.js.map +1 -0
- package/esm/http-authentication-settings.js +26 -0
- package/esm/http-authentication-settings.js.map +1 -0
- package/esm/http-user-context.js +168 -0
- package/esm/http-user-context.js.map +1 -0
- package/esm/incoming-message-extensions.js +11 -0
- package/esm/incoming-message-extensions.js.map +1 -0
- package/esm/index.js +19 -0
- package/esm/index.js.map +1 -0
- package/esm/mime-types.js +333 -0
- package/esm/mime-types.js.map +1 -0
- package/esm/models/cors-options.js +2 -0
- package/esm/models/cors-options.js.map +1 -0
- package/esm/models/default-session.js +6 -0
- package/esm/models/default-session.js.map +1 -0
- package/esm/models/index.js +3 -0
- package/esm/models/index.js.map +1 -0
- package/esm/request-action-implementation.js +34 -0
- package/esm/request-action-implementation.js.map +1 -0
- package/esm/schema-validator/index.js +3 -0
- package/esm/schema-validator/index.js.map +1 -0
- package/esm/schema-validator/schema-validation-error.js +11 -0
- package/esm/schema-validator/schema-validation-error.js.map +1 -0
- package/esm/schema-validator/schema-validator.js +31 -0
- package/esm/schema-validator/schema-validator.js.map +1 -0
- package/esm/schema-validator/validate-examples.js +26 -0
- package/esm/schema-validator/validate-examples.js.map +1 -0
- package/esm/server-manager.js +73 -0
- package/esm/server-manager.js.map +1 -0
- package/esm/server-response-extensions.js +12 -0
- package/esm/server-response-extensions.js.map +1 -0
- package/esm/static-server-manager.js +68 -0
- package/esm/static-server-manager.js.map +1 -0
- package/esm/utils.js +70 -0
- package/esm/utils.js.map +1 -0
- package/esm/validate.integration.schema.js +2 -0
- package/esm/validate.integration.schema.js.map +1 -0
- package/esm/validate.integration.spec.schema.json +903 -0
- package/esm/validate.js +43 -0
- package/esm/validate.js.map +1 -0
- package/package.json +9 -9
package/esm/validate.js
ADDED
|
@@ -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.
|
|
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
|
-
"
|
|
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.
|
|
50
|
-
"@furystack/inject": "^8.0.
|
|
51
|
-
"@furystack/repository": "^7.0.
|
|
52
|
-
"@furystack/rest": "^5.0.
|
|
53
|
-
"@furystack/security": "^3.0.
|
|
54
|
-
"@furystack/utils": "^4.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.
|
|
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"
|