@sw-tsdk/connector 0.1.1-next.23

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.
Files changed (47) hide show
  1. package/LICENSE +8 -0
  2. package/lib/build.d.ts +4 -0
  3. package/lib/build.js +252 -0
  4. package/lib/build.js.map +1 -0
  5. package/lib/common.d.ts +11 -0
  6. package/lib/common.js +180 -0
  7. package/lib/common.js.map +1 -0
  8. package/lib/converter.d.ts +45 -0
  9. package/lib/converter.js +402 -0
  10. package/lib/converter.js.map +1 -0
  11. package/lib/defaults.d.ts +4 -0
  12. package/lib/defaults.js +45 -0
  13. package/lib/defaults.js.map +1 -0
  14. package/lib/guards.d.ts +0 -0
  15. package/lib/guards.js +2 -0
  16. package/lib/guards.js.map +1 -0
  17. package/lib/index.d.ts +7 -0
  18. package/lib/index.js +11 -0
  19. package/lib/index.js.map +1 -0
  20. package/lib/json-schema-generator.d.ts +11 -0
  21. package/lib/json-schema-generator.js +197 -0
  22. package/lib/json-schema-generator.js.map +1 -0
  23. package/lib/logo.d.ts +1 -0
  24. package/lib/logo.js +17 -0
  25. package/lib/logo.js.map +1 -0
  26. package/lib/templates/node_18/Dockerfile +36 -0
  27. package/lib/templates/python_3.7_swimlane/Dockerfile +23 -0
  28. package/lib/templates/python_310_definition/Dockerfile +23 -0
  29. package/lib/types/common-types.d.ts +9 -0
  30. package/lib/types/common-types.js +3 -0
  31. package/lib/types/common-types.js.map +1 -0
  32. package/lib/types/connector-build-options.d.ts +10 -0
  33. package/lib/types/connector-build-options.js +3 -0
  34. package/lib/types/connector-build-options.js.map +1 -0
  35. package/lib/types/connector-build-results.d.ts +5 -0
  36. package/lib/types/connector-build-results.js +3 -0
  37. package/lib/types/connector-build-results.js.map +1 -0
  38. package/lib/types/connector-doc-types.d.ts +8 -0
  39. package/lib/types/connector-doc-types.js +3 -0
  40. package/lib/types/connector-doc-types.js.map +1 -0
  41. package/lib/types/conversion-results.d.ts +4 -0
  42. package/lib/types/conversion-results.js +3 -0
  43. package/lib/types/conversion-results.js.map +1 -0
  44. package/lib/types/index.d.ts +5 -0
  45. package/lib/types/index.js +9 -0
  46. package/lib/types/index.js.map +1 -0
  47. package/package.json +68 -0
