@furystack/rest-service 7.0.0 → 7.0.2
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/{types → esm}/actions/error-action.d.ts +1 -1
- package/{types → esm}/actions/error-action.d.ts.map +1 -1
- package/esm/actions/error-action.js +25 -0
- package/esm/actions/error-action.js.map +1 -0
- package/{types → esm}/actions/get-current-user.d.ts +1 -1
- package/{types → esm}/actions/get-current-user.d.ts.map +1 -1
- package/esm/actions/get-current-user.js +12 -0
- package/esm/actions/get-current-user.js.map +1 -0
- package/esm/actions/index.d.ts +7 -0
- package/esm/actions/index.d.ts.map +1 -0
- package/esm/actions/index.js +7 -0
- package/esm/actions/index.js.map +1 -0
- package/{types → esm}/actions/is-authenticated.d.ts +1 -1
- package/{types → esm}/actions/is-authenticated.d.ts.map +1 -1
- package/esm/actions/is-authenticated.js +13 -0
- package/esm/actions/is-authenticated.js.map +1 -0
- package/{types → esm}/actions/login.d.ts +2 -2
- package/esm/actions/login.d.ts.map +1 -0
- package/esm/actions/login.js +22 -0
- package/esm/actions/login.js.map +1 -0
- package/{types → esm}/actions/logout.d.ts +1 -1
- package/{types → esm}/actions/logout.d.ts.map +1 -1
- package/esm/actions/logout.js +15 -0
- package/esm/actions/logout.js.map +1 -0
- package/{types → esm}/actions/not-found-action.d.ts +1 -1
- package/{types → esm}/actions/not-found-action.d.ts.map +1 -1
- package/esm/actions/not-found-action.js +10 -0
- package/esm/actions/not-found-action.js.map +1 -0
- package/{types → esm}/api-manager.d.ts +4 -4
- package/{types → esm}/api-manager.d.ts.map +1 -1
- package/esm/api-manager.js +153 -0
- package/esm/api-manager.js.map +1 -0
- package/{types → esm}/authenticate.d.ts +1 -1
- package/{types → esm}/authenticate.d.ts.map +1 -1
- package/esm/authenticate.js +16 -0
- package/esm/authenticate.js.map +1 -0
- package/{types → esm}/authorize.d.ts +1 -1
- package/{types → esm}/authorize.d.ts.map +1 -1
- package/esm/authorize.js +19 -0
- package/esm/authorize.js.map +1 -0
- package/{types → esm}/endpoint-generators/create-delete-endpoint.d.ts +1 -1
- package/{types → esm}/endpoint-generators/create-delete-endpoint.d.ts.map +1 -1
- package/esm/endpoint-generators/create-delete-endpoint.js +20 -0
- package/esm/endpoint-generators/create-delete-endpoint.js.map +1 -0
- package/{types → esm}/endpoint-generators/create-get-collection-endpoint.d.ts +1 -1
- package/{types → esm}/endpoint-generators/create-get-collection-endpoint.d.ts.map +1 -1
- package/esm/endpoint-generators/create-get-collection-endpoint.js +22 -0
- package/esm/endpoint-generators/create-get-collection-endpoint.js.map +1 -0
- package/{types → esm}/endpoint-generators/create-get-entity-endpoint.d.ts +1 -1
- package/{types → esm}/endpoint-generators/create-get-entity-endpoint.d.ts.map +1 -1
- package/esm/endpoint-generators/create-get-entity-endpoint.js +25 -0
- package/esm/endpoint-generators/create-get-entity-endpoint.js.map +1 -0
- package/{types → esm}/endpoint-generators/create-patch-endpoint.d.ts +1 -1
- package/{types → esm}/endpoint-generators/create-patch-endpoint.d.ts.map +1 -1
- package/esm/endpoint-generators/create-patch-endpoint.js +22 -0
- package/esm/endpoint-generators/create-patch-endpoint.js.map +1 -0
- package/{types → esm}/endpoint-generators/create-post-endpoint.d.ts +1 -1
- package/{types → esm}/endpoint-generators/create-post-endpoint.d.ts.map +1 -1
- 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.d.ts +6 -0
- package/{types → esm}/endpoint-generators/index.d.ts.map +1 -1
- 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/{types → esm}/helpers.d.ts +4 -4
- package/esm/helpers.d.ts.map +1 -0
- package/esm/helpers.js +28 -0
- package/esm/helpers.js.map +1 -0
- package/{types → esm}/http-authentication-settings.d.ts +1 -1
- package/{types → esm}/http-authentication-settings.d.ts.map +1 -1
- package/esm/http-authentication-settings.js +26 -0
- package/esm/http-authentication-settings.js.map +1 -0
- package/{types → esm}/http-user-context.d.ts +2 -2
- package/{types → esm}/http-user-context.d.ts.map +1 -1
- 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.d.ts +19 -0
- package/esm/index.d.ts.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.d.ts +3 -0
- package/esm/models/index.d.ts.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.d.ts +3 -0
- package/{types → esm}/schema-validator/index.d.ts.map +1 -1
- 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/{types → esm}/server-manager.d.ts +1 -1
- package/esm/server-manager.js +73 -0
- package/esm/server-manager.js.map +1 -0
- package/{types → esm}/server-response-extensions.d.ts +1 -1
- package/{types → esm}/server-response-extensions.d.ts.map +1 -1
- package/esm/server-response-extensions.js +12 -0
- package/esm/server-response-extensions.js.map +1 -0
- package/{types → esm}/static-server-manager.d.ts +1 -1
- package/esm/static-server-manager.js +68 -0
- package/esm/static-server-manager.js.map +1 -0
- package/{types → esm}/utils.d.ts +1 -1
- package/{types → esm}/utils.d.ts.map +1 -1
- package/esm/utils.js +70 -0
- package/esm/utils.js.map +1 -0
- package/{types → esm}/validate.d.ts +1 -1
- package/{types → esm}/validate.d.ts.map +1 -1
- 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 +11 -20
- package/src/actions/error-action.ts +3 -3
- package/src/actions/get-current-user.ts +3 -3
- package/src/actions/index.ts +6 -6
- package/src/actions/is-authenticated.ts +2 -2
- package/src/actions/login.ts +4 -4
- package/src/actions/logout.ts +3 -3
- package/src/actions/not-found-action.ts +2 -2
- package/src/api-manager.ts +10 -9
- package/src/authenticate.ts +3 -3
- package/src/authorize.ts +2 -2
- package/src/endpoint-generators/create-delete-endpoint.ts +2 -2
- package/src/endpoint-generators/create-get-collection-endpoint.ts +2 -2
- package/src/endpoint-generators/create-get-entity-endpoint.ts +2 -2
- package/src/endpoint-generators/create-patch-endpoint.ts +2 -2
- package/src/endpoint-generators/create-post-endpoint.ts +2 -2
- package/src/endpoint-generators/index.ts +5 -5
- package/src/endpoint-generators/utils.ts +1 -1
- package/src/helpers.ts +6 -6
- package/src/http-authentication-settings.ts +1 -1
- package/src/http-user-context.ts +2 -2
- package/src/incoming-message-extensions.ts +1 -1
- package/src/index.ts +18 -18
- package/src/models/index.ts +2 -2
- package/src/schema-validator/index.ts +2 -2
- package/src/schema-validator/schema-validator.ts +3 -3
- package/src/server-response-extensions.ts +1 -1
- package/src/static-server-manager.ts +2 -2
- package/src/utils.ts +1 -1
- package/src/validate.ts +2 -2
- package/types/actions/index.d.ts +0 -7
- package/types/actions/index.d.ts.map +0 -1
- package/types/actions/login.d.ts.map +0 -1
- package/types/endpoint-generators/index.d.ts +0 -6
- package/types/helpers.d.ts.map +0 -1
- package/types/index.d.ts +0 -19
- package/types/index.d.ts.map +0 -1
- package/types/models/index.d.ts +0 -3
- package/types/models/index.d.ts.map +0 -1
- package/types/schema-validator/index.d.ts +0 -3
- /package/{types → esm}/endpoint-generators/utils.d.ts +0 -0
- /package/{types → esm}/endpoint-generators/utils.d.ts.map +0 -0
- /package/{types → esm}/incoming-message-extensions.d.ts +0 -0
- /package/{types → esm}/incoming-message-extensions.d.ts.map +0 -0
- /package/{types → esm}/mime-types.d.ts +0 -0
- /package/{types → esm}/mime-types.d.ts.map +0 -0
- /package/{types → esm}/models/cors-options.d.ts +0 -0
- /package/{types → esm}/models/cors-options.d.ts.map +0 -0
- /package/{types → esm}/models/default-session.d.ts +0 -0
- /package/{types → esm}/models/default-session.d.ts.map +0 -0
- /package/{types → esm}/request-action-implementation.d.ts +0 -0
- /package/{types → esm}/request-action-implementation.d.ts.map +0 -0
- /package/{types → esm}/schema-validator/schema-validation-error.d.ts +0 -0
- /package/{types → esm}/schema-validator/schema-validation-error.d.ts.map +0 -0
- /package/{types → esm}/schema-validator/schema-validator.d.ts +0 -0
- /package/{types → esm}/schema-validator/schema-validator.d.ts.map +0 -0
- /package/{types → esm}/schema-validator/validate-examples.d.ts +0 -0
- /package/{types → esm}/schema-validator/validate-examples.d.ts.map +0 -0
- /package/{types → esm}/server-manager.d.ts.map +0 -0
- /package/{types → esm}/static-server-manager.d.ts.map +0 -0
- /package/{types → esm}/validate.integration.schema.d.ts +0 -0
- /package/{types → esm}/validate.integration.schema.d.ts.map +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RequestError } from '@furystack/rest';
|
|
2
|
+
import '@furystack/repository';
|
|
3
|
+
import { JsonResult } from '../request-action-implementation.js';
|
|
4
|
+
import { getRepository } from '@furystack/repository';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a simple Get Entity endpoint for a specified model.
|
|
7
|
+
* @param options The options for endpoint creation
|
|
8
|
+
* @param options.model The entity model, should have a Repository DataSet
|
|
9
|
+
* @param options.primaryKey The field name used as primary key on the model
|
|
10
|
+
* @returns The generated endpoint
|
|
11
|
+
*/
|
|
12
|
+
export const createGetEntityEndpoint = (options) => {
|
|
13
|
+
const endpoint = async ({ injector, getUrlParams, getQuery }) => {
|
|
14
|
+
const { id } = getUrlParams();
|
|
15
|
+
const { select } = getQuery();
|
|
16
|
+
const dataSet = getRepository(injector).getDataSetFor(options.model, options.primaryKey);
|
|
17
|
+
const entry = await dataSet.get(injector, id, select);
|
|
18
|
+
if (!entry) {
|
|
19
|
+
throw new RequestError('Entity not found', 404);
|
|
20
|
+
}
|
|
21
|
+
return JsonResult(entry);
|
|
22
|
+
};
|
|
23
|
+
return endpoint;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=create-get-entity-endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-get-entity-endpoint.js","sourceRoot":"","sources":["../../src/endpoint-generators/create-get-entity-endpoint.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,uBAAuB,CAAA;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAgD,OAGtF,EAAE,EAAE;IACH,MAAM,QAAQ,GAAqD,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE;QAChH,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAA;QAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;QAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QACxF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;QACrD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;SAChD;QACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC,CAAA;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
|
|
@@ -2,7 +2,7 @@ import type { Constructable } from '@furystack/inject';
|
|
|
2
2
|
import type { PatchEndpoint } from '@furystack/rest';
|
|
3
3
|
import '@furystack/repository';
|
|
4
4
|
import '../incoming-message-extensions';
|
|
5
|
-
import type { RequestAction } from '../request-action-implementation';
|
|
5
|
+
import type { RequestAction } from '../request-action-implementation.js';
|
|
6
6
|
import type { WithOptionalId } from '@furystack/core';
|
|
7
7
|
/**
|
|
8
8
|
* Creates a PATCH endpoint for updating entities
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-patch-endpoint.d.ts","sourceRoot":"","sources":["../../src/endpoint-generators/create-patch-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,uBAAuB,CAAA;AAC9B,OAAO,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"create-patch-endpoint.d.ts","sourceRoot":"","sources":["../../src/endpoint-generators/create-patch-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,uBAAuB,CAAA;AAC9B,OAAO,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;;;iEAoB/B,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import '@furystack/repository';
|
|
2
|
+
import '../incoming-message-extensions';
|
|
3
|
+
import { JsonResult } from '../request-action-implementation.js';
|
|
4
|
+
import { getRepository } from '@furystack/repository';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a PATCH endpoint for updating entities
|
|
7
|
+
* @param options The options for endpoint creation
|
|
8
|
+
* @param options.model The Model class
|
|
9
|
+
* @param options.primaryKey The field name that is used as primary key on the model
|
|
10
|
+
* @returns a boolean that indicates the success
|
|
11
|
+
*/
|
|
12
|
+
export const createPatchEndpoint = (options) => {
|
|
13
|
+
const endpoint = async ({ injector, request, getUrlParams, }) => {
|
|
14
|
+
const { id } = getUrlParams();
|
|
15
|
+
const patchData = await request.readPostBody();
|
|
16
|
+
const dataSet = getRepository(injector).getDataSetFor(options.model, options.primaryKey);
|
|
17
|
+
await dataSet.update(injector, id, patchData);
|
|
18
|
+
return JsonResult({});
|
|
19
|
+
};
|
|
20
|
+
return endpoint;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=create-patch-endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-patch-endpoint.js","sourceRoot":"","sources":["../../src/endpoint-generators/create-patch-endpoint.ts"],"names":[],"mappings":"AAEA,OAAO,uBAAuB,CAAA;AAC9B,OAAO,gCAAgC,CAAA;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGrD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAIjC,OAGD,EAAE,EAAE;IACH,MAAM,QAAQ,GAAgE,KAAK,EAAE,EACnF,QAAQ,EACR,OAAO,EACP,YAAY,GACb,EAAE,EAAE;QACH,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAA;QAC7B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,EAAK,CAAA;QACjD,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QACxF,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;QAC7C,OAAO,UAAU,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAA;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
|
|
@@ -2,7 +2,7 @@ import type { Constructable } from '@furystack/inject';
|
|
|
2
2
|
import type { PostEndpoint } from '@furystack/rest';
|
|
3
3
|
import '@furystack/repository';
|
|
4
4
|
import '../incoming-message-extensions';
|
|
5
|
-
import type { RequestAction } from '../request-action-implementation';
|
|
5
|
+
import type { RequestAction } from '../request-action-implementation.js';
|
|
6
6
|
import type { WithOptionalId } from '@furystack/core';
|
|
7
7
|
/**
|
|
8
8
|
* Creates a POST endpoint for updating entities
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-post-endpoint.d.ts","sourceRoot":"","sources":["../../src/endpoint-generators/create-post-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,uBAAuB,CAAA;AAC9B,OAAO,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"create-post-endpoint.d.ts","sourceRoot":"","sources":["../../src/endpoint-generators/create-post-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,uBAAuB,CAAA;AAC9B,OAAO,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;gEAsB9B,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RequestError } from '@furystack/rest';
|
|
2
|
+
import '@furystack/repository';
|
|
3
|
+
import '../incoming-message-extensions';
|
|
4
|
+
import { JsonResult } from '../request-action-implementation.js';
|
|
5
|
+
import { getRepository } from '@furystack/repository';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a POST endpoint for updating entities
|
|
8
|
+
* @param options The options for endpoint creation
|
|
9
|
+
* @param options.model The Model class
|
|
10
|
+
* @param options.primaryKey The field name used as primary key
|
|
11
|
+
* @returns a boolean that indicates the success
|
|
12
|
+
*/
|
|
13
|
+
export const createPostEndpoint = (options) => {
|
|
14
|
+
const endpoint = async ({ injector, request }) => {
|
|
15
|
+
const dataSet = getRepository(injector).getDataSetFor(options.model, options.primaryKey);
|
|
16
|
+
const entityToCreate = await request.readPostBody();
|
|
17
|
+
const { created } = await dataSet.add(injector, entityToCreate);
|
|
18
|
+
if (!created || !created.length) {
|
|
19
|
+
throw new RequestError('Entity not found', 404);
|
|
20
|
+
}
|
|
21
|
+
return JsonResult(created[0], 201);
|
|
22
|
+
};
|
|
23
|
+
return endpoint;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=create-post-endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-post-endpoint.js","sourceRoot":"","sources":["../../src/endpoint-generators/create-post-endpoint.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,uBAAuB,CAAA;AAC9B,OAAO,gCAAgC,CAAA;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAIhC,OAGD,EAAE,EAAE;IACH,MAAM,QAAQ,GAA+D,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3G,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,aAAa,CACnD,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,UAAU,CACnB,CAAA;QAED,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,YAAY,EAAiB,CAAA;QAClE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;QAC/D,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC/B,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;SAChD;QACD,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC,CAAA;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './create-delete-endpoint.js';
|
|
2
|
+
export * from './create-get-collection-endpoint.js';
|
|
3
|
+
export * from './create-get-entity-endpoint.js';
|
|
4
|
+
export * from './create-patch-endpoint.js';
|
|
5
|
+
export * from './create-post-endpoint.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoint-generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoint-generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qCAAqC,CAAA;AACnD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './create-delete-endpoint.js';
|
|
2
|
+
export * from './create-get-collection-endpoint.js';
|
|
3
|
+
export * from './create-get-entity-endpoint.js';
|
|
4
|
+
export * from './create-patch-endpoint.js';
|
|
5
|
+
export * from './create-post-endpoint.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/endpoint-generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qCAAqC,CAAA;AACnD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { addStore, InMemoryStore, User } from '@furystack/core';
|
|
2
|
+
import { DefaultSession } from '../models/default-session.js';
|
|
3
|
+
import '@furystack/repository';
|
|
4
|
+
import '../helpers';
|
|
5
|
+
import { getRepository } from '@furystack/repository';
|
|
6
|
+
export class MockClass {
|
|
7
|
+
}
|
|
8
|
+
export const setupContext = (i) => {
|
|
9
|
+
addStore(i, new InMemoryStore({
|
|
10
|
+
model: MockClass,
|
|
11
|
+
primaryKey: 'id',
|
|
12
|
+
}))
|
|
13
|
+
.addStore(new InMemoryStore({
|
|
14
|
+
model: User,
|
|
15
|
+
primaryKey: 'username',
|
|
16
|
+
}))
|
|
17
|
+
.addStore(new InMemoryStore({
|
|
18
|
+
model: DefaultSession,
|
|
19
|
+
primaryKey: 'sessionId',
|
|
20
|
+
}));
|
|
21
|
+
getRepository(i).createDataSet(MockClass, 'id');
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/endpoint-generators/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,uBAAuB,CAAA;AAC9B,OAAO,YAAY,CAAA;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,MAAM,OAAO,SAAS;CAGrB;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAW,EAAE,EAAE;IAC1C,QAAQ,CACN,CAAC,EACD,IAAI,aAAa,CAAC;QAChB,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,IAAI;KACjB,CAAC,CACH;SACE,QAAQ,CACP,IAAI,aAAa,CAAC;QAChB,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,UAAU;KACvB,CAAC,CACH;SACA,QAAQ,CACP,IAAI,aAAa,CAAC;QAChB,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,WAAW;KACxB,CAAC,CACH,CAAA;IACH,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACjD,CAAC,CAAA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { User } from '@furystack/core';
|
|
2
2
|
import type { Injector } from '@furystack/inject';
|
|
3
|
-
import { HttpAuthenticationSettings } from './http-authentication-settings';
|
|
3
|
+
import { HttpAuthenticationSettings } from './http-authentication-settings.js';
|
|
4
4
|
import type { RestApi } from '@furystack/rest';
|
|
5
|
-
import type { ImplementApiOptions } from './api-manager';
|
|
6
|
-
import type { DefaultSession } from './models/default-session';
|
|
7
|
-
import type { StaticServerOptions } from './static-server-manager';
|
|
5
|
+
import type { ImplementApiOptions } from './api-manager.js';
|
|
6
|
+
import type { DefaultSession } from './models/default-session.js';
|
|
7
|
+
import type { StaticServerOptions } from './static-server-manager.js';
|
|
8
8
|
/**
|
|
9
9
|
* Sets up the @furystack/rest-service with the provided settings
|
|
10
10
|
* @param api The API implementation details
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAGrE;;;;GAIG;AACH,eAAO,MAAM,cAAc,mEACoC,CAAA;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,kEACtB,QAAQ,sFAE+F,CAAA;AAEnH;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,YAAa;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAAG,mBAAmB,kBAGnF,CAAA"}
|
package/esm/helpers.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { HttpAuthenticationSettings } from './http-authentication-settings.js';
|
|
2
|
+
import { ApiManager } from './api-manager.js';
|
|
3
|
+
import { StaticServerManager } from './static-server-manager.js';
|
|
4
|
+
/**
|
|
5
|
+
* Sets up the @furystack/rest-service with the provided settings
|
|
6
|
+
* @param api The API implementation details
|
|
7
|
+
* @returns a promise that resolves when the API is added to the server
|
|
8
|
+
*/
|
|
9
|
+
export const useRestService = async (api) => await api.injector.getInstance(ApiManager).addApi({ ...api });
|
|
10
|
+
/**
|
|
11
|
+
* Sets up the HTTP Authentication
|
|
12
|
+
* @param injector The Injector instance
|
|
13
|
+
* @param settings Settings for HTTP Authentication
|
|
14
|
+
* @returns void
|
|
15
|
+
*/
|
|
16
|
+
export const useHttpAuthentication = (injector, settings) => injector.setExplicitInstance({ ...new HttpAuthenticationSettings(), ...settings }, HttpAuthenticationSettings);
|
|
17
|
+
/**
|
|
18
|
+
* Sets up a static file server
|
|
19
|
+
* @param options The settings for the static file server
|
|
20
|
+
* @param options.injector The Injector instance
|
|
21
|
+
* @param options.settings Settings for the static file server
|
|
22
|
+
* @returns a promise that resolves when the server is ready
|
|
23
|
+
*/
|
|
24
|
+
export const useStaticFiles = (options) => {
|
|
25
|
+
const { injector, ...settings } = options;
|
|
26
|
+
return injector.getInstance(StaticServerManager).addStaticSite(settings);
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAG9E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAqB,GAA2B,EAAE,EAAE,CACrF,MAAM,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAAkB,EAClB,QAA+D,EAC/D,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,0BAA0B,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,0BAA0B,CAAC,CAAA;AAEnH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAqD,EAAE,EAAE;IACtF,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAA;IACzC,OAAO,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AAC1E,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PhysicalStore, StoreManager } from '@furystack/core';
|
|
2
2
|
import { User } from '@furystack/core';
|
|
3
3
|
import type { Constructable } from '@furystack/inject';
|
|
4
|
-
import { DefaultSession } from './models/default-session';
|
|
4
|
+
import { DefaultSession } from './models/default-session.js';
|
|
5
5
|
/**
|
|
6
6
|
* Authentication settings object for FuryStack HTTP Api
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-authentication-settings.d.ts","sourceRoot":"","sources":["../src/http-authentication-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"http-authentication-settings.d.ts","sourceRoot":"","sources":["../src/http-authentication-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE5D;;GAEG;AACH,qBACa,0BAA0B,CAAC,KAAK,SAAS,IAAI,EAAE,QAAQ,SAAS,cAAc;IAClF,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAA+B;IAE1D,YAAY,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,aAAa,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CACzB;IAEtD,eAAe,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,aAAa,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAC,CACI;IAE5F,UAAU,SAAQ;IAClB,eAAe,UAAO;CAC9B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { User } from '@furystack/core';
|
|
8
|
+
import { Injectable } from '@furystack/inject';
|
|
9
|
+
import { DefaultSession } from './models/default-session.js';
|
|
10
|
+
/**
|
|
11
|
+
* Authentication settings object for FuryStack HTTP Api
|
|
12
|
+
*/
|
|
13
|
+
let HttpAuthenticationSettings = class HttpAuthenticationSettings {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.model = User;
|
|
16
|
+
this.getUserStore = (sm) => sm.getStoreFor(User, 'username');
|
|
17
|
+
this.getSessionStore = (sm) => sm.getStoreFor(DefaultSession, 'sessionId');
|
|
18
|
+
this.cookieName = 'fss';
|
|
19
|
+
this.enableBasicAuth = true;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
HttpAuthenticationSettings = __decorate([
|
|
23
|
+
Injectable({ lifetime: 'singleton' })
|
|
24
|
+
], HttpAuthenticationSettings);
|
|
25
|
+
export { HttpAuthenticationSettings };
|
|
26
|
+
//# sourceMappingURL=http-authentication-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-authentication-settings.js","sourceRoot":"","sources":["../src/http-authentication-settings.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE5D;;GAEG;AAEH,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;IAAvC;QACS,UAAK,GAAyB,IAA4B,CAAA;QAE1D,iBAAY,GAAsE,CAAC,EAAE,EAAE,EAAE,CAC9F,EAAE,CAAC,WAAW,CAAqB,IAAW,EAAE,UAAU,CAAC,CAAA;QAEtD,oBAAe,GAA4E,CAAC,EAAE,EAAE,EAAE,CACvG,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE,WAAW,CAAuD,CAAA;QAE5F,eAAU,GAAG,KAAK,CAAA;QAClB,oBAAe,GAAG,IAAI,CAAA;IAC/B,CAAC;CAAA,CAAA;AAXY,0BAA0B;IADtC,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;GACzB,0BAA0B,CAWtC;SAXY,0BAA0B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from 'http';
|
|
2
2
|
import type { User } from '@furystack/core';
|
|
3
|
-
import { HttpAuthenticationSettings } from './http-authentication-settings';
|
|
4
|
-
import type { DefaultSession } from './models/default-session';
|
|
3
|
+
import { HttpAuthenticationSettings } from './http-authentication-settings.js';
|
|
4
|
+
import type { DefaultSession } from './models/default-session.js';
|
|
5
5
|
/**
|
|
6
6
|
* Injectable UserContext for FuryStack HTTP Api
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-user-context.d.ts","sourceRoot":"","sources":["../src/http-user-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAG3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"http-user-context.d.ts","sourceRoot":"","sources":["../src/http-user-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAG3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAIjE;;GAEG;AACH,qBACa,eAAe;IACnB,YAAY,8HAA4D;IAExE,eAAe,sKAA+D;IAErF,OAAO,CAAC,aAAa,CAOpB;IAED,OAAO,CAAC,cAAc,CAOrB;IAED,OAAO,CAAC,IAAI,CAAC,CAAM;IAEnB;;;OAGG;IACU,eAAe,CAAC,OAAO,EAAE,eAAe;IASrD;;;;;OAKG;IACU,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAUzF;;;;;OAKG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAanD,cAAc,CAAC,OAAO,EAAE,eAAe;IAQ7C,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI;IAkB1D,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBzE;;;;;OAKG;IACU,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtE,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc;IAW5E,SACgB,cAAc,EAAG,0BAA0B,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAGjF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAG5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;CACvD"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { StoreManager } from '@furystack/core';
|
|
11
|
+
import { Injectable, Injected } from '@furystack/inject';
|
|
12
|
+
import { HttpAuthenticationSettings } from './http-authentication-settings.js';
|
|
13
|
+
import { PasswordAuthenticator, UnauthenticatedError } from '@furystack/security';
|
|
14
|
+
import { randomBytes } from 'crypto';
|
|
15
|
+
/**
|
|
16
|
+
* Injectable UserContext for FuryStack HTTP Api
|
|
17
|
+
*/
|
|
18
|
+
let HttpUserContext = class HttpUserContext {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.getUserStore = () => this.authentication.getUserStore(this.storeManager);
|
|
21
|
+
this.getSessionStore = () => this.authentication.getSessionStore(this.storeManager);
|
|
22
|
+
this.getUserByName = async (userName) => {
|
|
23
|
+
const userStore = this.getUserStore();
|
|
24
|
+
const users = await userStore.find({ filter: { username: { $eq: userName } }, top: 2 });
|
|
25
|
+
if (users.length !== 1) {
|
|
26
|
+
throw new UnauthenticatedError();
|
|
27
|
+
}
|
|
28
|
+
return users[0];
|
|
29
|
+
};
|
|
30
|
+
this.getSessionById = async (sessionId) => {
|
|
31
|
+
const sessionStore = this.getSessionStore();
|
|
32
|
+
const sessions = await sessionStore.find({ filter: { sessionId: { $eq: sessionId } }, top: 2 });
|
|
33
|
+
if (sessions.length !== 1) {
|
|
34
|
+
throw new UnauthenticatedError();
|
|
35
|
+
}
|
|
36
|
+
return sessions[0];
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @param request The request to be authenticated
|
|
41
|
+
* @returns if the current user is authenticated
|
|
42
|
+
*/
|
|
43
|
+
async isAuthenticated(request) {
|
|
44
|
+
try {
|
|
45
|
+
const currentUser = await this.getCurrentUser(request);
|
|
46
|
+
return currentUser !== null;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Returns if the current user can be authorized with ALL of the specified roles
|
|
54
|
+
* @param request The request to be authenticated
|
|
55
|
+
* @param roles The list of roles to authorize
|
|
56
|
+
* @returns a boolean value that indicates if the user is authenticated
|
|
57
|
+
*/
|
|
58
|
+
async isAuthorized(request, ...roles) {
|
|
59
|
+
const currentUser = await this.getCurrentUser(request);
|
|
60
|
+
for (const role of roles) {
|
|
61
|
+
if (!currentUser || !currentUser.roles.some((c) => c === role)) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Checks if the system contains a user with the provided name and password, throws an error otherwise
|
|
69
|
+
* @param userName The username
|
|
70
|
+
* @param password The password
|
|
71
|
+
* @returns the authenticated User
|
|
72
|
+
*/
|
|
73
|
+
async authenticateUser(userName, password) {
|
|
74
|
+
const result = await this.authenticator.checkPasswordForUser(userName, password);
|
|
75
|
+
if (!result.isValid) {
|
|
76
|
+
throw new UnauthenticatedError();
|
|
77
|
+
}
|
|
78
|
+
const user = await this.getUserByName(userName);
|
|
79
|
+
if (!user) {
|
|
80
|
+
throw new UnauthenticatedError();
|
|
81
|
+
}
|
|
82
|
+
return user;
|
|
83
|
+
}
|
|
84
|
+
async getCurrentUser(request) {
|
|
85
|
+
if (!this.user) {
|
|
86
|
+
this.user = await this.authenticateRequest(request);
|
|
87
|
+
return this.user;
|
|
88
|
+
}
|
|
89
|
+
return this.user;
|
|
90
|
+
}
|
|
91
|
+
getSessionIdFromRequest(request) {
|
|
92
|
+
if (request.headers.cookie) {
|
|
93
|
+
const cookies = request.headers.cookie
|
|
94
|
+
.toString()
|
|
95
|
+
.split(';')
|
|
96
|
+
.filter((val) => val.length > 0)
|
|
97
|
+
.map((val) => {
|
|
98
|
+
const [name, value] = val.split('=');
|
|
99
|
+
return { name: name.trim(), value: value.trim() };
|
|
100
|
+
});
|
|
101
|
+
const sessionCookie = cookies.find((c) => c.name === this.authentication.cookieName);
|
|
102
|
+
if (sessionCookie) {
|
|
103
|
+
return sessionCookie.value;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
async authenticateRequest(request) {
|
|
109
|
+
// Basic auth
|
|
110
|
+
if (this.authentication.enableBasicAuth && request.headers.authorization) {
|
|
111
|
+
const authData = Buffer.from(request.headers.authorization.toString().split(' ')[1], 'base64');
|
|
112
|
+
const [userName, password] = authData.toString().split(':');
|
|
113
|
+
return await this.authenticateUser(userName, password);
|
|
114
|
+
}
|
|
115
|
+
// Cookie auth
|
|
116
|
+
const sessionId = this.getSessionIdFromRequest(request);
|
|
117
|
+
if (sessionId) {
|
|
118
|
+
const session = await this.getSessionById(sessionId);
|
|
119
|
+
if (session) {
|
|
120
|
+
const user = await this.getUserByName(session.username);
|
|
121
|
+
if (user) {
|
|
122
|
+
return user;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
throw new UnauthenticatedError();
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Creates and sets up a cookie-based session for the provided user
|
|
130
|
+
* @param user The user to create a session for
|
|
131
|
+
* @param serverResponse A serverResponse to set the cookie
|
|
132
|
+
* @returns the current User
|
|
133
|
+
*/
|
|
134
|
+
async cookieLogin(user, serverResponse) {
|
|
135
|
+
const sessionId = randomBytes(32).toString('hex');
|
|
136
|
+
await this.getSessionStore().add({ sessionId, username: user.username });
|
|
137
|
+
serverResponse.setHeader('Set-Cookie', `${this.authentication.cookieName}=${sessionId}; Path=/; HttpOnly`);
|
|
138
|
+
this.user = user;
|
|
139
|
+
return user;
|
|
140
|
+
}
|
|
141
|
+
async cookieLogout(request, response) {
|
|
142
|
+
const sessionId = this.getSessionIdFromRequest(request);
|
|
143
|
+
response.setHeader('Set-Cookie', `${this.authentication.cookieName}=; Path=/; HttpOnly`);
|
|
144
|
+
this.user = undefined;
|
|
145
|
+
if (sessionId) {
|
|
146
|
+
const sessionStore = this.getSessionStore();
|
|
147
|
+
const sessions = await sessionStore.find({ filter: { sessionId: { $eq: sessionId } } });
|
|
148
|
+
await this.getSessionStore().remove(...sessions.map((s) => s[sessionStore.primaryKey]));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
__decorate([
|
|
153
|
+
Injected(HttpAuthenticationSettings),
|
|
154
|
+
__metadata("design:type", HttpAuthenticationSettings)
|
|
155
|
+
], HttpUserContext.prototype, "authentication", void 0);
|
|
156
|
+
__decorate([
|
|
157
|
+
Injected(StoreManager),
|
|
158
|
+
__metadata("design:type", StoreManager)
|
|
159
|
+
], HttpUserContext.prototype, "storeManager", void 0);
|
|
160
|
+
__decorate([
|
|
161
|
+
Injected(PasswordAuthenticator),
|
|
162
|
+
__metadata("design:type", PasswordAuthenticator)
|
|
163
|
+
], HttpUserContext.prototype, "authenticator", void 0);
|
|
164
|
+
HttpUserContext = __decorate([
|
|
165
|
+
Injectable({ lifetime: 'scoped' })
|
|
166
|
+
], HttpUserContext);
|
|
167
|
+
export { HttpUserContext };
|
|
168
|
+
//# sourceMappingURL=http-user-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-user-context.js","sourceRoot":"","sources":["../src/http-user-context.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAE9E,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEpC;;GAEG;AAEH,IAAa,eAAe,GAA5B,MAAa,eAAe;IAA5B;QACS,iBAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAExE,oBAAe,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAE7E,kBAAa,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;YACrC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;YACvF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,MAAM,IAAI,oBAAoB,EAAE,CAAA;aACjC;YACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,CAAA;QAEO,mBAAc,GAAG,KAAK,EAAE,SAAiB,EAAE,EAAE;YACnD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;YAC3C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;YAC/F,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,MAAM,IAAI,oBAAoB,EAAE,CAAA;aACjC;YACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC,CAAA;IAsIH,CAAC;IAlIC;;;OAGG;IACI,KAAK,CAAC,eAAe,CAAC,OAAwB;QACnD,IAAI;YACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;YACtD,OAAO,WAAW,KAAK,IAAI,CAAA;SAC5B;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,KAAK,CAAA;SACb;IACH,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,YAAY,CAAC,OAAwB,EAAE,GAAG,KAAe;QACpE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;gBAC9D,OAAO,KAAK,CAAA;aACb;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;QAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAEhF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,IAAI,oBAAoB,EAAE,CAAA;SACjC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC/C,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,oBAAoB,EAAE,CAAA;SACjC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,OAAwB;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;YACnD,OAAO,IAAI,CAAC,IAAI,CAAA;SACjB;QACD,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAEM,uBAAuB,CAAC,OAAwB;QACrD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;YAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM;iBACnC,QAAQ,EAAE;iBACV,KAAK,CAAC,GAAG,CAAC;iBACV,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC/B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACpC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAA;YACnD,CAAC,CAAC,CAAA;YACJ,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;YACpF,IAAI,aAAa,EAAE;gBACjB,OAAO,aAAa,CAAC,KAAK,CAAA;aAC3B;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,OAAwB;QACvD,aAAa;QACb,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;YACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC9F,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC3D,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;SACvD;QAED,cAAc;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,SAAS,EAAE;YACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;YACpD,IAAI,OAAO,EAAE;gBACX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;gBACvD,IAAI,IAAI,EAAE;oBACR,OAAO,IAAI,CAAA;iBACZ;aACF;SACF;QAED,MAAM,IAAI,oBAAoB,EAAE,CAAA;IAClC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,WAAW,CAAC,IAAU,EAAE,cAA8B;QACjE,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QACxE,cAAc,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,SAAS,oBAAoB,CAAC,CAAA;QAC1G,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,OAAwB,EAAE,QAAwB;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;QACvD,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,qBAAqB,CAAC,CAAA;QACxF,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;QACrB,IAAI,SAAS,EAAE;YACb,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;YAC3C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;YACvF,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;SACxF;IACH,CAAC;CAUF,CAAA;AAPiB;IADf,QAAQ,CAAC,0BAA0B,CAAC;8BACJ,0BAA0B;uDAAsB;AAGhE;IADhB,QAAQ,CAAC,YAAY,CAAC;8BACS,YAAY;qDAAA;AAG3B;IADhB,QAAQ,CAAC,qBAAqB,CAAC;8BACC,qBAAqB;sDAAA;AA1J3C,eAAe;IAD3B,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;GACtB,eAAe,CA2J3B;SA3JY,eAAe"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import http from 'http';
|
|
2
|
+
import { Utils } from './utils.js';
|
|
3
|
+
http.IncomingMessage.prototype.readPostBody = async function () {
|
|
4
|
+
const utils = new Utils();
|
|
5
|
+
return await utils.readPostBody(this);
|
|
6
|
+
};
|
|
7
|
+
http.IncomingMessage.prototype.readPostBodyRaw = async function () {
|
|
8
|
+
const utils = new Utils();
|
|
9
|
+
return await utils.readPostBodyRaw(this);
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=incoming-message-extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incoming-message-extensions.js","sourceRoot":"","sources":["../src/incoming-message-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAUlC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK;IACjD,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;IACzB,OAAO,MAAM,KAAK,CAAC,YAAY,CAAI,IAAI,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,GAAG,KAAK;IACpD,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;IACzB,OAAO,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;AAC1C,CAAC,CAAA"}
|
package/esm/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export * from './helpers.js';
|
|
2
|
+
export * from './api-manager.js';
|
|
3
|
+
export * from './actions/index.js';
|
|
4
|
+
export * from './authenticate.js';
|
|
5
|
+
export * from './authorize.js';
|
|
6
|
+
export * from './http-authentication-settings.js';
|
|
7
|
+
export * from './http-user-context.js';
|
|
8
|
+
export * from './incoming-message-extensions.js';
|
|
9
|
+
export * from './server-manager.js';
|
|
10
|
+
export * from './server-response-extensions.js';
|
|
11
|
+
export * from './utils.js';
|
|
12
|
+
export * from './models/index.js';
|
|
13
|
+
export * from './endpoint-generators/index.js';
|
|
14
|
+
export * from './schema-validator/index.js';
|
|
15
|
+
export * from './request-action-implementation.js';
|
|
16
|
+
export * from './validate.js';
|
|
17
|
+
export * from './mime-types.js';
|
|
18
|
+
export * from './static-server-manager.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA;AACjD,cAAc,wBAAwB,CAAA;AACtC,cAAc,kCAAkC,CAAA;AAChD,cAAc,qBAAqB,CAAA;AACnC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA;AAClD,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,4BAA4B,CAAA"}
|
package/esm/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export * from './helpers.js';
|
|
2
|
+
export * from './api-manager.js';
|
|
3
|
+
export * from './actions/index.js';
|
|
4
|
+
export * from './authenticate.js';
|
|
5
|
+
export * from './authorize.js';
|
|
6
|
+
export * from './http-authentication-settings.js';
|
|
7
|
+
export * from './http-user-context.js';
|
|
8
|
+
export * from './incoming-message-extensions.js';
|
|
9
|
+
export * from './server-manager.js';
|
|
10
|
+
export * from './server-response-extensions.js';
|
|
11
|
+
export * from './utils.js';
|
|
12
|
+
export * from './models/index.js';
|
|
13
|
+
export * from './endpoint-generators/index.js';
|
|
14
|
+
export * from './schema-validator/index.js';
|
|
15
|
+
export * from './request-action-implementation.js';
|
|
16
|
+
export * from './validate.js';
|
|
17
|
+
export * from './mime-types.js';
|
|
18
|
+
export * from './static-server-manager.js';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA;AACjD,cAAc,wBAAwB,CAAA;AACtC,cAAc,kCAAkC,CAAA;AAChD,cAAc,qBAAqB,CAAA;AACnC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA;AAClD,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,4BAA4B,CAAA"}
|