@lowdefy/docs-content 0.0.0-experimental-20260710073520

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 (304) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +20 -0
  3. package/content/actions/callapi.md +66 -0
  4. package/content/actions/callmethod.md +41 -0
  5. package/content/actions/copytoclipboard.md +32 -0
  6. package/content/actions/displaymessage.md +53 -0
  7. package/content/actions/downloadcsv.md +89 -0
  8. package/content/actions/fetch.md +50 -0
  9. package/content/actions/geolocationcurrentposition.md +56 -0
  10. package/content/actions/link.md +104 -0
  11. package/content/actions/login.md +85 -0
  12. package/content/actions/logout.md +56 -0
  13. package/content/actions/pdfmake.md +304 -0
  14. package/content/actions/request.md +67 -0
  15. package/content/actions/reset.md +27 -0
  16. package/content/actions/resetvalidation.md +85 -0
  17. package/content/actions/scrollto.md +85 -0
  18. package/content/actions/setdarkmode.md +62 -0
  19. package/content/actions/setfocus.md +33 -0
  20. package/content/actions/setglobal.md +63 -0
  21. package/content/actions/setlocale.md +69 -0
  22. package/content/actions/setstate.md +70 -0
  23. package/content/actions/throw.md +72 -0
  24. package/content/actions/validate.md +87 -0
  25. package/content/actions/wait.md +24 -0
  26. package/content/agents/agent-endpoint-tools.md +190 -0
  27. package/content/agents/agent-mcp-tools.md +124 -0
  28. package/content/agents/agent-multi-agent.md +136 -0
  29. package/content/agents/agent-properties.md +174 -0
  30. package/content/agents/agent-server-hooks.md +336 -0
  31. package/content/agents/agentchat.md +515 -0
  32. package/content/agents/agentconversations.md +148 -0
  33. package/content/concepts/ai-agent-docs.md +190 -0
  34. package/content/concepts/cli.md +213 -0
  35. package/content/concepts/connections-and-requests.md +7 -0
  36. package/content/concepts/custom-html.md +3 -0
  37. package/content/concepts/custom-styling.md +161 -0
  38. package/content/concepts/events-and-actions.md +271 -0
  39. package/content/concepts/hosting-files.md +18 -0
  40. package/content/concepts/i18n.md +320 -0
  41. package/content/concepts/keyboard-shortcuts.md +218 -0
  42. package/content/concepts/layout-overview.md +478 -0
  43. package/content/concepts/lists.md +144 -0
  44. package/content/concepts/logger.md +43 -0
  45. package/content/concepts/lowdefy-schema.md +365 -0
  46. package/content/concepts/menus.md +144 -0
  47. package/content/concepts/module-authoring.md +564 -0
  48. package/content/concepts/modules.md +338 -0
  49. package/content/concepts/operators.md +45 -0
  50. package/content/concepts/overview.md +19 -0
  51. package/content/concepts/references-and-templates.md +207 -0
  52. package/content/concepts/secrets.md +24 -0
  53. package/content/concepts/selectors.md +143 -0
  54. package/content/connections/amazonredshift.md +176 -0
  55. package/content/connections/anthropic.md +232 -0
  56. package/content/connections/awss3.md +313 -0
  57. package/content/connections/azureblobstorage.md +133 -0
  58. package/content/connections/elasticsearch.md +371 -0
  59. package/content/connections/google.md +228 -0
  60. package/content/connections/googlecloudstorage.md +139 -0
  61. package/content/connections/googlesheet.md +313 -0
  62. package/content/connections/knex.md +206 -0
  63. package/content/connections/mariadb.md +177 -0
  64. package/content/connections/mcp.md +134 -0
  65. package/content/connections/mongodb.md +739 -0
  66. package/content/connections/mssql.md +191 -0
  67. package/content/connections/mysql.md +192 -0
  68. package/content/connections/openai-connection.md +228 -0
  69. package/content/connections/postgresql.md +200 -0
  70. package/content/connections/redis.md +116 -0
  71. package/content/connections/sendgridmail.md +94 -0
  72. package/content/connections/smtp.md +149 -0
  73. package/content/connections/sqlite.md +187 -0
  74. package/content/connections/stripe.md +115 -0
  75. package/content/container-blocks/affix.md +413 -0
  76. package/content/container-blocks/alert.md +937 -0
  77. package/content/container-blocks/badge.md +1222 -0
  78. package/content/container-blocks/box.md +1453 -0
  79. package/content/container-blocks/card.md +1200 -0
  80. package/content/container-blocks/carousel.md +2247 -0
  81. package/content/container-blocks/collapse.md +1335 -0
  82. package/content/container-blocks/configprovider.md +1070 -0
  83. package/content/container-blocks/confirmmodal.md +1159 -0
  84. package/content/container-blocks/content.md +597 -0
  85. package/content/container-blocks/descriptions.md +870 -0
  86. package/content/container-blocks/drawer.md +1379 -0
  87. package/content/container-blocks/dropdownmenu.md +643 -0
  88. package/content/container-blocks/flex.md +1510 -0
  89. package/content/container-blocks/footer.md +380 -0
  90. package/content/container-blocks/googlemaps.md +546 -0
  91. package/content/container-blocks/googlemapsheatmap.md +607 -0
  92. package/content/container-blocks/googlemapsscript.md +61 -0
  93. package/content/container-blocks/header.md +302 -0
  94. package/content/container-blocks/label.md +739 -0
  95. package/content/container-blocks/layout.md +604 -0
  96. package/content/container-blocks/masonry.md +1090 -0
  97. package/content/container-blocks/mobilemenu.md +1244 -0
  98. package/content/container-blocks/modal.md +1180 -0
  99. package/content/container-blocks/pageheadermenu.md +614 -0
  100. package/content/container-blocks/pagesidebarlayout.md +438 -0
  101. package/content/container-blocks/pagesidermenu.md +651 -0
  102. package/content/container-blocks/popover.md +1421 -0
  103. package/content/container-blocks/result.md +972 -0
  104. package/content/container-blocks/sider.md +1064 -0
  105. package/content/container-blocks/span.md +747 -0
  106. package/content/container-blocks/spinner.md +267 -0
  107. package/content/container-blocks/splitter.md +1735 -0
  108. package/content/container-blocks/tabs.md +1718 -0
  109. package/content/container-blocks/tooltip.md +1274 -0
  110. package/content/container-blocks/watermark.md +515 -0
  111. package/content/controls/for.md +103 -0
  112. package/content/controls/if.md +107 -0
  113. package/content/controls/log.md +50 -0
  114. package/content/controls/parallel.md +71 -0
  115. package/content/controls/parallel_for.md +36 -0
  116. package/content/controls/reject.md +56 -0
  117. package/content/controls/return.md +66 -0
  118. package/content/controls/set_state.md +98 -0
  119. package/content/controls/switch.md +90 -0
  120. package/content/controls/throw.md +79 -0
  121. package/content/controls/try.md +88 -0
  122. package/content/deployment/docker.md +149 -0
  123. package/content/deployment/node-server.md +27 -0
  124. package/content/deployment/vercel.md +101 -0
  125. package/content/display-blocks/aggrid.md +1459 -0
  126. package/content/display-blocks/anchor.md +336 -0
  127. package/content/display-blocks/avatar.md +1154 -0
  128. package/content/display-blocks/breadcrumb.md +517 -0
  129. package/content/display-blocks/button.md +758 -0
  130. package/content/display-blocks/calendar.md +156 -0
  131. package/content/display-blocks/dangeroushtml.md +314 -0
  132. package/content/display-blocks/dangerousmarkdown.md +423 -0
  133. package/content/display-blocks/diffgit.md +44 -0
  134. package/content/display-blocks/difflist.md +225 -0
  135. package/content/display-blocks/diffsidebyside.md +56 -0
  136. package/content/display-blocks/difftimeline.md +94 -0
  137. package/content/display-blocks/divider.md +406 -0
  138. package/content/display-blocks/download.md +60 -0
  139. package/content/display-blocks/dropdownbutton.md +661 -0
  140. package/content/display-blocks/echart.md +418 -0
  141. package/content/display-blocks/floatbutton.md +545 -0
  142. package/content/display-blocks/html.md +311 -0
  143. package/content/display-blocks/icon.md +717 -0
  144. package/content/display-blocks/img.md +479 -0
  145. package/content/display-blocks/markdown.md +520 -0
  146. package/content/display-blocks/markdownwithcode.md +730 -0
  147. package/content/display-blocks/menu.md +1123 -0
  148. package/content/display-blocks/message.md +941 -0
  149. package/content/display-blocks/notification.md +1410 -0
  150. package/content/display-blocks/paragraph.md +643 -0
  151. package/content/display-blocks/progress.md +818 -0
  152. package/content/display-blocks/qrcode.md +519 -0
  153. package/content/display-blocks/s3download.md +240 -0
  154. package/content/display-blocks/search.md +360 -0
  155. package/content/display-blocks/skeleton.md +272 -0
  156. package/content/display-blocks/skeletonavatar.md +222 -0
  157. package/content/display-blocks/skeletonbutton.md +245 -0
  158. package/content/display-blocks/skeletoninput.md +223 -0
  159. package/content/display-blocks/skeletonparagraph.md +201 -0
  160. package/content/display-blocks/statistic.md +485 -0
  161. package/content/display-blocks/steps.md +585 -0
  162. package/content/display-blocks/tag.md +620 -0
  163. package/content/display-blocks/title.md +654 -0
  164. package/content/display-blocks/tour.md +2359 -0
  165. package/content/input-blocks/autocomplete.md +786 -0
  166. package/content/input-blocks/buttonselector.md +964 -0
  167. package/content/input-blocks/checkboxselector.md +765 -0
  168. package/content/input-blocks/checkboxswitch.md +497 -0
  169. package/content/input-blocks/colorselector.md +884 -0
  170. package/content/input-blocks/daterangeselector.md +777 -0
  171. package/content/input-blocks/dateselector.md +693 -0
  172. package/content/input-blocks/datetimeselector.md +791 -0
  173. package/content/input-blocks/inputgallery.md +528 -0
  174. package/content/input-blocks/monthselector.md +717 -0
  175. package/content/input-blocks/multipleselector.md +1337 -0
  176. package/content/input-blocks/numberinput.md +855 -0
  177. package/content/input-blocks/pagination.md +679 -0
  178. package/content/input-blocks/paragraphinput.md +1664 -0
  179. package/content/input-blocks/passwordinput.md +480 -0
  180. package/content/input-blocks/phonenumberinput.md +688 -0
  181. package/content/input-blocks/radioselector.md +820 -0
  182. package/content/input-blocks/ratingslider.md +684 -0
  183. package/content/input-blocks/s3uploadbutton.md +384 -0
  184. package/content/input-blocks/s3uploaddragger.md +305 -0
  185. package/content/input-blocks/s3uploadphoto.md +288 -0
  186. package/content/input-blocks/segmentedselector.md +782 -0
  187. package/content/input-blocks/selector.md +1162 -0
  188. package/content/input-blocks/switch.md +552 -0
  189. package/content/input-blocks/textarea.md +714 -0
  190. package/content/input-blocks/textinput.md +639 -0
  191. package/content/input-blocks/tiptapinput.md +226 -0
  192. package/content/input-blocks/tiptapmentioninput.md +471 -0
  193. package/content/input-blocks/titleinput.md +1094 -0
  194. package/content/input-blocks/treeinput.md +144 -0
  195. package/content/input-blocks/treemultipleselector.md +162 -0
  196. package/content/input-blocks/treeselector.md +185 -0
  197. package/content/input-blocks/upload.md +149 -0
  198. package/content/input-blocks/uploaddragger.md +85 -0
  199. package/content/input-blocks/uploadphoto.md +84 -0
  200. package/content/input-blocks/weekselector.md +630 -0
  201. package/content/list-blocks/controlledlist.md +498 -0
  202. package/content/list-blocks/list.md +529 -0
  203. package/content/list-blocks/listselector.md +301 -0
  204. package/content/list-blocks/masonrylist.md +230 -0
  205. package/content/migration/upgrade-guide.md +106 -0
  206. package/content/migration/v4-to-v5.md +589 -0
  207. package/content/migration/v5-to-v6.md +36 -0
  208. package/content/operators/_actions.md +58 -0
  209. package/content/operators/_and.md +76 -0
  210. package/content/operators/_api.md +254 -0
  211. package/content/operators/_app.md +114 -0
  212. package/content/operators/_args.md +65 -0
  213. package/content/operators/_array.md +331 -0
  214. package/content/operators/_base64.md +49 -0
  215. package/content/operators/_boolean.md +33 -0
  216. package/content/operators/_build.md +166 -0
  217. package/content/operators/_change_case.md +357 -0
  218. package/content/operators/_date.md +415 -0
  219. package/content/operators/_dayjs.md +128 -0
  220. package/content/operators/_diff.md +61 -0
  221. package/content/operators/_divide.md +32 -0
  222. package/content/operators/_eq.md +52 -0
  223. package/content/operators/_event.md +86 -0
  224. package/content/operators/_function.md +52 -0
  225. package/content/operators/_get.md +92 -0
  226. package/content/operators/_global.md +86 -0
  227. package/content/operators/_gt.md +50 -0
  228. package/content/operators/_gte.md +50 -0
  229. package/content/operators/_hash.md +112 -0
  230. package/content/operators/_if.md +30 -0
  231. package/content/operators/_if_none.md +47 -0
  232. package/content/operators/_index.md +48 -0
  233. package/content/operators/_input.md +86 -0
  234. package/content/operators/_intl.md +135 -0
  235. package/content/operators/_item.md +166 -0
  236. package/content/operators/_js.md +113 -0
  237. package/content/operators/_json.md +120 -0
  238. package/content/operators/_jsonata.md +152 -0
  239. package/content/operators/_locale.md +65 -0
  240. package/content/operators/_location.md +40 -0
  241. package/content/operators/_log.md +22 -0
  242. package/content/operators/_lt.md +50 -0
  243. package/content/operators/_lte.md +50 -0
  244. package/content/operators/_math.md +407 -0
  245. package/content/operators/_media.md +83 -0
  246. package/content/operators/_menu.md +62 -0
  247. package/content/operators/_module.md +340 -0
  248. package/content/operators/_mql.md +95 -0
  249. package/content/operators/_ne.md +62 -0
  250. package/content/operators/_not.md +33 -0
  251. package/content/operators/_number.md +159 -0
  252. package/content/operators/_nunjucks.md +117 -0
  253. package/content/operators/_object.md +253 -0
  254. package/content/operators/_operator.md +33 -0
  255. package/content/operators/_or.md +67 -0
  256. package/content/operators/_product.md +45 -0
  257. package/content/operators/_random.md +90 -0
  258. package/content/operators/_ref.md +80 -0
  259. package/content/operators/_regex.md +69 -0
  260. package/content/operators/_request.md +35 -0
  261. package/content/operators/_request_details.md +29 -0
  262. package/content/operators/_secret.md +56 -0
  263. package/content/operators/_state.md +134 -0
  264. package/content/operators/_step.md +98 -0
  265. package/content/operators/_string.md +327 -0
  266. package/content/operators/_subtract.md +24 -0
  267. package/content/operators/_sum.md +45 -0
  268. package/content/operators/_switch.md +37 -0
  269. package/content/operators/_t.md +96 -0
  270. package/content/operators/_theme.md +65 -0
  271. package/content/operators/_type.md +78 -0
  272. package/content/operators/_uri.md +49 -0
  273. package/content/operators/_url_query.md +92 -0
  274. package/content/operators/_user.md +154 -0
  275. package/content/operators/_uuid.md +118 -0
  276. package/content/operators/_var.md +88 -0
  277. package/content/operators/_yaml.md +96 -0
  278. package/content/other/introduction.md +39 -0
  279. package/content/other/next-auth-providers.md +3 -0
  280. package/content/other/updatesession.md +26 -0
  281. package/content/plugins/plugins-actions.md +80 -0
  282. package/content/plugins/plugins-connections.md +98 -0
  283. package/content/plugins/plugins-dev.md +138 -0
  284. package/content/plugins/plugins-introduction.md +29 -0
  285. package/content/plugins/plugins-operators.md +71 -0
  286. package/content/testing/e2e-auth.md +108 -0
  287. package/content/testing/e2e-configuration.md +107 -0
  288. package/content/testing/e2e-getting-started.md +96 -0
  289. package/content/testing/e2e-introduction.md +53 -0
  290. package/content/testing/e2e-mocking.md +155 -0
  291. package/content/testing/e2e-writing-tests.md +214 -0
  292. package/content/tutorial/tutorial-actions-operators.md +222 -0
  293. package/content/tutorial/tutorial-add-blocks.md +86 -0
  294. package/content/tutorial/tutorial-create-page.md +57 -0
  295. package/content/tutorial/tutorial-display-data-page.md +181 -0
  296. package/content/tutorial/tutorial-next-steps.md +53 -0
  297. package/content/tutorial/tutorial-requests-sql.md +22 -0
  298. package/content/tutorial/tutorial-start.md +71 -0
  299. package/content/user-authentication/auth-providers.md +15 -0
  300. package/content/user-authentication/login-and-logout.md +122 -0
  301. package/content/user-authentication/users-introduction.md +31 -0
  302. package/index.json +2281 -0
  303. package/package.json +34 -0
  304. package/scripts/extractAgentDocs.js +130 -0
