@magda/typescript-common 1.1.0-alpha.2 → 1.1.0-alpha.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.
- package/dist/AspectBuilder.d.ts +7 -0
- package/dist/AspectBuilder.js +3 -0
- package/dist/AspectBuilder.js.map +1 -0
- package/dist/AspectCreationFailure.d.ts +5 -0
- package/dist/AspectCreationFailure.js +10 -0
- package/dist/AspectCreationFailure.js.map +1 -0
- package/dist/AsyncPage.d.ts +18 -0
- package/dist/AsyncPage.js +140 -0
- package/dist/AsyncPage.js.map +1 -0
- package/dist/ConnectionResult.d.ts +16 -0
- package/dist/ConnectionResult.js +77 -0
- package/dist/ConnectionResult.js.map +1 -0
- package/dist/ConnectorRecordId.d.ts +15 -0
- package/dist/ConnectorRecordId.js +46 -0
- package/dist/ConnectorRecordId.js.map +1 -0
- package/dist/JsonConnector.d.ts +195 -0
- package/dist/JsonConnector.js +427 -0
- package/dist/JsonConnector.js.map +1 -0
- package/dist/JsonTransformer.d.ts +112 -0
- package/dist/JsonTransformer.js +225 -0
- package/dist/JsonTransformer.js.map +1 -0
- package/dist/OpaCompileResponseParser.d.ts +480 -0
- package/dist/OpaCompileResponseParser.js +1134 -0
- package/dist/OpaCompileResponseParser.js.map +1 -0
- package/dist/RecordCreationFailure.d.ts +7 -0
- package/dist/RecordCreationFailure.js +11 -0
- package/dist/RecordCreationFailure.js.map +1 -0
- package/dist/SimpleOpaSQLTranslator.d.ts +14 -0
- package/dist/SimpleOpaSQLTranslator.js +79 -0
- package/dist/SimpleOpaSQLTranslator.js.map +1 -0
- package/dist/addTrailingSlash.d.ts +1 -0
- package/dist/addTrailingSlash.js +15 -0
- package/dist/addTrailingSlash.js.map +1 -0
- package/dist/appendUrlSegments.d.ts +2 -0
- package/dist/appendUrlSegments.js +18 -0
- package/dist/appendUrlSegments.js.map +1 -0
- package/dist/authorization-api/AccessControlError.d.ts +4 -0
- package/dist/authorization-api/AccessControlError.js +13 -0
- package/dist/authorization-api/AccessControlError.js.map +1 -0
- package/dist/authorization-api/ApiClient.d.ts +141 -0
- package/dist/authorization-api/ApiClient.js +335 -0
- package/dist/authorization-api/ApiClient.js.map +1 -0
- package/dist/authorization-api/AuthError.d.ts +4 -0
- package/dist/authorization-api/AuthError.js +13 -0
- package/dist/authorization-api/AuthError.js.map +1 -0
- package/dist/authorization-api/GenericError.d.ts +9 -0
- package/dist/authorization-api/GenericError.js +17 -0
- package/dist/authorization-api/GenericError.js.map +1 -0
- package/dist/authorization-api/authMiddleware.d.ts +7 -0
- package/dist/authorization-api/authMiddleware.js +52 -0
- package/dist/authorization-api/authMiddleware.js.map +1 -0
- package/dist/authorization-api/model.d.ts +99 -0
- package/dist/authorization-api/model.js +3 -0
- package/dist/authorization-api/model.js.map +1 -0
- package/dist/coerceJson.d.ts +2 -0
- package/dist/coerceJson.js +13 -0
- package/dist/coerceJson.js.map +1 -0
- package/dist/createServiceError.d.ts +19 -0
- package/dist/createServiceError.js +45 -0
- package/dist/createServiceError.js.map +1 -0
- package/dist/delay.d.ts +2 -0
- package/dist/delay.js +9 -0
- package/dist/delay.js.map +1 -0
- package/dist/express/status.d.ts +30 -0
- package/dist/express/status.js +180 -0
- package/dist/express/status.js.map +1 -0
- package/dist/formatServiceError.d.ts +1 -0
- package/dist/formatServiceError.js +23 -0
- package/dist/formatServiceError.js.map +1 -0
- package/dist/generated/registry/api.d.ts +596 -0
- package/dist/generated/registry/api.js +2060 -0
- package/dist/generated/registry/api.js.map +1 -0
- package/dist/getAbsoluteUrl.d.ts +12 -0
- package/dist/getAbsoluteUrl.js +35 -0
- package/dist/getAbsoluteUrl.js.map +1 -0
- package/dist/getBasePathFromUrl.d.ts +10 -0
- package/dist/getBasePathFromUrl.js +27 -0
- package/dist/getBasePathFromUrl.js.map +1 -0
- package/dist/markdownToHtml.d.ts +3 -0
- package/dist/markdownToHtml.js +38 -0
- package/dist/markdownToHtml.js.map +1 -0
- package/dist/opa/OpaTypes.d.ts +41 -0
- package/dist/opa/OpaTypes.js +3 -0
- package/dist/opa/OpaTypes.js.map +1 -0
- package/dist/opa/getAuthDecision.d.ts +19 -0
- package/dist/opa/getAuthDecision.js +94 -0
- package/dist/opa/getAuthDecision.js.map +1 -0
- package/dist/opa/queryOpa.d.ts +1 -0
- package/dist/opa/queryOpa.js +41 -0
- package/dist/opa/queryOpa.js.map +1 -0
- package/dist/registry/AuthorizedRegistryClient.d.ts +29 -0
- package/dist/registry/AuthorizedRegistryClient.js +115 -0
- package/dist/registry/AuthorizedRegistryClient.js.map +1 -0
- package/dist/registry/RegistryClient.d.ts +36 -0
- package/dist/registry/RegistryClient.js +59 -0
- package/dist/registry/RegistryClient.js.map +1 -0
- package/dist/registry/TenantConsts.d.ts +31 -0
- package/dist/registry/TenantConsts.js +35 -0
- package/dist/registry/TenantConsts.js.map +1 -0
- package/dist/registry-manual/api.d.ts +9 -0
- package/dist/registry-manual/api.js +10 -0
- package/dist/registry-manual/api.js.map +1 -0
- package/dist/request.d.ts +3 -0
- package/dist/request.js +19 -0
- package/dist/request.js.map +1 -0
- package/dist/retry.d.ts +1 -0
- package/dist/retry.js +21 -0
- package/dist/retry.js.map +1 -0
- package/dist/retryBackoff.d.ts +1 -0
- package/dist/retryBackoff.js +21 -0
- package/dist/retryBackoff.js.map +1 -0
- package/dist/runLater.d.ts +1 -0
- package/dist/runLater.js +16 -0
- package/dist/runLater.js.map +1 -0
- package/dist/session/GetUserId.d.ts +5 -0
- package/dist/session/GetUserId.js +41 -0
- package/dist/session/GetUserId.js.map +1 -0
- package/dist/session/GetUserSession.d.ts +3 -0
- package/dist/session/GetUserSession.js +22 -0
- package/dist/session/GetUserSession.js.map +1 -0
- package/dist/session/addJwtSecretFromEnvVar.d.ts +14 -0
- package/dist/session/addJwtSecretFromEnvVar.js +23 -0
- package/dist/session/addJwtSecretFromEnvVar.js.map +1 -0
- package/dist/session/buildJwt.d.ts +1 -0
- package/dist/session/buildJwt.js +8 -0
- package/dist/session/buildJwt.js.map +1 -0
- package/dist/session/cookieUtils.d.ts +16 -0
- package/dist/session/cookieUtils.js +19 -0
- package/dist/session/cookieUtils.js.map +1 -0
- package/dist/session/destroySession.d.ts +10 -0
- package/dist/session/destroySession.js +44 -0
- package/dist/session/destroySession.js.map +1 -0
- package/dist/session/getSessionId.d.ts +2 -0
- package/dist/session/getSessionId.js +28 -0
- package/dist/session/getSessionId.js.map +1 -0
- package/dist/tenant-api/AuthorizedTenantClient.d.ts +25 -0
- package/dist/tenant-api/AuthorizedTenantClient.js +61 -0
- package/dist/tenant-api/AuthorizedTenantClient.js.map +1 -0
- package/dist/tenant-api/Tenant.d.ts +17 -0
- package/dist/tenant-api/Tenant.js +10 -0
- package/dist/tenant-api/Tenant.js.map +1 -0
- package/dist/test/JsonConnector.spec.d.ts +1 -0
- package/dist/test/JsonConnector.spec.js +352 -0
- package/dist/test/JsonConnector.spec.js.map +1 -0
- package/dist/test/JsonTransformer.spec.d.ts +1 -0
- package/dist/test/JsonTransformer.spec.js +98 -0
- package/dist/test/JsonTransformer.spec.js.map +1 -0
- package/dist/test/arbitraries.d.ts +98 -0
- package/dist/test/arbitraries.js +264 -0
- package/dist/test/arbitraries.js.map +1 -0
- package/dist/test/aspect-templates/organization-details.d.ts +4 -0
- package/dist/test/aspect-templates/organization-details.js +11 -0
- package/dist/test/aspect-templates/organization-details.js.map +1 -0
- package/dist/test/buildApiClient.spec.d.ts +1 -0
- package/dist/test/buildApiClient.spec.js +177 -0
- package/dist/test/buildApiClient.spec.js.map +1 -0
- package/dist/test/buildAuthorizedTenantClient.spec.d.ts +1 -0
- package/dist/test/buildAuthorizedTenantClient.spec.js +60 -0
- package/dist/test/buildAuthorizedTenantClient.spec.js.map +1 -0
- package/dist/test/connectors/MockExpressServer.d.ts +5 -0
- package/dist/test/connectors/MockExpressServer.js +28 -0
- package/dist/test/connectors/MockExpressServer.js.map +1 -0
- package/dist/test/connectors/MockRegistry.d.ts +7 -0
- package/dist/test/connectors/MockRegistry.js +93 -0
- package/dist/test/connectors/MockRegistry.js.map +1 -0
- package/dist/test/connectors/runConnectorTest.d.ts +5 -0
- package/dist/test/connectors/runConnectorTest.js +106 -0
- package/dist/test/connectors/runConnectorTest.js.map +1 -0
- package/dist/test/db/getTestDBConfig.d.ts +7 -0
- package/dist/test/db/getTestDBConfig.js +13 -0
- package/dist/test/db/getTestDBConfig.js.map +1 -0
- package/dist/test/db/runMigrationSql.d.ts +9 -0
- package/dist/test/db/runMigrationSql.js +82 -0
- package/dist/test/db/runMigrationSql.js.map +1 -0
- package/dist/test/express/status.spec.d.ts +1 -0
- package/dist/test/express/status.spec.js +160 -0
- package/dist/test/express/status.spec.js.map +1 -0
- package/dist/test/fakeArgv.d.ts +2 -0
- package/dist/test/fakeArgv.js +7 -0
- package/dist/test/fakeArgv.js.map +1 -0
- package/dist/test/getAuthDecision.spec.d.ts +1 -0
- package/dist/test/getAuthDecision.spec.js +22 -0
- package/dist/test/getAuthDecision.spec.js.map +1 -0
- package/dist/test/getBasePathFromUrl.spec.d.ts +1 -0
- package/dist/test/getBasePathFromUrl.spec.js +25 -0
- package/dist/test/getBasePathFromUrl.spec.js.map +1 -0
- package/dist/test/jsverify.d.ts +2 -0
- package/dist/test/jsverify.js +8 -0
- package/dist/test/jsverify.js.map +1 -0
- package/dist/test/mockAuthApiHost.d.ts +14 -0
- package/dist/test/mockAuthApiHost.js +174 -0
- package/dist/test/mockAuthApiHost.js.map +1 -0
- package/dist/test/mockAuthorization.d.ts +3 -0
- package/dist/test/mockAuthorization.js +24 -0
- package/dist/test/mockAuthorization.js.map +1 -0
- package/dist/test/mockTenantDataStore.d.ts +8 -0
- package/dist/test/mockTenantDataStore.js +41 -0
- package/dist/test/mockTenantDataStore.js.map +1 -0
- package/dist/test/mockUserDataStore.d.ts +11 -0
- package/dist/test/mockUserDataStore.js +56 -0
- package/dist/test/mockUserDataStore.js.map +1 -0
- package/dist/test/registry/buildAuthorizedClient.spec.d.ts +1 -0
- package/dist/test/registry/buildAuthorizedClient.spec.js +101 -0
- package/dist/test/registry/buildAuthorizedClient.spec.js.map +1 -0
- package/dist/test/sampleOpaResponse.json +480 -0
- package/dist/test/sampleOpaResponseSimple.json +173 -0
- package/dist/test/sampleOpaResponseUnconditionalTrue.json +193 -0
- package/dist/test/sampleOpaResponseUnconditionalTrueWithDefaultRule.json +303 -0
- package/dist/test/sampleOpaResponseWithDefaultRule.json +303 -0
- package/dist/test/session/buildJwt.spec.d.ts +1 -0
- package/dist/test/session/buildJwt.spec.js +50 -0
- package/dist/test/session/buildJwt.spec.js.map +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.d.ts +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js +64 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js.map +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.d.ts +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js +52 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js.map +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.d.ts +1 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js +36 -0
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js.map +1 -0
- package/dist/test/testAsyncPage.spec.d.ts +1 -0
- package/dist/test/testAsyncPage.spec.js +463 -0
- package/dist/test/testAsyncPage.spec.js.map +1 -0
- package/dist/test/testOpaCompileResponseParser.spec.d.ts +1 -0
- package/dist/test/testOpaCompileResponseParser.spec.js +148 -0
- package/dist/test/testOpaCompileResponseParser.spec.js.map +1 -0
- package/dist/test/util.d.ts +1 -0
- package/dist/test/util.js +8 -0
- package/dist/test/util.js.map +1 -0
- package/dist/util/arrayToMaybe.d.ts +2 -0
- package/dist/util/arrayToMaybe.js +8 -0
- package/dist/util/arrayToMaybe.js.map +1 -0
- package/dist/util/cleanOrgTitle.d.ts +1 -0
- package/dist/util/cleanOrgTitle.js +13 -0
- package/dist/util/cleanOrgTitle.js.map +1 -0
- package/dist/util/getMinikubeIP.d.ts +1 -0
- package/dist/util/getMinikubeIP.js +13 -0
- package/dist/util/getMinikubeIP.js.map +1 -0
- package/dist/util/isUuid.d.ts +2 -0
- package/dist/util/isUuid.js +6 -0
- package/dist/util/isUuid.js.map +1 -0
- package/dist/util/unionToThrowable.d.ts +1 -0
- package/dist/util/unionToThrowable.js +12 -0
- package/dist/util/unionToThrowable.js.map +1 -0
- package/dist/utilityTypes.d.ts +1 -0
- package/dist/utilityTypes.js +3 -0
- package/dist/utilityTypes.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthorizedRegistryClient.js","sourceRoot":"","sources":["../../src/registry/AuthorizedRegistryClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AspectDefinition, AspectDefinitionsApi, Record, RecordsApi, RecordAspectsApi, WebHooksApi, RecordHistoryApi } from "../generated/registry/api";
|
|
2
|
+
import URI from "urijs";
|
|
3
|
+
export interface RegistryOptions {
|
|
4
|
+
baseUrl: string;
|
|
5
|
+
maxRetries?: number;
|
|
6
|
+
secondsBetweenRetries?: number;
|
|
7
|
+
tenantId: number;
|
|
8
|
+
}
|
|
9
|
+
export interface PutResult {
|
|
10
|
+
successfulPuts: number;
|
|
11
|
+
errors: Error[];
|
|
12
|
+
}
|
|
13
|
+
export interface RecordsPage<I extends Record> {
|
|
14
|
+
totalCount: number;
|
|
15
|
+
hasMore: boolean;
|
|
16
|
+
nextPageToken?: string;
|
|
17
|
+
records: I[];
|
|
18
|
+
}
|
|
19
|
+
export default class RegistryClient {
|
|
20
|
+
protected baseUri: URI;
|
|
21
|
+
protected aspectDefinitionsApi: AspectDefinitionsApi;
|
|
22
|
+
protected recordsApi: RecordsApi;
|
|
23
|
+
protected webHooksApi: WebHooksApi;
|
|
24
|
+
protected recordAspectsApi: RecordAspectsApi;
|
|
25
|
+
protected recordHistoryApi: RecordHistoryApi;
|
|
26
|
+
protected maxRetries: number;
|
|
27
|
+
protected secondsBetweenRetries: number;
|
|
28
|
+
protected tenantId: number;
|
|
29
|
+
protected jwt: string | undefined;
|
|
30
|
+
constructor({ baseUrl, maxRetries, secondsBetweenRetries, tenantId }: RegistryOptions);
|
|
31
|
+
getRecordUrl(id: string): string;
|
|
32
|
+
getAspectDefinitions(): Promise<AspectDefinition[] | Error>;
|
|
33
|
+
getRecord(id: string, aspect?: Array<string>, optionalAspect?: Array<string>, dereference?: boolean): Promise<Record | Error>;
|
|
34
|
+
getRecords<I extends Record>(aspect?: Array<string>, optionalAspect?: Array<string>, pageToken?: string, dereference?: boolean, limit?: number, aspectQueries?: string[], aspectOrQuery?: string[], orderBy?: string, orderByDir?: string, orderNullFirst?: boolean): Promise<RecordsPage<I> | Error>;
|
|
35
|
+
getRecordsPageTokens(aspect?: Array<string>, limit?: number): Promise<string[] | Error>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const api_1 = require("../generated/registry/api");
|
|
7
|
+
const urijs_1 = __importDefault(require("urijs"));
|
|
8
|
+
const retry_1 = __importDefault(require("../retry"));
|
|
9
|
+
const formatServiceError_1 = __importDefault(require("../formatServiceError"));
|
|
10
|
+
const createServiceError_1 = __importDefault(require("../createServiceError"));
|
|
11
|
+
class RegistryClient {
|
|
12
|
+
constructor({ baseUrl, maxRetries = 10, secondsBetweenRetries = 10, tenantId }) {
|
|
13
|
+
if (tenantId === undefined) {
|
|
14
|
+
throw Error("A tenant id must be defined.");
|
|
15
|
+
}
|
|
16
|
+
this.tenantId = tenantId;
|
|
17
|
+
const registryApiUrl = baseUrl;
|
|
18
|
+
this.baseUri = new urijs_1.default(baseUrl);
|
|
19
|
+
this.maxRetries = maxRetries;
|
|
20
|
+
this.secondsBetweenRetries = secondsBetweenRetries;
|
|
21
|
+
this.aspectDefinitionsApi = new api_1.AspectDefinitionsApi(registryApiUrl);
|
|
22
|
+
this.recordsApi = new api_1.RecordsApi(registryApiUrl);
|
|
23
|
+
this.recordsApi.useQuerystring = true; // Use querystring instead of qs to construct URL
|
|
24
|
+
this.recordAspectsApi = new api_1.RecordAspectsApi(registryApiUrl);
|
|
25
|
+
this.webHooksApi = new api_1.WebHooksApi(registryApiUrl);
|
|
26
|
+
this.recordHistoryApi = new api_1.RecordHistoryApi(registryApiUrl);
|
|
27
|
+
}
|
|
28
|
+
getRecordUrl(id) {
|
|
29
|
+
return this.baseUri.clone().segment("records").segment(id).toString();
|
|
30
|
+
}
|
|
31
|
+
getAspectDefinitions() {
|
|
32
|
+
const operation = () => () => this.aspectDefinitionsApi.getAll(this.tenantId);
|
|
33
|
+
return retry_1.default(operation(), this.secondsBetweenRetries, this.maxRetries, (e, retriesLeft) => console.log(formatServiceError_1.default("Failed to GET aspect definitions.", e, retriesLeft)))
|
|
34
|
+
.then((result) => result.body)
|
|
35
|
+
.catch(createServiceError_1.default);
|
|
36
|
+
}
|
|
37
|
+
getRecord(id, aspect, optionalAspect, dereference) {
|
|
38
|
+
const operation = (id) => () => this.recordsApi.getById(encodeURIComponent(id), this.tenantId, aspect, optionalAspect, dereference, this.jwt);
|
|
39
|
+
return retry_1.default(operation(id), this.secondsBetweenRetries, this.maxRetries, (e, retriesLeft) => console.log(formatServiceError_1.default("Failed to GET records.", e, retriesLeft)), (e) => {
|
|
40
|
+
return !e.response || e.response.statusCode !== 404;
|
|
41
|
+
})
|
|
42
|
+
.then((result) => result.body)
|
|
43
|
+
.catch(createServiceError_1.default);
|
|
44
|
+
}
|
|
45
|
+
getRecords(aspect, optionalAspect, pageToken, dereference, limit, aspectQueries, aspectOrQuery, orderBy, orderByDir, orderNullFirst) {
|
|
46
|
+
const operation = (pageToken) => () => this.recordsApi.getAll(this.tenantId, aspect, optionalAspect, pageToken, undefined, limit, dereference, aspectQueries, aspectOrQuery, orderBy, orderByDir, orderNullFirst, this.jwt);
|
|
47
|
+
return retry_1.default(operation(pageToken), this.secondsBetweenRetries, this.maxRetries, (e, retriesLeft) => console.log(formatServiceError_1.default("Failed to GET records.", e, retriesLeft)))
|
|
48
|
+
.then((result) => result.body)
|
|
49
|
+
.catch(createServiceError_1.default);
|
|
50
|
+
}
|
|
51
|
+
getRecordsPageTokens(aspect, limit) {
|
|
52
|
+
const operation = () => this.recordsApi.getPageTokens(this.tenantId, aspect, limit, this.jwt);
|
|
53
|
+
return retry_1.default(operation, this.secondsBetweenRetries, this.maxRetries, (e, retriesLeft) => console.log(formatServiceError_1.default("Failed to GET records page tokens.", e, retriesLeft)))
|
|
54
|
+
.then((result) => result.body)
|
|
55
|
+
.catch(createServiceError_1.default);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.default = RegistryClient;
|
|
59
|
+
//# sourceMappingURL=RegistryClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegistryClient.js","sourceRoot":"","sources":["../../src/registry/RegistryClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* These constants are the same as defined in the scala model Registry.
|
|
3
|
+
*
|
|
4
|
+
* MAGDA_ADMIN_PORTAL_ID and MAGDA_SYSTEM_ID play different roles.
|
|
5
|
+
*
|
|
6
|
+
* 1. Role of MAGDA_ADMIN_PORTAL_ID in single tenant mode
|
|
7
|
+
* Tenant IDs are foreign keys in many tables. When migrating the existing DB, all existing entries in table aspects,
|
|
8
|
+
* records, recordaspects and events must have non-null values in field of tenantId. They are all set to
|
|
9
|
+
* MAGDA_ADMIN_PORTAL_ID. MAGDA_ADMIN_PORTAL_ID is the tenant id in single tenant deployment (default deployment).
|
|
10
|
+
*
|
|
11
|
+
* 2. Role of MAGDA_ADMIN_PORTAL_ID in multi-tenant mode
|
|
12
|
+
* It manages tenants only. It creates, enables or disable tenants.
|
|
13
|
+
*
|
|
14
|
+
* 3. Role of MAGDA_SYSTEM_ID
|
|
15
|
+
* It is not important in single tenant mode but necessary in multi-tenant mode. It is mainly used to perform global
|
|
16
|
+
* operations. For example, when re-indexing datasets, it will retrieve records and record aspects of all tenants from
|
|
17
|
+
* DB. Many minions also take this role, e.g. a broken link minion.
|
|
18
|
+
*
|
|
19
|
+
* TODO: Investigate how to use swagger codegen to automatically generate these constants.
|
|
20
|
+
*/
|
|
21
|
+
export declare const MAGDA_ADMIN_PORTAL_ID = 0;
|
|
22
|
+
/**
|
|
23
|
+
* Request with this tenant ID can perform global operations on registry.
|
|
24
|
+
*
|
|
25
|
+
* @see {module:magda-typescript-commone.registry.TenantConsts.MAGDA_ADMIN_PORTAL_ID}
|
|
26
|
+
*/
|
|
27
|
+
export declare const MAGDA_SYSTEM_ID = -1;
|
|
28
|
+
/**
|
|
29
|
+
* The header name of tenant ID.
|
|
30
|
+
*/
|
|
31
|
+
export declare const MAGDA_TENANT_ID_HEADER = "X-Magda-Tenant-Id";
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAGDA_TENANT_ID_HEADER = exports.MAGDA_SYSTEM_ID = exports.MAGDA_ADMIN_PORTAL_ID = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* These constants are the same as defined in the scala model Registry.
|
|
6
|
+
*
|
|
7
|
+
* MAGDA_ADMIN_PORTAL_ID and MAGDA_SYSTEM_ID play different roles.
|
|
8
|
+
*
|
|
9
|
+
* 1. Role of MAGDA_ADMIN_PORTAL_ID in single tenant mode
|
|
10
|
+
* Tenant IDs are foreign keys in many tables. When migrating the existing DB, all existing entries in table aspects,
|
|
11
|
+
* records, recordaspects and events must have non-null values in field of tenantId. They are all set to
|
|
12
|
+
* MAGDA_ADMIN_PORTAL_ID. MAGDA_ADMIN_PORTAL_ID is the tenant id in single tenant deployment (default deployment).
|
|
13
|
+
*
|
|
14
|
+
* 2. Role of MAGDA_ADMIN_PORTAL_ID in multi-tenant mode
|
|
15
|
+
* It manages tenants only. It creates, enables or disable tenants.
|
|
16
|
+
*
|
|
17
|
+
* 3. Role of MAGDA_SYSTEM_ID
|
|
18
|
+
* It is not important in single tenant mode but necessary in multi-tenant mode. It is mainly used to perform global
|
|
19
|
+
* operations. For example, when re-indexing datasets, it will retrieve records and record aspects of all tenants from
|
|
20
|
+
* DB. Many minions also take this role, e.g. a broken link minion.
|
|
21
|
+
*
|
|
22
|
+
* TODO: Investigate how to use swagger codegen to automatically generate these constants.
|
|
23
|
+
*/
|
|
24
|
+
exports.MAGDA_ADMIN_PORTAL_ID = 0;
|
|
25
|
+
/**
|
|
26
|
+
* Request with this tenant ID can perform global operations on registry.
|
|
27
|
+
*
|
|
28
|
+
* @see {module:magda-typescript-commone.registry.TenantConsts.MAGDA_ADMIN_PORTAL_ID}
|
|
29
|
+
*/
|
|
30
|
+
exports.MAGDA_SYSTEM_ID = -1;
|
|
31
|
+
/**
|
|
32
|
+
* The header name of tenant ID.
|
|
33
|
+
*/
|
|
34
|
+
exports.MAGDA_TENANT_ID_HEADER = "X-Magda-Tenant-Id";
|
|
35
|
+
//# sourceMappingURL=TenantConsts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TenantConsts.js","sourceRoot":"","sources":["../../src/registry/TenantConsts.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACU,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAEvC;;;;GAIG;AACU,QAAA,eAAe,GAAG,CAAC,CAAC,CAAC;AAElC;;GAEG;AACU,QAAA,sBAAsB,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RecordLayerSummary = exports.RecordLayer = void 0;
|
|
4
|
+
class RecordLayer {
|
|
5
|
+
}
|
|
6
|
+
exports.RecordLayer = RecordLayer;
|
|
7
|
+
class RecordLayerSummary {
|
|
8
|
+
}
|
|
9
|
+
exports.RecordLayerSummary = RecordLayerSummary;
|
|
10
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/registry-manual/api.ts"],"names":[],"mappings":";;;AACA,MAAa,WAAW;CASvB;AATD,kCASC;AAED,MAAa,kBAAkB;CAS9B;AATD,gDASC"}
|
package/dist/request.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const requestOriginal = require("request");
|
|
7
|
+
const read_pkg_up_1 = __importDefault(require("read-pkg-up"));
|
|
8
|
+
const pkg = read_pkg_up_1.default.sync().pkg;
|
|
9
|
+
if (!pkg || !pkg.name) {
|
|
10
|
+
throw new Error("magda-typescript-common/request: Can't locate package.json in current working directory or `name` field is empty.");
|
|
11
|
+
}
|
|
12
|
+
// include user agent derived from package.json in all http requests
|
|
13
|
+
const request = requestOriginal.defaults({
|
|
14
|
+
headers: {
|
|
15
|
+
"User-Agent": "".concat(pkg.name.replace("/", "-").replace("@", ""), "/", pkg.version)
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
exports.default = request;
|
|
19
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":";;;;;AAAA,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAE3C,8DAAoC;AACpC,MAAM,GAAG,GAAG,qBAAS,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;AAEjC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;IACnB,MAAM,IAAI,KAAK,CACX,mHAAmH,CACtH,CAAC;CACL;AAED,oEAAoE;AACpE,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC;IACrC,OAAO,EAAE;QACL,YAAY,EAAE,EAAE,CAAC,MAAM,CACnB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAC3C,GAAG,EACH,GAAG,CAAC,OAAO,CACd;KACJ;CACJ,CAAqD,CAAC;AAEvD,kBAAe,OAAO,CAAC"}
|
package/dist/retry.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function retry<T>(op: () => Promise<T>, delaySeconds: number, retries: number, onRetry: (e: any, retries: number) => any, shouldRetry?: (e: any) => boolean): Promise<T>;
|
package/dist/retry.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const runLater_1 = __importDefault(require("./runLater"));
|
|
7
|
+
function retry(op, delaySeconds, retries, onRetry, shouldRetry = () => true) {
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
|
+
resolve(op().then((result) => result, (e) => {
|
|
10
|
+
if (retries > 0 && shouldRetry(e)) {
|
|
11
|
+
onRetry(e, retries);
|
|
12
|
+
return runLater_1.default(delaySeconds * 1000, () => retry(op, delaySeconds, retries - 1, onRetry));
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
throw e;
|
|
16
|
+
}
|
|
17
|
+
}));
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
exports.default = retry;
|
|
21
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAElC,SAAwB,KAAK,CACzB,EAAoB,EACpB,YAAoB,EACpB,OAAe,EACf,OAAyC,EACzC,cAAmC,GAAG,EAAE,CAAC,IAAI;IAE7C,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,OAAO,CACH,EAAE,EAAE,CAAC,IAAI,CACL,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAClB,CAAC,CAAC,EAAE,EAAE;YACF,IAAI,OAAO,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;gBAC/B,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACpB,OAAO,kBAAQ,CAAC,YAAY,GAAG,IAAI,EAAE,GAAG,EAAE,CACtC,KAAK,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,CAChD,CAAC;aACL;iBAAM;gBACH,MAAM,CAAC,CAAC;aACX;QACL,CAAC,CACJ,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAxBD,wBAwBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function retryBackoff<T>(op: () => Promise<T>, delaySeconds: number, retries: number, onRetry: (e: any, retries: number) => any, easing?: (delaySeconds: number) => number): Promise<T>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const runLater_1 = __importDefault(require("./runLater"));
|
|
7
|
+
function retryBackoff(op, delaySeconds, retries, onRetry, easing = (delaySeconds) => delaySeconds * 2) {
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
|
+
resolve(op().then((result) => result, (e) => {
|
|
10
|
+
if (retries > 0) {
|
|
11
|
+
onRetry(e, retries);
|
|
12
|
+
return runLater_1.default(delaySeconds * 1000, () => retryBackoff(op, easing(delaySeconds), retries - 1, onRetry));
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
throw e;
|
|
16
|
+
}
|
|
17
|
+
}));
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
exports.default = retryBackoff;
|
|
21
|
+
//# sourceMappingURL=retryBackoff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retryBackoff.js","sourceRoot":"","sources":["../src/retryBackoff.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAElC,SAAwB,YAAY,CAChC,EAAoB,EACpB,YAAoB,EACpB,OAAe,EACf,OAAyC,EACzC,SAA2C,CAAC,YAAY,EAAE,EAAE,CACxD,YAAY,GAAG,CAAC;IAEpB,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,OAAO,CACH,EAAE,EAAE,CAAC,IAAI,CACL,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAClB,CAAC,CAAC,EAAE,EAAE;YACF,IAAI,OAAO,GAAG,CAAC,EAAE;gBACb,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACpB,OAAO,kBAAQ,CAAC,YAAY,GAAG,IAAI,EAAE,GAAG,EAAE,CACtC,YAAY,CACR,EAAE,EACF,MAAM,CAAC,YAAY,CAAC,EACpB,OAAO,GAAG,CAAC,EACX,OAAO,CACV,CACJ,CAAC;aACL;iBAAM;gBACH,MAAM,CAAC,CAAC;aACX;QACL,CAAC,CACJ,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AA9BD,+BA8BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function runLater<TResult>(milliseconds: number, functionToRunLater: () => Promise<TResult> | TResult): Promise<TResult>;
|
package/dist/runLater.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function runLater(milliseconds = 0, functionToRunLater) {
|
|
4
|
+
return new Promise((resolve, reject) => {
|
|
5
|
+
setTimeout(() => {
|
|
6
|
+
try {
|
|
7
|
+
resolve(functionToRunLater());
|
|
8
|
+
}
|
|
9
|
+
catch (e) {
|
|
10
|
+
reject(e);
|
|
11
|
+
}
|
|
12
|
+
}, milliseconds);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
exports.default = runLater;
|
|
16
|
+
//# sourceMappingURL=runLater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runLater.js","sourceRoot":"","sources":["../src/runLater.ts"],"names":[],"mappings":";;AAAA,SAAwB,QAAQ,CAC5B,eAAuB,CAAC,EACxB,kBAAoD;IAEpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI;gBACA,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;aACjC;YAAC,OAAO,CAAC,EAAE;gBACR,MAAM,CAAC,CAAC,CAAC,CAAC;aACb;QACL,CAAC,EAAE,YAAY,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACP,CAAC;AAbD,2BAaC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Request, Response } from "express";
|
|
2
|
+
import { Maybe } from "tsmonad";
|
|
3
|
+
import "../authorization-api/model";
|
|
4
|
+
export declare function getUserId(req: Request, jwtSecret: string): Maybe<string>;
|
|
5
|
+
export declare function getUserIdHandling(req: Request, res: Response, jwtSecret: string, cb: (userId: string) => void): void;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUserIdHandling = exports.getUserId = void 0;
|
|
4
|
+
const tsmonad_1 = require("tsmonad");
|
|
5
|
+
require("../authorization-api/model");
|
|
6
|
+
const jwt = require("jsonwebtoken");
|
|
7
|
+
function getUserId(req, jwtSecret) {
|
|
8
|
+
var _a;
|
|
9
|
+
const jwtToken = req.header("X-Magda-Session");
|
|
10
|
+
if (jwtToken) {
|
|
11
|
+
try {
|
|
12
|
+
const jwtPayload = jwt.verify(jwtToken, jwtSecret);
|
|
13
|
+
return tsmonad_1.Maybe.just(jwtPayload.userId);
|
|
14
|
+
}
|
|
15
|
+
catch (e) {
|
|
16
|
+
console.error(e);
|
|
17
|
+
return tsmonad_1.Maybe.nothing();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
if ((_a = req.user) === null || _a === void 0 ? void 0 : _a.id) {
|
|
22
|
+
return tsmonad_1.Maybe.just(req.user.id);
|
|
23
|
+
}
|
|
24
|
+
return tsmonad_1.Maybe.nothing();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.getUserId = getUserId;
|
|
28
|
+
function getUserIdHandling(req, res, jwtSecret, cb) {
|
|
29
|
+
const userId = getUserId(req, jwtSecret);
|
|
30
|
+
userId.caseOf({
|
|
31
|
+
just: (userId) => {
|
|
32
|
+
cb(userId);
|
|
33
|
+
},
|
|
34
|
+
nothing: () => {
|
|
35
|
+
console.warn("Rejecting with not authorized because no user id present");
|
|
36
|
+
res.status(401).send("Not authorized.");
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
exports.getUserIdHandling = getUserIdHandling;
|
|
41
|
+
//# sourceMappingURL=GetUserId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetUserId.js","sourceRoot":"","sources":["../../src/session/GetUserId.ts"],"names":[],"mappings":";;;AACA,qCAAgC;AAChC,sCAAoC;AACpC,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAEpC,SAAgB,SAAS,CAAC,GAAY,EAAE,SAAiB;;IACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE/C,IAAI,QAAQ,EAAE;QACV,IAAI;YACA,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACnD,OAAO,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SACxC;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,eAAK,CAAC,OAAO,EAAU,CAAC;SAClC;KACJ;SAAM;QACH,UAAI,GAAG,CAAC,IAAI,0CAAE,EAAE,EAAE;YACd,OAAO,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClC;QACD,OAAO,eAAK,CAAC,OAAO,EAAU,CAAC;KAClC;AACL,CAAC;AAjBD,8BAiBC;AAED,SAAgB,iBAAiB,CAC7B,GAAY,EACZ,GAAa,EACb,SAAiB,EACjB,EAA4B;IAE5B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAEzC,MAAM,CAAC,MAAM,CAAC;QACV,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;YACb,EAAE,CAAC,MAAM,CAAC,CAAC;QACf,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACV,OAAO,CAAC,IAAI,CACR,0DAA0D,CAC7D,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5C,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAnBD,8CAmBC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUserSession = void 0;
|
|
4
|
+
const tsmonad_1 = require("tsmonad");
|
|
5
|
+
const jwt = require("jsonwebtoken");
|
|
6
|
+
function getUserSession(req, jwtSecret) {
|
|
7
|
+
const jwtToken = req.header("X-Magda-Session");
|
|
8
|
+
if (jwtToken) {
|
|
9
|
+
try {
|
|
10
|
+
const { session } = jwt.verify(jwtToken, jwtSecret);
|
|
11
|
+
return tsmonad_1.Maybe.just(session);
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
return tsmonad_1.Maybe.nothing();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return tsmonad_1.Maybe.nothing();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.getUserSession = getUserSession;
|
|
22
|
+
//# sourceMappingURL=GetUserSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetUserSession.js","sourceRoot":"","sources":["../../src/session/GetUserSession.ts"],"names":[],"mappings":";;;AACA,qCAAgC;AAChC,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAEpC,SAAgB,cAAc,CAAC,GAAY,EAAE,SAAiB;IAC1D,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE/C,IAAI,QAAQ,EAAE;QACV,IAAI;YACA,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACpD,OAAO,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC9B;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,eAAK,CAAC,OAAO,EAAM,CAAC;SAC9B;KACJ;SAAM;QACH,OAAO,eAAK,CAAC,OAAO,EAAM,CAAC;KAC9B;AACL,CAAC;AAbD,wCAaC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Arguments } from "yargs";
|
|
2
|
+
/**
|
|
3
|
+
* Checks to see whether the passed argv has a jwtSecret object. If not,
|
|
4
|
+
* tries to add one by looking at the JWT_SECRET env var and failing that,
|
|
5
|
+
* the jwtSecret value in package.json config.
|
|
6
|
+
*
|
|
7
|
+
* If it can't find one and required is true (or unprovided), this will
|
|
8
|
+
* throw an Error.
|
|
9
|
+
*/
|
|
10
|
+
export default function addJwtSecretFromEnvVar<T>(argv: {
|
|
11
|
+
[key in keyof Arguments<T>]: Arguments<T>[key];
|
|
12
|
+
}, required?: boolean): {
|
|
13
|
+
[key in keyof Arguments<T>]: Arguments<T>[key];
|
|
14
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* Checks to see whether the passed argv has a jwtSecret object. If not,
|
|
5
|
+
* tries to add one by looking at the JWT_SECRET env var and failing that,
|
|
6
|
+
* the jwtSecret value in package.json config.
|
|
7
|
+
*
|
|
8
|
+
* If it can't find one and required is true (or unprovided), this will
|
|
9
|
+
* throw an Error.
|
|
10
|
+
*/
|
|
11
|
+
function addJwtSecretFromEnvVar(argv, required = true) {
|
|
12
|
+
const newArgv = Object.assign({}, argv, {
|
|
13
|
+
jwtSecret: argv.jwtSecret ||
|
|
14
|
+
process.env.JWT_SECRET ||
|
|
15
|
+
process.env.npm_package_config_jwtSecret
|
|
16
|
+
});
|
|
17
|
+
if (required && !newArgv.jwtSecret) {
|
|
18
|
+
throw new Error("jwtSecret argument or JWT_SECRET environment variable is required");
|
|
19
|
+
}
|
|
20
|
+
return newArgv;
|
|
21
|
+
}
|
|
22
|
+
exports.default = addJwtSecretFromEnvVar;
|
|
23
|
+
//# sourceMappingURL=addJwtSecretFromEnvVar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addJwtSecretFromEnvVar.js","sourceRoot":"","sources":["../../src/session/addJwtSecretFromEnvVar.ts"],"names":[],"mappings":";;AAEA;;;;;;;GAOG;AACH,SAAwB,sBAAsB,CAC1C,IAAwD,EACxD,QAAQ,GAAG,IAAI;IAEf,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE;QACpC,SAAS,EACL,IAAI,CAAC,SAAS;YACd,OAAO,CAAC,GAAG,CAAC,UAAU;YACtB,OAAO,CAAC,GAAG,CAAC,4BAA4B;KAC/C,CAAC,CAAC;IAEH,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;QAChC,MAAM,IAAI,KAAK,CACX,mEAAmE,CACtE,CAAC;KACL;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAlBD,yCAkBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function buildJwt(jwtSecret: string, userId: string, session?: any): any;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jwt = require("jsonwebtoken");
|
|
4
|
+
function buildJwt(jwtSecret, userId, session = {}) {
|
|
5
|
+
return jwt.sign({ userId, session }, jwtSecret);
|
|
6
|
+
}
|
|
7
|
+
exports.default = buildJwt;
|
|
8
|
+
//# sourceMappingURL=buildJwt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildJwt.js","sourceRoot":"","sources":["../../src/session/buildJwt.ts"],"names":[],"mappings":";;AAAA,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAEpC,SAAwB,QAAQ,CAC5B,SAAiB,EACjB,MAAc,EACd,UAAe,EAAE;IAEjB,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC;AAND,2BAMC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import express from "express";
|
|
2
|
+
/** This is present in the express-session types but not actually exported properly, so it needs to be copy-pasted here */
|
|
3
|
+
export declare type CookieOptions = {
|
|
4
|
+
maxAge?: number;
|
|
5
|
+
signed?: boolean;
|
|
6
|
+
expires?: Date;
|
|
7
|
+
httpOnly?: boolean;
|
|
8
|
+
path?: string;
|
|
9
|
+
domain?: string;
|
|
10
|
+
secure?: boolean | "auto";
|
|
11
|
+
encode?: (val: string) => string;
|
|
12
|
+
sameSite?: boolean | "lax" | "strict" | "none";
|
|
13
|
+
};
|
|
14
|
+
export declare const DEFAULT_SESSION_COOKIE_NAME: string;
|
|
15
|
+
export declare let DEFAULT_SESSION_COOKIE_OPTIONS: CookieOptions;
|
|
16
|
+
export declare function deleteCookie(cookieName: string, cookieOptions: CookieOptions, res: express.Response): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteCookie = exports.DEFAULT_SESSION_COOKIE_OPTIONS = exports.DEFAULT_SESSION_COOKIE_NAME = void 0;
|
|
4
|
+
exports.DEFAULT_SESSION_COOKIE_NAME = "connect.sid";
|
|
5
|
+
exports.DEFAULT_SESSION_COOKIE_OPTIONS = {
|
|
6
|
+
maxAge: 7 * 60 * 60 * 1000,
|
|
7
|
+
sameSite: "lax",
|
|
8
|
+
httpOnly: true,
|
|
9
|
+
secure: "auto"
|
|
10
|
+
};
|
|
11
|
+
function deleteCookie(cookieName, cookieOptions, res) {
|
|
12
|
+
const deleteCookieOptions = Object.assign({}, cookieOptions);
|
|
13
|
+
// --- `clearCookie` works in a way like it will fail to delete cookie if maxAge presents T_T
|
|
14
|
+
// --- https://github.com/expressjs/express/issues/3856#issuecomment-502397226
|
|
15
|
+
delete deleteCookieOptions.maxAge;
|
|
16
|
+
res.clearCookie(cookieName, deleteCookieOptions);
|
|
17
|
+
}
|
|
18
|
+
exports.deleteCookie = deleteCookie;
|
|
19
|
+
//# sourceMappingURL=cookieUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookieUtils.js","sourceRoot":"","sources":["../../src/session/cookieUtils.ts"],"names":[],"mappings":";;;AAea,QAAA,2BAA2B,GAAW,aAAa,CAAC;AAEtD,QAAA,8BAA8B,GAAkB;IACvD,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAC1B,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,MAAM;CACjB,CAAC;AAEF,SAAgB,YAAY,CACxB,UAAkB,EAClB,aAA4B,EAC5B,GAAqB;IAErB,MAAM,mBAAmB,qBAClB,aAAa,CACnB,CAAC;IACF,6FAA6F;IAC7F,8EAA8E;IAC9E,OAAO,mBAAmB,CAAC,MAAM,CAAC;IAClC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;AACrD,CAAC;AAZD,oCAYC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import express from "express";
|
|
2
|
+
/**
|
|
3
|
+
* destroy the session.
|
|
4
|
+
* - will delete the session data from session store only.
|
|
5
|
+
* - will not delete session cookie (Call deleteCookie method for deleting cookie)
|
|
6
|
+
* @export
|
|
7
|
+
* @param {express.Request} req
|
|
8
|
+
* @return {*} {Promise<void>}
|
|
9
|
+
*/
|
|
10
|
+
export default function destroySession(req: express.Request): Promise<void>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
/**
|
|
13
|
+
* destroy the session.
|
|
14
|
+
* - will delete the session data from session store only.
|
|
15
|
+
* - will not delete session cookie (Call deleteCookie method for deleting cookie)
|
|
16
|
+
* @export
|
|
17
|
+
* @param {express.Request} req
|
|
18
|
+
* @return {*} {Promise<void>}
|
|
19
|
+
*/
|
|
20
|
+
function destroySession(req) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
return new Promise((resolve, reject) => {
|
|
23
|
+
var _a;
|
|
24
|
+
if ((_a = req === null || req === void 0 ? void 0 : req.session) === null || _a === void 0 ? void 0 : _a.destroy) {
|
|
25
|
+
req.session.destroy((err) => {
|
|
26
|
+
if (err) {
|
|
27
|
+
// Failed to access session storage to delete session data
|
|
28
|
+
reject(err);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
resolve();
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// --- express-session 1.17 may not always initialise session
|
|
37
|
+
// --- if req.session not exist, should just resolve promise
|
|
38
|
+
resolve();
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
exports.default = destroySession;
|
|
44
|
+
//# sourceMappingURL=destroySession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"destroySession.js","sourceRoot":"","sources":["../../src/session/destroySession.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA;;;;;;;GAOG;AACH,SAA8B,cAAc,CACxC,GAAoB;;QAEpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;YACnC,UAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,0CAAE,OAAO,EAAE;gBACvB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACxB,IAAI,GAAG,EAAE;wBACL,0DAA0D;wBAC1D,MAAM,CAAC,GAAG,CAAC,CAAC;qBACf;yBAAM;wBACH,OAAO,EAAE,CAAC;qBACb;gBACL,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,6DAA6D;gBAC7D,4DAA4D;gBAC5D,OAAO,EAAE,CAAC;aACb;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CAAA;AAnBD,iCAmBC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const cookie_signature_1 = __importDefault(require("cookie-signature"));
|
|
7
|
+
const cookieUtils_1 = require("./cookieUtils");
|
|
8
|
+
function getSessionId(req, secret = "") {
|
|
9
|
+
const sessionCookie = req.cookies[cookieUtils_1.DEFAULT_SESSION_COOKIE_NAME];
|
|
10
|
+
if (!sessionCookie) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
if (sessionCookie.substr(0, 2) === "s:") {
|
|
15
|
+
// --- process signed cookie
|
|
16
|
+
const unsignResult = cookie_signature_1.default.unsign(sessionCookie.slice(2), secret);
|
|
17
|
+
if (unsignResult === false) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return unsignResult;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return sessionCookie;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.default = getSessionId;
|
|
28
|
+
//# sourceMappingURL=getSessionId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSessionId.js","sourceRoot":"","sources":["../../src/session/getSessionId.ts"],"names":[],"mappings":";;;;;AACA,wEAAyC;AACzC,+CAA4D;AAE5D,SAAwB,YAAY,CAChC,GAAoB,EACpB,SAAiB,EAAE;IAEnB,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,yCAA2B,CAAW,CAAC;IACzE,IAAI,CAAC,aAAa,EAAE;QAChB,OAAO,IAAI,CAAC;KACf;SAAM;QACH,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;YACrC,4BAA4B;YAC5B,MAAM,YAAY,GAAG,0BAAS,CAAC,MAAM,CACjC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EACtB,MAAM,CACT,CAAC;YACF,IAAI,YAAY,KAAK,KAAK,EAAE;gBACxB,OAAO,IAAI,CAAC;aACf;YACD,OAAO,YAAY,CAAC;SACvB;aAAM;YACH,OAAO,aAAa,CAAC;SACxB;KACJ;AACL,CAAC;AAtBD,+BAsBC"}
|