@pipeline-builder/pipeline-data 3.4.131 → 4.0.2

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.
@@ -0,0 +1,29 @@
1
+ /** The viewer fields a per-user predicate reads off a filter. */
2
+ export interface ViewerScopedFilter {
3
+ /** Caller's user id. Compared against the row's per-user column. */
4
+ readonly viewerUserId?: string;
5
+ /** Whether the caller is a platform super-admin (sees every rung). */
6
+ readonly viewerIsSuperAdmin?: boolean;
7
+ }
8
+ /** The current request's user id, or `undefined` outside a tenant scope. */
9
+ export declare function currentViewerUserId(): string | undefined;
10
+ /**
11
+ * Stamp the request's viewer identity onto a filter.
12
+ *
13
+ * An EXPLICIT value on the filter always wins, so a caller that deliberately
14
+ * scopes to a specific user (or a test that fixes the viewer) stays expressible;
15
+ * the context only fills what the caller left blank.
16
+ *
17
+ * Safe against `CrudService.runRead`'s sysadmin widening (the parent-org read
18
+ * path, which re-enters the context with `isSuperAdmin: true`): conditions are
19
+ * always built BEFORE that scope is entered, so the stamp reflects the real
20
+ * caller, never the widened one.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * protected buildConditions(filter, orgId, parentOrgId) {
25
+ * return buildXConditions(withViewerContext(filter), orgId, parentOrgId);
26
+ * }
27
+ * ```
28
+ */
29
+ export declare function withViewerContext<F extends ViewerScopedFilter>(filter: Partial<F>): Partial<F>;
@@ -0,0 +1,63 @@
1
+ // Copyright 2026 Pipeline Builder Contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Viewer identity for app-layer predicates that carry a PER-USER rung.
5
+ *
6
+ * Most visibility predicates are org-grained, which RLS and the shared
7
+ * access-control builder already express. Two entities need finer grain:
8
+ *
9
+ * - **pipeline templates** — the `private` rung is author-only (`created_by`)
10
+ * - **messages** — a per-user targeted row (`recipient_user_id`) is visible
11
+ * only to its target, not to everyone in the recipient org
12
+ *
13
+ * Both need to know WHO is asking, and neither can get it from `CrudService`'s
14
+ * signatures: `writeConditions` (update/delete) builds the read clause from a
15
+ * bare `{ id }` filter and has nowhere to pass a viewer. Hand-threading the
16
+ * viewer through every call site is the alternative, and it fails in practice —
17
+ * it produces parallel `find*Visible*` methods and silently drops the viewer at
18
+ * whichever call site forgets it (an org member then reads a row addressed to
19
+ * someone else).
20
+ *
21
+ * So the viewer travels the same trusted, request-scoped channel as the org
22
+ * stamp: `TenantContext`, set once at the request boundary from the validated
23
+ * JWT. A service opts in by stamping it in ONE place — its `buildConditions`
24
+ * override, which every read and write funnels through, including direct
25
+ * `this.buildConditions(...)` calls.
26
+ *
27
+ * Fails CLOSED everywhere: no tenant scope (background jobs, migrations, the
28
+ * retention sweep) means no viewer, and a viewer-less predicate must match
29
+ * nothing on the per-user rung rather than matching everything.
30
+ */
31
+ import { getTenantContext } from '../database/tenancy.js';
32
+ /** The current request's user id, or `undefined` outside a tenant scope. */
33
+ export function currentViewerUserId() {
34
+ return getTenantContext()?.userId;
35
+ }
36
+ /**
37
+ * Stamp the request's viewer identity onto a filter.
38
+ *
39
+ * An EXPLICIT value on the filter always wins, so a caller that deliberately
40
+ * scopes to a specific user (or a test that fixes the viewer) stays expressible;
41
+ * the context only fills what the caller left blank.
42
+ *
43
+ * Safe against `CrudService.runRead`'s sysadmin widening (the parent-org read
44
+ * path, which re-enters the context with `isSuperAdmin: true`): conditions are
45
+ * always built BEFORE that scope is entered, so the stamp reflects the real
46
+ * caller, never the widened one.
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * protected buildConditions(filter, orgId, parentOrgId) {
51
+ * return buildXConditions(withViewerContext(filter), orgId, parentOrgId);
52
+ * }
53
+ * ```
54
+ */
55
+ export function withViewerContext(filter) {
56
+ const ctx = getTenantContext();
57
+ return {
58
+ ...filter,
59
+ viewerUserId: filter.viewerUserId ?? ctx?.userId,
60
+ viewerIsSuperAdmin: filter.viewerIsSuperAdmin ?? ctx?.isSuperAdmin ?? false,
61
+ };
62
+ }
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL3ZpZXdlci1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUVILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBVTFELDRFQUE0RTtBQUM1RSxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU8sZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQStCLE1BQWtCO0lBQ2hGLE1BQU0sR0FBRyxHQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDL0IsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWSxJQUFJLEdBQUcsRUFBRSxNQUFNO1FBQ2hELGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxHQUFHLEVBQUUsWUFBWSxJQUFJLEtBQUs7S0FDNUUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBWaWV3ZXIgaWRlbnRpdHkgZm9yIGFwcC1sYXllciBwcmVkaWNhdGVzIHRoYXQgY2FycnkgYSBQRVItVVNFUiBydW5nLlxuICpcbiAqIE1vc3QgdmlzaWJpbGl0eSBwcmVkaWNhdGVzIGFyZSBvcmctZ3JhaW5lZCwgd2hpY2ggUkxTIGFuZCB0aGUgc2hhcmVkXG4gKiBhY2Nlc3MtY29udHJvbCBidWlsZGVyIGFscmVhZHkgZXhwcmVzcy4gVHdvIGVudGl0aWVzIG5lZWQgZmluZXIgZ3JhaW46XG4gKlxuICogIC0gKipwaXBlbGluZSB0ZW1wbGF0ZXMqKiDigJQgdGhlIGBwcml2YXRlYCBydW5nIGlzIGF1dGhvci1vbmx5IChgY3JlYXRlZF9ieWApXG4gKiAgLSAqKm1lc3NhZ2VzKiog4oCUIGEgcGVyLXVzZXIgdGFyZ2V0ZWQgcm93IChgcmVjaXBpZW50X3VzZXJfaWRgKSBpcyB2aXNpYmxlXG4gKiAgICBvbmx5IHRvIGl0cyB0YXJnZXQsIG5vdCB0byBldmVyeW9uZSBpbiB0aGUgcmVjaXBpZW50IG9yZ1xuICpcbiAqIEJvdGggbmVlZCB0byBrbm93IFdITyBpcyBhc2tpbmcsIGFuZCBuZWl0aGVyIGNhbiBnZXQgaXQgZnJvbSBgQ3J1ZFNlcnZpY2VgJ3NcbiAqIHNpZ25hdHVyZXM6IGB3cml0ZUNvbmRpdGlvbnNgICh1cGRhdGUvZGVsZXRlKSBidWlsZHMgdGhlIHJlYWQgY2xhdXNlIGZyb20gYVxuICogYmFyZSBgeyBpZCB9YCBmaWx0ZXIgYW5kIGhhcyBub3doZXJlIHRvIHBhc3MgYSB2aWV3ZXIuIEhhbmQtdGhyZWFkaW5nIHRoZVxuICogdmlld2VyIHRocm91Z2ggZXZlcnkgY2FsbCBzaXRlIGlzIHRoZSBhbHRlcm5hdGl2ZSwgYW5kIGl0IGZhaWxzIGluIHByYWN0aWNlIOKAlFxuICogaXQgcHJvZHVjZXMgcGFyYWxsZWwgYGZpbmQqVmlzaWJsZSpgIG1ldGhvZHMgYW5kIHNpbGVudGx5IGRyb3BzIHRoZSB2aWV3ZXIgYXRcbiAqIHdoaWNoZXZlciBjYWxsIHNpdGUgZm9yZ2V0cyBpdCAoYW4gb3JnIG1lbWJlciB0aGVuIHJlYWRzIGEgcm93IGFkZHJlc3NlZCB0b1xuICogc29tZW9uZSBlbHNlKS5cbiAqXG4gKiBTbyB0aGUgdmlld2VyIHRyYXZlbHMgdGhlIHNhbWUgdHJ1c3RlZCwgcmVxdWVzdC1zY29wZWQgY2hhbm5lbCBhcyB0aGUgb3JnXG4gKiBzdGFtcDogYFRlbmFudENvbnRleHRgLCBzZXQgb25jZSBhdCB0aGUgcmVxdWVzdCBib3VuZGFyeSBmcm9tIHRoZSB2YWxpZGF0ZWRcbiAqIEpXVC4gQSBzZXJ2aWNlIG9wdHMgaW4gYnkgc3RhbXBpbmcgaXQgaW4gT05FIHBsYWNlIOKAlCBpdHMgYGJ1aWxkQ29uZGl0aW9uc2BcbiAqIG92ZXJyaWRlLCB3aGljaCBldmVyeSByZWFkIGFuZCB3cml0ZSBmdW5uZWxzIHRocm91Z2gsIGluY2x1ZGluZyBkaXJlY3RcbiAqIGB0aGlzLmJ1aWxkQ29uZGl0aW9ucyguLi4pYCBjYWxscy5cbiAqXG4gKiBGYWlscyBDTE9TRUQgZXZlcnl3aGVyZTogbm8gdGVuYW50IHNjb3BlIChiYWNrZ3JvdW5kIGpvYnMsIG1pZ3JhdGlvbnMsIHRoZVxuICogcmV0ZW50aW9uIHN3ZWVwKSBtZWFucyBubyB2aWV3ZXIsIGFuZCBhIHZpZXdlci1sZXNzIHByZWRpY2F0ZSBtdXN0IG1hdGNoXG4gKiBub3RoaW5nIG9uIHRoZSBwZXItdXNlciBydW5nIHJhdGhlciB0aGFuIG1hdGNoaW5nIGV2ZXJ5dGhpbmcuXG4gKi9cblxuaW1wb3J0IHsgZ2V0VGVuYW50Q29udGV4dCB9IGZyb20gJy4uL2RhdGFiYXNlL3RlbmFuY3kuanMnO1xuXG4vKiogVGhlIHZpZXdlciBmaWVsZHMgYSBwZXItdXNlciBwcmVkaWNhdGUgcmVhZHMgb2ZmIGEgZmlsdGVyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaWV3ZXJTY29wZWRGaWx0ZXIge1xuICAvKiogQ2FsbGVyJ3MgdXNlciBpZC4gQ29tcGFyZWQgYWdhaW5zdCB0aGUgcm93J3MgcGVyLXVzZXIgY29sdW1uLiAqL1xuICByZWFkb25seSB2aWV3ZXJVc2VySWQ/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBjYWxsZXIgaXMgYSBwbGF0Zm9ybSBzdXBlci1hZG1pbiAoc2VlcyBldmVyeSBydW5nKS4gKi9cbiAgcmVhZG9ubHkgdmlld2VySXNTdXBlckFkbWluPzogYm9vbGVhbjtcbn1cblxuLyoqIFRoZSBjdXJyZW50IHJlcXVlc3QncyB1c2VyIGlkLCBvciBgdW5kZWZpbmVkYCBvdXRzaWRlIGEgdGVuYW50IHNjb3BlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGN1cnJlbnRWaWV3ZXJVc2VySWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldFRlbmFudENvbnRleHQoKT8udXNlcklkO1xufVxuXG4vKipcbiAqIFN0YW1wIHRoZSByZXF1ZXN0J3Mgdmlld2VyIGlkZW50aXR5IG9udG8gYSBmaWx0ZXIuXG4gKlxuICogQW4gRVhQTElDSVQgdmFsdWUgb24gdGhlIGZpbHRlciBhbHdheXMgd2lucywgc28gYSBjYWxsZXIgdGhhdCBkZWxpYmVyYXRlbHlcbiAqIHNjb3BlcyB0byBhIHNwZWNpZmljIHVzZXIgKG9yIGEgdGVzdCB0aGF0IGZpeGVzIHRoZSB2aWV3ZXIpIHN0YXlzIGV4cHJlc3NpYmxlO1xuICogdGhlIGNvbnRleHQgb25seSBmaWxscyB3aGF0IHRoZSBjYWxsZXIgbGVmdCBibGFuay5cbiAqXG4gKiBTYWZlIGFnYWluc3QgYENydWRTZXJ2aWNlLnJ1blJlYWRgJ3Mgc3lzYWRtaW4gd2lkZW5pbmcgKHRoZSBwYXJlbnQtb3JnIHJlYWRcbiAqIHBhdGgsIHdoaWNoIHJlLWVudGVycyB0aGUgY29udGV4dCB3aXRoIGBpc1N1cGVyQWRtaW46IHRydWVgKTogY29uZGl0aW9ucyBhcmVcbiAqIGFsd2F5cyBidWlsdCBCRUZPUkUgdGhhdCBzY29wZSBpcyBlbnRlcmVkLCBzbyB0aGUgc3RhbXAgcmVmbGVjdHMgdGhlIHJlYWxcbiAqIGNhbGxlciwgbmV2ZXIgdGhlIHdpZGVuZWQgb25lLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBwcm90ZWN0ZWQgYnVpbGRDb25kaXRpb25zKGZpbHRlciwgb3JnSWQsIHBhcmVudE9yZ0lkKSB7XG4gKiAgIHJldHVybiBidWlsZFhDb25kaXRpb25zKHdpdGhWaWV3ZXJDb250ZXh0KGZpbHRlciksIG9yZ0lkLCBwYXJlbnRPcmdJZCk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhWaWV3ZXJDb250ZXh0PEYgZXh0ZW5kcyBWaWV3ZXJTY29wZWRGaWx0ZXI+KGZpbHRlcjogUGFydGlhbDxGPik6IFBhcnRpYWw8Rj4ge1xuICBjb25zdCBjdHggPSBnZXRUZW5hbnRDb250ZXh0KCk7XG4gIHJldHVybiB7XG4gICAgLi4uZmlsdGVyLFxuICAgIHZpZXdlclVzZXJJZDogZmlsdGVyLnZpZXdlclVzZXJJZCA/PyBjdHg/LnVzZXJJZCxcbiAgICB2aWV3ZXJJc1N1cGVyQWRtaW46IGZpbHRlci52aWV3ZXJJc1N1cGVyQWRtaW4gPz8gY3R4Py5pc1N1cGVyQWRtaW4gPz8gZmFsc2UsXG4gIH07XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { AccessModifier } from '@pipeline-builder/api-core';
1
+ import type { Visibility } from '@pipeline-builder/api-core';
2
2
  /**
3
3
  * Base filter interface containing common filter properties shared across all entity types.
4
4
  *
@@ -7,7 +7,7 @@ import { AccessModifier } from '@pipeline-builder/api-core';
7
7
  * const filter: CommonFilter = {
8
8
  * id: '123',
9
9
  * orgId: 'my-org',
10
- * accessModifier: AccessModifier.PUBLIC,
10
+ * visibility: 'public',
11
11
  * isDefault: true,
12
12
  * isActive: true
13
13
  * };
@@ -19,17 +19,21 @@ export interface CommonFilter {
19
19
  * Can be a single ID or array of IDs for batch filtering
20
20
  */
