@fugood/bricks-project 2.22.0-beta.26 → 2.22.0-beta.28

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.
Files changed (78) hide show
  1. package/package.json +2 -2
  2. package/types/animation.ts +1 -0
  3. package/types/brick-base.ts +77 -0
  4. package/types/bricks/3DViewer.ts +200 -0
  5. package/types/bricks/Camera.ts +195 -0
  6. package/types/bricks/Chart.ts +362 -0
  7. package/types/bricks/GenerativeMedia.ts +237 -0
  8. package/types/bricks/Icon.ts +90 -0
  9. package/types/bricks/Image.ts +101 -0
  10. package/types/bricks/Items.ts +461 -0
  11. package/types/bricks/Lottie.ts +156 -0
  12. package/types/bricks/Qrcode.ts +109 -0
  13. package/types/bricks/Rect.ts +107 -0
  14. package/types/bricks/RichText.ts +120 -0
  15. package/types/bricks/Rive.ts +209 -0
  16. package/types/bricks/Slideshow.ts +155 -0
  17. package/types/bricks/Svg.ts +91 -0
  18. package/types/bricks/Text.ts +140 -0
  19. package/types/bricks/TextInput.ts +231 -0
  20. package/types/bricks/Video.ts +167 -0
  21. package/types/bricks/VideoStreaming.ts +104 -0
  22. package/types/bricks/WebRTCStream.ts +60 -0
  23. package/types/bricks/WebView.ts +157 -0
  24. package/types/bricks/index.ts +20 -0
  25. package/types/generators/AlarmClock.ts +102 -0
  26. package/types/generators/Assistant.ts +546 -0
  27. package/types/generators/BleCentral.ts +225 -0
  28. package/types/generators/BlePeripheral.ts +202 -0
  29. package/types/generators/CanvasMap.ts +57 -0
  30. package/types/generators/CastlesPay.ts +77 -0
  31. package/types/generators/DataBank.ts +123 -0
  32. package/types/generators/File.ts +351 -0
  33. package/types/generators/GraphQL.ts +124 -0
  34. package/types/generators/HTTP.ts +117 -0
  35. package/types/generators/HTTPServer.ts +156 -0
  36. package/types/generators/Information.ts +97 -0
  37. package/types/generators/Intent.ts +107 -0
  38. package/types/generators/Iterator.ts +95 -0
  39. package/types/generators/Keyboard.ts +85 -0
  40. package/types/generators/LlmAnthropicCompat.ts +188 -0
  41. package/types/generators/LlmGgml.ts +719 -0
  42. package/types/generators/LlmOnnx.ts +184 -0
  43. package/types/generators/LlmOpenAiCompat.ts +206 -0
  44. package/types/generators/LlmQualcommAiEngine.ts +213 -0
  45. package/types/generators/MCP.ts +294 -0
  46. package/types/generators/MCPServer.ts +245 -0
  47. package/types/generators/MQTTBroker.ts +121 -0
  48. package/types/generators/MediaFlow.ts +142 -0
  49. package/types/generators/MqttClient.ts +129 -0
  50. package/types/generators/Question.ts +395 -0
  51. package/types/generators/RealtimeTranscription.ts +172 -0
  52. package/types/generators/RerankerGgml.ts +153 -0
  53. package/types/generators/SerialPort.ts +141 -0
  54. package/types/generators/SoundPlayer.ts +86 -0
  55. package/types/generators/SoundRecorder.ts +113 -0
  56. package/types/generators/SpeechToTextGgml.ts +462 -0
  57. package/types/generators/SpeechToTextOnnx.ts +227 -0
  58. package/types/generators/SpeechToTextPlatform.ts +75 -0
  59. package/types/generators/Sqlite.ts +118 -0
  60. package/types/generators/Step.ts +101 -0
  61. package/types/generators/TCP.ts +120 -0
  62. package/types/generators/TCPServer.ts +137 -0
  63. package/types/generators/TapToPayOnIPhone.ts +175 -0
  64. package/types/generators/TextToSpeechGgml.ts +182 -0
  65. package/types/generators/TextToSpeechOnnx.ts +169 -0
  66. package/types/generators/TextToSpeechOpenAiLike.ts +113 -0
  67. package/types/generators/ThermalPrinter.ts +185 -0
  68. package/types/generators/Tick.ts +75 -0
  69. package/types/generators/UDP.ts +109 -0
  70. package/types/generators/VadGgml.ts +211 -0
  71. package/types/generators/VectorStore.ts +223 -0
  72. package/types/generators/Watchdog.ts +96 -0
  73. package/types/generators/WebCrawler.ts +97 -0
  74. package/types/generators/WebRTC.ts +165 -0
  75. package/types/generators/WebSocket.ts +142 -0
  76. package/types/generators/index.ts +51 -0
  77. package/types/bricks.ts +0 -3269
  78. package/types/generators.ts +0 -8627
