@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,340 @@
1
+ # _module
2
+
3
+ ```
4
+ _module.var: (key: string): any
5
+ _module.pageId: (pageId: string): string
6
+ _module.pageId: (arguments: { id: string, module: string }): string
7
+ _module.connectionId: (connectionId: string): string
8
+ _module.connectionId: (arguments: { id: string, module: string }): string
9
+ _module.endpointId: (endpointId: string): string
10
+ _module.endpointId: (arguments: { id: string, module: string }): string
11
+ _module.notificationId: (notificationId: string): string
12
+ _module.notificationId: (arguments: { id: string, module: string }): string
13
+ _module.id: (true): string
14
+ _module.id: (arguments: { module: string }): string
15
+ ```
16
+
17
+ The `_module` operator family provides access to module-scoped values during the build. `_module.var` and the string forms of the ID operators only make sense inside module config files — the build throws a clear error if you use them at the app level.
18
+
19
+ The object form of `_module.pageId`, `_module.connectionId`, `_module.endpointId`, `_module.notificationId`, and `_module.id` also works at the app level, resolving by entry ID instead of a dependency name — useful for linking, calling, or labelling a specific module instance from app-level config without hardcoding the scoped ID. See each method below for an app-level example.
20
+
21
+ All `_module` operators resolve during the walker pass — the same phase as `_var` and `_ref`. Inside module files, they work at any depth.
22
+
23
+ See [Modules](/modules) for an overview of the module system.
24
+
25
+ # Operator methods:
26
+
27
+ ## _module.var
28
+
29
+ ```
30
+ (key: string): any
31
+ ```
32
+
33
+ The `_module.var` operator reads a value from the module entry's `vars`. It returns the consumer value passed in `lowdefy.yaml` if one was provided, otherwise it resolves the manifest default on read. If neither is provided (no consumer value, no declared default), the operator returns `null`.
34
+
35
+ Unlike `_var`, which requires threading variables through each `_ref`, `_module.var` works at any depth within module files. It accesses the same vars regardless of `_ref` nesting.
36
+
37
+ Defaults are declared in `module.lowdefy.yaml` and resolve on read. Defaults are expressions — they can be literals, `_ref`s, `_module.var` references to other vars, or any `_build.*` tree. See [Writing Modules → Dynamic Defaults](/module-authoring#dynamic-defaults) for patterns.
38
+
39
+ Vars with `properties` merge at the property level — only consumer-provided keys override the declared defaults, and missing properties resolve their own defaults independently.
40
+
41
+ #### Arguments
42
+
43
+ ###### string
44
+ The key in the module entry's `vars` object. Dot notation is supported for nested access (e.g., `theme.colors.primary`).
45
+
46
+ #### Examples
47
+
48
+ ###### Simple string access:
49
+ ```yaml
50
+ title:
51
+ _module.var: title
52
+ ```
53
+ If the app provides `vars: { title: "Welcome" }`, returns `"Welcome"`.
54
+
55
+ ###### Nested path access:
56
+ ```yaml
57
+ primary_color:
58
+ _module.var: theme.colors.primary
59
+ ```
60
+ Accesses nested values using dot notation. If the module manifest declares defaults via `properties`, unset values resolve to their defaults.
61
+
62
+ ## _module.pageId
63
+
64
+ ```
65
+ (pageId: string): string
66
+ (arguments: { id: string, module: string }): string
67
+ ```
68
+
69
+ Resolves a page ID to its fully scoped ID. The string form references the current module's own pages and only works inside module content.
70
+
71
+ The object form references a target by entry ID. Inside module content, `module` is the abstract dependency name declared in `module.lowdefy.yaml`. At the app level, `module` is the concrete module entry ID from `lowdefy.yaml` — useful when an app-level page needs to link to a specific module instance.
72
+
73
+ #### Arguments
74
+
75
+ ###### string
76
+ The module-local page ID (as declared in the module's page definition).
77
+
78
+ ###### object
79
+ - `id: string`: The page ID in the target module.
80
+ - `module: string`: The abstract dependency name (in module content) or the module entry ID (in app-level config).
81
+
82
+ #### Examples
83
+
84
+ ###### Link to a sibling page:
85
+ ```yaml
86
+ - id: view_details
87
+ type: Link
88
+ params:
89
+ pageId:
90
+ _module.pageId: user-edit
91
+ ```
92
+ In a module entry with `id: team-users`, resolves to `team-users/user-edit`.
93
+
94
+ ###### Link to a page in another module:
95
+ ```yaml
96
+ - id: view_contact
97
+ type: Link
98
+ params:
99
+ pageId:
100
+ _module.pageId:
101
+ id: contact-detail
102
+ module: contacts
103
+ ```
104
+ If the `contacts` dependency is wired to an entry with `id: contacts`, resolves to `contacts/contact-detail`.
105
+
106
+ ###### Link from an app page to a module page:
107
+ ```yaml
108
+ # lowdefy.yaml (app level)
109
+ pages:
110
+ - id: home
111
+ blocks:
112
+ - id: view_team
113
+ type: Link
114
+ params:
115
+ pageId:
116
+ _module.pageId:
117
+ id: users-list
118
+ module: team-users
119
+ ```
120
+ At the app level, `module` is the module entry ID. The build resolves this to `team-users/users-list` regardless of where the entry lives in your config.
121
+
122
+ ## _module.connectionId
123
+
124
+ ```
125
+ (connectionId: string): string
126
+ (arguments: { id: string, module: string }): string
127
+ ```
128
+
129
+ Resolves a connection ID to its scoped or remapped ID. The string form references the current module's connections and only works inside module content.
130
+
131
+ The object form references a target by entry ID. Inside module content, `module` is the abstract dependency name declared in `module.lowdefy.yaml`. At the app level, `module` is the concrete module entry ID from `lowdefy.yaml` — useful when an app-level request needs to reach a specific module instance's connection.
132
+
133
+ #### Arguments
134
+
135
+ ###### string
136
+ The module-local connection ID (as declared in the module's connection definition).
137
+
138
+ ###### object
139
+ - `id: string`: The connection ID in the target module.
140
+ - `module: string`: The abstract dependency name (in module content) or the module entry ID (in app-level config).
141
+
142
+ #### Examples
143
+
144
+ ###### Reference a module connection:
145
+ ```yaml
146
+ connectionId:
147
+ _module.connectionId: users-db
148
+ ```
149
+ In a module entry with `id: team-users`, resolves to `team-users/users-db`.
150
+
151
+ If the app remaps the connection (`connections: { users-db: my-app-mongodb }`), resolves to `my-app-mongodb` instead.
152
+
153
+ ###### Reference a connection in another module:
154
+ ```yaml
155
+ connectionId:
156
+ _module.connectionId:
157
+ id: contacts-db
158
+ module: contacts
159
+ ```
160
+ Resolves to the target module's scoped or remapped connection ID.
161
+
162
+ ###### Reference a module connection from an app request:
163
+ ```yaml
164
+ # lowdefy.yaml (app level)
165
+ api:
166
+ - id: get_team_users
167
+ type: Request
168
+ connectionId:
169
+ _module.connectionId:
170
+ id: users-db
171
+ module: team-users
172
+ ```
173
+ At the app level, `module` is the module entry ID. The build resolves this to the target module's scoped or remapped connection ID.
174
+
175
+ ## _module.endpointId
176
+
177
+ ```
178
+ (endpointId: string): string
179
+ (arguments: { id: string, module: string }): string
180
+ ```
181
+
182
+ Resolves an API endpoint ID to its fully scoped ID. The string form references the current module's endpoints and only works inside module content.
183
+
184
+ The object form references a target by entry ID. Inside module content, `module` is the abstract dependency name declared in `module.lowdefy.yaml`. At the app level, `module` is the concrete module entry ID from `lowdefy.yaml` — useful when an app-level page needs to call a specific module instance's API.
185
+
186
+ #### Arguments
187
+
188
+ ###### string
189
+ The module-local endpoint ID (as declared in the module's API definition).
190
+
191
+ ###### object
192
+ - `id: string`: The endpoint ID in the target module.
193
+ - `module: string`: The abstract dependency name (in module content) or the module entry ID (in app-level config).
194
+
195
+ #### Examples
196
+
197
+ ###### Call a module API endpoint:
198
+ ```yaml
199
+ - id: call_invite
200
+ type: CallAPI
201
+ params:
202
+ endpointId:
203
+ _module.endpointId: invite-user
204
+ ```
205
+ In a module entry with `id: team-users`, resolves to `team-users/invite-user`.
206
+
207
+ ###### Call an API in another module:
208
+ ```yaml
209
+ - id: log_event
210
+ type: CallAPI
211
+ params:
212
+ endpointId:
213
+ _module.endpointId:
214
+ id: log-event
215
+ module: events
216
+ ```
217
+ Resolves to the target module's scoped endpoint ID.
218
+
219
+ ###### Call a module API endpoint from an app page:
220
+ ```yaml
221
+ # lowdefy.yaml (app level)
222
+ pages:
223
+ - id: dashboard
224
+ events:
225
+ onClick:
226
+ - id: log_event
227
+ type: CallAPI
228
+ params:
229
+ endpointId:
230
+ _module.endpointId:
231
+ id: log-event
232
+ module: events
233
+ ```
234
+ At the app level, `module` is the module entry ID. The build resolves this to `events/log-event`.
235
+
236
+ ## _module.notificationId
237
+
238
+ ```
239
+ (notificationId: string): string
240
+ (arguments: { id: string, module: string }): string
241
+ ```
242
+
243
+ Resolves a notification ID to its fully scoped ID. The string form references the current module's notifications and only works inside module content.
244
+
245
+ The object form references a target by entry ID. Inside module content, `module` is the abstract dependency name declared in `module.lowdefy.yaml`. At the app level, `module` is the concrete module entry ID from `lowdefy.yaml` — useful when app-level config dispatches a notification whose template a module ships.
246
+
247
+ #### Arguments
248
+
249
+ ###### string
250
+ The module-local notification ID (as declared in the module's `notifications:` section).
251
+
252
+ ###### object
253
+ - `id: string`: The notification ID in the target module.
254
+ - `module: string`: The abstract dependency name (in module content) or the module entry ID (in app-level config).
255
+
256
+ #### Examples
257
+
258
+ ###### Render the module's own notification:
259
+ ```yaml
260
+ - id: render
261
+ type: RenderNotification
262
+ properties:
263
+ notificationId:
264
+ _module.notificationId: invite-user
265
+ data:
266
+ contact:
267
+ _payload: contact
268
+ ```
269
+ In a module entry with `id: user-admin`, resolves to `user-admin/invite-user`.
270
+
271
+ ###### Dispatch with a scoped notification id from an app page:
272
+ ```yaml
273
+ # lowdefy.yaml (app level)
274
+ params:
275
+ endpointId:
276
+ _module.endpointId:
277
+ id: dispatch-notifications
278
+ module: notifications
279
+ payload:
280
+ notification_id:
281
+ _module.notificationId:
282
+ id: invite-user
283
+ module: user-admin
284
+ ```
285
+ At the app level, `module` is the module entry ID. The build resolves this to `user-admin/invite-user`.
286
+
287
+ ## _module.id
288
+
289
+ ```
290
+ (true): string
291
+ (arguments: { module: string }): string
292
+ ```
293
+
294
+ Returns the raw module entry ID. The `true` form returns the current module's entry ID and only works inside module content.
295
+
296
+ The object form returns the entry ID of a referenced module. Inside module content, `module` is the abstract dependency name declared in `module.lowdefy.yaml`. At the app level, `module` is the concrete module entry ID from `lowdefy.yaml` — useful for templates that need a module entry ID without hardcoding it.
297
+
298
+ #### Arguments
299
+
300
+ ###### boolean
301
+ Pass `true` to return the current module entry ID.
302
+
303
+ ###### object
304
+ - `module: string`: The abstract dependency name (in module content) or the module entry ID (in app-level config).
305
+
306
+ #### Examples
307
+
308
+ ###### Use in a label:
309
+ ```yaml
310
+ label:
311
+ _string.concat:
312
+ - _module.id: true
313
+ - " - User Admin"
314
+ ```
315
+ In a module entry with `id: team-users`, returns `"team-users - User Admin"`.
316
+
317
+ ###### Get a dependency's entry ID:
318
+ ```yaml
319
+ contactsEntry:
320
+ _module.id:
321
+ module: contacts
322
+ ```
323
+ Returns the concrete entry ID that the `contacts` dependency is wired to.
324
+
325
+ ###### Reference a module entry ID at the app level:
326
+ ```yaml
327
+ # lowdefy.yaml (app level)
328
+ pages:
329
+ - id: home
330
+ blocks:
331
+ - id: status_label
332
+ type: Title
333
+ properties:
334
+ content:
335
+ _string.concat:
336
+ - 'Active module: '
337
+ - _module.id:
338
+ module: team-users
339
+ ```
340
+ At the app level, `module` is the module entry ID. Returns the entry ID verbatim — useful inside `_build.*` expressions or templates that need the entry name.
@@ -0,0 +1,95 @@
1
+ # _mql
2
+
3
+ The `_mql` operator uses the [`mingo`](https://www.npmjs.com/package/mingo) package to evaluate MongoDB query language statements as an operator.
4
+
5
+ # Operator methods:
6
+
7
+ ## _mql.aggregate
8
+
9
+ ```
10
+ ({on: object[], pipeline: object[]}): object[]
11
+ ([on: object[], pipeline: object[]]): object[]
12
+ ```
13
+
14
+ The `_mql.aggregate` method runs a MongoDB aggregation pipeline on an input array.
15
+
16
+ #### Arguments
17
+
18
+ ###### object
19
+ - `on: object[]`: The data array on which to run the pipeline. It should be an array of objects.
20
+ - `pipeline: object[]`: A MongoDB aggregation pipeline definition.
21
+
22
+ #### Examples
23
+
24
+ ###### Transform request results:
25
+ ```yaml
26
+ _mql.aggregate:
27
+ pipeline:
28
+ - $match:
29
+ age:
30
+ $gte: 18
31
+ - $addFields:
32
+ averageScore:
33
+ $avg:
34
+ - $score1
35
+ - $score2
36
+ on:
37
+ _request: my_request
38
+ ```
39
+
40
+ ## _mql.expr
41
+
42
+ ```
43
+ ({on: object, expr: any}): any
44
+ ([on: object, expr: any]): any
45
+ ```
46
+
47
+ The `_mql.expr` method evaluates a MongoDB aggregation pipeline operator expression. This is any statement that could be written in a `$project` stage.
48
+
49
+ #### Arguments
50
+
51
+ ###### object
52
+ - `on: object`: An object to take as input for the expression.
53
+ - `expr: object`: A MongoDB aggregation expression.
54
+
55
+ #### Examples
56
+
57
+ ###### Calculate an average of three inputs:
58
+ ```yaml
59
+ _mql.expr:
60
+ expr:
61
+ $avg:
62
+ - $input1
63
+ - $input2
64
+ - $input3
65
+ on:
66
+ _state: true
67
+ ```
68
+
69
+ ## _mql.test
70
+
71
+ ```
72
+ ({on: object, test: object}): boolean
73
+ ([on: object, test: object]): boolean
74
+ ```
75
+
76
+ The `_mql.test` method tests if a object matches a MongoDB filter/query expression.
77
+
78
+ #### Arguments
79
+
80
+ ###### object
81
+ - `on: object`: The object to be tested.
82
+ - `test: object`: A MongoDB filter/query expression.
83
+
84
+ #### Examples
85
+
86
+ ###### Test if a number input is greater than 100:
87
+ ```yaml
88
+ _mql.test:
89
+ test:
90
+ number_input:
91
+ $gte: 18
92
+ on:
93
+ number_input:
94
+ _state: number_input
95
+ ```
@@ -0,0 +1,62 @@
1
+ # _ne
2
+
3
+ ```
4
+ ([value1: any, value2: any]): boolean
5
+ ```
6
+
7
+ The `_ne` operator tests if two values are not equal. It takes an array of two values to test.
8
+
9
+ > The `_ne` won't do a deep comparison.
10
+
11
+ > This operator can be used as a [`_build`](/_build) operator method.
12
+
13
+ #### Arguments
14
+
15
+ ###### array
16
+ An array of two values to compare.
17
+
18
+ #### Examples
19
+
20
+ ###### Two non-equal strings:
21
+
22
+ ```yaml
23
+ _ne:
24
+ - "Hello"
25
+ - "Hello you"
26
+ ```
27
+ Returns: `true`
28
+
29
+ ###### Two equal strings:
30
+
31
+ ```yaml
32
+ _ne:
33
+ - "Hello"
34
+ - "Hello"
35
+ ```
36
+ Returns: `false`
37
+
38
+ ###### Two numbers:
39
+ ```yaml
40
+ _ne:
41
+ - _sum:
42
+ - 3
43
+ - 4
44
+ - 8
45
+ ```
46
+ Returns: `true`
47
+
48
+ ###### Arrays are not compared deeply:
49
+ ```yaml
50
+ _ne:
51
+ - [1,2,3]
52
+ - [1,2,3]
53
+ ```
54
+ Returns: `true`
55
+
56
+ ###### Values from "getter" operators are copies and not equal:
57
+ ```yaml
58
+ _ne:
59
+ - _state: my_object
60
+ - _state: my_object
61
+ ```
62
+ Returns: `true`
@@ -0,0 +1,33 @@
1
+ # _not
2
+
3
+ ```
4
+ (value: any): boolean
5
+ ```
6
+
7
+ The `_not` operator returns the logical negation of the input. If the value is not a boolean, it will be converted to a boolean using javascript [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy) and [falsy](https://developer.mozilla.org/en-US/docs/Glossary/Falsy) rules.
8
+
9
+ > This operator can be used as a [`_build`](/_build) operator method.
10
+
11
+ #### Arguments
12
+
13
+ ###### any
14
+
15
+ #### Examples
16
+
17
+ ###### Not `true` is `false`:
18
+ ```yaml
19
+ _not: true
20
+ ```
21
+ Returns: `false`
22
+
23
+ ###### Return `true` for a falsy value:
24
+ ```yaml
25
+ _not: null
26
+ ```
27
+ Returns: `true`
28
+
29
+ ###### Return `false` for a truthy value:
30
+ ```yaml
31
+ _not: 100
32
+ ```
33
+ Returns: `false`
@@ -0,0 +1,159 @@
1
+ # _number
2
+
3
+ The `_number` operator can be used to run javascript [`Number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) methods.
4
+
5
+ > This operator can be used as a [`_build`](/_build) operator method.
6
+
7
+ # Operator methods:
8
+
9
+ ## _number.EPSILON
10
+
11
+ ```
12
+ (void): number
13
+ ```
14
+
15
+ The `_number.EPSILON` property represents the smallest interval between two representable numbers.. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON) for more details and examples.
16
+
17
+ ## _number.MAX_SAFE_INTEGER
18
+
19
+ ```
20
+ (void): number
21
+ ```
22
+
23
+ The `_number.MAX_SAFE_INTEGER` property represents the maximum safe integer in JavaScript (2^53 - 1). [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER) for more details and examples.
24
+
25
+ ## _number.MAX_VALUE
26
+
27
+ ```
28
+ (void): number
29
+ ```
30
+
31
+ The `_number.MAX_VALUE` property represents the largest positive representable number. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE) for more details and examples.
32
+
33
+ ## _number.MIN_SAFE_INTEGER
34
+
35
+ ```
36
+ (void): number
37
+ ```
38
+
39
+ The `_number.MIN_SAFE_INTEGER` property represents the minimum safe integer in JavaScript (-(2^53 - 1)). [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER) for more details and examples.
40
+
41
+ ## _number.MIN_VALUE
42
+
43
+ ```
44
+ (void): number
45
+ ```
46
+
47
+ The `_number.MIN_VALUE` property represents the smallest positive representable number — that is, the positive number closest to zero (without actually being zero). [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE) for more details and examples.
48
+
49
+ ## _number.NaN
50
+
51
+ ```
52
+ (void): number
53
+ ```
54
+
55
+ The `_number.NaN` property represents the special "Not a Number" value. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/NaN) for more details and examples.
56
+
57
+ ## _number.NEGATIVE_INFINITY
58
+
59
+ ```
60
+ (void): number
61
+ ```
62
+
63
+ The `_number.NEGATIVE_INFINITY` property represents negative infinity. Returned on overflow. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY) for more details and examples.
64
+
65
+ ## _number.POSITIVE_INFINITY
66
+
67
+ ```
68
+ (void): number
69
+ ```
70
+
71
+ The `_number.POSITIVE_INFINITY` property represents positive infinity. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY) for more details and examples.
72
+
73
+ ## _number.isFinite
74
+
75
+ ```
76
+ (void): number
77
+ ```
78
+
79
+ The `_number.isFinite` method is used to determine whether the passed value is a finite number. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite) for more details and examples.
80
+
81
+ ## _number.isInteger
82
+
83
+ ```
84
+ (void): number
85
+ ```
86
+
87
+ The `_number.isInteger` method is used to determine whether the passed value is an integer. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger) for more details and examples.
88
+
89
+ ## _number.isNaN
90
+
91
+ ```
92
+ (void): number
93
+ ```
94
+
95
+ The `_number.isNaN` method is used to determine whether the passed value is NaN. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) for more details and examples.
96
+
97
+ ## _number.isSafeInteger
98
+
99
+ ```
100
+ (void): number
101
+ ```
102
+
103
+ The `_number.isSafeInteger` method is used to determine whether the passed value is a safe integer (number between -(2^53 - 1) and 2^53 - 1). [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger) for more details and examples.
104
+
105
+ ## _number.parseFloat
106
+
107
+ ```
108
+ (void): number
109
+ ```
110
+
111
+ The `_number.parseFloat` method parses an argument and returns a floating point number. If a number cannot be parsed from the argument, it returns NaN. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat) for more details and examples.
112
+
113
+ ## _number.parseInt
114
+
115
+ ```
116
+ (void): number
117
+ ```
118
+
119
+ The `_number.parseInt` method parses a string argument and returns an integer of the specified radix or base. If a number cannot be parsed from the argument, it returns NaN. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt) for more details and examples.
120
+
121
+ ## _number.toExponential
122
+
123
+ ```
124
+ (void): number
125
+ ```
126
+
127
+ The `_number.toExponential` method returns a string representing the Number object in exponential notation. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toExponential) for more details and examples.
128
+
129
+ ## _number.toFixed
130
+
131
+ ```
132
+ (void): number
133
+ ```
134
+
135
+ The `_number.toFixed` method formats a number using fixed-point notation. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) for more details and examples.
136
+
137
+ ## _number.toLocaleString
138
+
139
+ ```
140
+ (void): number
141
+ ```
142
+
143
+ The `_number.toLocaleString` method returns a string with a language-sensitive representation of this number. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString) for more details and examples.
144
+
145
+ ## _number.toPrecision
146
+
147
+ ```
148
+ (void): number
149
+ ```
150
+
151
+ The `_number.toPrecision` method returns a string representing the Number object to the specified precision. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision) for more details and examples.
152
+
153
+ ## _number.toString
154
+
155
+ ```
156
+ (void): number
157
+ ```
158
+
159
+ The `_number.toString` method returns a string representing the specified Number object. [See MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString) for more details and examples.