@@ -0,0 +1,402 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectorFrom10x = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
6
+ const fs_extra_1 = require("fs-extra");
7
+ const node_path_1 = require("node:path");
8
+ const snake_case_1 = require("snake-case");
9
+ const core_1 = require("@sw-tsdk/core");
10
+ const ts_is_present_1 = require("ts-is-present");
11
+ // noinspection JSUnusedGlobalSymbols
12
+ class ConnectorFrom10x {
13
+ constructor() {
14
+ // global holder for all file writing.
15
+ // Wait till the end so no partial files if an error occurs.
16
+ this.writeFilePromises = [];
17
+ }
18
+ /**
19
+ * Main function controller for converting connector source.
20
+ */
21
+ async createConnectorSource(directory) {
22
+ const importFiles = await (0, fs_extra_1.readdir)((0, node_path_1.join)(directory, 'imports'));
23
+ const taskNames = importFiles.filter(function (file) {
24
+ return file.endsWith('.json') && file !== 'asset.json';
25
+ }).map(file => (0, node_path_1.parse)(file).name);
26
+ const actionResults = await this.generateConfigsActions(directory, taskNames);
27
+ const assetResults = await this.generateAssetConfigScript(directory);
28
+ await this.copyBaseCode(directory);
29
+ await this.copyDocumentation(directory);
30
+ await this.writeConnectorConfig(directory, assetResults, actionResults);
31
+ // Only write files once everything has converted successfully.
32
+ await Promise.all(this.writeFilePromises);
33
+ }
34
+ /**
35
+ This is the connector level config file
36
+ */
37
+ async writeConnectorConfig(directory, assetResults, actionResults) {
38
+ const packageJson = await (0, fs_extra_1.readJson)((0, node_path_1.join)(directory, 'package.json'));
39
+ const name = packageJson.name.replace('sw_', '');
40
+ const title = packageJson.vendor === packageJson.product ? packageJson.vendor : `${packageJson.vendor} ${packageJson.product}`;
41
+ const keywords = new Set([assetResults.keywords, ...actionResults.map(x => x.keywords)].filter(element => (0, ts_is_present_1.isPresent)(element)));
42
+ const connectorConfig = {
43
+ author: 'Swimlane',
44
+ bugs: '',
45
+ description: packageJson.description,
46
+ homepage: 'https://swimlane.com',
47
+ iconImage: '../image/logo.png',
48
+ keywords: [...keywords],
49
+ license: 'AGPL-3.0',
50
+ meta: {
51
+ imageRepository: `quay.io/swimlane-connectors/${name}`,
52
+ },
53
+ name: name,
54
+ product: packageJson.product || '.',
55
+ repository: `https://github.com/swimlane/${packageJson.name.replace('sw_', 't_')}`,
56
+ schema: 'connector/1',
57
+ title: title,
58
+ vendor: packageJson.vendor,
59
+ version: packageJson.version,
60
+ };
61
+ const connectorConfigPath = (0, node_path_1.join)(directory, 'connector', 'connector.yaml');
62
+ this.writeFilePromises.push(this.writeFileEnsure(connectorConfigPath, js_yaml_1.default.dump(connectorConfig, { indent: 2 }), { flag: 'w' }));
63
+ }
64
+ /**
65
+ * Generates the test connection config
66
+ */
67
+ async generateAssetConfigScript(directory) {
68
+ const asset = await (0, fs_extra_1.readJson)((0, node_path_1.join)(directory, 'imports', 'asset.json'));
69
+ // Some plugins have no asset
70
+ if (Object.keys(asset).length === 0) {
71
+ return {};
72
+ }
73
+ const importFiles = await (0, fs_extra_1.readdir)((0, node_path_1.join)(directory, 'imports'));
74
+ const testScript = importFiles.filter(function (file) {
75
+ return file.endsWith('.py') && (file.includes('test') || file.includes('connection'));
76
+ });
77
+ if (testScript.length !== 1) {
78
+ throw new Error(`Error finding test connection script. Found ${testScript.length} files expected 1.`);
79
+ }
80
+ const connectorAssetConfig = {
81
+ schema: 'asset/1',
82
+ name: 'asset',
83
+ title: asset.name,
84
+ description: asset.description,
85
+ inputs: {
86
+ type: 'object',
87
+ properties: await this.buildProperties(asset.inputParameters, []),
88
+ required: await this.getRequiredFields(asset.inputParameters),
89
+ },
90
+ meta: {},
91
+ };
92
+ const assetConfigPath = (0, node_path_1.join)(directory, 'connector', 'config', 'asset.yaml');
93
+ const testCode = await (0, fs_extra_1.readFile)((0, node_path_1.join)(directory, 'imports', `${testScript[0]}`));
94
+ const testScriptPath = (0, node_path_1.join)(directory, 'connector', 'code', 'asset.py');
95
+ this.writeFilePromises.push(this.writeFileEnsure(assetConfigPath, js_yaml_1.default.dump(connectorAssetConfig, { indent: 2 }), { flag: 'w' }), this.writeFileEnsure(testScriptPath, testCode, { flag: 'w' }));
96
+ return {
97
+ keywords: asset.family,
98
+ };
99
+ }
100
+ /**
101
+ * Copies all of the base code such as Dockerfile and run.py files
102
+ */
103
+ async copyBaseCode(directory) {
104
+ const dirs = await (0, fs_extra_1.readdir)(directory);
105
+ const packageDir = dirs.filter(function (dir) {
106
+ return /sw_(\w+)$/.test(dir);
107
+ });
108
+ if (packageDir.length !== 1) {
109
+ throw new Error('Error finding package name "sw_name" to copy over the init file.');
110
+ }
111
+ const connectorPackageDir = (0, node_path_1.join)(directory, 'connector', packageDir[0]);
112
+ this.writeFilePromises.push((0, fs_extra_1.copy)((0, node_path_1.join)(directory, packageDir[0]), connectorPackageDir));
113
+ }
114
+ /**
115
+ * Copies all current .md to the new docs folder.
116
+ */
117
+ async copyDocumentation(directory) {
118
+ await (0, fs_extra_1.ensureDir)((0, node_path_1.join)(directory, 'docs'));
119
+ for (const doc of ['README.md', 'CHANGELOG.md']) {
120
+ // eslint-disable-next-line no-await-in-loop
121
+ if (await (0, core_1.fileExists)((0, node_path_1.join)(directory, doc))) {
122
+ this.writeFilePromises.push((0, fs_extra_1.copy)((0, node_path_1.join)(directory, doc), (0, node_path_1.join)(directory, 'docs', doc)));
123
+ }
124
+ }
125
+ }
126
+ /**
127
+ Generates all of the action files and config files from 10.x imports folder.
128
+ */
129
+ async generateConfigsActions(directory, taskNames) {
130
+ const promises = [];
131
+ for (const taskName of taskNames) {
132
+ promises.push(this.writeConfigAction(directory, taskName));
133
+ }
134
+ const actionBuildResults = await Promise.all(promises);
135
+ // makes the code dir a package
136
+ this.writeFilePromises.push((0, fs_extra_1.createFile)((0, node_path_1.join)(directory, 'connector', 'code', '__init__.py')));
137
+ return actionBuildResults;
138
+ }
139
+ /**
140
+ Helper function for writing the files of a single action
141
+ */
142
+ async writeConfigAction(directory, taskName) {
143
+ const taskManifest = await (0, fs_extra_1.readJson)((0, node_path_1.join)(directory, 'imports', `${taskName}.json`));
144
+ const turbineMeta = taskManifest.turbine;
145
+ const packageJson = await (0, fs_extra_1.readJson)((0, node_path_1.join)(directory, 'package.json'));
146
+ const vendor = packageJson.vendor;
147
+ const product = packageJson.product;
148
+ // sanitize name and try to reduce
149
+ taskManifest.name = taskManifest.name.replace(vendor, '').replace(product, '').trim();
150
+ // there is a limit on task name size
151
+ const actionName = (0, snake_case_1.snakeCase)(taskManifest.name);
152
+ if (taskManifest.name.length > 50) {
153
+ throw new Error(`${taskManifest.name} is longer than 50 characters. Must manually rename before building connector image.`);
154
+ }
155
+ // This is required to know 10.x output type and file params
156
+ if (!turbineMeta) {
157
+ throw new Error('Must update task manifest with Turbine meta data.');
158
+ }
159
+ // Build output property store
160
+ const output = {
161
+ additionalProperties: true,
162
+ };
163
+ // see what IO params have files.
164
+ let inputFileParams = [];
165
+ let outputFileParams = [];
166
+ if (turbineMeta.input && turbineMeta.input.typings && turbineMeta.input.typings.file) {
167
+ inputFileParams = turbineMeta.input.typings.file;
168
+ }
169
+ if (turbineMeta.output && turbineMeta.output.typings && turbineMeta.output.typings.file) {
170
+ outputFileParams = turbineMeta.output.typings.file;
171
+ }
172
+ // Update output with correct schema
173
+ const outputType = turbineMeta.output.type;
174
+ output.type = outputType;
175
+ if (outputType === 'object') {
176
+ output.properties = await this.buildProperties(taskManifest.availableOutputVariables, outputFileParams);
177
+ output.required = [];
178
+ }
179
+ else if (outputType === 'array') {
180
+ output.items = {
181
+ type: 'object',
182
+ additionalProperties: true,
183
+ properties: await this.buildProperties(taskManifest.availableOutputVariables, outputFileParams),
184
+ required: [],
185
+ };
186
+ }
187
+ else {
188
+ throw new Error(`output type must be object or array. Received: ${outputType}`);
189
+ }
190
+ const taskCode = await (0, fs_extra_1.readFile)((0, node_path_1.join)(directory, 'imports', `${taskName}.py`));
191
+ // must add asset inputs to action inputs atm.
192
+ const asset = await (0, fs_extra_1.readJson)((0, node_path_1.join)(directory, 'imports', 'asset.json'));
193
+ const actionConfig = {
194
+ name: actionName,
195
+ schema: 'action/1',
196
+ title: taskManifest.name,
197
+ description: taskManifest.description,
198
+ inputs: {
199
+ type: 'object',
200
+ additionalProperties: true,
201
+ properties: Object.assign(await this.buildProperties(taskManifest.inputParameters, inputFileParams), await this.buildProperties(asset.inputParameters, [])),
202
+ required: [...await this.getRequiredFields(taskManifest.inputParameters), ...await this.getRequiredFields(asset.inputParameters)],
203
+ },
204
+ output: output,
205
+ meta: {},
206
+ };
207
+ const actionConfigPath = (0, node_path_1.join)(directory, 'connector', 'config', `${actionName}.yaml`);
208
+ const actionPath = (0, node_path_1.join)(directory, 'connector', 'code', `${actionName}.py`);
209
+ this.writeFilePromises.push(this.writeFileEnsure(actionConfigPath, js_yaml_1.default.dump(actionConfig, { indent: 2 }), { flag: 'w' }), this.writeFileEnsure(actionPath, taskCode, { flag: 'w' }));
210
+ return {
211
+ keywords: taskManifest.family,
212
+ };
213
+ }
214
+ /**
215
+ Helper function. Iterates over each 10.x input attribute and builds a JSON schema property
216
+ */
217
+ // eslint-disable-next-line complexity
218
+ async buildSingleProperty(name, item, isFile) {
219
+ const property = {};
220
+ // eslint-disable-next-line guard-for-in
221
+ for (const prop in item) {
222
+ switch (prop) {
223
+ case 'name':
224
+ property.title = item[prop];
225
+ break;
226
+ case 'description':
227
+ property.description = item[prop];
228
+ break;
229
+ case 'type':
230
+ switch (item[prop]) {
231
+ /*
232
+ Without allOf IP addresses must go here. Can't list IPv4 and 6 together
233
+ */
234
+ case 1:
235
+ case 2:
236
+ case 3:
237
+ case 15:
238
+ case 16:
239
+ case 20:
240
+ property.type = 'string';
241
+ if (item.example) {
242
+ property.examples = [item.example];
243
+ }
244
+ break;
245
+ case 4:
246
+ property.type = 'string';
247
+ property.format = 'password';
248
+ if (item.example) {
249
+ property.examples = [item.example];
250
+ }
251
+ break;
252
+ case 5:
253
+ property.type = 'array';
254
+ property.items = {
255
+ type: 'string',
256
+ };
257
+ break;
258
+ case 19:
259
+ property.type = 'array';
260
+ property.items = {
261
+ type: 'number',
262
+ };
263
+ break;
264
+ case 6:
265
+ case 10:
266
+ case 11:
267
+ property.type = 'number';
268
+ if (item.example) {
269
+ property.examples = [Number(item.example)];
270
+ }
271
+ break;
272
+ case 7:
273
+ property.type = 'boolean';
274
+ break;
275
+ case 8:
276
+ property.type = 'string';
277
+ property.format = 'date-time';
278
+ if (item.example) {
279
+ property.examples = [item.example];
280
+ }
281
+ break;
282
+ case 9:
283
+ property.type = 'object';
284
+ property.additionalProperties = true;
285
+ break;
286
+ case 12:
287
+ property.type = 'string';
288
+ property.format = 'date';
289
+ if (item.example) {
290
+ property.examples = [item.example];
291
+ }
292
+ break;
293
+ /*
294
+ idn-email supports international.
295
+ */
296
+ case 13:
297
+ property.type = 'string';
298
+ property.format = 'idn-email';
299
+ if (item.example) {
300
+ property.examples = [item.example];
301
+ }
302
+ break;
303
+ case 14:
304
+ property.type = 'string';
305
+ property.format = 'uri-template';
306
+ if (item.example) {
307
+ property.examples = [item.example];
308
+ }
309
+ break;
310
+ case 17:
311
+ property.type = 'string';
312
+ property.format = 'time';
313
+ if (item.example) {
314
+ property.examples = [item.example];
315
+ }
316
+ break;
317
+ case 18:
318
+ property.type = 'array';
319
+ property.items = {
320
+ contentDisposition: 'attachment',
321
+ type: 'object',
322
+ additionalProperties: false,
323
+ properties: {
324
+ // eslint-disable-next-line camelcase
325
+ file_name: {
326
+ type: 'string',
327
+ },
328
+ file: {
329
+ type: 'string',
330
+ format: 'binary',
331
+ },
332
+ },
333
+ };
334
+ break;
335
+ }
336
+ }
337
+ }
338
+ // override as type 18 attachment if isFile
339
+ if (isFile) {
340
+ property.type = 'array';
341
+ property.examples = [];
342
+ property.items = {
343
+ contentDisposition: 'attachment',
344
+ type: 'object',
345
+ additionalProperties: false,
346
+ properties: {
347
+ // eslint-disable-next-line camelcase
348
+ file_name: {
349
+ type: 'string',
350
+ },
351
+ file: {
352
+ type: 'string',
353
+ format: 'binary',
354
+ },
355
+ },
356
+ };
357
+ }
358
+ return { [name]: property };
359
+ }
360
+ /**
361
+ Builds the entire properties schema for inputs and outputs, inputs extends outputs interface.
362
+ */
363
+ async buildProperties(parameters, files) {
364
+ const properties = {};
365
+ const propertyPromises = [];
366
+ if (!parameters) {
367
+ return {};
368
+ }
369
+ // eslint-disable-next-line guard-for-in
370
+ for (const item in parameters) {
371
+ let isFile = false;
372
+ if (files.includes(item)) {
373
+ isFile = true;
374
+ }
375
+ propertyPromises.push(this.buildSingleProperty(item, parameters[item], isFile));
376
+ }
377
+ const propertyArray = await Promise.all(propertyPromises);
378
+ return Object.assign(properties, ...propertyArray);
379
+ }
380
+ /**
381
+ * Determines required fields for properties object
382
+ */
383
+ async getRequiredFields(parameters) {
384
+ const requiredFields = [];
385
+ if (!parameters) {
386
+ return [];
387
+ }
388
+ for (const item in parameters) {
389
+ if ('required' in parameters[item] && parameters[item].required) {
390
+ requiredFields.push(item);
391
+ }
392
+ }
393
+ return requiredFields;
394
+ }
395
+ // writeFile with Ensure
396
+ async writeFileEnsure(path, data, opts) {
397
+ await (0, fs_extra_1.ensureFile)(path);
398
+ await (0, fs_extra_1.writeFile)(path, data, opts);
399
+ }
400
+ }
401
+ exports.ConnectorFrom10x = ConnectorFrom10x;
402
+ //# sourceMappingURL=converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":";;;;AAAA,8DAA0B;AAC1B,uCAAwG;AACxG,yCAAqC;AAGrC,2CAAoC;AACpC,wCAAwC;AAExC,iDAAuC;AAEvC,qCAAqC;AACrC,MAAa,gBAAgB;IAA7B;QACE,sCAAsC;QACtC,4DAA4D;QAC5D,sBAAiB,GAAwB,EAAE,CAAA;IA4c7C,CAAC;IA1cC;;OAEG;IACI,KAAK,CAAC,qBAAqB,CAAC,SAAiB;QAClD,MAAM,WAAW,GAAa,MAAM,IAAA,kBAAO,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;QACvE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,IAAI;YACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,YAAY,CAAA;QACxD,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,iBAAK,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;QAEhC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAC7E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;QACpE,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QAClC,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;QAEvC,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAA;QACvE,+DAA+D;QAC/D,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,YAAoC,EAAE,aAAwC;QAClI,MAAM,WAAW,GAAY,MAAM,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAA;QAC5E,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QAChD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,CAAA;QAC9H,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAA,yBAAS,EAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC9H,MAAM,eAAe,GAAsB;YACzC,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,QAAQ,EAAE,sBAAsB;YAChC,SAAS,EAAE,mBAAmB;YAC9B,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC;YACvB,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE;gBACJ,eAAe,EAAE,+BAA+B,IAAI,EAAE;aACvD;YACD,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,GAAG;YACnC,UAAU,EAAE,+BAA+B,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YAClF,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAA;QAED,MAAM,mBAAmB,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAA;QAC1E,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,iBAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAChG,CAAA;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB,CAAC,SAAiB;QACvD,MAAM,KAAK,GAAU,MAAM,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;QAC7E,6BAA6B;QAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC,OAAO,EAA4B,CAAA;SACpC;QAED,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAO,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;QAC7D,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,IAAI;YAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;QAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,UAAU,CAAC,MAAM,oBAAoB,CAAC,CAAA;SACtG;QAED,MAAM,oBAAoB,GAAG;YAC3B,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC;gBACjE,QAAQ,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,eAAe,CAAC;aAC9D;YACD,IAAI,EAAE,EAAE;SACiB,CAAA;QAE3B,MAAM,eAAe,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC5E,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/E,MAAM,cAAc,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;QAEvE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,iBAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,EAChG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAC5D,CAAA;QAED,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,MAAM;SACvB,CAAA;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,SAAiB;QAC1C,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAO,EAAC,SAAS,CAAC,CAAA;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG;YAC1C,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;SACpF;QAED,MAAM,mBAAmB,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QACvE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAA,eAAI,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAC1D,CAAA;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QAC/C,MAAM,IAAA,oBAAS,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;QACxC,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE;YAC/C,4CAA4C;YAC5C,IAAI,MAAM,IAAA,iBAAU,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAA,eAAI,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,GAAG,CAAC,EAAE,IAAA,gBAAI,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;aACtF;SACF;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,sBAAsB,CAAC,SAAiB,EAAE,SAAmB;QACxE,MAAM,QAAQ,GAAuC,EAAE,CAAA;QAEvD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;SAC3D;QAED,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEtD,+BAA+B;QAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAA,qBAAU,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;QAC5F,OAAO,kBAAkB,CAAA;IAC3B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,QAAgB;QACjE,MAAM,YAAY,GAAgB,MAAM,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,SAAS,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC,CAAA;QAEhG,MAAM,WAAW,GAAoC,YAAY,CAAC,OAAO,CAAA;QACzE,MAAM,WAAW,GAAY,MAAM,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAA;QAC5E,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAA;QACjC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAA;QAEnC,kCAAkC;QAClC,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QAErF,qCAAqC;QACrC,MAAM,UAAU,GAAG,IAAA,sBAAS,EAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC,IAAI,sFAAsF,CAAC,CAAA;SAC5H;QAED,4DAA4D;QAC5D,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;SACrE;QAED,8BAA8B;QAC9B,MAAM,MAAM,GAA0B;YACpC,oBAAoB,EAAE,IAAI;SAC3B,CAAA;QAED,iCAAiC;QACjC,IAAI,eAAe,GAAa,EAAE,CAAA;QAClC,IAAI,gBAAgB,GAAa,EAAE,CAAA;QACnC,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;YACpF,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAA;SACjD;QAED,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;YACvF,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAA;SACnD;QAED,oCAAoC;QACpC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAA;QAC1C,MAAM,CAAC,IAAI,GAAG,UAAU,CAAA;QACxB,IAAI,UAAU,KAAK,QAAQ,EAAE;YAC3B,MAAM,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,CAAA;YACvG,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;SACrB;aAAM,IAAI,UAAU,KAAK,OAAO,EAAE;YACjC,MAAM,CAAC,KAAK,GAAG;gBACb,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,IAAI;gBAC1B,UAAU,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;gBAC/F,QAAQ,EAAE,EAAE;aACb,CAAA;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,kDAAkD,UAAU,EAAE,CAAC,CAAA;SAChF;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,SAAS,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAA;QAC7E,8CAA8C;QAC9C,MAAM,KAAK,GAAU,MAAM,IAAA,mBAAQ,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;QAC7E,MAAM,YAAY,GAA4B;YAC5C,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,YAAY,CAAC,IAAI;YACxB,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,IAAI;gBAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,CACvB,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,eAAe,EAAE,eAAe,CAAC,EACzE,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC,CACtD;gBACD,QAAQ,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;aAClI;YACD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE;SACT,CAAA;QAED,MAAM,gBAAgB,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,UAAU,OAAO,CAAC,CAAA;QACrF,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,UAAU,KAAK,CAAC,CAAA;QAE3E,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,iBAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,EACzF,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CACxD,CAAA;QAED,OAAO;YACL,QAAQ,EAAE,YAAY,CAAC,MAAM;SAC9B,CAAA;IACH,CAAC;IAED;;OAEG;IACH,sCAAsC;IAC9B,KAAK,CAAC,mBAAmB,CAAC,IAAY,EAAE,IAAqB,EAAE,MAAe;QACpF,MAAM,QAAQ,GAAG,EAA2B,CAAA;QAE5C,wCAAwC;QACxC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACvB,QAAQ,IAAI,EAAE;gBACd,KAAK,MAAM;oBACT,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC3B,MAAK;gBAEP,KAAK,aAAa;oBAChB,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;oBACjC,MAAK;gBAEP,KAAK,MAAM;oBACT,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE;wBACpB;;2BAEG;wBACH,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC,CAAC;wBAAC,KAAK,EAAE,CAAC;wBAAC,KAAK,EAAE,CAAC;wBAAC,KAAK,EAAE;4BAC/C,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAA;4BACxB,IAAI,IAAI,CAAC,OAAO,EAAE;gCAChB,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;6BACnC;4BAED,MAAK;wBAEP,KAAK,CAAC;4BACJ,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAA;4BACxB,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAA;4BAC5B,IAAI,IAAI,CAAC,OAAO,EAAE;gCAChB,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;6BACnC;4BAED,MAAK;wBAEP,KAAK,CAAC;4BACJ,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAA;4BACvB,QAAQ,CAAC,KAAK,GAAG;gCACf,IAAI,EAAE,QAAQ;6BACf,CAAA;4BAED,MAAK;wBAEP,KAAK,EAAE;4BACL,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAA;4BACvB,QAAQ,CAAC,KAAK,GAAG;gCACf,IAAI,EAAE,QAAQ;6BACf,CAAA;4BAED,MAAK;wBAEP,KAAK,CAAC,CAAC;wBAAC,KAAK,EAAE,CAAC;wBAAC,KAAK,EAAE;4BACtB,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAA;4BACxB,IAAI,IAAI,CAAC,OAAO,EAAE;gCAChB,QAAQ,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;6BAC3C;4BAED,MAAK;wBAEP,KAAK,CAAC;4BACJ,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAA;4BACzB,MAAK;wBAEP,KAAK,CAAC;4BACJ,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAA;4BACxB,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAA;4BAC7B,IAAI,IAAI,CAAC,OAAO,EAAE;gCAChB,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;6BACnC;4BAED,MAAK;wBAEP,KAAK,CAAC;4BACJ,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAA;4BACxB,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAA;4BACpC,MAAK;wBAEP,KAAK,EAAE;4BACL,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAA;4BACxB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;4BACxB,IAAI,IAAI,CAAC,OAAO,EAAE;gCAChB,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;6BACnC;4BAED,MAAK;wBAEP;;2BAEG;wBACH,KAAK,EAAE;4BACL,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAA;4BACxB,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAA;4BAC7B,IAAI,IAAI,CAAC,OAAO,EAAE;gCAChB,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;6BACnC;4BAED,MAAK;wBAEP,KAAK,EAAE;4BACL,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAA;4BACxB,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAA;4BAChC,IAAI,IAAI,CAAC,OAAO,EAAE;gCAChB,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;6BACnC;4BAED,MAAK;wBAEP,KAAK,EAAE;4BACL,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAA;4BACxB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;4BACxB,IAAI,IAAI,CAAC,OAAO,EAAE;gCAChB,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;6BACnC;4BAED,MAAK;wBAEP,KAAK,EAAE;4BACL,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAA;4BACvB,QAAQ,CAAC,KAAK,GAAG;gCACf,kBAAkB,EAAE,YAAY;gCAChC,IAAI,EAAE,QAAQ;gCACd,oBAAoB,EAAE,KAAK;gCAC3B,UAAU,EAAE;oCACV,qCAAqC;oCACrC,SAAS,EAAE;wCACT,IAAI,EAAE,QAAQ;qCACf;oCACD,IAAI,EAAE;wCACJ,IAAI,EAAE,QAAQ;wCACd,MAAM,EAAE,QAAQ;qCACjB;iCACF;6BACF,CAAA;4BAED,MAAK;qBACN;aACF;SACF;QAED,2CAA2C;QAC3C,IAAI,MAAM,EAAE;YACV,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAA;YACvB,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAA;YACtB,QAAQ,CAAC,KAAK,GAAG;gBACf,kBAAkB,EAAE,YAAY;gBAChC,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,qCAAqC;oBACrC,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;qBACf;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,QAAQ;qBACjB;iBACF;aACF,CAAA;SACF;QAED,OAAO,EAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAC,CAAA;IAC3B,CAAC;IAED;;MAEE;IACM,KAAK,CAAC,eAAe,CAAC,UAA0C,EAAE,KAAe;QAEvF,MAAM,UAAU,GAA0C,EAAE,CAAA;QAC5D,MAAM,gBAAgB,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,EAAE,CAAA;SACV;QAED,wCAAwC;QACxC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;YAC7B,IAAI,MAAM,GAAG,KAAK,CAAA;YAElB,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACxB,MAAM,GAAG,IAAI,CAAA;aACd;YAED,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;SAChF;QAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;QACzD,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,aAAa,CAAC,CAAA;IACpD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,UAA0C;QAExE,MAAM,cAAc,GAAa,EAAE,CAAA;QACnC,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,EAAE,CAAA;SACV;QAED,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;YAC7B,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;gBAC/D,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aAC1B;SACF;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,wBAAwB;IAChB,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,IAAS,EAAE,IAAS;QAC9D,MAAM,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAA;QACtB,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;CACF;AA/cD,4CA+cC"}
@@ -0,0 +1,4 @@
1
+ import { GenerateSchemaOptions } from './types';
2
+ import { ConnectorInputsDescriptor } from '@swimlane/connector-interfaces';
3
+ export declare const schemaDefaults: GenerateSchemaOptions;
4
+ export declare const pythonDefinitionInputDefaults: ConnectorInputsDescriptor;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pythonDefinitionInputDefaults = exports.schemaDefaults = void 0;
4
+ exports.schemaDefaults = {
5
+ additionalProperties: true,
6
+ generateExamples: true,
7
+ swimlane: false,
8
+ };
9
+ exports.pythonDefinitionInputDefaults = {
10
+ type: 'object',
11
+ properties: {
12
+ path_parameters: {
13
+ type: 'object',
14
+ description: 'Path Parameters',
15
+ properties: {},
16
+ required: [],
17
+ },
18
+ parameters: {
19
+ type: 'object',
20
+ description: 'URL Query Parameters',
21
+ properties: {},
22
+ required: [],
23
+ },
24
+ json_body: {
25
+ type: 'object',
26
+ description: 'JSON Body',
27
+ properties: {},
28
+ required: [],
29
+ },
30
+ data_body: {
31
+ type: 'object',
32
+ description: 'Data Body',
33
+ properties: {},
34
+ required: [],
35
+ },
36
+ headers: {
37
+ type: 'object',
38
+ description: 'Request Headers',
39
+ properties: {},
40
+ required: [],
41
+ },
42
+ },
43
+ required: [],
44
+ };
45
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":";;;AAIa,QAAA,cAAc,GAA0B;IACnD,oBAAoB,EAAE,IAAI;IAC1B,gBAAgB,EAAE,IAAI;IACtB,QAAQ,EAAE,KAAK;CAChB,CAAA;AAEY,QAAA,6BAA6B,GAA8B;IACtE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iBAAiB;YAC9B,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sBAAsB;YACnC,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iBAAiB;YAC9B,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;KACF;IACD,QAAQ,EAAE,EAAE;CACb,CAAA"}
File without changes
package/lib/guards.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":""}
package/lib/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export * from './converter';
3
+ export * from './build';
4
+ export * from './json-schema-generator';
5
+ export * from './common';
6
+ export * from './defaults';
7
+ export * from './logo';
package/lib/index.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./types"), exports);
5
+ tslib_1.__exportStar(require("./converter"), exports);
6
+ tslib_1.__exportStar(require("./build"), exports);
7
+ tslib_1.__exportStar(require("./json-schema-generator"), exports);
8
+ tslib_1.__exportStar(require("./common"), exports);
9
+ tslib_1.__exportStar(require("./defaults"), exports);
10
+ tslib_1.__exportStar(require("./logo"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB;AACvB,sDAA2B;AAC3B,kDAAuB;AACvB,kEAAuC;AACvC,mDAAwB;AACxB,qDAA0B;AAC1B,iDAAsB"}
@@ -0,0 +1,11 @@
1
+ import { GenerateSchemaOptions, IOSchema } from './types';
2
+ import { JSONSchema } from 'json-schema-typed';
3
+ /**
4
+ * Builds a JSON schema from data
5
+ * @param k key
6
+ * @param v value
7
+ * @param options schema build options
8
+ * @private
9
+ */
10
+ export declare function generateSchema(k: string, v: any, options: GenerateSchemaOptions): Promise<Record<string, IOSchema>>;
11
+ export declare function determineFormat(value: string): Promise<JSONSchema['format']>;