@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.
Files changed (88) hide show
  1. package/dist/BaseApiClient.d.ts +41 -0
  2. package/dist/BaseApiClient.js +63 -0
  3. package/dist/BaseApiClient.js.map +1 -0
  4. package/dist/IndexerApiClient.d.ts +16 -0
  5. package/dist/IndexerApiClient.js +39 -0
  6. package/dist/IndexerApiClient.js.map +1 -0
  7. package/dist/JsonTransformer.js +1 -2
  8. package/dist/JsonTransformer.js.map +1 -1
  9. package/dist/OpaCompileResponseParser.d.ts +115 -4
  10. package/dist/OpaCompileResponseParser.js +233 -19
  11. package/dist/OpaCompileResponseParser.js.map +1 -1
  12. package/dist/SQLUtils.d.ts +2 -2
  13. package/dist/SQLUtils.js +1 -1
  14. package/dist/SQLUtils.js.map +1 -1
  15. package/dist/Try.d.ts +17 -0
  16. package/dist/Try.js +68 -0
  17. package/dist/Try.js.map +1 -0
  18. package/dist/authorization-api/ApiClient.d.ts +9 -13
  19. package/dist/authorization-api/ApiClient.js +88 -31
  20. package/dist/authorization-api/ApiClient.js.map +1 -1
  21. package/dist/authorization-api/authMiddleware.d.ts +7 -7
  22. package/dist/authorization-api/authMiddleware.js +54 -52
  23. package/dist/authorization-api/authMiddleware.js.map +1 -1
  24. package/dist/authorization-api/constants.d.ts +1 -0
  25. package/dist/authorization-api/constants.js +2 -1
  26. package/dist/authorization-api/constants.js.map +1 -1
  27. package/dist/authorization-api/model.d.ts +61 -23
  28. package/dist/createNoCacheFetchOptions.d.ts +15 -0
  29. package/dist/createNoCacheFetchOptions.js +20 -0
  30. package/dist/createNoCacheFetchOptions.js.map +1 -0
  31. package/dist/fetchRequest.d.ts +11 -0
  32. package/dist/fetchRequest.js +62 -0
  33. package/dist/fetchRequest.js.map +1 -0
  34. package/dist/generated/registry/api.d.ts +12 -5
  35. package/dist/generated/registry/api.js +57 -0
  36. package/dist/generated/registry/api.js.map +1 -1
  37. package/dist/getAbsoluteUrl.d.ts +7 -7
  38. package/dist/getAbsoluteUrl.js +22 -19
  39. package/dist/getAbsoluteUrl.js.map +1 -1
  40. package/dist/getRequest.d.ts +1 -0
  41. package/dist/getRequest.js +28 -0
  42. package/dist/getRequest.js.map +1 -0
  43. package/dist/getRequestNoCache.d.ts +1 -0
  44. package/dist/getRequestNoCache.js +23 -0
  45. package/dist/getRequestNoCache.js.map +1 -0
  46. package/dist/getStorageUrl.d.ts +34 -0
  47. package/dist/getStorageUrl.js +138 -0
  48. package/dist/getStorageUrl.js.map +1 -0
  49. package/dist/handleServerError.d.ts +2 -0
  50. package/dist/handleServerError.js +17 -0
  51. package/dist/handleServerError.js.map +1 -0
  52. package/dist/opa/AspectQuery.js +3 -0
  53. package/dist/opa/AspectQuery.js.map +1 -1
  54. package/dist/opa/AuthDecision.js +1 -1
  55. package/dist/opa/AuthDecision.js.map +1 -1
  56. package/dist/opa/AuthDecisionQueryClient.js +8 -5
  57. package/dist/opa/AuthDecisionQueryClient.js.map +1 -1
  58. package/dist/registry/AuthorizedRegistryClient.d.ts +7 -11
  59. package/dist/registry/AuthorizedRegistryClient.js +56 -21
  60. package/dist/registry/AuthorizedRegistryClient.js.map +1 -1
  61. package/dist/registry/RegistryClient.d.ts +5 -7
  62. package/dist/registry/RegistryClient.js +34 -15
  63. package/dist/registry/RegistryClient.js.map +1 -1
  64. package/dist/registry/model.d.ts +5 -0
  65. package/dist/registry/model.js +3 -0
  66. package/dist/registry/model.js.map +1 -0
  67. package/dist/test/arbitraries.js +2 -4
  68. package/dist/test/arbitraries.js.map +1 -1
  69. package/dist/test/buildApiClient.spec.js +2 -41
  70. package/dist/test/buildApiClient.spec.js.map +1 -1
  71. package/dist/test/db/getTestDBConfig.js +1 -1
  72. package/dist/test/db/getTestDBConfig.js.map +1 -1
  73. package/dist/test/getStorageUrl.spec.d.ts +1 -0
  74. package/dist/test/getStorageUrl.spec.js +95 -0
  75. package/dist/test/getStorageUrl.spec.js.map +1 -0
  76. package/dist/test/mockAuthApiHost.js +2 -26
  77. package/dist/test/mockAuthApiHost.js.map +1 -1
  78. package/dist/test/mockAuthorization.js +2 -2
  79. package/dist/test/mockAuthorization.js.map +1 -1
  80. package/dist/test/registry/buildAuthorizedClient.spec.js +9 -7
  81. package/dist/test/registry/buildAuthorizedClient.spec.js.map +1 -1
  82. package/dist/test/sampleAuthDecisions/datasetPermissionWithOrgUnitConstraint.json +2 -2
  83. package/dist/test/sampleAuthDecisions/extraLargeResponse.json +2519 -0
  84. package/dist/test/sampleOpaResponses/datasetPermissionWithOrgUnitConstraint.json +2 -2
  85. package/dist/test/sampleOpaResponses/extraLargeResponse.json +104869 -0
  86. package/dist/test/testOpaCompileResponseParser.spec.js +19 -2
  87. package/dist/test/testOpaCompileResponseParser.spec.js.map +1 -1
  88. 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"}
@@ -123,8 +123,7 @@ class JsonTransformer {
123
123
  name: name,
124
124
  aspects: generatedAspects,
125
125
  sourceTag: undefined,
126
- tenantId: this.tenantId,
127
- authnReadPolicyId: undefined
126
+ tenantId: this.tenantId
128
127
  };
129
128
  }
130
129
  }
@@ -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(): number | Object;
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(): (number | Object)[];
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;