@pipeline-builder/pipeline-data 4.1.24 → 4.1.26
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/alert-destinations.d.ts +17 -0
- package/lib/api/alert-destinations.js +36 -0
- package/lib/api/reporting/analytics-queries.d.ts +274 -0
- package/lib/api/reporting/analytics-queries.js +598 -0
- package/lib/api/reporting/daily-rollup.d.ts +41 -0
- package/lib/api/reporting/daily-rollup.js +173 -0
- package/lib/api/reporting/deploy-rollup.d.ts +78 -0
- package/lib/api/reporting/deploy-rollup.js +203 -0
- package/lib/api/reporting/dora-scoring.d.ts +14 -0
- package/lib/api/reporting/dora-scoring.js +25 -1
- package/lib/api/reporting/dora.js +30 -6
- package/lib/api/reporting/failure-classifier.d.ts +54 -0
- package/lib/api/reporting/failure-classifier.js +179 -0
- package/lib/api/reporting/ingest.d.ts +2 -2
- package/lib/api/reporting/ingest.js +129 -4
- package/lib/api/reporting/last-deploy.d.ts +31 -0
- package/lib/api/reporting/last-deploy.js +93 -0
- package/lib/api/reporting/needs-attention.d.ts +93 -0
- package/lib/api/reporting/needs-attention.js +152 -0
- package/lib/api/reporting/plugin-exposure.d.ts +129 -0
- package/lib/api/reporting/plugin-exposure.js +312 -0
- package/lib/api/reporting/retention-sweep.js +9 -1
- package/lib/api/reporting/sql-helpers.d.ts +35 -2
- package/lib/api/reporting/sql-helpers.js +39 -1
- package/lib/api/reporting/stakeholder/compose.d.ts +115 -0
- package/lib/api/reporting/stakeholder/compose.js +234 -0
- package/lib/api/reporting/stakeholder/index.d.ts +14 -0
- package/lib/api/reporting/stakeholder/index.js +17 -0
- package/lib/api/reporting/stakeholder/period.d.ts +102 -0
- package/lib/api/reporting/stakeholder/period.js +273 -0
- package/lib/api/reporting/stakeholder/report-html.d.ts +93 -0
- package/lib/api/reporting/stakeholder/report-html.js +208 -0
- package/lib/api/reporting/stakeholder/sections.d.ts +117 -0
- package/lib/api/reporting/stakeholder/sections.js +249 -0
- package/lib/api/reporting/stakeholder/store.d.ts +450 -0
- package/lib/api/reporting/stakeholder/store.js +981 -0
- package/lib/api/reporting/stakeholder/templates.d.ts +21 -0
- package/lib/api/reporting/stakeholder/templates.js +104 -0
- package/lib/api/reporting/types.d.ts +73 -0
- package/lib/api/reporting/types.js +1 -1
- package/lib/api/reporting-service.d.ts +94 -5
- package/lib/api/reporting-service.js +169 -10
- package/lib/api/soft-delete-sweep.d.ts +11 -2
- package/lib/api/soft-delete-sweep.js +17 -6
- package/lib/database/drizzle-schema.d.ts +2244 -385
- package/lib/database/drizzle-schema.js +18 -7
- package/lib/database/index.d.ts +1 -1
- package/lib/database/index.js +4 -2
- package/lib/database/schema/compliance.d.ts +0 -682
- package/lib/database/schema/compliance.js +6 -66
- package/lib/database/schema/ecosystem.d.ts +20 -157
- package/lib/database/schema/ecosystem.js +23 -16
- package/lib/database/schema/pipeline.d.ts +200 -0
- package/lib/database/schema/pipeline.js +100 -1
- package/lib/database/schema/plugin.d.ts +20 -1
- package/lib/database/schema/plugin.js +13 -1
- package/lib/database/schema/reporting-analytics.d.ts +1212 -0
- package/lib/database/schema/reporting-analytics.js +250 -0
- package/lib/database/schema/reporting-stakeholder.d.ts +1373 -0
- package/lib/database/schema/reporting-stakeholder.js +251 -0
- package/lib/index.d.ts +10 -1
- package/lib/index.js +15 -1
- package/lib/testing/exports.json +67 -4
- package/package.json +4 -3
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* Stakeholder reports — scheduled, manager-facing summaries a lead developer
|
|
5
|
+
* composes, reviews and publishes.
|
|
6
|
+
*
|
|
7
|
+
* Four tables, and the reason each exists:
|
|
8
|
+
*
|
|
9
|
+
* - `report_definitions` — the saved "what and when". Reporting was entirely
|
|
10
|
+
* on-demand before this: the dashboard picked a from/to and nothing could be
|
|
11
|
+
* saved, scheduled or kept.
|
|
12
|
+
* - `report_runs` — the FROZEN snapshot of one period's output. This is the load
|
|
13
|
+
* bearing table. The retention sweep purges raw `pipeline_events` by tier, so
|
|
14
|
+
* without a snapshot last quarter's report cannot be regenerated once its
|
|
15
|
+
* events are gone — and a manager who read a number on Monday must see the same
|
|
16
|
+
* number on Friday.
|
|
17
|
+
* - `report_share_links` — expiring, revocable read-only links, because the
|
|
18
|
+
* managers a report is for usually have no platform account.
|
|
19
|
+
* - `report_recipients` — per-org delivery addresses, with verification and
|
|
20
|
+
* bounce state. Recipient emails are PII and the org owns the list, not the
|
|
21
|
+
* definition, so one lead's list is reusable and one unsubscribe is honoured
|
|
22
|
+
* everywhere.
|
|
23
|
+
*
|
|
24
|
+
* Every table is org-scoped with RLS + soft-delete, mirroring postgres-init.sql
|
|
25
|
+
* (which is what actually deploys; `schema-reflection.test.ts` keeps the two in
|
|
26
|
+
* lock-step, name for name).
|
|
27
|
+
*/
|
|
28
|
+
import { sql } from 'drizzle-orm';
|
|
29
|
+
import { boolean, index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, varchar } from 'drizzle-orm/pg-core';
|
|
30
|
+
/** How often a definition produces a report. */
|
|
31
|
+
export const REPORT_CADENCES = ['weekly', 'monthly', 'quarterly'];
|
|
32
|
+
/** The manager-facing templates. Each is a fixed list of section ids. */
|
|
33
|
+
export const REPORT_TEMPLATES = ['weekly_delivery', 'monthly_health', 'quarterly_review'];
|
|
34
|
+
/**
|
|
35
|
+
* A run's lifecycle. `drafting` → `ready_for_review` → `published`, with `failed`
|
|
36
|
+
* as a terminal side branch. Nothing reaches a manager before `published`, which
|
|
37
|
+
* is what makes the lead's approval the gate.
|
|
38
|
+
*/
|
|
39
|
+
export const REPORT_RUN_STATUSES = ['drafting', 'ready_for_review', 'published', 'failed'];
|
|
40
|
+
/**
|
|
41
|
+
* Why a definition stopped running. Recorded rather than inferred, because the
|
|
42
|
+
* three causes need different fixes and the lead sees this string: the add-on
|
|
43
|
+
* lapsed, the owner was deactivated, or the owner lost the permission that let
|
|
44
|
+
* them author it.
|
|
45
|
+
*/
|
|
46
|
+
export const REPORT_PAUSE_REASONS = ['entitlement', 'owner_inactive', 'permission_lost'];
|
|
47
|
+
/** What a definition reports on. */
|
|
48
|
+
export const REPORT_SCOPE_KINDS = ['org', 'projects', 'rollup'];
|
|
49
|
+
/**
|
|
50
|
+
* A saved report: what to compute, how often, in whose timezone, and who receives
|
|
51
|
+
* it.
|
|
52
|
+
*
|
|
53
|
+
* @table report_definitions
|
|
54
|
+
*/
|
|
55
|
+
export const reportDefinition = pgTable('report_definitions', {
|
|
56
|
+
id: varchar('id', { length: 255 }).primaryKey(),
|
|
57
|
+
orgId: varchar('org_id', { length: 255 }).notNull(),
|
|
58
|
+
/**
|
|
59
|
+
* The lead who owns this definition. Runs re-check THIS user's permissions, not
|
|
60
|
+
* the caller's, because a scheduled run has no caller — so a lead who loses
|
|
61
|
+
* access stops producing reports rather than keeping a standing grant.
|
|
62
|
+
*/
|
|
63
|
+
ownerId: text('owner_id').notNull(),
|
|
64
|
+
name: varchar('name', { length: 200 }).notNull(),
|
|
65
|
+
template: varchar('template', { length: 40 }).$type().notNull(),
|
|
66
|
+
/** Section ids, resolved through the section registry at run time. */
|
|
67
|
+
sections: jsonb('sections').$type().default([]).notNull(),
|
|
68
|
+
cadence: varchar('cadence', { length: 20 }).$type().notNull(),
|
|
69
|
+
/** IANA name. Periods are cut in THIS zone, not the database session's. */
|
|
70
|
+
timezone: varchar('timezone', { length: 64 }).default('UTC').notNull(),
|
|
71
|
+
weekStart: varchar('week_start', { length: 10 }).default('monday').notNull(),
|
|
72
|
+
scope: jsonb('scope').$type().notNull(),
|
|
73
|
+
/** Recipient ids from `report_recipients`, not raw addresses. */
|
|
74
|
+
recipients: jsonb('recipients').$type().default([]).notNull(),
|
|
75
|
+
/**
|
|
76
|
+
* Publish without the lead reviewing. Off by default: the whole point of the
|
|
77
|
+
* review step is that the data cannot supply the context a manager needs
|
|
78
|
+
* ("we paused deploys Tuesday for the migration").
|
|
79
|
+
*/
|
|
80
|
+
autoSend: boolean('auto_send').default(false).notNull(),
|
|
81
|
+
isActive: boolean('is_active').default(true).notNull(),
|
|
82
|
+
pausedReason: varchar('paused_reason', { length: 30 }).$type(),
|
|
83
|
+
nextRunAt: timestamp('next_run_at', { withTimezone: true }),
|
|
84
|
+
lastRunAt: timestamp('last_run_at', { withTimezone: true }),
|
|
85
|
+
createdBy: text('created_by').notNull(),
|
|
86
|
+
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
|
|
87
|
+
updatedBy: text('updated_by'),
|
|
88
|
+
updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
|
|
89
|
+
deletedAt: timestamp('deleted_at', { withTimezone: true }),
|
|
90
|
+
deletedBy: text('deleted_by'),
|
|
91
|
+
purgeAfter: timestamp('purge_after', { withTimezone: true }),
|
|
92
|
+
}, (table) => ({
|
|
93
|
+
orgIdx: index('report_definition_org_idx').on(table.orgId).where(sql `deleted_at IS NULL`),
|
|
94
|
+
ownerIdx: index('report_definition_owner_idx').on(table.ownerId).where(sql `deleted_at IS NULL`),
|
|
95
|
+
// Drives the scheduler's claim scan: the due, live, unpaused definitions only.
|
|
96
|
+
dueIdx: index('report_definition_due_idx').on(table.nextRunAt)
|
|
97
|
+
.where(sql `deleted_at IS NULL AND is_active = true`),
|
|
98
|
+
purgeIdx: index('report_definition_purge_idx').on(table.purgeAfter).where(sql `deleted_at IS NOT NULL`),
|
|
99
|
+
}));
|
|
100
|
+
/**
|
|
101
|
+
* One period's frozen output.
|
|
102
|
+
*
|
|
103
|
+
* @table report_runs
|
|
104
|
+
*/
|
|
105
|
+
export const reportRun = pgTable('report_runs', {
|
|
106
|
+
id: varchar('id', { length: 255 }).primaryKey(),
|
|
107
|
+
orgId: varchar('org_id', { length: 255 }).notNull(),
|
|
108
|
+
definitionId: varchar('definition_id', { length: 255 }).notNull(),
|
|
109
|
+
/** Inclusive period start, exclusive end — both instants, in UTC. */
|
|
110
|
+
periodStart: timestamp('period_start', { withTimezone: true }).notNull(),
|
|
111
|
+
periodEnd: timestamp('period_end', { withTimezone: true }).notNull(),
|
|
112
|
+
/** Human label in the definition's timezone: `2026-W38`, `2026-08`, `2026-Q3`. */
|
|
113
|
+
periodLabel: varchar('period_label', { length: 20 }).notNull(),
|
|
114
|
+
/**
|
|
115
|
+
* Regenerating a period produces version N+1 and supersedes the old row rather
|
|
116
|
+
* than overwriting it. Late events (the ingest redrives its dead-letter queue
|
|
117
|
+
* hours later) mean a corrected report is normal — and a manager who already
|
|
118
|
+
* read v1 must still be able to see exactly what they read.
|
|
119
|
+
*/
|
|
120
|
+
version: integer('version').default(1).notNull(),
|
|
121
|
+
status: varchar('status', { length: 20 }).$type().default('drafting').notNull(),
|
|
122
|
+
/** The computed sections. Survives the raw-event purge — that is the point. */
|
|
123
|
+
snapshot: jsonb('snapshot').$type(),
|
|
124
|
+
/** AI-generated executive summary, from the snapshot's numbers only. */
|
|
125
|
+
aiDraft: text('ai_draft'),
|
|
126
|
+
/** The lead's own words. The context the data cannot supply. */
|
|
127
|
+
leadNotes: text('lead_notes'),
|
|
128
|
+
// `asks` was DELETED here, and it is the removal most worth explaining, because the idea
|
|
129
|
+
// was good: what the lead needs a decision on, from whom, by when — kept apart from
|
|
130
|
+
// `leadNotes` because a request for a decision buried in narrative reads as commentary
|
|
131
|
+
// and gets no answer. It was declared in Phase 2 and then never written or read by
|
|
132
|
+
// anything: no route accepted one, no composer emitted one, no view rendered one, and
|
|
133
|
+
// the shared report a manager actually reads never showed them. A column that only ever
|
|
134
|
+
// held its own default is not a feature in progress, it is a claim the schema makes and
|
|
135
|
+
// the product does not honour. Whoever builds asks should add the column back WITH the
|
|
136
|
+
// write path, the review UI and a place in the shared view, in one change.
|
|
137
|
+
failureReason: text('failure_reason'),
|
|
138
|
+
/**
|
|
139
|
+
* What happened when this run was DELIVERED: counts per channel, and the notes a lead
|
|
140
|
+
* needs to read ("no outbound email is configured, so 12 recipients were not mailed").
|
|
141
|
+
*
|
|
142
|
+
* On the run rather than in a log, because the question it answers is asked days later
|
|
143
|
+
* and about one specific report: "did the board actually get last month's?" A log line
|
|
144
|
+
* cannot be shown next to the report, and `leadNotes` cannot hold it — that column is
|
|
145
|
+
* frozen at publish, which is exactly when delivery happens.
|
|
146
|
+
*/
|
|
147
|
+
delivery: jsonb('delivery').$type(),
|
|
148
|
+
publishedBy: text('published_by'),
|
|
149
|
+
publishedAt: timestamp('published_at', { withTimezone: true }),
|
|
150
|
+
supersededBy: varchar('superseded_by', { length: 255 }),
|
|
151
|
+
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
|
|
152
|
+
updatedAt: timestamp('updated_at', { withTimezone: true }).defaultNow().notNull(),
|
|
153
|
+
deletedAt: timestamp('deleted_at', { withTimezone: true }),
|
|
154
|
+
deletedBy: text('deleted_by'),
|
|
155
|
+
purgeAfter: timestamp('purge_after', { withTimezone: true }),
|
|
156
|
+
}, (table) => ({
|
|
157
|
+
// The idempotency key. A retry, a catch-up pass and a manual backfill can all
|
|
158
|
+
// ask for the same period; without this they would each insert a row.
|
|
159
|
+
periodUnique: uniqueIndex('report_run_period_unique')
|
|
160
|
+
.on(table.definitionId, table.periodStart, table.version),
|
|
161
|
+
definitionIdx: index('report_run_definition_idx').on(table.definitionId, table.periodStart)
|
|
162
|
+
.where(sql `deleted_at IS NULL`),
|
|
163
|
+
orgIdx: index('report_run_org_idx').on(table.orgId).where(sql `deleted_at IS NULL`),
|
|
164
|
+
purgeIdx: index('report_run_purge_idx').on(table.purgeAfter).where(sql `deleted_at IS NOT NULL`),
|
|
165
|
+
}));
|
|
166
|
+
/**
|
|
167
|
+
* A read-only, expiring link to one published run.
|
|
168
|
+
*
|
|
169
|
+
* @table report_share_links
|
|
170
|
+
*/
|
|
171
|
+
export const reportShareLink = pgTable('report_share_links', {
|
|
172
|
+
id: varchar('id', { length: 255 }).primaryKey(),
|
|
173
|
+
orgId: varchar('org_id', { length: 255 }).notNull(),
|
|
174
|
+
runId: varchar('run_id', { length: 255 }).notNull(),
|
|
175
|
+
/**
|
|
176
|
+
* SHA-256 of the token, never the token. The raw value is shown once, at
|
|
177
|
+
* creation — a stored token is a stored credential for org data that anyone
|
|
178
|
+
* holding the link can read.
|
|
179
|
+
*/
|
|
180
|
+
tokenHash: varchar('token_hash', { length: 64 }).notNull(),
|
|
181
|
+
expiresAt: timestamp('expires_at', { withTimezone: true }).notNull(),
|
|
182
|
+
revokedAt: timestamp('revoked_at', { withTimezone: true }),
|
|
183
|
+
revokedBy: text('revoked_by'),
|
|
184
|
+
/** Redact pipeline/project names in the public view — internal names leak intent. */
|
|
185
|
+
redactNames: boolean('redact_names').default(false).notNull(),
|
|
186
|
+
viewCount: integer('view_count').default(0).notNull(),
|
|
187
|
+
lastViewedAt: timestamp('last_viewed_at', { withTimezone: true }),
|
|
188
|
+
createdBy: text('created_by').notNull(),
|
|
189
|
+
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
|
|
190
|
+
}, (table) => ({
|
|
191
|
+
// The public route's only lookup: by token hash. Unique so a hash collision
|
|
192
|
+
// cannot resolve to two runs.
|
|
193
|
+
tokenUnique: uniqueIndex('report_share_link_token_unique').on(table.tokenHash),
|
|
194
|
+
runIdx: index('report_share_link_run_idx').on(table.runId),
|
|
195
|
+
orgIdx: index('report_share_link_org_idx').on(table.orgId),
|
|
196
|
+
}));
|
|
197
|
+
/**
|
|
198
|
+
* A verified delivery address for one org.
|
|
199
|
+
*
|
|
200
|
+
* @table report_recipients
|
|
201
|
+
*/
|
|
202
|
+
export const reportRecipient = pgTable('report_recipients', {
|
|
203
|
+
id: varchar('id', { length: 255 }).primaryKey(),
|
|
204
|
+
orgId: varchar('org_id', { length: 255 }).notNull(),
|
|
205
|
+
email: varchar('email', { length: 320 }).notNull(),
|
|
206
|
+
displayName: varchar('display_name', { length: 200 }),
|
|
207
|
+
/**
|
|
208
|
+
* Set when the recipient confirms by email. Nothing is delivered before this:
|
|
209
|
+
* otherwise a lead could send org data to any address by typing it.
|
|
210
|
+
*/
|
|
211
|
+
verifiedAt: timestamp('verified_at', { withTimezone: true }),
|
|
212
|
+
verificationTokenHash: varchar('verification_token_hash', { length: 64 }),
|
|
213
|
+
/** Honoured across every definition — an unsubscribe is per person, not per report. */
|
|
214
|
+
unsubscribedAt: timestamp('unsubscribed_at', { withTimezone: true }),
|
|
215
|
+
/**
|
|
216
|
+
* The recipient's stable unsubscribe nonce, minted once with the row.
|
|
217
|
+
*
|
|
218
|
+
* STORED IN THE CLEAR, unlike every other token in this file, and the difference is
|
|
219
|
+
* what it authorizes. A share-link token grants READ ACCESS to an org's report, so it
|
|
220
|
+
* is only ever kept as a hash; this one authorizes exactly one self-limiting action —
|
|
221
|
+
* "stop emailing this address" — so the worst a database read buys an attacker is the
|
|
222
|
+
* ability to make the product send less mail.
|
|
223
|
+
*
|
|
224
|
+
* It has to be readable because every report email rebuilds the link, and a hash
|
|
225
|
+
* cannot be turned back into the URL. The alternative, a signed URL, would be
|
|
226
|
+
* invalidated by the default EPHEMERAL service key on every restart, silently breaking
|
|
227
|
+
* the unsubscribe link in every report already sitting in a manager's mailbox — which
|
|
228
|
+
* is the one failure here that has a regulator attached to it.
|
|
229
|
+
*/
|
|
230
|
+
unsubscribeToken: varchar('unsubscribe_token', { length: 64 }),
|
|
231
|
+
bounceCount: integer('bounce_count').default(0).notNull(),
|
|
232
|
+
lastBounceAt: timestamp('last_bounce_at', { withTimezone: true }),
|
|
233
|
+
/** Set when an admin approved an address outside the allowed domains. */
|
|
234
|
+
approvedBy: text('approved_by'),
|
|
235
|
+
createdBy: text('created_by').notNull(),
|
|
236
|
+
createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(),
|
|
237
|
+
deletedAt: timestamp('deleted_at', { withTimezone: true }),
|
|
238
|
+
deletedBy: text('deleted_by'),
|
|
239
|
+
purgeAfter: timestamp('purge_after', { withTimezone: true }),
|
|
240
|
+
}, (table) => ({
|
|
241
|
+
// One row per address per org, so re-adding a recipient reuses its verification
|
|
242
|
+
// and unsubscribe state rather than resetting them.
|
|
243
|
+
orgEmailUnique: uniqueIndex('report_recipient_org_email_unique').on(table.orgId, table.email),
|
|
244
|
+
orgIdx: index('report_recipient_org_idx').on(table.orgId).where(sql `deleted_at IS NULL`),
|
|
245
|
+
purgeIdx: index('report_recipient_purge_idx').on(table.purgeAfter).where(sql `deleted_at IS NOT NULL`),
|
|
246
|
+
// The unsubscribe link's only lookup. Unique so one token can never resolve to two
|
|
247
|
+
// addresses.
|
|
248
|
+
unsubTokenUnique: uniqueIndex('report_recipient_unsub_token_unique').on(table.unsubscribeToken)
|
|
249
|
+
.where(sql `unsubscribe_token IS NOT NULL`),
|
|
250
|
+
}));
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0aW5nLXN0YWtlaG9sZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3NjaGVtYS9yZXBvcnRpbmctc3Rha2Vob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBRUgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVySCxnREFBZ0Q7QUFDaEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQVUsQ0FBQztBQUczRSx5RUFBeUU7QUFDekUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBVSxDQUFDO0FBR25HOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFVLENBQUM7QUFHcEc7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBVSxDQUFDO0FBR2xHLG9DQUFvQztBQUNwQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFVLENBQUM7QUFVekU7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsb0JBQW9CLEVBQUU7SUFD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LEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUM3RixNQUFNLEVBQUUsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFBLG9CQUFvQixDQUFDO0lBQ3hGLFFBQVEsRUFBRSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUEsd0JBQXdCLENBQUM7SUFDckcsbUZBQW1GO0lBQ25GLGFBQWE7SUFDYixnQkFBZ0IsRUFBRSxXQUFXLENBQUMscUNBQXFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1NBQzVGLEtBQUssQ0FBQyxHQUFHLENBQUEsK0JBQStCLENBQUM7Q0FDN0MsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBTdGFrZWhvbGRlciByZXBvcnRzIOKAlCBzY2hlZHVsZWQsIG1hbmFnZXItZmFjaW5nIHN1bW1hcmllcyBhIGxlYWQgZGV2ZWxvcGVyXG4gKiBjb21wb3NlcywgcmV2aWV3cyBhbmQgcHVibGlzaGVzLlxuICpcbiAqIEZvdXIgdGFibGVzLCBhbmQgdGhlIHJlYXNvbiBlYWNoIGV4aXN0czpcbiAqXG4gKiAgLSBgcmVwb3J0X2RlZmluaXRpb25zYCDigJQgdGhlIHNhdmVkIFwid2hhdCBhbmQgd2hlblwiLiBSZXBvcnRpbmcgd2FzIGVudGlyZWx5XG4gKiAgICBvbi1kZW1hbmQgYmVmb3JlIHRoaXM6IHRoZSBkYXNoYm9hcmQgcGlja2VkIGEgZnJvbS90byBhbmQgbm90aGluZyBjb3VsZCBiZVxuICogICAgc2F2ZWQsIHNjaGVkdWxlZCBvciBrZXB0LlxuICogIC0gYHJlcG9ydF9ydW5zYCDigJQgdGhlIEZST1pFTiBzbmFwc2hvdCBvZiBvbmUgcGVyaW9kJ3Mgb3V0cHV0LiBUaGlzIGlzIHRoZSBsb2FkXG4gKiAgICBiZWFyaW5nIHRhYmxlLiBUaGUgcmV0ZW50aW9uIHN3ZWVwIHB1cmdlcyByYXcgYHBpcGVsaW5lX2V2ZW50c2AgYnkgdGllciwgc29cbiAqICAgIHdpdGhvdXQgYSBzbmFwc2hvdCBsYXN0IHF1YXJ0ZXIncyByZXBvcnQgY2Fubm90IGJlIHJlZ2VuZXJhdGVkIG9uY2UgaXRzXG4gKiAgICBldmVudHMgYXJlIGdvbmUg4oCUIGFuZCBhIG1hbmFnZXIgd2hvIHJlYWQgYSBudW1iZXIgb24gTW9uZGF5IG11c3Qgc2VlIHRoZSBzYW1lXG4gKiAgICBudW1iZXIgb24gRnJpZGF5LlxuICogIC0gYHJlcG9ydF9zaGFyZV9saW5rc2Ag4oCUIGV4cGlyaW5nLCByZXZvY2FibGUgcmVhZC1vbmx5IGxpbmtzLCBiZWNhdXNlIHRoZVxuICogICAgbWFuYWdlcnMgYSByZXBvcnQgaXMgZm9yIHVzdWFsbHkgaGF2ZSBubyBwbGF0Zm9ybSBhY2NvdW50LlxuICogIC0gYHJlcG9ydF9yZWNpcGllbnRzYCDigJQgcGVyLW9yZyBkZWxpdmVyeSBhZGRyZXNzZXMsIHdpdGggdmVyaWZpY2F0aW9uIGFuZFxuICogICAgYm91bmNlIHN0YXRlLiBSZWNpcGllbnQgZW1haWxzIGFyZSBQSUkgYW5kIHRoZSBvcmcgb3ducyB0aGUgbGlzdCwgbm90IHRoZVxuICogICAgZGVmaW5pdGlvbiwgc28gb25lIGxlYWQncyBsaXN0IGlzIHJldXNhYmxlIGFuZCBvbmUgdW5zdWJzY3JpYmUgaXMgaG9ub3VyZWRcbiAqICAgIGV2ZXJ5d2hlcmUuXG4gKlxuICogRXZlcnkgdGFibGUgaXMgb3JnLXNjb3BlZCB3aXRoIFJMUyArIHNvZnQtZGVsZXRlLCBtaXJyb3JpbmcgcG9zdGdyZXMtaW5pdC5zcWxcbiAqICh3aGljaCBpcyB3aGF0IGFjdHVhbGx5IGRlcGxveXM7IGBzY2hlbWEtcmVmbGVjdGlvbi50ZXN0LnRzYCBrZWVwcyB0aGUgdHdvIGluXG4gKiBsb2NrLXN0ZXAsIG5hbWUgZm9yIG5hbWUpLlxuICovXG5cbmltcG9ydCB7IHNxbCB9IGZyb20gJ2RyaXp6bGUtb3JtJztcbmltcG9ydCB7IGJvb2xlYW4sIGluZGV4LCBpbnRlZ2VyLCBqc29uYiwgcGdUYWJsZSwgdGV4dCwgdGltZXN0YW1wLCB1bmlxdWVJbmRleCwgdmFyY2hhciB9IGZyb20gJ2RyaXp6bGUtb3JtL3BnLWNvcmUnO1xuXG4vKiogSG93IG9mdGVuIGEgZGVmaW5pdGlvbiBwcm9kdWNlcyBhIHJlcG9ydC4gKi9cbmV4cG9ydCBjb25zdCBSRVBPUlRfQ0FERU5DRVMgPSBbJ3dlZWtseScsICdtb250aGx5JywgJ3F1YXJ0ZXJseSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUmVwb3J0Q2FkZW5jZSA9ICh0eXBlb2YgUkVQT1JUX0NBREVOQ0VTKVtudW1iZXJdO1xuXG4vKiogVGhlIG1hbmFnZXItZmFjaW5nIHRlbXBsYXRlcy4gRWFjaCBpcyBhIGZpeGVkIGxpc3Qgb2Ygc2VjdGlvbiBpZHMuICovXG5leHBvcnQgY29uc3QgUkVQT1JUX1RFTVBMQVRFUyA9IFsnd2Vla2x5X2RlbGl2ZXJ5JywgJ21vbnRobHlfaGVhbHRoJywgJ3F1YXJ0ZXJseV9yZXZpZXcnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJlcG9ydFRlbXBsYXRlID0gKHR5cGVvZiBSRVBPUlRfVEVNUExBVEVTKVtudW1iZXJdO1xuXG4vKipcbiAqIEEgcnVuJ3MgbGlmZWN5Y2xlLiBgZHJhZnRpbmdgIOKGkiBgcmVhZHlfZm9yX3Jldmlld2Ag4oaSIGBwdWJsaXNoZWRgLCB3aXRoIGBmYWlsZWRgXG4gKiBhcyBhIHRlcm1pbmFsIHNpZGUgYnJhbmNoLiBOb3RoaW5nIHJlYWNoZXMgYSBtYW5hZ2VyIGJlZm9yZSBgcHVibGlzaGVkYCwgd2hpY2hcbiAqIGlzIHdoYXQgbWFrZXMgdGhlIGxlYWQncyBhcHByb3ZhbCB0aGUgZ2F0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUE9SVF9SVU5fU1RBVFVTRVMgPSBbJ2RyYWZ0aW5nJywgJ3JlYWR5X2Zvcl9yZXZpZXcnLCAncHVibGlzaGVkJywgJ2ZhaWxlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUmVwb3J0UnVuU3RhdHVzID0gKHR5cGVvZiBSRVBPUlRfUlVOX1NUQVRVU0VTKVtudW1iZXJdO1xuXG4vKipcbiAqIFdoeSBhIGRlZmluaXRpb24gc3RvcHBlZCBydW5uaW5nLiBSZWNvcmRlZCByYXRoZXIgdGhhbiBpbmZlcnJlZCwgYmVjYXVzZSB0aGVcbiAqIHRocmVlIGNhdXNlcyBuZWVkIGRpZmZlcmVudCBmaXhlcyBhbmQgdGhlIGxlYWQgc2VlcyB0aGlzIHN0cmluZzogdGhlIGFkZC1vblxuICogbGFwc2VkLCB0aGUgb3duZXIgd2FzIGRlYWN0aXZhdGVkLCBvciB0aGUgb3duZXIgbG9zdCB0aGUgcGVybWlzc2lvbiB0aGF0IGxldFxuICogdGhlbSBhdXRob3IgaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBSRVBPUlRfUEFVU0VfUkVBU09OUyA9IFsnZW50aXRsZW1lbnQnLCAnb3duZXJfaW5hY3RpdmUnLCAncGVybWlzc2lvbl9sb3N0J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSZXBvcnRQYXVzZVJlYXNvbiA9ICh0eXBlb2YgUkVQT1JUX1BBVVNFX1JFQVNPTlMpW251bWJlcl07XG5cbi8qKiBXaGF0IGEgZGVmaW5pdGlvbiByZXBvcnRzIG9uLiAqL1xuZXhwb3J0IGNvbnN0IFJFUE9SVF9TQ09QRV9LSU5EUyA9IFsnb3JnJywgJ3Byb2plY3RzJywgJ3JvbGx1cCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUmVwb3J0U2NvcGVLaW5kID0gKHR5cGVvZiBSRVBPUlRfU0NPUEVfS0lORFMpW251bWJlcl07XG5cbi8qKiBUaGUgYHNjb3BlYCBKU09OOiB3aGljaCBwaXBlbGluZXMgYSBydW4gY292ZXJzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRTY29wZSB7XG4gIGtpbmQ6IFJlcG9ydFNjb3BlS2luZDtcbiAgLyoqIFByb2plY3QgbmFtZXMsIHdoZW4gYGtpbmQgPT09ICdwcm9qZWN0cydgLiBFbXB0eSBmb3Igb3JnL3JvbGx1cC4gKi9cbiAgcHJvamVjdHM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIHNhdmVkIHJlcG9ydDogd2hhdCB0byBjb21wdXRlLCBob3cgb2Z0ZW4sIGluIHdob3NlIHRpbWV6b25lLCBhbmQgd2hvIHJlY2VpdmVzXG4gKiBpdC5cbiAqXG4gKiBAdGFibGUgcmVwb3J0X2RlZmluaXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCByZXBvcnREZWZpbml0aW9uID0gcGdUYWJsZSgncmVwb3J0X2RlZmluaXRpb25zJywge1xuICBpZDogdmFyY2hhcignaWQnLCB7IGxlbmd0aDogMjU1IH0pLnByaW1hcnlLZXkoKSxcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICAvKipcbiAgICogVGhlIGxlYWQgd2hvIG93bnMgdGhpcyBkZWZpbml0aW9uLiBSdW5zIHJlLWNoZWNrIFRISVMgdXNlcidzIHBlcm1pc3Npb25zLCBub3RcbiAgICogdGhlIGNhbGxlcidzLCBiZWNhdXNlIGEgc2NoZWR1bGVkIHJ1biBoYXMgbm8gY2FsbGVyIOKAlCBzbyBhIGxlYWQgd2hvIGxvc2VzXG4gICAqIGFjY2VzcyBzdG9wcyBwcm9kdWNpbmcgcmVwb3J0cyByYXRoZXIgdGhhbiBrZWVwaW5nIGEgc3RhbmRpbmcgZ3JhbnQuXG4gICAqL1xuICBvd25lcklkOiB0ZXh0KCdvd25lcl9pZCcpLm5vdE51bGwoKSxcbiAgbmFtZTogdmFyY2hhcignbmFtZScsIHsgbGVuZ3RoOiAyMDAgfSkubm90TnVsbCgpLFxuICB0ZW1wbGF0ZTogdmFyY2hhcigndGVtcGxhdGUnLCB7IGxlbmd0aDogNDAgfSkuJHR5cGU8UmVwb3J0VGVtcGxhdGU+KCkubm90TnVsbCgpLFxuICAvKiogU2VjdGlvbiBpZHMsIHJlc29sdmVkIHRocm91Z2ggdGhlIHNlY3Rpb24gcmVnaXN0cnkgYXQgcnVuIHRpbWUuICovXG4gIHNlY3Rpb25zOiBqc29uYignc2VjdGlvbnMnKS4kdHlwZTxzdHJpbmdbXT4oKS5kZWZhdWx0KFtdKS5ub3ROdWxsKCksXG4gIGNhZGVuY2U6IHZhcmNoYXIoJ2NhZGVuY2UnLCB7IGxlbmd0aDogMjAgfSkuJHR5cGU8UmVwb3J0Q2FkZW5jZT4oKS5ub3ROdWxsKCksXG4gIC8qKiBJQU5BIG5hbWUuIFBlcmlvZHMgYXJlIGN1dCBpbiBUSElTIHpvbmUsIG5vdCB0aGUgZGF0YWJhc2Ugc2Vzc2lvbidzLiAqL1xuICB0aW1lem9uZTogdmFyY2hhcigndGltZXpvbmUnLCB7IGxlbmd0aDogNjQgfSkuZGVmYXVsdCgnVVRDJykubm90TnVsbCgpLFxuICB3ZWVrU3RhcnQ6IHZhcmNoYXIoJ3dlZWtfc3RhcnQnLCB7IGxlbmd0aDogMTAgfSkuZGVmYXVsdCgnbW9uZGF5Jykubm90TnVsbCgpLFxuICBzY29wZToganNvbmIoJ3Njb3BlJykuJHR5cGU8UmVwb3J0U2NvcGU+KCkubm90TnVsbCgpLFxuICAvKiogUmVjaXBpZW50IGlkcyBmcm9tIGByZXBvcnRfcmVjaXBpZW50c2AsIG5vdCByYXcgYWRkcmVzc2VzLiAqL1xuICByZWNpcGllbnRzOiBqc29uYigncmVjaXBpZW50cycpLiR0eXBlPHN0cmluZ1tdPigpLmRlZmF1bHQoW10pLm5vdE51bGwoKSxcbiAgLyoqXG4gICAqIFB1Ymxpc2ggd2l0aG91dCB0aGUgbGVhZCByZXZpZXdpbmcuIE9mZiBieSBkZWZhdWx0OiB0aGUgd2hvbGUgcG9pbnQgb2YgdGhlXG4gICAqIHJldmlldyBzdGVwIGlzIHRoYXQgdGhlIGRhdGEgY2Fubm90IHN1cHBseSB0aGUgY29udGV4dCBhIG1hbmFnZXIgbmVlZHNcbiAgICogKFwid2UgcGF1c2VkIGRlcGxveXMgVHVlc2RheSBmb3IgdGhlIG1pZ3JhdGlvblwiKS5cbiAgICovXG4gIGF1dG9TZW5kOiBib29sZWFuKCdhdXRvX3NlbmQnKS5kZWZhdWx0KGZhbHNlKS5ub3ROdWxsKCksXG4gIGlzQWN0aXZlOiBib29sZWFuKCdpc19hY3RpdmUnKS5kZWZhdWx0KHRydWUpLm5vdE51bGwoKSxcbiAgcGF1c2VkUmVhc29uOiB2YXJjaGFyKCdwYXVzZWRfcmVhc29uJywgeyBsZW5ndGg6IDMwIH0pLiR0eXBlPFJlcG9ydFBhdXNlUmVhc29uPigpLFxuICBuZXh0UnVuQXQ6IHRpbWVzdGFtcCgnbmV4dF9ydW5fYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgbGFzdFJ1bkF0OiB0aW1lc3RhbXAoJ2xhc3RfcnVuX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGNyZWF0ZWRCeTogdGV4dCgnY3JlYXRlZF9ieScpLm5vdE51bGwoKSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICB1cGRhdGVkQnk6IHRleHQoJ3VwZGF0ZWRfYnknKSxcbiAgdXBkYXRlZEF0OiB0aW1lc3RhbXAoJ3VwZGF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICBkZWxldGVkQXQ6IHRpbWVzdGFtcCgnZGVsZXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBkZWxldGVkQnk6IHRleHQoJ2RlbGV0ZWRfYnknKSxcbiAgcHVyZ2VBZnRlcjogdGltZXN0YW1wKCdwdXJnZV9hZnRlcicsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxufSwgKHRhYmxlKSA9PiAoe1xuICBvcmdJZHg6IGluZGV4KCdyZXBvcnRfZGVmaW5pdGlvbl9vcmdfaWR4Jykub24odGFibGUub3JnSWQpLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5VTExgKSxcbiAgb3duZXJJZHg6IGluZGV4KCdyZXBvcnRfZGVmaW5pdGlvbl9vd25lcl9pZHgnKS5vbih0YWJsZS5vd25lcklkKS53aGVyZShzcWxgZGVsZXRlZF9hdCBJUyBOVUxMYCksXG4gIC8vIERyaXZlcyB0aGUgc2NoZWR1bGVyJ3MgY2xhaW0gc2NhbjogdGhlIGR1ZSwgbGl2ZSwgdW5wYXVzZWQgZGVmaW5pdGlvbnMgb25seS5cbiAgZHVlSWR4OiBpbmRleCgncmVwb3J0X2RlZmluaXRpb25fZHVlX2lkeCcpLm9uKHRhYmxlLm5leHRSdW5BdClcbiAgICAud2hlcmUoc3FsYGRlbGV0ZWRfYXQgSVMgTlVMTCBBTkQgaXNfYWN0aXZlID0gdHJ1ZWApLFxuICBwdXJnZUlkeDogaW5kZXgoJ3JlcG9ydF9kZWZpbml0aW9uX3B1cmdlX2lkeCcpLm9uKHRhYmxlLnB1cmdlQWZ0ZXIpLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5PVCBOVUxMYCksXG59KSk7XG5cbi8qKlxuICogT25lIHBlcmlvZCdzIGZyb3plbiBvdXRwdXQuXG4gKlxuICogQHRhYmxlIHJlcG9ydF9ydW5zXG4gKi9cbmV4cG9ydCBjb25zdCByZXBvcnRSdW4gPSBwZ1RhYmxlKCdyZXBvcnRfcnVucycsIHtcbiAgaWQ6IHZhcmNoYXIoJ2lkJywgeyBsZW5ndGg6IDI1NSB9KS5wcmltYXJ5S2V5KCksXG4gIG9yZ0lkOiB2YXJjaGFyKCdvcmdfaWQnLCB7IGxlbmd0aDogMjU1IH0pLm5vdE51bGwoKSxcbiAgZGVmaW5pdGlvbklkOiB2YXJjaGFyKCdkZWZpbml0aW9uX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIC8qKiBJbmNsdXNpdmUgcGVyaW9kIHN0YXJ0LCBleGNsdXNpdmUgZW5kIOKAlCBib3RoIGluc3RhbnRzLCBpbiBVVEMuICovXG4gIHBlcmlvZFN0YXJ0OiB0aW1lc3RhbXAoJ3BlcmlvZF9zdGFydCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLm5vdE51bGwoKSxcbiAgcGVyaW9kRW5kOiB0aW1lc3RhbXAoJ3BlcmlvZF9lbmQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5ub3ROdWxsKCksXG4gIC8qKiBIdW1hbiBsYWJlbCBpbiB0aGUgZGVmaW5pdGlvbidzIHRpbWV6b25lOiBgMjAyNi1XMzhgLCBgMjAyNi0wOGAsIGAyMDI2LVEzYC4gKi9cbiAgcGVyaW9kTGFiZWw6IHZhcmNoYXIoJ3BlcmlvZF9sYWJlbCcsIHsgbGVuZ3RoOiAyMCB9KS5ub3ROdWxsKCksXG4gIC8qKlxuICAgKiBSZWdlbmVyYXRpbmcgYSBwZXJpb2QgcHJvZHVjZXMgdmVyc2lvbiBOKzEgYW5kIHN1cGVyc2VkZXMgdGhlIG9sZCByb3cgcmF0aGVyXG4gICAqIHRoYW4gb3ZlcndyaXRpbmcgaXQuIExhdGUgZXZlbnRzICh0aGUgaW5nZXN0IHJlZHJpdmVzIGl0cyBkZWFkLWxldHRlciBxdWV1ZVxuICAgKiBob3VycyBsYXRlcikgbWVhbiBhIGNvcnJlY3RlZCByZXBvcnQgaXMgbm9ybWFsIOKAlCBhbmQgYSBtYW5hZ2VyIHdobyBhbHJlYWR5XG4gICAqIHJlYWQgdjEgbXVzdCBzdGlsbCBiZSBhYmxlIHRvIHNlZSBleGFjdGx5IHdoYXQgdGhleSByZWFkLlxuICAgKi9cbiAgdmVyc2lvbjogaW50ZWdlcigndmVyc2lvbicpLmRlZmF1bHQoMSkubm90TnVsbCgpLFxuICBzdGF0dXM6IHZhcmNoYXIoJ3N0YXR1cycsIHsgbGVuZ3RoOiAyMCB9KS4kdHlwZTxSZXBvcnRSdW5TdGF0dXM+KCkuZGVmYXVsdCgnZHJhZnRpbmcnKS5ub3ROdWxsKCksXG4gIC8qKiBUaGUgY29tcHV0ZWQgc2VjdGlvbnMuIFN1cnZpdmVzIHRoZSByYXctZXZlbnQgcHVyZ2Ug4oCUIHRoYXQgaXMgdGhlIHBvaW50LiAqL1xuICBzbmFwc2hvdDoganNvbmIoJ3NuYXBzaG90JykuJHR5cGU8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KCksXG4gIC8qKiBBSS1nZW5lcmF0ZWQgZXhlY3V0aXZlIHN1bW1hcnksIGZyb20gdGhlIHNuYXBzaG90J3MgbnVtYmVycyBvbmx5LiAqL1xuICBhaURyYWZ0OiB0ZXh0KCdhaV9kcmFmdCcpLFxuICAvKiogVGhlIGxlYWQncyBvd24gd29yZHMuIFRoZSBjb250ZXh0IHRoZSBkYXRhIGNhbm5vdCBzdXBwbHkuICovXG4gIGxlYWROb3RlczogdGV4dCgnbGVhZF9ub3RlcycpLFxuICAvLyBgYXNrc2Agd2FzIERFTEVURUQgaGVyZSwgYW5kIGl0IGlzIHRoZSByZW1vdmFsIG1vc3Qgd29ydGggZXhwbGFpbmluZywgYmVjYXVzZSB0aGUgaWRlYVxuICAvLyB3YXMgZ29vZDogd2hhdCB0aGUgbGVhZCBuZWVkcyBhIGRlY2lzaW9uIG9uLCBmcm9tIHdob20sIGJ5IHdoZW4g4oCUIGtlcHQgYXBhcnQgZnJvbVxuICAvLyBgbGVhZE5vdGVzYCBiZWNhdXNlIGEgcmVxdWVzdCBmb3IgYSBkZWNpc2lvbiBidXJpZWQgaW4gbmFycmF0aXZlIHJlYWRzIGFzIGNvbW1lbnRhcnlcbiAgLy8gYW5kIGdldHMgbm8gYW5zd2VyLiBJdCB3YXMgZGVjbGFyZWQgaW4gUGhhc2UgMiBhbmQgdGhlbiBuZXZlciB3cml0dGVuIG9yIHJlYWQgYnlcbiAgLy8gYW55dGhpbmc6IG5vIHJvdXRlIGFjY2VwdGVkIG9uZSwgbm8gY29tcG9zZXIgZW1pdHRlZCBvbmUsIG5vIHZpZXcgcmVuZGVyZWQgb25lLCBhbmRcbiAgLy8gdGhlIHNoYXJlZCByZXBvcnQgYSBtYW5hZ2VyIGFjdHVhbGx5IHJlYWRzIG5ldmVyIHNob3dlZCB0aGVtLiBBIGNvbHVtbiB0aGF0IG9ubHkgZXZlclxuICAvLyBoZWxkIGl0cyBvd24gZGVmYXVsdCBpcyBub3QgYSBmZWF0dXJlIGluIHByb2dyZXNzLCBpdCBpcyBhIGNsYWltIHRoZSBzY2hlbWEgbWFrZXMgYW5kXG4gIC8vIHRoZSBwcm9kdWN0IGRvZXMgbm90IGhvbm91ci4gV2hvZXZlciBidWlsZHMgYXNrcyBzaG91bGQgYWRkIHRoZSBjb2x1bW4gYmFjayBXSVRIIHRoZVxuICAvLyB3cml0ZSBwYXRoLCB0aGUgcmV2aWV3IFVJIGFuZCBhIHBsYWNlIGluIHRoZSBzaGFyZWQgdmlldywgaW4gb25lIGNoYW5nZS5cbiAgZmFpbHVyZVJlYXNvbjogdGV4dCgnZmFpbHVyZV9yZWFzb24nKSxcbiAgLyoqXG4gICAqIFdoYXQgaGFwcGVuZWQgd2hlbiB0aGlzIHJ1biB3YXMgREVMSVZFUkVEOiBjb3VudHMgcGVyIGNoYW5uZWwsIGFuZCB0aGUgbm90ZXMgYSBsZWFkXG4gICAqIG5lZWRzIHRvIHJlYWQgKFwibm8gb3V0Ym91bmQgZW1haWwgaXMgY29uZmlndXJlZCwgc28gMTIgcmVjaXBpZW50cyB3ZXJlIG5vdCBtYWlsZWRcIikuXG4gICAqXG4gICAqIE9uIHRoZSBydW4gcmF0aGVyIHRoYW4gaW4gYSBsb2csIGJlY2F1c2UgdGhlIHF1ZXN0aW9uIGl0IGFuc3dlcnMgaXMgYXNrZWQgZGF5cyBsYXRlclxuICAgKiBhbmQgYWJvdXQgb25lIHNwZWNpZmljIHJlcG9ydDogXCJkaWQgdGhlIGJvYXJkIGFjdHVhbGx5IGdldCBsYXN0IG1vbnRoJ3M/XCIgQSBsb2cgbGluZVxuICAgKiBjYW5ub3QgYmUgc2hvd24gbmV4dCB0byB0aGUgcmVwb3J0LCBhbmQgYGxlYWROb3Rlc2AgY2Fubm90IGhvbGQgaXQg4oCUIHRoYXQgY29sdW1uIGlzXG4gICAqIGZyb3plbiBhdCBwdWJsaXNoLCB3aGljaCBpcyBleGFjdGx5IHdoZW4gZGVsaXZlcnkgaGFwcGVucy5cbiAgICovXG4gIGRlbGl2ZXJ5OiBqc29uYignZGVsaXZlcnknKS4kdHlwZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKSxcbiAgcHVibGlzaGVkQnk6IHRleHQoJ3B1Ymxpc2hlZF9ieScpLFxuICBwdWJsaXNoZWRBdDogdGltZXN0YW1wKCdwdWJsaXNoZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgc3VwZXJzZWRlZEJ5OiB2YXJjaGFyKCdzdXBlcnNlZGVkX2J5JywgeyBsZW5ndGg6IDI1NSB9KSxcbiAgY3JlYXRlZEF0OiB0aW1lc3RhbXAoJ2NyZWF0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5kZWZhdWx0Tm93KCkubm90TnVsbCgpLFxuICB1cGRhdGVkQXQ6IHRpbWVzdGFtcCgndXBkYXRlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLmRlZmF1bHROb3coKS5ub3ROdWxsKCksXG4gIGRlbGV0ZWRBdDogdGltZXN0YW1wKCdkZWxldGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIGRlbGV0ZWRCeTogdGV4dCgnZGVsZXRlZF9ieScpLFxuICBwdXJnZUFmdGVyOiB0aW1lc3RhbXAoJ3B1cmdlX2FmdGVyJywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG59LCAodGFibGUpID0+ICh7XG4gIC8vIFRoZSBpZGVtcG90ZW5jeSBrZXkuIEEgcmV0cnksIGEgY2F0Y2gtdXAgcGFzcyBhbmQgYSBtYW51YWwgYmFja2ZpbGwgY2FuIGFsbFxuICAvLyBhc2sgZm9yIHRoZSBzYW1lIHBlcmlvZDsgd2l0aG91dCB0aGlzIHRoZXkgd291bGQgZWFjaCBpbnNlcnQgYSByb3cuXG4gIHBlcmlvZFVuaXF1ZTogdW5pcXVlSW5kZXgoJ3JlcG9ydF9ydW5fcGVyaW9kX3VuaXF1ZScpXG4gICAgLm9uKHRhYmxlLmRlZmluaXRpb25JZCwgdGFibGUucGVyaW9kU3RhcnQsIHRhYmxlLnZlcnNpb24pLFxuICBkZWZpbml0aW9uSWR4OiBpbmRleCgncmVwb3J0X3J1bl9kZWZpbml0aW9uX2lkeCcpLm9uKHRhYmxlLmRlZmluaXRpb25JZCwgdGFibGUucGVyaW9kU3RhcnQpXG4gICAgLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5VTExgKSxcbiAgb3JnSWR4OiBpbmRleCgncmVwb3J0X3J1bl9vcmdfaWR4Jykub24odGFibGUub3JnSWQpLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5VTExgKSxcbiAgcHVyZ2VJZHg6IGluZGV4KCdyZXBvcnRfcnVuX3B1cmdlX2lkeCcpLm9uKHRhYmxlLnB1cmdlQWZ0ZXIpLndoZXJlKHNxbGBkZWxldGVkX2F0IElTIE5PVCBOVUxMYCksXG59KSk7XG5cbi8qKlxuICogQSByZWFkLW9ubHksIGV4cGlyaW5nIGxpbmsgdG8gb25lIHB1Ymxpc2hlZCBydW4uXG4gKlxuICogQHRhYmxlIHJlcG9ydF9zaGFyZV9saW5rc1xuICovXG5leHBvcnQgY29uc3QgcmVwb3J0U2hhcmVMaW5rID0gcGdUYWJsZSgncmVwb3J0X3NoYXJlX2xpbmtzJywge1xuICBpZDogdmFyY2hhcignaWQnLCB7IGxlbmd0aDogMjU1IH0pLnByaW1hcnlLZXkoKSxcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBydW5JZDogdmFyY2hhcigncnVuX2lkJywgeyBsZW5ndGg6IDI1NSB9KS5ub3ROdWxsKCksXG4gIC8qKlxuICAgKiBTSEEtMjU2IG9mIHRoZSB0b2tlbiwgbmV2ZXIgdGhlIHRva2VuLiBUaGUgcmF3IHZhbHVlIGlzIHNob3duIG9uY2UsIGF0XG4gICAqIGNyZWF0aW9uIOKAlCBhIHN0b3JlZCB0b2tlbiBpcyBhIHN0b3JlZCBjcmVkZW50aWFsIGZvciBvcmcgZGF0YSB0aGF0IGFueW9uZVxuICAgKiBob2xkaW5nIHRoZSBsaW5rIGNhbiByZWFkLlxuICAgKi9cbiAgdG9rZW5IYXNoOiB2YXJjaGFyKCd0b2tlbl9oYXNoJywgeyBsZW5ndGg6IDY0IH0pLm5vdE51bGwoKSxcbiAgZXhwaXJlc0F0OiB0aW1lc3RhbXAoJ2V4cGlyZXNfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KS5ub3ROdWxsKCksXG4gIHJldm9rZWRBdDogdGltZXN0YW1wKCdyZXZva2VkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIHJldm9rZWRCeTogdGV4dCgncmV2b2tlZF9ieScpLFxuICAvKiogUmVkYWN0IHBpcGVsaW5lL3Byb2plY3QgbmFtZXMgaW4gdGhlIHB1YmxpYyB2aWV3IOKAlCBpbnRlcm5hbCBuYW1lcyBsZWFrIGludGVudC4gKi9cbiAgcmVkYWN0TmFtZXM6IGJvb2xlYW4oJ3JlZGFjdF9uYW1lcycpLmRlZmF1bHQoZmFsc2UpLm5vdE51bGwoKSxcbiAgdmlld0NvdW50OiBpbnRlZ2VyKCd2aWV3X2NvdW50JykuZGVmYXVsdCgwKS5ub3ROdWxsKCksXG4gIGxhc3RWaWV3ZWRBdDogdGltZXN0YW1wKCdsYXN0X3ZpZXdlZF9hdCcsIHsgd2l0aFRpbWV6b25lOiB0cnVlIH0pLFxuICBjcmVhdGVkQnk6IHRleHQoJ2NyZWF0ZWRfYnknKS5ub3ROdWxsKCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgLy8gVGhlIHB1YmxpYyByb3V0ZSdzIG9ubHkgbG9va3VwOiBieSB0b2tlbiBoYXNoLiBVbmlxdWUgc28gYSBoYXNoIGNvbGxpc2lvblxuICAvLyBjYW5ub3QgcmVzb2x2ZSB0byB0d28gcnVucy5cbiAgdG9rZW5VbmlxdWU6IHVuaXF1ZUluZGV4KCdyZXBvcnRfc2hhcmVfbGlua190b2tlbl91bmlxdWUnKS5vbih0YWJsZS50b2tlbkhhc2gpLFxuICBydW5JZHg6IGluZGV4KCdyZXBvcnRfc2hhcmVfbGlua19ydW5faWR4Jykub24odGFibGUucnVuSWQpLFxuICBvcmdJZHg6IGluZGV4KCdyZXBvcnRfc2hhcmVfbGlua19vcmdfaWR4Jykub24odGFibGUub3JnSWQpLFxufSkpO1xuXG4vKipcbiAqIEEgdmVyaWZpZWQgZGVsaXZlcnkgYWRkcmVzcyBmb3Igb25lIG9yZy5cbiAqXG4gKiBAdGFibGUgcmVwb3J0X3JlY2lwaWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlcG9ydFJlY2lwaWVudCA9IHBnVGFibGUoJ3JlcG9ydF9yZWNpcGllbnRzJywge1xuICBpZDogdmFyY2hhcignaWQnLCB7IGxlbmd0aDogMjU1IH0pLnByaW1hcnlLZXkoKSxcbiAgb3JnSWQ6IHZhcmNoYXIoJ29yZ19pZCcsIHsgbGVuZ3RoOiAyNTUgfSkubm90TnVsbCgpLFxuICBlbWFpbDogdmFyY2hhcignZW1haWwnLCB7IGxlbmd0aDogMzIwIH0pLm5vdE51bGwoKSxcbiAgZGlzcGxheU5hbWU6IHZhcmNoYXIoJ2Rpc3BsYXlfbmFtZScsIHsgbGVuZ3RoOiAyMDAgfSksXG4gIC8qKlxuICAgKiBTZXQgd2hlbiB0aGUgcmVjaXBpZW50IGNvbmZpcm1zIGJ5IGVtYWlsLiBOb3RoaW5nIGlzIGRlbGl2ZXJlZCBiZWZvcmUgdGhpczpcbiAgICogb3RoZXJ3aXNlIGEgbGVhZCBjb3VsZCBzZW5kIG9yZyBkYXRhIHRvIGFueSBhZGRyZXNzIGJ5IHR5cGluZyBpdC5cbiAgICovXG4gIHZlcmlmaWVkQXQ6IHRpbWVzdGFtcCgndmVyaWZpZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgdmVyaWZpY2F0aW9uVG9rZW5IYXNoOiB2YXJjaGFyKCd2ZXJpZmljYXRpb25fdG9rZW5faGFzaCcsIHsgbGVuZ3RoOiA2NCB9KSxcbiAgLyoqIEhvbm91cmVkIGFjcm9zcyBldmVyeSBkZWZpbml0aW9uIOKAlCBhbiB1bnN1YnNjcmliZSBpcyBwZXIgcGVyc29uLCBub3QgcGVyIHJlcG9ydC4gKi9cbiAgdW5zdWJzY3JpYmVkQXQ6IHRpbWVzdGFtcCgndW5zdWJzY3JpYmVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSksXG4gIC8qKlxuICAgKiBUaGUgcmVjaXBpZW50J3Mgc3RhYmxlIHVuc3Vic2NyaWJlIG5vbmNlLCBtaW50ZWQgb25jZSB3aXRoIHRoZSByb3cuXG4gICAqXG4gICAqIFNUT1JFRCBJTiBUSEUgQ0xFQVIsIHVubGlrZSBldmVyeSBvdGhlciB0b2tlbiBpbiB0aGlzIGZpbGUsIGFuZCB0aGUgZGlmZmVyZW5jZSBpc1xuICAgKiB3aGF0IGl0IGF1dGhvcml6ZXMuIEEgc2hhcmUtbGluayB0b2tlbiBncmFudHMgUkVBRCBBQ0NFU1MgdG8gYW4gb3JnJ3MgcmVwb3J0LCBzbyBpdFxuICAgKiBpcyBvbmx5IGV2ZXIga2VwdCBhcyBhIGhhc2g7IHRoaXMgb25lIGF1dGhvcml6ZXMgZXhhY3RseSBvbmUgc2VsZi1saW1pdGluZyBhY3Rpb24g4oCUXG4gICAqIFwic3RvcCBlbWFpbGluZyB0aGlzIGFkZHJlc3NcIiDigJQgc28gdGhlIHdvcnN0IGEgZGF0YWJhc2UgcmVhZCBidXlzIGFuIGF0dGFja2VyIGlzIHRoZVxuICAgKiBhYmlsaXR5IHRvIG1ha2UgdGhlIHByb2R1Y3Qgc2VuZCBsZXNzIG1haWwuXG4gICAqXG4gICAqIEl0IGhhcyB0byBiZSByZWFkYWJsZSBiZWNhdXNlIGV2ZXJ5IHJlcG9ydCBlbWFpbCByZWJ1aWxkcyB0aGUgbGluaywgYW5kIGEgaGFzaFxuICAgKiBjYW5ub3QgYmUgdHVybmVkIGJhY2sgaW50byB0aGUgVVJMLiBUaGUgYWx0ZXJuYXRpdmUsIGEgc2lnbmVkIFVSTCwgd291bGQgYmVcbiAgICogaW52YWxpZGF0ZWQgYnkgdGhlIGRlZmF1bHQgRVBIRU1FUkFMIHNlcnZpY2Uga2V5IG9uIGV2ZXJ5IHJlc3RhcnQsIHNpbGVudGx5IGJyZWFraW5nXG4gICAqIHRoZSB1bnN1YnNjcmliZSBsaW5rIGluIGV2ZXJ5IHJlcG9ydCBhbHJlYWR5IHNpdHRpbmcgaW4gYSBtYW5hZ2VyJ3MgbWFpbGJveCDigJQgd2hpY2hcbiAgICogaXMgdGhlIG9uZSBmYWlsdXJlIGhlcmUgdGhhdCBoYXMgYSByZWd1bGF0b3IgYXR0YWNoZWQgdG8gaXQuXG4gICAqL1xuICB1bnN1YnNjcmliZVRva2VuOiB2YXJjaGFyKCd1bnN1YnNjcmliZV90b2tlbicsIHsgbGVuZ3RoOiA2NCB9KSxcbiAgYm91bmNlQ291bnQ6IGludGVnZXIoJ2JvdW5jZV9jb3VudCcpLmRlZmF1bHQoMCkubm90TnVsbCgpLFxuICBsYXN0Qm91bmNlQXQ6IHRpbWVzdGFtcCgnbGFzdF9ib3VuY2VfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgLyoqIFNldCB3aGVuIGFuIGFkbWluIGFwcHJvdmVkIGFuIGFkZHJlc3Mgb3V0c2lkZSB0aGUgYWxsb3dlZCBkb21haW5zLiAqL1xuICBhcHByb3ZlZEJ5OiB0ZXh0KCdhcHByb3ZlZF9ieScpLFxuICBjcmVhdGVkQnk6IHRleHQoJ2NyZWF0ZWRfYnknKS5ub3ROdWxsKCksXG4gIGNyZWF0ZWRBdDogdGltZXN0YW1wKCdjcmVhdGVkX2F0JywgeyB3aXRoVGltZXpvbmU6IHRydWUgfSkuZGVmYXVsdE5vdygpLm5vdE51bGwoKSxcbiAgZGVsZXRlZEF0OiB0aW1lc3RhbXAoJ2RlbGV0ZWRfYXQnLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbiAgZGVsZXRlZEJ5OiB0ZXh0KCdkZWxldGVkX2J5JyksXG4gIHB1cmdlQWZ0ZXI6IHRpbWVzdGFtcCgncHVyZ2VfYWZ0ZXInLCB7IHdpdGhUaW1lem9uZTogdHJ1ZSB9KSxcbn0sICh0YWJsZSkgPT4gKHtcbiAgLy8gT25lIHJvdyBwZXIgYWRkcmVzcyBwZXIgb3JnLCBzbyByZS1hZGRpbmcgYSByZWNpcGllbnQgcmV1c2VzIGl0cyB2ZXJpZmljYXRpb25cbiAgLy8gYW5kIHVuc3Vic2NyaWJlIHN0YXRlIHJhdGhlciB0aGFuIHJlc2V0dGluZyB0aGVtLlxuICBvcmdFbWFpbFVuaXF1ZTogdW5pcXVlSW5kZXgoJ3JlcG9ydF9yZWNpcGllbnRfb3JnX2VtYWlsX3VuaXF1ZScpLm9uKHRhYmxlLm9yZ0lkLCB0YWJsZS5lbWFpbCksXG4gIG9yZ0lkeDogaW5kZXgoJ3JlcG9ydF9yZWNpcGllbnRfb3JnX2lkeCcpLm9uKHRhYmxlLm9yZ0lkKS53aGVyZShzcWxgZGVsZXRlZF9hdCBJUyBOVUxMYCksXG4gIHB1cmdlSWR4OiBpbmRleCgncmVwb3J0X3JlY2lwaWVudF9wdXJnZV9pZHgnKS5vbih0YWJsZS5wdXJnZUFmdGVyKS53aGVyZShzcWxgZGVsZXRlZF9hdCBJUyBOT1QgTlVMTGApLFxuICAvLyBUaGUgdW5zdWJzY3JpYmUgbGluaydzIG9ubHkgbG9va3VwLiBVbmlxdWUgc28gb25lIHRva2VuIGNhbiBuZXZlciByZXNvbHZlIHRvIHR3b1xuICAvLyBhZGRyZXNzZXMuXG4gIHVuc3ViVG9rZW5VbmlxdWU6IHVuaXF1ZUluZGV4KCdyZXBvcnRfcmVjaXBpZW50X3Vuc3ViX3Rva2VuX3VuaXF1ZScpLm9uKHRhYmxlLnVuc3Vic2NyaWJlVG9rZW4pXG4gICAgLndoZXJlKHNxbGB1bnN1YnNjcmliZV90b2tlbiBJUyBOT1QgTlVMTGApLFxufSkpO1xuXG5leHBvcnQgdHlwZSBSZXBvcnREZWZpbml0aW9uID0gdHlwZW9mIHJlcG9ydERlZmluaXRpb24uJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUmVwb3J0RGVmaW5pdGlvbkluc2VydCA9IHR5cGVvZiByZXBvcnREZWZpbml0aW9uLiRpbmZlckluc2VydDtcbmV4cG9ydCB0eXBlIFJlcG9ydFJ1biA9IHR5cGVvZiByZXBvcnRSdW4uJGluZmVyU2VsZWN0O1xuZXhwb3J0IHR5cGUgUmVwb3J0UnVuSW5zZXJ0ID0gdHlwZW9mIHJlcG9ydFJ1bi4kaW5mZXJJbnNlcnQ7XG5leHBvcnQgdHlwZSBSZXBvcnRTaGFyZUxpbmsgPSB0eXBlb2YgcmVwb3J0U2hhcmVMaW5rLiRpbmZlclNlbGVjdDtcbmV4cG9ydCB0eXBlIFJlcG9ydFNoYXJlTGlua0luc2VydCA9IHR5cGVvZiByZXBvcnRTaGFyZUxpbmsuJGluZmVySW5zZXJ0O1xuZXhwb3J0IHR5cGUgUmVwb3J0UmVjaXBpZW50ID0gdHlwZW9mIHJlcG9ydFJlY2lwaWVudC4kaW5mZXJTZWxlY3Q7XG5leHBvcnQgdHlwZSBSZXBvcnRSZWNpcGllbnRJbnNlcnQgPSB0eXBlb2YgcmVwb3J0UmVjaXBpZW50LiRpbmZlckluc2VydDtcbiJdfQ==
|
package/lib/index.d.ts
CHANGED
|
@@ -29,9 +29,18 @@ export * from './api/viewer-context.js';
|
|
|
29
29
|
export * from './api/crud-service.js';
|
|
30
30
|
export { parseSemver, compareSemverParts, compareSemver, isVersionRange, satisfiesVersionSpec, semverOrderBy, } from './api/semver-range.js';
|
|
31
31
|
export { normalizeQuery, searchPublicListings, listPublicCategories, getPublicListing, getPublicListedVersion, listPublicReviews, listPublicListingsForSitemap, type DirectoryTrustTier, type DirectorySort, DIRECTORY_SORTS, DIRECTORY_TIERS, type DirectorySearchParams, type ReviewSort, REVIEW_SORTS, type PublicListingRow, } from './api/public-directory.js';
|
|
32
|
+
export { listEnabledAlertDestinations, type NotificationDestination, } from './api/alert-destinations.js';
|
|
32
33
|
export { policyOf, effectiveConsumptionPolicy, applyPolicyUpdate, type ConsumptionPolicy, DEFAULT_CONSUMPTION_POLICY, } from './api/plugin-consumption-policy.js';
|
|
33
34
|
export { advisoryRangeCovers, advisoryRangeProblem, advisoriesCovering, blockingAdvisories, } from './api/plugin-advisories.js';
|
|
34
35
|
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';
|
|
35
36
|
export { runSoftDeletePurge, createSoftDeletePurgeScheduler, type PurgeableEntity, } from './api/soft-delete-sweep.js';
|
|
36
|
-
export { type BuildHealth, type DoraLevel, type DoraMetrics, type DoraOptions, type DoraTrendPoint, type IncidentListItem, type ReportingSettings, type IncidentTestResult, type
|
|
37
|
+
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';
|
|
38
|
+
export { upsertDeployments, applyDeployOutcome, correlateIncident, isDeployEvent, leadTimeGapOf, type DeployCandidate, } from './api/reporting/deploy-rollup.js';
|
|
39
|
+
export { rebuildDay, runRollupPass, rollupSettleHours, rollupBatchDays, utcDayStart, } from './api/reporting/daily-rollup.js';
|
|
40
|
+
export { classifyFailure, isTeamActionable, FAILURE_CATEGORY_LABELS, } from './api/reporting/failure-classifier.js';
|
|
41
|
+
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';
|
|
42
|
+
export { evaluateNeedsAttention, thresholdsFrom, DEFAULT_THRESHOLDS, type NeedsAttentionThresholds, type AttentionFinding, type AttentionItem, type AttentionInput, type AttentionRuleId, } from './api/reporting/needs-attention.js';
|
|
43
|
+
export { replacePipelineResolution, refreshLatestForPlugin, upsertExposures, closeFixedExposures, openExposures, triageExposure, lapsedAcceptances, versionGap, type ResolvedStep, type ExposureInput, type VersionGap, } from './api/reporting/plugin-exposure.js';
|
|
44
|
+
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';
|
|
45
|
+
export { type PluginRuntimeFilter, type PluginRuntimeStats, ReportingService, reportingService, } from './api/reporting-service.js';
|
|
37
46
|
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
|
@@ -33,13 +33,27 @@ export * from './api/viewer-context.js';
|
|
|
33
33
|
export * from './api/crud-service.js';
|
|
34
34
|
export { parseSemver, compareSemverParts, compareSemver, isVersionRange, satisfiesVersionSpec, semverOrderBy, } from './api/semver-range.js';
|
|
35
35
|
export { normalizeQuery, searchPublicListings, listPublicCategories, getPublicListing, getPublicListedVersion, listPublicReviews, listPublicListingsForSitemap, DIRECTORY_SORTS, DIRECTORY_TIERS, REVIEW_SORTS, } from './api/public-directory.js';
|
|
36
|
+
export { listEnabledAlertDestinations, } from './api/alert-destinations.js';
|
|
36
37
|
export { policyOf, effectiveConsumptionPolicy, applyPolicyUpdate, DEFAULT_CONSUMPTION_POLICY, } from './api/plugin-consumption-policy.js';
|
|
37
38
|
export { advisoryRangeCovers, advisoryRangeProblem, advisoriesCovering, blockingAdvisories, } from './api/plugin-advisories.js';
|
|
38
39
|
export { listingBlock, implicitInstallRange, installAdmits, scopeOrgIds, installModeFor, drizzleListingSource, resolveListingReference, listedVersionWarnings, listedPluginRecord, loadOrgInstallContext, orgListingStates, resolvableListings, } from './api/plugin-resolution.js';
|
|
39
40
|
// `isSoftDeletePurgeEnabled` is the module's own env gate — `runSoftDeletePurge`
|
|
40
41
|
// and the scheduler already apply it, so callers never ask separately.
|
|
41
42
|
export { runSoftDeletePurge, createSoftDeletePurgeScheduler, } from './api/soft-delete-sweep.js';
|
|
43
|
+
export {} from './api/reporting-service.js';
|
|
44
|
+
// The reporting ANALYTICS layer: the per-deploy rollup written at ingest, the
|
|
45
|
+
// daily rollup every section reads, and the failure classifier that labels what
|
|
46
|
+
// broke (see the modules' own headers for why each is written rather than derived).
|
|
47
|
+
export { upsertDeployments, applyDeployOutcome, correlateIncident, isDeployEvent, leadTimeGapOf, } from './api/reporting/deploy-rollup.js';
|
|
48
|
+
export { rebuildDay, runRollupPass, rollupSettleHours, rollupBatchDays, utcDayStart, } from './api/reporting/daily-rollup.js';
|
|
49
|
+
export { classifyFailure, isTeamActionable, FAILURE_CATEGORY_LABELS, } from './api/reporting/failure-classifier.js';
|
|
50
|
+
export { getPipelineBreakdown, getFailureAnalysis, getStagePerformance, getResourceConsumption, getPromotionView, getOutdatedPlugins, getPluginVulnerabilities, getAdoption, } from './api/reporting/analytics-queries.js';
|
|
51
|
+
export { evaluateNeedsAttention, thresholdsFrom, DEFAULT_THRESHOLDS, } from './api/reporting/needs-attention.js';
|
|
52
|
+
export { replacePipelineResolution, refreshLatestForPlugin, upsertExposures, closeFixedExposures, openExposures, triageExposure, lapsedAcceptances, versionGap, } from './api/reporting/plugin-exposure.js';
|
|
53
|
+
// The stakeholder-report engine: period resolution, section registry, templates
|
|
54
|
+
// and the composer that freezes a period into a snapshot.
|
|
55
|
+
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';
|
|
42
56
|
export { ReportingService, reportingService, } from './api/reporting-service.js';
|
|
43
57
|
// Filters
|
|
44
58
|
export {} from './core/query-filters.js';
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFFSCxXQUFXO0FBQ1gsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyw4QkFBOEI7QUFDOUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGFBQWEsR0FDZCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQiw0QkFBNEIsRUFHNUIsZUFBZSxFQUNmLGVBQWUsRUFHZixZQUFZLEdBRWIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsUUFBUSxFQUNSLDBCQUEwQixFQUMxQixpQkFBaUIsRUFFakIsMEJBQTBCLEdBQzNCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixXQUFXLEVBQ1gsY0FBYyxFQUNkLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQU1uQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLGlGQUFpRjtBQUNqRix1RUFBdUU7QUFDdkUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQiw4QkFBOEIsR0FFL0IsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBWUwsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLFVBQVU7QUFDVixPQUFPLEVBVU4sTUFBTSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIEBtb2R1bGUgQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZGF0YVxuICpcbiAqIERhdGFiYXNlIGxheWVyOiBEcml6emxlIE9STSBzY2hlbWFzLCBjb25uZWN0aW9uIG1hbmFnZW1lbnQsIGFuZCBxdWVyeSBpbmZyYXN0cnVjdHVyZS5cbiAqXG4gKiAqKkRhdGFiYXNlKipcbiAqIC0gZGIg4oCUIHNoYXJlZCBEcml6emxlIGRhdGFiYXNlIGluc3RhbmNlXG4gKiAtIGdldENvbm5lY3Rpb24sIGNsb3NlQ29ubmVjdGlvbiDigJQgUG9zdGdyZVNRTCBjb25uZWN0aW9uIGxpZmVjeWNsZSB3aXRoIHJldHJ5IGxvZ2ljXG4gKiAtIHNjaGVtYSDigJQgRHJpenpsZSB0YWJsZSBkZWZpbml0aW9ucyAocGx1Z2lucywgcGlwZWxpbmVzLCBtZXNzYWdlcywgY29tcGxpYW5jZSwgZXRjLilcbiAqXG4gKiAqKlNlcnZpY2VzKipcbiAqIC0gQ3J1ZFNlcnZpY2Ug4oCUIGdlbmVyaWMgYmFzZSBjbGFzcyBmb3IgbXVsdGktdGVuYW50IENSVUQgd2l0aCBhY2Nlc3MgY29udHJvbCBhbmQgcGFnaW5hdGlvblxuICogLSBSZXBvcnRpbmdTZXJ2aWNlIOKAlCBhZ2dyZWdhdGUgcXVlcnkgYW5kIHJlcG9ydGluZyBiYXNlIGNsYXNzXG4gKlxuICogKipRdWVyeSBCdWlsZGVycyoqXG4gKiAtIGJ1aWxkUGx1Z2luQ29uZGl0aW9ucywgYnVpbGRQaXBlbGluZUNvbmRpdGlvbnMsIGJ1aWxkTWVzc2FnZUNvbmRpdGlvbnMg4oCUIGZpbHRlci10by1TUUwgY29uZGl0aW9uIGJ1aWxkZXJzXG4gKiAtIGJ1aWxkQ29tcGxpYW5jZVBvbGljeUNvbmRpdGlvbnMsIGJ1aWxkQ29tcGxpYW5jZVJ1bGVDb25kaXRpb25zLCBldGMuIOKAlCBjb21wbGlhbmNlIHF1ZXJ5IGJ1aWxkZXJzXG4gKiAtIEFjY2Vzc0NvbnRyb2xCdWlsZGVyIOKAlCByb3ctbGV2ZWwgYWNjZXNzIGNvbnRyb2wgY29uZGl0aW9uIGJ1aWxkZXJcbiAqXG4gKiAqKkZpbHRlcnMqKlxuICogLSBQbHVnaW5GaWx0ZXIsIFBpcGVsaW5lRmlsdGVyLCBNZXNzYWdlRmlsdGVyIOKAlCB0eXBlZCBmaWx0ZXIgaW50ZXJmYWNlc1xuICogLSBDb21wbGlhbmNlUG9saWN5RmlsdGVyLCBDb21wbGlhbmNlUnVsZUZpbHRlciwgZXRjLiDigJQgY29tcGxpYW5jZSBmaWx0ZXIgaW50ZXJmYWNlc1xuICogLSBkcml6emxlUm93cywgZHJpenpsZUNvdW50IOKAlCBEcml6emxlIHJlc3VsdCB0eXBlIGhlbHBlcnNcbiAqL1xuXG4vLyBEYXRhYmFzZVxuZXhwb3J0ICogZnJvbSAnLi9kYXRhYmFzZS9pbmRleC5qcyc7XG5cbi8vIFF1ZXJ5IGJ1aWxkZXJzIGFuZCBzZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvcXVlcnktYnVpbGRlcnMuanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBCYXNlQWNjZXNzRmlsdGVyLFxuICBBY2Nlc3NDb250cm9sUXVlcnlCdWlsZGVyLFxufSBmcm9tICcuL2FwaS9hY2Nlc3MtY29udHJvbC1idWlsZGVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3ZpZXdlci1jb250ZXh0LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2NydWQtc2VydmljZS5qcyc7XG5leHBvcnQge1xuICBwYXJzZVNlbXZlcixcbiAgY29tcGFyZVNlbXZlclBhcnRzLFxuICBjb21wYXJlU2VtdmVyLFxuICBpc1ZlcnNpb25SYW5nZSxcbiAgc2F0aXNmaWVzVmVyc2lvblNwZWMsXG4gIHNlbXZlck9yZGVyQnksXG59IGZyb20gJy4vYXBpL3NlbXZlci1yYW5nZS5qcyc7XG5leHBvcnQge1xuICBub3JtYWxpemVRdWVyeSxcbiAgc2VhcmNoUHVibGljTGlzdGluZ3MsXG4gIGxpc3RQdWJsaWNDYXRlZ29yaWVzLFxuICBnZXRQdWJsaWNMaXN0aW5nLFxuICBnZXRQdWJsaWNMaXN0ZWRWZXJzaW9uLFxuICBsaXN0UHVibGljUmV2aWV3cyxcbiAgbGlzdFB1YmxpY0xpc3RpbmdzRm9yU2l0ZW1hcCxcbiAgdHlwZSBEaXJlY3RvcnlUcnVzdFRpZXIsXG4gIHR5cGUgRGlyZWN0b3J5U29ydCxcbiAgRElSRUNUT1JZX1NPUlRTLFxuICBESVJFQ1RPUllfVElFUlMsXG4gIHR5cGUgRGlyZWN0b3J5U2VhcmNoUGFyYW1zLFxuICB0eXBlIFJldmlld1NvcnQsXG4gIFJFVklFV19TT1JUUyxcbiAgdHlwZSBQdWJsaWNMaXN0aW5nUm93LFxufSBmcm9tICcuL2FwaS9wdWJsaWMtZGlyZWN0b3J5LmpzJztcbmV4cG9ydCB7XG4gIHBvbGljeU9mLFxuICBlZmZlY3RpdmVDb25zdW1wdGlvblBvbGljeSxcbiAgYXBwbHlQb2xpY3lVcGRhdGUsXG4gIHR5cGUgQ29uc3VtcHRpb25Qb2xpY3ksXG4gIERFRkFVTFRfQ09OU1VNUFRJT05fUE9MSUNZLFxufSBmcm9tICcuL2FwaS9wbHVnaW4tY29uc3VtcHRpb24tcG9saWN5LmpzJztcbmV4cG9ydCB7XG4gIGFkdmlzb3J5UmFuZ2VDb3ZlcnMsXG4gIGFkdmlzb3J5UmFuZ2VQcm9ibGVtLFxuICBhZHZpc29yaWVzQ292ZXJpbmcsXG4gIGJsb2NraW5nQWR2aXNvcmllcyxcbn0gZnJvbSAnLi9hcGkvcGx1Z2luLWFkdmlzb3JpZXMuanMnO1xuZXhwb3J0IHtcbiAgbGlzdGluZ0Jsb2NrLFxuICBpbXBsaWNpdEluc3RhbGxSYW5nZSxcbiAgaW5zdGFsbEFkbWl0cyxcbiAgc2NvcGVPcmdJZHMsXG4gIGluc3RhbGxNb2RlRm9yLFxuICBkcml6emxlTGlzdGluZ1NvdXJjZSxcbiAgcmVzb2x2ZUxpc3RpbmdSZWZlcmVuY2UsXG4gIGxpc3RlZFZlcnNpb25XYXJuaW5ncyxcbiAgbGlzdGVkUGx1Z2luUmVjb3JkLFxuICBsb2FkT3JnSW5zdGFsbENvbnRleHQsXG4gIG9yZ0xpc3RpbmdTdGF0ZXMsXG4gIHJlc29sdmFibGVMaXN0aW5ncyxcbiAgdHlwZSBSZXNvbHV0aW9uUmVmdXNhbCxcbiAgdHlwZSBSZXNvbHV0aW9uU2NvcGUsXG4gIHR5cGUgTGlzdGluZ0RhdGFTb3VyY2UsXG4gIHR5cGUgTGlzdGluZ1Jlc29sdmVkLFxuICB0eXBlIE9yZ0xpc3RpbmdTdGF0ZSxcbn0gZnJvbSAnLi9hcGkvcGx1Z2luLXJlc29sdXRpb24uanMnO1xuLy8gYGlzU29mdERlbGV0ZVB1cmdlRW5hYmxlZGAgaXMgdGhlIG1vZHVsZSdzIG93biBlbnYgZ2F0ZSDigJQgYHJ1blNvZnREZWxldGVQdXJnZWBcbi8vIGFuZCB0aGUgc2NoZWR1bGVyIGFscmVhZHkgYXBwbHkgaXQsIHNvIGNhbGxlcnMgbmV2ZXIgYXNrIHNlcGFyYXRlbHkuXG5leHBvcnQge1xuICBydW5Tb2Z0RGVsZXRlUHVyZ2UsXG4gIGNyZWF0ZVNvZnREZWxldGVQdXJnZVNjaGVkdWxlcixcbiAgdHlwZSBQdXJnZWFibGVFbnRpdHksXG59IGZyb20gJy4vYXBpL3NvZnQtZGVsZXRlLXN3ZWVwLmpzJztcbmV4cG9ydCB7XG4gIHR5cGUgQnVpbGRIZWFsdGgsXG4gIHR5cGUgRG9yYUxldmVsLFxuICB0eXBlIERvcmFNZXRyaWNzLFxuICB0eXBlIERvcmFPcHRpb25zLFxuICB0eXBlIERvcmFUcmVuZFBvaW50LFxuICB0eXBlIEluY2lkZW50TGlzdEl0ZW0sXG4gIHR5cGUgUmVwb3J0aW5nU2V0dGluZ3MsXG4gIHR5cGUgSW5jaWRlbnRUZXN0UmVzdWx0LFxuICB0eXBlIEluZ2VzdE1ldHJpYyxcbiAgdHlwZSBQbHVnaW5SdW50aW1lRmlsdGVyLFxuICB0eXBlIFBsdWdpblJ1bnRpbWVTdGF0cyxcbiAgUmVwb3J0aW5nU2VydmljZSxcbiAgcmVwb3J0aW5nU2VydmljZSxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nLXNlcnZpY2UuanMnO1xuXG4vLyBGaWx0ZXJzXG5leHBvcnQge1xuICB0eXBlIFBsdWdpbkZpbHRlcixcbiAgdHlwZSBQaXBlbGluZUZpbHRlcixcbiAgdHlwZSBQaXBlbGluZVRlbXBsYXRlRmlsdGVyLFxuICB0eXBlIE1lc3NhZ2VGaWx0ZXIsXG4gIHR5cGUgQ29tcGxpYW5jZVBvbGljeUZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlUnVsZUZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlRXhlbXB0aW9uRmlsdGVyLFxuICB0eXBlIENvbXBsaWFuY2VBdWRpdEZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlU2NhbkZpbHRlcixcbn0gZnJvbSAnLi9jb3JlL3F1ZXJ5LWZpbHRlcnMuanMnO1xuIl19
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFFSCxXQUFXO0FBQ1gsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyw4QkFBOEI7QUFDOUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGFBQWEsR0FDZCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQiw0QkFBNEIsRUFHNUIsZUFBZSxFQUNmLGVBQWUsRUFHZixZQUFZLEdBRWIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsNEJBQTRCLEdBRTdCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUNMLFFBQVEsRUFDUiwwQkFBMEIsRUFDMUIsaUJBQWlCLEVBRWpCLDBCQUEwQixHQUMzQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixrQkFBa0IsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsV0FBVyxFQUNYLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixrQkFBa0IsR0FNbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxpRkFBaUY7QUFDakYsdUVBQXVFO0FBQ3ZFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsOEJBQThCLEdBRS9CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQVlOLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsOEVBQThFO0FBQzlFLGdGQUFnRjtBQUNoRixvRkFBb0Y7QUFDcEYsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixhQUFhLEdBRWQsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLFdBQVcsR0FDWixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLHVCQUF1QixHQUN4QixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsV0FBVyxHQVVaLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixjQUFjLEVBQ2Qsa0JBQWtCLEdBTW5CLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixhQUFhLEVBQ2IsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixVQUFVLEdBSVgsTUFBTSxvQ0FBb0MsQ0FBQztBQUU1QyxnRkFBZ0Y7QUFDaEYsMERBQTBEO0FBQzFELE9BQU8sRUFDTCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixVQUFVLEVBQ1YsV0FBVyxFQUNYLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsV0FBVyxFQUNYLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsYUFBYSxFQWFiLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsU0FBUyxFQUNULFNBQVMsRUFDVCwyQkFBMkIsRUFDM0IsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFDWCxtQkFBbUIsR0FLcEIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBR0wsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUNqQixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLFVBQVU7QUFDVixPQUFPLEVBVU4sTUFBTSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIEBtb2R1bGUgQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZGF0YVxuICpcbiAqIERhdGFiYXNlIGxheWVyOiBEcml6emxlIE9STSBzY2hlbWFzLCBjb25uZWN0aW9uIG1hbmFnZW1lbnQsIGFuZCBxdWVyeSBpbmZyYXN0cnVjdHVyZS5cbiAqXG4gKiAqKkRhdGFiYXNlKipcbiAqIC0gZGIg4oCUIHNoYXJlZCBEcml6emxlIGRhdGFiYXNlIGluc3RhbmNlXG4gKiAtIGdldENvbm5lY3Rpb24sIGNsb3NlQ29ubmVjdGlvbiDigJQgUG9zdGdyZVNRTCBjb25uZWN0aW9uIGxpZmVjeWNsZSB3aXRoIHJldHJ5IGxvZ2ljXG4gKiAtIHNjaGVtYSDigJQgRHJpenpsZSB0YWJsZSBkZWZpbml0aW9ucyAocGx1Z2lucywgcGlwZWxpbmVzLCBtZXNzYWdlcywgY29tcGxpYW5jZSwgZXRjLilcbiAqXG4gKiAqKlNlcnZpY2VzKipcbiAqIC0gQ3J1ZFNlcnZpY2Ug4oCUIGdlbmVyaWMgYmFzZSBjbGFzcyBmb3IgbXVsdGktdGVuYW50IENSVUQgd2l0aCBhY2Nlc3MgY29udHJvbCBhbmQgcGFnaW5hdGlvblxuICogLSBSZXBvcnRpbmdTZXJ2aWNlIOKAlCBhZ2dyZWdhdGUgcXVlcnkgYW5kIHJlcG9ydGluZyBiYXNlIGNsYXNzXG4gKlxuICogKipRdWVyeSBCdWlsZGVycyoqXG4gKiAtIGJ1aWxkUGx1Z2luQ29uZGl0aW9ucywgYnVpbGRQaXBlbGluZUNvbmRpdGlvbnMsIGJ1aWxkTWVzc2FnZUNvbmRpdGlvbnMg4oCUIGZpbHRlci10by1TUUwgY29uZGl0aW9uIGJ1aWxkZXJzXG4gKiAtIGJ1aWxkQ29tcGxpYW5jZVBvbGljeUNvbmRpdGlvbnMsIGJ1aWxkQ29tcGxpYW5jZVJ1bGVDb25kaXRpb25zLCBldGMuIOKAlCBjb21wbGlhbmNlIHF1ZXJ5IGJ1aWxkZXJzXG4gKiAtIEFjY2Vzc0NvbnRyb2xCdWlsZGVyIOKAlCByb3ctbGV2ZWwgYWNjZXNzIGNvbnRyb2wgY29uZGl0aW9uIGJ1aWxkZXJcbiAqXG4gKiAqKkZpbHRlcnMqKlxuICogLSBQbHVnaW5GaWx0ZXIsIFBpcGVsaW5lRmlsdGVyLCBNZXNzYWdlRmlsdGVyIOKAlCB0eXBlZCBmaWx0ZXIgaW50ZXJmYWNlc1xuICogLSBDb21wbGlhbmNlUG9saWN5RmlsdGVyLCBDb21wbGlhbmNlUnVsZUZpbHRlciwgZXRjLiDigJQgY29tcGxpYW5jZSBmaWx0ZXIgaW50ZXJmYWNlc1xuICogLSBkcml6emxlUm93cywgZHJpenpsZUNvdW50IOKAlCBEcml6emxlIHJlc3VsdCB0eXBlIGhlbHBlcnNcbiAqL1xuXG4vLyBEYXRhYmFzZVxuZXhwb3J0ICogZnJvbSAnLi9kYXRhYmFzZS9pbmRleC5qcyc7XG5cbi8vIFF1ZXJ5IGJ1aWxkZXJzIGFuZCBzZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvcXVlcnktYnVpbGRlcnMuanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBCYXNlQWNjZXNzRmlsdGVyLFxuICBBY2Nlc3NDb250cm9sUXVlcnlCdWlsZGVyLFxufSBmcm9tICcuL2FwaS9hY2Nlc3MtY29udHJvbC1idWlsZGVyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3ZpZXdlci1jb250ZXh0LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2NydWQtc2VydmljZS5qcyc7XG5leHBvcnQge1xuICBwYXJzZVNlbXZlcixcbiAgY29tcGFyZVNlbXZlclBhcnRzLFxuICBjb21wYXJlU2VtdmVyLFxuICBpc1ZlcnNpb25SYW5nZSxcbiAgc2F0aXNmaWVzVmVyc2lvblNwZWMsXG4gIHNlbXZlck9yZGVyQnksXG59IGZyb20gJy4vYXBpL3NlbXZlci1yYW5nZS5qcyc7XG5leHBvcnQge1xuICBub3JtYWxpemVRdWVyeSxcbiAgc2VhcmNoUHVibGljTGlzdGluZ3MsXG4gIGxpc3RQdWJsaWNDYXRlZ29yaWVzLFxuICBnZXRQdWJsaWNMaXN0aW5nLFxuICBnZXRQdWJsaWNMaXN0ZWRWZXJzaW9uLFxuICBsaXN0UHVibGljUmV2aWV3cyxcbiAgbGlzdFB1YmxpY0xpc3RpbmdzRm9yU2l0ZW1hcCxcbiAgdHlwZSBEaXJlY3RvcnlUcnVzdFRpZXIsXG4gIHR5cGUgRGlyZWN0b3J5U29ydCxcbiAgRElSRUNUT1JZX1NPUlRTLFxuICBESVJFQ1RPUllfVElFUlMsXG4gIHR5cGUgRGlyZWN0b3J5U2VhcmNoUGFyYW1zLFxuICB0eXBlIFJldmlld1NvcnQsXG4gIFJFVklFV19TT1JUUyxcbiAgdHlwZSBQdWJsaWNMaXN0aW5nUm93LFxufSBmcm9tICcuL2FwaS9wdWJsaWMtZGlyZWN0b3J5LmpzJztcbmV4cG9ydCB7XG4gIGxpc3RFbmFibGVkQWxlcnREZXN0aW5hdGlvbnMsXG4gIHR5cGUgTm90aWZpY2F0aW9uRGVzdGluYXRpb24sXG59IGZyb20gJy4vYXBpL2FsZXJ0LWRlc3RpbmF0aW9ucy5qcyc7XG5leHBvcnQge1xuICBwb2xpY3lPZixcbiAgZWZmZWN0aXZlQ29uc3VtcHRpb25Qb2xpY3ksXG4gIGFwcGx5UG9saWN5VXBkYXRlLFxuICB0eXBlIENvbnN1bXB0aW9uUG9saWN5LFxuICBERUZBVUxUX0NPTlNVTVBUSU9OX1BPTElDWSxcbn0gZnJvbSAnLi9hcGkvcGx1Z2luLWNvbnN1bXB0aW9uLXBvbGljeS5qcyc7XG5leHBvcnQge1xuICBhZHZpc29yeVJhbmdlQ292ZXJzLFxuICBhZHZpc29yeVJhbmdlUHJvYmxlbSxcbiAgYWR2aXNvcmllc0NvdmVyaW5nLFxuICBibG9ja2luZ0Fkdmlzb3JpZXMsXG59IGZyb20gJy4vYXBpL3BsdWdpbi1hZHZpc29yaWVzLmpzJztcbmV4cG9ydCB7XG4gIGxpc3RpbmdCbG9jayxcbiAgaW1wbGljaXRJbnN0YWxsUmFuZ2UsXG4gIGluc3RhbGxBZG1pdHMsXG4gIHNjb3BlT3JnSWRzLFxuICBpbnN0YWxsTW9kZUZvcixcbiAgZHJpenpsZUxpc3RpbmdTb3VyY2UsXG4gIHJlc29sdmVMaXN0aW5nUmVmZXJlbmNlLFxuICBsaXN0ZWRWZXJzaW9uV2FybmluZ3MsXG4gIGxpc3RlZFBsdWdpblJlY29yZCxcbiAgbG9hZE9yZ0luc3RhbGxDb250ZXh0LFxuICBvcmdMaXN0aW5nU3RhdGVzLFxuICByZXNvbHZhYmxlTGlzdGluZ3MsXG4gIHR5cGUgUmVzb2x1dGlvblJlZnVzYWwsXG4gIHR5cGUgUmVzb2x1dGlvblNjb3BlLFxuICB0eXBlIExpc3RpbmdEYXRhU291cmNlLFxuICB0eXBlIExpc3RpbmdSZXNvbHZlZCxcbiAgdHlwZSBPcmdMaXN0aW5nU3RhdGUsXG59IGZyb20gJy4vYXBpL3BsdWdpbi1yZXNvbHV0aW9uLmpzJztcbi8vIGBpc1NvZnREZWxldGVQdXJnZUVuYWJsZWRgIGlzIHRoZSBtb2R1bGUncyBvd24gZW52IGdhdGUg4oCUIGBydW5Tb2Z0RGVsZXRlUHVyZ2VgXG4vLyBhbmQgdGhlIHNjaGVkdWxlciBhbHJlYWR5IGFwcGx5IGl0LCBzbyBjYWxsZXJzIG5ldmVyIGFzayBzZXBhcmF0ZWx5LlxuZXhwb3J0IHtcbiAgcnVuU29mdERlbGV0ZVB1cmdlLFxuICBjcmVhdGVTb2Z0RGVsZXRlUHVyZ2VTY2hlZHVsZXIsXG4gIHR5cGUgUHVyZ2VhYmxlRW50aXR5LFxufSBmcm9tICcuL2FwaS9zb2Z0LWRlbGV0ZS1zd2VlcC5qcyc7XG5leHBvcnQge1xuICB0eXBlIEJ1aWxkSGVhbHRoLFxuICB0eXBlIERvcmFMZXZlbCxcbiAgdHlwZSBEb3JhTWV0cmljcyxcbiAgdHlwZSBEb3JhT3B0aW9ucyxcbiAgdHlwZSBEb3JhVHJlbmRQb2ludCxcbiAgdHlwZSBJbmNpZGVudExpc3RJdGVtLFxuICB0eXBlIFJlcG9ydGluZ1NldHRpbmdzLFxuICB0eXBlIEluY2lkZW50VGVzdFJlc3VsdCxcbiAgdHlwZSBJbmdlc3RDYWxsZXIsXG4gIHR5cGUgSW5nZXN0TWV0cmljLFxuICB0eXBlIExhc3REZXBsb3llZENvbW1pdCxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nLXNlcnZpY2UuanMnO1xuXG4vLyBUaGUgcmVwb3J0aW5nIEFOQUxZVElDUyBsYXllcjogdGhlIHBlci1kZXBsb3kgcm9sbHVwIHdyaXR0ZW4gYXQgaW5nZXN0LCB0aGVcbi8vIGRhaWx5IHJvbGx1cCBldmVyeSBzZWN0aW9uIHJlYWRzLCBhbmQgdGhlIGZhaWx1cmUgY2xhc3NpZmllciB0aGF0IGxhYmVscyB3aGF0XG4vLyBicm9rZSAoc2VlIHRoZSBtb2R1bGVzJyBvd24gaGVhZGVycyBmb3Igd2h5IGVhY2ggaXMgd3JpdHRlbiByYXRoZXIgdGhhbiBkZXJpdmVkKS5cbmV4cG9ydCB7XG4gIHVwc2VydERlcGxveW1lbnRzLFxuICBhcHBseURlcGxveU91dGNvbWUsXG4gIGNvcnJlbGF0ZUluY2lkZW50LFxuICBpc0RlcGxveUV2ZW50LFxuICBsZWFkVGltZUdhcE9mLFxuICB0eXBlIERlcGxveUNhbmRpZGF0ZSxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL2RlcGxveS1yb2xsdXAuanMnO1xuZXhwb3J0IHtcbiAgcmVidWlsZERheSxcbiAgcnVuUm9sbHVwUGFzcyxcbiAgcm9sbHVwU2V0dGxlSG91cnMsXG4gIHJvbGx1cEJhdGNoRGF5cyxcbiAgdXRjRGF5U3RhcnQsXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy9kYWlseS1yb2xsdXAuanMnO1xuZXhwb3J0IHtcbiAgY2xhc3NpZnlGYWlsdXJlLFxuICBpc1RlYW1BY3Rpb25hYmxlLFxuICBGQUlMVVJFX0NBVEVHT1JZX0xBQkVMUyxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL2ZhaWx1cmUtY2xhc3NpZmllci5qcyc7XG5leHBvcnQge1xuICBnZXRQaXBlbGluZUJyZWFrZG93bixcbiAgZ2V0RmFpbHVyZUFuYWx5c2lzLFxuICBnZXRTdGFnZVBlcmZvcm1hbmNlLFxuICBnZXRSZXNvdXJjZUNvbnN1bXB0aW9uLFxuICBnZXRQcm9tb3Rpb25WaWV3LFxuICBnZXRPdXRkYXRlZFBsdWdpbnMsXG4gIGdldFBsdWdpblZ1bG5lcmFiaWxpdGllcyxcbiAgZ2V0QWRvcHRpb24sXG4gIHR5cGUgQW5hbHl0aWNzU2NvcGUsXG4gIHR5cGUgUGlwZWxpbmVCcmVha2Rvd25Sb3csXG4gIHR5cGUgRmFpbHVyZUNhdGVnb3J5Um93LFxuICB0eXBlIFN0YWdlUGVyZm9ybWFuY2VSb3csXG4gIHR5cGUgUmVzb3VyY2VSb3csXG4gIHR5cGUgUHJvbW90aW9uUm93LFxuICB0eXBlIE91dGRhdGVkUGx1Z2luUm93LFxuICB0eXBlIFZ1bG5lcmFiaWxpdHlSb3csXG4gIHR5cGUgQWRvcHRpb25TdW1tYXJ5LFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmcvYW5hbHl0aWNzLXF1ZXJpZXMuanMnO1xuZXhwb3J0IHtcbiAgZXZhbHVhdGVOZWVkc0F0dGVudGlvbixcbiAgdGhyZXNob2xkc0Zyb20sXG4gIERFRkFVTFRfVEhSRVNIT0xEUyxcbiAgdHlwZSBOZWVkc0F0dGVudGlvblRocmVzaG9sZHMsXG4gIHR5cGUgQXR0ZW50aW9uRmluZGluZyxcbiAgdHlwZSBBdHRlbnRpb25JdGVtLFxuICB0eXBlIEF0dGVudGlvbklucHV0LFxuICB0eXBlIEF0dGVudGlvblJ1bGVJZCxcbn0gZnJvbSAnLi9hcGkvcmVwb3J0aW5nL25lZWRzLWF0dGVudGlvbi5qcyc7XG5leHBvcnQge1xuICByZXBsYWNlUGlwZWxpbmVSZXNvbHV0aW9uLFxuICByZWZyZXNoTGF0ZXN0Rm9yUGx1Z2luLFxuICB1cHNlcnRFeHBvc3VyZXMsXG4gIGNsb3NlRml4ZWRFeHBvc3VyZXMsXG4gIG9wZW5FeHBvc3VyZXMsXG4gIHRyaWFnZUV4cG9zdXJlLFxuICBsYXBzZWRBY2NlcHRhbmNlcyxcbiAgdmVyc2lvbkdhcCxcbiAgdHlwZSBSZXNvbHZlZFN0ZXAsXG4gIHR5cGUgRXhwb3N1cmVJbnB1dCxcbiAgdHlwZSBWZXJzaW9uR2FwLFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmcvcGx1Z2luLWV4cG9zdXJlLmpzJztcblxuLy8gVGhlIHN0YWtlaG9sZGVyLXJlcG9ydCBlbmdpbmU6IHBlcmlvZCByZXNvbHV0aW9uLCBzZWN0aW9uIHJlZ2lzdHJ5LCB0ZW1wbGF0ZXNcbi8vIGFuZCB0aGUgY29tcG9zZXIgdGhhdCBmcmVlemVzIGEgcGVyaW9kIGludG8gYSBzbmFwc2hvdC5cbmV4cG9ydCB7XG4gIHJlc29sdmVQZXJpb2QsXG4gIHJlc29sdmVQZXJpb2RCeUxhYmVsLFxuICByZWplY3RVbnJlcG9ydGFibGVQZXJpb2QsXG4gIG5leHRQZXJpb2RCb3VuZGFyeSxcbiAgY29tcGxldGVQZXJpb2RzU2luY2UsXG4gIHJlZ2lzdGVyU2VjdGlvbixcbiAgZ2V0U2VjdGlvbixcbiAgYWxsU2VjdGlvbnMsXG4gIHNlY3Rpb25JZHMsXG4gIFJFUE9SVF9URU1QTEFURV9TUEVDUyxcbiAgZ2V0VGVtcGxhdGUsXG4gIGNvbXBvc2VTbmFwc2hvdCxcbiAgTE9XX1NBTVBMRV9USFJFU0hPTEQsXG4gIFJFUE9SVF9GRUFUVVJFX1NVQlNUSVRVVEVTLFxuICByZW5kZXJSZXBvcnRIdG1sLFxuICByZXBvcnRGaWxlTmFtZSxcbiAgdHJlbmRTZW50ZW5jZSxcbiAgdHlwZSBSZXBvcnRIdG1sSW5wdXQsXG4gIHR5cGUgUmVzb2x2ZWRQZXJpb2QsXG4gIHR5cGUgUGVyaW9kUmVqZWN0aW9uLFxuICB0eXBlIFNlY3Rpb25TcGVjLFxuICB0eXBlIFNlY3Rpb25Db250ZXh0LFxuICB0eXBlIFNlY3Rpb25EYXRhU291cmNlLFxuICB0eXBlIFRlbXBsYXRlU3BlYyxcbiAgdHlwZSBSZXBvcnRTbmFwc2hvdCxcbiAgdHlwZSBDb21wb3NlZFNlY3Rpb24sXG4gIHR5cGUgRGF0YVF1YWxpdHlOb3RlLFxuICB0eXBlIENvbXBvc2VPcHRpb25zLFxuICB0eXBlIFRyZW5kRGlyZWN0aW9uLFxuICBTdGFrZWhvbGRlclJlcG9ydFN0b3JlLFxuICBzdGFrZWhvbGRlclJlcG9ydFN0b3JlLFxuICBoYXNoVG9rZW4sXG4gIG1pbnRUb2tlbixcbiAgREVGQVVMVF9TSEFSRV9MSU5LX1RUTF9EQVlTLFxuICBNQVhfU0hBUkVfTElOS19UVExfREFZUyxcbiAgTUFYX0JPVU5DRVMsXG4gIFZFUklGSUNBVElPTl9UVExfTVMsXG4gIHR5cGUgQ3JlYXRlRGVmaW5pdGlvbklucHV0LFxuICB0eXBlIFVwZGF0ZURlZmluaXRpb25JbnB1dCxcbiAgdHlwZSBNaW50ZWRTaGFyZUxpbmssXG4gIHR5cGUgUmVzb2x2ZWRTaGFyZUxpbmssXG59IGZyb20gJy4vYXBpL3JlcG9ydGluZy9zdGFrZWhvbGRlci9pbmRleC5qcyc7XG5leHBvcnQge1xuICB0eXBlIFBsdWdpblJ1bnRpbWVGaWx0ZXIsXG4gIHR5cGUgUGx1Z2luUnVudGltZVN0YXRzLFxuICBSZXBvcnRpbmdTZXJ2aWNlLFxuICByZXBvcnRpbmdTZXJ2aWNlLFxufSBmcm9tICcuL2FwaS9yZXBvcnRpbmctc2VydmljZS5qcyc7XG5cbi8vIEZpbHRlcnNcbmV4cG9ydCB7XG4gIHR5cGUgUGx1Z2luRmlsdGVyLFxuICB0eXBlIFBpcGVsaW5lRmlsdGVyLFxuICB0eXBlIFBpcGVsaW5lVGVtcGxhdGVGaWx0ZXIsXG4gIHR5cGUgTWVzc2FnZUZpbHRlcixcbiAgdHlwZSBDb21wbGlhbmNlUG9saWN5RmlsdGVyLFxuICB0eXBlIENvbXBsaWFuY2VSdWxlRmlsdGVyLFxuICB0eXBlIENvbXBsaWFuY2VFeGVtcHRpb25GaWx0ZXIsXG4gIHR5cGUgQ29tcGxpYW5jZUF1ZGl0RmlsdGVyLFxuICB0eXBlIENvbXBsaWFuY2VTY2FuRmlsdGVyLFxufSBmcm9tICcuL2NvcmUvcXVlcnktZmlsdGVycy5qcyc7XG4iXX0=
|
package/lib/testing/exports.json
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
"advisoriesCovering": "function",
|
|
7
7
|
"advisoryRangeCovers": "function",
|
|
8
8
|
"advisoryRangeProblem": "function",
|
|
9
|
+
"allSections": "function",
|
|
10
|
+
"applyDeployOutcome": "function",
|
|
9
11
|
"applyPolicyUpdate": "function",
|
|
10
12
|
"blockingAdvisories": "function",
|
|
11
13
|
"buildComplianceAuditConditions": "function",
|
|
@@ -18,26 +20,28 @@
|
|
|
18
20
|
"buildPipelineTemplateConditions": "function",
|
|
19
21
|
"buildPluginConditions": "function",
|
|
20
22
|
"buildPublishedRuleCatalogConditions": "function",
|
|
23
|
+
"classifyFailure": "function",
|
|
21
24
|
"closeConnection": "function",
|
|
25
|
+
"closeFixedExposures": "function",
|
|
22
26
|
"closePublicReader": "function",
|
|
23
27
|
"COMMUNITY_PUBLISHER_HANDLE": "value",
|
|
24
28
|
"compareSemver": "function",
|
|
25
29
|
"compareSemverParts": "function",
|
|
30
|
+
"completePeriodsSince": "function",
|
|
26
31
|
"complianceAuditLog": "value",
|
|
27
32
|
"complianceExemption": "value",
|
|
28
33
|
"complianceNotificationLog": "value",
|
|
29
34
|
"complianceNotificationPreference": "value",
|
|
30
35
|
"compliancePolicy": "value",
|
|
31
|
-
"complianceReport": "value",
|
|
32
|
-
"complianceReportSchedule": "value",
|
|
33
|
-
"complianceRole": "value",
|
|
34
36
|
"complianceRule": "value",
|
|
35
37
|
"complianceRuleHistory": "value",
|
|
36
38
|
"complianceRuleSubscription": "value",
|
|
37
39
|
"complianceScan": "value",
|
|
38
40
|
"complianceScanSchedule": "value",
|
|
41
|
+
"composeSnapshot": "function",
|
|
39
42
|
"Connection": "class",
|
|
40
43
|
"ConnectionRetryStrategy": "class",
|
|
44
|
+
"correlateIncident": "function",
|
|
41
45
|
"createSoftDeletePurgeScheduler": "function",
|
|
42
46
|
"CrudService": "class",
|
|
43
47
|
"currentViewerUserId": "function",
|
|
@@ -45,6 +49,8 @@
|
|
|
45
49
|
"dashboardPanel": "value",
|
|
46
50
|
"db": "value",
|
|
47
51
|
"DEFAULT_CONSUMPTION_POLICY": "value",
|
|
52
|
+
"DEFAULT_SHARE_LINK_TTL_DAYS": "value",
|
|
53
|
+
"DEFAULT_THRESHOLDS": "value",
|
|
48
54
|
"deploymentOutcome": "value",
|
|
49
55
|
"DIRECTORY_SORTS": "value",
|
|
50
56
|
"DIRECTORY_TIERS": "value",
|
|
@@ -53,40 +59,63 @@
|
|
|
53
59
|
"drizzleListingSource": "function",
|
|
54
60
|
"drizzleRows": "function",
|
|
55
61
|
"ecosystemAutoApprovalRule": "value",
|
|
56
|
-
"ecosystemCollection": "value",
|
|
57
62
|
"ecosystemNotificationQueue": "value",
|
|
58
63
|
"ecosystemReservedName": "value",
|
|
59
64
|
"ecosystemSearchMiss": "value",
|
|
60
65
|
"ecosystemSetting": "value",
|
|
61
66
|
"effectiveConsumptionPolicy": "function",
|
|
67
|
+
"evaluateNeedsAttention": "function",
|
|
62
68
|
"executeRows": "function",
|
|
69
|
+
"FAILURE_CATEGORY_LABELS": "value",
|
|
70
|
+
"getAdoption": "function",
|
|
63
71
|
"getConnection": "function",
|
|
72
|
+
"getFailureAnalysis": "function",
|
|
73
|
+
"getOutdatedPlugins": "function",
|
|
74
|
+
"getPipelineBreakdown": "function",
|
|
75
|
+
"getPluginVulnerabilities": "function",
|
|
76
|
+
"getPromotionView": "function",
|
|
64
77
|
"getPublicListedVersion": "function",
|
|
65
78
|
"getPublicListing": "function",
|
|
66
79
|
"getPublicReaderDb": "function",
|
|
80
|
+
"getResourceConsumption": "function",
|
|
81
|
+
"getSection": "function",
|
|
67
82
|
"getSslConfig": "function",
|
|
83
|
+
"getStagePerformance": "function",
|
|
84
|
+
"getTemplate": "function",
|
|
68
85
|
"getTenantContext": "function",
|
|
86
|
+
"hashToken": "function",
|
|
69
87
|
"implicitInstallRange": "function",
|
|
70
88
|
"incident": "value",
|
|
71
89
|
"ingestHealth": "value",
|
|
72
90
|
"INSTALL_VERSION_POLICIES": "value",
|
|
73
91
|
"installAdmits": "function",
|
|
74
92
|
"installModeFor": "function",
|
|
93
|
+
"isDeployEvent": "function",
|
|
75
94
|
"isPublicReaderConfigured": "function",
|
|
95
|
+
"isTeamActionable": "function",
|
|
76
96
|
"isUniqueViolation": "function",
|
|
77
97
|
"isVersionRange": "function",
|
|
98
|
+
"lapsedAcceptances": "function",
|
|
99
|
+
"leadTimeGapOf": "function",
|
|
78
100
|
"listedPluginRecord": "function",
|
|
79
101
|
"listedVersionWarnings": "function",
|
|
102
|
+
"listEnabledAlertDestinations": "function",
|
|
80
103
|
"listingBlock": "function",
|
|
81
104
|
"listPublicCategories": "function",
|
|
82
105
|
"listPublicListingsForSitemap": "function",
|
|
83
106
|
"listPublicReviews": "function",
|
|
84
107
|
"loadOrgInstallContext": "function",
|
|
108
|
+
"LOW_SAMPLE_THRESHOLD": "value",
|
|
109
|
+
"MAX_BOUNCES": "value",
|
|
110
|
+
"MAX_SHARE_LINK_TTL_DAYS": "value",
|
|
85
111
|
"message": "value",
|
|
86
112
|
"messageAttachment": "value",
|
|
113
|
+
"mintToken": "function",
|
|
114
|
+
"nextPeriodBoundary": "function",
|
|
87
115
|
"normalizeQuery": "function",
|
|
88
116
|
"OFFICIAL_PUBLISHER_HANDLE": "value",
|
|
89
117
|
"OPEN_PUBLISH_REQUEST_STATUSES": "value",
|
|
118
|
+
"openExposures": "function",
|
|
90
119
|
"orgAlertDestination": "value",
|
|
91
120
|
"orgAlertRule": "value",
|
|
92
121
|
"orgListingStates": "function",
|
|
@@ -121,23 +150,57 @@
|
|
|
121
150
|
"publicReviews": "value",
|
|
122
151
|
"publisher": "value",
|
|
123
152
|
"PUBLISHER_TIERS": "value",
|
|
153
|
+
"rebuildDay": "function",
|
|
154
|
+
"refreshLatestForPlugin": "function",
|
|
155
|
+
"registerSection": "function",
|
|
156
|
+
"rejectUnreportablePeriod": "function",
|
|
157
|
+
"renderReportHtml": "function",
|
|
158
|
+
"replacePipelineResolution": "function",
|
|
159
|
+
"REPORT_CADENCES": "value",
|
|
160
|
+
"REPORT_FEATURE_SUBSTITUTES": "value",
|
|
161
|
+
"REPORT_PAUSE_REASONS": "value",
|
|
162
|
+
"REPORT_RUN_STATUSES": "value",
|
|
163
|
+
"REPORT_SCOPE_KINDS": "value",
|
|
164
|
+
"REPORT_TEMPLATE_SPECS": "value",
|
|
165
|
+
"REPORT_TEMPLATES": "value",
|
|
166
|
+
"reportDefinition": "value",
|
|
167
|
+
"reportFileName": "function",
|
|
124
168
|
"reportingService": "value",
|
|
125
169
|
"ReportingService": "class",
|
|
170
|
+
"reportRecipient": "value",
|
|
171
|
+
"reportRun": "value",
|
|
172
|
+
"reportShareLink": "value",
|
|
126
173
|
"resolvableListings": "function",
|
|
127
174
|
"resolveListingReference": "function",
|
|
175
|
+
"resolvePeriod": "function",
|
|
176
|
+
"resolvePeriodByLabel": "function",
|
|
128
177
|
"resultRows": "function",
|
|
129
178
|
"REVIEW_REPORT_CATEGORIES": "value",
|
|
130
179
|
"REVIEW_SORTS": "value",
|
|
180
|
+
"rollupBatchDays": "function",
|
|
181
|
+
"rollupSettleHours": "function",
|
|
182
|
+
"runRollupPass": "function",
|
|
131
183
|
"runSoftDeletePurge": "function",
|
|
132
184
|
"runWithTenantContext": "function",
|
|
133
185
|
"satisfiesVersionSpec": "function",
|
|
134
186
|
"schema": "value",
|
|
135
187
|
"scopeOrgIds": "function",
|
|
136
188
|
"searchPublicListings": "function",
|
|
189
|
+
"sectionIds": "function",
|
|
137
190
|
"semverOrderBy": "function",
|
|
138
191
|
"softDeleteRetentionMs": "function",
|
|
192
|
+
"stakeholderReportStore": "value",
|
|
193
|
+
"StakeholderReportStore": "class",
|
|
139
194
|
"tenantContext": "value",
|
|
140
195
|
"testConnection": "function",
|
|
196
|
+
"thresholdsFrom": "function",
|
|
197
|
+
"trendSentence": "function",
|
|
198
|
+
"triageExposure": "function",
|
|
199
|
+
"upsertDeployments": "function",
|
|
200
|
+
"upsertExposures": "function",
|
|
201
|
+
"utcDayStart": "function",
|
|
202
|
+
"VERIFICATION_TTL_MS": "value",
|
|
203
|
+
"versionGap": "function",
|
|
141
204
|
"viewerCacheSegment": "function",
|
|
142
205
|
"withTenantTx": "function",
|
|
143
206
|
"withViewerContext": "function"
|
package/package.json
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"drizzle-orm": "0.45.3",
|
|
28
28
|
"pg": "8.23.0",
|
|
29
|
-
"@pipeline-builder/api-core": "
|
|
29
|
+
"@pipeline-builder/api-core": "5.0.1"
|
|
30
30
|
},
|
|
31
31
|
"keywords": [
|
|
32
32
|
"ci-cd",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"cli"
|
|
67
67
|
],
|
|
68
68
|
"engines": {
|
|
69
|
-
"node": ">= 24.
|
|
69
|
+
"node": ">= 24.21.0"
|
|
70
70
|
},
|
|
71
71
|
"devEngines": {
|
|
72
72
|
"packageManager": {
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"access": "public",
|
|
83
83
|
"registry": "https://registry.npmjs.org/"
|
|
84
84
|
},
|
|
85
|
-
"version": "4.1.
|
|
85
|
+
"version": "4.1.26",
|
|
86
86
|
"bugs": {
|
|
87
87
|
"url": "https://github.com/mwashburn160/pipeline-builder/issues"
|
|
88
88
|
},
|
|
@@ -150,6 +150,7 @@
|
|
|
150
150
|
"src/**/*.ts",
|
|
151
151
|
"!src/**/*.d.ts",
|
|
152
152
|
"!src/testing/**",
|
|
153
|
+
"!src/api/reporting/stakeholder/index.ts",
|
|
153
154
|
"!src/api/reporting/types.ts",
|
|
154
155
|
"!src/core/query-filters.ts",
|
|
155
156
|
"!src/database/index.ts",
|