@pipeline-builder/api-core 3.4.84 → 3.4.86

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.
@@ -127,7 +127,14 @@ export type ApiResponse<T = unknown> = ApiSuccessResponse<T> | ApiErrorResponse;
127
127
  * Use `POST /auth/switch-org` to change the active organization, which
128
128
  * re-issues tokens with the new org's role and context.
129
129
  */
130
- /** Per-org role in a single organization/team. Not a global role. */
130
+ /**
131
+ * Coarse per-org membership label, DERIVED from the Roles a user is assigned
132
+ * (the highest `grantsRole` among them; `owner` is set only by ownership
133
+ * transfer). It is a display/authority label — driving `isAdmin`, ownership,
134
+ * and seat accounting — NOT a permission source. Effective permissions come
135
+ * solely from the user's assigned Roles (see `resolveUserPermissions`). Not a
136
+ * global role.
137
+ */
131
138
  export type OrgRole = 'owner' | 'admin' | 'member';
132
139
  export interface JwtPayload {
133
140
  /** User ID (subject) */
@@ -142,7 +149,7 @@ export interface JwtPayload {
142
149
  isAdmin?: boolean;
143
150
  /**
144
151
  * Resolved fine-grained permissions for the active org/team — the union of
145
- * the role's base bundle and every group the user belongs to (see
152
+ * the permissions carried by every Role the user is assigned (see
146
153
  * `resolveUserPermissions`). Absent on machine/scoped tokens. Superadmins are
147
154
  * granted all permissions implicitly and may omit this. Endpoints enforce via
148
155
  * `requirePermission(...)`.
@@ -48,4 +48,4 @@ export function validateQuotaType(value, fieldName = 'quotaType') {
48
48
  }
49
49
  return value;
50
50
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBZ0N0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxjQUFjO0lBQzdELFlBQVksRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsWUFBWTtDQUNyRCxDQUFDO0FBRVg7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDN0MsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQWtCLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFjLEVBQUUsU0FBUyxHQUFHLFdBQVc7SUFDdkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FDYixXQUFXLFNBQVMsTUFBTSxLQUFLLHNCQUFzQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDcEYsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBQZXJtaXNzaW9uIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy5qcyc7XG5cbi8qKlxuICogUXVvdGEgdHlwZSBpZGVudGlmaWVycy5cbiAqXG4gKiAtIGBwbHVnaW5zYCAvIGBwaXBlbGluZXNgIOKAlCBjb3VudCBvZiBjcmVhdGVkIGVudGl0aWVzXG4gKiAtIGBhcGlDYWxsc2Ag4oCUIGdlbmVyaWMgQVBJIGNhbGwgY291bnQgKHJlYWQtaGVhdnkgcGF0aHMpXG4gKiAtIGBhaUNhbGxzYCDigJQgQUkgcHJvdmlkZXIgaW52b2NhdGlvbnMgKGNvdW50ZWQgc2VwYXJhdGVseSBiZWNhdXNlIGVhY2ggY2FsbFxuICogICBoYXMgZXh0ZXJuYWwgZG9sbGFyIGNvc3Q7IHNpemVkIHNtYWxsZXIgdGhhbiBhcGlDYWxscyBwZXIgdGllcilcbiAqIC0gYHN0b3JhZ2VCeXRlc2Ag4oCUIHJlZ2lzdHJ5IHN0b3JhZ2UgYnVkZ2V0IHBlciBvcmcuIFVubGlrZSB0aGUgb3RoZXJzXG4gKiAgICh3aGljaCBjb3VudCBkaXNjcmV0ZSBldmVudHMpLCB0aGlzIGlzIGEgbWVhc3VyZWQgdG90YWwgcmVjb21wdXRlZFxuICogICBvbiBkZW1hbmQuIEluY3JlbWVudGVkIGJ5IHRoZSBpbWFnZS1yZWdpc3RyeSdzIHB1c2gtZ2F0ZSBiZWZvcmVcbiAqICAgaXNzdWluZyBhIHRva2VuIHdob3NlIHNjb3BlIGluY2x1ZGVzIGBwdXNoYDsgdGhlIEdDIHNjaGVkdWxlclxuICogICBldmVudHVhbGx5IGZyZWVzIHRoZSBieXRlcywgdGhlbiB0aGUgbmV4dCBwdXNoLWdhdGUgY2hlY2sgcmVhZHNcbiAqICAgdGhlIGxvd2VyIHZhbHVlLiBOT1QgYSBjb3VudGVyLXN0eWxlIHF1b3RhIGluIHRoZSBzZW5zZSBvZlxuICogICBgaW5jcmVtZW50VXNhZ2VgIOKAlCB0aGUgcmVnaXN0cnkgcHVzaGVzIHRoZSBtZWFzdXJlZCB0b3RhbCB2aWFcbiAqICAgYHVwZGF0ZUxpbWl0c2AvYHJlc2V0VXNhZ2VgIGZsb3dzLiBUaWVyIGxpbWl0cyBhcmUgYnl0ZXMuXG4gKiAtIGBkYXNoYm9hcmRzYCAvIGBhbGVydFJ1bGVzYCAvIGBhbGVydERlc3RpbmF0aW9uc2AgLyBgaWRwQ29uZmlnc2Ag4oCUXG4gKiAgIHJlc291cmNlLWNvdW50IHF1b3RhcyBhZGRlZCB0byBjbG9zZSBwZXItb3JnIERvUyBzdXJmYWNlcyBpbiB0aGVcbiAqICAgdXNlci1lZGl0YWJsZSBmZWF0dXJlIHRhYmxlcy4gV2l0aG91dCB0aGVzZSBjYXBzIGEgc2luZ2xlIG9yZyBjb3VsZFxuICogICBzcGFtIHRob3VzYW5kcyBvZiBkYXNoYm9hcmRzIC8gcnVsZXMgYW5kIGJsb2F0IHRoZSBzaGFyZWQgUG9zdGdyZXMgL1xuICogICBNb25nbyB3b3JraW5nIHNldHMuIENvdW50ZWQgYXQgY3JlYXRlIHRpbWU7IGRlY3JlbWVudGVkIG9uIGRlbGV0ZS5cbiAqL1xuLy8gTk9URTogYHNlYXRzYCBpcyBpbnRlbnRpb25hbGx5IE5PVCBoZXJlLiBJdCdzIGEgdGllciBsaW1pdCAoUXVvdGFUaWVyTGltaXRzKVxuLy8gZW5mb3JjZWQgYnkgY29tcGFyaW5nIHRoZSBvcmcncyBMSVZFIG1lbWJlciBjb3VudCBhdCBpbnZpdGUgdGltZSDigJQgbm90IGFuXG4vLyBpbmNyZW1lbnRpbmcgcGVyLXBlcmlvZCBjb3VudGVyIGxpa2UgdGhlIGNvbnN1bWFibGUgcXVvdGFzIGJlbG93LlxuZXhwb3J0IHR5cGUgUXVvdGFUeXBlID1cbiAgfCAncGx1Z2lucycgfCAncGlwZWxpbmVzJyB8ICdhcGlDYWxscycgfCAnYWlDYWxscycgfCAnc3RvcmFnZUJ5dGVzJ1xuICB8ICdkYXNoYm9hcmRzJyB8ICdhbGVydFJ1bGVzJyB8ICdhbGVydERlc3RpbmF0aW9ucycgfCAnaWRwQ29uZmlncyc7XG5cbi8qKlxuICogVmFsaWQgcXVvdGEgdHlwZSB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBWQUxJRF9RVU9UQV9UWVBFUyA9IFtcbiAgJ3BsdWdpbnMnLCAncGlwZWxpbmVzJywgJ2FwaUNhbGxzJywgJ2FpQ2FsbHMnLCAnc3RvcmFnZUJ5dGVzJyxcbiAgJ2Rhc2hib2FyZHMnLCAnYWxlcnRSdWxlcycsICdhbGVydERlc3RpbmF0aW9ucycsICdpZHBDb25maWdzJyxcbl0gYXMgY29uc3Q7XG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhIHZhbHVlIGlzIGEgdmFsaWQgUXVvdGFUeXBlLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIGNoZWNrXG4gKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGlzIGEgdmFsaWQgUXVvdGFUeXBlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlmIChpc1ZhbGlkUXVvdGFUeXBlKHJlcS5ib2R5LnF1b3RhVHlwZSkpIHtcbiAqICAgLy8gcXVvdGFUeXBlIGlzIGd1YXJhbnRlZWQgdG8gYmUgUXVvdGFUeXBlXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRRdW90YVR5cGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBRdW90YVR5cGUge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBWQUxJRF9RVU9UQV9UWVBFUy5pbmNsdWRlcyh2YWx1ZSBhcyBRdW90YVR5cGUpO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGFuZCBhc3NlcnQgdGhhdCBhIHZhbHVlIGlzIGEgdmFsaWQgUXVvdGFUeXBlLlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHMuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gdmFsaWRhdGVcbiAqIEBwYXJhbSBmaWVsZE5hbWUgLSBOYW1lIG9mIHRoZSBmaWVsZCBiZWluZyB2YWxpZGF0ZWQgKGZvciBlcnJvciBtZXNzYWdlcylcbiAqIEByZXR1cm5zIFRoZSB2YWxpZGF0ZWQgUXVvdGFUeXBlXG4gKiBAdGhyb3dzIEVycm9yIGlmIHZhbHVlIGlzIG5vdCBhIHZhbGlkIFF1b3RhVHlwZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiB0cnkge1xuICogICBjb25zdCBxdW90YVR5cGUgPSB2YWxpZGF0ZVF1b3RhVHlwZShyZXEuYm9keS5xdW90YVR5cGUsICdxdW90YVR5cGUnKTtcbiAqICAgLy8gVXNlIHF1b3RhVHlwZSBzYWZlbHlcbiAqIH0gY2F0Y2ggKGVycikge1xuICogICByZXR1cm4gc2VuZEVycm9yKHJlcywgNDAwLCBlcnIubWVzc2FnZSk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUXVvdGFUeXBlKHZhbHVlOiB1bmtub3duLCBmaWVsZE5hbWUgPSAncXVvdGFUeXBlJyk6IFF1b3RhVHlwZSB7XG4gIGlmICghaXNWYWxpZFF1b3RhVHlwZSh2YWx1ZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCAke2ZpZWxkTmFtZX06IFwiJHt2YWx1ZX1cIi4gTXVzdCBiZSBvbmUgb2Y6ICR7VkFMSURfUVVPVEFfVFlQRVMuam9pbignLCAnKX1gLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIFJlc3VsdCBmcm9tIHF1b3RhIGNoZWNrIG9wZXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdW90YUNoZWNrUmVzdWx0IHtcbiAgLyoqIFdoZXRoZXIgdGhlIHJlcXVlc3QgaXMgYWxsb3dlZCAqL1xuICBhbGxvd2VkOiBib29sZWFuO1xuICAvKiogTWF4aW11bSBxdW90YSBsaW1pdCAoLTEgZm9yIHVubGltaXRlZCkgKi9cbiAgbGltaXQ6IG51bWJlcjtcbiAgLyoqIEN1cnJlbnQgdXNhZ2UgY291bnQgKi9cbiAgdXNlZDogbnVtYmVyO1xuICAvKiogUmVtYWluaW5nIHF1b3RhICgtMSBmb3IgdW5saW1pdGVkKSAqL1xuICByZW1haW5pbmc6IG51bWJlcjtcbiAgLyoqIElTTyB0aW1lc3RhbXAgd2hlbiBxdW90YSByZXNldHMgKi9cbiAgcmVzZXRBdDogc3RyaW5nO1xuICAvKiogV2hldGhlciBxdW90YSBpcyB1bmxpbWl0ZWQgKi9cbiAgdW5saW1pdGVkOiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSBPTkxZIHdoZW4gdGhpcyByZXN1bHQgaXMgdGhlIGZhaWwtb3BlbiBzZW50aW5lbCByZXR1cm5lZCBiZWNhdXNlIHRoZVxuICAgKiBxdW90YSBzZXJ2aWNlIHdhcyB1bnJlYWNoYWJsZSAvIHJldHVybmVkIG5vbi1vayAobm90IGEgcmVhbCBxdW90YSByZWFkaW5nKS5cbiAgICogTGV0cyBmYWlsLWNsb3NlZCBjYWxsZXJzIChlLmcuIHRoZSByZWdpc3RyeSBzdG9yYWdlIHB1c2gtZ2F0ZSkgZGlzdGluZ3Vpc2hcbiAgICogYW4gb3V0YWdlIGZyb20gYSBnZW51aW5lIGBsaW1pdDogLTFgICh1bmxpbWl0ZWQpIG9yZy4gQWJzZW50IG9uIHJlYWwgcmVzdWx0cy5cbiAgICovXG4gIGZhaWxPcGVuPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBRdW90YSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgcmVzcG9uc2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1b3RhSW5mbyB7XG4gIHR5cGU6IFF1b3RhVHlwZTtcbiAgbGltaXQ6IG51bWJlcjtcbiAgdXNlZDogbnVtYmVyO1xuICByZW1haW5pbmc6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTdGFuZGFyZCBBUEkgc3VjY2VzcyByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlTdWNjZXNzUmVzcG9uc2U8VCA9IHVua25vd24+IHtcbiAgc3VjY2VzczogdHJ1ZTtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBkYXRhPzogVDtcbiAgbWVzc2FnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTdGFuZGFyZCBBUEkgZXJyb3IgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpRXJyb3JSZXNwb25zZSB7XG4gIHN1Y2Nlc3M6IGZhbHNlO1xuICBzdGF0dXNDb2RlOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY29kZT86IHN0cmluZztcbiAgZGV0YWlscz86IHVua25vd247XG4gIHF1b3RhPzogUXVvdGFJbmZvO1xufVxuXG4vKipcbiAqIENvbWJpbmVkIEFQSSByZXNwb25zZSB0eXBlLlxuICovXG5leHBvcnQgdHlwZSBBcGlSZXNwb25zZTxUID0gdW5rbm93bj4gPSBBcGlTdWNjZXNzUmVzcG9uc2U8VD4gfCBBcGlFcnJvclJlc3BvbnNlO1xuXG4vKipcbiAqIEpXVCBwYXlsb2FkIGZyb20gYWNjZXNzIHRva2Vucy5cbiAqXG4gKiBVc2VycyBjYW4gYmVsb25nIHRvIG11bHRpcGxlIG9yZ2FuaXphdGlvbnMuIFRoZSB0b2tlbiBpcyBzY29wZWQgdG8gb25lXG4gKiBhY3RpdmUgb3JnYW5pemF0aW9uIGF0IGEgdGltZS4gVGhlIGByb2xlYCBmaWVsZCBpcyB0aGUgdXNlcidzIHBlci1vcmdcbiAqIHJvbGUgaW4gdGhhdCBvcmdhbml6YXRpb24gKGZyb20gdGhlIFVzZXJPcmdhbml6YXRpb24ganVuY3Rpb24gY29sbGVjdGlvbiksXG4gKiBhbmQgYGlzQWRtaW5gIGlzIGRlcml2ZWQgYXMgYHJvbGUgPT09ICdhZG1pbicgfHwgcm9sZSA9PT0gJ293bmVyJ2AuXG4gKlxuICogVXNlIGBQT1NUIC9hdXRoL3N3aXRjaC1vcmdgIHRvIGNoYW5nZSB0aGUgYWN0aXZlIG9yZ2FuaXphdGlvbiwgd2hpY2hcbiAqIHJlLWlzc3VlcyB0b2tlbnMgd2l0aCB0aGUgbmV3IG9yZydzIHJvbGUgYW5kIGNvbnRleHQuXG4gKi9cbi8qKiBQZXItb3JnIHJvbGUgaW4gYSBzaW5nbGUgb3JnYW5pemF0aW9uL3RlYW0uIE5vdCBhIGdsb2JhbCByb2xlLiAqL1xuZXhwb3J0IHR5cGUgT3JnUm9sZSA9ICdvd25lcicgfCAnYWRtaW4nIHwgJ21lbWJlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSnd0UGF5bG9hZCB7XG4gIC8qKiBVc2VyIElEIChzdWJqZWN0KSAqL1xuICBzdWI6IHN0cmluZztcbiAgLyoqIFVzZXJuYW1lICovXG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIC8qKiBVc2VyIGVtYWlsICovXG4gIGVtYWlsOiBzdHJpbmc7XG4gIC8qKiBQZXItb3JnIHJvbGUgaW4gdGhlIGFjdGl2ZSBvcmdhbml6YXRpb24gKCdvd25lcicgfCAnYWRtaW4nIHwgJ21lbWJlcicpLiBOb3QgYSBnbG9iYWwgcm9sZS4gKi9cbiAgcm9sZTogT3JnUm9sZTtcbiAgLyoqIERlcml2ZWQ6IHRydWUgd2hlbiByb2xlIGlzICdhZG1pbicgb3IgJ293bmVyJyBpbiB0aGUgYWN0aXZlIG9yZ2FuaXphdGlvbiAqL1xuICBpc0FkbWluPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIGZpbmUtZ3JhaW5lZCBwZXJtaXNzaW9ucyBmb3IgdGhlIGFjdGl2ZSBvcmcvdGVhbSDigJQgdGhlIHVuaW9uIG9mXG4gICAqIHRoZSByb2xlJ3MgYmFzZSBidW5kbGUgYW5kIGV2ZXJ5IGdyb3VwIHRoZSB1c2VyIGJlbG9uZ3MgdG8gKHNlZVxuICAgKiBgcmVzb2x2ZVVzZXJQZXJtaXNzaW9uc2ApLiBBYnNlbnQgb24gbWFjaGluZS9zY29wZWQgdG9rZW5zLiBTdXBlcmFkbWlucyBhcmVcbiAgICogZ3JhbnRlZCBhbGwgcGVybWlzc2lvbnMgaW1wbGljaXRseSBhbmQgbWF5IG9taXQgdGhpcy4gRW5kcG9pbnRzIGVuZm9yY2UgdmlhXG4gICAqIGByZXF1aXJlUGVybWlzc2lvbiguLi4pYC5cbiAgICovXG4gIHBlcm1pc3Npb25zPzogUGVybWlzc2lvbltdO1xuICAvKipcbiAgICogR2xvYmFsIHN1cGVyLWFkbWluIGZsYWcgKGNyb3NzLW9yZykuIFdoZW4gYHRydWVgLCB0aGUgdXNlciBpcyB0cmVhdGVkXG4gICAqIGFzIGEgc3lzdGVtIGFkbWluaXN0cmF0b3IgcmVnYXJkbGVzcyBvZiB3aGljaCBvcmcgdGhleSdyZSBjdXJyZW50bHlcbiAgICogYWN0aW5nIHVuZGVyLiBUaGlzIGlzIHRoZSBjYW5vbmljYWwgc2lnbmFsIGZvciBzeXNhZG1pbiBhdXRob3JpdHkg4oCUXG4gICAqIHByZXZpb3VzbHkgdGhlIG9ubHkgcGF0aCB3YXMgbWVtYmVyc2hpcCBpbiB0aGUgd2VsbC1rbm93biBcInN5c3RlbVwiIG9yZ1xuICAgKiB3aXRoIHJvbGUgYWRtaW4vb3duZXIsIHdoaWNoIGNvbmZsYXRlZCBcIlBpcGVsaW5lIEJ1aWxkZXIgb3BlcmF0b3JcIiB3aXRoXG4gICAqIFwicmVhbCBjdXN0b21lciB0ZW5hbnRcIiBpbiB0aGUgZGF0YSBtb2RlbC4gRWl0aGVyIHBhdGggc3RpbGwgd29ya3NcbiAgICogZHVyaW5nIHRoZSByb2xsb3V0OyBuZXcgdXNlcnMgc2hvdWxkIGJlIGdyYW50ZWQgdmlhIGBpc1N1cGVyQWRtaW5gLlxuICAgKi9cbiAgaXNTdXBlckFkbWluPzogYm9vbGVhbjtcbiAgLyoqIE9yZ2FuaXphdGlvbidzIHF1b3RhIHRpZXIgKCdkZXZlbG9wZXInIHwgJ3BybycgfCAndGVhbScgfCAnZW50ZXJwcmlzZScpICovXG4gIHRpZXI/OiBzdHJpbmc7XG4gIC8qKiBSZXNvbHZlZCBmZWF0dXJlIGZsYWdzIGZvciB0aGlzIHVzZXIvb3JnICovXG4gIGZlYXR1cmVzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBOYXJyb3cgY2FwYWJpbGl0eSBzY29wZSBmb3IgbWFjaGluZS9hdXRvbWF0aW9uIHRva2VucyAoZS5nLlxuICAgKiBgJ3JlcG9ydGluZzppbmdlc3QnYCkuIEFic2VudCBvbiBub3JtYWwgaW50ZXJhY3RpdmUgdXNlciB0b2tlbnMuIEVuZHBvaW50c1xuICAgKiB0aGF0IGFjY2VwdCBhIHNjb3BlZCBpZGVudGl0eSBjaGVjayB0aGlzIChzZWUgYGhhc1Njb3BlYCkgaW5zdGVhZCBvZiByb2xlO1xuICAgKiBhIHNjb3BlZCB0b2tlbiBpcyBtaW50ZWQgd2l0aCBtaW5pbWFsIHJvbGUgZm9yIGxlYXN0LXByaXZpbGVnZS5cbiAgICovXG4gIHNjb3BlPzogc3RyaW5nO1xuICAvKiogQWN0aXZlIG9yZ2FuaXphdGlvbiBJRCAoZnJvbSBVc2VyT3JnYW5pemF0aW9uIG1lbWJlcnNoaXApICovXG4gIG9yZ2FuaXphdGlvbklkPzogc3RyaW5nO1xuICAvKiogQWN0aXZlIG9yZ2FuaXphdGlvbiBuYW1lICovXG4gIG9yZ2FuaXphdGlvbk5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcmcg4oaSIHRlYW0gaGllcmFyY2h5IChvcmctdGVhbS1oaWVyYXJjaHkgcHJvcG9zYWwsIHBoYXNlIDEpLlxuICAgKiBgcGFyZW50T3JnYW5pemF0aW9uSWRgIGlzIHRoZSBhY3RpdmUgb3JnJ3MgZGlyZWN0IHBhcmVudDsgYHJvb3RPcmdhbml6YXRpb25JZGBcbiAgICogaXMgdGhlIHRvcCBvZiBpdHMgYW5jZXN0cnkgY2hhaW4uIEJvdGggYXJlICoqb21pdHRlZCBmb3IgZmxhdCAocm9vdCkgb3JncyoqIOKAlFxuICAgKiBjb25zdW1lcnMgc2hvdWxkIHRyZWF0IHRoZSBlZmZlY3RpdmUgcm9vdCBhcyBgcm9vdE9yZ2FuaXphdGlvbklkID8/IG9yZ2FuaXphdGlvbklkYC5cbiAgICogQ3VycmVudGx5IGV2ZXJ5IG9yZyBpcyBmbGF0LCBzbyB0aGVzZSBhcmUgYWJzZW50IG9uIGFsbCB0b2tlbnMgdG9kYXkuXG4gICAqL1xuICBwYXJlbnRPcmdhbml6YXRpb25JZD86IHN0cmluZztcbiAgLyoqIFJvb3Qgb3JnYW5pemF0aW9uIElEIG9mIHRoZSBhY3RpdmUgb3JnJ3MgYW5jZXN0cnkgY2hhaW4gKHNlZSBgcGFyZW50T3JnYW5pemF0aW9uSWRgKS4gKi9cbiAgcm9vdE9yZ2FuaXphdGlvbklkPzogc3RyaW5nO1xuICAvKipcbiAgICogU2V0IG9uIHRva2VucyBpc3N1ZWQgYnkgdGhlIHN5c2FkbWluIGltcGVyc29uYXRpb24gZmxvd1xuICAgKiAoYFBPU1QgL2FkbWluL2ltcGVyc29uYXRlLzp1c2VySWRgKS4gQ2FycmllcyB0aGUgb3JpZ2luYWwgc3lzYWRtaW4nc1xuICAgKiB1c2VyIGlkIHNvIGF1ZGl0IGV2ZW50cyBzdGlsbCBhdHRyaWJ1dGUgYWN0aW9ucyBjb3JyZWN0bHkuXG4gICAqL1xuICBpbXBlcnNvbmF0b3JJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIHRva2VuIGlzIHJlYWQtb25seSDigJQgYW55IG5vbi1HRVQgcmVxdWVzdCBpcyByZWplY3RlZFxuICAgKiB1cHN0cmVhbSBieSB0aGUgcGxhdGZvcm0ncyByZWFkLW9ubHkgaW1wZXJzb25hdGlvbiBnYXRlLiBMZXRzXG4gICAqIHN5c2FkbWlucyBcInZpZXcgYXMgdXNlciBYXCIgd2l0aG91dCByaXNraW5nIGEgZGVzdHJ1Y3RpdmUgYWN0aW9uLlxuICAgKi9cbiAgaW1wZXJzb25hdGlvblJlYWRPbmx5PzogYm9vbGVhbjtcbiAgLyoqIFRva2VuIHR5cGUgKi9cbiAgdHlwZTogJ2FjY2VzcycgfCAncmVmcmVzaCc7XG4gIC8qKiBJc3N1ZWQgYXQgdGltZXN0YW1wICovXG4gIGlhdD86IG51bWJlcjtcbiAgLyoqIEV4cGlyYXRpb24gdGltZXN0YW1wICovXG4gIGV4cD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBFeHRlbmRlZCBFeHByZXNzIFJlcXVlc3Qgd2l0aCB1c2VyIHByb3BlcnR5LlxuICovXG5kZWNsYXJlIGdsb2JhbCB7XG4gIG5hbWVzcGFjZSBFeHByZXNzIHtcbiAgICBpbnRlcmZhY2UgUmVxdWVzdCB7XG4gICAgICB1c2VyPzogSnd0UGF5bG9hZDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTZXJ2aWNlIGNvbmZpZ3VyYXRpb24gZm9yIGludGVybmFsIEhUVFAgY2xpZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VDb25maWcge1xuICAvKiogU2VydmljZSBob3N0bmFtZSAqL1xuICBob3N0OiBzdHJpbmc7XG4gIC8qKiBTZXJ2aWNlIHBvcnQgKi9cbiAgcG9ydDogbnVtYmVyO1xuICAvKiogUmVxdWVzdCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyAqL1xuICB0aW1lb3V0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEhlYWx0aCBjaGVjayByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWFsdGhDaGVja1Jlc3BvbnNlIHtcbiAgc3RhdHVzOiAnaGVhbHRoeScgfCAndW5oZWFsdGh5JztcbiAgc2VydmljZTogc3RyaW5nO1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgdXB0aW1lOiBudW1iZXI7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIGRlcGVuZGVuY2llcz86IFJlY29yZDxzdHJpbmcsICdjb25uZWN0ZWQnIHwgJ2Rpc2Nvbm5lY3RlZCcgfCAndW5rbm93bic+O1xufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBZ0N0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxjQUFjO0lBQzdELFlBQVksRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsWUFBWTtDQUNyRCxDQUFDO0FBRVg7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDN0MsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQWtCLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFjLEVBQUUsU0FBUyxHQUFHLFdBQVc7SUFDdkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FDYixXQUFXLFNBQVMsTUFBTSxLQUFLLHNCQUFzQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDcEYsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBQZXJtaXNzaW9uIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy5qcyc7XG5cbi8qKlxuICogUXVvdGEgdHlwZSBpZGVudGlmaWVycy5cbiAqXG4gKiAtIGBwbHVnaW5zYCAvIGBwaXBlbGluZXNgIOKAlCBjb3VudCBvZiBjcmVhdGVkIGVudGl0aWVzXG4gKiAtIGBhcGlDYWxsc2Ag4oCUIGdlbmVyaWMgQVBJIGNhbGwgY291bnQgKHJlYWQtaGVhdnkgcGF0aHMpXG4gKiAtIGBhaUNhbGxzYCDigJQgQUkgcHJvdmlkZXIgaW52b2NhdGlvbnMgKGNvdW50ZWQgc2VwYXJhdGVseSBiZWNhdXNlIGVhY2ggY2FsbFxuICogICBoYXMgZXh0ZXJuYWwgZG9sbGFyIGNvc3Q7IHNpemVkIHNtYWxsZXIgdGhhbiBhcGlDYWxscyBwZXIgdGllcilcbiAqIC0gYHN0b3JhZ2VCeXRlc2Ag4oCUIHJlZ2lzdHJ5IHN0b3JhZ2UgYnVkZ2V0IHBlciBvcmcuIFVubGlrZSB0aGUgb3RoZXJzXG4gKiAgICh3aGljaCBjb3VudCBkaXNjcmV0ZSBldmVudHMpLCB0aGlzIGlzIGEgbWVhc3VyZWQgdG90YWwgcmVjb21wdXRlZFxuICogICBvbiBkZW1hbmQuIEluY3JlbWVudGVkIGJ5IHRoZSBpbWFnZS1yZWdpc3RyeSdzIHB1c2gtZ2F0ZSBiZWZvcmVcbiAqICAgaXNzdWluZyBhIHRva2VuIHdob3NlIHNjb3BlIGluY2x1ZGVzIGBwdXNoYDsgdGhlIEdDIHNjaGVkdWxlclxuICogICBldmVudHVhbGx5IGZyZWVzIHRoZSBieXRlcywgdGhlbiB0aGUgbmV4dCBwdXNoLWdhdGUgY2hlY2sgcmVhZHNcbiAqICAgdGhlIGxvd2VyIHZhbHVlLiBOT1QgYSBjb3VudGVyLXN0eWxlIHF1b3RhIGluIHRoZSBzZW5zZSBvZlxuICogICBgaW5jcmVtZW50VXNhZ2VgIOKAlCB0aGUgcmVnaXN0cnkgcHVzaGVzIHRoZSBtZWFzdXJlZCB0b3RhbCB2aWFcbiAqICAgYHVwZGF0ZUxpbWl0c2AvYHJlc2V0VXNhZ2VgIGZsb3dzLiBUaWVyIGxpbWl0cyBhcmUgYnl0ZXMuXG4gKiAtIGBkYXNoYm9hcmRzYCAvIGBhbGVydFJ1bGVzYCAvIGBhbGVydERlc3RpbmF0aW9uc2AgLyBgaWRwQ29uZmlnc2Ag4oCUXG4gKiAgIHJlc291cmNlLWNvdW50IHF1b3RhcyBhZGRlZCB0byBjbG9zZSBwZXItb3JnIERvUyBzdXJmYWNlcyBpbiB0aGVcbiAqICAgdXNlci1lZGl0YWJsZSBmZWF0dXJlIHRhYmxlcy4gV2l0aG91dCB0aGVzZSBjYXBzIGEgc2luZ2xlIG9yZyBjb3VsZFxuICogICBzcGFtIHRob3VzYW5kcyBvZiBkYXNoYm9hcmRzIC8gcnVsZXMgYW5kIGJsb2F0IHRoZSBzaGFyZWQgUG9zdGdyZXMgL1xuICogICBNb25nbyB3b3JraW5nIHNldHMuIENvdW50ZWQgYXQgY3JlYXRlIHRpbWU7IGRlY3JlbWVudGVkIG9uIGRlbGV0ZS5cbiAqL1xuLy8gTk9URTogYHNlYXRzYCBpcyBpbnRlbnRpb25hbGx5IE5PVCBoZXJlLiBJdCdzIGEgdGllciBsaW1pdCAoUXVvdGFUaWVyTGltaXRzKVxuLy8gZW5mb3JjZWQgYnkgY29tcGFyaW5nIHRoZSBvcmcncyBMSVZFIG1lbWJlciBjb3VudCBhdCBpbnZpdGUgdGltZSDigJQgbm90IGFuXG4vLyBpbmNyZW1lbnRpbmcgcGVyLXBlcmlvZCBjb3VudGVyIGxpa2UgdGhlIGNvbnN1bWFibGUgcXVvdGFzIGJlbG93LlxuZXhwb3J0IHR5cGUgUXVvdGFUeXBlID1cbiAgfCAncGx1Z2lucycgfCAncGlwZWxpbmVzJyB8ICdhcGlDYWxscycgfCAnYWlDYWxscycgfCAnc3RvcmFnZUJ5dGVzJ1xuICB8ICdkYXNoYm9hcmRzJyB8ICdhbGVydFJ1bGVzJyB8ICdhbGVydERlc3RpbmF0aW9ucycgfCAnaWRwQ29uZmlncyc7XG5cbi8qKlxuICogVmFsaWQgcXVvdGEgdHlwZSB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBWQUxJRF9RVU9UQV9UWVBFUyA9IFtcbiAgJ3BsdWdpbnMnLCAncGlwZWxpbmVzJywgJ2FwaUNhbGxzJywgJ2FpQ2FsbHMnLCAnc3RvcmFnZUJ5dGVzJyxcbiAgJ2Rhc2hib2FyZHMnLCAnYWxlcnRSdWxlcycsICdhbGVydERlc3RpbmF0aW9ucycsICdpZHBDb25maWdzJyxcbl0gYXMgY29uc3Q7XG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhIHZhbHVlIGlzIGEgdmFsaWQgUXVvdGFUeXBlLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIGNoZWNrXG4gKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGlzIGEgdmFsaWQgUXVvdGFUeXBlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlmIChpc1ZhbGlkUXVvdGFUeXBlKHJlcS5ib2R5LnF1b3RhVHlwZSkpIHtcbiAqICAgLy8gcXVvdGFUeXBlIGlzIGd1YXJhbnRlZWQgdG8gYmUgUXVvdGFUeXBlXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRRdW90YVR5cGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBRdW90YVR5cGUge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBWQUxJRF9RVU9UQV9UWVBFUy5pbmNsdWRlcyh2YWx1ZSBhcyBRdW90YVR5cGUpO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIGFuZCBhc3NlcnQgdGhhdCBhIHZhbHVlIGlzIGEgdmFsaWQgUXVvdGFUeXBlLlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHMuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gdmFsaWRhdGVcbiAqIEBwYXJhbSBmaWVsZE5hbWUgLSBOYW1lIG9mIHRoZSBmaWVsZCBiZWluZyB2YWxpZGF0ZWQgKGZvciBlcnJvciBtZXNzYWdlcylcbiAqIEByZXR1cm5zIFRoZSB2YWxpZGF0ZWQgUXVvdGFUeXBlXG4gKiBAdGhyb3dzIEVycm9yIGlmIHZhbHVlIGlzIG5vdCBhIHZhbGlkIFF1b3RhVHlwZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiB0cnkge1xuICogICBjb25zdCBxdW90YVR5cGUgPSB2YWxpZGF0ZVF1b3RhVHlwZShyZXEuYm9keS5xdW90YVR5cGUsICdxdW90YVR5cGUnKTtcbiAqICAgLy8gVXNlIHF1b3RhVHlwZSBzYWZlbHlcbiAqIH0gY2F0Y2ggKGVycikge1xuICogICByZXR1cm4gc2VuZEVycm9yKHJlcywgNDAwLCBlcnIubWVzc2FnZSk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUXVvdGFUeXBlKHZhbHVlOiB1bmtub3duLCBmaWVsZE5hbWUgPSAncXVvdGFUeXBlJyk6IFF1b3RhVHlwZSB7XG4gIGlmICghaXNWYWxpZFF1b3RhVHlwZSh2YWx1ZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCAke2ZpZWxkTmFtZX06IFwiJHt2YWx1ZX1cIi4gTXVzdCBiZSBvbmUgb2Y6ICR7VkFMSURfUVVPVEFfVFlQRVMuam9pbignLCAnKX1gLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIFJlc3VsdCBmcm9tIHF1b3RhIGNoZWNrIG9wZXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdW90YUNoZWNrUmVzdWx0IHtcbiAgLyoqIFdoZXRoZXIgdGhlIHJlcXVlc3QgaXMgYWxsb3dlZCAqL1xuICBhbGxvd2VkOiBib29sZWFuO1xuICAvKiogTWF4aW11bSBxdW90YSBsaW1pdCAoLTEgZm9yIHVubGltaXRlZCkgKi9cbiAgbGltaXQ6IG51bWJlcjtcbiAgLyoqIEN1cnJlbnQgdXNhZ2UgY291bnQgKi9cbiAgdXNlZDogbnVtYmVyO1xuICAvKiogUmVtYWluaW5nIHF1b3RhICgtMSBmb3IgdW5saW1pdGVkKSAqL1xuICByZW1haW5pbmc6IG51bWJlcjtcbiAgLyoqIElTTyB0aW1lc3RhbXAgd2hlbiBxdW90YSByZXNldHMgKi9cbiAgcmVzZXRBdDogc3RyaW5nO1xuICAvKiogV2hldGhlciBxdW90YSBpcyB1bmxpbWl0ZWQgKi9cbiAgdW5saW1pdGVkOiBib29sZWFuO1xuICAvKipcbiAgICogVHJ1ZSBPTkxZIHdoZW4gdGhpcyByZXN1bHQgaXMgdGhlIGZhaWwtb3BlbiBzZW50aW5lbCByZXR1cm5lZCBiZWNhdXNlIHRoZVxuICAgKiBxdW90YSBzZXJ2aWNlIHdhcyB1bnJlYWNoYWJsZSAvIHJldHVybmVkIG5vbi1vayAobm90IGEgcmVhbCBxdW90YSByZWFkaW5nKS5cbiAgICogTGV0cyBmYWlsLWNsb3NlZCBjYWxsZXJzIChlLmcuIHRoZSByZWdpc3RyeSBzdG9yYWdlIHB1c2gtZ2F0ZSkgZGlzdGluZ3Vpc2hcbiAgICogYW4gb3V0YWdlIGZyb20gYSBnZW51aW5lIGBsaW1pdDogLTFgICh1bmxpbWl0ZWQpIG9yZy4gQWJzZW50IG9uIHJlYWwgcmVzdWx0cy5cbiAgICovXG4gIGZhaWxPcGVuPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBRdW90YSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgcmVzcG9uc2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1b3RhSW5mbyB7XG4gIHR5cGU6IFF1b3RhVHlwZTtcbiAgbGltaXQ6IG51bWJlcjtcbiAgdXNlZDogbnVtYmVyO1xuICByZW1haW5pbmc6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTdGFuZGFyZCBBUEkgc3VjY2VzcyByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlTdWNjZXNzUmVzcG9uc2U8VCA9IHVua25vd24+IHtcbiAgc3VjY2VzczogdHJ1ZTtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBkYXRhPzogVDtcbiAgbWVzc2FnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTdGFuZGFyZCBBUEkgZXJyb3IgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpRXJyb3JSZXNwb25zZSB7XG4gIHN1Y2Nlc3M6IGZhbHNlO1xuICBzdGF0dXNDb2RlOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY29kZT86IHN0cmluZztcbiAgZGV0YWlscz86IHVua25vd247XG4gIHF1b3RhPzogUXVvdGFJbmZvO1xufVxuXG4vKipcbiAqIENvbWJpbmVkIEFQSSByZXNwb25zZSB0eXBlLlxuICovXG5leHBvcnQgdHlwZSBBcGlSZXNwb25zZTxUID0gdW5rbm93bj4gPSBBcGlTdWNjZXNzUmVzcG9uc2U8VD4gfCBBcGlFcnJvclJlc3BvbnNlO1xuXG4vKipcbiAqIEpXVCBwYXlsb2FkIGZyb20gYWNjZXNzIHRva2Vucy5cbiAqXG4gKiBVc2VycyBjYW4gYmVsb25nIHRvIG11bHRpcGxlIG9yZ2FuaXphdGlvbnMuIFRoZSB0b2tlbiBpcyBzY29wZWQgdG8gb25lXG4gKiBhY3RpdmUgb3JnYW5pemF0aW9uIGF0IGEgdGltZS4gVGhlIGByb2xlYCBmaWVsZCBpcyB0aGUgdXNlcidzIHBlci1vcmdcbiAqIHJvbGUgaW4gdGhhdCBvcmdhbml6YXRpb24gKGZyb20gdGhlIFVzZXJPcmdhbml6YXRpb24ganVuY3Rpb24gY29sbGVjdGlvbiksXG4gKiBhbmQgYGlzQWRtaW5gIGlzIGRlcml2ZWQgYXMgYHJvbGUgPT09ICdhZG1pbicgfHwgcm9sZSA9PT0gJ293bmVyJ2AuXG4gKlxuICogVXNlIGBQT1NUIC9hdXRoL3N3aXRjaC1vcmdgIHRvIGNoYW5nZSB0aGUgYWN0aXZlIG9yZ2FuaXphdGlvbiwgd2hpY2hcbiAqIHJlLWlzc3VlcyB0b2tlbnMgd2l0aCB0aGUgbmV3IG9yZydzIHJvbGUgYW5kIGNvbnRleHQuXG4gKi9cbi8qKlxuICogQ29hcnNlIHBlci1vcmcgbWVtYmVyc2hpcCBsYWJlbCwgREVSSVZFRCBmcm9tIHRoZSBSb2xlcyBhIHVzZXIgaXMgYXNzaWduZWRcbiAqICh0aGUgaGlnaGVzdCBgZ3JhbnRzUm9sZWAgYW1vbmcgdGhlbTsgYG93bmVyYCBpcyBzZXQgb25seSBieSBvd25lcnNoaXBcbiAqIHRyYW5zZmVyKS4gSXQgaXMgYSBkaXNwbGF5L2F1dGhvcml0eSBsYWJlbCDigJQgZHJpdmluZyBgaXNBZG1pbmAsIG93bmVyc2hpcCxcbiAqIGFuZCBzZWF0IGFjY291bnRpbmcg4oCUIE5PVCBhIHBlcm1pc3Npb24gc291cmNlLiBFZmZlY3RpdmUgcGVybWlzc2lvbnMgY29tZVxuICogc29sZWx5IGZyb20gdGhlIHVzZXIncyBhc3NpZ25lZCBSb2xlcyAoc2VlIGByZXNvbHZlVXNlclBlcm1pc3Npb25zYCkuIE5vdCBhXG4gKiBnbG9iYWwgcm9sZS5cbiAqL1xuZXhwb3J0IHR5cGUgT3JnUm9sZSA9ICdvd25lcicgfCAnYWRtaW4nIHwgJ21lbWJlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSnd0UGF5bG9hZCB7XG4gIC8qKiBVc2VyIElEIChzdWJqZWN0KSAqL1xuICBzdWI6IHN0cmluZztcbiAgLyoqIFVzZXJuYW1lICovXG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIC8qKiBVc2VyIGVtYWlsICovXG4gIGVtYWlsOiBzdHJpbmc7XG4gIC8qKiBQZXItb3JnIHJvbGUgaW4gdGhlIGFjdGl2ZSBvcmdhbml6YXRpb24gKCdvd25lcicgfCAnYWRtaW4nIHwgJ21lbWJlcicpLiBOb3QgYSBnbG9iYWwgcm9sZS4gKi9cbiAgcm9sZTogT3JnUm9sZTtcbiAgLyoqIERlcml2ZWQ6IHRydWUgd2hlbiByb2xlIGlzICdhZG1pbicgb3IgJ293bmVyJyBpbiB0aGUgYWN0aXZlIG9yZ2FuaXphdGlvbiAqL1xuICBpc0FkbWluPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc29sdmVkIGZpbmUtZ3JhaW5lZCBwZXJtaXNzaW9ucyBmb3IgdGhlIGFjdGl2ZSBvcmcvdGVhbSDigJQgdGhlIHVuaW9uIG9mXG4gICAqIHRoZSBwZXJtaXNzaW9ucyBjYXJyaWVkIGJ5IGV2ZXJ5IFJvbGUgdGhlIHVzZXIgaXMgYXNzaWduZWQgKHNlZVxuICAgKiBgcmVzb2x2ZVVzZXJQZXJtaXNzaW9uc2ApLiBBYnNlbnQgb24gbWFjaGluZS9zY29wZWQgdG9rZW5zLiBTdXBlcmFkbWlucyBhcmVcbiAgICogZ3JhbnRlZCBhbGwgcGVybWlzc2lvbnMgaW1wbGljaXRseSBhbmQgbWF5IG9taXQgdGhpcy4gRW5kcG9pbnRzIGVuZm9yY2UgdmlhXG4gICAqIGByZXF1aXJlUGVybWlzc2lvbiguLi4pYC5cbiAgICovXG4gIHBlcm1pc3Npb25zPzogUGVybWlzc2lvbltdO1xuICAvKipcbiAgICogR2xvYmFsIHN1cGVyLWFkbWluIGZsYWcgKGNyb3NzLW9yZykuIFdoZW4gYHRydWVgLCB0aGUgdXNlciBpcyB0cmVhdGVkXG4gICAqIGFzIGEgc3lzdGVtIGFkbWluaXN0cmF0b3IgcmVnYXJkbGVzcyBvZiB3aGljaCBvcmcgdGhleSdyZSBjdXJyZW50bHlcbiAgICogYWN0aW5nIHVuZGVyLiBUaGlzIGlzIHRoZSBjYW5vbmljYWwgc2lnbmFsIGZvciBzeXNhZG1pbiBhdXRob3JpdHkg4oCUXG4gICAqIHByZXZpb3VzbHkgdGhlIG9ubHkgcGF0aCB3YXMgbWVtYmVyc2hpcCBpbiB0aGUgd2VsbC1rbm93biBcInN5c3RlbVwiIG9yZ1xuICAgKiB3aXRoIHJvbGUgYWRtaW4vb3duZXIsIHdoaWNoIGNvbmZsYXRlZCBcIlBpcGVsaW5lIEJ1aWxkZXIgb3BlcmF0b3JcIiB3aXRoXG4gICAqIFwicmVhbCBjdXN0b21lciB0ZW5hbnRcIiBpbiB0aGUgZGF0YSBtb2RlbC4gRWl0aGVyIHBhdGggc3RpbGwgd29ya3NcbiAgICogZHVyaW5nIHRoZSByb2xsb3V0OyBuZXcgdXNlcnMgc2hvdWxkIGJlIGdyYW50ZWQgdmlhIGBpc1N1cGVyQWRtaW5gLlxuICAgKi9cbiAgaXNTdXBlckFkbWluPzogYm9vbGVhbjtcbiAgLyoqIE9yZ2FuaXphdGlvbidzIHF1b3RhIHRpZXIgKCdkZXZlbG9wZXInIHwgJ3BybycgfCAndGVhbScgfCAnZW50ZXJwcmlzZScpICovXG4gIHRpZXI/OiBzdHJpbmc7XG4gIC8qKiBSZXNvbHZlZCBmZWF0dXJlIGZsYWdzIGZvciB0aGlzIHVzZXIvb3JnICovXG4gIGZlYXR1cmVzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBOYXJyb3cgY2FwYWJpbGl0eSBzY29wZSBmb3IgbWFjaGluZS9hdXRvbWF0aW9uIHRva2VucyAoZS5nLlxuICAgKiBgJ3JlcG9ydGluZzppbmdlc3QnYCkuIEFic2VudCBvbiBub3JtYWwgaW50ZXJhY3RpdmUgdXNlciB0b2tlbnMuIEVuZHBvaW50c1xuICAgKiB0aGF0IGFjY2VwdCBhIHNjb3BlZCBpZGVudGl0eSBjaGVjayB0aGlzIChzZWUgYGhhc1Njb3BlYCkgaW5zdGVhZCBvZiByb2xlO1xuICAgKiBhIHNjb3BlZCB0b2tlbiBpcyBtaW50ZWQgd2l0aCBtaW5pbWFsIHJvbGUgZm9yIGxlYXN0LXByaXZpbGVnZS5cbiAgICovXG4gIHNjb3BlPzogc3RyaW5nO1xuICAvKiogQWN0aXZlIG9yZ2FuaXphdGlvbiBJRCAoZnJvbSBVc2VyT3JnYW5pemF0aW9uIG1lbWJlcnNoaXApICovXG4gIG9yZ2FuaXphdGlvbklkPzogc3RyaW5nO1xuICAvKiogQWN0aXZlIG9yZ2FuaXphdGlvbiBuYW1lICovXG4gIG9yZ2FuaXphdGlvbk5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcmcg4oaSIHRlYW0gaGllcmFyY2h5IChvcmctdGVhbS1oaWVyYXJjaHkgcHJvcG9zYWwsIHBoYXNlIDEpLlxuICAgKiBgcGFyZW50T3JnYW5pemF0aW9uSWRgIGlzIHRoZSBhY3RpdmUgb3JnJ3MgZGlyZWN0IHBhcmVudDsgYHJvb3RPcmdhbml6YXRpb25JZGBcbiAgICogaXMgdGhlIHRvcCBvZiBpdHMgYW5jZXN0cnkgY2hhaW4uIEJvdGggYXJlICoqb21pdHRlZCBmb3IgZmxhdCAocm9vdCkgb3JncyoqIOKAlFxuICAgKiBjb25zdW1lcnMgc2hvdWxkIHRyZWF0IHRoZSBlZmZlY3RpdmUgcm9vdCBhcyBgcm9vdE9yZ2FuaXphdGlvbklkID8/IG9yZ2FuaXphdGlvbklkYC5cbiAgICogQ3VycmVudGx5IGV2ZXJ5IG9yZyBpcyBmbGF0LCBzbyB0aGVzZSBhcmUgYWJzZW50IG9uIGFsbCB0b2tlbnMgdG9kYXkuXG4gICAqL1xuICBwYXJlbnRPcmdhbml6YXRpb25JZD86IHN0cmluZztcbiAgLyoqIFJvb3Qgb3JnYW5pemF0aW9uIElEIG9mIHRoZSBhY3RpdmUgb3JnJ3MgYW5jZXN0cnkgY2hhaW4gKHNlZSBgcGFyZW50T3JnYW5pemF0aW9uSWRgKS4gKi9cbiAgcm9vdE9yZ2FuaXphdGlvbklkPzogc3RyaW5nO1xuICAvKipcbiAgICogU2V0IG9uIHRva2VucyBpc3N1ZWQgYnkgdGhlIHN5c2FkbWluIGltcGVyc29uYXRpb24gZmxvd1xuICAgKiAoYFBPU1QgL2FkbWluL2ltcGVyc29uYXRlLzp1c2VySWRgKS4gQ2FycmllcyB0aGUgb3JpZ2luYWwgc3lzYWRtaW4nc1xuICAgKiB1c2VyIGlkIHNvIGF1ZGl0IGV2ZW50cyBzdGlsbCBhdHRyaWJ1dGUgYWN0aW9ucyBjb3JyZWN0bHkuXG4gICAqL1xuICBpbXBlcnNvbmF0b3JJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIHRva2VuIGlzIHJlYWQtb25seSDigJQgYW55IG5vbi1HRVQgcmVxdWVzdCBpcyByZWplY3RlZFxuICAgKiB1cHN0cmVhbSBieSB0aGUgcGxhdGZvcm0ncyByZWFkLW9ubHkgaW1wZXJzb25hdGlvbiBnYXRlLiBMZXRzXG4gICAqIHN5c2FkbWlucyBcInZpZXcgYXMgdXNlciBYXCIgd2l0aG91dCByaXNraW5nIGEgZGVzdHJ1Y3RpdmUgYWN0aW9uLlxuICAgKi9cbiAgaW1wZXJzb25hdGlvblJlYWRPbmx5PzogYm9vbGVhbjtcbiAgLyoqIFRva2VuIHR5cGUgKi9cbiAgdHlwZTogJ2FjY2VzcycgfCAncmVmcmVzaCc7XG4gIC8qKiBJc3N1ZWQgYXQgdGltZXN0YW1wICovXG4gIGlhdD86IG51bWJlcjtcbiAgLyoqIEV4cGlyYXRpb24gdGltZXN0YW1wICovXG4gIGV4cD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBFeHRlbmRlZCBFeHByZXNzIFJlcXVlc3Qgd2l0aCB1c2VyIHByb3BlcnR5LlxuICovXG5kZWNsYXJlIGdsb2JhbCB7XG4gIG5hbWVzcGFjZSBFeHByZXNzIHtcbiAgICBpbnRlcmZhY2UgUmVxdWVzdCB7XG4gICAgICB1c2VyPzogSnd0UGF5bG9hZDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTZXJ2aWNlIGNvbmZpZ3VyYXRpb24gZm9yIGludGVybmFsIEhUVFAgY2xpZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VDb25maWcge1xuICAvKiogU2VydmljZSBob3N0bmFtZSAqL1xuICBob3N0OiBzdHJpbmc7XG4gIC8qKiBTZXJ2aWNlIHBvcnQgKi9cbiAgcG9ydDogbnVtYmVyO1xuICAvKiogUmVxdWVzdCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyAqL1xuICB0aW1lb3V0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEhlYWx0aCBjaGVjayByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWFsdGhDaGVja1Jlc3BvbnNlIHtcbiAgc3RhdHVzOiAnaGVhbHRoeScgfCAndW5oZWFsdGh5JztcbiAgc2VydmljZTogc3RyaW5nO1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgdXB0aW1lOiBudW1iZXI7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIGRlcGVuZGVuY2llcz86IFJlY29yZDxzdHJpbmcsICdjb25uZWN0ZWQnIHwgJ2Rpc2Nvbm5lY3RlZCcgfCAndW5rbm93bic+O1xufVxuIl19
@@ -2,7 +2,7 @@ import type { OrgRole } from './common.js';
2
2
  /**
3
3
  * Canonical fine-grained permission identifiers, in `resource:action` form.
4
4
  *
5
- * These are the ORG-SCOPED capabilities a group can grant (RBAC). Coarse by
5
+ * These are the ORG-SCOPED capabilities a Role can grant (RBAC). Coarse by
6
6
  * design — `:write` covers create/update/delete for a resource — so the catalog
7
7
  * and permission-picker UI stay small; split a `:write` into `:create`/`:delete`
8
8
  * later if a resource needs it.
@@ -12,25 +12,35 @@ import type { OrgRole } from './common.js';
12
12
  * global `isSuperAdmin` flag, not a per-org permission; and `requireStepUp`
13
13
  * (MFA) / `requireFeature` (plan entitlements) remain orthogonal gates.
14
14
  */
15
- export type Permission = 'pipelines:read' | 'pipelines:write' | 'plugins:read' | 'plugins:write' | 'compliance:read' | 'compliance:write' | 'members:manage' | 'groups:manage' | 'invitations:manage' | 'dashboards:read' | 'dashboards:write' | 'observability:read' | 'observability:write' | 'reports:read' | 'messages:read' | 'messages:write' | 'billing:read' | 'billing:manage' | 'quotas:read' | 'registry:read' | 'registry:write' | 'org:settings';
15
+ export type Permission = 'pipelines:read' | 'pipelines:write' | 'plugins:read' | 'plugins:write' | 'compliance:read' | 'compliance:write' | 'members:manage' | 'roles:manage' | 'invitations:manage' | 'dashboards:read' | 'dashboards:write' | 'observability:read' | 'observability:write' | 'reports:read' | 'messages:read' | 'messages:write' | 'billing:read' | 'billing:manage' | 'quotas:read' | 'registry:read' | 'registry:write' | 'org:settings';
16
16
  /** All valid permissions (order determines display order in the picker). */
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
+ * Seed bundle for each built-in Role, keyed by the coarse role it grants.
22
+ * Consumed by the Role seeder + the startup backfill to populate a built-in
23
+ * Role's `permissions[]`. NOT consulted at request time — see
24
+ * {@link resolveUserPermissions}.
25
+ */
20
26
  export declare const ROLE_PERMISSIONS: Record<OrgRole, readonly Permission[]>;
21
27
  /**
22
- * Resolve a user's effective org permissions.
28
+ * Resolve a user's effective org permissions from the Roles assigned to them.
29
+ *
30
+ * Single-source model: a user's abilities are EXACTLY the union of the
31
+ * permissions carried by the Roles they hold (a Role = a named permission set;
32
+ * built-in Roles carry their bundle explicitly, seeded from
33
+ * {@link ROLE_PERMISSIONS}). There is no separate role-derived baseline — the
34
+ * coarse `role` label no longer grants anything on its own.
23
35
  *
24
- * 1. Platform superadmins (isSuperAdmin) always get ALL permissions.
25
- * 2. Start from the base role's bundle ({@link ROLE_PERMISSIONS}).
26
- * 3. Union in every permission granted by the user's custom groups.
27
- * 4. Invalid permission strings are silently ignored.
36
+ * 1. Platform superadmins (`isSuperAdmin`) always get ALL permissions.
37
+ * 2. Otherwise, union every permission granted by the user's assigned Roles.
38
+ * 3. Invalid/unknown permission strings are silently ignored.
28
39
  *
29
- * @param role - The user's org role (owner/admin/member)
30
- * @param groupPermissions - Flattened permissions from all of the user's groups
40
+ * @param assignedPermissions - Flattened permissions from every Role the user holds
31
41
  * @param isSuperAdmin - Whether the user has the global super-admin flag
32
- * @returns Sorted array of effective permissions (canonical order)
42
+ * @returns Effective permissions in canonical order
33
43
  */
34
- export declare function resolveUserPermissions(role: OrgRole, groupPermissions?: readonly string[] | null, isSuperAdmin?: boolean): Permission[];
44
+ export declare function resolveUserPermissions(assignedPermissions?: readonly string[] | null, isSuperAdmin?: boolean): Permission[];
35
45
  /** Whether a resolved permission list grants `permission` (superadmin ⇒ always). */
36
46
  export declare function hasPermission(granted: readonly string[] | null | undefined, permission: Permission, isSuperAdmin?: boolean): boolean;
@@ -5,7 +5,7 @@ export const ALL_PERMISSIONS = [
5
5
  'pipelines:read', 'pipelines:write',
6
6
  'plugins:read', 'plugins:write',
7
7
  'compliance:read', 'compliance:write',
8
- 'members:manage', 'groups:manage', 'invitations:manage',
8
+ 'members:manage', 'roles:manage', 'invitations:manage',
9
9
  'dashboards:read', 'dashboards:write',
10
10
  'observability:read', 'observability:write',
11
11
  'reports:read',
@@ -20,14 +20,20 @@ export function isValidPermission(value) {
20
20
  return ALL_PERMISSIONS.includes(value);
21
21
  }
22
22
  // =============================================================================
23
- // Role permission bundles
23
+ // Built-in Role seed bundles
24
24
  // =============================================================================
25
25
  /**
26
- * Default permission bundle for each org role. Seeds the built-in groups and
27
- * provides a user's baseline permissions (unioned with any custom-group grants).
26
+ * Permission bundles used to SEED the built-in Roles ("Admin", "Member").
27
+ *
28
+ * This is the single definition of what those built-in Roles grant — it is used
29
+ * when a Role record is created (and by the startup backfill) to populate that
30
+ * Role's own `permissions[]`. It is NOT a runtime permission source: a user's
31
+ * effective permissions come ONLY from the Roles assigned to them (see
32
+ * {@link resolveUserPermissions}). The coarse `role` label (owner/admin/member)
33
+ * survives only for `isAdmin`/ownership/display, never to grant permissions.
28
34
  *
29
35
  * - `member` — day-to-day builder: read + write on pipelines/plugins, read
30
- * elsewhere. No member/group/billing management, no compliance/alert authoring.
36
+ * elsewhere. No member/role/billing management, no compliance/alert authoring.
31
37
  * - `admin` — full org administration (everything below).
32
38
  * - `owner` — same as admin (ownership itself — transfer/delete — is gated
33
39
  * separately, not via a permission).
@@ -45,6 +51,12 @@ const MEMBER_PERMISSIONS = [
45
51
  'registry:read',
46
52
  ];
47
53
  const ADMIN_PERMISSIONS = [...ALL_PERMISSIONS];
54
+ /**
55
+ * Seed bundle for each built-in Role, keyed by the coarse role it grants.
56
+ * Consumed by the Role seeder + the startup backfill to populate a built-in
57
+ * Role's `permissions[]`. NOT consulted at request time — see
58
+ * {@link resolveUserPermissions}.
59
+ */
48
60
  export const ROLE_PERMISSIONS = {
49
61
  member: MEMBER_PERMISSIONS,
50
62
  admin: ADMIN_PERMISSIONS,
@@ -54,24 +66,28 @@ export const ROLE_PERMISSIONS = {
54
66
  // Resolution
55
67
  // =============================================================================
56
68
  /**
57
- * Resolve a user's effective org permissions.
69
+ * Resolve a user's effective org permissions from the Roles assigned to them.
70
+ *
71
+ * Single-source model: a user's abilities are EXACTLY the union of the
72
+ * permissions carried by the Roles they hold (a Role = a named permission set;
73
+ * built-in Roles carry their bundle explicitly, seeded from
74
+ * {@link ROLE_PERMISSIONS}). There is no separate role-derived baseline — the
75
+ * coarse `role` label no longer grants anything on its own.
58
76
  *
59
- * 1. Platform superadmins (isSuperAdmin) always get ALL permissions.
60
- * 2. Start from the base role's bundle ({@link ROLE_PERMISSIONS}).
61
- * 3. Union in every permission granted by the user's custom groups.
62
- * 4. Invalid permission strings are silently ignored.
77
+ * 1. Platform superadmins (`isSuperAdmin`) always get ALL permissions.
78
+ * 2. Otherwise, union every permission granted by the user's assigned Roles.
79
+ * 3. Invalid/unknown permission strings are silently ignored.
63
80
  *
64
- * @param role - The user's org role (owner/admin/member)
65
- * @param groupPermissions - Flattened permissions from all of the user's groups
81
+ * @param assignedPermissions - Flattened permissions from every Role the user holds
66
82
  * @param isSuperAdmin - Whether the user has the global super-admin flag
67
- * @returns Sorted array of effective permissions (canonical order)
83
+ * @returns Effective permissions in canonical order
68
84
  */
69
- export function resolveUserPermissions(role, groupPermissions, isSuperAdmin) {
85
+ export function resolveUserPermissions(assignedPermissions, isSuperAdmin) {
70
86
  if (isSuperAdmin)
71
87
  return [...ALL_PERMISSIONS];
72
- const perms = new Set(ROLE_PERMISSIONS[role] ?? ROLE_PERMISSIONS.member);
73
- if (groupPermissions) {
74
- for (const p of groupPermissions) {
88
+ const perms = new Set();
89
+ if (assignedPermissions) {
90
+ for (const p of assignedPermissions) {
75
91
  if (isValidPermission(p))
76
92
  perms.add(p);
77
93
  }
@@ -84,4 +100,4 @@ export function hasPermission(granted, permission, isSuperAdmin) {
84
100
  return true;
85
101
  return !!granted && granted.includes(permission);
86
102
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcGVybWlzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQXVEdEMsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBMEI7SUFDcEQsZ0JBQWdCLEVBQUUsaUJBQWlCO0lBQ25DLGNBQWMsRUFBRSxlQUFlO0lBQy9CLGlCQUFpQixFQUFFLGtCQUFrQjtJQUNyQyxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsb0JBQW9CO0lBQ3ZELGlCQUFpQixFQUFFLGtCQUFrQjtJQUNyQyxvQkFBb0IsRUFBRSxxQkFBcUI7SUFDM0MsY0FBYztJQUNkLGVBQWUsRUFBRSxnQkFBZ0I7SUFDakMsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxhQUFhO0lBQ2IsZUFBZSxFQUFFLGdCQUFnQjtJQUNqQyxjQUFjO0NBQ2YsQ0FBQztBQUVGLG9EQUFvRDtBQUNwRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBYTtJQUM3QyxPQUFRLGVBQXFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsNEJBQTRCO0FBQzVCLGdGQUFnRjtBQUVoRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGtCQUFrQixHQUEwQjtJQUNoRCxnQkFBZ0IsRUFBRSxpQkFBaUI7SUFDbkMsY0FBYyxFQUFFLGVBQWU7SUFDL0IsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsY0FBYztJQUNkLGVBQWUsRUFBRSxnQkFBZ0I7SUFDakMsY0FBYztJQUNkLGFBQWE7SUFDYixlQUFlO0NBQ2hCLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUEwQixDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQTJDO0lBQ3RFLE1BQU0sRUFBRSxrQkFBa0I7SUFDMUIsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixLQUFLLEVBQUUsaUJBQWlCO0NBQ3pCLENBQUM7QUFFRixnRkFBZ0Y7QUFDaEYsYUFBYTtBQUNiLGdGQUFnRjtBQUVoRjs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLElBQWEsRUFDYixnQkFBMkMsRUFDM0MsWUFBc0I7SUFFdEIsSUFBSSxZQUFZO1FBQUUsT0FBTyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFFOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQWEsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckYsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLEtBQUssTUFBTSxDQUFDLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQztnQkFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFRCxvRkFBb0Y7QUFDcEYsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsT0FBNkMsRUFDN0MsVUFBc0IsRUFDdEIsWUFBc0I7SUFFdEIsSUFBSSxZQUFZO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDOUIsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgdHlwZSB7IE9yZ1JvbGUgfSBmcm9tICcuL2NvbW1vbi5qcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQZXJtaXNzaW9uIGlkZW50aWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENhbm9uaWNhbCBmaW5lLWdyYWluZWQgcGVybWlzc2lvbiBpZGVudGlmaWVycywgaW4gYHJlc291cmNlOmFjdGlvbmAgZm9ybS5cbiAqXG4gKiBUaGVzZSBhcmUgdGhlIE9SRy1TQ09QRUQgY2FwYWJpbGl0aWVzIGEgZ3JvdXAgY2FuIGdyYW50IChSQkFDKS4gQ29hcnNlIGJ5XG4gKiBkZXNpZ24g4oCUIGA6d3JpdGVgIGNvdmVycyBjcmVhdGUvdXBkYXRlL2RlbGV0ZSBmb3IgYSByZXNvdXJjZSDigJQgc28gdGhlIGNhdGFsb2dcbiAqIGFuZCBwZXJtaXNzaW9uLXBpY2tlciBVSSBzdGF5IHNtYWxsOyBzcGxpdCBhIGA6d3JpdGVgIGludG8gYDpjcmVhdGVgL2A6ZGVsZXRlYFxuICogbGF0ZXIgaWYgYSByZXNvdXJjZSBuZWVkcyBpdC5cbiAqXG4gKiBOT1QgbW9kZWxlZCBoZXJlIChpbnRlbnRpb25hbGx5KTogcGxhdGZvcm0tb3BlcmF0b3IgYWN0aW9ucyAob3JnIGRlbGV0ZSwgdGllci9cbiAqIHF1b3RhIG92ZXJyaWRlLCB1c2VyIGFkbWluLCBpbXBlcnNvbmF0aW9uLCBwbGF0Zm9ybSBzZXR0aW5ncykgc3RheSBiZWhpbmQgdGhlXG4gKiBnbG9iYWwgYGlzU3VwZXJBZG1pbmAgZmxhZywgbm90IGEgcGVyLW9yZyBwZXJtaXNzaW9uOyBhbmQgYHJlcXVpcmVTdGVwVXBgXG4gKiAoTUZBKSAvIGByZXF1aXJlRmVhdHVyZWAgKHBsYW4gZW50aXRsZW1lbnRzKSByZW1haW4gb3J0aG9nb25hbCBnYXRlcy5cbiAqL1xuZXhwb3J0IHR5cGUgUGVybWlzc2lvbiA9XG4gIC8vIFBpcGVsaW5lc1xuICB8ICdwaXBlbGluZXM6cmVhZCdcbiAgfCAncGlwZWxpbmVzOndyaXRlJ1xuICAvLyBQbHVnaW5zXG4gIHwgJ3BsdWdpbnM6cmVhZCdcbiAgfCAncGx1Z2luczp3cml0ZSdcbiAgLy8gQ29tcGxpYW5jZVxuICB8ICdjb21wbGlhbmNlOnJlYWQnXG4gIHwgJ2NvbXBsaWFuY2U6d3JpdGUnXG4gIC8vIE1lbWJlcnMgJiBhY2Nlc3NcbiAgfCAnbWVtYmVyczptYW5hZ2UnXG4gIHwgJ2dyb3VwczptYW5hZ2UnXG4gIHwgJ2ludml0YXRpb25zOm1hbmFnZSdcbiAgLy8gT2JzZXJ2YWJpbGl0eVxuICB8ICdkYXNoYm9hcmRzOnJlYWQnXG4gIHwgJ2Rhc2hib2FyZHM6d3JpdGUnXG4gIHwgJ29ic2VydmFiaWxpdHk6cmVhZCdcbiAgfCAnb2JzZXJ2YWJpbGl0eTp3cml0ZSdcbiAgLy8gSW5zaWdodHNcbiAgfCAncmVwb3J0czpyZWFkJ1xuICAvLyBNZXNzYWdpbmdcbiAgfCAnbWVzc2FnZXM6cmVhZCdcbiAgfCAnbWVzc2FnZXM6d3JpdGUnXG4gIC8vIEJpbGxpbmcgJiBxdW90YXNcbiAgfCAnYmlsbGluZzpyZWFkJ1xuICB8ICdiaWxsaW5nOm1hbmFnZSdcbiAgfCAncXVvdGFzOnJlYWQnXG4gIC8vIFJlZ2lzdHJ5XG4gIHwgJ3JlZ2lzdHJ5OnJlYWQnXG4gIHwgJ3JlZ2lzdHJ5OndyaXRlJ1xuICAvLyBPcmdhbml6YXRpb24gc2V0dGluZ3MgKElkUCwgS01TLCBBSSBjb25maWcsIGdlbmVyYWwgc2V0dGluZ3MpXG4gIHwgJ29yZzpzZXR0aW5ncyc7XG5cbi8qKiBBbGwgdmFsaWQgcGVybWlzc2lvbnMgKG9yZGVyIGRldGVybWluZXMgZGlzcGxheSBvcmRlciBpbiB0aGUgcGlja2VyKS4gKi9cbmV4cG9ydCBjb25zdCBBTExfUEVSTUlTU0lPTlM6IHJlYWRvbmx5IFBlcm1pc3Npb25bXSA9IFtcbiAgJ3BpcGVsaW5lczpyZWFkJywgJ3BpcGVsaW5lczp3cml0ZScsXG4gICdwbHVnaW5zOnJlYWQnLCAncGx1Z2luczp3cml0ZScsXG4gICdjb21wbGlhbmNlOnJlYWQnLCAnY29tcGxpYW5jZTp3cml0ZScsXG4gICdtZW1iZXJzOm1hbmFnZScsICdncm91cHM6bWFuYWdlJywgJ2ludml0YXRpb25zOm1hbmFnZScsXG4gICdkYXNoYm9hcmRzOnJlYWQnLCAnZGFzaGJvYXJkczp3cml0ZScsXG4gICdvYnNlcnZhYmlsaXR5OnJlYWQnLCAnb2JzZXJ2YWJpbGl0eTp3cml0ZScsXG4gICdyZXBvcnRzOnJlYWQnLFxuICAnbWVzc2FnZXM6cmVhZCcsICdtZXNzYWdlczp3cml0ZScsXG4gICdiaWxsaW5nOnJlYWQnLCAnYmlsbGluZzptYW5hZ2UnLFxuICAncXVvdGFzOnJlYWQnLFxuICAncmVnaXN0cnk6cmVhZCcsICdyZWdpc3RyeTp3cml0ZScsXG4gICdvcmc6c2V0dGluZ3MnLFxuXTtcblxuLyoqIENoZWNrIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBQZXJtaXNzaW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQZXJtaXNzaW9uKHZhbHVlOiBzdHJpbmcpOiB2YWx1ZSBpcyBQZXJtaXNzaW9uIHtcbiAgcmV0dXJuIChBTExfUEVSTUlTU0lPTlMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKHZhbHVlKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJvbGUg4oaSIHBlcm1pc3Npb24gYnVuZGxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBEZWZhdWx0IHBlcm1pc3Npb24gYnVuZGxlIGZvciBlYWNoIG9yZyByb2xlLiBTZWVkcyB0aGUgYnVpbHQtaW4gZ3JvdXBzIGFuZFxuICogcHJvdmlkZXMgYSB1c2VyJ3MgYmFzZWxpbmUgcGVybWlzc2lvbnMgKHVuaW9uZWQgd2l0aCBhbnkgY3VzdG9tLWdyb3VwIGdyYW50cykuXG4gKlxuICogLSBgbWVtYmVyYCAg4oCUIGRheS10by1kYXkgYnVpbGRlcjogcmVhZCArIHdyaXRlIG9uIHBpcGVsaW5lcy9wbHVnaW5zLCByZWFkXG4gKiAgIGVsc2V3aGVyZS4gTm8gbWVtYmVyL2dyb3VwL2JpbGxpbmcgbWFuYWdlbWVudCwgbm8gY29tcGxpYW5jZS9hbGVydCBhdXRob3JpbmcuXG4gKiAtIGBhZG1pbmAgICDigJQgZnVsbCBvcmcgYWRtaW5pc3RyYXRpb24gKGV2ZXJ5dGhpbmcgYmVsb3cpLlxuICogLSBgb3duZXJgICAg4oCUIHNhbWUgYXMgYWRtaW4gKG93bmVyc2hpcCBpdHNlbGYg4oCUIHRyYW5zZmVyL2RlbGV0ZSDigJQgaXMgZ2F0ZWRcbiAqICAgc2VwYXJhdGVseSwgbm90IHZpYSBhIHBlcm1pc3Npb24pLlxuICovXG5jb25zdCBNRU1CRVJfUEVSTUlTU0lPTlM6IHJlYWRvbmx5IFBlcm1pc3Npb25bXSA9IFtcbiAgJ3BpcGVsaW5lczpyZWFkJywgJ3BpcGVsaW5lczp3cml0ZScsXG4gICdwbHVnaW5zOnJlYWQnLCAncGx1Z2luczp3cml0ZScsXG4gICdjb21wbGlhbmNlOnJlYWQnLFxuICAnZGFzaGJvYXJkczpyZWFkJyxcbiAgJ29ic2VydmFiaWxpdHk6cmVhZCcsXG4gICdyZXBvcnRzOnJlYWQnLFxuICAnbWVzc2FnZXM6cmVhZCcsICdtZXNzYWdlczp3cml0ZScsXG4gICdiaWxsaW5nOnJlYWQnLFxuICAncXVvdGFzOnJlYWQnLFxuICAncmVnaXN0cnk6cmVhZCcsXG5dO1xuXG5jb25zdCBBRE1JTl9QRVJNSVNTSU9OUzogcmVhZG9ubHkgUGVybWlzc2lvbltdID0gWy4uLkFMTF9QRVJNSVNTSU9OU107XG5cbmV4cG9ydCBjb25zdCBST0xFX1BFUk1JU1NJT05TOiBSZWNvcmQ8T3JnUm9sZSwgcmVhZG9ubHkgUGVybWlzc2lvbltdPiA9IHtcbiAgbWVtYmVyOiBNRU1CRVJfUEVSTUlTU0lPTlMsXG4gIGFkbWluOiBBRE1JTl9QRVJNSVNTSU9OUyxcbiAgb3duZXI6IEFETUlOX1BFUk1JU1NJT05TLFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJlc29sdXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVzb2x2ZSBhIHVzZXIncyBlZmZlY3RpdmUgb3JnIHBlcm1pc3Npb25zLlxuICpcbiAqIDEuIFBsYXRmb3JtIHN1cGVyYWRtaW5zIChpc1N1cGVyQWRtaW4pIGFsd2F5cyBnZXQgQUxMIHBlcm1pc3Npb25zLlxuICogMi4gU3RhcnQgZnJvbSB0aGUgYmFzZSByb2xlJ3MgYnVuZGxlICh7QGxpbmsgUk9MRV9QRVJNSVNTSU9OU30pLlxuICogMy4gVW5pb24gaW4gZXZlcnkgcGVybWlzc2lvbiBncmFudGVkIGJ5IHRoZSB1c2VyJ3MgY3VzdG9tIGdyb3Vwcy5cbiAqIDQuIEludmFsaWQgcGVybWlzc2lvbiBzdHJpbmdzIGFyZSBzaWxlbnRseSBpZ25vcmVkLlxuICpcbiAqIEBwYXJhbSByb2xlIC0gVGhlIHVzZXIncyBvcmcgcm9sZSAob3duZXIvYWRtaW4vbWVtYmVyKVxuICogQHBhcmFtIGdyb3VwUGVybWlzc2lvbnMgLSBGbGF0dGVuZWQgcGVybWlzc2lvbnMgZnJvbSBhbGwgb2YgdGhlIHVzZXIncyBncm91cHNcbiAqIEBwYXJhbSBpc1N1cGVyQWRtaW4gLSBXaGV0aGVyIHRoZSB1c2VyIGhhcyB0aGUgZ2xvYmFsIHN1cGVyLWFkbWluIGZsYWdcbiAqIEByZXR1cm5zIFNvcnRlZCBhcnJheSBvZiBlZmZlY3RpdmUgcGVybWlzc2lvbnMgKGNhbm9uaWNhbCBvcmRlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVVc2VyUGVybWlzc2lvbnMoXG4gIHJvbGU6IE9yZ1JvbGUsXG4gIGdyb3VwUGVybWlzc2lvbnM/OiByZWFkb25seSBzdHJpbmdbXSB8IG51bGwsXG4gIGlzU3VwZXJBZG1pbj86IGJvb2xlYW4sXG4pOiBQZXJtaXNzaW9uW10ge1xuICBpZiAoaXNTdXBlckFkbWluKSByZXR1cm4gWy4uLkFMTF9QRVJNSVNTSU9OU107XG5cbiAgY29uc3QgcGVybXMgPSBuZXcgU2V0PFBlcm1pc3Npb24+KFJPTEVfUEVSTUlTU0lPTlNbcm9sZV0gPz8gUk9MRV9QRVJNSVNTSU9OUy5tZW1iZXIpO1xuICBpZiAoZ3JvdXBQZXJtaXNzaW9ucykge1xuICAgIGZvciAoY29uc3QgcCBvZiBncm91cFBlcm1pc3Npb25zKSB7XG4gICAgICBpZiAoaXNWYWxpZFBlcm1pc3Npb24ocCkpIHBlcm1zLmFkZChwKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIEFMTF9QRVJNSVNTSU9OUy5maWx0ZXIocCA9PiBwZXJtcy5oYXMocCkpO1xufVxuXG4vKiogV2hldGhlciBhIHJlc29sdmVkIHBlcm1pc3Npb24gbGlzdCBncmFudHMgYHBlcm1pc3Npb25gIChzdXBlcmFkbWluIOKHkiBhbHdheXMpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1Blcm1pc3Npb24oXG4gIGdyYW50ZWQ6IHJlYWRvbmx5IHN0cmluZ1tdIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgcGVybWlzc2lvbjogUGVybWlzc2lvbixcbiAgaXNTdXBlckFkbWluPzogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBpZiAoaXNTdXBlckFkbWluKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuICEhZ3JhbnRlZCAmJiBncmFudGVkLmluY2x1ZGVzKHBlcm1pc3Npb24pO1xufVxuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcGVybWlzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQXVEdEMsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBMEI7SUFDcEQsZ0JBQWdCLEVBQUUsaUJBQWlCO0lBQ25DLGNBQWMsRUFBRSxlQUFlO0lBQy9CLGlCQUFpQixFQUFFLGtCQUFrQjtJQUNyQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsb0JBQW9CO0lBQ3RELGlCQUFpQixFQUFFLGtCQUFrQjtJQUNyQyxvQkFBb0IsRUFBRSxxQkFBcUI7SUFDM0MsY0FBYztJQUNkLGVBQWUsRUFBRSxnQkFBZ0I7SUFDakMsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxhQUFhO0lBQ2IsZUFBZSxFQUFFLGdCQUFnQjtJQUNqQyxjQUFjO0NBQ2YsQ0FBQztBQUVGLG9EQUFvRDtBQUNwRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBYTtJQUM3QyxPQUFRLGVBQXFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsNkJBQTZCO0FBQzdCLGdGQUFnRjtBQUVoRjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLGtCQUFrQixHQUEwQjtJQUNoRCxnQkFBZ0IsRUFBRSxpQkFBaUI7SUFDbkMsY0FBYyxFQUFFLGVBQWU7SUFDL0IsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsY0FBYztJQUNkLGVBQWUsRUFBRSxnQkFBZ0I7SUFDakMsY0FBYztJQUNkLGFBQWE7SUFDYixlQUFlO0NBQ2hCLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUEwQixDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7QUFFdEU7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBMkM7SUFDdEUsTUFBTSxFQUFFLGtCQUFrQjtJQUMxQixLQUFLLEVBQUUsaUJBQWlCO0lBQ3hCLEtBQUssRUFBRSxpQkFBaUI7Q0FDekIsQ0FBQztBQUVGLGdGQUFnRjtBQUNoRixhQUFhO0FBQ2IsZ0ZBQWdGO0FBRWhGOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxtQkFBOEMsRUFDOUMsWUFBc0I7SUFFdEIsSUFBSSxZQUFZO1FBQUUsT0FBTyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFFOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWMsQ0FBQztJQUNwQyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDeEIsS0FBSyxNQUFNLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3BDLElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2dCQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELG9GQUFvRjtBQUNwRixNQUFNLFVBQVUsYUFBYSxDQUMzQixPQUE2QyxFQUM3QyxVQUFzQixFQUN0QixZQUFzQjtJQUV0QixJQUFJLFlBQVk7UUFBRSxPQUFPLElBQUksQ0FBQztJQUM5QixPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgT3JnUm9sZSB9IGZyb20gJy4vY29tbW9uLmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBlcm1pc3Npb24gaWRlbnRpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2Fub25pY2FsIGZpbmUtZ3JhaW5lZCBwZXJtaXNzaW9uIGlkZW50aWZpZXJzLCBpbiBgcmVzb3VyY2U6YWN0aW9uYCBmb3JtLlxuICpcbiAqIFRoZXNlIGFyZSB0aGUgT1JHLVNDT1BFRCBjYXBhYmlsaXRpZXMgYSBSb2xlIGNhbiBncmFudCAoUkJBQykuIENvYXJzZSBieVxuICogZGVzaWduIOKAlCBgOndyaXRlYCBjb3ZlcnMgY3JlYXRlL3VwZGF0ZS9kZWxldGUgZm9yIGEgcmVzb3VyY2Ug4oCUIHNvIHRoZSBjYXRhbG9nXG4gKiBhbmQgcGVybWlzc2lvbi1waWNrZXIgVUkgc3RheSBzbWFsbDsgc3BsaXQgYSBgOndyaXRlYCBpbnRvIGA6Y3JlYXRlYC9gOmRlbGV0ZWBcbiAqIGxhdGVyIGlmIGEgcmVzb3VyY2UgbmVlZHMgaXQuXG4gKlxuICogTk9UIG1vZGVsZWQgaGVyZSAoaW50ZW50aW9uYWxseSk6IHBsYXRmb3JtLW9wZXJhdG9yIGFjdGlvbnMgKG9yZyBkZWxldGUsIHRpZXIvXG4gKiBxdW90YSBvdmVycmlkZSwgdXNlciBhZG1pbiwgaW1wZXJzb25hdGlvbiwgcGxhdGZvcm0gc2V0dGluZ3MpIHN0YXkgYmVoaW5kIHRoZVxuICogZ2xvYmFsIGBpc1N1cGVyQWRtaW5gIGZsYWcsIG5vdCBhIHBlci1vcmcgcGVybWlzc2lvbjsgYW5kIGByZXF1aXJlU3RlcFVwYFxuICogKE1GQSkgLyBgcmVxdWlyZUZlYXR1cmVgIChwbGFuIGVudGl0bGVtZW50cykgcmVtYWluIG9ydGhvZ29uYWwgZ2F0ZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFBlcm1pc3Npb24gPVxuICAvLyBQaXBlbGluZXNcbiAgfCAncGlwZWxpbmVzOnJlYWQnXG4gIHwgJ3BpcGVsaW5lczp3cml0ZSdcbiAgLy8gUGx1Z2luc1xuICB8ICdwbHVnaW5zOnJlYWQnXG4gIHwgJ3BsdWdpbnM6d3JpdGUnXG4gIC8vIENvbXBsaWFuY2VcbiAgfCAnY29tcGxpYW5jZTpyZWFkJ1xuICB8ICdjb21wbGlhbmNlOndyaXRlJ1xuICAvLyBNZW1iZXJzICYgYWNjZXNzXG4gIHwgJ21lbWJlcnM6bWFuYWdlJ1xuICB8ICdyb2xlczptYW5hZ2UnXG4gIHwgJ2ludml0YXRpb25zOm1hbmFnZSdcbiAgLy8gT2JzZXJ2YWJpbGl0eVxuICB8ICdkYXNoYm9hcmRzOnJlYWQnXG4gIHwgJ2Rhc2hib2FyZHM6d3JpdGUnXG4gIHwgJ29ic2VydmFiaWxpdHk6cmVhZCdcbiAgfCAnb2JzZXJ2YWJpbGl0eTp3cml0ZSdcbiAgLy8gSW5zaWdodHNcbiAgfCAncmVwb3J0czpyZWFkJ1xuICAvLyBNZXNzYWdpbmdcbiAgfCAnbWVzc2FnZXM6cmVhZCdcbiAgfCAnbWVzc2FnZXM6d3JpdGUnXG4gIC8vIEJpbGxpbmcgJiBxdW90YXNcbiAgfCAnYmlsbGluZzpyZWFkJ1xuICB8ICdiaWxsaW5nOm1hbmFnZSdcbiAgfCAncXVvdGFzOnJlYWQnXG4gIC8vIFJlZ2lzdHJ5XG4gIHwgJ3JlZ2lzdHJ5OnJlYWQnXG4gIHwgJ3JlZ2lzdHJ5OndyaXRlJ1xuICAvLyBPcmdhbml6YXRpb24gc2V0dGluZ3MgKElkUCwgS01TLCBBSSBjb25maWcsIGdlbmVyYWwgc2V0dGluZ3MpXG4gIHwgJ29yZzpzZXR0aW5ncyc7XG5cbi8qKiBBbGwgdmFsaWQgcGVybWlzc2lvbnMgKG9yZGVyIGRldGVybWluZXMgZGlzcGxheSBvcmRlciBpbiB0aGUgcGlja2VyKS4gKi9cbmV4cG9ydCBjb25zdCBBTExfUEVSTUlTU0lPTlM6IHJlYWRvbmx5IFBlcm1pc3Npb25bXSA9IFtcbiAgJ3BpcGVsaW5lczpyZWFkJywgJ3BpcGVsaW5lczp3cml0ZScsXG4gICdwbHVnaW5zOnJlYWQnLCAncGx1Z2luczp3cml0ZScsXG4gICdjb21wbGlhbmNlOnJlYWQnLCAnY29tcGxpYW5jZTp3cml0ZScsXG4gICdtZW1iZXJzOm1hbmFnZScsICdyb2xlczptYW5hZ2UnLCAnaW52aXRhdGlvbnM6bWFuYWdlJyxcbiAgJ2Rhc2hib2FyZHM6cmVhZCcsICdkYXNoYm9hcmRzOndyaXRlJyxcbiAgJ29ic2VydmFiaWxpdHk6cmVhZCcsICdvYnNlcnZhYmlsaXR5OndyaXRlJyxcbiAgJ3JlcG9ydHM6cmVhZCcsXG4gICdtZXNzYWdlczpyZWFkJywgJ21lc3NhZ2VzOndyaXRlJyxcbiAgJ2JpbGxpbmc6cmVhZCcsICdiaWxsaW5nOm1hbmFnZScsXG4gICdxdW90YXM6cmVhZCcsXG4gICdyZWdpc3RyeTpyZWFkJywgJ3JlZ2lzdHJ5OndyaXRlJyxcbiAgJ29yZzpzZXR0aW5ncycsXG5dO1xuXG4vKiogQ2hlY2sgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIFBlcm1pc3Npb24uICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFBlcm1pc3Npb24odmFsdWU6IHN0cmluZyk6IHZhbHVlIGlzIFBlcm1pc3Npb24ge1xuICByZXR1cm4gKEFMTF9QRVJNSVNTSU9OUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXModmFsdWUpO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQnVpbHQtaW4gUm9sZSBzZWVkIGJ1bmRsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUGVybWlzc2lvbiBidW5kbGVzIHVzZWQgdG8gU0VFRCB0aGUgYnVpbHQtaW4gUm9sZXMgKFwiQWRtaW5cIiwgXCJNZW1iZXJcIikuXG4gKlxuICogVGhpcyBpcyB0aGUgc2luZ2xlIGRlZmluaXRpb24gb2Ygd2hhdCB0aG9zZSBidWlsdC1pbiBSb2xlcyBncmFudCDigJQgaXQgaXMgdXNlZFxuICogd2hlbiBhIFJvbGUgcmVjb3JkIGlzIGNyZWF0ZWQgKGFuZCBieSB0aGUgc3RhcnR1cCBiYWNrZmlsbCkgdG8gcG9wdWxhdGUgdGhhdFxuICogUm9sZSdzIG93biBgcGVybWlzc2lvbnNbXWAuIEl0IGlzIE5PVCBhIHJ1bnRpbWUgcGVybWlzc2lvbiBzb3VyY2U6IGEgdXNlcidzXG4gKiBlZmZlY3RpdmUgcGVybWlzc2lvbnMgY29tZSBPTkxZIGZyb20gdGhlIFJvbGVzIGFzc2lnbmVkIHRvIHRoZW0gKHNlZVxuICoge0BsaW5rIHJlc29sdmVVc2VyUGVybWlzc2lvbnN9KS4gVGhlIGNvYXJzZSBgcm9sZWAgbGFiZWwgKG93bmVyL2FkbWluL21lbWJlcilcbiAqIHN1cnZpdmVzIG9ubHkgZm9yIGBpc0FkbWluYC9vd25lcnNoaXAvZGlzcGxheSwgbmV2ZXIgdG8gZ3JhbnQgcGVybWlzc2lvbnMuXG4gKlxuICogLSBgbWVtYmVyYCAg4oCUIGRheS10by1kYXkgYnVpbGRlcjogcmVhZCArIHdyaXRlIG9uIHBpcGVsaW5lcy9wbHVnaW5zLCByZWFkXG4gKiAgIGVsc2V3aGVyZS4gTm8gbWVtYmVyL3JvbGUvYmlsbGluZyBtYW5hZ2VtZW50LCBubyBjb21wbGlhbmNlL2FsZXJ0IGF1dGhvcmluZy5cbiAqIC0gYGFkbWluYCAgIOKAlCBmdWxsIG9yZyBhZG1pbmlzdHJhdGlvbiAoZXZlcnl0aGluZyBiZWxvdykuXG4gKiAtIGBvd25lcmAgICDigJQgc2FtZSBhcyBhZG1pbiAob3duZXJzaGlwIGl0c2VsZiDigJQgdHJhbnNmZXIvZGVsZXRlIOKAlCBpcyBnYXRlZFxuICogICBzZXBhcmF0ZWx5LCBub3QgdmlhIGEgcGVybWlzc2lvbikuXG4gKi9cbmNvbnN0IE1FTUJFUl9QRVJNSVNTSU9OUzogcmVhZG9ubHkgUGVybWlzc2lvbltdID0gW1xuICAncGlwZWxpbmVzOnJlYWQnLCAncGlwZWxpbmVzOndyaXRlJyxcbiAgJ3BsdWdpbnM6cmVhZCcsICdwbHVnaW5zOndyaXRlJyxcbiAgJ2NvbXBsaWFuY2U6cmVhZCcsXG4gICdkYXNoYm9hcmRzOnJlYWQnLFxuICAnb2JzZXJ2YWJpbGl0eTpyZWFkJyxcbiAgJ3JlcG9ydHM6cmVhZCcsXG4gICdtZXNzYWdlczpyZWFkJywgJ21lc3NhZ2VzOndyaXRlJyxcbiAgJ2JpbGxpbmc6cmVhZCcsXG4gICdxdW90YXM6cmVhZCcsXG4gICdyZWdpc3RyeTpyZWFkJyxcbl07XG5cbmNvbnN0IEFETUlOX1BFUk1JU1NJT05TOiByZWFkb25seSBQZXJtaXNzaW9uW10gPSBbLi4uQUxMX1BFUk1JU1NJT05TXTtcblxuLyoqXG4gKiBTZWVkIGJ1bmRsZSBmb3IgZWFjaCBidWlsdC1pbiBSb2xlLCBrZXllZCBieSB0aGUgY29hcnNlIHJvbGUgaXQgZ3JhbnRzLlxuICogQ29uc3VtZWQgYnkgdGhlIFJvbGUgc2VlZGVyICsgdGhlIHN0YXJ0dXAgYmFja2ZpbGwgdG8gcG9wdWxhdGUgYSBidWlsdC1pblxuICogUm9sZSdzIGBwZXJtaXNzaW9uc1tdYC4gTk9UIGNvbnN1bHRlZCBhdCByZXF1ZXN0IHRpbWUg4oCUIHNlZVxuICoge0BsaW5rIHJlc29sdmVVc2VyUGVybWlzc2lvbnN9LlxuICovXG5leHBvcnQgY29uc3QgUk9MRV9QRVJNSVNTSU9OUzogUmVjb3JkPE9yZ1JvbGUsIHJlYWRvbmx5IFBlcm1pc3Npb25bXT4gPSB7XG4gIG1lbWJlcjogTUVNQkVSX1BFUk1JU1NJT05TLFxuICBhZG1pbjogQURNSU5fUEVSTUlTU0lPTlMsXG4gIG93bmVyOiBBRE1JTl9QRVJNSVNTSU9OUyxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZXNvbHV0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJlc29sdmUgYSB1c2VyJ3MgZWZmZWN0aXZlIG9yZyBwZXJtaXNzaW9ucyBmcm9tIHRoZSBSb2xlcyBhc3NpZ25lZCB0byB0aGVtLlxuICpcbiAqIFNpbmdsZS1zb3VyY2UgbW9kZWw6IGEgdXNlcidzIGFiaWxpdGllcyBhcmUgRVhBQ1RMWSB0aGUgdW5pb24gb2YgdGhlXG4gKiBwZXJtaXNzaW9ucyBjYXJyaWVkIGJ5IHRoZSBSb2xlcyB0aGV5IGhvbGQgKGEgUm9sZSA9IGEgbmFtZWQgcGVybWlzc2lvbiBzZXQ7XG4gKiBidWlsdC1pbiBSb2xlcyBjYXJyeSB0aGVpciBidW5kbGUgZXhwbGljaXRseSwgc2VlZGVkIGZyb21cbiAqIHtAbGluayBST0xFX1BFUk1JU1NJT05TfSkuIFRoZXJlIGlzIG5vIHNlcGFyYXRlIHJvbGUtZGVyaXZlZCBiYXNlbGluZSDigJQgdGhlXG4gKiBjb2Fyc2UgYHJvbGVgIGxhYmVsIG5vIGxvbmdlciBncmFudHMgYW55dGhpbmcgb24gaXRzIG93bi5cbiAqXG4gKiAxLiBQbGF0Zm9ybSBzdXBlcmFkbWlucyAoYGlzU3VwZXJBZG1pbmApIGFsd2F5cyBnZXQgQUxMIHBlcm1pc3Npb25zLlxuICogMi4gT3RoZXJ3aXNlLCB1bmlvbiBldmVyeSBwZXJtaXNzaW9uIGdyYW50ZWQgYnkgdGhlIHVzZXIncyBhc3NpZ25lZCBSb2xlcy5cbiAqIDMuIEludmFsaWQvdW5rbm93biBwZXJtaXNzaW9uIHN0cmluZ3MgYXJlIHNpbGVudGx5IGlnbm9yZWQuXG4gKlxuICogQHBhcmFtIGFzc2lnbmVkUGVybWlzc2lvbnMgLSBGbGF0dGVuZWQgcGVybWlzc2lvbnMgZnJvbSBldmVyeSBSb2xlIHRoZSB1c2VyIGhvbGRzXG4gKiBAcGFyYW0gaXNTdXBlckFkbWluIC0gV2hldGhlciB0aGUgdXNlciBoYXMgdGhlIGdsb2JhbCBzdXBlci1hZG1pbiBmbGFnXG4gKiBAcmV0dXJucyBFZmZlY3RpdmUgcGVybWlzc2lvbnMgaW4gY2Fub25pY2FsIG9yZGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVXNlclBlcm1pc3Npb25zKFxuICBhc3NpZ25lZFBlcm1pc3Npb25zPzogcmVhZG9ubHkgc3RyaW5nW10gfCBudWxsLFxuICBpc1N1cGVyQWRtaW4/OiBib29sZWFuLFxuKTogUGVybWlzc2lvbltdIHtcbiAgaWYgKGlzU3VwZXJBZG1pbikgcmV0dXJuIFsuLi5BTExfUEVSTUlTU0lPTlNdO1xuXG4gIGNvbnN0IHBlcm1zID0gbmV3IFNldDxQZXJtaXNzaW9uPigpO1xuICBpZiAoYXNzaWduZWRQZXJtaXNzaW9ucykge1xuICAgIGZvciAoY29uc3QgcCBvZiBhc3NpZ25lZFBlcm1pc3Npb25zKSB7XG4gICAgICBpZiAoaXNWYWxpZFBlcm1pc3Npb24ocCkpIHBlcm1zLmFkZChwKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIEFMTF9QRVJNSVNTSU9OUy5maWx0ZXIocCA9PiBwZXJtcy5oYXMocCkpO1xufVxuXG4vKiogV2hldGhlciBhIHJlc29sdmVkIHBlcm1pc3Npb24gbGlzdCBncmFudHMgYHBlcm1pc3Npb25gIChzdXBlcmFkbWluIOKHkiBhbHdheXMpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1Blcm1pc3Npb24oXG4gIGdyYW50ZWQ6IHJlYWRvbmx5IHN0cmluZ1tdIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgcGVybWlzc2lvbjogUGVybWlzc2lvbixcbiAgaXNTdXBlckFkbWluPzogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBpZiAoaXNTdXBlckFkbWluKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuICEhZ3JhbnRlZCAmJiBncmFudGVkLmluY2x1ZGVzKHBlcm1pc3Npb24pO1xufVxuIl19
package/package.json CHANGED
@@ -85,7 +85,7 @@
85
85
  "access": "public",
86
86
  "registry": "https://registry.npmjs.org/"
87
87
  },
88
- "version": "3.4.84",
88
+ "version": "3.4.86",
89
89
  "bugs": {
90
90
  "url": "https://github.com/mwashburn160/pipeline-builder/issues"
91
91
  },