@whook/gcp-functions 9.0.1 → 10.0.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 +8 -9
- package/dist/commands/testHTTPFunction.d.ts +1 -1
- package/dist/commands/testHTTPFunction.js +119 -150
- package/dist/commands/testHTTPFunction.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +182 -269
- package/dist/index.js.map +1 -1
- package/dist/libs/utils.js +16 -35
- package/dist/libs/utils.js.map +1 -1
- package/dist/services/_autoload.d.ts +3 -3
- package/dist/services/_autoload.js +83 -109
- package/dist/services/_autoload.js.map +1 -1
- package/dist/services/log.js +2 -12
- package/dist/services/log.js.map +1 -1
- package/dist/services/log.test.js +4 -9
- package/dist/services/log.test.js.map +1 -1
- package/dist/wrappers/googleHTTPFunction.js +246 -294
- package/dist/wrappers/googleHTTPFunction.js.map +1 -1
- package/package.json +47 -89
- package/src/commands/testHTTPFunction.ts +6 -13
- package/src/index.ts +36 -54
- package/src/libs/utils.ts +3 -4
- package/src/services/_autoload.ts +4 -3
- package/src/services/log.test.ts +1 -1
- package/src/wrappers/googleHTTPFunction.ts +6 -6
- package/dist/commands/testHTTPFunction.mjs +0 -136
- package/dist/commands/testHTTPFunction.mjs.map +0 -1
- package/dist/index.mjs +0 -265
- package/dist/index.mjs.map +0 -1
- package/dist/libs/utils.mjs +0 -27
- package/dist/libs/utils.mjs.map +0 -1
- package/dist/services/_autoload.mjs +0 -113
- package/dist/services/_autoload.mjs.map +0 -1
- package/dist/services/log.mjs +0 -4
- package/dist/services/log.mjs.map +0 -1
- package/dist/services/log.test.mjs +0 -7
- package/dist/services/log.test.mjs.map +0 -1
- package/dist/wrappers/googleHTTPFunction.mjs +0 -290
- package/dist/wrappers/googleHTTPFunction.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -21,15 +21,14 @@ You can find a complete setup with a Terraform deployment example in
|
|
|
21
21
|
|
|
22
22
|
## Quick setup
|
|
23
23
|
|
|
24
|
-
Install this module
|
|
24
|
+
Install this module:
|
|
25
25
|
|
|
26
26
|
```sh
|
|
27
27
|
npm i @whook/gcp-functions;
|
|
28
|
-
npm i --save-dev @whook/http-transaction esbuild
|
|
29
28
|
```
|
|
30
29
|
|
|
31
30
|
Add this module to your Whook plugins and tweak the 2 build functions in your
|
|
32
|
-
`build.ts` main file:
|
|
31
|
+
`src/build.ts` main file:
|
|
33
32
|
|
|
34
33
|
```diff
|
|
35
34
|
import {
|
|
@@ -146,7 +145,7 @@ const CONFIG: WhookConfigs = {
|
|
|
146
145
|
// ...
|
|
147
146
|
+ COMPILER_OPTIONS: {
|
|
148
147
|
+ externalModules: [],
|
|
149
|
-
+ target: '
|
|
148
|
+
+ target: '16',
|
|
150
149
|
+ },
|
|
151
150
|
};
|
|
152
151
|
|
|
@@ -155,14 +154,14 @@ export default CONFIG;
|
|
|
155
154
|
|
|
156
155
|
# Build
|
|
157
156
|
|
|
158
|
-
To build your functions
|
|
157
|
+
To build your functions:
|
|
159
158
|
|
|
160
159
|
```sh
|
|
161
160
|
# Build all functions
|
|
162
|
-
npm run
|
|
161
|
+
npm run build
|
|
163
162
|
|
|
164
163
|
# Build only one function
|
|
165
|
-
npm run
|
|
164
|
+
npm run build -- getPing
|
|
166
165
|
```
|
|
167
166
|
|
|
168
167
|
# Debug
|
|
@@ -175,10 +174,10 @@ your `WHOOK_PLUGINS` list. It provides you some commands like the
|
|
|
175
174
|
npx whook testHTTPFunction --name getPing
|
|
176
175
|
```
|
|
177
176
|
|
|
178
|
-
To get more insights when errors happens:
|
|
177
|
+
To get more insights when some errors happens:
|
|
179
178
|
|
|
180
179
|
```sh
|
|
181
|
-
npm run whook-dev -- testHTTPFunction --name getPing
|
|
180
|
+
DEBUG=whook npm run whook-dev -- testHTTPFunction --name getPing
|
|
182
181
|
```
|
|
183
182
|
|
|
184
183
|
## Deployment
|
|
@@ -7,6 +7,6 @@ declare const _default: import("knifecycle").ServiceInitializer<{
|
|
|
7
7
|
PROJECT_DIR: string;
|
|
8
8
|
API: OpenAPIV3.Document<{}>;
|
|
9
9
|
log: LogService;
|
|
10
|
-
args: WhookCommandArgs
|
|
10
|
+
args: WhookCommandArgs<Record<string, import("@whook/cli").WhookArgsTypes>>;
|
|
11
11
|
}, () => Promise<void>>;
|
|
12
12
|
export default _default;
|
|
@@ -1,156 +1,125 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _utils = require("../libs/utils");
|
|
9
|
-
|
|
10
|
-
var _knifecycle = require("knifecycle");
|
|
11
|
-
|
|
12
|
-
var _cli = require("@whook/cli");
|
|
13
|
-
|
|
14
|
-
var _yerror = _interopRequireDefault(require("yerror"));
|
|
15
|
-
|
|
16
|
-
var _httpRouter = require("@whook/http-router");
|
|
17
|
-
|
|
18
|
-
var _stream = _interopRequireDefault(require("stream"));
|
|
19
|
-
|
|
20
|
-
var _camelcase = _interopRequireDefault(require("camelcase"));
|
|
21
|
-
|
|
22
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
-
|
|
1
|
+
import { loadLambda } from '../libs/utils.js';
|
|
2
|
+
import { extra, autoService } from 'knifecycle';
|
|
3
|
+
import { readArgs } from '@whook/cli';
|
|
4
|
+
import { YError } from 'yerror';
|
|
5
|
+
import { dereferenceOpenAPIOperations, getOpenAPIOperations, } from '@whook/http-router';
|
|
6
|
+
import stream from 'stream';
|
|
7
|
+
import camelCase from 'camelcase';
|
|
24
8
|
const SEARCH_SEPARATOR = '?';
|
|
25
9
|
const PATH_SEPARATOR = '/';
|
|
26
|
-
const definition = {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
10
|
+
export const definition = {
|
|
11
|
+
description: 'A command for testing AWS HTTP lambda',
|
|
12
|
+
example: `whook testHTTPLambda --name getPing`,
|
|
13
|
+
arguments: {
|
|
14
|
+
type: 'object',
|
|
15
|
+
additionalProperties: false,
|
|
16
|
+
required: ['name'],
|
|
17
|
+
properties: {
|
|
18
|
+
name: {
|
|
19
|
+
description: 'Name of the lamda to run',
|
|
20
|
+
type: 'string',
|
|
21
|
+
},
|
|
22
|
+
type: {
|
|
23
|
+
description: 'Type of lambda to test',
|
|
24
|
+
type: 'string',
|
|
25
|
+
enum: ['main', 'index'],
|
|
26
|
+
default: 'index',
|
|
27
|
+
},
|
|
28
|
+
contentType: {
|
|
29
|
+
description: 'Content type of the payload',
|
|
30
|
+
type: 'string',
|
|
31
|
+
default: 'application/json',
|
|
32
|
+
},
|
|
33
|
+
parameters: {
|
|
34
|
+
description: 'The HTTP call parameters',
|
|
35
|
+
type: 'string',
|
|
36
|
+
default: '{}',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
56
40
|
};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
PROJECT_DIR,
|
|
66
|
-
API,
|
|
67
|
-
log,
|
|
68
|
-
args
|
|
69
|
-
}) {
|
|
70
|
-
return async () => {
|
|
71
|
-
const {
|
|
72
|
-
name,
|
|
73
|
-
type,
|
|
74
|
-
contentType,
|
|
75
|
-
parameters: rawParameters
|
|
76
|
-
} = (0, _cli.readArgs)(definition.arguments, args);
|
|
77
|
-
const handler = await (0, _utils.loadLambda)({
|
|
78
|
-
PROJECT_DIR,
|
|
79
|
-
log
|
|
80
|
-
}, NODE_ENV, name, type);
|
|
81
|
-
const OPERATION = (await (0, _httpRouter.dereferenceOpenAPIOperations)(API, (0, _httpRouter.getOpenAPIOperations)(API))).find(({
|
|
82
|
-
operationId
|
|
83
|
-
}) => operationId === name);
|
|
84
|
-
|
|
85
|
-
if (!OPERATION) {
|
|
86
|
-
throw new _yerror.default('E_OPERATION_NOT_FOUND');
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const hasBody = !!OPERATION.requestBody;
|
|
90
|
-
const parameters = JSON.parse(rawParameters);
|
|
91
|
-
const search = (OPERATION.parameters || []).filter(p => p.in === 'query').reduce((accSearch, p) => {
|
|
92
|
-
if (null != parameters[p.name]) {
|
|
93
|
-
return accSearch + (accSearch ? '&' : '') + p.name + '=' + parameters[p.name];
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
return accSearch;
|
|
97
|
-
}, '');
|
|
98
|
-
const path = OPERATION.path.split(PATH_SEPARATOR).map(part => {
|
|
99
|
-
const matches = /^\{([\d\w]+)\}$/i.exec(part);
|
|
100
|
-
|
|
101
|
-
if (matches) {
|
|
102
|
-
return parameters[matches[1]];
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return part;
|
|
106
|
-
}).join(PATH_SEPARATOR);
|
|
107
|
-
const gcpfRequest = {
|
|
108
|
-
method: OPERATION.method,
|
|
109
|
-
originalUrl: path + (search ? SEARCH_SEPARATOR + search : ''),
|
|
110
|
-
headers: (OPERATION.parameters || []).filter(p => p.in === 'header').reduce((headerParameters, p) => {
|
|
111
|
-
headerParameters[p.name] = parameters[(0, _camelcase.default)(p.name)];
|
|
112
|
-
return headerParameters;
|
|
113
|
-
}, {}),
|
|
114
|
-
rawBody: Buffer.from(hasBody ? contentType === 'application/json' ? parameters.body ? JSON.stringify(parameters.body) : '' : parameters.body || '' : '')
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
if (hasBody) {
|
|
118
|
-
gcpfRequest.headers['content-type'] = `${contentType};charset=UTF-8`;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
log('info', 'GCPF_REQUEST:', gcpfRequest);
|
|
122
|
-
const response = {
|
|
123
|
-
status: 0,
|
|
124
|
-
headers: {},
|
|
125
|
-
data: ''
|
|
126
|
-
};
|
|
127
|
-
await new Promise((resolve, reject) => {
|
|
128
|
-
const gcpfResponse = new _stream.default.PassThrough();
|
|
129
|
-
|
|
130
|
-
gcpfResponse.set = (name, value) => {
|
|
131
|
-
response.headers[name] = value;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
gcpfResponse.status = code => {
|
|
135
|
-
response.status = code;
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
handler(gcpfRequest, gcpfResponse).catch(reject);
|
|
139
|
-
const chunks = [];
|
|
140
|
-
gcpfResponse.once('end', () => {
|
|
141
|
-
response.data = Buffer.concat(chunks).toString();
|
|
142
|
-
resolve();
|
|
143
|
-
});
|
|
144
|
-
gcpfResponse.once('error', reject);
|
|
145
|
-
gcpfResponse.on('readable', () => {
|
|
146
|
-
let data;
|
|
147
|
-
|
|
148
|
-
while (data = gcpfResponse.read()) {
|
|
149
|
-
chunks.push(data);
|
|
41
|
+
export default extra(definition, autoService(initTestHTTPLambdaCommand));
|
|
42
|
+
async function initTestHTTPLambdaCommand({ NODE_ENV, PROJECT_DIR, API, log, args, }) {
|
|
43
|
+
return async () => {
|
|
44
|
+
const { namedArguments: { name, type, contentType, parameters: rawParameters }, } = readArgs(definition.arguments, args);
|
|
45
|
+
const handler = await loadLambda({ PROJECT_DIR, log }, NODE_ENV, name, type);
|
|
46
|
+
const OPERATION = (await dereferenceOpenAPIOperations(API, getOpenAPIOperations(API))).find(({ operationId }) => operationId === name);
|
|
47
|
+
if (!OPERATION) {
|
|
48
|
+
throw new YError('E_OPERATION_NOT_FOUND');
|
|
150
49
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
50
|
+
const hasBody = !!OPERATION.requestBody;
|
|
51
|
+
const parameters = JSON.parse(rawParameters);
|
|
52
|
+
const search = (OPERATION.parameters || [])
|
|
53
|
+
.filter((p) => p.in === 'query')
|
|
54
|
+
.reduce((accSearch, p) => {
|
|
55
|
+
if (null != parameters[p.name]) {
|
|
56
|
+
return (accSearch +
|
|
57
|
+
(accSearch ? '&' : '') +
|
|
58
|
+
p.name +
|
|
59
|
+
'=' +
|
|
60
|
+
parameters[p.name]);
|
|
61
|
+
}
|
|
62
|
+
return accSearch;
|
|
63
|
+
}, '');
|
|
64
|
+
const path = OPERATION.path
|
|
65
|
+
.split(PATH_SEPARATOR)
|
|
66
|
+
.map((part) => {
|
|
67
|
+
const matches = /^\{([\d\w]+)\}$/i.exec(part);
|
|
68
|
+
if (matches) {
|
|
69
|
+
return parameters[matches[1]];
|
|
70
|
+
}
|
|
71
|
+
return part;
|
|
72
|
+
})
|
|
73
|
+
.join(PATH_SEPARATOR);
|
|
74
|
+
const gcpfRequest = {
|
|
75
|
+
method: OPERATION.method,
|
|
76
|
+
originalUrl: path + (search ? SEARCH_SEPARATOR + search : ''),
|
|
77
|
+
headers: (OPERATION.parameters || [])
|
|
78
|
+
.filter((p) => p.in === 'header')
|
|
79
|
+
.reduce((headerParameters, p) => {
|
|
80
|
+
headerParameters[p.name] = parameters[camelCase(p.name)];
|
|
81
|
+
return headerParameters;
|
|
82
|
+
}, {}),
|
|
83
|
+
rawBody: Buffer.from(hasBody
|
|
84
|
+
? contentType === 'application/json'
|
|
85
|
+
? parameters.body
|
|
86
|
+
? JSON.stringify(parameters.body)
|
|
87
|
+
: ''
|
|
88
|
+
: parameters.body || ''
|
|
89
|
+
: ''),
|
|
90
|
+
};
|
|
91
|
+
if (hasBody) {
|
|
92
|
+
gcpfRequest.headers['content-type'] = `${contentType};charset=UTF-8`;
|
|
93
|
+
}
|
|
94
|
+
log('info', 'GCPF_REQUEST:', gcpfRequest);
|
|
95
|
+
const response = {
|
|
96
|
+
status: 0,
|
|
97
|
+
headers: {},
|
|
98
|
+
data: '',
|
|
99
|
+
};
|
|
100
|
+
await new Promise((resolve, reject) => {
|
|
101
|
+
const gcpfResponse = new stream.PassThrough();
|
|
102
|
+
gcpfResponse.set = (name, value) => {
|
|
103
|
+
response.headers[name] = value;
|
|
104
|
+
};
|
|
105
|
+
gcpfResponse.status = (code) => {
|
|
106
|
+
response.status = code;
|
|
107
|
+
};
|
|
108
|
+
handler(gcpfRequest, gcpfResponse).catch(reject);
|
|
109
|
+
const chunks = [];
|
|
110
|
+
gcpfResponse.once('end', () => {
|
|
111
|
+
response.data = Buffer.concat(chunks).toString();
|
|
112
|
+
resolve();
|
|
113
|
+
});
|
|
114
|
+
gcpfResponse.once('error', reject);
|
|
115
|
+
gcpfResponse.on('readable', () => {
|
|
116
|
+
let data;
|
|
117
|
+
while ((data = gcpfResponse.read())) {
|
|
118
|
+
chunks.push(data);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
log('info', 'SUCCESS:', response);
|
|
123
|
+
};
|
|
155
124
|
}
|
|
156
125
|
//# sourceMappingURL=testHTTPFunction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testHTTPFunction.js","
|
|
1
|
+
{"version":3,"file":"testHTTPFunction.js","sourceRoot":"","sources":["../../src/commands/testHTTPFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,SAAS,MAAM,WAAW,CAAC;AAKlC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,MAAM,CAAC,MAAM,UAAU,GAA2B;IAChD,WAAW,EAAE,uCAAuC;IACpD,OAAO,EAAE,qCAAqC;IAC9C,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,WAAW,EAAE,0BAA0B;gBACvC,IAAI,EAAE,QAAQ;aACf;YACD,IAAI,EAAE;gBACJ,WAAW,EAAE,wBAAwB;gBACrC,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACvB,OAAO,EAAE,OAAO;aACjB;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,6BAA6B;gBAC1C,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,kBAAkB;aAC5B;YACD,UAAU,EAAE;gBACV,WAAW,EAAE,0BAA0B;gBACvC,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;aACd;SACF;KACF;CACF,CAAC;AAEF,eAAe,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;AAEzE,KAAK,UAAU,yBAAyB,CAAC,EACvC,QAAQ,EACR,WAAW,EACX,GAAG,EACH,GAAG,EACH,IAAI,GAOL;IACC,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,EACJ,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,GACvE,GAAG,QAAQ,CAKT,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,UAAU,CAC9B,EAAE,WAAW,EAAE,GAAG,EAAE,EACpB,QAAQ,EACR,IAAI,EACJ,IAAI,CACL,CAAC;QACF,MAAM,SAAS,GAAG,CAChB,MAAM,4BAA4B,CAAC,GAAG,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CACnE,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,MAAM,CAAC,uBAAuB,CAAC,CAAC;SAC3C;QAED,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAI,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAiC;aACzE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC;aAC/B,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC9B,OAAO,CACL,SAAS;oBACT,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtB,CAAC,CAAC,IAAI;oBACN,GAAG;oBACH,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CACnB,CAAC;aACH;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,EAAE,EAAE,CAAC,CAAC;QAET,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI;aACxB,KAAK,CAAC,cAAc,CAAC;aAErB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE9C,IAAI,OAAO,EAAE;gBACX,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/B;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,IAAI,CAAC,cAAc,CAAC,CAAC;QACxB,MAAM,WAAW,GAAG;YAClB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,WAAW,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,EAAG,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAiC;iBACnE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC;iBAChC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE;gBAC9B,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzD,OAAO,gBAAgB,CAAC;YAC1B,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,EAAE,MAAM,CAAC,IAAI,CAClB,OAAO;gBACL,CAAC,CAAC,WAAW,KAAK,kBAAkB;oBAClC,CAAC,CAAC,UAAU,CAAC,IAAI;wBACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;wBACjC,CAAC,CAAC,EAAE;oBACN,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE;gBACzB,CAAC,CAAC,EAAE,CACP;SACF,CAAC;QACF,IAAI,OAAO,EAAE;YACX,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,GAAG,WAAW,gBAAgB,CAAC;SACtE;QACD,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,WAAgC,CAAC,CAAC;QAE/D,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;SACT,CAAC;QACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAE7C,YAAoB,CAAC,GAAG,GAAG,CAAC,IAAY,EAAE,KAAa,EAAQ,EAAE;gBAChE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACjC,CAAC,CAAC;YACD,YAAoB,CAAC,MAAM,GAAG,CAAC,IAAY,EAAQ,EAAE;gBACpD,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;YACzB,CAAC,CAAC;YAEF,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEjD,MAAM,MAAM,GAAG,EAAc,CAAC;YAE9B,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;gBAC5B,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACjD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACnC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC/B,IAAI,IAAY,CAAC;gBACjB,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE;oBACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED