@node-red/editor-client 2.1.6 → 2.2.2

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.
@@ -1,12 +1,12 @@
1
1
  export default {
2
- version: "2.1.0",
2
+ version: "2.2.0",
3
3
  steps: [
4
4
  {
5
5
  titleIcon: "fa fa-map-o",
6
6
  title: {
7
- "en-US": "Welcome to Node-RED 2.1!",
8
- "ja": "Node-RED 2.1へようこそ!"
9
- },
7
+ "en-US": "Welcome to Node-RED 2.2!",
8
+ "ja": "Node-RED 2.2へようこそ!"
9
+ },
10
10
  description: {
11
11
  "en-US": "Let's take a moment to discover the new features in this release.",
12
12
  "ja": "本リリースの新機能を見つけてみましょう。"
@@ -14,215 +14,142 @@ export default {
14
14
  },
15
15
  {
16
16
  title: {
17
- "en-US": "A new Tour Guide",
18
- "ja": "新しいツアーガイド"
17
+ "en-US": "Search history",
18
+ "ja": "検索履歴"
19
19
  },
20
20
  description: {
21
- "en-US": "<p>First, as you've already found, we now have this tour of new features. We'll only show the tour the first time you open the editor for each new version of Node-RED.</p>" +
22
- "<p>You can choose not to see this tour in the future by disabling it under the View tab of User Settings.</p>",
23
- "ja": "<p>最初に、既に見つけている様に、新機能の本ツアーがあります。本ツアーは、新バージョンのNode-REDフローエディタを初めて開いた時のみ表示されます。</p>" +
24
- "<p>ユーザ設定の表示タブの中で、この機能を無効化することで、本ツアーを表示しないようにすることもできます。</p>"
25
- }
26
- },
27
- {
28
- title: {
29
- "en-US": "New Edit menu",
30
- "ja": "新しい編集メニュー"
21
+ "en-US": "<p>The Search dialog now keeps a history of your searches, making it easier to go back to a previous search.</p>",
22
+ "ja": "<p>検索ダイアログが検索履歴を保持するようになりました。これによって、過去の検索に戻りやすくなりました。</p>"
31
23
  },
32
- prepare() {
33
- $("#red-ui-header-button-sidemenu").trigger("click");
34
- $("#menu-item-edit-menu").parent().addClass("open");
24
+ element: "#red-ui-search .red-ui-searchBox-form",
25
+ prepare(done) {
26
+ RED.search.show();
27
+ setTimeout(done,400);
35
28
  },
36
29
  complete() {
37
- $("#menu-item-edit-menu").parent().removeClass("open");
30
+ RED.search.hide();
38
31
  },
39
- element: "#menu-item-edit-menu-submenu",
40
- interactive: false,
41
- direction: "left",
42
- description: {
43
- "en-US": "<p>The main menu has been updated with a new 'Edit' section. This includes all of the familar options, like cut/paste and undo/redo.</p>" +
44
- "<p>The menu now displays keyboard shortcuts for the options.</p>",
45
- "ja": "<p>メインメニューに「編集」セクションが追加されました。本セクションには、切り取り/貼り付けや、変更操作を戻す/やり直しの様な使い慣れたオプションが含まれています。</p>" +
46
- "<p>本メニューには、オプションのためのキーボードショートカットも表示されるようになりました。</p>"
47
- }
48
32
  },
49
33
  {
50
34
  title: {
51
- "en-US": "Arranging nodes",
52
- "ja": "ノードの配置"
53
- },
54
- prepare() {
55
- $("#red-ui-header-button-sidemenu").trigger("click");
56
- $("#menu-item-arrange-menu").parent().addClass("open");
57
- },
58
- complete() {
59
- $("#menu-item-arrange-menu").parent().removeClass("open");
35
+ "en-US": "Remembering Zoom & Position",
36
+ "ja": "拡大/縮小のレベルや位置を記憶"
60
37
  },
61
- element: "#menu-item-arrange-menu-submenu",
62
- interactive: false,
63
- direction: "left",
64
38
  description: {
65
- "en-US": "<p>The new 'Arrange' section of the menu provides new options to help arrange your nodes. You can align them to a common edge, spread them out evenly or change their order.</p>",
66
- "ja": "<p>メニューの新しい「配置」セクションには、ノードの配置を助ける新しいオプションが提供されています。ノードの端を揃えたり、均等に配置したり、表示順序を変更したりできます。</p>"
67
- }
68
- },
69
- {
70
- title: {
71
- "en-US": "Hiding tabs",
72
- "ja": "タブの非表示"
39
+ "en-US": "<p>The editor has new options to restore the zoom level and scroll position when reloading the editor.</p>",
40
+ "ja": "<p>エディタを再読み込みした時に、拡大/縮小のレベルやスクロール位置を復元するための新しいオプションを利用できます。</p>"
73
41
  },
74
- element: "#red-ui-workspace-tabs > li.active",
75
- description: {
76
- "en-US": '<p>Tabs can now be hidden by clicking their <i class="fa fa-eye-slash"></i> icon.</p><p>The Info Sidebar will still list all of your tabs, and tell you which ones are currently hidden.',
77
- "ja": '<p><i class="fa fa-eye-slash"></i> アイコンをクリックすることで、タブを非表示にできます。</p><p>情報サイドバーには、全てのタブが一覧表示されており、現在非表示になっているタブを確認できます。'
42
+ element: function() { return $("#user-settings-view-store-position").parent()},
43
+ prepare(done) {
44
+ RED.actions.invoke("core:show-user-settings")
45
+ setTimeout(done,400);
78
46
  },
79
- interactive: false,
80
- prepare() {
81
- $("#red-ui-workspace-tabs > li.active .red-ui-tab-close").css("display","block");
47
+ complete(done) {
48
+ $("#node-dialog-ok").trigger("click");
49
+ setTimeout(done,400);
82
50
  },
83
- complete() {
84
- $("#red-ui-workspace-tabs > li.active .red-ui-tab-close").css("display","");
85
- }
86
51
  },
87
52
  {
88
53
  title: {
89
- "en-US": "Tab menu",
90
- "ja": "タブメニュー"
54
+ "en-US": "New wiring actions",
55
+ "ja": "新しいワイヤー操作"
91
56
  },
92
- element: "#red-ui-workspace-tabs-menu",
57
+ // image: "images/",
93
58
  description: {
94
- "en-US": "<p>The new tab menu also provides lots of new options for your tabs.</p>",
95
- "ja": "<p>新しいタブメニューには、タブに関する沢山の新しいオプションが提供されています。</p>"
96
- },
97
- interactive: false,
98
- direction: "left",
99
- prepare() {
100
- $("#red-ui-workspace > .red-ui-tabs > .red-ui-tabs-menu a").trigger("click");
59
+ "en-US": `<p>A pair of new actions have been added to help with wiring nodes together:</p>
60
+ <ul>
61
+ <li><b><code>Wire Series Of Nodes</code></b> - adds a wire (if necessary) between each pair of nodes in the order they were selected.</li>
62
+ <li><b><code>Wire Node To Multiple</code></b> - wires the first node selected to all of the other selected nodes.</li>
63
+ </ul>
64
+ <p>Actions can be accessed from the Action List in the main menu.</p>`,
65
+ "ja": `<p>ノード接続を支援する2つの新しい操作が追加されました:</p>
66
+ <ul>
67
+ <li><b><code>Wire Series Of Nodes</code></b> - ノードを選択した順序で、各ノードのペアの間にワイヤーを(必要に応じて)追加します。</li>
68
+ <li><b><code>Wire Node To Multiple</code></b> - 最初に選択したノードから、他の選択した全てのノードに対して、ワイヤーを追加します。</li>
69
+ </ul>
70
+ <p>メインメニュー内の動作一覧から、これらの操作を利用できます。</p>`
101
71
  },
102
- complete() {
103
- $(document).trigger("click");
104
- }
105
72
  },
106
73
  {
107
74
  title: {
108
- "en-US": "Flow and Group level environment variables",
109
- "ja": "フローとグループの環境変数"
75
+ "en-US": "Deleting nodes and reconnecting wires",
76
+ "ja": "ノードの削除とワイヤーの再接続"
110
77
  },
111
- element: "#red-ui-workspace-tabs > li.active",
112
- interactive: false,
78
+ image: "images/delete-repair.gif",
113
79
  description: {
114
- "en-US": "<p>Flows and Groups can now have their own environment variables that can be referenced by nodes inside them.</p>",
115
- "ja": "<p>フローとグループには、内部のノードから参照できる環境変数を設定できるようになりました。</p>"
116
- }
117
- },
118
- {
119
- prepare(done) {
120
- RED.editor.editFlow(RED.nodes.workspace(RED.workspaces.active()),"editor-tab-envProperties");
121
- setTimeout(done,700);
122
- },
123
- element: "#red-ui-tab-editor-tab-envProperties-link-button",
124
- description: {
125
- "en-US": "<p>Their edit dialogs have a new Environment Variables section.</p>",
126
- "ja": "<p>編集ダイアログに環境変数セクションが追加されました。</p>"
127
- }
128
- },
129
- {
130
- element: ".node-input-env-container-row",
131
- direction: "left",
132
- description: {
133
- "en-US": '<p>The environment variables are listed in this table and new ones can be added by clicking the <i class="fa fa-plus"></i> button.</p>',
134
- "ja": '<p>この表に環境変数が一覧表示されており、<i class="fa fa-plus"></i>ボタンをクリックすることで新しい変数を追加できます。</p>'
135
- },
136
- complete(done) {
137
- $("#node-dialog-cancel").trigger("click");
138
- setTimeout(done,500);
80
+ "en-US": `<p>It is now possible to delete a selection of nodes and automatically repair the wiring behind them.</p>
81
+ <p>This is really useful if you want to remove a node from the middle of the flow.</p>
82
+ <p>Hold the Ctrl (or Cmd) key when you press Delete and the nodes will be gone and the wires repaired.</p>
83
+ `,
84
+ "ja": `<p>選択したノードを削除した後、その背後にあるワイヤーを自動的に修復できるようになりました。</p>
85
+ <p>これは、フローの中からノードを削除する時に、とても便利に使えます。</p>
86
+ <p>Ctrl (またはCmd)キーを押しながらDeleteキーを押すと、ノードがなくなり、ワイヤーが修復されます。</p>
87
+ `
139
88
  }
140
89
  },
141
90
  {
142
91
  title: {
143
- "en-US": "Link Call node added",
144
- "ja": "Link Callノードを追加"
92
+ "en-US": "Detaching nodes from a flow",
93
+ "ja": "フローからノードの切り離し"
145
94
  },
146
- prepare(done) {
147
- this.paletteWasClosed = $("#red-ui-main-container").hasClass("red-ui-palette-closed");
148
- RED.actions.invoke("core:toggle-palette",true)
149
- $('[data-palette-type="link call"]')[0].scrollIntoView({block:"center"})
150
- setTimeout(done,100);
151
- },
152
- element: '[data-palette-type="link call"]',
153
- direction: "right",
95
+ image: "images/detach-repair.gif",
154
96
  description: {
155
- "en-US": "<p>The <code>Link Call</code> node lets you call another flow that begins with a <code>Link In</code> node and get the result back when the message reaches a <code>Link Out</code> node.</p>",
156
- "ja": "<p><code>Link Call</code>ノードを用いることで、<code>Link In</code>ノードから始まるフローを呼び出し、<code>Link Out</code>ノードに到達した時に、結果を取得できます。</p>"
97
+ "en-US": `<p>If you want to remove a node from a flow without deleting it,
98
+ you can use the <b><code>Detach Selected Nodes</code></b> action.</p>
99
+ <p>The nodes will be removed from their flow, the wiring repaired behind them, and then attached to the mouse
100
+ so you can drop them wherever you want in the workspace.</p>
101
+ <p>There isn't a default keyboard shortcut assigned for this new action, but
102
+ you can add your own via the Keyboard pane of the main Settings dialog.</p>`,
103
+ "ja": `<p>ノードを削除することなく、フローからノードを除きたい場合は、<b><code>Detach Selected Nodes</code></b>操作を利用できます。</p>
104
+ <p>フローからノードが除かれた後、背後のワイヤーが修復され、ノードはマウスポインタにつながります。そのため、ワークスペースの好きな所にノードを配置できます。</p>
105
+ <p>この新しい操作に対して、デフォルトのキーボードショートカットは登録されていませんが、メイン設定ダイアログのキーボード設定から追加できます。</p>`
157
106
  }
158
107
  },
159
108
  {
160
109
  title: {
161
- "en-US": "MQTT nodes support dynamic connections",
162
- "ja": "MQTTノードが動的接続をサポート"
163
- },
164
- prepare(done) {
165
- $('[data-palette-type="mqtt out"]')[0].scrollIntoView({block:"center"})
166
- setTimeout(done,100);
167
- },
168
- element: '[data-palette-type="mqtt out"]',
169
- direction: "right",
170
- description: {
171
- "en-US": '<p>The <code>MQTT</code> nodes now support creating their connections and subscriptions dynamically.</p>',
172
- "ja": '<p><code>MQTT</code>ノードは、動的な接続や購読ができるようになりました。</p>'
173
- },
174
- },
175
- {
176
- title: {
177
- "en-US": "File nodes renamed",
178
- "ja": "ファイルノードの名前変更"
179
- },
180
- prepare(done) {
181
- $('[data-palette-type="file"]')[0].scrollIntoView({block:"center"});
182
- setTimeout(done,100);
183
- },
184
- complete() {
185
- if (this.paletteWasClosed) {
186
- RED.actions.invoke("core:toggle-palette",false)
187
- }
110
+ "en-US": "More wiring tricks",
111
+ "ja": "その他のワイヤー操作"
188
112
  },
189
- element: '[data-palette-type="file"]',
190
- direction: "right",
113
+ image: "images/slice.gif",
191
114
  description: {
192
- "en-US": "<p>The file nodes have been renamed to make it clearer which node does what.</p>",
193
- "ja": "<p>fileノードの名前が変更され、どのノードが何を行うかが明確になりました。</p>"
115
+ "en-US": `<p>A couple more wiring tricks to share.</p>
116
+ <p>You can now select multiple wires by holding the Ctrl (or Cmd) key
117
+ when clicking on a wire. This makes it easier to delete multiple wires in one go.</p>
118
+ <p>If you hold the Ctrl (or Cmd) key, then click and drag with the right-hand mouse button,
119
+ you can slice through wires to remove them.</p>`,
120
+ "ja": `<p>その他のいくつかのワイヤー操作</p>
121
+ <p>Ctrl (またはCmd)キーを押しながらワイヤーをクリックすることで、複数のワイヤーを選択できるようになりました。これによって、複数のワイヤーを一度に削除することが簡単になりました。</p>
122
+ <p>Ctrl (またはCmd)キーを押しながら、マウスの右ボタンを用いてドラッグすると、ワイヤーを切って削除できます。</p>`
194
123
  }
195
124
  },
196
125
  {
197
126
  title: {
198
- "en-US": "Deep copy option on Change node",
199
- "ja": "Changeノードのディープコピーオプション"
200
- },
201
- prepare(done) {
202
- var def = RED.nodes.getType('change');
203
- RED.editor.edit({id:"test",type:"change",rules:[{t:"set",p:"payload",pt:"msg", tot:"msg",to:"anotherProperty"}],_def:def, _:def._});
204
- setTimeout(done,700);
205
- },
206
- complete(done) {
207
- $("#node-dialog-cancel").trigger("click");
208
- setTimeout(done,500);
209
- },
210
- element: function() {
211
- return $(".node-input-rule-property-deepCopy").next();
127
+ "en-US": "Subflow Output Labels",
128
+ "ja": "サブフローの出力ラベル"
212
129
  },
130
+ image: "images/subflow-labels.png",
213
131
  description: {
214
- "en-US": "<p>The Set rule has a new option to create a deep copy of the value. This ensures a complete copy is made, rather than using a reference.</p>",
215
- "ja": "<p>値を代入に、値のディープコピーを作成するオプションが追加されました。これによって参照ではなく、完全なコピーが作成されます。</p>"
216
- }
132
+ "en-US": "<p>If a subflow has labels set for its outputs, they now get shown on the ports within the subflow template view.</p>",
133
+ "ja": "<p>サブフローの出力にラベルが設定されている場合、サブフローテンプレート画面内のポートにラベルが表示されるようになりました。</p>"
134
+ },
217
135
  },
218
136
  {
219
137
  title: {
220
- "en-US": "And that's not all...",
221
- "ja": "これが全てではありません..."
138
+ "en-US": "Node Updates",
139
+ "ja": "ノードの更新"
222
140
  },
141
+ // image: "images/",
223
142
  description: {
224
- "en-US": "<p>There are many more smaller changes, including:</p><ul><li>Auto-complete suggestions in the <code>msg</code> TypedInput.</li><li>Support for <code>msg.resetTimeout</code> in the <code>Join</code> node.</li><li>Pushing messages to the front of the queue in the <code>Delay</code> node's rate limiting mode.</li><li>An optional second output on the <code>Delay</code> node for rate limited messages.</li></ul>",
225
- "ja": "<p>以下の様な小さな変更が沢山あります:</p><ul><li><code>msg</code> TypedInputの自動補完提案</li><li><code>Join</code>ノードで<code>msg.resetTimeout</code>のサポート</li><li><code>Delay</code>ノードの流量制御モードにおいて先頭メッセージをキューに追加</li><li><code>Delay</code>ノードで流量制限されたメッセージ向けの任意の2つ目の出力</li></ul>"
143
+ "en-US": `<ul>
144
+ <li>The JSON node will now handle parsing Buffer payloads</li>
145
+ <li>The TCP Client nodes support TLS connections</li>
146
+ <li>The WebSocket node allows you to specify a sub-protocol when connecting</li>
147
+ </ul>`,
148
+ "ja": `<ul>
149
+ <li>JSONノードが、バッファ形式のペイロードを解析できるようになりました。</li>
150
+ <li>TCPクライアントノードが、TLS接続をサポートしました。</li>
151
+ <li>WebSocketノードで、接続時にサブプロトコルを指定できるようになりました。</li>
152
+ </ul>`
226
153
  }
227
154
  }
228
155
  ]
@@ -31,12 +31,12 @@ interface NodeStatus {
31
31
  }
32
32
 
33
33
  declare class node {
34
- /**
35
- * Send 1 or more messages asynchronously
36
- * @param {object | object[]} msg The msg object
37
- * @param {Boolean} [clone=true] Flag to indicate the `msg` should be cloned. Default = `true`
38
- * @see node-red documentation [writing-functions: sending messages asynchronously](https://nodered.org/docs/user-guide/writing-functions#sending-messages-asynchronously)
39
- */
34
+ /**
35
+ * Send 1 or more messages asynchronously
36
+ * @param {object | object[]} msg The msg object
37
+ * @param {Boolean} [clone=true] Flag to indicate the `msg` should be cloned. Default = `true`
38
+ * @see node-red documentation [writing-functions: sending messages asynchronously](https://nodered.org/docs/user-guide/writing-functions#sending-messages-asynchronously)
39
+ */
40
40
  static send(msg:object|object[], clone?:Boolean): void;
41
41
  /** Inform runtime this instance has completed its operation */
42
42
  static done();
@@ -57,11 +57,13 @@ declare class node {
57
57
  */
58
58
  static status(status:string|boolean|number);
59
59
  /** the id of this node */
60
- public readonly id:string;
60
+ public static readonly id:string;
61
61
  /** the name of this node */
62
- public readonly name:string;
62
+ public static readonly name:string;
63
+ /** the path identifier for this node */
64
+ public static readonly path:string;
63
65
  /** the number of outputs of this node */
64
- public readonly outputCount:number;
66
+ public static readonly outputCount:number;
65
67
  }
66
68
  declare class context {
67
69
  /**
@@ -93,27 +95,27 @@ declare class context {
93
95
  /**
94
96
  * Set one or multiple values in context (synchronous).
95
97
  * @param name - Name (or array of names) to set in context
96
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
98
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
97
99
  */
98
100
  static set(name: string | string[], value?: any | any[]);
99
101
  /**
100
102
  * Set one or multiple values in context (asynchronous).
101
103
  * @param name - Name (or array of names) to set in context
102
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
104
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
103
105
  * @param callback - (optional) Callback function (`(err) => {}`)
104
106
  */
105
107
  static set(name: string | string[], value?: any | any[], callback?: Function);
106
108
  /**
107
109
  * Set one or multiple values in context (synchronous).
108
110
  * @param name - Name (or array of names) to set in context
109
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
111
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
110
112
  * @param store - (optional) Name of context store
111
113
  */
112
114
  static set(name: string | string[], value?: any | any[], store?: string);
113
115
  /**
114
116
  * Set one or multiple values in context (asynchronous).
115
117
  * @param name - Name (or array of names) to set in context
116
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
118
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
117
119
  * @param store - (optional) Name of context store
118
120
  * @param callback - (optional) Callback function (`(err) => {}`)
119
121
  */
@@ -158,27 +160,27 @@ declare class flow {
158
160
  /**
159
161
  * Set one or multiple values in context (synchronous).
160
162
  * @param name - Name (or array of names) to set in context
161
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
163
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
162
164
  */
163
165
  static set(name: string | string[], value?: any | any[]);
164
166
  /**
165
167
  * Set one or multiple values in context (asynchronous).
166
168
  * @param name - Name (or array of names) to set in context
167
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
169
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
168
170
  * @param callback - (optional) Callback function (`(err) => {}`)
169
171
  */
170
172
  static set(name: string | string[], value?: any | any[], callback?: Function);
171
173
  /**
172
174
  * Set one or multiple values in context (synchronous).
173
175
  * @param name - Name (or array of names) to set in context
174
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
176
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
175
177
  * @param store - (optional) Name of context store
176
178
  */
177
179
  static set(name: string | string[], value?: any | any[], store?: string);
178
180
  /**
179
181
  * Set one or multiple values in context (asynchronous).
180
182
  * @param name - Name (or array of names) to set in context
181
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
183
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
182
184
  * @param store - (optional) Name of context store
183
185
  * @param callback - (optional) Callback function (`(err) => {}`)
184
186
  */
@@ -225,32 +227,32 @@ declare class global {
225
227
  /**
226
228
  * Set one or multiple values in context (synchronous).
227
229
  * @param name - Name (or array of names) to set in context
228
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
230
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
229
231
  */
230
232
  static set(name: string | string[], value?: any | any[]);
231
233
  /**
232
234
  * Set one or multiple values in context (asynchronous).
233
235
  * @param name - Name (or array of names) to set in context
234
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
236
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
235
237
  * @param callback - (optional) Callback function (`(err) => {}`)
236
238
  */
237
239
  static set(name: string | string[], value?: any | any[], callback?: Function);
238
240
  /**
239
241
  * Set one or multiple values in context (synchronous).
240
242
  * @param name - Name (or array of names) to set in context
241
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
243
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
242
244
  * @param store - (optional) Name of context store
243
245
  */
244
246
  static set(name: string | string[], value?: any | any[], store?: string);
245
247
  /**
246
248
  * Set one or multiple values in context (asynchronous).
247
249
  * @param name - Name (or array of names) to set in context
248
- * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
250
+ * @param value - The value (or array of values) to store in context. If the value(s) are null/undefined, the context item(s) will be removed.
249
251
  * @param store - (optional) Name of context store
250
252
  * @param callback - (optional) Callback function (`(err) => {}`)
251
253
  */
252
254
  static set(name: string | string[], value?: any | any[], store?: string, callback?: Function);
253
-
255
+
254
256
  /** Get an array of the keys in the context store */
255
257
  static keys(): Array<string>;
256
258
  /** Get an array of the keys in the context store */
@@ -261,6 +263,20 @@ declare class global {
261
263
  static keys(store: string, callback: Function);
262
264
  }
263
265
  declare class env {
264
- /** Get an environment variable value */
265
- static get(name:string);
266
+ /**
267
+ * Get an environment variable value
268
+ *
269
+ * Predefined node-red variables...
270
+ * * `NR_NODE_ID` - the ID of the node
271
+ * * `NR_NODE_NAME` - the Name of the node
272
+ * * `NR_NODE_PATH` - the Path of the node
273
+ * * `NR_GROUP_ID` - the ID of the containing group
274
+ * * `NR_GROUP_NAME` - the Name of the containing group
275
+ * * `NR_FLOW_ID` - the ID of the flow the node is on
276
+ * * `NR_FLOW_NAME` - the Name of the flow the node is on
277
+ * @param name Name of the environment variable to get
278
+ * @example
279
+ * ```const flowName = env.get("NR_FLOW_NAME");```
280
+ */
281
+ static get(name:string) :string;
266
282
  }
@@ -1 +1 @@
1
- ace.define("ace/mode/jsonata",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/worker/worker_client","ace/mode/text"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,a=e("../worker/worker_client").WorkerClient;(g=Object.keys(jsonata.functions)).sort(function(e,t){return t.length-e.length});function i(){var e=this.createKeywordMapper({"keyword.operator":"and|or|in","constant.language":"null|Infinity|NaN|undefined","constant.language.boolean":"true|false","storage.type":"function"},"identifier");this.$rules={no_regex:[{token:"comment.doc",regex:"\\/\\*",next:"comments"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:"keyword",regex:/λ/},{token:"keyword",regex:g},{token:e,regex:"[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"keyword.operator",regex:/\|\||<=|>=|\.\.|\*\*|!=|:=|[=<>`!$%&*+\-~\/^]/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/}],qqstring:[{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}],regex:[{token:"string.regexp",regex:"/[sxngimy]*",next:"start"},{defaultToken:"string.regexp"}],start:[{token:"comment.doc",regex:"\\/\\*",next:"comments"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"empty",regex:"",next:"no_regex"}],comments:[{token:"comment.doc",regex:"\\*\\/",next:"start"},{defaultToken:"comment.doc"}]}}var g="("+g.join("|").replace(/\$/g,"\\$")+")(\\b)";r.inherits(i,o);function s(){this.HighlightRules=i}e=e("./text").Mode;r.inherits(s,e),function(){this.createWorker=function(t){var e=new a(["ace"],"ace/mode/jsonata_worker","JSONataWorker");return e.attachToDocument(t.getDocument()),e.on("annotate",function(e){t.setAnnotations(e.data)}),e.on("terminate",function(){t.clearAnnotations()}),e},this.$id="ace/mode/jsonata"}.call(s.prototype),t.Mode=s});
1
+ ace.define("ace/mode/jsonata",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/worker/worker_client","ace/mode/text"],function(e,t,n){"use strict";function r(){var e=this.createKeywordMapper({"keyword.operator":"and|or|in","constant.language":"null|Infinity|NaN|undefined","constant.language.boolean":"true|false","storage.type":"function"},"identifier");this.$rules={no_regex:[{token:"comment.doc",regex:"\\/\\*",next:"comments"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:"keyword",regex:/λ/},{token:"keyword",regex:s},{token:e,regex:"[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"keyword.operator",regex:/\|\||<=|>=|\.\.|\*\*|!=|:=|[=<>`!$%&*+\-~\/^]/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/}],qqstring:[{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}],regex:[{token:"string.regexp",regex:"/[sxngimy]*",next:"start"},{defaultToken:"string.regexp"}],start:[{token:"comment.doc",regex:"\\/\\*",next:"comments"},{token:"string.regexp",regex:"\\/",next:"regex"},{token:"empty",regex:"",next:"no_regex"}],comments:[{token:"comment.doc",regex:"\\*\\/",next:"start"},{defaultToken:"comment.doc"}]}}function o(){this.HighlightRules=r}var a=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,g=e("../worker/worker_client").WorkerClient,s=Object.keys(jsonata.functions),i=(s.sort(function(e,t){return t.length-e.length}),s="("+s.join("|").replace(/\$/g,"\\$")+")(\\b)",a.inherits(r,i),e("./text").Mode);a.inherits(o,i),function(){this.createWorker=function(t){var e=new g(["ace"],"ace/mode/jsonata_worker","JSONataWorker");return e.attachToDocument(t.getDocument()),e.on("annotate",function(e){t.setAnnotations(e.data)}),e.on("terminate",function(){t.clearAnnotations()}),e},this.$id="ace/mode/jsonata"}.call(o.prototype),t.Mode=o});