@magda/typescript-common 2.3.2 → 3.0.0-alpha.0
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 +1 -1
- package/dist/AspectBuilder.js +1 -2
- package/dist/AspectCreationFailure.js +3 -4
- package/dist/AspectCreationFailure.js.map +1 -1
- package/dist/AsyncPage.js +59 -79
- package/dist/AsyncPage.js.map +1 -1
- package/dist/BaseApiClient.d.ts +3 -3
- package/dist/BaseApiClient.js +20 -13
- package/dist/BaseApiClient.js.map +1 -1
- package/dist/ConnectionResult.d.ts +2 -2
- package/dist/ConnectionResult.js +17 -22
- package/dist/ConnectionResult.js.map +1 -1
- package/dist/ConnectorRecordId.d.ts +1 -1
- package/dist/ConnectorRecordId.js +9 -13
- package/dist/ConnectorRecordId.js.map +1 -1
- package/dist/IndexerApiClient.d.ts +1 -1
- package/dist/IndexerApiClient.js +13 -32
- package/dist/IndexerApiClient.js.map +1 -1
- package/dist/JsonConnector.d.ts +9 -9
- package/dist/JsonConnector.js +163 -206
- package/dist/JsonConnector.js.map +1 -1
- package/dist/JsonTransformer.d.ts +3 -3
- package/dist/JsonTransformer.js +71 -75
- package/dist/JsonTransformer.js.map +1 -1
- package/dist/OpaCompileResponseParser.d.ts +4 -4
- package/dist/OpaCompileResponseParser.js +278 -211
- package/dist/OpaCompileResponseParser.js.map +1 -1
- package/dist/RecordCreationFailure.d.ts +1 -1
- package/dist/RecordCreationFailure.js +4 -4
- package/dist/RecordCreationFailure.js.map +1 -1
- package/dist/SQLUtils.d.ts +3 -3
- package/dist/SQLUtils.js +139 -195
- package/dist/SQLUtils.js.map +1 -1
- package/dist/ServerError.js +2 -4
- package/dist/ServerError.js.map +1 -1
- package/dist/Try.js +20 -35
- package/dist/Try.js.map +1 -1
- package/dist/addTrailingSlash.js +1 -4
- package/dist/addTrailingSlash.js.map +1 -1
- package/dist/appendUrlSegments.js +3 -8
- package/dist/appendUrlSegments.js.map +1 -1
- package/dist/authorization-api/AccessControlError.d.ts +1 -1
- package/dist/authorization-api/AccessControlError.js +2 -8
- package/dist/authorization-api/AccessControlError.js.map +1 -1
- package/dist/authorization-api/ApiClient.d.ts +3 -3
- package/dist/authorization-api/ApiClient.js +211 -272
- package/dist/authorization-api/ApiClient.js.map +1 -1
- package/dist/authorization-api/AuthError.d.ts +1 -1
- package/dist/authorization-api/AuthError.js +2 -8
- package/dist/authorization-api/AuthError.js.map +1 -1
- package/dist/authorization-api/GenericError.js +2 -4
- package/dist/authorization-api/GenericError.js.map +1 -1
- package/dist/authorization-api/authMiddleware.d.ts +3 -3
- package/dist/authorization-api/authMiddleware.js +19 -40
- package/dist/authorization-api/authMiddleware.js.map +1 -1
- package/dist/authorization-api/constants.js +9 -12
- package/dist/authorization-api/constants.js.map +1 -1
- package/dist/authorization-api/model.d.ts +8 -8
- package/dist/authorization-api/model.js +1 -2
- package/dist/coerceJson.js +1 -3
- package/dist/coerceJson.js.map +1 -1
- package/dist/createNoCacheFetchOptions.d.ts +1 -1
- package/dist/createNoCacheFetchOptions.js +4 -7
- package/dist/createNoCacheFetchOptions.js.map +1 -1
- package/dist/createServiceError.d.ts +1 -1
- package/dist/createServiceError.js +4 -9
- package/dist/createServiceError.js.map +1 -1
- package/dist/delay.js +1 -3
- package/dist/delay.js.map +1 -1
- package/dist/express/getNoCacheHeaders.js +1 -3
- package/dist/express/getNoCacheHeaders.js.map +1 -1
- package/dist/express/setResponseNoCache.d.ts +1 -1
- package/dist/express/setResponseNoCache.js +3 -8
- package/dist/express/setResponseNoCache.js.map +1 -1
- package/dist/express/status.d.ts +14 -15
- package/dist/express/status.js +135 -126
- package/dist/express/status.js.map +1 -1
- package/dist/fetchRequest.d.ts +6 -6
- package/dist/fetchRequest.js +36 -51
- package/dist/fetchRequest.js.map +1 -1
- package/dist/formatServiceError.js +1 -4
- package/dist/formatServiceError.js.map +1 -1
- package/dist/generated/registry/api.d.ts +4 -4
- package/dist/generated/registry/api.js +197 -102
- package/dist/generated/registry/api.js.map +1 -1
- package/dist/getAbsoluteUrl.js +8 -11
- package/dist/getAbsoluteUrl.js.map +1 -1
- package/dist/getBasePathFromUrl.js +3 -9
- package/dist/getBasePathFromUrl.js.map +1 -1
- package/dist/getBoolValWithDefault.js +1 -3
- package/dist/getBoolValWithDefault.js.map +1 -1
- package/dist/getRequest.js +9 -26
- package/dist/getRequest.js.map +1 -1
- package/dist/getRequestNoCache.js +4 -21
- package/dist/getRequestNoCache.js.map +1 -1
- package/dist/getStorageUrl.js +13 -23
- package/dist/getStorageUrl.js.map +1 -1
- package/dist/handleServerError.js +3 -9
- package/dist/handleServerError.js.map +1 -1
- package/dist/markdownToHtml.js +5 -11
- package/dist/markdownToHtml.js.map +1 -1
- package/dist/opa/AspectQuery.js +55 -79
- package/dist/opa/AspectQuery.js.map +1 -1
- package/dist/opa/AuthDecision.d.ts +2 -2
- package/dist/opa/AuthDecision.js +52 -69
- package/dist/opa/AuthDecision.js.map +1 -1
- package/dist/opa/AuthDecisionQueryClient.d.ts +2 -2
- package/dist/opa/AuthDecisionQueryClient.js +75 -102
- package/dist/opa/AuthDecisionQueryClient.js.map +1 -1
- package/dist/pgTypes.js +4 -9
- package/dist/pgTypes.js.map +1 -1
- package/dist/registry/AuthorizedRegistryClient.d.ts +4 -4
- package/dist/registry/AuthorizedRegistryClient.js +52 -92
- package/dist/registry/AuthorizedRegistryClient.js.map +1 -1
- package/dist/registry/RegistryClient.d.ts +2 -2
- package/dist/registry/RegistryClient.js +60 -76
- package/dist/registry/RegistryClient.js.map +1 -1
- package/dist/registry/TenantConsts.js +3 -6
- package/dist/registry/TenantConsts.js.map +1 -1
- package/dist/registry/model.js +1 -2
- package/dist/registry-manual/api.d.ts +1 -1
- package/dist/registry-manual/api.js +18 -7
- package/dist/registry-manual/api.js.map +1 -1
- package/dist/request.d.ts +2 -2
- package/dist/request.js +4 -9
- package/dist/request.js.map +1 -1
- package/dist/retry.d.ts +1 -1
- package/dist/retry.js +3 -9
- package/dist/retry.js.map +1 -1
- package/dist/retryBackoff.js +3 -9
- package/dist/retryBackoff.js.map +1 -1
- package/dist/runLater.js +1 -4
- package/dist/runLater.js.map +1 -1
- package/dist/session/GetUserId.d.ts +2 -2
- package/dist/session/GetUserId.js +10 -16
- package/dist/session/GetUserId.js.map +1 -1
- package/dist/session/GetUserSession.d.ts +1 -1
- package/dist/session/GetUserSession.js +6 -10
- package/dist/session/GetUserSession.js.map +1 -1
- package/dist/session/addJwtSecretFromEnvVar.js +1 -4
- package/dist/session/addJwtSecretFromEnvVar.js.map +1 -1
- package/dist/session/buildJwt.d.ts +1 -1
- package/dist/session/buildJwt.js +2 -5
- package/dist/session/buildJwt.js.map +1 -1
- package/dist/session/buildJwtFromReq.d.ts +2 -0
- package/dist/session/buildJwtFromReq.js +4 -0
- package/dist/session/buildJwtFromReq.js.map +1 -0
- package/dist/session/cookieUtils.d.ts +2 -13
- package/dist/session/cookieUtils.js +8 -9
- package/dist/session/cookieUtils.js.map +1 -1
- package/dist/session/destroySession.js +18 -33
- package/dist/session/destroySession.js.map +1 -1
- package/dist/session/getSessionId.js +5 -11
- package/dist/session/getSessionId.js.map +1 -1
- package/dist/tenant-api/AuthorizedTenantClient.d.ts +1 -1
- package/dist/tenant-api/AuthorizedTenantClient.js +22 -36
- package/dist/tenant-api/AuthorizedTenantClient.js.map +1 -1
- package/dist/tenant-api/Tenant.js +13 -5
- package/dist/tenant-api/Tenant.js.map +1 -1
- package/dist/test/JsonConnector.spec.js +56 -61
- package/dist/test/JsonConnector.spec.js.map +1 -1
- package/dist/test/JsonTransformer.spec.js +15 -19
- package/dist/test/JsonTransformer.spec.js.map +1 -1
- package/dist/test/arbitraries.d.ts +21 -21
- package/dist/test/arbitraries.js +85 -99
- package/dist/test/arbitraries.js.map +1 -1
- package/dist/test/aspect-templates/organization-details.d.ts +1 -4
- package/dist/test/aspect-templates/organization-details.js +1 -1
- package/dist/test/aspect-templates/organization-details.js.map +1 -1
- package/dist/test/buildApiClient.spec.js +81 -107
- package/dist/test/buildApiClient.spec.js.map +1 -1
- package/dist/test/buildAuthorizedTenantClient.spec.js +25 -40
- package/dist/test/buildAuthorizedTenantClient.spec.js.map +1 -1
- package/dist/test/connectors/MockExpressServer.js +9 -23
- package/dist/test/connectors/MockExpressServer.js.map +1 -1
- package/dist/test/connectors/MockRegistry.d.ts +1 -1
- package/dist/test/connectors/MockRegistry.js +11 -18
- package/dist/test/connectors/MockRegistry.js.map +1 -1
- package/dist/test/connectors/runConnectorTest.js +33 -55
- package/dist/test/connectors/runConnectorTest.js.map +1 -1
- package/dist/test/createMockAuthDecisionQueryClient.d.ts +4 -4
- package/dist/test/createMockAuthDecisionQueryClient.js +4 -9
- package/dist/test/createMockAuthDecisionQueryClient.js.map +1 -1
- package/dist/test/db/getTestDBConfig.js +1 -3
- package/dist/test/db/getTestDBConfig.js.map +1 -1
- package/dist/test/db/runMigrationSql.js +37 -58
- package/dist/test/db/runMigrationSql.js.map +1 -1
- package/dist/test/express/status.spec.js +81 -72
- package/dist/test/express/status.spec.js.map +1 -1
- package/dist/test/fakeArgv.js +6 -5
- package/dist/test/fakeArgv.js.map +1 -1
- package/dist/test/getBasePathFromUrl.spec.js +5 -10
- package/dist/test/getBasePathFromUrl.spec.js.map +1 -1
- package/dist/test/getStorageUrl.spec.js +22 -46
- package/dist/test/getStorageUrl.spec.js.map +1 -1
- package/dist/test/mockAuthApiHost.js +26 -28
- package/dist/test/mockAuthApiHost.js.map +1 -1
- package/dist/test/mockAuthorization.js +4 -10
- package/dist/test/mockAuthorization.js.map +1 -1
- package/dist/test/mockTenantDataStore.d.ts +1 -1
- package/dist/test/mockTenantDataStore.js +3 -5
- package/dist/test/mockTenantDataStore.js.map +1 -1
- package/dist/test/mockUserDataStore.d.ts +1 -1
- package/dist/test/mockUserDataStore.js +4 -6
- package/dist/test/mockUserDataStore.js.map +1 -1
- package/dist/test/registry/buildAuthorizedClient.spec.js +65 -87
- package/dist/test/registry/buildAuthorizedClient.spec.js.map +1 -1
- package/dist/test/session/buildJwt.spec.js +15 -19
- package/dist/test/session/buildJwt.spec.js.map +1 -1
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js +6 -11
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js.map +1 -1
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js +6 -11
- package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js.map +1 -1
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js +6 -11
- package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js.map +1 -1
- package/dist/test/testAsyncPage.spec.js +84 -105
- package/dist/test/testAsyncPage.spec.js.map +1 -1
- package/dist/test/testOpaCompileResponseParser.spec.js +192 -196
- package/dist/test/testOpaCompileResponseParser.spec.js.map +1 -1
- package/dist/test/util.js +1 -5
- package/dist/test/util.js.map +1 -1
- package/dist/unknown2Error.d.ts +2 -0
- package/dist/unknown2Error.js +3 -0
- package/dist/unknown2Error.js.map +1 -0
- package/dist/util/arrayToMaybe.d.ts +1 -1
- package/dist/util/arrayToMaybe.js +3 -6
- package/dist/util/arrayToMaybe.js.map +1 -1
- package/dist/util/cleanOrgTitle.js +1 -4
- package/dist/util/cleanOrgTitle.js.map +1 -1
- package/dist/util/escapeRegExp.js +1 -3
- package/dist/util/escapeRegExp.js.map +1 -1
- package/dist/util/getMinikubeIP.js +3 -9
- package/dist/util/getMinikubeIP.js.map +1 -1
- package/dist/util/isArray.js +1 -3
- package/dist/util/isArray.js.map +1 -1
- package/dist/util/isUuid.js +1 -3
- package/dist/util/isUuid.js.map +1 -1
- package/dist/util/unionToThrowable.d.ts +1 -1
- package/dist/util/unionToThrowable.js +3 -9
- package/dist/util/unionToThrowable.js.map +1 -1
- package/dist/utilityTypes.d.ts +1 -1
- package/dist/utilityTypes.js +1 -2
- package/package.json +44 -26
- package/dist/test/jsverify.d.ts +0 -2
- package/dist/test/jsverify.js +0 -8
- package/dist/test/jsverify.js.map +0 -1
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
import express from "express";
|
|
2
|
-
|
|
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
|
-
};
|
|
1
|
+
import express, { CookieOptions as CookieOptionsType } from "express";
|
|
2
|
+
export type CookieOptions = CookieOptionsType;
|
|
14
3
|
export declare const DEFAULT_SESSION_COOKIE_NAME: string;
|
|
15
4
|
export declare let DEFAULT_SESSION_COOKIE_OPTIONS: CookieOptions;
|
|
16
5
|
export declare function deleteCookie(cookieName: string, cookieOptions: CookieOptions, res: express.Response): void;
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 = {
|
|
1
|
+
export const DEFAULT_SESSION_COOKIE_NAME = "connect.sid";
|
|
2
|
+
export let DEFAULT_SESSION_COOKIE_OPTIONS = {
|
|
6
3
|
maxAge: 7 * 60 * 60 * 1000,
|
|
7
4
|
sameSite: "lax",
|
|
8
5
|
httpOnly: true,
|
|
9
|
-
secure:
|
|
6
|
+
secure: false
|
|
10
7
|
};
|
|
11
|
-
function deleteCookie(cookieName, cookieOptions, res) {
|
|
12
|
-
const deleteCookieOptions =
|
|
8
|
+
export function deleteCookie(cookieName, cookieOptions, res) {
|
|
9
|
+
const deleteCookieOptions = {
|
|
10
|
+
...cookieOptions
|
|
11
|
+
};
|
|
13
12
|
// --- `clearCookie` works in a way like it will fail to delete cookie if maxAge presents T_T
|
|
14
13
|
// --- https://github.com/expressjs/express/issues/3856#issuecomment-502397226
|
|
15
14
|
delete deleteCookieOptions.maxAge;
|
|
16
15
|
res.clearCookie(cookieName, deleteCookieOptions);
|
|
16
|
+
res.clearCookie(cookieName, cookieOptions);
|
|
17
17
|
}
|
|
18
|
-
exports.deleteCookie = deleteCookie;
|
|
19
18
|
//# sourceMappingURL=cookieUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookieUtils.js","sourceRoot":"","sources":["../../src/session/cookieUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cookieUtils.js","sourceRoot":"","sources":["../../src/session/cookieUtils.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,2BAA2B,GAAW,aAAa,CAAC;AAEjE,MAAM,CAAC,IAAI,8BAA8B,GAAkB;IACvD,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAC1B,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,KAAK;CAChB,CAAC;AAEF,MAAM,UAAU,YAAY,CACxB,UAAkB,EAClB,aAA4B,EAC5B,GAAqB;IAErB,MAAM,mBAAmB,GAAG;QACxB,GAAG,aAAa;KACnB,CAAC;IACF,6FAA6F;IAC7F,8EAA8E;IAC9E,OAAO,mBAAmB,CAAC,MAAM,CAAC;IAClC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IACjD,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -1,14 +1,3 @@
|
|
|
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
1
|
/**
|
|
13
2
|
* destroy the session.
|
|
14
3
|
* - will delete the session data from session store only.
|
|
@@ -17,28 +6,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
6
|
* @param {express.Request} req
|
|
18
7
|
* @return {*} {Promise<void>}
|
|
19
8
|
*/
|
|
20
|
-
function destroySession(req) {
|
|
21
|
-
return
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
resolve();
|
|
39
|
-
}
|
|
40
|
-
});
|
|
9
|
+
export default async function destroySession(req) {
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
if (req?.session?.destroy) {
|
|
12
|
+
req.session.destroy((err) => {
|
|
13
|
+
if (err) {
|
|
14
|
+
// Failed to access session storage to delete session data
|
|
15
|
+
reject(err);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
resolve();
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
// --- express-session 1.17 may not always initialise session
|
|
24
|
+
// --- if req.session not exist, should just resolve promise
|
|
25
|
+
resolve();
|
|
26
|
+
}
|
|
41
27
|
});
|
|
42
28
|
}
|
|
43
|
-
exports.default = destroySession;
|
|
44
29
|
//# sourceMappingURL=destroySession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"destroySession.js","sourceRoot":"","sources":["../../src/session/destroySession.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"destroySession.js","sourceRoot":"","sources":["../../src/session/destroySession.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CACxC,GAAoB;IAEpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;YACvB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,IAAI,GAAG,EAAE;oBACL,0DAA0D;oBAC1D,MAAM,CAAC,GAAG,CAAC,CAAC;iBACf;qBAAM;oBACH,OAAO,EAAE,CAAC;iBACb;YACL,CAAC,CAAC,CAAC;SACN;aAAM;YACH,6DAA6D;YAC7D,4DAA4D;YAC5D,OAAO,EAAE,CAAC;SACb;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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];
|
|
1
|
+
import signature from "cookie-signature";
|
|
2
|
+
import { DEFAULT_SESSION_COOKIE_NAME } from "./cookieUtils.js";
|
|
3
|
+
export default function getSessionId(req, secret = "") {
|
|
4
|
+
const sessionCookie = req.cookies[DEFAULT_SESSION_COOKIE_NAME];
|
|
10
5
|
if (!sessionCookie) {
|
|
11
6
|
return null;
|
|
12
7
|
}
|
|
13
8
|
else {
|
|
14
9
|
if (sessionCookie.substr(0, 2) === "s:") {
|
|
15
10
|
// --- process signed cookie
|
|
16
|
-
const unsignResult =
|
|
11
|
+
const unsignResult = signature.unsign(sessionCookie.slice(2), secret);
|
|
17
12
|
if (unsignResult === false) {
|
|
18
13
|
return null;
|
|
19
14
|
}
|
|
@@ -24,5 +19,4 @@ function getSessionId(req, secret = "") {
|
|
|
24
19
|
}
|
|
25
20
|
}
|
|
26
21
|
}
|
|
27
|
-
exports.default = getSessionId;
|
|
28
22
|
//# sourceMappingURL=getSessionId.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSessionId.js","sourceRoot":"","sources":["../../src/session/getSessionId.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getSessionId.js","sourceRoot":"","sources":["../../src/session/getSessionId.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,YAAY,CAChC,GAAoB,EACpB,SAAiB,EAAE;IAEnB,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,2BAA2B,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,SAAS,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"}
|
|
@@ -1,61 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
require("isomorphic-fetch");
|
|
16
|
-
const TenantConsts_1 = require("../registry/TenantConsts");
|
|
17
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
18
|
-
const retry_1 = __importDefault(require("../retry"));
|
|
19
|
-
const formatServiceError_1 = __importDefault(require("../formatServiceError"));
|
|
20
|
-
const createServiceError_1 = __importDefault(require("../createServiceError"));
|
|
21
|
-
const buildJwt_1 = __importDefault(require("../session/buildJwt"));
|
|
22
|
-
class AuthorizedTenantClient {
|
|
1
|
+
import fetch from "cross-fetch";
|
|
2
|
+
import { MAGDA_ADMIN_PORTAL_ID } from "../registry/TenantConsts.js";
|
|
3
|
+
import lodash from "lodash";
|
|
4
|
+
import retry from "../retry.js";
|
|
5
|
+
import formatServiceError from "../formatServiceError.js";
|
|
6
|
+
import createServiceError from "../createServiceError.js";
|
|
7
|
+
import buildJwt from "../session/buildJwt.js";
|
|
8
|
+
export default class AuthorizedTenantClient {
|
|
9
|
+
jwt = null;
|
|
10
|
+
requestInitOption = null;
|
|
11
|
+
url;
|
|
12
|
+
maxRetries;
|
|
13
|
+
secondsBetweenRetries;
|
|
14
|
+
defaultHeaders = {};
|
|
23
15
|
constructor({ urlStr, maxRetries = 2, secondsBetweenRetries = 10, jwtSecret = null, userId = null }) {
|
|
24
|
-
this.jwt = null;
|
|
25
|
-
this.requestInitOption = null;
|
|
26
|
-
this.defaultHeaders = {};
|
|
27
16
|
this.url = urlStr;
|
|
28
17
|
this.maxRetries = maxRetries;
|
|
29
18
|
this.secondsBetweenRetries = secondsBetweenRetries;
|
|
30
19
|
if (jwtSecret && userId) {
|
|
31
|
-
this.jwt =
|
|
20
|
+
this.jwt = buildJwt(jwtSecret, userId);
|
|
32
21
|
}
|
|
33
22
|
this.requestInitOption = {
|
|
34
23
|
headers: {
|
|
35
24
|
"X-Magda-Session": this.jwt,
|
|
36
25
|
"Content-Type": "application/json",
|
|
37
|
-
"X-Magda-Tenant-Id": `${
|
|
26
|
+
"X-Magda-Tenant-Id": `${MAGDA_ADMIN_PORTAL_ID}`
|
|
38
27
|
}
|
|
39
28
|
};
|
|
40
29
|
}
|
|
41
30
|
getMergeRequestInitOption(extraOptions = null) {
|
|
42
|
-
return
|
|
31
|
+
return lodash.merge({}, this.requestInitOption, extraOptions);
|
|
43
32
|
}
|
|
44
|
-
get() {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return res.json();
|
|
48
|
-
});
|
|
33
|
+
async get() {
|
|
34
|
+
const res = await fetch(`${this.url}` + "/tenants", this.getMergeRequestInitOption({ method: "GET" }));
|
|
35
|
+
return res.json();
|
|
49
36
|
}
|
|
50
37
|
getTenants() {
|
|
51
38
|
const operation = () => () => this.get();
|
|
52
|
-
return
|
|
39
|
+
return retry(operation(), this.secondsBetweenRetries, this.maxRetries, (e, retriesLeft) => console.log(formatServiceError("Failed to GET tenants.", e, retriesLeft)))
|
|
53
40
|
.then((result) => result)
|
|
54
41
|
.catch((e) => {
|
|
55
42
|
// --- we should re-throw the exception rather than return it as promise resolved value
|
|
56
|
-
throw
|
|
43
|
+
throw createServiceError(e);
|
|
57
44
|
});
|
|
58
45
|
}
|
|
59
46
|
}
|
|
60
|
-
exports.default = AuthorizedTenantClient;
|
|
61
47
|
//# sourceMappingURL=AuthorizedTenantClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizedTenantClient.js","sourceRoot":"","sources":["../../src/tenant-api/AuthorizedTenantClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthorizedTenantClient.js","sourceRoot":"","sources":["../../src/tenant-api/AuthorizedTenantClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAC1D,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAC1D,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAgB9C,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAC/B,GAAG,GAAW,IAAI,CAAC;IACnB,iBAAiB,GAAgB,IAAI,CAAC;IAEpC,GAAG,CAAS;IACZ,UAAU,CAAS;IACnB,qBAAqB,CAAS;IAC9B,cAAc,GAAQ,EAAE,CAAC;IAEnC,YAAY,EACR,MAAM,EACN,UAAU,GAAG,CAAC,EACd,qBAAqB,GAAG,EAAE,EAC1B,SAAS,GAAG,IAAI,EAChB,MAAM,GAAG,IAAI,EACD;QACZ,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QAEnD,IAAI,SAAS,IAAI,MAAM,EAAE;YACrB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,iBAAiB,GAAG;YACrB,OAAO,EAAE;gBACL,iBAAiB,EAAE,IAAI,CAAC,GAAG;gBAC3B,cAAc,EAAE,kBAAkB;gBAClC,mBAAmB,EAAE,GAAG,qBAAqB,EAAE;aAClD;SACJ,CAAC;IACN,CAAC;IAEO,yBAAyB,CAC7B,eAA4B,IAAI;QAEhC,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAEO,KAAK,CAAC,GAAG;QACb,MAAM,GAAG,GAAG,MAAM,KAAK,CACnB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,EAC1B,IAAI,CAAC,yBAAyB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CACpD,CAAC;QAEF,OAA0B,GAAG,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,UAAU;QACN,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzC,OAAY,KAAK,CACb,SAAS,EAAE,EACX,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,UAAU,EACf,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CACf,OAAO,CAAC,GAAG,CACP,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,EAAE,WAAW,CAAC,CAC/D,CACR;aACI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC;aACxB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,uFAAuF;YACvF,MAAM,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACX,CAAC;CACJ"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Tenant = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* A tenant in the tenants table.
|
|
6
3
|
*/
|
|
7
|
-
class Tenant {
|
|
4
|
+
export class Tenant {
|
|
5
|
+
/**
|
|
6
|
+
* The unique domain name of the tenant.
|
|
7
|
+
*/
|
|
8
|
+
"domainname";
|
|
9
|
+
/**
|
|
10
|
+
* The unique ID of the tenant
|
|
11
|
+
*/
|
|
12
|
+
"id";
|
|
13
|
+
/**
|
|
14
|
+
* The status of the tenant
|
|
15
|
+
*/
|
|
16
|
+
"enabled";
|
|
8
17
|
}
|
|
9
|
-
exports.Tenant = Tenant;
|
|
10
18
|
//# sourceMappingURL=Tenant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tenant.js","sourceRoot":"","sources":["../../src/tenant-api/Tenant.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Tenant.js","sourceRoot":"","sources":["../../src/tenant-api/Tenant.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,MAAM;IACf;;OAEG;IACH,YAAY,CAAS;IACrB;;OAEG;IACH,IAAI,CAAS;IACb;;OAEG;IACH,SAAS,CAAU;CACtB"}
|
|
@@ -1,53 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const chai_1 = require("chai");
|
|
7
|
-
require("mocha");
|
|
8
|
-
const nock_1 = __importDefault(require("nock"));
|
|
1
|
+
import { expect } from "chai";
|
|
2
|
+
import "mocha";
|
|
3
|
+
import nock from "nock";
|
|
9
4
|
// import sinon from "sinon";
|
|
10
|
-
|
|
5
|
+
import AsyncPage from "../AsyncPage.js";
|
|
11
6
|
// import { AspectDefinition } from "../generated/registry/api";
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
import AuthRegistryClient from "../registry/AuthorizedRegistryClient.js";
|
|
8
|
+
import JsonConnector from "../JsonConnector.js";
|
|
9
|
+
import JsonTransformer from "../JsonTransformer.js";
|
|
10
|
+
import ConnectorRecordId from "../ConnectorRecordId.js";
|
|
16
11
|
// ConnectorSource,
|
|
17
12
|
describe("JsonConnector", () => {
|
|
18
13
|
before(() => {
|
|
19
|
-
|
|
14
|
+
nock.disableNetConnect();
|
|
20
15
|
});
|
|
21
16
|
after(() => {
|
|
22
|
-
|
|
17
|
+
nock.enableNetConnect();
|
|
23
18
|
});
|
|
24
19
|
afterEach(() => {
|
|
25
|
-
|
|
20
|
+
nock.cleanAll();
|
|
26
21
|
});
|
|
27
22
|
const tenant_id_1 = 1;
|
|
28
23
|
describe("crawlTag", () => {
|
|
29
24
|
it("auto-generates a tag that is distinct between instances by default", () => {
|
|
30
25
|
for (let i = 0; i < 100; i++) {
|
|
31
|
-
const connectorA = new
|
|
26
|
+
const connectorA = new JsonConnector({
|
|
32
27
|
source: {
|
|
33
28
|
// --- id & name is compulsory
|
|
34
29
|
id: "xxx",
|
|
35
30
|
name: "xxx"
|
|
36
31
|
}
|
|
37
32
|
});
|
|
38
|
-
const connectorB = new
|
|
33
|
+
const connectorB = new JsonConnector({
|
|
39
34
|
source: {
|
|
40
35
|
// --- id & name is compulsory
|
|
41
36
|
id: "xxx",
|
|
42
37
|
name: "xxx"
|
|
43
38
|
}
|
|
44
39
|
});
|
|
45
|
-
|
|
40
|
+
expect(connectorA.sourceTag).not.to.equal(connectorB.sourceTag);
|
|
46
41
|
}
|
|
47
42
|
});
|
|
48
43
|
it("accepts an overridden tag", () => {
|
|
49
44
|
const tag = "blah";
|
|
50
|
-
const connector = new
|
|
45
|
+
const connector = new JsonConnector({
|
|
51
46
|
source: {
|
|
52
47
|
// --- id & name is compulsory
|
|
53
48
|
id: "xxx",
|
|
@@ -55,7 +50,7 @@ describe("JsonConnector", () => {
|
|
|
55
50
|
},
|
|
56
51
|
sourceTag: tag
|
|
57
52
|
});
|
|
58
|
-
|
|
53
|
+
expect(connector.sourceTag).to.equal(tag);
|
|
59
54
|
});
|
|
60
55
|
it("applies the tag to datasets", () => {
|
|
61
56
|
const { scope, connector } = setupCrawlTest();
|
|
@@ -78,8 +73,8 @@ describe("JsonConnector", () => {
|
|
|
78
73
|
.reply(201, { count: 1 });
|
|
79
74
|
return connector.run().then((result) => {
|
|
80
75
|
scope.done();
|
|
81
|
-
|
|
82
|
-
|
|
76
|
+
expect(result.recordsTrimmed).to.equal(1);
|
|
77
|
+
expect(result.trimStillProcessing).to.be.false;
|
|
83
78
|
});
|
|
84
79
|
});
|
|
85
80
|
it("accepts a 202 Accepted status from the registry when deleting", () => {
|
|
@@ -88,7 +83,7 @@ describe("JsonConnector", () => {
|
|
|
88
83
|
scope.delete(/.*/).reply(202);
|
|
89
84
|
return connector.run().then((result) => {
|
|
90
85
|
scope.done();
|
|
91
|
-
|
|
86
|
+
expect(result.trimStillProcessing).to.be.true;
|
|
92
87
|
});
|
|
93
88
|
});
|
|
94
89
|
it("Will add aspect to all records according to `presetAspects` config", () => {
|
|
@@ -114,7 +109,7 @@ describe("JsonConnector", () => {
|
|
|
114
109
|
return connector.run().then((result) => {
|
|
115
110
|
scope.done();
|
|
116
111
|
receivedRecords.forEach((record) => {
|
|
117
|
-
|
|
112
|
+
expect(record.aspects).to.have.deep.property("test-aspect-id", {
|
|
118
113
|
"test-aspect-data1": randomValue
|
|
119
114
|
});
|
|
120
115
|
});
|
|
@@ -145,12 +140,12 @@ describe("JsonConnector", () => {
|
|
|
145
140
|
scope.done();
|
|
146
141
|
receivedRecords.forEach((record) => {
|
|
147
142
|
if (record.id.indexOf("ds-") === 0) {
|
|
148
|
-
|
|
143
|
+
expect(record.aspects).to.have.deep.property("test-aspect-id", {
|
|
149
144
|
"test-aspect-data1": randomValue
|
|
150
145
|
});
|
|
151
146
|
}
|
|
152
147
|
else {
|
|
153
|
-
|
|
148
|
+
expect(record.aspects).to.not.have.property("test-aspect-id");
|
|
154
149
|
}
|
|
155
150
|
});
|
|
156
151
|
});
|
|
@@ -213,14 +208,14 @@ describe("JsonConnector", () => {
|
|
|
213
208
|
scope.done();
|
|
214
209
|
receivedRecords.forEach((record) => {
|
|
215
210
|
if (record.id.indexOf("ds-") === 0) {
|
|
216
|
-
|
|
211
|
+
expect(record.aspects).to.have.deep.property("test-aspect-id", {
|
|
217
212
|
// --- Dataset record's value should be kept for the first property:
|
|
218
213
|
"test-aspect-data1": datasetRandomValue1,
|
|
219
214
|
"test-aspect-data2": randomValue2
|
|
220
215
|
});
|
|
221
216
|
}
|
|
222
217
|
else {
|
|
223
|
-
|
|
218
|
+
expect(record.aspects).to.have.deep.property("test-aspect-id", {
|
|
224
219
|
"test-aspect-data1": randomValue1,
|
|
225
220
|
"test-aspect-data2": randomValue2
|
|
226
221
|
});
|
|
@@ -246,7 +241,7 @@ describe("JsonConnector", () => {
|
|
|
246
241
|
return connector.run().then((result) => {
|
|
247
242
|
scope.done();
|
|
248
243
|
receivedRecords.forEach((record) => {
|
|
249
|
-
|
|
244
|
+
expect(record.aspects["source"]).to.have.deep.property("extras", {
|
|
250
245
|
testData: randomValue
|
|
251
246
|
});
|
|
252
247
|
});
|
|
@@ -270,13 +265,13 @@ describe("JsonConnector", () => {
|
|
|
270
265
|
scope.delete(/.*/).reply(202);
|
|
271
266
|
return connector.run().then((result) => {
|
|
272
267
|
scope.done();
|
|
273
|
-
|
|
268
|
+
expect(receivedRecords.length).to.equal(3);
|
|
274
269
|
const datasets = receivedRecords.filter((record) => !!record.aspects["dataset-distributions"]);
|
|
275
|
-
|
|
276
|
-
|
|
270
|
+
expect(datasets.length).to.equal(1);
|
|
271
|
+
expect(datasets[0].name).to.equal("blah2-dataset-2");
|
|
277
272
|
const dists = receivedRecords.filter((record) => !record.aspects["dataset-distributions"]);
|
|
278
|
-
|
|
279
|
-
|
|
273
|
+
expect(dists.length).to.equal(2);
|
|
274
|
+
expect(dists.map((dist) => dist.name)).to.include.members([
|
|
280
275
|
"blah-dist-1",
|
|
281
276
|
"blah-dist-2"
|
|
282
277
|
]);
|
|
@@ -302,18 +297,18 @@ describe("JsonConnector", () => {
|
|
|
302
297
|
scope.delete(/.*/).reply(202);
|
|
303
298
|
return connector.run().then((result) => {
|
|
304
299
|
scope.done();
|
|
305
|
-
|
|
300
|
+
expect(receivedRecords.length).to.equal(2);
|
|
306
301
|
const datasets = receivedRecords.filter((record) => !!record.aspects["dataset-distributions"]);
|
|
307
|
-
|
|
308
|
-
|
|
302
|
+
expect(datasets.length).to.equal(1);
|
|
303
|
+
expect(datasets[0].name).to.equal("blah-dataset-1");
|
|
309
304
|
const dists = receivedRecords.filter((record) => !record.aspects["dataset-distributions"]);
|
|
310
|
-
|
|
311
|
-
|
|
305
|
+
expect(dists.length).to.equal(1);
|
|
306
|
+
expect(dists[0].name).to.equal("blah-dist-2");
|
|
312
307
|
});
|
|
313
308
|
});
|
|
314
309
|
function setupCrawlTest(config = {}, transformerConfig = {}) {
|
|
315
|
-
const scope =
|
|
316
|
-
const registry = new
|
|
310
|
+
const scope = nock("http://example.com");
|
|
311
|
+
const registry = new AuthRegistryClient({
|
|
317
312
|
baseUrl: "http://example.com",
|
|
318
313
|
jwtSecret: "squirrel",
|
|
319
314
|
userId: "b1fddd6f-e230-4068-bd2c-1a21844f1598",
|
|
@@ -322,7 +317,7 @@ describe("JsonConnector", () => {
|
|
|
322
317
|
});
|
|
323
318
|
const source = new FakeConnectorSource(config);
|
|
324
319
|
const transformer = new FakeJsonTransformer(transformerConfig);
|
|
325
|
-
const connector = new
|
|
320
|
+
const connector = new JsonConnector({
|
|
326
321
|
source,
|
|
327
322
|
transformer,
|
|
328
323
|
registry
|
|
@@ -331,34 +326,34 @@ describe("JsonConnector", () => {
|
|
|
331
326
|
}
|
|
332
327
|
});
|
|
333
328
|
});
|
|
334
|
-
class FakeJsonTransformer extends
|
|
329
|
+
class FakeJsonTransformer extends JsonTransformer {
|
|
335
330
|
getIdFromJsonOrganization(jsonOrganization, sourceId) {
|
|
336
|
-
return new
|
|
331
|
+
return new ConnectorRecordId("id", "Organization", "source");
|
|
337
332
|
}
|
|
338
333
|
getIdFromJsonDataset(jsonDataset, sourceId) {
|
|
339
|
-
return new
|
|
334
|
+
return new ConnectorRecordId("id", "Dataset", "source");
|
|
340
335
|
}
|
|
341
336
|
getIdFromJsonDistribution(jsonDistribution, jsonDataset, sourceId) {
|
|
342
|
-
return new
|
|
337
|
+
return new ConnectorRecordId("id", "Distribution", "source");
|
|
343
338
|
}
|
|
344
339
|
getNameFromJsonOrganization(jsonOrganization) {
|
|
345
|
-
return
|
|
340
|
+
return jsonOrganization?.name ? jsonOrganization.name : "name";
|
|
346
341
|
}
|
|
347
342
|
getNameFromJsonDataset(jsonDataset) {
|
|
348
|
-
return
|
|
343
|
+
return jsonDataset?.name ? jsonDataset.name : "name";
|
|
349
344
|
}
|
|
350
345
|
getNameFromJsonDistribution(jsonDistribution, jsonDataset) {
|
|
351
|
-
return
|
|
346
|
+
return jsonDistribution?.name ? jsonDistribution.name : "name";
|
|
352
347
|
}
|
|
353
348
|
}
|
|
354
349
|
class FakeConnectorSource {
|
|
350
|
+
id = "id";
|
|
351
|
+
name = "name";
|
|
352
|
+
hasFirstClassOrganizations = false;
|
|
353
|
+
presetRecordAspects = null;
|
|
354
|
+
extras = null;
|
|
355
|
+
customJsFilterCode = "";
|
|
355
356
|
constructor(config = {}) {
|
|
356
|
-
this.id = "id";
|
|
357
|
-
this.name = "name";
|
|
358
|
-
this.hasFirstClassOrganizations = false;
|
|
359
|
-
this.presetRecordAspects = null;
|
|
360
|
-
this.extras = null;
|
|
361
|
-
this.customJsFilterCode = "";
|
|
362
357
|
if (config.extras) {
|
|
363
358
|
this.extras = config.extras;
|
|
364
359
|
}
|
|
@@ -373,19 +368,19 @@ class FakeConnectorSource {
|
|
|
373
368
|
return Promise.resolve();
|
|
374
369
|
}
|
|
375
370
|
searchDatasetsByTitle(title, maxResults) {
|
|
376
|
-
return
|
|
371
|
+
return AsyncPage.single([]);
|
|
377
372
|
}
|
|
378
373
|
getJsonFirstClassOrganization(id) {
|
|
379
374
|
return Promise.resolve();
|
|
380
375
|
}
|
|
381
376
|
searchFirstClassOrganizationsByTitle(title, maxResults) {
|
|
382
|
-
return
|
|
377
|
+
return AsyncPage.single([]);
|
|
383
378
|
}
|
|
384
379
|
getJsonDatasetPublisherId(dataset) {
|
|
385
380
|
return "id";
|
|
386
381
|
}
|
|
387
382
|
getJsonDatasets() {
|
|
388
|
-
return
|
|
383
|
+
return AsyncPage.single([
|
|
389
384
|
{
|
|
390
385
|
blah: "blah-dataset-1",
|
|
391
386
|
name: "blah-dataset-1"
|
|
@@ -397,7 +392,7 @@ class FakeConnectorSource {
|
|
|
397
392
|
]);
|
|
398
393
|
}
|
|
399
394
|
getJsonFirstClassOrganizations() {
|
|
400
|
-
return
|
|
395
|
+
return AsyncPage.single([
|
|
401
396
|
{
|
|
402
397
|
blah: "blah-org-1",
|
|
403
398
|
name: "blah-org-1"
|
|
@@ -405,7 +400,7 @@ class FakeConnectorSource {
|
|
|
405
400
|
]);
|
|
406
401
|
}
|
|
407
402
|
getJsonDistributions() {
|
|
408
|
-
return
|
|
403
|
+
return AsyncPage.single([
|
|
409
404
|
{
|
|
410
405
|
blah: "blah-dist-1",
|
|
411
406
|
name: "blah-dist-1"
|