@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.
- package/LICENSE +8 -0
- package/lib/build.d.ts +4 -0
- package/lib/build.js +252 -0
- package/lib/build.js.map +1 -0
- package/lib/common.d.ts +11 -0
- package/lib/common.js +180 -0
- package/lib/common.js.map +1 -0
- package/lib/converter.d.ts +45 -0
- package/lib/converter.js +402 -0
- package/lib/converter.js.map +1 -0
- package/lib/defaults.d.ts +4 -0
- package/lib/defaults.js +45 -0
- package/lib/defaults.js.map +1 -0
- package/lib/guards.d.ts +0 -0
- package/lib/guards.js +2 -0
- package/lib/guards.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +11 -0
- package/lib/index.js.map +1 -0
- package/lib/json-schema-generator.d.ts +11 -0
- package/lib/json-schema-generator.js +197 -0
- package/lib/json-schema-generator.js.map +1 -0
- package/lib/logo.d.ts +1 -0
- package/lib/logo.js +17 -0
- package/lib/logo.js.map +1 -0
- package/lib/templates/node_18/Dockerfile +36 -0
- package/lib/templates/python_3.7_swimlane/Dockerfile +23 -0
- package/lib/templates/python_310_definition/Dockerfile +23 -0
- package/lib/types/common-types.d.ts +9 -0
- package/lib/types/common-types.js +3 -0
- package/lib/types/common-types.js.map +1 -0
- package/lib/types/connector-build-options.d.ts +10 -0
- package/lib/types/connector-build-options.js +3 -0
- package/lib/types/connector-build-options.js.map +1 -0
- package/lib/types/connector-build-results.d.ts +5 -0
- package/lib/types/connector-build-results.js +3 -0
- package/lib/types/connector-build-results.js.map +1 -0
- package/lib/types/connector-doc-types.d.ts +8 -0
- package/lib/types/connector-doc-types.js +3 -0
- package/lib/types/connector-doc-types.js.map +1 -0
- package/lib/types/conversion-results.d.ts +4 -0
- package/lib/types/conversion-results.js +3 -0
- package/lib/types/conversion-results.js.map +1 -0
- package/lib/types/index.d.ts +5 -0
- package/lib/types/index.js +9 -0
- package/lib/types/index.js.map +1 -0
- 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":";;;AAAA,iCAA8B;AAC9B,qCAAuD;AAIvD;;;;;;GAMG;AAEH,sCAAsC;AAC/B,KAAK,UAAU,cAAc,CAAC,CAAS,EAAE,CAAM,EAAE,OAA8B;IAEpF,MAAM,MAAM,GAAa;QACvB,KAAK,EAAE,MAAM,IAAA,wBAAe,EAAC,CAAC,CAAC;KAChC,CAAA;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE;QACpB,MAAM,CAAC,iBAAiB,CAAC,GAAG,MAAM,IAAA,sBAAa,EAAC,CAAC,CAAC,CAAA;KACnD;IAED,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;QACjD,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAA;KACtB;SAAM,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,QAAQ,EAAE;QACvD,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;KACjC;IAED,uBAAuB;IACvB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACpB,MAAM,CAAC,IAAI,GAAG,OAAO,CAAA;QAErB,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE;YAChD,MAAM,CAAC,KAAK,GAAG;gBACb,IAAI,EAAE,QAAQ;aACf,CAAA;SACF;QAED,4BAA4B;QAC5B,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE;YAChD,MAAM,CAAC,KAAK,GAAG;gBACb,IAAI,EAAE,QAAQ;aACf,CAAA;SACF;QAED,aAAa;QACb,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YAC1G,MAAM,UAAU,GAA6B,EAAE,CAAA;YAC/C,MAAM,QAAQ,GAAG,EAAE,CAAA;YACnB,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE;gBACtB,IAAI,GAAwB,CAAA;gBAC5B,wCAAwC;gBACxC,KAAK,GAAG,IAAI,MAAM,EAAE;oBAClB,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;iBACzD;aACF;YAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACjD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,aAAa,CAAC,CAAA;YAE3C,IAAI,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE;gBACtC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAA;gBACtB,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;gBAC9B,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;aACrB;iBAAM;gBACL,MAAM,CAAC,KAAK,GAAG;oBACb,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,UAAU;oBACtB,QAAQ,EAAE,EAAE;iBACb,CAAA;aACF;SACF;QAED,+BAA+B;QAC/B,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YACzG,MAAM,CAAC,KAAK,GAAG;gBACb,oBAAoB,EAAE,KAAK;gBAC3B,kBAAkB,EAAE,YAAY;gBAChC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;gBAC/B,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;YAED,IAAI,OAAO,CAAC,QAAQ,EAAE;gBACpB,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAA;aACjE;SACF;KACF;IAED,wBAAwB;IACxB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACzB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAA;QACtB,MAAM,CAAC,MAAM,GAAG,MAAM,eAAe,CAAC,CAAC,CAAC,CAAA;KACzC;IAED,YAAY;IACZ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACzB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAA;KACvB;IAED,aAAa;IACb,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE;QAC1B,MAAM,CAAC,IAAI,GAAG,SAAS,CAAA;KACxB;IAED,UAAU;IACV,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC9C,MAAM,UAAU,GAA6B,EAAE,CAAA;QAC/C,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,IAAI,GAAmB,CAAA;QACvB,wCAAwC;QACxC,KAAK,GAAG,IAAI,CAAC,EAAE;YACb,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;SACpD;QAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,aAAa,CAAC,CAAA;QAE3C,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAA;QACtB,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAC9B,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;QACpB,MAAM,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAA;KAC3D;IAED,OAAO;QACL,CAAC,CAAC,CAAC,EAAE,MAAM;KACZ,CAAA;AACH,CAAC;AA7HD,wCA6HC;AAED,+BAA+B;AACxB,KAAK,UAAU,eAAe,CAAC,KAAa;IACjD,aAAa;IACb,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,gJAAgJ,CAAC,CAAA;IACjL,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,WAAW,CAAA;KACnB;IAED,MAAM,OAAO,GAAG;QACd,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,SAAS;QACT,SAAS;QACT,QAAQ;KACT,CAAA;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;QAC5D,OAAO,MAAM,CAAA;KACd;IAED,WAAW;IACX,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,wHAAwH,CAAC,CAAA;IAClJ,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACrB,OAAO,OAAO,CAAA;KACf;IAED,UAAU;IACV,IAAI,gFAAgF,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAChG,OAAO,MAAM,CAAA;KACd;IAED,UAAU;IACV,IAAI,mmBAAmmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACnnB,OAAO,MAAM,CAAA;KACd;IAED,yBAAyB;IACzB,8BAA8B;IAC9B,cAAc;IACd,IAAI;IAEJ,SAAS;IACT,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,6yBAA6yB,CAAC,CAAA;IAC10B,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,eAAe,CAAA;KACvB;IAED,kBAAkB;IAClB,8BAA8B;IAC9B,cAAc;IACd,IAAI;AACN,CAAC;AA5ED,0CA4EC"}
|
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
|
package/lib/logo.js.map
ADDED
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"common-types.js","sourceRoot":"","sources":["../../src/types/common-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-build-options.js","sourceRoot":"","sources":["../../src/types/connector-build-options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-build-results.js","sourceRoot":"","sources":["../../src/types/connector-build-results.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-doc-types.js","sourceRoot":"","sources":["../../src/types/connector-doc-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversion-results.js","sourceRoot":"","sources":["../../src/types/conversion-results.ts"],"names":[],"mappings":""}
|
|
@@ -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
|
+
}
|