@revenexx/integrations-node-sdk 1.5.0 → 1.6.0

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/README.md CHANGED
@@ -78,7 +78,7 @@ export class UppercaseNode implements INode {
78
78
  category: 'transform',
79
79
  name: { en: 'Uppercase', de: 'Großschreiben' },
80
80
  description: { en: 'Upper-cases a string read from the input.' },
81
- icon: 'mdi:format-letter-case-upper',
81
+ icon: 'lucide:case-upper',
82
82
  inputs: { in: { dataType: 'string', required: true } },
83
83
  outputs: [{ name: 'out', kind: 'default', dataType: 'string', label: { en: 'Result', de: 'Ergebnis' } }],
84
84
  } satisfies INodeDescription;
@@ -107,7 +107,7 @@ export class ConditionIfNode implements INode {
107
107
  version: '1.0.0',
108
108
  category: 'control',
109
109
  name: { en: 'If condition', de: 'Wenn-Bedingung' },
110
- icon: 'mdi:source-branch',
110
+ icon: 'lucide:git-branch',
111
111
  inputs: { in: { dataType: 'any', required: true } },
112
112
  outputs: [
113
113
  { name: 'true', kind: 'branch', dataType: 'any', label: { en: 'True', de: 'Wahr' } },
@@ -153,7 +153,7 @@ export class HttpRequestNode implements INode {
153
153
  version: '1.0.0',
154
154
  category: 'action',
155
155
  name: { en: 'HTTP Request', de: 'HTTP-Anfrage' },
156
- icon: 'mdi:web',
156
+ icon: 'lucide:globe',
157
157
  inputs: { in: { dataType: 'object' } },
158
158
  outputs: [
159
159
  {
package/dist/index.d.cts CHANGED
@@ -54,8 +54,22 @@ interface IInputPort {
54
54
  required?: boolean;
55
55
  description?: LocalizedString;
56
56
  }
57
+ /**
58
+ * One value an output carries, as the editor offers it to the next step.
59
+ *
60
+ * Deliberately flat: there is no member describing what is inside the value,
61
+ * because the registry's manifest schema refuses any key beside these three and
62
+ * the studio reads none. What is inside a value is declared beside it, under a
63
+ * dotted name — see `IOutputPort.fields` (PO-408).
64
+ */
57
65
  interface IOutputField {
58
66
  dataType: DataType;
67
+ /**
68
+ * What the value is called, for an author picking it in the editor's `{ }` list —
69
+ * "Rechnungen" where the key is `invoices` (PO-594). Left out, the editor shows the
70
+ * key, as before.
71
+ */
72
+ label?: LocalizedString;
59
73
  description?: LocalizedString;
60
74
  }
61
75
  interface IOutputPort {
@@ -64,6 +78,15 @@ interface IOutputPort {
64
78
  name?: string;
65
79
  label?: LocalizedString;
66
80
  description?: LocalizedString;
81
+ /**
82
+ * The values this output carries, by name.
83
+ *
84
+ * A name containing `.` is a path into the value: `counts` as `object` and
85
+ * `counts.added` as `number`, side by side, offers both the object and the
86
+ * number inside it. The studio and the worker resolve that name as a path, so
87
+ * the record the node emits must really be nested — a record carrying a
88
+ * literal `"counts.added"` key is not reached by it (specs/output-fields.md).
89
+ */
67
90
  fields?: Record<string, IOutputField>;
68
91
  sourceFromConfig?: string;
69
92
  /**
@@ -154,6 +177,20 @@ interface IConfigFieldBase {
154
177
  * know the key.
155
178
  */
156
179
  showIf?: IShowIfCondition;
180
+ /**
181
+ * What a value mapped into this field from an earlier step has to be — `'array'`
182
+ * for a setting that wants the list a previous node produced (PO-594).
183
+ *
184
+ * The editor uses it to put the earlier steps' outputs of that kind first in the
185
+ * `{ }` list, mark them, and offer the single matching one as a one-click answer
186
+ * under an empty field. So the author does not have to know what a previous node
187
+ * returns, or which of its fields is the list.
188
+ *
189
+ * Not to be confused with `type: 'array'`, which draws the setting itself as
190
+ * repeating rows the author fills in by hand. Only meaningful together with
191
+ * `expressionAllowed`. Left unset, every output is offered alike, as before.
192
+ */
193
+ accepts?: DataType;
157
194
  /**
158
195
  * Only meaningful when `type === 'credentials-ref'`: the namespaced slug(s) of
159
196
  * the credential type(s) this field accepts (e.g. `revenexx:smtp`). The editor
@@ -207,6 +244,7 @@ interface INodeDescription {
207
244
  category: NodeCategory;
208
245
  name: LocalizedString;
209
246
  description?: LocalizedString;
247
+ /** A Lucide icon name, `lucide:<kebab-name>` as listed on lucide.dev (e.g. `lucide:globe`). The studio draws it as named; a name it cannot draw becomes a generic box. */
210
248
  icon?: string;
211
249
  /**
212
250
  * Curated node-picker group path, outermost first (max 4 levels), e.g.
@@ -479,6 +517,7 @@ interface ICredentialDescription {
479
517
  version: string;
480
518
  name: LocalizedString;
481
519
  description?: LocalizedString;
520
+ /** A Lucide icon name, `lucide:<kebab-name>` as listed on lucide.dev (e.g. `lucide:globe`). The studio draws it as named; a name it cannot draw becomes a generic box. */
482
521
  icon?: string;
483
522
  /** Associated images (screenshots, logos, banners) shipped with the package. */
484
523
  images?: IImage[];
@@ -588,6 +627,7 @@ interface ITemplateDescription {
588
627
  shortDescription?: LocalizedString;
589
628
  /** Long-form description in Markdown. */
590
629
  description?: LocalizedString;
630
+ /** A Lucide icon name, `lucide:<kebab-name>` as listed on lucide.dev (e.g. `lucide:globe`). The studio draws it as named; a name it cannot draw becomes a generic box. */
591
631
  icon?: string;
592
632
  /** Free-form industry tags (e.g. `any`, `medical`). */
593
633
  industries?: string[];
package/dist/index.d.ts CHANGED
@@ -54,8 +54,22 @@ interface IInputPort {
54
54
  required?: boolean;
55
55
  description?: LocalizedString;
56
56
  }
57
+ /**
58
+ * One value an output carries, as the editor offers it to the next step.
59
+ *
60
+ * Deliberately flat: there is no member describing what is inside the value,
61
+ * because the registry's manifest schema refuses any key beside these three and
62
+ * the studio reads none. What is inside a value is declared beside it, under a
63
+ * dotted name — see `IOutputPort.fields` (PO-408).
64
+ */
57
65
  interface IOutputField {
58
66
  dataType: DataType;
67
+ /**
68
+ * What the value is called, for an author picking it in the editor's `{ }` list —
69
+ * "Rechnungen" where the key is `invoices` (PO-594). Left out, the editor shows the
70
+ * key, as before.
71
+ */
72
+ label?: LocalizedString;
59
73
  description?: LocalizedString;
60
74
  }
61
75
  interface IOutputPort {
@@ -64,6 +78,15 @@ interface IOutputPort {
64
78
  name?: string;
65
79
  label?: LocalizedString;
66
80
  description?: LocalizedString;
81
+ /**
82
+ * The values this output carries, by name.
83
+ *
84
+ * A name containing `.` is a path into the value: `counts` as `object` and
85
+ * `counts.added` as `number`, side by side, offers both the object and the
86
+ * number inside it. The studio and the worker resolve that name as a path, so
87
+ * the record the node emits must really be nested — a record carrying a
88
+ * literal `"counts.added"` key is not reached by it (specs/output-fields.md).
89
+ */
67
90
  fields?: Record<string, IOutputField>;
68
91
  sourceFromConfig?: string;
69
92
  /**
@@ -154,6 +177,20 @@ interface IConfigFieldBase {
154
177
  * know the key.
155
178
  */
156
179
  showIf?: IShowIfCondition;
180
+ /**
181
+ * What a value mapped into this field from an earlier step has to be — `'array'`
182
+ * for a setting that wants the list a previous node produced (PO-594).
183
+ *
184
+ * The editor uses it to put the earlier steps' outputs of that kind first in the
185
+ * `{ }` list, mark them, and offer the single matching one as a one-click answer
186
+ * under an empty field. So the author does not have to know what a previous node
187
+ * returns, or which of its fields is the list.
188
+ *
189
+ * Not to be confused with `type: 'array'`, which draws the setting itself as
190
+ * repeating rows the author fills in by hand. Only meaningful together with
191
+ * `expressionAllowed`. Left unset, every output is offered alike, as before.
192
+ */
193
+ accepts?: DataType;
157
194
  /**
158
195
  * Only meaningful when `type === 'credentials-ref'`: the namespaced slug(s) of
159
196
  * the credential type(s) this field accepts (e.g. `revenexx:smtp`). The editor
@@ -207,6 +244,7 @@ interface INodeDescription {
207
244
  category: NodeCategory;
208
245
  name: LocalizedString;
209
246
  description?: LocalizedString;
247
+ /** A Lucide icon name, `lucide:<kebab-name>` as listed on lucide.dev (e.g. `lucide:globe`). The studio draws it as named; a name it cannot draw becomes a generic box. */
210
248
  icon?: string;
211
249
  /**
212
250
  * Curated node-picker group path, outermost first (max 4 levels), e.g.
@@ -479,6 +517,7 @@ interface ICredentialDescription {
479
517
  version: string;
480
518
  name: LocalizedString;
481
519
  description?: LocalizedString;
520
+ /** A Lucide icon name, `lucide:<kebab-name>` as listed on lucide.dev (e.g. `lucide:globe`). The studio draws it as named; a name it cannot draw becomes a generic box. */
482
521
  icon?: string;
483
522
  /** Associated images (screenshots, logos, banners) shipped with the package. */
484
523
  images?: IImage[];
@@ -588,6 +627,7 @@ interface ITemplateDescription {
588
627
  shortDescription?: LocalizedString;
589
628
  /** Long-form description in Markdown. */
590
629
  description?: LocalizedString;
630
+ /** A Lucide icon name, `lucide:<kebab-name>` as listed on lucide.dev (e.g. `lucide:globe`). The studio draws it as named; a name it cannot draw becomes a generic box. */
591
631
  icon?: string;
592
632
  /** Free-form industry tags (e.g. `any`, `medical`). */
593
633
  industries?: string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revenexx/integrations-node-sdk",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "TypeScript interfaces and utilities for Revenexx integration nodes",
5
5
  "license": "MIT",
6
6
  "author": "revenexx GmbH",