@magda/typescript-common 2.0.0-alpha.6 → 2.0.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.
Files changed (47) hide show
  1. package/dist/BaseApiClient.d.ts +1 -1
  2. package/dist/JsonConnector.js +1 -1
  3. package/dist/OpaCompileResponseParser.d.ts +2 -2
  4. package/dist/OpaCompileResponseParser.js.map +1 -1
  5. package/dist/SQLUtils.js +19 -12
  6. package/dist/SQLUtils.js.map +1 -1
  7. package/dist/authorization-api/ApiClient.js.map +1 -1
  8. package/dist/authorization-api/authMiddleware.d.ts +0 -6
  9. package/dist/authorization-api/authMiddleware.js +6 -73
  10. package/dist/authorization-api/authMiddleware.js.map +1 -1
  11. package/dist/getAbsoluteUrl.d.ts +3 -4
  12. package/dist/getAbsoluteUrl.js +1 -1
  13. package/dist/getAbsoluteUrl.js.map +1 -1
  14. package/dist/opa/AspectQuery.js +1 -1
  15. package/dist/opa/AspectQuery.js.map +1 -1
  16. package/dist/opa/AuthDecision.js +3 -1
  17. package/dist/opa/AuthDecision.js.map +1 -1
  18. package/dist/opa/AuthDecisionQueryClient.d.ts +1 -0
  19. package/dist/opa/AuthDecisionQueryClient.js +1 -1
  20. package/dist/opa/AuthDecisionQueryClient.js.map +1 -1
  21. package/dist/registry/AuthorizedRegistryClient.js +1 -1
  22. package/dist/registry/AuthorizedRegistryClient.js.map +1 -1
  23. package/dist/registry/RegistryClient.js +6 -3
  24. package/dist/registry/RegistryClient.js.map +1 -1
  25. package/dist/session/GetUserId.js.map +1 -1
  26. package/dist/session/destroySession.js.map +1 -1
  27. package/dist/test/arbitraries.js +14 -7
  28. package/dist/test/arbitraries.js.map +1 -1
  29. package/dist/test/connectors/runConnectorTest.js.map +1 -1
  30. package/dist/test/createMockAuthDecisionQueryClient.d.ts +6 -0
  31. package/dist/test/createMockAuthDecisionQueryClient.js +19 -0
  32. package/dist/test/createMockAuthDecisionQueryClient.js.map +1 -0
  33. package/dist/test/getStorageUrl.spec.js +1 -1
  34. package/dist/test/testAsyncPage.spec.js +1 -1
  35. package/package.json +6 -6
  36. package/dist/opa/OpaTypes.d.ts +0 -41
  37. package/dist/opa/OpaTypes.js +0 -3
  38. package/dist/opa/OpaTypes.js.map +0 -1
  39. package/dist/opa/getAuthDecision.d.ts +0 -19
  40. package/dist/opa/getAuthDecision.js +0 -94
  41. package/dist/opa/getAuthDecision.js.map +0 -1
  42. package/dist/opa/queryOpa.d.ts +0 -1
  43. package/dist/opa/queryOpa.js +0 -41
  44. package/dist/opa/queryOpa.js.map +0 -1
  45. package/dist/test/getAuthDecision.spec.d.ts +0 -1
  46. package/dist/test/getAuthDecision.spec.js +0 -22
  47. package/dist/test/getAuthDecision.spec.js.map +0 -1
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuthOr = exports.AuthAnd = exports.AuthQuery = void 0;
4
- class AuthQuery {
5
- constructor(path, sign, value) {
6
- this.path = path;
7
- this.sign = sign;
8
- this.value = value;
9
- }
10
- }
11
- exports.AuthQuery = AuthQuery;
12
- class AuthAnd {
13
- constructor(parts) {
14
- this.parts = parts;
15
- this.joiner = "and";
16
- }
17
- }
18
- exports.AuthAnd = AuthAnd;
19
- class AuthOr {
20
- constructor(parts) {
21
- this.parts = parts;
22
- this.joiner = "or";
23
- }
24
- }
25
- exports.AuthOr = AuthOr;
26
- function getAuthDecision(response) {
27
- if (response.result.support) {
28
- throw new Error("Cannot understand support in query " + JSON.stringify(response));
29
- }
30
- if (response.result.queries) {
31
- if (response.result.queries.findIndex((query) => !(query === null || query === void 0 ? void 0 : query.length)) !== -1) {
32
- // --- if any query is an empty array, we should consider it as an unconditional match / true
33
- return true;
34
- }
35
- return new AuthOr(response.result.queries.map((query) => new AuthAnd(query.map((queryPart) => {
36
- if (queryPart.terms.length !== 3) {
37
- throw new Error("Could not understand terms " +
38
- JSON.stringify(queryPart.terms));
39
- }
40
- const sign = getSign(queryPart.terms[0]);
41
- const path = getPath(queryPart.terms[1]);
42
- const value = getValue(queryPart.terms[2]);
43
- return new AuthQuery(path, sign, value);
44
- }))));
45
- }
46
- else {
47
- return false;
48
- }
49
- }
50
- exports.default = getAuthDecision;
51
- function getPath(term) {
52
- if (term.type !== "ref" ||
53
- term.value.length === 0 ||
54
- term.value[0].type !== "var" ||
55
- term.value[0].value !== "input") {
56
- throw new Error("Could not understand " + JSON.stringify(term));
57
- }
58
- return term.value.slice(2).map((valueObj) => valueObj.value.toString());
59
- }
60
- function getSign(term) {
61
- if (term.type !== "ref" ||
62
- term.value.length !== 1 ||
63
- term.value[0].type !== "var") {
64
- throw new Error(JSON.stringify(term) + " is not a sign");
65
- }
66
- switch (term.value[0].value) {
67
- case "eq":
68
- case "equal":
69
- return "=";
70
- case "gt":
71
- return ">";
72
- case "gte":
73
- return ">=";
74
- case "lt":
75
- return "<";
76
- case "lte":
77
- return "<=";
78
- case "neq":
79
- return "!=";
80
- default:
81
- throw new Error(term.value[0].value + " is not a sign");
82
- }
83
- }
84
- function getValue(term) {
85
- if (term.type === "string" ||
86
- term.type === "boolean" ||
87
- term.type === "number") {
88
- return term.value;
89
- }
90
- else {
91
- throw new Error("Could not get value from " + JSON.stringify(term));
92
- }
93
- }
94
- //# sourceMappingURL=getAuthDecision.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAuthDecision.js","sourceRoot":"","sources":["../../src/opa/getAuthDecision.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export default function queryOpa(query: string, input: object, unknowns: string[], jwtToken: string, opaUrl: string): Promise<import("./getAuthDecision").AuthDecision>;
@@ -1,41 +0,0 @@
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
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const isomorphic_fetch_1 = __importDefault(require("isomorphic-fetch"));
16
- const getAuthDecision_1 = __importDefault(require("./getAuthDecision"));
17
- function queryOpa(query, input, unknowns, jwtToken, opaUrl) {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- const body = {
20
- query,
21
- input,
22
- unknowns
23
- };
24
- const res = yield isomorphic_fetch_1.default(`${opaUrl}compile`, {
25
- method: "POST",
26
- body: JSON.stringify(body),
27
- headers: Object.assign({ "Content-Type": "application/json" }, (jwtToken ? { "X-Magda-Session": jwtToken } : {}))
28
- });
29
- if (res.status === 200) {
30
- return getAuthDecision_1.default(yield res.json());
31
- }
32
- else {
33
- throw new Error("Could not contact OPA - " +
34
- res.statusText +
35
- " " +
36
- (yield res.text()));
37
- }
38
- });
39
- }
40
- exports.default = queryOpa;
41
- //# sourceMappingURL=queryOpa.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryOpa.js","sourceRoot":"","sources":["../../src/opa/queryOpa.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,wEAAqC;AACrC,wEAAgD;AAEhD,SAA8B,QAAQ,CAClC,KAAa,EACb,KAAa,EACb,QAAkB,EAClB,QAAgB,EAChB,MAAc;;QAEd,MAAM,IAAI,GAAG;YACT,KAAK;YACL,KAAK;YACL,QAAQ;SACX,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,0BAAK,CAAC,GAAG,MAAM,SAAS,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,OAAO,kBACH,cAAc,EAAE,kBAAkB,IAC/B,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACvD;SACJ,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;YACpB,OAAO,yBAAe,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5C;aAAM;YACH,MAAM,IAAI,KAAK,CACX,0BAA0B;gBACtB,GAAG,CAAC,UAAU;gBACd,GAAG;gBACH,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CACzB,CAAC;SACL;IACL,CAAC;CAAA;AAhCD,2BAgCC"}
@@ -1 +0,0 @@
1
- import "mocha";
@@ -1,22 +0,0 @@
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 chai_1 = require("chai");
7
- const getAuthDecision_1 = __importDefault(require("../opa/getAuthDecision"));
8
- const unconditionalTrue_json_1 = __importDefault(require("./sampleOpaResponses/unconditionalTrue.json"));
9
- require("mocha");
10
- /*
11
- getAuthDecision only support limited use case of OPA response AST.
12
- Thus, we will not test other response sample as an error will be thrown (due to lack the support of resolving rule reference).
13
- This test case is to ensure the unconditional true case can be handled for #2956
14
- We should switch back to OpaCompileResponseParser to support more generic OPA AST
15
- */
16
- describe("Test OpaCompileResultParser with unconditional true response", function () {
17
- it("Should evalute query from parse result correctly", function () {
18
- const result = getAuthDecision_1.default(unconditionalTrue_json_1.default);
19
- chai_1.expect(result).to.be.equal(true);
20
- });
21
- });
22
- //# sourceMappingURL=getAuthDecision.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAuthDecision.spec.js","sourceRoot":"","sources":["../../src/test/getAuthDecision.spec.ts"],"names":[],"mappings":";;;;;AAAA,+BAA8B;AAC9B,6EAAqD;AACrD,yGAAoF;AACpF,iBAAe;AAEf;;;;;EAKE;AACF,QAAQ,CAAC,8DAA8D,EAAE;IACrE,EAAE,CAAC,kDAAkD,EAAE;QACnD,MAAM,MAAM,GAAG,yBAAe,CAAC,gCAAgC,CAAC,CAAC;QACjE,aAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}