@sapl/nestjs 1.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 (123) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +539 -0
  3. package/dist/EnforceDropWhileDenied.d.ts +4 -0
  4. package/dist/EnforceDropWhileDenied.d.ts.map +1 -0
  5. package/dist/EnforceDropWhileDenied.js +8 -0
  6. package/dist/EnforceDropWhileDenied.js.map +1 -0
  7. package/dist/EnforceDropWhileDeniedAspect.d.ts +15 -0
  8. package/dist/EnforceDropWhileDeniedAspect.d.ts.map +1 -0
  9. package/dist/EnforceDropWhileDeniedAspect.js +108 -0
  10. package/dist/EnforceDropWhileDeniedAspect.js.map +1 -0
  11. package/dist/EnforceOptions.d.ts +42 -0
  12. package/dist/EnforceOptions.d.ts.map +1 -0
  13. package/dist/EnforceOptions.js +3 -0
  14. package/dist/EnforceOptions.js.map +1 -0
  15. package/dist/EnforceRecoverableIfDenied.d.ts +4 -0
  16. package/dist/EnforceRecoverableIfDenied.d.ts.map +1 -0
  17. package/dist/EnforceRecoverableIfDenied.js +8 -0
  18. package/dist/EnforceRecoverableIfDenied.js.map +1 -0
  19. package/dist/EnforceRecoverableIfDeniedAspect.d.ts +15 -0
  20. package/dist/EnforceRecoverableIfDeniedAspect.d.ts.map +1 -0
  21. package/dist/EnforceRecoverableIfDeniedAspect.js +134 -0
  22. package/dist/EnforceRecoverableIfDeniedAspect.js.map +1 -0
  23. package/dist/EnforceTillDenied.d.ts +4 -0
  24. package/dist/EnforceTillDenied.d.ts.map +1 -0
  25. package/dist/EnforceTillDenied.js +8 -0
  26. package/dist/EnforceTillDenied.js.map +1 -0
  27. package/dist/EnforceTillDeniedAspect.d.ts +15 -0
  28. package/dist/EnforceTillDeniedAspect.d.ts.map +1 -0
  29. package/dist/EnforceTillDeniedAspect.js +119 -0
  30. package/dist/EnforceTillDeniedAspect.js.map +1 -0
  31. package/dist/MethodInvocationContext.d.ts +8 -0
  32. package/dist/MethodInvocationContext.d.ts.map +1 -0
  33. package/dist/MethodInvocationContext.js +3 -0
  34. package/dist/MethodInvocationContext.js.map +1 -0
  35. package/dist/PostEnforce.d.ts +23 -0
  36. package/dist/PostEnforce.d.ts.map +1 -0
  37. package/dist/PostEnforce.js +27 -0
  38. package/dist/PostEnforce.js.map +1 -0
  39. package/dist/PostEnforceAspect.d.ts +15 -0
  40. package/dist/PostEnforceAspect.d.ts.map +1 -0
  41. package/dist/PostEnforceAspect.js +81 -0
  42. package/dist/PostEnforceAspect.js.map +1 -0
  43. package/dist/PreEnforce.d.ts +21 -0
  44. package/dist/PreEnforce.d.ts.map +1 -0
  45. package/dist/PreEnforce.js +25 -0
  46. package/dist/PreEnforce.js.map +1 -0
  47. package/dist/PreEnforceAspect.d.ts +15 -0
  48. package/dist/PreEnforceAspect.d.ts.map +1 -0
  49. package/dist/PreEnforceAspect.js +107 -0
  50. package/dist/PreEnforceAspect.js.map +1 -0
  51. package/dist/StreamingEnforceOptions.d.ts +22 -0
  52. package/dist/StreamingEnforceOptions.d.ts.map +1 -0
  53. package/dist/StreamingEnforceOptions.js +3 -0
  54. package/dist/StreamingEnforceOptions.js.map +1 -0
  55. package/dist/SubscriptionBuilder.d.ts +17 -0
  56. package/dist/SubscriptionBuilder.d.ts.map +1 -0
  57. package/dist/SubscriptionBuilder.js +86 -0
  58. package/dist/SubscriptionBuilder.js.map +1 -0
  59. package/dist/SubscriptionContext.d.ts +48 -0
  60. package/dist/SubscriptionContext.d.ts.map +1 -0
  61. package/dist/SubscriptionContext.js +3 -0
  62. package/dist/SubscriptionContext.js.map +1 -0
  63. package/dist/constraints/ConstraintEnforcementService.d.ts +22 -0
  64. package/dist/constraints/ConstraintEnforcementService.d.ts.map +1 -0
  65. package/dist/constraints/ConstraintEnforcementService.js +209 -0
  66. package/dist/constraints/ConstraintEnforcementService.js.map +1 -0
  67. package/dist/constraints/ConstraintHandlerBundle.d.ts +19 -0
  68. package/dist/constraints/ConstraintHandlerBundle.d.ts.map +1 -0
  69. package/dist/constraints/ConstraintHandlerBundle.js +47 -0
  70. package/dist/constraints/ConstraintHandlerBundle.js.map +1 -0
  71. package/dist/constraints/SaplConstraintHandler.d.ts +3 -0
  72. package/dist/constraints/SaplConstraintHandler.d.ts.map +1 -0
  73. package/dist/constraints/SaplConstraintHandler.js +6 -0
  74. package/dist/constraints/SaplConstraintHandler.js.map +1 -0
  75. package/dist/constraints/StreamingConstraintHandlerBundle.d.ts +18 -0
  76. package/dist/constraints/StreamingConstraintHandlerBundle.d.ts.map +1 -0
  77. package/dist/constraints/StreamingConstraintHandlerBundle.js +34 -0
  78. package/dist/constraints/StreamingConstraintHandlerBundle.js.map +1 -0
  79. package/dist/constraints/api/index.d.ts +35 -0
  80. package/dist/constraints/api/index.d.ts.map +1 -0
  81. package/dist/constraints/api/index.js +11 -0
  82. package/dist/constraints/api/index.js.map +1 -0
  83. package/dist/constraints/providers/ContentFilter.d.ts +3 -0
  84. package/dist/constraints/providers/ContentFilter.d.ts.map +1 -0
  85. package/dist/constraints/providers/ContentFilter.js +224 -0
  86. package/dist/constraints/providers/ContentFilter.js.map +1 -0
  87. package/dist/constraints/providers/ContentFilterPredicateProvider.d.ts +6 -0
  88. package/dist/constraints/providers/ContentFilterPredicateProvider.d.ts.map +1 -0
  89. package/dist/constraints/providers/ContentFilterPredicateProvider.js +26 -0
  90. package/dist/constraints/providers/ContentFilterPredicateProvider.js.map +1 -0
  91. package/dist/constraints/providers/ContentFilteringProvider.d.ts +7 -0
  92. package/dist/constraints/providers/ContentFilteringProvider.d.ts.map +1 -0
  93. package/dist/constraints/providers/ContentFilteringProvider.js +29 -0
  94. package/dist/constraints/providers/ContentFilteringProvider.js.map +1 -0
  95. package/dist/enforcement-utils.d.ts +7 -0
  96. package/dist/enforcement-utils.d.ts.map +1 -0
  97. package/dist/enforcement-utils.js +28 -0
  98. package/dist/enforcement-utils.js.map +1 -0
  99. package/dist/index.d.ts +20 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +37 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/pdp.service.d.ts +17 -0
  104. package/dist/pdp.service.d.ts.map +1 -0
  105. package/dist/pdp.service.js +296 -0
  106. package/dist/pdp.service.js.map +1 -0
  107. package/dist/sapl.constants.d.ts +2 -0
  108. package/dist/sapl.constants.d.ts.map +1 -0
  109. package/dist/sapl.constants.js +5 -0
  110. package/dist/sapl.constants.js.map +1 -0
  111. package/dist/sapl.interfaces.d.ts +25 -0
  112. package/dist/sapl.interfaces.d.ts.map +1 -0
  113. package/dist/sapl.interfaces.js +3 -0
  114. package/dist/sapl.interfaces.js.map +1 -0
  115. package/dist/sapl.module.d.ts +7 -0
  116. package/dist/sapl.module.d.ts.map +1 -0
  117. package/dist/sapl.module.js +91 -0
  118. package/dist/sapl.module.js.map +1 -0
  119. package/dist/types.d.ts +29 -0
  120. package/dist/types.d.ts.map +1 -0
  121. package/dist/types.js +3 -0
  122. package/dist/types.js.map +1 -0
  123. package/package.json +67 -0
