@uql/core 0.4.83 → 0.4.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -273
- package/entity/decorator/definition.js +1 -1
- package/options.d.ts +3 -4
- package/options.js +12 -18
- package/options.spec.js +8 -31
- package/package.json +1 -1
- package/querier/decorator/transactional.js +2 -2
- package/querier/decorator/transactional.spec.js +4 -6
- package/type/entity.d.ts +3 -3
- package/type/entity.js +1 -1
- package/type/index.d.ts +0 -1
- package/type/index.js +1 -2
- package/type/options.d.ts +0 -7
- package/type/options.js +0 -3
package/README.md
CHANGED
|
@@ -1,38 +1,23 @@
|
|
|
1
1
|
# [uql](https://uql.io) · [](https://github.com/rogerpadilla/uql/blob/main/LICENSE) [](https://github.com/rogerpadilla/uql) [](https://coveralls.io/r/rogerpadilla/uql?branch=main) [](https://badge.fury.io/js/%40uql%2Fcore)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Learn more of uql in the website https://uql.io :high_brightness:
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# Quick Start
|
|
6
6
|
|
|
7
|
-
`uql` is a flexible and efficient `ORM`, with declarative `JSON` syntax and smart type-safety.
|
|
7
|
+
`uql` is a flexible and efficient `ORM`, with declarative `JSON` syntax and really smart type-safety.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-

