@pipeline-builder/api-core 3.4.86 → 3.4.88
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/lib/helpers/org-hierarchy-http.d.ts +5 -0
- package/lib/helpers/org-hierarchy-http.js +11 -3
- package/lib/middleware/auth.d.ts +53 -0
- package/lib/middleware/auth.js +175 -3
- package/lib/services/cache-service.d.ts +16 -0
- package/lib/services/cache-service.js +66 -6
- package/lib/services/index.d.ts +1 -0
- package/lib/services/index.js +2 -1
- package/lib/services/remote-audit-client.d.ts +7 -1
- package/lib/services/remote-audit-client.js +22 -5
- package/lib/services/token-revocation.d.ts +37 -0
- package/lib/services/token-revocation.js +70 -0
- package/lib/types/common.d.ts +25 -1
- package/lib/types/common.js +16 -1
- package/lib/types/error-codes.d.ts +1 -0
- package/lib/types/error-codes.js +3 -1
- package/lib/types/feature-flags.d.ts +11 -3
- package/lib/types/feature-flags.js +13 -8
- package/lib/types/permissions.d.ts +17 -0
- package/lib/types/permissions.js +23 -1
- package/package.json +6 -6
package/lib/types/error-codes.js
CHANGED
|
@@ -15,6 +15,7 @@ export var ErrorCode;
|
|
|
15
15
|
ErrorCode["TOKEN_EXPIRED"] = "TOKEN_EXPIRED";
|
|
16
16
|
ErrorCode["TOKEN_INVALID"] = "TOKEN_INVALID";
|
|
17
17
|
ErrorCode["TOKEN_MISSING"] = "TOKEN_MISSING";
|
|
18
|
+
ErrorCode["TOKEN_REVOKED"] = "TOKEN_REVOKED";
|
|
18
19
|
// Authorization errors (403)
|
|
19
20
|
ErrorCode["INSUFFICIENT_PERMISSIONS"] = "INSUFFICIENT_PERMISSIONS";
|
|
20
21
|
ErrorCode["ORG_MISMATCH"] = "ORG_MISMATCH";
|
|
@@ -57,6 +58,7 @@ export const ErrorCodeStatus = {
|
|
|
57
58
|
[ErrorCode.TOKEN_EXPIRED]: 401,
|
|
58
59
|
[ErrorCode.TOKEN_INVALID]: 401,
|
|
59
60
|
[ErrorCode.TOKEN_MISSING]: 401,
|
|
61
|
+
[ErrorCode.TOKEN_REVOKED]: 401,
|
|
60
62
|
[ErrorCode.INSUFFICIENT_PERMISSIONS]: 403,
|
|
61
63
|
[ErrorCode.ORG_MISMATCH]: 403,
|
|
62
64
|
[ErrorCode.COMPLIANCE_VIOLATION]: 403,
|
|
@@ -89,4 +91,4 @@ export const ErrorCodeStatus = {
|
|
|
89
91
|
export function getStatusForErrorCode(code) {
|
|
90
92
|
return ErrorCodeStatus[code] ?? 500;
|
|
91
93
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZXJyb3ItY29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFOLElBQVksU0FnRFg7QUFoREQsV0FBWSxTQUFTO0lBQ25CLDhCQUE4QjtJQUM5QiwwQ0FBNkIsQ0FBQTtJQUM3Qiw0Q0FBK0IsQ0FBQTtJQUMvQiw0Q0FBK0IsQ0FBQTtJQUMvQiw0Q0FBK0IsQ0FBQTtJQUMvQiw0Q0FBK0IsQ0FBQTtJQUUvQiw2QkFBNkI7SUFDN0Isa0VBQXFELENBQUE7SUFDckQsMENBQTZCLENBQUE7SUFDN0IsMERBQTZDLENBQUE7SUFFN0MseUJBQXlCO0lBQ3pCLG9DQUF1QixDQUFBO0lBQ3ZCLDRDQUErQixDQUFBO0lBRS9CLDBCQUEwQjtJQUMxQixrREFBcUMsQ0FBQTtJQUNyQyw4REFBaUQsQ0FBQTtJQUNqRCw0REFBK0MsQ0FBQTtJQUMvQyw4Q0FBaUMsQ0FBQTtJQUNqQywwREFBNkMsQ0FBQTtJQUM3Qyw4REFBaUQsQ0FBQTtJQUNqRCxvRUFBdUQsQ0FBQTtJQUN2RCx3RUFBMkQsQ0FBQTtJQUMzRCw4REFBaUQsQ0FBQTtJQUNqRCxzRUFBeUQsQ0FBQTtJQUV6RCxnQ0FBZ0M7SUFDaEMsOENBQWlDLENBQUE7SUFDakMsd0RBQTJDLENBQUE7SUFFM0MsdUJBQXVCO0lBQ3ZCLG9EQUF1QyxDQUFBO0lBRXZDLHdCQUF3QjtJQUN4QixrQ0FBcUIsQ0FBQTtJQUNyQixnREFBbUMsQ0FBQTtJQUNuQyw0Q0FBK0IsQ0FBQTtJQUUvQixzQkFBc0I7SUFDdEIsOENBQWlDLENBQUE7SUFDakMsOENBQWlDLENBQUE7SUFFakMsNEJBQTRCO0lBQzVCLHdEQUEyQyxDQUFBO0lBQzNDLDhFQUFpRSxDQUFBO0FBQ25FLENBQUMsRUFoRFcsU0FBUyxLQUFULFNBQVMsUUFnRHBCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQThCO0lBQ3hELENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUc7SUFDN0IsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRztJQUM5QixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHO0lBQzlCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEdBQUc7SUFDOUIsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRztJQUM5QixDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLEdBQUc7SUFDekMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRztJQUM3QixDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEdBQUc7SUFDckMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRztJQUMxQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHO0lBQzlCLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsR0FBRztJQUNqQyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEdBQUc7SUFDdkMsQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsRUFBRSxHQUFHO0lBQ3RDLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUc7SUFDL0IsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsRUFBRSxHQUFHO0lBQ3JDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsR0FBRztJQUN2QyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLEdBQUc7SUFDMUMsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsRUFBRSxHQUFHO0lBQzVDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsR0FBRztJQUN2QyxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLEdBQUc7SUFDM0MsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRztJQUMvQixDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUc7SUFDcEMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsRUFBRSxHQUFHO0lBQ2xDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUc7SUFDekIsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRztJQUNoQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHO0lBQzlCLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUc7SUFDL0IsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRztJQUMvQixDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUc7SUFDcEMsQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsRUFBRSxHQUFHO0NBQ2hELENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUFlO0lBQ25ELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogU3RhbmRhcmRpemVkIGVycm9yIGNvZGVzIHVzZWQgYWNyb3NzIGFsbCBBUEkgbWljcm9zZXJ2aWNlcy5cbiAqIFVzZSB0aGVzZSBjb2RlcyBpbiBlcnJvciByZXNwb25zZXMgZm9yIGNvbnNpc3RlbnQgY2xpZW50IGhhbmRsaW5nLlxuICpcbiAqIEVhY2ggSFRUUCBzdGF0dXMgY2F0ZWdvcnkgaGFzIG9uZSBwcmltYXJ5IGNvZGUuIFVzZSB0aGUgYGRldGFpbHNgXG4gKiBmaWVsZCBpbiBlcnJvciByZXNwb25zZXMgZm9yIHN1Yi10eXBlIGluZm9ybWF0aW9uIChlLmcuIHdoaWNoIHF1b3RhXG4gKiB3YXMgZXhjZWVkZWQsIHdoaWNoIGZpZWxkIGZhaWxlZCB2YWxpZGF0aW9uKS5cbiAqL1xuZXhwb3J0IGVudW0gRXJyb3JDb2RlIHtcbiAgLy8gQXV0aGVudGljYXRpb24gZXJyb3JzICg0MDEpXG4gIFVOQVVUSE9SSVpFRCA9ICdVTkFVVEhPUklaRUQnLFxuICBUT0tFTl9FWFBJUkVEID0gJ1RPS0VOX0VYUElSRUQnLFxuICBUT0tFTl9JTlZBTElEID0gJ1RPS0VOX0lOVkFMSUQnLFxuICBUT0tFTl9NSVNTSU5HID0gJ1RPS0VOX01JU1NJTkcnLFxuICBUT0tFTl9SRVZPS0VEID0gJ1RPS0VOX1JFVk9LRUQnLFxuXG4gIC8vIEF1dGhvcml6YXRpb24gZXJyb3JzICg0MDMpXG4gIElOU1VGRklDSUVOVF9QRVJNSVNTSU9OUyA9ICdJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlMnLFxuICBPUkdfTUlTTUFUQ0ggPSAnT1JHX01JU01BVENIJyxcbiAgQ09NUExJQU5DRV9WSU9MQVRJT04gPSAnQ09NUExJQU5DRV9WSU9MQVRJT04nLFxuXG4gIC8vIE5vdCBmb3VuZCBlcnJvcnMgKDQwNClcbiAgTk9UX0ZPVU5EID0gJ05PVF9GT1VORCcsXG4gIE9SR19OT1RfRk9VTkQgPSAnT1JHX05PVF9GT1VORCcsXG5cbiAgLy8gVmFsaWRhdGlvbiBlcnJvcnMgKDQwMClcbiAgVkFMSURBVElPTl9FUlJPUiA9ICdWQUxJREFUSU9OX0VSUk9SJyxcbiAgTUlTU0lOR19SRVFVSVJFRF9GSUVMRCA9ICdNSVNTSU5HX1JFUVVJUkVEX0ZJRUxEJyxcbiAgVEVNUExBVEVfVU5LTk9XTl9QQVRIID0gJ1RFTVBMQVRFX1VOS05PV05fUEFUSCcsXG4gIFRFTVBMQVRFX0NZQ0xFID0gJ1RFTVBMQVRFX0NZQ0xFJyxcbiAgVEVNUExBVEVfUEFSU0VfRVJST1IgPSAnVEVNUExBVEVfUEFSU0VfRVJST1InLFxuICBURU1QTEFURV9UWVBFX01JU01BVENIID0gJ1RFTVBMQVRFX1RZUEVfTUlTTUFUQ0gnLFxuICBURU1QTEFURV9TRUNSRVRTX1JFU0VSVkVEID0gJ1RFTVBMQVRFX1NFQ1JFVFNfUkVTRVJWRUQnLFxuICBURU1QTEFURV9DT05UUkFDVF9WSU9MQVRJT04gPSAnVEVNUExBVEVfQ09OVFJBQ1RfVklPTEFUSU9OJyxcbiAgVEVNUExBVEVfU0laRV9FWENFRURFRCA9ICdURU1QTEFURV9TSVpFX0VYQ0VFREVEJyxcbiAgVEVNUExBVEVfVkFMSURBVElPTl9GQUlMRUQgPSAnVEVNUExBVEVfVkFMSURBVElPTl9GQUlMRUQnLFxuXG4gIC8vIFF1b3RhL1JhdGUgbGltaXQgZXJyb3JzICg0MjkpXG4gIFFVT1RBX0VYQ0VFREVEID0gJ1FVT1RBX0VYQ0VFREVEJyxcbiAgUkFURV9MSU1JVF9FWENFRURFRCA9ICdSQVRFX0xJTUlUX0VYQ0VFREVEJyxcblxuICAvLyBQYXlsb2FkIGVycm9ycyAoNDEzKVxuICBQQVlMT0FEX1RPT19MQVJHRSA9ICdQQVlMT0FEX1RPT19MQVJHRScsXG5cbiAgLy8gQ29uZmxpY3QgZXJyb3JzICg0MDkpXG4gIENPTkZMSUNUID0gJ0NPTkZMSUNUJyxcbiAgRFVQTElDQVRFX0VOVFJZID0gJ0RVUExJQ0FURV9FTlRSWScsXG4gIFNDQU5fQ09ORkxJQ1QgPSAnU0NBTl9DT05GTElDVCcsXG5cbiAgLy8gU2VydmVyIGVycm9ycyAoNTAwKVxuICBJTlRFUk5BTF9FUlJPUiA9ICdJTlRFUk5BTF9FUlJPUicsXG4gIERBVEFCQVNFX0VSUk9SID0gJ0RBVEFCQVNFX0VSUk9SJyxcblxuICAvLyBTZXJ2aWNlIHVuYXZhaWxhYmxlICg1MDMpXG4gIFNFUlZJQ0VfVU5BVkFJTEFCTEUgPSAnU0VSVklDRV9VTkFWQUlMQUJMRScsXG4gIENPTVBMSUFOQ0VfU0VSVklDRV9VTkFWQUlMQUJMRSA9ICdDT01QTElBTkNFX1NFUlZJQ0VfVU5BVkFJTEFCTEUnLFxufVxuXG4vKipcbiAqIE1hcHMgZXJyb3IgY29kZXMgdG8gdGhlaXIgZGVmYXVsdCBIVFRQIHN0YXR1cyBjb2Rlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEVycm9yQ29kZVN0YXR1czogUmVjb3JkPEVycm9yQ29kZSwgbnVtYmVyPiA9IHtcbiAgW0Vycm9yQ29kZS5VTkFVVEhPUklaRURdOiA0MDEsXG4gIFtFcnJvckNvZGUuVE9LRU5fRVhQSVJFRF06IDQwMSxcbiAgW0Vycm9yQ29kZS5UT0tFTl9JTlZBTElEXTogNDAxLFxuICBbRXJyb3JDb2RlLlRPS0VOX01JU1NJTkddOiA0MDEsXG4gIFtFcnJvckNvZGUuVE9LRU5fUkVWT0tFRF06IDQwMSxcbiAgW0Vycm9yQ29kZS5JTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlNdOiA0MDMsXG4gIFtFcnJvckNvZGUuT1JHX01JU01BVENIXTogNDAzLFxuICBbRXJyb3JDb2RlLkNPTVBMSUFOQ0VfVklPTEFUSU9OXTogNDAzLFxuICBbRXJyb3JDb2RlLk5PVF9GT1VORF06IDQwNCxcbiAgW0Vycm9yQ29kZS5PUkdfTk9UX0ZPVU5EXTogNDA0LFxuICBbRXJyb3JDb2RlLlZBTElEQVRJT05fRVJST1JdOiA0MDAsXG4gIFtFcnJvckNvZGUuTUlTU0lOR19SRVFVSVJFRF9GSUVMRF06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9VTktOT1dOX1BBVEhdOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfQ1lDTEVdOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfUEFSU0VfRVJST1JdOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfVFlQRV9NSVNNQVRDSF06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9TRUNSRVRTX1JFU0VSVkVEXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX0NPTlRSQUNUX1ZJT0xBVElPTl06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9TSVpFX0VYQ0VFREVEXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1ZBTElEQVRJT05fRkFJTEVEXTogNDAwLFxuICBbRXJyb3JDb2RlLlFVT1RBX0VYQ0VFREVEXTogNDI5LFxuICBbRXJyb3JDb2RlLlJBVEVfTElNSVRfRVhDRUVERURdOiA0MjksXG4gIFtFcnJvckNvZGUuUEFZTE9BRF9UT09fTEFSR0VdOiA0MTMsXG4gIFtFcnJvckNvZGUuQ09ORkxJQ1RdOiA0MDksXG4gIFtFcnJvckNvZGUuRFVQTElDQVRFX0VOVFJZXTogNDA5LFxuICBbRXJyb3JDb2RlLlNDQU5fQ09ORkxJQ1RdOiA0MDksXG4gIFtFcnJvckNvZGUuSU5URVJOQUxfRVJST1JdOiA1MDAsXG4gIFtFcnJvckNvZGUuREFUQUJBU0VfRVJST1JdOiA1MDAsXG4gIFtFcnJvckNvZGUuU0VSVklDRV9VTkFWQUlMQUJMRV06IDUwMyxcbiAgW0Vycm9yQ29kZS5DT01QTElBTkNFX1NFUlZJQ0VfVU5BVkFJTEFCTEVdOiA1MDMsXG59O1xuXG4vKipcbiAqIEdldCB0aGUgSFRUUCBzdGF0dXMgY29kZSBmb3IgYW4gZXJyb3IgY29kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c0ZvckVycm9yQ29kZShjb2RlOiBFcnJvckNvZGUpOiBudW1iZXIge1xuICByZXR1cm4gRXJyb3JDb2RlU3RhdHVzW2NvZGVdID8/IDUwMDtcbn1cbiJdfQ==
|
|
@@ -21,11 +21,19 @@ export declare const FEATURE_METADATA: Record<FeatureFlag, {
|
|
|
21
21
|
* 4. Invalid override keys are silently ignored.
|
|
22
22
|
*
|
|
23
23
|
* @param tier - The organization's quota tier
|
|
24
|
-
* @param
|
|
25
|
-
*
|
|
24
|
+
* @param opts - Resolution options:
|
|
25
|
+
* - `overrides`: per-user overrides (key = feature flag, value = enabled)
|
|
26
|
+
* - `isSuperAdmin`: whether the user has the global super-admin flag
|
|
27
|
+
* - `accountFeatures`: account-level entitlements (e.g. purchased add-on
|
|
28
|
+
* bundles). A NAMED field so it can never be silently dropped by a caller
|
|
29
|
+
* that omits a trailing positional arg.
|
|
26
30
|
* @returns Sorted array of enabled feature flags
|
|
27
31
|
*/
|
|
28
|
-
export declare function resolveUserFeatures(tier: QuotaTier,
|
|
32
|
+
export declare function resolveUserFeatures(tier: QuotaTier, opts?: {
|
|
33
|
+
overrides?: Record<string, boolean> | null;
|
|
34
|
+
isSuperAdmin?: boolean;
|
|
35
|
+
accountFeatures?: readonly string[] | null;
|
|
36
|
+
}): FeatureFlag[];
|
|
29
37
|
/**
|
|
30
38
|
* Check if a specific feature is enabled for a user. Delegates to
|
|
31
39
|
* {@link resolveUserFeatures} so it stays in lockstep — including account-level
|
|
@@ -18,9 +18,9 @@ export function isValidFeatureFlag(value) {
|
|
|
18
18
|
export const TIER_FEATURES = {
|
|
19
19
|
developer: [],
|
|
20
20
|
pro: ['priority_support', 'ai_generation', 'bulk_operations'],
|
|
21
|
-
// Team adds audit_log (collaboration/governance)
|
|
22
|
-
//
|
|
23
|
-
team: ['priority_support', 'ai_generation', 'bulk_operations', 'audit_log'],
|
|
21
|
+
// Team adds audit_log (collaboration/governance) and sso (SSO/IdP is INCLUDED
|
|
22
|
+
// in Team, not an add-on); Enterprise unlocks all, incl. custom_integrations.
|
|
23
|
+
team: ['priority_support', 'ai_generation', 'bulk_operations', 'audit_log', 'sso'],
|
|
24
24
|
enterprise: [...ALL_FEATURE_FLAGS],
|
|
25
25
|
};
|
|
26
26
|
// Feature metadata (for display)
|
|
@@ -61,11 +61,16 @@ export const FEATURE_METADATA = {
|
|
|
61
61
|
* 4. Invalid override keys are silently ignored.
|
|
62
62
|
*
|
|
63
63
|
* @param tier - The organization's quota tier
|
|
64
|
-
* @param
|
|
65
|
-
*
|
|
64
|
+
* @param opts - Resolution options:
|
|
65
|
+
* - `overrides`: per-user overrides (key = feature flag, value = enabled)
|
|
66
|
+
* - `isSuperAdmin`: whether the user has the global super-admin flag
|
|
67
|
+
* - `accountFeatures`: account-level entitlements (e.g. purchased add-on
|
|
68
|
+
* bundles). A NAMED field so it can never be silently dropped by a caller
|
|
69
|
+
* that omits a trailing positional arg.
|
|
66
70
|
* @returns Sorted array of enabled feature flags
|
|
67
71
|
*/
|
|
68
|
-
export function resolveUserFeatures(tier,
|
|
72
|
+
export function resolveUserFeatures(tier, opts) {
|
|
73
|
+
const { overrides: featureOverrides, isSuperAdmin, accountFeatures } = opts ?? {};
|
|
69
74
|
// Sysadmins get everything regardless of tier.
|
|
70
75
|
if (isSuperAdmin)
|
|
71
76
|
return [...ALL_FEATURE_FLAGS];
|
|
@@ -108,6 +113,6 @@ export function resolveUserFeatures(tier, featureOverrides, isSuperAdmin, accoun
|
|
|
108
113
|
* @returns true if the feature is enabled
|
|
109
114
|
*/
|
|
110
115
|
export function hasFeature(tier, feature, featureOverrides, isSuperAdmin, accountFeatures) {
|
|
111
|
-
return resolveUserFeatures(tier, featureOverrides, isSuperAdmin, accountFeatures).includes(feature);
|
|
116
|
+
return resolveUserFeatures(tier, { overrides: featureOverrides, isSuperAdmin, accountFeatures }).includes(feature);
|
|
112
117
|
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9mZWF0dXJlLWZsYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFldEMsZ0VBQWdFO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUEyQjtJQUN2RCxrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsV0FBVztJQUNYLEtBQUs7Q0FDTixDQUFDO0FBRUYscURBQXFEO0FBQ3JELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFhO0lBQzlDLE9BQVEsaUJBQXVDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRCwwQkFBMEI7QUFFMUIsaURBQWlEO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBOEM7SUFDdEUsU0FBUyxFQUFFLEVBQUU7SUFDYixHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLENBQUM7SUFDN0QsMEVBQTBFO0lBQzFFLGlDQUFpQztJQUNqQyxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO0lBQzNFLFVBQVUsRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7Q0FDbkMsQ0FBQztBQUVGLGlDQUFpQztBQUVqQyxxREFBcUQ7QUFDckQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQWdFO0lBQzNGLGdCQUFnQixFQUFFO1FBQ2hCLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsV0FBVyxFQUFFLHNEQUFzRDtLQUNwRTtJQUNELGFBQWEsRUFBRTtRQUNiLEtBQUssRUFBRSxlQUFlO1FBQ3RCLFdBQVcsRUFBRSwyQ0FBMkM7S0FDekQ7SUFDRCxlQUFlLEVBQUU7UUFDZixLQUFLLEVBQUUsaUJBQWlCO1FBQ3hCLFdBQVcsRUFBRSw0REFBNEQ7S0FDMUU7SUFDRCxtQkFBbUIsRUFBRTtRQUNuQixLQUFLLEVBQUUscUJBQXFCO1FBQzVCLFdBQVcsRUFBRSwyREFBMkQ7S0FDekU7SUFDRCxTQUFTLEVBQUU7UUFDVCxLQUFLLEVBQUUsV0FBVztRQUNsQixXQUFXLEVBQUUscURBQXFEO0tBQ25FO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsS0FBSyxFQUFFLFdBQVc7UUFDbEIsV0FBVyxFQUFFLDhEQUE4RDtLQUM1RTtDQUNGLENBQUM7QUFFRixtQkFBbUI7QUFFbkI7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxJQUFlLEVBQ2YsZ0JBQWlELEVBQ2pELFlBQXNCLEVBQ3RCLGVBQTBDO0lBRTFDLCtDQUErQztJQUMvQyxJQUFJLFlBQVk7UUFBRSxPQUFPLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWhELDJCQUEyQjtJQUMzQixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBYyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFakUsMEVBQTBFO0lBQzFFLDZFQUE2RTtJQUM3RSxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLEtBQUssTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7WUFDbEMsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDckIsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsU0FBUztZQUN2QyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQ3hCLElBQWUsRUFDZixPQUFvQixFQUNwQixnQkFBaUQsRUFDakQsWUFBc0IsRUFDdEIsZUFBMEM7SUFFMUMsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN0RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgUXVvdGFUaWVyIH0gZnJvbSAnLi9xdW90YS10aWVycy5qcyc7XG5cbi8vIEZlYXR1cmUgZmxhZyBpZGVudGlmaWVyc1xuXG4vKiogQ2Fub25pY2FsIGZlYXR1cmUgZmxhZyBpZGVudGlmaWVycy4gKi9cbmV4cG9ydCB0eXBlIEZlYXR1cmVGbGFnID1cbiAgfCAncHJpb3JpdHlfc3VwcG9ydCdcbiAgfCAnY3VzdG9tX2ludGVncmF0aW9ucydcbiAgfCAnYWlfZ2VuZXJhdGlvbidcbiAgfCAnYnVsa19vcGVyYXRpb25zJ1xuICB8ICdhdWRpdF9sb2cnXG4gIHwgJ3Nzbyc7XG5cbi8qKiBBbGwgdmFsaWQgZmVhdHVyZSBmbGFncyAob3JkZXIgZGV0ZXJtaW5lcyBkaXNwbGF5IG9yZGVyKS4gKi9cbmV4cG9ydCBjb25zdCBBTExfRkVBVFVSRV9GTEFHUzogcmVhZG9ubHkgRmVhdHVyZUZsYWdbXSA9IFtcbiAgJ3ByaW9yaXR5X3N1cHBvcnQnLFxuICAnYWlfZ2VuZXJhdGlvbicsXG4gICdidWxrX29wZXJhdGlvbnMnLFxuICAnY3VzdG9tX2ludGVncmF0aW9ucycsXG4gICdhdWRpdF9sb2cnLFxuICAnc3NvJyxcbl07XG5cbi8qKiBDaGVjayB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgRmVhdHVyZUZsYWcuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEZlYXR1cmVGbGFnKHZhbHVlOiBzdHJpbmcpOiB2YWx1ZSBpcyBGZWF0dXJlRmxhZyB7XG4gIHJldHVybiAoQUxMX0ZFQVRVUkVfRkxBR1MgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKHZhbHVlKTtcbn1cblxuLy8gVGllci10by1mZWF0dXJlIG1hcHBpbmdcblxuLyoqIEZlYXR1cmVzIGVuYWJsZWQgYnkgZGVmYXVsdCBmb3IgZWFjaCB0aWVyLiAqL1xuZXhwb3J0IGNvbnN0IFRJRVJfRkVBVFVSRVM6IFJlY29yZDxRdW90YVRpZXIsIHJlYWRvbmx5IEZlYXR1cmVGbGFnW10+ID0ge1xuICBkZXZlbG9wZXI6IFtdLFxuICBwcm86IFsncHJpb3JpdHlfc3VwcG9ydCcsICdhaV9nZW5lcmF0aW9uJywgJ2J1bGtfb3BlcmF0aW9ucyddLFxuICAvLyBUZWFtIGFkZHMgYXVkaXRfbG9nIChjb2xsYWJvcmF0aW9uL2dvdmVybmFuY2UpOyBFbnRlcnByaXNlIHVubG9ja3MgYWxsLFxuICAvLyBpbmNsdWRpbmcgY3VzdG9tX2ludGVncmF0aW9ucy5cbiAgdGVhbTogWydwcmlvcml0eV9zdXBwb3J0JywgJ2FpX2dlbmVyYXRpb24nLCAnYnVsa19vcGVyYXRpb25zJywgJ2F1ZGl0X2xvZyddLFxuICBlbnRlcnByaXNlOiBbLi4uQUxMX0ZFQVRVUkVfRkxBR1NdLFxufTtcblxuLy8gRmVhdHVyZSBtZXRhZGF0YSAoZm9yIGRpc3BsYXkpXG5cbi8qKiBIdW1hbi1yZWFkYWJsZSBtZXRhZGF0YSBmb3IgZWFjaCBmZWF0dXJlIGZsYWcuICovXG5leHBvcnQgY29uc3QgRkVBVFVSRV9NRVRBREFUQTogUmVjb3JkPEZlYXR1cmVGbGFnLCB7IGxhYmVsOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmcgfT4gPSB7XG4gIHByaW9yaXR5X3N1cHBvcnQ6IHtcbiAgICBsYWJlbDogJ1ByaW9yaXR5IFN1cHBvcnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmFzdGVyIHJlc3BvbnNlIHRpbWVzIGFuZCBkZWRpY2F0ZWQgc3VwcG9ydCBjaGFubmVscycsXG4gIH0sXG4gIGFpX2dlbmVyYXRpb246IHtcbiAgICBsYWJlbDogJ0FJIEdlbmVyYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnQUktcG93ZXJlZCBwaXBlbGluZSBhbmQgcGx1Z2luIGdlbmVyYXRpb24nLFxuICB9LFxuICBidWxrX29wZXJhdGlvbnM6IHtcbiAgICBsYWJlbDogJ0J1bGsgT3BlcmF0aW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdCYXRjaCBjcmVhdGUsIHVwZGF0ZSwgYW5kIGRlbGV0ZSBmb3IgcGlwZWxpbmVzIGFuZCBwbHVnaW5zJyxcbiAgfSxcbiAgY3VzdG9tX2ludGVncmF0aW9uczoge1xuICAgIGxhYmVsOiAnQ3VzdG9tIEludGVncmF0aW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdDb25uZWN0IHRvIGV4dGVybmFsIHNlcnZpY2VzIGFuZCBjdXN0b20gd2ViaG9vayBlbmRwb2ludHMnLFxuICB9LFxuICBhdWRpdF9sb2c6IHtcbiAgICBsYWJlbDogJ0F1ZGl0IExvZycsXG4gICAgZGVzY3JpcHRpb246ICdEZXRhaWxlZCBhdWRpdCB0cmFpbCBvZiBhbGwgdXNlciBhbmQgc3lzdGVtIGFjdGlvbnMnLFxuICB9LFxuICBzc286IHtcbiAgICBsYWJlbDogJ1NTTyAvIElkUCcsXG4gICAgZGVzY3JpcHRpb246ICdTaW5nbGUgc2lnbi1vbiBhbmQgZXh0ZXJuYWwgaWRlbnRpdHktcHJvdmlkZXIgY29uZmlndXJhdGlvbnMnLFxuICB9LFxufTtcblxuLy8gUmVzb2x1dGlvbiBsb2dpY1xuXG4vKipcbiAqIFJlc29sdmUgYSB1c2VyJ3MgZWZmZWN0aXZlIGZlYXR1cmUgc2V0LlxuICpcbiAqIDEuIFN5c2FkbWlucyAoaXNTdXBlckFkbWluKSBhbHdheXMgZ2V0IEFMTCBmZWF0dXJlcy5cbiAqIDIuIFN0YXJ0IHdpdGggdGhlIHRpZXIncyBkZWZhdWx0IGZlYXR1cmVzLlxuICogMy4gQXBwbHkgcGVyLXVzZXIgb3ZlcnJpZGVzOiBgdHJ1ZWAgYWRkcyBhIGZlYXR1cmUsIGBmYWxzZWAgcmVtb3ZlcyBpdC5cbiAqIDQuIEludmFsaWQgb3ZlcnJpZGUga2V5cyBhcmUgc2lsZW50bHkgaWdub3JlZC5cbiAqXG4gKiBAcGFyYW0gdGllciAtIFRoZSBvcmdhbml6YXRpb24ncyBxdW90YSB0aWVyXG4gKiBAcGFyYW0gZmVhdHVyZU92ZXJyaWRlcyAtIFBlci11c2VyIG92ZXJyaWRlcyAoa2V5ID0gZmVhdHVyZSBmbGFnLCB2YWx1ZSA9IGVuYWJsZWQpXG4gKiBAcGFyYW0gaXNTdXBlckFkbWluIC0gV2hldGhlciB0aGUgdXNlciBoYXMgdGhlIGdsb2JhbCBzdXBlci1hZG1pbiBmbGFnXG4gKiBAcmV0dXJucyBTb3J0ZWQgYXJyYXkgb2YgZW5hYmxlZCBmZWF0dXJlIGZsYWdzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVXNlckZlYXR1cmVzKFxuICB0aWVyOiBRdW90YVRpZXIsXG4gIGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiB8IG51bGwsXG4gIGlzU3VwZXJBZG1pbj86IGJvb2xlYW4sXG4gIGFjY291bnRGZWF0dXJlcz86IHJlYWRvbmx5IHN0cmluZ1tdIHwgbnVsbCxcbik6IEZlYXR1cmVGbGFnW10ge1xuICAvLyBTeXNhZG1pbnMgZ2V0IGV2ZXJ5dGhpbmcgcmVnYXJkbGVzcyBvZiB0aWVyLlxuICBpZiAoaXNTdXBlckFkbWluKSByZXR1cm4gWy4uLkFMTF9GRUFUVVJFX0ZMQUdTXTtcblxuICAvLyBTdGFydCB3aXRoIHRpZXIgZGVmYXVsdHNcbiAgY29uc3QgZmVhdHVyZXMgPSBuZXcgU2V0PEZlYXR1cmVGbGFnPihUSUVSX0ZFQVRVUkVTW3RpZXJdID8/IFtdKTtcblxuICAvLyBBY2NvdW50LWxldmVsIGVudGl0bGVtZW50cyAocHVyY2hhc2VkIGZlYXR1cmUgYnVuZGxlcyDigJQgYXVkaXRfbG9nL3NzbykuXG4gIC8vIEFwcGxpZWQgYmVmb3JlIHBlci11c2VyIG92ZXJyaWRlcyBzbyBhbiBleHBsaWNpdCB1c2VyIG92ZXJyaWRlIHN0aWxsIHdpbnMuXG4gIGlmIChhY2NvdW50RmVhdHVyZXMpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBhY2NvdW50RmVhdHVyZXMpIHtcbiAgICAgIGlmIChpc1ZhbGlkRmVhdHVyZUZsYWcoa2V5KSkgZmVhdHVyZXMuYWRkKGtleSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQXBwbHkgcGVyLXVzZXIgb3ZlcnJpZGVzXG4gIGlmIChmZWF0dXJlT3ZlcnJpZGVzKSB7XG4gICAgZm9yIChjb25zdCBba2V5LCBlbmFibGVkXSBvZiBPYmplY3QuZW50cmllcyhmZWF0dXJlT3ZlcnJpZGVzKSkge1xuICAgICAgaWYgKCFpc1ZhbGlkRmVhdHVyZUZsYWcoa2V5KSkgY29udGludWU7XG4gICAgICBpZiAoZW5hYmxlZCkge1xuICAgICAgICBmZWF0dXJlcy5hZGQoa2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZlYXR1cmVzLmRlbGV0ZShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybiBpbiBjYW5vbmljYWwgb3JkZXJcbiAgcmV0dXJuIEFMTF9GRUFUVVJFX0ZMQUdTLmZpbHRlcihmID0+IGZlYXR1cmVzLmhhcyhmKSk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBzcGVjaWZpYyBmZWF0dXJlIGlzIGVuYWJsZWQgZm9yIGEgdXNlci4gRGVsZWdhdGVzIHRvXG4gKiB7QGxpbmsgcmVzb2x2ZVVzZXJGZWF0dXJlc30gc28gaXQgc3RheXMgaW4gbG9ja3N0ZXAg4oCUIGluY2x1ZGluZyBhY2NvdW50LWxldmVsXG4gKiBlbnRpdGxlbWVudHMgcHVyY2hhc2VkIHZpYSBhZGQtb24gYnVuZGxlcyAoYGFjY291bnRGZWF0dXJlc2ApLlxuICpcbiAqIEBwYXJhbSB0aWVyIC0gVGhlIG9yZ2FuaXphdGlvbidzIHF1b3RhIHRpZXJcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgZmxhZyB0byBjaGVja1xuICogQHBhcmFtIGZlYXR1cmVPdmVycmlkZXMgLSBQZXItdXNlciBvdmVycmlkZXNcbiAqIEBwYXJhbSBpc1N1cGVyQWRtaW4gLSBXaGV0aGVyIHRoZSB1c2VyIGhhcyB0aGUgZ2xvYmFsIHN1cGVyLWFkbWluIGZsYWdcbiAqIEBwYXJhbSBhY2NvdW50RmVhdHVyZXMgLSBBY2NvdW50LWxldmVsIGVudGl0bGVtZW50cyAoZS5nLiBidW5kbGUtZ3JhbnRlZClcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGZlYXR1cmUgaXMgZW5hYmxlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzRmVhdHVyZShcbiAgdGllcjogUXVvdGFUaWVyLFxuICBmZWF0dXJlOiBGZWF0dXJlRmxhZyxcbiAgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IHwgbnVsbCxcbiAgaXNTdXBlckFkbWluPzogYm9vbGVhbixcbiAgYWNjb3VudEZlYXR1cmVzPzogcmVhZG9ubHkgc3RyaW5nW10gfCBudWxsLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiByZXNvbHZlVXNlckZlYXR1cmVzKHRpZXIsIGZlYXR1cmVPdmVycmlkZXMsIGlzU3VwZXJBZG1pbiwgYWNjb3VudEZlYXR1cmVzKS5pbmNsdWRlcyhmZWF0dXJlKTtcbn1cbiJdfQ==
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9mZWF0dXJlLWZsYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFldEMsZ0VBQWdFO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUEyQjtJQUN2RCxrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsV0FBVztJQUNYLEtBQUs7Q0FDTixDQUFDO0FBRUYscURBQXFEO0FBQ3JELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFhO0lBQzlDLE9BQVEsaUJBQXVDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRCwwQkFBMEI7QUFFMUIsaURBQWlEO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBOEM7SUFDdEUsU0FBUyxFQUFFLEVBQUU7SUFDYixHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLENBQUM7SUFDN0QsOEVBQThFO0lBQzlFLDhFQUE4RTtJQUM5RSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQztJQUNsRixVQUFVLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO0NBQ25DLENBQUM7QUFFRixpQ0FBaUM7QUFFakMscURBQXFEO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFnRTtJQUMzRixnQkFBZ0IsRUFBRTtRQUNoQixLQUFLLEVBQUUsa0JBQWtCO1FBQ3pCLFdBQVcsRUFBRSxzREFBc0Q7S0FDcEU7SUFDRCxhQUFhLEVBQUU7UUFDYixLQUFLLEVBQUUsZUFBZTtRQUN0QixXQUFXLEVBQUUsMkNBQTJDO0tBQ3pEO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixXQUFXLEVBQUUsNERBQTREO0tBQzFFO0lBQ0QsbUJBQW1CLEVBQUU7UUFDbkIsS0FBSyxFQUFFLHFCQUFxQjtRQUM1QixXQUFXLEVBQUUsMkRBQTJEO0tBQ3pFO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsS0FBSyxFQUFFLFdBQVc7UUFDbEIsV0FBVyxFQUFFLHFEQUFxRDtLQUNuRTtJQUNELEdBQUcsRUFBRTtRQUNILEtBQUssRUFBRSxXQUFXO1FBQ2xCLFdBQVcsRUFBRSw4REFBOEQ7S0FDNUU7Q0FDRixDQUFDO0FBRUYsbUJBQW1CO0FBRW5COzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxJQUFlLEVBQ2YsSUFJQztJQUVELE1BQU0sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFFbEYsK0NBQStDO0lBQy9DLElBQUksWUFBWTtRQUFFLE9BQU8sQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUM7SUFFaEQsMkJBQTJCO0lBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFjLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVqRSwwRUFBMEU7SUFDMUUsNkVBQTZFO0lBQzdFLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNsQyxJQUFJLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztnQkFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDSCxDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNyQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztnQkFBRSxTQUFTO1lBQ3ZDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsSUFBZSxFQUNmLE9BQW9CLEVBQ3BCLGdCQUFpRCxFQUNqRCxZQUFzQixFQUN0QixlQUEwQztJQUUxQyxPQUFPLG1CQUFtQixDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgdHlwZSB7IFF1b3RhVGllciB9IGZyb20gJy4vcXVvdGEtdGllcnMuanMnO1xuXG4vLyBGZWF0dXJlIGZsYWcgaWRlbnRpZmllcnNcblxuLyoqIENhbm9uaWNhbCBmZWF0dXJlIGZsYWcgaWRlbnRpZmllcnMuICovXG5leHBvcnQgdHlwZSBGZWF0dXJlRmxhZyA9XG4gIHwgJ3ByaW9yaXR5X3N1cHBvcnQnXG4gIHwgJ2N1c3RvbV9pbnRlZ3JhdGlvbnMnXG4gIHwgJ2FpX2dlbmVyYXRpb24nXG4gIHwgJ2J1bGtfb3BlcmF0aW9ucydcbiAgfCAnYXVkaXRfbG9nJ1xuICB8ICdzc28nO1xuXG4vKiogQWxsIHZhbGlkIGZlYXR1cmUgZmxhZ3MgKG9yZGVyIGRldGVybWluZXMgZGlzcGxheSBvcmRlcikuICovXG5leHBvcnQgY29uc3QgQUxMX0ZFQVRVUkVfRkxBR1M6IHJlYWRvbmx5IEZlYXR1cmVGbGFnW10gPSBbXG4gICdwcmlvcml0eV9zdXBwb3J0JyxcbiAgJ2FpX2dlbmVyYXRpb24nLFxuICAnYnVsa19vcGVyYXRpb25zJyxcbiAgJ2N1c3RvbV9pbnRlZ3JhdGlvbnMnLFxuICAnYXVkaXRfbG9nJyxcbiAgJ3NzbycsXG5dO1xuXG4vKiogQ2hlY2sgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEZlYXR1cmVGbGFnLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRGZWF0dXJlRmxhZyh2YWx1ZTogc3RyaW5nKTogdmFsdWUgaXMgRmVhdHVyZUZsYWcge1xuICByZXR1cm4gKEFMTF9GRUFUVVJFX0ZMQUdTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyh2YWx1ZSk7XG59XG5cbi8vIFRpZXItdG8tZmVhdHVyZSBtYXBwaW5nXG5cbi8qKiBGZWF0dXJlcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGVhY2ggdGllci4gKi9cbmV4cG9ydCBjb25zdCBUSUVSX0ZFQVRVUkVTOiBSZWNvcmQ8UXVvdGFUaWVyLCByZWFkb25seSBGZWF0dXJlRmxhZ1tdPiA9IHtcbiAgZGV2ZWxvcGVyOiBbXSxcbiAgcHJvOiBbJ3ByaW9yaXR5X3N1cHBvcnQnLCAnYWlfZ2VuZXJhdGlvbicsICdidWxrX29wZXJhdGlvbnMnXSxcbiAgLy8gVGVhbSBhZGRzIGF1ZGl0X2xvZyAoY29sbGFib3JhdGlvbi9nb3Zlcm5hbmNlKSBhbmQgc3NvIChTU08vSWRQIGlzIElOQ0xVREVEXG4gIC8vIGluIFRlYW0sIG5vdCBhbiBhZGQtb24pOyBFbnRlcnByaXNlIHVubG9ja3MgYWxsLCBpbmNsLiBjdXN0b21faW50ZWdyYXRpb25zLlxuICB0ZWFtOiBbJ3ByaW9yaXR5X3N1cHBvcnQnLCAnYWlfZ2VuZXJhdGlvbicsICdidWxrX29wZXJhdGlvbnMnLCAnYXVkaXRfbG9nJywgJ3NzbyddLFxuICBlbnRlcnByaXNlOiBbLi4uQUxMX0ZFQVRVUkVfRkxBR1NdLFxufTtcblxuLy8gRmVhdHVyZSBtZXRhZGF0YSAoZm9yIGRpc3BsYXkpXG5cbi8qKiBIdW1hbi1yZWFkYWJsZSBtZXRhZGF0YSBmb3IgZWFjaCBmZWF0dXJlIGZsYWcuICovXG5leHBvcnQgY29uc3QgRkVBVFVSRV9NRVRBREFUQTogUmVjb3JkPEZlYXR1cmVGbGFnLCB7IGxhYmVsOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmcgfT4gPSB7XG4gIHByaW9yaXR5X3N1cHBvcnQ6IHtcbiAgICBsYWJlbDogJ1ByaW9yaXR5IFN1cHBvcnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmFzdGVyIHJlc3BvbnNlIHRpbWVzIGFuZCBkZWRpY2F0ZWQgc3VwcG9ydCBjaGFubmVscycsXG4gIH0sXG4gIGFpX2dlbmVyYXRpb246IHtcbiAgICBsYWJlbDogJ0FJIEdlbmVyYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnQUktcG93ZXJlZCBwaXBlbGluZSBhbmQgcGx1Z2luIGdlbmVyYXRpb24nLFxuICB9LFxuICBidWxrX29wZXJhdGlvbnM6IHtcbiAgICBsYWJlbDogJ0J1bGsgT3BlcmF0aW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdCYXRjaCBjcmVhdGUsIHVwZGF0ZSwgYW5kIGRlbGV0ZSBmb3IgcGlwZWxpbmVzIGFuZCBwbHVnaW5zJyxcbiAgfSxcbiAgY3VzdG9tX2ludGVncmF0aW9uczoge1xuICAgIGxhYmVsOiAnQ3VzdG9tIEludGVncmF0aW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdDb25uZWN0IHRvIGV4dGVybmFsIHNlcnZpY2VzIGFuZCBjdXN0b20gd2ViaG9vayBlbmRwb2ludHMnLFxuICB9LFxuICBhdWRpdF9sb2c6IHtcbiAgICBsYWJlbDogJ0F1ZGl0IExvZycsXG4gICAgZGVzY3JpcHRpb246ICdEZXRhaWxlZCBhdWRpdCB0cmFpbCBvZiBhbGwgdXNlciBhbmQgc3lzdGVtIGFjdGlvbnMnLFxuICB9LFxuICBzc286IHtcbiAgICBsYWJlbDogJ1NTTyAvIElkUCcsXG4gICAgZGVzY3JpcHRpb246ICdTaW5nbGUgc2lnbi1vbiBhbmQgZXh0ZXJuYWwgaWRlbnRpdHktcHJvdmlkZXIgY29uZmlndXJhdGlvbnMnLFxuICB9LFxufTtcblxuLy8gUmVzb2x1dGlvbiBsb2dpY1xuXG4vKipcbiAqIFJlc29sdmUgYSB1c2VyJ3MgZWZmZWN0aXZlIGZlYXR1cmUgc2V0LlxuICpcbiAqIDEuIFN5c2FkbWlucyAoaXNTdXBlckFkbWluKSBhbHdheXMgZ2V0IEFMTCBmZWF0dXJlcy5cbiAqIDIuIFN0YXJ0IHdpdGggdGhlIHRpZXIncyBkZWZhdWx0IGZlYXR1cmVzLlxuICogMy4gQXBwbHkgcGVyLXVzZXIgb3ZlcnJpZGVzOiBgdHJ1ZWAgYWRkcyBhIGZlYXR1cmUsIGBmYWxzZWAgcmVtb3ZlcyBpdC5cbiAqIDQuIEludmFsaWQgb3ZlcnJpZGUga2V5cyBhcmUgc2lsZW50bHkgaWdub3JlZC5cbiAqXG4gKiBAcGFyYW0gdGllciAtIFRoZSBvcmdhbml6YXRpb24ncyBxdW90YSB0aWVyXG4gKiBAcGFyYW0gb3B0cyAtIFJlc29sdXRpb24gb3B0aW9uczpcbiAqICAgLSBgb3ZlcnJpZGVzYDogcGVyLXVzZXIgb3ZlcnJpZGVzIChrZXkgPSBmZWF0dXJlIGZsYWcsIHZhbHVlID0gZW5hYmxlZClcbiAqICAgLSBgaXNTdXBlckFkbWluYDogd2hldGhlciB0aGUgdXNlciBoYXMgdGhlIGdsb2JhbCBzdXBlci1hZG1pbiBmbGFnXG4gKiAgIC0gYGFjY291bnRGZWF0dXJlc2A6IGFjY291bnQtbGV2ZWwgZW50aXRsZW1lbnRzIChlLmcuIHB1cmNoYXNlZCBhZGQtb25cbiAqICAgICBidW5kbGVzKS4gQSBOQU1FRCBmaWVsZCBzbyBpdCBjYW4gbmV2ZXIgYmUgc2lsZW50bHkgZHJvcHBlZCBieSBhIGNhbGxlclxuICogICAgIHRoYXQgb21pdHMgYSB0cmFpbGluZyBwb3NpdGlvbmFsIGFyZy5cbiAqIEByZXR1cm5zIFNvcnRlZCBhcnJheSBvZiBlbmFibGVkIGZlYXR1cmUgZmxhZ3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVVc2VyRmVhdHVyZXMoXG4gIHRpZXI6IFF1b3RhVGllcixcbiAgb3B0cz86IHtcbiAgICBvdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiB8IG51bGw7XG4gICAgaXNTdXBlckFkbWluPzogYm9vbGVhbjtcbiAgICBhY2NvdW50RmVhdHVyZXM/OiByZWFkb25seSBzdHJpbmdbXSB8IG51bGw7XG4gIH0sXG4pOiBGZWF0dXJlRmxhZ1tdIHtcbiAgY29uc3QgeyBvdmVycmlkZXM6IGZlYXR1cmVPdmVycmlkZXMsIGlzU3VwZXJBZG1pbiwgYWNjb3VudEZlYXR1cmVzIH0gPSBvcHRzID8/IHt9O1xuXG4gIC8vIFN5c2FkbWlucyBnZXQgZXZlcnl0aGluZyByZWdhcmRsZXNzIG9mIHRpZXIuXG4gIGlmIChpc1N1cGVyQWRtaW4pIHJldHVybiBbLi4uQUxMX0ZFQVRVUkVfRkxBR1NdO1xuXG4gIC8vIFN0YXJ0IHdpdGggdGllciBkZWZhdWx0c1xuICBjb25zdCBmZWF0dXJlcyA9IG5ldyBTZXQ8RmVhdHVyZUZsYWc+KFRJRVJfRkVBVFVSRVNbdGllcl0gPz8gW10pO1xuXG4gIC8vIEFjY291bnQtbGV2ZWwgZW50aXRsZW1lbnRzIChwdXJjaGFzZWQgZmVhdHVyZSBidW5kbGVzIOKAlCBhdWRpdF9sb2cvc3NvKS5cbiAgLy8gQXBwbGllZCBiZWZvcmUgcGVyLXVzZXIgb3ZlcnJpZGVzIHNvIGFuIGV4cGxpY2l0IHVzZXIgb3ZlcnJpZGUgc3RpbGwgd2lucy5cbiAgaWYgKGFjY291bnRGZWF0dXJlcykge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGFjY291bnRGZWF0dXJlcykge1xuICAgICAgaWYgKGlzVmFsaWRGZWF0dXJlRmxhZyhrZXkpKSBmZWF0dXJlcy5hZGQoa2V5KTtcbiAgICB9XG4gIH1cblxuICAvLyBBcHBseSBwZXItdXNlciBvdmVycmlkZXNcbiAgaWYgKGZlYXR1cmVPdmVycmlkZXMpIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIGVuYWJsZWRdIG9mIE9iamVjdC5lbnRyaWVzKGZlYXR1cmVPdmVycmlkZXMpKSB7XG4gICAgICBpZiAoIWlzVmFsaWRGZWF0dXJlRmxhZyhrZXkpKSBjb250aW51ZTtcbiAgICAgIGlmIChlbmFibGVkKSB7XG4gICAgICAgIGZlYXR1cmVzLmFkZChrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmVhdHVyZXMuZGVsZXRlKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmV0dXJuIGluIGNhbm9uaWNhbCBvcmRlclxuICByZXR1cm4gQUxMX0ZFQVRVUkVfRkxBR1MuZmlsdGVyKGYgPT4gZmVhdHVyZXMuaGFzKGYpKTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHNwZWNpZmljIGZlYXR1cmUgaXMgZW5hYmxlZCBmb3IgYSB1c2VyLiBEZWxlZ2F0ZXMgdG9cbiAqIHtAbGluayByZXNvbHZlVXNlckZlYXR1cmVzfSBzbyBpdCBzdGF5cyBpbiBsb2Nrc3RlcCDigJQgaW5jbHVkaW5nIGFjY291bnQtbGV2ZWxcbiAqIGVudGl0bGVtZW50cyBwdXJjaGFzZWQgdmlhIGFkZC1vbiBidW5kbGVzIChgYWNjb3VudEZlYXR1cmVzYCkuXG4gKlxuICogQHBhcmFtIHRpZXIgLSBUaGUgb3JnYW5pemF0aW9uJ3MgcXVvdGEgdGllclxuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBmbGFnIHRvIGNoZWNrXG4gKiBAcGFyYW0gZmVhdHVyZU92ZXJyaWRlcyAtIFBlci11c2VyIG92ZXJyaWRlc1xuICogQHBhcmFtIGlzU3VwZXJBZG1pbiAtIFdoZXRoZXIgdGhlIHVzZXIgaGFzIHRoZSBnbG9iYWwgc3VwZXItYWRtaW4gZmxhZ1xuICogQHBhcmFtIGFjY291bnRGZWF0dXJlcyAtIEFjY291bnQtbGV2ZWwgZW50aXRsZW1lbnRzIChlLmcuIGJ1bmRsZS1ncmFudGVkKVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZmVhdHVyZSBpcyBlbmFibGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNGZWF0dXJlKFxuICB0aWVyOiBRdW90YVRpZXIsXG4gIGZlYXR1cmU6IEZlYXR1cmVGbGFnLFxuICBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfCBudWxsLFxuICBpc1N1cGVyQWRtaW4/OiBib29sZWFuLFxuICBhY2NvdW50RmVhdHVyZXM/OiByZWFkb25seSBzdHJpbmdbXSB8IG51bGwsXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHJlc29sdmVVc2VyRmVhdHVyZXModGllciwgeyBvdmVycmlkZXM6IGZlYXR1cmVPdmVycmlkZXMsIGlzU3VwZXJBZG1pbiwgYWNjb3VudEZlYXR1cmVzIH0pLmluY2x1ZGVzKGZlYXR1cmUpO1xufVxuIl19
|
|
@@ -17,6 +17,23 @@ export type Permission = 'pipelines:read' | 'pipelines:write' | 'plugins:read' |
|
|
|
17
17
|
export declare const ALL_PERMISSIONS: readonly Permission[];
|
|
18
18
|
/** Check whether a string is a valid Permission. */
|
|
19
19
|
export declare function isValidPermission(value: string): value is Permission;
|
|
20
|
+
/**
|
|
21
|
+
* Permissions that must NEVER be grantable through a user-authored CUSTOM Role —
|
|
22
|
+
* they gate platform-operator surfaces (the shared image registry), so allowing
|
|
23
|
+
* an org admin to mint a Role carrying them would be a latent privilege
|
|
24
|
+
* escalation the moment those permissions get wired to an endpoint. Built-in
|
|
25
|
+
* Role seeds (e.g. `member` carrying `registry:read`) are system-created and are
|
|
26
|
+
* NOT subject to this list; it constrains only custom-Role authoring.
|
|
27
|
+
*/
|
|
28
|
+
export declare const SUPERADMIN_ONLY_PERMISSIONS: readonly Permission[];
|
|
29
|
+
/**
|
|
30
|
+
* Permissions an org may assign via a CUSTOM Role — every permission except the
|
|
31
|
+
* {@link SUPERADMIN_ONLY_PERMISSIONS}. Custom-Role create/update validates the
|
|
32
|
+
* requested permission set against this (see platform roles-service).
|
|
33
|
+
*/
|
|
34
|
+
export declare const ORG_ASSIGNABLE_PERMISSIONS: readonly Permission[];
|
|
35
|
+
/** Whether `permission` may be granted through a user-authored custom Role. */
|
|
36
|
+
export declare function isOrgAssignablePermission(permission: Permission): boolean;
|
|
20
37
|
/**
|
|
21
38
|
* Seed bundle for each built-in Role, keyed by the coarse role it grants.
|
|
22
39
|
* Consumed by the Role seeder + the startup backfill to populate a built-in
|
package/lib/types/permissions.js
CHANGED
|
@@ -19,6 +19,28 @@ export const ALL_PERMISSIONS = [
|
|
|
19
19
|
export function isValidPermission(value) {
|
|
20
20
|
return ALL_PERMISSIONS.includes(value);
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Permissions that must NEVER be grantable through a user-authored CUSTOM Role —
|
|
24
|
+
* they gate platform-operator surfaces (the shared image registry), so allowing
|
|
25
|
+
* an org admin to mint a Role carrying them would be a latent privilege
|
|
26
|
+
* escalation the moment those permissions get wired to an endpoint. Built-in
|
|
27
|
+
* Role seeds (e.g. `member` carrying `registry:read`) are system-created and are
|
|
28
|
+
* NOT subject to this list; it constrains only custom-Role authoring.
|
|
29
|
+
*/
|
|
30
|
+
export const SUPERADMIN_ONLY_PERMISSIONS = [
|
|
31
|
+
'registry:read',
|
|
32
|
+
'registry:write',
|
|
33
|
+
];
|
|
34
|
+
/**
|
|
35
|
+
* Permissions an org may assign via a CUSTOM Role — every permission except the
|
|
36
|
+
* {@link SUPERADMIN_ONLY_PERMISSIONS}. Custom-Role create/update validates the
|
|
37
|
+
* requested permission set against this (see platform roles-service).
|
|
38
|
+
*/
|
|
39
|
+
export const ORG_ASSIGNABLE_PERMISSIONS = ALL_PERMISSIONS.filter((p) => !SUPERADMIN_ONLY_PERMISSIONS.includes(p));
|
|
40
|
+
/** Whether `permission` may be granted through a user-authored custom Role. */
|
|
41
|
+
export function isOrgAssignablePermission(permission) {
|
|
42
|
+
return !SUPERADMIN_ONLY_PERMISSIONS.includes(permission);
|
|
43
|
+
}
|
|
22
44
|
// =============================================================================
|
|
23
45
|
// Built-in Role seed bundles
|
|
24
46
|
// =============================================================================
|
|
@@ -100,4 +122,4 @@ export function hasPermission(granted, permission, isSuperAdmin) {
|
|
|
100
122
|
return true;
|
|
101
123
|
return !!granted && granted.includes(permission);
|
|
102
124
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcGVybWlzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQXVEdEMsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBMEI7SUFDcEQsZ0JBQWdCLEVBQUUsaUJBQWlCO0lBQ25DLGNBQWMsRUFBRSxlQUFlO0lBQy9CLGlCQUFpQixFQUFFLGtCQUFrQjtJQUNyQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsb0JBQW9CO0lBQ3RELGlCQUFpQixFQUFFLGtCQUFrQjtJQUNyQyxvQkFBb0IsRUFBRSxxQkFBcUI7SUFDM0MsY0FBYztJQUNkLGVBQWUsRUFBRSxnQkFBZ0I7SUFDakMsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxhQUFhO0lBQ2IsZUFBZSxFQUFFLGdCQUFnQjtJQUNqQyxjQUFjO0NBQ2YsQ0FBQztBQUVGLG9EQUFvRDtBQUNwRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBYTtJQUM3QyxPQUFRLGVBQXFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsNkJBQTZCO0FBQzdCLGdGQUFnRjtBQUVoRjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLGtCQUFrQixHQUEwQjtJQUNoRCxnQkFBZ0IsRUFBRSxpQkFBaUI7SUFDbkMsY0FBYyxFQUFFLGVBQWU7SUFDL0IsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsY0FBYztJQUNkLGVBQWUsRUFBRSxnQkFBZ0I7SUFDakMsY0FBYztJQUNkLGFBQWE7SUFDYixlQUFlO0NBQ2hCLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUEwQixDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7QUFFdEU7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBMkM7SUFDdEUsTUFBTSxFQUFFLGtCQUFrQjtJQUMxQixLQUFLLEVBQUUsaUJBQWlCO0lBQ3hCLEtBQUssRUFBRSxpQkFBaUI7Q0FDekIsQ0FBQztBQUVGLGdGQUFnRjtBQUNoRixhQUFhO0FBQ2IsZ0ZBQWdGO0FBRWhGOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxtQkFBOEMsRUFDOUMsWUFBc0I7SUFFdEIsSUFBSSxZQUFZO1FBQUUsT0FBTyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFFOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWMsQ0FBQztJQUNwQyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDeEIsS0FBSyxNQUFNLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3BDLElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2dCQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELG9GQUFvRjtBQUNwRixNQUFNLFVBQVUsYUFBYSxDQUMzQixPQUE2QyxFQUM3QyxVQUFzQixFQUN0QixZQUFzQjtJQUV0QixJQUFJLFlBQVk7UUFBRSxPQUFPLElBQUksQ0FBQztJQUM5QixPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgT3JnUm9sZSB9IGZyb20gJy4vY29tbW9uLmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBlcm1pc3Npb24gaWRlbnRpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2Fub25pY2FsIGZpbmUtZ3JhaW5lZCBwZXJtaXNzaW9uIGlkZW50aWZpZXJzLCBpbiBgcmVzb3VyY2U6YWN0aW9uYCBmb3JtLlxuICpcbiAqIFRoZXNlIGFyZSB0aGUgT1JHLVNDT1BFRCBjYXBhYmlsaXRpZXMgYSBSb2xlIGNhbiBncmFudCAoUkJBQykuIENvYXJzZSBieVxuICogZGVzaWduIOKAlCBgOndyaXRlYCBjb3ZlcnMgY3JlYXRlL3VwZGF0ZS9kZWxldGUgZm9yIGEgcmVzb3VyY2Ug4oCUIHNvIHRoZSBjYXRhbG9nXG4gKiBhbmQgcGVybWlzc2lvbi1waWNrZXIgVUkgc3RheSBzbWFsbDsgc3BsaXQgYSBgOndyaXRlYCBpbnRvIGA6Y3JlYXRlYC9gOmRlbGV0ZWBcbiAqIGxhdGVyIGlmIGEgcmVzb3VyY2UgbmVlZHMgaXQuXG4gKlxuICogTk9UIG1vZGVsZWQgaGVyZSAoaW50ZW50aW9uYWxseSk6IHBsYXRmb3JtLW9wZXJhdG9yIGFjdGlvbnMgKG9yZyBkZWxldGUsIHRpZXIvXG4gKiBxdW90YSBvdmVycmlkZSwgdXNlciBhZG1pbiwgaW1wZXJzb25hdGlvbiwgcGxhdGZvcm0gc2V0dGluZ3MpIHN0YXkgYmVoaW5kIHRoZVxuICogZ2xvYmFsIGBpc1N1cGVyQWRtaW5gIGZsYWcsIG5vdCBhIHBlci1vcmcgcGVybWlzc2lvbjsgYW5kIGByZXF1aXJlU3RlcFVwYFxuICogKE1GQSkgLyBgcmVxdWlyZUZlYXR1cmVgIChwbGFuIGVudGl0bGVtZW50cykgcmVtYWluIG9ydGhvZ29uYWwgZ2F0ZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFBlcm1pc3Npb24gPVxuICAvLyBQaXBlbGluZXNcbiAgfCAncGlwZWxpbmVzOnJlYWQnXG4gIHwgJ3BpcGVsaW5lczp3cml0ZSdcbiAgLy8gUGx1Z2luc1xuICB8ICdwbHVnaW5zOnJlYWQnXG4gIHwgJ3BsdWdpbnM6d3JpdGUnXG4gIC8vIENvbXBsaWFuY2VcbiAgfCAnY29tcGxpYW5jZTpyZWFkJ1xuICB8ICdjb21wbGlhbmNlOndyaXRlJ1xuICAvLyBNZW1iZXJzICYgYWNjZXNzXG4gIHwgJ21lbWJlcnM6bWFuYWdlJ1xuICB8ICdyb2xlczptYW5hZ2UnXG4gIHwgJ2ludml0YXRpb25zOm1hbmFnZSdcbiAgLy8gT2JzZXJ2YWJpbGl0eVxuICB8ICdkYXNoYm9hcmRzOnJlYWQnXG4gIHwgJ2Rhc2hib2FyZHM6d3JpdGUnXG4gIHwgJ29ic2VydmFiaWxpdHk6cmVhZCdcbiAgfCAnb2JzZXJ2YWJpbGl0eTp3cml0ZSdcbiAgLy8gSW5zaWdodHNcbiAgfCAncmVwb3J0czpyZWFkJ1xuICAvLyBNZXNzYWdpbmdcbiAgfCAnbWVzc2FnZXM6cmVhZCdcbiAgfCAnbWVzc2FnZXM6d3JpdGUnXG4gIC8vIEJpbGxpbmcgJiBxdW90YXNcbiAgfCAnYmlsbGluZzpyZWFkJ1xuICB8ICdiaWxsaW5nOm1hbmFnZSdcbiAgfCAncXVvdGFzOnJlYWQnXG4gIC8vIFJlZ2lzdHJ5XG4gIHwgJ3JlZ2lzdHJ5OnJlYWQnXG4gIHwgJ3JlZ2lzdHJ5OndyaXRlJ1xuICAvLyBPcmdhbml6YXRpb24gc2V0dGluZ3MgKElkUCwgS01TLCBBSSBjb25maWcsIGdlbmVyYWwgc2V0dGluZ3MpXG4gIHwgJ29yZzpzZXR0aW5ncyc7XG5cbi8qKiBBbGwgdmFsaWQgcGVybWlzc2lvbnMgKG9yZGVyIGRldGVybWluZXMgZGlzcGxheSBvcmRlciBpbiB0aGUgcGlja2VyKS4gKi9cbmV4cG9ydCBjb25zdCBBTExfUEVSTUlTU0lPTlM6IHJlYWRvbmx5IFBlcm1pc3Npb25bXSA9IFtcbiAgJ3BpcGVsaW5lczpyZWFkJywgJ3BpcGVsaW5lczp3cml0ZScsXG4gICdwbHVnaW5zOnJlYWQnLCAncGx1Z2luczp3cml0ZScsXG4gICdjb21wbGlhbmNlOnJlYWQnLCAnY29tcGxpYW5jZTp3cml0ZScsXG4gICdtZW1iZXJzOm1hbmFnZScsICdyb2xlczptYW5hZ2UnLCAnaW52aXRhdGlvbnM6bWFuYWdlJyxcbiAgJ2Rhc2hib2FyZHM6cmVhZCcsICdkYXNoYm9hcmRzOndyaXRlJyxcbiAgJ29ic2VydmFiaWxpdHk6cmVhZCcsICdvYnNlcnZhYmlsaXR5OndyaXRlJyxcbiAgJ3JlcG9ydHM6cmVhZCcsXG4gICdtZXNzYWdlczpyZWFkJywgJ21lc3NhZ2VzOndyaXRlJyxcbiAgJ2JpbGxpbmc6cmVhZCcsICdiaWxsaW5nOm1hbmFnZScsXG4gICdxdW90YXM6cmVhZCcsXG4gICdyZWdpc3RyeTpyZWFkJywgJ3JlZ2lzdHJ5OndyaXRlJyxcbiAgJ29yZzpzZXR0aW5ncycsXG5dO1xuXG4vKiogQ2hlY2sgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIFBlcm1pc3Npb24uICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFBlcm1pc3Npb24odmFsdWU6IHN0cmluZyk6IHZhbHVlIGlzIFBlcm1pc3Npb24ge1xuICByZXR1cm4gKEFMTF9QRVJNSVNTSU9OUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXModmFsdWUpO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQnVpbHQtaW4gUm9sZSBzZWVkIGJ1bmRsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUGVybWlzc2lvbiBidW5kbGVzIHVzZWQgdG8gU0VFRCB0aGUgYnVpbHQtaW4gUm9sZXMgKFwiQWRtaW5cIiwgXCJNZW1iZXJcIikuXG4gKlxuICogVGhpcyBpcyB0aGUgc2luZ2xlIGRlZmluaXRpb24gb2Ygd2hhdCB0aG9zZSBidWlsdC1pbiBSb2xlcyBncmFudCDigJQgaXQgaXMgdXNlZFxuICogd2hlbiBhIFJvbGUgcmVjb3JkIGlzIGNyZWF0ZWQgKGFuZCBieSB0aGUgc3RhcnR1cCBiYWNrZmlsbCkgdG8gcG9wdWxhdGUgdGhhdFxuICogUm9sZSdzIG93biBgcGVybWlzc2lvbnNbXWAuIEl0IGlzIE5PVCBhIHJ1bnRpbWUgcGVybWlzc2lvbiBzb3VyY2U6IGEgdXNlcidzXG4gKiBlZmZlY3RpdmUgcGVybWlzc2lvbnMgY29tZSBPTkxZIGZyb20gdGhlIFJvbGVzIGFzc2lnbmVkIHRvIHRoZW0gKHNlZVxuICoge0BsaW5rIHJlc29sdmVVc2VyUGVybWlzc2lvbnN9KS4gVGhlIGNvYXJzZSBgcm9sZWAgbGFiZWwgKG93bmVyL2FkbWluL21lbWJlcilcbiAqIHN1cnZpdmVzIG9ubHkgZm9yIGBpc0FkbWluYC9vd25lcnNoaXAvZGlzcGxheSwgbmV2ZXIgdG8gZ3JhbnQgcGVybWlzc2lvbnMuXG4gKlxuICogLSBgbWVtYmVyYCAg4oCUIGRheS10by1kYXkgYnVpbGRlcjogcmVhZCArIHdyaXRlIG9uIHBpcGVsaW5lcy9wbHVnaW5zLCByZWFkXG4gKiAgIGVsc2V3aGVyZS4gTm8gbWVtYmVyL3JvbGUvYmlsbGluZyBtYW5hZ2VtZW50LCBubyBjb21wbGlhbmNlL2FsZXJ0IGF1dGhvcmluZy5cbiAqIC0gYGFkbWluYCAgIOKAlCBmdWxsIG9yZyBhZG1pbmlzdHJhdGlvbiAoZXZlcnl0aGluZyBiZWxvdykuXG4gKiAtIGBvd25lcmAgICDigJQgc2FtZSBhcyBhZG1pbiAob3duZXJzaGlwIGl0c2VsZiDigJQgdHJhbnNmZXIvZGVsZXRlIOKAlCBpcyBnYXRlZFxuICogICBzZXBhcmF0ZWx5LCBub3QgdmlhIGEgcGVybWlzc2lvbikuXG4gKi9cbmNvbnN0IE1FTUJFUl9QRVJNSVNTSU9OUzogcmVhZG9ubHkgUGVybWlzc2lvbltdID0gW1xuICAncGlwZWxpbmVzOnJlYWQnLCAncGlwZWxpbmVzOndyaXRlJyxcbiAgJ3BsdWdpbnM6cmVhZCcsICdwbHVnaW5zOndyaXRlJyxcbiAgJ2NvbXBsaWFuY2U6cmVhZCcsXG4gICdkYXNoYm9hcmRzOnJlYWQnLFxuICAnb2JzZXJ2YWJpbGl0eTpyZWFkJyxcbiAgJ3JlcG9ydHM6cmVhZCcsXG4gICdtZXNzYWdlczpyZWFkJywgJ21lc3NhZ2VzOndyaXRlJyxcbiAgJ2JpbGxpbmc6cmVhZCcsXG4gICdxdW90YXM6cmVhZCcsXG4gICdyZWdpc3RyeTpyZWFkJyxcbl07XG5cbmNvbnN0IEFETUlOX1BFUk1JU1NJT05TOiByZWFkb25seSBQZXJtaXNzaW9uW10gPSBbLi4uQUxMX1BFUk1JU1NJT05TXTtcblxuLyoqXG4gKiBTZWVkIGJ1bmRsZSBmb3IgZWFjaCBidWlsdC1pbiBSb2xlLCBrZXllZCBieSB0aGUgY29hcnNlIHJvbGUgaXQgZ3JhbnRzLlxuICogQ29uc3VtZWQgYnkgdGhlIFJvbGUgc2VlZGVyICsgdGhlIHN0YXJ0dXAgYmFja2ZpbGwgdG8gcG9wdWxhdGUgYSBidWlsdC1pblxuICogUm9sZSdzIGBwZXJtaXNzaW9uc1tdYC4gTk9UIGNvbnN1bHRlZCBhdCByZXF1ZXN0IHRpbWUg4oCUIHNlZVxuICoge0BsaW5rIHJlc29sdmVVc2VyUGVybWlzc2lvbnN9LlxuICovXG5leHBvcnQgY29uc3QgUk9MRV9QRVJNSVNTSU9OUzogUmVjb3JkPE9yZ1JvbGUsIHJlYWRvbmx5IFBlcm1pc3Npb25bXT4gPSB7XG4gIG1lbWJlcjogTUVNQkVSX1BFUk1JU1NJT05TLFxuICBhZG1pbjogQURNSU5fUEVSTUlTU0lPTlMsXG4gIG93bmVyOiBBRE1JTl9QRVJNSVNTSU9OUyxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZXNvbHV0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJlc29sdmUgYSB1c2VyJ3MgZWZmZWN0aXZlIG9yZyBwZXJtaXNzaW9ucyBmcm9tIHRoZSBSb2xlcyBhc3NpZ25lZCB0byB0aGVtLlxuICpcbiAqIFNpbmdsZS1zb3VyY2UgbW9kZWw6IGEgdXNlcidzIGFiaWxpdGllcyBhcmUgRVhBQ1RMWSB0aGUgdW5pb24gb2YgdGhlXG4gKiBwZXJtaXNzaW9ucyBjYXJyaWVkIGJ5IHRoZSBSb2xlcyB0aGV5IGhvbGQgKGEgUm9sZSA9IGEgbmFtZWQgcGVybWlzc2lvbiBzZXQ7XG4gKiBidWlsdC1pbiBSb2xlcyBjYXJyeSB0aGVpciBidW5kbGUgZXhwbGljaXRseSwgc2VlZGVkIGZyb21cbiAqIHtAbGluayBST0xFX1BFUk1JU1NJT05TfSkuIFRoZXJlIGlzIG5vIHNlcGFyYXRlIHJvbGUtZGVyaXZlZCBiYXNlbGluZSDigJQgdGhlXG4gKiBjb2Fyc2UgYHJvbGVgIGxhYmVsIG5vIGxvbmdlciBncmFudHMgYW55dGhpbmcgb24gaXRzIG93bi5cbiAqXG4gKiAxLiBQbGF0Zm9ybSBzdXBlcmFkbWlucyAoYGlzU3VwZXJBZG1pbmApIGFsd2F5cyBnZXQgQUxMIHBlcm1pc3Npb25zLlxuICogMi4gT3RoZXJ3aXNlLCB1bmlvbiBldmVyeSBwZXJtaXNzaW9uIGdyYW50ZWQgYnkgdGhlIHVzZXIncyBhc3NpZ25lZCBSb2xlcy5cbiAqIDMuIEludmFsaWQvdW5rbm93biBwZXJtaXNzaW9uIHN0cmluZ3MgYXJlIHNpbGVudGx5IGlnbm9yZWQuXG4gKlxuICogQHBhcmFtIGFzc2lnbmVkUGVybWlzc2lvbnMgLSBGbGF0dGVuZWQgcGVybWlzc2lvbnMgZnJvbSBldmVyeSBSb2xlIHRoZSB1c2VyIGhvbGRzXG4gKiBAcGFyYW0gaXNTdXBlckFkbWluIC0gV2hldGhlciB0aGUgdXNlciBoYXMgdGhlIGdsb2JhbCBzdXBlci1hZG1pbiBmbGFnXG4gKiBAcmV0dXJucyBFZmZlY3RpdmUgcGVybWlzc2lvbnMgaW4gY2Fub25pY2FsIG9yZGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVXNlclBlcm1pc3Npb25zKFxuICBhc3NpZ25lZFBlcm1pc3Npb25zPzogcmVhZG9ubHkgc3RyaW5nW10gfCBudWxsLFxuICBpc1N1cGVyQWRtaW4/OiBib29sZWFuLFxuKTogUGVybWlzc2lvbltdIHtcbiAgaWYgKGlzU3VwZXJBZG1pbikgcmV0dXJuIFsuLi5BTExfUEVSTUlTU0lPTlNdO1xuXG4gIGNvbnN0IHBlcm1zID0gbmV3IFNldDxQZXJtaXNzaW9uPigpO1xuICBpZiAoYXNzaWduZWRQZXJtaXNzaW9ucykge1xuICAgIGZvciAoY29uc3QgcCBvZiBhc3NpZ25lZFBlcm1pc3Npb25zKSB7XG4gICAgICBpZiAoaXNWYWxpZFBlcm1pc3Npb24ocCkpIHBlcm1zLmFkZChwKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIEFMTF9QRVJNSVNTSU9OUy5maWx0ZXIocCA9PiBwZXJtcy5oYXMocCkpO1xufVxuXG4vKiogV2hldGhlciBhIHJlc29sdmVkIHBlcm1pc3Npb24gbGlzdCBncmFudHMgYHBlcm1pc3Npb25gIChzdXBlcmFkbWluIOKHkiBhbHdheXMpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1Blcm1pc3Npb24oXG4gIGdyYW50ZWQ6IHJlYWRvbmx5IHN0cmluZ1tdIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgcGVybWlzc2lvbjogUGVybWlzc2lvbixcbiAgaXNTdXBlckFkbWluPzogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBpZiAoaXNTdXBlckFkbWluKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuICEhZ3JhbnRlZCAmJiBncmFudGVkLmluY2x1ZGVzKHBlcm1pc3Npb24pO1xufVxuIl19
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcGVybWlzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQXVEdEMsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBMEI7SUFDcEQsZ0JBQWdCLEVBQUUsaUJBQWlCO0lBQ25DLGNBQWMsRUFBRSxlQUFlO0lBQy9CLGlCQUFpQixFQUFFLGtCQUFrQjtJQUNyQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsb0JBQW9CO0lBQ3RELGlCQUFpQixFQUFFLGtCQUFrQjtJQUNyQyxvQkFBb0IsRUFBRSxxQkFBcUI7SUFDM0MsY0FBYztJQUNkLGVBQWUsRUFBRSxnQkFBZ0I7SUFDakMsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxhQUFhO0lBQ2IsZUFBZSxFQUFFLGdCQUFnQjtJQUNqQyxjQUFjO0NBQ2YsQ0FBQztBQUVGLG9EQUFvRDtBQUNwRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBYTtJQUM3QyxPQUFRLGVBQXFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQTBCO0lBQ2hFLGVBQWU7SUFDZixnQkFBZ0I7Q0FDakIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FDckMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUUxRSwrRUFBK0U7QUFDL0UsTUFBTSxVQUFVLHlCQUF5QixDQUFDLFVBQXNCO0lBQzlELE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELGdGQUFnRjtBQUNoRiw2QkFBNkI7QUFDN0IsZ0ZBQWdGO0FBRWhGOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sa0JBQWtCLEdBQTBCO0lBQ2hELGdCQUFnQixFQUFFLGlCQUFpQjtJQUNuQyxjQUFjLEVBQUUsZUFBZTtJQUMvQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLG9CQUFvQjtJQUNwQixjQUFjO0lBQ2QsZUFBZSxFQUFFLGdCQUFnQjtJQUNqQyxjQUFjO0lBQ2QsYUFBYTtJQUNiLGVBQWU7Q0FDaEIsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQTBCLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQztBQUV0RTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUEyQztJQUN0RSxNQUFNLEVBQUUsa0JBQWtCO0lBQzFCLEtBQUssRUFBRSxpQkFBaUI7SUFDeEIsS0FBSyxFQUFFLGlCQUFpQjtDQUN6QixDQUFDO0FBRUYsZ0ZBQWdGO0FBQ2hGLGFBQWE7QUFDYixnRkFBZ0Y7QUFFaEY7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLG1CQUE4QyxFQUM5QyxZQUFzQjtJQUV0QixJQUFJLFlBQVk7UUFBRSxPQUFPLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQztJQUU5QyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO0lBQ3BDLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUN4QixLQUFLLE1BQU0sQ0FBQyxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDcEMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsb0ZBQW9GO0FBQ3BGLE1BQU0sVUFBVSxhQUFhLENBQzNCLE9BQTZDLEVBQzdDLFVBQXNCLEVBQ3RCLFlBQXNCO0lBRXRCLElBQUksWUFBWTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzlCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBPcmdSb2xlIH0gZnJvbSAnLi9jb21tb24uanMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUGVybWlzc2lvbiBpZGVudGlmaWVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDYW5vbmljYWwgZmluZS1ncmFpbmVkIHBlcm1pc3Npb24gaWRlbnRpZmllcnMsIGluIGByZXNvdXJjZTphY3Rpb25gIGZvcm0uXG4gKlxuICogVGhlc2UgYXJlIHRoZSBPUkctU0NPUEVEIGNhcGFiaWxpdGllcyBhIFJvbGUgY2FuIGdyYW50IChSQkFDKS4gQ29hcnNlIGJ5XG4gKiBkZXNpZ24g4oCUIGA6d3JpdGVgIGNvdmVycyBjcmVhdGUvdXBkYXRlL2RlbGV0ZSBmb3IgYSByZXNvdXJjZSDigJQgc28gdGhlIGNhdGFsb2dcbiAqIGFuZCBwZXJtaXNzaW9uLXBpY2tlciBVSSBzdGF5IHNtYWxsOyBzcGxpdCBhIGA6d3JpdGVgIGludG8gYDpjcmVhdGVgL2A6ZGVsZXRlYFxuICogbGF0ZXIgaWYgYSByZXNvdXJjZSBuZWVkcyBpdC5cbiAqXG4gKiBOT1QgbW9kZWxlZCBoZXJlIChpbnRlbnRpb25hbGx5KTogcGxhdGZvcm0tb3BlcmF0b3IgYWN0aW9ucyAob3JnIGRlbGV0ZSwgdGllci9cbiAqIHF1b3RhIG92ZXJyaWRlLCB1c2VyIGFkbWluLCBpbXBlcnNvbmF0aW9uLCBwbGF0Zm9ybSBzZXR0aW5ncykgc3RheSBiZWhpbmQgdGhlXG4gKiBnbG9iYWwgYGlzU3VwZXJBZG1pbmAgZmxhZywgbm90IGEgcGVyLW9yZyBwZXJtaXNzaW9uOyBhbmQgYHJlcXVpcmVTdGVwVXBgXG4gKiAoTUZBKSAvIGByZXF1aXJlRmVhdHVyZWAgKHBsYW4gZW50aXRsZW1lbnRzKSByZW1haW4gb3J0aG9nb25hbCBnYXRlcy5cbiAqL1xuZXhwb3J0IHR5cGUgUGVybWlzc2lvbiA9XG4gIC8vIFBpcGVsaW5lc1xuICB8ICdwaXBlbGluZXM6cmVhZCdcbiAgfCAncGlwZWxpbmVzOndyaXRlJ1xuICAvLyBQbHVnaW5zXG4gIHwgJ3BsdWdpbnM6cmVhZCdcbiAgfCAncGx1Z2luczp3cml0ZSdcbiAgLy8gQ29tcGxpYW5jZVxuICB8ICdjb21wbGlhbmNlOnJlYWQnXG4gIHwgJ2NvbXBsaWFuY2U6d3JpdGUnXG4gIC8vIE1lbWJlcnMgJiBhY2Nlc3NcbiAgfCAnbWVtYmVyczptYW5hZ2UnXG4gIHwgJ3JvbGVzOm1hbmFnZSdcbiAgfCAnaW52aXRhdGlvbnM6bWFuYWdlJ1xuICAvLyBPYnNlcnZhYmlsaXR5XG4gIHwgJ2Rhc2hib2FyZHM6cmVhZCdcbiAgfCAnZGFzaGJvYXJkczp3cml0ZSdcbiAgfCAnb2JzZXJ2YWJpbGl0eTpyZWFkJ1xuICB8ICdvYnNlcnZhYmlsaXR5OndyaXRlJ1xuICAvLyBJbnNpZ2h0c1xuICB8ICdyZXBvcnRzOnJlYWQnXG4gIC8vIE1lc3NhZ2luZ1xuICB8ICdtZXNzYWdlczpyZWFkJ1xuICB8ICdtZXNzYWdlczp3cml0ZSdcbiAgLy8gQmlsbGluZyAmIHF1b3Rhc1xuICB8ICdiaWxsaW5nOnJlYWQnXG4gIHwgJ2JpbGxpbmc6bWFuYWdlJ1xuICB8ICdxdW90YXM6cmVhZCdcbiAgLy8gUmVnaXN0cnlcbiAgfCAncmVnaXN0cnk6cmVhZCdcbiAgfCAncmVnaXN0cnk6d3JpdGUnXG4gIC8vIE9yZ2FuaXphdGlvbiBzZXR0aW5ncyAoSWRQLCBLTVMsIEFJIGNvbmZpZywgZ2VuZXJhbCBzZXR0aW5ncylcbiAgfCAnb3JnOnNldHRpbmdzJztcblxuLyoqIEFsbCB2YWxpZCBwZXJtaXNzaW9ucyAob3JkZXIgZGV0ZXJtaW5lcyBkaXNwbGF5IG9yZGVyIGluIHRoZSBwaWNrZXIpLiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9QRVJNSVNTSU9OUzogcmVhZG9ubHkgUGVybWlzc2lvbltdID0gW1xuICAncGlwZWxpbmVzOnJlYWQnLCAncGlwZWxpbmVzOndyaXRlJyxcbiAgJ3BsdWdpbnM6cmVhZCcsICdwbHVnaW5zOndyaXRlJyxcbiAgJ2NvbXBsaWFuY2U6cmVhZCcsICdjb21wbGlhbmNlOndyaXRlJyxcbiAgJ21lbWJlcnM6bWFuYWdlJywgJ3JvbGVzOm1hbmFnZScsICdpbnZpdGF0aW9uczptYW5hZ2UnLFxuICAnZGFzaGJvYXJkczpyZWFkJywgJ2Rhc2hib2FyZHM6d3JpdGUnLFxuICAnb2JzZXJ2YWJpbGl0eTpyZWFkJywgJ29ic2VydmFiaWxpdHk6d3JpdGUnLFxuICAncmVwb3J0czpyZWFkJyxcbiAgJ21lc3NhZ2VzOnJlYWQnLCAnbWVzc2FnZXM6d3JpdGUnLFxuICAnYmlsbGluZzpyZWFkJywgJ2JpbGxpbmc6bWFuYWdlJyxcbiAgJ3F1b3RhczpyZWFkJyxcbiAgJ3JlZ2lzdHJ5OnJlYWQnLCAncmVnaXN0cnk6d3JpdGUnLFxuICAnb3JnOnNldHRpbmdzJyxcbl07XG5cbi8qKiBDaGVjayB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgUGVybWlzc2lvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUGVybWlzc2lvbih2YWx1ZTogc3RyaW5nKTogdmFsdWUgaXMgUGVybWlzc2lvbiB7XG4gIHJldHVybiAoQUxMX1BFUk1JU1NJT05TIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyh2YWx1ZSk7XG59XG5cbi8qKlxuICogUGVybWlzc2lvbnMgdGhhdCBtdXN0IE5FVkVSIGJlIGdyYW50YWJsZSB0aHJvdWdoIGEgdXNlci1hdXRob3JlZCBDVVNUT00gUm9sZSDigJRcbiAqIHRoZXkgZ2F0ZSBwbGF0Zm9ybS1vcGVyYXRvciBzdXJmYWNlcyAodGhlIHNoYXJlZCBpbWFnZSByZWdpc3RyeSksIHNvIGFsbG93aW5nXG4gKiBhbiBvcmcgYWRtaW4gdG8gbWludCBhIFJvbGUgY2FycnlpbmcgdGhlbSB3b3VsZCBiZSBhIGxhdGVudCBwcml2aWxlZ2VcbiAqIGVzY2FsYXRpb24gdGhlIG1vbWVudCB0aG9zZSBwZXJtaXNzaW9ucyBnZXQgd2lyZWQgdG8gYW4gZW5kcG9pbnQuIEJ1aWx0LWluXG4gKiBSb2xlIHNlZWRzIChlLmcuIGBtZW1iZXJgIGNhcnJ5aW5nIGByZWdpc3RyeTpyZWFkYCkgYXJlIHN5c3RlbS1jcmVhdGVkIGFuZCBhcmVcbiAqIE5PVCBzdWJqZWN0IHRvIHRoaXMgbGlzdDsgaXQgY29uc3RyYWlucyBvbmx5IGN1c3RvbS1Sb2xlIGF1dGhvcmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IFNVUEVSQURNSU5fT05MWV9QRVJNSVNTSU9OUzogcmVhZG9ubHkgUGVybWlzc2lvbltdID0gW1xuICAncmVnaXN0cnk6cmVhZCcsXG4gICdyZWdpc3RyeTp3cml0ZScsXG5dO1xuXG4vKipcbiAqIFBlcm1pc3Npb25zIGFuIG9yZyBtYXkgYXNzaWduIHZpYSBhIENVU1RPTSBSb2xlIOKAlCBldmVyeSBwZXJtaXNzaW9uIGV4Y2VwdCB0aGVcbiAqIHtAbGluayBTVVBFUkFETUlOX09OTFlfUEVSTUlTU0lPTlN9LiBDdXN0b20tUm9sZSBjcmVhdGUvdXBkYXRlIHZhbGlkYXRlcyB0aGVcbiAqIHJlcXVlc3RlZCBwZXJtaXNzaW9uIHNldCBhZ2FpbnN0IHRoaXMgKHNlZSBwbGF0Zm9ybSByb2xlcy1zZXJ2aWNlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IE9SR19BU1NJR05BQkxFX1BFUk1JU1NJT05TOiByZWFkb25seSBQZXJtaXNzaW9uW10gPVxuICBBTExfUEVSTUlTU0lPTlMuZmlsdGVyKChwKSA9PiAhU1VQRVJBRE1JTl9PTkxZX1BFUk1JU1NJT05TLmluY2x1ZGVzKHApKTtcblxuLyoqIFdoZXRoZXIgYHBlcm1pc3Npb25gIG1heSBiZSBncmFudGVkIHRocm91Z2ggYSB1c2VyLWF1dGhvcmVkIGN1c3RvbSBSb2xlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT3JnQXNzaWduYWJsZVBlcm1pc3Npb24ocGVybWlzc2lvbjogUGVybWlzc2lvbik6IGJvb2xlYW4ge1xuICByZXR1cm4gIVNVUEVSQURNSU5fT05MWV9QRVJNSVNTSU9OUy5pbmNsdWRlcyhwZXJtaXNzaW9uKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJ1aWx0LWluIFJvbGUgc2VlZCBidW5kbGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFBlcm1pc3Npb24gYnVuZGxlcyB1c2VkIHRvIFNFRUQgdGhlIGJ1aWx0LWluIFJvbGVzIChcIkFkbWluXCIsIFwiTWVtYmVyXCIpLlxuICpcbiAqIFRoaXMgaXMgdGhlIHNpbmdsZSBkZWZpbml0aW9uIG9mIHdoYXQgdGhvc2UgYnVpbHQtaW4gUm9sZXMgZ3JhbnQg4oCUIGl0IGlzIHVzZWRcbiAqIHdoZW4gYSBSb2xlIHJlY29yZCBpcyBjcmVhdGVkIChhbmQgYnkgdGhlIHN0YXJ0dXAgYmFja2ZpbGwpIHRvIHBvcHVsYXRlIHRoYXRcbiAqIFJvbGUncyBvd24gYHBlcm1pc3Npb25zW11gLiBJdCBpcyBOT1QgYSBydW50aW1lIHBlcm1pc3Npb24gc291cmNlOiBhIHVzZXInc1xuICogZWZmZWN0aXZlIHBlcm1pc3Npb25zIGNvbWUgT05MWSBmcm9tIHRoZSBSb2xlcyBhc3NpZ25lZCB0byB0aGVtIChzZWVcbiAqIHtAbGluayByZXNvbHZlVXNlclBlcm1pc3Npb25zfSkuIFRoZSBjb2Fyc2UgYHJvbGVgIGxhYmVsIChvd25lci9hZG1pbi9tZW1iZXIpXG4gKiBzdXJ2aXZlcyBvbmx5IGZvciBgaXNBZG1pbmAvb3duZXJzaGlwL2Rpc3BsYXksIG5ldmVyIHRvIGdyYW50IHBlcm1pc3Npb25zLlxuICpcbiAqIC0gYG1lbWJlcmAgIOKAlCBkYXktdG8tZGF5IGJ1aWxkZXI6IHJlYWQgKyB3cml0ZSBvbiBwaXBlbGluZXMvcGx1Z2lucywgcmVhZFxuICogICBlbHNld2hlcmUuIE5vIG1lbWJlci9yb2xlL2JpbGxpbmcgbWFuYWdlbWVudCwgbm8gY29tcGxpYW5jZS9hbGVydCBhdXRob3JpbmcuXG4gKiAtIGBhZG1pbmAgICDigJQgZnVsbCBvcmcgYWRtaW5pc3RyYXRpb24gKGV2ZXJ5dGhpbmcgYmVsb3cpLlxuICogLSBgb3duZXJgICAg4oCUIHNhbWUgYXMgYWRtaW4gKG93bmVyc2hpcCBpdHNlbGYg4oCUIHRyYW5zZmVyL2RlbGV0ZSDigJQgaXMgZ2F0ZWRcbiAqICAgc2VwYXJhdGVseSwgbm90IHZpYSBhIHBlcm1pc3Npb24pLlxuICovXG5jb25zdCBNRU1CRVJfUEVSTUlTU0lPTlM6IHJlYWRvbmx5IFBlcm1pc3Npb25bXSA9IFtcbiAgJ3BpcGVsaW5lczpyZWFkJywgJ3BpcGVsaW5lczp3cml0ZScsXG4gICdwbHVnaW5zOnJlYWQnLCAncGx1Z2luczp3cml0ZScsXG4gICdjb21wbGlhbmNlOnJlYWQnLFxuICAnZGFzaGJvYXJkczpyZWFkJyxcbiAgJ29ic2VydmFiaWxpdHk6cmVhZCcsXG4gICdyZXBvcnRzOnJlYWQnLFxuICAnbWVzc2FnZXM6cmVhZCcsICdtZXNzYWdlczp3cml0ZScsXG4gICdiaWxsaW5nOnJlYWQnLFxuICAncXVvdGFzOnJlYWQnLFxuICAncmVnaXN0cnk6cmVhZCcsXG5dO1xuXG5jb25zdCBBRE1JTl9QRVJNSVNTSU9OUzogcmVhZG9ubHkgUGVybWlzc2lvbltdID0gWy4uLkFMTF9QRVJNSVNTSU9OU107XG5cbi8qKlxuICogU2VlZCBidW5kbGUgZm9yIGVhY2ggYnVpbHQtaW4gUm9sZSwga2V5ZWQgYnkgdGhlIGNvYXJzZSByb2xlIGl0IGdyYW50cy5cbiAqIENvbnN1bWVkIGJ5IHRoZSBSb2xlIHNlZWRlciArIHRoZSBzdGFydHVwIGJhY2tmaWxsIHRvIHBvcHVsYXRlIGEgYnVpbHQtaW5cbiAqIFJvbGUncyBgcGVybWlzc2lvbnNbXWAuIE5PVCBjb25zdWx0ZWQgYXQgcmVxdWVzdCB0aW1lIOKAlCBzZWVcbiAqIHtAbGluayByZXNvbHZlVXNlclBlcm1pc3Npb25zfS5cbiAqL1xuZXhwb3J0IGNvbnN0IFJPTEVfUEVSTUlTU0lPTlM6IFJlY29yZDxPcmdSb2xlLCByZWFkb25seSBQZXJtaXNzaW9uW10+ID0ge1xuICBtZW1iZXI6IE1FTUJFUl9QRVJNSVNTSU9OUyxcbiAgYWRtaW46IEFETUlOX1BFUk1JU1NJT05TLFxuICBvd25lcjogQURNSU5fUEVSTUlTU0lPTlMsXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUmVzb2x1dGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZXNvbHZlIGEgdXNlcidzIGVmZmVjdGl2ZSBvcmcgcGVybWlzc2lvbnMgZnJvbSB0aGUgUm9sZXMgYXNzaWduZWQgdG8gdGhlbS5cbiAqXG4gKiBTaW5nbGUtc291cmNlIG1vZGVsOiBhIHVzZXIncyBhYmlsaXRpZXMgYXJlIEVYQUNUTFkgdGhlIHVuaW9uIG9mIHRoZVxuICogcGVybWlzc2lvbnMgY2FycmllZCBieSB0aGUgUm9sZXMgdGhleSBob2xkIChhIFJvbGUgPSBhIG5hbWVkIHBlcm1pc3Npb24gc2V0O1xuICogYnVpbHQtaW4gUm9sZXMgY2FycnkgdGhlaXIgYnVuZGxlIGV4cGxpY2l0bHksIHNlZWRlZCBmcm9tXG4gKiB7QGxpbmsgUk9MRV9QRVJNSVNTSU9OU30pLiBUaGVyZSBpcyBubyBzZXBhcmF0ZSByb2xlLWRlcml2ZWQgYmFzZWxpbmUg4oCUIHRoZVxuICogY29hcnNlIGByb2xlYCBsYWJlbCBubyBsb25nZXIgZ3JhbnRzIGFueXRoaW5nIG9uIGl0cyBvd24uXG4gKlxuICogMS4gUGxhdGZvcm0gc3VwZXJhZG1pbnMgKGBpc1N1cGVyQWRtaW5gKSBhbHdheXMgZ2V0IEFMTCBwZXJtaXNzaW9ucy5cbiAqIDIuIE90aGVyd2lzZSwgdW5pb24gZXZlcnkgcGVybWlzc2lvbiBncmFudGVkIGJ5IHRoZSB1c2VyJ3MgYXNzaWduZWQgUm9sZXMuXG4gKiAzLiBJbnZhbGlkL3Vua25vd24gcGVybWlzc2lvbiBzdHJpbmdzIGFyZSBzaWxlbnRseSBpZ25vcmVkLlxuICpcbiAqIEBwYXJhbSBhc3NpZ25lZFBlcm1pc3Npb25zIC0gRmxhdHRlbmVkIHBlcm1pc3Npb25zIGZyb20gZXZlcnkgUm9sZSB0aGUgdXNlciBob2xkc1xuICogQHBhcmFtIGlzU3VwZXJBZG1pbiAtIFdoZXRoZXIgdGhlIHVzZXIgaGFzIHRoZSBnbG9iYWwgc3VwZXItYWRtaW4gZmxhZ1xuICogQHJldHVybnMgRWZmZWN0aXZlIHBlcm1pc3Npb25zIGluIGNhbm9uaWNhbCBvcmRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVVzZXJQZXJtaXNzaW9ucyhcbiAgYXNzaWduZWRQZXJtaXNzaW9ucz86IHJlYWRvbmx5IHN0cmluZ1tdIHwgbnVsbCxcbiAgaXNTdXBlckFkbWluPzogYm9vbGVhbixcbik6IFBlcm1pc3Npb25bXSB7XG4gIGlmIChpc1N1cGVyQWRtaW4pIHJldHVybiBbLi4uQUxMX1BFUk1JU1NJT05TXTtcblxuICBjb25zdCBwZXJtcyA9IG5ldyBTZXQ8UGVybWlzc2lvbj4oKTtcbiAgaWYgKGFzc2lnbmVkUGVybWlzc2lvbnMpIHtcbiAgICBmb3IgKGNvbnN0IHAgb2YgYXNzaWduZWRQZXJtaXNzaW9ucykge1xuICAgICAgaWYgKGlzVmFsaWRQZXJtaXNzaW9uKHApKSBwZXJtcy5hZGQocCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBBTExfUEVSTUlTU0lPTlMuZmlsdGVyKHAgPT4gcGVybXMuaGFzKHApKTtcbn1cblxuLyoqIFdoZXRoZXIgYSByZXNvbHZlZCBwZXJtaXNzaW9uIGxpc3QgZ3JhbnRzIGBwZXJtaXNzaW9uYCAoc3VwZXJhZG1pbiDih5IgYWx3YXlzKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNQZXJtaXNzaW9uKFxuICBncmFudGVkOiByZWFkb25seSBzdHJpbmdbXSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHBlcm1pc3Npb246IFBlcm1pc3Npb24sXG4gIGlzU3VwZXJBZG1pbj86IGJvb2xlYW4sXG4pOiBib29sZWFuIHtcbiAgaWYgKGlzU3VwZXJBZG1pbikgcmV0dXJuIHRydWU7XG4gIHJldHVybiAhIWdyYW50ZWQgJiYgZ3JhbnRlZC5pbmNsdWRlcyhwZXJtaXNzaW9uKTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"@stylistic/eslint-plugin": "^2",
|
|
11
11
|
"@types/express": "5.0.6",
|
|
12
12
|
"@types/jsonwebtoken": "9.0.10",
|
|
13
|
-
"@types/node": "
|
|
13
|
+
"@types/node": "26.1.1",
|
|
14
14
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
15
15
|
"@typescript-eslint/parser": "^8",
|
|
16
16
|
"eslint": "^9",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"typescript": "6.0.3"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@asteasolutions/zod-to-openapi": "
|
|
26
|
-
"@aws-sdk/client-kms": "3.
|
|
27
|
-
"@aws-sdk/client-sts": "3.
|
|
28
|
-
"@aws-sdk/credential-providers": "3.
|
|
25
|
+
"@asteasolutions/zod-to-openapi": "9.0.0",
|
|
26
|
+
"@aws-sdk/client-kms": "3.1089.0",
|
|
27
|
+
"@aws-sdk/client-sts": "3.1089.0",
|
|
28
|
+
"@aws-sdk/credential-providers": "3.1089.0",
|
|
29
29
|
"express": "5.2.1",
|
|
30
30
|
"jsonwebtoken": "9.0.3",
|
|
31
31
|
"winston": "3.19.0",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"access": "public",
|
|
86
86
|
"registry": "https://registry.npmjs.org/"
|
|
87
87
|
},
|
|
88
|
-
"version": "3.4.
|
|
88
|
+
"version": "3.4.88",
|
|
89
89
|
"bugs": {
|
|
90
90
|
"url": "https://github.com/mwashburn160/pipeline-builder/issues"
|
|
91
91
|
},
|