21
21
  readonly id?: string | string[];
22
+ /** Caller's user id, matched against the entity's per-user column. */
23
+ readonly viewerUserId?: string;
24
+ /** Whether the caller is a platform super-admin (sees every rung). */
25
+ readonly viewerIsSuperAdmin?: boolean;
22
26
  /**
23
27
  * Organization identifier to filter entities by organization
24
28
  * Can be a single org ID or array for multi-org filtering
25
29
  */
26
30
  readonly orgId?: string | string[];
27
31
  /**
28
- * Access modifier to filter by visibility/permissions
29
- * Use AccessModifier enum for type safety
30
- * @see AccessModifier
32
+ * Narrow to one rung of the shared three-rung sharing ladder. Applied WITHIN
33
+ * what the caller can already see — never widens it.
34
+ * @see Visibility
31
35
  */
32
- readonly accessModifier?: AccessModifier | string;
36
+ readonly visibility?: Visibility | string;
33
37
  /**
34
38
  * Filter by default status
35
39
  * - true: Only default entities
@@ -139,9 +143,7 @@ export interface PipelineFilter extends CommonFilter {
139
143
  */
140
144
  readonly keyword?: string;
141
145
  }
142
- /**
143
- * Filter interface for pipeline-template queries (golden-path catalog).
144
- */
146
+ /** Filter interface for pipeline-template queries (golden-path catalog). */
145
147
  export interface PipelineTemplateFilter extends CommonFilter {
146
148
  /** Template name (case-insensitive contains). */
147
149
  readonly name?: string;
@@ -172,17 +174,6 @@ export interface MessageFilter extends CommonFilter {
172
174
  * visibility-scoping variant.
173
175
  */
174
176
  readonly recipientUserId?: string | null;
175
- /**
176
- * The VIEWER's user ID, used purely to scope visibility of per-user targeted
177
- * messages — NOT a column filter. When present, the recipient-side visibility
178
- * branch in `buildMessageConditions` widens to include messages targeted at
179
- * this user (recipient_user_id = viewerUserId) in addition to org-wide ones
180
- * (recipient_user_id IS NULL). When absent, only org-wide recipient messages
181
- * are visible on the recipient side (a user-targeted message stays private to
182
- * its target, the sender, and the system org). This is how the message read
183
- * paths thread the authenticated user through the shared CrudService filter.
184
- */
185
- readonly viewerUserId?: string;
186
177
  /**
187
178
  * Message type filter
188
179
  */
@@ -1,4 +1,4 @@
1
1
  // Copyright 2026 Pipeline Builder Contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- import { AccessModifier } from '@pipeline-builder/api-core';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3F1ZXJ5LWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgQWNjZXNzTW9kaWZpZXIgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5cbi8qKlxuICogQmFzZSBmaWx0ZXIgaW50ZXJmYWNlIGNvbnRhaW5pbmcgY29tbW9uIGZpbHRlciBwcm9wZXJ0aWVzIHNoYXJlZCBhY3Jvc3MgYWxsIGVudGl0eSB0eXBlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZmlsdGVyOiBDb21tb25GaWx0ZXIgPSB7XG4gKiAgIGlkOiAnMTIzJyxcbiAqICAgb3JnSWQ6ICdteS1vcmcnLFxuICogICBhY2Nlc3NNb2RpZmllcjogQWNjZXNzTW9kaWZpZXIuUFVCTElDLFxuICogICBpc0RlZmF1bHQ6IHRydWUsXG4gKiAgIGlzQWN0aXZlOiB0cnVlXG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uRmlsdGVyIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZW50aXR5XG4gICAqIENhbiBiZSBhIHNpbmdsZSBJRCBvciBhcnJheSBvZiBJRHMgZm9yIGJhdGNoIGZpbHRlcmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3JnYW5pemF0aW9uIGlkZW50aWZpZXIgdG8gZmlsdGVyIGVudGl0aWVzIGJ5IG9yZ2FuaXphdGlvblxuICAgKiBDYW4gYmUgYSBzaW5nbGUgb3JnIElEIG9yIGFycmF5IGZvciBtdWx0aS1vcmcgZmlsdGVyaW5nXG4gICAqL1xuICByZWFkb25seSBvcmdJZD86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgbW9kaWZpZXIgdG8gZmlsdGVyIGJ5IHZpc2liaWxpdHkvcGVybWlzc2lvbnNcbiAgICogVXNlIEFjY2Vzc01vZGlmaWVyIGVudW0gZm9yIHR5cGUgc2FmZXR5XG4gICAqIEBzZWUgQWNjZXNzTW9kaWZpZXJcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc01vZGlmaWVyPzogQWNjZXNzTW9kaWZpZXIgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbHRlciBieSBkZWZhdWx0IHN0YXR1c1xuICAgKiAtIHRydWU6IE9ubHkgZGVmYXVsdCBlbnRpdGllc1xuICAgKiAtIGZhbHNlOiBPbmx5IG5vbi1kZWZhdWx0IGVudGl0aWVzXG4gICAqIC0gdW5kZWZpbmVkOiBBbGwgZW50aXRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGlzRGVmYXVsdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZpbHRlciBieSBhY3RpdmUvaW5hY3RpdmUgc3RhdHVzXG4gICAqIC0gdHJ1ZTogT25seSBhY3RpdmUgZW50aXRpZXNcbiAgICogLSBmYWxzZTogT25seSBpbmFjdGl2ZSBlbnRpdGllc1xuICAgKiAtIHVuZGVmaW5lZDogQWxsIGVudGl0aWVzXG4gICAqL1xuICByZWFkb25seSBpc0FjdGl2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiByZXN1bHRzIHRvIHJldHVyblxuICAgKiBAbWluaW11bSAxXG4gICAqIEBtYXhpbXVtIDEwMDBcbiAgICovXG4gIHJlYWRvbmx5IGxpbWl0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgcmVzdWx0cyB0byBza2lwIChmb3IgcGFnaW5hdGlvbilcbiAgICogQG1pbmltdW0gMFxuICAgKi9cbiAgcmVhZG9ubHkgb2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTb3J0IGZpZWxkIGFuZCBkaXJlY3Rpb25cbiAgICogQGV4YW1wbGUgXCJuYW1lOmFzY1wiLCBcImNyZWF0ZWRBdDpkZXNjXCJcbiAgICovXG4gIHJlYWRvbmx5IHNvcnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbHRlciBieSBjYXRhbG9nIG93bmVyIChkZXZlbG9wZXItcG9ydGFsIFwibXkgc2VydmljZXNcIiB2aWV3KS5cbiAgICogTWF0Y2hlcyB0aGUgZW50aXR5J3MgYG93bmVySWRgIGV4YWN0bHkgKGEgdXNlciBpZCBvciB0ZWFtIGlkKS5cbiAgICogT25seSBhcHBsaWVkIGJ5IGJ1aWxkZXJzIGZvciBlbnRpdGllcyB0aGF0IGNhcnJ5IGFuIG93bmVyIGNvbHVtblxuICAgKiAocGlwZWxpbmVzLCBwbHVnaW5zKTsgaWdub3JlZCBlbHNld2hlcmUuXG4gICAqL1xuICByZWFkb25seSBvd25lcklkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGaWx0ZXIgYnkgbGlmZWN5Y2xlIHN0YWdlIChleHBlcmltZW50YWwgfCBwcm9kdWN0aW9uIHwgZGVwcmVjYXRlZCkuXG4gICAqIE9ubHkgYXBwbGllZCBieSBidWlsZGVycyBmb3IgZW50aXRpZXMgdGhhdCBjYXJyeSBhIGxpZmVjeWNsZSBjb2x1bW4uXG4gICAqL1xuICByZWFkb25seSBsaWZlY3ljbGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRmlsdGVyIGludGVyZmFjZSBmb3IgcGx1Z2luLXNwZWNpZmljIHByb3BlcnRpZXMuXG4gKiBFeHRlbmRzIENvbW1vbkZpbHRlciB0byBpbmNsdWRlIHBsdWdpbi1yZWxhdGVkIGZpbHRlciBvcHRpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaWx0ZXI6IFBsdWdpbkZpbHRlciA9IHtcbiAqICAgbmFtZTogJ25vZGVqcy1idWlsZCcsXG4gKiAgIHZlcnNpb246ICcxLjAuMCcsXG4gKiAgIGlzQWN0aXZlOiB0cnVlXG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luRmlsdGVyIGV4dGVuZHMgQ29tbW9uRmlsdGVyIHtcbiAgLyoqXG4gICAqIFBsdWdpbiBuYW1lIHRvIGZpbHRlciBieVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIHZlcnNpb24gdG8gZmlsdGVyIGJ5XG4gICAqIFN1cHBvcnRzIHNlbWFudGljIHZlcnNpb25pbmdcbiAgICogQGV4YW1wbGUgXCIxLjAuMFwiLCBcIl4yLjAuMFwiLCBcIn4xLjIuM1wiXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBLZXl3b3JkIHRvIHNlYXJjaCB3aXRoaW4gdGhlIGtleXdvcmRzIEpTT05CIGFycmF5IChjYXNlLWluc2Vuc2l0aXZlIGNvbnRhaW5zKVxuICAgKi9cbiAgcmVhZG9ubHkga2V5d29yZD86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIGNhdGVnb3J5IHRvIGZpbHRlciBieVxuICAgKiBAZXhhbXBsZSBcImxhbmd1YWdlXCIsIFwic2VjdXJpdHlcIiwgXCJ0ZXN0aW5nXCJcbiAgICovXG4gIHJlYWRvbmx5IGNhdGVnb3J5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEZpbHRlciBpbnRlcmZhY2UgZm9yIHBpcGVsaW5lLXNwZWNpZmljIHByb3BlcnRpZXMuXG4gKiBFeHRlbmRzIENvbW1vbkZpbHRlciB0byBpbmNsdWRlIHBpcGVsaW5lLXJlbGF0ZWQgZmlsdGVyIG9wdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZpbHRlcjogUGlwZWxpbmVGaWx0ZXIgPSB7XG4gKiAgIHByb2plY3Q6ICdteS1hcHAnLFxuICogICBvcmdhbml6YXRpb246ICdteS1vcmcnLFxuICogICBwaXBlbGluZU5hbWU6ICdteS1waXBlbGluZScsXG4gKiAgIGlzQWN0aXZlOiB0cnVlXG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVGaWx0ZXIgZXh0ZW5kcyBDb21tb25GaWx0ZXIge1xuICAvKipcbiAgICogUHJvamVjdCBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGlwZWxpbmVcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9yZ2FuaXphdGlvbiBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGlwZWxpbmVcbiAgICovXG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUgbmFtZSB0byBmaWx0ZXIgYnlcbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogS2V5d29yZCB0byBzZWFyY2ggd2l0aGluIHRoZSBrZXl3b3JkcyBKU09OQiBhcnJheSAoY2FzZS1pbnNlbnNpdGl2ZSBjb250YWlucylcbiAgICovXG4gIHJlYWRvbmx5IGtleXdvcmQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRmlsdGVyIGludGVyZmFjZSBmb3IgcGlwZWxpbmUtdGVtcGxhdGUgcXVlcmllcyAoZ29sZGVuLXBhdGggY2F0YWxvZykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVUZW1wbGF0ZUZpbHRlciBleHRlbmRzIENvbW1vbkZpbHRlciB7XG4gIC8qKiBUZW1wbGF0ZSBuYW1lIChjYXNlLWluc2Vuc2l0aXZlIGNvbnRhaW5zKS4gKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgLyoqIENhdGVnb3J5IHRvIGZpbHRlciBieSAoZS5nLiAnbGFuZ3VhZ2UnLCAnZ2VuZXJhbCcpLiAqL1xuICByZWFkb25seSBjYXRlZ29yeT86IHN0cmluZztcbiAgLyoqIEtleXdvcmQgc2VhcmNoIHdpdGhpbiB0aGUga2V5d29yZHMgSlNPTkIgYXJyYXkuICovXG4gIHJlYWRvbmx5IGtleXdvcmQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRmlsdGVyIGludGVyZmFjZSBmb3IgbWVzc2FnZS1zcGVjaWZpYyBwcm9wZXJ0aWVzLlxuICogRXh0ZW5kcyBDb21tb25GaWx0ZXIgdG8gaW5jbHVkZSBtZXNzYWdlLXJlbGF0ZWQgZmlsdGVyIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUZpbHRlciBleHRlbmRzIENvbW1vbkZpbHRlciB7XG4gIC8qKlxuICAgKiBUaHJlYWQgSUQgdG8gZmlsdGVyIGJ5IChmb3IgZmV0Y2hpbmcgdGhyZWFkIHJlcGxpZXMpLlxuICAgKiBQYXNzIGBudWxsYCB0byBmaWx0ZXIgZm9yIHJvb3QgbWVzc2FnZXMgb25seSAodGhyZWFkSWQgSVMgTlVMTCkuXG4gICAqL1xuICByZWFkb25seSB0aHJlYWRJZD86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFJlY2lwaWVudCBvcmdhbml6YXRpb24gSUQgdG8gZmlsdGVyIGJ5XG4gICAqIFVzZSAnKicgZm9yIGJyb2FkY2FzdCBhbm5vdW5jZW1lbnRzXG4gICAqL1xuICByZWFkb25seSByZWNpcGllbnRPcmdJZD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVjaXBpZW50IHVzZXIgSUQgdG8gZmlsdGVyIGJ5IChwZXItdXNlciB0YXJnZXRpbmcgd2l0aGluIHRoZSByZWNpcGllbnRcbiAgICogb3JnKS4gUGFzcyBgbnVsbGAgdG8gbWF0Y2ggb3JnLXdpZGUgbWVzc2FnZXMgb25seSAocmVjaXBpZW50X3VzZXJfaWQgSVNcbiAgICogTlVMTCkuIFJhcmVseSBzZXQgZGlyZWN0bHkgYnkgY2FsbGVycyDigJQgc2VlIGB2aWV3ZXJVc2VySWRgIGZvciB0aGVcbiAgICogdmlzaWJpbGl0eS1zY29waW5nIHZhcmlhbnQuXG4gICAqL1xuICByZWFkb25seSByZWNpcGllbnRVc2VySWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgVklFV0VSJ3MgdXNlciBJRCwgdXNlZCBwdXJlbHkgdG8gc2NvcGUgdmlzaWJpbGl0eSBvZiBwZXItdXNlciB0YXJnZXRlZFxuICAgKiBtZXNzYWdlcyDigJQgTk9UIGEgY29sdW1uIGZpbHRlci4gV2hlbiBwcmVzZW50LCB0aGUgcmVjaXBpZW50LXNpZGUgdmlzaWJpbGl0eVxuICAgKiBicmFuY2ggaW4gYGJ1aWxkTWVzc2FnZUNvbmRpdGlvbnNgIHdpZGVucyB0byBpbmNsdWRlIG1lc3NhZ2VzIHRhcmdldGVkIGF0XG4gICAqIHRoaXMgdXNlciAocmVjaXBpZW50X3VzZXJfaWQgPSB2aWV3ZXJVc2VySWQpIGluIGFkZGl0aW9uIHRvIG9yZy13aWRlIG9uZXNcbiAgICogKHJlY2lwaWVudF91c2VyX2lkIElTIE5VTEwpLiBXaGVuIGFic2VudCwgb25seSBvcmctd2lkZSByZWNpcGllbnQgbWVzc2FnZXNcbiAgICogYXJlIHZpc2libGUgb24gdGhlIHJlY2lwaWVudCBzaWRlIChhIHVzZXItdGFyZ2V0ZWQgbWVzc2FnZSBzdGF5cyBwcml2YXRlIHRvXG4gICAqIGl0cyB0YXJnZXQsIHRoZSBzZW5kZXIsIGFuZCB0aGUgc3lzdGVtIG9yZykuIFRoaXMgaXMgaG93IHRoZSBtZXNzYWdlIHJlYWRcbiAgICogcGF0aHMgdGhyZWFkIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgdGhyb3VnaCB0aGUgc2hhcmVkIENydWRTZXJ2aWNlIGZpbHRlci5cbiAgICovXG4gIHJlYWRvbmx5IHZpZXdlclVzZXJJZD86IHN0cmluZztcblxuICAvKipcbiAgICogTWVzc2FnZSB0eXBlIGZpbHRlclxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZVR5cGU/OiAnYW5ub3VuY2VtZW50JyB8ICdjb252ZXJzYXRpb24nO1xuXG4gIC8qKlxuICAgKiBGaWx0ZXIgYnkgcHJpb3JpdHkgbGV2ZWxcbiAgICovXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogJ25vcm1hbCcgfCAnaGlnaCcgfCAndXJnZW50JztcblxuICAvKipcbiAgICogQ2hhbm5lbC9pbmJveC1idWNrZXQgZmlsdGVyIChlLmcuICdzdXBwb3J0JywgJ2hlbHAnKS4gTWF0Y2hlcyByb3dzXG4gICAqIGV4YWN0bHk7IHBhc3MgbnVsbCB0byBtYXRjaCBjaGFubmVsIElTIE5VTEwgKG9yZy10by1vcmcgbWVzc2FnZXMpLlxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbm5lbD86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEZpbHRlciBieSByZWFkIHN0YXRlIGZvciB0aGUgcmVxdWVzdGluZyBvcmcuXG4gICAqIEltcGxlbWVudGVkIGFzIGEgSlNPTkIga2V5LWV4aXN0ZW5jZSBjaGVjayBhZ2FpbnN0IGBtZXNzYWdlcy5yZWFkX2J5YFxuICAgKiAoYSBgeyBbb3JnSWRdOiBpc29UaW1lc3RhbXAgfWAgbWFwKSwgdXNpbmcgdGhlIG9yZ0lkIHBhc3NlZCB0b1xuICAgKiBgYnVpbGRNZXNzYWdlQ29uZGl0aW9uc2AuXG4gICAqIC0gdHJ1ZSAg4oaSIG9ubHkgbWVzc2FnZXMgdGhlIG9yZyBoYXMgcmVhZCAob3JnSWQga2V5IGV4aXN0cyBpbiByZWFkX2J5KVxuICAgKiAtIGZhbHNlIOKGkiBvbmx5IG1lc3NhZ2VzIHRoZSBvcmcgaGFzIE5PVCByZWFkXG4gICAqIC0gdW5kZWZpbmVkIOKGkiBubyByZWFkLXN0YXRlIGZpbHRlclxuICAgKi9cbiAgcmVhZG9ubHkgaXNSZWFkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRnJlZS10ZXh0IGluYm94IHNlYXJjaC4gQ2FzZS1pbnNlbnNpdGl2ZSBzdWJzdHJpbmcgbWF0Y2ggYWdhaW5zdCB0aGVcbiAgICogbWVzc2FnZSBgc3ViamVjdGAgT1IgYGNvbnRlbnRgIChMSUtFIHdpbGRjYXJkcyBpbiB0aGUgdGVybSBhcmUgZXNjYXBlZCwgc28gYVxuICAgKiBsaXRlcmFsIGAlYC9gX2AgbWF0Y2hlcyBpdHNlbGYpLiBBcHBsaWVkIG9uIHRvcCBvZiB0aGUgdmlzaWJpbGl0eSBzY29wZSwgc29cbiAgICogaXQgbmV2ZXIgd2lkZW5zIHdoYXQgdGhlIGNhbGxlciBjYW4gc2VlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VhcmNoPzogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb21wbGlhbmNlIEZpbHRlcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBGaWx0ZXIgZm9yIGNvbXBsaWFuY2UgcG9saWNpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxpYW5jZVBvbGljeUZpbHRlciBleHRlbmRzIENvbW1vbkZpbHRlciB7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzVGVtcGxhdGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEZpbHRlciBmb3IgY29tcGxpYW5jZSBydWxlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wbGlhbmNlUnVsZUZpbHRlciBleHRlbmRzIENvbW1vbkZpbHRlciB7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBvbGljeUlkPzogc3RyaW5nO1xuICByZWFkb25seSB0YXJnZXQ/OiAncGx1Z2luJyB8ICdwaXBlbGluZSc7XG4gIHJlYWRvbmx5IGZpZWxkPzogc3RyaW5nO1xuICByZWFkb25seSBzZXZlcml0eT86ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnY3JpdGljYWwnO1xuICByZWFkb25seSBzY29wZT86ICdvcmcnIHwgJ3B1Ymxpc2hlZCc7XG4gIHJlYWRvbmx5IHRhZz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBGaWx0ZXIgZm9yIGNvbXBsaWFuY2UgZXhlbXB0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wbGlhbmNlRXhlbXB0aW9uRmlsdGVyIHtcbiAgcmVhZG9ubHkgb3JnSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJ1bGVJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgZW50aXR5VHlwZT86ICdwbHVnaW4nIHwgJ3BpcGVsaW5lJztcbiAgcmVhZG9ubHkgZW50aXR5SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YXR1cz86ICdwZW5kaW5nJyB8ICdhcHByb3ZlZCcgfCAncmVqZWN0ZWQnIHwgJ2V4cGlyZWQnO1xuICByZWFkb25seSBsaW1pdD86IG51bWJlcjtcbiAgcmVhZG9ubHkgb2Zmc2V0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEZpbHRlciBmb3IgY29tcGxpYW5jZSBhdWRpdCBsb2cgZW50cmllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wbGlhbmNlQXVkaXRGaWx0ZXIge1xuICByZWFkb25seSBvcmdJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdGFyZ2V0PzogJ3BsdWdpbicgfCAncGlwZWxpbmUnO1xuICByZWFkb25seSBhY3Rpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlc3VsdD86ICdwYXNzJyB8ICd3YXJuJyB8ICdibG9jayc7XG4gIHJlYWRvbmx5IHNjYW5JZD86IHN0cmluZztcbiAgcmVhZG9ubHkgZGF0ZUZyb20/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRhdGVUbz86IHN0cmluZztcbiAgcmVhZG9ubHkgbGltaXQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG9mZnNldD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBGaWx0ZXIgZm9yIGNvbXBsaWFuY2Ugc2NhbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxpYW5jZVNjYW5GaWx0ZXIge1xuICByZWFkb25seSBvcmdJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdGFyZ2V0PzogJ3BsdWdpbicgfCAncGlwZWxpbmUnIHwgJ2FsbCc7XG4gIHJlYWRvbmx5IHN0YXR1cz86ICdwZW5kaW5nJyB8ICdydW5uaW5nJyB8ICdjb21wbGV0ZWQnIHwgJ2ZhaWxlZCcgfCAnY2FuY2VsbGVkJztcbiAgcmVhZG9ubHkgdHJpZ2dlcmVkQnk/OiAnbWFudWFsJyB8ICdzY2hlZHVsZWQnIHwgJ3J1bGUtY2hhbmdlJyB8ICdydWxlLWRyeS1ydW4nO1xuICByZWFkb25seSBsaW1pdD86IG51bWJlcjtcbiAgcmVhZG9ubHkgb2Zmc2V0PzogbnVtYmVyO1xufVxuIl19
3
+ export {};
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3F1ZXJ5LWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgdHlwZSB7IFZpc2liaWxpdHkgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5cbi8qKlxuICogQmFzZSBmaWx0ZXIgaW50ZXJmYWNlIGNvbnRhaW5pbmcgY29tbW9uIGZpbHRlciBwcm9wZXJ0aWVzIHNoYXJlZCBhY3Jvc3MgYWxsIGVudGl0eSB0eXBlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZmlsdGVyOiBDb21tb25GaWx0ZXIgPSB7XG4gKiAgIGlkOiAnMTIzJyxcbiAqICAgb3JnSWQ6ICdteS1vcmcnLFxuICogICB2aXNpYmlsaXR5OiAncHVibGljJyxcbiAqICAgaXNEZWZhdWx0OiB0cnVlLFxuICogICBpc0FjdGl2ZTogdHJ1ZVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbW1vbkZpbHRlciB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGVudGl0eVxuICAgKiBDYW4gYmUgYSBzaW5nbGUgSUQgb3IgYXJyYXkgb2YgSURzIGZvciBiYXRjaCBmaWx0ZXJpbmdcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLy8gLS0tIFZpZXdlciBjb250ZXh0IChzZXJ2ZXItc2V0LCBORVZFUiBjbGllbnQtc3VwcGxpZWQpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBPbmx5IGVudGl0aWVzIHdob3NlIHZpc2liaWxpdHkgcHJlZGljYXRlIGhhcyBhIFBFUi1VU0VSIHJ1bmcgcmVhZCB0aGVzZSDigJRcbiAgLy8gcGlwZWxpbmUgdGVtcGxhdGVzIChgcHJpdmF0ZWAgaXMgYXV0aG9yLW9ubHkpIGFuZCBtZXNzYWdlcyAoYSBwZXItdXNlclxuICAvLyB0YXJnZXRlZCByb3cgaXMgdmlzaWJsZSBvbmx5IHRvIGl0cyB0YXJnZXQpLiBUaGVpciBzZXJ2aWNlcyBzdGFtcCB0aGVtIGZyb21cbiAgLy8gdGhlIHJlcXVlc3QncyBgVGVuYW50Q29udGV4dGAgdmlhIGB3aXRoVmlld2VyQ29udGV4dGAsIHNvIG5vIHJvdXRlIG9yIHF1ZXJ5XG4gIC8vIHN0cmluZyBjYW4gaW5qZWN0IHRoZW0uIEV2ZXJ5dGhpbmcgZWxzZSBpZ25vcmVzIHRoZW0uXG4gIC8vXG4gIC8vIEJvdGggZmFpbCBDTE9TRUQgd2hlbiBhYnNlbnQ6IG5vIHZpZXdlciBtZWFucyB0aGUgcGVyLXVzZXIgcnVuZyBtYXRjaGVzXG4gIC8vIE5PVEhJTkcsIG5ldmVyIGV2ZXJ5dGhpbmcuXG5cbiAgLyoqIENhbGxlcidzIHVzZXIgaWQsIG1hdGNoZWQgYWdhaW5zdCB0aGUgZW50aXR5J3MgcGVyLXVzZXIgY29sdW1uLiAqL1xuICByZWFkb25seSB2aWV3ZXJVc2VySWQ/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBjYWxsZXIgaXMgYSBwbGF0Zm9ybSBzdXBlci1hZG1pbiAoc2VlcyBldmVyeSBydW5nKS4gKi9cbiAgcmVhZG9ubHkgdmlld2VySXNTdXBlckFkbWluPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3JnYW5pemF0aW9uIGlkZW50aWZpZXIgdG8gZmlsdGVyIGVudGl0aWVzIGJ5IG9yZ2FuaXphdGlvblxuICAgKiBDYW4gYmUgYSBzaW5nbGUgb3JnIElEIG9yIGFycmF5IGZvciBtdWx0aS1vcmcgZmlsdGVyaW5nXG4gICAqL1xuICByZWFkb25seSBvcmdJZD86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYXJyb3cgdG8gb25lIHJ1bmcgb2YgdGhlIHNoYXJlZCB0aHJlZS1ydW5nIHNoYXJpbmcgbGFkZGVyLiBBcHBsaWVkIFdJVEhJTlxuICAgKiB3aGF0IHRoZSBjYWxsZXIgY2FuIGFscmVhZHkgc2VlIOKAlCBuZXZlciB3aWRlbnMgaXQuXG4gICAqIEBzZWUgVmlzaWJpbGl0eVxuICAgKi9cbiAgcmVhZG9ubHkgdmlzaWJpbGl0eT86IFZpc2liaWxpdHkgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbHRlciBieSBkZWZhdWx0IHN0YXR1c1xuICAgKiAtIHRydWU6IE9ubHkgZGVmYXVsdCBlbnRpdGllc1xuICAgKiAtIGZhbHNlOiBPbmx5IG5vbi1kZWZhdWx0IGVudGl0aWVzXG4gICAqIC0gdW5kZWZpbmVkOiBBbGwgZW50aXRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGlzRGVmYXVsdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZpbHRlciBieSBhY3RpdmUvaW5hY3RpdmUgc3RhdHVzXG4gICAqIC0gdHJ1ZTogT25seSBhY3RpdmUgZW50aXRpZXNcbiAgICogLSBmYWxzZTogT25seSBpbmFjdGl2ZSBlbnRpdGllc1xuICAgKiAtIHVuZGVmaW5lZDogQWxsIGVudGl0aWVzXG4gICAqL1xuICByZWFkb25seSBpc0FjdGl2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiByZXN1bHRzIHRvIHJldHVyblxuICAgKiBAbWluaW11bSAxXG4gICAqIEBtYXhpbXVtIDEwMDBcbiAgICovXG4gIHJlYWRvbmx5IGxpbWl0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgcmVzdWx0cyB0byBza2lwIChmb3IgcGFnaW5hdGlvbilcbiAgICogQG1pbmltdW0gMFxuICAgKi9cbiAgcmVhZG9ubHkgb2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTb3J0IGZpZWxkIGFuZCBkaXJlY3Rpb25cbiAgICogQGV4YW1wbGUgXCJuYW1lOmFzY1wiLCBcImNyZWF0ZWRBdDpkZXNjXCJcbiAgICovXG4gIHJlYWRvbmx5IHNvcnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbHRlciBieSBjYXRhbG9nIG93bmVyIChkZXZlbG9wZXItcG9ydGFsIFwibXkgc2VydmljZXNcIiB2aWV3KS5cbiAgICogTWF0Y2hlcyB0aGUgZW50aXR5J3MgYG93bmVySWRgIGV4YWN0bHkgKGEgdXNlciBpZCBvciB0ZWFtIGlkKS5cbiAgICogT25seSBhcHBsaWVkIGJ5IGJ1aWxkZXJzIGZvciBlbnRpdGllcyB0aGF0IGNhcnJ5IGFuIG93bmVyIGNvbHVtblxuICAgKiAocGlwZWxpbmVzLCBwbHVnaW5zKTsgaWdub3JlZCBlbHNld2hlcmUuXG4gICAqL1xuICByZWFkb25seSBvd25lcklkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGaWx0ZXIgYnkgbGlmZWN5Y2xlIHN0YWdlIChleHBlcmltZW50YWwgfCBwcm9kdWN0aW9uIHwgZGVwcmVjYXRlZCkuXG4gICAqIE9ubHkgYXBwbGllZCBieSBidWlsZGVycyBmb3IgZW50aXRpZXMgdGhhdCBjYXJyeSBhIGxpZmVjeWNsZSBjb2x1bW4uXG4gICAqL1xuICByZWFkb25seSBsaWZlY3ljbGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRmlsdGVyIGludGVyZmFjZSBmb3IgcGx1Z2luLXNwZWNpZmljIHByb3BlcnRpZXMuXG4gKiBFeHRlbmRzIENvbW1vbkZpbHRlciB0byBpbmNsdWRlIHBsdWdpbi1yZWxhdGVkIGZpbHRlciBvcHRpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaWx0ZXI6IFBsdWdpbkZpbHRlciA9IHtcbiAqICAgbmFtZTogJ25vZGVqcy1idWlsZCcsXG4gKiAgIHZlcnNpb246ICcxLjAuMCcsXG4gKiAgIGlzQWN0aXZlOiB0cnVlXG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luRmlsdGVyIGV4dGVuZHMgQ29tbW9uRmlsdGVyIHtcbiAgLyoqXG4gICAqIFBsdWdpbiBuYW1lIHRvIGZpbHRlciBieVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIHZlcnNpb24gdG8gZmlsdGVyIGJ5XG4gICAqIFN1cHBvcnRzIHNlbWFudGljIHZlcnNpb25pbmdcbiAgICogQGV4YW1wbGUgXCIxLjAuMFwiLCBcIl4yLjAuMFwiLCBcIn4xLjIuM1wiXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBLZXl3b3JkIHRvIHNlYXJjaCB3aXRoaW4gdGhlIGtleXdvcmRzIEpTT05CIGFycmF5IChjYXNlLWluc2Vuc2l0aXZlIGNvbnRhaW5zKVxuICAgKi9cbiAgcmVhZG9ubHkga2V5d29yZD86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIGNhdGVnb3J5IHRvIGZpbHRlciBieVxuICAgKiBAZXhhbXBsZSBcImxhbmd1YWdlXCIsIFwic2VjdXJpdHlcIiwgXCJ0ZXN0aW5nXCJcbiAgICovXG4gIHJlYWRvbmx5IGNhdGVnb3J5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEZpbHRlciBpbnRlcmZhY2UgZm9yIHBpcGVsaW5lLXNwZWNpZmljIHByb3BlcnRpZXMuXG4gKiBFeHRlbmRzIENvbW1vbkZpbHRlciB0byBpbmNsdWRlIHBpcGVsaW5lLXJlbGF0ZWQgZmlsdGVyIG9wdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZpbHRlcjogUGlwZWxpbmVGaWx0ZXIgPSB7XG4gKiAgIHByb2plY3Q6ICdteS1hcHAnLFxuICogICBvcmdhbml6YXRpb246ICdteS1vcmcnLFxuICogICBwaXBlbGluZU5hbWU6ICdteS1waXBlbGluZScsXG4gKiAgIGlzQWN0aXZlOiB0cnVlXG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVGaWx0ZXIgZXh0ZW5kcyBDb21tb25GaWx0ZXIge1xuICAvKipcbiAgICogUHJvamVjdCBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGlwZWxpbmVcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9yZ2FuaXphdGlvbiBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGlwZWxpbmVcbiAgICovXG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUgbmFtZSB0byBmaWx0ZXIgYnlcbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogS2V5d29yZCB0byBzZWFyY2ggd2l0aGluIHRoZSBrZXl3b3JkcyBKU09OQiBhcnJheSAoY2FzZS1pbnNlbnNpdGl2ZSBjb250YWlucylcbiAgICovXG4gIHJlYWRvbmx5IGtleXdvcmQ/OiBzdHJpbmc7XG59XG5cbi8qKiBGaWx0ZXIgaW50ZXJmYWNlIGZvciBwaXBlbGluZS10ZW1wbGF0ZSBxdWVyaWVzIChnb2xkZW4tcGF0aCBjYXRhbG9nKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVUZW1wbGF0ZUZpbHRlciBleHRlbmRzIENvbW1vbkZpbHRlciB7XG4gIC8qKiBUZW1wbGF0ZSBuYW1lIChjYXNlLWluc2Vuc2l0aXZlIGNvbnRhaW5zKS4gKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgLyoqIENhdGVnb3J5IHRvIGZpbHRlciBieSAoZS5nLiAnbGFuZ3VhZ2UnLCAnZ2VuZXJhbCcpLiAqL1xuICByZWFkb25seSBjYXRlZ29yeT86IHN0cmluZztcbiAgLyoqIEtleXdvcmQgc2VhcmNoIHdpdGhpbiB0aGUga2V5d29yZHMgSlNPTkIgYXJyYXkuICovXG4gIHJlYWRvbmx5IGtleXdvcmQ/OiBzdHJpbmc7XG4gIC8vIFNoYXJpbmcgcnVuZyArIHZpZXdlciBjb250ZXh0IGFyZSBpbmhlcml0ZWQgZnJvbSBDb21tb25GaWx0ZXIuXG59XG5cbi8qKlxuICogRmlsdGVyIGludGVyZmFjZSBmb3IgbWVzc2FnZS1zcGVjaWZpYyBwcm9wZXJ0aWVzLlxuICogRXh0ZW5kcyBDb21tb25GaWx0ZXIgdG8gaW5jbHVkZSBtZXNzYWdlLXJlbGF0ZWQgZmlsdGVyIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUZpbHRlciBleHRlbmRzIENvbW1vbkZpbHRlciB7XG4gIC8qKlxuICAgKiBUaHJlYWQgSUQgdG8gZmlsdGVyIGJ5IChmb3IgZmV0Y2hpbmcgdGhyZWFkIHJlcGxpZXMpLlxuICAgKiBQYXNzIGBudWxsYCB0byBmaWx0ZXIgZm9yIHJvb3QgbWVzc2FnZXMgb25seSAodGhyZWFkSWQgSVMgTlVMTCkuXG4gICAqL1xuICByZWFkb25seSB0aHJlYWRJZD86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFJlY2lwaWVudCBvcmdhbml6YXRpb24gSUQgdG8gZmlsdGVyIGJ5XG4gICAqIFVzZSAnKicgZm9yIGJyb2FkY2FzdCBhbm5vdW5jZW1lbnRzXG4gICAqL1xuICByZWFkb25seSByZWNpcGllbnRPcmdJZD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVjaXBpZW50IHVzZXIgSUQgdG8gZmlsdGVyIGJ5IChwZXItdXNlciB0YXJnZXRpbmcgd2l0aGluIHRoZSByZWNpcGllbnRcbiAgICogb3JnKS4gUGFzcyBgbnVsbGAgdG8gbWF0Y2ggb3JnLXdpZGUgbWVzc2FnZXMgb25seSAocmVjaXBpZW50X3VzZXJfaWQgSVNcbiAgICogTlVMTCkuIFJhcmVseSBzZXQgZGlyZWN0bHkgYnkgY2FsbGVycyDigJQgc2VlIGB2aWV3ZXJVc2VySWRgIGZvciB0aGVcbiAgICogdmlzaWJpbGl0eS1zY29waW5nIHZhcmlhbnQuXG4gICAqL1xuICByZWFkb25seSByZWNpcGllbnRVc2VySWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8vIE5PVEU6IHRoZSBWSUVXRVIncyB1c2VyIGlkIChgdmlld2VyVXNlcklkYCkgaXMgaW5oZXJpdGVkIGZyb20gQ29tbW9uRmlsdGVyLlxuICAvLyBGb3IgbWVzc2FnZXMgaXQgaXMgTk9UIGEgY29sdW1uIGZpbHRlcjogd2hlbiBwcmVzZW50LCB0aGUgcmVjaXBpZW50LXNpZGVcbiAgLy8gYnJhbmNoIGluIGBidWlsZE1lc3NhZ2VDb25kaXRpb25zYCB3aWRlbnMgdG8gaW5jbHVkZSByb3dzIHRhcmdldGVkIGF0IHRoaXNcbiAgLy8gdXNlciAocmVjaXBpZW50X3VzZXJfaWQgPSB2aWV3ZXJVc2VySWQpIEFMT05HU0lERSBvcmctd2lkZSBvbmVzXG4gIC8vIChyZWNpcGllbnRfdXNlcl9pZCBJUyBOVUxMKS4gV2hlbiBhYnNlbnQsIG9ubHkgb3JnLXdpZGUgcmVjaXBpZW50IHJvd3MgYXJlXG4gIC8vIHZpc2libGUsIHNvIGEgdXNlci10YXJnZXRlZCBtZXNzYWdlIHN0YXlzIHByaXZhdGUgdG8gaXRzIHRhcmdldCwgdGhlIHNlbmRlcixcbiAgLy8gYW5kIHRoZSBzeXN0ZW0gb3JnLiBNZXNzYWdlU2VydmljZSBzdGFtcHMgaXQgZnJvbSB0aGUgdGVuYW50IGNvbnRleHQuXG5cbiAgLyoqXG4gICAqIE1lc3NhZ2UgdHlwZSBmaWx0ZXJcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2VUeXBlPzogJ2Fubm91bmNlbWVudCcgfCAnY29udmVyc2F0aW9uJztcblxuICAvKipcbiAgICogRmlsdGVyIGJ5IHByaW9yaXR5IGxldmVsXG4gICAqL1xuICByZWFkb25seSBwcmlvcml0eT86ICdub3JtYWwnIHwgJ2hpZ2gnIHwgJ3VyZ2VudCc7XG5cbiAgLyoqXG4gICAqIENoYW5uZWwvaW5ib3gtYnVja2V0IGZpbHRlciAoZS5nLiAnc3VwcG9ydCcsICdoZWxwJykuIE1hdGNoZXMgcm93c1xuICAgKiBleGFjdGx5OyBwYXNzIG51bGwgdG8gbWF0Y2ggY2hhbm5lbCBJUyBOVUxMIChvcmctdG8tb3JnIG1lc3NhZ2VzKS5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5uZWw/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBGaWx0ZXIgYnkgcmVhZCBzdGF0ZSBmb3IgdGhlIHJlcXVlc3Rpbmcgb3JnLlxuICAgKiBJbXBsZW1lbnRlZCBhcyBhIEpTT05CIGtleS1leGlzdGVuY2UgY2hlY2sgYWdhaW5zdCBgbWVzc2FnZXMucmVhZF9ieWBcbiAgICogKGEgYHsgW29yZ0lkXTogaXNvVGltZXN0YW1wIH1gIG1hcCksIHVzaW5nIHRoZSBvcmdJZCBwYXNzZWQgdG9cbiAgICogYGJ1aWxkTWVzc2FnZUNvbmRpdGlvbnNgLlxuICAgKiAtIHRydWUgIOKGkiBvbmx5IG1lc3NhZ2VzIHRoZSBvcmcgaGFzIHJlYWQgKG9yZ0lkIGtleSBleGlzdHMgaW4gcmVhZF9ieSlcbiAgICogLSBmYWxzZSDihpIgb25seSBtZXNzYWdlcyB0aGUgb3JnIGhhcyBOT1QgcmVhZFxuICAgKiAtIHVuZGVmaW5lZCDihpIgbm8gcmVhZC1zdGF0ZSBmaWx0ZXJcbiAgICovXG4gIHJlYWRvbmx5IGlzUmVhZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZyZWUtdGV4dCBpbmJveCBzZWFyY2guIENhc2UtaW5zZW5zaXRpdmUgc3Vic3RyaW5nIG1hdGNoIGFnYWluc3QgdGhlXG4gICAqIG1lc3NhZ2UgYHN1YmplY3RgIE9SIGBjb250ZW50YCAoTElLRSB3aWxkY2FyZHMgaW4gdGhlIHRlcm0gYXJlIGVzY2FwZWQsIHNvIGFcbiAgICogbGl0ZXJhbCBgJWAvYF9gIG1hdGNoZXMgaXRzZWxmKS4gQXBwbGllZCBvbiB0b3Agb2YgdGhlIHZpc2liaWxpdHkgc2NvcGUsIHNvXG4gICAqIGl0IG5ldmVyIHdpZGVucyB3aGF0IHRoZSBjYWxsZXIgY2FuIHNlZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlYXJjaD86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29tcGxpYW5jZSBGaWx0ZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRmlsdGVyIGZvciBjb21wbGlhbmNlIHBvbGljaWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsaWFuY2VQb2xpY3lGaWx0ZXIgZXh0ZW5kcyBDb21tb25GaWx0ZXIge1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBpc1RlbXBsYXRlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBGaWx0ZXIgZm9yIGNvbXBsaWFuY2UgcnVsZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxpYW5jZVJ1bGVGaWx0ZXIgZXh0ZW5kcyBDb21tb25GaWx0ZXIge1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBwb2xpY3lJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdGFyZ2V0PzogJ3BsdWdpbicgfCAncGlwZWxpbmUnO1xuICByZWFkb25seSBmaWVsZD86IHN0cmluZztcbiAgcmVhZG9ubHkgc2V2ZXJpdHk/OiAnd2FybmluZycgfCAnZXJyb3InIHwgJ2NyaXRpY2FsJztcbiAgcmVhZG9ubHkgc2NvcGU/OiAnb3JnJyB8ICdwdWJsaXNoZWQnO1xuICByZWFkb25seSB0YWc/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRmlsdGVyIGZvciBjb21wbGlhbmNlIGV4ZW1wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxpYW5jZUV4ZW1wdGlvbkZpbHRlciB7XG4gIHJlYWRvbmx5IG9yZ0lkPzogc3RyaW5nO1xuICByZWFkb25seSBydWxlSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVudGl0eVR5cGU/OiAncGx1Z2luJyB8ICdwaXBlbGluZSc7XG4gIHJlYWRvbmx5IGVudGl0eUlkPzogc3RyaW5nO1xuICByZWFkb25seSBzdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJyB8ICdleHBpcmVkJztcbiAgcmVhZG9ubHkgbGltaXQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG9mZnNldD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBGaWx0ZXIgZm9yIGNvbXBsaWFuY2UgYXVkaXQgbG9nIGVudHJpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxpYW5jZUF1ZGl0RmlsdGVyIHtcbiAgcmVhZG9ubHkgb3JnSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhcmdldD86ICdwbHVnaW4nIHwgJ3BpcGVsaW5lJztcbiAgcmVhZG9ubHkgYWN0aW9uPzogc3RyaW5nO1xuICByZWFkb25seSByZXN1bHQ/OiAncGFzcycgfCAnd2FybicgfCAnYmxvY2snO1xuICByZWFkb25seSBzY2FuSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRhdGVGcm9tPzogc3RyaW5nO1xuICByZWFkb25seSBkYXRlVG8/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxpbWl0PzogbnVtYmVyO1xuICByZWFkb25seSBvZmZzZXQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogRmlsdGVyIGZvciBjb21wbGlhbmNlIHNjYW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsaWFuY2VTY2FuRmlsdGVyIHtcbiAgcmVhZG9ubHkgb3JnSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhcmdldD86ICdwbHVnaW4nIHwgJ3BpcGVsaW5lJyB8ICdhbGwnO1xuICByZWFkb25seSBzdGF0dXM/OiAncGVuZGluZycgfCAncnVubmluZycgfCAnY29tcGxldGVkJyB8ICdmYWlsZWQnIHwgJ2NhbmNlbGxlZCc7XG4gIHJlYWRvbmx5IHRyaWdnZXJlZEJ5PzogJ21hbnVhbCcgfCAnc2NoZWR1bGVkJyB8ICdydWxlLWNoYW5nZScgfCAncnVsZS1kcnktcnVuJztcbiAgcmVhZG9ubHkgbGltaXQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG9mZnNldD86IG51bWJlcjtcbn1cbiJdfQ==
@@ -620,12 +620,12 @@ export declare const schema: {
620
620
  }, {}, {
621
621
  $type: import("@pipeline-builder/api-core").EntityLink[];
622
622
  }>;
623
- accessModifier: import("drizzle-orm/pg-core").PgColumn<{
624
- name: "access_modifier";
623
+ visibility: import("drizzle-orm/pg-core").PgColumn<{
624
+ name: "visibility";
625
625
  tableName: "plugins";
626
626
  dataType: "string";
627
627
  columnType: "PgVarchar";
628
- data: import("@pipeline-builder/api-core").AccessModifier;
628
+ data: "org" | "private" | "public";
629
629
  driverParam: string;
630
630
  notNull: true;
631
631
  hasDefault: true;
@@ -638,7 +638,7 @@ export declare const schema: {
638
638
  generated: undefined;
639
639
  }, {}, {
640
640
  length: 10;
641
- $type: import("@pipeline-builder/api-core").AccessModifier;
641
+ $type: "org" | "private" | "public";
642
642
  }>;
643
643
  isDefault: import("drizzle-orm/pg-core").PgColumn<{
644
644
  name: "is_default";
@@ -1063,12 +1063,12 @@ export declare const schema: {
1063
1063
  }, {}, {
1064
1064
  $type: import("@pipeline-builder/api-core").EntityLink[];
1065
1065
  }>;
1066
- accessModifier: import("drizzle-orm/pg-core").PgColumn<{
1067
- name: "access_modifier";
1066
+ visibility: import("drizzle-orm/pg-core").PgColumn<{
1067
+ name: "visibility";
1068
1068
  tableName: "pipelines";
1069
1069
  dataType: "string";
1070
1070
  columnType: "PgVarchar";
1071
- data: import("@pipeline-builder/api-core").AccessModifier;
1071
+ data: "org" | "private" | "public";
1072
1072
  driverParam: string;
1073
1073
  notNull: true;
1074
1074
  hasDefault: true;
@@ -1081,7 +1081,7 @@ export declare const schema: {
1081
1081
  generated: undefined;
1082
1082
  }, {}, {
1083
1083
  length: 10;
1084
- $type: import("@pipeline-builder/api-core").AccessModifier;
1084
+ $type: "org" | "private" | "public";
1085
1085
  }>;
1086
1086
  isDefault: import("drizzle-orm/pg-core").PgColumn<{
1087
1087
  name: "is_default";
@@ -1506,12 +1506,12 @@ export declare const schema: {
1506
1506
  }, {}, {
1507
1507
  $type: import("@pipeline-builder/api-core").EntityLink[];
1508
1508
  }>;
1509
- accessModifier: import("drizzle-orm/pg-core").PgColumn<{
1510
- name: "access_modifier";
1509
+ visibility: import("drizzle-orm/pg-core").PgColumn<{
1510
+ name: "visibility";
1511
1511
  tableName: "pipeline_templates";
1512
1512
  dataType: "string";
1513
1513
  columnType: "PgVarchar";
1514
- data: import("@pipeline-builder/api-core").AccessModifier;
1514
+ data: "org" | "private" | "public";
1515
1515
  driverParam: string;
1516
1516
  notNull: true;
1517
1517
  hasDefault: true;
@@ -1524,7 +1524,7 @@ export declare const schema: {
1524
1524
  generated: undefined;
1525
1525
  }, {}, {
1526
1526
  length: 10;
1527
- $type: import("@pipeline-builder/api-core").AccessModifier;
1527
+ $type: "org" | "private" | "public";
1528
1528
  }>;
1529
1529
  isDefault: import("drizzle-orm/pg-core").PgColumn<{
1530
1530
  name: "is_default";
@@ -1908,26 +1908,6 @@ export declare const schema: {
1908
1908
  length: 20;
1909
1909
  $type: import("./schema/message.js").MessagePriority;
1910
1910
  }>;
1911
- accessModifier: import("drizzle-orm/pg-core").PgColumn<{
1912
- name: "access_modifier";
1913
- tableName: "messages";
1914
- dataType: "string";
1915
- columnType: "PgVarchar";
1916
- data: import("@pipeline-builder/api-core").AccessModifier;
1917
- driverParam: string;
1918
- notNull: true;
1919
- hasDefault: true;
1920
- isPrimaryKey: false;
1921
- isAutoincrement: false;
1922
- hasRuntimeDefault: false;
1923
- enumValues: [string, ...string[]];
1924
- baseColumn: never;
1925
- identity: undefined;
1926
- generated: undefined;
1927
- }, {}, {
1928
- length: 10;
1929
- $type: import("@pipeline-builder/api-core").AccessModifier;
1930
- }>;
1931
1911
  isDefault: import("drizzle-orm/pg-core").PgColumn<{
1932
1912
  name: "is_default";
1933
1913
  tableName: "messages";
@@ -3653,25 +3633,6 @@ export declare const schema: {
3653
3633
  identity: undefined;
3654
3634
  generated: undefined;
3655
3635
  }, {}, {}>;
3656
- vars: import("drizzle-orm/pg-core").PgColumn<{
3657
- name: "vars";
3658
- tableName: "dashboard_panels";
3659
- dataType: "json";
3660
- columnType: "PgJsonb";
3661
- data: Record<string, string>;
3662
- driverParam: unknown;
3663
- notNull: true;
3664
- hasDefault: true;
3665
- isPrimaryKey: false;
3666
- isAutoincrement: false;
3667
- hasRuntimeDefault: false;
3668
- enumValues: undefined;
3669
- baseColumn: never;
3670
- identity: undefined;
3671
- generated: undefined;
3672
- }, {}, {
3673
- $type: Record<string, string>;
3674
- }>;
3675
3636
  };
3676
3637
  dialect: 'pg';
3677
3638
  }>;
@@ -4398,26 +4359,6 @@ export declare const schema: {
4398
4359
  identity: undefined;
4399
4360
  generated: undefined;
4400
4361
  }, {}, {}>;
4401
- accessModifier: import("drizzle-orm/pg-core").PgColumn<{
4402
- name: "access_modifier";
4403
- tableName: "compliance_policies";
4404
- dataType: "string";
4405
- columnType: "PgVarchar";
4406
- data: import("@pipeline-builder/api-core").AccessModifier;
4407
- driverParam: string;
4408
- notNull: true;
4409
- hasDefault: true;
4410
- isPrimaryKey: false;
4411
- isAutoincrement: false;
4412
- hasRuntimeDefault: false;
4413
- enumValues: [string, ...string[]];
4414
- baseColumn: never;
4415
- identity: undefined;
4416
- generated: undefined;
4417
- }, {}, {
4418
- length: 10;
4419
- $type: import("@pipeline-builder/api-core").AccessModifier;
4420
- }>;
4421
4362
  isDefault: import("drizzle-orm/pg-core").PgColumn<{
4422
4363
  name: "is_default";
4423
4364
  tableName: "compliance_policies";
@@ -4943,26 +4884,6 @@ export declare const schema: {
4943
4884
  length: 5;
4944
4885
  $type: import("./schema/compliance.js").RuleConditionMode;
4945
4886
  }>;
4946
- accessModifier: import("drizzle-orm/pg-core").PgColumn<{
4947
- name: "access_modifier";
4948
- tableName: "compliance_rules";
4949
- dataType: "string";
4950
- columnType: "PgVarchar";
4951
- data: import("@pipeline-builder/api-core").AccessModifier;
4952
- driverParam: string;
4953
- notNull: true;
4954
- hasDefault: true;
4955
- isPrimaryKey: false;
4956
- isAutoincrement: false;
4957
- hasRuntimeDefault: false;
4958
- enumValues: [string, ...string[]];
4959
- baseColumn: never;
4960
- identity: undefined;
4961
- generated: undefined;
4962
- }, {}, {
4963
- length: 10;
4964
- $type: import("@pipeline-builder/api-core").AccessModifier;
4965
- }>;
4966
4887
  isDefault: import("drizzle-orm/pg-core").PgColumn<{
4967
4888
  name: "is_default";
4968
4889
  tableName: "compliance_rules";
@@ -1,4 +1,3 @@
1
- import { AccessModifier } from '@pipeline-builder/api-core';
2
1
  /**
3
2
  * Compliance rule severity levels.
4
3
  */
@@ -213,26 +212,6 @@ export declare const compliancePolicy: import("drizzle-orm/pg-core").PgTableWith
213
212
  identity: undefined;
214
213
  generated: undefined;
215
214
  }, {}, {}>;
216
- accessModifier: import("drizzle-orm/pg-core").PgColumn<{
217
- name: "access_modifier";
218
- tableName: "compliance_policies";
219
- dataType: "string";
220
- columnType: "PgVarchar";
221
- data: AccessModifier;
222
- driverParam: string;
223
- notNull: true;
224
- hasDefault: true;
225
- isPrimaryKey: false;
226
- isAutoincrement: false;
227
- hasRuntimeDefault: false;
228
- enumValues: [string, ...string[]];
229
- baseColumn: never;
230
- identity: undefined;
231
- generated: undefined;
232
- }, {}, {
233
- length: 10;
234
- $type: AccessModifier;
235
- }>;
236
215
  isDefault: import("drizzle-orm/pg-core").PgColumn<{
237
216
  name: "is_default";
238
217
  tableName: "compliance_policies";
@@ -763,26 +742,6 @@ export declare const complianceRule: import("drizzle-orm/pg-core").PgTableWithCo
763
742
  length: 5;
764
743
  $type: RuleConditionMode;
765
744
  }>;
766
- accessModifier: import("drizzle-orm/pg-core").PgColumn<{
767
- name: "access_modifier";
768
- tableName: "compliance_rules";
769
- dataType: "string";
770
- columnType: "PgVarchar";
771
- data: AccessModifier;
772
- driverParam: string;
773
- notNull: true;
774
- hasDefault: true;
775
- isPrimaryKey: false;
776
- isAutoincrement: false;
777
- hasRuntimeDefault: false;
778
- enumValues: [string, ...string[]];
779
- baseColumn: never;
780
- identity: undefined;
781
- generated: undefined;
782
- }, {}, {
783
- length: 10;
784
- $type: AccessModifier;
785
- }>;
786
745
  isDefault: import("drizzle-orm/pg-core").PgColumn<{
787
746
  name: "is_default";
788
747
  tableName: "compliance_rules";