@magda/typescript-common 1.2.0-rc.0 → 2.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/OpaCompileResponseParser.d.ts +147 -34
- package/dist/OpaCompileResponseParser.js +479 -293
- package/dist/OpaCompileResponseParser.js.map +1 -1
- package/dist/SQLUtils.d.ts +70 -0
- package/dist/SQLUtils.js +263 -0
- package/dist/SQLUtils.js.map +1 -0
- package/dist/ServerError.d.ts +9 -0
- package/dist/ServerError.js +17 -0
- package/dist/ServerError.js.map +1 -0
- package/dist/authorization-api/authMiddleware.d.ts +59 -1
- package/dist/authorization-api/authMiddleware.js +146 -3
- package/dist/authorization-api/authMiddleware.js.map +1 -1
- package/dist/authorization-api/constants.d.ts +5 -0
- package/dist/authorization-api/constants.js +13 -0
- package/dist/authorization-api/constants.js.map +1 -0
- package/dist/authorization-api/model.d.ts +1 -6
- package/dist/express/getNoCacheHeaders.d.ts +6 -0
- package/dist/express/getNoCacheHeaders.js +9 -0
- package/dist/express/getNoCacheHeaders.js.map +1 -0
- package/dist/express/setResponseNoCache.d.ts +3 -0
- package/dist/express/setResponseNoCache.js +9 -0
- package/dist/express/setResponseNoCache.js.map +1 -0
- package/dist/generated/registry/api.d.ts +36 -2
- package/dist/generated/registry/api.js +140 -2
- package/dist/generated/registry/api.js.map +1 -1
- package/dist/getAbsoluteUrl.d.ts +3 -2
- package/dist/getAbsoluteUrl.js +2 -1
- package/dist/getAbsoluteUrl.js.map +1 -1
- package/dist/opa/AspectQuery.d.ts +71 -0
- package/dist/opa/AspectQuery.js +216 -0
- package/dist/opa/AspectQuery.js.map +1 -0
- package/dist/opa/AuthDecision.d.ts +51 -0
- package/dist/opa/AuthDecision.js +241 -0
- package/dist/opa/AuthDecision.js.map +1 -0
- package/dist/opa/AuthDecisionQueryClient.d.ts +23 -0
- package/dist/opa/AuthDecisionQueryClient.js +110 -0
- package/dist/opa/AuthDecisionQueryClient.js.map +1 -0
- package/dist/pgTypes.d.ts +1 -0
- package/dist/pgTypes.js +18 -0
- package/dist/pgTypes.js.map +1 -0
- package/dist/registry/AuthorizedRegistryClient.d.ts +1 -0
- package/dist/registry/AuthorizedRegistryClient.js +17 -0
- package/dist/registry/AuthorizedRegistryClient.js.map +1 -1
- package/dist/registry/RegistryClient.d.ts +10 -0
- package/dist/registry/RegistryClient.js +32 -0
- package/dist/registry/RegistryClient.js.map +1 -1
- package/dist/test/getAuthDecision.spec.js +2 -2
- package/dist/test/getAuthDecision.spec.js.map +1 -1
- package/dist/test/sampleAuthDecisions/content.json +29 -0
- package/dist/test/sampleAuthDecisions/datasetPermissionWithOrgUnitConstraint.json +79 -0
- package/dist/test/sampleAuthDecisions/simple.json +29 -0
- package/dist/test/sampleAuthDecisions/singleTermAspectRef.json +39 -0
- package/dist/test/sampleAuthDecisions/unconditionalFalseSimple.json +6 -0
- package/dist/test/sampleAuthDecisions/unconditionalNotMacthed.json +6 -0
- package/dist/test/sampleAuthDecisions/unconditionalNotMacthedWithExtraRefs.json +6 -0
- package/dist/test/sampleAuthDecisions/unconditionalTrue.json +6 -0
- package/dist/test/sampleAuthDecisions/unconditionalTrueSimple.json +6 -0
- package/dist/test/sampleAuthDecisions/unconditionalTrueWithDefaultRule.json +6 -0
- package/dist/test/sampleAuthDecisions/withDefaultRule.json +6 -0
- package/dist/test/{sampleOpaResponse.json → sampleOpaResponses/content.json} +0 -0
- package/dist/test/sampleOpaResponses/datasetPermissionWithOrgUnitConstraint.json +341 -0
- package/dist/test/{sampleOpaResponseSimple.json → sampleOpaResponses/simple.json} +0 -0
- package/dist/test/sampleOpaResponses/singleTermAspectRef.json +233 -0
- package/dist/test/sampleOpaResponses/unconditionalFalseSimple.json +3 -0
- package/dist/test/sampleOpaResponses/unconditionalNotMacthed.json +73 -0
- package/dist/test/sampleOpaResponses/unconditionalNotMacthedWithExtraRefs.json +155 -0
- package/dist/test/{sampleOpaResponseUnconditionalTrue.json → sampleOpaResponses/unconditionalTrue.json} +0 -0
- package/dist/test/sampleOpaResponses/unconditionalTrueSimple.json +48 -0
- package/dist/test/{sampleOpaResponseUnconditionalTrueWithDefaultRule.json → sampleOpaResponses/unconditionalTrueWithDefaultRule.json} +0 -0
- package/dist/test/{sampleOpaResponseWithDefaultRule.json → sampleOpaResponses/withDefaultRule.json} +0 -0
- package/dist/test/testOpaCompileResponseParser.spec.js +195 -20
- package/dist/test/testOpaCompileResponseParser.spec.js.map +1 -1
- package/package.json +7 -3
|
@@ -95,6 +95,13 @@ export declare class RegoRule {
|
|
|
95
95
|
* @memberof RegoRule
|
|
96
96
|
*/
|
|
97
97
|
evaluate(): this;
|
|
98
|
+
/**
|
|
99
|
+
* Whether or not the rule is resolvable (i.e. we can tell whether it's matched or not) now.
|
|
100
|
+
*
|
|
101
|
+
* @return {*} {boolean}
|
|
102
|
+
* @memberof RegoRule
|
|
103
|
+
*/
|
|
104
|
+
isResolvable(): boolean;
|
|
98
105
|
/**
|
|
99
106
|
* Generate Human Readable string of this rule
|
|
100
107
|
* If it's fully evaluated, the output will be true or false (or actual rule value)
|
|
@@ -104,6 +111,43 @@ export declare class RegoRule {
|
|
|
104
111
|
* @memberof RegoRule
|
|
105
112
|
*/
|
|
106
113
|
toHumanReadableString(): string;
|
|
114
|
+
toData(): {
|
|
115
|
+
default: boolean;
|
|
116
|
+
value: RegoValue;
|
|
117
|
+
fullName: string;
|
|
118
|
+
name: string;
|
|
119
|
+
expressions: ({
|
|
120
|
+
negated: boolean;
|
|
121
|
+
index: number;
|
|
122
|
+
terms: {
|
|
123
|
+
type: string;
|
|
124
|
+
value: RegoTermValue;
|
|
125
|
+
}[];
|
|
126
|
+
} | {
|
|
127
|
+
index: number;
|
|
128
|
+
terms: {
|
|
129
|
+
type: string;
|
|
130
|
+
value: RegoTermValue;
|
|
131
|
+
}[];
|
|
132
|
+
negated?: undefined;
|
|
133
|
+
})[];
|
|
134
|
+
};
|
|
135
|
+
toJson(): string;
|
|
136
|
+
toConciseData(): {
|
|
137
|
+
default: boolean;
|
|
138
|
+
value: RegoValue;
|
|
139
|
+
fullName: string;
|
|
140
|
+
name: string;
|
|
141
|
+
expressions: {
|
|
142
|
+
negated: boolean;
|
|
143
|
+
operator: string;
|
|
144
|
+
operands: {
|
|
145
|
+
isRef: boolean;
|
|
146
|
+
value: RegoTermValue;
|
|
147
|
+
}[];
|
|
148
|
+
}[];
|
|
149
|
+
};
|
|
150
|
+
toConciseJSON(): string;
|
|
107
151
|
/**
|
|
108
152
|
* Create RegoRule from Opa response data
|
|
109
153
|
*
|
|
@@ -124,8 +168,16 @@ export interface RegoRefPart {
|
|
|
124
168
|
value: string;
|
|
125
169
|
}
|
|
126
170
|
export declare const RegoOperators: {
|
|
127
|
-
|
|
171
|
+
readonly eq: "=";
|
|
172
|
+
readonly equal: "=";
|
|
173
|
+
readonly neq: "!=";
|
|
174
|
+
readonly lt: "<";
|
|
175
|
+
readonly gt: ">";
|
|
176
|
+
readonly lte: "<=";
|
|
177
|
+
readonly gte: ">=";
|
|
128
178
|
};
|
|
179
|
+
export declare type RegoOperatorAstString = keyof typeof RegoOperators;
|
|
180
|
+
export declare type RegoOperatorString = typeof RegoOperators[RegoOperatorAstString];
|
|
129
181
|
export declare type RegoTermValue = RegoRef | RegoValue;
|
|
130
182
|
/**
|
|
131
183
|
* RegoTerm represent the basic elements that creates an expressions.
|
|
@@ -217,7 +269,7 @@ export declare class RegoTerm {
|
|
|
217
269
|
* @returns {string}
|
|
218
270
|
* @memberof RegoTerm
|
|
219
271
|
*/
|
|
220
|
-
asOperator():
|
|
272
|
+
asOperator(): "=" | "!=" | "<" | ">" | "<=" | ">=";
|
|
221
273
|
/**
|
|
222
274
|
* If it's a operator term
|
|
223
275
|
*
|
|
@@ -232,6 +284,23 @@ export declare class RegoTerm {
|
|
|
232
284
|
* @memberof RegoTerm
|
|
233
285
|
*/
|
|
234
286
|
getValue(): RegoValue;
|
|
287
|
+
/**
|
|
288
|
+
* Whether or not the RegoTerm is resolvable
|
|
289
|
+
*
|
|
290
|
+
* @return {*} {boolean}
|
|
291
|
+
* @memberof RegoTerm
|
|
292
|
+
*/
|
|
293
|
+
isValueResolvable(): boolean;
|
|
294
|
+
toData(): {
|
|
295
|
+
type: string;
|
|
296
|
+
value: RegoTermValue;
|
|
297
|
+
};
|
|
298
|
+
toJson(): string;
|
|
299
|
+
toConciseData(): {
|
|
300
|
+
isRef: boolean;
|
|
301
|
+
value: RegoTermValue;
|
|
302
|
+
};
|
|
303
|
+
toConciseJSON(): string;
|
|
235
304
|
static parseFromData(data: any, parser: OpaCompileResponseParser): RegoTerm;
|
|
236
305
|
}
|
|
237
306
|
/**
|
|
@@ -301,7 +370,25 @@ export declare class RegoExp {
|
|
|
301
370
|
* @memberof RegoExp
|
|
302
371
|
*/
|
|
303
372
|
getValue(): number | Object;
|
|
304
|
-
|
|
373
|
+
/**
|
|
374
|
+
* Whether or not a expression should be considered as "matched".
|
|
375
|
+
* If all expressions of a rule are "matched", the rule will be considered as "matched".
|
|
376
|
+
* Thus, the rule has a value.
|
|
377
|
+
*
|
|
378
|
+
* Please note: if an expression's value is `0`, empty string "", null etc, the expression is considered as "matched".
|
|
379
|
+
* We only consider an expression as "Not Matched" when the expression has value `false` or is undefined.
|
|
380
|
+
*
|
|
381
|
+
* @return {boolean}
|
|
382
|
+
* @memberof RegoExp
|
|
383
|
+
*/
|
|
384
|
+
isMatched(): boolean;
|
|
385
|
+
/**
|
|
386
|
+
* Whether or not the expression is resolvable now.
|
|
387
|
+
*
|
|
388
|
+
* @return {boolean}
|
|
389
|
+
* @memberof RegoExp
|
|
390
|
+
*/
|
|
391
|
+
isResolvable(): boolean;
|
|
305
392
|
/**
|
|
306
393
|
* Convert operator term to string and put rest operands into an array.
|
|
307
394
|
* And then return a [Operator, Operands] structure
|
|
@@ -309,7 +396,7 @@ export declare class RegoExp {
|
|
|
309
396
|
* @returns {[string, RegoTerm[]]}
|
|
310
397
|
* @memberof RegoExp
|
|
311
398
|
*/
|
|
312
|
-
toOperatorOperandsArray(): [
|
|
399
|
+
toOperatorOperandsArray(): [RegoOperatorString, RegoTerm[]];
|
|
313
400
|
/**
|
|
314
401
|
* Try to evaluate the expression
|
|
315
402
|
*
|
|
@@ -317,6 +404,31 @@ export declare class RegoExp {
|
|
|
317
404
|
* @memberof RegoExp
|
|
318
405
|
*/
|
|
319
406
|
evaluate(): this;
|
|
407
|
+
toData(index?: number): {
|
|
408
|
+
negated: boolean;
|
|
409
|
+
index: number;
|
|
410
|
+
terms: {
|
|
411
|
+
type: string;
|
|
412
|
+
value: RegoTermValue;
|
|
413
|
+
}[];
|
|
414
|
+
} | {
|
|
415
|
+
index: number;
|
|
416
|
+
terms: {
|
|
417
|
+
type: string;
|
|
418
|
+
value: RegoTermValue;
|
|
419
|
+
}[];
|
|
420
|
+
negated?: undefined;
|
|
421
|
+
};
|
|
422
|
+
toJSON(index?: number): string;
|
|
423
|
+
toConciseData(): {
|
|
424
|
+
negated: boolean;
|
|
425
|
+
operator: string;
|
|
426
|
+
operands: {
|
|
427
|
+
isRef: boolean;
|
|
428
|
+
value: RegoTermValue;
|
|
429
|
+
}[];
|
|
430
|
+
};
|
|
431
|
+
toConciseJSON(): string;
|
|
320
432
|
static parseFromData(expData: any, parser: OpaCompileResponseParser): RegoExp;
|
|
321
433
|
}
|
|
322
434
|
/**
|
|
@@ -330,6 +442,11 @@ export declare class RegoRef {
|
|
|
330
442
|
parts: RegoRefPart[];
|
|
331
443
|
constructor(parts: RegoRefPart[]);
|
|
332
444
|
clone(): RegoRef;
|
|
445
|
+
toData(): {
|
|
446
|
+
type: string;
|
|
447
|
+
value: RegoRefPart[];
|
|
448
|
+
};
|
|
449
|
+
toJson(): string;
|
|
333
450
|
static parseFromData(data: any): RegoRef;
|
|
334
451
|
static convertToFullRefString(parts: RegoRefPart[]): string;
|
|
335
452
|
removeAllPrefixs(str: string, removalPrefixs?: string[]): string;
|
|
@@ -340,7 +457,7 @@ export declare class RegoRef {
|
|
|
340
457
|
hasCollectionLookup(): boolean;
|
|
341
458
|
isSimpleCollectionLookup(): boolean;
|
|
342
459
|
isResolveAsCollectionValue(): boolean;
|
|
343
|
-
asOperator():
|
|
460
|
+
asOperator(): RegoOperatorString | null;
|
|
344
461
|
}
|
|
345
462
|
export interface CompleteRuleResult {
|
|
346
463
|
fullName: string;
|
|
@@ -350,6 +467,19 @@ export interface CompleteRuleResult {
|
|
|
350
467
|
residualRules?: RegoRule[];
|
|
351
468
|
}
|
|
352
469
|
export declare function value2String(value: RegoValue): string;
|
|
470
|
+
export declare class RegoRuleSet {
|
|
471
|
+
fullName: string;
|
|
472
|
+
name: string;
|
|
473
|
+
rules: RegoRule[];
|
|
474
|
+
defaultRule: RegoRule | null;
|
|
475
|
+
value?: any;
|
|
476
|
+
isCompleteEvaluated: boolean;
|
|
477
|
+
parser: OpaCompileResponseParser;
|
|
478
|
+
constructor(parser: OpaCompileResponseParser, rules: RegoRule[], fullName?: string, name?: string);
|
|
479
|
+
evaluate(): RegoRuleSet;
|
|
480
|
+
isResolvable(): boolean;
|
|
481
|
+
getResidualRules(): RegoRule[];
|
|
482
|
+
}
|
|
353
483
|
/**
|
|
354
484
|
* OPA result Parser
|
|
355
485
|
*
|
|
@@ -387,6 +517,15 @@ export default class OpaCompileResponseParser {
|
|
|
387
517
|
* @memberof OpaCompileResponseParser
|
|
388
518
|
*/
|
|
389
519
|
rules: RegoRule[];
|
|
520
|
+
/**
|
|
521
|
+
* Parsed, compressed & evaluated rule sets
|
|
522
|
+
*
|
|
523
|
+
* @type {RegoRuleSet[]}
|
|
524
|
+
* @memberof OpaCompileResponseParser
|
|
525
|
+
*/
|
|
526
|
+
ruleSets: {
|
|
527
|
+
[fullName: string]: RegoRuleSet;
|
|
528
|
+
};
|
|
390
529
|
queries: RegoExp[];
|
|
391
530
|
/**
|
|
392
531
|
* A cache of all resolved rule result
|
|
@@ -416,26 +555,9 @@ export default class OpaCompileResponseParser {
|
|
|
416
555
|
* @memberof OpaCompileResponseParser
|
|
417
556
|
*/
|
|
418
557
|
parse(json: any): RegoRule[];
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
* This will help to generate more concise query later.
|
|
423
|
-
* `CompleteRule` rule involves no `unknowns`
|
|
424
|
-
*
|
|
425
|
-
* Only for internal usage
|
|
426
|
-
*
|
|
427
|
-
* @private
|
|
428
|
-
* @memberof OpaCompileResponseParser
|
|
429
|
-
*/
|
|
430
|
-
private calculateCompleteRuleResult;
|
|
431
|
-
/**
|
|
432
|
-
* Only for internal usage
|
|
433
|
-
*
|
|
434
|
-
* @returns
|
|
435
|
-
* @private
|
|
436
|
-
* @memberof OpaCompileResponseParser
|
|
437
|
-
*/
|
|
438
|
-
private reduceDependencies;
|
|
558
|
+
isRefResolvable(fullName: string): boolean;
|
|
559
|
+
getRefValue(fullName: string): any;
|
|
560
|
+
private resolveAllRuleSets;
|
|
439
561
|
/**
|
|
440
562
|
* Call to evaluate a rule
|
|
441
563
|
*
|
|
@@ -466,15 +588,6 @@ export default class OpaCompileResponseParser {
|
|
|
466
588
|
* @memberof OpaCompileResponseParser
|
|
467
589
|
*/
|
|
468
590
|
evaluateAsHumanReadableString(): string;
|
|
469
|
-
/**
|
|
470
|
-
* Only for internal usage
|
|
471
|
-
*
|
|
472
|
-
* @param {RegoRule} rule
|
|
473
|
-
* @returns {CompleteRuleResult}
|
|
474
|
-
* @private
|
|
475
|
-
* @memberof OpaCompileResponseParser
|
|
476
|
-
*/
|
|
477
|
-
private createCompleteRuleResult;
|
|
478
591
|
reportWarns(msg: string): void;
|
|
479
592
|
}
|
|
480
593
|
export declare function unknown2Ref(unknown: string): string;
|