athena-query-result-pager 0.1.8 → 0.2.0
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 +47 -9
- package/lib/index.js +15 -2
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
# Athena Query Result Pager
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+
|
|
6
|
+
Paginate AWS Athena query results with AWS SDK v3. This package fetches results page by page and supports raw rows or custom row parsing via [athena-query-result-parser](https://www.npmjs.com/package/athena-query-result-parser).
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
- Paginates Athena `GetQueryResults` responses with `nextToken`.
|
|
11
|
+
- Supports raw rows (`ParsedRow`) and custom typed row parsing.
|
|
12
|
+
- Provides async generators for page-by-page and row-by-row iteration.
|
|
13
|
+
- Includes fail-fast input validation:
|
|
14
|
+
- `maxResults` must be an integer in `1..1000`.
|
|
15
|
+
- `queryExecutionId` must be a non-empty string.
|
|
16
|
+
- Exposes a simple static utility: `AthenaQueryResultPager.hasNextPage(...)`.
|
|
4
17
|
|
|
5
18
|
## Installation
|
|
6
19
|
|
|
@@ -8,13 +21,15 @@ Paginate AWS Athena query results with the AWS SDK v3. Fetches results page by p
|
|
|
8
21
|
npm install athena-query-result-pager
|
|
9
22
|
```
|
|
10
23
|
|
|
11
|
-
|
|
24
|
+
```bash
|
|
25
|
+
yarn add athena-query-result-pager
|
|
26
|
+
```
|
|
12
27
|
|
|
13
|
-
|
|
28
|
+
Dependencies: `@aws-sdk/client-athena`, `athena-query-result-parser`.
|
|
14
29
|
|
|
15
30
|
## Usage
|
|
16
31
|
|
|
17
|
-
### Create a pager
|
|
32
|
+
### Create a pager instance
|
|
18
33
|
|
|
19
34
|
```ts
|
|
20
35
|
import { AthenaClient } from '@aws-sdk/client-athena';
|
|
@@ -22,12 +37,12 @@ import { AthenaQueryResultPager } from 'athena-query-result-pager';
|
|
|
22
37
|
|
|
23
38
|
const client = new AthenaClient({ region: 'us-east-1' });
|
|
24
39
|
const pager = new AthenaQueryResultPager(client, {
|
|
25
|
-
maxResults: 1000,
|
|
26
|
-
queryResultType: 'DATA_ROWS',
|
|
40
|
+
maxResults: 1000,
|
|
41
|
+
queryResultType: 'DATA_ROWS',
|
|
27
42
|
});
|
|
28
43
|
```
|
|
29
44
|
|
|
30
|
-
### Fetch
|
|
45
|
+
### Fetch one page (raw rows)
|
|
31
46
|
|
|
32
47
|
```ts
|
|
33
48
|
const page = await pager.fetchPage('query-execution-id');
|
|
@@ -39,7 +54,7 @@ if (AthenaQueryResultPager.hasNextPage(page)) {
|
|
|
39
54
|
}
|
|
40
55
|
```
|
|
41
56
|
|
|
42
|
-
### Fetch
|
|
57
|
+
### Fetch one page with a custom row parser
|
|
43
58
|
|
|
44
59
|
```ts
|
|
45
60
|
import type { RowParser } from 'athena-query-result-pager';
|
|
@@ -84,6 +99,24 @@ When processing a different query with the same pager instance, reset the parser
|
|
|
84
99
|
pager.reset();
|
|
85
100
|
```
|
|
86
101
|
|
|
102
|
+
## Options
|
|
103
|
+
|
|
104
|
+
### `PagerOptions`
|
|
105
|
+
|
|
106
|
+
- `maxResults?: number`
|
|
107
|
+
- Default: `1000`
|
|
108
|
+
- Valid range: integer `1..1000` (Athena limit)
|
|
109
|
+
- Throws `RangeError` when invalid
|
|
110
|
+
- `queryResultType?: 'DATA_ROWS'`
|
|
111
|
+
- Default: `'DATA_ROWS'`
|
|
112
|
+
|
|
113
|
+
### Method input validation
|
|
114
|
+
|
|
115
|
+
- `fetchPage(queryExecutionId, nextToken?)`
|
|
116
|
+
- `fetchPageWith(queryExecutionId, rowParser, nextToken?)`
|
|
117
|
+
|
|
118
|
+
Both methods throw an error if `queryExecutionId` is empty or whitespace only.
|
|
119
|
+
|
|
87
120
|
## API
|
|
88
121
|
|
|
89
122
|
### `AthenaQueryResultPager`
|
|
@@ -103,6 +136,11 @@ pager.reset();
|
|
|
103
136
|
- **`PagerOptions`** — `{ maxResults?: number; queryResultType?: 'DATA_ROWS' }`
|
|
104
137
|
- **`ParsedRow`**, **`RowParser<T>`** — re-exported from `athena-query-result-parser`.
|
|
105
138
|
|
|
139
|
+
## Requirements
|
|
140
|
+
|
|
141
|
+
- Node.js `>= 20.0.0`
|
|
142
|
+
- AWS SDK v3 client: `@aws-sdk/client-athena`
|
|
143
|
+
|
|
106
144
|
## License
|
|
107
145
|
|
|
108
|
-
This project is licensed under the Apache-2.0 License.
|
|
146
|
+
This project is licensed under the (Apache-2.0) License.
|
package/lib/index.js
CHANGED
|
@@ -5,6 +5,9 @@ const client_athena_1 = require("@aws-sdk/client-athena");
|
|
|
5
5
|
const athena_query_result_parser_1 = require("athena-query-result-parser");
|
|
6
6
|
/** Default maximum number of rows per page. */
|
|
7
7
|
const DEFAULT_MAX_RESULTS = 1000;
|
|
8
|
+
/** Minimum and maximum allowed by Athena GetQueryResults. */
|
|
9
|
+
const MIN_MAX_RESULTS = 1;
|
|
10
|
+
const MAX_MAX_RESULTS = 1000;
|
|
8
11
|
/** Default query result type for GetQueryResults. */
|
|
9
12
|
const DEFAULT_QUERY_RESULT_TYPE = 'DATA_ROWS';
|
|
10
13
|
/**
|
|
@@ -20,9 +23,13 @@ class AthenaQueryResultPager {
|
|
|
20
23
|
return pageResult.nextToken !== undefined;
|
|
21
24
|
}
|
|
22
25
|
constructor(client, options = {}) {
|
|
26
|
+
const maxResults = options.maxResults ?? DEFAULT_MAX_RESULTS;
|
|
27
|
+
if (!Number.isInteger(maxResults) || maxResults < MIN_MAX_RESULTS || maxResults > MAX_MAX_RESULTS) {
|
|
28
|
+
throw new RangeError(`options.maxResults must be an integer between ${MIN_MAX_RESULTS} and ${MAX_MAX_RESULTS}, got ${String(maxResults)}`);
|
|
29
|
+
}
|
|
23
30
|
this.client = client;
|
|
24
31
|
this.options = {
|
|
25
|
-
maxResults
|
|
32
|
+
maxResults,
|
|
26
33
|
queryResultType: options.queryResultType ?? DEFAULT_QUERY_RESULT_TYPE,
|
|
27
34
|
};
|
|
28
35
|
this.parser = new athena_query_result_parser_1.AthenaQueryResultParser();
|
|
@@ -34,6 +41,9 @@ class AthenaQueryResultPager {
|
|
|
34
41
|
* @returns Page result.
|
|
35
42
|
*/
|
|
36
43
|
async fetchPage(queryExecutionId, nextToken) {
|
|
44
|
+
if (queryExecutionId.trim() === '') {
|
|
45
|
+
throw new Error('queryExecutionId must be a non-empty string');
|
|
46
|
+
}
|
|
37
47
|
const input = {
|
|
38
48
|
QueryExecutionId: queryExecutionId,
|
|
39
49
|
NextToken: nextToken,
|
|
@@ -55,6 +65,9 @@ class AthenaQueryResultPager {
|
|
|
55
65
|
* @returns Page result.
|
|
56
66
|
*/
|
|
57
67
|
async fetchPageWith(queryExecutionId, rowParser, nextToken) {
|
|
68
|
+
if (queryExecutionId.trim() === '') {
|
|
69
|
+
throw new Error('queryExecutionId must be a non-empty string');
|
|
70
|
+
}
|
|
58
71
|
const input = {
|
|
59
72
|
QueryExecutionId: queryExecutionId,
|
|
60
73
|
NextToken: nextToken,
|
|
@@ -113,4 +126,4 @@ class AthenaQueryResultPager {
|
|
|
113
126
|
}
|
|
114
127
|
}
|
|
115
128
|
exports.AthenaQueryResultPager = AthenaQueryResultPager;
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQWdIO0FBQ2hILDJFQUFxRztBQUVyRywrQ0FBK0M7QUFDL0MsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFFakMscURBQXFEO0FBQ3JELE1BQU0seUJBQXlCLEdBQUcsV0FBb0IsQ0FBQztBQXdCdkQ7OztHQUdHO0FBQ0gsTUFBYSxzQkFBc0I7SUFFakM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBSSxVQUF5QjtRQUM3QyxPQUFPLFVBQVUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDO0lBQzVDLENBQUM7SUFNRCxZQUFZLE1BQW9CLEVBQUUsVUFBd0IsRUFBRTtRQUMxRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksbUJBQW1CO1lBQ3JELGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZSxJQUFJLHlCQUF5QjtTQUN0RSxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLG9EQUF1QixFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FDYixnQkFBd0IsRUFDeEIsU0FBa0I7UUFFbEIsTUFBTSxLQUFLLEdBQWdDO1lBQ3pDLGdCQUFnQixFQUFFLGdCQUFnQjtZQUNsQyxTQUFTLEVBQUUsU0FBUztZQUNwQixVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1NBQ3BDLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksc0NBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUUzRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUQsT0FBTztZQUNMLElBQUk7WUFDSixTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7WUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FDakIsZ0JBQXdCLEVBQ3hCLFNBQXVCLEVBQ3ZCLFNBQWtCO1FBRWxCLE1BQU0sS0FBSyxHQUFnQztZQUN6QyxnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsU0FBUyxFQUFFLFNBQVM7WUFDcEIsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVTtTQUNwQyxDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLHNDQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFM0UsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTNFLE9BQU87WUFDTCxJQUFJO1lBQ0osU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO1lBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTTtTQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FDakIsZ0JBQXdCO1FBRXhCLElBQUksU0FBNkIsQ0FBQztRQUVsQyxHQUFHLENBQUM7WUFDRixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDL0QsTUFBTSxJQUFJLENBQUM7WUFDWCxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM3QixDQUFDLFFBQVEsU0FBUyxFQUFFO0lBQ3RCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLENBQ3JCLGdCQUF3QixFQUN4QixTQUF1QjtRQUV2QixJQUFJLFNBQTZCLENBQUM7UUFFbEMsR0FBRyxDQUFDO1lBQ0YsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM5RSxNQUFNLElBQUksQ0FBQztZQUNYLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzdCLENBQUMsUUFBUSxTQUFTLEVBQUU7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQ2hCLGdCQUF3QixFQUN4QixTQUF1QjtRQUV2QixJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM1RSxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxHQUFHLENBQUM7WUFDWixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksb0RBQXVCLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUF2SUQsd0RBdUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXRoZW5hQ2xpZW50LCBHZXRRdWVyeVJlc3VsdHNDb21tYW5kLCB0eXBlIEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRJbnB1dCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1hdGhlbmEnO1xuaW1wb3J0IHsgQXRoZW5hUXVlcnlSZXN1bHRQYXJzZXIsIHR5cGUgUGFyc2VkUm93LCB0eXBlIFJvd1BhcnNlciB9IGZyb20gJ2F0aGVuYS1xdWVyeS1yZXN1bHQtcGFyc2VyJztcblxuLyoqIERlZmF1bHQgbWF4aW11bSBudW1iZXIgb2Ygcm93cyBwZXIgcGFnZS4gKi9cbmNvbnN0IERFRkFVTFRfTUFYX1JFU1VMVFMgPSAxMDAwO1xuXG4vKiogRGVmYXVsdCBxdWVyeSByZXN1bHQgdHlwZSBmb3IgR2V0UXVlcnlSZXN1bHRzLiAqL1xuY29uc3QgREVGQVVMVF9RVUVSWV9SRVNVTFRfVFlQRSA9ICdEQVRBX1JPV1MnIGFzIGNvbnN0O1xuXG4vKipcbiAqIFR5cGUgZm9yIGEgc2luZ2xlIHBhZ2Ugb2YgcXVlcnkgcmVzdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWdlUmVzdWx0PFQ+IHtcbiAgLyoqIFBhcnNlZCByb3cgZGF0YS4gKi9cbiAgcm93czogVFtdO1xuICAvKiogVG9rZW4gZm9yIHRoZSBuZXh0IHBhZ2UgKHVuZGVmaW5lZCBpZiBubyBtb3JlIHBhZ2VzKS4gKi9cbiAgbmV4dFRva2VuPzogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIHJvd3MgaW4gdGhpcyBwYWdlLiAqL1xuICByb3dDb3VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBwYWdlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWdlck9wdGlvbnMge1xuICAvKiogTWF4aW11bSBudW1iZXIgb2Ygcm93cyBwZXIgcGFnZSAoZGVmYXVsdDogMTAwMCkuICovXG4gIG1heFJlc3VsdHM/OiBudW1iZXI7XG4gIC8qKiBRdWVyeSByZXN1bHQgdHlwZSAoZGVmYXVsdDogJ0RBVEFfUk9XUycpLiAqL1xuICBxdWVyeVJlc3VsdFR5cGU/OiAnREFUQV9ST1dTJztcbn1cblxuLyoqXG4gKiBBdGhlbmFRdWVyeVJlc3VsdFBhZ2VyXG4gKiBGZXRjaGVzIEF0aGVuYSBxdWVyeSByZXN1bHRzIHBhZ2UgYnkgcGFnZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEF0aGVuYVF1ZXJ5UmVzdWx0UGFnZXIge1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgaXMgYSBuZXh0IHBhZ2UuXG4gICAqIEBwYXJhbSBwYWdlUmVzdWx0IC0gUHJldmlvdXMgcGFnZSByZXN1bHQuXG4gICAqL1xuICBzdGF0aWMgaGFzTmV4dFBhZ2U8VD4ocGFnZVJlc3VsdDogUGFnZVJlc3VsdDxUPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwYWdlUmVzdWx0Lm5leHRUb2tlbiAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IEF0aGVuYUNsaWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBSZXF1aXJlZDxQYWdlck9wdGlvbnM+O1xuICBwcml2YXRlIHBhcnNlcjogQXRoZW5hUXVlcnlSZXN1bHRQYXJzZXI7XG5cbiAgY29uc3RydWN0b3IoY2xpZW50OiBBdGhlbmFDbGllbnQsIG9wdGlvbnM6IFBhZ2VyT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgbWF4UmVzdWx0czogb3B0aW9ucy5tYXhSZXN1bHRzID8/IERFRkFVTFRfTUFYX1JFU1VMVFMsXG4gICAgICBxdWVyeVJlc3VsdFR5cGU6IG9wdGlvbnMucXVlcnlSZXN1bHRUeXBlID8/IERFRkFVTFRfUVVFUllfUkVTVUxUX1RZUEUsXG4gICAgfTtcbiAgICB0aGlzLnBhcnNlciA9IG5ldyBBdGhlbmFRdWVyeVJlc3VsdFBhcnNlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgb25lIHBhZ2Ugb2YgZGF0YSBhcyByYXcgUGFyc2VkUm93LlxuICAgKiBAcGFyYW0gcXVlcnlFeGVjdXRpb25JZCAtIFF1ZXJ5IGV4ZWN1dGlvbiBJRC5cbiAgICogQHBhcmFtIG5leHRUb2tlbiAtIFRva2VuIGZvciB0aGUgbmV4dCBwYWdlICh1bmRlZmluZWQgb24gZmlyc3QgY2FsbCkuXG4gICAqIEByZXR1cm5zIFBhZ2UgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgZmV0Y2hQYWdlKFxuICAgIHF1ZXJ5RXhlY3V0aW9uSWQ6IHN0cmluZyxcbiAgICBuZXh0VG9rZW4/OiBzdHJpbmcsXG4gICk6IFByb21pc2U8UGFnZVJlc3VsdDxQYXJzZWRSb3c+PiB7XG4gICAgY29uc3QgaW5wdXQ6IEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmRJbnB1dCA9IHtcbiAgICAgIFF1ZXJ5RXhlY3V0aW9uSWQ6IHF1ZXJ5RXhlY3V0aW9uSWQsXG4gICAgICBOZXh0VG9rZW46IG5leHRUb2tlbixcbiAgICAgIE1heFJlc3VsdHM6IHRoaXMub3B0aW9ucy5tYXhSZXN1bHRzLFxuICAgIH07XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnNlbmQobmV3IEdldFF1ZXJ5UmVzdWx0c0NvbW1hbmQoaW5wdXQpKTtcblxuICAgIGNvbnN0IHJvd3MgPSB0aGlzLnBhcnNlci5wYXJzZVJlc3VsdFNldChyZXNwb25zZS5SZXN1bHRTZXQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJvd3MsXG4gICAgICBuZXh0VG9rZW46IHJlc3BvbnNlLk5leHRUb2tlbixcbiAgICAgIHJvd0NvdW50OiByb3dzLmxlbmd0aCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgb25lIHBhZ2Ugb2YgZGF0YSBhbmQgdHJhbnNmb3JtcyBpdCB3aXRoIGEgY3VzdG9tIHJvdyBwYXJzZXIuXG4gICAqIEBwYXJhbSBxdWVyeUV4ZWN1dGlvbklkIC0gUXVlcnkgZXhlY3V0aW9uIElELlxuICAgKiBAcGFyYW0gcm93UGFyc2VyIC0gUm93IHBhcnNlci5cbiAgICogQHBhcmFtIG5leHRUb2tlbiAtIFRva2VuIGZvciB0aGUgbmV4dCBwYWdlICh1bmRlZmluZWQgb24gZmlyc3QgY2FsbCkuXG4gICAqIEByZXR1cm5zIFBhZ2UgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgZmV0Y2hQYWdlV2l0aDxUPihcbiAgICBxdWVyeUV4ZWN1dGlvbklkOiBzdHJpbmcsXG4gICAgcm93UGFyc2VyOiBSb3dQYXJzZXI8VD4sXG4gICAgbmV4dFRva2VuPzogc3RyaW5nLFxuICApOiBQcm9taXNlPFBhZ2VSZXN1bHQ8VD4+IHtcbiAgICBjb25zdCBpbnB1dDogR2V0UXVlcnlSZXN1bHRzQ29tbWFuZElucHV0ID0ge1xuICAgICAgUXVlcnlFeGVjdXRpb25JZDogcXVlcnlFeGVjdXRpb25JZCxcbiAgICAgIE5leHRUb2tlbjogbmV4dFRva2VuLFxuICAgICAgTWF4UmVzdWx0czogdGhpcy5vcHRpb25zLm1heFJlc3VsdHMsXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuc2VuZChuZXcgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZChpbnB1dCkpO1xuXG4gICAgY29uc3Qgcm93cyA9IHRoaXMucGFyc2VyLnBhcnNlUmVzdWx0U2V0V2l0aChyZXNwb25zZS5SZXN1bHRTZXQsIHJvd1BhcnNlcik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcm93cyxcbiAgICAgIG5leHRUb2tlbjogcmVzcG9uc2UuTmV4dFRva2VuLFxuICAgICAgcm93Q291bnQ6IHJvd3MubGVuZ3RoLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSXRlcmF0ZXMgcGFnZSBieSBwYWdlIHZpYSBBc3luY0dlbmVyYXRvciAocmF3IFBhcnNlZFJvdykuXG4gICAqIEBwYXJhbSBxdWVyeUV4ZWN1dGlvbklkIC0gUXVlcnkgZXhlY3V0aW9uIElELlxuICAgKi9cbiAgYXN5bmMgKml0ZXJhdGVQYWdlcyhcbiAgICBxdWVyeUV4ZWN1dGlvbklkOiBzdHJpbmcsXG4gICk6IEFzeW5jR2VuZXJhdG9yPFBhZ2VSZXN1bHQ8UGFyc2VkUm93Pj4ge1xuICAgIGxldCBuZXh0VG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGRvIHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCB0aGlzLmZldGNoUGFnZShxdWVyeUV4ZWN1dGlvbklkLCBuZXh0VG9rZW4pO1xuICAgICAgeWllbGQgcGFnZTtcbiAgICAgIG5leHRUb2tlbiA9IHBhZ2UubmV4dFRva2VuO1xuICAgIH0gd2hpbGUgKG5leHRUb2tlbik7XG4gIH1cblxuICAvKipcbiAgICogSXRlcmF0ZXMgcGFnZSBieSBwYWdlIHZpYSBBc3luY0dlbmVyYXRvciB3aXRoIGEgY3VzdG9tIHJvdyBwYXJzZXIuXG4gICAqIEBwYXJhbSBxdWVyeUV4ZWN1dGlvbklkIC0gUXVlcnkgZXhlY3V0aW9uIElELlxuICAgKiBAcGFyYW0gcm93UGFyc2VyIC0gUm93IHBhcnNlci5cbiAgICovXG4gIGFzeW5jICppdGVyYXRlUGFnZXNXaXRoPFQ+KFxuICAgIHF1ZXJ5RXhlY3V0aW9uSWQ6IHN0cmluZyxcbiAgICByb3dQYXJzZXI6IFJvd1BhcnNlcjxUPixcbiAgKTogQXN5bmNHZW5lcmF0b3I8UGFnZVJlc3VsdDxUPj4ge1xuICAgIGxldCBuZXh0VG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGRvIHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCB0aGlzLmZldGNoUGFnZVdpdGgocXVlcnlFeGVjdXRpb25JZCwgcm93UGFyc2VyLCBuZXh0VG9rZW4pO1xuICAgICAgeWllbGQgcGFnZTtcbiAgICAgIG5leHRUb2tlbiA9IHBhZ2UubmV4dFRva2VuO1xuICAgIH0gd2hpbGUgKG5leHRUb2tlbik7XG4gIH1cblxuICAvKipcbiAgICogSXRlcmF0ZXMgcm93IGJ5IHJvdyB2aWEgQXN5bmNHZW5lcmF0b3IgKG1lbW9yeS1lZmZpY2llbnQpLlxuICAgKiBAcGFyYW0gcXVlcnlFeGVjdXRpb25JZCAtIFF1ZXJ5IGV4ZWN1dGlvbiBJRC5cbiAgICogQHBhcmFtIHJvd1BhcnNlciAtIFJvdyBwYXJzZXIuXG4gICAqL1xuICBhc3luYyAqaXRlcmF0ZVJvd3M8VD4oXG4gICAgcXVlcnlFeGVjdXRpb25JZDogc3RyaW5nLFxuICAgIHJvd1BhcnNlcjogUm93UGFyc2VyPFQ+LFxuICApOiBBc3luY0dlbmVyYXRvcjxUPiB7XG4gICAgZm9yIGF3YWl0IChjb25zdCBwYWdlIG9mIHRoaXMuaXRlcmF0ZVBhZ2VzV2l0aChxdWVyeUV4ZWN1dGlvbklkLCByb3dQYXJzZXIpKSB7XG4gICAgICBmb3IgKGNvbnN0IHJvdyBvZiBwYWdlLnJvd3MpIHtcbiAgICAgICAgeWllbGQgcm93O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIHBhcnNlciBzdGF0ZS4gQ2FsbCBiZWZvcmUgcHJvY2Vzc2luZyBhIG5ldyBxdWVyeS5cbiAgICovXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMucGFyc2VyID0gbmV3IEF0aGVuYVF1ZXJ5UmVzdWx0UGFyc2VyKCk7XG4gIH1cbn1cblxuLyoqIFJlLWV4cG9ydCBvZiB0eXBlcyBmcm9tIGF0aGVuYS1xdWVyeS1yZXN1bHQtcGFyc2VyLiAqL1xuZXhwb3J0IHR5cGUgeyBQYXJzZWRSb3csIFJvd1BhcnNlciB9OyJdfQ==
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQWdIO0FBQ2hILDJFQUFxRztBQUVyRywrQ0FBK0M7QUFDL0MsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFDakMsNkRBQTZEO0FBQzdELE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUMxQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFFN0IscURBQXFEO0FBQ3JELE1BQU0seUJBQXlCLEdBQUcsV0FBb0IsQ0FBQztBQXdCdkQ7OztHQUdHO0FBQ0gsTUFBYSxzQkFBc0I7SUFFakM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBSSxVQUF5QjtRQUM3QyxPQUFPLFVBQVUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDO0lBQzVDLENBQUM7SUFNRCxZQUFZLE1BQW9CLEVBQUUsVUFBd0IsRUFBRTtRQUMxRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLG1CQUFtQixDQUFDO1FBQzdELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsR0FBRyxlQUFlLElBQUksVUFBVSxHQUFHLGVBQWUsRUFBRSxDQUFDO1lBQ2xHLE1BQU0sSUFBSSxVQUFVLENBQ2xCLGlEQUFpRCxlQUFlLFFBQVEsZUFBZSxTQUFTLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUNySCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixVQUFVO1lBQ1YsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlLElBQUkseUJBQXlCO1NBQ3RFLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksb0RBQXVCLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7O09BS0c7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LENBQUM7WUFDNUUsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sR0FBRyxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLG9EQUF1QixFQUFFLENBQUM7SUFDOUMsQ0FBQztDQUNGO0FBdEpELHdEQXNKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0aGVuYUNsaWVudCwgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZCwgdHlwZSBHZXRRdWVyeVJlc3VsdHNDb21tYW5kSW5wdXQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtYXRoZW5hJztcbmltcG9ydCB7IEF0aGVuYVF1ZXJ5UmVzdWx0UGFyc2VyLCB0eXBlIFBhcnNlZFJvdywgdHlwZSBSb3dQYXJzZXIgfSBmcm9tICdhdGhlbmEtcXVlcnktcmVzdWx0LXBhcnNlcic7XG5cbi8qKiBEZWZhdWx0IG1heGltdW0gbnVtYmVyIG9mIHJvd3MgcGVyIHBhZ2UuICovXG5jb25zdCBERUZBVUxUX01BWF9SRVNVTFRTID0gMTAwMDtcbi8qKiBNaW5pbXVtIGFuZCBtYXhpbXVtIGFsbG93ZWQgYnkgQXRoZW5hIEdldFF1ZXJ5UmVzdWx0cy4gKi9cbmNvbnN0IE1JTl9NQVhfUkVTVUxUUyA9IDE7XG5jb25zdCBNQVhfTUFYX1JFU1VMVFMgPSAxMDAwO1xuXG4vKiogRGVmYXVsdCBxdWVyeSByZXN1bHQgdHlwZSBmb3IgR2V0UXVlcnlSZXN1bHRzLiAqL1xuY29uc3QgREVGQVVMVF9RVUVSWV9SRVNVTFRfVFlQRSA9ICdEQVRBX1JPV1MnIGFzIGNvbnN0O1xuXG4vKipcbiAqIFR5cGUgZm9yIGEgc2luZ2xlIHBhZ2Ugb2YgcXVlcnkgcmVzdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWdlUmVzdWx0PFQ+IHtcbiAgLyoqIFBhcnNlZCByb3cgZGF0YS4gKi9cbiAgcm93czogVFtdO1xuICAvKiogVG9rZW4gZm9yIHRoZSBuZXh0IHBhZ2UgKHVuZGVmaW5lZCBpZiBubyBtb3JlIHBhZ2VzKS4gKi9cbiAgbmV4dFRva2VuPzogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIHJvd3MgaW4gdGhpcyBwYWdlLiAqL1xuICByb3dDb3VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBwYWdlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWdlck9wdGlvbnMge1xuICAvKiogTWF4aW11bSBudW1iZXIgb2Ygcm93cyBwZXIgcGFnZSAoZGVmYXVsdDogMTAwMCkuICovXG4gIG1heFJlc3VsdHM/OiBudW1iZXI7XG4gIC8qKiBRdWVyeSByZXN1bHQgdHlwZSAoZGVmYXVsdDogJ0RBVEFfUk9XUycpLiAqL1xuICBxdWVyeVJlc3VsdFR5cGU/OiAnREFUQV9ST1dTJztcbn1cblxuLyoqXG4gKiBBdGhlbmFRdWVyeVJlc3VsdFBhZ2VyXG4gKiBGZXRjaGVzIEF0aGVuYSBxdWVyeSByZXN1bHRzIHBhZ2UgYnkgcGFnZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEF0aGVuYVF1ZXJ5UmVzdWx0UGFnZXIge1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgaXMgYSBuZXh0IHBhZ2UuXG4gICAqIEBwYXJhbSBwYWdlUmVzdWx0IC0gUHJldmlvdXMgcGFnZSByZXN1bHQuXG4gICAqL1xuICBzdGF0aWMgaGFzTmV4dFBhZ2U8VD4ocGFnZVJlc3VsdDogUGFnZVJlc3VsdDxUPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwYWdlUmVzdWx0Lm5leHRUb2tlbiAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjbGllbnQ6IEF0aGVuYUNsaWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBSZXF1aXJlZDxQYWdlck9wdGlvbnM+O1xuICBwcml2YXRlIHBhcnNlcjogQXRoZW5hUXVlcnlSZXN1bHRQYXJzZXI7XG5cbiAgY29uc3RydWN0b3IoY2xpZW50OiBBdGhlbmFDbGllbnQsIG9wdGlvbnM6IFBhZ2VyT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgbWF4UmVzdWx0cyA9IG9wdGlvbnMubWF4UmVzdWx0cyA/PyBERUZBVUxUX01BWF9SRVNVTFRTO1xuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihtYXhSZXN1bHRzKSB8fCBtYXhSZXN1bHRzIDwgTUlOX01BWF9SRVNVTFRTIHx8IG1heFJlc3VsdHMgPiBNQVhfTUFYX1JFU1VMVFMpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFxuICAgICAgICBgb3B0aW9ucy5tYXhSZXN1bHRzIG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuICR7TUlOX01BWF9SRVNVTFRTfSBhbmQgJHtNQVhfTUFYX1JFU1VMVFN9LCBnb3QgJHtTdHJpbmcobWF4UmVzdWx0cyl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgbWF4UmVzdWx0cyxcbiAgICAgIHF1ZXJ5UmVzdWx0VHlwZTogb3B0aW9ucy5xdWVyeVJlc3VsdFR5cGUgPz8gREVGQVVMVF9RVUVSWV9SRVNVTFRfVFlQRSxcbiAgICB9O1xuICAgIHRoaXMucGFyc2VyID0gbmV3IEF0aGVuYVF1ZXJ5UmVzdWx0UGFyc2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBvbmUgcGFnZSBvZiBkYXRhIGFzIHJhdyBQYXJzZWRSb3cuXG4gICAqIEBwYXJhbSBxdWVyeUV4ZWN1dGlvbklkIC0gUXVlcnkgZXhlY3V0aW9uIElELlxuICAgKiBAcGFyYW0gbmV4dFRva2VuIC0gVG9rZW4gZm9yIHRoZSBuZXh0IHBhZ2UgKHVuZGVmaW5lZCBvbiBmaXJzdCBjYWxsKS5cbiAgICogQHJldHVybnMgUGFnZSByZXN1bHQuXG4gICAqL1xuICBhc3luYyBmZXRjaFBhZ2UoXG4gICAgcXVlcnlFeGVjdXRpb25JZDogc3RyaW5nLFxuICAgIG5leHRUb2tlbj86IHN0cmluZyxcbiAgKTogUHJvbWlzZTxQYWdlUmVzdWx0PFBhcnNlZFJvdz4+IHtcbiAgICBpZiAocXVlcnlFeGVjdXRpb25JZC50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3F1ZXJ5RXhlY3V0aW9uSWQgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnB1dDogR2V0UXVlcnlSZXN1bHRzQ29tbWFuZElucHV0ID0ge1xuICAgICAgUXVlcnlFeGVjdXRpb25JZDogcXVlcnlFeGVjdXRpb25JZCxcbiAgICAgIE5leHRUb2tlbjogbmV4dFRva2VuLFxuICAgICAgTWF4UmVzdWx0czogdGhpcy5vcHRpb25zLm1heFJlc3VsdHMsXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuc2VuZChuZXcgR2V0UXVlcnlSZXN1bHRzQ29tbWFuZChpbnB1dCkpO1xuXG4gICAgY29uc3Qgcm93cyA9IHRoaXMucGFyc2VyLnBhcnNlUmVzdWx0U2V0KHJlc3BvbnNlLlJlc3VsdFNldCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcm93cyxcbiAgICAgIG5leHRUb2tlbjogcmVzcG9uc2UuTmV4dFRva2VuLFxuICAgICAgcm93Q291bnQ6IHJvd3MubGVuZ3RoLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBvbmUgcGFnZSBvZiBkYXRhIGFuZCB0cmFuc2Zvcm1zIGl0IHdpdGggYSBjdXN0b20gcm93IHBhcnNlci5cbiAgICogQHBhcmFtIHF1ZXJ5RXhlY3V0aW9uSWQgLSBRdWVyeSBleGVjdXRpb24gSUQuXG4gICAqIEBwYXJhbSByb3dQYXJzZXIgLSBSb3cgcGFyc2VyLlxuICAgKiBAcGFyYW0gbmV4dFRva2VuIC0gVG9rZW4gZm9yIHRoZSBuZXh0IHBhZ2UgKHVuZGVmaW5lZCBvbiBmaXJzdCBjYWxsKS5cbiAgICogQHJldHVybnMgUGFnZSByZXN1bHQuXG4gICAqL1xuICBhc3luYyBmZXRjaFBhZ2VXaXRoPFQ+KFxuICAgIHF1ZXJ5RXhlY3V0aW9uSWQ6IHN0cmluZyxcbiAgICByb3dQYXJzZXI6IFJvd1BhcnNlcjxUPixcbiAgICBuZXh0VG9rZW4/OiBzdHJpbmcsXG4gICk6IFByb21pc2U8UGFnZVJlc3VsdDxUPj4ge1xuICAgIGlmIChxdWVyeUV4ZWN1dGlvbklkLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncXVlcnlFeGVjdXRpb25JZCBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0OiBHZXRRdWVyeVJlc3VsdHNDb21tYW5kSW5wdXQgPSB7XG4gICAgICBRdWVyeUV4ZWN1dGlvbklkOiBxdWVyeUV4ZWN1dGlvbklkLFxuICAgICAgTmV4dFRva2VuOiBuZXh0VG9rZW4sXG4gICAgICBNYXhSZXN1bHRzOiB0aGlzLm9wdGlvbnMubWF4UmVzdWx0cyxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5zZW5kKG5ldyBHZXRRdWVyeVJlc3VsdHNDb21tYW5kKGlucHV0KSk7XG5cbiAgICBjb25zdCByb3dzID0gdGhpcy5wYXJzZXIucGFyc2VSZXN1bHRTZXRXaXRoKHJlc3BvbnNlLlJlc3VsdFNldCwgcm93UGFyc2VyKTtcblxuICAgIHJldHVybiB7XG4gICAgICByb3dzLFxuICAgICAgbmV4dFRva2VuOiByZXNwb25zZS5OZXh0VG9rZW4sXG4gICAgICByb3dDb3VudDogcm93cy5sZW5ndGgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyBwYWdlIGJ5IHBhZ2UgdmlhIEFzeW5jR2VuZXJhdG9yIChyYXcgUGFyc2VkUm93KS5cbiAgICogQHBhcmFtIHF1ZXJ5RXhlY3V0aW9uSWQgLSBRdWVyeSBleGVjdXRpb24gSUQuXG4gICAqL1xuICBhc3luYyAqaXRlcmF0ZVBhZ2VzKFxuICAgIHF1ZXJ5RXhlY3V0aW9uSWQ6IHN0cmluZyxcbiAgKTogQXN5bmNHZW5lcmF0b3I8UGFnZVJlc3VsdDxQYXJzZWRSb3c+PiB7XG4gICAgbGV0IG5leHRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgZG8ge1xuICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IHRoaXMuZmV0Y2hQYWdlKHF1ZXJ5RXhlY3V0aW9uSWQsIG5leHRUb2tlbik7XG4gICAgICB5aWVsZCBwYWdlO1xuICAgICAgbmV4dFRva2VuID0gcGFnZS5uZXh0VG9rZW47XG4gICAgfSB3aGlsZSAobmV4dFRva2VuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyBwYWdlIGJ5IHBhZ2UgdmlhIEFzeW5jR2VuZXJhdG9yIHdpdGggYSBjdXN0b20gcm93IHBhcnNlci5cbiAgICogQHBhcmFtIHF1ZXJ5RXhlY3V0aW9uSWQgLSBRdWVyeSBleGVjdXRpb24gSUQuXG4gICAqIEBwYXJhbSByb3dQYXJzZXIgLSBSb3cgcGFyc2VyLlxuICAgKi9cbiAgYXN5bmMgKml0ZXJhdGVQYWdlc1dpdGg8VD4oXG4gICAgcXVlcnlFeGVjdXRpb25JZDogc3RyaW5nLFxuICAgIHJvd1BhcnNlcjogUm93UGFyc2VyPFQ+LFxuICApOiBBc3luY0dlbmVyYXRvcjxQYWdlUmVzdWx0PFQ+PiB7XG4gICAgbGV0IG5leHRUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgZG8ge1xuICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IHRoaXMuZmV0Y2hQYWdlV2l0aChxdWVyeUV4ZWN1dGlvbklkLCByb3dQYXJzZXIsIG5leHRUb2tlbik7XG4gICAgICB5aWVsZCBwYWdlO1xuICAgICAgbmV4dFRva2VuID0gcGFnZS5uZXh0VG9rZW47XG4gICAgfSB3aGlsZSAobmV4dFRva2VuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyByb3cgYnkgcm93IHZpYSBBc3luY0dlbmVyYXRvciAobWVtb3J5LWVmZmljaWVudCkuXG4gICAqIEBwYXJhbSBxdWVyeUV4ZWN1dGlvbklkIC0gUXVlcnkgZXhlY3V0aW9uIElELlxuICAgKiBAcGFyYW0gcm93UGFyc2VyIC0gUm93IHBhcnNlci5cbiAgICovXG4gIGFzeW5jICppdGVyYXRlUm93czxUPihcbiAgICBxdWVyeUV4ZWN1dGlvbklkOiBzdHJpbmcsXG4gICAgcm93UGFyc2VyOiBSb3dQYXJzZXI8VD4sXG4gICk6IEFzeW5jR2VuZXJhdG9yPFQ+IHtcbiAgICBmb3IgYXdhaXQgKGNvbnN0IHBhZ2Ugb2YgdGhpcy5pdGVyYXRlUGFnZXNXaXRoKHF1ZXJ5RXhlY3V0aW9uSWQsIHJvd1BhcnNlcikpIHtcbiAgICAgIGZvciAoY29uc3Qgcm93IG9mIHBhZ2Uucm93cykge1xuICAgICAgICB5aWVsZCByb3c7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgcGFyc2VyIHN0YXRlLiBDYWxsIGJlZm9yZSBwcm9jZXNzaW5nIGEgbmV3IHF1ZXJ5LlxuICAgKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJzZXIgPSBuZXcgQXRoZW5hUXVlcnlSZXN1bHRQYXJzZXIoKTtcbiAgfVxufVxuXG4vKiogUmUtZXhwb3J0IG9mIHR5cGVzIGZyb20gYXRoZW5hLXF1ZXJ5LXJlc3VsdC1wYXJzZXIuICovXG5leHBvcnQgdHlwZSB7IFBhcnNlZFJvdywgUm93UGFyc2VyIH07Il19
|
package/package.json
CHANGED
|
@@ -42,14 +42,14 @@
|
|
|
42
42
|
"eslint-plugin-import": "^2.32.0",
|
|
43
43
|
"jest": "^30.3.0",
|
|
44
44
|
"jest-junit": "^16",
|
|
45
|
-
"projen": "^0.99.
|
|
45
|
+
"projen": "^0.99.21",
|
|
46
46
|
"ts-jest": "^29.4.6",
|
|
47
47
|
"ts-node": "^10.9.2",
|
|
48
48
|
"typescript": "5.9.x"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@aws-sdk/client-athena": "^3
|
|
52
|
-
"athena-query-result-parser": "^0.
|
|
51
|
+
"@aws-sdk/client-athena": "^3",
|
|
52
|
+
"athena-query-result-parser": "^0.2"
|
|
53
53
|
},
|
|
54
54
|
"engines": {
|
|
55
55
|
"node": ">= 20.0.0"
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"publishConfig": {
|
|
60
60
|
"access": "public"
|
|
61
61
|
},
|
|
62
|
-
"version": "0.
|
|
62
|
+
"version": "0.2.0",
|
|
63
63
|
"jest": {
|
|
64
64
|
"coverageProvider": "v8",
|
|
65
65
|
"testMatch": [
|