Commit Graph

225 Commits

Author SHA1 Message Date
Adria Navarro b457b0e023 Convert helpers 2024-03-14 17:17:10 +01:00
Adria Navarro cdf251f9cc Processors to esm 2024-03-14 17:17:10 +01:00
Adria Navarro e0873b359c Mark as module 2024-03-14 17:17:10 +01:00
Adria Navarro efef47b77e Indexjs to esm 2024-03-14 17:17:10 +01:00
Andrew Kingston 95f71efdab Cache snippet evaluations in the browser 2024-03-13 12:52:36 +00:00
Andrew Kingston 861d48dbf3 Transform snippets into a map in the browser for faster access 2024-03-13 12:37:49 +00:00
Andrew Kingston 64855bbdf0 Optimise cloneDeep usage in string templates 2024-03-13 12:11:09 +00:00
Andrew Kingston a1186cd6d3 Remove testing snippet code 2024-03-13 12:01:26 +00:00
Andrew Kingston 706f9b5d4a Update snippets to be an array 2024-03-05 19:11:34 +00:00
Andrew Kingston 5b3280832c Improve logic around swapping binding panel tabs 2024-03-05 18:38:48 +00:00
Andrew Kingston 483fcbe30a Add example of crazy long snippet for performance testing 2024-03-01 15:48:39 +00:00
Andrew Kingston b7b1e95eb8 Add working PoC of snippets for both polyfilled vm and isolated-vm 2024-03-01 15:25:40 +00:00
mike12345567 4e61230c9a Removing unused function. 2024-02-20 17:17:13 +00:00
mike12345567 5dfa460374 Disabling VM by default in string-templates, backend services *MUST* set their JS runner specifically rather than assuming the VM library by default. 2024-02-20 16:23:35 +00:00
Adria Navarro 70db60a360 Move default setJSRunner from mjs to index 2024-02-12 17:04:29 +01:00
Adria Navarro b27ca57e1a Allow loging js execution errors 2024-02-12 14:00:32 +01:00
Adria Navarro ec7adfb1b1 Remove index.cjs entry point 2024-02-09 10:27:22 +01:00
Adria Navarro 719062ab2f Remove bundles from string-templates 2024-02-06 10:06:26 +01:00
Adria Navarro 8dfcc3aeb1
Revert "Revert "Migrate from `vm` to `isolated-vm`"" 2024-02-02 12:02:09 +01:00
Sam Rose 332a201ae7
Revert "Migrate from `vm` to `isolated-vm`" 2024-02-02 09:51:46 +00:00
Adria Navarro 45ea6a6fd6
Revert "Revert "Migrate from `vm` to `isolated-vm`"" 2024-02-01 16:47:41 +01:00
Adria Navarro 16749ec3dd
Revert "Migrate from `vm` to `isolated-vm`" 2024-02-01 16:30:34 +01:00
Adria Navarro 480476bcfe Lint 2024-02-01 12:32:39 +01:00
Adria Navarro 1439eb9b27 Fix stripProtocol 2024-02-01 12:20:31 +01:00
Adria Navarro a5ccb9f0e8 Dry 2024-01-31 17:47:07 +01:00
Adria Navarro 507aa8af93 Simplify and remove magic strings 2024-01-31 17:05:20 +01:00
Adria Navarro f2aeb56671 Lint 2024-01-31 13:30:41 +01:00
Adria Navarro b2e1d8ee71
Merge branch 'master' into isolated-vm 2024-01-31 12:12:14 +01:00
Adria Navarro 623b4f5dab
Merge branch 'master' into isolated-vm 2024-01-31 10:47:08 +01:00
Adria Navarro cd4fccbd6e Allow excluding js helpers 2024-01-31 10:34:49 +01:00
Adria Navarro e5d5dea5e6 Renames 2024-01-31 10:00:41 +01:00
Adria Navarro 43e536e7a6 Test only js helpers 2024-01-30 16:52:25 +01:00
Adria Navarro db14f9afab Inject {} at the end of the helper calls 2024-01-30 09:48:15 +01:00
Adria Navarro a14ff42b14 Fix duration as js 2024-01-30 09:48:15 +01:00
Adria Navarro 5a1d73ff2f Fix avg helper 2024-01-30 09:48:15 +01:00
Adria Navarro 48dfc09f22 Fix types 2024-01-24 18:11:28 +01:00
Adria Navarro 37033dd468 Handle js timeouts 2024-01-24 18:03:09 +01:00
Adria Navarro 73c977d6fb Fix test 2024-01-24 17:40:13 +01:00
Sam Rose cc363f1ba7
Fix server tests. 2024-01-24 16:18:56 +00:00
Adria Navarro 663e6d9bf8
Merge branch 'master' into isolated-vm 2024-01-19 13:11:34 +01:00
Adria Navarro 915482a915 Configure cypto 2024-01-19 10:59:48 +01:00
Adria Navarro 5bc5f71549 Fix uuid 2024-01-18 15:39:39 +01:00
Adria Navarro 262dbc7c2b Inject url 2024-01-18 13:49:47 +01:00
Adria Navarro 60574196b9 Add date functions 2024-01-17 14:50:26 +01:00
Adria Navarro ef08c699d6 Add comparison functions 2024-01-17 14:43:46 +01:00
Adria Navarro 9949b08879 Add regex functions 2024-01-17 14:25:17 +01:00
Adria Navarro a2082e94d3 Add object functions 2024-01-17 13:47:56 +01:00
Adria Navarro b7647797b3 Add string functions 2024-01-17 13:30:58 +01:00
Adria Navarro 51f21456ec Add array functions 2024-01-17 12:53:47 +01:00
Adria Navarro adc98f7cac Add number functions 2024-01-17 12:32:41 +01:00
Adria Navarro 2c9165d1be Create a better bundle (math only) 2024-01-16 17:32:23 +01:00
Adria Navarro 27bb73f77a Compile stringtemplates via esbuild 2024-01-15 11:01:13 +01:00
Adria Navarro 52b97336ee lodash.clonedeep 2024-01-10 14:56:29 +01:00
Sam Rose f61346a0c5
Cache the helpers list for executing JS. 2023-12-19 17:46:15 +00:00
Sam Rose 1c34147357
Add tests for per-request execution timeout. 2023-12-18 17:01:56 +00:00
Sam Rose bd324f3225
Implement per-request JS execution limiting. 2023-12-18 15:29:56 +00:00
mike12345567 f6841308d2 Merge branch 'feature/uuid-helper' of github.com:Budibase/budibase into feature/uuid-helper 2023-12-18 11:46:21 +00:00
mike12345567 c374ac6973 Removing test statement. 2023-12-18 11:45:47 +00:00
Michael Drury dceb623732
Merge branch 'master' into feature/uuid-helper 2023-12-18 11:06:48 +00:00
Sam Rose b963e7081e
Fix test. 2023-12-15 16:50:36 +00:00
Sam Rose 92a230667f
Tell a user if their JS failed due to a timeout. 2023-12-15 16:27:20 +00:00
mike12345567 6173497afa Adding a UUID helper to simplify things, question comes up fairly regularly. 2023-12-13 17:56:16 +00:00
Dean e77a105bb2 General fixes for bindings and the undo/redo behaviour 2023-07-18 16:46:35 +01:00
mike12345567 d667276fa1 Adding a onlyFound option to our handlebars system so that we can enrich only the parts we have and leave other components for further enrichment. 2023-01-27 15:15:07 +00:00
Mel O'Hagan a3ee16a26a Extend date formatting 2022-11-18 09:15:15 +00:00
Andrew Kingston 738c98eb47 Ensure non string types are ignored when searching for HBS blocks 2022-10-21 10:32:32 +01:00
mike12345567 feda4e61c1 Fixing issue with string templates importing vm2 which requires other prebuilts for JS in the CLI - no need for these to add to build size when JS is unused. 2022-09-05 19:04:45 +01:00
mike12345567 b4a8109cf0 Adding the examples and helper add functionality for JS as well as hiding button to convert outside of development environment. 2022-07-29 14:12:04 +01:00
mike12345567 7a6efe3ea8 Some minor fixes for edge cases. 2022-07-29 09:50:53 +01:00
mike12345567 3d13030aa1 Initial attempt at transpiling HBS to JS. 2022-07-28 20:20:53 +01:00
mike12345567 aac6bc48a7 Fix for issue discovered by test case. 2022-05-04 17:36:30 +01:00
mike12345567 159cc9d277 Fixes for #4736 - I believe the issue was that the dynamic variables were not being saved, removing the need for the user to be aware of this, also making it possible to pass the entire data structure from one call to another if desired. 2022-05-04 15:26:19 +01:00
mike12345567 dfb292862f Fixing an issue with JSONparse helper always being considered invalid due to a lack of input. 2022-05-04 12:14:01 +01:00
mike12345567 1b45a9190d Fixes for SQL issues raised by Marty. 2022-03-02 17:40:50 +00:00
Rory Powell 6fca8ca936 Merge branch 'master' into merge-master 2022-02-23 12:14:04 +00:00
mike12345567 581c27d8b7 Fixing issue with escaping on multiple bindings that are the same in queries. 2022-02-17 13:22:36 +00:00
mike12345567 db45086105 Merge branch 'master' of github.com:Budibase/budibase into develop 2022-02-15 16:54:21 +00:00
mike12345567 6cb7c2b770 Fix for safari, removing all usage of regex lookbehinds. 2022-02-15 14:48:32 +00:00
Andrew Kingston 0e59be9375 Merge branch 'frontend-core' of github.com:Budibase/budibase into experimental-hbs-caching 2022-02-09 15:18:44 +00:00
mike12345567 07a285843e Fixing issue with isValid function found by testcase. 2022-02-08 17:22:44 +00:00
mike12345567 a35a8cb81c Addomg a fix for #4370 - allow queries to contain newlines, they will always be escaped. 2022-02-07 17:56:01 +00:00
Andrew Kingston a76508c76e Merge branch 'frontend-core' of github.com:Budibase/budibase into experimental-hbs-caching 2022-02-07 09:50:17 +00:00
mike12345567 82c4c0b731 Fixing merge conflict. 2022-02-03 20:32:20 +00:00
mike12345567 f2a025013e Fix for #4308 - triple brace conversion was not working correctly, wrote this into the string templates instead - also fixing an issue with the RBAC for Rest. 2022-02-03 18:44:34 +00:00
Andrew Kingston 14eca1b461 Merge branch 'frontend-core' of github.com:Budibase/budibase into experimental-hbs-caching 2022-02-01 16:49:59 +00:00
mike12345567 f9c7877e02 Merge branch 'develop' of github.com:Budibase/budibase into feature/formula-filtering 2022-01-31 15:21:15 +00:00
Andrew Kingston 4b7fe15598 Add experimental support for caching the creation of HBS template functions 2022-01-29 18:53:21 +00:00
mike12345567 ab5c7766b4 Bit of refactoring, adding in functionality to remove invalid static formula when the elements that the formula depends on are removed. 2022-01-24 18:22:59 +00:00
mike12345567 deb4a34c18 Adding the ability to filter using the filter drawer for formula fields, getting them based on the enriched contents of a row - adding functionality to denote to each table which other tables depend on them for formula. 2022-01-21 16:24:24 +00:00
Andrew Kingston 358aed6d4f Update {{ now }} HBS helper to floor to the second instead of millisecond 2022-01-20 19:37:01 +00:00
Andrew Kingston 56ef16665e Transform the output of JS expressions to be actual types rather than strings 2022-01-20 19:24:39 +00:00
Andrew Kingston c8121ed0e3 Transform the output of JS expressions to be actual types rather than strings 2022-01-18 13:20:06 +00:00
Andrew Kingston 28557a3f96 Remove the pre-execution validation in string templates to double performance and prevent JS binding issues when mutating context 2021-12-06 17:58:43 +00:00
Andrew Kingston a721619a06 Update literal helper to return an empty string rather than the string 'undefined' when the value is undefined 2021-11-15 12:25:30 +00:00
mike12345567 da38734a62 Fixing bug #3195 with zero/falsy values not being passed out of bindings. 2021-11-02 16:55:16 +00:00
mike12345567 eb411cd0b0 Fixing #2718 - disabling handlebars helpers for queries. 2021-10-26 20:04:36 +01:00
Andrew Kingston b1f174debe Remove optional chaining from string-templates 2021-10-14 13:04:57 +01:00
Andrew Kingston 29d58f08c1 Block certain browser API's when executing JS in the browser 2021-10-14 12:02:34 +01:00
Andrew Kingston 01dfef735f Use vm2 for JS execution in node, and a vm polyfill for the browser. Use 2 standalone entrypoints for string-templates depending on env 2021-10-14 11:51:05 +01:00
Andrew Kingston aa150989bd Prevent executing JS bindings when running in a Node env 2021-10-13 14:37:14 +01:00