@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,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.determineFormat = exports.generateSchema = void 0;
4
+ const luxon_1 = require("luxon");
5
+ const common_1 = require("./common");
6
+ /**
7
+ * Builds a JSON schema from data
8
+ * @param k key
9
+ * @param v value
10
+ * @param options schema build options
11
+ * @private
12
+ */
13
+ // eslint-disable-next-line complexity
14
+ async function generateSchema(k, v, options) {
15
+ const schema = {
16
+ title: await (0, common_1.titleCaseString)(k),
17
+ };
18
+ if (options.swimlane) {
19
+ schema['x-swimlane-type'] = await (0, common_1.getOutputType)(v);
20
+ }
21
+ if (options.generateExamples && !options.swimlane) {
22
+ schema.examples = [v];
23
+ }
24
+ else if (options.generateExamples && options.swimlane) {
25
+ schema['x-swimlane-example'] = v;
26
+ }
27
+ // Check Array mappings
28
+ if (Array.isArray(v)) {
29
+ schema.type = 'array';
30
+ if (v.every((i) => (typeof i === 'string'))) {
31
+ schema.items = {
32
+ type: 'string',
33
+ };
34
+ }
35
+ // Check if array of numbers
36
+ if (v.every((i) => (typeof i === 'number'))) {
37
+ schema.items = {
38
+ type: 'number',
39
+ };
40
+ }
41
+ // JSON Array
42
+ const fileKeys = ['file_name', 'file'];
43
+ if (v.every((i) => (typeof i === 'object') && (fileKeys.every(key => !Object.keys(i).includes(key))))) {
44
+ const properties = {};
45
+ const promises = [];
46
+ for (const object of v) {
47
+ let key;
48
+ // eslint-disable-next-line guard-for-in
49
+ for (key in object) {
50
+ promises.push(generateSchema(key, object[key], options));
51
+ }
52
+ }
53
+ const propertyArray = await Promise.all(promises);
54
+ Object.assign(properties, ...propertyArray);
55
+ if (k === 'output' && options.swimlane) {
56
+ schema.type = 'object';
57
+ schema.properties = properties;
58
+ schema.required = [];
59
+ }
60
+ else {
61
+ schema.items = {
62
+ type: 'object',
63
+ properties: properties,
64
+ required: [],
65
+ };
66
+ }
67
+ }
68
+ // Check if list of attachments
69
+ if (v.every((i) => (typeof i === 'object') && (fileKeys.every(key => Object.keys(i).includes(key))))) {
70
+ schema.items = {
71
+ additionalProperties: false,
72
+ contentDisposition: 'attachment',
73
+ type: 'object',
74
+ required: ['file_name', 'file'],
75
+ properties: {
76
+ // eslint-disable-next-line camelcase
77
+ file_name: {
78
+ type: 'string',
79
+ },
80
+ file: {
81
+ type: 'string',
82
+ format: 'binary',
83
+ },
84
+ },
85
+ };
86
+ if (options.swimlane) {
87
+ schema.items.additionalProperties = options.additionalProperties;
88
+ }
89
+ }
90
+ }
91
+ // Check string mappings
92
+ if (typeof v === 'string') {
93
+ schema.type = 'string';
94
+ schema.format = await determineFormat(v);
95
+ }
96
+ // Is number
97
+ if (typeof v === 'number') {
98
+ schema.type = 'number';
99
+ }
100
+ // is boolean
101
+ if (typeof v === 'boolean') {
102
+ schema.type = 'boolean';
103
+ }
104
+ // is JSON
105
+ if (typeof v === 'object' && !Array.isArray(v)) {
106
+ const properties = {};
107
+ const promises = [];
108
+ let key;
109
+ // eslint-disable-next-line guard-for-in
110
+ for (key in v) {
111
+ promises.push(generateSchema(key, v[key], options));
112
+ }
113
+ const propertyArray = await Promise.all(promises);
114
+ Object.assign(properties, ...propertyArray);
115
+ schema.type = 'object';
116
+ schema.properties = properties;
117
+ schema.required = [];
118
+ schema.additionalProperties = options.additionalProperties;
119
+ }
120
+ return {
121
+ [k]: schema,
122
+ };
123
+ }
124
+ exports.generateSchema = generateSchema;
125
+ // determine string format type
126
+ async function determineFormat(value) {
127
+ // Is ISO8601
128
+ const iso8601Regex = new RegExp(/^(-?(?:[1-9]\d*)?\d{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12]\d)T(2[0-3]|[01]\d):([0-5]\d):([0-5]\d)(.\d+)?((Z)|(UTC)|([+-](1[0-2]|0?[1-9]):00))$/);
129
+ if (iso8601Regex.test(value)) {
130
+ return 'date-time';
131
+ }
132
+ const formats = [
133
+ 'dd/MM/y',
134
+ 'd/MM/y',
135
+ 'dd/M/y',
136
+ 'd/M/y',
137
+ 'dd/MM/yy',
138
+ 'd/MM/yy',
139
+ 'dd/M/yy',
140
+ 'd/M/yy',
141
+ 'MM/dd/y',
142
+ 'MM/d/y',
143
+ 'M/dd/y',
144
+ 'M/d/y',
145
+ 'MM/dd/yy',
146
+ 'MM/d/yy',
147
+ 'M/dd/yy',
148
+ 'M/d/yy',
149
+ 'dd-MM-y',
150
+ 'd-MM-y',
151
+ 'dd-M-y',
152
+ 'd-M-y',
153
+ 'dd-MM-yy',
154
+ 'd-MM-yy',
155
+ 'dd-M-yy',
156
+ 'd-M-yy',
157
+ 'MM-dd-y',
158
+ 'MM-d-y',
159
+ 'M-dd-y',
160
+ 'M-d-y',
161
+ 'MM-dd-yy',
162
+ 'MM-d-yy',
163
+ 'M-dd-yy',
164
+ 'M-d-yy',
165
+ ];
166
+ if (formats.some(f => luxon_1.DateTime.fromFormat(value, f).isValid)) {
167
+ return 'date';
168
+ }
169
+ // Is email
170
+ const regex = new RegExp(/^(([^\s"(),.:;<>@[\\\]]+(\.[^\s"(),.:;<>@[\\\]]+)*)|(".+"))@((\[(?:\d{1,3}\.){3}\d{1,3}])|(([\da-z-]+\.)+[a-z]{2,}))$/i);
171
+ if (regex.test(value)) {
172
+ return 'email';
173
+ }
174
+ // Is IPV4
175
+ if (/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d{1,2})\.){3}↵(?:25[0-5]|2[0-4]\d|[01]?\d{1,2})$/.test(value)) {
176
+ return 'ipv4';
177
+ }
178
+ // Is IPV6
179
+ if (/^(([\dA-Fa-f]{1,4}:){7}[\dA-Fa-f]{1,4}|([\dA-Fa-f]{1,4}:){1,7}:|([\dA-Fa-f]{1,4}:){1,6}:[\dA-Fa-f]{1,4}|([\dA-Fa-f]{1,4}:){1,5}(:[\dA-Fa-f]{1,4}){1,2}|([\dA-Fa-f]{1,4}:){1,4}(:[\dA-Fa-f]{1,4}){1,3}|([\dA-Fa-f]{1,4}:){1,3}(:[\dA-Fa-f]{1,4}){1,4}|([\dA-Fa-f]{1,4}:){1,2}(:[\dA-Fa-f]{1,4}){1,5}|[\dA-Fa-f]{1,4}:((:[\dA-Fa-f]{1,4}){1,6})|:((:[\dA-Fa-f]{1,4}){1,7}|:)|fe80:(:[\dA-Fa-f]{0,4}){0,4}%[\dA-Za-z]+|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}\d){0,1}\d)\.){3}(25[0-5]|(2[0-4]|1{0,1}\d){0,1}\d)|([\dA-Fa-f]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}\d){0,1}\d)\.){3}(25[0-5]|(2[0-4]|1{0,1}\d){0,1}\d))$/.test(value)) {
180
+ return 'ipv6';
181
+ }
182
+ // // Is telephone number
183
+ // if (phone(value).isValid) {
184
+ // return ''
185
+ // }
186
+ // is URL
187
+ const urlRegex = new RegExp(/^(https?:\/\/)(((([\w\u007E-\uFFFF-]+\.)+[\w\u007E-\uFFFF-]{2,}))|((?:(?:\b|\.)(?:2(?:5[0-5]|[0-4]\d)|1?\d?\d)){4})|(\[?((([\dA-Fa-f]{1,4}:){7}[\dA-Fa-f]{1,4}|([\dA-Fa-f]{1,4}:){1,7}:|([\dA-Fa-f]{1,4}:){1,6}:[\dA-Fa-f]{1,4}|([\dA-Fa-f]{1,4}:){1,5}(:[\dA-Fa-f]{1,4}){1,2}|([\dA-Fa-f]{1,4}:){1,4}(:[\dA-Fa-f]{1,4}){1,3}|([\dA-Fa-f]{1,4}:){1,3}(:[\dA-Fa-f]{1,4}){1,4}|([\dA-Fa-f]{1,4}:){1,2}(:[\dA-Fa-f]{1,4}){1,5}|[\dA-Fa-f]{1,4}:((:[\dA-Fa-f]{1,4}){1,6})|:((:[\dA-Fa-f]{1,4}){1,7}|:)|fe80:(:[\dA-Fa-f]{0,4}){0,4}%[\dA-Za-z]+|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}\d){0,1}\d)\.){3}(25[0-5]|(2[0-4]|1{0,1}\d){0,1}\d)|([\dA-Fa-f]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}\d){0,1}\d)\.){3}(25[0-5]|(2[0-4]|1{0,1}\d){0,1}\d)))]?))(:\d{1,5})?\/?((?<=\/)([\w!%./?{|}~-]+)(?=\/))?\/?(([^"<>?]+))?(\?[^\s"<>]*)?$/);
188
+ if (urlRegex.test(value)) {
189
+ return 'uri-reference';
190
+ }
191
+ // // is text area
192
+ // if (value.includes('\n')) {
193
+ // return ''
194
+ // }
195
+ }
196
+ exports.determineFormat = determineFormat;
197
+ //# sourceMappingURL=json-schema-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-generator.js","sourceRoot":"","sources":["../src/json-schema-generator.ts"],"names":[],"mappings":"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"}
package/lib/logo.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare function updateImage(directory: string, logoPath: string): Promise<void>;
package/lib/logo.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateImage = void 0;
4
+ const common_1 = require("@sw-tsdk/common");
5
+ const node_fs_1 = require("node:fs");
6
+ const node_path_1 = require("node:path");
7
+ const fs_extra_1 = require("fs-extra");
8
+ async function updateImage(directory, logoPath) {
9
+ const images = await common_1.ImageProcessor.process(logoPath);
10
+ if (images === null) {
11
+ throw new Error('Could not process image');
12
+ }
13
+ await (0, fs_extra_1.ensureDir)((0, node_path_1.join)(directory, 'image'));
14
+ await node_fs_1.promises.writeFile((0, node_path_1.join)(directory, 'image', 'logo.png'), images.source.getRaw());
15
+ }
16
+ exports.updateImage = updateImage;
17
+ //# sourceMappingURL=logo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logo.js","sourceRoot":"","sources":["../src/logo.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,qCAAgC;AAChC,yCAA8B;AAC9B,uCAAkC;AAE3B,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,QAAgB;IACnE,MAAM,MAAM,GAAG,MAAM,uBAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACrD,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;KAC3C;IAED,MAAM,IAAA,oBAAS,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IACzC,MAAM,kBAAQ,CAAC,SAAS,CAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;AACxF,CAAC;AARD,kCAQC"}
@@ -0,0 +1,36 @@
1
+ # syntax=docker/dockerfile:1.2
2
+ ARG BASE_COMPILE_IMAGE_NAME=node:18.4.0-bullseye-slim
3
+ ARG RUNNER_IMAGE_NAME=node:18.4.0-bullseye-slim
4
+ ARG RUNTIME_IMAGE=runtime-image
5
+ FROM ${BASE_COMPILE_IMAGE_NAME} AS compile-image
6
+
7
+ # Install OS packages
8
+ WORKDIR usr/src/app
9
+
10
+ COPY ./package.json .
11
+ COPY ./yarn.lock .
12
+
13
+ RUN yarn install --production
14
+
15
+ RUN rm -rf yarn.lock && \
16
+ rm -rf package.json
17
+
18
+
19
+ FROM ${RUNNER_IMAGE_NAME} AS runtime-image
20
+ ARG ASSET_KEYS
21
+ ENV ASSET_KEYS=$ASSET_KEYS
22
+ ENV NODE_ENV production
23
+
24
+ WORKDIR usr/src/app
25
+ COPY --chown=node:node --from=compile-image usr/src/app .
26
+
27
+ COPY connector .
28
+
29
+ USER node
30
+
31
+ ENTRYPOINT ["node", "./lib/index.js"]
32
+
33
+ FROM ${RUNTIME_IMAGE} AS connector-image
34
+ {{#each labels}}
35
+ LABEL {{{@key}}}="{{{this}}}"
36
+ {{/each}}
@@ -0,0 +1,23 @@
1
+ # syntax=docker/dockerfile:1.2
2
+ ARG BASE_COMPILE_IMAGE_NAME=quay.io/swimlane-connectors/connector-python-compile-base:3.7-latest
3
+ ARG RUNNER_IMAGE_NAME=quay.io/swimlane-connectors/connector-python-runner-base:3.7-latest
4
+ ARG RUNTIME_IMAGE=runtime-image
5
+ FROM ${BASE_COMPILE_IMAGE_NAME} AS compile-image
6
+
7
+ # Install OS packages
8
+ COPY dist_requirements.txt .
9
+ RUN pip install -r dist_requirements.txt
10
+
11
+ FROM ${RUNNER_IMAGE_NAME} AS runtime-image
12
+ ARG ASSET_KEYS
13
+ ENV ASSET_KEYS=$ASSET_KEYS
14
+ COPY --from=compile-image /usr/local/lib/python3.7/site-packages /usr/local/lib/python3.7/site-packages
15
+
16
+ COPY connector /app
17
+ WORKDIR app/
18
+ ENTRYPOINT ["python", "run.py"]
19
+
20
+ FROM ${RUNTIME_IMAGE} AS connector-image
21
+ {{#each labels}}
22
+ LABEL {{{@key}}}="{{{this}}}"
23
+ {{/each}}
@@ -0,0 +1,23 @@
1
+ # syntax=docker/dockerfile:1.2
2
+ ARG BASE_COMPILE_IMAGE_NAME=quay.io/swimlane-connectors/connector-python-compile-definition-base:3.10-latest
3
+ ARG RUNNER_IMAGE_NAME=quay.io/swimlane-connectors/connector-python-runner-definition-base:3.10-latest
4
+ ARG RUNTIME_IMAGE=runtime-image
5
+ FROM ${BASE_COMPILE_IMAGE_NAME} AS compile-image
6
+
7
+ # Install OS packages
8
+ COPY requirements.txt .
9
+ RUN pip install -r requirements.txt
10
+
11
+ FROM ${RUNNER_IMAGE_NAME} AS runtime-image
12
+ ARG ASSET_KEYS
13
+ ENV ASSET_KEYS=$ASSET_KEYS
14
+ COPY --from=compile-image /usr/local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages
15
+
16
+ COPY connector /app
17
+ WORKDIR app/
18
+ ENTRYPOINT ["python", "run.py"]
19
+
20
+ FROM ${RUNTIME_IMAGE} AS connector-image
21
+ {{#each labels}}
22
+ LABEL {{{@key}}}="{{{this}}}"
23
+ {{/each}}
@@ -0,0 +1,9 @@
1
+ import { ConnectorActionManifest, ConnectorAssetManifest, ConnectorInputsDescriptor, ConnectorManifest, ConnectorOutputDescriptor } from '@swimlane/connector-interfaces';
2
+ import { JSONSchema } from 'json-schema-typed';
3
+ export declare type Manifest = ConnectorManifest | ConnectorActionManifest | ConnectorAssetManifest;
4
+ export declare type GenerateSchemaOptions = {
5
+ additionalProperties: boolean;
6
+ generateExamples: boolean;
7
+ swimlane: boolean;
8
+ };
9
+ export declare type IOSchema = JSONSchema | ConnectorOutputDescriptor | ConnectorInputsDescriptor | any;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=common-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-types.js","sourceRoot":"","sources":["../../src/types/common-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export declare type ConnectorBuildOptions = {
2
+ directory: string;
3
+ template: string;
4
+ runnerOverride: string;
5
+ compileOverride: string;
6
+ runtimeOverride?: string;
7
+ nocache: boolean;
8
+ platform: string;
9
+ squash: boolean;
10
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=connector-build-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-build-options.js","sourceRoot":"","sources":["../../src/types/connector-build-options.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export declare type ConnectorBuildResults = {
2
+ imageTag: string;
3
+ name: string;
4
+ version: string;
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=connector-build-results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-build-results.js","sourceRoot":"","sources":["../../src/types/connector-build-results.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export declare type ImageLink = {
2
+ htmlImgTag: string;
3
+ relativeLink: string;
4
+ };
5
+ export declare type ConnectorDoc = {
6
+ filename: string;
7
+ contents: string;
8
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=connector-doc-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-doc-types.js","sourceRoot":"","sources":["../../src/types/connector-doc-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export interface ActionConversionResults {
2
+ keywords: string;
3
+ }
4
+ export declare type AssetConversionResults = ActionConversionResults;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=conversion-results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversion-results.js","sourceRoot":"","sources":["../../src/types/conversion-results.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export * from './connector-build-options';
2
+ export * from './connector-build-results';
3
+ export * from './conversion-results';
4
+ export * from './connector-doc-types';
5
+ export * from './common-types';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./connector-build-options"), exports);
5
+ tslib_1.__exportStar(require("./connector-build-results"), exports);
6
+ tslib_1.__exportStar(require("./conversion-results"), exports);
7
+ tslib_1.__exportStar(require("./connector-doc-types"), exports);
8
+ tslib_1.__exportStar(require("./common-types"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,oEAAyC;AACzC,oEAAyC;AACzC,+DAAoC;AACpC,gEAAqC;AACrC,yDAA8B"}
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "author": "Swimlane",
3
+ "bugs": {
4
+ "url": "https://github.com/swimlane/turbine-sdk/issues"
5
+ },
6
+ "dependencies": {
7
+ "@apidevtools/json-schema-ref-parser": "9.0.9",
8
+ "@ctrl/url-join": "1.0.4",
9
+ "@oclif/core": "1.16.4",
10
+ "@oclif/plugin-help": "5",
11
+ "@oclif/plugin-plugins": "2.0.1",
12
+ "@sw-tsdk/common": "^0.1.1-next.23+038e7a6",
13
+ "@sw-tsdk/core": "^0.1.1-next.23+038e7a6",
14
+ "@sw-tsdk/docker": "^0.1.1-next.23+038e7a6",
15
+ "@swimlane/connector-interfaces": "1.8.5-rc3",
16
+ "@swimlane/cosign": "1.3.0",
17
+ "@types/folder-hash": "4.0.1",
18
+ "chalk": "4.1.2",
19
+ "docker-cli-js": "2.9.0",
20
+ "dockerode": "3.3.1",
21
+ "fast-glob": "3.2.11",
22
+ "folder-hash": "4.0.2",
23
+ "fs-extra": "10.0.1",
24
+ "handlebars": "4.7.7",
25
+ "inquirer": "8.2.2",
26
+ "js-yaml": "4.1.0",
27
+ "json-schema-typed": "7.0.3",
28
+ "luxon": "3.0.1",
29
+ "npmlog": "6.0.1",
30
+ "phone": "3.1.15",
31
+ "request": "2.88.2",
32
+ "semver": "7.3.5",
33
+ "snake-case": "3.0.4",
34
+ "ts-is-present": "1.2.2",
35
+ "yaml": "1.10.2"
36
+ },
37
+ "description": "Helper module for connectors",
38
+ "directories": {
39
+ "templates": "./lib/templates",
40
+ "lib": "lib"
41
+ },
42
+ "engines": {
43
+ "node": ">=16.0.0"
44
+ },
45
+ "files": [
46
+ "lib"
47
+ ],
48
+ "homepage": "https://github.com/swimlane/turbine-sdk#readme",
49
+ "license": "ISC",
50
+ "main": "lib/index.js",
51
+ "name": "@sw-tsdk/connector",
52
+ "publishConfig": {
53
+ "access": "public"
54
+ },
55
+ "repository": {
56
+ "type": "git",
57
+ "url": "git+https://github.com/swimlane/turbine-sdk.git"
58
+ },
59
+ "scripts": {
60
+ "build": "rm -rf lib && tsc && yarn copy-files",
61
+ "lint": "eslint . --ext .ts --config .eslintrc",
62
+ "copy-files": "copyfiles -u 1 **/templates/**/* lib/",
63
+ "test": "echo \"Error: run tests from root\" && exit 1"
64
+ },
65
+ "types": "lib/index.d.ts",
66
+ "version": "0.1.1-next.23+038e7a6",
67
+ "gitHead": "038e7a68d45b2d93f39c7f7b2edce9798019007e"
68
+ }