@@ -0,0 +1,69 @@
1
+ # _regex
2
+
3
+ ```
4
+ (pattern: string): boolean
5
+ (arguments: {
6
+ pattern: string,
7
+ on?: string,
8
+ key?: string,
9
+ flags?: string
10
+ }): boolean
11
+ ```
12
+
13
+ The `_regex` operator performs a regex test on a string, and returns `true` if there is a match.
14
+
15
+ The regex operator has shorthand argument definitions that can be used on web client.
16
+
17
+ > This operator can be used as a [`_build`](/_build) operator method.
18
+
19
+ #### Arguments
20
+
21
+ ###### object
22
+ - `pattern: string`: __Required__ - The regular expression pattern to test.
23
+ - `on: string`: The string to test the value on. One of `on` or `key` must be specified unless the operator is used in an input block.
24
+ - `key: string`: The key of a value in `state` to test. One of `on` or `key` must be specified unless the operator is used in an input block.
25
+ - `flags: string`: The regex flags to use. The default value is `"gm"`.
26
+
27
+ ###### string
28
+ The regular expression pattern to test. The string shorthand can only be used in an input block, and the tested value will be the block's value.
29
+
30
+ #### Examples
31
+
32
+ ###### Check if a username is valid (Alphanumeric string that may include _ and – having a length of 3 to 16 characters):
33
+ ```yaml
34
+ _regex:
35
+ pattern: ^[a-z0-9_-]{3,16}$
36
+ on:
37
+ _state: username_input
38
+ ```
39
+ Returns: `true` if matched else `false`.
40
+
41
+ ###### Using the key of the value in `state`:
42
+ ```yaml
43
+ _regex:
44
+ pattern: ^[a-z0-9_-]{3,16}$
45
+ key: username_input
46
+ ```
47
+ Returns: `true` if matched else `false`.
48
+
49
+ ###### Using the value of the block in which the operator is evaluated:
50
+ ```yaml
51
+ id: username_input
52
+ type: TextInput
53
+ validate:
54
+ - message: Invalid username.
55
+ status: error
56
+ pass:
57
+ _regex: ^[a-z0-9_-]{3,16}$
58
+ ```
59
+ Returns: `true` if matched else `false`.
60
+
61
+ ###### Case insensitive match:
62
+ ```yaml
63
+ _regex:
64
+ pattern: ^[a-z0-9_-]{3,16}$
65
+ on:
66
+ _state: username_input
67
+ flags: 'gmi'
68
+ ```
69
+ Returns: `true` if matched else `false`.
@@ -0,0 +1,35 @@
1
+ # _request
2
+
3
+ ```
4
+ (requestId: string): any
5
+ ```
6
+
7
+ The `_request` operator returns the response value of a request. If the request has not yet been called, or is still executing, the returned value is `null`. Dot notation and [block list indexes](/lists) are supported. For more detailed information about a request, the [_request_details](/_request_details) operator can be used.
8
+
9
+ If the request was called via the [`Request`](/Request) action with `holdValue: true`, `_request` returns the previous response while the new request is loading instead of returning `null`. Use `_request_details: <id>.loading` to detect that a new call is still in-flight, and `_request_details: <id>.error` to detect a failure.
10
+
11
+ #### Arguments
12
+
13
+ ###### string
14
+ The id of the request.
15
+
16
+ #### Examples
17
+
18
+ ###### Using a request response:
19
+ ```yaml
20
+ _request: my_request
21
+ ```
22
+ Returns: The response returned by the request.
23
+
24
+ ###### Using dot notation to get the data object from the response:
25
+ ```yaml
26
+ _request: my_request.data
27
+ ```
28
+ ###### Using dot notation to get the first element of an array response:
29
+ ```yaml
30
+ _request: array_request.0
31
+ ```
32
+ ###### Using dot notation and block list indexes to get the name field from the element corresponding to the block index of an array response:
33
+ ```yaml
34
+ _request: array_request.$.name
35
+ ```
@@ -0,0 +1,29 @@
1
+ # _request_details
2
+
3
+ ```
4
+ (requestId: string): any
5
+ ```
6
+
7
+ The `_request_details` operator returns detailed information of a request. If the request has not yet been called, the returned value is `null`.
8
+
9
+ The response includes the following fields:
10
+
11
+ - `blockId: string`: The id of the block from which the request was initiated.
12
+ - `loading: boolean`: When `true`, the request is awaiting a response.
13
+ - `payload: object`: The payload sent with the request.
14
+ - `requestId: string`: The id of the request.
15
+ - `response: object`: The response returned by the request. `null` while `loading` is true.
16
+ - `responseTime: number`: The time taken to get the response in milliseconds.
17
+
18
+ #### Arguments
19
+
20
+ ###### string
21
+ The id of the request.
22
+
23
+ #### Examples
24
+
25
+ ###### Using a request id:
26
+ ```yaml
27
+ _request_details: my_request
28
+ ```
29
+ Returns: The details of the specified request.
@@ -0,0 +1,56 @@
1
+ # _secret
2
+
3
+ ```
4
+ (key: string): any
5
+ (all: boolean): any
6
+ (arguments: {
7
+ all?: boolean,
8
+ key?: string,
9
+ default?: any
10
+ }): any
11
+ ```
12
+
13
+ The `_secret` operator gets a value from the [`secret`](/context-and-secret) object. The `secrets` is a data object that contains sensitive information like passwords or API keys. The `_secret` operator can only be used in `connections` and `requests`. Secrets are read from environment variables on the server that start with `LOWDEFY_SECRET_`, (i.e. `LOWDEFY_SECRET_SECRET_NAME`). The name of the secret is the part after `LOWDEFY_SECRET_`. Since environment variables can only be strings, secrets can be JSON encoded, and parsed using the [`_json.parse`](/_json) method.
14
+
15
+ #### Arguments
16
+
17
+ ###### string
18
+ If the `_secret` operator is called with a string argument, the value of the key in the `secrets` object is returned. If the value is not found, `null` is returned.
19
+
20
+ ###### boolean
21
+ If the `_secret` operator is called with boolean argument `true`, the entire `secrets` object is returned.
22
+
23
+ ###### object
24
+ - `all: boolean`: If `all` is set to `true`, the entire `secrets` object is returned. One of `all` or `key` are required.
25
+ - `key: string`: The value of the key in the `secrets` object is returned. If the value is not found, `null`, or the specified default value is returned. One of `all` or `key` are required.
26
+ - `default: any`: A value to return if the `key` is not found in `secrets`. By default, `null` is returned if a value is not found.
27
+
28
+ #### Examples
29
+
30
+ ###### Get the value of `MY_SECRET` from `secrets`:
31
+ ```yaml
32
+ _secret: MY_SECRET
33
+ ```
34
+ ```yaml
35
+ _secret:
36
+ key: MY_SECRET
37
+ ```
38
+ Returns: The value of `MY_SECRET` in `secrets`.
39
+
40
+ ###### Get the entire `secret` object:
41
+ ```yaml
42
+ _secret: true
43
+ ```
44
+ ```yaml
45
+ _secret:
46
+ all: true
47
+ ```
48
+ Returns: The entire `secrets` object.
49
+
50
+ ###### Return a default value if the value is not found:
51
+ ```yaml
52
+ _secret:
53
+ key: MY_SECRET
54
+ default: Not so secret
55
+ ```
56
+ Returns: The value of `MY_SECRET`, or `"Not so secret"`.
@@ -0,0 +1,134 @@
1
+ # _state
2
+
3
+ ```
4
+ (key: string): any
5
+ (all: boolean): any
6
+ (arguments: {
7
+ all?: boolean,
8
+ key?: string,
9
+ default?: any,
10
+ }): any
11
+ ```
12
+
13
+ If used in a block, the `_state` operator gets a value from the [`state`](/page-and-app-state) object. The `state` is a data object specific to the page it is in. The value of `input` blocks are available in `state`, with their `blockId` as key.
14
+
15
+ If used in an API endpoint, the `_state` operator gets a value from the API endpoints state. The `state` is a data object specific to that execution of the API endpoint.
16
+
17
+ #### Arguments
18
+
19
+ ###### string
20
+ If the `_state` operator is called with a string argument, the value of the key in the `state` object is returned. If the value is not found, `null` is returned. Dot notation and [block list indexes](/lists) are supported.
21
+
22
+ ###### boolean
23
+ If the `_state` operator is called with boolean argument `true`, the entire `state` object is returned.
24
+
25
+ ###### object
26
+ - `all: boolean`: If `all` is set to `true`, the entire `state` object is returned. One of `all` or `key` are required.
27
+ - `key: string`: The value of the key in the `state` object is returned. If the value is not found, `null`, or the specified default value is returned. Dot notation and [block list indexes](/lists) are supported. One of `all` or `key` are required.
28
+ - `default: any`: A value to return if the `key` is not found in `state`. By default, `null` is returned if a value is not found.
29
+
30
+ #### Examples
31
+
32
+ ###### Get the value of `my_key` from `state`:
33
+ ```yaml
34
+ _state: my_key
35
+ ```
36
+ ```yaml
37
+ _state:
38
+ key: my_key
39
+ ```
40
+ Returns: The value of `my_key` in `state`.
41
+
42
+ ###### Get the entire `state` object:
43
+ ```yaml
44
+ _state: true
45
+ ```
46
+ ```yaml
47
+ _state:
48
+ all: true
49
+ ```
50
+ Returns: The entire `state` object.
51
+
52
+ ###### Dot notation:
53
+ Assuming state:
54
+ ```yaml
55
+ my_object:
56
+ subfield: 'Value'
57
+ ```
58
+ then:
59
+ ```yaml
60
+ _state: my_object.subfield
61
+ ```
62
+ ```yaml
63
+ _state:
64
+ key: my_object.subfield
65
+ ```
66
+ Returns: `"Value"`.
67
+
68
+ ###### Return a default value if the value is not found:
69
+ ```yaml
70
+ _state:
71
+ key: might_not_exist
72
+ default: Default value
73
+ ```
74
+ Returns: The value of `might_not_exist`, or `"Default value"`.
75
+
76
+ ###### Block list indices:
77
+ Assuming `state`:
78
+ ```yaml
79
+ my_array:
80
+ - value: 0
81
+ - value: 1
82
+ - value: 2
83
+ ```
84
+ then:
85
+ ```yaml
86
+ _state: my_array.$.value
87
+ ```
88
+ Returns: `0` when used from the first block (0th index) in a list.
89
+
90
+ ###### Using `_state` with `:set_state` in an API endpoint
91
+
92
+ ```yaml
93
+ - :set_state:
94
+ product_id:
95
+ _uuid: true
96
+ - id: insert_product
97
+ type: MongoDBInsertOne
98
+ connectionId: tickets
99
+ properties:
100
+ doc:
101
+ _id:
102
+ _state: product_id
103
+ name:
104
+ _payload: product_name
105
+ created_at:
106
+ _date: now
107
+
108
+ - id: insert_new_product_event
109
+ type: MongoDBInsertOne
110
+ connectionId: events
111
+ properties:
112
+ doc:
113
+ _id:
114
+ _uuid: true
115
+ type: new-product
116
+ description:
117
+ _nunjucks:
118
+ template: New product {{ product_name }} created by {{ user_name }}.
119
+ on:
120
+ product_name:
121
+ _payload: product_name
122
+ user_name:
123
+ _user: name
124
+ product_id:
125
+ _state: product_id
126
+ user:
127
+ id:
128
+ _user: id
129
+ name:
130
+ _user: name
131
+ timestamp:
132
+ _date: now
133
+
134
+ ```
@@ -0,0 +1,98 @@
1
+ # _step
2
+
3
+ ```
4
+ (stepId: string): any
5
+ ```
6
+
7
+ The `_step` operator returns the response value from a previously executed step in an API routine. This operator is only available within API routines and allows later steps to access data from earlier steps. If the step has not yet been executed or is still executing, the returned value is `null`. Dot notation and array indexes are supported for accessing nested properties.
8
+
9
+ #### Arguments
10
+
11
+ ###### string
12
+ The id of a step that has already been executed in the current API routine.
13
+
14
+ #### Examples
15
+
16
+ ###### Using a step response:
17
+ ```yaml
18
+ routine:
19
+ - id: get_user
20
+ type: MongoDBFindOne
21
+ connectionId: users
22
+ properties:
23
+ query:
24
+ email:
25
+ _payload: email
26
+
27
+ - :return:
28
+ _step: get_user
29
+ ```
30
+ Returns: The complete response object returned by the `get_user` step.
31
+
32
+ ###### Using dot notation to access nested properties:
33
+ ```yaml
34
+ routine:
35
+ - id: get_user
36
+ type: MongoDBFindOne
37
+ connectionId: users
38
+ properties:
39
+ query:
40
+ email:
41
+ _payload: email
42
+
43
+ - id: get_orders
44
+ type: MongoDBFind
45
+ connectionId: orders
46
+ properties:
47
+ query:
48
+ userId:
49
+ _step: get_user._id # Access the _id field from get_user
50
+ ```
51
+
52
+ ###### Using array indexes:
53
+ ```yaml
54
+ routine:
55
+ - id: get_products
56
+ type: MongoDBFind
57
+ connectionId: products
58
+ properties:
59
+ query:
60
+ category: 'electronics'
61
+
62
+ - :return:
63
+ first_product:
64
+ _step: get_products.0 # Access the first element of the array
65
+ first_product_name:
66
+ _step: get_products.0.name # Access a property of the first element
67
+ ```
68
+
69
+ ###### Chaining multiple steps:
70
+ ```yaml
71
+ routine:
72
+ - id: create_order
73
+ type: MongoDBInsertOne
74
+ connectionId: orders
75
+ properties:
76
+ doc:
77
+ items:
78
+ _payload: items
79
+ total:
80
+ _payload: total
81
+
82
+ - id: send_confirmation
83
+ type: SendGridMail
84
+ connectionId: email-service
85
+ properties:
86
+ to:
87
+ _payload: customer_email
88
+ template_data:
89
+ order_id:
90
+ _step: create_order.insertedId # Use the inserted document's ID
91
+
92
+ - :return:
93
+ success: true
94
+ order_id:
95
+ _step: create_order.insertedId
96
+ email_sent:
97
+ _step: send_confirmation.success
98
+ ```