|
|
9
|
+
The `uql` queries can be safely written in the frontend (browser/mobile) and sent to the backend; or only use `uql` in the backend, or even in a mobile app with an embedded database (like `sqlite`).
|
|
12
10
|
|
|
13
11
|
## <a name="features"></a> Features
|
|
14
12
|
|
|
15
|
-
- `JSON` (serializable) syntax for all the queries.
|
|
16
|
-
- uses the power of `TypeScript` to get
|
|
17
|
-
- the generated queries are performant, safe, and human-readable.
|
|
18
|
-
- `$project`, `$filter`, `$sort`, `$limit` works at multiple levels (including deep relations and their fields).
|
|
19
|
-
- declarative and imperative `transactions`.
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
- supports `Postgres`, `MySQL`, `MariaDB`, `SQLite`, `MongoDB` (beta).
|
|
24
|
-
- plugins for frameworks: `express` (more coming).
|
|
25
|
-
|
|
26
|
-
## Table of Contents
|
|
27
|
-
|
|
28
|
-
1. [Installation](#installation)
|
|
29
|
-
2. [Configuration](#configuration)
|
|
30
|
-
3. [Entities](#entities)
|
|
31
|
-
4. [Declarative Transactions](#declarative-transactions)
|
|
32
|
-
5. [Imperative Transactions](#imperative-transactions)
|
|
33
|
-
6. [Generate REST APIs with Express](#express)
|
|
34
|
-
7. [Consume REST APIs from the Frontend](#client)
|
|
35
|
-
8. [FAQs](#faq)
|
|
13
|
+
- `JSON` (serializable) syntax for all the [queries](https://uql.io/docs/querying-logical-operators).
|
|
14
|
+
- uses the power of `TypeScript` to get smart type-safety [everywhere](https://uql.io/docs/api-repository).
|
|
15
|
+
- the generated queries are [performant](https://uql.io/docs/querying-retrieve-relations), safe, and human-readable.
|
|
16
|
+
- `$project`, `$filter`, `$sort`, `$limit` works at [multiple levels](https://uql.io/docs/querying-retrieve-relations) (including deep relations and their fields).
|
|
17
|
+
- [declarative](https://uql.io/docs/transactions-declarative) and [imperative](https://uql.io/docs/transactions-imperative) `transactions`.
|
|
18
|
+
- [soft-delete](https://uql.io/docs/entities-soft-delete), [virtual fields](https://uql.io/docs/entities-virtual-fields), [repositories](https://uql.io/docs/api-repository), `connection pooling`.
|
|
19
|
+
- transparent support for [inheritance](https://uql.io/docs/entities-advanced) between entities.
|
|
20
|
+
- supports `Postgres`, `MySQL`, `MariaDB`, `SQLite`, `MongoDB`.
|
|
36
21
|
|
|
37
22
|
## <a name="installation"></a> Installation
|
|
38
23
|
|
|
@@ -48,42 +33,42 @@ Given it is just a small library with serializable `JSON` syntax, the queries ca
|
|
|
48
33
|
yarn add @uql/core
|
|
49
34
|
```
|
|
50
35
|
|
|
51
|
-
|
|
36
|
+
2. Install one of the specific packages according to your database:
|
|
52
37
|
|
|
53
|
-
| Database | Package |
|
|
54
|
-
| ------------ | --------------- |
|
|
55
|
-
| `MySQL` | `@uql/mysql` |
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
| `
|
|
38
|
+
| Database | Package |
|
|
39
|
+
| ------------ | --------------- |
|
|
40
|
+
| `MySQL` | `@uql/mysql` |
|
|
41
|
+
| `PostgreSQL` | `@uql/postgres` |
|
|
42
|
+
| `MariaDB` | `@uql/maria` |
|
|
43
|
+
| `MongoDB` | `@uql/mongo` |
|
|
44
|
+
| `SQLite` | `@uql/sqlite` |
|
|
60
45
|
|
|
61
|
-
E.g. for `PostgreSQL`
|
|
46
|
+
E.g. for `PostgreSQL`
|
|
62
47
|
|
|
63
|
-
```sh
|
|
64
|
-
npm install @uql/postgres --save
|
|
65
|
-
```
|
|
48
|
+
```sh
|
|
49
|
+
npm install @uql/postgres --save
|
|
50
|
+
```
|
|
66
51
|
|
|
67
|
-
or with _yarn_
|
|
52
|
+
or with _yarn_
|
|
68
53
|
|
|
69
|
-
```sh
|
|
70
|
-
yarn add @uql/postgres
|
|
71
|
-
```
|
|
54
|
+
```sh
|
|
55
|
+
yarn add @uql/postgres
|
|
56
|
+
```
|
|
72
57
|
|
|
73
|
-
|
|
58
|
+
3. Additionally, your `tsconfig.json` may need the following flags:
|
|
74
59
|
|
|
75
|
-
```json
|
|
76
|
-
"target": "es6", // or a more recent ecmascript version.
|
|
77
|
-
"experimentalDecorators": true,
|
|
78
|
-
"emitDecoratorMetadata": true
|
|
79
|
-
```
|
|
60
|
+
```json
|
|
61
|
+
"target": "es6", // or a more recent ecmascript version.
|
|
62
|
+
"experimentalDecorators": true,
|
|
63
|
+
"emitDecoratorMetadata": true
|
|
64
|
+
```
|
|
80
65
|
|
|
81
66
|
## <a name="configuration"></a> Configuration
|
|
82
67
|
|
|
83
|
-
|
|
68
|
+
A default querier-pool can be set in any of the bootstrap files of your app (e.g. in the `server.ts`).
|
|
84
69
|
|
|
85
70
|
```ts
|
|
86
|
-
import {
|
|
71
|
+
import { setDefaultQuerierPool } from '@uql/core';
|
|
87
72
|
import { PgQuerierPool } from '@uql/postgres';
|
|
88
73
|
|
|
89
74
|
const querierPool = new PgQuerierPool(
|
|
@@ -93,39 +78,43 @@ const querierPool = new PgQuerierPool(
|
|
|
93
78
|
password: 'thePassword',
|
|
94
79
|
database: 'theDatabase',
|
|
95
80
|
},
|
|
81
|
+
// a logger can optionally be passed so the SQL queries are logged
|
|
96
82
|
console.log
|
|
97
83
|
);
|
|
98
84
|
|
|
99
|
-
|
|
85
|
+
setDefaultQuerierPool(querierPool);
|
|
100
86
|
```
|
|
101
87
|
|
|
102
|
-
## <a name="entities"></a> Entities
|
|
88
|
+
## <a name="definition-of-entities"></a> Definition of Entities
|
|
103
89
|
|
|
104
90
|
Take any dump class (aka DTO) and annotate it with the decorators from `'@uql/core/entity'`.
|
|
105
91
|
|
|
106
92
|
```ts
|
|
93
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
107
94
|
import { Field, ManyToOne, Id, OneToMany, Entity, OneToOne, ManyToMany } from '@uql/core/entity';
|
|
108
95
|
|
|
109
96
|
@Entity()
|
|
110
97
|
export class Profile {
|
|
111
98
|
/**
|
|
112
|
-
* primary
|
|
99
|
+
* primary-key.
|
|
100
|
+
* the `onInsert` callback can be used to specify a custom mechanism for auto-generating
|
|
101
|
+
* the default value of a field when inserting a new record.
|
|
113
102
|
*/
|
|
114
|
-
@Id()
|
|
115
|
-
id?:
|
|
103
|
+
@Id({ onInsert: uuidv4 })
|
|
104
|
+
id?: string;
|
|
116
105
|
@Field()
|
|
117
106
|
picture?: string;
|
|
118
107
|
/**
|
|
119
108
|
* foreign-keys are really simple to specify.
|
|
120
109
|
*/
|
|
121
110
|
@Field({ reference: () => User })
|
|
122
|
-
creatorId?:
|
|
111
|
+
creatorId?: string;
|
|
123
112
|
}
|
|
124
113
|
|
|
125
114
|
@Entity()
|
|
126
115
|
export class User {
|
|
127
|
-
@Id()
|
|
128
|
-
id?:
|
|
116
|
+
@Id({ onInsert: uuidv4 })
|
|
117
|
+
id?: string;
|
|
129
118
|
@Field()
|
|
130
119
|
name?: string;
|
|
131
120
|
@Field()
|
|
@@ -141,8 +130,8 @@ export class User {
|
|
|
141
130
|
|
|
142
131
|
@Entity()
|
|
143
132
|
export class MeasureUnitCategory {
|
|
144
|
-
@Id()
|
|
145
|
-
id?:
|
|
133
|
+
@Id({ onInsert: uuidv4 })
|
|
134
|
+
id?: string;
|
|
146
135
|
@Field()
|
|
147
136
|
name?: string;
|
|
148
137
|
@OneToMany({ entity: () => MeasureUnit, mappedBy: (measureUnit) => measureUnit.category })
|
|
@@ -151,232 +140,35 @@ export class MeasureUnitCategory {
|
|
|
151
140
|
|
|
152
141
|
@Entity()
|
|
153
142
|
export class MeasureUnit {
|
|
154
|
-
@Id()
|
|
155
|
-
id?:
|
|
143
|
+
@Id({ onInsert: uuidv4 })
|
|
144
|
+
id?: string;
|
|
156
145
|
@Field()
|
|
157
146
|
name?: string;
|
|
158
147
|
@Field({ reference: () => MeasureUnitCategory })
|
|
159
|
-
categoryId?:
|
|
148
|
+
categoryId?: string;
|
|
160
149
|
@ManyToOne({ cascade: 'persist' })
|
|
161
150
|
category?: MeasureUnitCategory;
|
|
162
151
|
}
|
|
163
|
-
|
|
164
|
-
@Entity()
|
|
165
|
-
export class Item {
|
|
166
|
-
@Id()
|
|
167
|
-
id?: number;
|
|
168
|
-
@Field()
|
|
169
|
-
name?: string;
|
|
170
|
-
@Field()
|
|
171
|
-
description?: string;
|
|
172
|
-
@Field()
|
|
173
|
-
code?: string;
|
|
174
|
-
@ManyToMany({ entity: () => Tag, through: () => ItemTag, cascade: true })
|
|
175
|
-
tags?: Tag[];
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
@Entity()
|
|
179
|
-
export class Tag {
|
|
180
|
-
@Id()
|
|
181
|
-
id?: number;
|
|
182
|
-
@Field()
|
|
183
|
-
name?: string;
|
|
184
|
-
@ManyToMany({ entity: () => Item, mappedBy: (item) => item.tags })
|
|
185
|
-
items?: Item[];
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
@Entity()
|
|
189
|
-
export class ItemTag {
|
|
190
|
-
@Id()
|
|
191
|
-
id?: number;
|
|
192
|
-
@Field({ reference: () => Item })
|
|
193
|
-
itemId?: number;
|
|
194
|
-
@Field({ reference: () => Tag })
|
|
195
|
-
tagId?: number;
|
|
196
|
-
}
|
|
197
152
|
```
|
|
198
153
|
|
|
199
|
-
## <a name="
|
|
200
|
-
|
|
201
|
-
Both, _declarative_ and _imperative_ transactions are supported, with the former you can just describe the scope of your transactions, with the later you have more flexibility (hence more responsibility).
|
|
202
|
-
|
|
203
|
-
To use Declarative Transactions (using the `@Transactional` decorator):
|
|
204
|
-
|
|
205
|
-
1. take any service class, annotate the wanted function with the `@Transactional` decorator.
|
|
206
|
-
2. inject the querier instance by decorating one of the function's arguments with `@InjectQuerier`.
|
|
154
|
+
## <a name="creation-of-queries"></a> Creation of Queries
|
|
207
155
|
|
|
208
156
|
```ts
|
|
209
|
-
import {
|
|
210
|
-
import {
|
|
211
|
-
|
|
212
|
-
class ConfirmationService {
|
|
213
|
-
@Transactional()
|
|
214
|
-
async confirm(confirmation: Confirmation, @InjectQuerier() querier?: Querier): Promise<void> {
|
|
215
|
-
if (confirmation.type === 'register') {
|
|
216
|
-
await querier.insertOne(User, {
|
|
217
|
-
name: confirmation.name,
|
|
218
|
-
email: confirmation.email,
|
|
219
|
-
password: confirmation.password,
|
|
220
|
-
});
|
|
221
|
-
} else {
|
|
222
|
-
await querier.updateOneById(User, confirmation.creatorId, {
|
|
223
|
-
password: confirmation.password,
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
await querier.updateOneById(Confirmation, confirmation.id, { status: 1 });
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
export const confirmationService = new ConfirmationService();
|
|
231
|
-
|
|
232
|
-
/**
|
|
233
|
-
* then you could just import the constant `confirmationService` in another file,
|
|
234
|
-
* and when you call `confirmAction` function, all the operations there
|
|
235
|
-
* will (automatically) run inside a single transaction.
|
|
236
|
-
*/
|
|
237
|
-
await confirmationService.confirmAction(data);
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
## <a name="imperative-transactions"></a> Imperative Transactions
|
|
157
|
+
import { getQuerier, getRepository } from '@uql/core';
|
|
158
|
+
import { User } from './entity';
|
|
241
159
|
|
|
242
|
-
|
|
160
|
+
const querier = await getQuerier();
|
|
243
161
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
162
|
+
const users = await querier.findMany(User, {
|
|
163
|
+
$project: { id: true, email: true, profile: ['id', 'picture'] },
|
|
164
|
+
$filter: { email: { $iendsWith: '@google.com' } },
|
|
165
|
+
$sort: { createdAt: -1 },
|
|
166
|
+
$limit: 100,
|
|
167
|
+
});
|
|
249
168
|
|
|
250
|
-
|
|
251
|
-
import { getQuerier } from '@uql/core';
|
|
252
|
-
|
|
253
|
-
async function confirm(confirmation: Confirmation): Promise<void> {
|
|
254
|
-
const querier = await getQuerier();
|
|
255
|
-
await querier.transaction(async () => {
|
|
256
|
-
if (confirmation.action === 'signup') {
|
|
257
|
-
await querier.insertOne(User, {
|
|
258
|
-
name: confirmation.name,
|
|
259
|
-
email: confirmation.email,
|
|
260
|
-
password: confirmation.password,
|
|
261
|
-
});
|
|
262
|
-
} else {
|
|
263
|
-
await querier.updateOneById(User, confirmation.creatorId, {
|
|
264
|
-
password: confirmation.password,
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
await querier.updateOneById(Confirmation, confirmation.id, { status: 1 });
|
|
268
|
-
});
|
|
269
|
-
}
|
|
169
|
+
await querier.release();
|
|
270
170
|
```
|
|
271
171
|
|
|
272
172
|
---
|
|
273
173
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
```ts
|
|
277
|
-
async function confirm(confirmation: Confirmation): Promise<void> {
|
|
278
|
-
const querier = await getQuerier();
|
|
279
|
-
try {
|
|
280
|
-
await querier.beginTransaction();
|
|
281
|
-
if (confirmation.action === 'signup') {
|
|
282
|
-
await querier.insertOne(User, {
|
|
283
|
-
name: confirmation.name,
|
|
284
|
-
email: confirmation.email,
|
|
285
|
-
password: confirmation.password,
|
|
286
|
-
});
|
|
287
|
-
} else {
|
|
288
|
-
await querier.updateOneById(User, confirmation.creatorId, {
|
|
289
|
-
password: confirmation.password,
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
await querier.updateOneById(Confirmation, confirmation.id, { status: 1 });
|
|
293
|
-
await querier.commitTransaction();
|
|
294
|
-
} catch (error) {
|
|
295
|
-
await querier.rollbackTransaction();
|
|
296
|
-
throw error;
|
|
297
|
-
} finally {
|
|
298
|
-
await querier.release();
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
## <a name="express"></a> Autogenerate REST APIs with Express
|
|
304
|
-
|
|
305
|
-
A `express` plugin is provided to automatically generate REST APIs for your entities.
|
|
306
|
-
|
|
307
|
-
1. Install express plugin in your server project:
|
|
308
|
-
|
|
309
|
-
```sh
|
|
310
|
-
npm install @uql/express --save
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
or with _yarn_
|
|
314
|
-
|
|
315
|
-
```sh
|
|
316
|
-
yarn add @uql/express
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
1. Initialize the `express` middleware in your server code to generate REST APIs for your entities
|
|
320
|
-
|
|
321
|
-
```ts
|
|
322
|
-
import * as express from 'express';
|
|
323
|
-
import { augmentFilter } from '@uql/core/util';
|
|
324
|
-
import { Query, QueryFilter, EntityMeta } from '@uql/core/type';
|
|
325
|
-
import { querierMiddleware } from '@uql/express';
|
|
326
|
-
|
|
327
|
-
const app = express();
|
|
328
|
-
|
|
329
|
-
app
|
|
330
|
-
// ...
|
|
331
|
-
.use(
|
|
332
|
-
'/api',
|
|
333
|
-
|
|
334
|
-
// this will generate REST APIs for the entities.
|
|
335
|
-
querierMiddleware({
|
|
336
|
-
// all entities will be automatically exposed unless
|
|
337
|
-
// 'include' or 'exclude' options are provided.
|
|
338
|
-
exclude: [Confirmation],
|
|
339
|
-
|
|
340
|
-
// `augmentQuery` callback allows to extend all then queries that are requested to the API,
|
|
341
|
-
// so it is a good place to add additional filters to the queries,
|
|
342
|
-
// e.g. for multi tenant apps.
|
|
343
|
-
augmentQuery: <E>(meta: EntityMeta<E>, qm: Query<E>, req: express.Request): Query<E> => {
|
|
344
|
-
// ensure the user can only see the data that belongs to his company.
|
|
345
|
-
qm.$filter = augmentFilter(meta, qm.$filter, { companyId: req.identity.companyId } as QueryFilter<E>);
|
|
346
|
-
return qm;
|
|
347
|
-
},
|
|
348
|
-
})
|
|
349
|
-
);
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
## <a name="client"></a> Easily call the generated REST APIs from the Client
|
|
353
|
-
|
|
354
|
-
A client plugin (for browser/mobile) is provided to easily consume the REST APIs from the frontend.
|
|
355
|
-
|
|
356
|
-
1. Install client plugin in your frontend project:
|
|
357
|
-
|
|
358
|
-
```sh
|
|
359
|
-
npm install @uql/client --save
|
|
360
|
-
```
|
|
361
|
-
|
|
362
|
-
or with _yarn_
|
|
363
|
-
|
|
364
|
-
```sh
|
|
365
|
-
yarn add @uql/client
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
1. Use the client to call the `uql` CRUD API
|
|
369
|
-
|
|
370
|
-
```ts
|
|
371
|
-
import { getRepository } from '@uql/client';
|
|
372
|
-
|
|
373
|
-
// 'User' is an entity class.
|
|
374
|
-
const userRepository = getRepository(User);
|
|
375
|
-
|
|
376
|
-
const users = await userRepository.findMany({
|
|
377
|
-
$project: { email: true, profile: ['picture'] },
|
|
378
|
-
$filter: { email: { $endsWith: '@domain.com' } },
|
|
379
|
-
$sort: { createdAt: -1 },
|
|
380
|
-
$limit: 100,
|
|
381
|
-
});
|
|
382
|
-
```
|
|
174
|
+
See more in https://uql.io :high_brightness:
|
|
@@ -220,4 +220,4 @@ function isValidEntityType(type) {
|
|
|
220
220
|
type !== Object);
|
|
221
221
|
}
|
|
222
222
|
exports.isValidEntityType = isValidEntityType;
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRpdHkvZGVjb3JhdG9yL2RlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNEJBQTBCO0FBQzFCLHlDQUEwRTtBQWUxRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUM7QUFDMUIsTUFBTSxPQUFPLEdBQUcsNEJBQTRCLENBQUM7QUFDN0MsTUFBTSxLQUFLLEdBQW9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7QUFFeEIsU0FBZ0IsV0FBVyxDQUFJLE1BQWUsRUFBRSxHQUFXLEVBQUUsT0FBcUIsRUFBRTtJQUNsRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDZCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0tBQzFCO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUM7SUFDdEUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBUkQsa0NBUUM7QUFFRCxTQUFnQixRQUFRLENBQUksTUFBZSxFQUFFLEdBQVcsRUFBRSxJQUFrQjtJQUMxRSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFD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dGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHsgaGFzS2V5cywgbG93ZXJGaXJzdCwgZ2V0S2V5cywgdXBwZXJGaXJzdCB9IGZyb20gJ0B1cWwvY29yZS91dGlsJztcbmltcG9ydCB7XG4gIFJlbGF0aW9uT3B0aW9ucyxcbiAgRmllbGRPcHRpb25zLFxuICBFbnRpdHlPcHRpb25zLFxuICBFbnRpdHlNZXRhLFxuICBUeXBlLFxuICBSZWxhdGlvbktleU1hcCxcbiAgUmVsYXRpb25LZXksXG4gIFJlbGF0aW9uQ2FyZGluYWxpdHksXG4gIEtleSxcbiAgRmllbGRLZXksXG4gIElkS2V5LFxufSBmcm9tICdAdXFsL2NvcmUvdHlwZSc7XG5cbmNvbnN0IGhvbGRlciA9IGdsb2JhbFRoaXM7XG5jb25zdCBtZXRhS2V5ID0gJ0B1cWwvY29yZS9lbnRpdHkvZGVjb3JhdG9yJztcbmNvbnN0IG1ldGFzOiBNYXA8VHlwZTxhbnk+LCBFbnRpdHlNZXRhPGFueT4+ID0gaG9sZGVyW21ldGFLZXldID8/IG5ldyBNYXAoKTtcbmhvbGRlclttZXRhS2V5XSA9IG1ldGFzO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lRmllbGQ8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZywgb3B0czogRmllbGRPcHRpb25zID0ge30pOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcbiAgaWYgKCFvcHRzLnR5cGUpIHtcbiAgICBjb25zdCB0eXBlID0gaW5mZXJUeXBlKGVudGl0eSwga2V5KTtcbiAgICBvcHRzID0geyAuLi5vcHRzLCB0eXBlIH07XG4gIH1cbiAgbWV0YS5maWVsZHNba2V5XSA9IHsgLi4ubWV0YS5maWVsZHNba2V5XSwgLi4ueyBuYW1lOiBrZXksIC4uLm9wdHMgfSB9O1xuICByZXR1cm4gbWV0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUlkPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcsIG9wdHM6IEZpZWxkT3B0aW9ucyk6IEVudGl0eU1ldGE8RT4ge1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBjb25zdCBpZCA9IGdldElkS2V5KG1ldGEpO1xuICBpZiAoaWQpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIGEgc2luZ2xlIGZpZWxkIGRlY29yYXRlZCB3aXRoIEBJZGApO1xuICB9XG4gIHJldHVybiBkZWZpbmVGaWVsZChlbnRpdHksIGtleSwgeyAuLi5vcHRzLCBpc0lkOiB0cnVlIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lUmVsYXRpb248RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZywgb3B0czogUmVsYXRpb25PcHRpb25zPEU+KTogRW50aXR5TWV0YTxFPiB7XG4gIGlmICghb3B0cy5lbnRpdHkpIHtcbiAgICBjb25zdCBpbmZlcnJlZFR5cGUgPSBpbmZlckVudGl0eVR5cGUoZW50aXR5LCBrZXkpO1xuICAgIG9wdHMuZW50aXR5ID0gKCkgPT4gaW5mZXJyZWRUeXBlO1xuICB9XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG4gIG1ldGEucmVsYXRpb25zW2tleV0gPSB7IC4uLm1ldGEucmVsYXRpb25zW2tleV0sIC4uLm9wdHMgfTtcbiAgcmV0dXJuIG1ldGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVFbnRpdHk8RT4oZW50aXR5OiBUeXBlPEU+LCBvcHRzOiBFbnRpdHlPcHRpb25zID0ge30pOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcblxuICBpZiAoIWhhc0tleXMobWV0YS5maWVsZHMpKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBmaWVsZHNgKTtcbiAgfVxuXG4gIGNvbnN0IG9uRGVsZXRlS2V5cyA9IGdldEtleXMobWV0YS5maWVsZHMpLmZpbHRlcigoa2V5KSA9PiBtZXRhLmZpZWxkc1trZXldLm9uRGVsZXRlKSBhcyBGaWVsZEtleTxFPltdO1xuXG4gIGlmIChvbkRlbGV0ZUtleXMubGVuZ3RoID4gMSkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgb25lIGZpZWxkIHdpdGggJ29uRGVsZXRlJyBhcyBtYXhpbXVtYCk7XG4gIH1cblxuICBpZiAob3B0cy5zb2Z0RGVsZXRlKSB7XG4gICAgaWYgKCFvbkRlbGV0ZUtleXMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIG9uZSBmaWVsZCB3aXRoICdvbkRlbGV0ZScgdG8gZW5hYmxlICdzb2Z0RGVsZXRlJ2ApO1xuICAgIH1cbiAgICBtZXRhLnNvZnREZWxldGUgPSBvbkRlbGV0ZUtleXNbMF07XG4gIH1cblxuICBtZXRhLm5hbWUgPSBvcHRzLm5hbWUgPz8gZW50aXR5Lm5hbWU7XG4gIGxldCBwcm90bzogRnVuY3Rpb25Db25zdHJ1Y3RvciA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihlbnRpdHkucHJvdG90eXBlKTtcblxuICB3aGlsZSAocHJvdG8uY29uc3RydWN0b3IgIT09IE9iamVjdCkge1xuICAgIGNvbnN0IHBhcmVudE1ldGEgPSBlbnN1cmVNZXRhKHByb3RvLmNvbnN0cnVjdG9yIGFzIFR5cGU8RT4pO1xuICAgIGV4dGVuZE1ldGEobWV0YSwgcGFyZW50TWV0YSk7XG4gICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pO1xuICB9XG5cbiAgY29uc3QgaWQgPSBnZXRJZEtleShtZXRhKTtcbiAgaWYgKCFpZCkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgb25lIGZpZWxkIGRlY29yYXRlZCB3aXRoIEBJZGApO1xuICB9XG4gIG1ldGEuaWQgPSBpZDtcblxuICByZXR1cm4gbWV0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0aWVzKCk6IFR5cGU8YW55PltdIHtcbiAgcmV0dXJuIFsuLi5tZXRhcy5lbnRyaWVzKCldLnJlZHVjZSgoYWNjLCBba2V5LCB2YWxdKSA9PiB7XG4gICAgaWYgKHZhbC5pZCkge1xuICAgICAgYWNjLnB1c2goa2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xufVxuXG5mdW5jdGlvbiBlbnN1cmVNZXRhPEU+KGVudGl0eTogVHlwZTxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBsZXQgbWV0YSA9IG1ldGFzLmdldChlbnRpdHkpO1xuICBpZiAobWV0YSkge1xuICAgIHJldHVybiBtZXRhO1xuICB9XG4gIG1ldGEgPSB7IGVudGl0eSwgZmllbGRzOiB7fSwgcmVsYXRpb25zOiB7fSB9O1xuICBtZXRhcy5zZXQoZW50aXR5LCBtZXRhKTtcbiAgcmV0dXJuIG1ldGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXRhPEU+KGVudGl0eTogVHlwZTxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBjb25zdCBtZXRhID0gbWV0YXMuZ2V0KGVudGl0eSk7XG4gIGlmICghbWV0YSkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBpcyBub3QgYW4gZW50aXR5YCk7XG4gIH1cbiAgaWYgKG1ldGEucHJvY2Vzc2VkKSB7XG4gICAgcmV0dXJuIG1ldGE7XG4gIH1cbiAgbWV0YS5wcm9jZXNzZWQgPSB0cnVlO1xuICByZXR1cm4gZmlsbFJlbGF0aW9ucyhtZXRhKTtcbn1cblxuZnVuY3Rpb24gZmlsbFJlbGF0aW9uczxFPihtZXRhOiBFbnRpdHlNZXRhPEU+KTogRW50aXR5TWV0YTxFPiB7XG4gIGZvciAoY29uc3QgcmVsS2V5IGluIG1ldGEucmVsYXRpb25zKSB7XG4gICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbEtleSBhcyBSZWxhdGlvbktleTxFPl07XG5cbiAgICBpZiAocmVsT3B0cy5yZWZlcmVuY2VzKSB7XG4gICAgICAvLyByZWZlcmVuY2VzIHdlcmUgbWFudWFsbHkgc3BlY2lmaWVkXG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAocmVsT3B0cy5tYXBwZWRCeSkge1xuICAgICAgZmlsbEludmVyc2VTaWRlUmVsYXRpb25zKHJlbE9wdHMpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICBjb25zdCByZWxNZXRhID0gZW5zdXJlTWV0YShyZWxFbnRpdHkpO1xuXG4gICAgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICdtbScpIHtcbiAgICAgIGNvbnN0IGlkTmFtZSA9IG1ldGEuZmllbGRzW21ldGEuaWRdLm5hbWU7XG4gICAgICBjb25zdCByZWxJZE5hbWUgPSByZWxNZXRhLmZpZWxkc1tyZWxNZXRhLmlkXS5uYW1lO1xuICAgICAgY29uc3Qgc291cmNlID0gbG93ZXJGaXJzdChtZXRhLm5hbWUpICsgdXBwZXJGaXJzdChpZE5hbWUpO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gbG93ZXJGaXJzdChyZWxNZXRhLm5hbWUpICsgdXBwZXJGaXJzdChyZWxJZE5hbWUpO1xuICAgICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gW1xuICAgICAgICB7IGxvY2FsOiBzb3VyY2UsIGZvcmVpZ246IG1ldGEuaWQgfSxcbiAgICAgICAgeyBsb2NhbDogdGFyZ2V0LCBmb3JlaWduOiByZWxNZXRhLmlkIH0sXG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWxPcHRzLnJlZmVyZW5jZXMgPSBbeyBsb2NhbDogYCR7cmVsS2V5fUlkYCwgZm9yZWlnbjogcmVsTWV0YS5pZCB9XTtcbiAgICB9XG5cbiAgICBpZiAocmVsT3B0cy50aHJvdWdoKSB7XG4gICAgICBmaWxsVGhyb3VnaFJlbGF0aW9ucyhyZWxPcHRzLnRocm91Z2goKSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGE7XG59XG5cbmZ1bmN0aW9uIGZpbGxJbnZlcnNlU2lkZVJlbGF0aW9uczxFPihyZWxPcHRzOiBSZWxhdGlvbk9wdGlvbnM8RT4pOiB2b2lkIHtcbiAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgY29uc3QgcmVsTWV0YSA9IGdldE1ldGEocmVsRW50aXR5KTtcbiAgcmVsT3B0cy5tYXBwZWRCeSA9IGdldE1hcHBlZEJ5UmVsYXRpb25LZXkocmVsT3B0cyk7XG5cbiAgaWYgKHJlbE1ldGEuZmllbGRzW3JlbE9wdHMubWFwcGVkQnkgYXMgRmllbGRLZXk8RT5dKSB7XG4gICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gW3sgbG9jYWw6IHJlbE1ldGEuaWQsIGZvcmVpZ246IHJlbE9wdHMubWFwcGVkQnkgfV07XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWFwcGVkQnlSZWxhdGlvbiA9IHJlbE1ldGEucmVsYXRpb25zW3JlbE9wdHMubWFwcGVkQnkgYXMgUmVsYXRpb25LZXk8RT5dO1xuXG4gIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbTEnIHx8IHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICdtbScpIHtcbiAgICByZWxPcHRzLnJlZmVyZW5jZXMgPSBtYXBwZWRCeVJlbGF0aW9uLnJlZmVyZW5jZXMuc2xpY2UoKS5yZXZlcnNlKCk7XG4gICAgcmVsT3B0cy50aHJvdWdoID0gbWFwcGVkQnlSZWxhdGlvbi50aHJvdWdoO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlbE9wdHMucmVmZXJlbmNlcyA9IG1hcHBlZEJ5UmVsYXRpb24ucmVmZXJlbmNlcy5tYXAoKHsgbG9jYWwsIGZvcmVpZ24gfSkgPT4gKHtcbiAgICBsb2NhbDogZm9yZWlnbixcbiAgICBmb3JlaWduOiBsb2NhbCxcbiAgfSkpO1xufVxuXG5mdW5jdGlvbiBmaWxsVGhyb3VnaFJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4pOiB2b2lkIHtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcbiAgbWV0YS5yZWxhdGlvbnMgPSBnZXRLZXlzKG1ldGEuZmllbGRzKS5yZWR1Y2UoKHJlbGF0aW9ucywga2V5KSA9PiB7XG4gICAgY29uc3QgeyByZWZlcmVuY2UgfSA9IG1ldGEuZmllbGRzW2tleSBhcyBGaWVsZEtleTxFPl07XG4gICAgaWYgKHJlZmVyZW5jZSkge1xuICAgICAgY29uc3QgcmVsRW50aXR5ID0gcmVmZXJlbmNlKCk7XG4gICAgICBjb25zdCByZWxNZXRhID0gZW5zdXJlTWV0YShyZWxFbnRpdHkpO1xuICAgICAgY29uc3QgcmVsS2V5ID0ga2V5LnNsaWNlKDAsIC1yZWxNZXRhLmlkLmxlbmd0aCk7XG4gICAgICBjb25zdCByZWxPcHRzOiBSZWxhdGlvbk9wdGlvbnMgPSB7XG4gICAgICAgIGVudGl0eTogcmVmZXJlbmNlLFxuICAgICAgICBjYXJkaW5hbGl0eTogJ20xJyxcbiAgICAgICAgcmVmZXJlbmNlczogW3sgbG9jYWw6IGtleSwgZm9yZWlnbjogcmVsTWV0YS5pZCB9XSxcbiAgICAgIH07XG4gICAgICByZWxhdGlvbnNbcmVsS2V5XSA9IHJlbE9wdHM7XG4gICAgfVxuICAgIHJldHVybiByZWxhdGlvbnM7XG4gIH0sIHt9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFwcGVkQnlSZWxhdGlvbktleTxFPihyZWxPcHRzOiBSZWxhdGlvbk9wdGlvbnM8RT4pOiBLZXk8RT4ge1xuICBpZiAodHlwZW9mIHJlbE9wdHMubWFwcGVkQnkgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgIGNvbnN0IHJlbE1ldGEgPSBlbnN1cmVNZXRhKHJlbEVudGl0eSk7XG4gICAgY29uc3Qga2V5TWFwID0gZ2V0UmVsYXRpb25LZXlNYXAocmVsTWV0YSk7XG4gICAgcmV0dXJuIHJlbE9wdHMubWFwcGVkQnkoa2V5TWFwKTtcbiAgfVxuICByZXR1cm4gcmVsT3B0cy5tYXBwZWRCeTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVsYXRpb25LZXlNYXA8RT4obWV0YTogRW50aXR5TWV0YTxFPik6IFJlbGF0aW9uS2V5TWFwPEU+IHtcbiAgcmV0dXJuIGdldEtleXMobWV0YS5maWVsZHMpXG4gICAgLmNvbmNhdChnZXRLZXlzKG1ldGEucmVsYXRpb25zKSlcbiAgICAucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgYWNjW2tleV0gPSBrZXk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFJlbGF0aW9uS2V5TWFwPEU+KTtcbn1cblxuZnVuY3Rpb24gZ2V0SWRLZXk8RT4obWV0YTogRW50aXR5TWV0YTxFPik6IElkS2V5PEU+IHtcbiAgY29uc3QgaWQgPSBnZXRLZXlzKG1ldGEuZmllbGRzKS5maW5kKChrZXkpID0+IG1ldGEuZmllbGRzW2tleV0/LmlzSWQpO1xuICByZXR1cm4gaWQgYXMgSWRLZXk8RT47XG59XG5cbmZ1bmN0aW9uIGV4dGVuZE1ldGE8RT4odGFyZ2V0OiBFbnRpdHlNZXRhPEU+LCBzb3VyY2U6IEVudGl0eU1ldGE8RT4pOiB2b2lkIHtcbiAgY29uc3Qgc291cmNlRmllbGRzID0geyAuLi5zb3VyY2UuZmllbGRzIH07XG4gIGNvbnN0IHRhcmdldElkID0gZ2V0SWRLZXkodGFyZ2V0KTtcbiAgaWYgKHRhcmdldElkKSB7XG4gICAgY29uc3Qgc291cmNlSWQgPSBnZXRJZEtleShzb3VyY2UpO1xuICAgIGlmIChzb3VyY2VJZCkge1xuICAgICAgZGVsZXRlIHNvdXJjZUZpZWxkc1tzb3VyY2VJZF07XG4gICAgfVxuICB9XG4gIHRhcmdldC5maWVsZHMgPSB7IC4uLnNvdXJjZUZpZWxkcywgLi4udGFyZ2V0LmZpZWxkcyB9O1xuICB0YXJnZXQucmVsYXRpb25zID0geyAuLi5zb3VyY2UucmVsYXRpb25zLCAuLi50YXJnZXQucmVsYXRpb25zIH07XG59XG5cbmZ1bmN0aW9uIGluZmVyVHlwZTxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ2Rlc2lnbjp0eXBlJywgZW50aXR5LnByb3RvdHlwZSwga2V5KTtcbn1cblxuZnVuY3Rpb24gaW5mZXJFbnRpdHlUeXBlPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcpOiBUeXBlPGFueT4ge1xuICBjb25zdCBpbmZlcnJlZFR5cGUgPSBpbmZlclR5cGUoZW50aXR5LCBrZXkpO1xuICBjb25zdCBpc1ZhbGlkVHlwZSA9IGlzVmFsaWRFbnRpdHlUeXBlKGluZmVycmVkVHlwZSk7XG4gIGlmICghaXNWYWxpZFR5cGUpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfS4ke2tleX0nIHR5cGUgd2FzIGF1dG8taW5mZXJyZWQgd2l0aCBpbnZhbGlkIHR5cGUgJyR7aW5mZXJyZWRUeXBlPy5uYW1lfSdgKTtcbiAgfVxuICByZXR1cm4gaW5mZXJyZWRUeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEVudGl0eVR5cGUodHlwZTogYW55KTogdHlwZSBpcyBUeXBlPGFueT4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZSAhPT0gQm9vbGVhbiAmJlxuICAgIHR5cGUgIT09IFN0cmluZyAmJlxuICAgIHR5cGUgIT09IE51bWJlciAmJlxuICAgIHR5cGUgIT09IEJpZ0ludCAmJlxuICAgIHR5cGUgIT09IERhdGUgJiZcbiAgICB0eXBlICE9PSBTeW1ib2wgJiZcbiAgICB0eXBlICE9PSBPYmplY3RcbiAgKTtcbn1cbiJdfQ==
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRpdHkvZGVjb3JhdG9yL2RlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNEJBQTBCO0FBQzFCLHlDQUEwRTtBQUcxRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUM7QUFDMUIsTUFBTSxPQUFPLEdBQUcsNEJBQTRCLENBQUM7QUFDN0MsTUFBTSxLQUFLLEdBQW9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzVFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7QUFFeEIsU0FBZ0IsV0FBVyxDQUFJLE1BQWUsRUFBRSxHQUFXLEVBQUUsT0FBcUIsRUFBRTtJQUNsRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDZCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0tBQzFCO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUM7SUFDdEUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBUkQsa0NBUUM7QUFFRCxTQUFnQixRQUFRLENBQUksTUFBZSxFQUFFLEdBQVcsRUFBRSxJQUFrQjtJQUMxRSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFD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dGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHsgaGFzS2V5cywgbG93ZXJGaXJzdCwgZ2V0S2V5cywgdXBwZXJGaXJzdCB9IGZyb20gJ0B1cWwvY29yZS91dGlsJztcbmltcG9ydCB7IFJlbGF0aW9uT3B0aW9ucywgRmllbGRPcHRpb25zLCBFbnRpdHlPcHRpb25zLCBFbnRpdHlNZXRhLCBUeXBlLCBSZWxhdGlvbktleU1hcCwgUmVsYXRpb25LZXksIEtleSwgRmllbGRLZXksIElkS2V5IH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuXG5jb25zdCBob2xkZXIgPSBnbG9iYWxUaGlzO1xuY29uc3QgbWV0YUtleSA9ICdAdXFsL2NvcmUvZW50aXR5L2RlY29yYXRvcic7XG5jb25zdCBtZXRhczogTWFwPFR5cGU8YW55PiwgRW50aXR5TWV0YTxhbnk+PiA9IGhvbGRlclttZXRhS2V5XSA/PyBuZXcgTWFwKCk7XG5ob2xkZXJbbWV0YUtleV0gPSBtZXRhcztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUZpZWxkPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcsIG9wdHM6IEZpZWxkT3B0aW9ucyA9IHt9KTogRW50aXR5TWV0YTxFPiB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG4gIGlmICghb3B0cy50eXBlKSB7XG4gICAgY29uc3QgdHlwZSA9IGluZmVyVHlwZShlbnRpdHksIGtleSk7XG4gICAgb3B0cyA9IHsgLi4ub3B0cywgdHlwZSB9O1xuICB9XG4gIG1ldGEuZmllbGRzW2tleV0gPSB7IC4uLm1ldGEuZmllbGRzW2tleV0sIC4uLnsgbmFtZToga2V5LCAuLi5vcHRzIH0gfTtcbiAgcmV0dXJuIG1ldGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nLCBvcHRzOiBGaWVsZE9wdGlvbnMpOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcbiAgY29uc3QgaWQgPSBnZXRJZEtleShtZXRhKTtcbiAgaWYgKGlkKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBhIHNpbmdsZSBmaWVsZCBkZWNvcmF0ZWQgd2l0aCBASWRgKTtcbiAgfVxuICByZXR1cm4gZGVmaW5lRmllbGQoZW50aXR5LCBrZXksIHsgLi4ub3B0cywgaXNJZDogdHJ1ZSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVJlbGF0aW9uPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcsIG9wdHM6IFJlbGF0aW9uT3B0aW9uczxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBpZiAoIW9wdHMuZW50aXR5KSB7XG4gICAgY29uc3QgaW5mZXJyZWRUeXBlID0gaW5mZXJFbnRpdHlUeXBlKGVudGl0eSwga2V5KTtcbiAgICBvcHRzLmVudGl0eSA9ICgpID0+IGluZmVycmVkVHlwZTtcbiAgfVxuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBtZXRhLnJlbGF0aW9uc1trZXldID0geyAuLi5tZXRhLnJlbGF0aW9uc1trZXldLCAuLi5vcHRzIH07XG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lRW50aXR5PEU+KGVudGl0eTogVHlwZTxFPiwgb3B0czogRW50aXR5T3B0aW9ucyA9IHt9KTogRW50aXR5TWV0YTxFPiB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG5cbiAgaWYgKCFoYXNLZXlzKG1ldGEuZmllbGRzKSkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgZmllbGRzYCk7XG4gIH1cblxuICBjb25zdCBvbkRlbGV0ZUtleXMgPSBnZXRLZXlzKG1ldGEuZmllbGRzKS5maWx0ZXIoKGtleSkgPT4gbWV0YS5maWVsZHNba2V5XS5vbkRlbGV0ZSkgYXMgRmllbGRLZXk8RT5bXTtcblxuICBpZiAob25EZWxldGVLZXlzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIG9uZSBmaWVsZCB3aXRoICdvbkRlbGV0ZScgYXMgbWF4aW11bWApO1xuICB9XG5cbiAgaWYgKG9wdHMuc29mdERlbGV0ZSkge1xuICAgIGlmICghb25EZWxldGVLZXlzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBvbmUgZmllbGQgd2l0aCAnb25EZWxldGUnIHRvIGVuYWJsZSAnc29mdERlbGV0ZSdgKTtcbiAgICB9XG4gICAgbWV0YS5zb2Z0RGVsZXRlID0gb25EZWxldGVLZXlzWzBdO1xuICB9XG5cbiAgbWV0YS5uYW1lID0gb3B0cy5uYW1lID8/IGVudGl0eS5uYW1lO1xuICBsZXQgcHJvdG86IEZ1bmN0aW9uQ29uc3RydWN0b3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZW50aXR5LnByb3RvdHlwZSk7XG5cbiAgd2hpbGUgKHByb3RvLmNvbnN0cnVjdG9yICE9PSBPYmplY3QpIHtcbiAgICBjb25zdCBwYXJlbnRNZXRhID0gZW5zdXJlTWV0YShwcm90by5jb25zdHJ1Y3RvciBhcyBUeXBlPEU+KTtcbiAgICBleHRlbmRNZXRhKG1ldGEsIHBhcmVudE1ldGEpO1xuICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgfVxuXG4gIGNvbnN0IGlkID0gZ2V0SWRLZXkobWV0YSk7XG4gIGlmICghaWQpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIG9uZSBmaWVsZCBkZWNvcmF0ZWQgd2l0aCBASWRgKTtcbiAgfVxuICBtZXRhLmlkID0gaWQ7XG5cbiAgcmV0dXJuIG1ldGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnRpdGllcygpOiBUeXBlPGFueT5bXSB7XG4gIHJldHVybiBbLi4ubWV0YXMuZW50cmllcygpXS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsXSkgPT4ge1xuICAgIGlmICh2YWwuaWQpIHtcbiAgICAgIGFjYy5wdXNoKGtleSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gZW5zdXJlTWV0YTxFPihlbnRpdHk6IFR5cGU8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgbGV0IG1ldGEgPSBtZXRhcy5nZXQoZW50aXR5KTtcbiAgaWYgKG1ldGEpIHtcbiAgICByZXR1cm4gbWV0YTtcbiAgfVxuICBtZXRhID0geyBlbnRpdHksIGZpZWxkczoge30sIHJlbGF0aW9uczoge30gfTtcbiAgbWV0YXMuc2V0KGVudGl0eSwgbWV0YSk7XG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWV0YTxFPihlbnRpdHk6IFR5cGU8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IG1ldGFzLmdldChlbnRpdHkpO1xuICBpZiAoIW1ldGEpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgaXMgbm90IGFuIGVudGl0eWApO1xuICB9XG4gIGlmIChtZXRhLnByb2Nlc3NlZCkge1xuICAgIHJldHVybiBtZXRhO1xuICB9XG4gIG1ldGEucHJvY2Vzc2VkID0gdHJ1ZTtcbiAgcmV0dXJuIGZpbGxSZWxhdGlvbnMobWV0YSk7XG59XG5cbmZ1bmN0aW9uIGZpbGxSZWxhdGlvbnM8RT4obWV0YTogRW50aXR5TWV0YTxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBmb3IgKGNvbnN0IHJlbEtleSBpbiBtZXRhLnJlbGF0aW9ucykge1xuICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXkgYXMgUmVsYXRpb25LZXk8RT5dO1xuXG4gICAgaWYgKHJlbE9wdHMucmVmZXJlbmNlcykge1xuICAgICAgLy8gcmVmZXJlbmNlcyB3ZXJlIG1hbnVhbGx5IHNwZWNpZmllZFxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHJlbE9wdHMubWFwcGVkQnkpIHtcbiAgICAgIGZpbGxJbnZlcnNlU2lkZVJlbGF0aW9ucyhyZWxPcHRzKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgY29uc3QgcmVsTWV0YSA9IGVuc3VyZU1ldGEocmVsRW50aXR5KTtcblxuICAgIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgICBjb25zdCBpZE5hbWUgPSBtZXRhLmZpZWxkc1ttZXRhLmlkXS5uYW1lO1xuICAgICAgY29uc3QgcmVsSWROYW1lID0gcmVsTWV0YS5maWVsZHNbcmVsTWV0YS5pZF0ubmFtZTtcbiAgICAgIGNvbnN0IHNvdXJjZSA9IGxvd2VyRmlyc3QobWV0YS5uYW1lKSArIHVwcGVyRmlyc3QoaWROYW1lKTtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGxvd2VyRmlyc3QocmVsTWV0YS5uYW1lKSArIHVwcGVyRmlyc3QocmVsSWROYW1lKTtcbiAgICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IFtcbiAgICAgICAgeyBsb2NhbDogc291cmNlLCBmb3JlaWduOiBtZXRhLmlkIH0sXG4gICAgICAgIHsgbG9jYWw6IHRhcmdldCwgZm9yZWlnbjogcmVsTWV0YS5pZCB9LFxuICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gW3sgbG9jYWw6IGAke3JlbEtleX1JZGAsIGZvcmVpZ246IHJlbE1ldGEuaWQgfV07XG4gICAgfVxuXG4gICAgaWYgKHJlbE9wdHMudGhyb3VnaCkge1xuICAgICAgZmlsbFRocm91Z2hSZWxhdGlvbnMocmVsT3B0cy50aHJvdWdoKCkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhO1xufVxuXG5mdW5jdGlvbiBmaWxsSW52ZXJzZVNpZGVSZWxhdGlvbnM8RT4ocmVsT3B0czogUmVsYXRpb25PcHRpb25zPEU+KTogdm9pZCB7XG4gIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbEVudGl0eSk7XG4gIHJlbE9wdHMubWFwcGVkQnkgPSBnZXRNYXBwZWRCeVJlbGF0aW9uS2V5KHJlbE9wdHMpO1xuXG4gIGlmIChyZWxNZXRhLmZpZWxkc1tyZWxPcHRzLm1hcHBlZEJ5IGFzIEZpZWxkS2V5PEU+XSkge1xuICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IFt7IGxvY2FsOiByZWxNZXRhLmlkLCBmb3JlaWduOiByZWxPcHRzLm1hcHBlZEJ5IH1dO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG1hcHBlZEJ5UmVsYXRpb24gPSByZWxNZXRhLnJlbGF0aW9uc1tyZWxPcHRzLm1hcHBlZEJ5IGFzIFJlbGF0aW9uS2V5PEU+XTtcblxuICBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ20xJyB8fCByZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gbWFwcGVkQnlSZWxhdGlvbi5yZWZlcmVuY2VzLnNsaWNlKCkucmV2ZXJzZSgpO1xuICAgIHJlbE9wdHMudGhyb3VnaCA9IG1hcHBlZEJ5UmVsYXRpb24udGhyb3VnaDtcbiAgICByZXR1cm47XG4gIH1cblxuICByZWxPcHRzLnJlZmVyZW5jZXMgPSBtYXBwZWRCeVJlbGF0aW9uLnJlZmVyZW5jZXMubWFwKCh7IGxvY2FsLCBmb3JlaWduIH0pID0+ICh7XG4gICAgbG9jYWw6IGZvcmVpZ24sXG4gICAgZm9yZWlnbjogbG9jYWwsXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZmlsbFRocm91Z2hSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+KTogdm9pZCB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG4gIG1ldGEucmVsYXRpb25zID0gZ2V0S2V5cyhtZXRhLmZpZWxkcykucmVkdWNlKChyZWxhdGlvbnMsIGtleSkgPT4ge1xuICAgIGNvbnN0IHsgcmVmZXJlbmNlIH0gPSBtZXRhLmZpZWxkc1trZXkgYXMgRmllbGRLZXk8RT5dO1xuICAgIGlmIChyZWZlcmVuY2UpIHtcbiAgICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlZmVyZW5jZSgpO1xuICAgICAgY29uc3QgcmVsTWV0YSA9IGVuc3VyZU1ldGEocmVsRW50aXR5KTtcbiAgICAgIGNvbnN0IHJlbEtleSA9IGtleS5zbGljZSgwLCAtcmVsTWV0YS5pZC5sZW5ndGgpO1xuICAgICAgY29uc3QgcmVsT3B0czogUmVsYXRpb25PcHRpb25zID0ge1xuICAgICAgICBlbnRpdHk6IHJlZmVyZW5jZSxcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiBrZXksIGZvcmVpZ246IHJlbE1ldGEuaWQgfV0sXG4gICAgICB9O1xuICAgICAgcmVsYXRpb25zW3JlbEtleV0gPSByZWxPcHRzO1xuICAgIH1cbiAgICByZXR1cm4gcmVsYXRpb25zO1xuICB9LCB7fSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hcHBlZEJ5UmVsYXRpb25LZXk8RT4ocmVsT3B0czogUmVsYXRpb25PcHRpb25zPEU+KTogS2V5PEU+IHtcbiAgaWYgKHR5cGVvZiByZWxPcHRzLm1hcHBlZEJ5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICBjb25zdCByZWxNZXRhID0gZW5zdXJlTWV0YShyZWxFbnRpdHkpO1xuICAgIGNvbnN0IGtleU1hcCA9IGdldFJlbGF0aW9uS2V5TWFwKHJlbE1ldGEpO1xuICAgIHJldHVybiByZWxPcHRzLm1hcHBlZEJ5KGtleU1hcCk7XG4gIH1cbiAgcmV0dXJuIHJlbE9wdHMubWFwcGVkQnk7XG59XG5cbmZ1bmN0aW9uIGdldFJlbGF0aW9uS2V5TWFwPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4pOiBSZWxhdGlvbktleU1hcDxFPiB7XG4gIHJldHVybiBnZXRLZXlzKG1ldGEuZmllbGRzKVxuICAgIC5jb25jYXQoZ2V0S2V5cyhtZXRhLnJlbGF0aW9ucykpXG4gICAgLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGFjY1trZXldID0ga2V5O1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBSZWxhdGlvbktleU1hcDxFPik7XG59XG5cbmZ1bmN0aW9uIGdldElkS2V5PEU+KG1ldGE6IEVudGl0eU1ldGE8RT4pOiBJZEtleTxFPiB7XG4gIGNvbnN0IGlkID0gZ2V0S2V5cyhtZXRhLmZpZWxkcykuZmluZCgoa2V5KSA9PiBtZXRhLmZpZWxkc1trZXldPy5pc0lkKTtcbiAgcmV0dXJuIGlkIGFzIElkS2V5PEU+O1xufVxuXG5mdW5jdGlvbiBleHRlbmRNZXRhPEU+KHRhcmdldDogRW50aXR5TWV0YTxFPiwgc291cmNlOiBFbnRpdHlNZXRhPEU+KTogdm9pZCB7XG4gIGNvbnN0IHNvdXJjZUZpZWxkcyA9IHsgLi4uc291cmNlLmZpZWxkcyB9O1xuICBjb25zdCB0YXJnZXRJZCA9IGdldElkS2V5KHRhcmdldCk7XG4gIGlmICh0YXJnZXRJZCkge1xuICAgIGNvbnN0IHNvdXJjZUlkID0gZ2V0SWRLZXkoc291cmNlKTtcbiAgICBpZiAoc291cmNlSWQpIHtcbiAgICAgIGRlbGV0ZSBzb3VyY2VGaWVsZHNbc291cmNlSWRdO1xuICAgIH1cbiAgfVxuICB0YXJnZXQuZmllbGRzID0geyAuLi5zb3VyY2VGaWVsZHMsIC4uLnRhcmdldC5maWVsZHMgfTtcbiAgdGFyZ2V0LnJlbGF0aW9ucyA9IHsgLi4uc291cmNlLnJlbGF0aW9ucywgLi4udGFyZ2V0LnJlbGF0aW9ucyB9O1xufVxuXG5mdW5jdGlvbiBpbmZlclR5cGU8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKCdkZXNpZ246dHlwZScsIGVudGl0eS5wcm90b3R5cGUsIGtleSk7XG59XG5cbmZ1bmN0aW9uIGluZmVyRW50aXR5VHlwZTxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nKTogVHlwZTxhbnk+IHtcbiAgY29uc3QgaW5mZXJyZWRUeXBlID0gaW5mZXJUeXBlKGVudGl0eSwga2V5KTtcbiAgY29uc3QgaXNWYWxpZFR5cGUgPSBpc1ZhbGlkRW50aXR5VHlwZShpbmZlcnJlZFR5cGUpO1xuICBpZiAoIWlzVmFsaWRUeXBlKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0uJHtrZXl9JyB0eXBlIHdhcyBhdXRvLWluZmVycmVkIHdpdGggaW52YWxpZCB0eXBlICcke2luZmVycmVkVHlwZT8ubmFtZX0nYCk7XG4gIH1cbiAgcmV0dXJuIGluZmVycmVkVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFbnRpdHlUeXBlKHR5cGU6IGFueSk6IHR5cGUgaXMgVHlwZTxhbnk+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGUgIT09IEJvb2xlYW4gJiZcbiAgICB0eXBlICE9PSBTdHJpbmcgJiZcbiAgICB0eXBlICE9PSBOdW1iZXIgJiZcbiAgICB0eXBlICE9PSBCaWdJbnQgJiZcbiAgICB0eXBlICE9PSBEYXRlICYmXG4gICAgdHlwZSAhPT0gU3ltYm9sICYmXG4gICAgdHlwZSAhPT0gT2JqZWN0XG4gICk7XG59XG4iXX0=
|
package/options.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Querier, QuerierPool, Repository, Type
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function getQuerierPool(): QuerierPool;
|
|
1
|
+
import { Querier, QuerierPool, Repository, Type } from '@uql/core/type';
|
|
2
|
+
export declare function setDefaultQuerierPool<T extends QuerierPool = QuerierPool>(pool: T): void;
|
|
3
|
+
export declare function getDefaultQuerierPool(): QuerierPool;
|
|
5
4
|
export declare function getQuerier(): Promise<Querier>;
|
|
6
5
|
export declare function getRepository<E>(entity: Type<E>, querier: Querier): Repository<E>;
|
package/options.js
CHANGED
|
@@ -1,31 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRepository = exports.getQuerier = exports.
|
|
3
|
+
exports.getRepository = exports.getQuerier = exports.getDefaultQuerierPool = exports.setDefaultQuerierPool = void 0;
|
|
4
4
|
const repository_1 = require("@uql/core/repository");
|
|
5
|
-
let
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
options = { ...defaultOptions, ...opts };
|
|
5
|
+
let defaultPool;
|
|
6
|
+
function setDefaultQuerierPool(pool) {
|
|
7
|
+
defaultPool = pool;
|
|
9
8
|
}
|
|
10
|
-
exports.
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
exports.getOptions = getOptions;
|
|
15
|
-
function getQuerierPool() {
|
|
16
|
-
const options = getOptions();
|
|
17
|
-
if (!options.querierPool) {
|
|
18
|
-
throw TypeError(`'querierPool' has to be passed via 'setOptions'`);
|
|
9
|
+
exports.setDefaultQuerierPool = setDefaultQuerierPool;
|
|
10
|
+
function getDefaultQuerierPool() {
|
|
11
|
+
if (!defaultPool) {
|
|
12
|
+
throw new TypeError('A default querier-pool has to be set first');
|
|
19
13
|
}
|
|
20
|
-
return
|
|
14
|
+
return defaultPool;
|
|
21
15
|
}
|
|
22
|
-
exports.
|
|
16
|
+
exports.getDefaultQuerierPool = getDefaultQuerierPool;
|
|
23
17
|
function getQuerier() {
|
|
24
|
-
return
|
|
18
|
+
return defaultPool.getQuerier();
|
|
25
19
|
}
|
|
26
20
|
exports.getQuerier = getQuerier;
|
|
27
21
|
function getRepository(entity, querier) {
|
|
28
22
|
return new repository_1.GenericRepository(entity, querier);
|
|
29
23
|
}
|
|
30
24
|
exports.getRepository = getRepository;
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUF5RDtBQUd6RCxJQUFJLFdBQXdCLENBQUM7QUFFN0IsU0FBZ0IscUJBQXFCLENBQXNDLElBQU87SUFDaEYsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNyQixDQUFDO0FBRkQsc0RBRUM7QUFFRCxTQUFnQixxQkFBcUI7SUFDbkMsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNoQixNQUFNLElBQUksU0FBUyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7S0FDbkU7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBTEQsc0RBS0M7QUFFRCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFGRCxnQ0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxNQUFlLEVBQUUsT0FBZ0I7SUFDaEUsT0FBTyxJQUFJLDhCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRkQsc0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljUmVwb3NpdG9yeSB9IGZyb20gJ0B1cWwvY29yZS9yZXBvc2l0b3J5JztcbmltcG9ydCB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sLCBSZXBvc2l0b3J5LCBUeXBlIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuXG5sZXQgZGVmYXVsdFBvb2w6IFF1ZXJpZXJQb29sO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0RGVmYXVsdFF1ZXJpZXJQb29sPFQgZXh0ZW5kcyBRdWVyaWVyUG9vbCA9IFF1ZXJpZXJQb29sPihwb29sOiBUKTogdm9pZCB7XG4gIGRlZmF1bHRQb29sID0gcG9vbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRRdWVyaWVyUG9vbCgpOiBRdWVyaWVyUG9vbCB7XG4gIGlmICghZGVmYXVsdFBvb2wpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBIGRlZmF1bHQgcXVlcmllci1wb29sIGhhcyB0byBiZSBzZXQgZmlyc3QnKTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyKCk6IFByb21pc2U8UXVlcmllcj4ge1xuICByZXR1cm4gZGVmYXVsdFBvb2wuZ2V0UXVlcmllcigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVwb3NpdG9yeTxFPihlbnRpdHk6IFR5cGU8RT4sIHF1ZXJpZXI6IFF1ZXJpZXIpOiBSZXBvc2l0b3J5PEU+IHtcbiAgcmV0dXJuIG5ldyBHZW5lcmljUmVwb3NpdG9yeShlbnRpdHksIHF1ZXJpZXIpO1xufVxuIl19
|
package/options.spec.js
CHANGED
|
@@ -6,45 +6,22 @@ describe('options', () => {
|
|
|
6
6
|
beforeEach(() => {
|
|
7
7
|
jest.spyOn(console, 'log');
|
|
8
8
|
});
|
|
9
|
-
|
|
10
|
-
(0, options_1.
|
|
11
|
-
});
|
|
12
|
-
it('getOptions unset', () => {
|
|
13
|
-
expect((0, options_1.getOptions)()).toEqual({});
|
|
14
|
-
});
|
|
15
|
-
it('setOptions', () => {
|
|
16
|
-
const logger = jest.fn();
|
|
17
|
-
(0, options_1.setOptions)({
|
|
18
|
-
querierPool: undefined,
|
|
19
|
-
});
|
|
20
|
-
expect((0, options_1.getOptions)()).toEqual({
|
|
21
|
-
querierPool: undefined,
|
|
22
|
-
});
|
|
23
|
-
(0, options_1.setOptions)({
|
|
24
|
-
querierPool: undefined,
|
|
25
|
-
});
|
|
26
|
-
expect((0, options_1.getOptions)()).toEqual({
|
|
27
|
-
querierPool: undefined,
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
it('getQuerierPool unset', () => {
|
|
31
|
-
expect(() => (0, options_1.getQuerierPool)()).toThrow(`'querierPool' has to be passed via 'setOptions'`);
|
|
9
|
+
it('getDefaultQuerierPool unset', () => {
|
|
10
|
+
expect(() => (0, options_1.getDefaultQuerierPool)()).toThrow('A default querier-pool has to be set first');
|
|
32
11
|
});
|
|
33
12
|
it('getQuerier', async () => {
|
|
34
13
|
const querierMock = {};
|
|
35
|
-
(0, options_1.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
end: async () => { },
|
|
39
|
-
},
|
|
14
|
+
(0, options_1.setDefaultQuerierPool)({
|
|
15
|
+
getQuerier: async () => querierMock,
|
|
16
|
+
end: async () => { },
|
|
40
17
|
});
|
|
41
|
-
const querier1 = await (0, options_1.
|
|
18
|
+
const querier1 = await (0, options_1.getDefaultQuerierPool)().getQuerier();
|
|
42
19
|
expect(querier1).toBe(querierMock);
|
|
43
20
|
const querier2 = await (0, options_1.getQuerier)();
|
|
44
21
|
expect(querier2).toBe(querierMock);
|
|
45
22
|
const repository = (0, options_1.getRepository)(test_1.User, querier1);
|
|
46
23
|
expect(repository).toBeDefined();
|
|
47
|
-
expect((0, options_1.
|
|
24
|
+
expect((0, options_1.getDefaultQuerierPool)()).toBe((0, options_1.getDefaultQuerierPool)());
|
|
48
25
|
});
|
|
49
26
|
});
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL29wdGlvbnMuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUFzQztBQUV0Qyx1Q0FBb0c7QUFFcEcsUUFBUSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtRQUNyQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSwrQkFBcUIsR0FBRSxDQUFDLENBQUMsT0FBTyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDOUYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzFCLE1BQU0sV0FBVyxHQUFHLEVBQWEsQ0FBQztRQUVsQyxJQUFBLCtCQUFxQixFQUFDO1lBQ3BCLFVBQVUsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLFdBQVc7WUFDbkMsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEdBQUUsQ0FBQztTQUNwQixDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsK0JBQXFCLEdBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM1RCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxvQkFBVSxHQUFFLENBQUM7UUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVuQyxNQUFNLFVBQVUsR0FBRyxJQUFBLHVCQUFhLEVBQUMsV0FBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRWpELE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVqQyxNQUFNLENBQUMsSUFBQSwrQkFBcUIsR0FBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUEsK0JBQXFCLEdBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyIH0gZnJvbSAnQHVxbC9jb3JlL3Rlc3QnO1xuaW1wb3J0IHsgUXVlcmllciB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IGdldFF1ZXJpZXIsIGdldERlZmF1bHRRdWVyaWVyUG9vbCwgZ2V0UmVwb3NpdG9yeSwgc2V0RGVmYXVsdFF1ZXJpZXJQb29sIH0gZnJvbSAnLi9vcHRpb25zJztcblxuZGVzY3JpYmUoJ29wdGlvbnMnLCAoKSA9PiB7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGplc3Quc3B5T24oY29uc29sZSwgJ2xvZycpO1xuICB9KTtcblxuICBpdCgnZ2V0RGVmYXVsdFF1ZXJpZXJQb29sIHVuc2V0JywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBnZXREZWZhdWx0UXVlcmllclBvb2woKSkudG9UaHJvdygnQSBkZWZhdWx0IHF1ZXJpZXItcG9vbCBoYXMgdG8gYmUgc2V0IGZpcnN0Jyk7XG4gIH0pO1xuXG4gIGl0KCdnZXRRdWVyaWVyJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHF1ZXJpZXJNb2NrID0ge30gYXMgUXVlcmllcjtcblxuICAgIHNldERlZmF1bHRRdWVyaWVyUG9vbCh7XG4gICAgICBnZXRRdWVyaWVyOiBhc3luYyAoKSA9PiBxdWVyaWVyTW9jayxcbiAgICAgIGVuZDogYXN5bmMgKCkgPT4ge30sXG4gICAgfSk7XG5cbiAgICBjb25zdCBxdWVyaWVyMSA9IGF3YWl0IGdldERlZmF1bHRRdWVyaWVyUG9vbCgpLmdldFF1ZXJpZXIoKTtcbiAgICBleHBlY3QocXVlcmllcjEpLnRvQmUocXVlcmllck1vY2spO1xuXG4gICAgY29uc3QgcXVlcmllcjIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG4gICAgZXhwZWN0KHF1ZXJpZXIyKS50b0JlKHF1ZXJpZXJNb2NrKTtcblxuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBnZXRSZXBvc2l0b3J5KFVzZXIsIHF1ZXJpZXIxKTtcblxuICAgIGV4cGVjdChyZXBvc2l0b3J5KS50b0JlRGVmaW5lZCgpO1xuXG4gICAgZXhwZWN0KGdldERlZmF1bHRRdWVyaWVyUG9vbCgpKS50b0JlKGdldERlZmF1bHRRdWVyaWVyUG9vbCgpKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -20,7 +20,7 @@ function Transactional({ propagation = 'required', querierPool, } = {}) {
|
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
22
|
isOwnTransaction = true;
|
|
23
|
-
const pool = querierPool ?? (0, options_1.
|
|
23
|
+
const pool = querierPool ?? (0, options_1.getDefaultQuerierPool)();
|
|
24
24
|
querier = await pool.getQuerier();
|
|
25
25
|
params[injectedQuerierIndex] = querier;
|
|
26
26
|
}
|
|
@@ -49,4 +49,4 @@ function Transactional({ propagation = 'required', querierPool, } = {}) {
|
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
51
|
exports.Transactional = Transactional;
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci90cmFuc2FjdGlvbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQUEwRDtBQUUxRCxtREFBMEQ7QUFFMUQsU0FBZ0IsYUFBYSxDQUFDLEVBQzVCLFdBQVcsR0FBRyxVQUFVLEVBQ3hCLFdBQVcsTUFJVCxFQUFFO0lBQ0osT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsY0FBa0MsRUFBUSxFQUFFO1FBQy9FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUF3QixDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLHVDQUF1QixFQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVwRSxJQUFJLG9CQUFvQixLQUFLLFNBQVMsRUFBRTtZQUN0QyxNQUFNLFNBQVMsQ0FBQywwQ0FBMEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztTQUM5RjtRQUVELGNBQWMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxVQUFVLElBQUksQ0FBZSxHQUFHLElBQVc7WUFDckUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3pCLElBQUksZ0JBQXlCLENBQUM7WUFDOUIsSUFBSSxPQUFnQixDQUFDO1lBRXJCLElBQUksTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQ2hDLE9BQU8sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLE1BQU0sSUFBSSxHQUFHLFdBQVcsSUFBSSxJQUFBLCtCQUFxQixHQUFFLENBQUM7Z0JBQ3BELE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQ3hDO1lBRUQsSUFBSTtnQkFDRixJQUFJLFdBQVcsS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7b0JBQzdELE1BQU0sT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7aUJBQ2xDO2dCQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3RELElBQUksZ0JBQWdCLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO29CQUNsRCxNQUFNLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2lCQUNuQztnQkFDRCxPQUFPLElBQUksQ0FBQzthQUNiO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUU7b0JBQ2xELE1BQU0sT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7aUJBQ3JDO2dCQUNELE1BQU0sR0FBRyxDQUFDO2FBQ1g7b0JBQVM7Z0JBQ1IsSUFBSSxnQkFBZ0IsRUFBRTtvQkFDcEIsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ3pCO2FBQ0Y7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDO0FBbkRELHNDQW1EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldERlZmF1bHRRdWVyaWVyUG9vbCB9IGZyb20gJ0B1cWwvY29yZS9vcHRpb25zJztcbmltcG9ydCB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sLCBUeXBlIH0gZnJvbSAnQHVxbC9jb3JlL3R5cGUnO1xuaW1wb3J0IHsgZ2V0SW5qZWN0ZWRRdWVyaWVySW5kZXggfSBmcm9tICcuL2luamVjdFF1ZXJpZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gVHJhbnNhY3Rpb25hbCh7XG4gIHByb3BhZ2F0aW9uID0gJ3JlcXVpcmVkJyxcbiAgcXVlcmllclBvb2wsXG59OiB7XG4gIHJlYWRvbmx5IHByb3BhZ2F0aW9uPzogJ3N1cHBvcnRlZCcgfCAncmVxdWlyZWQnO1xuICByZWFkb25seSBxdWVyaWVyUG9vbD86IFF1ZXJpZXJQb29sO1xufSA9IHt9KSB7XG4gIHJldHVybiAodGFyZ2V0OiBvYmplY3QsIGtleTogc3RyaW5nLCBwcm9wRGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yKTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGhlQ2xhc3MgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgVHlwZTxhbnk+O1xuICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gcHJvcERlc2NyaXB0b3IudmFsdWU7XG4gICAgY29uc3QgaW5qZWN0ZWRRdWVyaWVySW5kZXggPSBnZXRJbmplY3RlZFF1ZXJpZXJJbmRleCh0aGVDbGFzcywga2V5KTtcblxuICAgIGlmIChpbmplY3RlZFF1ZXJpZXJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoYG1pc3NpbmcgZGVjb3JhdG9yIEBJbmplY3RRdWVyaWVyKCkgaW4gJyR7dGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWV9LiR7a2V5fSdgKTtcbiAgICB9XG5cbiAgICBwcm9wRGVzY3JpcHRvci52YWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIGZ1bmModGhpczogb2JqZWN0LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgICAgY29uc3QgcGFyYW1zID0gWy4uLmFyZ3NdO1xuICAgICAgbGV0IGlzT3duVHJhbnNhY3Rpb246IGJvb2xlYW47XG4gICAgICBsZXQgcXVlcmllcjogUXVlcmllcjtcblxuICAgICAgaWYgKHBhcmFtc1tpbmplY3RlZFF1ZXJpZXJJbmRleF0pIHtcbiAgICAgICAgcXVlcmllciA9IHBhcmFtc1tpbmplY3RlZFF1ZXJpZXJJbmRleF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpc093blRyYW5zYWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgcG9vbCA9IHF1ZXJpZXJQb29sID8/IGdldERlZmF1bHRRdWVyaWVyUG9vbCgpO1xuICAgICAgICBxdWVyaWVyID0gYXdhaXQgcG9vbC5nZXRRdWVyaWVyKCk7XG4gICAgICAgIHBhcmFtc1tpbmplY3RlZFF1ZXJpZXJJbmRleF0gPSBxdWVyaWVyO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBpZiAocHJvcGFnYXRpb24gPT09ICdyZXF1aXJlZCcgJiYgIXF1ZXJpZXIuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcmllci5iZWdpblRyYW5zYWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIHBhcmFtcyk7XG4gICAgICAgIGlmIChpc093blRyYW5zYWN0aW9uICYmIHF1ZXJpZXIuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcmllci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc093blRyYW5zYWN0aW9uICYmIHF1ZXJpZXIuaGFzT3BlblRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKGlzT3duVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICBhd2FpdCBxdWVyaWVyLnJlbGVhc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH07XG59XG4iXX0=
|
|
@@ -9,11 +9,9 @@ describe('transactional', () => {
|
|
|
9
9
|
beforeEach(() => {
|
|
10
10
|
const defaultQuerierSingleton = buildQuerierMock();
|
|
11
11
|
const anotherQuerierSingleton = buildQuerierMock();
|
|
12
|
-
(0, options_1.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
end: async () => undefined,
|
|
16
|
-
},
|
|
12
|
+
(0, options_1.setDefaultQuerierPool)({
|
|
13
|
+
getQuerier: async () => defaultQuerierSingleton,
|
|
14
|
+
end: async () => undefined,
|
|
17
15
|
});
|
|
18
16
|
anotherQuerierPool = {
|
|
19
17
|
getQuerier: async () => anotherQuerierSingleton,
|
|
@@ -238,4 +236,4 @@ function buildQuerierMock() {
|
|
|
238
236
|
};
|
|
239
237
|
return querier;
|
|
240
238
|
}
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25hbC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJpZXIvZGVjb3JhdG9yL3RyYW5zYWN0aW9uYWwuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBMkQ7QUFFM0QsbURBQWdEO0FBQ2hELG1EQUFnRDtBQUVoRCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUM3QixJQUFJLGtCQUErQixDQUFDO0lBRXBDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDbkQsTUFBTSx1QkFBdUIsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRW5ELElBQUEsb0JBQVUsRUFBQztZQUNULFdBQVcsRUFBRTtnQkFDWCxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyx1QkFBdUI7Z0JBQy9DLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLFNBQVM7YUFDM0I7U0FDRixDQUFDLENBQUM7UUFFSCxrQkFBa0IsR0FBRztZQUNuQixVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyx1QkFBdUI7WUFDL0MsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsU0FBUztTQUMzQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsZUFBZSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzdCLE1BQU0sUUFBUTtZQUVaLEtBQUssQ0FBQyxJQUFJLENBQWtCLE9BQWlCLElBQUcsQ0FBQztTQUNsRDtRQURDO1lBREMsSUFBQSw2QkFBYSxHQUFFO1lBQ0osbUJBQUEsSUFBQSw2QkFBYSxHQUFFLENBQUE7Ozs7NENBQXNCO1FBR25ELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFdEIsTUFBTSxjQUFjLEdBQUcs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LElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbkMsT0FBTyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDLENBQUM7UUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BDLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7UUFDekMsQ0FBQyxDQUFDO1FBQ0YsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN0QyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLENBQUMsQ0FBQztRQUNGLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBQ1EsQ0FBQztJQUMzQyxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0UXVlcmllciwgc2V0T3B0aW9ucyB9IGZyb20gJ0B1cWwvY29yZS9vcHRpb25zJztcbmltcG9ydCB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sLCBXcml0YWJsZSB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IEluamVjdFF1ZXJpZXIgfSBmcm9tICcuL2luamVjdFF1ZXJpZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25hbCB9IGZyb20gJy4vdHJhbnNhY3Rpb25hbCc7XG5cbmRlc2NyaWJlKCd0cmFuc2FjdGlvbmFsJywgKCkgPT4ge1xuICBsZXQgYW5vdGhlclF1ZXJpZXJQb29sOiBRdWVyaWVyUG9vbDtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0UXVlcmllclNpbmdsZXRvbiA9IGJ1aWxkUXVlcmllck1vY2soKTtcbiAgICBjb25zdCBhbm90aGVyUXVlcmllclNpbmdsZXRvbiA9IGJ1aWxkUXVlcmllck1vY2soKTtcblxuICAgIHNldE9wdGlvbnMoe1xuICAgICAgcXVlcmllclBvb2w6IHtcbiAgICAgICAgZ2V0UXVlcmllcjogYXN5bmMgKCkgPT4gZGVmYXVsdFF1ZXJpZXJTaW5nbGV0b24sXG4gICAgICAgIGVuZDogYXN5bmMgKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGFub3RoZXJRdWVyaWVyUG9vbCA9IHtcbiAgICAgIGdldFF1ZXJpZXI6IGFzeW5jICgpID0+IGFub3RoZXJRdWVyaWVyU2luZ2xldG9uLFxuICAgICAgZW5kOiBhc3luYyAoKSA9PiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG5cbiAgaXQoJ2luamVjdFF1ZXJpZXInLCBhc3luYyAoKSA9PiB7XG4gICAgY2xhc3MgU2VydmljZUEge1xuICAgICAgQFRyYW5zYWN0aW9uYWwoKVxuICAgICAgYXN5bmMgc2F2ZShASW5qZWN0UXVlcmllcigpIHF1ZXJpZXI/OiBRdWVyaWVyKSB7fVxuICAgIH1cblxuICAgIGNvbnN0IHNlcnZpY2VBID0gbmV3IFNlcnZpY2VBKCk7XG4gICAgYXdhaXQgc2VydmljZUEuc2F2ZSgpO1xuXG4gICAgY29uc3QgZGVmYXVsdFF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygxKTtcblxuICAgIGNvbnN0IGFub3RoZXJRdWVyaWVyID0gYXdhaXQgYW5vdGhlclF1ZXJpZXJQb29sLmdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDApO1xuICB9KTtcblxuICBpdCgnaW5qZWN0UXVlcmllciAtIHF1ZXJpZXIgYW5kIHJlcG9zaXRvcmllcycsIGFzeW5jICgpID0+IHtcbiAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICBAVHJhbnNhY3Rpb25hbCgpXG4gICAgICBhc3luYyBzYXZlKEBJbmplY3RRdWVyaWVyKCkgcXVlcmllcj86IFF1ZXJpZXIpIHt9XG4gICAgfVxuXG4gICAgY29uc3Qgc2VydmljZUEgPSBuZXcgU2VydmljZUEoKTtcbiAgICBhd2FpdCBzZXJ2aWNlQS5zYXZlKCk7XG5cbiAgICBjb25zdCBkZWZhdWx0UXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDEpO1xuXG4gICAgY29uc3QgYW5vdGhlclF1ZXJpZXIgPSBhd2FpdCBhbm90aGVyUXVlcmllclBvb2wuZ2V0UXVlcmllcigpO1xuXG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gIH0pO1xuXG4gIGl0KCdpbmplY3RRdWVyaWVyIHByb3BhZ2F0aW9uOiBzdXBwb3J0ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY2xhc3MgU2VydmljZUEge1xuICAgICAgQFRyYW5zYWN0aW9uYWwoeyBwcm9wYWdhdGlvbjogJ3N1cHBvcnRlZCcgfSlcbiAgICAgIGFzeW5jIGZpbmQoQEluamVjdFF1ZXJpZXIoKSBxdWVyaWVyPzogUXVlcmllcikge31cbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2aWNlQSA9IG5ldyBTZXJ2aWNlQSgpO1xuICAgIGF3YWl0IHNlcnZpY2VBLmZpbmQoKTtcblxuICAgIGNvbnN0IGRlZmF1bHRRdWVyaWVyID0gYXdhaXQgZ2V0UXVlcmllcigpO1xuXG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMSk7XG5cbiAgICBjb25zdCBhbm90aGVyUXVlcmllciA9IGF3YWl0IGFub3RoZXJRdWVyaWVyUG9vbC5nZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgfSk7XG5cbiAgaXQoJ2luamVjdFF1ZXJpZXIgYW5vdGhlciBxdWVyaWVyUG9vbCcsIGFzeW5jICgpID0+IHtcbiAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICBAVHJhbnNhY3Rpb25hbCh7IHF1ZXJpZXJQb29sOiBhbm90aGVyUXVlcmllclBvb2wgfSlcbiAgICAgIGFzeW5jIHNhdmUoQEluamVjdFF1ZXJpZXIoKSBxdWVyaWVyPzogUXVlcmllcikge31cbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2aWNlQSA9IG5ldyBTZXJ2aWNlQSgpO1xuICAgIGF3YWl0IHNlcnZpY2VBLnNhdmUoKTtcblxuICAgIGNvbnN0IGFub3RoZXJRdWVyaWVyID0gYXdhaXQgYW5vdGhlclF1ZXJpZXJQb29sLmdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDEpO1xuXG4gICAgY29uc3QgZGVmYXVsdFF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgfSk7XG5cbiAgaXQoJ2luamVjdFF1ZXJpZXIgYW5kIGNhbGwgc3VwZXInLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZGVsZXRlU3R1YiA9IGplc3QuZm4oKGlkOiBzdHJpbmcsIHF1ZXJpZXI6IFF1ZXJpZXIpID0+IHt9KTtcblxuICAgIGNsYXNzIFNlcnZpY2VBIHtcbiAgICAgIEBUcmFuc2FjdGlvbmFsKClcbiAgICAgIGFzeW5jIGRlbGV0ZShpZDogc3RyaW5nLCBASW5qZWN0UXVlcmllcigpIHF1ZXJpZXI/OiBRdWVyaWVyKSB7XG4gICAgICAgIGRlbGV0ZVN0dWIoaWQsIHF1ZXJpZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNsYXNzIFNlcnZpY2VCIGV4dGVuZHMgU2VydmljZUEge1xuICAgICAgQFRyYW5zYWN0aW9uYWwoeyBxdWVyaWVyUG9vbDogYW5vdGhlclF1ZXJpZXJQb29sIH0pXG4gICAgICBvdmVycmlkZSBhc3luYyBkZWxldGUoaWQ6IHN0cmluZywgQEluamVjdFF1ZXJpZXIoKSBxdWVyaWVyPzogUXVlcmllcikge1xuICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKGlkLCBxdWVyaWVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2aWNlQiA9IG5ldyBTZXJ2aWNlQigpO1xuICAgIGF3YWl0IHNlcnZpY2VCLmRlbGV0ZSgnMTIzJyk7XG5cbiAgICBjb25zdCBkZWZhdWx0UXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChkZWxldGVTdHViKS50b0JlQ2FsbGVkVGltZXMoMSk7XG5cbiAgICBjb25zdCBhbm90aGVyUXVlcmllciA9IGF3YWl0IGFub3RoZXJRdWVyaWVyUG9vbC5nZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoZGVsZXRlU3R1YikudG9IYXZlQmVlbkNhbGxlZFdpdGgoJzEyMycsIGFub3RoZXJRdWVyaWVyKTtcblxuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDEpO1xuXG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gIH0pO1xuXG4gIGl0KCd0aHJvdycsIGFzeW5jICgpID0+IHtcbiAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICBAVHJhbnNhY3Rpb25hbCh7IHByb3BhZ2F0aW9uOiAnc3VwcG9ydGVkJyB9KVxuICAgICAgYXN5bmMgc2F2ZShASW5qZWN0UXVlcmllcigpIHF1ZXJpZXI/OiBRdWVyaWVyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU29tZSBFcnJvcicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNlcnZpY2VBID0gbmV3IFNlcnZpY2VBKCk7XG5cbiAgICBhd2FpdCBleHBlY3Qoc2VydmljZUEuc2F2ZSgpKS5yZWplY3RzLnRvVGhyb3coJ1NvbWUgRXJyb3InKTtcblxuICAgIGNvbnN0IGRlZmF1bHRRdWVyaWVyID0gYXdhaXQgZ2V0UXVlcmllcigpO1xuXG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMSk7XG5cbiAgICBjb25zdCBhbm90aGVyUXVlcmllciA9IGF3YWl0IGFub3RoZXJRdWVyaWVyUG9vbC5nZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgfSk7XG5cbiAgaXQoJ3Rocm93IGluc2lkZSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICBAVHJhbnNhY3Rpb25hbCgpXG4gICAgICBhc3luYyBzYXZlKEBJbmplY3RRdWVyaWVyKCkgcXVlcmllcj86IFF1ZXJpZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTb21lIEVycm9yJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc2VydmljZUEgPSBuZXcgU2VydmljZUEoKTtcblxuICAgIGF3YWl0IGV4cGVjdChzZXJ2aWNlQS5zYXZlKCkpLnJlamVjdHMudG9UaHJvdygnU29tZSBFcnJvcicpO1xuXG4gICAgY29uc3QgZGVmYXVsdFF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDEpO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygxKTtcblxuICAgIGNvbnN0IGFub3RoZXJRdWVyaWVyID0gYXdhaXQgYW5vdGhlclF1ZXJpZXJQb29sLmdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDApO1xuICB9KTtcblxuICBpdCgnbWlzc2luZyBpbmplY3RRdWVyaWVyJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICAgIEBUcmFuc2FjdGlvbmFsKClcbiAgICAgICAgYXN5bmMgZmluZCgpIHt9XG4gICAgICB9XG4gICAgfSkudG9UaHJvdyhcIm1pc3NpbmcgZGVjb3JhdG9yIEBJbmplY3RRdWVyaWVyKCkgaW4gJ1NlcnZpY2VBLmZpbmQnXCIpO1xuICB9KTtcbn0pO1xuXG5mdW5jdGlvbiBidWlsZFF1ZXJpZXJNb2NrKCk6IFF1ZXJpZXIge1xuICBjb25zdCBxdWVyaWVyID0ge1xuICAgIGJlZ2luVHJhbnNhY3Rpb246IGplc3QuZm4oYXN5bmMgKCkgPT4ge1xuICAgICAgcXVlcmllci5oYXNPcGVuVHJhbnNhY3Rpb24gPSB0cnVlO1xuICAgIH0pLFxuICAgIGNvbW1pdFRyYW5zYWN0aW9uOiBqZXN0LmZuKGFzeW5jICgpID0+IHtcbiAgICAgIHF1ZXJpZXIuaGFzT3BlblRyYW5zYWN0aW9uID0gdW5kZWZpbmVkO1xuICAgIH0pLFxuICAgIHJvbGxiYWNrVHJhbnNhY3Rpb246IGplc3QuZm4oYXN5bmMgKCkgPT4ge1xuICAgICAgcXVlcmllci5oYXNPcGVuVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgfSksXG4gICAgcmVsZWFzZTogamVzdC5mbihhc3luYyAoKSA9PiB7fSksXG4gIH0gYXMgUGFydGlhbDxRdWVyaWVyPiBhcyBXcml0YWJsZTxRdWVyaWVyPjtcbiAgcmV0dXJuIHF1ZXJpZXI7XG59XG4iXX0=
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25hbC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJpZXIvZGVjb3JhdG9yL3RyYW5zYWN0aW9uYWwuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBc0U7QUFFdEUsbURBQWdEO0FBQ2hELG1EQUFnRDtBQUVoRCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUM3QixJQUFJLGtCQUErQixDQUFDO0lBRXBDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDbkQsTUFBTSx1QkFBdUIsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRW5ELElBQUEsK0JBQXFCLEVBQUM7WUFDcEIsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsdUJBQXVCO1lBQy9DLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLFNBQVM7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsa0JBQWtCLEdBQUc7WUFDbkIsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsdUJBQXVCO1lBQy9DLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLFNBQVM7U0FDM0IsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGVBQWUsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM3QixNQUFNLFFBQVE7WUFFWixLQUFLLENBQUMsSUFBSSxDQUFrQixPQUFpQixJQUFHLENBQUM7U0FDbEQ7UUFEQztZQURDLElBQUEsNkJBQWEsR0FBRTtZQUNKLG1CQUFBLElBQUEsNkJBQWEsR0FBRSxDQUFBOzs7OzRDQUFzQjtRQUduRCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXRCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBQSxvQkFBVSxHQUFFLENBQUM7UUFFMUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUU3RCxNQUFNLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN4RCxNQUFNLFFBQVE7WUFFWixLQUFLLENBQUMsSUFBSSxDQUFrQixPQUFpQixJQUFHLENBQUM7U0FDbEQ7UUFEQztZQURDLElBQUEsNkJBQWEsR0FBRTtZQUNKLG1CQUFBLElBQUEsNkJBQWEsR0FBRSxDQUFBOzs7OzRDQUFzQjtRQUduRCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXRCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBQSxvQkFBVSxHQUFFLENBQUM7UUFFMUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUU3RCxNQUFNLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNwRCxNQUFNLFFBQVE7WUFFWixLQUFLLENBQUMsSUFBSSxDQUFrQixPQUFpQixJQUFHLENBQUM7U0FDbEQ7UUFEQztZQURDLElBQUEsNkJBQWEsRUFBQyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUNoQyxtQkFBQSxJQUFBLDZCQUFhLEdBQUUsQ0FBQTs7Ozs0Q0FBc0I7UUFHbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV0QixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUEsb0JBQVUsR0FBRSxDQUFDO1FBRTFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxELE1BQU0sY0FBYyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFN0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbUNBQW1DLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDakQsTUFBTSxRQUFRO1lBRVosS0FBSyxDQUFDLElBQUksQ0FBa0IsT0FBaUIsSUFBRyxDQUFDO1NBQ2xEO1FBREM7WUFEQyxJQUFBLDZCQUFhLEVBQUMsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztZQUN2QyxtQkFBQSxJQUFBLDZCQUFhLEdBQUUsQ0FBQTs7Ozs0Q0FBc0I7UUFHbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV0QixNQUFNLGNBQWMsR0FBRyxNQUFNLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTdELE1BQU0sQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBQSxvQkFBVSxHQUFFLENBQUM7UUFFMUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQVUsRUFBRSxPQUFnQixFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztRQUVqRSxNQUFNLFFBQVE7WUFFWixLQUFLLENBQUMsTUFBTSxDQUFDLEVBQVUsRUFBbUIsT0FBaUI7Z0JBQ3pELFVBQVUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDMUIsQ0FBQztTQUNGO1FBSEM7WUFEQyxJQUFBLDZCQUFhLEdBQUU7WUFDVSxtQkFBQSxJQUFBLDZCQUFhLEdBQUUsQ0FBQTs7Ozs4Q0FFeEM7UUFHSCxNQUFNLFFBQVMsU0FBUSxRQUFRO1lBRXBCLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBVSxFQUFtQixPQUFpQjtnQkFDbEUsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNuQyxDQUFDO1NBQ0Y7UUFIQztZQURDLElBQUEsNkJBQWEsRUFBQyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQ2hCLG1CQUFBLElBQUEsNkJBQWEsR0FBRSxDQUFBOzs7OzhDQUVqRDtRQUdILE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBQSxvQkFBVSxHQUFFLENBQUM7UUFFMUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0QyxNQUFNLGNBQWMsR0FBRyxNQUFNLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTdELE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFL0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3JCLE1BQU0sUUFBUTtZQUVaLEtBQUssQ0FBQyxJQUFJLENBQWtCLE9BQWlCO2dCQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hDLENBQUM7U0FDRjtRQUhDO1lBREMsSUFBQSw2QkFBYSxFQUFDLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLG1CQUFBLElBQUEsNkJBQWEsR0FBRSxDQUFBOzs7OzRDQUUxQjtRQUdILE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFFaEMsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU1RCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUEsb0JBQVUsR0FBRSxDQUFDO1FBRTFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxELE1BQU0sY0FBYyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFN0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDeEMsTUFBTSxRQUFRO1lBRVosS0FBSyxDQUFDLElBQUksQ0FBa0IsT0FBaUI7Z0JBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEMsQ0FBQztTQUNGO1FBSEM7WUFEQyxJQUFBLDZCQUFhLEdBQUU7WUFDSixtQkFBQSxJQUFBLDZCQUFhLEdBQUUsQ0FBQTs7Ozs0Q0FFMUI7UUFHSCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBRWhDLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFNUQsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFBLG9CQUFVLEdBQUUsQ0FBQztRQUUxQyxNQUFNLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsRCxNQUFNLGNBQWMsR0FBRyxNQUFNLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTdELE1BQU0sQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtRQUMvQixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxRQUFRO2dCQUVaLEtBQUssQ0FBQyxJQUFJLEtBQUksQ0FBQzthQUNoQjtZQURDO2dCQURDLElBQUEsNkJBQWEsR0FBRTs7OztnREFDRDtRQUVuQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUN0RSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsU0FBUyxnQkFBZ0I7SUFDdkIsTUFBTSxPQUFPLEdBQUc7UUFDZCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ25DLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDcEMsQ0FBQyxDQUFDO1FBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLENBQUMsQ0FBQztRQUNGLG1CQUFtQixFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdEMsT0FBTyxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztRQUN6QyxDQUFDLENBQUM7UUFDRixPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxHQUFFLENBQUMsQ0FBQztLQUNRLENBQUM7SUFDM0MsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFF1ZXJpZXIsIHNldERlZmF1bHRRdWVyaWVyUG9vbCB9IGZyb20gJ0B1cWwvY29yZS9vcHRpb25zJztcbmltcG9ydCB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sLCBXcml0YWJsZSB9IGZyb20gJ0B1cWwvY29yZS90eXBlJztcbmltcG9ydCB7IEluamVjdFF1ZXJpZXIgfSBmcm9tICcuL2luamVjdFF1ZXJpZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25hbCB9IGZyb20gJy4vdHJhbnNhY3Rpb25hbCc7XG5cbmRlc2NyaWJlKCd0cmFuc2FjdGlvbmFsJywgKCkgPT4ge1xuICBsZXQgYW5vdGhlclF1ZXJpZXJQb29sOiBRdWVyaWVyUG9vbDtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0UXVlcmllclNpbmdsZXRvbiA9IGJ1aWxkUXVlcmllck1vY2soKTtcbiAgICBjb25zdCBhbm90aGVyUXVlcmllclNpbmdsZXRvbiA9IGJ1aWxkUXVlcmllck1vY2soKTtcblxuICAgIHNldERlZmF1bHRRdWVyaWVyUG9vbCh7XG4gICAgICBnZXRRdWVyaWVyOiBhc3luYyAoKSA9PiBkZWZhdWx0UXVlcmllclNpbmdsZXRvbixcbiAgICAgIGVuZDogYXN5bmMgKCkgPT4gdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgYW5vdGhlclF1ZXJpZXJQb29sID0ge1xuICAgICAgZ2V0UXVlcmllcjogYXN5bmMgKCkgPT4gYW5vdGhlclF1ZXJpZXJTaW5nbGV0b24sXG4gICAgICBlbmQ6IGFzeW5jICgpID0+IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9KTtcblxuICBpdCgnaW5qZWN0UXVlcmllcicsIGFzeW5jICgpID0+IHtcbiAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICBAVHJhbnNhY3Rpb25hbCgpXG4gICAgICBhc3luYyBzYXZlKEBJbmplY3RRdWVyaWVyKCkgcXVlcmllcj86IFF1ZXJpZXIpIHt9XG4gICAgfVxuXG4gICAgY29uc3Qgc2VydmljZUEgPSBuZXcgU2VydmljZUEoKTtcbiAgICBhd2FpdCBzZXJ2aWNlQS5zYXZlKCk7XG5cbiAgICBjb25zdCBkZWZhdWx0UXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDEpO1xuXG4gICAgY29uc3QgYW5vdGhlclF1ZXJpZXIgPSBhd2FpdCBhbm90aGVyUXVlcmllclBvb2wuZ2V0UXVlcmllcigpO1xuXG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gIH0pO1xuXG4gIGl0KCdpbmplY3RRdWVyaWVyIC0gcXVlcmllciBhbmQgcmVwb3NpdG9yaWVzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNsYXNzIFNlcnZpY2VBIHtcbiAgICAgIEBUcmFuc2FjdGlvbmFsKClcbiAgICAgIGFzeW5jIHNhdmUoQEluamVjdFF1ZXJpZXIoKSBxdWVyaWVyPzogUXVlcmllcikge31cbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2aWNlQSA9IG5ldyBTZXJ2aWNlQSgpO1xuICAgIGF3YWl0IHNlcnZpY2VBLnNhdmUoKTtcblxuICAgIGNvbnN0IGRlZmF1bHRRdWVyaWVyID0gYXdhaXQgZ2V0UXVlcmllcigpO1xuXG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMSk7XG5cbiAgICBjb25zdCBhbm90aGVyUXVlcmllciA9IGF3YWl0IGFub3RoZXJRdWVyaWVyUG9vbC5nZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgfSk7XG5cbiAgaXQoJ2luamVjdFF1ZXJpZXIgcHJvcGFnYXRpb246IHN1cHBvcnRlZCcsIGFzeW5jICgpID0+IHtcbiAgICBjbGFzcyBTZXJ2aWNlQSB7XG4gICAgICBAVHJhbnNhY3Rpb25hbCh7IHByb3BhZ2F0aW9uOiAnc3VwcG9ydGVkJyB9KVxuICAgICAgYXN5bmMgZmluZChASW5qZWN0UXVlcmllcigpIHF1ZXJpZXI/OiBRdWVyaWVyKSB7fVxuICAgIH1cblxuICAgIGNvbnN0IHNlcnZpY2VBID0gbmV3IFNlcnZpY2VBKCk7XG4gICAgYXdhaXQgc2VydmljZUEuZmluZCgpO1xuXG4gICAgY29uc3QgZGVmYXVsdFF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygxKTtcblxuICAgIGNvbnN0IGFub3RoZXJRdWVyaWVyID0gYXdhaXQgYW5vdGhlclF1ZXJpZXJQb29sLmdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDApO1xuICB9KTtcblxuICBpdCgnaW5qZWN0UXVlcmllciBhbm90aGVyIHF1ZXJpZXJQb29sJywgYXN5bmMgKCkgPT4ge1xuICAgIGNsYXNzIFNlcnZpY2VBIHtcbiAgICAgIEBUcmFuc2FjdGlvbmFsKHsgcXVlcmllclBvb2w6IGFub3RoZXJRdWVyaWVyUG9vbCB9KVxuICAgICAgYXN5bmMgc2F2ZShASW5qZWN0UXVlcmllcigpIHF1ZXJpZXI/OiBRdWVyaWVyKSB7fVxuICAgIH1cblxuICAgIGNvbnN0IHNlcnZpY2VBID0gbmV3IFNlcnZpY2VBKCk7XG4gICAgYXdhaXQgc2VydmljZUEuc2F2ZSgpO1xuXG4gICAgY29uc3QgYW5vdGhlclF1ZXJpZXIgPSBhd2FpdCBhbm90aGVyUXVlcmllclBvb2wuZ2V0UXVlcmllcigpO1xuXG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMSk7XG5cbiAgICBjb25zdCBkZWZhdWx0UXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDApO1xuICB9KTtcblxuICBpdCgnaW5qZWN0UXVlcmllciBhbmQgY2FsbCBzdXBlcicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBkZWxldGVTdHViID0gamVzdC5mbigoaWQ6IHN0cmluZywgcXVlcmllcjogUXVlcmllcikgPT4ge30pO1xuXG4gICAgY2xhc3MgU2VydmljZUEge1xuICAgICAgQFRyYW5zYWN0aW9uYWwoKVxuICAgICAgYXN5bmMgZGVsZXRlKGlkOiBzdHJpbmcsIEBJbmplY3RRdWVyaWVyKCkgcXVlcmllcj86IFF1ZXJpZXIpIHtcbiAgICAgICAgZGVsZXRlU3R1YihpZCwgcXVlcmllcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2xhc3MgU2VydmljZUIgZXh0ZW5kcyBTZXJ2aWNlQSB7XG4gICAgICBAVHJhbnNhY3Rpb25hbCh7IHF1ZXJpZXJQb29sOiBhbm90aGVyUXVlcmllclBvb2wgfSlcbiAgICAgIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZShpZDogc3RyaW5nLCBASW5qZWN0UXVlcmllcigpIHF1ZXJpZXI/OiBRdWVyaWVyKSB7XG4gICAgICAgIHJldHVybiBzdXBlci5kZWxldGUoaWQsIHF1ZXJpZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNlcnZpY2VCID0gbmV3IFNlcnZpY2VCKCk7XG4gICAgYXdhaXQgc2VydmljZUIuZGVsZXRlKCcxMjMnKTtcblxuICAgIGNvbnN0IGRlZmF1bHRRdWVyaWVyID0gYXdhaXQgZ2V0UXVlcmllcigpO1xuXG4gICAgZXhwZWN0KGRlbGV0ZVN0dWIpLnRvQmVDYWxsZWRUaW1lcygxKTtcblxuICAgIGNvbnN0IGFub3RoZXJRdWVyaWVyID0gYXdhaXQgYW5vdGhlclF1ZXJpZXJQb29sLmdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChkZWxldGVTdHViKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnMTIzJywgYW5vdGhlclF1ZXJpZXIpO1xuXG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMSk7XG5cbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgfSk7XG5cbiAgaXQoJ3Rocm93JywgYXN5bmMgKCkgPT4ge1xuICAgIGNsYXNzIFNlcnZpY2VBIHtcbiAgICAgIEBUcmFuc2FjdGlvbmFsKHsgcHJvcGFnYXRpb246ICdzdXBwb3J0ZWQnIH0pXG4gICAgICBhc3luYyBzYXZlKEBJbmplY3RRdWVyaWVyKCkgcXVlcmllcj86IFF1ZXJpZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTb21lIEVycm9yJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc2VydmljZUEgPSBuZXcgU2VydmljZUEoKTtcblxuICAgIGF3YWl0IGV4cGVjdChzZXJ2aWNlQS5zYXZlKCkpLnJlamVjdHMudG9UaHJvdygnU29tZSBFcnJvcicpO1xuXG4gICAgY29uc3QgZGVmYXVsdFF1ZXJpZXIgPSBhd2FpdCBnZXRRdWVyaWVyKCk7XG5cbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5jb21taXRUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5yb2xsYmFja1RyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJlbGVhc2UpLnRvQmVDYWxsZWRUaW1lcygxKTtcblxuICAgIGNvbnN0IGFub3RoZXJRdWVyaWVyID0gYXdhaXQgYW5vdGhlclF1ZXJpZXJQb29sLmdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDApO1xuICB9KTtcblxuICBpdCgndGhyb3cgaW5zaWRlIHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgIGNsYXNzIFNlcnZpY2VBIHtcbiAgICAgIEBUcmFuc2FjdGlvbmFsKClcbiAgICAgIGFzeW5jIHNhdmUoQEluamVjdFF1ZXJpZXIoKSBxdWVyaWVyPzogUXVlcmllcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NvbWUgRXJyb3InKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2aWNlQSA9IG5ldyBTZXJ2aWNlQSgpO1xuXG4gICAgYXdhaXQgZXhwZWN0KHNlcnZpY2VBLnNhdmUoKSkucmVqZWN0cy50b1Rocm93KCdTb21lIEVycm9yJyk7XG5cbiAgICBjb25zdCBkZWZhdWx0UXVlcmllciA9IGF3YWl0IGdldFF1ZXJpZXIoKTtcblxuICAgIGV4cGVjdChkZWZhdWx0UXVlcmllci5iZWdpblRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gICAgZXhwZWN0KGRlZmF1bHRRdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygxKTtcbiAgICBleHBlY3QoZGVmYXVsdFF1ZXJpZXIucmVsZWFzZSkudG9CZUNhbGxlZFRpbWVzKDEpO1xuXG4gICAgY29uc3QgYW5vdGhlclF1ZXJpZXIgPSBhd2FpdCBhbm90aGVyUXVlcmllclBvb2wuZ2V0UXVlcmllcigpO1xuXG4gICAgZXhwZWN0KGFub3RoZXJRdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24pLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgICBleHBlY3QoYW5vdGhlclF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbikudG9CZUNhbGxlZFRpbWVzKDApO1xuICAgIGV4cGVjdChhbm90aGVyUXVlcmllci5yZWxlYXNlKS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gIH0pO1xuXG4gIGl0KCdtaXNzaW5nIGluamVjdFF1ZXJpZXInLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGNsYXNzIFNlcnZpY2VBIHtcbiAgICAgICAgQFRyYW5zYWN0aW9uYWwoKVxuICAgICAgICBhc3luYyBmaW5kKCkge31cbiAgICAgIH1cbiAgICB9KS50b1Rocm93KFwibWlzc2luZyBkZWNvcmF0b3IgQEluamVjdFF1ZXJpZXIoKSBpbiAnU2VydmljZUEuZmluZCdcIik7XG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIGJ1aWxkUXVlcmllck1vY2soKTogUXVlcmllciB7XG4gIGNvbnN0IHF1ZXJpZXIgPSB7XG4gICAgYmVnaW5UcmFuc2FjdGlvbjogamVzdC5mbihhc3luYyAoKSA9PiB7XG4gICAgICBxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbiA9IHRydWU7XG4gICAgfSksXG4gICAgY29tbWl0VHJhbnNhY3Rpb246IGplc3QuZm4oYXN5bmMgKCkgPT4ge1xuICAgICAgcXVlcmllci5oYXNPcGVuVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgfSksXG4gICAgcm9sbGJhY2tUcmFuc2FjdGlvbjogamVzdC5mbihhc3luYyAoKSA9PiB7XG4gICAgICBxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9KSxcbiAgICByZWxlYXNlOiBqZXN0LmZuKGFzeW5jICgpID0+IHt9KSxcbiAgfSBhcyBQYXJ0aWFsPFF1ZXJpZXI+IGFzIFdyaXRhYmxlPFF1ZXJpZXI+O1xuICByZXR1cm4gcXVlcmllcjtcbn1cbiJdfQ==
|
package/type/entity.d.ts
CHANGED
|
@@ -44,8 +44,8 @@ export declare type RelationOptions<E = any> = {
|
|
|
44
44
|
references?: RelationReferences;
|
|
45
45
|
};
|
|
46
46
|
declare type RelationOptionsOwner<E> = Pick<RelationOptions<E>, 'entity' | 'references' | 'cascade'>;
|
|
47
|
-
declare type RelationOptionsInverseSide<E> = Pick<RelationOptions<E>, 'entity' | 'mappedBy'
|
|
48
|
-
declare type RelationOptionsThroughOwner<E> = Pick<RelationOptions<E>, 'entity'
|
|
47
|
+
declare type RelationOptionsInverseSide<E> = Required<Pick<RelationOptions<E>, 'entity' | 'mappedBy'>> & Pick<RelationOptions<E>, 'cascade'>;
|
|
48
|
+
declare type RelationOptionsThroughOwner<E> = Required<Pick<RelationOptions<E>, 'entity'>> & Pick<RelationOptions<E>, 'through' | 'references' | 'cascade'>;
|
|
49
49
|
export declare type RelationKeyMap<E> = {
|
|
50
50
|
readonly [K in keyof E]: K;
|
|
51
51
|
};
|
|
@@ -57,7 +57,7 @@ export declare type RelationReferences = {
|
|
|
57
57
|
export declare type RelationMappedBy<E> = Key<E> | RelationKeyMapper<E>;
|
|
58
58
|
export declare type RelationCardinality = '11' | 'm1' | '1m' | 'mm';
|
|
59
59
|
export declare type RelationOneToOneOptions<E> = RelationOptionsOwner<E> | RelationOptionsInverseSide<E>;
|
|
60
|
-
export declare type RelationOneToManyOptions<E> =
|
|
60
|
+
export declare type RelationOneToManyOptions<E> = RelationOptionsInverseSide<E> | RelationOptionsThroughOwner<E>;
|
|
61
61
|
export declare type RelationManyToOneOptions<E> = RelationOptionsOwner<E> | RelationOptionsInverseSide<E>;
|
|
62
62
|
export declare type RelationManyToManyOptions<E> = RelationOptionsThroughOwner<E> | RelationOptionsInverseSide<E>;
|
|
63
63
|
export declare type EntityMeta<E> = {
|
package/type/entity.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.idKey = void 0;
|
|
4
4
|
exports.idKey = Symbol('idKey');
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGUvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdhLFFBQUEsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5UmF3IH0gZnJvbSAnLi9xdWVyeSc7XG5pbXBvcnQgeyBTY2FsYXIsIFR5cGUgfSBmcm9tICcuL3V0aWxpdHknO1xuXG5leHBvcnQgY29uc3QgaWRLZXkgPSBTeW1ib2woJ2lkS2V5Jyk7XG5cbmV4cG9ydCB0eXBlIEtleTxFPiA9IGtleW9mIEUgJiBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIEZpZWxkS2V5PEU+ID0ge1xuICByZWFkb25seSBbSyBpbiBrZXlvZiBFXTogRVtLXSBleHRlbmRzIFNjYWxhciA/IEsgOiBuZXZlcjtcbn1bS2V5PEU+XTtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25LZXk8RT4gPSB7XG4gIHJlYWRvbmx5IFtLIGluIGtleW9mIEVdOiBFW0tdIGV4dGVuZHMgU2NhbGFyID8gbmV2ZXIgOiBLO1xufVtLZXk8RT5dO1xuXG5leHBvcnQgdHlwZSBGaWVsZFZhbHVlPEU+ID0gRVtGaWVsZEtleTxFPl07XG5cbmV4cG9ydCB0eXBlIElkS2V5PEU+ID0gRSBleHRlbmRzIHsgW2lkS2V5XT86IGluZmVyIEsgfVxuICA/IEsgJiBGaWVsZEtleTxFPlxuICA6IEUgZXh0ZW5kcyB7IF9pZD86IHVua25vd24gfVxuICA/ICdfaWQnICYgRmllbGRLZXk8RT5cbiAgOiBFIGV4dGVuZHMgeyBpZD86IHVua25vd24gfVxuICA/ICdpZCcgJiBGaWVsZEtleTxFPlxuICA6IEZpZWxkS2V5PEU+O1xuXG5leHBvcnQgdHlwZSBJZFZhbHVlPEU+ID0gRVtJZEtleTxFPl07XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uVmFsdWU8RT4gPSBFW1JlbGF0aW9uS2V5PEU+XTtcblxuZXhwb3J0IHR5cGUgRW50aXR5T3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgc29mdERlbGV0ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBGaWVsZE9wdGlvbnMgPSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzSWQ/OiB0cnVlO1xuICByZWFkb25seSB0eXBlPzogYW55O1xuICByZWFkb25seSByZWZlcmVuY2U/OiBFbnRpdHlHZXR0ZXI7XG4gIHJlYWRvbmx5IHZpcnR1YWw/OiBRdWVyeVJhdztcbiAgcmVhZG9ubHkgb25JbnNlcnQ/OiBPbkZpZWxkQ2FsbGJhY2s7XG4gIHJlYWRvbmx5IG9uVXBkYXRlPzogT25GaWVsZENhbGxiYWNrO1xuICByZWFkb25seSBvbkRlbGV0ZT86IE9uRmllbGRDYWxsYmFjaztcbn07XG5cbmV4cG9ydCB0eXBlIE9uRmllbGRDYWxsYmFjayA9IFNjYWxhciB8IFF1ZXJ5UmF3IHwgKCgpID0+IFNjYWxhciB8IFF1ZXJ5UmF3KTtcblxuZXhwb3J0IHR5cGUgRW50aXR5R2V0dGVyPEUgPSBhbnk+ID0gKCkgPT4gVHlwZTxFPjtcblxuZXhwb3J0IHR5cGUgQ2FzY2FkZVR5cGUgPSAncGVyc2lzdCcgfCAnZGVsZXRlJztcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25PcHRpb25zPEUgPSBhbnk+ID0ge1xuICBlbnRpdHk/OiBFbnRpdHlHZXR0ZXI8RT47XG4gIGNhcmRpbmFsaXR5OiBSZWxhdGlvbkNhcmRpbmFsaXR5O1xuICByZWFkb25seSBjYXNjYWRlPzogYm9vbGVhbiB8IENhc2NhZGVUeXBlO1xuICBtYXBwZWRCeT86IFJlbGF0aW9uTWFwcGVkQnk8RT47XG4gIHRocm91Z2g/OiBFbnRpdHlHZXR0ZXI8UmVsYXRpb25WYWx1ZTxFPj47XG4gIHJlZmVyZW5jZXM/OiBSZWxhdGlvblJlZmVyZW5jZXM7XG59O1xuXG50eXBlIFJlbGF0aW9uT3B0aW9uc093bmVyPEU+
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGUvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdhLFFBQUEsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5UmF3IH0gZnJvbSAnLi9xdWVyeSc7XG5pbXBvcnQgeyBTY2FsYXIsIFR5cGUgfSBmcm9tICcuL3V0aWxpdHknO1xuXG5leHBvcnQgY29uc3QgaWRLZXkgPSBTeW1ib2woJ2lkS2V5Jyk7XG5cbmV4cG9ydCB0eXBlIEtleTxFPiA9IGtleW9mIEUgJiBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIEZpZWxkS2V5PEU+ID0ge1xuICByZWFkb25seSBbSyBpbiBrZXlvZiBFXTogRVtLXSBleHRlbmRzIFNjYWxhciA/IEsgOiBuZXZlcjtcbn1bS2V5PEU+XTtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25LZXk8RT4gPSB7XG4gIHJlYWRvbmx5IFtLIGluIGtleW9mIEVdOiBFW0tdIGV4dGVuZHMgU2NhbGFyID8gbmV2ZXIgOiBLO1xufVtLZXk8RT5dO1xuXG5leHBvcnQgdHlwZSBGaWVsZFZhbHVlPEU+ID0gRVtGaWVsZEtleTxFPl07XG5cbmV4cG9ydCB0eXBlIElkS2V5PEU+ID0gRSBleHRlbmRzIHsgW2lkS2V5XT86IGluZmVyIEsgfVxuICA/IEsgJiBGaWVsZEtleTxFPlxuICA6IEUgZXh0ZW5kcyB7IF9pZD86IHVua25vd24gfVxuICA/ICdfaWQnICYgRmllbGRLZXk8RT5cbiAgOiBFIGV4dGVuZHMgeyBpZD86IHVua25vd24gfVxuICA/ICdpZCcgJiBGaWVsZEtleTxFPlxuICA6IEZpZWxkS2V5PEU+O1xuXG5leHBvcnQgdHlwZSBJZFZhbHVlPEU+ID0gRVtJZEtleTxFPl07XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uVmFsdWU8RT4gPSBFW1JlbGF0aW9uS2V5PEU+XTtcblxuZXhwb3J0IHR5cGUgRW50aXR5T3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgc29mdERlbGV0ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBGaWVsZE9wdGlvbnMgPSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzSWQ/OiB0cnVlO1xuICByZWFkb25seSB0eXBlPzogYW55O1xuICByZWFkb25seSByZWZlcmVuY2U/OiBFbnRpdHlHZXR0ZXI7XG4gIHJlYWRvbmx5IHZpcnR1YWw/OiBRdWVyeVJhdztcbiAgcmVhZG9ubHkgb25JbnNlcnQ/OiBPbkZpZWxkQ2FsbGJhY2s7XG4gIHJlYWRvbmx5IG9uVXBkYXRlPzogT25GaWVsZENhbGxiYWNrO1xuICByZWFkb25seSBvbkRlbGV0ZT86IE9uRmllbGRDYWxsYmFjaztcbn07XG5cbmV4cG9ydCB0eXBlIE9uRmllbGRDYWxsYmFjayA9IFNjYWxhciB8IFF1ZXJ5UmF3IHwgKCgpID0+IFNjYWxhciB8IFF1ZXJ5UmF3KTtcblxuZXhwb3J0IHR5cGUgRW50aXR5R2V0dGVyPEUgPSBhbnk+ID0gKCkgPT4gVHlwZTxFPjtcblxuZXhwb3J0IHR5cGUgQ2FzY2FkZVR5cGUgPSAncGVyc2lzdCcgfCAnZGVsZXRlJztcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25PcHRpb25zPEUgPSBhbnk+ID0ge1xuICBlbnRpdHk/OiBFbnRpdHlHZXR0ZXI8RT47XG4gIGNhcmRpbmFsaXR5OiBSZWxhdGlvbkNhcmRpbmFsaXR5O1xuICByZWFkb25seSBjYXNjYWRlPzogYm9vbGVhbiB8IENhc2NhZGVUeXBlO1xuICBtYXBwZWRCeT86IFJlbGF0aW9uTWFwcGVkQnk8RT47XG4gIHRocm91Z2g/OiBFbnRpdHlHZXR0ZXI8UmVsYXRpb25WYWx1ZTxFPj47XG4gIHJlZmVyZW5jZXM/OiBSZWxhdGlvblJlZmVyZW5jZXM7XG59O1xuXG50eXBlIFJlbGF0aW9uT3B0aW9uc093bmVyPEU+ID0gUGljazxSZWxhdGlvbk9wdGlvbnM8RT4sICdlbnRpdHknIHwgJ3JlZmVyZW5jZXMnIHwgJ2Nhc2NhZGUnPjtcbnR5cGUgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT4gPSBSZXF1aXJlZDxQaWNrPFJlbGF0aW9uT3B0aW9uczxFPiwgJ2VudGl0eScgfCAnbWFwcGVkQnknPj4gJiBQaWNrPFJlbGF0aW9uT3B0aW9uczxFPiwgJ2Nhc2NhZGUnPjtcbnR5cGUgUmVsYXRpb25PcHRpb25zVGhyb3VnaE93bmVyPEU+ID0gUmVxdWlyZWQ8UGljazxSZWxhdGlvbk9wdGlvbnM8RT4sICdlbnRpdHknPj4gJiBQaWNrPFJlbGF0aW9uT3B0aW9uczxFPiwgJ3Rocm91Z2gnIHwgJ3JlZmVyZW5jZXMnIHwgJ2Nhc2NhZGUnPjtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25LZXlNYXA8RT4gPSB7IHJlYWRvbmx5IFtLIGluIGtleW9mIEVdOiBLIH07XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uS2V5TWFwcGVyPEU+ID0gKGtleU1hcDogUmVsYXRpb25LZXlNYXA8RT4pID0+IEtleTxFPjtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25SZWZlcmVuY2VzID0geyByZWFkb25seSBsb2NhbDogc3RyaW5nOyByZWFkb25seSBmb3JlaWduOiBzdHJpbmcgfVtdO1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk1hcHBlZEJ5PEU+ID0gS2V5PEU+IHwgUmVsYXRpb25LZXlNYXBwZXI8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uQ2FyZGluYWxpdHkgPSAnMTEnIHwgJ20xJyB8ICcxbScgfCAnbW0nO1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk9uZVRvT25lT3B0aW9uczxFPiA9IFJlbGF0aW9uT3B0aW9uc093bmVyPEU+IHwgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT47XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uT25lVG9NYW55T3B0aW9uczxFPiA9IFJlbGF0aW9uT3B0aW9uc0ludmVyc2VTaWRlPEU+IHwgUmVsYXRpb25PcHRpb25zVGhyb3VnaE93bmVyPEU+O1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk1hbnlUb09uZU9wdGlvbnM8RT4gPSBSZWxhdGlvbk9wdGlvbnNPd25lcjxFPiB8IFJlbGF0aW9uT3B0aW9uc0ludmVyc2VTaWRlPEU+O1xuXG5leHBvcnQgdHlwZSBSZWxhdGlvbk1hbnlUb01hbnlPcHRpb25zPEU+ID0gUmVsYXRpb25PcHRpb25zVGhyb3VnaE93bmVyPEU+IHwgUmVsYXRpb25PcHRpb25zSW52ZXJzZVNpZGU8RT47XG5cbmV4cG9ydCB0eXBlIEVudGl0eU1ldGE8RT4gPSB7XG4gIHJlYWRvbmx5IGVudGl0eTogVHlwZTxFPjtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBJZEtleTxFPjtcbiAgc29mdERlbGV0ZT86IEZpZWxkS2V5PEU+O1xuICBmaWVsZHM6IHtcbiAgICBbSyBpbiBGaWVsZEtleTxFPl0/OiBGaWVsZE9wdGlvbnM7XG4gIH07XG4gIHJlbGF0aW9uczoge1xuICAgIFtLIGluIFJlbGF0aW9uS2V5PEU+XT86IFJlbGF0aW9uT3B0aW9ucztcbiAgfTtcbiAgcHJvY2Vzc2VkPzogYm9vbGVhbjtcbn07XG4iXX0=
|
package/type/index.d.ts
CHANGED
package/type/index.js
CHANGED
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./utility"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./options"), exports);
|
|
6
5
|
tslib_1.__exportStar(require("./entity"), exports);
|
|
7
6
|
tslib_1.__exportStar(require("./query"), exports);
|
|
8
7
|
tslib_1.__exportStar(require("./universalQuerier"), exports);
|
|
9
8
|
tslib_1.__exportStar(require("./querier"), exports);
|
|
10
9
|
tslib_1.__exportStar(require("./querierPool"), exports);
|
|
11
10
|
tslib_1.__exportStar(require("./repository"), exports);
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBMEI7QUFDMUIsbURBQXlCO0FBQ3pCLGtEQUF3QjtBQUN4Qiw2REFBbUM7QUFDbkMsb0RBQTBCO0FBQzFCLHdEQUE4QjtBQUM5Qix1REFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3V0aWxpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9lbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3VuaXZlcnNhbFF1ZXJpZXInO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyaWVyJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcmllclBvb2wnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBvc2l0b3J5JztcbiJdfQ==
|
package/type/options.d.ts
DELETED
package/type/options.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJpZXJQb29sIH0gZnJvbSAnLi9xdWVyaWVyUG9vbCc7XG5cbmV4cG9ydCB0eXBlIFVxbE9wdGlvbnM8VCBleHRlbmRzIFF1ZXJpZXJQb29sID0gUXVlcmllclBvb2w+ID0ge1xuICAvKipcbiAgICogdGhlIGRlZmF1bHQgcXVlcmllci1wb29sIGluc3RhbmNlLlxuICAgKi9cbiAgcXVlcmllclBvb2w6IFQ7XG59O1xuIl19
|