@pipeline-builder/pipeline-data 3.4.108 → 3.4.110

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.
@@ -1,4 +1,4 @@
1
- import { AccessModifier, type MetaDataType } from '@pipeline-builder/api-core';
1
+ import { AccessModifier, type EntityLabels, type EntityLink, type MetaDataType } from '@pipeline-builder/api-core';
2
2
  /**
3
3
  * Pipeline builder configuration properties stored in database.
4
4
  * Mirrors the canonical BuilderProps from pipeline-core (JSON-serializable form).
@@ -252,6 +252,121 @@ export declare const pipeline: import("drizzle-orm/pg-core").PgTableWithColumns<
252
252
  }, {}, {
253
253
  $type: PipelineBuilderConfig;
254
254
  }>;
255
+ ownerId: import("drizzle-orm/pg-core").PgColumn<{
256
+ name: "owner_id";
257
+ tableName: "pipelines";
258
+ dataType: "string";
259
+ columnType: "PgText";
260
+ data: string;
261
+ driverParam: string;
262
+ notNull: false;
263
+ hasDefault: false;
264
+ isPrimaryKey: false;
265
+ isAutoincrement: false;
266
+ hasRuntimeDefault: false;
267
+ enumValues: [string, ...string[]];
268
+ baseColumn: never;
269
+ identity: undefined;
270
+ generated: undefined;
271
+ }, {}, {}>;
272
+ ownerType: import("drizzle-orm/pg-core").PgColumn<{
273
+ name: "owner_type";
274
+ tableName: "pipelines";
275
+ dataType: "string";
276
+ columnType: "PgVarchar";
277
+ data: "team" | "user";
278
+ driverParam: string;
279
+ notNull: false;
280
+ hasDefault: false;
281
+ isPrimaryKey: false;
282
+ isAutoincrement: false;
283
+ hasRuntimeDefault: false;
284
+ enumValues: [string, ...string[]];
285
+ baseColumn: never;
286
+ identity: undefined;
287
+ generated: undefined;
288
+ }, {}, {
289
+ length: 10;
290
+ $type: "team" | "user";
291
+ }>;
292
+ lifecycle: import("drizzle-orm/pg-core").PgColumn<{
293
+ name: "lifecycle";
294
+ tableName: "pipelines";
295
+ dataType: "string";
296
+ columnType: "PgVarchar";
297
+ data: "deprecated" | "experimental" | "production";
298
+ driverParam: string;
299
+ notNull: true;
300
+ hasDefault: true;
301
+ isPrimaryKey: false;
302
+ isAutoincrement: false;
303
+ hasRuntimeDefault: false;
304
+ enumValues: [string, ...string[]];
305
+ baseColumn: never;
306
+ identity: undefined;
307
+ generated: undefined;
308
+ }, {}, {
309
+ length: 20;
310
+ $type: "deprecated" | "experimental" | "production";
311
+ }>;
312
+ criticality: import("drizzle-orm/pg-core").PgColumn<{
313
+ name: "criticality";
314
+ tableName: "pipelines";
315
+ dataType: "string";
316
+ columnType: "PgVarchar";
317
+ data: "critical" | "high" | "low" | "medium";
318
+ driverParam: string;
319
+ notNull: false;
320
+ hasDefault: false;
321
+ isPrimaryKey: false;
322
+ isAutoincrement: false;
323
+ hasRuntimeDefault: false;
324
+ enumValues: [string, ...string[]];
325
+ baseColumn: never;
326
+ identity: undefined;
327
+ generated: undefined;
328
+ }, {}, {
329
+ length: 10;
330
+ $type: "critical" | "high" | "low" | "medium";
331
+ }>;
332
+ labels: import("drizzle-orm/pg-core").PgColumn<{
333
+ name: "labels";
334
+ tableName: "pipelines";
335
+ dataType: "json";
336
+ columnType: "PgJsonb";
337
+ data: EntityLabels;
338
+ driverParam: unknown;
339
+ notNull: true;
340
+ hasDefault: true;
341
+ isPrimaryKey: false;
342
+ isAutoincrement: false;
343
+ hasRuntimeDefault: false;
344
+ enumValues: undefined;
345
+ baseColumn: never;
346
+ identity: undefined;
347
+ generated: undefined;
348
+ }, {}, {
349
+ $type: EntityLabels;
350
+ }>;
351
+ links: import("drizzle-orm/pg-core").PgColumn<{
352
+ name: "links";
353
+ tableName: "pipelines";
354
+ dataType: "json";
355
+ columnType: "PgJsonb";
356
+ data: EntityLink[];
357
+ driverParam: unknown;
358
+ notNull: true;
359
+ hasDefault: true;
360
+ isPrimaryKey: false;
361
+ isAutoincrement: false;
362
+ hasRuntimeDefault: false;
363
+ enumValues: undefined;
364
+ baseColumn: never;
365
+ identity: undefined;
366
+ generated: undefined;
367
+ }, {}, {
368
+ $type: EntityLink[];
369
+ }>;
255
370
  accessModifier: import("drizzle-orm/pg-core").PgColumn<{
256
371
  name: "access_modifier";
257
372
  tableName: "pipelines";
@@ -49,6 +49,24 @@ export const pipeline = pgTable('pipelines', {
49
49
  props: jsonb('props')
50
50
  .$type()
51
51
  .notNull(),
52
+ // Developer-portal catalog metadata (ownership / lifecycle / classification).
53
+ // ownerId defaults to the creating user (set at insert), so every pipeline has
54
+ // an owner for "my services" views; ownerType distinguishes user vs team.
55
+ ownerId: text('owner_id'),
56
+ ownerType: varchar('owner_type', { length: 10 }).$type(),
57
+ lifecycle: varchar('lifecycle', { length: 20 })
58
+ .$type()
59
+ .default('production')
60
+ .notNull(),
61
+ criticality: varchar('criticality', { length: 10 }).$type(),
62
+ labels: jsonb('labels')
63
+ .$type()
64
+ .default({})
65
+ .notNull(),
66
+ links: jsonb('links')
67
+ .$type()
68
+ .default([])
69
+ .notNull(),
52
70
  // Access and visibility
53
71
  accessModifier: varchar('access_modifier', { length: 10 })
54
72
  .$type()
@@ -66,6 +84,9 @@ export const pipeline = pgTable('pipelines', {
66
84
  }, (table) => ({
67
85
  // Indexes for common queries
68
86
  projectIdx: index('pipeline_project_idx').on(table.project),
87
+ // Developer-portal catalog indexes: "my services" (owner) + lifecycle filter.
88
+ ownerIdx: index('pipeline_owner_idx').on(table.orgId, table.ownerId),
89
+ lifecycleIdx: index('pipeline_lifecycle_idx').on(table.orgId, table.lifecycle),
69
90
  organizationIdx: index('pipeline_organization_idx').on(table.organization),
70
91
  orgIdIdx: index('pipeline_org_id_idx').on(table.orgId),
71
92
  activeIdx: index('pipeline_active_idx').on(table.isActive),
@@ -189,4 +210,4 @@ export const pipelineEvent = pgTable('pipeline_events', {
189
210
  pipelineTypeStartedIdx: index('event_pipeline_type_started_idx')
190
211
  .on(table.pipelineId, table.eventType, table.startedAt),
191
212
  }));
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YWJhc2Uvc2NoZW1hL3BpcGVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQXFCLE1BQU0sNEJBQTRCLENBQUM7QUFDOUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUEwQjNIOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRTtJQUMzQyxjQUFjO0lBQ2QsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLEVBQUU7SUFFM0Msa0NBQWtDO0lBQ2xDLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1NBQ3RDLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDdEIsT0FBTyxFQUFFO0lBRVosZUFBZTtJQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQzFCLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDdEIsT0FBTyxFQUFFO0lBQ1osU0FBUyxFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDdkQsVUFBVSxFQUFFO1NBQ1osT0FBTyxFQUFFO0lBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUIsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUN0QixP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RixxRkFBcUY7SUFDckYsUUFBUSxFQUFFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztTQUNyQyxFQUFFLENBQ0QsR0FBRyxDQUFBLFlBQVksS0FBSyxDQUFDLFVBQVUsYUFBYSxFQUM1QyxLQUFLLENBQUMsV0FBVyxFQUNqQixLQUFLLENBQUMsU0FBUyxFQUNmLEtBQUssQ0FBQyxNQUFNLEVBQ1osR0FBRyxDQUFBLFlBQVksS0FBSyxDQUFDLFNBQVMsT0FBTyxFQUNyQyxHQUFHLENBQUEsWUFBWSxLQUFLLENBQUMsVUFBVSxPQUFPLENBQ3ZDO1NBQ0EsS0FBSyxDQUFDLEdBQUcsQ0FBQSwwQkFBMEIsQ0FBQztJQUN2Qyx5RUFBeUU7SUFDekUsNkVBQTZFO0lBQzdFLDZFQUE2RTtJQUM3RSwrRUFBK0U7SUFDL0UsMkVBQTJFO0lBQzNFLDZFQUE2RTtJQUM3RSwwRUFBMEU7SUFDMUUsNENBQTRDO0lBQzVDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQztTQUNuRCxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUM7U0FDdkQsS0FBSyxDQUFDLEdBQUcsQ0FBQSx5QkFBeUIsQ0FBQztJQUN0Qyw0RUFBNEU7SUFDNUUsK0VBQStFO0lBQy9FLHlFQUF5RTtJQUN6RSwrRUFBK0U7SUFDL0UsNkVBQTZFO0lBQzdFLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztTQUM3RCxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUM7Q0FDMUQsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgQWNjZXNzTW9kaWZpZXIsIFNZU1RFTV9PUkdfSUQsIHR5cGUgTWV0YURhdGFUeXBlIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHsgc3FsIH0gZnJvbSAnZHJpenpsZS1vcm0nO1xuaW1wb3J0IHsgYm9vbGVhbiwgaW50ZWdlciwgdmFyY2hhciwgcGdUYWJsZSwgdGV4dCwgdGltZXN0YW1wLCB1dWlkLCBqc29uYiwgaW5kZXgsIHVuaXF1ZUluZGV4IH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSc7XG5cbi8qKlxuICogUGlwZWxpbmUgYnVpbGRlciBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgc3RvcmVkIGluIGRhdGFiYXNlLlxuICogTWlycm9ycyB0aGUgY2Fub25pY2FsIEJ1aWxkZXJQcm9wcyBmcm9tIHBpcGVsaW5lLWNvcmUgKEpTT04tc2VyaWFsaXphYmxlIGZvcm0pLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lQnVpbGRlckNvbmZpZyB7XG4gIHJlYWRvbmx5IHByb2plY3Q6IHN0cmluZztcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBpcGVsaW5lTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgZ2xvYmFsPzogTWV0YURhdGFUeXBlO1xuICByZWFkb25seSBzeW50aDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHJlYWRvbmx5IGRlZmF1bHRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHJlYWRvbmx5IHJvbGU/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcmVhZG9ubHkgc3RhZ2VzPzogUGlwZWxpbmVTdGFnZUNvbmZpZ1tdO1xufVxuXG4vKipcbiAqIFN0YWdlIGNvbmZpZ3VyYXRpb24gc3RvcmVkIGluIGRhdGFiYXNlIChKU09OLXNlcmlhbGl6YWJsZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVTdGFnZUNvbmZpZyB7XG4gIHJlYWRvbmx5IHN0YWdlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBhbGlhcz86IHN0cmluZztcbiAgcmVhZG9ubHkgc3RlcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W107XG59XG5cbi8qKlxuICogVGFibGUgZm9yIHN0b3JpbmcgcGlwZWxpbmUgaW5zdGFuY2VzIGFuZCB0aGVpciBmdWxsIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogRmVhdHVyZXMgKiAtIEZ1bGwgQnVpbGRlclByb3BzIHNlcmlhbGl6YXRpb24gZm9yIHJlY29uc3RydWN0aW9uXG4gKiAtIE9yZ2FuaXphdGlvbi1sZXZlbCBpc29sYXRpb25cbiAqIC0gUGlwZWxpbmUgc3RhdHVzIHRyYWNraW5nXG4gKiAtIEV4ZWN1dGlvbiBoaXN0b3J5IHRyYWNraW5nXG4gKiAtIEZsZXhpYmxlIHRhZ2dpbmcgc3lzdGVtXG4gKlxuICogQHRhYmxlIHBpcGVsaW5lc1xuICovXG5leHBvcnQgY29uc3QgcGlwZWxpbmUgPSBwZ1RhYmxlKCdwaXBlbGluZXMnLCB7XG4gIC8vIFByaW1hcnkga2V5XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG5cbiAgLy8gT3JnYW5pemF0aW9uIGFuZCBhY2Nlc3MgY29udHJvbFxuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KVxuICAgIC5kZWZhdWx0KFNZU1RFTV9PUkdfSUQpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBBdWRpdCBmaWVsZHNcbiAgY3JlYXRlZEJ5OiB0ZXh0KCdjcmVhdGVkX2J5JylcbiAgICAuZGVmYXVsdChTWVNURU1fT1JHX0lEKVxuICAgIC5ub3ROdWxsKCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSlcbiAgICAuZGVmYXVsdE5vdygpXG4gICAgLm5vdE51bGwoKSxcbiAgdXBkYXRlZEJ5OiB0ZXh0KCd1cGRhdGVkX2J5JylcbiAgICAuZGVmYXVsdChTWVNURU1fT1JHX0lEKVxuICAgIC5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSlcbiAgICAuZGVmYXVsdE5vdygpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBDb3JlIHBpcGVsaW5lIGluZm9ybWF0aW9uXG4gIHByb2plY3Q6IHZhcmNoYXIoJ3Byb2plY3QnLCB7IGxlbmd0aDogMjU1IH0pXG4gICAgLm5vdE51bGwoKSxcbiAgb3JnYW5pemF0aW9uOiB2YXJjaGFyKCdvcmdhbml6YXRpb24nLCB7IGxlbmd0aDogMjU1IH0pXG4gICAgLm5vdE51bGwoKSxcbiAgcGlwZWxpbmVOYW1lOiB2YXJjaGFyKCdwaXBlbGluZV9uYW1lJywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgZGVzY3JpcHRpb246IHRleHQoJ2Rlc2NyaXB0aW9uJyksXG4gIGtleXdvcmRzOiBqc29uYigna2V5d29yZHMnKVxuICAgIC4kdHlwZTxzdHJpbmdbXT4oKVxuICAgIC5kZWZhdWx0KFtdKVxuICAgIC5ub3ROdWxsKCksXG5cbiAgLy8gUGlwZWxpbmUgY29uZmlndXJhdGlvblxuICBwcm9wczoganNvbmIoJ3Byb3BzJylcbiAgICAuJHR5cGU8UGlwZWxpbmVCdWlsZGVyQ29uZmlnPigpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBBY2Nlc3MgYW5kIHZpc2liaWxpdHlcbiAgYWNjZXNzTW9kaWZpZXI6IHZhcmNoYXIoJ2FjY2Vzc19tb2RpZmllcicsIHsgbGVuZ3RoOiAxMCB9KVxuICAgIC4kdHlwZTxBY2Nlc3NNb2RpZmllcj4oKVxuICAgIC5kZWZhdWx0KCdwcml2YXRlJyBhcyBBY2Nlc3NNb2RpZmllcilcbiAgICAubm90TnVsbCgpLFxuICBpc0RlZmF1bHQ6IGJvb2xlYW4oJ2lzX2RlZmF1bHQnKVxuICAgIC5kZWZhdWx0KGZhbHNlKVxuICAgIC5ub3ROdWxsKCksXG4gIGlzQWN0aXZlOiBib29sZWFuKCdpc19hY3RpdmUnKVxuICAgIC5kZWZhdWx0KHRydWUpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBEZWxldGlvbiB0cmFja2luZyAoc29mdCBkZWxldGUpXG4gIGRlbGV0ZWRBdDogdGltZXN0YW1wKCdkZWxldGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGRlbGV0ZWRCeTogdGV4dCgnZGVsZXRlZF9ieScpLFxufSwgKHRhYmxlKSA9PiAoe1xuICAvLyBJbmRleGVzIGZvciBjb21tb24gcXVlcmllc1xuICBwcm9qZWN0SWR4OiBpbmRleCgncGlwZWxpbmVfcHJvamVjdF9pZHgnKS5vbih0YWJsZS5wcm9qZWN0KSxcbiAgb3JnYW5pemF0aW9uSWR4OiBpbmRleCgncGlwZWxpbmVfb3JnYW5pemF0aW9uX2lkeCcpLm9uKHRhYmxlLm9yZ2FuaXphdGlvbiksXG4gIG9yZ0lkSWR4OiBpbmRleCgncGlwZWxpbmVfb3JnX2lkX2lkeCcpLm9uKHRhYmxlLm9yZ0lkKSxcbiAgYWN0aXZlSWR4OiBpbmRleCgncGlwZWxpbmVfYWN0aXZlX2lkeCcpLm9uKHRhYmxlLmlzQWN0aXZlKSxcbiAgY3JlYXRlZEF0SWR4OiBpbmRleCgncGlwZWxpbmVfY3JlYXRlZF9hdF9pZHgnKS5vbih0YWJsZS5jcmVhdGVkQXQpLFxuICB1cGRhdGVkQXRJZHg6IGluZGV4KCdwaXBlbGluZV91cGRhdGVkX2F0X2lkeCcpLm9uKHRhYmxlLnVwZGF0ZWRBdCksXG5cbiAgLy8gQ29tcG9zaXRlIGluZGV4IGZvciBjb21tb24gYWNjZXNzIHBhdHRlcm4gKG9yZ0lkICsgaXNBY3RpdmUpXG4gIG9yZ0FjdGl2ZUlkeDogaW5kZXgoJ3BpcGVsaW5lX29yZ19hY3RpdmVfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLmlzQWN0aXZlKSxcblxuICAvLyBDb21wb3NpdGUgaW5kZXggZm9yIGZpbHRlcmVkIHF1ZXJpZXMgKG9yZ0lkICsgYWNjZXNzTW9kaWZpZXIgKyBpc0FjdGl2ZSlcbiAgb3JnQWNjZXNzQWN0aXZlSWR4OiBpbmRleCgncGlwZWxpbmVfb3JnX2FjY2Vzc19hY3RpdmVfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLmFjY2Vzc01vZGlmaWVyLCB0YWJsZS5pc0FjdGl2ZSksXG5cbiAgLy8gUGFydGlhbCBpbmRleCBmb3IgYWN0aXZlLW9ubHkgcXVlcmllcyAoc21hbGxlciwgZmFzdGVyIHRoYW4gZnVsbCBpbmRleClcbiAgYWN0aXZlT25seU9yZ0lkeDogaW5kZXgoJ3BpcGVsaW5lX2FjdGl2ZV9vbmx5X29yZ19pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUuY3JlYXRlZEF0KS53aGVyZShzcWxgaXNfYWN0aXZlID0gdHJ1ZWApLFxuXG4gIC8vIFVuaXF1ZSBjb25zdHJhaW50IG9uIHByb2plY3QgKyBvcmdhbml6YXRpb24gKyBvcmdJZFxuICBwcm9qZWN0T3JnVW5pcXVlOiB1bmlxdWVJbmRleCgncGlwZWxpbmVfcHJvamVjdF9vcmdfdW5pcXVlJylcbiAgICAub24odGFibGUucHJvamVjdCwgdGFibGUub3JnYW5pemF0aW9uLCB0YWJsZS5vcmdJZCksXG59KSk7XG5cbi8qKlxuICogUGlwZWxpbmUgZGVwbG95bWVudCByZWdpc3RyeS5cbiAqIE1hcHMgZGVwbG95ZWQgQ29kZVBpcGVsaW5lIEFSTnMgYmFjayB0byBwaXBlbGluZSByZWNvcmRzIGFuZCBvcmcgSURzLlxuICogUG9wdWxhdGVkIGJ5IHRoZSBkZXBsb3kgY29tbWFuZCBhZnRlciBzdWNjZXNzZnVsIENESyBkZXBsb3kuXG4gKiBVc2VkIGJ5IHRoZSBwaXBlbGluZS1ldmVudHMgTGFtYmRhIHRvIHJlc29sdmUgRXZlbnRCcmlkZ2UgZXZlbnRzIHRvIG9yZy1zY29wZWQgcmVjb3Jkcy5cbiAqXG4gKiBAdGFibGUgcGlwZWxpbmVfcmVnaXN0cnlcbiAqL1xuZXhwb3J0IGNvbnN0IHBpcGVsaW5lUmVnaXN0cnkgPSBwZ1RhYmxlKCdwaXBlbGluZV9yZWdpc3RyeScsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgLy8gVGhlIHBsYXRmb3JtJ3MgcGlwZWxpbmUgcmVjb3JkIGlkIOKAlCBhIFNUQUJMRSB1dWlkIGNyZWF0ZWQgd2l0aCB0aGUgcGlwZWxpbmVcbiAgLy8gcmVjb3JkLCBrbm93biBhdCBDREsgc3ludGgsIGFuZCBhcHBsaWVkIHRvIHRoZSBsaXZlIENvZGVQaXBlbGluZSBhcyB0aGVcbiAgLy8gYFBJUEVMSU5FX0VWRU5UX0lEYCB0YWcuIFRoZSBldmVudHMgTGFtYmRhIHJlYWRzIHRoYXQgdGFnIGFuZCByZXBvcnRzXG4gIC8vIGFnYWluc3QgdGhpcyBpZCwgc28gaXQgSVMgdGhlIGV2ZW50IGpvaW4ga2V5IChyZXBsYWNpbmcgdGhlIG1hc2tlZCBBUk4g4oCUXG4gIC8vIGl0IGNhcnJpZXMgbm8gQVdTIGFjY291bnQvcmVnaW9uLCBzbyBubyBtYXNraW5nIGlzIG5lZWRlZCkuIFVuaXF1ZTogb25lXG4gIC8vIHJlZ2lzdHJ5IHJvdyBwZXIgcGlwZWxpbmUgKyB0aGUgdXBzZXJ0IGtleSBmb3IgKHJlKXJlZ2lzdHJhdGlvbi5cbiAgcGlwZWxpbmVJZDogdXVpZCgncGlwZWxpbmVfaWQnKS5ub3ROdWxsKCkudW5pcXVlKCksXG4gIG9yZ0lkOiB2YXJjaGFyKCdvcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgcGlwZWxpbmVOYW1lOiB2YXJjaGFyKCdwaXBlbGluZV9uYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHJlZ2lvbjogdmFyY2hhcigncmVnaW9uJywgeyBsZW5ndGg6IDMwIH0pLFxuICBwcm9qZWN0OiB2YXJjaGFyKCdwcm9qZWN0JywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgb3JnYW5pemF0aW9uOiB2YXJjaGFyKCdvcmdhbml6YXRpb24nLCB7IGxlbmd0aDogMjU1IH0pLFxuICBsYXN0RGVwbG95ZWQ6IHRpbWVzdGFtcCgnbGFzdF9kZXBsb3llZCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBzdGFja05hbWU6IHZhcmNoYXIoJ3N0YWNrX25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgb3JnSWRJZHg6IGluZGV4KCdyZWdpc3RyeV9vcmdfaWRfaWR4Jykub24odGFibGUub3JnSWQpLFxuICBvcmdSZWdpb25JZHg6IGluZGV4KCdyZWdpc3RyeV9vcmdfcmVnaW9uX2lkeCcpLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS5yZWdpb24pLFxufSkpO1xuXG4vKipcbiAqIEV2ZW50IHNvdXJjZSBpZGVudGlmaWVycyBmb3IgcGlwZWxpbmVfZXZlbnRzLlxuICovXG5leHBvcnQgdHlwZSBFdmVudFNvdXJjZSA9ICdjb2RlcGlwZWxpbmUnIHwgJ2NvZGVidWlsZCcgfCAncGx1Z2luLWJ1aWxkJztcblxuLyoqXG4gKiBFdmVudCB0eXBlIGdyYW51bGFyaXR5IGxldmVscyBmb3IgcGlwZWxpbmVfZXZlbnRzLlxuICovXG5leHBvcnQgdHlwZSBFdmVudFR5cGUgPSAnUElQRUxJTkUnIHwgJ1NUQUdFJyB8ICdBQ1RJT04nIHwgJ0JVSUxEJztcblxuLyoqXG4gKiBQaXBlbGluZSBleGVjdXRpb24gYW5kIGJ1aWxkIGV2ZW50cy5cbiAqIENhcHR1cmVzIENvZGVQaXBlbGluZS9Db2RlQnVpbGQgc3RhdGUgY2hhbmdlcyBmcm9tIEV2ZW50QnJpZGdlXG4gKiBhbmQgcGx1Z2luIERvY2tlciBidWlsZCBvdXRjb21lcyBmcm9tIEJ1bGxNUS5cbiAqIEFsbCBldmVudHMgYXJlIG9yZy1zY29wZWQgZm9yIG11bHRpLXRlbmFudCByZXBvcnRpbmcuXG4gKlxuICogQHRhYmxlIHBpcGVsaW5lX2V2ZW50c1xuICovXG5leHBvcnQgY29uc3QgcGlwZWxpbmVFdmVudCA9IHBnVGFibGUoJ3BpcGVsaW5lX2V2ZW50cycsIHtcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcbiAgcGlwZWxpbmVJZDogdXVpZCgncGlwZWxpbmVfaWQnKSxcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBldmVudFNvdXJjZTogdmFyY2hhcignZXZlbnRfc291cmNlJywgeyBsZW5ndGg6IDUwIH0pLiR0eXBlPEV2ZW50U291cmNlPigpLm5vdE51bGwoKSxcbiAgZXZlbnRUeXBlOiB2YXJjaGFyKCdldmVudF90eXBlJywgeyBsZW5ndGg6IDUwIH0pLiR0eXBlPEV2ZW50VHlwZT4oKS5ub3ROdWxsKCksXG4gIHN0YXR1czogdmFyY2hhcignc3RhdHVzJywgeyBsZW5ndGg6IDIwIH0pLm5vdE51bGwoKSxcbiAgZXhlY3V0aW9uSWQ6IHZhcmNoYXIoJ2V4ZWN1dGlvbl9pZCcsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIHN0YWdlTmFtZTogdmFyY2hhcignc3RhZ2VfbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIGFjdGlvbk5hbWU6IHZhcmNoYXIoJ2FjdGlvbl9uYW1lJywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgZXJyb3JNZXNzYWdlOiB0ZXh0KCdlcnJvcl9tZXNzYWdlJyksXG4gIHN0YXJ0ZWRBdDogdGltZXN0YW1wKCdzdGFydGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGNvbXBsZXRlZEF0OiB0aW1lc3RhbXAoJ2NvbXBsZXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBkdXJhdGlvbk1zOiBpbnRlZ2VyKCdkdXJhdGlvbl9tcycpLFxuICAvLyBET1JBIGRlcGxveS1hdHRyaWJ1dGlvbiAoYWxsIG51bGxhYmxlOyBwb3B1bGF0ZWQgYXQgaW5nZXN0IHdoZW4gdGhlIHNvdXJjZVxuICAvLyBldmVudCBjYXJyaWVzIHRoZW0g4oCUIGxlZ2FjeS9DSS1vbmx5IGV2ZW50cyBsZWF2ZSB0aGVtIE5VTEwpLiBgZW52aXJvbm1lbnRgXG4gIC8vIGlzIHRoZSBkZXBsb3kgdGFyZ2V0IChlLmcuIFwicHJvZHVjdGlvblwiKTsgaXRzIHByZXNlbmNlIG1hcmtzIGFuIGV4ZWN1dGlvblxuICAvLyBhcyBhIHJlYWwgZGVwbG95bWVudCwgbGV0dGluZyBET1JBIHNjb3BlIHBhc3QgZ2VuZXJpYyBwaXBlbGluZSBydW5zLlxuICAvLyBgY29tbWl0U2hhYC9gY29tbWl0UmVmYCBjYXB0dXJlIHRoZSBzb3VyY2UgcmV2aXNpb24gZm9yIGxlYWQtdGltZSB3b3JrLlxuICBjb21taXRTaGE6IHZhcmNoYXIoJ2NvbW1pdF9zaGEnLCB7IGxlbmd0aDogMjU1IH0pLFxuICBjb21taXRSZWY6IHZhcmNoYXIoJ2NvbW1pdF9yZWYnLCB7IGxlbmd0aDogMjU1IH0pLFxuICBlbnZpcm9ubWVudDogdmFyY2hhcignZW52aXJvbm1lbnQnLCB7IGxlbmd0aDogMjU1IH0pLFxuICBkZXRhaWw6IGpzb25iKCdkZXRhaWwnKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICBwaXBlbGluZUlkSWR4OiBpbmRleCgnZXZlbnRfcGlwZWxpbmVfaWRfaWR4Jykub24odGFibGUucGlwZWxpbmVJZCksXG4gIG9yZ0lkSWR4OiBpbmRleCgnZXZlbnRfb3JnX2lkX2lkeCcpLm9uKHRhYmxlLm9yZ0lkKSxcbiAgZXZlbnRUeXBlSWR4OiBpbmRleCgnZXZlbnRfdHlwZV9pZHgnKS5vbih0YWJsZS5ldmVudFR5cGUpLFxuICBzdGF0dXNJZHg6IGluZGV4KCdldmVudF9zdGF0dXNfaWR4Jykub24odGFibGUuc3RhdHVzKSxcbiAgZXhlY3V0aW9uSWRJZHg6IGluZGV4KCdldmVudF9leGVjdXRpb25faWRfaWR4Jykub24odGFibGUuZXhlY3V0aW9uSWQpLFxuICBjcmVhdGVkQXRJZHg6IGluZGV4KCdldmVudF9jcmVhdGVkX2F0X2lkeCcpLm9uKHRhYmxlLmNyZWF0ZWRBdCksXG4gIG9yZ1R5cGVDcmVhdGVkSWR4OiBpbmRleCgnZXZlbnRfb3JnX3R5cGVfY3JlYXRlZF9pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUuZXZlbnRUeXBlLCB0YWJsZS5jcmVhdGVkQXQpLFxuICBvcmdTb3VyY2VTdGF0dXNJZHg6IGluZGV4KCdldmVudF9vcmdfc291cmNlX3N0YXR1c19pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUuZXZlbnRTb3VyY2UsIHRhYmxlLnN0YXR1cyksXG4gIC8vIElkZW1wb3RlbmN5OiBFdmVudEJyaWRnZSDihpIgU1FTIGlzIGF0LWxlYXN0LW9uY2UsIHNvIHRoZSBzYW1lIHN0YXRlLWNoYW5nZVxuICAvLyBjYW4gYmUgZGVsaXZlcmVkIHR3aWNlLiBUaGlzIHBhcnRpYWwgdW5pcXVlIGluZGV4IGRlZHVwcyByZS1kZWxpdmVyaWVzXG4gIC8vIChwYWlyZWQgd2l0aCBgb25Db25mbGljdERvTm90aGluZ2AgaW4gcmVwb3J0aW5nLXNlcnZpY2UuaW5nZXN0RXZlbnRzKS5cbiAgLy8gUGFydGlhbCAoZXhlY3V0aW9uX2lkIElTIE5PVCBOVUxMKSBiZWNhdXNlIHRoYXQncyB0aGUgbmF0dXJhbCBwZXItZXZlbnRcbiAgLy8ga2V5OyBldmVudHMgd2l0aG91dCBhbiBleGVjdXRpb25JZCAocmFyZSkgYXJlbid0IGRlZHVwZWQsIHdoaWNoIGlzIHNhZmUuXG4gIC8vIEluY2x1ZGVzIHBpcGVsaW5lX2lkIHNvIGEgKHRoZW9yZXRpY2FsKSBleGVjdXRpb24taWQgcmV1c2UgYWNyb3NzIHBpcGVsaW5lc1xuICAvLyBjYW4ndCBjb2xsaWRlIG5vdyB0aGF0IHRoZSBBUk4gaXMgbm8gbG9uZ2VyIHBhcnQgb2YgdGhlIHJvdy5cbiAgLy9cbiAgLy8gQ09BTEVTQ0UgdGhlIG51bGxhYmxlIHBhcnRzIHRvIHNlbnRpbmVscyAoZXhwcmVzc2lvbiBpbmRleCk6IFBJUEVMSU5FL1NUQUdFL1xuICAvLyBCVUlMRCBldmVudHMgbGVhdmUgc3RhZ2VfbmFtZS9hY3Rpb25fbmFtZSBOVUxMIChwbHVnaW4tYnVpbGQgYWxzbyBwaXBlbGluZV9pZFxuICAvLyBOVUxMKSwgYW5kIFBvc3RncmVzIHRyZWF0cyBOVUxMcyBhcyBESVNUSU5DVCBpbiBhIHVuaXF1ZSBpbmRleCDigJQgc28gdGhlIHBsYWluXG4gIC8vIGNvbHVtbiBpbmRleCBuZXZlciBtYXRjaGVzIGZvciB0aG9zZSB0eXBlcyBhbmQgb25Db25mbGljdERvTm90aGluZyBjYW4ndCBkZWR1cFxuICAvLyB0aGVpciBhdC1sZWFzdC1vbmNlIHJlLWRlbGl2ZXJpZXMuIENvbGxhcHNpbmcgTlVMTOKGkicnIG1ha2VzIGVxdWFsIGV2ZW50cyBlcXVhbC5cbiAgLy8gKGRyaXp6bGUncyB1bmlxdWVJbmRleCBjYW4ndCBleHByZXNzIE5VTExTIE5PVCBESVNUSU5DVCBvbiBhIHBhcnRpYWwgaW5kZXgsIHNvXG4gIC8vIHdlIHVzZSB0aGUgZXF1aXZhbGVudCBleHByZXNzaW9uIGluZGV4LikgTUlHUkFUSU9OIFJFUVVJUkVEOiBkcml6emxlLWtpdCBnZW5lcmF0ZS5cbiAgZGVkdXBJZHg6IHVuaXF1ZUluZGV4KCdldmVudF9kZWR1cF9pZHgnKVxuICAgIC5vbihcbiAgICAgIHNxbGBjb2FsZXNjZSgke3RhYmxlLnBpcGVsaW5lSWR9Ojp0ZXh0LCAnJylgLFxuICAgICAgdGFibGUuZXhlY3V0aW9uSWQsXG4gICAgICB0YWJsZS5ldmVudFR5cGUsXG4gICAgICB0YWJsZS5zdGF0dXMsXG4gICAgICBzcWxgY29hbGVzY2UoJHt0YWJsZS5zdGFnZU5hbWV9LCAnJylgLFxuICAgICAgc3FsYGNvYWxlc2NlKCR7dGFibGUuYWN0aW9uTmFtZX0sICcnKWAsXG4gICAgKVxuICAgIC53aGVyZShzcWxgZXhlY3V0aW9uX2lkIElTIE5PVCBOVUxMYCksXG4gIC8vIERPUkEgZGVwbG95LXNjb3BlZCByZWFkczogb25seSBQSVBFTElORS1sZXZlbCBleGVjdXRpb25zIHRhZ2dlZCB3aXRoIGFcbiAgLy8gZGVwbG95IGVudmlyb25tZW50LiBgZXZlbnRfdHlwZWAgaXMgaW4gdGhlIGluZGV4IGJlY2F1c2UgdGhlIGV2ZW50cyBMYW1iZGFcbiAgLy8gdGFncyBFVkVSWSBldmVudCBvZiBhIGRlcGxveWVkIHBpcGVsaW5lIChTVEFHRS9BQ1RJT04gdG9vKSwgd2hpbGUgdGhlIERPUkFcbiAgLy8gc2NhbiB3YW50cyBvbmx5IGBldmVudF90eXBlPSdQSVBFTElORSdgIOKAlCBpbmNsdWRpbmcgaXQgcmVzdG9yZXMgc2VsZWN0aXZpdHkuXG4gIC8vIFBhcnRpYWwgKGVudmlyb25tZW50IElTIE5PVCBOVUxMKSBrZWVwcyBpdCBzbWFsbCDigJQgbGVnYWN5L0NJLW9ubHkgZXZlbnRzXG4gIC8vIGFyZW4ndCBpbmRleGVkLiBUaGUgZGVmYXVsdCBydW4tYmFzZWQgRE9SQSBwYXRoIChubyBlbnZpcm9ubWVudCkgY2FuJ3QgdXNlXG4gIC8vIHRoaXMgcGFydGlhbCBpbmRleDsgaXQgcmVsaWVzIG9uIGV2ZW50X3BpcGVsaW5lX3R5cGVfc3RhcnRlZF9pZHggYmVsb3cuXG4gIC8vIE1JR1JBVElPTiBSRVFVSVJFRDogZHJpenpsZS1raXQgZ2VuZXJhdGUuXG4gIGVudlR5cGVTdGFydGVkSWR4OiBpbmRleCgnZXZlbnRfZW52X3R5cGVfc3RhcnRlZF9pZHgnKVxuICAgIC5vbih0YWJsZS5lbnZpcm9ubWVudCwgdGFibGUuZXZlbnRUeXBlLCB0YWJsZS5zdGFydGVkQXQpXG4gICAgLndoZXJlKHNxbGBlbnZpcm9ubWVudCBJUyBOT1QgTlVMTGApLFxuICAvLyBzdGFydGVkX2F0IHJhbmdlIHNjYW5zOiBldmVyeSBDYXRlZ29yeS0xIHJlcG9ydCBhbmQgdGhlIGRlZmF1bHQgcnVuLWJhc2VkXG4gIC8vIERPUkEgcGF0aCBmaWx0ZXJzIGBldmVudF90eXBlPSdQSVBFTElORScgQU5EIHN0YXJ0ZWRfYXQgQkVUV0VFTiDigKZgIGpvaW5lZCBvblxuICAvLyBwaXBlbGluZV9pZCwgYnV0IHRoZSBvdGhlciBldmVudCBjb21wb3NpdGUgaW5kZXggaXMgb24gY3JlYXRlZF9hdCwgbm90XG4gIC8vIHN0YXJ0ZWRfYXQg4oCUIHNvIHRoZSByYW5nZSBzY2FuIGhhZCBubyBpZGVhbCBpbmRleC4gVGhpcyBjb21wb3NpdGUgc2VydmVzIHRoZVxuICAvLyBqb2luLWRyaXZlbiBzY2FuIGJ5IHBpcGVsaW5lX2lkLiBNSUdSQVRJT04gUkVRVUlSRUQ6IGRyaXp6bGUta2l0IGdlbmVyYXRlLlxuICBwaXBlbGluZVR5cGVTdGFydGVkSWR4OiBpbmRleCgnZXZlbnRfcGlwZWxpbmVfdHlwZV9zdGFydGVkX2lkeCcpXG4gICAgLm9uKHRhYmxlLnBpcGVsaW5lSWQsIHRhYmxlLmV2ZW50VHlwZSwgdGFibGUuc3RhcnRlZEF0KSxcbn0pKTtcblxuLyoqXG4gKiBUeXBlU2NyaXB0IHR5cGVzIHJlcHJlc2VudGluZyBkYXRhYmFzZSByb3dzXG4gKi9cbmV4cG9ydCB0eXBlIFBpcGVsaW5lID0gdHlwZW9mIHBpcGVsaW5lLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBpcGVsaW5lSW5zZXJ0ID0gdHlwZW9mIHBpcGVsaW5lLiRpbmZlckluc2VydDtcblxuZXhwb3J0IHR5cGUgUGlwZWxpbmVSZWdpc3RyeSA9IHR5cGVvZiBwaXBlbGluZVJlZ2lzdHJ5LiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBpcGVsaW5lUmVnaXN0cnlJbnNlcnQgPSB0eXBlb2YgcGlwZWxpbmVSZWdpc3RyeS4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBpcGVsaW5lRXZlbnQgPSB0eXBlb2YgcGlwZWxpbmVFdmVudC4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQaXBlbGluZUV2ZW50SW5zZXJ0ID0gdHlwZW9mIHBpcGVsaW5lRXZlbnQuJGluZmVySW5zZXJ0O1xuXG4vKipcbiAqIEhlbHBlciB0eXBlcyBmb3Igd29ya2luZyB3aXRoIHBhcnRpYWwgdXBkYXRlc1xuICovXG5leHBvcnQgdHlwZSBQaXBlbGluZVVwZGF0ZSA9IFBhcnRpYWw8T21pdDxQaXBlbGluZUluc2VydCwgJ2lkJyB8ICdjcmVhdGVkQXQnIHwgJ2NyZWF0ZWRCeSc+PjtcbiJdfQ==
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YWJhc2Uvc2NoZW1hL3BpcGVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQTJHLE1BQU0sNEJBQTRCLENBQUM7QUFDcEwsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUEwQjNIOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRTtJQUMzQyxjQUFjO0lBQ2QsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLEVBQUU7SUFFM0Msa0NBQWtDO0lBQ2xDLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1NBQ3RDLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDdEIsT0FBTyxFQUFFO0lBRVosZUFBZTtJQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQzFCLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDdEIsT0FBTyxFQUFFO0lBQ1osU0FBUyxFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDdkQsVUFBVSxFQUFFO1NBQ1osT0FBTyxFQUFFO0lBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUIsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUN0QixP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LE1BQU0sRUFDWixHQUFHLENBQUEsWUFBWSxLQUFLLENBQUMsU0FBUyxPQUFPLEVBQ3JDLEdBQUcsQ0FBQSxZQUFZLEtBQUssQ0FBQyxVQUFVLE9BQU8sQ0FDdkM7U0FDQSxLQUFLLENBQUMsR0FBRyxDQUFBLDBCQUEwQixDQUFDO0lBQ3ZDLHlFQUF5RTtJQUN6RSw2RUFBNkU7SUFDN0UsNkVBQTZFO0lBQzdFLCtFQUErRTtJQUMvRSwyRUFBMkU7SUFDM0UsNkVBQTZFO0lBQzdFLDBFQUEwRTtJQUMxRSw0Q0FBNEM7SUFDNUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLDRCQUE0QixDQUFDO1NBQ25ELEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQztTQUN2RCxLQUFLLENBQUMsR0FBRyxDQUFBLHlCQUF5QixDQUFDO0lBQ3RDLDRFQUE0RTtJQUM1RSwrRUFBK0U7SUFDL0UseUVBQXlFO0lBQ3pFLCtFQUErRTtJQUMvRSw2RUFBNkU7SUFDN0Usc0JBQXNCLEVBQUUsS0FBSyxDQUFDLGlDQUFpQyxDQUFDO1NBQzdELEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQztDQUMxRCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBBY2Nlc3NNb2RpZmllciwgU1lTVEVNX09SR19JRCwgdHlwZSBDcml0aWNhbGl0eSwgdHlwZSBFbnRpdHlMYWJlbHMsIHR5cGUgRW50aXR5TGluaywgdHlwZSBMaWZlY3ljbGUsIHR5cGUgTWV0YURhdGFUeXBlLCB0eXBlIE93bmVyVHlwZSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7IHNxbCB9IGZyb20gJ2RyaXp6bGUtb3JtJztcbmltcG9ydCB7IGJvb2xlYW4sIGludGVnZXIsIHZhcmNoYXIsIHBnVGFibGUsIHRleHQsIHRpbWVzdGFtcCwgdXVpZCwganNvbmIsIGluZGV4LCB1bmlxdWVJbmRleCB9IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnO1xuXG4vKipcbiAqIFBpcGVsaW5lIGJ1aWxkZXIgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIHN0b3JlZCBpbiBkYXRhYmFzZS5cbiAqIE1pcnJvcnMgdGhlIGNhbm9uaWNhbCBCdWlsZGVyUHJvcHMgZnJvbSBwaXBlbGluZS1jb3JlIChKU09OLXNlcmlhbGl6YWJsZSBmb3JtKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUJ1aWxkZXJDb25maWcge1xuICByZWFkb25seSBwcm9qZWN0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBwaXBlbGluZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGdsb2JhbD86IE1ldGFEYXRhVHlwZTtcbiAgcmVhZG9ubHkgc3ludGg6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICByZWFkb25seSBkZWZhdWx0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICByZWFkb25seSByb2xlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHJlYWRvbmx5IHN0YWdlcz86IFBpcGVsaW5lU3RhZ2VDb25maWdbXTtcbn1cblxuLyoqXG4gKiBTdGFnZSBjb25maWd1cmF0aW9uIHN0b3JlZCBpbiBkYXRhYmFzZSAoSlNPTi1zZXJpYWxpemFibGUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lU3RhZ2VDb25maWcge1xuICByZWFkb25seSBzdGFnZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYWxpYXM/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0ZXBzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdO1xufVxuXG4vKipcbiAqIFRhYmxlIGZvciBzdG9yaW5nIHBpcGVsaW5lIGluc3RhbmNlcyBhbmQgdGhlaXIgZnVsbCBjb25maWd1cmF0aW9uLlxuICpcbiAqIEZlYXR1cmVzICogLSBGdWxsIEJ1aWxkZXJQcm9wcyBzZXJpYWxpemF0aW9uIGZvciByZWNvbnN0cnVjdGlvblxuICogLSBPcmdhbml6YXRpb24tbGV2ZWwgaXNvbGF0aW9uXG4gKiAtIFBpcGVsaW5lIHN0YXR1cyB0cmFja2luZ1xuICogLSBFeGVjdXRpb24gaGlzdG9yeSB0cmFja2luZ1xuICogLSBGbGV4aWJsZSB0YWdnaW5nIHN5c3RlbVxuICpcbiAqIEB0YWJsZSBwaXBlbGluZXNcbiAqL1xuZXhwb3J0IGNvbnN0IHBpcGVsaW5lID0gcGdUYWJsZSgncGlwZWxpbmVzJywge1xuICAvLyBQcmltYXJ5IGtleVxuICBpZDogdXVpZCgnaWQnKS5wcmltYXJ5S2V5KCkuZGVmYXVsdFJhbmRvbSgpLFxuXG4gIC8vIE9yZ2FuaXphdGlvbiBhbmQgYWNjZXNzIGNvbnRyb2xcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSlcbiAgICAuZGVmYXVsdChTWVNURU1fT1JHX0lEKVxuICAgIC5ub3ROdWxsKCksXG5cbiAgLy8gQXVkaXQgZmllbGRzXG4gIGNyZWF0ZWRCeTogdGV4dCgnY3JlYXRlZF9ieScpXG4gICAgLmRlZmF1bHQoU1lTVEVNX09SR19JRClcbiAgICAubm90TnVsbCgpLFxuICBjcmVhdGVkQXQ6IHRpbWVzdGFtcCgnY3JlYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pXG4gICAgLmRlZmF1bHROb3coKVxuICAgIC5ub3ROdWxsKCksXG4gIHVwZGF0ZWRCeTogdGV4dCgndXBkYXRlZF9ieScpXG4gICAgLmRlZmF1bHQoU1lTVEVNX09SR19JRClcbiAgICAubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pXG4gICAgLmRlZmF1bHROb3coKVxuICAgIC5ub3ROdWxsKCksXG5cbiAgLy8gQ29yZSBwaXBlbGluZSBpbmZvcm1hdGlvblxuICBwcm9qZWN0OiB2YXJjaGFyKCdwcm9qZWN0JywgeyBsZW5ndGg6IDI1NSB9KVxuICAgIC5ub3ROdWxsKCksXG4gIG9yZ2FuaXphdGlvbjogdmFyY2hhcignb3JnYW5pemF0aW9uJywgeyBsZW5ndGg6IDI1NSB9KVxuICAgIC5ub3ROdWxsKCksXG4gIHBpcGVsaW5lTmFtZTogdmFyY2hhcigncGlwZWxpbmVfbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIGRlc2NyaXB0aW9uOiB0ZXh0KCdkZXNjcmlwdGlvbicpLFxuICBrZXl3b3JkczoganNvbmIoJ2tleXdvcmRzJylcbiAgICAuJHR5cGU8c3RyaW5nW10+KClcbiAgICAuZGVmYXVsdChbXSlcbiAgICAubm90TnVsbCgpLFxuXG4gIC8vIFBpcGVsaW5lIGNvbmZpZ3VyYXRpb25cbiAgcHJvcHM6IGpzb25iKCdwcm9wcycpXG4gICAgLiR0eXBlPFBpcGVsaW5lQnVpbGRlckNvbmZpZz4oKVxuICAgIC5ub3ROdWxsKCksXG5cbiAgLy8gRGV2ZWxvcGVyLXBvcnRhbCBjYXRhbG9nIG1ldGFkYXRhIChvd25lcnNoaXAgLyBsaWZlY3ljbGUgLyBjbGFzc2lmaWNhdGlvbikuXG4gIC8vIG93bmVySWQgZGVmYXVsdHMgdG8gdGhlIGNyZWF0aW5nIHVzZXIgKHNldCBhdCBpbnNlcnQpLCBzbyBldmVyeSBwaXBlbGluZSBoYXNcbiAgLy8gYW4gb3duZXIgZm9yIFwibXkgc2VydmljZXNcIiB2aWV3czsgb3duZXJUeXBlIGRpc3Rpbmd1aXNoZXMgdXNlciB2cyB0ZWFtLlxuICBvd25lcklkOiB0ZXh0KCdvd25lcl9pZCcpLFxuICBvd25lclR5cGU6IHZhcmNoYXIoJ293bmVyX3R5cGUnLCB7IGxlbmd0aDogMTAgfSkuJHR5cGU8T3duZXJUeXBlPigpLFxuICBsaWZlY3ljbGU6IHZhcmNoYXIoJ2xpZmVjeWNsZScsIHsgbGVuZ3RoOiAyMCB9KVxuICAgIC4kdHlwZTxMaWZlY3ljbGU+KClcbiAgICAuZGVmYXVsdCgncHJvZHVjdGlvbicgYXMgTGlmZWN5Y2xlKVxuICAgIC5ub3ROdWxsKCksXG4gIGNyaXRpY2FsaXR5OiB2YXJjaGFyKCdjcml0aWNhbGl0eScsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxDcml0aWNhbGl0eT4oKSxcbiAgbGFiZWxzOiBqc29uYignbGFiZWxzJylcbiAgICAuJHR5cGU8RW50aXR5TGFiZWxzPigpXG4gICAgLmRlZmF1bHQoe30pXG4gICAgLm5vdE51bGwoKSxcbiAgbGlua3M6IGpzb25iKCdsaW5rcycpXG4gICAgLiR0eXBlPEVudGl0eUxpbmtbXT4oKVxuICAgIC5kZWZhdWx0KFtdKVxuICAgIC5ub3ROdWxsKCksXG5cbiAgLy8gQWNjZXNzIGFuZCB2aXNpYmlsaXR5XG4gIGFjY2Vzc01vZGlmaWVyOiB2YXJjaGFyKCdhY2Nlc3NfbW9kaWZpZXInLCB7IGxlbmd0aDogMTAgfSlcbiAgICAuJHR5cGU8QWNjZXNzTW9kaWZpZXI+KClcbiAgICAuZGVmYXVsdCgncHJpdmF0ZScgYXMgQWNjZXNzTW9kaWZpZXIpXG4gICAgLm5vdE51bGwoKSxcbiAgaXNEZWZhdWx0OiBib29sZWFuKCdpc19kZWZhdWx0JylcbiAgICAuZGVmYXVsdChmYWxzZSlcbiAgICAubm90TnVsbCgpLFxuICBpc0FjdGl2ZTogYm9vbGVhbignaXNfYWN0aXZlJylcbiAgICAuZGVmYXVsdCh0cnVlKVxuICAgIC5ub3ROdWxsKCksXG5cbiAgLy8gRGVsZXRpb24gdHJhY2tpbmcgKHNvZnQgZGVsZXRlKVxuICBkZWxldGVkQXQ6IHRpbWVzdGFtcCgnZGVsZXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBkZWxldGVkQnk6IHRleHQoJ2RlbGV0ZWRfYnknKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgLy8gSW5kZXhlcyBmb3IgY29tbW9uIHF1ZXJpZXNcbiAgcHJvamVjdElkeDogaW5kZXgoJ3BpcGVsaW5lX3Byb2plY3RfaWR4Jykub24odGFibGUucHJvamVjdCksXG4gIC8vIERldmVsb3Blci1wb3J0YWwgY2F0YWxvZyBpbmRleGVzOiBcIm15IHNlcnZpY2VzXCIgKG93bmVyKSArIGxpZmVjeWNsZSBmaWx0ZXIuXG4gIG93bmVySWR4OiBpbmRleCgncGlwZWxpbmVfb3duZXJfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLm93bmVySWQpLFxuICBsaWZlY3ljbGVJZHg6IGluZGV4KCdwaXBlbGluZV9saWZlY3ljbGVfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLmxpZmVjeWNsZSksXG4gIG9yZ2FuaXphdGlvbklkeDogaW5kZXgoJ3BpcGVsaW5lX29yZ2FuaXphdGlvbl9pZHgnKS5vbih0YWJsZS5vcmdhbml6YXRpb24pLFxuICBvcmdJZElkeDogaW5kZXgoJ3BpcGVsaW5lX29yZ19pZF9pZHgnKS5vbih0YWJsZS5vcmdJZCksXG4gIGFjdGl2ZUlkeDogaW5kZXgoJ3BpcGVsaW5lX2FjdGl2ZV9pZHgnKS5vbih0YWJsZS5pc0FjdGl2ZSksXG4gIGNyZWF0ZWRBdElkeDogaW5kZXgoJ3BpcGVsaW5lX2NyZWF0ZWRfYXRfaWR4Jykub24odGFibGUuY3JlYXRlZEF0KSxcbiAgdXBkYXRlZEF0SWR4OiBpbmRleCgncGlwZWxpbmVfdXBkYXRlZF9hdF9pZHgnKS5vbih0YWJsZS51cGRhdGVkQXQpLFxuXG4gIC8vIENvbXBvc2l0ZSBpbmRleCBmb3IgY29tbW9uIGFjY2VzcyBwYXR0ZXJuIChvcmdJZCArIGlzQWN0aXZlKVxuICBvcmdBY3RpdmVJZHg6IGluZGV4KCdwaXBlbGluZV9vcmdfYWN0aXZlX2lkeCcpLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS5pc0FjdGl2ZSksXG5cbiAgLy8gQ29tcG9zaXRlIGluZGV4IGZvciBmaWx0ZXJlZCBxdWVyaWVzIChvcmdJZCArIGFjY2Vzc01vZGlmaWVyICsgaXNBY3RpdmUpXG4gIG9yZ0FjY2Vzc0FjdGl2ZUlkeDogaW5kZXgoJ3BpcGVsaW5lX29yZ19hY2Nlc3NfYWN0aXZlX2lkeCcpLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS5hY2Nlc3NNb2RpZmllciwgdGFibGUuaXNBY3RpdmUpLFxuXG4gIC8vIFBhcnRpYWwgaW5kZXggZm9yIGFjdGl2ZS1vbmx5IHF1ZXJpZXMgKHNtYWxsZXIsIGZhc3RlciB0aGFuIGZ1bGwgaW5kZXgpXG4gIGFjdGl2ZU9ubHlPcmdJZHg6IGluZGV4KCdwaXBlbGluZV9hY3RpdmVfb25seV9vcmdfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLmNyZWF0ZWRBdCkud2hlcmUoc3FsYGlzX2FjdGl2ZSA9IHRydWVgKSxcblxuICAvLyBVbmlxdWUgY29uc3RyYWludCBvbiBwcm9qZWN0ICsgb3JnYW5pemF0aW9uICsgb3JnSWRcbiAgcHJvamVjdE9yZ1VuaXF1ZTogdW5pcXVlSW5kZXgoJ3BpcGVsaW5lX3Byb2plY3Rfb3JnX3VuaXF1ZScpXG4gICAgLm9uKHRhYmxlLnByb2plY3QsIHRhYmxlLm9yZ2FuaXphdGlvbiwgdGFibGUub3JnSWQpLFxufSkpO1xuXG4vKipcbiAqIFBpcGVsaW5lIGRlcGxveW1lbnQgcmVnaXN0cnkuXG4gKiBNYXBzIGRlcGxveWVkIENvZGVQaXBlbGluZSBBUk5zIGJhY2sgdG8gcGlwZWxpbmUgcmVjb3JkcyBhbmQgb3JnIElEcy5cbiAqIFBvcHVsYXRlZCBieSB0aGUgZGVwbG95IGNvbW1hbmQgYWZ0ZXIgc3VjY2Vzc2Z1bCBDREsgZGVwbG95LlxuICogVXNlZCBieSB0aGUgcGlwZWxpbmUtZXZlbnRzIExhbWJkYSB0byByZXNvbHZlIEV2ZW50QnJpZGdlIGV2ZW50cyB0byBvcmctc2NvcGVkIHJlY29yZHMuXG4gKlxuICogQHRhYmxlIHBpcGVsaW5lX3JlZ2lzdHJ5XG4gKi9cbmV4cG9ydCBjb25zdCBwaXBlbGluZVJlZ2lzdHJ5ID0gcGdUYWJsZSgncGlwZWxpbmVfcmVnaXN0cnknLCB7XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG4gIC8vIFRoZSBwbGF0Zm9ybSdzIHBpcGVsaW5lIHJlY29yZCBpZCDigJQgYSBTVEFCTEUgdXVpZCBjcmVhdGVkIHdpdGggdGhlIHBpcGVsaW5lXG4gIC8vIHJlY29yZCwga25vd24gYXQgQ0RLIHN5bnRoLCBhbmQgYXBwbGllZCB0byB0aGUgbGl2ZSBDb2RlUGlwZWxpbmUgYXMgdGhlXG4gIC8vIGBQSVBFTElORV9FVkVOVF9JRGAgdGFnLiBUaGUgZXZlbnRzIExhbWJkYSByZWFkcyB0aGF0IHRhZyBhbmQgcmVwb3J0c1xuICAvLyBhZ2FpbnN0IHRoaXMgaWQsIHNvIGl0IElTIHRoZSBldmVudCBqb2luIGtleSAocmVwbGFjaW5nIHRoZSBtYXNrZWQgQVJOIOKAlFxuICAvLyBpdCBjYXJyaWVzIG5vIEFXUyBhY2NvdW50L3JlZ2lvbiwgc28gbm8gbWFza2luZyBpcyBuZWVkZWQpLiBVbmlxdWU6IG9uZVxuICAvLyByZWdpc3RyeSByb3cgcGVyIHBpcGVsaW5lICsgdGhlIHVwc2VydCBrZXkgZm9yIChyZSlyZWdpc3RyYXRpb24uXG4gIHBpcGVsaW5lSWQ6IHV1aWQoJ3BpcGVsaW5lX2lkJykubm90TnVsbCgpLnVuaXF1ZSgpLFxuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHBpcGVsaW5lTmFtZTogdmFyY2hhcigncGlwZWxpbmVfbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICByZWdpb246IHZhcmNoYXIoJ3JlZ2lvbicsIHsgbGVuZ3RoOiAzMCB9KSxcbiAgcHJvamVjdDogdmFyY2hhcigncHJvamVjdCcsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIG9yZ2FuaXphdGlvbjogdmFyY2hhcignb3JnYW5pemF0aW9uJywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgbGFzdERlcGxveWVkOiB0aW1lc3RhbXAoJ2xhc3RfZGVwbG95ZWQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgc3RhY2tOYW1lOiB2YXJjaGFyKCdzdGFja19uYW1lJywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIG9yZ0lkSWR4OiBpbmRleCgncmVnaXN0cnlfb3JnX2lkX2lkeCcpLm9uKHRhYmxlLm9yZ0lkKSxcbiAgb3JnUmVnaW9uSWR4OiBpbmRleCgncmVnaXN0cnlfb3JnX3JlZ2lvbl9pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUucmVnaW9uKSxcbn0pKTtcblxuLyoqXG4gKiBFdmVudCBzb3VyY2UgaWRlbnRpZmllcnMgZm9yIHBpcGVsaW5lX2V2ZW50cy5cbiAqL1xuZXhwb3J0IHR5cGUgRXZlbnRTb3VyY2UgPSAnY29kZXBpcGVsaW5lJyB8ICdjb2RlYnVpbGQnIHwgJ3BsdWdpbi1idWlsZCc7XG5cbi8qKlxuICogRXZlbnQgdHlwZSBncmFudWxhcml0eSBsZXZlbHMgZm9yIHBpcGVsaW5lX2V2ZW50cy5cbiAqL1xuZXhwb3J0IHR5cGUgRXZlbnRUeXBlID0gJ1BJUEVMSU5FJyB8ICdTVEFHRScgfCAnQUNUSU9OJyB8ICdCVUlMRCc7XG5cbi8qKlxuICogUGlwZWxpbmUgZXhlY3V0aW9uIGFuZCBidWlsZCBldmVudHMuXG4gKiBDYXB0dXJlcyBDb2RlUGlwZWxpbmUvQ29kZUJ1aWxkIHN0YXRlIGNoYW5nZXMgZnJvbSBFdmVudEJyaWRnZVxuICogYW5kIHBsdWdpbiBEb2NrZXIgYnVpbGQgb3V0Y29tZXMgZnJvbSBCdWxsTVEuXG4gKiBBbGwgZXZlbnRzIGFyZSBvcmctc2NvcGVkIGZvciBtdWx0aS10ZW5hbnQgcmVwb3J0aW5nLlxuICpcbiAqIEB0YWJsZSBwaXBlbGluZV9ldmVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IHBpcGVsaW5lRXZlbnQgPSBwZ1RhYmxlKCdwaXBlbGluZV9ldmVudHMnLCB7XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG4gIHBpcGVsaW5lSWQ6IHV1aWQoJ3BpcGVsaW5lX2lkJyksXG4gIG9yZ0lkOiB2YXJjaGFyKCdvcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgZXZlbnRTb3VyY2U6IHZhcmNoYXIoJ2V2ZW50X3NvdXJjZScsIHsgbGVuZ3RoOiA1MCB9KS4kdHlwZTxFdmVudFNvdXJjZT4oKS5ub3ROdWxsKCksXG4gIGV2ZW50VHlwZTogdmFyY2hhcignZXZlbnRfdHlwZScsIHsgbGVuZ3RoOiA1MCB9KS4kdHlwZTxFdmVudFR5cGU+KCkubm90TnVsbCgpLFxuICBzdGF0dXM6IHZhcmNoYXIoJ3N0YXR1cycsIHsgbGVuZ3RoOiAyMCB9KS5ub3ROdWxsKCksXG4gIGV4ZWN1dGlvbklkOiB2YXJjaGFyKCdleGVjdXRpb25faWQnLCB7IGxlbmd0aDogMjU1IH0pLFxuICBzdGFnZU5hbWU6IHZhcmNoYXIoJ3N0YWdlX25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLFxuICBhY3Rpb25OYW1lOiB2YXJjaGFyKCdhY3Rpb25fbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIGVycm9yTWVzc2FnZTogdGV4dCgnZXJyb3JfbWVzc2FnZScpLFxuICBzdGFydGVkQXQ6IHRpbWVzdGFtcCgnc3RhcnRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBjb21wbGV0ZWRBdDogdGltZXN0YW1wKCdjb21wbGV0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgZHVyYXRpb25NczogaW50ZWdlcignZHVyYXRpb25fbXMnKSxcbiAgLy8gRE9SQSBkZXBsb3ktYXR0cmlidXRpb24gKGFsbCBudWxsYWJsZTsgcG9wdWxhdGVkIGF0IGluZ2VzdCB3aGVuIHRoZSBzb3VyY2VcbiAgLy8gZXZlbnQgY2FycmllcyB0aGVtIOKAlCBsZWdhY3kvQ0ktb25seSBldmVudHMgbGVhdmUgdGhlbSBOVUxMKS4gYGVudmlyb25tZW50YFxuICAvLyBpcyB0aGUgZGVwbG95IHRhcmdldCAoZS5nLiBcInByb2R1Y3Rpb25cIik7IGl0cyBwcmVzZW5jZSBtYXJrcyBhbiBleGVjdXRpb25cbiAgLy8gYXMgYSByZWFsIGRlcGxveW1lbnQsIGxldHRpbmcgRE9SQSBzY29wZSBwYXN0IGdlbmVyaWMgcGlwZWxpbmUgcnVucy5cbiAgLy8gYGNvbW1pdFNoYWAvYGNvbW1pdFJlZmAgY2FwdHVyZSB0aGUgc291cmNlIHJldmlzaW9uIGZvciBsZWFkLXRpbWUgd29yay5cbiAgY29tbWl0U2hhOiB2YXJjaGFyKCdjb21taXRfc2hhJywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgY29tbWl0UmVmOiB2YXJjaGFyKCdjb21taXRfcmVmJywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgZW52aXJvbm1lbnQ6IHZhcmNoYXIoJ2Vudmlyb25tZW50JywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgZGV0YWlsOiBqc29uYignZGV0YWlsJykuJHR5cGU8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgcGlwZWxpbmVJZElkeDogaW5kZXgoJ2V2ZW50X3BpcGVsaW5lX2lkX2lkeCcpLm9uKHRhYmxlLnBpcGVsaW5lSWQpLFxuICBvcmdJZElkeDogaW5kZXgoJ2V2ZW50X29yZ19pZF9pZHgnKS5vbih0YWJsZS5vcmdJZCksXG4gIGV2ZW50VHlwZUlkeDogaW5kZXgoJ2V2ZW50X3R5cGVfaWR4Jykub24odGFibGUuZXZlbnRUeXBlKSxcbiAgc3RhdHVzSWR4OiBpbmRleCgnZXZlbnRfc3RhdHVzX2lkeCcpLm9uKHRhYmxlLnN0YXR1cyksXG4gIGV4ZWN1dGlvbklkSWR4OiBpbmRleCgnZXZlbnRfZXhlY3V0aW9uX2lkX2lkeCcpLm9uKHRhYmxlLmV4ZWN1dGlvbklkKSxcbiAgY3JlYXRlZEF0SWR4OiBpbmRleCgnZXZlbnRfY3JlYXRlZF9hdF9pZHgnKS5vbih0YWJsZS5jcmVhdGVkQXQpLFxuICBvcmdUeXBlQ3JlYXRlZElkeDogaW5kZXgoJ2V2ZW50X29yZ190eXBlX2NyZWF0ZWRfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLmV2ZW50VHlwZSwgdGFibGUuY3JlYXRlZEF0KSxcbiAgb3JnU291cmNlU3RhdHVzSWR4OiBpbmRleCgnZXZlbnRfb3JnX3NvdXJjZV9zdGF0dXNfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLmV2ZW50U291cmNlLCB0YWJsZS5zdGF0dXMpLFxuICAvLyBJZGVtcG90ZW5jeTogRXZlbnRCcmlkZ2Ug4oaSIFNRUyBpcyBhdC1sZWFzdC1vbmNlLCBzbyB0aGUgc2FtZSBzdGF0ZS1jaGFuZ2VcbiAgLy8gY2FuIGJlIGRlbGl2ZXJlZCB0d2ljZS4gVGhpcyBwYXJ0aWFsIHVuaXF1ZSBpbmRleCBkZWR1cHMgcmUtZGVsaXZlcmllc1xuICAvLyAocGFpcmVkIHdpdGggYG9uQ29uZmxpY3REb05vdGhpbmdgIGluIHJlcG9ydGluZy1zZXJ2aWNlLmluZ2VzdEV2ZW50cykuXG4gIC8vIFBhcnRpYWwgKGV4ZWN1dGlvbl9pZCBJUyBOT1QgTlVMTCkgYmVjYXVzZSB0aGF0J3MgdGhlIG5hdHVyYWwgcGVyLWV2ZW50XG4gIC8vIGtleTsgZXZlbnRzIHdpdGhvdXQgYW4gZXhlY3V0aW9uSWQgKHJhcmUpIGFyZW4ndCBkZWR1cGVkLCB3aGljaCBpcyBzYWZlLlxuICAvLyBJbmNsdWRlcyBwaXBlbGluZV9pZCBzbyBhICh0aGVvcmV0aWNhbCkgZXhlY3V0aW9uLWlkIHJldXNlIGFjcm9zcyBwaXBlbGluZXNcbiAgLy8gY2FuJ3QgY29sbGlkZSBub3cgdGhhdCB0aGUgQVJOIGlzIG5vIGxvbmdlciBwYXJ0IG9mIHRoZSByb3cuXG4gIC8vXG4gIC8vIENPQUxFU0NFIHRoZSBudWxsYWJsZSBwYXJ0cyB0byBzZW50aW5lbHMgKGV4cHJlc3Npb24gaW5kZXgpOiBQSVBFTElORS9TVEFHRS9cbiAgLy8gQlVJTEQgZXZlbnRzIGxlYXZlIHN0YWdlX25hbWUvYWN0aW9uX25hbWUgTlVMTCAocGx1Z2luLWJ1aWxkIGFsc28gcGlwZWxpbmVfaWRcbiAgLy8gTlVMTCksIGFuZCBQb3N0Z3JlcyB0cmVhdHMgTlVMTHMgYXMgRElTVElOQ1QgaW4gYSB1bmlxdWUgaW5kZXgg4oCUIHNvIHRoZSBwbGFpblxuICAvLyBjb2x1bW4gaW5kZXggbmV2ZXIgbWF0Y2hlcyBmb3IgdGhvc2UgdHlwZXMgYW5kIG9uQ29uZmxpY3REb05vdGhpbmcgY2FuJ3QgZGVkdXBcbiAgLy8gdGhlaXIgYXQtbGVhc3Qtb25jZSByZS1kZWxpdmVyaWVzLiBDb2xsYXBzaW5nIE5VTEzihpInJyBtYWtlcyBlcXVhbCBldmVudHMgZXF1YWwuXG4gIC8vIChkcml6emxlJ3MgdW5pcXVlSW5kZXggY2FuJ3QgZXhwcmVzcyBOVUxMUyBOT1QgRElTVElOQ1Qgb24gYSBwYXJ0aWFsIGluZGV4LCBzb1xuICAvLyB3ZSB1c2UgdGhlIGVxdWl2YWxlbnQgZXhwcmVzc2lvbiBpbmRleC4pIE1JR1JBVElPTiBSRVFVSVJFRDogZHJpenpsZS1raXQgZ2VuZXJhdGUuXG4gIGRlZHVwSWR4OiB1bmlxdWVJbmRleCgnZXZlbnRfZGVkdXBfaWR4JylcbiAgICAub24oXG4gICAgICBzcWxgY29hbGVzY2UoJHt0YWJsZS5waXBlbGluZUlkfTo6dGV4dCwgJycpYCxcbiAgICAgIHRhYmxlLmV4ZWN1dGlvbklkLFxuICAgICAgdGFibGUuZXZlbnRUeXBlLFxuICAgICAgdGFibGUuc3RhdHVzLFxuICAgICAgc3FsYGNvYWxlc2NlKCR7dGFibGUuc3RhZ2VOYW1lfSwgJycpYCxcbiAgICAgIHNxbGBjb2FsZXNjZSgke3RhYmxlLmFjdGlvbk5hbWV9LCAnJylgLFxuICAgIClcbiAgICAud2hlcmUoc3FsYGV4ZWN1dGlvbl9pZCBJUyBOT1QgTlVMTGApLFxuICAvLyBET1JBIGRlcGxveS1zY29wZWQgcmVhZHM6IG9ubHkgUElQRUxJTkUtbGV2ZWwgZXhlY3V0aW9ucyB0YWdnZWQgd2l0aCBhXG4gIC8vIGRlcGxveSBlbnZpcm9ubWVudC4gYGV2ZW50X3R5cGVgIGlzIGluIHRoZSBpbmRleCBiZWNhdXNlIHRoZSBldmVudHMgTGFtYmRhXG4gIC8vIHRhZ3MgRVZFUlkgZXZlbnQgb2YgYSBkZXBsb3llZCBwaXBlbGluZSAoU1RBR0UvQUNUSU9OIHRvbyksIHdoaWxlIHRoZSBET1JBXG4gIC8vIHNjYW4gd2FudHMgb25seSBgZXZlbnRfdHlwZT0nUElQRUxJTkUnYCDigJQgaW5jbHVkaW5nIGl0IHJlc3RvcmVzIHNlbGVjdGl2aXR5LlxuICAvLyBQYXJ0aWFsIChlbnZpcm9ubWVudCBJUyBOT1QgTlVMTCkga2VlcHMgaXQgc21hbGwg4oCUIGxlZ2FjeS9DSS1vbmx5IGV2ZW50c1xuICAvLyBhcmVuJ3QgaW5kZXhlZC4gVGhlIGRlZmF1bHQgcnVuLWJhc2VkIERPUkEgcGF0aCAobm8gZW52aXJvbm1lbnQpIGNhbid0IHVzZVxuICAvLyB0aGlzIHBhcnRpYWwgaW5kZXg7IGl0IHJlbGllcyBvbiBldmVudF9waXBlbGluZV90eXBlX3N0YXJ0ZWRfaWR4IGJlbG93LlxuICAvLyBNSUdSQVRJT04gUkVRVUlSRUQ6IGRyaXp6bGUta2l0IGdlbmVyYXRlLlxuICBlbnZUeXBlU3RhcnRlZElkeDogaW5kZXgoJ2V2ZW50X2Vudl90eXBlX3N0YXJ0ZWRfaWR4JylcbiAgICAub24odGFibGUuZW52aXJvbm1lbnQsIHRhYmxlLmV2ZW50VHlwZSwgdGFibGUuc3RhcnRlZEF0KVxuICAgIC53aGVyZShzcWxgZW52aXJvbm1lbnQgSVMgTk9UIE5VTExgKSxcbiAgLy8gc3RhcnRlZF9hdCByYW5nZSBzY2FuczogZXZlcnkgQ2F0ZWdvcnktMSByZXBvcnQgYW5kIHRoZSBkZWZhdWx0IHJ1bi1iYXNlZFxuICAvLyBET1JBIHBhdGggZmlsdGVycyBgZXZlbnRfdHlwZT0nUElQRUxJTkUnIEFORCBzdGFydGVkX2F0IEJFVFdFRU4g4oCmYCBqb2luZWQgb25cbiAgLy8gcGlwZWxpbmVfaWQsIGJ1dCB0aGUgb3RoZXIgZXZlbnQgY29tcG9zaXRlIGluZGV4IGlzIG9uIGNyZWF0ZWRfYXQsIG5vdFxuICAvLyBzdGFydGVkX2F0IOKAlCBzbyB0aGUgcmFuZ2Ugc2NhbiBoYWQgbm8gaWRlYWwgaW5kZXguIFRoaXMgY29tcG9zaXRlIHNlcnZlcyB0aGVcbiAgLy8gam9pbi1kcml2ZW4gc2NhbiBieSBwaXBlbGluZV9pZC4gTUlHUkFUSU9OIFJFUVVJUkVEOiBkcml6emxlLWtpdCBnZW5lcmF0ZS5cbiAgcGlwZWxpbmVUeXBlU3RhcnRlZElkeDogaW5kZXgoJ2V2ZW50X3BpcGVsaW5lX3R5cGVfc3RhcnRlZF9pZHgnKVxuICAgIC5vbih0YWJsZS5waXBlbGluZUlkLCB0YWJsZS5ldmVudFR5cGUsIHRhYmxlLnN0YXJ0ZWRBdCksXG59KSk7XG5cbi8qKlxuICogVHlwZVNjcmlwdCB0eXBlcyByZXByZXNlbnRpbmcgZGF0YWJhc2Ugcm93c1xuICovXG5leHBvcnQgdHlwZSBQaXBlbGluZSA9IHR5cGVvZiBwaXBlbGluZS4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQaXBlbGluZUluc2VydCA9IHR5cGVvZiBwaXBlbGluZS4kaW5mZXJJbnNlcnQ7XG5cbmV4cG9ydCB0eXBlIFBpcGVsaW5lUmVnaXN0cnkgPSB0eXBlb2YgcGlwZWxpbmVSZWdpc3RyeS4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQaXBlbGluZVJlZ2lzdHJ5SW5zZXJ0ID0gdHlwZW9mIHBpcGVsaW5lUmVnaXN0cnkuJGluZmVySW5zZXJ0O1xuXG5leHBvcnQgdHlwZSBQaXBlbGluZUV2ZW50ID0gdHlwZW9mIHBpcGVsaW5lRXZlbnQuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGlwZWxpbmVFdmVudEluc2VydCA9IHR5cGVvZiBwaXBlbGluZUV2ZW50LiRpbmZlckluc2VydDtcblxuLyoqXG4gKiBIZWxwZXIgdHlwZXMgZm9yIHdvcmtpbmcgd2l0aCBwYXJ0aWFsIHVwZGF0ZXNcbiAqL1xuZXhwb3J0IHR5cGUgUGlwZWxpbmVVcGRhdGUgPSBQYXJ0aWFsPE9taXQ8UGlwZWxpbmVJbnNlcnQsICdpZCcgfCAnY3JlYXRlZEF0JyB8ICdjcmVhdGVkQnknPj47XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { AccessModifier, ComputeType, PluginType } from '@pipeline-builder/api-core';
1
+ import { AccessModifier, ComputeType, PluginType, type EntityLabels, type EntityLink } from '@pipeline-builder/api-core';
2
2
  /**
3
3
  * Secret requirement for a plugin.
4
4
  * Declares named secrets the plugin expects at build time.
@@ -515,6 +515,121 @@ export declare const plugin: import("drizzle-orm/pg-core").PgTableWithColumns<{
515
515
  }, {}, {
516
516
  length: 20;
517
517
  }>;
518
+ ownerId: import("drizzle-orm/pg-core").PgColumn<{
519
+ name: "owner_id";
520
+ tableName: "plugins";
521
+ dataType: "string";
522
+ columnType: "PgText";
523
+ data: string;
524
+ driverParam: string;
525
+ notNull: false;
526
+ hasDefault: false;
527
+ isPrimaryKey: false;
528
+ isAutoincrement: false;
529
+ hasRuntimeDefault: false;
530
+ enumValues: [string, ...string[]];
531
+ baseColumn: never;
532
+ identity: undefined;
533
+ generated: undefined;
534
+ }, {}, {}>;
535
+ ownerType: import("drizzle-orm/pg-core").PgColumn<{
536
+ name: "owner_type";
537
+ tableName: "plugins";
538
+ dataType: "string";
539
+ columnType: "PgVarchar";
540
+ data: "team" | "user";
541
+ driverParam: string;
542
+ notNull: false;
543
+ hasDefault: false;
544
+ isPrimaryKey: false;
545
+ isAutoincrement: false;
546
+ hasRuntimeDefault: false;
547
+ enumValues: [string, ...string[]];
548
+ baseColumn: never;
549
+ identity: undefined;
550
+ generated: undefined;
551
+ }, {}, {
552
+ length: 10;
553
+ $type: "team" | "user";
554
+ }>;
555
+ lifecycle: import("drizzle-orm/pg-core").PgColumn<{
556
+ name: "lifecycle";
557
+ tableName: "plugins";
558
+ dataType: "string";
559
+ columnType: "PgVarchar";
560
+ data: "deprecated" | "experimental" | "production";
561
+ driverParam: string;
562
+ notNull: true;
563
+ hasDefault: true;
564
+ isPrimaryKey: false;
565
+ isAutoincrement: false;
566
+ hasRuntimeDefault: false;
567
+ enumValues: [string, ...string[]];
568
+ baseColumn: never;
569
+ identity: undefined;
570
+ generated: undefined;
571
+ }, {}, {
572
+ length: 20;
573
+ $type: "deprecated" | "experimental" | "production";
574
+ }>;
575
+ criticality: import("drizzle-orm/pg-core").PgColumn<{
576
+ name: "criticality";
577
+ tableName: "plugins";
578
+ dataType: "string";
579
+ columnType: "PgVarchar";
580
+ data: "critical" | "high" | "low" | "medium";
581
+ driverParam: string;
582
+ notNull: false;
583
+ hasDefault: false;
584
+ isPrimaryKey: false;
585
+ isAutoincrement: false;
586
+ hasRuntimeDefault: false;
587
+ enumValues: [string, ...string[]];
588
+ baseColumn: never;
589
+ identity: undefined;
590
+ generated: undefined;
591
+ }, {}, {
592
+ length: 10;
593
+ $type: "critical" | "high" | "low" | "medium";
594
+ }>;
595
+ labels: import("drizzle-orm/pg-core").PgColumn<{
596
+ name: "labels";
597
+ tableName: "plugins";
598
+ dataType: "json";
599
+ columnType: "PgJsonb";
600
+ data: EntityLabels;
601
+ driverParam: unknown;
602
+ notNull: true;
603
+ hasDefault: true;
604
+ isPrimaryKey: false;
605
+ isAutoincrement: false;
606
+ hasRuntimeDefault: false;
607
+ enumValues: undefined;
608
+ baseColumn: never;
609
+ identity: undefined;
610
+ generated: undefined;
611
+ }, {}, {
612
+ $type: EntityLabels;
613
+ }>;
614
+ links: import("drizzle-orm/pg-core").PgColumn<{
615
+ name: "links";
616
+ tableName: "plugins";
617
+ dataType: "json";
618
+ columnType: "PgJsonb";
619
+ data: EntityLink[];
620
+ driverParam: unknown;
621
+ notNull: true;
622
+ hasDefault: true;
623
+ isPrimaryKey: false;
624
+ isAutoincrement: false;
625
+ hasRuntimeDefault: false;
626
+ enumValues: undefined;
627
+ baseColumn: never;
628
+ identity: undefined;
629
+ generated: undefined;
630
+ }, {}, {
631
+ $type: EntityLink[];
632
+ }>;
518
633
  accessModifier: import("drizzle-orm/pg-core").PgColumn<{
519
634
  name: "access_modifier";
520
635
  tableName: "plugins";
@@ -95,6 +95,24 @@ export const plugin = pgTable('plugins', {
95
95
  buildType: varchar('build_type', { length: 20 })
96
96
  .default('build_image')
97
97
  .notNull(),
98
+ // Developer-portal catalog metadata (ownership / lifecycle / classification).
99
+ // ownerId defaults to the creating user (set at insert), so every plugin has
100
+ // an owner for "my services" views; ownerType distinguishes user vs team.
101
+ ownerId: text('owner_id'),
102
+ ownerType: varchar('owner_type', { length: 10 }).$type(),
103
+ lifecycle: varchar('lifecycle', { length: 20 })
104
+ .$type()
105
+ .default('production')
106
+ .notNull(),
107
+ criticality: varchar('criticality', { length: 10 }).$type(),
108
+ labels: jsonb('labels')
109
+ .$type()
110
+ .default({})
111
+ .notNull(),
112
+ links: jsonb('links')
113
+ .$type()
114
+ .default([])
115
+ .notNull(),
98
116
  // Access and visibility
99
117
  accessModifier: varchar('access_modifier', { length: 10 })
100
118
  .$type()
@@ -119,6 +137,9 @@ export const plugin = pgTable('plugins', {
119
137
  updatedAtIdx: index('plugin_updated_at_idx').on(table.updatedAt),
120
138
  // Category index for filtering
121
139
  categoryIdx: index('plugin_category_idx').on(table.category),
140
+ // Developer-portal catalog indexes: "my services" (owner) + lifecycle filter.
141
+ ownerIdx: index('plugin_owner_idx').on(table.orgId, table.ownerId),
142
+ lifecycleIdx: index('plugin_lifecycle_idx').on(table.orgId, table.lifecycle),
122
143
  // Composite index for common access pattern (orgId + isActive)
123
144
  orgActiveIdx: index('plugin_org_active_idx').on(table.orgId, table.isActive),
124
145
  // Composite index for filtered queries (orgId + accessModifier + isActive)
@@ -131,4 +152,4 @@ export const plugin = pgTable('plugins', {
131
152
  // Check constraints
132
153
  versionCheck: check('plugin_version_check', sql `${table.version} ~ '^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$'`),
133
154
  }));
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3NjaGVtYS9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBWWxJOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUU7SUFDdkMsY0FBYztJQUNkLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsYUFBYSxFQUFFO0lBRTNDLGtDQUFrQztJQUNsQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztTQUN0QyxPQUFPLENBQUMsYUFBYSxDQUFDO1NBQ3RCLE9BQU8sRUFBRTtJQUVaLGVBQWU7SUFDZixTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUMxQixPQUFPLENBQUMsYUFBYSxDQUFDO1NBQ3RCLE9BQU8sRUFBRTtJQUNaLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ3ZELFVBQVUsRUFBRTtTQUNaLE9BQU8sRUFBRTtJQUNaLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQzFCLE9B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QUErQjtJQUMvQixXQUFXLEVBQUUsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFFNUQsK0RBQStEO0lBQy9ELFlBQVksRUFBRSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDO0lBRTVFLDJFQUEyRTtJQUMzRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFFL0csMEVBQTBFO0lBQzFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFBLGtCQUFrQixDQUFDO0lBRW5ILDhDQUE4QztJQUM5QyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsZ0NBQWdDLENBQUM7U0FDaEUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDO0lBRTdDLG9CQUFvQjtJQUNwQixZQUFZLEVBQUUsS0FBSyxDQUFFLHNCQUFzQixFQUN6QyxHQUFHLENBQUEsR0FBRyxLQUFLLENBQUMsT0FBTyxvRUFBb0UsQ0FDeEY7Q0FDRixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBBY2Nlc3NNb2RpZmllciwgQ29tcHV0ZVR5cGUsIFBsdWdpblR5cGUsIFNZU1RFTV9PUkdfSUQgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBzcWwgfSBmcm9tICdkcml6emxlLW9ybSc7XG5pbXBvcnQgeyBib29sZWFuLCBpbnRlZ2VyLCB2YXJjaGFyLCBwZ1RhYmxlLCB0ZXh0LCB0aW1lc3RhbXAsIHV1aWQsIGpzb25iLCBpbmRleCwgdW5pcXVlSW5kZXgsIGNoZWNrIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSc7XG5cbi8qKlxuICogU2VjcmV0IHJlcXVpcmVtZW50IGZvciBhIHBsdWdpbi5cbiAqIERlY2xhcmVzIG5hbWVkIHNlY3JldHMgdGhlIHBsdWdpbiBleHBlY3RzIGF0IGJ1aWxkIHRpbWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luU2VjcmV0IHtcbiAgbmFtZTogc3RyaW5nO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGFibGUgZm9yIHN0b3JpbmcgcmV1c2FibGUgcGx1Z2luIGNvbmZpZ3VyYXRpb25zLlxuICogUGx1Z2lucyBkZWZpbmUgdGhlIGJlaGF2aW9yIG9mIHN5bnRoL2J1aWxkIHN0ZXBzIGluIENESyBwaXBlbGluZXMuXG4gKlxuICogRmVhdHVyZXMgKiAtIFZlcnNpb25pbmcgc3VwcG9ydCB3aXRoIHNlbWFudGljIHZlcnNpb25pbmdcbiAqIC0gQWNjZXNzIGNvbnRyb2wgdmlhIG9yZ0lkIGFuZCBhY2Nlc3NNb2RpZmllclxuICogLSBGdWxsIGF1ZGl0IHRyYWlsIChjcmVhdGVkL3VwZGF0ZWQgYnkvYXQpXG4gKiAtIEZsZXhpYmxlIG1ldGFkYXRhIHN0b3JhZ2UgdmlhIEpTT05CXG4gKiAtIFN1cHBvcnQgZm9yIGJvdGggU2hlbGxTdGVwIGFuZCBDb2RlQnVpbGRTdGVwIHR5cGVzXG4gKlxuICogQHRhYmxlIHBsdWdpbnNcbiAqL1xuZXhwb3J0IGNvbnN0IHBsdWdpbiA9IHBnVGFibGUoJ3BsdWdpbnMnLCB7XG4gIC8vIFByaW1hcnkga2V5XG4gIGlkOiB1dWlkKCdpZCcpLnByaW1hcnlLZXkoKS5kZWZhdWx0UmFuZG9tKCksXG5cbiAgLy8gT3JnYW5pemF0aW9uIGFuZCBhY2Nlc3MgY29udHJvbFxuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KVxuICAgIC5kZWZhdWx0KFNZU1RFTV9PUkdfSUQpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBBdWRpdCBmaWVsZHNcbiAgY3JlYXRlZEJ5OiB0ZXh0KCdjcmVhdGVkX2J5JylcbiAgICAuZGVmYXVsdChTWVNURU1fT1JHX0lEKVxuICAgIC5ub3ROdWxsKCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSlcbiAgICAuZGVmYXVsdE5vdygpXG4gICAgLm5vdE51bGwoKSxcbiAgdXBkYXRlZEJ5OiB0ZXh0KCd1cGRhdGVkX2J5JylcbiAgICAuZGVmYXVsdChTWVNURU1fT1JHX0lEKVxuICAgIC5ub3ROdWxsKCksXG4gIHVwZGF0ZWRBdDogdGltZXN0YW1wKCd1cGRhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSlcbiAgICAuZGVmYXVsdE5vdygpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBDb3JlIHBsdWdpbiBpbmZvcm1hdGlvblxuICBuYW1lOiB2YXJjaGFyKCduYW1lJywgeyBsZW5ndGg6IDI1NSB9KVxuICAgIC5ub3ROdWxsKCksXG4gIGRlc2NyaXB0aW9uOiB0ZXh0KCdkZXNjcmlwdGlvbicpLFxuICBrZXl3b3JkczoganNvbmIoJ2tleXdvcmRzJylcbiAgICAuJHR5cGU8c3RyaW5nW10+KClcbiAgICAuZGVmYXVsdChbXSlcbiAgICAubm90TnVsbCgpLFxuICB2ZXJzaW9uOiB2YXJjaGFyKCd2ZXJzaW9uJywgeyBsZW5ndGg6IDUwIH0pXG4gICAgLmRlZmF1bHQoJzEuMC4wJylcbiAgICAubm90TnVsbCgpLFxuXG4gIC8vIFBsdWdpbiBjbGFzc2lmaWNhdGlvblxuICBjYXRlZ29yeTogdmFyY2hhcignY2F0ZWdvcnknLCB7IGxlbmd0aDogNTAgfSlcbiAgICAuZGVmYXVsdCgndW5rbm93bicpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBQbHVnaW4gY29uZmlndXJhdGlvblxuICBtZXRhZGF0YToganNvbmIoJ21ldGFkYXRhJylcbiAgICAuJHR5cGU8UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4+KClcbiAgICAuZGVmYXVsdCh7fSlcbiAgICAubm90TnVsbCgpLFxuICBwbHVnaW5UeXBlOiB2YXJjaGFyKCdwbHVnaW5fdHlwZScsIHsgbGVuZ3RoOiA1MCB9KVxuICAgIC4kdHlwZTxQbHVnaW5UeXBlPigpXG4gICAgLmRlZmF1bHQoJ0NvZGVCdWlsZFN0ZXAnIGFzIFBsdWdpblR5cGUpXG4gICAgLm5vdE51bGwoKSxcbiAgY29tcHV0ZVR5cGU6IHZhcmNoYXIoJ2NvbXB1dGVfdHlwZScsIHsgbGVuZ3RoOiA1MCB9KVxuICAgIC4kdHlwZTxDb21wdXRlVHlwZT4oKVxuICAgIC5kZWZhdWx0KCdTTUFMTCcgYXMgQ29tcHV0ZVR5cGUpXG4gICAgLm5vdE51bGwoKSxcbiAgdGltZW91dDogaW50ZWdlcigndGltZW91dCcpLFxuICBmYWlsdXJlQmVoYXZpb3I6IHZhcmNoYXIoJ2ZhaWx1cmVfYmVoYXZpb3InLCB7IGxlbmd0aDogMTAgfSlcbiAgICAuJHR5cGU8J2ZhaWwnIHwgJ3dhcm4nIHwgJ2lnbm9yZSc+KClcbiAgICAuZGVmYXVsdCgnZmFpbCcpXG4gICAgLm5vdE51bGwoKSxcbiAgc2VjcmV0czoganNvbmIoJ3NlY3JldHMnKVxuICAgIC4kdHlwZTxQbHVnaW5TZWNyZXRbXT4oKVxuICAgIC5kZWZhdWx0KFtdKVxuICAgIC5ub3ROdWxsKCksXG4gIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IHZhcmNoYXIoJ3ByaW1hcnlfb3V0cHV0X2RpcmVjdG9yeScsIHsgbGVuZ3RoOiAyOCB9KSxcblxuICAvLyBCdWlsZCBjb25maWd1cmF0aW9uXG4gIGVudjoganNvbmIoJ2VudicpXG4gICAgLiR0eXBlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KClcbiAgICAuZGVmYXVsdCh7fSlcbiAgICAubm90TnVsbCgpLFxuICBidWlsZEFyZ3M6IGpzb25iKCdidWlsZF9hcmdzJylcbiAgICAuJHR5cGU8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKVxuICAgIC5kZWZhdWx0KHt9KVxuICAgIC5ub3ROdWxsKCksXG4gIGluc3RhbGxDb21tYW5kczogdGV4dCgnaW5zdGFsbF9jb21tYW5kcycpXG4gICAgLmFycmF5KClcbiAgICAuZGVmYXVsdChbXSlcbiAgICAubm90TnVsbCgpLFxuICBjb21tYW5kczogdGV4dCgnY29tbWFuZHMnKVxuICAgIC5hcnJheSgpXG4gICAgLmRlZmF1bHQoW10pXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBEb2NrZXIgY29uZmlndXJhdGlvblxuICBkb2NrZXJmaWxlOiB0ZXh0KCdkb2NrZXJmaWxlJyksXG4gIGJ1aWxkVHlwZTogdmFyY2hhcignYnVpbGRfdHlwZScsIHsgbGVuZ3RoOiAyMCB9KVxuICAgIC5kZWZhdWx0KCdidWlsZF9pbWFnZScpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBBY2Nlc3MgYW5kIHZpc2liaWxpdHlcbiAgYWNjZXNzTW9kaWZpZXI6IHZhcmNoYXIoJ2FjY2Vzc19tb2RpZmllcicsIHsgbGVuZ3RoOiAxMCB9KVxuICAgIC4kdHlwZTxBY2Nlc3NNb2RpZmllcj4oKVxuICAgIC5kZWZhdWx0KCdwcml2YXRlJyBhcyBBY2Nlc3NNb2RpZmllcilcbiAgICAubm90TnVsbCgpLFxuICBpc0RlZmF1bHQ6IGJvb2xlYW4oJ2lzX2RlZmF1bHQnKVxuICAgIC5kZWZhdWx0KGZhbHNlKVxuICAgIC5ub3ROdWxsKCksXG4gIGlzQWN0aXZlOiBib29sZWFuKCdpc19hY3RpdmUnKVxuICAgIC5kZWZhdWx0KHRydWUpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBEZWxldGlvbiB0cmFja2luZyAoc29mdCBkZWxldGUpXG4gIGRlbGV0ZWRBdDogdGltZXN0YW1wKCdkZWxldGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGRlbGV0ZWRCeTogdGV4dCgnZGVsZXRlZF9ieScpLFxufSwgKHRhYmxlKSA9PiAoe1xuICAvLyBJbmRleGVzIGZvciBjb21tb24gcXVlcmllc1xuICBuYW1lSWR4OiBpbmRleCgncGx1Z2luX25hbWVfaWR4Jykub24odGFibGUubmFtZSksXG4gIG9yZ0lkSWR4OiBpbmRleCgncGx1Z2luX29yZ19pZF9pZHgnKS5vbih0YWJsZS5vcmdJZCksXG4gIHZlcnNpb25JZHg6IGluZGV4KCdwbHVnaW5fdmVyc2lvbl9pZHgnKS5vbih0YWJsZS52ZXJzaW9uKSxcbiAgYWN0aXZlSWR4OiBpbmRleCgncGx1Z2luX2FjdGl2ZV9pZHgnKS5vbih0YWJsZS5pc0FjdGl2ZSksXG4gIGNyZWF0ZWRBdElkeDogaW5kZXgoJ3BsdWdpbl9jcmVhdGVkX2F0X2lkeCcpLm9uKHRhYmxlLmNyZWF0ZWRBdCksXG4gIHVwZGF0ZWRBdElkeDogaW5kZXgoJ3BsdWdpbl91cGRhdGVkX2F0X2lkeCcpLm9uKHRhYmxlLnVwZGF0ZWRBdCksXG5cbiAgLy8gQ2F0ZWdvcnkgaW5kZXggZm9yIGZpbHRlcmluZ1xuICBjYXRlZ29yeUlkeDogaW5kZXgoJ3BsdWdpbl9jYXRlZ29yeV9pZHgnKS5vbih0YWJsZS5jYXRlZ29yeSksXG5cbiAgLy8gQ29tcG9zaXRlIGluZGV4IGZvciBjb21tb24gYWNjZXNzIHBhdHRlcm4gKG9yZ0lkICsgaXNBY3RpdmUpXG4gIG9yZ0FjdGl2ZUlkeDogaW5kZXgoJ3BsdWdpbl9vcmdfYWN0aXZlX2lkeCcpLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS5pc0FjdGl2ZSksXG5cbiAgLy8gQ29tcG9zaXRlIGluZGV4IGZvciBmaWx0ZXJlZCBxdWVyaWVzIChvcmdJZCArIGFjY2Vzc01vZGlmaWVyICsgaXNBY3RpdmUpXG4gIG9yZ0FjY2Vzc0FjdGl2ZUlkeDogaW5kZXgoJ3BsdWdpbl9vcmdfYWNjZXNzX2FjdGl2ZV9pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUuYWNjZXNzTW9kaWZpZXIsIHRhYmxlLmlzQWN0aXZlKSxcblxuICAvLyBQYXJ0aWFsIGluZGV4IGZvciBhY3RpdmUtb25seSBxdWVyaWVzIChzbWFsbGVyLCBmYXN0ZXIgdGhhbiBmdWxsIGluZGV4KVxuICBhY3RpdmVPbmx5T3JnSWR4OiBpbmRleCgncGx1Z2luX2FjdGl2ZV9vbmx5X29yZ19pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUuY3JlYXRlZEF0KS53aGVyZShzcWxgaXNfYWN0aXZlID0gdHJ1ZWApLFxuXG4gIC8vIFVuaXF1ZSBjb25zdHJhaW50IG9uIG5hbWUgKyB2ZXJzaW9uICsgb3JnSWRcbiAgbmFtZVZlcnNpb25PcmdVbmlxdWU6IHVuaXF1ZUluZGV4KCdwbHVnaW5fbmFtZV92ZXJzaW9uX29yZ191bmlxdWUnKVxuICAgIC5vbih0YWJsZS5uYW1lLCB0YWJsZS52ZXJzaW9uLCB0YWJsZS5vcmdJZCksXG5cbiAgLy8gQ2hlY2sgY29uc3RyYWludHNcbiAgdmVyc2lvbkNoZWNrOiBjaGVjayggJ3BsdWdpbl92ZXJzaW9uX2NoZWNrJyxcbiAgICBzcWxgJHt0YWJsZS52ZXJzaW9ufSB+ICdeWzAtOV0rXFwuWzAtOV0rXFwuWzAtOV0rKC1bYS16QS1aMC05Li1dKyk/KFxcK1thLXpBLVowLTkuLV0rKT8kJ2AsXG4gICksXG59KSk7XG5cbi8qKlxuICogVHlwZVNjcmlwdCB0eXBlcyByZXByZXNlbnRpbmcgZGF0YWJhc2Ugcm93c1xuICovXG5leHBvcnQgdHlwZSBQbHVnaW4gPSB0eXBlb2YgcGx1Z2luLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBsdWdpbkluc2VydCA9IHR5cGVvZiBwbHVnaW4uJGluZmVySW5zZXJ0O1xuXG4vKipcbiAqIEhlbHBlciB0eXBlcyBmb3Igd29ya2luZyB3aXRoIHBhcnRpYWwgdXBkYXRlc1xuICovXG5leHBvcnQgdHlwZSBQbHVnaW5VcGRhdGUgPSBQYXJ0aWFsPE9taXQ8UGx1Z2luSW5zZXJ0LCAnaWQnIHwgJ2NyZWF0ZWRBdCcgfCAnY3JlYXRlZEJ5Jz4+O1xuIl19
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3NjaGVtYS9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUF3RixNQUFNLDRCQUE0QixDQUFDO0FBQzFMLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVlsSTs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFO0lBQ3ZDLGNBQWM7SUFDZCxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsRUFBRTtJQUUzQyxrQ0FBa0M7SUFDbEMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDdEMsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUN0QixPQUFPLEVBQUU7SUFFWixlQUFlO0lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUIsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUN0QixPQUFPLEVBQUU7SUFDWixTQUFTLEVBQUUsU0FBUyxDQUFDLFlBQVksRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUN2RCxVQUFVLEVBQUU7U0FDWixPQUFPLEVBQUU7SUFDWixTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUMxQixP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LEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDO0lBRTVFLDJFQUEyRTtJQUMzRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFFL0csMEVBQTBFO0lBQzFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFBLGtCQUFrQixDQUFDO0lBRW5ILDhDQUE4QztJQUM5QyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsZ0NBQWdDLENBQUM7U0FDaEUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDO0lBRTdDLG9CQUFvQjtJQUNwQixZQUFZLEVBQUUsS0FBSyxDQUFFLHNCQUFzQixFQUN6QyxHQUFHLENBQUEsR0FBRyxLQUFLLENBQUMsT0FBTyxvRUFBb0UsQ0FDeEY7Q0FDRixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBBY2Nlc3NNb2RpZmllciwgQ29tcHV0ZVR5cGUsIFBsdWdpblR5cGUsIFNZU1RFTV9PUkdfSUQsIHR5cGUgQ3JpdGljYWxpdHksIHR5cGUgRW50aXR5TGFiZWxzLCB0eXBlIEVudGl0eUxpbmssIHR5cGUgTGlmZWN5Y2xlLCB0eXBlIE93bmVyVHlwZSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7IHNxbCB9IGZyb20gJ2RyaXp6bGUtb3JtJztcbmltcG9ydCB7IGJvb2xlYW4sIGludGVnZXIsIHZhcmNoYXIsIHBnVGFibGUsIHRleHQsIHRpbWVzdGFtcCwgdXVpZCwganNvbmIsIGluZGV4LCB1bmlxdWVJbmRleCwgY2hlY2sgfSBmcm9tICdkcml6emxlLW9ybS9wZy1jb3JlJztcblxuLyoqXG4gKiBTZWNyZXQgcmVxdWlyZW1lbnQgZm9yIGEgcGx1Z2luLlxuICogRGVjbGFyZXMgbmFtZWQgc2VjcmV0cyB0aGUgcGx1Z2luIGV4cGVjdHMgYXQgYnVpbGQgdGltZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5TZWNyZXQge1xuICBuYW1lOiBzdHJpbmc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUYWJsZSBmb3Igc3RvcmluZyByZXVzYWJsZSBwbHVnaW4gY29uZmlndXJhdGlvbnMuXG4gKiBQbHVnaW5zIGRlZmluZSB0aGUgYmVoYXZpb3Igb2Ygc3ludGgvYnVpbGQgc3RlcHMgaW4gQ0RLIHBpcGVsaW5lcy5cbiAqXG4gKiBGZWF0dXJlcyAqIC0gVmVyc2lvbmluZyBzdXBwb3J0IHdpdGggc2VtYW50aWMgdmVyc2lvbmluZ1xuICogLSBBY2Nlc3MgY29udHJvbCB2aWEgb3JnSWQgYW5kIGFjY2Vzc01vZGlmaWVyXG4gKiAtIEZ1bGwgYXVkaXQgdHJhaWwgKGNyZWF0ZWQvdXBkYXRlZCBieS9hdClcbiAqIC0gRmxleGlibGUgbWV0YWRhdGEgc3RvcmFnZSB2aWEgSlNPTkJcbiAqIC0gU3VwcG9ydCBmb3IgYm90aCBTaGVsbFN0ZXAgYW5kIENvZGVCdWlsZFN0ZXAgdHlwZXNcbiAqXG4gKiBAdGFibGUgcGx1Z2luc1xuICovXG5leHBvcnQgY29uc3QgcGx1Z2luID0gcGdUYWJsZSgncGx1Z2lucycsIHtcbiAgLy8gUHJpbWFyeSBrZXlcbiAgaWQ6IHV1aWQoJ2lkJykucHJpbWFyeUtleSgpLmRlZmF1bHRSYW5kb20oKSxcblxuICAvLyBPcmdhbml6YXRpb24gYW5kIGFjY2VzcyBjb250cm9sXG4gIG9yZ0lkOiB2YXJjaGFyKCdvcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pXG4gICAgLmRlZmF1bHQoU1lTVEVNX09SR19JRClcbiAgICAubm90TnVsbCgpLFxuXG4gIC8vIEF1ZGl0IGZpZWxkc1xuICBjcmVhdGVkQnk6IHRleHQoJ2NyZWF0ZWRfYnknKVxuICAgIC5kZWZhdWx0KFNZU1RFTV9PUkdfSUQpXG4gICAgLm5vdE51bGwoKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KVxuICAgIC5kZWZhdWx0Tm93KClcbiAgICAubm90TnVsbCgpLFxuICB1cGRhdGVkQnk6IHRleHQoJ3VwZGF0ZWRfYnknKVxuICAgIC5kZWZhdWx0KFNZU1RFTV9PUkdfSUQpXG4gICAgLm5vdE51bGwoKSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KVxuICAgIC5kZWZhdWx0Tm93KClcbiAgICAubm90TnVsbCgpLFxuXG4gIC8vIENvcmUgcGx1Z2luIGluZm9ybWF0aW9uXG4gIG5hbWU6IHZhcmNoYXIoJ25hbWUnLCB7IGxlbmd0aDogMjU1IH0pXG4gICAgLm5vdE51bGwoKSxcbiAgZGVzY3JpcHRpb246IHRleHQoJ2Rlc2NyaXB0aW9uJyksXG4gIGtleXdvcmRzOiBqc29uYigna2V5d29yZHMnKVxuICAgIC4kdHlwZTxzdHJpbmdbXT4oKVxuICAgIC5kZWZhdWx0KFtdKVxuICAgIC5ub3ROdWxsKCksXG4gIHZlcnNpb246IHZhcmNoYXIoJ3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSlcbiAgICAuZGVmYXVsdCgnMS4wLjAnKVxuICAgIC5ub3ROdWxsKCksXG5cbiAgLy8gUGx1Z2luIGNsYXNzaWZpY2F0aW9uXG4gIGNhdGVnb3J5OiB2YXJjaGFyKCdjYXRlZ29yeScsIHsgbGVuZ3RoOiA1MCB9KVxuICAgIC5kZWZhdWx0KCd1bmtub3duJylcbiAgICAubm90TnVsbCgpLFxuXG4gIC8vIFBsdWdpbiBjb25maWd1cmF0aW9uXG4gIG1ldGFkYXRhOiBqc29uYignbWV0YWRhdGEnKVxuICAgIC4kdHlwZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPj4oKVxuICAgIC5kZWZhdWx0KHt9KVxuICAgIC5ub3ROdWxsKCksXG4gIHBsdWdpblR5cGU6IHZhcmNoYXIoJ3BsdWdpbl90eXBlJywgeyBsZW5ndGg6IDUwIH0pXG4gICAgLiR0eXBlPFBsdWdpblR5cGU+KClcbiAgICAuZGVmYXVsdCgnQ29kZUJ1aWxkU3RlcCcgYXMgUGx1Z2luVHlwZSlcbiAgICAubm90TnVsbCgpLFxuICBjb21wdXRlVHlwZTogdmFyY2hhcignY29tcHV0ZV90eXBlJywgeyBsZW5ndGg6IDUwIH0pXG4gICAgLiR0eXBlPENvbXB1dGVUeXBlPigpXG4gICAgLmRlZmF1bHQoJ1NNQUxMJyBhcyBDb21wdXRlVHlwZSlcbiAgICAubm90TnVsbCgpLFxuICB0aW1lb3V0OiBpbnRlZ2VyKCd0aW1lb3V0JyksXG4gIGZhaWx1cmVCZWhhdmlvcjogdmFyY2hhcignZmFpbHVyZV9iZWhhdmlvcicsIHsgbGVuZ3RoOiAxMCB9KVxuICAgIC4kdHlwZTwnZmFpbCcgfCAnd2FybicgfCAnaWdub3JlJz4oKVxuICAgIC5kZWZhdWx0KCdmYWlsJylcbiAgICAubm90TnVsbCgpLFxuICBzZWNyZXRzOiBqc29uYignc2VjcmV0cycpXG4gICAgLiR0eXBlPFBsdWdpblNlY3JldFtdPigpXG4gICAgLmRlZmF1bHQoW10pXG4gICAgLm5vdE51bGwoKSxcbiAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogdmFyY2hhcigncHJpbWFyeV9vdXRwdXRfZGlyZWN0b3J5JywgeyBsZW5ndGg6IDI4IH0pLFxuXG4gIC8vIEJ1aWxkIGNvbmZpZ3VyYXRpb25cbiAgZW52OiBqc29uYignZW52JylcbiAgICAuJHR5cGU8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKVxuICAgIC5kZWZhdWx0KHt9KVxuICAgIC5ub3ROdWxsKCksXG4gIGJ1aWxkQXJnczoganNvbmIoJ2J1aWxkX2FyZ3MnKVxuICAgIC4kdHlwZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PigpXG4gICAgLmRlZmF1bHQoe30pXG4gICAgLm5vdE51bGwoKSxcbiAgaW5zdGFsbENvbW1hbmRzOiB0ZXh0KCdpbnN0YWxsX2NvbW1hbmRzJylcbiAgICAuYXJyYXkoKVxuICAgIC5kZWZhdWx0KFtdKVxuICAgIC5ub3ROdWxsKCksXG4gIGNvbW1hbmRzOiB0ZXh0KCdjb21tYW5kcycpXG4gICAgLmFycmF5KClcbiAgICAuZGVmYXVsdChbXSlcbiAgICAubm90TnVsbCgpLFxuXG4gIC8vIERvY2tlciBjb25maWd1cmF0aW9uXG4gIGRvY2tlcmZpbGU6IHRleHQoJ2RvY2tlcmZpbGUnKSxcbiAgYnVpbGRUeXBlOiB2YXJjaGFyKCdidWlsZF90eXBlJywgeyBsZW5ndGg6IDIwIH0pXG4gICAgLmRlZmF1bHQoJ2J1aWxkX2ltYWdlJylcbiAgICAubm90TnVsbCgpLFxuXG4gIC8vIERldmVsb3Blci1wb3J0YWwgY2F0YWxvZyBtZXRhZGF0YSAob3duZXJzaGlwIC8gbGlmZWN5Y2xlIC8gY2xhc3NpZmljYXRpb24pLlxuICAvLyBvd25lcklkIGRlZmF1bHRzIHRvIHRoZSBjcmVhdGluZyB1c2VyIChzZXQgYXQgaW5zZXJ0KSwgc28gZXZlcnkgcGx1Z2luIGhhc1xuICAvLyBhbiBvd25lciBmb3IgXCJteSBzZXJ2aWNlc1wiIHZpZXdzOyBvd25lclR5cGUgZGlzdGluZ3Vpc2hlcyB1c2VyIHZzIHRlYW0uXG4gIG93bmVySWQ6IHRleHQoJ293bmVyX2lkJyksXG4gIG93bmVyVHlwZTogdmFyY2hhcignb3duZXJfdHlwZScsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxPd25lclR5cGU+KCksXG4gIGxpZmVjeWNsZTogdmFyY2hhcignbGlmZWN5Y2xlJywgeyBsZW5ndGg6IDIwIH0pXG4gICAgLiR0eXBlPExpZmVjeWNsZT4oKVxuICAgIC5kZWZhdWx0KCdwcm9kdWN0aW9uJyBhcyBMaWZlY3ljbGUpXG4gICAgLm5vdE51bGwoKSxcbiAgY3JpdGljYWxpdHk6IHZhcmNoYXIoJ2NyaXRpY2FsaXR5JywgeyBsZW5ndGg6IDEwIH0pLiR0eXBlPENyaXRpY2FsaXR5PigpLFxuICBsYWJlbHM6IGpzb25iKCdsYWJlbHMnKVxuICAgIC4kdHlwZTxFbnRpdHlMYWJlbHM+KClcbiAgICAuZGVmYXVsdCh7fSlcbiAgICAubm90TnVsbCgpLFxuICBsaW5rczoganNvbmIoJ2xpbmtzJylcbiAgICAuJHR5cGU8RW50aXR5TGlua1tdPigpXG4gICAgLmRlZmF1bHQoW10pXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBBY2Nlc3MgYW5kIHZpc2liaWxpdHlcbiAgYWNjZXNzTW9kaWZpZXI6IHZhcmNoYXIoJ2FjY2Vzc19tb2RpZmllcicsIHsgbGVuZ3RoOiAxMCB9KVxuICAgIC4kdHlwZTxBY2Nlc3NNb2RpZmllcj4oKVxuICAgIC5kZWZhdWx0KCdwcml2YXRlJyBhcyBBY2Nlc3NNb2RpZmllcilcbiAgICAubm90TnVsbCgpLFxuICBpc0RlZmF1bHQ6IGJvb2xlYW4oJ2lzX2RlZmF1bHQnKVxuICAgIC5kZWZhdWx0KGZhbHNlKVxuICAgIC5ub3ROdWxsKCksXG4gIGlzQWN0aXZlOiBib29sZWFuKCdpc19hY3RpdmUnKVxuICAgIC5kZWZhdWx0KHRydWUpXG4gICAgLm5vdE51bGwoKSxcblxuICAvLyBEZWxldGlvbiB0cmFja2luZyAoc29mdCBkZWxldGUpXG4gIGRlbGV0ZWRBdDogdGltZXN0YW1wKCdkZWxldGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGRlbGV0ZWRCeTogdGV4dCgnZGVsZXRlZF9ieScpLFxufSwgKHRhYmxlKSA9PiAoe1xuICAvLyBJbmRleGVzIGZvciBjb21tb24gcXVlcmllc1xuICBuYW1lSWR4OiBpbmRleCgncGx1Z2luX25hbWVfaWR4Jykub24odGFibGUubmFtZSksXG4gIG9yZ0lkSWR4OiBpbmRleCgncGx1Z2luX29yZ19pZF9pZHgnKS5vbih0YWJsZS5vcmdJZCksXG4gIHZlcnNpb25JZHg6IGluZGV4KCdwbHVnaW5fdmVyc2lvbl9pZHgnKS5vbih0YWJsZS52ZXJzaW9uKSxcbiAgYWN0aXZlSWR4OiBpbmRleCgncGx1Z2luX2FjdGl2ZV9pZHgnKS5vbih0YWJsZS5pc0FjdGl2ZSksXG4gIGNyZWF0ZWRBdElkeDogaW5kZXgoJ3BsdWdpbl9jcmVhdGVkX2F0X2lkeCcpLm9uKHRhYmxlLmNyZWF0ZWRBdCksXG4gIHVwZGF0ZWRBdElkeDogaW5kZXgoJ3BsdWdpbl91cGRhdGVkX2F0X2lkeCcpLm9uKHRhYmxlLnVwZGF0ZWRBdCksXG5cbiAgLy8gQ2F0ZWdvcnkgaW5kZXggZm9yIGZpbHRlcmluZ1xuICBjYXRlZ29yeUlkeDogaW5kZXgoJ3BsdWdpbl9jYXRlZ29yeV9pZHgnKS5vbih0YWJsZS5jYXRlZ29yeSksXG5cbiAgLy8gRGV2ZWxvcGVyLXBvcnRhbCBjYXRhbG9nIGluZGV4ZXM6IFwibXkgc2VydmljZXNcIiAob3duZXIpICsgbGlmZWN5Y2xlIGZpbHRlci5cbiAgb3duZXJJZHg6IGluZGV4KCdwbHVnaW5fb3duZXJfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLm93bmVySWQpLFxuICBsaWZlY3ljbGVJZHg6IGluZGV4KCdwbHVnaW5fbGlmZWN5Y2xlX2lkeCcpLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS5saWZlY3ljbGUpLFxuXG4gIC8vIENvbXBvc2l0ZSBpbmRleCBmb3IgY29tbW9uIGFjY2VzcyBwYXR0ZXJuIChvcmdJZCArIGlzQWN0aXZlKVxuICBvcmdBY3RpdmVJZHg6IGluZGV4KCdwbHVnaW5fb3JnX2FjdGl2ZV9pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUuaXNBY3RpdmUpLFxuXG4gIC8vIENvbXBvc2l0ZSBpbmRleCBmb3IgZmlsdGVyZWQgcXVlcmllcyAob3JnSWQgKyBhY2Nlc3NNb2RpZmllciArIGlzQWN0aXZlKVxuICBvcmdBY2Nlc3NBY3RpdmVJZHg6IGluZGV4KCdwbHVnaW5fb3JnX2FjY2Vzc19hY3RpdmVfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLmFjY2Vzc01vZGlmaWVyLCB0YWJsZS5pc0FjdGl2ZSksXG5cbiAgLy8gUGFydGlhbCBpbmRleCBmb3IgYWN0aXZlLW9ubHkgcXVlcmllcyAoc21hbGxlciwgZmFzdGVyIHRoYW4gZnVsbCBpbmRleClcbiAgYWN0aXZlT25seU9yZ0lkeDogaW5kZXgoJ3BsdWdpbl9hY3RpdmVfb25seV9vcmdfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLmNyZWF0ZWRBdCkud2hlcmUoc3FsYGlzX2FjdGl2ZSA9IHRydWVgKSxcblxuICAvLyBVbmlxdWUgY29uc3RyYWludCBvbiBuYW1lICsgdmVyc2lvbiArIG9yZ0lkXG4gIG5hbWVWZXJzaW9uT3JnVW5pcXVlOiB1bmlxdWVJbmRleCgncGx1Z2luX25hbWVfdmVyc2lvbl9vcmdfdW5pcXVlJylcbiAgICAub24odGFibGUubmFtZSwgdGFibGUudmVyc2lvbiwgdGFibGUub3JnSWQpLFxuXG4gIC8vIENoZWNrIGNvbnN0cmFpbnRzXG4gIHZlcnNpb25DaGVjazogY2hlY2soICdwbHVnaW5fdmVyc2lvbl9jaGVjaycsXG4gICAgc3FsYCR7dGFibGUudmVyc2lvbn0gfiAnXlswLTldK1xcLlswLTldK1xcLlswLTldKygtW2EtekEtWjAtOS4tXSspPyhcXCtbYS16QS1aMC05Li1dKyk/JCdgLFxuICApLFxufSkpO1xuXG4vKipcbiAqIFR5cGVTY3JpcHQgdHlwZXMgcmVwcmVzZW50aW5nIGRhdGFiYXNlIHJvd3NcbiAqL1xuZXhwb3J0IHR5cGUgUGx1Z2luID0gdHlwZW9mIHBsdWdpbi4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5JbnNlcnQgPSB0eXBlb2YgcGx1Z2luLiRpbmZlckluc2VydDtcblxuLyoqXG4gKiBIZWxwZXIgdHlwZXMgZm9yIHdvcmtpbmcgd2l0aCBwYXJ0aWFsIHVwZGF0ZXNcbiAqL1xuZXhwb3J0IHR5cGUgUGx1Z2luVXBkYXRlID0gUGFydGlhbDxPbWl0PFBsdWdpbkluc2VydCwgJ2lkJyB8ICdjcmVhdGVkQXQnIHwgJ2NyZWF0ZWRCeSc+PjtcbiJdfQ==
package/package.json CHANGED
@@ -25,7 +25,7 @@
25
25
  "dependencies": {
26
26
  "drizzle-orm": "0.45.2",
27
27
  "pg": "8.22.0",
28
- "@pipeline-builder/api-core": "3.4.104"
28
+ "@pipeline-builder/api-core": "3.4.105"
29
29
  },
30
30
  "keywords": [
31
31
  "ci-cd",
@@ -81,7 +81,7 @@
81
81
  "access": "public",
82
82
  "registry": "https://registry.npmjs.org/"
83
83
  },
84
- "version": "3.4.108",
84
+ "version": "3.4.110",
85
85
  "bugs": {
86
86
  "url": "https://github.com/mwashburn160/pipeline-builder/issues"
87
87
  },