@gregoriusrippenstein/node-red-contrib-nodedev 0.1.1 → 0.1.3

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.
@@ -0,0 +1,386 @@
1
+ [
2
+ {
3
+ "id": "2b6bc676aaa603ad",
4
+ "type": "group",
5
+ "z": "7bece6814c033925",
6
+ "style": {
7
+ "stroke": "#999999",
8
+ "stroke-opacity": "1",
9
+ "fill": "none",
10
+ "fill-opacity": "1",
11
+ "label": true,
12
+ "label-position": "nw",
13
+ "color": "#a4a4a4"
14
+ },
15
+ "nodes": [
16
+ "d4c53464a044324a",
17
+ "fece8b2f1459b822",
18
+ "5dea66e11691c1f2",
19
+ "9f4584bc1aeabf43",
20
+ "8a667fa50ad9b9ee",
21
+ "42a101dda45403ee",
22
+ "a301a4a721a507d9",
23
+ "1fa5af4c7e44a739",
24
+ "b103106ae655b460",
25
+ "77bf2cb0aa2f60ff"
26
+ ],
27
+ "x": 396,
28
+ "y": 187,
29
+ "w": 1423,
30
+ "h": 860
31
+ },
32
+ {
33
+ "id": "d4c53464a044324a",
34
+ "type": "PkgFile",
35
+ "z": "7bece6814c033925",
36
+ "g": "2b6bc676aaa603ad",
37
+ "name": "LICENSE",
38
+ "filename": "LICENSE",
39
+ "format": "text",
40
+ "syntax": "mustache",
41
+ "template": "Nothing, nope, can't do a thing. ",
42
+ "output": "str",
43
+ "x": 739,
44
+ "y": 498,
45
+ "wires": [
46
+ [
47
+ "fece8b2f1459b822"
48
+ ]
49
+ ]
50
+ },
51
+ {
52
+ "id": "fece8b2f1459b822",
53
+ "type": "PkgFile",
54
+ "z": "7bece6814c033925",
55
+ "g": "2b6bc676aaa603ad",
56
+ "name": "README",
57
+ "filename": "README.md",
58
+ "format": "markdown",
59
+ "syntax": "mustache",
60
+ "template": "## What does this package do?\n\n## Why does it exist?\n\n## Where will it go?\n\n",
61
+ "output": "str",
62
+ "x": 741,
63
+ "y": 544,
64
+ "wires": [
65
+ [
66
+ "0e9d26e2b43ca0f5"
67
+ ]
68
+ ]
69
+ },
70
+ {
71
+ "id": "5dea66e11691c1f2",
72
+ "type": "NpmTarBall",
73
+ "z": "7bece6814c033925",
74
+ "g": "2b6bc676aaa603ad",
75
+ "name": "",
76
+ "x": 1454,
77
+ "y": 979,
78
+ "wires": [
79
+ [
80
+ "9f4584bc1aeabf43",
81
+ "8a667fa50ad9b9ee",
82
+ "42a101dda45403ee"
83
+ ]
84
+ ]
85
+ },
86
+ {
87
+ "id": "9f4584bc1aeabf43",
88
+ "type": "NodeRedInstall",
89
+ "z": "7bece6814c033925",
90
+ "g": "2b6bc676aaa603ad",
91
+ "name": "",
92
+ "x": 1724,
93
+ "y": 691,
94
+ "wires": [
95
+ []
96
+ ]
97
+ },
98
+ {
99
+ "id": "8a667fa50ad9b9ee",
100
+ "type": "NodeFactory",
101
+ "z": "7bece6814c033925",
102
+ "d": true,
103
+ "g": "2b6bc676aaa603ad",
104
+ "name": "",
105
+ "nodename": "",
106
+ "color": "#e5e4ef",
107
+ "hasbutton": false,
108
+ "hasinput": true,
109
+ "outputcount": 1,
110
+ "category": "",
111
+ "summary": "",
112
+ "description": "",
113
+ "icon": "font-awesome/fa-industry",
114
+ "frt2bakcomm": false,
115
+ "bak2frtcomm": false,
116
+ "createmanifest": false,
117
+ "x": 1723,
118
+ "y": 540,
119
+ "wires": [
120
+ []
121
+ ]
122
+ },
123
+ {
124
+ "id": "42a101dda45403ee",
125
+ "type": "NpmPublish",
126
+ "z": "7bece6814c033925",
127
+ "d": true,
128
+ "g": "2b6bc676aaa603ad",
129
+ "name": "",
130
+ "otp": "",
131
+ "action": "publish",
132
+ "authToken": "NPM_AUTH_TOKEN",
133
+ "authTokenType": "env",
134
+ "x": 1714,
135
+ "y": 399,
136
+ "wires": [
137
+ []
138
+ ]
139
+ },
140
+ {
141
+ "id": "a301a4a721a507d9",
142
+ "type": "group",
143
+ "z": "7bece6814c033925",
144
+ "g": "2b6bc676aaa603ad",
145
+ "name": "Step 1: create node templates",
146
+ "style": {
147
+ "label": true
148
+ },
149
+ "nodes": [
150
+ "5798e7102230c00f",
151
+ "6ab6fc44537f08e4"
152
+ ],
153
+ "x": 886,
154
+ "y": 213,
155
+ "w": 332,
156
+ "h": 144
157
+ },
158
+ {
159
+ "id": "5798e7102230c00f",
160
+ "type": "NodeFactory",
161
+ "z": "7bece6814c033925",
162
+ "g": "a301a4a721a507d9",
163
+ "name": "Node with 4 outputs and a button",
164
+ "nodename": "NodeWithFour",
165
+ "color": "#87A980",
166
+ "hasbutton": true,
167
+ "hasinput": false,
168
+ "outputcount": "4",
169
+ "category": "nodedev-background",
170
+ "summary": "This is the short summary of what this node does.",
171
+ "description": "This is a long and descriptive version of the summary. Rather boring and tedious to write but nonetheless, we try our best.",
172
+ "icon": "node-red/inject.svg",
173
+ "frt2bakcomm": false,
174
+ "bak2frtcomm": false,
175
+ "createmanifest": false,
176
+ "x": 1052,
177
+ "y": 254,
178
+ "wires": [
179
+ []
180
+ ]
181
+ },
182
+ {
183
+ "id": "6ab6fc44537f08e4",
184
+ "type": "NodeFactory",
185
+ "z": "7bece6814c033925",
186
+ "g": "a301a4a721a507d9",
187
+ "name": "Node with Input and Output",
188
+ "nodename": "NodeWithOne",
189
+ "color": "#F3B567",
190
+ "hasbutton": false,
191
+ "hasinput": true,
192
+ "outputcount": "1",
193
+ "category": "nodedev-background",
194
+ "summary": "This node only has one input",
195
+ "description": "And does even less.",
196
+ "icon": "node-red/inject.svg",
197
+ "frt2bakcomm": false,
198
+ "bak2frtcomm": false,
199
+ "createmanifest": false,
200
+ "x": 1032,
201
+ "y": 316,
202
+ "wires": [
203
+ []
204
+ ]
205
+ },
206
+ {
207
+ "id": "1fa5af4c7e44a739",
208
+ "type": "group",
209
+ "z": "7bece6814c033925",
210
+ "g": "2b6bc676aaa603ad",
211
+ "name": "Step 2: include the node templates within a package structure",
212
+ "style": {
213
+ "label": true
214
+ },
215
+ "nodes": [
216
+ "38d7ab2facd1efd0",
217
+ "29fc98b9e556085c",
218
+ "cd9766062675838b",
219
+ "392e75983c1c894d"
220
+ ],
221
+ "x": 857,
222
+ "y": 773,
223
+ "w": 396,
224
+ "h": 248
225
+ },
226
+ {
227
+ "id": "38d7ab2facd1efd0",
228
+ "type": "PkgFile",
229
+ "z": "7bece6814c033925",
230
+ "g": "1fa5af4c7e44a739",
231
+ "name": "NodeWithFour.js",
232
+ "filename": "nodes/nodewithfour.js",
233
+ "format": "javascript",
234
+ "syntax": "mustache",
235
+ "template": "module.exports = function(RED) {\n function NodeWithFourFunctionality(config) {\n RED.nodes.createNode(this,config);\n\n var node = this;\n var cfg = config;\n\n node.on('close', function() {\n node.status({});\n });\n\n node.on(\"input\", function(msg, send, done) {\n send(msg);\n done();\n });\n }\n RED.nodes.registerType(\"NodeWithFour\", NodeWithFourFunctionality);\n}\n",
236
+ "output": "str",
237
+ "x": 973,
238
+ "y": 814,
239
+ "wires": [
240
+ [
241
+ "29fc98b9e556085c"
242
+ ]
243
+ ]
244
+ },
245
+ {
246
+ "id": "29fc98b9e556085c",
247
+ "type": "PkgFile",
248
+ "z": "7bece6814c033925",
249
+ "g": "1fa5af4c7e44a739",
250
+ "name": "NodeWithFour.html",
251
+ "filename": "nodes/nodewithfour.html",
252
+ "format": "html",
253
+ "syntax": "mustache",
254
+ "template": "<script type=\"text/javascript\">\n RED.nodes.registerType('NodeWithFour',{\n color: '#87A980',\n icon: \"node-red/inject.svg\",\n category: 'nodedev-background',\n defaults: {\n name: {\n value:\"\",\n },\n },\n\n inputs: 0,\n\n outputs: 4,\n\n label: function() {\n return (this.name || this._def.paletteLabel);\n },\n\n labelStyle: function() {\n return this.name?\"node_label_italic\":\"\";\n },\n\n onpaletteadd: function() {\n },\n\n oneditprepare: function() {\n },\n\n oneditcancel: function() {\n },\n\n oneditsave: function() {\n },\n\n button: {\n enabled: function() {\n return !this.changed\n },\n\n onclick: function () {\n if (this.changed) {\n return RED.notify(RED._(\"notification.warning\", {\n message: RED._(\"notification.warnings.undeployedChanges\")\n }), \"warning\");\n }\n }\n },\n\n });\n</script>\n\n<script type=\"text/html\" data-template-name=\"NodeWithFour\">\n <div class=\"form-row\">\n <label for=\"node-input-name\"><i class=\"fa fa-tag\"></i> Name</label>\n <input type=\"text\" id=\"node-input-name\" placeholder=\"Name\">\n </div>\n</script>\n\n<script type=\"text/html\" data-help-name=\"NodeWithFour\">\n <p>This is the short summary of what this node does.</p>\n This is a long and descriptive version of the summary. Rather boring and tedious to write but nonetheless, we try our best.\n</script>\n",
255
+ "output": "str",
256
+ "x": 973,
257
+ "y": 864,
258
+ "wires": [
259
+ [
260
+ "cd9766062675838b"
261
+ ]
262
+ ]
263
+ },
264
+ {
265
+ "id": "cd9766062675838b",
266
+ "type": "PkgFile",
267
+ "z": "7bece6814c033925",
268
+ "g": "1fa5af4c7e44a739",
269
+ "name": "NodeWithOne.js",
270
+ "filename": "nodes/nodewithone.js",
271
+ "format": "javascript",
272
+ "syntax": "mustache",
273
+ "template": "module.exports = function(RED) {\n function NodeWithOneFunctionality(config) {\n RED.nodes.createNode(this,config);\n\n var node = this;\n var cfg = config;\n\n node.on('close', function() {\n node.status({});\n });\n\n node.on(\"input\", function(msg, send, done) {\n send(msg);\n done();\n });\n }\n RED.nodes.registerType(\"NodeWithOne\", NodeWithOneFunctionality);\n}\n",
274
+ "output": "str",
275
+ "x": 978,
276
+ "y": 930,
277
+ "wires": [
278
+ [
279
+ "392e75983c1c894d"
280
+ ]
281
+ ]
282
+ },
283
+ {
284
+ "id": "392e75983c1c894d",
285
+ "type": "PkgFile",
286
+ "z": "7bece6814c033925",
287
+ "g": "1fa5af4c7e44a739",
288
+ "name": "NodeWithOne.html",
289
+ "filename": "nodes/nodewithone.html",
290
+ "format": "html",
291
+ "syntax": "mustache",
292
+ "template": "<script type=\"text/javascript\">\n RED.nodes.registerType('NodeWithOne',{\n color: '#F3B567',\n icon: \"node-red/inject.svg\",\n category: 'nodedev-background',\n defaults: {\n name: {\n value:\"\",\n },\n },\n\n inputs: 1,\n\n outputs: 1,\n\n label: function() {\n return (this.name || this._def.paletteLabel);\n },\n\n labelStyle: function() {\n return this.name?\"node_label_italic\":\"\";\n },\n\n onpaletteadd: function() {\n },\n\n oneditprepare: function() {\n },\n\n oneditcancel: function() {\n },\n\n oneditsave: function() {\n },\n\n\n });\n</script>\n\n<script type=\"text/html\" data-template-name=\"NodeWithOne\">\n <div class=\"form-row\">\n <label for=\"node-input-name\"><i class=\"fa fa-tag\"></i> Name</label>\n <input type=\"text\" id=\"node-input-name\" placeholder=\"Name\">\n </div>\n</script>\n\n<script type=\"text/html\" data-help-name=\"NodeWithOne\">\n <p>This node only has one input</p>\n And does even less.\n</script>\n",
293
+ "output": "str",
294
+ "x": 978,
295
+ "y": 980,
296
+ "wires": [
297
+ [
298
+ "5dea66e11691c1f2"
299
+ ]
300
+ ]
301
+ },
302
+ {
303
+ "id": "b103106ae655b460",
304
+ "type": "group",
305
+ "z": "7bece6814c033925",
306
+ "g": "2b6bc676aaa603ad",
307
+ "name": "Step 3: ensure package.json includes the nodes - only the .js file",
308
+ "style": {
309
+ "label": true
310
+ },
311
+ "nodes": [
312
+ "0e9d26e2b43ca0f5"
313
+ ],
314
+ "x": 644,
315
+ "y": 647,
316
+ "w": 411,
317
+ "h": 82
318
+ },
319
+ {
320
+ "id": "0e9d26e2b43ca0f5",
321
+ "type": "PkgFile",
322
+ "z": "7bece6814c033925",
323
+ "g": "b103106ae655b460",
324
+ "name": "package.json",
325
+ "filename": "package.json",
326
+ "format": "json",
327
+ "syntax": "mustache",
328
+ "template": "{\n \"name\" : \"\",\n \"version\": \"\",\n \"dependencies\": {\n },\n\n \"keywords\": [\n \"node-red\"\n ],\n\n \"homepage\": \"https://github.com/username/node-red-contrib-test\",\n \"license\": \"Don't do evil.\",\n \"author\": \"Joe Blog <joe.blog@spreads-the.love>\",\n \"engines\": {\n \"node\": \">=16\"\n },\n\n \"node-red\" : {\n \"version\": \">=3.0.0\",\n \"nodes\": {\n \"nodewithfour\": \"nodes/nodewithfour.js\",\n \"nodewithone\": \"nodes/nodewithone.js\"\n }\n },\n\n \"description\": \"Description of what these nodes do.\",\n \"repository\": {\n \"type\": \"github\",\n \"url\": \"git+https://github.com/username/node-red-contrib-test.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/username/node-red-contrib-test\"\n }\n}\n",
329
+ "output": "str",
330
+ "x": 740,
331
+ "y": 688,
332
+ "wires": [
333
+ [
334
+ "38d7ab2facd1efd0"
335
+ ]
336
+ ]
337
+ },
338
+ {
339
+ "id": "77bf2cb0aa2f60ff",
340
+ "type": "group",
341
+ "z": "7bece6814c033925",
342
+ "g": "2b6bc676aaa603ad",
343
+ "name": "Step 4: install into Node-RED to test the nodes",
344
+ "style": {
345
+ "label": true
346
+ },
347
+ "nodes": [
348
+ "af227f8a9f44c79d"
349
+ ],
350
+ "x": 422,
351
+ "y": 304,
352
+ "w": 301,
353
+ "h": 82
354
+ },
355
+ {
356
+ "id": "af227f8a9f44c79d",
357
+ "type": "inject",
358
+ "z": "7bece6814c033925",
359
+ "g": "77bf2cb0aa2f60ff",
360
+ "name": "",
361
+ "props": [
362
+ {
363
+ "p": "packagename",
364
+ "v": "@username/node-red-contrib-test",
365
+ "vt": "str"
366
+ },
367
+ {
368
+ "p": "packageversion",
369
+ "v": "0.0.1",
370
+ "vt": "str"
371
+ }
372
+ ],
373
+ "repeat": "",
374
+ "crontab": "",
375
+ "once": false,
376
+ "onceDelay": 0.1,
377
+ "topic": "",
378
+ "x": 518,
379
+ "y": 345,
380
+ "wires": [
381
+ [
382
+ "d4c53464a044324a"
383
+ ]
384
+ ]
385
+ }
386
+ ]
@@ -47,20 +47,23 @@
47
47
  defaults: {
48
48
  name: { value:"" },
49
49
 
50
- pname: { value: "", required: true },
51
- pversion: { value: "", required: true },
50
+ pname: { value: "", required: true },
51
+ pversion: { value: "", required: true },
52
+ pauthorname: { value: "", required: true },
53
+ pauthoremail: { value: "", required: true },
54
+ pdescription: { value: "", required: true },
52
55
 
53
56
  noderedinstall: { value: false },
54
57
  randompackagename: { value: false },
55
58
 
56
- gitcommit: { value: false },
59
+ gitcommit: { value: false },
57
60
  gitcheckforchange: { value: false },
58
- githubowner: { value: ""},
59
- githubrepo: { value: ""},
60
- githubbranch: { value: "main"},
61
- githubauthor: { value: ""},
61
+ githubowner: { value: ""},
62
+ githubrepo: { value: ""},
63
+ githubbranch: { value: "main"},
64
+ githubauthor: { value: ""},
62
65
  githubauthoremail: { value: "" },
63
- githubmessage: { value: "" },
66
+ githubmessage: { value: "" },
64
67
 
65
68
  npmpublish: { value: false },
66
69
  npmunpublish: { value: false },
@@ -196,6 +199,21 @@
196
199
  <input type="text" id="node-input-pversion" placeholder="0.0.1"/>
197
200
  </div>
198
201
 
202
+ <div class="form-row">
203
+ <label for="node-input-pauthorname" style="min-width: 250px;"><i class="fa fa-address-book-o"></i> Package Author Name</label>
204
+ <input type="text" id="node-input-pauthorname" placeholder="Alfred E. Neumann"/>
205
+ </div>
206
+
207
+ <div class="form-row">
208
+ <label for="node-input-pauthoremail" style="min-width: 250px;"><i class="fa fa-envelope-o"></i> Package Author Email</label>
209
+ <input type="text" id="node-input-pauthoremail" placeholder="joe.blog@example.com"/>
210
+ </div>
211
+
212
+ <div class="form-row">
213
+ <label for="node-input-pdescription" style="min-width: 150px;"><i class="fa fa-book"></i> Package Description</label>
214
+ <input type="text" id="node-input-pdescription" placeholder="Package description"/>
215
+ </div>
216
+
199
217
  <hr/>
200
218
 
201
219
  <div class="form-row">
@@ -248,15 +266,15 @@
248
266
 
249
267
  <div id="github-options">
250
268
  <div class="form-row">
251
- <label for="node-input-githubowner" style="min-width: 150px;"><i class="fa fa-tag"></i> GitHub Username</label>
269
+ <label for="node-input-githubowner" style="min-width: 150px;"><i class="fa fa-user-o"></i> GitHub Username</label>
252
270
  <input type="text" id="node-input-githubowner" placeholder="username"/>
253
271
  </div>
254
272
  <div class="form-row">
255
- <label for="node-input-githubrepo" style="min-width: 150px;"><i class="fa fa-tag"></i> Repository</label>
273
+ <label for="node-input-githubrepo" style="min-width: 150px;"><i class="fa fa-paw"></i> Repository</label>
256
274
  <input type="text" id="node-input-githubrepo" placeholder=""/>
257
275
  </div>
258
276
  <div class="form-row">
259
- <label for="node-input-githubbranch" style="min-width: 150px;"><i class="fa fa-tag"></i> Branch</label>
277
+ <label for="node-input-githubbranch" style="min-width: 150px;"><i class="fa fa-tree"></i> Branch</label>
260
278
  <input type="text" id="node-input-githubbranch" placeholder="main"/>
261
279
  </div>
262
280
  </div>
@@ -267,11 +285,11 @@
267
285
  <input type="text" id="node-input-githubmessage" placeholder="Initial Commit"/>
268
286
  </div>
269
287
  <div class="form-row">
270
- <label for="node-input-githubauthor" style="min-width: 150px;"><i class="fa fa-tag"></i> Author Name</label>
288
+ <label for="node-input-githubauthor" style="min-width: 150px;"><i class="fa fa-address-book-o"></i> Author Name</label>
271
289
  <input type="text" id="node-input-githubauthor" placeholder="Joe Blog"/>
272
290
  </div>
273
291
  <div class="form-row">
274
- <label for="node-input-githubauthoremail" style="min-width: 150px;"><i class="fa fa-tag"></i> Author Email</label>
292
+ <label for="node-input-githubauthoremail" style="min-width: 150px;"><i class="fa fa-envelope-o"></i> Author Email</label>
275
293
  <input type="text" id="node-input-githubauthoremail" placeholder="joe@spreads-the.love"/>
276
294
  </div>
277
295
  </div>
@@ -47,7 +47,7 @@
47
47
  <div class="form-row">
48
48
  <label for="node-input-summary">
49
49
  <i class="fa fa-tag"></i>
50
- <span>Summary</span>
50
+ <span>Summary (REQUIRED)</span>
51
51
  </label>
52
52
  <div style="height: 150px; min-height:150px; max-height: 150px;" class="node-text-editor" id="node-input-summary">
53
53
  </div>
@@ -56,12 +56,19 @@
56
56
  <div class="form-row">
57
57
  <label for="node-input-description">
58
58
  <i class="fa fa-tag"></i>
59
- <span>Description</span>
59
+ <span>Description (REQUIRED)</span>
60
60
  </label>
61
61
  <div style="height: 350px; min-height:350px; max-height: 350px;" class="node-text-editor" id="node-input-description">
62
62
  </div>
63
63
  </div>
64
64
 
65
+ <div class="form-row">
66
+ <label for="node-input-isplugin" style="min-width: 250px;">
67
+ <span>Plugin: Sidebar + Config?</span>
68
+ </label>
69
+ <input type="checkbox" id="node-input-isplugin" style="display:inline-block; width:15px; vertical-align:baseline;">
70
+ </div>
71
+
65
72
  <div class="form-row">
66
73
  <label for="node-input-frt2bakcomm" style="min-width: 250px;">
67
74
  <span>Frontend to Backend communication?</span>
@@ -119,7 +126,9 @@
119
126
 
120
127
  data["color"] = $('#node-input-colour').val();
121
128
  data["icon"] = $('#red-ui-editor-node-icon').val();
129
+ data["iconclass"] = "fa " + data["icon"].split("/")[1]; /* Assume font-awesomeness */
122
130
  data["name"] = $('#node-input-nodename').val();
131
+ data["namelwr"] = data["name"].toLowerCase();
123
132
  data["outputcount"] = $('#node-input-outputcount').val();
124
133
  data["category"] = $('#node-input-category').val();
125
134
 
@@ -128,7 +137,8 @@
128
137
  data["bak2frtcomm"] = $('#node-input-bak2frtcomm').is(":checked");
129
138
  data["frt2bakcomm"] = $('#node-input-frt2bakcomm').is(":checked");
130
139
  data["createmanifest"] = $('#node-input-createmanifest').is(":checked");
131
-
140
+ data["isplugin"] = $('#node-input-isplugin').is(":checked");
141
+
132
142
  data["__task"] = "generate_from_templates";
133
143
 
134
144
  $.ajax({
@@ -177,19 +187,20 @@
177
187
  color: "#e5e4ef",
178
188
  category: 'nodedev',
179
189
  defaults: {
180
- name: { value: "" },
181
- nodename: { value: "" },
182
- color: { value: "#e5e4ef" },
183
- hasbutton: { value: false },
184
- hasinput: { value: true },
185
- outputcount: { value: 1 },
186
- category: { value: "" },
187
- summary: { value: ""},
188
- description: { value: ""},
189
- icon: { value: "font-awesome/fa-industry" },
190
- frt2bakcomm: { value: false },
191
- bak2frtcomm: { value: false },
192
- createmanifest: { value: false }
190
+ name: { value: "" },
191
+ nodename: { value: "", required: true },
192
+ color: { value: "#e5e4ef" },
193
+ hasbutton: { value: false },
194
+ hasinput: { value: true },
195
+ outputcount: { value: 1 },
196
+ category: { value: "" },
197
+ summary: { value: "", required: true },
198
+ description: { value: "", required: true },
199
+ icon: { value: "font-awesome/fa-industry" },
200
+ frt2bakcomm: { value: false },
201
+ bak2frtcomm: { value: false },
202
+ createmanifest: { value: false },
203
+ isplugin: { value: false },
193
204
  },
194
205
  inputs: 1,
195
206
  outputs: 1,