@magda/typescript-common 2.0.0-alpha.0 → 2.0.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/BaseApiClient.d.ts +41 -0
- package/dist/BaseApiClient.js +63 -0
- package/dist/BaseApiClient.js.map +1 -0
- package/dist/IndexerApiClient.d.ts +16 -0
- package/dist/IndexerApiClient.js +39 -0
- package/dist/IndexerApiClient.js.map +1 -0
- package/dist/JsonTransformer.js +1 -2
- package/dist/JsonTransformer.js.map +1 -1
- package/dist/OpaCompileResponseParser.d.ts +115 -4
- package/dist/OpaCompileResponseParser.js +233 -19
- package/dist/OpaCompileResponseParser.js.map +1 -1
- package/dist/SQLUtils.d.ts +2 -2
- package/dist/SQLUtils.js +1 -1
- package/dist/SQLUtils.js.map +1 -1
- package/dist/Try.d.ts +17 -0
- package/dist/Try.js +68 -0
- package/dist/Try.js.map +1 -0
- package/dist/authorization-api/ApiClient.d.ts +9 -13
- package/dist/authorization-api/ApiClient.js +88 -31
- package/dist/authorization-api/ApiClient.js.map +1 -1
- package/dist/authorization-api/authMiddleware.d.ts +7 -7
- package/dist/authorization-api/authMiddleware.js +54 -52
- package/dist/authorization-api/authMiddleware.js.map +1 -1
- package/dist/authorization-api/constants.d.ts +1 -0
- package/dist/authorization-api/constants.js +2 -1
- package/dist/authorization-api/constants.js.map +1 -1
- package/dist/authorization-api/model.d.ts +61 -23
- package/dist/createNoCacheFetchOptions.d.ts +15 -0
- package/dist/createNoCacheFetchOptions.js +20 -0
- package/dist/createNoCacheFetchOptions.js.map +1 -0
- package/dist/fetchRequest.d.ts +11 -0
- package/dist/fetchRequest.js +62 -0
- package/dist/fetchRequest.js.map +1 -0
- package/dist/generated/registry/api.d.ts +12 -5
- package/dist/generated/registry/api.js +57 -0
- package/dist/generated/registry/api.js.map +1 -1
- package/dist/getAbsoluteUrl.d.ts +7 -7
- package/dist/getAbsoluteUrl.js +22 -19
- package/dist/getAbsoluteUrl.js.map +1 -1
- package/dist/getRequest.d.ts +1 -0
- package/dist/getRequest.js +28 -0
- package/dist/getRequest.js.map +1 -0
- package/dist/getRequestNoCache.d.ts +1 -0
- package/dist/getRequestNoCache.js +23 -0
- package/dist/getRequestNoCache.js.map +1 -0
- package/dist/getStorageUrl.d.ts +34 -0
- package/dist/getStorageUrl.js +138 -0
- package/dist/getStorageUrl.js.map +1 -0
- package/dist/handleServerError.d.ts +2 -0
- package/dist/handleServerError.js +17 -0
- package/dist/handleServerError.js.map +1 -0
- package/dist/opa/AspectQuery.js +3 -0
- package/dist/opa/AspectQuery.js.map +1 -1
- package/dist/opa/AuthDecision.js +1 -1
- package/dist/opa/AuthDecision.js.map +1 -1
- package/dist/opa/AuthDecisionQueryClient.js +8 -5
- package/dist/opa/AuthDecisionQueryClient.js.map +1 -1
- package/dist/registry/AuthorizedRegistryClient.d.ts +7 -11
- package/dist/registry/AuthorizedRegistryClient.js +56 -21
- package/dist/registry/AuthorizedRegistryClient.js.map +1 -1
- package/dist/registry/RegistryClient.d.ts +5 -7
- package/dist/registry/RegistryClient.js +34 -15
- package/dist/registry/RegistryClient.js.map +1 -1
- package/dist/registry/model.d.ts +5 -0
- package/dist/registry/model.js +3 -0
- package/dist/registry/model.js.map +1 -0
- package/dist/test/arbitraries.js +2 -4
- package/dist/test/arbitraries.js.map +1 -1
- package/dist/test/buildApiClient.spec.js +2 -41
- package/dist/test/buildApiClient.spec.js.map +1 -1
- package/dist/test/db/getTestDBConfig.js +1 -1
- package/dist/test/db/getTestDBConfig.js.map +1 -1
- package/dist/test/getStorageUrl.spec.d.ts +1 -0
- package/dist/test/getStorageUrl.spec.js +95 -0
- package/dist/test/getStorageUrl.spec.js.map +1 -0
- package/dist/test/mockAuthApiHost.js +2 -26
- package/dist/test/mockAuthApiHost.js.map +1 -1
- package/dist/test/mockAuthorization.js +2 -2
- package/dist/test/mockAuthorization.js.map +1 -1
- package/dist/test/registry/buildAuthorizedClient.spec.js +9 -7
- package/dist/test/registry/buildAuthorizedClient.spec.js.map +1 -1
- package/dist/test/sampleAuthDecisions/datasetPermissionWithOrgUnitConstraint.json +2 -2
- package/dist/test/sampleAuthDecisions/extraLargeResponse.json +2519 -0
- package/dist/test/sampleOpaResponses/datasetPermissionWithOrgUnitConstraint.json +2 -2
- package/dist/test/sampleOpaResponses/extraLargeResponse.json +104869 -0
- package/dist/test/testOpaCompileResponseParser.spec.js +19 -2
- package/dist/test/testOpaCompileResponseParser.spec.js.map +1 -1
- package/package.json +10 -11
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import urijs from "urijs";
|
|
2
|
+
interface ApiClientBaseConfig {
|
|
3
|
+
baseApiUrl?: string;
|
|
4
|
+
}
|
|
5
|
+
interface JWTBasedConfigOptions extends ApiClientBaseConfig {
|
|
6
|
+
jwtSecret?: string;
|
|
7
|
+
userId?: string;
|
|
8
|
+
}
|
|
9
|
+
interface ApiKeyBasedConfigOptions extends ApiClientBaseConfig {
|
|
10
|
+
apiKeyId?: string;
|
|
11
|
+
apiKey?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare type BaseApiClientConfig = JWTBasedConfigOptions & ApiKeyBasedConfigOptions;
|
|
14
|
+
export default abstract class BaseApiClient {
|
|
15
|
+
readonly authMode: "jwtToken" | "apiKey" | "noAuth";
|
|
16
|
+
protected baseApiUrl: string;
|
|
17
|
+
private readonly baseApiUri;
|
|
18
|
+
protected jwtSecret: string;
|
|
19
|
+
readonly apiKeyId: string;
|
|
20
|
+
protected apiKey: string;
|
|
21
|
+
readonly userId: string;
|
|
22
|
+
constructor(options: BaseApiClientConfig);
|
|
23
|
+
protected getBaseApiUri(): urijs;
|
|
24
|
+
protected setHeader(headers: HeadersInit | undefined | null, headerName: string, headerValue: string): HeadersInit;
|
|
25
|
+
protected addAuthHeader(config?: RequestInit): {
|
|
26
|
+
body?: BodyInit;
|
|
27
|
+
cache?: RequestCache;
|
|
28
|
+
credentials?: RequestCredentials;
|
|
29
|
+
headers?: HeadersInit;
|
|
30
|
+
integrity?: string;
|
|
31
|
+
keepalive?: boolean;
|
|
32
|
+
method?: string;
|
|
33
|
+
mode?: RequestMode;
|
|
34
|
+
redirect?: RequestRedirect;
|
|
35
|
+
referrer?: string;
|
|
36
|
+
referrerPolicy?: ReferrerPolicy;
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
window?: any;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
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 urijs_1 = __importDefault(require("urijs"));
|
|
7
|
+
const buildJwt_1 = __importDefault(require("./session/buildJwt"));
|
|
8
|
+
class BaseApiClient {
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.baseApiUrl = options.baseApiUrl
|
|
11
|
+
? options.baseApiUrl
|
|
12
|
+
: "http://localhost:6103/v0";
|
|
13
|
+
if (!this.baseApiUrl) {
|
|
14
|
+
throw new Error("IndexerApiClient: baseApiUrl cannot be empty!");
|
|
15
|
+
}
|
|
16
|
+
this.baseApiUri = urijs_1.default(this.baseApiUrl);
|
|
17
|
+
this.apiKey = options.apiKey;
|
|
18
|
+
this.apiKeyId = options.apiKeyId;
|
|
19
|
+
this.jwtSecret = options.jwtSecret;
|
|
20
|
+
this.userId = options.userId;
|
|
21
|
+
if (this.apiKey && this.apiKeyId) {
|
|
22
|
+
this.authMode = "apiKey";
|
|
23
|
+
}
|
|
24
|
+
else if (this.jwtSecret && this.userId) {
|
|
25
|
+
this.authMode = "jwtToken";
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.authMode = "noAuth";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
getBaseApiUri() {
|
|
32
|
+
return this.baseApiUri.clone();
|
|
33
|
+
}
|
|
34
|
+
setHeader(headers, headerName, headerValue) {
|
|
35
|
+
if (!headers) {
|
|
36
|
+
headers = {};
|
|
37
|
+
}
|
|
38
|
+
if (headers instanceof Headers) {
|
|
39
|
+
headers.set(headerName, headerValue);
|
|
40
|
+
return headers;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
headers[headerName] = headerValue;
|
|
44
|
+
return headers;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
addAuthHeader(config) {
|
|
48
|
+
config = config ? config : {};
|
|
49
|
+
switch (this.authMode) {
|
|
50
|
+
case "apiKey":
|
|
51
|
+
let headers = config.headers;
|
|
52
|
+
headers = this.setHeader(headers, "X-Magda-API-Key-Id", this.apiKeyId);
|
|
53
|
+
headers = this.setHeader(headers, "X-Magda-API-Key", this.apiKey);
|
|
54
|
+
return Object.assign(Object.assign({}, config), { headers });
|
|
55
|
+
case "jwtToken":
|
|
56
|
+
return Object.assign(Object.assign({}, config), { headers: this.setHeader(config.headers, "X-Magda-Session", buildJwt_1.default(this.jwtSecret, this.userId)) });
|
|
57
|
+
case "noAuth":
|
|
58
|
+
return Object.assign({}, config);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.default = BaseApiClient;
|
|
63
|
+
//# sourceMappingURL=BaseApiClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseApiClient.js","sourceRoot":"","sources":["../src/BaseApiClient.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,kEAA0C;AAmB1C,MAA8B,aAAa;IAUvC,YAAY,OAA4B;QACpC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;YAChC,CAAC,CAAC,OAAO,CAAC,UAAU;YACpB,CAAC,CAAC,0BAA0B,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SACpE;QACD,IAAI,CAAC,UAAU,GAAG,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;YACtC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC9B;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC5B;IACL,CAAC;IAES,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAES,SAAS,CACf,OAAuC,EACvC,UAAkB,EAClB,WAAmB;QAEnB,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,GAAG,EAAE,CAAC;SAChB;QACD,IAAI,OAAO,YAAY,OAAO,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACrC,OAAO,OAAO,CAAC;SAClB;aAAM;YACF,OAAe,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;YAC3C,OAAO,OAAO,CAAC;SAClB;IACL,CAAC;IAES,aAAa,CAAC,MAAoB;QACxC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACnB,KAAK,QAAQ;gBACT,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,OAAO,GAAG,IAAI,CAAC,SAAS,CACpB,OAAO,EACP,oBAAoB,EACpB,IAAI,CAAC,QAAQ,CAChB,CAAC;gBACF,OAAO,GAAG,IAAI,CAAC,SAAS,CACpB,OAAO,EACP,iBAAiB,EACjB,IAAI,CAAC,MAAM,CACd,CAAC;gBACF,uCACO,MAAM,KACT,OAAO,IACT;YACN,KAAK,UAAU;gBACX,uCACO,MAAM,KACT,OAAO,EAAE,IAAI,CAAC,SAAS,CACnB,MAAM,CAAC,OAAO,EACd,iBAAiB,EACjB,kBAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CACxC,IACH;YACN,KAAK,QAAQ;gBACT,yBAAY,MAAM,EAAG;SAC5B;IACL,CAAC;CACJ;AAtFD,gCAsFC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import BaseApiClient, { BaseApiClientConfig } from "./BaseApiClient";
|
|
2
|
+
export interface IndexResult {
|
|
3
|
+
successes: number;
|
|
4
|
+
failures: number;
|
|
5
|
+
warns: number;
|
|
6
|
+
failureReasons: string[];
|
|
7
|
+
warnReasons: string[];
|
|
8
|
+
}
|
|
9
|
+
export interface DeleteResult {
|
|
10
|
+
deleted: boolean;
|
|
11
|
+
}
|
|
12
|
+
export default class IndexerApiClient extends BaseApiClient {
|
|
13
|
+
constructor(options: BaseApiClientConfig);
|
|
14
|
+
indexDataset(datasetId: string): Promise<IndexResult>;
|
|
15
|
+
deleteDataset(datasetId: string): Promise<DeleteResult>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 fetchRequest_1 = __importDefault(require("./fetchRequest"));
|
|
16
|
+
const BaseApiClient_1 = __importDefault(require("./BaseApiClient"));
|
|
17
|
+
class IndexerApiClient extends BaseApiClient_1.default {
|
|
18
|
+
constructor(options) {
|
|
19
|
+
super(options);
|
|
20
|
+
}
|
|
21
|
+
indexDataset(datasetId) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
return yield fetchRequest_1.default("put", this.getBaseApiUri()
|
|
24
|
+
.segmentCoded("dataset")
|
|
25
|
+
.segmentCoded(datasetId)
|
|
26
|
+
.toString(), undefined, undefined, false, this.addAuthHeader());
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
deleteDataset(datasetId) {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
return yield fetchRequest_1.default("delete", this.getBaseApiUri()
|
|
32
|
+
.segmentCoded("dataset")
|
|
33
|
+
.segmentCoded(datasetId)
|
|
34
|
+
.toString(), undefined, undefined, false, this.addAuthHeader());
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.default = IndexerApiClient;
|
|
39
|
+
//# sourceMappingURL=IndexerApiClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexerApiClient.js","sourceRoot":"","sources":["../src/IndexerApiClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kEAA0C;AAC1C,oEAAqE;AAcrE,MAAqB,gBAAiB,SAAQ,uBAAa;IACvD,YAAY,OAA4B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAEK,YAAY,CAAC,SAAiB;;YAChC,OAAO,MAAM,sBAAY,CACrB,KAAK,EACL,IAAI,CAAC,aAAa,EAAE;iBACf,YAAY,CAAC,SAAS,CAAC;iBACvB,YAAY,CAAC,SAAS,CAAC;iBACvB,QAAQ,EAAE,EACf,SAAS,EACT,SAAS,EACT,KAAK,EACL,IAAI,CAAC,aAAa,EAAE,CACvB,CAAC;QACN,CAAC;KAAA;IAEK,aAAa,CAAC,SAAiB;;YACjC,OAAO,MAAM,sBAAY,CACrB,QAAQ,EACR,IAAI,CAAC,aAAa,EAAE;iBACf,YAAY,CAAC,SAAS,CAAC;iBACvB,YAAY,CAAC,SAAS,CAAC;iBACvB,QAAQ,EAAE,EACf,SAAS,EACT,SAAS,EACT,KAAK,EACL,IAAI,CAAC,aAAa,EAAE,CACvB,CAAC;QACN,CAAC;KAAA;CACJ;AAhCD,mCAgCC"}
|
package/dist/JsonTransformer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonTransformer.js","sourceRoot":"","sources":["../src/JsonTransformer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"JsonTransformer.js","sourceRoot":"","sources":["../src/JsonTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,17 @@ export declare class RegoRule {
|
|
|
53
53
|
* @memberof RegoRule
|
|
54
54
|
*/
|
|
55
55
|
value: RegoValue;
|
|
56
|
+
/**
|
|
57
|
+
* Whether the rule contains any expressions that has any resolvable references.
|
|
58
|
+
* reference start with `input.` should be considered as non-resolvable in context of partial evaluation.
|
|
59
|
+
* When this field is set to `true`, we should not attempt to evaluate this expression.
|
|
60
|
+
* i.e. evaluate() method should return immediately.
|
|
61
|
+
* This will speed up evaluation process.
|
|
62
|
+
*
|
|
63
|
+
* @type {boolean}
|
|
64
|
+
* @memberof RegoRule
|
|
65
|
+
*/
|
|
66
|
+
hasNoResolvableRef: boolean;
|
|
56
67
|
/**
|
|
57
68
|
* All Rego expressions in this rule's rule body. @see RegoExp
|
|
58
69
|
*
|
|
@@ -86,6 +97,24 @@ export declare class RegoRule {
|
|
|
86
97
|
*/
|
|
87
98
|
private parser;
|
|
88
99
|
constructor(options: RegoRuleOptions);
|
|
100
|
+
/**
|
|
101
|
+
* OPA PE result might contain duplicate expressions.
|
|
102
|
+
* https://github.com/open-policy-agent/opa/issues/4516
|
|
103
|
+
* This method will remove those duplication by simply string comparison.
|
|
104
|
+
*
|
|
105
|
+
* @return {*}
|
|
106
|
+
* @memberof RegoRule
|
|
107
|
+
*/
|
|
108
|
+
removeDuplicateExpressions(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Test whether the rule is an "impossible" rule.
|
|
111
|
+
* If so, the rule should be simply discarded.
|
|
112
|
+
* See: https://github.com/open-policy-agent/opa/issues/4516
|
|
113
|
+
*
|
|
114
|
+
* @return {*} {boolean}
|
|
115
|
+
* @memberof RegoRule
|
|
116
|
+
*/
|
|
117
|
+
isImpossible(): boolean;
|
|
89
118
|
clone(options?: Partial<RegoRuleOptions>): RegoRule;
|
|
90
119
|
/**
|
|
91
120
|
* Re-evaluate this rule
|
|
@@ -117,12 +146,26 @@ export declare class RegoRule {
|
|
|
117
146
|
fullName: string;
|
|
118
147
|
name: string;
|
|
119
148
|
expressions: ({
|
|
149
|
+
negated: boolean;
|
|
150
|
+
terms: {
|
|
151
|
+
type: string;
|
|
152
|
+
value: RegoTermValue;
|
|
153
|
+
}[];
|
|
154
|
+
index?: undefined;
|
|
155
|
+
} | {
|
|
120
156
|
negated: boolean;
|
|
121
157
|
index: number;
|
|
122
158
|
terms: {
|
|
123
159
|
type: string;
|
|
124
160
|
value: RegoTermValue;
|
|
125
161
|
}[];
|
|
162
|
+
} | {
|
|
163
|
+
terms: {
|
|
164
|
+
type: string;
|
|
165
|
+
value: RegoTermValue;
|
|
166
|
+
}[];
|
|
167
|
+
negated?: undefined;
|
|
168
|
+
index?: undefined;
|
|
126
169
|
} | {
|
|
127
170
|
index: number;
|
|
128
171
|
terms: {
|
|
@@ -193,6 +236,17 @@ export declare class RegoTerm {
|
|
|
193
236
|
type: string;
|
|
194
237
|
value: RegoTermValue;
|
|
195
238
|
private parser;
|
|
239
|
+
/**
|
|
240
|
+
* Whether the expression contains any resolvable references.
|
|
241
|
+
* reference start with `input.` should be considered as non-resolvable in context of partial evaluation.
|
|
242
|
+
* When this field is set to `true`, we should not attempt to evaluate this expression.
|
|
243
|
+
* i.e. evaluate() method should return immediately.
|
|
244
|
+
* This will speed up evaluation process.
|
|
245
|
+
*
|
|
246
|
+
* @type {boolean}
|
|
247
|
+
* @memberof RegoTerm
|
|
248
|
+
*/
|
|
249
|
+
hasNoResolvableRef: boolean;
|
|
196
250
|
constructor(type: string, value: RegoTermValue, parser: OpaCompileResponseParser);
|
|
197
251
|
clone(): RegoTerm;
|
|
198
252
|
/**
|
|
@@ -201,7 +255,7 @@ export declare class RegoTerm {
|
|
|
201
255
|
* @returns
|
|
202
256
|
* @memberof RegoTerm
|
|
203
257
|
*/
|
|
204
|
-
asString():
|
|
258
|
+
asString(): string;
|
|
205
259
|
/**
|
|
206
260
|
* If it's a reference term. A operator is an Reference term as well
|
|
207
261
|
*
|
|
@@ -317,6 +371,17 @@ export declare class RegoExp {
|
|
|
317
371
|
* @memberof RegoExp
|
|
318
372
|
*/
|
|
319
373
|
terms: RegoTerm[];
|
|
374
|
+
/**
|
|
375
|
+
* Whether the expression contains any resolvable references.
|
|
376
|
+
* reference start with `input.` should be considered as non-resolvable in context of partial evaluation.
|
|
377
|
+
* When this field is set to `true`, we should not attempt to evaluate this expression.
|
|
378
|
+
* i.e. evaluate() method should return immediately.
|
|
379
|
+
* This will speed up evaluation process.
|
|
380
|
+
*
|
|
381
|
+
* @type {boolean}
|
|
382
|
+
* @memberof RegoExp
|
|
383
|
+
*/
|
|
384
|
+
hasNoResolvableRef: boolean;
|
|
320
385
|
/**
|
|
321
386
|
* Whether this expression is a negative expression
|
|
322
387
|
* i.e. it's final evaluation result should be `false` if result is `true`
|
|
@@ -355,7 +420,15 @@ export declare class RegoExp {
|
|
|
355
420
|
* @returns
|
|
356
421
|
* @memberof RegoExp
|
|
357
422
|
*/
|
|
358
|
-
termsAsString():
|
|
423
|
+
termsAsString(): string;
|
|
424
|
+
/**
|
|
425
|
+
* Print concise format expression string presentation.
|
|
426
|
+
* Can be used for debugging
|
|
427
|
+
*
|
|
428
|
+
* @return {*}
|
|
429
|
+
* @memberof RegoExp
|
|
430
|
+
*/
|
|
431
|
+
asString(): string;
|
|
359
432
|
/**
|
|
360
433
|
* Output human readable string
|
|
361
434
|
*
|
|
@@ -404,13 +477,27 @@ export declare class RegoExp {
|
|
|
404
477
|
* @memberof RegoExp
|
|
405
478
|
*/
|
|
406
479
|
evaluate(): this;
|
|
407
|
-
toData(index?: number): {
|
|
480
|
+
toData(index?: number, ignoreIndex?: boolean, ignoreNegated?: boolean): {
|
|
481
|
+
negated: boolean;
|
|
482
|
+
terms: {
|
|
483
|
+
type: string;
|
|
484
|
+
value: RegoTermValue;
|
|
485
|
+
}[];
|
|
486
|
+
index?: undefined;
|
|
487
|
+
} | {
|
|
408
488
|
negated: boolean;
|
|
409
489
|
index: number;
|
|
410
490
|
terms: {
|
|
411
491
|
type: string;
|
|
412
492
|
value: RegoTermValue;
|
|
413
493
|
}[];
|
|
494
|
+
} | {
|
|
495
|
+
terms: {
|
|
496
|
+
type: string;
|
|
497
|
+
value: RegoTermValue;
|
|
498
|
+
}[];
|
|
499
|
+
negated?: undefined;
|
|
500
|
+
index?: undefined;
|
|
414
501
|
} | {
|
|
415
502
|
index: number;
|
|
416
503
|
terms: {
|
|
@@ -419,7 +506,7 @@ export declare class RegoExp {
|
|
|
419
506
|
}[];
|
|
420
507
|
negated?: undefined;
|
|
421
508
|
};
|
|
422
|
-
toJSON(index?: number): string;
|
|
509
|
+
toJSON(index?: number, ignoreIndex?: boolean, ignoreNegated?: boolean): string;
|
|
423
510
|
toConciseData(): {
|
|
424
511
|
negated: boolean;
|
|
425
512
|
operator: string;
|
|
@@ -440,6 +527,17 @@ export declare class RegoExp {
|
|
|
440
527
|
*/
|
|
441
528
|
export declare class RegoRef {
|
|
442
529
|
parts: RegoRefPart[];
|
|
530
|
+
/**
|
|
531
|
+
* Whether the expression contains any resolvable references.
|
|
532
|
+
* reference start with `input.` should be considered as non-resolvable in context of partial evaluation.
|
|
533
|
+
* When this field is set to `true`, we should not attempt to evaluate this expression.
|
|
534
|
+
* i.e. evaluate() method should return immediately.
|
|
535
|
+
* This will speed up evaluation process.
|
|
536
|
+
*
|
|
537
|
+
* @type {boolean}
|
|
538
|
+
* @memberof RegoRef
|
|
539
|
+
*/
|
|
540
|
+
hasNoResolvableRef: boolean;
|
|
443
541
|
constructor(parts: RegoRefPart[]);
|
|
444
542
|
clone(): RegoRef;
|
|
445
543
|
toData(): {
|
|
@@ -475,6 +573,17 @@ export declare class RegoRuleSet {
|
|
|
475
573
|
value?: any;
|
|
476
574
|
isCompleteEvaluated: boolean;
|
|
477
575
|
parser: OpaCompileResponseParser;
|
|
576
|
+
/**
|
|
577
|
+
* Whether the ruleSet contains any rules that has any resolvable references.
|
|
578
|
+
* reference start with `input.` should be considered as non-resolvable in context of partial evaluation.
|
|
579
|
+
* When this field is set to `true`, we should not attempt to evaluate this expression.
|
|
580
|
+
* i.e. evaluate() method should return immediately.
|
|
581
|
+
* This will speed up evaluation process.
|
|
582
|
+
*
|
|
583
|
+
* @type {boolean}
|
|
584
|
+
* @memberof RegoRuleSet
|
|
585
|
+
*/
|
|
586
|
+
hasNoResolvableRef: boolean;
|
|
478
587
|
constructor(parser: OpaCompileResponseParser, rules: RegoRule[], fullName?: string, name?: string);
|
|
479
588
|
evaluate(): RegoRuleSet;
|
|
480
589
|
isResolvable(): boolean;
|
|
@@ -546,6 +655,7 @@ export default class OpaCompileResponseParser {
|
|
|
546
655
|
* @memberof OpaCompileResponseParser
|
|
547
656
|
*/
|
|
548
657
|
readonly pseudoQueryRuleName: string;
|
|
658
|
+
private ruleDuplicationCheckCache;
|
|
549
659
|
private setQueryRuleResult;
|
|
550
660
|
/**
|
|
551
661
|
* Parse OPA result Response
|
|
@@ -555,6 +665,7 @@ export default class OpaCompileResponseParser {
|
|
|
555
665
|
* @memberof OpaCompileResponseParser
|
|
556
666
|
*/
|
|
557
667
|
parse(json: any): RegoRule[];
|
|
668
|
+
addRule(rule: RegoRule): void;
|
|
558
669
|
isRefResolvable(fullName: string): boolean;
|
|
559
670
|
getRefValue(fullName: string): any;
|
|
560
671
|
private resolveAllRuleSets;
|