node-red-contrib-prib-functions 0.18.0 → 0.20.4
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/.github/workflows/codeql-analysis.yml +3 -3
- package/.github/workflows/npmpublish.yml +6 -6
- package/.vs/VSWorkspaceState.json +7 -0
- package/.vs/node-red-contrib-prib-functions/v17/.wsuo +0 -0
- package/README.md +22 -19
- package/arima/index.js +18 -0
- package/dataAnalysis/arrayAllRowsSwap.js +15 -0
- package/dataAnalysis/arrayCompareToPrecision.js +34 -0
- package/dataAnalysis/arrayDifference.js +14 -0
- package/dataAnalysis/arrayDifferenceSeasonal.js +15 -0
- package/dataAnalysis/arrayDifferenceSeasonalSecondOrder.js +20 -0
- package/dataAnalysis/arrayDifferenceSecondOrder.js +14 -0
- package/dataAnalysis/arrayForEachRange.js +38 -0
- package/dataAnalysis/arrayOverlay.js +13 -0
- package/dataAnalysis/arrayProduct.js +11 -0
- package/dataAnalysis/arrayRandom.js +14 -0
- package/dataAnalysis/arrayReduceRange.js +11 -0
- package/dataAnalysis/arrayScale.js +11 -0
- package/dataAnalysis/arraySum.js +11 -0
- package/dataAnalysis/arraySumSquared.js +11 -0
- package/dataAnalysis/arraySwap.js +11 -0
- package/dataAnalysis/dataAnalysis.html +31 -14
- package/dataAnalysis/dataAnalysis.js +10 -1
- package/dataAnalysis/generateMatrixFunction.js +89 -0
- package/dataAnalysis/generateVectorFunction.js +25 -0
- package/dataAnalysis/pca.js +546 -0
- package/dataAnalysis/svd.js +239 -0
- package/documentation/loadInjector.png +0 -0
- package/echart/echart.html +68 -0
- package/echart/echart.js +85 -0
- package/echart/icons/chart-671.png +0 -0
- package/echart/lib/echarts.js +95886 -0
- package/lib/Chart.js +177 -0
- package/lib/Column.js +99 -0
- package/lib/GraphDB.js +14 -0
- package/lib/Table.js +185 -0
- package/lib/objectExtensions.js +361 -0
- package/matrix/matrix.js +50 -50
- package/matrix/matrixNode.html +144 -154
- package/matrix/matrixNode.js +26 -9
- package/monitor/BarGauge.js +8 -0
- package/monitor/Dataset.js +29 -0
- package/monitor/DialGauge.js +109 -0
- package/monitor/DialNeedle.js +36 -0
- package/monitor/Format.js +74 -0
- package/monitor/centerElement.js +14 -0
- package/monitor/compareElements.js +95 -0
- package/monitor/defs.js +23 -0
- package/monitor/extensions.js +906 -0
- package/monitor/functions.js +36 -0
- package/monitor/json2xml.js +103 -0
- package/monitor/monitorSystem.html +198 -0
- package/monitor/monitorSystem.js +322 -0
- package/monitor/svgHTML.js +179 -0
- package/monitor/svgObjects.js +64 -0
- package/package.json +31 -8
- package/test/00-objectExtensions.js +94 -0
- package/test/01-base.js +88 -0
- package/test/04-tables.js +33 -0
- package/test/data/.config.nodes.json +608 -0
- package/test/data/.config.nodes.json.backup +608 -0
- package/test/data/.config.runtime.json +4 -0
- package/test/data/.config.runtime.json.backup +3 -0
- package/test/data/.config.users.json +21 -0
- package/test/data/.config.users.json.backup +21 -0
- package/test/data/.flow.json.backup +3433 -0
- package/test/data/float32vector10.npy +0 -0
- package/test/data/flow.json +3433 -0
- package/test/data/int2matrix2x3.npy +0 -0
- package/test/data/package-lock.json +158 -0
- package/test/data/package.json +11 -0
- package/test/data/settings.js +544 -0
- package/test/dataAnalysisExtensions.js +472 -0
- package/test/dataAnalysisPCA.js +54 -0
- package/test/dataAnalysisSVD.js +31 -0
- package/test/euclideanDistance.js +2 -2
- package/test/matrix/02base.js +36 -0
- package/test/transformNumPy.js +132 -0
- package/testing/data/countries.csv +250 -0
- package/testing/hostAvailable.html +0 -2
- package/testing/load-injector.html +76 -21
- package/testing/load-injector.js +35 -54
- package/testing/test.js +1 -0
- package/transform/NumPy.js +303 -0
- package/transform/transform.html +73 -19
- package/transform/transform.js +144 -8
- package/documentation/LoadInjector.JPG +0 -0
package/testing/test.js
CHANGED
|
@@ -31,6 +31,7 @@ function setError(msg,node,err) {
|
|
|
31
31
|
|
|
32
32
|
function equalObjects(obj1,obj2,errorFactor) {
|
|
33
33
|
if( obj1 === obj2 ) return true;
|
|
34
|
+
if(obj1 instanceof Buffer ) return Buffer.compare(obj1, obj2) === 0
|
|
34
35
|
if( obj1 === Number.POSITIVE_INFINITY && obj2==="Infinity") return true;
|
|
35
36
|
if( obj1 === Number.NEGATIVE_INFINITY && obj2==="-Infinity") return true;
|
|
36
37
|
if( Number.isNaN(obj1) && obj2==="NaN") return true;
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
if(!BigInt.prototype.toJSON)
|
|
2
|
+
BigInt.prototype.toJSON = function(){return Number(this.toString())}
|
|
3
|
+
if(!Buffer.prototype.toBufferArray)
|
|
4
|
+
Buffer.prototype.toBufferArray = function() {return this.buffer.slice(this.byteOffset, this.byteOffset + this.byteLength)}
|
|
5
|
+
//const bufferToArrayBuffer = (b) => b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength);
|
|
6
|
+
const MAGIC_STRING = "\x93NUMPY"
|
|
7
|
+
const defaultVersionStr = "\x01\x00" // version 1.0
|
|
8
|
+
const defaultVersion = 1.0
|
|
9
|
+
const getTotalCells = (shape)=> shape.reduce((a, b) => a * b, 1);
|
|
10
|
+
const dataTypes = {
|
|
11
|
+
"|b1": {
|
|
12
|
+
bytes4DataType: 1,
|
|
13
|
+
name: "bool",
|
|
14
|
+
cellConstructor: Uint8Array,
|
|
15
|
+
setDataView: "setUint8"
|
|
16
|
+
},
|
|
17
|
+
"<u1": {
|
|
18
|
+
name: "uint8",
|
|
19
|
+
bytes4DataType: 8,
|
|
20
|
+
cellConstructor: Uint8Array,
|
|
21
|
+
setDataView: "setUint8"
|
|
22
|
+
},
|
|
23
|
+
"|u1": {
|
|
24
|
+
name: "uint8",
|
|
25
|
+
bytes4DataType: 8,
|
|
26
|
+
cellConstructor: Uint8Array,
|
|
27
|
+
setDataView: "setUint8"
|
|
28
|
+
},
|
|
29
|
+
"|i1": {
|
|
30
|
+
name: "int8",
|
|
31
|
+
bytes4DataType: 8,
|
|
32
|
+
cellConstructor: Int8Array,
|
|
33
|
+
setDataView: "setInt8"
|
|
34
|
+
},
|
|
35
|
+
"<u2": {
|
|
36
|
+
name: "uint16",
|
|
37
|
+
bytes4DataType: 16,
|
|
38
|
+
cellConstructor: Uint16Array,
|
|
39
|
+
setDataView: "setUint16"
|
|
40
|
+
},
|
|
41
|
+
"<i1": {
|
|
42
|
+
name: "int8",
|
|
43
|
+
bytes4DataType: 8,
|
|
44
|
+
cellConstructor: Int8Array,
|
|
45
|
+
setDataView: "setInt16"
|
|
46
|
+
},
|
|
47
|
+
"<i2": {
|
|
48
|
+
name: "int16",
|
|
49
|
+
bytes4DataType: 16,
|
|
50
|
+
cellConstructor: Int16Array,
|
|
51
|
+
setDataView: "setInt16"
|
|
52
|
+
},
|
|
53
|
+
"<u4": {
|
|
54
|
+
name: "uint32",
|
|
55
|
+
bytes4DataType: 32,
|
|
56
|
+
cellConstructor: Int32Array,
|
|
57
|
+
setDataView: "setInt32"
|
|
58
|
+
},
|
|
59
|
+
"<i4": {
|
|
60
|
+
name: "int32",
|
|
61
|
+
bytes4DataType: 32,
|
|
62
|
+
cellConstructor: Int32Array,
|
|
63
|
+
setDataView: "setInt32"
|
|
64
|
+
},
|
|
65
|
+
"<u8": {
|
|
66
|
+
name: "uint64",
|
|
67
|
+
bytes4DataType: 64,
|
|
68
|
+
cellConstructor: BigUint64Array,
|
|
69
|
+
setDataView: "setBigUint64"
|
|
70
|
+
},
|
|
71
|
+
"<i8": {
|
|
72
|
+
name: "int64",
|
|
73
|
+
bytes4DataType: 64,
|
|
74
|
+
cellConstructor: BigInt64Array,
|
|
75
|
+
setDataView: "setBigInt64"
|
|
76
|
+
},
|
|
77
|
+
"<f4": {
|
|
78
|
+
name: "float32",
|
|
79
|
+
bytes4DataType: 32,
|
|
80
|
+
cellConstructor: Float32Array,
|
|
81
|
+
setDataView: "setFloat32"
|
|
82
|
+
},
|
|
83
|
+
"<f8": {
|
|
84
|
+
name: "float64",
|
|
85
|
+
bytes4DataType: 64,
|
|
86
|
+
cellConstructor: Float64Array,
|
|
87
|
+
setDataView: "setFloat64"
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
/*
|
|
92
|
+
‘S’ - swap dtype from current to opposite endian
|
|
93
|
+
{‘<’, ‘little’} - little endian
|
|
94
|
+
{‘>’, ‘big’} - big endian
|
|
95
|
+
{‘=’, ‘native’} - native order
|
|
96
|
+
{‘|’, ‘I’} - ignore (no change to byte order)
|
|
97
|
+
|
|
98
|
+
b boolean
|
|
99
|
+
i signed integer
|
|
100
|
+
u unsigned integer f floating-point
|
|
101
|
+
c complex floating-point
|
|
102
|
+
m timedelta
|
|
103
|
+
M datetime
|
|
104
|
+
O object
|
|
105
|
+
S (byte-)string
|
|
106
|
+
U Unicode
|
|
107
|
+
V void
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
* Float data
|
|
111
|
+
typestr == '>f4'
|
|
112
|
+
descr == [('','>f4')]
|
|
113
|
+
|
|
114
|
+
* Complex double
|
|
115
|
+
typestr == '>c8'
|
|
116
|
+
descr == [('real','>f4'), ('imag','>f4')]
|
|
117
|
+
|
|
118
|
+
* RGB Pixel data
|
|
119
|
+
typestr == '|V3'
|
|
120
|
+
descr == [('r','|u1'), ('g','|u1'), ('b','|u1')]
|
|
121
|
+
|
|
122
|
+
* Mixed endian (weird but could happen).
|
|
123
|
+
typestr == '|V8' (or '>u8')
|
|
124
|
+
descr == [('big','>i4'), ('little','<i4')]
|
|
125
|
+
|
|
126
|
+
* Nested structure
|
|
127
|
+
struct {
|
|
128
|
+
int ival;
|
|
129
|
+
struct {
|
|
130
|
+
unsigned short sval;
|
|
131
|
+
unsigned char bval;
|
|
132
|
+
unsigned char cval;
|
|
133
|
+
} sub;
|
|
134
|
+
}
|
|
135
|
+
typestr == '|V8' (or '<u8' if you want)
|
|
136
|
+
descr == [('ival','<i4'), ('sub', [('sval','<u2'), ('bval','|u1'), ('cval','|u1') ]) ]
|
|
137
|
+
|
|
138
|
+
* Nested array
|
|
139
|
+
struct {
|
|
140
|
+
int ival;
|
|
141
|
+
double data[16*4];
|
|
142
|
+
}
|
|
143
|
+
typestr == '|V516'
|
|
144
|
+
descr == [('ival','>i4'), ('data','>f8',(16,4))]
|
|
145
|
+
|
|
146
|
+
* Padded structure
|
|
147
|
+
struct {
|
|
148
|
+
int ival;
|
|
149
|
+
double dval;
|
|
150
|
+
}
|
|
151
|
+
typestr == '|V16'
|
|
152
|
+
descr == [('ival','>i4'),('','|V4'),('dval','>f8')]
|
|
153
|
+
*/
|
|
154
|
+
const dataTypeToNumpyDescr = new Map([
|
|
155
|
+
["float32", "<f4"],
|
|
156
|
+
["float64", "<f8"],
|
|
157
|
+
["int8", "<i1"],
|
|
158
|
+
["int16", "<i2"],
|
|
159
|
+
["int32", "<i4"],
|
|
160
|
+
["int64", "<i8"],
|
|
161
|
+
["uint8", "<u1"],
|
|
162
|
+
["uint16", "<u2"],
|
|
163
|
+
["uint32", "<u4"],
|
|
164
|
+
["uint64", "<u8"],
|
|
165
|
+
["bool", "|b1"],
|
|
166
|
+
]);
|
|
167
|
+
/*
|
|
168
|
+
function array2Npy (tensor) {
|
|
169
|
+
const versionStr = "\x01\x00"; // version 1.0
|
|
170
|
+
const shapeStr = tensor.shape.join(",") + ","
|
|
171
|
+
const descr = dataTypeToNumpyDescr.get(tensor.dtype);
|
|
172
|
+
const header = "{'descr':"+descr+", 'fortran_order': false, 'shape': ("+shapeStr+"), }"
|
|
173
|
+
const unpaddedLength = MAGIC_STRING.length + versionStr.length + 2 + header.length;
|
|
174
|
+
// Spaces to 16-bit align.
|
|
175
|
+
const padding = " ".repeat((16 - (unpaddedLength % 16)) % 16)
|
|
176
|
+
header += padding;
|
|
177
|
+
// Number of bytes is in the Numpy descr
|
|
178
|
+
const bytesPerElement = Number.parseInt(descr[2], 10)
|
|
179
|
+
const dataLen = bytesPerElement * getTotalCells(tensor.shape)
|
|
180
|
+
const totalSize = unpaddedLength + padding.length + dataLen
|
|
181
|
+
const arrayBuffer = new ArrayBuffer(totalSize)
|
|
182
|
+
const view = new DataView(arrayBuffer)
|
|
183
|
+
let pos = writeStrToDataView(view, MAGIC_STRING + versionStr, 0)
|
|
184
|
+
view.setUint16(pos, header.length, true);
|
|
185
|
+
pos += 2 + writeStrToDataView(view, header, pos);
|
|
186
|
+
const setDataView = view.setDataView[dataTypes[descr].setDataView];
|
|
187
|
+
for (let i = 0; i < data.length; i++) {
|
|
188
|
+
view.setDataView(pos,data[i],true)
|
|
189
|
+
pos += bytesPerElement;
|
|
190
|
+
}
|
|
191
|
+
return arrayBuffer;
|
|
192
|
+
}
|
|
193
|
+
*/
|
|
194
|
+
function writeStrToDataView(dataView, str, pos) {
|
|
195
|
+
const sl=str.length
|
|
196
|
+
for (let i = 0; i < sl; i++) {
|
|
197
|
+
dataView.setInt8(pos + i, str.charCodeAt(i));
|
|
198
|
+
}
|
|
199
|
+
return pos + sl;
|
|
200
|
+
}
|
|
201
|
+
function NumPy (tensor){
|
|
202
|
+
this.fortran_order=false
|
|
203
|
+
this.version=defaultVersion
|
|
204
|
+
return this.parse(tensor)
|
|
205
|
+
}
|
|
206
|
+
NumPy.prototype.getBytes4DataType = function(){
|
|
207
|
+
const descr = dataTypeToNumpyDescr.get(this.dtype);
|
|
208
|
+
return Number.parseInt(descr[2], 10)
|
|
209
|
+
}
|
|
210
|
+
NumPy.prototype.getDesc = function() {
|
|
211
|
+
return dataTypeToNumpyDescr.get(this.dtype);
|
|
212
|
+
}
|
|
213
|
+
NumPy.prototype.setDType = function(dataType) {
|
|
214
|
+
this.dataType=dataType
|
|
215
|
+
const descr=dataTypeToNumpyDescr.get(this.dataType);
|
|
216
|
+
if(descr==null) throw Error("data type not found for "+dataType)
|
|
217
|
+
this.setDescr(descr)
|
|
218
|
+
return this
|
|
219
|
+
}
|
|
220
|
+
NumPy.prototype.setDescr = function(descr) {
|
|
221
|
+
this.descr=descr
|
|
222
|
+
const dataTypeDetails = dataTypes[this.descr];
|
|
223
|
+
this.dataType=dataTypeDetails.name
|
|
224
|
+
this.setDataView = dataTypeDetails.setDataView;
|
|
225
|
+
this.cellConstructor = dataTypeDetails.cellConstructor
|
|
226
|
+
this.bytes4DataType = Number.parseInt(this.descr[2], 10)
|
|
227
|
+
return this
|
|
228
|
+
}
|
|
229
|
+
NumPy.prototype.toNpy = function () {
|
|
230
|
+
const versionStr = "\x01\x00"; // version 1.0
|
|
231
|
+
const shapeStr = this.shape.join(",") + ","
|
|
232
|
+
let header = "{'descr':"+this.descr+", 'fortran_order': false, 'shape': ("+shapeStr+"), }"
|
|
233
|
+
const unpaddedLength = MAGIC_STRING.length + versionStr.length + 2 + header.length;
|
|
234
|
+
// 16-bit align with spaces
|
|
235
|
+
header += " ".repeat((16 - (unpaddedLength % 16)) % 16);
|
|
236
|
+
// SIze of Npy
|
|
237
|
+
const totalSize = header.length + this.bytes4DataType * getTotalCells(this.shape)
|
|
238
|
+
// const totalSize = unpaddedLength + padding.length + this.bytes4DataType * getTotalCells(this.shape)
|
|
239
|
+
const arrayBuffer = new ArrayBuffer(totalSize)
|
|
240
|
+
const view = new DataView(arrayBuffer)
|
|
241
|
+
let pos = writeStrToDataView(view, MAGIC_STRING + defaultVersionStr, 0)
|
|
242
|
+
view.setUint16(pos, header.length, true);
|
|
243
|
+
pos += 2 + writeStrToDataView(view, header, pos);
|
|
244
|
+
const data=this.dataVector
|
|
245
|
+
// const setDataView = view[this.setDataView];
|
|
246
|
+
for (let i = 0; i < data.length; i++) {
|
|
247
|
+
// setDataView(pos,data[i],true)
|
|
248
|
+
view[pos]=data[i]
|
|
249
|
+
pos += this.bytes4DataType;
|
|
250
|
+
}
|
|
251
|
+
return arrayBuffer;
|
|
252
|
+
}
|
|
253
|
+
NumPy.prototype.toNpyBuffer = function () {
|
|
254
|
+
return Buffer.from(this.toNpy())
|
|
255
|
+
}
|
|
256
|
+
NumPy.prototype.parse = function(contentIn={dataType:"int8",
|
|
257
|
+
shape:[1],
|
|
258
|
+
dataVector:new int8Array(0)}) {
|
|
259
|
+
if(!contentIn instanceof Object) throw Error("not an object")
|
|
260
|
+
if(contentIn.hasOwnProperty("dataVector")) {
|
|
261
|
+
Object.assign(this,contentIn)
|
|
262
|
+
if(contentIn.dataType) this.setDType(contentIn.dataType)
|
|
263
|
+
else if(contentIn.descr) this.setDescr(contentIn.descr)
|
|
264
|
+
else throw Error("data type not defined")
|
|
265
|
+
if(this.shape==null) this.shape=[1];
|
|
266
|
+
return this
|
|
267
|
+
}
|
|
268
|
+
return this.parseNpy(contentIn)
|
|
269
|
+
}
|
|
270
|
+
NumPy.prototype.parseNpy = function(npyContentIn) {
|
|
271
|
+
// this.npyContent=npyContentIn instanceof ArrayBuffer ? npyContentIn : bufferToArrayBuffer(npyContentIn)
|
|
272
|
+
this.npyContent=npyContentIn instanceof ArrayBuffer ? npyContentIn : npyContentIn.toBufferArray()
|
|
273
|
+
const headerLength = new DataView(this.npyContent.slice(8, 10)).getUint8(0)
|
|
274
|
+
const offsetBytes = 10 + headerLength;
|
|
275
|
+
const headerContents = new TextDecoder("utf-8").decode(
|
|
276
|
+
new Uint8Array(this.npyContent.slice(10, 10 + headerLength))
|
|
277
|
+
);
|
|
278
|
+
const header = JSON.parse(
|
|
279
|
+
headerContents
|
|
280
|
+
.toLowerCase() // True -> true
|
|
281
|
+
.replace(/'/g, '"')
|
|
282
|
+
.replace("(", "[")
|
|
283
|
+
.replace(/,*\),*/g, "]")
|
|
284
|
+
);
|
|
285
|
+
this.setDescr(header.descr);
|
|
286
|
+
this.shape = header.shape
|
|
287
|
+
this.dataVector=new this.cellConstructor(this.npyContent, offsetBytes)
|
|
288
|
+
if(header.fortran_order) this.fortran_order=header.fortran_order
|
|
289
|
+
return this
|
|
290
|
+
}
|
|
291
|
+
NumPy.prototype.toSerializable = function() {
|
|
292
|
+
return {
|
|
293
|
+
dataType:this.dataType,
|
|
294
|
+
fortran_order: this.fortran_order,
|
|
295
|
+
shape:this.shape,
|
|
296
|
+
version:this.version,
|
|
297
|
+
dataVector:this.dataVector
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
NumPy.prototype.toString = function() {
|
|
301
|
+
return JSON.stringify(this.toSerializable())
|
|
302
|
+
}
|
|
303
|
+
module.exports=NumPy;
|
package/transform/transform.html
CHANGED
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
schemaType: {value:"json"},
|
|
31
31
|
skipLeading: {value:0},
|
|
32
32
|
skipTrailing: {value:0},
|
|
33
|
-
delimiter: {value:",",required:true}
|
|
33
|
+
delimiter: {value:",",required:true},
|
|
34
|
+
compressionType: {value:"gzip"}
|
|
34
35
|
},
|
|
35
36
|
inputs: 1,
|
|
36
37
|
outputs: 2,
|
|
@@ -43,11 +44,51 @@
|
|
|
43
44
|
return this.name ||this.actionSource+"=>"+this.actionTarget|| "Transform";
|
|
44
45
|
},
|
|
45
46
|
oneditprepare: function() {
|
|
46
|
-
const actionTarget=this.actionTarget
|
|
47
|
+
const actionTarget=this.actionTarget;
|
|
48
|
+
$("#node-input-actionSource").typedInput({type:"actionSource", types:[{
|
|
49
|
+
value: "actionSource",
|
|
50
|
+
options: [
|
|
51
|
+
{ value: "Array", label: "Array"},
|
|
52
|
+
{ value: "AVRO", label: "AVRO"},
|
|
53
|
+
{ value: "Buffer", label: "Buffer"},
|
|
54
|
+
{ value: "Compressed", label: "Compressed"},
|
|
55
|
+
{ value: "Confluence", label: "Confluence"},
|
|
56
|
+
{ value: "CSVWithHeader", label: "CSV with header"},
|
|
57
|
+
{ value: "CSV", label: "CSV"},
|
|
58
|
+
{ value: "ISO8385", label: "ISO 8583"},
|
|
59
|
+
{ value: "JSON", label: "JSON"},
|
|
60
|
+
{ value: "npy", label: "npy"},
|
|
61
|
+
{ value: "NumPyObject", label: "NumPy Obect"},
|
|
62
|
+
{ value: "String", label: "String"},
|
|
63
|
+
{ value: "snappy", label: "Snappy"},
|
|
64
|
+
{ value: "path", label: "Path"},
|
|
65
|
+
{ value: "XLSX", label: "XLSX (excel)"},
|
|
66
|
+
{ value: "XLSXObject", label: "XLSX object (excel)"},
|
|
67
|
+
{ value: "XML", label: "XML"}
|
|
68
|
+
]
|
|
69
|
+
}]});
|
|
70
|
+
$("#node-input-compressionType").typedInput({type:"compression", types:[{
|
|
71
|
+
value: "compression",
|
|
72
|
+
options: [
|
|
73
|
+
{ value: "setGzip", label: "gzip"},
|
|
74
|
+
{ value: "setGzipSpeed", label: "gzip speed"},
|
|
75
|
+
{ value: "setGzipCompression", label: "gzip compression"},
|
|
76
|
+
{ value: "setZlib", label: "zip"},
|
|
77
|
+
{ value: "setZlibSpeed", label: "zip speed"},
|
|
78
|
+
{ value: "setZlibCompression", label: "zip compression"},
|
|
79
|
+
{ value: "setLzma", label: "Lempel-Ziv-Markov speed"},
|
|
80
|
+
{ value: "setLzmaCompression", label: "Lempel-Ziv-Markov compression"},
|
|
81
|
+
{ value: "setBrotli", label: "Brotli"},
|
|
82
|
+
{ value: "setSnappy", label: "Snappy"},
|
|
83
|
+
{ value: "setFlate", label: "Deflate/Inflate"}
|
|
84
|
+
]
|
|
85
|
+
}]});
|
|
86
|
+
|
|
47
87
|
$("#node-input-actionSource").change(function() {
|
|
48
88
|
const actionSource=$(this).val();
|
|
49
89
|
$(".form-row-http-in-skip").hide();
|
|
50
90
|
$(".form-row-http-in-schema").hide();
|
|
91
|
+
$(".form-row-http-in-compressionType").hide();
|
|
51
92
|
if(!['CSV','CSVWithHeader'].includes(actionSource)) {
|
|
52
93
|
$(".form-row-http-in-csv").hide();
|
|
53
94
|
}
|
|
@@ -62,10 +103,19 @@
|
|
|
62
103
|
options["XLSXObject"]="XLSX object (excel)";
|
|
63
104
|
break;
|
|
64
105
|
case 'AVRO':
|
|
106
|
+
case 'Buffer':
|
|
107
|
+
options["Compressed"]="Compressed";
|
|
108
|
+
break;
|
|
65
109
|
case 'Confluence':
|
|
66
110
|
options["JSON"]="JSON";
|
|
67
111
|
$(".form-row-http-in-schema").show();
|
|
68
112
|
break;
|
|
113
|
+
case 'Compressed':
|
|
114
|
+
options["JSON"]="JSON";
|
|
115
|
+
options["String"]="String";
|
|
116
|
+
options["Buffer"]="Buffer";
|
|
117
|
+
$(".form-row-http-in-compressionType").show();
|
|
118
|
+
break;
|
|
69
119
|
case 'CSVWithHeader':
|
|
70
120
|
options["JSON"]="JSON";
|
|
71
121
|
case 'CSV':
|
|
@@ -82,18 +132,28 @@
|
|
|
82
132
|
case 'JSON':
|
|
83
133
|
options["Array"]="Array";
|
|
84
134
|
options["AVRO"]="AVRO";
|
|
135
|
+
options["Compressed"]="Compressed";
|
|
85
136
|
options["Confluence"]="Confluence";
|
|
86
|
-
options["CSVWithHeader"]="CSV with header";
|
|
87
137
|
options["CSV"]="CSV";
|
|
88
138
|
options["ISO8385"]="ISO 8583";
|
|
89
139
|
options["HTML"]="HTML";
|
|
90
140
|
options["JSON"]="JSON";
|
|
91
141
|
options["Messages"]="Messages";
|
|
142
|
+
options["npy"]="npy";
|
|
143
|
+
options["NumPyObject"]="NumPy Object";
|
|
92
144
|
options["String"]="String";
|
|
93
145
|
options["XLSX"]="XLSX";
|
|
94
146
|
options["XLSXObject"]="XLSX Object";
|
|
95
147
|
options["XML"]="XML";
|
|
96
148
|
break;
|
|
149
|
+
case 'npy':
|
|
150
|
+
options["JSON"]="JSON";
|
|
151
|
+
options["NumPyObject"]="NumPy Object";
|
|
152
|
+
break;
|
|
153
|
+
case 'NumPyObject':
|
|
154
|
+
options["JSON"]="JSON";
|
|
155
|
+
break;
|
|
156
|
+
|
|
97
157
|
case 'path':
|
|
98
158
|
options["Basename"]="basename";
|
|
99
159
|
options["Dirname"]="dirname";
|
|
@@ -108,6 +168,7 @@
|
|
|
108
168
|
options["Compress"]="Compress";
|
|
109
169
|
break;
|
|
110
170
|
case 'String':
|
|
171
|
+
options["Compressed"]="Compressed";
|
|
111
172
|
options["JSON"]="JSON";
|
|
112
173
|
break;
|
|
113
174
|
case 'XLSX':
|
|
@@ -145,11 +206,15 @@
|
|
|
145
206
|
if(!['CSV','CSVWithHeader'].includes(actionTarget)) {
|
|
146
207
|
$(".form-row-http-in-csv").hide();
|
|
147
208
|
}
|
|
209
|
+
$(".form-row-http-in-compressionType").hide();
|
|
148
210
|
switch (actionTarget) {
|
|
149
211
|
case 'AVRO':
|
|
150
212
|
case 'Confluence':
|
|
151
213
|
$(".form-row-http-in-schema").show();
|
|
152
214
|
break;
|
|
215
|
+
case 'Compressed':
|
|
216
|
+
$(".form-row-http-in-compressionType").show();
|
|
217
|
+
break;
|
|
153
218
|
case 'CSV':
|
|
154
219
|
$(".form-row-http-in-csv").show();
|
|
155
220
|
break;
|
|
@@ -187,21 +252,7 @@
|
|
|
187
252
|
</div>
|
|
188
253
|
<div class="form-row">
|
|
189
254
|
<label for="node-input-actionSource"><i class="fa fa-list-ul"></i> Source Type </label>
|
|
190
|
-
<
|
|
191
|
-
<option value="Array">Array</option>
|
|
192
|
-
<option value="AVRO">AVRO</option>
|
|
193
|
-
<option value="Confluence">Confluence</option>
|
|
194
|
-
<option value="CSVWithHeader">CSV with header</option>
|
|
195
|
-
<option value="CSV">CSV</option>
|
|
196
|
-
<option value="ISO8385">ISO 8583</option>
|
|
197
|
-
<option value="JSON">JSON</option>
|
|
198
|
-
<option value="String">String</option>
|
|
199
|
-
<option value="snappy">snappy</option>
|
|
200
|
-
<option value="path">Path</option>
|
|
201
|
-
<option value="XLSX">XLSX (excel)</option>
|
|
202
|
-
<option value="XLSXObject">XLSX object (excel)</option>
|
|
203
|
-
<option value="XML">XML</option>
|
|
204
|
-
</select>
|
|
255
|
+
<input type="text" id="node-input-actionSource">
|
|
205
256
|
</div>
|
|
206
257
|
<div class="form-row">
|
|
207
258
|
<label for="node-input-actionTarget"><i class="fa fa-list-ul"></i> Target Type </label>
|
|
@@ -227,7 +278,10 @@
|
|
|
227
278
|
<input type="text" id="node-input-schema" style="width:70%">
|
|
228
279
|
<input type="hidden" id="node-input-schemaType">
|
|
229
280
|
</div>
|
|
230
|
-
|
|
281
|
+
<div class="form-row form-row-http-in-compressionType hide">
|
|
282
|
+
<label for="node-input-compressionType"><i class="fa fa-envelope"></i> <span data-i18n="common.label.compressionType"> Type </span></label>
|
|
283
|
+
<input type="text" id="node-input-compressionType">
|
|
284
|
+
</div>
|
|
231
285
|
|
|
232
286
|
</script>
|
|
233
287
|
|