@@ -0,0 +1,224 @@
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
+ exports.getHandler = getHandler;
7
+ exports.predicateFromConditions = predicateFromConditions;
8
+ const safe_regex2_1 = __importDefault(require("safe-regex2"));
9
+ const BLACK_SQUARE = '\u2588';
10
+ function getByPath(obj, segments) {
11
+ let current = obj;
12
+ for (const segment of segments) {
13
+ if (DANGEROUS_SEGMENTS.has(segment))
14
+ return undefined;
15
+ if (current == null || typeof current !== 'object')
16
+ return undefined;
17
+ current = current[segment];
18
+ }
19
+ return current;
20
+ }
21
+ function setByPath(obj, segments, value) {
22
+ let current = obj;
23
+ for (let i = 0; i < segments.length - 1; i++) {
24
+ if (DANGEROUS_SEGMENTS.has(segments[i]))
25
+ return;
26
+ if (current == null || typeof current !== 'object')
27
+ return;
28
+ current = current[segments[i]];
29
+ }
30
+ const target = segments[segments.length - 1];
31
+ if (DANGEROUS_SEGMENTS.has(target))
32
+ return;
33
+ if (current != null && typeof current === 'object') {
34
+ current[target] = value;
35
+ }
36
+ }
37
+ function deleteByPath(obj, segments) {
38
+ let current = obj;
39
+ for (let i = 0; i < segments.length - 1; i++) {
40
+ if (DANGEROUS_SEGMENTS.has(segments[i]))
41
+ return;
42
+ if (current == null || typeof current !== 'object')
43
+ return;
44
+ current = current[segments[i]];
45
+ }
46
+ const target = segments[segments.length - 1];
47
+ if (DANGEROUS_SEGMENTS.has(target))
48
+ return;
49
+ if (current != null && typeof current === 'object') {
50
+ delete current[target];
51
+ }
52
+ }
53
+ const DANGEROUS_SEGMENTS = new Set(['__proto__', 'constructor', 'prototype']);
54
+ function validatePath(path) {
55
+ if (path.includes('..')) {
56
+ throw new Error(`Unsupported JSONPath: recursive descent ('..') in '${path}'. Only simple dot paths are supported (e.g., '$.field.nested').`);
57
+ }
58
+ if (path.includes('[')) {
59
+ throw new Error(`Unsupported JSONPath: bracket notation in '${path}'. Only simple dot paths are supported (e.g., '$.field.nested').`);
60
+ }
61
+ if (path.includes('*')) {
62
+ throw new Error(`Unsupported JSONPath: wildcard ('*') in '${path}'. Only simple dot paths are supported (e.g., '$.field.nested').`);
63
+ }
64
+ }
65
+ function validateSegments(segments, path) {
66
+ for (const segment of segments) {
67
+ if (DANGEROUS_SEGMENTS.has(segment)) {
68
+ throw new Error(`Unsafe path segment '${segment}' in '${path}'. Prototype-polluting paths are rejected.`);
69
+ }
70
+ }
71
+ }
72
+ function parsePath(path) {
73
+ validatePath(path);
74
+ let normalized = path;
75
+ if (normalized === '$')
76
+ return [];
77
+ if (normalized.startsWith('$.')) {
78
+ normalized = normalized.substring(2);
79
+ }
80
+ const segments = normalized.split('.');
81
+ validateSegments(segments, path);
82
+ return segments;
83
+ }
84
+ function blacken(value, replacement, discloseLeft, discloseRight, length) {
85
+ const chars = [...value];
86
+ if (chars.length === 0)
87
+ return value;
88
+ const left = Math.min(discloseLeft, chars.length);
89
+ const right = Math.min(discloseRight, Math.max(0, chars.length - left));
90
+ const maskedCount = chars.length - left - right;
91
+ if (maskedCount <= 0)
92
+ return value;
93
+ const finalLength = length !== undefined && length >= 0 ? length : maskedCount;
94
+ const prefix = chars.slice(0, left).join('');
95
+ const suffix = chars.slice(chars.length - right).join('');
96
+ const masked = replacement.repeat(finalLength);
97
+ return prefix + masked + suffix;
98
+ }
99
+ function requireTextual(action, key) {
100
+ if (action[key] == null) {
101
+ throw new Error(`An action does not declare '${key}'.`);
102
+ }
103
+ if (typeof action[key] !== 'string') {
104
+ throw new Error(`An action's '${key}' is not textual.`);
105
+ }
106
+ return action[key];
107
+ }
108
+ function applyAction(obj, action) {
109
+ if (action == null || typeof action !== 'object') {
110
+ throw new Error('An action in actions is not an object.');
111
+ }
112
+ const path = requireTextual(action, 'path');
113
+ const segments = parsePath(path);
114
+ const actionType = requireTextual(action, 'type').trim().toLowerCase();
115
+ switch (actionType) {
116
+ case 'delete': {
117
+ deleteByPath(obj, segments);
118
+ break;
119
+ }
120
+ case 'replace': {
121
+ if (!('replacement' in action)) {
122
+ throw new Error('The action does not specify a replacement.');
123
+ }
124
+ setByPath(obj, segments, action.replacement);
125
+ break;
126
+ }
127
+ case 'blacken': {
128
+ const currentValue = getByPath(obj, segments);
129
+ if (typeof currentValue !== 'string') {
130
+ throw new Error('The node identified by the path is not a text node.');
131
+ }
132
+ const replacementChar = action.replacement ?? BLACK_SQUARE;
133
+ if (typeof replacementChar !== 'string') {
134
+ throw new Error("'replacement' of 'blacken' action is not textual.");
135
+ }
136
+ const discloseLeft = action.discloseLeft ?? 0;
137
+ const discloseRight = action.discloseRight ?? 0;
138
+ if (typeof discloseLeft !== 'number' || typeof discloseRight !== 'number') {
139
+ throw new Error("'discloseLeft' and 'discloseRight' of 'blacken' action must be numbers.");
140
+ }
141
+ const blackenLength = action.length;
142
+ if (blackenLength !== undefined && (typeof blackenLength !== 'number' || blackenLength < 0)) {
143
+ throw new Error("'length' of 'blacken' action is not a valid non-negative number.");
144
+ }
145
+ const blackened = blacken(currentValue, replacementChar, discloseLeft, discloseRight, blackenLength);
146
+ setByPath(obj, segments, blackened);
147
+ break;
148
+ }
149
+ default:
150
+ throw new Error(`Unknown action type: '${actionType}'.`);
151
+ }
152
+ }
153
+ const compiledRegexCache = new Map();
154
+ function precompileConditions(conditions) {
155
+ for (const condition of conditions) {
156
+ if (condition.type === '=~') {
157
+ const pattern = String(condition.value);
158
+ if (!compiledRegexCache.has(pattern)) {
159
+ if (!(0, safe_regex2_1.default)(pattern)) {
160
+ throw new Error(`Unsafe regex pattern rejected (potential ReDoS): '${pattern}'.`);
161
+ }
162
+ compiledRegexCache.set(pattern, new RegExp(pattern));
163
+ }
164
+ }
165
+ }
166
+ }
167
+ function evaluateCondition(element, condition) {
168
+ const segments = parsePath(condition.path ?? '');
169
+ const actual = getByPath(element, segments);
170
+ const expected = condition.value;
171
+ const operator = condition.type;
172
+ switch (operator) {
173
+ case '==':
174
+ return actual === expected;
175
+ case '!=':
176
+ return actual !== expected;
177
+ case '>=':
178
+ return actual >= expected;
179
+ case '<=':
180
+ return actual <= expected;
181
+ case '>':
182
+ return actual > expected;
183
+ case '<':
184
+ return actual < expected;
185
+ case '=~':
186
+ return typeof actual === 'string' && compiledRegexCache.get(String(condition.value)).test(actual);
187
+ default:
188
+ throw new Error(`Not a valid predicate condition type: '${operator}'.`);
189
+ }
190
+ }
191
+ function meetsConditions(element, conditions) {
192
+ return conditions.every((condition) => evaluateCondition(element, condition));
193
+ }
194
+ function getHandler(constraint) {
195
+ const actions = constraint.actions ?? [];
196
+ const conditions = constraint.conditions ?? [];
197
+ precompileConditions(conditions);
198
+ return (value) => {
199
+ if (value == null)
200
+ return value;
201
+ const transform = (element) => {
202
+ if (element == null)
203
+ return element;
204
+ if (conditions.length > 0 && !meetsConditions(element, conditions)) {
205
+ return element;
206
+ }
207
+ const copy = structuredClone(element);
208
+ for (const action of actions) {
209
+ applyAction(copy, action);
210
+ }
211
+ return copy;
212
+ };
213
+ if (Array.isArray(value)) {
214
+ return value.map(transform);
215
+ }
216
+ return transform(value);
217
+ };
218
+ }
219
+ function predicateFromConditions(constraint) {
220
+ const conditions = constraint.conditions ?? [];
221
+ precompileConditions(conditions);
222
+ return (element) => meetsConditions(element, conditions);
223
+ }
224
+ //# sourceMappingURL=ContentFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentFilter.js","sourceRoot":"","sources":["../../../lib/constraints/providers/ContentFilter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { FilterPredicateConstraintHandlerProvider } from '../api/index';
2
+ export declare class ContentFilterPredicateProvider implements FilterPredicateConstraintHandlerProvider {
3
+ isResponsible(constraint: any): boolean;
4
+ getHandler(constraint: any): (element: any) => boolean;
5
+ }
6
+ //# sourceMappingURL=ContentFilterPredicateProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentFilterPredicateProvider.d.ts","sourceRoot":"","sources":["../../../lib/constraints/providers/ContentFilterPredicateProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wCAAwC,EAAE,MAAM,cAAc,CAAC;AAGxE,qBAEa,8BACX,YAAW,wCAAwC;IAEnD,aAAa,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO;IAIvC,UAAU,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO;CAGvD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ContentFilterPredicateProvider = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const SaplConstraintHandler_1 = require("../SaplConstraintHandler");
12
+ const ContentFilter_1 = require("./ContentFilter");
13
+ let ContentFilterPredicateProvider = class ContentFilterPredicateProvider {
14
+ isResponsible(constraint) {
15
+ return constraint?.type === 'jsonContentFilterPredicate';
16
+ }
17
+ getHandler(constraint) {
18
+ return (0, ContentFilter_1.predicateFromConditions)(constraint);
19
+ }
20
+ };
21
+ exports.ContentFilterPredicateProvider = ContentFilterPredicateProvider;
22
+ exports.ContentFilterPredicateProvider = ContentFilterPredicateProvider = __decorate([
23
+ (0, common_1.Injectable)(),
24
+ (0, SaplConstraintHandler_1.SaplConstraintHandler)('filterPredicate')
25
+ ], ContentFilterPredicateProvider);
26
+ //# sourceMappingURL=ContentFilterPredicateProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentFilterPredicateProvider.js","sourceRoot":"","sources":["../../../lib/constraints/providers/ContentFilterPredicateProvider.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,oEAAiE;AAEjE,mDAA0D;AAInD,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAGzC,aAAa,CAAC,UAAe;QAC3B,OAAO,UAAU,EAAE,IAAI,KAAK,4BAA4B,CAAC;IAC3D,CAAC;IAED,UAAU,CAAC,UAAe;QACxB,OAAO,IAAA,uCAAuB,EAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AAVY,wEAA8B;yCAA9B,8BAA8B;IAF1C,IAAA,mBAAU,GAAE;IACZ,IAAA,6CAAqB,EAAC,iBAAiB,CAAC;GAC5B,8BAA8B,CAU1C"}
@@ -0,0 +1,7 @@
1
+ import { MappingConstraintHandlerProvider } from '../api/index';
2
+ export declare class ContentFilteringProvider implements MappingConstraintHandlerProvider {
3
+ isResponsible(constraint: any): boolean;
4
+ getPriority(): number;
5
+ getHandler(constraint: any): (value: any) => any;
6
+ }
7
+ //# sourceMappingURL=ContentFilteringProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentFilteringProvider.d.ts","sourceRoot":"","sources":["../../../lib/constraints/providers/ContentFilteringProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAGhE,qBAEa,wBAAyB,YAAW,gCAAgC;IAC/E,aAAa,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO;IAIvC,WAAW,IAAI,MAAM;IAIrB,UAAU,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG;CAGjD"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ContentFilteringProvider = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const SaplConstraintHandler_1 = require("../SaplConstraintHandler");
12
+ const ContentFilter_1 = require("./ContentFilter");
13
+ let ContentFilteringProvider = class ContentFilteringProvider {
14
+ isResponsible(constraint) {
15
+ return constraint?.type === 'filterJsonContent';
16
+ }
17
+ getPriority() {
18
+ return 0;
19
+ }
20
+ getHandler(constraint) {
21
+ return (0, ContentFilter_1.getHandler)(constraint);
22
+ }
23
+ };
24
+ exports.ContentFilteringProvider = ContentFilteringProvider;
25
+ exports.ContentFilteringProvider = ContentFilteringProvider = __decorate([
26
+ (0, common_1.Injectable)(),
27
+ (0, SaplConstraintHandler_1.SaplConstraintHandler)('mapping')
28
+ ], ContentFilteringProvider);
29
+ //# sourceMappingURL=ContentFilteringProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentFilteringProvider.js","sourceRoot":"","sources":["../../../lib/constraints/providers/ContentFilteringProvider.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,oEAAiE;AAEjE,mDAA6C;AAItC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,aAAa,CAAC,UAAe;QAC3B,OAAO,UAAU,EAAE,IAAI,KAAK,mBAAmB,CAAC;IAClD,CAAC;IAED,WAAW;QACT,OAAO,CAAC,CAAC;IACX,CAAC;IAED,UAAU,CAAC,UAAe;QACxB,OAAO,IAAA,0BAAU,EAAC,UAAU,CAAC,CAAC;IAChC,CAAC;CACF,CAAA;AAZY,4DAAwB;mCAAxB,wBAAwB;IAFpC,IAAA,mBAAU,GAAE;IACZ,IAAA,6CAAqB,EAAC,SAAS,CAAC;GACpB,wBAAwB,CAYpC"}
@@ -0,0 +1,7 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { EnforceOptions } from './EnforceOptions';
3
+ import { SubscriptionContext } from './SubscriptionContext';
4
+ import { ConstraintEnforcementService } from './constraints/ConstraintEnforcementService';
5
+ export declare function applyDeny(options: EnforceOptions, ctx: SubscriptionContext, decision: any): any;
6
+ export declare function handleDeny(logger: Logger, constraintService: ConstraintEnforcementService, decision: any, options: EnforceOptions, ctx: SubscriptionContext): any;
7
+ //# sourceMappingURL=enforcement-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enforcement-utils.d.ts","sourceRoot":"","sources":["../lib/enforcement-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAE1F,wBAAgB,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,CAK/F;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,4BAA4B,EAC/C,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,mBAAmB,GACvB,GAAG,CAeL"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyDeny = applyDeny;
4
+ exports.handleDeny = handleDeny;
5
+ const common_1 = require("@nestjs/common");
6
+ function applyDeny(options, ctx, decision) {
7
+ if (options.onDeny) {
8
+ return options.onDeny(ctx, decision);
9
+ }
10
+ throw new common_1.ForbiddenException('Access denied by policy');
11
+ }
12
+ function handleDeny(logger, constraintService, decision, options, ctx) {
13
+ if (decision.decision === 'INDETERMINATE') {
14
+ logger.error(`PDP returned INDETERMINATE -- PDP may be unreachable or misconfigured`);
15
+ }
16
+ else {
17
+ logger.warn(`Access denied: ${decision.decision}`);
18
+ }
19
+ try {
20
+ const bundle = constraintService.bestEffortBundleFor(decision);
21
+ bundle.handleOnDecisionConstraints();
22
+ }
23
+ catch (error) {
24
+ logger.warn(`Best-effort obligation handlers failed on ${decision.decision}: ${error}`);
25
+ }
26
+ return applyDeny(options, ctx, decision);
27
+ }
28
+ //# sourceMappingURL=enforcement-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enforcement-utils.js","sourceRoot":"","sources":["../lib/enforcement-utils.ts"],"names":[],"mappings":";;AAKA,8BAKC;AAED,gCAqBC;AAjCD,2CAA4D;AAK5D,SAAgB,SAAS,CAAC,OAAuB,EAAE,GAAwB,EAAE,QAAa;IACxF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,IAAI,2BAAkB,CAAC,yBAAyB,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,UAAU,CACxB,MAAc,EACd,iBAA+C,EAC/C,QAAa,EACb,OAAuB,EACvB,GAAwB;IAExB,IAAI,QAAQ,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,2BAA2B,EAAE,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,6CAA6C,QAAQ,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,20 @@
1
+ export { SaplModule } from './sapl.module';
2
+ export { SAPL_MODULE_OPTIONS } from './sapl.constants';
3
+ export { SaplModuleOptions, SaplModuleAsyncOptions } from './sapl.interfaces';
4
+ export { Decision, AuthorizationDecision, AuthorizationSubscription } from './types';
5
+ export { PdpService } from './pdp.service';
6
+ export { PreEnforce } from './PreEnforce';
7
+ export { PostEnforce } from './PostEnforce';
8
+ export { EnforceTillDenied } from './EnforceTillDenied';
9
+ export { EnforceDropWhileDenied } from './EnforceDropWhileDenied';
10
+ export { EnforceRecoverableIfDenied } from './EnforceRecoverableIfDenied';
11
+ export { SubscriptionOptions, EnforceOptions, SubscriptionField, OnDenyHandler, } from './EnforceOptions';
12
+ export { StreamEventEmitter, EnforceTillDeniedOptions, EnforceDropWhileDeniedOptions, EnforceRecoverableOptions, OnStreamDenyHandler, OnStreamRecoverHandler, } from './StreamingEnforceOptions';
13
+ export { SaplRequest, SubscriptionContext } from './SubscriptionContext';
14
+ export { MethodInvocationContext } from './MethodInvocationContext';
15
+ export { NO_RESOURCE_REPLACEMENT, Signal, Responsible, RunnableConstraintHandlerProvider, ConsumerConstraintHandlerProvider, MappingConstraintHandlerProvider, ErrorHandlerProvider, ErrorMappingConstraintHandlerProvider, FilterPredicateConstraintHandlerProvider, MethodInvocationConstraintHandlerProvider, } from './constraints/api/index';
16
+ export { SaplConstraintHandler, ConstraintHandlerType, } from './constraints/SaplConstraintHandler';
17
+ export { ConstraintEnforcementService } from './constraints/ConstraintEnforcementService';
18
+ export { ConstraintHandlerBundle } from './constraints/ConstraintHandlerBundle';
19
+ export { StreamingConstraintHandlerBundle } from './constraints/StreamingConstraintHandlerBundle';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG9E,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAGrF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAG1E,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,6BAA6B,EAC7B,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,WAAW,EACX,iCAAiC,EACjC,iCAAiC,EACjC,gCAAgC,EAChC,oBAAoB,EACpB,qCAAqC,EACrC,wCAAwC,EACxC,yCAAyC,GAC1C,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StreamingConstraintHandlerBundle = exports.ConstraintHandlerBundle = exports.ConstraintEnforcementService = exports.SaplConstraintHandler = exports.Signal = exports.NO_RESOURCE_REPLACEMENT = exports.EnforceRecoverableIfDenied = exports.EnforceDropWhileDenied = exports.EnforceTillDenied = exports.PostEnforce = exports.PreEnforce = exports.PdpService = exports.SAPL_MODULE_OPTIONS = exports.SaplModule = void 0;
4
+ // Module
5
+ var sapl_module_1 = require("./sapl.module");
6
+ Object.defineProperty(exports, "SaplModule", { enumerable: true, get: function () { return sapl_module_1.SaplModule; } });
7
+ var sapl_constants_1 = require("./sapl.constants");
8
+ Object.defineProperty(exports, "SAPL_MODULE_OPTIONS", { enumerable: true, get: function () { return sapl_constants_1.SAPL_MODULE_OPTIONS; } });
9
+ // PDP
10
+ var pdp_service_1 = require("./pdp.service");
11
+ Object.defineProperty(exports, "PdpService", { enumerable: true, get: function () { return pdp_service_1.PdpService; } });
12
+ // Decorators
13
+ var PreEnforce_1 = require("./PreEnforce");
14
+ Object.defineProperty(exports, "PreEnforce", { enumerable: true, get: function () { return PreEnforce_1.PreEnforce; } });
15
+ var PostEnforce_1 = require("./PostEnforce");
16
+ Object.defineProperty(exports, "PostEnforce", { enumerable: true, get: function () { return PostEnforce_1.PostEnforce; } });
17
+ var EnforceTillDenied_1 = require("./EnforceTillDenied");
18
+ Object.defineProperty(exports, "EnforceTillDenied", { enumerable: true, get: function () { return EnforceTillDenied_1.EnforceTillDenied; } });
19
+ var EnforceDropWhileDenied_1 = require("./EnforceDropWhileDenied");
20
+ Object.defineProperty(exports, "EnforceDropWhileDenied", { enumerable: true, get: function () { return EnforceDropWhileDenied_1.EnforceDropWhileDenied; } });
21
+ var EnforceRecoverableIfDenied_1 = require("./EnforceRecoverableIfDenied");
22
+ Object.defineProperty(exports, "EnforceRecoverableIfDenied", { enumerable: true, get: function () { return EnforceRecoverableIfDenied_1.EnforceRecoverableIfDenied; } });
23
+ // Constraint handler API
24
+ var index_1 = require("./constraints/api/index");
25
+ Object.defineProperty(exports, "NO_RESOURCE_REPLACEMENT", { enumerable: true, get: function () { return index_1.NO_RESOURCE_REPLACEMENT; } });
26
+ Object.defineProperty(exports, "Signal", { enumerable: true, get: function () { return index_1.Signal; } });
27
+ // Constraint handler registration
28
+ var SaplConstraintHandler_1 = require("./constraints/SaplConstraintHandler");
29
+ Object.defineProperty(exports, "SaplConstraintHandler", { enumerable: true, get: function () { return SaplConstraintHandler_1.SaplConstraintHandler; } });
30
+ // Constraint handler service
31
+ var ConstraintEnforcementService_1 = require("./constraints/ConstraintEnforcementService");
32
+ Object.defineProperty(exports, "ConstraintEnforcementService", { enumerable: true, get: function () { return ConstraintEnforcementService_1.ConstraintEnforcementService; } });
33
+ var ConstraintHandlerBundle_1 = require("./constraints/ConstraintHandlerBundle");
34
+ Object.defineProperty(exports, "ConstraintHandlerBundle", { enumerable: true, get: function () { return ConstraintHandlerBundle_1.ConstraintHandlerBundle; } });
35
+ var StreamingConstraintHandlerBundle_1 = require("./constraints/StreamingConstraintHandlerBundle");
36
+ Object.defineProperty(exports, "StreamingConstraintHandlerBundle", { enumerable: true, get: function () { return StreamingConstraintHandlerBundle_1.StreamingConstraintHandlerBundle; } });
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAAA,SAAS;AACT,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,mDAAuD;AAA9C,qHAAA,mBAAmB,OAAA;AAM5B,MAAM;AACN,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAEnB,aAAa;AACb,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AAoBnC,yBAAyB;AACzB,iDAWiC;AAV/B,gHAAA,uBAAuB,OAAA;AACvB,+FAAA,MAAM,OAAA;AAWR,kCAAkC;AAClC,6EAG6C;AAF3C,8HAAA,qBAAqB,OAAA;AAIvB,6BAA6B;AAC7B,2FAA0F;AAAjF,4IAAA,4BAA4B,OAAA;AACrC,iFAAgF;AAAvE,kIAAA,uBAAuB,OAAA;AAChC,mGAAkG;AAAzF,oJAAA,gCAAgC,OAAA"}
@@ -0,0 +1,17 @@
1
+ import { Observable } from 'rxjs';
2
+ import { SaplModuleOptions } from './sapl.interfaces';
3
+ import { AuthorizationDecision, AuthorizationSubscription } from './types';
4
+ export declare class PdpService {
5
+ private readonly options;
6
+ private readonly logger;
7
+ private readonly timeoutMs;
8
+ private readonly retryBaseDelay;
9
+ private readonly retryMaxDelay;
10
+ private readonly maxRetries;
11
+ private readonly decideOnceUrl;
12
+ private readonly decideUrl;
13
+ constructor(options: SaplModuleOptions);
14
+ decideOnce(subscription: AuthorizationSubscription): Promise<AuthorizationDecision>;
15
+ decide(subscription: AuthorizationSubscription): Observable<AuthorizationDecision>;
16
+ }
17
+ //# sourceMappingURL=pdp.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdp.service.d.ts","sourceRoot":"","sources":["../lib/pdp.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAsC,MAAM,MAAM,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAY,MAAM,SAAS,CAAC;AA+CrF,qBACa,UAAU;IAWnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAIhB,OAAO,EAAE,iBAAiB;IAyBvC,UAAU,CAAC,YAAY,EAAE,yBAAyB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgEzF,MAAM,CAAC,YAAY,EAAE,yBAAyB,GAAG,UAAU,CAAC,qBAAqB,CAAC;CAsKnF"}