@pipeline-builder/pipeline-data 4.3.3 → 4.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/crud-service.d.ts +7 -0
- package/lib/api/crud-service.js +14 -3
- package/lib/api/pipeline-step-resolution.d.ts +111 -0
- package/lib/api/pipeline-step-resolution.js +163 -0
- package/lib/api/plugin-consumption-policy.d.ts +8 -2
- package/lib/api/plugin-consumption-policy.js +20 -3
- package/lib/api/plugin-resolution.d.ts +26 -9
- package/lib/api/plugin-resolution.js +51 -33
- package/lib/api/reporting/analytics-queries.d.ts +6 -4
- package/lib/api/reporting/analytics-queries.js +11 -11
- package/lib/api/reporting/deploy-rollup.d.ts +2 -0
- package/lib/api/reporting/deploy-rollup.js +5 -1
- package/lib/api/reporting/failure-classifier.d.ts +2 -6
- package/lib/api/reporting/failure-classifier.js +22 -1
- package/lib/api/reporting/ingest.js +73 -16
- package/lib/api/reporting/plugin-exposure.d.ts +261 -15
- package/lib/api/reporting/plugin-exposure.js +423 -38
- package/lib/api/reporting/stakeholder/compose.d.ts +1 -1
- package/lib/api/reporting/stakeholder/compose.js +30 -1
- package/lib/api/reporting/stakeholder/store.d.ts +16 -2
- package/lib/api/reporting/stakeholder/store.js +17 -6
- package/lib/api/reporting/types.d.ts +80 -1
- package/lib/api/reporting/types.js +1 -1
- package/lib/api/reporting-service.d.ts +11 -4
- package/lib/api/reporting-service.js +106 -43
- package/lib/api/soft-delete-sweep.d.ts +8 -18
- package/lib/api/soft-delete-sweep.js +35 -5
- package/lib/api/version-references.d.ts +80 -0
- package/lib/api/version-references.js +135 -0
- package/lib/core/query-filters.d.ts +3 -3
- package/lib/core/query-filters.js +1 -1
- package/lib/database/drizzle-schema.d.ts +1238 -143
- package/lib/database/drizzle-schema.js +6 -3
- package/lib/database/index.d.ts +1 -1
- package/lib/database/index.js +2 -2
- package/lib/database/schema/ecosystem.d.ts +53 -0
- package/lib/database/schema/ecosystem.js +14 -3
- package/lib/database/schema/pipeline.d.ts +38 -0
- package/lib/database/schema/pipeline.js +20 -2
- package/lib/database/schema/plugin.d.ts +265 -0
- package/lib/database/schema/plugin.js +34 -3
- package/lib/database/schema/reporting-analytics.d.ts +786 -4
- package/lib/database/schema/reporting-analytics.js +111 -5
- package/lib/index.d.ts +5 -3
- package/lib/index.js +5 -3
- package/lib/testing/exports.json +24 -0
- package/package.json +4 -3
|
@@ -74,9 +74,12 @@ export const EXPOSURE_SOURCES = ['declared', 'deployed'];
|
|
|
74
74
|
* What an org decided about an exposure. `open` until someone looks;
|
|
75
75
|
* `accepted` is a time-boxed decision with a reason and an owner, never a
|
|
76
76
|
* permanent mute; `false_positive` is a scanner disagreement worth recording so
|
|
77
|
-
* the same finding stops being re-raised as news.
|
|
77
|
+
* the same finding stops being re-raised as news. `fixed` = the pipeline moved
|
|
78
|
+
* to another version of the plugin; `removed` = the step (or the pipeline, or
|
|
79
|
+
* its deploy) is gone — the triage fields are KEPT, so a step re-added before
|
|
80
|
+
* an acceptance's deadline gets the acceptance back.
|
|
78
81
|
*/
|
|
79
|
-
export const EXPOSURE_TRIAGE_STATES = ['open', 'accepted', 'false_positive', 'fixed'];
|
|
82
|
+
export const EXPOSURE_TRIAGE_STATES = ['open', 'accepted', 'false_positive', 'fixed', 'removed'];
|
|
80
83
|
/**
|
|
81
84
|
* One deployment: an execution that reached an environment.
|
|
82
85
|
*
|
|
@@ -114,6 +117,12 @@ export const doraDeployment = pgTable('dora_deployments', {
|
|
|
114
117
|
restoredAt: timestamp('restored_at', { withTimezone: true }),
|
|
115
118
|
/** How the incident→deploy link was judged. NULL when nothing was correlated. */
|
|
116
119
|
correlationConfidence: varchar('correlation_confidence', { length: 10 }).$type(),
|
|
120
|
+
/**
|
|
121
|
+
* The EventBridge event id of the deploy STAGE event that last wrote this row,
|
|
122
|
+
* so a DORA number traces back to the exact `pipeline_events` row (and AWS
|
|
123
|
+
* event) behind it. NULL for a deploy from a producer without one.
|
|
124
|
+
*/
|
|
125
|
+
sourceEventId: varchar('source_event_id', { length: 128 }),
|
|
117
126
|
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
|
|
118
127
|
updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
|
|
119
128
|
}, (table) => ({
|
|
@@ -186,12 +195,27 @@ export const pipelinePluginResolution = pgTable('pipeline_plugin_resolution', {
|
|
|
186
195
|
declaredVersion: varchar('declared_version', { length: 50 }),
|
|
187
196
|
/** What that resolves to today. NULL when nothing satisfies it. */
|
|
188
197
|
resolvedVersion: varchar('resolved_version', { length: 50 }),
|
|
198
|
+
/** The resolved record: a `plugins` row id or a listing version id. */
|
|
199
|
+
resolvedPluginId: varchar('resolved_plugin_id', { length: 255 }),
|
|
200
|
+
/**
|
|
201
|
+
* The image digest the resolved version is pinned to. A version string alone
|
|
202
|
+
* cannot say whether a pipeline is on the rebuilt, patched image or the old
|
|
203
|
+
* one — the rescan and the advisory search match on this.
|
|
204
|
+
*/
|
|
205
|
+
resolvedDigest: varchar('resolved_digest', { length: 71 }),
|
|
189
206
|
/** The newest version the org is entitled to install, for the "gap" column. */
|
|
190
207
|
latestVersion: varchar('latest_version', { length: 50 }),
|
|
191
208
|
/** `major` / `minor` / `patch` / `none`, from resolved → latest. */
|
|
192
209
|
versionGap: varchar('version_gap', { length: 10 }),
|
|
193
210
|
/** False when the resolved version is outside the org's consumption policy. */
|
|
194
211
|
withinPolicy: boolean('within_policy').default(true).notNull(),
|
|
212
|
+
/**
|
|
213
|
+
* The root org of a TEAM's pipeline (null for a root org's). A team resolves
|
|
214
|
+
* through its root's installs, policy and shared plugins, and the plugin
|
|
215
|
+
* service re-resolving a pipeline after a publish / flag / yank has no request
|
|
216
|
+
* to read the hierarchy from — so the write that knew it records it.
|
|
217
|
+
*/
|
|
218
|
+
rootOrgId: varchar('root_org_id', { length: 255 }),
|
|
195
219
|
computedAt: timestamp('computed_at', { withTimezone: true }).defaultNow().notNull(),
|
|
196
220
|
}, (table) => ({
|
|
197
221
|
pk: primaryKey({ columns: [table.pipelineId, table.stageName, table.stepName] }),
|
|
@@ -199,6 +223,9 @@ export const pipelinePluginResolution = pgTable('pipeline_plugin_resolution', {
|
|
|
199
223
|
pluginIdx: index('pipeline_plugin_resolution_plugin_idx').on(table.pluginPublisher, table.pluginName),
|
|
200
224
|
// "Which pipelines are behind?" — the outdated section's driving scan.
|
|
201
225
|
gapIdx: index('pipeline_plugin_resolution_gap_idx').on(table.orgId, table.versionGap),
|
|
226
|
+
// "Which pipelines declare this version / image?" — rescan fan-out, advisory search.
|
|
227
|
+
versionIdx: index('pipeline_plugin_resolution_version_idx')
|
|
228
|
+
.on(table.pluginName, table.resolvedVersion, table.resolvedDigest),
|
|
202
229
|
}));
|
|
203
230
|
/**
|
|
204
231
|
* One pipeline's exposure to one vulnerable plugin version.
|
|
@@ -228,6 +255,16 @@ export const pluginVulnExposure = pgTable('plugin_vuln_exposure', {
|
|
|
228
255
|
highCount: integer('high_count').default(0).notNull(),
|
|
229
256
|
/** The findings themselves: CVE id, package, fixed-in version. Capped by the writer. */
|
|
230
257
|
topFindings: jsonb('top_findings').$type().default([]).notNull(),
|
|
258
|
+
/**
|
|
259
|
+
* EVERY Critical/High finding of the version at its last refresh, as finding
|
|
260
|
+
* keys (`id|package|packageVersion`) — uncapped, unlike `top_findings`, because
|
|
261
|
+
* an acceptance is checked against it: what was accepted must be provable.
|
|
262
|
+
*/
|
|
263
|
+
findingKeys: text('finding_keys').array().$type().default([]).notNull(),
|
|
264
|
+
/** The finding keys an `accepted` triage covered, frozen at the decision. */
|
|
265
|
+
acceptedFindingKeys: text('accepted_finding_keys').array().$type().default([]).notNull(),
|
|
266
|
+
/** The acceptance explicitly covered KEV-listed findings (never implied). */
|
|
267
|
+
acceptedKev: boolean('accepted_kev').default(false).notNull(),
|
|
231
268
|
flaggedAt: timestamp('flagged_at', { withTimezone: true }).defaultNow().notNull(),
|
|
232
269
|
/** Set when a deploy moved the pipeline onto a version without the findings. */
|
|
233
270
|
fixedAt: timestamp('fixed_at', { withTimezone: true }),
|
|
@@ -240,11 +277,80 @@ export const pluginVulnExposure = pgTable('plugin_vuln_exposure', {
|
|
|
240
277
|
updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
|
|
241
278
|
}, (table) => ({
|
|
242
279
|
// One live exposure per (pipeline, plugin version, digest, source): a nightly
|
|
243
|
-
// rescan refreshes counts rather than opening a new row every night
|
|
280
|
+
// rescan refreshes counts rather than opening a new row every night, and a
|
|
281
|
+
// version rebuilt on a patched base (same string, new digest) gets its own row.
|
|
282
|
+
// postgres-init.sql creates it NULLS NOT DISTINCT (drizzle's uniqueIndex can't
|
|
283
|
+
// say so) so an image-less version still has exactly one row to refresh.
|
|
244
284
|
exposureUnique: uniqueIndex('plugin_vuln_exposure_unique')
|
|
245
|
-
.on(table.pipelineId, table.pluginName, table.pluginVersion, table.source),
|
|
285
|
+
.on(table.pipelineId, table.pluginName, table.pluginVersion, table.imageDigest, table.source),
|
|
246
286
|
orgOpenIdx: index('plugin_vuln_exposure_org_open_idx').on(table.orgId, table.triageState)
|
|
247
287
|
.where(sql `fixed_at IS NULL`),
|
|
248
288
|
digestIdx: index('plugin_vuln_exposure_digest_idx').on(table.imageDigest),
|
|
249
289
|
}));
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0aW5nLWFuYWx5dGljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhYmFzZS9zY2hlbWEvcmVwb3J0aW5nLWFuYWx5dGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFFSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLENBQVUsQ0FBQztBQUc1Rzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQVUsQ0FBQztBQUcxRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQVUsQ0FBQztBQUc5Rjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCO0lBQ3pFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYTtJQUNoRixlQUFlLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE9BQU87Q0FD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RUFBdUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQzNHLG1GQUFtRjtJQUNuRixhQUFhLEVBQUUsU0FBUyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2xFLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ25DLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFELFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFO0NBQ2xGLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDYiw4RUFBOEU7SUFDOUUscUVBQXFFO0lBQ3JFLGNBQWMsRUFBRSxXQUFXLENBQUMsNkJBQTZCLENBQUM7U0FDdkQsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDNUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUM7U0FDdEYsS0FBSyxDQUFDLEdBQUcsQ0FBQSxrQkFBa0IsQ0FBQztJQUMvQixTQUFTLEVBQUUsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7Q0FDMUUsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBUaGUgYW5hbHl0aWNzIGxheWVyIGV2ZXJ5IHJlcG9ydCBzZWN0aW9uIGFuZCBkYXNoYm9hcmQgcmVhZHMgaW5zdGVhZCBvZiByYXdcbiAqIGV2ZW50cy5cbiAqXG4gKiBSZXBvcnRpbmcgaGFzIGJlZW4gc2Nhbm5pbmcgYHBpcGVsaW5lX2V2ZW50c2AgZGlyZWN0bHkuIFRoYXQgd29ya2VkIHdoaWxlIHRoZVxuICogb25seSBjb25zdW1lciB3YXMgb25lIGRhc2hib2FyZCBvdmVyIGEgMzAtZGF5IHdpbmRvdywgYW5kIHN0b3BzIHdvcmtpbmcgZm9yXG4gKiB0aGlzIGZlYXR1cmU6IGEgcXVhcnRlcmx5IHJlcG9ydCBvdmVyIGEgOTAtZGF5IHdpbmRvdywgZm9yIGFuIG9yZyB3aXRoIGFcbiAqIHRob3VzYW5kIGV4ZWN1dGlvbnMgYSBkYXksIHJlLWRlcml2ZXMgdGhlIHNhbWUgYWdncmVnYXRlcyBvbiBldmVyeSByZWFkLCBhbmRcbiAqIHRoZSByZXRlbnRpb24gc3dlZXAgdGhlbiBkZWxldGVzIHRoZSByb3dzIHRoZSBudW1iZXJzIGNhbWUgZnJvbS4gVHdvIHRhYmxlcyBmaXhcbiAqIGJvdGggcHJvYmxlbXM6XG4gKlxuICogIC0gYGRvcmFfZGVwbG95bWVudHNgIOKAlCBPTkUgUk9XIFBFUiBERVBMT1ksIHdyaXR0ZW4gYXQgaW5nZXN0LiBMZWFkIHRpbWUgaXNcbiAqICAgIHN0b3JlZCBwZXIgZXhlY3V0aW9uIGhlcmUsIG5ldmVyIHJlY29tcHV0ZWQgcGVyIGV2ZW50LCBiZWNhdXNlIHRoZVxuICogICAgcGVyLWV2ZW50IGZvcm0gZG91YmxlLWNvdW50czogYSBkZXBsb3kgc3RhZ2UgZW1pdHMgYSBTVEFHRSBldmVudCBhbmQgYW5cbiAqICAgIEFDVElPTiBldmVudCwgYW5kIGJvdGggY2FycnkgdGhlIHNhbWUgY29tbWl0IHJhbmdlLlxuICogIC0gYGV4ZWN1dGlvbl9kYWlseV9yb2xsdXBzYCDigJQgb25lIHJvdyBwZXIgb3JnLCBwaXBlbGluZSwgc3RhZ2UgYW5kIGRheS4gRXZlcnlcbiAqICAgIHNlY3Rpb24gdGhhdCBzYXlzIFwicnVuc1wiLCBcInN1Y2Nlc3MgcmF0ZVwiLCBcInA5NVwiIG9yIFwiYnVpbGQgbWludXRlc1wiIHJlYWRzXG4gKiAgICB0aGVzZSwgc28gYSByZXBvcnQgY29zdHMgYSBmZXcgaHVuZHJlZCByb3dzIGluc3RlYWQgb2YgYSBmZXcgaHVuZHJlZFxuICogICAgdGhvdXNhbmQuXG4gKlxuICogQm90aCBhcmUgREVSSVZFRDogdGhleSBjYW4gYmUgcmVidWlsdCBmcm9tIGV2ZW50cyB3aGlsZSB0aGUgZXZlbnRzIGV4aXN0LCBhbmRcbiAqIHRoZXkgb3V0bGl2ZSB0aGVtIGFmdGVyd2FyZHMuIFRoYXQgaXMgdGhlIHBvaW50IOKAlCB0aGV5IGFyZSB0aGUgcmV0YWluZWQgZm9ybS5cbiAqXG4gKiBUaGUgb3RoZXIgdHdvIHRhYmxlcyBoZXJlIGFuc3dlciBcIndoYXQgaXMgYWN0dWFsbHkgcnVubmluZ1wiLCB3aGljaCB0aGUgcmVwb3J0J3NcbiAqIHBsdWdpbiBzZWN0aW9ucyBuZWVkIGFuZCBubyBleGlzdGluZyB0YWJsZSBjYW4gYW5zd2VyOlxuICpcbiAqICAtIGBwaXBlbGluZV9wbHVnaW5fcmVzb2x1dGlvbmAg4oCUIHdoYXQgYSBwaXBlbGluZSdzIERFQ0xBUkVEIHBsdWdpbiB2ZXJzaW9uc1xuICogICAgcmVzb2x2ZSB0bywgcmVjb21wdXRlZCBvbiB3cml0ZSByYXRoZXIgdGhhbiByZXNvbHZlZCBwZXIgcmVhZC5cbiAqICAtIGBwbHVnaW5fdnVsbl9leHBvc3VyZWAg4oCUIHdoaWNoIHBpcGVsaW5lcyBhcmUgZXhwb3NlZCB0byB3aGljaCB2dWxuZXJhYmxlXG4gKiAgICBwbHVnaW4gdmVyc2lvbiwgb3BlbmVkIGJ5IGEgcmVzY2FuIGFuZCBjbG9zZWQgYnkgYSBmaXhpbmcgZGVwbG95LlxuICovXG5cbmltcG9ydCB7IHNxbCB9IGZyb20gJ2RyaXp6bGUtb3JtJztcbmltcG9ydCB7IGJvb2xlYW4sIGluZGV4LCBpbnRlZ2VyLCBqc29uYiwgcGdUYWJsZSwgcHJpbWFyeUtleSwgdGV4dCwgdGltZXN0YW1wLCB1bmlxdWVJbmRleCwgdmFyY2hhciB9IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnO1xuXG4vKipcbiAqIFdoeSBhIGRlcGxveSdzIGxlYWQgdGltZSBjb3VsZCBub3QgYmUgbWVhc3VyZWQuIFJlY29yZGVkIHJhdGhlciB0aGFuIGxlZnQgTlVMTFxuICogd2l0aCBubyBleHBsYW5hdGlvbiwgYmVjYXVzZSB0aGUgdGhyZWUgY2F1c2VzIG5lZWQgZGlmZmVyZW50IGZpeGVzIGFuZCB0aGVcbiAqIHJlcG9ydCBzaG93cyB0aGUgcmVhc29uOiBubyBTQ00gdG9rZW4gZm9yIHRoZSBzb3VyY2UsIHRoZSBwcm92aWRlciByYXRlLWxpbWl0ZWRcbiAqIHRoZSByYW5nZSB3YWxrLCBvciB0aGUgc291cmNlIHR5cGUgaGFzIG5vIHJhbmdlIEFQSSBhdCBhbGwuXG4gKi9cbmV4cG9ydCBjb25zdCBMRUFEX1RJTUVfR0FQUyA9IFsnbm9fdG9rZW4nLCAncmF0ZV9saW1pdGVkJywgJ3Vuc3VwcG9ydGVkX3NvdXJjZScsICdub19jb21taXRfZGF0YSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgTGVhZFRpbWVHYXAgPSAodHlwZW9mIExFQURfVElNRV9HQVBTKVtudW1iZXJdO1xuXG4vKipcbiAqIEhvdyBjb25maWRlbnRseSBhbiBpbmNpZGVudCB3YXMgYXR0cmlidXRlZCB0byBhIGRlcGxveS4gU2hvd24gYmVzaWRlIGNoYW5nZVxuICogZmFpbHVyZSByYXRlIGFuZCB0aW1lIHRvIHJlc3RvcmUsIGJlY2F1c2UgXCJ0aGlzIGRlcGxveSBicm9rZSBwcm9kdWN0aW9uXCIgYW5kXG4gKiBcImFuIGluY2lkZW50IG9wZW5lZCBzb21lIGhvdXJzIGFmdGVyIHRoaXMgZGVwbG95XCIgYXJlIGRpZmZlcmVudCBjbGFpbXMgYW5kIGFcbiAqIG1hbmFnZXIgYWN0cyBkaWZmZXJlbnRseSBvbiBlYWNoLlxuICovXG5leHBvcnQgY29uc3QgQ09SUkVMQVRJT05fQ09ORklERU5DRVMgPSBbJ2hpZ2gnLCAnbWVkaXVtJywgJ2xvdyddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQ29ycmVsYXRpb25Db25maWRlbmNlID0gKHR5cGVvZiBDT1JSRUxBVElPTl9DT05GSURFTkNFUylbbnVtYmVyXTtcblxuLyoqXG4gKiBIb3cgYSBwaXBlbGluZSBjYW1lIHRvIGV4aXN0LiBGb3IgdGhlIGFkb3B0aW9uIHNlY3Rpb246IGFuIG9yZyB3aG9zZSBwaXBlbGluZXNcbiAqIGFyZSBhbGwgaGFuZC1idWlsdCBpcyBhIGRpZmZlcmVudCBhZG9wdGlvbiBzdG9yeSBmcm9tIG9uZSB0ZW1wbGF0aW5nIHRoZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBQSVBFTElORV9DUkVBVElPTl9TT1VSQ0VTID0gWydtYW51YWwnLCAndGVtcGxhdGUnLCAnYWknLCAnYnVsaycsICdjZGsnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFBpcGVsaW5lQ3JlYXRpb25Tb3VyY2UgPSAodHlwZW9mIFBJUEVMSU5FX0NSRUFUSU9OX1NPVVJDRVMpW251bWJlcl07XG5cbi8qKlxuICogV2hhdCBraW5kIG9mIHRoaW5nIGJyb2tlLiBBc3NpZ25lZCBhdCBpbmdlc3QgYnkgdGhlIGNsYXNzaWZpZXJcbiAqIChgYXBpL3JlcG9ydGluZy9zcmMvc2VydmljZXMvZmFpbHVyZS1jbGFzc2lmaWVyLnRzYCksIHdoaWNoIGlzIHJ1bGVzIG92ZXIgdGhlXG4gKiBhY3Rpb24ncyB0eXBlIGFuZCBlcnJvciB0ZXh0IOKAlCBkZWxpYmVyYXRlbHkgZGF0YSwgbm90IGNvZGUsIHNvIHRoZSB0YXhvbm9teSBjYW5cbiAqIGdyb3cgd2l0aG91dCBhIGRlcGxveS5cbiAqXG4gKiBUaGUgY2F0ZWdvcmllcyBvdmVybGFwIHRoZSBwbHVnaW4tYnVpbGQgdGF4b25vbXkgb24gcHVycG9zZTogYSBkZXBlbmRlbmN5XG4gKiBmYWlsdXJlIGlzIGEgZGVwZW5kZW5jeSBmYWlsdXJlIHdoZXRoZXIgaXQgaGFwcGVuZWQgYnVpbGRpbmcgYSBwbHVnaW4gb3JcbiAqIHJ1bm5pbmcgb25lLCBhbmQgdHdvIHZvY2FidWxhcmllcyBmb3IgdGhlIHNhbWUgdGhpbmcgd291bGQgbWFrZSB0aGUgcmVwb3J0IGFuZFxuICogdGhlIGJ1aWxkIHF1ZXVlIGRpc2FncmVlLlxuICovXG5leHBvcnQgY29uc3QgRkFJTFVSRV9DQVRFR09SSUVTID0gW1xuICAnc291cmNlX2NoZWNrb3V0JywgJ2RlcGVuZGVuY3knLCAnYnVpbGQnLCAndW5pdF90ZXN0JywgJ2ludGVncmF0aW9uX3Rlc3QnLFxuICAnc2VjdXJpdHlfc2NhbicsICdpbmZyYXN0cnVjdHVyZScsICdkZXBsb3ltZW50JywgJ2F1dGhlbnRpY2F0aW9uJywgJ3Blcm1pc3Npb25zJyxcbiAgJ2NvbmZpZ3VyYXRpb24nLCAndGltZW91dCcsICdyZXNvdXJjZV9leGhhdXN0aW9uJywgJ2V4dGVybmFsX3NlcnZpY2UnLCAnb3RoZXInLFxuXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEZhaWx1cmVDYXRlZ29yeSA9ICh0eXBlb2YgRkFJTFVSRV9DQVRFR09SSUVTKVtudW1iZXJdO1xuXG4vKiogV2hlcmUgYSBwbHVnaW4tdmVyc2lvbiBleHBvc3VyZSB3YXMgb2JzZXJ2ZWQuICovXG5leHBvcnQgY29uc3QgRVhQT1NVUkVfU09VUkNFUyA9IFsnZGVjbGFyZWQnLCAnZGVwbG95ZWQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEV4cG9zdXJlU291cmNlID0gKHR5cGVvZiBFWFBPU1VSRV9TT1VSQ0VTKVtudW1iZXJdO1xuXG4vKipcbiAqIFdoYXQgYW4gb3JnIGRlY2lkZWQgYWJvdXQgYW4gZXhwb3N1cmUuIGBvcGVuYCB1bnRpbCBzb21lb25lIGxvb2tzO1xuICogYGFjY2VwdGVkYCBpcyBhIHRpbWUtYm94ZWQgZGVjaXNpb24gd2l0aCBhIHJlYXNvbiBhbmQgYW4gb3duZXIsIG5ldmVyIGFcbiAqIHBlcm1hbmVudCBtdXRlOyBgZmFsc2VfcG9zaXRpdmVgIGlzIGEgc2Nhbm5lciBkaXNhZ3JlZW1lbnQgd29ydGggcmVjb3JkaW5nIHNvXG4gKiB0aGUgc2FtZSBmaW5kaW5nIHN0b3BzIGJlaW5nIHJlLXJhaXNlZCBhcyBuZXdzLlxuICovXG5leHBvcnQgY29uc3QgRVhQT1NVUkVfVFJJQUdFX1NUQVRFUyA9IFsnb3BlbicsICdhY2NlcHRlZCcsICdmYWxzZV9wb3NpdGl2ZScsICdmaXhlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgRXhwb3N1cmVUcmlhZ2VTdGF0ZSA9ICh0eXBlb2YgRVhQT1NVUkVfVFJJQUdFX1NUQVRFUylbbnVtYmVyXTtcblxuLyoqXG4gKiBPbmUgZGVwbG95bWVudDogYW4gZXhlY3V0aW9uIHRoYXQgcmVhY2hlZCBhbiBlbnZpcm9ubWVudC5cbiAqXG4gKiBXcml0dGVuIGF0IGluZ2VzdCwgb25lIHJvdyBwZXIgKGV4ZWN1dGlvbiwgZW52aXJvbm1lbnQpLiBFdmVyeXRoaW5nIERPUkFcbiAqIHJlcG9ydHMgaXMgaGVyZSwgc28gYC9kb3JhYCwgdGhlIHRyZW5kIGFuZCB0aGUgcmVwb3J0IHNlY3Rpb25zIHN0b3Agc2Nhbm5pbmdcbiAqIHJhdyBldmVudHMg4oCUIGFuZCBrZWVwIHdvcmtpbmcgYWZ0ZXIgdGhlIGV2ZW50cyBhcmUgc3dlcHQuXG4gKlxuICogQHRhYmxlIGRvcmFfZGVwbG95bWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IGRvcmFEZXBsb3ltZW50ID0gcGdUYWJsZSgnZG9yYV9kZXBsb3ltZW50cycsIHtcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBleGVjdXRpb25JZDogdmFyY2hhcignZXhlY3V0aW9uX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIGVudmlyb25tZW50OiB2YXJjaGFyKCdlbnZpcm9ubWVudCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBwaXBlbGluZUlkOiB2YXJjaGFyKCdwaXBlbGluZV9pZCcsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIC8qKiBXaGVuIHRoZSBkZXBsb3kgc3RhZ2UgY29tcGxldGVkLiBUaGUgZGVwbG95J3Mgb3duIHRpbWVzdGFtcCwgbm90IHRoZSBydW4ncy4gKi9cbiAgZGVwbG95ZWRBdDogdGltZXN0YW1wKCdkZXBsb3llZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLm5vdE51bGwoKSxcbiAgc3VjY2VlZGVkOiBib29sZWFuKCdzdWNjZWVkZWQnKS5ub3ROdWxsKCksXG4gIC8qKlxuICAgKiBUaGUgT0xERVNUIHVuc2hpcHBlZCBjb21taXQgaW4gdGhpcyBkZXBsb3kncyByYW5nZS4gTGVhZCB0aW1lIGlzXG4gICAqIGBkZXBsb3llZEF0IC0gZWFybGllc3RDb21taXRBdGAsIGNvbXB1dGVkIG9uY2UgYW5kIHN0b3JlZCwgYmVjYXVzZSB0aGVcbiAgICogcGVyLWV2ZW50IGZvcm0gZG91YmxlLWNvdW50cyBhIGRlcGxveSB0aGF0IGVtaXRzIGJvdGggYSBTVEFHRSBhbmQgYW4gQUNUSU9OXG4gICAqIGV2ZW50IGNhcnJ5aW5nIHRoZSBzYW1lIHJhbmdlLlxuICAgKi9cbiAgZWFybGllc3RDb21taXRBdDogdGltZXN0YW1wKCdlYXJsaWVzdF9jb21taXRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgbGVhZFRpbWVTZWNvbmRzOiBpbnRlZ2VyKCdsZWFkX3RpbWVfc2Vjb25kcycpLFxuICBjb21taXRDb3VudDogaW50ZWdlcignY29tbWl0X2NvdW50JyksXG4gIGNvbW1pdFNoYTogdmFyY2hhcignY29tbWl0X3NoYScsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIC8qKiBXaHkgbGVhZCB0aW1lIGlzIGFic2VudCwgd2hlbiBpdCBpcy4gTlVMTCB3aGVuIGl0IHdhcyBtZWFzdXJlZC4gKi9cbiAgbGVhZFRpbWVHYXA6IHZhcmNoYXIoJ2xlYWRfdGltZV9nYXAnLCB7IGxlbmd0aDogMzAgfSkuJHR5cGU8TGVhZFRpbWVHYXA+KCksXG4gIC8qKlxuICAgKiBQb3N0LWRlcGxveSBvdXRjb21lIG1hcmtlcnMsIGRlbm9ybWFsaXplZCBvbnRvIHRoZSBkZXBsb3kgc28gY2hhbmdlLWZhaWx1cmVcbiAgICogcmF0ZSBhbmQgdGltZS10by1yZXN0b3JlIGFyZSBvbmUgc2NhbiByYXRoZXIgdGhhbiBhIGpvaW4gcGVyIHdpbmRvdy5cbiAgICovXG4gIGZhaWxlZEF0OiB0aW1lc3RhbXAoJ2ZhaWxlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICByZXN0b3JlZEF0OiB0aW1lc3RhbXAoJ3Jlc3RvcmVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIC8qKiBIb3cgdGhlIGluY2lkZW504oaSZGVwbG95IGxpbmsgd2FzIGp1ZGdlZC4gTlVMTCB3aGVuIG5vdGhpbmcgd2FzIGNvcnJlbGF0ZWQuICovXG4gIGNvcnJlbGF0aW9uQ29uZmlkZW5jZTogdmFyY2hhcignY29ycmVsYXRpb25fY29uZmlkZW5jZScsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxDb3JyZWxhdGlvbkNvbmZpZGVuY2U+KCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICAvLyBPbmUgcm93IHBlciBleGVjdXRpb24gcGVyIGVudmlyb25tZW50OiBhIHJlZGVsaXZlcmVkIGV2ZW50IHVwc2VydHMgcmF0aGVyXG4gIC8vIHRoYW4gaW5zZXJ0aW5nIGEgc2Vjb25kIGRlcGxveSAoRXZlbnRCcmlkZ2Ug4oaSIFNRUyBpcyBhdC1sZWFzdC1vbmNlKS5cbiAgcGs6IHByaW1hcnlLZXkoeyBjb2x1bW5zOiBbdGFibGUuZXhlY3V0aW9uSWQsIHRhYmxlLmVudmlyb25tZW50XSB9KSxcbiAgLy8gVGhlIHdpbmRvdyBzY2FuIGV2ZXJ5IERPUkEgcmVhZCBkb2VzLlxuICBvcmdFbnZEZXBsb3llZElkeDogaW5kZXgoJ2RvcmFfZGVwbG95bWVudF9vcmdfZW52X2RlcGxveWVkX2lkeCcpXG4gICAgLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS5lbnZpcm9ubWVudCwgdGFibGUuZGVwbG95ZWRBdCksXG4gIG9yZ0RlcGxveWVkSWR4OiBpbmRleCgnZG9yYV9kZXBsb3ltZW50X29yZ19kZXBsb3llZF9pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUuZGVwbG95ZWRBdCksXG4gIHBpcGVsaW5lSWR4OiBpbmRleCgnZG9yYV9kZXBsb3ltZW50X3BpcGVsaW5lX2lkeCcpLm9uKHRhYmxlLnBpcGVsaW5lSWQsIHRhYmxlLmRlcGxveWVkQXQpLFxuICAvLyBUaGUgcHJvbW90aW9uIHZpZXc6IG9uZSBjb21taXQncyBwYXRoIGFjcm9zcyBlbnZpcm9ubWVudHMuXG4gIGNvbW1pdElkeDogaW5kZXgoJ2RvcmFfZGVwbG95bWVudF9jb21taXRfaWR4Jykub24odGFibGUub3JnSWQsIHRhYmxlLmNvbW1pdFNoYSlcbiAgICAud2hlcmUoc3FsYGNvbW1pdF9zaGEgSVMgTk9UIE5VTExgKSxcbn0pKTtcblxuLyoqXG4gKiBQcmUtYWdncmVnYXRlZCBleGVjdXRpb24gY291bnRzIGFuZCB0aW1pbmdzLCBvbmUgcm93IHBlciBvcmcsIHBpcGVsaW5lLCBzdGFnZVxuICogYW5kIFVUQyBkYXkuXG4gKlxuICogUmVidWlsdCBmb3IgYSBkYXkgd2hlbiBsYXRlIGV2ZW50cyBhcnJpdmUsIHNvIHRoZSByb2xsdXAgYW5kIHRoZSBldmVudHMgYWdyZWVcbiAqIHdoaWxlIGJvdGggZXhpc3QuIGBmYWlsdXJlc0J5Q2F0ZWdvcnlgIGlzIGEgSlNPTiBtYXAgcmF0aGVyIHRoYW4gYSBjb2x1bW4gcGVyXG4gKiBjYXRlZ29yeSBiZWNhdXNlIHRoZSB0YXhvbm9teSBncm93cy5cbiAqXG4gKiBAdGFibGUgZXhlY3V0aW9uX2RhaWx5X3JvbGx1cHNcbiAqL1xuZXhwb3J0IGNvbnN0IGV4ZWN1dGlvbkRhaWx5Um9sbHVwID0gcGdUYWJsZSgnZXhlY3V0aW9uX2RhaWx5X3JvbGx1cHMnLCB7XG4gIG9yZ0lkOiB2YXJjaGFyKCdvcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgLyoqIFRoZSBVVEMgZGF0ZSB0aGlzIHJvdyBhZ2dyZWdhdGVzLiBSZXBvcnQgcGVyaW9kcyByZS1idWNrZXQgaW4gdGhlIHJlcG9ydCdzXG4gICAqICBvd24gdGltZXpvbmUgYnkgc3VtbWluZyBkYXlzIOKAlCB3aGljaCBpcyB3aHkgdGhlIGdyYWluIGlzIGEgREFZLiAqL1xuICBkYXk6IHRpbWVzdGFtcCgnZGF5JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkubm90TnVsbCgpLFxuICBwaXBlbGluZUlkOiB2YXJjaGFyKCdwaXBlbGluZV9pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICAvKiogYCcnYCBmb3IgdGhlIHBpcGVsaW5lLWxldmVsIHJvdzsgYSBzdGFnZSBuYW1lIGZvciBhIHN0YWdlLWxldmVsIHJvdy4gKi9cbiAgc3RhZ2VOYW1lOiB2YXJjaGFyKCdzdGFnZV9uYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5kZWZhdWx0KCcnKS5ub3ROdWxsKCksXG4gIHJ1bnM6IGludGVnZXIoJ3J1bnMnKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAgc3VjY2VlZGVkOiBpbnRlZ2VyKCdzdWNjZWVkZWQnKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAgZmFpbGVkOiBpbnRlZ2VyKCdmYWlsZWQnKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAgLyoqIGNhdGVnb3J5IOKGkiBjb3VudC4gRmVlZHMgdGhlIGZhaWx1cmUtYW5hbHlzaXMgc2VjdGlvbi4gKi9cbiAgZmFpbHVyZXNCeUNhdGVnb3J5OiBqc29uYignZmFpbHVyZXNfYnlfY2F0ZWdvcnknKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PigpLmRlZmF1bHQoe30pLm5vdE51bGwoKSxcbiAgcDUwTXM6IGludGVnZXIoJ3A1MF9tcycpLFxuICBwOTBNczogaW50ZWdlcigncDkwX21zJyksXG4gIHA5NU1zOiBpbnRlZ2VyKCdwOTVfbXMnKSxcbiAgLyoqIFN1bW1lZCBleGVjdXRpb24gZHVyYXRpb24sIGluIHNlY29uZHMuIFRoZSByZXNvdXJjZS1jb25zdW1wdGlvbiBzZWN0aW9uJ3NcbiAgICogIG9ubHkgaW5wdXQ7IGRlbGliZXJhdGVseSBOT1QgY29udmVydGVkIHRvIG1vbmV5IGFueXdoZXJlLiAqL1xuICBidWlsZFNlY29uZHM6IGludGVnZXIoJ2J1aWxkX3NlY29uZHMnKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAgLyoqIFdoZW4gdGhpcyByb3cgd2FzIGxhc3QgcmVidWlsdCwgc28gYSBsYXRlLWV2ZW50IHJlYnVpbGQgaXMgdmlzaWJsZS4gKi9cbiAgY29tcHV0ZWRBdDogdGltZXN0YW1wKCdjb21wdXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIHBrOiBwcmltYXJ5S2V5KHsgY29sdW1uczogW3RhYmxlLm9yZ0lkLCB0YWJsZS5kYXksIHRhYmxlLnBpcGVsaW5lSWQsIHRhYmxlLnN0YWdlTmFtZV0gfSksXG4gIG9yZ0RheUlkeDogaW5kZXgoJ2V4ZWN1dGlvbl9yb2xsdXBfb3JnX2RheV9pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUuZGF5KSxcbiAgcGlwZWxpbmVEYXlJZHg6IGluZGV4KCdleGVjdXRpb25fcm9sbHVwX3BpcGVsaW5lX2RheV9pZHgnKS5vbih0YWJsZS5waXBlbGluZUlkLCB0YWJsZS5kYXkpLFxufSkpO1xuXG4vKipcbiAqIFdoYXQgYSBwaXBlbGluZSdzIGRlY2xhcmVkIHBsdWdpbiBzdGVwcyByZXNvbHZlIHRvLlxuICpcbiAqIFJlY29tcHV0ZWQgb24gcGlwZWxpbmUgd3JpdGUgYW5kIG9uIHBsdWdpbiBwdWJsaXNoLCByYXRoZXIgdGhhbiByZXNvbHZlZCBhdFxuICogcmVhZCB0aW1lOiB0aGUgb3V0ZGF0ZWQtcGx1Z2luIHNlY3Rpb24gY29tcGFyZXMgXCJpbiB1c2VcIiBhZ2FpbnN0IFwibGF0ZXN0XG4gKiBhdmFpbGFibGVcIiBmb3IgZXZlcnkgc3RlcCBvZiBldmVyeSBwaXBlbGluZSwgYW5kIGRvaW5nIHRoYXQgcmVzb2x1dGlvbiBwZXIgcmVhZFxuICogbWFkZSBpdCBhIHF1ZXJ5IG5vYm9keSBjb3VsZCBhZmZvcmQgdG8gcHV0IGluIGEgcmVwb3J0LlxuICpcbiAqIEB0YWJsZSBwaXBlbGluZV9wbHVnaW5fcmVzb2x1dGlvblxuICovXG5leHBvcnQgY29uc3QgcGlwZWxpbmVQbHVnaW5SZXNvbHV0aW9uID0gcGdUYWJsZSgncGlwZWxpbmVfcGx1Z2luX3Jlc29sdXRpb24nLCB7XG4gIG9yZ0lkOiB2YXJjaGFyKCdvcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgcGlwZWxpbmVJZDogdmFyY2hhcigncGlwZWxpbmVfaWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgc3RhZ2VOYW1lOiB2YXJjaGFyKCdzdGFnZV9uYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHN0ZXBOYW1lOiB2YXJjaGFyKCdzdGVwX25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgcGx1Z2luUHVibGlzaGVyOiB2YXJjaGFyKCdwbHVnaW5fcHVibGlzaGVyJywgeyBsZW5ndGg6IDM5IH0pLFxuICBwbHVnaW5OYW1lOiB2YXJjaGFyKCdwbHVnaW5fbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICAvKiogV2hhdCB0aGUgY29uZmlnIGFza2VkIGZvciDigJQgYSByYW5nZSwgYSBwaW4sIG9yIG5vdGhpbmcuICovXG4gIGRlY2xhcmVkVmVyc2lvbjogdmFyY2hhcignZGVjbGFyZWRfdmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgLyoqIFdoYXQgdGhhdCByZXNvbHZlcyB0byB0b2RheS4gTlVMTCB3aGVuIG5vdGhpbmcgc2F0aXNmaWVzIGl0LiAqL1xuICByZXNvbHZlZFZlcnNpb246IHZhcmNoYXIoJ3Jlc29sdmVkX3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSksXG4gIC8qKiBUaGUgbmV3ZXN0IHZlcnNpb24gdGhlIG9yZyBpcyBlbnRpdGxlZCB0byBpbnN0YWxsLCBmb3IgdGhlIFwiZ2FwXCIgY29sdW1uLiAqL1xuICBsYXRlc3RWZXJzaW9uOiB2YXJjaGFyKCdsYXRlc3RfdmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgLyoqIGBtYWpvcmAgLyBgbWlub3JgIC8gYHBhdGNoYCAvIGBub25lYCwgZnJvbSByZXNvbHZlZCDihpIgbGF0ZXN0LiAqL1xuICB2ZXJzaW9uR2FwOiB2YXJjaGFyKCd2ZXJzaW9uX2dhcCcsIHsgbGVuZ3RoOiAxMCB9KSxcbiAgLyoqIEZhbHNlIHdoZW4gdGhlIHJlc29sdmVkIHZlcnNpb24gaXMgb3V0c2lkZSB0aGUgb3JnJ3MgY29uc3VtcHRpb24gcG9saWN5LiAqL1xuICB3aXRoaW5Qb2xpY3k6IGJvb2xlYW4oJ3dpdGhpbl9wb2xpY3knKS5kZWZhdWx0KHRydWUpLm5vdE51bGwoKSxcbiAgY29tcHV0ZWRBdDogdGltZXN0YW1wKCdjb21wdXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIHBrOiBwcmltYXJ5S2V5KHsgY29sdW1uczogW3RhYmxlLnBpcGVsaW5lSWQsIHRhYmxlLnN0YWdlTmFtZSwgdGFibGUuc3RlcE5hbWVdIH0pLFxuICBvcmdJZHg6IGluZGV4KCdwaXBlbGluZV9wbHVnaW5fcmVzb2x1dGlvbl9vcmdfaWR4Jykub24odGFibGUub3JnSWQpLFxuICBwbHVnaW5JZHg6IGluZGV4KCdwaXBlbGluZV9wbHVnaW5fcmVzb2x1dGlvbl9wbHVnaW5faWR4Jykub24odGFibGUucGx1Z2luUHVibGlzaGVyLCB0YWJsZS5wbHVnaW5OYW1lKSxcbiAgLy8gXCJXaGljaCBwaXBlbGluZXMgYXJlIGJlaGluZD9cIiDigJQgdGhlIG91dGRhdGVkIHNlY3Rpb24ncyBkcml2aW5nIHNjYW4uXG4gIGdhcElkeDogaW5kZXgoJ3BpcGVsaW5lX3BsdWdpbl9yZXNvbHV0aW9uX2dhcF9pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUudmVyc2lvbkdhcCksXG59KSk7XG5cbi8qKlxuICogT25lIHBpcGVsaW5lJ3MgZXhwb3N1cmUgdG8gb25lIHZ1bG5lcmFibGUgcGx1Z2luIHZlcnNpb24uXG4gKlxuICogT3BlbmVkIGJ5IHRoZSBuaWdodGx5IHJlc2NhbiB3aGVuIGEgdmVyc2lvbiBpbiB1c2UgaGFzIGZpeGFibGUgQ3JpdGljYWwvSGlnaFxuICogZmluZGluZ3MsIGFuZCBDTE9TRUQgYnkgYSBkZXBsb3kgdGhhdCBtb3ZlcyB0aGUgcGlwZWxpbmUgb2ZmIGl0LiBJdCBpcyBhXG4gKiBwZXItcGlwZWxpbmUgcm93IHJhdGhlciB0aGFuIGEgcGVyLXZlcnNpb24gb25lIGJlY2F1c2UgdGhlIHF1ZXN0aW9uIGEgbWFuYWdlclxuICogYXNrcyBpcyBcIndoaWNoIG9mIG91ciBwaXBlbGluZXMgaXMgZXhwb3NlZFwiLCBhbmQgYW5zd2VyaW5nIHRoYXQgZnJvbSBhXG4gKiB2ZXJzaW9uLWxldmVsIHRhYmxlIG1lYW5zIHJlLWRlcml2aW5nIHRoZSBwaXBlbGluZSBzZXQgb24gZXZlcnkgcmVhZC5cbiAqXG4gKiBLZXllZCBieSBJTUFHRSBESUdFU1QsIG5vdCB2ZXJzaW9uIHN0cmluZzogYSB2ZXJzaW9uIHJlYnVpbHQgb24gYSBwYXRjaGVkIGJhc2VcbiAqIGltYWdlIGlzIGEgZGlmZmVyZW50IGFydGlmYWN0IHdpdGggZGlmZmVyZW50IGZpbmRpbmdzLCBhbmQga2V5aW5nIG9uIHRoZSBzdHJpbmdcbiAqIHdvdWxkIHJlcG9ydCB0aGUgb2xkIG9uZSBmb3JldmVyLlxuICpcbiAqIEB0YWJsZSBwbHVnaW5fdnVsbl9leHBvc3VyZVxuICovXG5leHBvcnQgY29uc3QgcGx1Z2luVnVsbkV4cG9zdXJlID0gcGdUYWJsZSgncGx1Z2luX3Z1bG5fZXhwb3N1cmUnLCB7XG4gIGlkOiB2YXJjaGFyKCdpZCcsIHsgbGVuZ3RoOiAyNTUgfSkucHJpbWFyeUtleSgpLFxuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHBpcGVsaW5lSWQ6IHZhcmNoYXIoJ3BpcGVsaW5lX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHBsdWdpblB1Ymxpc2hlcjogdmFyY2hhcigncGx1Z2luX3B1Ymxpc2hlcicsIHsgbGVuZ3RoOiAzOSB9KSxcbiAgcGx1Z2luTmFtZTogdmFyY2hhcigncGx1Z2luX25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgcGx1Z2luVmVyc2lvbjogdmFyY2hhcigncGx1Z2luX3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSkubm90TnVsbCgpLFxuICBpbWFnZURpZ2VzdDogdmFyY2hhcignaW1hZ2VfZGlnZXN0JywgeyBsZW5ndGg6IDcxIH0pLFxuICBzb3VyY2U6IHZhcmNoYXIoJ3NvdXJjZScsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxFeHBvc3VyZVNvdXJjZT4oKS5ub3ROdWxsKCksXG4gIGNyaXRpY2FsQ291bnQ6IGludGVnZXIoJ2NyaXRpY2FsX2NvdW50JykuZGVmYXVsdCgwKS5ub3ROdWxsKCksXG4gIGhpZ2hDb3VudDogaW50ZWdlcignaGlnaF9jb3VudCcpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICAvKiogVGhlIGZpbmRpbmdzIHRoZW1zZWx2ZXM6IENWRSBpZCwgcGFja2FnZSwgZml4ZWQtaW4gdmVyc2lvbi4gQ2FwcGVkIGJ5IHRoZSB3cml0ZXIuICovXG4gIHRvcEZpbmRpbmdzOiBqc29uYigndG9wX2ZpbmRpbmdzJykuJHR5cGU8QXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+PigpLmRlZmF1bHQoW10pLm5vdE51bGwoKSxcbiAgZmxhZ2dlZEF0OiB0aW1lc3RhbXAoJ2ZsYWdnZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICAvKiogU2V0IHdoZW4gYSBkZXBsb3kgbW92ZWQgdGhlIHBpcGVsaW5lIG9udG8gYSB2ZXJzaW9uIHdpdGhvdXQgdGhlIGZpbmRpbmdzLiAqL1xuICBmaXhlZEF0OiB0aW1lc3RhbXAoJ2ZpeGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHRyaWFnZVN0YXRlOiB2YXJjaGFyKCd0cmlhZ2Vfc3RhdGUnLCB7IGxlbmd0aDogMjAgfSkuJHR5cGU8RXhwb3N1cmVUcmlhZ2VTdGF0ZT4oKS5kZWZhdWx0KCdvcGVuJykubm90TnVsbCgpLFxuICAvKiogQW4gYWNjZXB0YW5jZSBpcyB0aW1lLWJveGVkOiBhIHBlcm1hbmVudCBtdXRlIGlzIGhvdyBhIGZpbmRpbmcgaXMgZm9yZ290dGVuLiAqL1xuICBhY2NlcHRlZFVudGlsOiB0aW1lc3RhbXAoJ2FjY2VwdGVkX3VudGlsJywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHRyaWFnZVJlYXNvbjogdGV4dCgndHJpYWdlX3JlYXNvbicpLFxuICB0cmlhZ2VkQnk6IHRleHQoJ3RyaWFnZWRfYnknKSxcbiAgdHJpYWdlZEF0OiB0aW1lc3RhbXAoJ3RyaWFnZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICAvLyBPbmUgbGl2ZSBleHBvc3VyZSBwZXIgKHBpcGVsaW5lLCBwbHVnaW4gdmVyc2lvbiwgZGlnZXN0LCBzb3VyY2UpOiBhIG5pZ2h0bHlcbiAgLy8gcmVzY2FuIHJlZnJlc2hlcyBjb3VudHMgcmF0aGVyIHRoYW4gb3BlbmluZyBhIG5ldyByb3cgZXZlcnkgbmlnaHQuXG4gIGV4cG9zdXJlVW5pcXVlOiB1bmlxdWVJbmRleCgncGx1Z2luX3Z1bG5fZXhwb3N1cmVfdW5pcXVlJylcbiAgICAub24odGFibGUucGlwZWxpbmVJZCwgdGFibGUucGx1Z2luTmFtZSwgdGFibGUucGx1Z2luVmVyc2lvbiwgdGFibGUuc291cmNlKSxcbiAgb3JnT3BlbklkeDogaW5kZXgoJ3BsdWdpbl92dWxuX2V4cG9zdXJlX29yZ19vcGVuX2lkeCcpLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS50cmlhZ2VTdGF0ZSlcbiAgICAud2hlcmUoc3FsYGZpeGVkX2F0IElTIE5VTExgKSxcbiAgZGlnZXN0SWR4OiBpbmRleCgncGx1Z2luX3Z1bG5fZXhwb3N1cmVfZGlnZXN0X2lkeCcpLm9uKHRhYmxlLmltYWdlRGlnZXN0KSxcbn0pKTtcblxuZXhwb3J0IHR5cGUgRG9yYURlcGxveW1lbnQgPSB0eXBlb2YgZG9yYURlcGxveW1lbnQuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgRG9yYURlcGxveW1lbnRJbnNlcnQgPSB0eXBlb2YgZG9yYURlcGxveW1lbnQuJGluZmVySW5zZXJ0O1xuZXhwb3J0IHR5cGUgRXhlY3V0aW9uRGFpbHlSb2xsdXAgPSB0eXBlb2YgZXhlY3V0aW9uRGFpbHlSb2xsdXAuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgRXhlY3V0aW9uRGFpbHlSb2xsdXBJbnNlcnQgPSB0eXBlb2YgZXhlY3V0aW9uRGFpbHlSb2xsdXAuJGluZmVySW5zZXJ0O1xuZXhwb3J0IHR5cGUgUGlwZWxpbmVQbHVnaW5SZXNvbHV0aW9uID0gdHlwZW9mIHBpcGVsaW5lUGx1Z2luUmVzb2x1dGlvbi4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQaXBlbGluZVBsdWdpblJlc29sdXRpb25JbnNlcnQgPSB0eXBlb2YgcGlwZWxpbmVQbHVnaW5SZXNvbHV0aW9uLiRpbmZlckluc2VydDtcbmV4cG9ydCB0eXBlIFBsdWdpblZ1bG5FeHBvc3VyZSA9IHR5cGVvZiBwbHVnaW5WdWxuRXhwb3N1cmUuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luVnVsbkV4cG9zdXJlSW5zZXJ0ID0gdHlwZW9mIHBsdWdpblZ1bG5FeHBvc3VyZS4kaW5mZXJJbnNlcnQ7XG4iXX0=
|
|
290
|
+
/**
|
|
291
|
+
* The last `/plugins/lookup` outcome per pipeline STEP, when synth (CLI or the
|
|
292
|
+
* CodeBuild Lambda) sends the step's context. The DECLARED side
|
|
293
|
+
* (`pipeline_plugin_resolution`) says what the config resolves to when it was
|
|
294
|
+
* saved; this says what synth was actually told — the version, the image, every
|
|
295
|
+
* warning, and the refusal — which is what a "why did my deploy stop" page needs.
|
|
296
|
+
*
|
|
297
|
+
* @table pipeline_step_lookups
|
|
298
|
+
*/
|
|
299
|
+
export const pipelineStepLookup = pgTable('pipeline_step_lookups', {
|
|
300
|
+
orgId: varchar('org_id', { length: 255 }).notNull(),
|
|
301
|
+
pipelineId: varchar('pipeline_id', { length: 255 }).notNull(),
|
|
302
|
+
/** The step's contract label: `synth` or `<stageName>/<alias ?? name>`. */
|
|
303
|
+
stepKey: varchar('step_key', { length: 512 }).notNull(),
|
|
304
|
+
pluginPublisher: varchar('plugin_publisher', { length: 39 }),
|
|
305
|
+
pluginName: varchar('plugin_name', { length: 255 }).notNull(),
|
|
306
|
+
/** What the reference asked for (a range, a pin, or nothing). */
|
|
307
|
+
requestedVersion: varchar('requested_version', { length: 50 }),
|
|
308
|
+
/** NULL when the lookup was refused. */
|
|
309
|
+
resolvedVersion: varchar('resolved_version', { length: 50 }),
|
|
310
|
+
resolvedPluginId: varchar('resolved_plugin_id', { length: 255 }),
|
|
311
|
+
imageDigest: varchar('image_digest', { length: 71 }),
|
|
312
|
+
/** `[{ code, message, severity }]` — every warning the answer carried. */
|
|
313
|
+
warnings: jsonb('warnings').$type().default([]).notNull(),
|
|
314
|
+
/**
|
|
315
|
+
* `{ code, reason, message }` when the lookup was refused — never for
|
|
316
|
+
* vulnerability state (that only grades), but for a deleted / not-installed /
|
|
317
|
+
* policy-blocked plugin or a failed image signature.
|
|
318
|
+
*/
|
|
319
|
+
refusal: jsonb('refusal').$type(),
|
|
320
|
+
lookedUpAt: timestamp('looked_up_at', { withTimezone: true }).defaultNow().notNull(),
|
|
321
|
+
}, (table) => ({
|
|
322
|
+
pk: primaryKey({ columns: [table.pipelineId, table.stepKey] }),
|
|
323
|
+
orgIdx: index('pipeline_step_lookups_org_idx').on(table.orgId),
|
|
324
|
+
}));
|
|
325
|
+
/**
|
|
326
|
+
* The latest security-scanner report a pipeline RUN uploaded, per (pipeline,
|
|
327
|
+
* tool, stage) — what the pipeline's own scan steps found in what it builds,
|
|
328
|
+
* next to what the platform's rescan found in the plugin images it runs.
|
|
329
|
+
* Counts are stored so a report section reads them without unpacking findings.
|
|
330
|
+
*
|
|
331
|
+
* @table pipeline_security_reports
|
|
332
|
+
*/
|
|
333
|
+
export const pipelineSecurityReport = pgTable('pipeline_security_reports', {
|
|
334
|
+
id: varchar('id', { length: 255 }).primaryKey(),
|
|
335
|
+
orgId: varchar('org_id', { length: 255 }).notNull(),
|
|
336
|
+
pipelineId: varchar('pipeline_id', { length: 255 }).notNull(),
|
|
337
|
+
tool: varchar('tool', { length: 64 }).notNull(),
|
|
338
|
+
format: varchar('format', { length: 16 }).notNull(),
|
|
339
|
+
stage: varchar('stage', { length: 255 }).default('').notNull(),
|
|
340
|
+
executionId: varchar('execution_id', { length: 255 }),
|
|
341
|
+
criticalCount: integer('critical_count').default(0).notNull(),
|
|
342
|
+
highCount: integer('high_count').default(0).notNull(),
|
|
343
|
+
mediumCount: integer('medium_count').default(0).notNull(),
|
|
344
|
+
lowCount: integer('low_count').default(0).notNull(),
|
|
345
|
+
kevCount: integer('kev_count').default(0).notNull(),
|
|
346
|
+
criticalFixable: integer('critical_fixable').default(0).notNull(),
|
|
347
|
+
highFixable: integer('high_fixable').default(0).notNull(),
|
|
348
|
+
findings: jsonb('findings').$type().default([]).notNull(),
|
|
349
|
+
truncated: boolean('truncated').default(false).notNull(),
|
|
350
|
+
submittedBy: text('submitted_by'),
|
|
351
|
+
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
|
|
352
|
+
}, (table) => ({
|
|
353
|
+
latestUnique: uniqueIndex('pipeline_security_reports_unique').on(table.pipelineId, table.tool, table.stage),
|
|
354
|
+
orgIdx: index('pipeline_security_reports_org_idx').on(table.orgId),
|
|
355
|
+
}));
|
|
356
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0aW5nLWFuYWx5dGljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhYmFzZS9zY2hlbWEvcmVwb3J0aW5nLWFuYWx5dGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFFSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLENBQVUsQ0FBQztBQUc1Rzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQVUsQ0FBQztBQUcxRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQVUsQ0FBQztBQUc5Rjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCO0lBQ3pFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYTtJQUNoRixlQUFlLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE9BQU87Q0FD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QUFVLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzNHLE1BQU0sRUFBRSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztDQUNuRSxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBhbmFseXRpY3MgbGF5ZXIgZXZlcnkgcmVwb3J0IHNlY3Rpb24gYW5kIGRhc2hib2FyZCByZWFkcyBpbnN0ZWFkIG9mIHJhd1xuICogZXZlbnRzLlxuICpcbiAqIFJlcG9ydGluZyBoYXMgYmVlbiBzY2FubmluZyBgcGlwZWxpbmVfZXZlbnRzYCBkaXJlY3RseS4gVGhhdCB3b3JrZWQgd2hpbGUgdGhlXG4gKiBvbmx5IGNvbnN1bWVyIHdhcyBvbmUgZGFzaGJvYXJkIG92ZXIgYSAzMC1kYXkgd2luZG93LCBhbmQgc3RvcHMgd29ya2luZyBmb3JcbiAqIHRoaXMgZmVhdHVyZTogYSBxdWFydGVybHkgcmVwb3J0IG92ZXIgYSA5MC1kYXkgd2luZG93LCBmb3IgYW4gb3JnIHdpdGggYVxuICogdGhvdXNhbmQgZXhlY3V0aW9ucyBhIGRheSwgcmUtZGVyaXZlcyB0aGUgc2FtZSBhZ2dyZWdhdGVzIG9uIGV2ZXJ5IHJlYWQsIGFuZFxuICogdGhlIHJldGVudGlvbiBzd2VlcCB0aGVuIGRlbGV0ZXMgdGhlIHJvd3MgdGhlIG51bWJlcnMgY2FtZSBmcm9tLiBUd28gdGFibGVzIGZpeFxuICogYm90aCBwcm9ibGVtczpcbiAqXG4gKiAgLSBgZG9yYV9kZXBsb3ltZW50c2Ag4oCUIE9ORSBST1cgUEVSIERFUExPWSwgd3JpdHRlbiBhdCBpbmdlc3QuIExlYWQgdGltZSBpc1xuICogICAgc3RvcmVkIHBlciBleGVjdXRpb24gaGVyZSwgbmV2ZXIgcmVjb21wdXRlZCBwZXIgZXZlbnQsIGJlY2F1c2UgdGhlXG4gKiAgICBwZXItZXZlbnQgZm9ybSBkb3VibGUtY291bnRzOiBhIGRlcGxveSBzdGFnZSBlbWl0cyBhIFNUQUdFIGV2ZW50IGFuZCBhblxuICogICAgQUNUSU9OIGV2ZW50LCBhbmQgYm90aCBjYXJyeSB0aGUgc2FtZSBjb21taXQgcmFuZ2UuXG4gKiAgLSBgZXhlY3V0aW9uX2RhaWx5X3JvbGx1cHNgIOKAlCBvbmUgcm93IHBlciBvcmcsIHBpcGVsaW5lLCBzdGFnZSBhbmQgZGF5LiBFdmVyeVxuICogICAgc2VjdGlvbiB0aGF0IHNheXMgXCJydW5zXCIsIFwic3VjY2VzcyByYXRlXCIsIFwicDk1XCIgb3IgXCJidWlsZCBtaW51dGVzXCIgcmVhZHNcbiAqICAgIHRoZXNlLCBzbyBhIHJlcG9ydCBjb3N0cyBhIGZldyBodW5kcmVkIHJvd3MgaW5zdGVhZCBvZiBhIGZldyBodW5kcmVkXG4gKiAgICB0aG91c2FuZC5cbiAqXG4gKiBCb3RoIGFyZSBERVJJVkVEOiB0aGV5IGNhbiBiZSByZWJ1aWx0IGZyb20gZXZlbnRzIHdoaWxlIHRoZSBldmVudHMgZXhpc3QsIGFuZFxuICogdGhleSBvdXRsaXZlIHRoZW0gYWZ0ZXJ3YXJkcy4gVGhhdCBpcyB0aGUgcG9pbnQg4oCUIHRoZXkgYXJlIHRoZSByZXRhaW5lZCBmb3JtLlxuICpcbiAqIFRoZSBvdGhlciB0d28gdGFibGVzIGhlcmUgYW5zd2VyIFwid2hhdCBpcyBhY3R1YWxseSBydW5uaW5nXCIsIHdoaWNoIHRoZSByZXBvcnQnc1xuICogcGx1Z2luIHNlY3Rpb25zIG5lZWQgYW5kIG5vIGV4aXN0aW5nIHRhYmxlIGNhbiBhbnN3ZXI6XG4gKlxuICogIC0gYHBpcGVsaW5lX3BsdWdpbl9yZXNvbHV0aW9uYCDigJQgd2hhdCBhIHBpcGVsaW5lJ3MgREVDTEFSRUQgcGx1Z2luIHZlcnNpb25zXG4gKiAgICByZXNvbHZlIHRvLCByZWNvbXB1dGVkIG9uIHdyaXRlIHJhdGhlciB0aGFuIHJlc29sdmVkIHBlciByZWFkLlxuICogIC0gYHBsdWdpbl92dWxuX2V4cG9zdXJlYCDigJQgd2hpY2ggcGlwZWxpbmVzIGFyZSBleHBvc2VkIHRvIHdoaWNoIHZ1bG5lcmFibGVcbiAqICAgIHBsdWdpbiB2ZXJzaW9uLCBvcGVuZWQgYnkgYSByZXNjYW4gYW5kIGNsb3NlZCBieSBhIGZpeGluZyBkZXBsb3kuXG4gKi9cblxuaW1wb3J0IHsgc3FsIH0gZnJvbSAnZHJpenpsZS1vcm0nO1xuaW1wb3J0IHsgYm9vbGVhbiwgaW5kZXgsIGludGVnZXIsIGpzb25iLCBwZ1RhYmxlLCBwcmltYXJ5S2V5LCB0ZXh0LCB0aW1lc3RhbXAsIHVuaXF1ZUluZGV4LCB2YXJjaGFyIH0gZnJvbSAnZHJpenpsZS1vcm0vcGctY29yZSc7XG5cbi8qKlxuICogV2h5IGEgZGVwbG95J3MgbGVhZCB0aW1lIGNvdWxkIG5vdCBiZSBtZWFzdXJlZC4gUmVjb3JkZWQgcmF0aGVyIHRoYW4gbGVmdCBOVUxMXG4gKiB3aXRoIG5vIGV4cGxhbmF0aW9uLCBiZWNhdXNlIHRoZSB0aHJlZSBjYXVzZXMgbmVlZCBkaWZmZXJlbnQgZml4ZXMgYW5kIHRoZVxuICogcmVwb3J0IHNob3dzIHRoZSByZWFzb246IG5vIFNDTSB0b2tlbiBmb3IgdGhlIHNvdXJjZSwgdGhlIHByb3ZpZGVyIHJhdGUtbGltaXRlZFxuICogdGhlIHJhbmdlIHdhbGssIG9yIHRoZSBzb3VyY2UgdHlwZSBoYXMgbm8gcmFuZ2UgQVBJIGF0IGFsbC5cbiAqL1xuZXhwb3J0IGNvbnN0IExFQURfVElNRV9HQVBTID0gWydub190b2tlbicsICdyYXRlX2xpbWl0ZWQnLCAndW5zdXBwb3J0ZWRfc291cmNlJywgJ25vX2NvbW1pdF9kYXRhJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBMZWFkVGltZUdhcCA9ICh0eXBlb2YgTEVBRF9USU1FX0dBUFMpW251bWJlcl07XG5cbi8qKlxuICogSG93IGNvbmZpZGVudGx5IGFuIGluY2lkZW50IHdhcyBhdHRyaWJ1dGVkIHRvIGEgZGVwbG95LiBTaG93biBiZXNpZGUgY2hhbmdlXG4gKiBmYWlsdXJlIHJhdGUgYW5kIHRpbWUgdG8gcmVzdG9yZSwgYmVjYXVzZSBcInRoaXMgZGVwbG95IGJyb2tlIHByb2R1Y3Rpb25cIiBhbmRcbiAqIFwiYW4gaW5jaWRlbnQgb3BlbmVkIHNvbWUgaG91cnMgYWZ0ZXIgdGhpcyBkZXBsb3lcIiBhcmUgZGlmZmVyZW50IGNsYWltcyBhbmQgYVxuICogbWFuYWdlciBhY3RzIGRpZmZlcmVudGx5IG9uIGVhY2guXG4gKi9cbmV4cG9ydCBjb25zdCBDT1JSRUxBVElPTl9DT05GSURFTkNFUyA9IFsnaGlnaCcsICdtZWRpdW0nLCAnbG93J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBDb3JyZWxhdGlvbkNvbmZpZGVuY2UgPSAodHlwZW9mIENPUlJFTEFUSU9OX0NPTkZJREVOQ0VTKVtudW1iZXJdO1xuXG4vKipcbiAqIEhvdyBhIHBpcGVsaW5lIGNhbWUgdG8gZXhpc3QuIEZvciB0aGUgYWRvcHRpb24gc2VjdGlvbjogYW4gb3JnIHdob3NlIHBpcGVsaW5lc1xuICogYXJlIGFsbCBoYW5kLWJ1aWx0IGlzIGEgZGlmZmVyZW50IGFkb3B0aW9uIHN0b3J5IGZyb20gb25lIHRlbXBsYXRpbmcgdGhlbS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBJUEVMSU5FX0NSRUFUSU9OX1NPVVJDRVMgPSBbJ21hbnVhbCcsICd0ZW1wbGF0ZScsICdhaScsICdidWxrJywgJ2NkayddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUGlwZWxpbmVDcmVhdGlvblNvdXJjZSA9ICh0eXBlb2YgUElQRUxJTkVfQ1JFQVRJT05fU09VUkNFUylbbnVtYmVyXTtcblxuLyoqXG4gKiBXaGF0IGtpbmQgb2YgdGhpbmcgYnJva2UuIEFzc2lnbmVkIGF0IGluZ2VzdCBieSB0aGUgY2xhc3NpZmllclxuICogKGBhcGkvcmVwb3J0aW5nL3NyYy9zZXJ2aWNlcy9mYWlsdXJlLWNsYXNzaWZpZXIudHNgKSwgd2hpY2ggaXMgcnVsZXMgb3ZlciB0aGVcbiAqIGFjdGlvbidzIHR5cGUgYW5kIGVycm9yIHRleHQg4oCUIGRlbGliZXJhdGVseSBkYXRhLCBub3QgY29kZSwgc28gdGhlIHRheG9ub215IGNhblxuICogZ3JvdyB3aXRob3V0IGEgZGVwbG95LlxuICpcbiAqIFRoZSBjYXRlZ29yaWVzIG92ZXJsYXAgdGhlIHBsdWdpbi1idWlsZCB0YXhvbm9teSBvbiBwdXJwb3NlOiBhIGRlcGVuZGVuY3lcbiAqIGZhaWx1cmUgaXMgYSBkZXBlbmRlbmN5IGZhaWx1cmUgd2hldGhlciBpdCBoYXBwZW5lZCBidWlsZGluZyBhIHBsdWdpbiBvclxuICogcnVubmluZyBvbmUsIGFuZCB0d28gdm9jYWJ1bGFyaWVzIGZvciB0aGUgc2FtZSB0aGluZyB3b3VsZCBtYWtlIHRoZSByZXBvcnQgYW5kXG4gKiB0aGUgYnVpbGQgcXVldWUgZGlzYWdyZWUuXG4gKi9cbmV4cG9ydCBjb25zdCBGQUlMVVJFX0NBVEVHT1JJRVMgPSBbXG4gICdzb3VyY2VfY2hlY2tvdXQnLCAnZGVwZW5kZW5jeScsICdidWlsZCcsICd1bml0X3Rlc3QnLCAnaW50ZWdyYXRpb25fdGVzdCcsXG4gICdzZWN1cml0eV9zY2FuJywgJ2luZnJhc3RydWN0dXJlJywgJ2RlcGxveW1lbnQnLCAnYXV0aGVudGljYXRpb24nLCAncGVybWlzc2lvbnMnLFxuICAnY29uZmlndXJhdGlvbicsICd0aW1lb3V0JywgJ3Jlc291cmNlX2V4aGF1c3Rpb24nLCAnZXh0ZXJuYWxfc2VydmljZScsICdvdGhlcicsXG5dIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgRmFpbHVyZUNhdGVnb3J5ID0gKHR5cGVvZiBGQUlMVVJFX0NBVEVHT1JJRVMpW251bWJlcl07XG5cbi8qKiBXaGVyZSBhIHBsdWdpbi12ZXJzaW9uIGV4cG9zdXJlIHdhcyBvYnNlcnZlZC4gKi9cbmV4cG9ydCBjb25zdCBFWFBPU1VSRV9TT1VSQ0VTID0gWydkZWNsYXJlZCcsICdkZXBsb3llZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgRXhwb3N1cmVTb3VyY2UgPSAodHlwZW9mIEVYUE9TVVJFX1NPVVJDRVMpW251bWJlcl07XG5cbi8qKlxuICogV2hhdCBhbiBvcmcgZGVjaWRlZCBhYm91dCBhbiBleHBvc3VyZS4gYG9wZW5gIHVudGlsIHNvbWVvbmUgbG9va3M7XG4gKiBgYWNjZXB0ZWRgIGlzIGEgdGltZS1ib3hlZCBkZWNpc2lvbiB3aXRoIGEgcmVhc29uIGFuZCBhbiBvd25lciwgbmV2ZXIgYVxuICogcGVybWFuZW50IG11dGU7IGBmYWxzZV9wb3NpdGl2ZWAgaXMgYSBzY2FubmVyIGRpc2FncmVlbWVudCB3b3J0aCByZWNvcmRpbmcgc29cbiAqIHRoZSBzYW1lIGZpbmRpbmcgc3RvcHMgYmVpbmcgcmUtcmFpc2VkIGFzIG5ld3MuIGBmaXhlZGAgPSB0aGUgcGlwZWxpbmUgbW92ZWRcbiAqIHRvIGFub3RoZXIgdmVyc2lvbiBvZiB0aGUgcGx1Z2luOyBgcmVtb3ZlZGAgPSB0aGUgc3RlcCAob3IgdGhlIHBpcGVsaW5lLCBvclxuICogaXRzIGRlcGxveSkgaXMgZ29uZSDigJQgdGhlIHRyaWFnZSBmaWVsZHMgYXJlIEtFUFQsIHNvIGEgc3RlcCByZS1hZGRlZCBiZWZvcmVcbiAqIGFuIGFjY2VwdGFuY2UncyBkZWFkbGluZSBnZXRzIHRoZSBhY2NlcHRhbmNlIGJhY2suXG4gKi9cbmV4cG9ydCBjb25zdCBFWFBPU1VSRV9UUklBR0VfU1RBVEVTID0gWydvcGVuJywgJ2FjY2VwdGVkJywgJ2ZhbHNlX3Bvc2l0aXZlJywgJ2ZpeGVkJywgJ3JlbW92ZWQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEV4cG9zdXJlVHJpYWdlU3RhdGUgPSAodHlwZW9mIEVYUE9TVVJFX1RSSUFHRV9TVEFURVMpW251bWJlcl07XG5cbi8qKlxuICogT25lIGRlcGxveW1lbnQ6IGFuIGV4ZWN1dGlvbiB0aGF0IHJlYWNoZWQgYW4gZW52aXJvbm1lbnQuXG4gKlxuICogV3JpdHRlbiBhdCBpbmdlc3QsIG9uZSByb3cgcGVyIChleGVjdXRpb24sIGVudmlyb25tZW50KS4gRXZlcnl0aGluZyBET1JBXG4gKiByZXBvcnRzIGlzIGhlcmUsIHNvIGAvZG9yYWAsIHRoZSB0cmVuZCBhbmQgdGhlIHJlcG9ydCBzZWN0aW9ucyBzdG9wIHNjYW5uaW5nXG4gKiByYXcgZXZlbnRzIOKAlCBhbmQga2VlcCB3b3JraW5nIGFmdGVyIHRoZSBldmVudHMgYXJlIHN3ZXB0LlxuICpcbiAqIEB0YWJsZSBkb3JhX2RlcGxveW1lbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBkb3JhRGVwbG95bWVudCA9IHBnVGFibGUoJ2RvcmFfZGVwbG95bWVudHMnLCB7XG4gIG9yZ0lkOiB2YXJjaGFyKCdvcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgZXhlY3V0aW9uSWQ6IHZhcmNoYXIoJ2V4ZWN1dGlvbl9pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBlbnZpcm9ubWVudDogdmFyY2hhcignZW52aXJvbm1lbnQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgcGlwZWxpbmVJZDogdmFyY2hhcigncGlwZWxpbmVfaWQnLCB7IGxlbmd0aDogMjU1IH0pLFxuICAvKiogV2hlbiB0aGUgZGVwbG95IHN0YWdlIGNvbXBsZXRlZC4gVGhlIGRlcGxveSdzIG93biB0aW1lc3RhbXAsIG5vdCB0aGUgcnVuJ3MuICovXG4gIGRlcGxveWVkQXQ6IHRpbWVzdGFtcCgnZGVwbG95ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5ub3ROdWxsKCksXG4gIHN1Y2NlZWRlZDogYm9vbGVhbignc3VjY2VlZGVkJykubm90TnVsbCgpLFxuICAvKipcbiAgICogVGhlIE9MREVTVCB1bnNoaXBwZWQgY29tbWl0IGluIHRoaXMgZGVwbG95J3MgcmFuZ2UuIExlYWQgdGltZSBpc1xuICAgKiBgZGVwbG95ZWRBdCAtIGVhcmxpZXN0Q29tbWl0QXRgLCBjb21wdXRlZCBvbmNlIGFuZCBzdG9yZWQsIGJlY2F1c2UgdGhlXG4gICAqIHBlci1ldmVudCBmb3JtIGRvdWJsZS1jb3VudHMgYSBkZXBsb3kgdGhhdCBlbWl0cyBib3RoIGEgU1RBR0UgYW5kIGFuIEFDVElPTlxuICAgKiBldmVudCBjYXJyeWluZyB0aGUgc2FtZSByYW5nZS5cbiAgICovXG4gIGVhcmxpZXN0Q29tbWl0QXQ6IHRpbWVzdGFtcCgnZWFybGllc3RfY29tbWl0X2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGxlYWRUaW1lU2Vjb25kczogaW50ZWdlcignbGVhZF90aW1lX3NlY29uZHMnKSxcbiAgY29tbWl0Q291bnQ6IGludGVnZXIoJ2NvbW1pdF9jb3VudCcpLFxuICBjb21taXRTaGE6IHZhcmNoYXIoJ2NvbW1pdF9zaGEnLCB7IGxlbmd0aDogMjU1IH0pLFxuICAvKiogV2h5IGxlYWQgdGltZSBpcyBhYnNlbnQsIHdoZW4gaXQgaXMuIE5VTEwgd2hlbiBpdCB3YXMgbWVhc3VyZWQuICovXG4gIGxlYWRUaW1lR2FwOiB2YXJjaGFyKCdsZWFkX3RpbWVfZ2FwJywgeyBsZW5ndGg6IDMwIH0pLiR0eXBlPExlYWRUaW1lR2FwPigpLFxuICAvKipcbiAgICogUG9zdC1kZXBsb3kgb3V0Y29tZSBtYXJrZXJzLCBkZW5vcm1hbGl6ZWQgb250byB0aGUgZGVwbG95IHNvIGNoYW5nZS1mYWlsdXJlXG4gICAqIHJhdGUgYW5kIHRpbWUtdG8tcmVzdG9yZSBhcmUgb25lIHNjYW4gcmF0aGVyIHRoYW4gYSBqb2luIHBlciB3aW5kb3cuXG4gICAqL1xuICBmYWlsZWRBdDogdGltZXN0YW1wKCdmYWlsZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgcmVzdG9yZWRBdDogdGltZXN0YW1wKCdyZXN0b3JlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICAvKiogSG93IHRoZSBpbmNpZGVudOKGkmRlcGxveSBsaW5rIHdhcyBqdWRnZWQuIE5VTEwgd2hlbiBub3RoaW5nIHdhcyBjb3JyZWxhdGVkLiAqL1xuICBjb3JyZWxhdGlvbkNvbmZpZGVuY2U6IHZhcmNoYXIoJ2NvcnJlbGF0aW9uX2NvbmZpZGVuY2UnLCB7IGxlbmd0aDogMTAgfSkuJHR5cGU8Q29ycmVsYXRpb25Db25maWRlbmNlPigpLFxuICAvKipcbiAgICogVGhlIEV2ZW50QnJpZGdlIGV2ZW50IGlkIG9mIHRoZSBkZXBsb3kgU1RBR0UgZXZlbnQgdGhhdCBsYXN0IHdyb3RlIHRoaXMgcm93LFxuICAgKiBzbyBhIERPUkEgbnVtYmVyIHRyYWNlcyBiYWNrIHRvIHRoZSBleGFjdCBgcGlwZWxpbmVfZXZlbnRzYCByb3cgKGFuZCBBV1NcbiAgICogZXZlbnQpIGJlaGluZCBpdC4gTlVMTCBmb3IgYSBkZXBsb3kgZnJvbSBhIHByb2R1Y2VyIHdpdGhvdXQgb25lLlxuICAgKi9cbiAgc291cmNlRXZlbnRJZDogdmFyY2hhcignc291cmNlX2V2ZW50X2lkJywgeyBsZW5ndGg6IDEyOCB9KSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIC8vIE9uZSByb3cgcGVyIGV4ZWN1dGlvbiBwZXIgZW52aXJvbm1lbnQ6IGEgcmVkZWxpdmVyZWQgZXZlbnQgdXBzZXJ0cyByYXRoZXJcbiAgLy8gdGhhbiBpbnNlcnRpbmcgYSBzZWNvbmQgZGVwbG95IChFdmVudEJyaWRnZSDihpIgU1FTIGlzIGF0LWxlYXN0LW9uY2UpLlxuICBwazogcHJpbWFyeUtleSh7IGNvbHVtbnM6IFt0YWJsZS5leGVjdXRpb25JZCwgdGFibGUuZW52aXJvbm1lbnRdIH0pLFxuICAvLyBUaGUgd2luZG93IHNjYW4gZXZlcnkgRE9SQSByZWFkIGRvZXMuXG4gIG9yZ0VudkRlcGxveWVkSWR4OiBpbmRleCgnZG9yYV9kZXBsb3ltZW50X29yZ19lbnZfZGVwbG95ZWRfaWR4JylcbiAgICAub24odGFibGUub3JnSWQsIHRhYmxlLmVudmlyb25tZW50LCB0YWJsZS5kZXBsb3llZEF0KSxcbiAgb3JnRGVwbG95ZWRJZHg6IGluZGV4KCdkb3JhX2RlcGxveW1lbnRfb3JnX2RlcGxveWVkX2lkeCcpLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS5kZXBsb3llZEF0KSxcbiAgcGlwZWxpbmVJZHg6IGluZGV4KCdkb3JhX2RlcGxveW1lbnRfcGlwZWxpbmVfaWR4Jykub24odGFibGUucGlwZWxpbmVJZCwgdGFibGUuZGVwbG95ZWRBdCksXG4gIC8vIFRoZSBwcm9tb3Rpb24gdmlldzogb25lIGNvbW1pdCdzIHBhdGggYWNyb3NzIGVudmlyb25tZW50cy5cbiAgY29tbWl0SWR4OiBpbmRleCgnZG9yYV9kZXBsb3ltZW50X2NvbW1pdF9pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUuY29tbWl0U2hhKVxuICAgIC53aGVyZShzcWxgY29tbWl0X3NoYSBJUyBOT1QgTlVMTGApLFxufSkpO1xuXG4vKipcbiAqIFByZS1hZ2dyZWdhdGVkIGV4ZWN1dGlvbiBjb3VudHMgYW5kIHRpbWluZ3MsIG9uZSByb3cgcGVyIG9yZywgcGlwZWxpbmUsIHN0YWdlXG4gKiBhbmQgVVRDIGRheS5cbiAqXG4gKiBSZWJ1aWx0IGZvciBhIGRheSB3aGVuIGxhdGUgZXZlbnRzIGFycml2ZSwgc28gdGhlIHJvbGx1cCBhbmQgdGhlIGV2ZW50cyBhZ3JlZVxuICogd2hpbGUgYm90aCBleGlzdC4gYGZhaWx1cmVzQnlDYXRlZ29yeWAgaXMgYSBKU09OIG1hcCByYXRoZXIgdGhhbiBhIGNvbHVtbiBwZXJcbiAqIGNhdGVnb3J5IGJlY2F1c2UgdGhlIHRheG9ub215IGdyb3dzLlxuICpcbiAqIEB0YWJsZSBleGVjdXRpb25fZGFpbHlfcm9sbHVwc1xuICovXG5leHBvcnQgY29uc3QgZXhlY3V0aW9uRGFpbHlSb2xsdXAgPSBwZ1RhYmxlKCdleGVjdXRpb25fZGFpbHlfcm9sbHVwcycsIHtcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICAvKiogVGhlIFVUQyBkYXRlIHRoaXMgcm93IGFnZ3JlZ2F0ZXMuIFJlcG9ydCBwZXJpb2RzIHJlLWJ1Y2tldCBpbiB0aGUgcmVwb3J0J3NcbiAgICogIG93biB0aW1lem9uZSBieSBzdW1taW5nIGRheXMg4oCUIHdoaWNoIGlzIHdoeSB0aGUgZ3JhaW4gaXMgYSBEQVkuICovXG4gIGRheTogdGltZXN0YW1wKCdkYXknLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5ub3ROdWxsKCksXG4gIHBpcGVsaW5lSWQ6IHZhcmNoYXIoJ3BpcGVsaW5lX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIC8qKiBgJydgIGZvciB0aGUgcGlwZWxpbmUtbGV2ZWwgcm93OyBhIHN0YWdlIG5hbWUgZm9yIGEgc3RhZ2UtbGV2ZWwgcm93LiAqL1xuICBzdGFnZU5hbWU6IHZhcmNoYXIoJ3N0YWdlX25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLmRlZmF1bHQoJycpLm5vdE51bGwoKSxcbiAgcnVuczogaW50ZWdlcigncnVucycpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICBzdWNjZWVkZWQ6IGludGVnZXIoJ3N1Y2NlZWRlZCcpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICBmYWlsZWQ6IGludGVnZXIoJ2ZhaWxlZCcpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICAvKiogY2F0ZWdvcnkg4oaSIGNvdW50LiBGZWVkcyB0aGUgZmFpbHVyZS1hbmFseXNpcyBzZWN0aW9uLiAqL1xuICBmYWlsdXJlc0J5Q2F0ZWdvcnk6IGpzb25iKCdmYWlsdXJlc19ieV9jYXRlZ29yeScpLiR0eXBlPFJlY29yZDxzdHJpbmcsIG51bWJlcj4+KCkuZGVmYXVsdCh7fSkubm90TnVsbCgpLFxuICBwNTBNczogaW50ZWdlcigncDUwX21zJyksXG4gIHA5ME1zOiBpbnRlZ2VyKCdwOTBfbXMnKSxcbiAgcDk1TXM6IGludGVnZXIoJ3A5NV9tcycpLFxuICAvKiogU3VtbWVkIGV4ZWN1dGlvbiBkdXJhdGlvbiwgaW4gc2Vjb25kcy4gVGhlIHJlc291cmNlLWNvbnN1bXB0aW9uIHNlY3Rpb24nc1xuICAgKiAgb25seSBpbnB1dDsgZGVsaWJlcmF0ZWx5IE5PVCBjb252ZXJ0ZWQgdG8gbW9uZXkgYW55d2hlcmUuICovXG4gIGJ1aWxkU2Vjb25kczogaW50ZWdlcignYnVpbGRfc2Vjb25kcycpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICAvKiogV2hlbiB0aGlzIHJvdyB3YXMgbGFzdCByZWJ1aWx0LCBzbyBhIGxhdGUtZXZlbnQgcmVidWlsZCBpcyB2aXNpYmxlLiAqL1xuICBjb21wdXRlZEF0OiB0aW1lc3RhbXAoJ2NvbXB1dGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgcGs6IHByaW1hcnlLZXkoeyBjb2x1bW5zOiBbdGFibGUub3JnSWQsIHRhYmxlLmRheSwgdGFibGUucGlwZWxpbmVJZCwgdGFibGUuc3RhZ2VOYW1lXSB9KSxcbiAgb3JnRGF5SWR4OiBpbmRleCgnZXhlY3V0aW9uX3JvbGx1cF9vcmdfZGF5X2lkeCcpLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS5kYXkpLFxuICBwaXBlbGluZURheUlkeDogaW5kZXgoJ2V4ZWN1dGlvbl9yb2xsdXBfcGlwZWxpbmVfZGF5X2lkeCcpLm9uKHRhYmxlLnBpcGVsaW5lSWQsIHRhYmxlLmRheSksXG59KSk7XG5cbi8qKlxuICogV2hhdCBhIHBpcGVsaW5lJ3MgZGVjbGFyZWQgcGx1Z2luIHN0ZXBzIHJlc29sdmUgdG8uXG4gKlxuICogUmVjb21wdXRlZCBvbiBwaXBlbGluZSB3cml0ZSBhbmQgb24gcGx1Z2luIHB1Ymxpc2gsIHJhdGhlciB0aGFuIHJlc29sdmVkIGF0XG4gKiByZWFkIHRpbWU6IHRoZSBvdXRkYXRlZC1wbHVnaW4gc2VjdGlvbiBjb21wYXJlcyBcImluIHVzZVwiIGFnYWluc3QgXCJsYXRlc3RcbiAqIGF2YWlsYWJsZVwiIGZvciBldmVyeSBzdGVwIG9mIGV2ZXJ5IHBpcGVsaW5lLCBhbmQgZG9pbmcgdGhhdCByZXNvbHV0aW9uIHBlciByZWFkXG4gKiBtYWRlIGl0IGEgcXVlcnkgbm9ib2R5IGNvdWxkIGFmZm9yZCB0byBwdXQgaW4gYSByZXBvcnQuXG4gKlxuICogQHRhYmxlIHBpcGVsaW5lX3BsdWdpbl9yZXNvbHV0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBwaXBlbGluZVBsdWdpblJlc29sdXRpb24gPSBwZ1RhYmxlKCdwaXBlbGluZV9wbHVnaW5fcmVzb2x1dGlvbicsIHtcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBwaXBlbGluZUlkOiB2YXJjaGFyKCdwaXBlbGluZV9pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBzdGFnZU5hbWU6IHZhcmNoYXIoJ3N0YWdlX25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgc3RlcE5hbWU6IHZhcmNoYXIoJ3N0ZXBfbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBwbHVnaW5QdWJsaXNoZXI6IHZhcmNoYXIoJ3BsdWdpbl9wdWJsaXNoZXInLCB7IGxlbmd0aDogMzkgfSksXG4gIHBsdWdpbk5hbWU6IHZhcmNoYXIoJ3BsdWdpbl9uYW1lJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIC8qKiBXaGF0IHRoZSBjb25maWcgYXNrZWQgZm9yIOKAlCBhIHJhbmdlLCBhIHBpbiwgb3Igbm90aGluZy4gKi9cbiAgZGVjbGFyZWRWZXJzaW9uOiB2YXJjaGFyKCdkZWNsYXJlZF92ZXJzaW9uJywgeyBsZW5ndGg6IDUwIH0pLFxuICAvKiogV2hhdCB0aGF0IHJlc29sdmVzIHRvIHRvZGF5LiBOVUxMIHdoZW4gbm90aGluZyBzYXRpc2ZpZXMgaXQuICovXG4gIHJlc29sdmVkVmVyc2lvbjogdmFyY2hhcigncmVzb2x2ZWRfdmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgLyoqIFRoZSByZXNvbHZlZCByZWNvcmQ6IGEgYHBsdWdpbnNgIHJvdyBpZCBvciBhIGxpc3RpbmcgdmVyc2lvbiBpZC4gKi9cbiAgcmVzb2x2ZWRQbHVnaW5JZDogdmFyY2hhcigncmVzb2x2ZWRfcGx1Z2luX2lkJywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgLyoqXG4gICAqIFRoZSBpbWFnZSBkaWdlc3QgdGhlIHJlc29sdmVkIHZlcnNpb24gaXMgcGlubmVkIHRvLiBBIHZlcnNpb24gc3RyaW5nIGFsb25lXG4gICAqIGNhbm5vdCBzYXkgd2hldGhlciBhIHBpcGVsaW5lIGlzIG9uIHRoZSByZWJ1aWx0LCBwYXRjaGVkIGltYWdlIG9yIHRoZSBvbGRcbiAgICogb25lIOKAlCB0aGUgcmVzY2FuIGFuZCB0aGUgYWR2aXNvcnkgc2VhcmNoIG1hdGNoIG9uIHRoaXMuXG4gICAqL1xuICByZXNvbHZlZERpZ2VzdDogdmFyY2hhcigncmVzb2x2ZWRfZGlnZXN0JywgeyBsZW5ndGg6IDcxIH0pLFxuICAvKiogVGhlIG5ld2VzdCB2ZXJzaW9uIHRoZSBvcmcgaXMgZW50aXRsZWQgdG8gaW5zdGFsbCwgZm9yIHRoZSBcImdhcFwiIGNvbHVtbi4gKi9cbiAgbGF0ZXN0VmVyc2lvbjogdmFyY2hhcignbGF0ZXN0X3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSksXG4gIC8qKiBgbWFqb3JgIC8gYG1pbm9yYCAvIGBwYXRjaGAgLyBgbm9uZWAsIGZyb20gcmVzb2x2ZWQg4oaSIGxhdGVzdC4gKi9cbiAgdmVyc2lvbkdhcDogdmFyY2hhcigndmVyc2lvbl9nYXAnLCB7IGxlbmd0aDogMTAgfSksXG4gIC8qKiBGYWxzZSB3aGVuIHRoZSByZXNvbHZlZCB2ZXJzaW9uIGlzIG91dHNpZGUgdGhlIG9yZydzIGNvbnN1bXB0aW9uIHBvbGljeS4gKi9cbiAgd2l0aGluUG9saWN5OiBib29sZWFuKCd3aXRoaW5fcG9saWN5JykuZGVmYXVsdCh0cnVlKS5ub3ROdWxsKCksXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBvcmcgb2YgYSBURUFNJ3MgcGlwZWxpbmUgKG51bGwgZm9yIGEgcm9vdCBvcmcncykuIEEgdGVhbSByZXNvbHZlc1xuICAgKiB0aHJvdWdoIGl0cyByb290J3MgaW5zdGFsbHMsIHBvbGljeSBhbmQgc2hhcmVkIHBsdWdpbnMsIGFuZCB0aGUgcGx1Z2luXG4gICAqIHNlcnZpY2UgcmUtcmVzb2x2aW5nIGEgcGlwZWxpbmUgYWZ0ZXIgYSBwdWJsaXNoIC8gZmxhZyAvIHlhbmsgaGFzIG5vIHJlcXVlc3RcbiAgICogdG8gcmVhZCB0aGUgaGllcmFyY2h5IGZyb20g4oCUIHNvIHRoZSB3cml0ZSB0aGF0IGtuZXcgaXQgcmVjb3JkcyBpdC5cbiAgICovXG4gIHJvb3RPcmdJZDogdmFyY2hhcigncm9vdF9vcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLFxuICBjb21wdXRlZEF0OiB0aW1lc3RhbXAoJ2NvbXB1dGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgcGs6IHByaW1hcnlLZXkoeyBjb2x1bW5zOiBbdGFibGUucGlwZWxpbmVJZCwgdGFibGUuc3RhZ2VOYW1lLCB0YWJsZS5zdGVwTmFtZV0gfSksXG4gIG9yZ0lkeDogaW5kZXgoJ3BpcGVsaW5lX3BsdWdpbl9yZXNvbHV0aW9uX29yZ19pZHgnKS5vbih0YWJsZS5vcmdJZCksXG4gIHBsdWdpbklkeDogaW5kZXgoJ3BpcGVsaW5lX3BsdWdpbl9yZXNvbHV0aW9uX3BsdWdpbl9pZHgnKS5vbih0YWJsZS5wbHVnaW5QdWJsaXNoZXIsIHRhYmxlLnBsdWdpbk5hbWUpLFxuICAvLyBcIldoaWNoIHBpcGVsaW5lcyBhcmUgYmVoaW5kP1wiIOKAlCB0aGUgb3V0ZGF0ZWQgc2VjdGlvbidzIGRyaXZpbmcgc2Nhbi5cbiAgZ2FwSWR4OiBpbmRleCgncGlwZWxpbmVfcGx1Z2luX3Jlc29sdXRpb25fZ2FwX2lkeCcpLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS52ZXJzaW9uR2FwKSxcbiAgLy8gXCJXaGljaCBwaXBlbGluZXMgZGVjbGFyZSB0aGlzIHZlcnNpb24gLyBpbWFnZT9cIiDigJQgcmVzY2FuIGZhbi1vdXQsIGFkdmlzb3J5IHNlYXJjaC5cbiAgdmVyc2lvbklkeDogaW5kZXgoJ3BpcGVsaW5lX3BsdWdpbl9yZXNvbHV0aW9uX3ZlcnNpb25faWR4JylcbiAgICAub24odGFibGUucGx1Z2luTmFtZSwgdGFibGUucmVzb2x2ZWRWZXJzaW9uLCB0YWJsZS5yZXNvbHZlZERpZ2VzdCksXG59KSk7XG5cbi8qKlxuICogT25lIHBpcGVsaW5lJ3MgZXhwb3N1cmUgdG8gb25lIHZ1bG5lcmFibGUgcGx1Z2luIHZlcnNpb24uXG4gKlxuICogT3BlbmVkIGJ5IHRoZSBuaWdodGx5IHJlc2NhbiB3aGVuIGEgdmVyc2lvbiBpbiB1c2UgaGFzIGZpeGFibGUgQ3JpdGljYWwvSGlnaFxuICogZmluZGluZ3MsIGFuZCBDTE9TRUQgYnkgYSBkZXBsb3kgdGhhdCBtb3ZlcyB0aGUgcGlwZWxpbmUgb2ZmIGl0LiBJdCBpcyBhXG4gKiBwZXItcGlwZWxpbmUgcm93IHJhdGhlciB0aGFuIGEgcGVyLXZlcnNpb24gb25lIGJlY2F1c2UgdGhlIHF1ZXN0aW9uIGEgbWFuYWdlclxuICogYXNrcyBpcyBcIndoaWNoIG9mIG91ciBwaXBlbGluZXMgaXMgZXhwb3NlZFwiLCBhbmQgYW5zd2VyaW5nIHRoYXQgZnJvbSBhXG4gKiB2ZXJzaW9uLWxldmVsIHRhYmxlIG1lYW5zIHJlLWRlcml2aW5nIHRoZSBwaXBlbGluZSBzZXQgb24gZXZlcnkgcmVhZC5cbiAqXG4gKiBLZXllZCBieSBJTUFHRSBESUdFU1QsIG5vdCB2ZXJzaW9uIHN0cmluZzogYSB2ZXJzaW9uIHJlYnVpbHQgb24gYSBwYXRjaGVkIGJhc2VcbiAqIGltYWdlIGlzIGEgZGlmZmVyZW50IGFydGlmYWN0IHdpdGggZGlmZmVyZW50IGZpbmRpbmdzLCBhbmQga2V5aW5nIG9uIHRoZSBzdHJpbmdcbiAqIHdvdWxkIHJlcG9ydCB0aGUgb2xkIG9uZSBmb3JldmVyLlxuICpcbiAqIEB0YWJsZSBwbHVnaW5fdnVsbl9leHBvc3VyZVxuICovXG5leHBvcnQgY29uc3QgcGx1Z2luVnVsbkV4cG9zdXJlID0gcGdUYWJsZSgncGx1Z2luX3Z1bG5fZXhwb3N1cmUnLCB7XG4gIGlkOiB2YXJjaGFyKCdpZCcsIHsgbGVuZ3RoOiAyNTUgfSkucHJpbWFyeUtleSgpLFxuICBvcmdJZDogdmFyY2hhcignb3JnX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHBpcGVsaW5lSWQ6IHZhcmNoYXIoJ3BpcGVsaW5lX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIHBsdWdpblB1Ymxpc2hlcjogdmFyY2hhcigncGx1Z2luX3B1Ymxpc2hlcicsIHsgbGVuZ3RoOiAzOSB9KSxcbiAgcGx1Z2luTmFtZTogdmFyY2hhcigncGx1Z2luX25hbWUnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgcGx1Z2luVmVyc2lvbjogdmFyY2hhcigncGx1Z2luX3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSkubm90TnVsbCgpLFxuICBpbWFnZURpZ2VzdDogdmFyY2hhcignaW1hZ2VfZGlnZXN0JywgeyBsZW5ndGg6IDcxIH0pLFxuICBzb3VyY2U6IHZhcmNoYXIoJ3NvdXJjZScsIHsgbGVuZ3RoOiAxMCB9KS4kdHlwZTxFeHBvc3VyZVNvdXJjZT4oKS5ub3ROdWxsKCksXG4gIGNyaXRpY2FsQ291bnQ6IGludGVnZXIoJ2NyaXRpY2FsX2NvdW50JykuZGVmYXVsdCgwKS5ub3ROdWxsKCksXG4gIGhpZ2hDb3VudDogaW50ZWdlcignaGlnaF9jb3VudCcpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICAvKiogVGhlIGZpbmRpbmdzIHRoZW1zZWx2ZXM6IENWRSBpZCwgcGFja2FnZSwgZml4ZWQtaW4gdmVyc2lvbi4gQ2FwcGVkIGJ5IHRoZSB3cml0ZXIuICovXG4gIHRvcEZpbmRpbmdzOiBqc29uYigndG9wX2ZpbmRpbmdzJykuJHR5cGU8QXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+PigpLmRlZmF1bHQoW10pLm5vdE51bGwoKSxcbiAgLyoqXG4gICAqIEVWRVJZIENyaXRpY2FsL0hpZ2ggZmluZGluZyBvZiB0aGUgdmVyc2lvbiBhdCBpdHMgbGFzdCByZWZyZXNoLCBhcyBmaW5kaW5nXG4gICAqIGtleXMgKGBpZHxwYWNrYWdlfHBhY2thZ2VWZXJzaW9uYCkg4oCUIHVuY2FwcGVkLCB1bmxpa2UgYHRvcF9maW5kaW5nc2AsIGJlY2F1c2VcbiAgICogYW4gYWNjZXB0YW5jZSBpcyBjaGVja2VkIGFnYWluc3QgaXQ6IHdoYXQgd2FzIGFjY2VwdGVkIG11c3QgYmUgcHJvdmFibGUuXG4gICAqL1xuICBmaW5kaW5nS2V5czogdGV4dCgnZmluZGluZ19rZXlzJykuYXJyYXkoKS4kdHlwZTxzdHJpbmdbXT4oKS5kZWZhdWx0KFtdKS5ub3ROdWxsKCksXG4gIC8qKiBUaGUgZmluZGluZyBrZXlzIGFuIGBhY2NlcHRlZGAgdHJpYWdlIGNvdmVyZWQsIGZyb3plbiBhdCB0aGUgZGVjaXNpb24uICovXG4gIGFjY2VwdGVkRmluZGluZ0tleXM6IHRleHQoJ2FjY2VwdGVkX2ZpbmRpbmdfa2V5cycpLmFycmF5KCkuJHR5cGU8c3RyaW5nW10+KCkuZGVmYXVsdChbXSkubm90TnVsbCgpLFxuICAvKiogVGhlIGFjY2VwdGFuY2UgZXhwbGljaXRseSBjb3ZlcmVkIEtFVi1saXN0ZWQgZmluZGluZ3MgKG5ldmVyIGltcGxpZWQpLiAqL1xuICBhY2NlcHRlZEtldjogYm9vbGVhbignYWNjZXB0ZWRfa2V2JykuZGVmYXVsdChmYWxzZSkubm90TnVsbCgpLFxuICBmbGFnZ2VkQXQ6IHRpbWVzdGFtcCgnZmxhZ2dlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIC8qKiBTZXQgd2hlbiBhIGRlcGxveSBtb3ZlZCB0aGUgcGlwZWxpbmUgb250byBhIHZlcnNpb24gd2l0aG91dCB0aGUgZmluZGluZ3MuICovXG4gIGZpeGVkQXQ6IHRpbWVzdGFtcCgnZml4ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgdHJpYWdlU3RhdGU6IHZhcmNoYXIoJ3RyaWFnZV9zdGF0ZScsIHsgbGVuZ3RoOiAyMCB9KS4kdHlwZTxFeHBvc3VyZVRyaWFnZVN0YXRlPigpLmRlZmF1bHQoJ29wZW4nKS5ub3ROdWxsKCksXG4gIC8qKiBBbiBhY2NlcHRhbmNlIGlzIHRpbWUtYm94ZWQ6IGEgcGVybWFuZW50IG11dGUgaXMgaG93IGEgZmluZGluZyBpcyBmb3Jnb3R0ZW4uICovXG4gIGFjY2VwdGVkVW50aWw6IHRpbWVzdGFtcCgnYWNjZXB0ZWRfdW50aWwnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgdHJpYWdlUmVhc29uOiB0ZXh0KCd0cmlhZ2VfcmVhc29uJyksXG4gIHRyaWFnZWRCeTogdGV4dCgndHJpYWdlZF9ieScpLFxuICB0cmlhZ2VkQXQ6IHRpbWVzdGFtcCgndHJpYWdlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG59LCAodGFibGUpID0+ICh7XG4gIC8vIE9uZSBsaXZlIGV4cG9zdXJlIHBlciAocGlwZWxpbmUsIHBsdWdpbiB2ZXJzaW9uLCBkaWdlc3QsIHNvdXJjZSk6IGEgbmlnaHRseVxuICAvLyByZXNjYW4gcmVmcmVzaGVzIGNvdW50cyByYXRoZXIgdGhhbiBvcGVuaW5nIGEgbmV3IHJvdyBldmVyeSBuaWdodCwgYW5kIGFcbiAgLy8gdmVyc2lvbiByZWJ1aWx0IG9uIGEgcGF0Y2hlZCBiYXNlIChzYW1lIHN0cmluZywgbmV3IGRpZ2VzdCkgZ2V0cyBpdHMgb3duIHJvdy5cbiAgLy8gcG9zdGdyZXMtaW5pdC5zcWwgY3JlYXRlcyBpdCBOVUxMUyBOT1QgRElTVElOQ1QgKGRyaXp6bGUncyB1bmlxdWVJbmRleCBjYW4ndFxuICAvLyBzYXkgc28pIHNvIGFuIGltYWdlLWxlc3MgdmVyc2lvbiBzdGlsbCBoYXMgZXhhY3RseSBvbmUgcm93IHRvIHJlZnJlc2guXG4gIGV4cG9zdXJlVW5pcXVlOiB1bmlxdWVJbmRleCgncGx1Z2luX3Z1bG5fZXhwb3N1cmVfdW5pcXVlJylcbiAgICAub24odGFibGUucGlwZWxpbmVJZCwgdGFibGUucGx1Z2luTmFtZSwgdGFibGUucGx1Z2luVmVyc2lvbiwgdGFibGUuaW1hZ2VEaWdlc3QsIHRhYmxlLnNvdXJjZSksXG4gIG9yZ09wZW5JZHg6IGluZGV4KCdwbHVnaW5fdnVsbl9leHBvc3VyZV9vcmdfb3Blbl9pZHgnKS5vbih0YWJsZS5vcmdJZCwgdGFibGUudHJpYWdlU3RhdGUpXG4gICAgLndoZXJlKHNxbGBmaXhlZF9hdCBJUyBOVUxMYCksXG4gIGRpZ2VzdElkeDogaW5kZXgoJ3BsdWdpbl92dWxuX2V4cG9zdXJlX2RpZ2VzdF9pZHgnKS5vbih0YWJsZS5pbWFnZURpZ2VzdCksXG59KSk7XG5cbi8qKlxuICogVGhlIGxhc3QgYC9wbHVnaW5zL2xvb2t1cGAgb3V0Y29tZSBwZXIgcGlwZWxpbmUgU1RFUCwgd2hlbiBzeW50aCAoQ0xJIG9yIHRoZVxuICogQ29kZUJ1aWxkIExhbWJkYSkgc2VuZHMgdGhlIHN0ZXAncyBjb250ZXh0LiBUaGUgREVDTEFSRUQgc2lkZVxuICogKGBwaXBlbGluZV9wbHVnaW5fcmVzb2x1dGlvbmApIHNheXMgd2hhdCB0aGUgY29uZmlnIHJlc29sdmVzIHRvIHdoZW4gaXQgd2FzXG4gKiBzYXZlZDsgdGhpcyBzYXlzIHdoYXQgc3ludGggd2FzIGFjdHVhbGx5IHRvbGQg4oCUIHRoZSB2ZXJzaW9uLCB0aGUgaW1hZ2UsIGV2ZXJ5XG4gKiB3YXJuaW5nLCBhbmQgdGhlIHJlZnVzYWwg4oCUIHdoaWNoIGlzIHdoYXQgYSBcIndoeSBkaWQgbXkgZGVwbG95IHN0b3BcIiBwYWdlIG5lZWRzLlxuICpcbiAqIEB0YWJsZSBwaXBlbGluZV9zdGVwX2xvb2t1cHNcbiAqL1xuZXhwb3J0IGNvbnN0IHBpcGVsaW5lU3RlcExvb2t1cCA9IHBnVGFibGUoJ3BpcGVsaW5lX3N0ZXBfbG9va3VwcycsIHtcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBwaXBlbGluZUlkOiB2YXJjaGFyKCdwaXBlbGluZV9pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICAvKiogVGhlIHN0ZXAncyBjb250cmFjdCBsYWJlbDogYHN5bnRoYCBvciBgPHN0YWdlTmFtZT4vPGFsaWFzID8/IG5hbWU+YC4gKi9cbiAgc3RlcEtleTogdmFyY2hhcignc3RlcF9rZXknLCB7IGxlbmd0aDogNTEyIH0pLm5vdE51bGwoKSxcbiAgcGx1Z2luUHVibGlzaGVyOiB2YXJjaGFyKCdwbHVnaW5fcHVibGlzaGVyJywgeyBsZW5ndGg6IDM5IH0pLFxuICBwbHVnaW5OYW1lOiB2YXJjaGFyKCdwbHVnaW5fbmFtZScsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICAvKiogV2hhdCB0aGUgcmVmZXJlbmNlIGFza2VkIGZvciAoYSByYW5nZSwgYSBwaW4sIG9yIG5vdGhpbmcpLiAqL1xuICByZXF1ZXN0ZWRWZXJzaW9uOiB2YXJjaGFyKCdyZXF1ZXN0ZWRfdmVyc2lvbicsIHsgbGVuZ3RoOiA1MCB9KSxcbiAgLyoqIE5VTEwgd2hlbiB0aGUgbG9va3VwIHdhcyByZWZ1c2VkLiAqL1xuICByZXNvbHZlZFZlcnNpb246IHZhcmNoYXIoJ3Jlc29sdmVkX3ZlcnNpb24nLCB7IGxlbmd0aDogNTAgfSksXG4gIHJlc29sdmVkUGx1Z2luSWQ6IHZhcmNoYXIoJ3Jlc29sdmVkX3BsdWdpbl9pZCcsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIGltYWdlRGlnZXN0OiB2YXJjaGFyKCdpbWFnZV9kaWdlc3QnLCB7IGxlbmd0aDogNzEgfSksXG4gIC8qKiBgW3sgY29kZSwgbWVzc2FnZSwgc2V2ZXJpdHkgfV1gIOKAlCBldmVyeSB3YXJuaW5nIHRoZSBhbnN3ZXIgY2FycmllZC4gKi9cbiAgd2FybmluZ3M6IGpzb25iKCd3YXJuaW5ncycpLiR0eXBlPEFycmF5PHsgY29kZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmc7IHNldmVyaXR5Pzogc3RyaW5nIH0+PigpLmRlZmF1bHQoW10pLm5vdE51bGwoKSxcbiAgLyoqXG4gICAqIGB7IGNvZGUsIHJlYXNvbiwgbWVzc2FnZSB9YCB3aGVuIHRoZSBsb29rdXAgd2FzIHJlZnVzZWQg4oCUIG5ldmVyIGZvclxuICAgKiB2dWxuZXJhYmlsaXR5IHN0YXRlICh0aGF0IG9ubHkgZ3JhZGVzKSwgYnV0IGZvciBhIGRlbGV0ZWQgLyBub3QtaW5zdGFsbGVkIC9cbiAgICogcG9saWN5LWJsb2NrZWQgcGx1Z2luIG9yIGEgZmFpbGVkIGltYWdlIHNpZ25hdHVyZS5cbiAgICovXG4gIHJlZnVzYWw6IGpzb25iKCdyZWZ1c2FsJykuJHR5cGU8eyBjb2RlOiBzdHJpbmc7IHJlYXNvbjogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfSB8IG51bGw+KCksXG4gIGxvb2tlZFVwQXQ6IHRpbWVzdGFtcCgnbG9va2VkX3VwX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgcGs6IHByaW1hcnlLZXkoeyBjb2x1bW5zOiBbdGFibGUucGlwZWxpbmVJZCwgdGFibGUuc3RlcEtleV0gfSksXG4gIG9yZ0lkeDogaW5kZXgoJ3BpcGVsaW5lX3N0ZXBfbG9va3Vwc19vcmdfaWR4Jykub24odGFibGUub3JnSWQpLFxufSkpO1xuXG4vKipcbiAqIFRoZSBsYXRlc3Qgc2VjdXJpdHktc2Nhbm5lciByZXBvcnQgYSBwaXBlbGluZSBSVU4gdXBsb2FkZWQsIHBlciAocGlwZWxpbmUsXG4gKiB0b29sLCBzdGFnZSkg4oCUIHdoYXQgdGhlIHBpcGVsaW5lJ3Mgb3duIHNjYW4gc3RlcHMgZm91bmQgaW4gd2hhdCBpdCBidWlsZHMsXG4gKiBuZXh0IHRvIHdoYXQgdGhlIHBsYXRmb3JtJ3MgcmVzY2FuIGZvdW5kIGluIHRoZSBwbHVnaW4gaW1hZ2VzIGl0IHJ1bnMuXG4gKiBDb3VudHMgYXJlIHN0b3JlZCBzbyBhIHJlcG9ydCBzZWN0aW9uIHJlYWRzIHRoZW0gd2l0aG91dCB1bnBhY2tpbmcgZmluZGluZ3MuXG4gKlxuICogQHRhYmxlIHBpcGVsaW5lX3NlY3VyaXR5X3JlcG9ydHNcbiAqL1xuZXhwb3J0IGNvbnN0IHBpcGVsaW5lU2VjdXJpdHlSZXBvcnQgPSBwZ1RhYmxlKCdwaXBlbGluZV9zZWN1cml0eV9yZXBvcnRzJywge1xuICBpZDogdmFyY2hhcignaWQnLCB7IGxlbmd0aDogMjU1IH0pLnByaW1hcnlLZXkoKSxcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBwaXBlbGluZUlkOiB2YXJjaGFyKCdwaXBlbGluZV9pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICB0b29sOiB2YXJjaGFyKCd0b29sJywgeyBsZW5ndGg6IDY0IH0pLm5vdE51bGwoKSxcbiAgZm9ybWF0OiB2YXJjaGFyKCdmb3JtYXQnLCB7IGxlbmd0aDogMTYgfSkubm90TnVsbCgpLFxuICBzdGFnZTogdmFyY2hhcignc3RhZ2UnLCB7IGxlbmd0aDogMjU1IH0pLmRlZmF1bHQoJycpLm5vdE51bGwoKSxcbiAgZXhlY3V0aW9uSWQ6IHZhcmNoYXIoJ2V4ZWN1dGlvbl9pZCcsIHsgbGVuZ3RoOiAyNTUgfSksXG4gIGNyaXRpY2FsQ291bnQ6IGludGVnZXIoJ2NyaXRpY2FsX2NvdW50JykuZGVmYXVsdCgwKS5ub3ROdWxsKCksXG4gIGhpZ2hDb3VudDogaW50ZWdlcignaGlnaF9jb3VudCcpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICBtZWRpdW1Db3VudDogaW50ZWdlcignbWVkaXVtX2NvdW50JykuZGVmYXVsdCgwKS5ub3ROdWxsKCksXG4gIGxvd0NvdW50OiBpbnRlZ2VyKCdsb3dfY291bnQnKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAga2V2Q291bnQ6IGludGVnZXIoJ2tldl9jb3VudCcpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICBjcml0aWNhbEZpeGFibGU6IGludGVnZXIoJ2NyaXRpY2FsX2ZpeGFibGUnKS5kZWZhdWx0KDApLm5vdE51bGwoKSxcbiAgaGlnaEZpeGFibGU6IGludGVnZXIoJ2hpZ2hfZml4YWJsZScpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICBmaW5kaW5nczoganNvbmIoJ2ZpbmRpbmdzJykuJHR5cGU8QXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+PigpLmRlZmF1bHQoW10pLm5vdE51bGwoKSxcbiAgdHJ1bmNhdGVkOiBib29sZWFuKCd0cnVuY2F0ZWQnKS5kZWZhdWx0KGZhbHNlKS5ub3ROdWxsKCksXG4gIHN1Ym1pdHRlZEJ5OiB0ZXh0KCdzdWJtaXR0ZWRfYnknKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxufSwgKHRhYmxlKSA9PiAoe1xuICBsYXRlc3RVbmlxdWU6IHVuaXF1ZUluZGV4KCdwaXBlbGluZV9zZWN1cml0eV9yZXBvcnRzX3VuaXF1ZScpLm9uKHRhYmxlLnBpcGVsaW5lSWQsIHRhYmxlLnRvb2wsIHRhYmxlLnN0YWdlKSxcbiAgb3JnSWR4OiBpbmRleCgncGlwZWxpbmVfc2VjdXJpdHlfcmVwb3J0c19vcmdfaWR4Jykub24odGFibGUub3JnSWQpLFxufSkpO1xuXG5leHBvcnQgdHlwZSBEb3JhRGVwbG95bWVudCA9IHR5cGVvZiBkb3JhRGVwbG95bWVudC4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBEb3JhRGVwbG95bWVudEluc2VydCA9IHR5cGVvZiBkb3JhRGVwbG95bWVudC4kaW5mZXJJbnNlcnQ7XG5leHBvcnQgdHlwZSBFeGVjdXRpb25EYWlseVJvbGx1cCA9IHR5cGVvZiBleGVjdXRpb25EYWlseVJvbGx1cC4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBFeGVjdXRpb25EYWlseVJvbGx1cEluc2VydCA9IHR5cGVvZiBleGVjdXRpb25EYWlseVJvbGx1cC4kaW5mZXJJbnNlcnQ7XG5leHBvcnQgdHlwZSBQaXBlbGluZVBsdWdpblJlc29sdXRpb24gPSB0eXBlb2YgcGlwZWxpbmVQbHVnaW5SZXNvbHV0aW9uLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBpcGVsaW5lUGx1Z2luUmVzb2x1dGlvbkluc2VydCA9IHR5cGVvZiBwaXBlbGluZVBsdWdpblJlc29sdXRpb24uJGluZmVySW5zZXJ0O1xuZXhwb3J0IHR5cGUgUGx1Z2luVnVsbkV4cG9zdXJlID0gdHlwZW9mIHBsdWdpblZ1bG5FeHBvc3VyZS4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5WdWxuRXhwb3N1cmVJbnNlcnQgPSB0eXBlb2YgcGx1Z2luVnVsbkV4cG9zdXJlLiRpbmZlckluc2VydDtcbmV4cG9ydCB0eXBlIFBpcGVsaW5lU3RlcExvb2t1cCA9IHR5cGVvZiBwaXBlbGluZVN0ZXBMb29rdXAuJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUGlwZWxpbmVTZWN1cml0eVJlcG9ydCA9IHR5cGVvZiBwaXBlbGluZVNlY3VyaXR5UmVwb3J0LiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFBpcGVsaW5lU3RlcExvb2t1cEluc2VydCA9IHR5cGVvZiBwaXBlbGluZVN0ZXBMb29rdXAuJGluZmVySW5zZXJ0O1xuIl19
|
package/lib/index.d.ts
CHANGED
|
@@ -34,15 +34,17 @@ export { anonymizeReviewsByAuthor } from './api/ecosystem-privacy.js';
|
|
|
34
34
|
export { openSupportCase, findCaseByThread, listQueue, listOrgCases, stampFirstResponse, setCaseStatus, setCaseSeverity, assignCase, assignCases, closeCases, transferCaseToContact, openCasesForContact, SUPPORT_CASE_STATUSES, QUEUE_STATUSES, type SupportCaseStatus, type OpenCaseInput, countActiveSupportContacts, listActiveSupportContacts, isSupportContact, designateSupportContact, revokeSupportContact, countPremiumSupportContacts, isPremiumSupportContact, setSupportContactPremium, countCasesInWindow, rateCase, addCaseNote, listCaseNotes, deleteCaseNote, type SupportCaseNote, listCannedResponses, createCannedResponse, updateCannedResponse, deleteCannedResponse, type CannedResponse, listCasesDueForPage, } from './api/support-cases.js';
|
|
35
35
|
export { policyOf, effectiveConsumptionPolicy, applyPolicyUpdate, type ConsumptionPolicy, DEFAULT_CONSUMPTION_POLICY, } from './api/plugin-consumption-policy.js';
|
|
36
36
|
export { advisoryRangeCovers, advisoryRangeProblem, advisoriesCovering, blockingAdvisories, } from './api/plugin-advisories.js';
|
|
37
|
-
export { listingBlock, implicitInstallRange, installAdmits, scopeOrgIds, installModeFor, drizzleListingSource, resolveListingReference, listedVersionWarnings, listedPluginRecord, loadOrgInstallContext, orgListingStates, resolvableListings, type ResolutionRefusal, type ResolutionScope, type ListingDataSource, type ListingResolved, type OrgListingState, } from './api/plugin-resolution.js';
|
|
37
|
+
export { listingBlock, implicitInstallRange, installAdmits, scopeOrgIds, installModeFor, drizzleListingSource, resolveListingReference, listedVersionWarnings, listedPluginRecord, loadOrgInstallContext, orgListingStates, resolvableListings, type ResolutionRefusal, type ResolutionScope, type ListingDataSource, type ListingResolved, type OrgListingState, vulnUpgradeAvailableWarning, type VulnUpgradeAvailableWarning, } from './api/plugin-resolution.js';
|
|
38
|
+
export { findVersionReferences, distinctPipelines, versionReferencedPredicate, orgImageDigestsInUse, type VersionReferenceTarget, type VersionReference, } from './api/version-references.js';
|
|
39
|
+
export { declaredResolution, recordStepLookup, pipelineStepLookups, declaredPipelinesForPlugin, stageAndStep, stepLabelOf, type DeclaredStepInput, type DeclaredStepPlugin, type DeclaredStepResolution, type StepLookupRecord, type DeclaredPipelineRef, } from './api/pipeline-step-resolution.js';
|
|
38
40
|
export { runSoftDeletePurge, createSoftDeletePurgeScheduler, type PurgeableEntity, } from './api/soft-delete-sweep.js';
|
|
39
|
-
export { type BuildHealth, type DoraLevel, type DoraMetrics, type DoraOptions, type DoraTrendPoint, type IncidentListItem, type ReportingSettings, type IncidentTestResult, type IngestCaller, type IngestMetric, type LastDeployedCommit, } from './api/reporting-service.js';
|
|
41
|
+
export { type BuildHealth, type DoraLevel, type DoraMetrics, type DoraOptions, type DoraTrendPoint, type DeploymentOutcomeWrite, type IncidentListItem, type IncidentState, type IncidentWrite, type ReportingSettings, type IncidentTestResult, type IngestCaller, type IngestMetric, type LastDeployedCommit, } from './api/reporting-service.js';
|
|
40
42
|
export { upsertDeployments, applyDeployOutcome, correlateIncident, isDeployEvent, leadTimeGapOf, type DeployCandidate, } from './api/reporting/deploy-rollup.js';
|
|
41
43
|
export { rebuildDay, runRollupPass, rollupSettleHours, rollupBatchDays, utcDayStart, } from './api/reporting/daily-rollup.js';
|
|
42
44
|
export { classifyFailure, isTeamActionable, FAILURE_CATEGORY_LABELS, } from './api/reporting/failure-classifier.js';
|
|
43
45
|
export { getPipelineBreakdown, getFailureAnalysis, getStagePerformance, getResourceConsumption, getPromotionView, getOutdatedPlugins, getPluginVulnerabilities, getAdoption, type AnalyticsScope, type PipelineBreakdownRow, type FailureCategoryRow, type StagePerformanceRow, type ResourceRow, type PromotionRow, type OutdatedPluginRow, type VulnerabilityRow, type AdoptionSummary, } from './api/reporting/analytics-queries.js';
|
|
44
46
|
export { evaluateNeedsAttention, thresholdsFrom, DEFAULT_THRESHOLDS, type NeedsAttentionThresholds, type AttentionFinding, type AttentionItem, type AttentionInput, type AttentionRuleId, } from './api/reporting/needs-attention.js';
|
|
45
|
-
export { replacePipelineResolution, refreshLatestForPlugin, upsertExposures, closeFixedExposures, openExposures, triageExposure, lapsedAcceptances, versionGap, type ResolvedStep, type ExposureInput, type VersionGap, } from './api/reporting/plugin-exposure.js';
|
|
47
|
+
export { replacePipelineResolution, refreshLatestForPlugin, upsertExposures, closeFixedExposures, closePipelineExposures, closeVersionExposures, reconcilePipelineExposures, syncVersionExposures, pipelinesOnVersion, exposureFromScan, liveExposurePredicate, openExposures, triageExposure, lapsedAcceptances, pipelineExposures, exposureById, activeAcceptances, acceptanceKey, reopenLapsedAcceptances, versionGap, type PipelineExposure, type TriageDecision, type PipelineAcceptances, type LapsedAcceptance, type ResolvedStep, type ExposureInput, type ExposureStep, type ExposureCounts, type LiveVersion, type PipelineOnVersion, type PluginVersionRef, type ScanState, type VersionGap, } from './api/reporting/plugin-exposure.js';
|
|
46
48
|
export { resolvePeriod, resolvePeriodByLabel, rejectUnreportablePeriod, nextPeriodBoundary, completePeriodsSince, registerSection, getSection, allSections, sectionIds, REPORT_TEMPLATE_SPECS, getTemplate, composeSnapshot, LOW_SAMPLE_THRESHOLD, REPORT_FEATURE_SUBSTITUTES, renderReportHtml, reportFileName, trendSentence, type ReportHtmlInput, type ResolvedPeriod, type PeriodRejection, type SectionSpec, type SectionContext, type SectionDataSource, type TemplateSpec, type ReportSnapshot, type ComposedSection, type DataQualityNote, type ComposeOptions, type TrendDirection, StakeholderReportStore, stakeholderReportStore, hashToken, mintToken, DEFAULT_SHARE_LINK_TTL_DAYS, MAX_SHARE_LINK_TTL_DAYS, MAX_BOUNCES, VERIFICATION_TTL_MS, type CreateDefinitionInput, type UpdateDefinitionInput, type MintedShareLink, type ResolvedShareLink, } from './api/reporting/stakeholder/index.js';
|
|
47
49
|
export { type PluginRuntimeFilter, type PluginRuntimeStats, ReportingService, reportingService, } from './api/reporting-service.js';
|
|
48
50
|
export { type PluginFilter, type PipelineFilter, type PipelineTemplateFilter, type MessageFilter, type CompliancePolicyFilter, type ComplianceRuleFilter, type ComplianceExemptionFilter, type ComplianceAuditFilter, type ComplianceScanFilter, } from './core/query-filters.js';
|
package/lib/index.js
CHANGED
|
@@ -42,7 +42,9 @@ export { openSupportCase, findCaseByThread, listQueue, listOrgCases, stampFirstR
|
|
|
42
42
|
countPremiumSupportContacts, isPremiumSupportContact, setSupportContactPremium, countCasesInWindow, rateCase, addCaseNote, listCaseNotes, deleteCaseNote, listCannedResponses, createCannedResponse, updateCannedResponse, deleteCannedResponse, listCasesDueForPage, } from './api/support-cases.js';
|
|
43
43
|
export { policyOf, effectiveConsumptionPolicy, applyPolicyUpdate, DEFAULT_CONSUMPTION_POLICY, } from './api/plugin-consumption-policy.js';
|
|
44
44
|
export { advisoryRangeCovers, advisoryRangeProblem, advisoriesCovering, blockingAdvisories, } from './api/plugin-advisories.js';
|
|
45
|
-
export { listingBlock, implicitInstallRange, installAdmits, scopeOrgIds, installModeFor, drizzleListingSource, resolveListingReference, listedVersionWarnings, listedPluginRecord, loadOrgInstallContext, orgListingStates, resolvableListings, } from './api/plugin-resolution.js';
|
|
45
|
+
export { listingBlock, implicitInstallRange, installAdmits, scopeOrgIds, installModeFor, drizzleListingSource, resolveListingReference, listedVersionWarnings, listedPluginRecord, loadOrgInstallContext, orgListingStates, resolvableListings, vulnUpgradeAvailableWarning, } from './api/plugin-resolution.js';
|
|
46
|
+
export { findVersionReferences, distinctPipelines, versionReferencedPredicate, orgImageDigestsInUse, } from './api/version-references.js';
|
|
47
|
+
export { declaredResolution, recordStepLookup, pipelineStepLookups, declaredPipelinesForPlugin, stageAndStep, stepLabelOf, } from './api/pipeline-step-resolution.js';
|
|
46
48
|
// `isSoftDeletePurgeEnabled` is the module's own env gate — `runSoftDeletePurge`
|
|
47
49
|
// and the scheduler already apply it, so callers never ask separately.
|
|
48
50
|
export { runSoftDeletePurge, createSoftDeletePurgeScheduler, } from './api/soft-delete-sweep.js';
|
|
@@ -55,11 +57,11 @@ export { rebuildDay, runRollupPass, rollupSettleHours, rollupBatchDays, utcDaySt
|
|
|
55
57
|
export { classifyFailure, isTeamActionable, FAILURE_CATEGORY_LABELS, } from './api/reporting/failure-classifier.js';
|
|
56
58
|
export { getPipelineBreakdown, getFailureAnalysis, getStagePerformance, getResourceConsumption, getPromotionView, getOutdatedPlugins, getPluginVulnerabilities, getAdoption, } from './api/reporting/analytics-queries.js';
|
|
57
59
|
export { evaluateNeedsAttention, thresholdsFrom, DEFAULT_THRESHOLDS, } from './api/reporting/needs-attention.js';
|
|
58
|
-
export { replacePipelineResolution, refreshLatestForPlugin, upsertExposures, closeFixedExposures, openExposures, triageExposure, lapsedAcceptances, versionGap, } from './api/reporting/plugin-exposure.js';
|
|
60
|
+
export { replacePipelineResolution, refreshLatestForPlugin, upsertExposures, closeFixedExposures, closePipelineExposures, closeVersionExposures, reconcilePipelineExposures, syncVersionExposures, pipelinesOnVersion, exposureFromScan, liveExposurePredicate, openExposures, triageExposure, lapsedAcceptances, pipelineExposures, exposureById, activeAcceptances, acceptanceKey, reopenLapsedAcceptances, versionGap, } from './api/reporting/plugin-exposure.js';
|
|
59
61
|
// The stakeholder-report engine: period resolution, section registry, templates
|
|
60
62
|
// and the composer that freezes a period into a snapshot.
|
|
61
63
|
export { resolvePeriod, resolvePeriodByLabel, rejectUnreportablePeriod, nextPeriodBoundary, completePeriodsSince, registerSection, getSection, allSections, sectionIds, REPORT_TEMPLATE_SPECS, getTemplate, composeSnapshot, LOW_SAMPLE_THRESHOLD, REPORT_FEATURE_SUBSTITUTES, renderReportHtml, reportFileName, trendSentence, StakeholderReportStore, stakeholderReportStore, hashToken, mintToken, DEFAULT_SHARE_LINK_TTL_DAYS, MAX_SHARE_LINK_TTL_DAYS, MAX_BOUNCES, VERIFICATION_TTL_MS, } from './api/reporting/stakeholder/index.js';
|
|
62
64
|
export { ReportingService, reportingService, } from './api/reporting-service.js';
|
|
63
65
|
// Filters
|
|
64
66
|
export {} from './core/query-filters.js';
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFFSCxXQUFXO0FBQ1gsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyw4QkFBOEI7QUFDOUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGFBQWEsR0FDZCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQiw0QkFBNEIsRUFHNUIsZUFBZSxFQUNmLGVBQWUsRUFHZixZQUFZLEdBRWIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsNEJBQTRCLEdBRTdCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFlBQVksRUFDWixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGVBQWUsRUFDZixVQUFVLEVBQ1YsV0FBVyxFQUNYLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixjQUFjLEVBR2QsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLG9CQUFvQjtBQUNwQiwyRUFB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cnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogQG1vZHVsZSBAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1kYXRhXG4gKlxuICogRGF0YWJhc2UgbGF5ZXI6IERyaXp6bGUgT1JNIHNjaGVtYXMsIGNvbm5lY3Rpb24gbWFuYWdlbWVudCwgYW5kIHF1ZXJ5IGluZnJhc3RydWN0dXJlLlxuICpcbiAqICoqRGF0YWJhc2UqKlxuICogLSBkYiDigJQgc2hhcmVkIERyaXp6bGUgZGF0YWJhc2UgaW5zdGFuY2VcbiAqIC0gZ2V0Q29ubmVjdGlvbiwgY2xvc2VDb25uZWN0aW9uIOKAlCBQb3N0Z3JlU1FMIGNvbm5lY3Rpb24gbGlmZWN5Y2xlIHdpdGggcmV0cnkgbG9naWNcbiAqIC0gc2NoZW1hIOKAlCBEcml6emxlIHRhYmxlIGRlZmluaXRpb25zIChwbHVnaW5zLCBwaXBlbGluZXMsIG1lc3NhZ2VzLCBjb21wbGlhbmNlLCBldGMuKVxuICpcbiAqICoqU2VydmljZXMqKlxuICogLSBDcnVkU2VydmljZSDigJQgZ2VuZXJpYyBiYXNlIGNsYXNzIGZvciBtdWx0aS10ZW5hbnQgQ1JVRCB3aXRoIGFjY2VzcyBjb250cm9sIGFuZCBwYWdpbmF0aW9uXG4gKiAtIFJlcG9ydGluZ1NlcnZpY2Ug4oCUIGFnZ3JlZ2F0ZSBxdWVyeSBhbmQgcmVwb3J0aW5nIGJhc2UgY2xhc3NcbiAqXG4gKiAqKlF1ZXJ5IEJ1aWxkZXJzKipcbiAqIC0gYnVpbGRQbHVnaW5Db25kaXRpb25zLCBidWlsZFBpcGVsaW5lQ29uZGl0aW9ucywgYnVpbGRNZXNzYWdlQ29uZGl0aW9ucyDigJQgZmlsdGVyLXRvLVNRTCBjb25kaXRpb24gYnVpbGRlcnNcbiAqIC0gYnVpbGRDb21wbGlhbmNlUG9saWN5Q29uZGl0aW9ucywgYnVpbGRDb21wbGlhbmNlUnVsZUNvbmRpdGlvbnMsIGV0Yy4g4oCUIGNvbXBsaWFuY2UgcXVlcnkgYnVpbGRlcnNcbiAqIC0gQWNjZXNzQ29udHJvbEJ1aWxkZXIg4oCUIHJvdy1sZXZlbCBhY2Nlc3MgY29udHJvbCBjb25kaXRpb24gYnVpbGRlclxuICpcbiAqICoqRmlsdGVycyoqXG4gKiAtIFBsdWdpbkZpbHRlciwgUGlwZWxpbmVGaWx0ZXIsIE1lc3NhZ2VGaWx0ZXIg4oCUIHR5cGVkIGZpbHRlciBpbnRlcmZhY2VzXG4gKiAtIENvbXBsaWFuY2VQb2xpY3lGaWx0ZXIsIENvbXBsaWFuY2VSdWxlRmlsdGVyLCBldGMuIOKAlCBjb21wbGlhbmNlIGZpbHRlciBpbnRlcmZhY2VzXG4gKiAtIGRyaXp6bGVSb3dzLCBkcml6emxlQ291bnQg4oCUIERyaXp6bGUgcmVzdWx0IHR5cGUgaGVscGVyc1xuICovXG5cbi8vIERhdGFiYXNlXG5leHBvcnQgKiBmcm9tICcuL2RhdGFiYXNlL2luZGV4LmpzJztcblxuLy8gUXVlcnkgYnVpbGRlcnMgYW5kIHNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2FwaS9xdWVyeS1idWlsZGVycy5qcyc7XG5leHBvcnQge1xuICB0eXBlIEJhc2VBY2Nlc3NGaWx0ZXIsXG4gIEFjY2Vzc0NvbnRyb2xRdWVyeUJ1aWxkZXIsXG59IGZyb20gJy4vYXBpL2FjY2Vzcy1jb250cm9sLWJ1aWxkZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvdmlld2VyLWNvbnRleHQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvY3J1ZC1zZXJ2aWNlLmpzJztcbmV4cG9ydCB7XG4gIHBhcnNlU2VtdmVyLFxuICBjb21wYXJlU2VtdmVyUGFydHMsXG4gIGNvbXBhcmVTZW12ZXIsXG4gIGlzVmVyc2lvblJhbmdlLFxuICBzYXRpc2ZpZXNWZXJzaW9uU3BlYyxcbiAgc2VtdmVyT3JkZXJCeSxcbn0gZnJvbSAnLi9hcGkvc2VtdmVyLXJhbmdlLmpzJztcbmV4cG9ydCB7XG4gIG5vcm1hbGl6ZVF1ZXJ5LFxuICBzZWFyY2hQdWJsaWNMaXN0aW5ncyxcbiAgbGlzdFB1YmxpY0NhdGVnb3JpZXMsXG4gIGdldFB1YmxpY0xpc3RpbmcsXG4gIGdldFB1YmxpY0xpc3RlZFZlcnNpb24sXG4gIGxpc3RQdWJsaWNSZXZpZXdzLFxuICBsaXN0UHVibGljTGlzdGluZ3NGb3JTaXRlbWFwLFxuICB0eXBlIERpcmVjdG9yeVRydXN0VGllcixcbiAgdHlwZSBEaXJlY3RvcnlTb3J0LFxuICBESVJFQ1RPUllfU09SVFMsXG4gIERJUkVDVE9SWV9USUVSUyxcbiAgdHlwZSBEaXJlY3RvcnlTZWFyY2hQYXJhbXMsXG4gIHR5cGUgUmV2aWV3U29ydCxcbiAgUkVWSUVXX1NPUlRTLFxuICB0eXBlIFB1YmxpY0xpc3RpbmdSb3csXG59IGZyb20gJy4vYXBpL3B1YmxpYy1kaXJlY3RvcnkuanMnO1xuZXhwb3J0IHtcbiAgbGlzdEVuYWJsZWRBbGVydERlc3RpbmF0aW9ucyxcbiAgdHlwZSBOb3RpZmljYXRpb25EZXN0aW5hdGlvbixcbn0gZnJvbSAnLi9hcGkvYWxlcnQtZGVzdGluYXRpb25zLmpzJztcbmV4cG9ydCB7IGFub255bWl6ZVJldmlld3NCeUF1dGhvciB9IGZyb20gJy4vYXBpL2Vjb3N5c3RlbS1wcml2YWN5LmpzJztcbmV4cG9ydCB7XG4gIG9wZW5TdXBwb3J0Q2FzZSxcbiAgZmluZENhc2VCeVRocmVhZCxcbiAgbGlzdFF1ZXVlLFxuICBsaXN0T3JnQ2FzZXMsXG4gIHN0YW1wRmlyc3RSZXNwb25zZSxcbiAgc2V0Q2FzZVN0YXR1cyxcbiAgc2V0Q2FzZVNldmVyaXR5LFxuICBhc3NpZ25DYXNlLFxuICBhc3NpZ25DYXNlcyxcbiAgY2xvc2VDYXNlcyxcbiAgdHJhbnNmZXJDYXNlVG9Db250YWN0LFxuICBvcGVuQ2FzZXNGb3JDb250YWN0LFxuICBTVVBQT1JUX0NBU0VfU1RBVFVTRVMsXG4gIFFVRVVFX1NUQVRVU0VTLFxuICB0eXBlIFN1cHBvcnRDYXNlU3RhdHVzLFxuICB0eXBlIE9wZW5DYXNlSW5wdXQsXG4gIGNvdW50QWN0aXZlU3VwcG9ydENvbnRhY3RzLFxuICBsaXN0QWN0aXZlU3VwcG9ydENvbnRhY3RzLFxuICBpc1N1cHBvcnRDb250YWN0LFxuICBkZXNpZ25hdGVTdXBwb3J0Q29udGFjdCxcbiAgcmV2b2tlU3VwcG9ydENvbnRhY3QsXG4gIC8vIFRoZSBwcmVtaXVtIFVQR1JBREUgc3Vic2V0LiBTZXBhcmF0ZSBmcm9tIHRoZSBiYXNlbGluZSBjb250YWN0IGZ1bmN0aW9uc1xuICAvLyBiZWNhdXNlIHRoZSB0d28gYW5zd2VyIHRvIHNlcGFyYXRlIGNhcHM6IGFuIGFjY291bnQgaG9sZHMgTiBjb250YWN0cyBhbmRcbiAgLy8gdXBncmFkZXMgTSBvZiB0aGVtLlxuICBjb3VudFByZW1pdW1TdXBwb3J0Q29udGFjdHMsXG4gIGlzUHJlbWl1bVN1cHBvcnRDb250YWN0LFxuICBzZXRTdXBwb3J0Q29udGFjdFByZW1pdW0sXG4gIGNvdW50Q2FzZXNJbldpbmRvdyxcbiAgcmF0ZUNhc2UsXG4gIGFkZENhc2VOb3RlLFxuICBsaXN0Q2FzZU5vdGVzLFxuICBkZWxldGVDYXNlTm90ZSxcbiAgdHlwZSBTdXBwb3J0Q2FzZU5vdGUsXG4gIGxpc3RDYW5uZWRSZXNwb25zZXMsXG4gIGNyZWF0ZUNhbm5lZFJlc3BvbnNlLFxuICB1cGRhdGVDYW5uZWRSZXNwb25zZSxcbiAgZGVsZXRlQ2FubmVkUmVzcG9uc2UsXG4gIHR5cGUgQ2FubmVkUmVzcG9uc2UsXG4gIGxpc3RDYXNlc0R1ZUZvclBhZ2UsXG59IGZyb20gJy4vYXBpL3N1cHBvcnQtY2FzZXMuanMnO1xuZXhwb3J0IHtcbiAgcG9saWN5T2YsXG4gIGVmZmVjdGl2ZUNvbnN1bXB0aW9uUG9saWN5LFxuICBhcHBseVBvbGljeVVwZGF0ZSxcbiAgdHlwZSBDb25zdW1wdGlvblBvbGljeSxcbiAgREVGQVVMVF9DT05TVU1QVElPTl9QT0xJQ1ksXG59IGZyb20gJy4vYXBpL3BsdWdpbi1jb25zdW1wdGlvbi1wb2xpY3kuanMnO1xuZXhwb3J0IHtcbiAgYWR2aXNvcnlSYW5nZUNvdmVycyxcbiAgYWR2aXNvcnlSYW5nZVByb2JsZW0sXG4gIGFkdmlzb3JpZXNDb3ZlcmluZyxcbiAgYmxvY2tpbmdBZHZpc29yaWVzLFxufSBmcm9tICcuL2FwaS9wbHVnaW4tYWR2aXNvcmllcy5qcyc7XG5leHBvcnQge1xuICBsaXN0aW5nQmxvY2ssXG4gIGltcGxpY2l0SW5zdGFsbFJhbmdlLFxuICBpbnN0YWxsQWRtaXRzLFxuICBzY29wZU9yZ0lkcyxcbiAgaW5zdGFsbE1vZGVGb3IsXG4gIGRyaXp6bGVMaXN0aW5nU291cmNlLFxuICByZXNvbHZlTGlzdGluZ1JlZmVyZW5jZSxcbiAgbGlzdGVkVmVyc2lvbldhcm5pbmdzLFxuICBsaXN0ZWRQbHVnaW5SZWNvcmQsXG4gIGxvYWRPcmdJbnN0YWxsQ29udGV4dCxcbiAgb3JnTGlzdGluZ1N0YXRlcyxcbiAgcmVzb2x2YWJsZUxpc3RpbmdzLFxuICB0eXBlIFJlc29sdXRpb25SZWZ1c2FsLFxuICB0eXBlIFJlc29sdXRpb25TY29wZSxcbiAgdHlwZSBMaXN0aW5nRGF0YVNvdXJjZSxcbiAgdHlwZSBMaXN0aW5nUmVzb2x2ZWQsXG4gIHR5cGUgT3JnTGlzdGluZ1N0YXRlLFxufSBmcm9tICcuL2FwaS9wbHVnaW4tcmVzb2x1dGlvbi5qcyc7XG4vLyBgaXNTb2Z0RGVsZXRlUHVyZ2VFbmFibGVkYCBpcyB0aGUgbW9kdWxlJ3Mgb3duIGVudiBnYXRlIOKAlCBgcnVuU29mdERlbGV0ZVB1cmdlYFxuLy8gYW5kIHRoZSBzY2hlZHVsZXIgYWxyZWFkeSBhcHBseSBpdCwgc28gY2FsbGVycyBuZXZlciBhc2sgc2VwYXJhdGVseS5cbmV4cG9ydCB7XG4gIHJ1blNvZnREZWxldGVQdXJnZSxcbiAgY3JlYXRlU29mdERlbGV0ZVB1cmdlU2NoZWR1bGVyLFxuICB0eXBlIFB1cmdlYWJsZUVudGl0eSxcbn0gZnJvbSAnLi9hcGkvc29mdC1kZWxldGUtc3dlZXAuanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBCdWlsZEhlYWx0aCxcbiAgdHlwZSBEb3JhTGV2ZWwsXG4gIHR5cGUgRG9yYU1ldHJpY3MsXG4gIHR5cGUgRG9yYU9wdGlvbnMsXG4gIHR5cGUgRG9yYVRyZW5kUG9pbnQsXG4gIHR5cGUgSW5jaWRlbnRMaXN0SXRlbSxcbiAgdHlwZSBSZXBvcnRpbmdTZXR0aW5ncyxcbiAgdHlwZSBJbmNpZGVudFRlc3RSZXN1bHQsXG4gIHR5cGUgSW5nZXN0Q2FsbGVyLFxuICB0eXBlIEluZ2VzdE1ldHJpYyxcbiAgdHlwZSBMYXN0RGVwbG95ZWRDb21taXQsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy1zZXJ2aWNlLmpzJztcblxuLy8gVGhlIHJlcG9ydGluZyBBTkFMWVRJQ1MgbGF5ZXI6IHRoZSBwZXItZGVwbG95IHJvbGx1cCB3cml0dGVuIGF0IGluZ2VzdCwgdGhlXG4vLyBkYWlseSByb2xsdXAgZXZlcnkgc2VjdGlvbiByZWFkcywgYW5kIHRoZSBmYWlsdXJlIGNsYXNzaWZpZXIgdGhhdCBsYWJlbHMgd2hhdFxuLy8gYnJva2UgKHNlZSB0aGUgbW9kdWxlcycgb3duIGhlYWRlcnMgZm9yIHdoeSBlYWNoIGlzIHdyaXR0ZW4gcmF0aGVyIHRoYW4gZGVyaXZlZCkuXG5leHBvcnQge1xuICB1cHNlcnREZXBsb3ltZW50cyxcbiAgYXBwbHlEZXBsb3lPdXRjb21lLFxuICBjb3JyZWxhdGVJbmNpZGVudCxcbiAgaXNEZXBsb3lFdmVudCxcbiAgbGVhZFRpbWVHYXBPZixcbiAgdHlwZSBEZXBsb3lDYW5kaWRhdGUsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy9kZXBsb3ktcm9sbHVwLmpzJztcbmV4cG9ydCB7XG4gIHJlYnVpbGREYXksXG4gIHJ1blJvbGx1cFBhc3MsXG4gIHJvbGx1cFNldHRsZUhvdXJzLFxuICByb2xsdXBCYXRjaERheXMsXG4gIHV0Y0RheVN0YXJ0LFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmcvZGFpbHktcm9sbHVwLmpzJztcbmV4cG9ydCB7XG4gIGNsYXNzaWZ5RmFpbHVyZSxcbiAgaXNUZWFtQWN0aW9uYWJsZSxcbiAgRkFJTFVSRV9DQVRFR09SWV9MQUJFTFMsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy9mYWlsdXJlLWNsYXNzaWZpZXIuanMnO1xuZXhwb3J0IHtcbiAgZ2V0UGlwZWxpbmVCcmVha2Rvd24sXG4gIGdldEZhaWx1cmVBbmFseXNpcyxcbiAgZ2V0U3RhZ2VQZXJmb3JtYW5jZSxcbiAgZ2V0UmVzb3VyY2VDb25zdW1wdGlvbixcbiAgZ2V0UHJvbW90aW9uVmlldyxcbiAgZ2V0T3V0ZGF0ZWRQbHVnaW5zLFxuICBnZXRQbHVnaW5WdWxuZXJhYmlsaXRpZXMsXG4gIGdldEFkb3B0aW9uLFxuICB0eXBlIEFuYWx5dGljc1Njb3BlLFxuICB0eXBlIFBpcGVsaW5lQnJlYWtkb3duUm93LFxuICB0eXBlIEZhaWx1cmVDYXRlZ29yeVJvdyxcbiAgdHlwZSBTdGFnZVBlcmZvcm1hbmNlUm93LFxuICB0eXBlIFJlc291cmNlUm93LFxuICB0eXBlIFByb21vdGlvblJvdyxcbiAgdHlwZSBPdXRkYXRlZFBsdWdpblJvdyxcbiAgdHlwZSBWdWxuZXJhYmlsaXR5Um93LFxuICB0eXBlIEFkb3B0aW9uU3VtbWFyeSxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL2FuYWx5dGljcy1xdWVyaWVzLmpzJztcbmV4cG9ydCB7XG4gIGV2YWx1YXRlTmVlZHNBdHRlbnRpb24sXG4gIHRocmVzaG9sZHNGcm9tLFxuICBERUZBVUxUX1RIUkVTSE9MRFMsXG4gIHR5cGUgTmVlZHNBdHRlbnRpb25UaHJlc2hvbGRzLFxuICB0eXBlIEF0dGVudGlvbkZpbmRpbmcsXG4gIHR5cGUgQXR0ZW50aW9uSXRlbSxcbiAgdHlwZSBBdHRlbnRpb25JbnB1dCxcbiAgdHlwZSBBdHRlbnRpb25SdWxlSWQsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy9uZWVkcy1hdHRlbnRpb24uanMnO1xuZXhwb3J0IHtcbiAgcmVwbGFjZVBpcGVsaW5lUmVzb2x1dGlvbixcbiAgcmVmcmVzaExhdGVzdEZvclBsdWdpbixcbiAgdXBzZXJ0RXhwb3N1cmVzLFxuICBjbG9zZUZpeGVkRXhwb3N1cmVzLFxuICBvcGVuRXhwb3N1cmVzLFxuICB0cmlhZ2VFeHBvc3VyZSxcbiAgbGFwc2VkQWNjZXB0YW5jZXMsXG4gIHZlcnNpb25HYXAsXG4gIHR5cGUgUmVzb2x2ZWRTdGVwLFxuICB0eXBlIEV4cG9zdXJlSW5wdXQsXG4gIHR5cGUgVmVyc2lvbkdhcCxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL3BsdWdpbi1leHBvc3VyZS5qcyc7XG5cbi8vIFRoZSBzdGFrZWhvbGRlci1yZXBvcnQgZW5naW5lOiBwZXJpb2QgcmVzb2x1dGlvbiwgc2VjdGlvbiByZWdpc3RyeSwgdGVtcGxhdGVzXG4vLyBhbmQgdGhlIGNvbXBvc2VyIHRoYXQgZnJlZXplcyBhIHBlcmlvZCBpbnRvIGEgc25hcHNob3QuXG5leHBvcnQge1xuICByZXNvbHZlUGVyaW9kLFxuICByZXNvbHZlUGVyaW9kQnlMYWJlbCxcbiAgcmVqZWN0VW5yZXBvcnRhYmxlUGVyaW9kLFxuICBuZXh0UGVyaW9kQm91bmRhcnksXG4gIGNvbXBsZXRlUGVyaW9kc1NpbmNlLFxuICByZWdpc3RlclNlY3Rpb24sXG4gIGdldFNlY3Rpb24sXG4gIGFsbFNlY3Rpb25zLFxuICBzZWN0aW9uSWRzLFxuICBSRVBPUlRfVEVNUExBVEVfU1BFQ1MsXG4gIGdldFRlbXBsYXRlLFxuICBjb21wb3NlU25hcHNob3QsXG4gIExPV19TQU1QTEVfVEhSRVNIT0xELFxuICBSRVBPUlRfRkVBVFVSRV9TVUJTVElUVVRFUyxcbiAgcmVuZGVyUmVwb3J0SHRtbCxcbiAgcmVwb3J0RmlsZU5hbWUsXG4gIHRyZW5kU2VudGVuY2UsXG4gIHR5cGUgUmVwb3J0SHRtbElucHV0LFxuICB0eXBlIFJlc29sdmVkUGVyaW9kLFxuICB0eXBlIFBlcmlvZFJlamVjdGlvbixcbiAgdHlwZSBTZWN0aW9uU3BlYyxcbiAgdHlwZSBTZWN0aW9uQ29udGV4dCxcbiAgdHlwZSBTZWN0aW9uRGF0YVNvdXJjZSxcbiAgdHlwZSBUZW1wbGF0ZVNwZWMsXG4gIHR5cGUgUmVwb3J0U25hcHNob3QsXG4gIHR5cGUgQ29tcG9zZWRTZWN0aW9uLFxuICB0eXBlIERhdGFRdWFsaXR5Tm90ZSxcbiAgdHlwZSBDb21wb3NlT3B0aW9ucyxcbiAgdHlwZSBUcmVuZERpcmVjdGlvbixcbiAgU3Rha2Vob2xkZXJSZXBvcnRTdG9yZSxcbiAgc3Rha2Vob2xkZXJSZXBvcnRTdG9yZSxcbiAgaGFzaFRva2VuLFxuICBtaW50VG9rZW4sXG4gIERFRkFVTFRfU0hBUkVfTElOS19UVExfREFZUyxcbiAgTUFYX1NIQVJFX0xJTktfVFRMX0RBWVMsXG4gIE1BWF9CT1VOQ0VTLFxuICBWRVJJRklDQVRJT05fVFRMX01TLFxuICB0eXBlIENyZWF0ZURlZmluaXRpb25JbnB1dCxcbiAgdHlwZSBVcGRhdGVEZWZpbml0aW9uSW5wdXQsXG4gIHR5cGUgTWludGVkU2hhcmVMaW5rLFxuICB0eXBlIFJlc29sdmVkU2hhcmVMaW5rLFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmcvc3Rha2Vob2xkZXIvaW5kZXguanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBQbHVnaW5SdW50aW1lRmlsdGVyLFxuICB0eXBlIFBsdWdpblJ1bnRpbWVTdGF0cyxcbiAgUmVwb3J0aW5nU2VydmljZSxcbiAgcmVwb3J0aW5nU2VydmljZSxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nLXNlcnZpY2UuanMnO1xuXG4vLyBGaWx0ZXJzXG5leHBvcnQge1xuICB0eXBlIFBsdWdpbkZpbHRlcixcbiAgdHlwZSBQaXBlbGluZUZpbHRlcixcbiAgdHlwZSBQaXBlbGluZVRlbXBsYXRlRmlsdGVyLFxuICB0eXBlIE1lc3NhZ2VGaWx0ZXIsXG4gIHR5cGUgQ29tcGxpYW5jZVBvbGljeUZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlUnVsZUZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlRXhlbXB0aW9uRmlsdGVyLFxuICB0eXBlIENvbXBsaWFuY2VBdWRpdEZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlU2NhbkZpbHRlcixcbn0gZnJvbSAnLi9jb3JlL3F1ZXJ5LWZpbHRlcnMuanMnO1xuIl19
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFFSCxXQUFXO0FBQ1gsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyw4QkFBOEI7QUFDOUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGFBQWEsR0FDZCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQiw0QkFBNEIsRUFHNUIsZUFBZSxFQUNmLGVBQWUsRUFHZixZQUFZLEdBRWIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsNEJBQTRCLEdBRTdCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFlBQVksRUFDWixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGVBQWUsRUFDZixVQUFVLEVBQ1YsV0FBVyxFQUNYLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixjQUFjLEVBR2QsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLG9CQUFvQjtBQUNwQiwyRUFB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RUFDWCxlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLDBCQUEwQixFQUMxQixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGFBQWEsRUFhYixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsMkJBQTJCLEVBQzNCLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsbUJBQW1CLEdBS3BCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUdMLGdCQUFnQixFQUNoQixnQkFBZ0IsR0FDakIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxVQUFVO0FBQ1YsT0FBTyxFQVVOLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBAbW9kdWxlIEBwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWRhdGFcbiAqXG4gKiBEYXRhYmFzZSBsYXllcjogRHJpenpsZSBPUk0gc2NoZW1hcywgY29ubmVjdGlvbiBtYW5hZ2VtZW50LCBhbmQgcXVlcnkgaW5mcmFzdHJ1Y3R1cmUuXG4gKlxuICogKipEYXRhYmFzZSoqXG4gKiAtIGRiIOKAlCBzaGFyZWQgRHJpenpsZSBkYXRhYmFzZSBpbnN0YW5jZVxuICogLSBnZXRDb25uZWN0aW9uLCBjbG9zZUNvbm5lY3Rpb24g4oCUIFBvc3RncmVTUUwgY29ubmVjdGlvbiBsaWZlY3ljbGUgd2l0aCByZXRyeSBsb2dpY1xuICogLSBzY2hlbWEg4oCUIERyaXp6bGUgdGFibGUgZGVmaW5pdGlvbnMgKHBsdWdpbnMsIHBpcGVsaW5lcywgbWVzc2FnZXMsIGNvbXBsaWFuY2UsIGV0Yy4pXG4gKlxuICogKipTZXJ2aWNlcyoqXG4gKiAtIENydWRTZXJ2aWNlIOKAlCBnZW5lcmljIGJhc2UgY2xhc3MgZm9yIG11bHRpLXRlbmFudCBDUlVEIHdpdGggYWNjZXNzIGNvbnRyb2wgYW5kIHBhZ2luYXRpb25cbiAqIC0gUmVwb3J0aW5nU2VydmljZSDigJQgYWdncmVnYXRlIHF1ZXJ5IGFuZCByZXBvcnRpbmcgYmFzZSBjbGFzc1xuICpcbiAqICoqUXVlcnkgQnVpbGRlcnMqKlxuICogLSBidWlsZFBsdWdpbkNvbmRpdGlvbnMsIGJ1aWxkUGlwZWxpbmVDb25kaXRpb25zLCBidWlsZE1lc3NhZ2VDb25kaXRpb25zIOKAlCBmaWx0ZXItdG8tU1FMIGNvbmRpdGlvbiBidWlsZGVyc1xuICogLSBidWlsZENvbXBsaWFuY2VQb2xpY3lDb25kaXRpb25zLCBidWlsZENvbXBsaWFuY2VSdWxlQ29uZGl0aW9ucywgZXRjLiDigJQgY29tcGxpYW5jZSBxdWVyeSBidWlsZGVyc1xuICogLSBBY2Nlc3NDb250cm9sQnVpbGRlciDigJQgcm93LWxldmVsIGFjY2VzcyBjb250cm9sIGNvbmRpdGlvbiBidWlsZGVyXG4gKlxuICogKipGaWx0ZXJzKipcbiAqIC0gUGx1Z2luRmlsdGVyLCBQaXBlbGluZUZpbHRlciwgTWVzc2FnZUZpbHRlciDigJQgdHlwZWQgZmlsdGVyIGludGVyZmFjZXNcbiAqIC0gQ29tcGxpYW5jZVBvbGljeUZpbHRlciwgQ29tcGxpYW5jZVJ1bGVGaWx0ZXIsIGV0Yy4g4oCUIGNvbXBsaWFuY2UgZmlsdGVyIGludGVyZmFjZXNcbiAqIC0gZHJpenpsZVJvd3MsIGRyaXp6bGVDb3VudCDigJQgRHJpenpsZSByZXN1bHQgdHlwZSBoZWxwZXJzXG4gKi9cblxuLy8gRGF0YWJhc2VcbmV4cG9ydCAqIGZyb20gJy4vZGF0YWJhc2UvaW5kZXguanMnO1xuXG4vLyBRdWVyeSBidWlsZGVycyBhbmQgc2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3F1ZXJ5LWJ1aWxkZXJzLmpzJztcbmV4cG9ydCB7XG4gIHR5cGUgQmFzZUFjY2Vzc0ZpbHRlcixcbiAgQWNjZXNzQ29udHJvbFF1ZXJ5QnVpbGRlcixcbn0gZnJvbSAnLi9hcGkvYWNjZXNzLWNvbnRyb2wtYnVpbGRlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS92aWV3ZXItY29udGV4dC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9jcnVkLXNlcnZpY2UuanMnO1xuZXhwb3J0IHtcbiAgcGFyc2VTZW12ZXIsXG4gIGNvbXBhcmVTZW12ZXJQYXJ0cyxcbiAgY29tcGFyZVNlbXZlcixcbiAgaXNWZXJzaW9uUmFuZ2UsXG4gIHNhdGlzZmllc1ZlcnNpb25TcGVjLFxuICBzZW12ZXJPcmRlckJ5LFxufSBmcm9tICcuL2FwaS9zZW12ZXItcmFuZ2UuanMnO1xuZXhwb3J0IHtcbiAgbm9ybWFsaXplUXVlcnksXG4gIHNlYXJjaFB1YmxpY0xpc3RpbmdzLFxuICBsaXN0UHVibGljQ2F0ZWdvcmllcyxcbiAgZ2V0UHVibGljTGlzdGluZyxcbiAgZ2V0UHVibGljTGlzdGVkVmVyc2lvbixcbiAgbGlzdFB1YmxpY1Jldmlld3MsXG4gIGxpc3RQdWJsaWNMaXN0aW5nc0ZvclNpdGVtYXAsXG4gIHR5cGUgRGlyZWN0b3J5VHJ1c3RUaWVyLFxuICB0eXBlIERpcmVjdG9yeVNvcnQsXG4gIERJUkVDVE9SWV9TT1JUUyxcbiAgRElSRUNUT1JZX1RJRVJTLFxuICB0eXBlIERpcmVjdG9yeVNlYXJjaFBhcmFtcyxcbiAgdHlwZSBSZXZpZXdTb3J0LFxuICBSRVZJRVdfU09SVFMsXG4gIHR5cGUgUHVibGljTGlzdGluZ1Jvdyxcbn0gZnJvbSAnLi9hcGkvcHVibGljLWRpcmVjdG9yeS5qcyc7XG5leHBvcnQge1xuICBsaXN0RW5hYmxlZEFsZXJ0RGVzdGluYXRpb25zLFxuICB0eXBlIE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uLFxufSBmcm9tICcuL2FwaS9hbGVydC1kZXN0aW5hdGlvbnMuanMnO1xuZXhwb3J0IHsgYW5vbnltaXplUmV2aWV3c0J5QXV0aG9yIH0gZnJvbSAnLi9hcGkvZWNvc3lzdGVtLXByaXZhY3kuanMnO1xuZXhwb3J0IHtcbiAgb3BlblN1cHBvcnRDYXNlLFxuICBmaW5kQ2FzZUJ5VGhyZWFkLFxuICBsaXN0UXVldWUsXG4gIGxpc3RPcmdDYXNlcyxcbiAgc3RhbXBGaXJzdFJlc3BvbnNlLFxuICBzZXRDYXNlU3RhdHVzLFxuICBzZXRDYXNlU2V2ZXJpdHksXG4gIGFzc2lnbkNhc2UsXG4gIGFzc2lnbkNhc2VzLFxuICBjbG9zZUNhc2VzLFxuICB0cmFuc2ZlckNhc2VUb0NvbnRhY3QsXG4gIG9wZW5DYXNlc0ZvckNvbnRhY3QsXG4gIFNVUFBPUlRfQ0FTRV9TVEFUVVNFUyxcbiAgUVVFVUVfU1RBVFVTRVMsXG4gIHR5cGUgU3VwcG9ydENhc2VTdGF0dXMsXG4gIHR5cGUgT3BlbkNhc2VJbnB1dCxcbiAgY291bnRBY3RpdmVTdXBwb3J0Q29udGFjdHMsXG4gIGxpc3RBY3RpdmVTdXBwb3J0Q29udGFjdHMsXG4gIGlzU3VwcG9ydENvbnRhY3QsXG4gIGRlc2lnbmF0ZVN1cHBvcnRDb250YWN0LFxuICByZXZva2VTdXBwb3J0Q29udGFjdCxcbiAgLy8gVGhlIHByZW1pdW0gVVBHUkFERSBzdWJzZXQuIFNlcGFyYXRlIGZyb20gdGhlIGJhc2VsaW5lIGNvbnRhY3QgZnVuY3Rpb25zXG4gIC8vIGJlY2F1c2UgdGhlIHR3byBhbnN3ZXIgdG8gc2VwYXJhdGUgY2FwczogYW4gYWNjb3VudCBob2xkcyBOIGNvbnRhY3RzIGFuZFxuICAvLyB1cGdyYWRlcyBNIG9mIHRoZW0uXG4gIGNvdW50UHJlbWl1bVN1cHBvcnRDb250YWN0cyxcbiAgaXNQcmVtaXVtU3VwcG9ydENvbnRhY3QsXG4gIHNldFN1cHBvcnRDb250YWN0UHJlbWl1bSxcbiAgY291bnRDYXNlc0luV2luZG93LFxuICByYXRlQ2FzZSxcbiAgYWRkQ2FzZU5vdGUsXG4gIGxpc3RDYXNlTm90ZXMsXG4gIGRlbGV0ZUNhc2VOb3RlLFxuICB0eXBlIFN1cHBvcnRDYXNlTm90ZSxcbiAgbGlzdENhbm5lZFJlc3BvbnNlcyxcbiAgY3JlYXRlQ2FubmVkUmVzcG9uc2UsXG4gIHVwZGF0ZUNhbm5lZFJlc3BvbnNlLFxuICBkZWxldGVDYW5uZWRSZXNwb25zZSxcbiAgdHlwZSBDYW5uZWRSZXNwb25zZSxcbiAgbGlzdENhc2VzRHVlRm9yUGFnZSxcbn0gZnJvbSAnLi9hcGkvc3VwcG9ydC1jYXNlcy5qcyc7XG5leHBvcnQge1xuICBwb2xpY3lPZixcbiAgZWZmZWN0aXZlQ29uc3VtcHRpb25Qb2xpY3ksXG4gIGFwcGx5UG9saWN5VXBkYXRlLFxuICB0eXBlIENvbnN1bXB0aW9uUG9saWN5LFxuICBERUZBVUxUX0NPTlNVTVBUSU9OX1BPTElDWSxcbn0gZnJvbSAnLi9hcGkvcGx1Z2luLWNvbnN1bXB0aW9uLXBvbGljeS5qcyc7XG5leHBvcnQge1xuICBhZHZpc29yeVJhbmdlQ292ZXJzLFxuICBhZHZpc29yeVJhbmdlUHJvYmxlbSxcbiAgYWR2aXNvcmllc0NvdmVyaW5nLFxuICBibG9ja2luZ0Fkdmlzb3JpZXMsXG59IGZyb20gJy4vYXBpL3BsdWdpbi1hZHZpc29yaWVzLmpzJztcbmV4cG9ydCB7XG4gIGxpc3RpbmdCbG9jayxcbiAgaW1wbGljaXRJbnN0YWxsUmFuZ2UsXG4gIGluc3RhbGxBZG1pdHMsXG4gIHNjb3BlT3JnSWRzLFxuICBpbnN0YWxsTW9kZUZvcixcbiAgZHJpenpsZUxpc3RpbmdTb3VyY2UsXG4gIHJlc29sdmVMaXN0aW5nUmVmZXJlbmNlLFxuICBsaXN0ZWRWZXJzaW9uV2FybmluZ3MsXG4gIGxpc3RlZFBsdWdpblJlY29yZCxcbiAgbG9hZE9yZ0luc3RhbGxDb250ZXh0LFxuICBvcmdMaXN0aW5nU3RhdGVzLFxuICByZXNvbHZhYmxlTGlzdGluZ3MsXG4gIHR5cGUgUmVzb2x1dGlvblJlZnVzYWwsXG4gIHR5cGUgUmVzb2x1dGlvblNjb3BlLFxuICB0eXBlIExpc3RpbmdEYXRhU291cmNlLFxuICB0eXBlIExpc3RpbmdSZXNvbHZlZCxcbiAgdHlwZSBPcmdMaXN0aW5nU3RhdGUsXG4gIHZ1bG5VcGdyYWRlQXZhaWxhYmxlV2FybmluZyxcbiAgdHlwZSBWdWxuVXBncmFkZUF2YWlsYWJsZVdhcm5pbmcsXG59IGZyb20gJy4vYXBpL3BsdWdpbi1yZXNvbHV0aW9uLmpzJztcbmV4cG9ydCB7XG4gIGZpbmRWZXJzaW9uUmVmZXJlbmNlcyxcbiAgZGlzdGluY3RQaXBlbGluZXMsXG4gIHZlcnNpb25SZWZlcmVuY2VkUHJlZGljYXRlLFxuICBvcmdJbWFnZURpZ2VzdHNJblVzZSxcbiAgdHlwZSBWZXJzaW9uUmVmZXJlbmNlVGFyZ2V0LFxuICB0eXBlIFZlcnNpb25SZWZlcmVuY2UsXG59IGZyb20gJy4vYXBpL3ZlcnNpb24tcmVmZXJlbmNlcy5qcyc7XG5leHBvcnQge1xuICBkZWNsYXJlZFJlc29sdXRpb24sXG4gIHJlY29yZFN0ZXBMb29rdXAsXG4gIHBpcGVsaW5lU3RlcExvb2t1cHMsXG4gIGRlY2xhcmVkUGlwZWxpbmVzRm9yUGx1Z2luLFxuICBzdGFnZUFuZFN0ZXAsXG4gIHN0ZXBMYWJlbE9mLFxuICB0eXBlIERlY2xhcmVkU3RlcElucHV0LFxuICB0eXBlIERlY2xhcmVkU3RlcFBsdWdpbixcbiAgdHlwZSBEZWNsYXJlZFN0ZXBSZXNvbHV0aW9uLFxuICB0eXBlIFN0ZXBMb29rdXBSZWNvcmQsXG4gIHR5cGUgRGVjbGFyZWRQaXBlbGluZVJlZixcbn0gZnJvbSAnLi9hcGkvcGlwZWxpbmUtc3RlcC1yZXNvbHV0aW9uLmpzJztcbi8vIGBpc1NvZnREZWxldGVQdXJnZUVuYWJsZWRgIGlzIHRoZSBtb2R1bGUncyBvd24gZW52IGdhdGUg4oCUIGBydW5Tb2Z0RGVsZXRlUHVyZ2VgXG4vLyBhbmQgdGhlIHNjaGVkdWxlciBhbHJlYWR5IGFwcGx5IGl0LCBzbyBjYWxsZXJzIG5ldmVyIGFzayBzZXBhcmF0ZWx5LlxuZXhwb3J0IHtcbiAgcnVuU29mdERlbGV0ZVB1cmdlLFxuICBjcmVhdGVTb2Z0RGVsZXRlUHVyZ2VTY2hlZHVsZXIsXG4gIHR5cGUgUHVyZ2VhYmxlRW50aXR5LFxufSBmcm9tICcuL2FwaS9zb2Z0LWRlbGV0ZS1zd2VlcC5qcyc7XG5leHBvcnQge1xuICB0eXBlIEJ1aWxkSGVhbHRoLFxuICB0eXBlIERvcmFMZXZlbCxcbiAgdHlwZSBEb3JhTWV0cmljcyxcbiAgdHlwZSBEb3JhT3B0aW9ucyxcbiAgdHlwZSBEb3JhVHJlbmRQb2ludCxcbiAgdHlwZSBEZXBsb3ltZW50T3V0Y29tZVdyaXRlLFxuICB0eXBlIEluY2lkZW50TGlzdEl0ZW0sXG4gIHR5cGUgSW5jaWRlbnRTdGF0ZSxcbiAgdHlwZSBJbmNpZGVudFdyaXRlLFxuICB0eXBlIFJlcG9ydGluZ1NldHRpbmdzLFxuICB0eXBlIEluY2lkZW50VGVzdFJlc3VsdCxcbiAgdHlwZSBJbmdlc3RDYWxsZXIsXG4gIHR5cGUgSW5nZXN0TWV0cmljLFxuICB0eXBlIExhc3REZXBsb3llZENvbW1pdCxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nLXNlcnZpY2UuanMnO1xuXG4vLyBUaGUgcmVwb3J0aW5nIEFOQUxZVElDUyBsYXllcjogdGhlIHBlci1kZXBsb3kgcm9sbHVwIHdyaXR0ZW4gYXQgaW5nZXN0LCB0aGVcbi8vIGRhaWx5IHJvbGx1cCBldmVyeSBzZWN0aW9uIHJlYWRzLCBhbmQgdGhlIGZhaWx1cmUgY2xhc3NpZmllciB0aGF0IGxhYmVscyB3aGF0XG4vLyBicm9rZSAoc2VlIHRoZSBtb2R1bGVzJyBvd24gaGVhZGVycyBmb3Igd2h5IGVhY2ggaXMgd3JpdHRlbiByYXRoZXIgdGhhbiBkZXJpdmVkKS5cbmV4cG9ydCB7XG4gIHVwc2VydERlcGxveW1lbnRzLFxuICBhcHBseURlcGxveU91dGNvbWUsXG4gIGNvcnJlbGF0ZUluY2lkZW50LFxuICBpc0RlcGxveUV2ZW50LFxuICBsZWFkVGltZUdhcE9mLFxuICB0eXBlIERlcGxveUNhbmRpZGF0ZSxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL2RlcGxveS1yb2xsdXAuanMnO1xuZXhwb3J0IHtcbiAgcmVidWlsZERheSxcbiAgcnVuUm9sbHVwUGFzcyxcbiAgcm9sbHVwU2V0dGxlSG91cnMsXG4gIHJvbGx1cEJhdGNoRGF5cyxcbiAgdXRjRGF5U3RhcnQsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy9kYWlseS1yb2xsdXAuanMnO1xuZXhwb3J0IHtcbiAgY2xhc3NpZnlGYWlsdXJlLFxuICBpc1RlYW1BY3Rpb25hYmxlLFxuICBGQUlMVVJFX0NBVEVHT1JZX0xBQkVMUyxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL2ZhaWx1cmUtY2xhc3NpZmllci5qcyc7XG5leHBvcnQge1xuICBnZXRQaXBlbGluZUJyZWFrZG93bixcbiAgZ2V0RmFpbHVyZUFuYWx5c2lzLFxuICBnZXRTdGFnZVBlcmZvcm1hbmNlLFxuICBnZXRSZXNvdXJjZUNvbnN1bXB0aW9uLFxuICBnZXRQcm9tb3Rpb25WaWV3LFxuICBnZXRPdXRkYXRlZFBsdWdpbnMsXG4gIGdldFBsdWdpblZ1bG5lcmFiaWxpdGllcyxcbiAgZ2V0QWRvcHRpb24sXG4gIHR5cGUgQW5hbHl0aWNzU2NvcGUsXG4gIHR5cGUgUGlwZWxpbmVCcmVha2Rvd25Sb3csXG4gIHR5cGUgRmFpbHVyZUNhdGVnb3J5Um93LFxuICB0eXBlIFN0YWdlUGVyZm9ybWFuY2VSb3csXG4gIHR5cGUgUmVzb3VyY2VSb3csXG4gIHR5cGUgUHJvbW90aW9uUm93LFxuICB0eXBlIE91dGRhdGVkUGx1Z2luUm93LFxuICB0eXBlIFZ1bG5lcmFiaWxpdHlSb3csXG4gIHR5cGUgQWRvcHRpb25TdW1tYXJ5LFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmcvYW5hbHl0aWNzLXF1ZXJpZXMuanMnO1xuZXhwb3J0IHtcbiAgZXZhbHVhdGVOZWVkc0F0dGVudGlvbixcbiAgdGhyZXNob2xkc0Zyb20sXG4gIERFRkFVTFRfVEhSRVNIT0xEUyxcbiAgdHlwZSBOZWVkc0F0dGVudGlvblRocmVzaG9sZHMsXG4gIHR5cGUgQXR0ZW50aW9uRmluZGluZyxcbiAgdHlwZSBBdHRlbnRpb25JdGVtLFxuICB0eXBlIEF0dGVudGlvbklucHV0LFxuICB0eXBlIEF0dGVudGlvblJ1bGVJZCxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL25lZWRzLWF0dGVudGlvbi5qcyc7XG5leHBvcnQge1xuICByZXBsYWNlUGlwZWxpbmVSZXNvbHV0aW9uLFxuICByZWZyZXNoTGF0ZXN0Rm9yUGx1Z2luLFxuICB1cHNlcnRFeHBvc3VyZXMsXG4gIGNsb3NlRml4ZWRFeHBvc3VyZXMsXG4gIGNsb3NlUGlwZWxpbmVFeHBvc3VyZXMsXG4gIGNsb3NlVmVyc2lvbkV4cG9zdXJlcyxcbiAgcmVjb25jaWxlUGlwZWxpbmVFeHBvc3VyZXMsXG4gIHN5bmNWZXJzaW9uRXhwb3N1cmVzLFxuICBwaXBlbGluZXNPblZlcnNpb24sXG4gIGV4cG9zdXJlRnJvbVNjYW4sXG4gIGxpdmVFeHBvc3VyZVByZWRpY2F0ZSxcbiAgb3BlbkV4cG9zdXJlcyxcbiAgdHJpYWdlRXhwb3N1cmUsXG4gIGxhcHNlZEFjY2VwdGFuY2VzLFxuICBwaXBlbGluZUV4cG9zdXJlcyxcbiAgZXhwb3N1cmVCeUlkLFxuICBhY3RpdmVBY2NlcHRhbmNlcyxcbiAgYWNjZXB0YW5jZUtleSxcbiAgcmVvcGVuTGFwc2VkQWNjZXB0YW5jZXMsXG4gIHZlcnNpb25HYXAsXG4gIHR5cGUgUGlwZWxpbmVFeHBvc3VyZSxcbiAgdHlwZSBUcmlhZ2VEZWNpc2lvbixcbiAgdHlwZSBQaXBlbGluZUFjY2VwdGFuY2VzLFxuICB0eXBlIExhcHNlZEFjY2VwdGFuY2UsXG4gIHR5cGUgUmVzb2x2ZWRTdGVwLFxuICB0eXBlIEV4cG9zdXJlSW5wdXQsXG4gIHR5cGUgRXhwb3N1cmVTdGVwLFxuICB0eXBlIEV4cG9zdXJlQ291bnRzLFxuICB0eXBlIExpdmVWZXJzaW9uLFxuICB0eXBlIFBpcGVsaW5lT25WZXJzaW9uLFxuICB0eXBlIFBsdWdpblZlcnNpb25SZWYsXG4gIHR5cGUgU2NhblN0YXRlLFxuICB0eXBlIFZlcnNpb25HYXAsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy9wbHVnaW4tZXhwb3N1cmUuanMnO1xuXG4vLyBUaGUgc3Rha2Vob2xkZXItcmVwb3J0IGVuZ2luZTogcGVyaW9kIHJlc29sdXRpb24sIHNlY3Rpb24gcmVnaXN0cnksIHRlbXBsYXRlc1xuLy8gYW5kIHRoZSBjb21wb3NlciB0aGF0IGZyZWV6ZXMgYSBwZXJpb2QgaW50byBhIHNuYXBzaG90LlxuZXhwb3J0IHtcbiAgcmVzb2x2ZVBlcmlvZCxcbiAgcmVzb2x2ZVBlcmlvZEJ5TGFiZWwsXG4gIHJlamVjdFVucmVwb3J0YWJsZVBlcmlvZCxcbiAgbmV4dFBlcmlvZEJvdW5kYXJ5LFxuICBjb21wbGV0ZVBlcmlvZHNTaW5jZSxcbiAgcmVnaXN0ZXJTZWN0aW9uLFxuICBnZXRTZWN0aW9uLFxuICBhbGxTZWN0aW9ucyxcbiAgc2VjdGlvbklkcyxcbiAgUkVQT1JUX1RFTVBMQVRFX1NQRUNTLFxuICBnZXRUZW1wbGF0ZSxcbiAgY29tcG9zZVNuYXBzaG90LFxuICBMT1dfU0FNUExFX1RIUkVTSE9MRCxcbiAgUkVQT1JUX0ZFQVRVUkVfU1VCU1RJVFVURVMsXG4gIHJlbmRlclJlcG9ydEh0bWwsXG4gIHJlcG9ydEZpbGVOYW1lLFxuICB0cmVuZFNlbnRlbmNlLFxuICB0eXBlIFJlcG9ydEh0bWxJbnB1dCxcbiAgdHlwZSBSZXNvbHZlZFBlcmlvZCxcbiAgdHlwZSBQZXJpb2RSZWplY3Rpb24sXG4gIHR5cGUgU2VjdGlvblNwZWMsXG4gIHR5cGUgU2VjdGlvbkNvbnRleHQsXG4gIHR5cGUgU2VjdGlvbkRhdGFTb3VyY2UsXG4gIHR5cGUgVGVtcGxhdGVTcGVjLFxuICB0eXBlIFJlcG9ydFNuYXBzaG90LFxuICB0eXBlIENvbXBvc2VkU2VjdGlvbixcbiAgdHlwZSBEYXRhUXVhbGl0eU5vdGUsXG4gIHR5cGUgQ29tcG9zZU9wdGlvbnMsXG4gIHR5cGUgVHJlbmREaXJlY3Rpb24sXG4gIFN0YWtlaG9sZGVyUmVwb3J0U3RvcmUsXG4gIHN0YWtlaG9sZGVyUmVwb3J0U3RvcmUsXG4gIGhhc2hUb2tlbixcbiAgbWludFRva2VuLFxuICBERUZBVUxUX1NIQVJFX0xJTktfVFRMX0RBWVMsXG4gIE1BWF9TSEFSRV9MSU5LX1RUTF9EQVlTLFxuICBNQVhfQk9VTkNFUyxcbiAgVkVSSUZJQ0FUSU9OX1RUTF9NUyxcbiAgdHlwZSBDcmVhdGVEZWZpbml0aW9uSW5wdXQsXG4gIHR5cGUgVXBkYXRlRGVmaW5pdGlvbklucHV0LFxuICB0eXBlIE1pbnRlZFNoYXJlTGluayxcbiAgdHlwZSBSZXNvbHZlZFNoYXJlTGluayxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL3N0YWtlaG9sZGVyL2luZGV4LmpzJztcbmV4cG9ydCB7XG4gIHR5cGUgUGx1Z2luUnVudGltZUZpbHRlcixcbiAgdHlwZSBQbHVnaW5SdW50aW1lU3RhdHMsXG4gIFJlcG9ydGluZ1NlcnZpY2UsXG4gIHJlcG9ydGluZ1NlcnZpY2UsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy1zZXJ2aWNlLmpzJztcblxuLy8gRmlsdGVyc1xuZXhwb3J0IHtcbiAgdHlwZSBQbHVnaW5GaWx0ZXIsXG4gIHR5cGUgUGlwZWxpbmVGaWx0ZXIsXG4gIHR5cGUgUGlwZWxpbmVUZW1wbGF0ZUZpbHRlcixcbiAgdHlwZSBNZXNzYWdlRmlsdGVyLFxuICB0eXBlIENvbXBsaWFuY2VQb2xpY3lGaWx0ZXIsXG4gIHR5cGUgQ29tcGxpYW5jZVJ1bGVGaWx0ZXIsXG4gIHR5cGUgQ29tcGxpYW5jZUV4ZW1wdGlvbkZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlQXVkaXRGaWx0ZXIsXG4gIHR5cGUgQ29tcGxpYW5jZVNjYW5GaWx0ZXIsXG59IGZyb20gJy4vY29yZS9xdWVyeS1maWx0ZXJzLmpzJztcbiJdfQ==
|
package/lib/testing/exports.json
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
"package": "@pipeline-builder/pipeline-data",
|
|
3
3
|
"entries": {
|
|
4
4
|
".": {
|
|
5
|
+
"acceptanceKey": "function",
|
|
5
6
|
"AccessControlQueryBuilder": "class",
|
|
7
|
+
"activeAcceptances": "function",
|
|
6
8
|
"addCaseNote": "function",
|
|
7
9
|
"advisoriesCovering": "function",
|
|
8
10
|
"advisoryRangeCovers": "function",
|
|
@@ -29,8 +31,10 @@
|
|
|
29
31
|
"closeCases": "function",
|
|
30
32
|
"closeConnection": "function",
|
|
31
33
|
"closeFixedExposures": "function",
|
|
34
|
+
"closePipelineExposures": "function",
|
|
32
35
|
"closePublicReader": "function",
|
|
33
36
|
"closeReadConnection": "function",
|
|
37
|
+
"closeVersionExposures": "function",
|
|
34
38
|
"COMMUNITY_PUBLISHER_HANDLE": "value",
|
|
35
39
|
"compareSemver": "function",
|
|
36
40
|
"compareSemverParts": "function",
|
|
@@ -59,6 +63,8 @@
|
|
|
59
63
|
"dashboard": "value",
|
|
60
64
|
"dashboardPanel": "value",
|
|
61
65
|
"db": "value",
|
|
66
|
+
"declaredPipelinesForPlugin": "function",
|
|
67
|
+
"declaredResolution": "function",
|
|
62
68
|
"DEFAULT_CONSUMPTION_POLICY": "value",
|
|
63
69
|
"DEFAULT_SHARE_LINK_TTL_DAYS": "value",
|
|
64
70
|
"DEFAULT_THRESHOLDS": "value",
|
|
@@ -68,6 +74,7 @@
|
|
|
68
74
|
"designateSupportContact": "function",
|
|
69
75
|
"DIRECTORY_SORTS": "value",
|
|
70
76
|
"DIRECTORY_TIERS": "value",
|
|
77
|
+
"distinctPipelines": "function",
|
|
71
78
|
"doraSettings": "value",
|
|
72
79
|
"drizzleCount": "function",
|
|
73
80
|
"drizzleListingSource": "function",
|
|
@@ -80,8 +87,11 @@
|
|
|
80
87
|
"effectiveConsumptionPolicy": "function",
|
|
81
88
|
"evaluateNeedsAttention": "function",
|
|
82
89
|
"executeRows": "function",
|
|
90
|
+
"exposureById": "function",
|
|
91
|
+
"exposureFromScan": "function",
|
|
83
92
|
"FAILURE_CATEGORY_LABELS": "value",
|
|
84
93
|
"findCaseByThread": "function",
|
|
94
|
+
"findVersionReferences": "function",
|
|
85
95
|
"getAdoption": "function",
|
|
86
96
|
"getConnection": "function",
|
|
87
97
|
"getFailureAnalysis": "function",
|
|
@@ -130,6 +140,7 @@
|
|
|
130
140
|
"listPublicListingsForSitemap": "function",
|
|
131
141
|
"listPublicReviews": "function",
|
|
132
142
|
"listQueue": "function",
|
|
143
|
+
"liveExposurePredicate": "function",
|
|
133
144
|
"loadOrgInstallContext": "function",
|
|
134
145
|
"LOW_SAMPLE_THRESHOLD": "value",
|
|
135
146
|
"MAX_BOUNCES": "value",
|
|
@@ -147,11 +158,15 @@
|
|
|
147
158
|
"openSupportCase": "function",
|
|
148
159
|
"orgAlertDestination": "value",
|
|
149
160
|
"orgAlertRule": "value",
|
|
161
|
+
"orgImageDigestsInUse": "function",
|
|
150
162
|
"orgListingStates": "function",
|
|
151
163
|
"parseSemver": "function",
|
|
152
164
|
"pipeline": "value",
|
|
153
165
|
"pipelineEvent": "value",
|
|
166
|
+
"pipelineExposures": "function",
|
|
154
167
|
"pipelineRegistry": "value",
|
|
168
|
+
"pipelinesOnVersion": "function",
|
|
169
|
+
"pipelineStepLookups": "function",
|
|
155
170
|
"pipelineStepManifest": "value",
|
|
156
171
|
"pipelineTemplate": "value",
|
|
157
172
|
"plugin": "value",
|
|
@@ -159,6 +174,7 @@
|
|
|
159
174
|
"pluginAdvisoryDelivery": "value",
|
|
160
175
|
"pluginInstall": "value",
|
|
161
176
|
"pluginInstallPolicy": "value",
|
|
177
|
+
"pluginKeptSetupImage": "value",
|
|
162
178
|
"pluginListing": "value",
|
|
163
179
|
"pluginListingVersion": "value",
|
|
164
180
|
"pluginPublishRequest": "value",
|
|
@@ -182,10 +198,13 @@
|
|
|
182
198
|
"QUEUE_STATUSES": "value",
|
|
183
199
|
"rateCase": "function",
|
|
184
200
|
"rebuildDay": "function",
|
|
201
|
+
"reconcilePipelineExposures": "function",
|
|
202
|
+
"recordStepLookup": "function",
|
|
185
203
|
"refreshLatestForPlugin": "function",
|
|
186
204
|
"registerSection": "function",
|
|
187
205
|
"rejectUnreportablePeriod": "function",
|
|
188
206
|
"renderReportHtml": "function",
|
|
207
|
+
"reopenLapsedAcceptances": "function",
|
|
189
208
|
"replacePipelineResolution": "function",
|
|
190
209
|
"REPORT_CADENCES": "value",
|
|
191
210
|
"REPORT_FEATURE_SUBSTITUTES": "value",
|
|
@@ -227,10 +246,13 @@
|
|
|
227
246
|
"setLagSampleForTests": "function",
|
|
228
247
|
"setSupportContactPremium": "function",
|
|
229
248
|
"softDeleteRetentionMs": "function",
|
|
249
|
+
"stageAndStep": "function",
|
|
230
250
|
"stakeholderReportStore": "value",
|
|
231
251
|
"StakeholderReportStore": "class",
|
|
232
252
|
"stampFirstResponse": "function",
|
|
253
|
+
"stepLabelOf": "function",
|
|
233
254
|
"SUPPORT_CASE_STATUSES": "value",
|
|
255
|
+
"syncVersionExposures": "function",
|
|
234
256
|
"tenantContext": "value",
|
|
235
257
|
"testConnection": "function",
|
|
236
258
|
"thresholdsFrom": "function",
|
|
@@ -243,7 +265,9 @@
|
|
|
243
265
|
"utcDayStart": "function",
|
|
244
266
|
"VERIFICATION_TTL_MS": "value",
|
|
245
267
|
"versionGap": "function",
|
|
268
|
+
"versionReferencedPredicate": "function",
|
|
246
269
|
"viewerCacheSegment": "function",
|
|
270
|
+
"vulnUpgradeAvailableWarning": "function",
|
|
247
271
|
"withTenantTx": "function",
|
|
248
272
|
"withTenantTxRead": "function",
|
|
249
273
|
"withViewerContext": "function"
|
package/package.json
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"typescript": "npm:@typescript/typescript6@^6.0.2"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@pipeline-builder/api-core": "5.2.
|
|
27
|
+
"@pipeline-builder/api-core": "5.2.5",
|
|
28
28
|
"drizzle-orm": "0.45.4",
|
|
29
29
|
"pg": "8.23.1"
|
|
30
30
|
},
|
|
@@ -83,9 +83,10 @@
|
|
|
83
83
|
"homepage": "https://mwashburn160.github.io/pipeline-builder/",
|
|
84
84
|
"publishConfig": {
|
|
85
85
|
"access": "public",
|
|
86
|
-
"registry": "https://registry.npmjs.org/"
|
|
86
|
+
"registry": "https://registry.npmjs.org/",
|
|
87
|
+
"provenance": true
|
|
87
88
|
},
|
|
88
|
-
"version": "4.3.
|
|
89
|
+
"version": "4.3.5",
|
|
89
90
|
"bugs": {
|
|
90
91
|
"url": "https://github.com/mwashburn160/pipeline-builder/issues"
|
|
91
92
|
},
|