@@ -0,0 +1,294 @@
1
+ import type { SwitchCondInnerStateCurrentCanvas, SwitchCondData, SwitchDef } from '../switch'
2
+ import type { Data, DataLink } from '../data'
3
+ import type {
4
+ Generator,
5
+ EventAction,
6
+ ActionWithDataParams,
7
+ ActionWithParams,
8
+ Action,
9
+ EventProperty,
10
+ } from '../common'
11
+
12
+ /* Connect to MCP server */
13
+ export type GeneratorMCPActionConnect = Action & {
14
+ __actionName: 'GENERATOR_MCP_CONNECT'
15
+ }
16
+
17
+ /* Disconnect from MCP server */
18
+ export type GeneratorMCPActionDisconnect = Action & {
19
+ __actionName: 'GENERATOR_MCP_DISCONNECT'
20
+ }
21
+
22
+ /* List resources */
23
+ export type GeneratorMCPActionListResources = ActionWithParams & {
24
+ __actionName: 'GENERATOR_MCP_LIST_RESOURCES'
25
+ params?: Array<{
26
+ input: 'requestId'
27
+ value?: string | DataLink | EventProperty
28
+ mapping?: string
29
+ }>
30
+ }
31
+
32
+ /* List resource templates */
33
+ export type GeneratorMCPActionListResourceTemplates = ActionWithParams & {
34
+ __actionName: 'GENERATOR_MCP_LIST_RESOURCE_TEMPLATES'
35
+ params?: Array<{
36
+ input: 'requestId'
37
+ value?: string | DataLink | EventProperty
38
+ mapping?: string
39
+ }>
40
+ }
41
+
42
+ /* Read resource */
43
+ export type GeneratorMCPActionReadResource = ActionWithParams & {
44
+ __actionName: 'GENERATOR_MCP_READ_RESOURCE'
45
+ params?: Array<
46
+ | {
47
+ input: 'requestId'
48
+ value?: string | DataLink | EventProperty
49
+ mapping?: string
50
+ }
51
+ | {
52
+ input: 'uri'
53
+ value?: string | DataLink | EventProperty
54
+ mapping?: string
55
+ }
56
+ | {
57
+ input: 'variables'
58
+ value?: {} | DataLink | EventProperty
59
+ mapping?: string
60
+ }
61
+ >
62
+ }
63
+
64
+ /* List tools */
65
+ export type GeneratorMCPActionListTools = ActionWithParams & {
66
+ __actionName: 'GENERATOR_MCP_LIST_TOOLS'
67
+ params?: Array<{
68
+ input: 'requestId'
69
+ value?: string | DataLink | EventProperty
70
+ mapping?: string
71
+ }>
72
+ }
73
+
74
+ /* Call tool */
75
+ export type GeneratorMCPActionCallTool = ActionWithParams & {
76
+ __actionName: 'GENERATOR_MCP_CALL_TOOL'
77
+ params?: Array<
78
+ | {
79
+ input: 'requestId'
80
+ value?: string | DataLink | EventProperty
81
+ mapping?: string
82
+ }
83
+ | {
84
+ input: 'name'
85
+ value?: string | DataLink | EventProperty
86
+ mapping?: string
87
+ }
88
+ | {
89
+ input: 'variables'
90
+ value?: {} | DataLink | EventProperty
91
+ mapping?: string
92
+ }
93
+ >
94
+ }
95
+
96
+ /* List prompts */
97
+ export type GeneratorMCPActionListPrompts = ActionWithParams & {
98
+ __actionName: 'GENERATOR_MCP_LIST_PROMPTS'
99
+ params?: Array<{
100
+ input: 'requestId'
101
+ value?: string | DataLink | EventProperty
102
+ mapping?: string
103
+ }>
104
+ }
105
+
106
+ /* Request prompt */
107
+ export type GeneratorMCPActionGetPrompt = ActionWithParams & {
108
+ __actionName: 'GENERATOR_MCP_GET_PROMPT'
109
+ params?: Array<
110
+ | {
111
+ input: 'requestId'
112
+ value?: string | DataLink | EventProperty
113
+ mapping?: string
114
+ }
115
+ | {
116
+ input: 'name'
117
+ value?: string | DataLink | EventProperty
118
+ mapping?: string
119
+ }
120
+ | {
121
+ input: 'variables'
122
+ value?: {} | DataLink | EventProperty
123
+ mapping?: string
124
+ }
125
+ >
126
+ }
127
+
128
+ interface GeneratorMCPDef {
129
+ /*
130
+ Default property:
131
+ {
132
+ "init": false,
133
+ "type": "streamable-http",
134
+ "url": "",
135
+ "autoReconnect": true,
136
+ "maxReconnectAttempts": 10,
137
+ "reconnectInterval": 1000,
138
+ "generatorId": "",
139
+ "generatorKey": "",
140
+ "name": "bricks-foundation-mcp-client-default",
141
+ "version": "1.0.0",
142
+ "ignoreResourceInList": [],
143
+ "ignoreToolInList": [],
144
+ "ignorePromptInList": [],
145
+ "requestTimeout": 60000
146
+ }
147
+ */
148
+ property?: {
149
+ /* Application-scoped generator key, key cannot be the same with other application-scoped generators */
150
+ globalGeneratorKey?: string | DataLink
151
+ /* Initialize the MCP client on start */
152
+ init?: boolean | DataLink
153
+ /* Type of the MCP connection, e.g. sse or direct-link (generator) */
154
+ type?: 'streamable-http' | 'sse' | 'direct-link' | DataLink
155
+ /* URL of the MCP server, e.g. http://localhost:19853/sse */
156
+ url?: string | DataLink
157
+ /* Whether to automatically reconnect to the MCP server */
158
+ autoReconnect?: boolean | DataLink
159
+ /* Maximum number of reconnection attempts */
160
+ maxReconnectAttempts?: number | DataLink
161
+ /* Reconnection interval in milliseconds */
162
+ reconnectInterval?: number | DataLink
163
+ /* SSE connection headers */
164
+ sseHeaders?: {} | DataLink
165
+ /* Send request headers */
166
+ sendHeaders?: {} | DataLink
167
+ /* Bearer token for authentication */
168
+ bearerToken?: string | DataLink
169
+ /* Generator MCP Server ID for direct link */
170
+ generatorId?: string | DataLink
171
+ /* Application-scoped key of Generator MCP Server for direct link (If ID is not provided) */
172
+ generatorKey?: string | DataLink
173
+ /* Name of the MCP client */
174
+ name?: string | DataLink
175
+ /* Version of the MCP client */
176
+ version?: string | DataLink
177
+ /* Ignore resources in list response */
178
+ ignoreResourceInList?: Array<string | DataLink> | DataLink
179
+ /* Ignore tools in list response */
180
+ ignoreToolInList?: Array<string | DataLink> | DataLink
181
+ /* Ignore prompts in list response */
182
+ ignorePromptInList?: Array<string | DataLink> | DataLink
183
+ /* Request timeout in milliseconds */
184
+ requestTimeout?: number | DataLink
185
+ }
186
+ events?: {
187
+ /* On connected */
188
+ onConnected?: Array<EventAction>
189
+ /* On connection error */
190
+ onConnectionError?: Array<EventAction>
191
+ /* On disconnected */
192
+ onDisconnected?: Array<EventAction>
193
+ /* On list resources */
194
+ onListResources?: Array<EventAction>
195
+ /* On list resources error */
196
+ onListResourcesError?: Array<EventAction>
197
+ /* On list resource templates */
198
+ onListResourceTemplates?: Array<EventAction>
199
+ /* On list resource templates error */
200
+ onListResourceTemplatesError?: Array<EventAction>
201
+ /* On read resource */
202
+ onReadResource?: Array<EventAction>
203
+ /* On read resource error */
204
+ onReadResourceError?: Array<EventAction>
205
+ /* On list tools */
206
+ onListTools?: Array<EventAction>
207
+ /* On list tools error */
208
+ onListToolsError?: Array<EventAction>
209
+ /* On call tool */
210
+ onCallTool?: Array<EventAction>
211
+ /* On call tool error */
212
+ onCallToolError?: Array<EventAction>
213
+ /* On list prompts */
214
+ onListPrompts?: Array<EventAction>
215
+ /* On list prompts error */
216
+ onListPromptsError?: Array<EventAction>
217
+ /* On get prompt */
218
+ onGetPrompt?: Array<EventAction>
219
+ /* On get prompt error */
220
+ onGetPromptError?: Array<EventAction>
221
+ }
222
+ outlets?: {
223
+ /* Connection state */
224
+ connectionState?: () => Data
225
+ /* List resources response */
226
+ listResourcesResponse?: () => Data
227
+ /* List resources error */
228
+ listResourcesError?: () => Data
229
+ /* List resource templates response */
230
+ listResourceTemplatesResponse?: () => Data
231
+ /* List resource templates error */
232
+ listResourceTemplatesError?: () => Data
233
+ /* Read resource response */
234
+ readResourceResponse?: () => Data
235
+ /* Read resource error */
236
+ readResourceError?: () => Data
237
+ /* List tools response */
238
+ listToolsResponse?: () => Data
239
+ /* List tools error */
240
+ listToolsError?: () => Data
241
+ /* Call tool response */
242
+ callToolResponse?: () => Data
243
+ /* Call tool error */
244
+ callToolError?: () => Data
245
+ /* List prompts response */
246
+ listPromptsResponse?: () => Data
247
+ /* List prompts error */
248
+ listPromptsError?: () => Data
249
+ /* Get prompt response */
250
+ getPromptResponse?: () => Data
251
+ /* Request prompt error */
252
+ getPromptError?: () => Data
253
+ /* Last error */
254
+ lastError?: () => Data
255
+ }
256
+ }
257
+
258
+ /* Model Context Protocol (MCP) Client, support SSE and Generator MCPServer direct link */
259
+ export type GeneratorMCP = Generator &
260
+ GeneratorMCPDef & {
261
+ templateKey: 'GENERATOR_MCP'
262
+ switches: Array<
263
+ SwitchDef &
264
+ GeneratorMCPDef & {
265
+ conds?: Array<{
266
+ method: '==' | '!=' | '>' | '<' | '>=' | '<='
267
+ cond:
268
+ | SwitchCondInnerStateCurrentCanvas
269
+ | SwitchCondData
270
+ | {
271
+ __typename: 'SwitchCondInnerStateOutlet'
272
+ outlet:
273
+ | 'connectionState'
274
+ | 'listResourcesResponse'
275
+ | 'listResourcesError'
276
+ | 'listResourceTemplatesResponse'
277
+ | 'listResourceTemplatesError'
278
+ | 'readResourceResponse'
279
+ | 'readResourceError'
280
+ | 'listToolsResponse'
281
+ | 'listToolsError'
282
+ | 'callToolResponse'
283
+ | 'callToolError'
284
+ | 'listPromptsResponse'
285
+ | 'listPromptsError'
286
+ | 'getPromptResponse'
287
+ | 'getPromptError'
288
+ | 'lastError'
289
+ value: any
290
+ }
291
+ }>
292
+ }
293
+ >
294
+ }
@@ -0,0 +1,245 @@
1
+ import type { SwitchCondInnerStateCurrentCanvas, SwitchCondData, SwitchDef } from '../switch'
2
+ import type { Data, DataLink } from '../data'
3
+ import type {
4
+ Generator,
5
+ EventAction,
6
+ ActionWithDataParams,
7
+ ActionWithParams,
8
+ Action,
9
+ EventProperty,
10
+ } from '../common'
11
+
12
+ /* Refresh tools and resources, used for case if tools or resources are changed. Note that the current connections will be closed. */
13
+ export type GeneratorMCPServerActionRefreshResources = Action & {
14
+ __actionName: 'GENERATOR_MCP_SERVER_REFRESH_RESOURCES'
15
+ }
16
+
17
+ interface GeneratorMCPServerDef {
18
+ /*
19
+ Default property:
20
+ {
21
+ "enabled": true,
22
+ "listening": true,
23
+ "authType": "none",
24
+ "name": "bricks-foundation-mcp-server-default",
25
+ "version": "1.0.0",
26
+ "resources": [],
27
+ "tools": [],
28
+ "prompts": []
29
+ }
30
+ */
31
+ property?: {
32
+ /* Enable MCP server. If enabled and Listening is false, the generator can still provide application-scoped resources. */
33
+ enabled?: boolean | DataLink
34
+ /* Application-scoped generator key, key cannot be the same with other application-scoped generators */
35
+ globalGeneratorKey?: string | DataLink
36
+ /* Start MCP server */
37
+ listening?: boolean | DataLink
38
+ /* HTTP server port */
39
+ port?: number | DataLink
40
+ /* Authorization type of HTTP request */
41
+ authType?: 'none' | 'bearer' | DataLink
42
+ /* Token of bearer auth */
43
+ bearerToken?: string | DataLink
44
+ /* Name of the MCP server */
45
+ name?: string | DataLink
46
+ /* Version of the MCP server */
47
+ version?: string | DataLink
48
+ /* Resources
49
+ Type:
50
+ `static`: Return static data
51
+ `detect-data-change`: Watch data target change to return data,
52
+ please update data with ({ id: string, content: string | object }),
53
+ and ensure the id is same with request id
54
+ `script`: Run a JavaScript code to return data
55
+ - Script can define members to call generator functions
56
+ - Script support async/await */
57
+ resources?:
58
+ | Array<
59
+ | DataLink
60
+ | {
61
+ enabled?: boolean | DataLink
62
+ name?: string | DataLink
63
+ description?: string | DataLink
64
+ uriOrTemplate?: string | DataLink
65
+ type?: 'static' | 'detect-data-change' | 'script' | DataLink
66
+ staticData?: any
67
+ dataChangeConfig?:
68
+ | DataLink
69
+ | {
70
+ target?: string | DataLink
71
+ timeout?: number | DataLink
72
+ additionalParams?: {} | DataLink
73
+ }
74
+ scriptConfig?:
75
+ | DataLink
76
+ | {
77
+ code?: string | DataLink
78
+ timeout?: number | DataLink
79
+ members?:
80
+ | Array<
81
+ | DataLink
82
+ | {
83
+ handler?: string | DataLink
84
+ varName?: string | DataLink
85
+ }
86
+ >
87
+ | DataLink
88
+ additionalParams?: {} | DataLink
89
+ }
90
+ }
91
+ >
92
+ | DataLink
93
+ /* Tools
94
+ Type:
95
+ `static`: Return static data
96
+ `detect-data-change`: Watch data target change to return data,
97
+ please update data with ({ id: string, content: string | object }),
98
+ and ensure the id is same with request id.
99
+ `script`: Run a JavaScript code to return data
100
+ - Script can define members to call generator functions
101
+ - Script support async/await */
102
+ tools?:
103
+ | Array<
104
+ | DataLink
105
+ | {
106
+ enabled?: boolean | DataLink
107
+ name?: string | DataLink
108
+ description?: string | DataLink
109
+ params?: {} | DataLink
110
+ type?: 'static' | 'detect-data-change' | 'script' | DataLink
111
+ staticData?: any
112
+ dataChangeConfig?:
113
+ | DataLink
114
+ | {
115
+ target?: string | DataLink
116
+ timeout?: number | DataLink
117
+ additionalParams?: {} | DataLink
118
+ }
119
+ scriptConfig?:
120
+ | DataLink
121
+ | {
122
+ code?: string | DataLink
123
+ timeout?: number | DataLink
124
+ members?:
125
+ | Array<
126
+ | DataLink
127
+ | {
128
+ handler?: string | DataLink
129
+ varName?: string | DataLink
130
+ }
131
+ >
132
+ | DataLink
133
+ additionalParams?: {} | DataLink
134
+ }
135
+ }
136
+ >
137
+ | DataLink
138
+ /* Prompts
139
+ Type:
140
+ `static`: Return static data
141
+ `detect-data-change`: Watch data target change to return data,
142
+ please update data with ({ id: string, content: string | object }),
143
+ and ensure the id is same with request id
144
+ `script`: Run a JavaScript code to return data
145
+ - Script can define members to call generator functions
146
+ - Script support async/await */
147
+ prompts?:
148
+ | Array<
149
+ | DataLink
150
+ | {
151
+ enabled?: boolean | DataLink
152
+ name?: string | DataLink
153
+ description?: string | DataLink
154
+ arguments?: {} | DataLink
155
+ type?: 'static' | 'detect-data-change' | 'script' | DataLink
156
+ staticData?: any
157
+ dataChangeConfig?:
158
+ | DataLink
159
+ | {
160
+ target?: string | DataLink
161
+ timeout?: number | DataLink
162
+ additionalParams?: {} | DataLink
163
+ }
164
+ scriptConfig?:
165
+ | DataLink
166
+ | {
167
+ code?: string | DataLink
168
+ timeout?: number | DataLink
169
+ members?:
170
+ | Array<
171
+ | DataLink
172
+ | {
173
+ handler?: string | DataLink
174
+ varName?: string | DataLink
175
+ }
176
+ >
177
+ | DataLink
178
+ additionalParams?: {} | DataLink
179
+ }
180
+ }
181
+ >
182
+ | DataLink
183
+ }
184
+ events?: {
185
+ /* Listening of HTTP server */
186
+ onListening?: Array<EventAction>
187
+ /* Error of HTTP server */
188
+ onError?: Array<EventAction>
189
+ /* Client error of HTTP server */
190
+ onClientError?: Array<EventAction>
191
+ /* Client close of HTTP server */
192
+ onClientClose?: Array<EventAction>
193
+ /* On request resource (Request: { name: string, uri: string, params: object }) */
194
+ onRequestResource?: Array<EventAction>
195
+ /* On call tool (Request: { name: string, params: object }) */
196
+ onCallTool?: Array<EventAction>
197
+ /* On get prompt (Request: { name: string, arguments: object }) */
198
+ onGetPrompt?: Array<EventAction>
199
+ }
200
+ outlets?: {
201
+ /* Whether the HTTP server is listening */
202
+ isListening?: () => Data
203
+ /* Last error of HTTP server */
204
+ lastError?: () => Data
205
+ /* MCP server endpoint URL */
206
+ endpoint?: () => Data
207
+ /* Connected remotes (Session ID) */
208
+ connectedRemotes?: () => Data
209
+ /* Last resource request ({ name: string, uri: string, params: object }) */
210
+ lastResourceRequest?: () => Data
211
+ /* Last tool call ({ name: string, params: object }) */
212
+ lastToolCall?: () => Data
213
+ /* Last prompt get ({ name: string, arguments: object }) */
214
+ lastPromptGet?: () => Data
215
+ }
216
+ }
217
+
218
+ /* Model Context Protocol (MCP) Server (https://docs.anthropic.com/en/docs/agents-and-tools/mcp) */
219
+ export type GeneratorMCPServer = Generator &
220
+ GeneratorMCPServerDef & {
221
+ templateKey: 'GENERATOR_MCP_SERVER'
222
+ switches: Array<
223
+ SwitchDef &
224
+ GeneratorMCPServerDef & {
225
+ conds?: Array<{
226
+ method: '==' | '!=' | '>' | '<' | '>=' | '<='
227
+ cond:
228
+ | SwitchCondInnerStateCurrentCanvas
229
+ | SwitchCondData
230
+ | {
231
+ __typename: 'SwitchCondInnerStateOutlet'
232
+ outlet:
233
+ | 'isListening'
234
+ | 'lastError'
235
+ | 'endpoint'
236
+ | 'connectedRemotes'
237
+ | 'lastResourceRequest'
238
+ | 'lastToolCall'
239
+ | 'lastPromptGet'
240
+ value: any
241
+ }
242
+ }>
243
+ }
244
+ >
245
+ }
@@ -0,0 +1,121 @@
1
+ import type { SwitchCondInnerStateCurrentCanvas, SwitchCondData, SwitchDef } from '../switch'
2
+ import type { Data, DataLink } from '../data'
3
+ import type {
4
+ Generator,
5
+ EventAction,
6
+ ActionWithDataParams,
7
+ ActionWithParams,
8
+ Action,
9
+ EventProperty,
10
+ } from '../common'
11
+
12
+ /* Start MQTT broker server */
13
+ export type GeneratorMQTTBrokerActionStart = Action & {
14
+ __actionName: 'GENERATOR_MQTT_BROKER_START'
15
+ }
16
+
17
+ /* Publish message to topic */
18
+ export type GeneratorMQTTBrokerActionPublish = ActionWithParams & {
19
+ __actionName: 'GENERATOR_MQTT_BROKER_PUBLISH'
20
+ params?: Array<
21
+ | {
22
+ input: 'topic'
23
+ value?: string | DataLink | EventProperty
24
+ mapping?: string
25
+ }
26
+ | {
27
+ input: 'payload'
28
+ value?: string | DataLink | EventProperty
29
+ mapping?: string
30
+ }
31
+ | {
32
+ input: 'messageId'
33
+ value?: number | DataLink | EventProperty
34
+ mapping?: string
35
+ }
36
+ >
37
+ }
38
+
39
+ /* Stop MQTT broker server */
40
+ export type GeneratorMQTTBrokerActionStop = Action & {
41
+ __actionName: 'GENERATOR_MQTT_BROKER_STOP'
42
+ }
43
+
44
+ interface GeneratorMQTTBrokerDef {
45
+ /*
46
+ Default property:
47
+ {
48
+ "init": false,
49
+ "port": 1883,
50
+ "retryInterval": 5,
51
+ "keepalive": 60,
52
+ "authenticate": false
53
+ }
54
+ */
55
+ property?: {
56
+ /* Start MQTT broker on generator initialized */
57
+ init?: boolean | DataLink
58
+ /* Bind port of MQTT server */
59
+ port?: number | DataLink
60
+ /* Retry interval when publish failed */
61
+ retryInterval?: number | DataLink
62
+ /* Keep-alive interval */
63
+ keepalive?: number | DataLink
64
+ /* Enable authentication */
65
+ authenticate?: boolean | DataLink
66
+ /* Authentication table */
67
+ authTable?:
68
+ | Array<
69
+ | DataLink
70
+ | {
71
+ username?: string | DataLink
72
+ password?: string | DataLink
73
+ }
74
+ >
75
+ | DataLink
76
+ }
77
+ events?: {
78
+ /* Event of MQTT server is ready */
79
+ onReady?: Array<EventAction>
80
+ /* Event of server or connection error */
81
+ onError?: Array<EventAction>
82
+ /* Event of client connected */
83
+ onClientConnected?: Array<EventAction>
84
+ /* Event of client disconnected */
85
+ onClientDisconnected?: Array<EventAction>
86
+ /* Event of message received */
87
+ onMessageReceived?: Array<EventAction>
88
+ /* Event of message published */
89
+ onMessagePublished?: Array<EventAction>
90
+ }
91
+ outlets?: {
92
+ /* Is server started */
93
+ started?: () => Data
94
+ /* Last received message */
95
+ lastMessage?: () => Data
96
+ /* Error message */
97
+ errorMessage?: () => Data
98
+ }
99
+ }
100
+
101
+ /* MQTT Broker server */
102
+ export type GeneratorMQTTBroker = Generator &
103
+ GeneratorMQTTBrokerDef & {
104
+ templateKey: 'GENERATOR_MQTT_BROKER'
105
+ switches: Array<
106
+ SwitchDef &
107
+ GeneratorMQTTBrokerDef & {
108
+ conds?: Array<{
109
+ method: '==' | '!=' | '>' | '<' | '>=' | '<='
110
+ cond:
111
+ | SwitchCondInnerStateCurrentCanvas
112
+ | SwitchCondData
113
+ | {
114
+ __typename: 'SwitchCondInnerStateOutlet'
115
+ outlet: 'started' | 'lastMessage' | 'errorMessage'
116
+ value: any
117
+ }
118
+ }>
119
+ }
120
+ >
121
+ }