Compare commits

..
Author SHA1 Message Date
Gregory Schier 974425afee Fix JSONPath/XPath filtering 2024-09-26 06:45:03 -07:00
Gregory Schier 9f7f06a142 Don't adhere to wrapLines in single-line inputs 2024-09-25 22:16:35 -07:00
Gregory Schier 598bbd6f69 Prevent theme flashing on initial window load (#115) 2024-09-25 14:01:24 -07:00
Gregory Schier b19748c42e Make settings menu a regular window (#113) 2024-09-25 12:52:12 -07:00
Gregory Schier 2be45d6101 Simpler Tauri resource paths (#112) 2024-09-25 09:25:51 -07:00
Gregory Schier d2c33f821c Preserve invalid GraphQL variables (#111) 2024-09-25 09:02:31 -07:00
Gregory Schier 215fcef3ea bump 2024-09-25 08:08:49 -07:00
Gregory Schier 7d97404c11 Improved querystring import on paste (#110) 2024-09-25 08:03:19 -07:00
Gregory Schier de7097ff1d Faster time-to-theme (#109) 2024-09-25 07:35:27 -07:00
Gregory Schier 0100a3983d Code split <Workspace> and <Settings> routes 2024-09-24 11:18:39 -07:00
Gregory Schier aa82ef8636 Revert codemirror-json-schema due to bundle bloat 2024-09-24 10:50:09 -07:00
Gregory Schier 4e316dcf60 Fix tauri-before-build 2024-09-24 10:29:23 -07:00
Gregory Schier 296221a22e Lazily render variables (#108) 2024-09-24 10:18:56 -07:00
Gregory Schier 3818154e82 Show all requests in template fn dialog 2024-09-24 07:14:36 -07:00
Gregory Schier 574a92f5b7 Only download protoc if necessary 2024-09-24 07:14:15 -07:00
Gregory Schier 44e5c2b1d7 Fix plugin runtime (response fn) deadlock 2024-09-24 07:13:34 -07:00
Gregory Schier c938b62d35 Fix plugin runtime 2024-09-23 07:46:32 -07:00
Gregory Schier 9bb1e1232f Don't build internal TS packages 2024-09-23 07:22:25 -07:00
Gregory Schier 164865c845 Delete unused files 2024-09-23 07:05:17 -07:00
Gregory Schier 921f1de62a Bootstrap command 2024-09-22 22:17:45 -07:00
Gregory Schier 38b36b80a5 Fix Vite build dir 2024-09-22 21:59:31 -07:00
Gregory Schier 2ab4f79aed Fix scripts 2024-09-22 21:33:46 -07:00
Gregory Schier 101b6284d6 [WIP] Refactor to NPM workspaces (#104) 2024-09-22 21:27:10 -07:00
Gregory Schier 93633875ac snake_case icons and better toast styles 2024-09-20 07:30:11 -07:00
Gregory Schier a18271d306 Sort Codemirror widgets Fixes #101 2024-09-20 05:45:04 -07:00
Gregory Schier 32d7af94a5 Fix environment dialog hotkey 2024-09-20 05:36:56 -07:00
Gregory Schier 48dbd5f9f8 Regenerate icons 2024-09-19 15:00:34 -07:00
Gregory Schier 085580b94a Add migration steps to DEVELOPMENT.md 2024-09-19 14:20:57 -07:00
Gregory Schier 53b8463223 All generated TS models in two files 2024-09-19 13:22:56 -07:00
Gregory Schier 3ee9ed8bf4 Env dropdown becomes button when no sub envs 2024-09-19 13:01:22 -07:00
Gregory Schier ed368cd251 Fix pair editor adding new entry when clicking below 2024-09-19 08:55:35 -07:00
Gregory Schier d9fb7f1b21 Fix autoSelect for PlainInput.tsx 2024-09-19 08:03:18 -07:00
Gregory Schier 1c6c979278 Use PlainInput for Prompt.tsx 2024-09-19 07:56:29 -07:00
Gregory Schier 17f835e713 Fix app header selection on double click 2024-09-19 07:53:17 -07:00
Gregory Schier 99e91a692b Fix lint issue 2024-09-19 06:27:02 -07:00
Gregory Schier 24ea76e753 Better native app styling. Hopefully this fixes the issue!
Fixes #97
2024-09-19 06:19:16 -07:00
Gregory Schier 1d9a001036 Only replace path params when starting with :
Fixes #99
2024-09-19 06:07:19 -07:00
Gregory Schier 7e056aa93a Maximize window on header double-click 2024-09-19 06:03:46 -07:00
Gregory Schier 6247603cec Fix gRPC basic auth encoding
Fixes #98
2024-09-19 06:00:33 -07:00
Gregory Schier a3b64423fd Refactor plugin manager and gRPC server (#96) 2024-09-19 05:58:12 -07:00
Gregory Schier 844d795014 Namespaced template functions (#95) 2024-09-18 05:36:37 -07:00
dependabot[bot] d48b29c6e9 Bump vite from 5.4.5 to 5.4.6 (#94)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-17 19:05:03 -07:00
Gregory Schier e0c00579af Reload template functions on window focus 2024-09-17 09:48:53 -07:00
Gregory Schier 024edb6674 Cargo lock 2024-09-17 09:13:23 -07:00
Gregory Schier 4a79a67b8d Bump Tauri deps 2024-09-17 06:59:23 -07:00
Gregory Schier 61c333fd04 Fix Tauri config 2024-09-16 08:58:39 -07:00
Gregory Schier 94654cddef Update tauri config 2024-09-16 08:57:20 -07:00
Gregory Schier 2951023ee8 Fix all lint errors 2024-09-16 08:36:02 -07:00
Gregory Schier 974ecd511d Fix replacement 2024-09-16 08:11:38 -07:00
dependabot[bot] 606bfb6a83 Bump quinn-proto from 0.11.6 to 0.11.8 in /src-tauri (#91)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 08:08:56 -07:00
Gregory Schier 72649b670e Link to docs in plugin settings 2024-09-16 08:06:32 -07:00
Gregory Schier d70c8be85d Add publisher/copyright 2024-09-16 06:45:42 -07:00
Gregory Schier a55e27ec20 Remove unused Makefile 2024-09-16 06:41:13 -07:00
Gregory Schier 873d02ea37 Re-gen proto stuff 2024-09-16 06:35:46 -07:00
Gregory Schier ebc45ca687 Account for zoom for macOS stoplight padding 2024-09-16 06:20:50 -07:00
Gregory Schier 8913833157 Parse and import querystring on paste (#89) 2024-09-15 11:41:26 -07:00
Samuel Marks 75552cbb7d Upgrade dependencies (#74) 2024-09-15 10:33:50 -07:00
Gregory Schier ea67304151 Update README.md 2024-09-14 08:39:03 -07:00
Gregory Schier db416cea31 Update README.md 2024-09-12 10:20:36 -07:00
Gregory Schier a479c5627c Update README.md 2024-09-12 10:06:58 -07:00
Gregory Schier fad2702218 Update bug-report.yml 2024-09-12 08:26:55 -07:00
Mohammed Kafeel Shahjahan SheikhandGregory Schier 95e7dc3e6c Update README.md (#82)
Minor spelling mistake change.

Co-authored-by: Gregory Schier <gschier1990@gmail.com>
2024-09-12 07:22:14 -07:00
Teymour Aldridge 6b76753f56 Update README.md (#83) 2024-09-12 07:21:19 -07:00
Gregory Schier db344454be Merge remote-tracking branch 'origin/master' 2024-09-12 07:19:43 -07:00
Gregory Schier 590ea559e3 Make variable dialog more clear
Closes #73
2024-09-12 07:19:32 -07:00
Gregory Schier f0f629f26f Update bug-report.yml 2024-09-12 07:17:45 -07:00
Gregory Schier 3d74d29775 Update bug-report.yml 2024-09-12 07:16:50 -07:00
Gregory Schier aeb550034d Update config.yml 2024-09-12 07:11:28 -07:00
Gregory Schier b8fdf7ec94 Update bug-report.yml 2024-09-12 07:11:02 -07:00
Gregory Schier 9900b09793 Update config.yml 2024-09-12 07:09:47 -07:00
Gregory Schier 31dc76727a Update config.yml 2024-09-12 07:08:29 -07:00
Gregory Schier aab0386565 Require OS in bug report 2024-09-12 07:06:03 -07:00
Gregory Schier 77153525fb Update and rename bug-report.md to bug-report.yml 2024-09-12 07:04:40 -07:00
Gregory Schier aeecac7ded Issue Template 2024-09-12 06:58:52 -07:00
Gregory Schier b08750a72b Rename config.yaml to config.yml 2024-09-12 06:54:19 -07:00
Gregory Schier a0c7090fda Create config.yaml 2024-09-12 06:53:41 -07:00
Gregory Schier a805e39da9 Update issue templates 2024-09-12 06:51:46 -07:00
Michal Polko 65b7db873e Use padding for Basic auth (#77) 2024-09-11 22:26:03 -07:00
Gregory Schier ed48e1d52a Fix * breaking response URL detection
Fixes #71
2024-09-11 07:34:58 -07:00
Gregory Schier b5fa3efb9e Update README.md 2024-09-10 15:36:18 -07:00
Gregory Schier b616c5d78f Create LICENSE 2024-09-10 11:29:31 -07:00
Gregory Schier f7bf245a4c Update README.md 2024-09-10 10:38:43 -07:00
Gregory Schier e1fdf174c1 Mention open source in README 2024-09-10 10:29:09 -07:00
Gregory Schier 7907dcc220 Don't notify twice 2024-09-09 15:44:35 -07:00
Gregory Schier 36890b9a32 Show toast after plugin reload 2024-09-09 12:36:05 -07:00
Gregory Schier c0707bb246 Reload plugins on change 2024-09-09 11:34:52 -07:00
Gregory Schier 3bf192953d Update workflow 2024-09-06 11:09:03 -07:00
Gregory Schier 0c8953c471 Fix lint issues 2024-09-06 10:59:14 -07:00
Gregory Schier c02aa4f2d0 Dynamic plugins (#68) 2024-09-06 10:43:25 -07:00
Gregory Schier e4e888c47a Don't introspect schema on interval 2024-09-06 10:37:10 -07:00
Gregory Schier d032495861 Bump plugin-runtime-types version 2024-09-06 06:32:35 -07:00
Gregory Schier 167a446ad8 re-gen plugin-runtime-types 2024-09-06 06:26:05 -07:00
Gregory Schier 74edadf7c4 Remove prints 2024-09-06 06:21:21 -07:00
Gregory Schier 021dceeac5 Fix import order for nested folders to prevent foreign key constraint error 2024-09-06 06:20:27 -07:00
Gregory Schier c663537ca9 Support non-utf8 charsets 2024-09-05 13:58:06 -07:00
Gregory Schier 48b288b1a6 Fix banner overflow 2024-09-04 07:33:21 -07:00
Gregory Schier 9600d8ba1c Fix interface zoom 2024-09-03 14:37:44 -07:00
Gregory Schier 7ef264223f Create request/folder with proper folderId 2024-09-03 08:06:30 -07:00
Gregory Schier d99fe98347 Separate active tabs per request 2024-09-03 07:52:35 -07:00
Gregory Schier ff459d1570 Separate active tabs per request 2024-09-03 07:33:48 -07:00
Gregory Schier 7f952300b3 Print plugin dir on failure to read 2024-09-03 07:18:00 -07:00
Gregory Schier 90e2eb67e5 Clean up 2024-09-03 06:44:51 -07:00
Gregory Schier 942f959c36 Request pane context (#70) 2024-09-03 06:18:25 -07:00
Gregory Schier 0b9483954d Request pane context (#69) 2024-09-02 14:36:55 -07:00
Gregory Schier 3e8c556999 Fix white screen 2024-09-02 12:52:42 -07:00
Gregory Schier 155d0ce3ba Placeholder CM tags working 2024-09-02 12:35:05 -07:00
Gregory Schier bdc0ecfcd8 Rename var 2024-08-30 05:39:58 -07:00
Gregory Schier 71d9e7ddb5 Check for updates less often on stable 2024-08-30 05:39:29 -07:00
Gregory Schier 737da7e0ae Only check for updates once per day 2024-08-30 05:36:30 -07:00
Gregory Schier afa64acf83 URL path placeholders 2024-08-30 05:24:07 -07:00
Gregory Schier b3865d383b Detect JSON APIs returning HTML content-type 2024-08-29 10:52:41 -07:00
Gregory Schier fdc60445c8 Better content-type detection for editor 2024-08-29 06:07:31 -07:00
Gregory Schier 690ef02a38 Fix Windows/linux close icon color 2024-08-28 09:46:35 -07:00
Gregory Schier a92a85be0d Kill plugin manager before NSIS update on Windows 2024-08-28 09:14:39 -07:00
Gregory Schier 5f1286ef6f Remove tauri "unstable" feature to fix Codemirror selection 2024-08-28 06:48:02 -07:00
Gregory Schier ffd0010a59 Hotfix for window focusing 2024-08-27 16:56:04 -07:00
Gregory Schier 9320162e22 Special case Response()->response() 2024-08-26 15:26:43 -07:00
Gregory Schier 959ace8720 Clean up code 2024-08-26 15:10:29 -07:00
Gregory Schier 55122b042b Default template fn args 2024-08-26 13:10:22 -07:00
Gregory Schier f404aa53c6 Option to disable telemetry 2024-08-26 12:06:56 -07:00
Gregory Schier c80ebdb156 Node syntaxTree to parse template tags 2024-08-26 11:30:10 -07:00
Gregory Schier 6f6bec5764 Force codemirror to parse more to be able to show code folding 2024-08-23 14:09:28 -07:00
Gregory Schier e89905fd04 Publish plugin-runtime-types 2024-08-23 13:37:47 -07:00
Gregory Schier ad81d35c71 Fix recursive plugin call locking 2024-08-23 13:20:48 -07:00
Gregory Schier e36f61b2c7 Surface plugin error on import 2024-08-23 11:53:40 -07:00
Gregory Schier 8d03ba5bdd Fix initial apply text 2024-08-22 12:49:42 -07:00
Gregory Schier 11f811d900 Switch to single quotes for template strings 2024-08-22 12:48:14 -07:00
Gregory Schier 9cdc13b632 Pass render purpose to render 2024-08-22 11:27:55 -07:00
Gregory Schier e5ec86bfcf Move to workspace crate 2024-08-22 10:49:51 -07:00
Gregory Schier e35f34eaf5 Fix compile 2024-08-22 06:30:19 -07:00
Gregory Schier 503b7f1c87 Fix deadlock on getting the focused window 2024-08-22 05:46:09 -07:00
Gregory Schier 4c6684623f Some tweaks for beta 2024-08-19 19:10:08 -07:00
Gregory Schier dbfe2dc93d A bit more chaining cleanup 2024-08-19 16:38:28 -07:00
Gregory Schier 96125a0741 A bunch of improvements to chaining 2024-08-19 14:10:44 -07:00
Gregory Schier 0f8aea3afd Actually call template functions 2024-08-19 10:34:22 -07:00
Gregory Schier 1fbcfeaa30 Async template functions working 2024-08-19 06:21:03 -07:00
Gregory Schier ec22191409 Colored autocompletion icons 2024-08-17 05:47:05 -07:00
Gregory Schier aa85ecb618 Template Tag Function Editor (#67)
![CleanShot 2024-08-15 at 16 53
09@2x](https://github.com/user-attachments/assets/8c0eb655-1daf-4dc8-811f-f606c770f7dc)
2024-08-16 08:31:19 -07:00
Gregory Schier a7f0fadeae Fix sidebar scroll into view 2024-08-15 09:09:18 -07:00
Gregory Schier 6bc697e4a7 Fix some more styles 2024-08-15 05:58:09 -07:00
Gregory Schier 795aaae2f5 Keep sidebar and cmd+p items in view 2024-08-15 05:50:38 -07:00
Gregory Schier 522d293087 Request actions in command palette 2024-08-15 05:37:10 -07:00
Gregory Schier 637e5196c3 Request actions (#65) 2024-08-14 15:31:52 -07:00
Gregory Schier c484dd4041 Start on plugin ctx API (#64) 2024-08-14 06:42:54 -07:00
Gregory Schier 5eef910b8c Variable value as title attr 2024-08-13 10:19:21 -07:00
Gregory Schier ed214367d3 Fix dollar sign in Twig grammar 2024-08-13 10:12:09 -07:00
Gregory Schier c69bee251d Fix rose pine themes 2024-08-13 07:51:26 -07:00
Gregory Schier c9b4e6181c Use new theme vars (#63)
This PR swaps the theme to use the new stuff from the Theme Studio
2024-08-13 07:44:28 -07:00
Gregory Schier ecc7192bde Don't persist settings tab 2024-08-10 08:10:14 -07:00
Gregory Schier 08ea48b996 Better curl import 2024-08-10 07:53:26 -07:00
Gregory Schier 2f9532cf53 Catch clipboard errors 2024-08-10 07:33:10 -07:00
Gregory Schier dab10d79fe Don't show unnamed variables in autocomplete 2024-08-10 07:09:23 -07:00
Gregory Schier d5b0b5481c Append [DEV] to window title in dev 2024-08-09 15:35:21 -07:00
Gregory Schier d280df4a0b Fix gRPC request creation 2024-08-09 14:37:43 -07:00
Gregory Schier fbaf750c91 Correctly wrap small dialog text 2024-08-09 14:28:20 -07:00
Gregory Schier 877f9ce15a GraphQL variables now reset if entire thing deleted 2024-08-09 14:05:38 -07:00
Gregory Schier 00367c2b18 Fix Windows paths for new plugin runtime 2024-08-09 12:43:56 -07:00
Gregory Schier 23f8f5ff7f Better Windows pathing 2024-08-09 11:52:18 -07:00
Gregory Schier b3bd070a8a UNC paths for plugins 2024-08-09 11:33:54 -07:00
Gregory Schier 1a9dfda90c Fix up DB creation and migration 2024-08-09 11:20:04 -07:00
Gregory Schier 411fd4f530 Vendor in build script 2024-08-09 08:51:21 -07:00
Gregory Schier 6232a46ca8 Fix body change setting headers/method 2024-08-09 08:33:49 -07:00
Gregory Schier 0c9d532c1f Remove problematic tests from release.yml 2024-08-09 08:33:01 -07:00
Gregory Schier d907b0bdcd Fix release script 2024-08-09 07:53:33 -07:00
Gregory Schier fb847ac1f0 Switch to proper log plugin 2024-08-09 07:49:48 -07:00
Gregory Schier 5a5a443ff9 Fix release script 2024-08-09 07:42:39 -07:00
Gregory Schier ffb7ab55be Fix variable regex 2024-08-09 07:41:52 -07:00
Gregory Schier da29d80c82 Run build before test as well 2024-08-09 07:29:48 -07:00
Gregory Schier 209af3d149 Fix 2024-08-09 07:12:32 -07:00
Gregory Schier 3c4df087ea Fix lint errors 2024-08-09 06:58:36 -07:00
Gregory Schier 4bf6ddec9f Run vendor as separate script 2024-08-09 06:49:18 -07:00
Gregory Schier b5eed9bf9d Fix xpath filtering 2024-08-08 22:54:15 -07:00
Gregory Schier 3153a38b7b Better TS type generation 2024-08-08 22:07:05 -07:00
Gregory Schier 063e6cf00c Plugin runtime v2 (#62) 2024-08-08 21:30:59 -07:00
Gregory Schier f967820f12 Model and DB refactor (#61)
- [x] Move from `sqlx` to `rusqlite`
- [x] Generate TS types from Rust models
2024-08-05 07:58:20 -07:00
Gregory Schier e5511922bf Use @yaakapp/api in models 2024-08-01 15:14:33 -07:00
Gregory Schier d6e5bc6df5 Updated plugin APIs 2024-08-01 07:01:57 -07:00
Gregory Schier 5639e358bc Start of plugin types refactor 2024-07-31 14:56:55 -07:00
Gregory Schier a3988188f3 More flexible placeholder match 2024-07-31 07:42:18 -07:00
Gregory Schier 082be6e1dd Template function return Result 2024-07-31 07:32:37 -07:00
Gregory Schier c2d5ad7c9f Apply forceUpdateKey to bulk pair editor 2024-07-30 15:50:29 -07:00
Gregory Schier 3dfb435386 Always enable pairs from bulk editor 2024-07-30 15:35:06 -07:00
Gregory Schier 86856e3506 Add rename/delete/send to cmd+k 2024-07-30 15:10:24 -07:00
Gregory Schier a75b1a3472 Fix hotkey state messing up on Enter->submit 2024-07-30 15:10:08 -07:00
Gregory Schier ff3b32ba64 Add timestamp() to template fns 2024-07-30 14:04:33 -07:00
Gregory Schier 9d2de4a0b1 Fix fold gutter icon direction 2024-07-30 13:58:30 -07:00
Gregory Schier 84e5618307 Named arguments in templating 2024-07-30 08:02:10 -07:00
Gregory Schier 5efd0c9c10 Tweak release things 2024-07-29 14:38:57 -07:00
Gregory Schier 4803539dd4 Remove canny-specific links 2024-07-29 11:50:00 -07:00
Gregory Schier 71e0d846b7 Generate v1 updater artifacts 2024-07-28 18:32:50 -07:00
Gregory Schier 3001bafb7f Update vendor scripts again 2024-07-28 16:04:05 -07:00
Gregory Schier 430599d8b8 Refine vendor scripts 2024-07-28 15:56:48 -07:00
Gregory Schier 375287eeb3 Merge remote-tracking branch 'origin/master' 2024-07-28 15:40:37 -07:00
Gregory Schier f91dd24a9b Fix killing command on Windows 2024-07-28 15:40:19 -07:00
Gregory Schier 3618fc198c Send full request to cmd_send_http_request to prevent
update->send race
2024-07-28 15:33:12 -07:00
Gregory Schier 410cb7969c Remove command group 2024-07-28 14:13:01 -07:00
Gregory Schier c8a99a6603 Upgrade Tauri dependencies 2024-07-28 13:44:50 -07:00
Gregory Schier def9a3cfd2 Better wait for kill signal 2024-07-27 09:13:34 -07:00
Gregory Schier f925a0cc54 Fix spin lock 2024-07-27 09:05:43 -07:00
Gregory Schier 54090614ad Add sleep to child polling 2024-07-27 08:26:14 -07:00
Gregory Schier 307ca480f3 Better NodeJS vendoring 2024-07-26 00:01:21 -07:00
Gregory Schier ff81ab4414 Put updater back into targets 2024-07-25 20:56:47 -07:00
Gregory Schier 0ff3ec304c Fix targets 2024-07-25 13:33:00 -07:00
Gregory Schier 203cbc5788 Log when plugin runtime exits 2024-07-25 09:28:08 -07:00
Gregory Schier 97947e5680 Remove unused import 2024-07-25 07:58:04 -07:00
Gregory Schier 4ed5489092 Fix dunce usage 2024-07-25 07:52:53 -07:00
Gregory Schier 3825280380 Convert UNC paths in more places 2024-07-25 07:47:00 -07:00
Gregory Schier bd46e5bdb4 Use process group for node runtime 2024-07-24 10:14:40 -07:00
Gregory Schier 2a35decf8c Remove UNC prefix for protoc exec 2024-07-24 08:07:06 -07:00
Gregory Schier 9f268a9316 Protoc stderr into error 2024-07-24 07:41:51 -07:00
Gregory Schier f51575508e Fix external bin names 2024-07-24 07:05:05 -07:00
Gregory Schier 2170a04ccc Unique sidecar names 2024-07-24 07:04:14 -07:00
Gregory Schier 2273bb2df5 Fix NodeJS vendoring on Linux 2024-07-23 20:41:50 -07:00
Gregory Schier f622f12bee Fix nodejs vendoring 2024-07-23 15:37:27 -07:00
Gregory Schier e05d73965a Fix Windows vendor tmp path 2024-07-23 15:28:31 -07:00
Gregory Schier bf1ad208c5 NODE_ARCH -> YAAK_TARGET_ARCH 2024-07-23 14:52:25 -07:00
Gregory Schier 73e815d059 Fix protoc vendoring 2024-07-23 14:35:39 -07:00
Gregory Schier b019496bca Fix NodeJS vendoring 2024-07-23 14:31:53 -07:00
Gregory Schier 25033dc831 Response info in new tab 2024-07-23 12:13:09 -07:00
Gregory Schier fd2c6930f0 Use SelectFile component in more places 2024-07-23 11:54:35 -07:00
Gregory Schier a4e223f261 Guess mime type on multi-part when not set 2024-07-23 11:39:21 -07:00
Gregory Schier 1db44a1f16 Set minimum windows size 2024-07-23 11:35:16 -07:00
Gregory Schier 38e0882dd1 Better handling of large responses 2024-07-23 08:59:15 -07:00
Gregory Schier ac8b1c018b Better import flow 2024-07-23 08:29:09 -07:00
Gregory Schier b7148d510b Revert version 2024-07-23 07:31:00 -07:00
Gregory Schier ad6b8a126a Fix notification status code handling 2024-07-23 07:30:47 -07:00
Gregory Schier 2d422dab4b Back to @latest 2024-07-22 18:28:27 -07:00
Gregory Schier 5aa3c06112 Force bump Yaak CLI 2024-07-22 18:27:24 -07:00
Gregory Schier c57096640d Remove test runs 2024-07-22 18:12:12 -07:00
Gregory Schier 01441b26db Checkout plugins later in the release workflow 2024-07-22 18:08:49 -07:00
Gregory Schier 8c2da49412 Various tweaks 2024-07-22 17:55:28 -07:00
Gregory Schier 680d599f04 Plugin tweaks 2024-07-22 12:17:46 -07:00
Gregory Schier 9c08c5fea8 Better wording for moving workspace 2024-07-22 09:46:46 -07:00
Gregory Schier 110ffc7529 Lowercase product name for Linux 2024-07-22 09:03:31 -07:00
Gregory Schier 5abf460fce Some small refactoring 2024-07-21 22:18:45 -07:00
Gregory Schier f1433b59d4 From SEA to regular NodeJS 2024-07-21 22:14:17 -07:00
Gregory Schier 63ba00d1a7 Fixed plugins on Windows 2024-07-21 16:01:13 -07:00
Gregory Schier a684d71033 Fix import plugin hook 2024-07-21 15:46:47 -07:00
Gregory Schier eb782353a0 Change app name 2024-07-20 11:33:02 -07:00
Gregory Schier 72c58460e2 Fix Windows key map 2024-07-20 10:49:08 -07:00
Gregory Schier 63a193bb3e Don't resign SEA binary 2024-07-20 10:28:50 -07:00
Gregory Schier 54817fa6a4 Fix tool location 2024-07-19 17:38:57 -07:00
Gregory Schier 42127874e0 Fix deps 2024-07-19 17:31:37 -07:00
Gregory Schier 1e106015f7 Dynamic signtool.exe location 2024-07-19 17:30:20 -07:00
Gregory Schier f1e1acdb22 Fix signtool path 2024-07-19 17:28:13 -07:00
Gregory Schier 1bf542d49a Add ampersand 2024-07-19 17:21:23 -07:00
Gregory Schier c3a4b3f68a Fix signtool path? 2024-07-19 17:18:52 -07:00
Gregory Schier a7a88ab490 Absolute signtool path 2024-07-19 17:11:53 -07:00
Gregory Schier 52ee0b524f Remove tmp dirs 2024-07-19 16:58:55 -07:00
Gregory Schier f0f12f7606 Again 2024-07-19 16:53:37 -07:00
Gregory Schier c480c8d6cf Better tmp dir creation 2024-07-19 16:51:05 -07:00
Gregory Schier 1d6ea42448 Fix tmpdir on Windows 2024-07-19 16:43:22 -07:00
Gregory Schier c48ffb2b94 Fix script for Windows? 2024-07-19 16:30:20 -07:00
Gregory Schier fa611df585 Add protoc back 2024-07-19 16:23:16 -07:00
Gregory Schier 0be8426af2 Install Yaak CLI 2024-07-19 16:13:39 -07:00
Gregory Schier f5b8b92d95 Oops, fix arch 2024-07-19 16:10:40 -07:00
Gregory Schier c1fae5951a Fix Node arch 2024-07-19 16:08:37 -07:00
Gregory Schier 7c1ccbec6d Debug log 2024-07-19 16:01:05 -07:00
Gregory Schier 12ab7ae045 Add repo token 2024-07-19 15:45:54 -07:00
Gregory Schier 9979dd3ca6 Add protoc installation 2024-07-19 15:38:44 -07:00
Gregory Schier d8d338d5d4 Add download-protoc to build 2024-07-19 15:25:20 -07:00
Gregory Schier bf265a2f22 Deps for plugin-runtime 2024-07-19 15:16:35 -07:00
Gregory Schier 0863c0f802 Ignore plugins checkout for eslint 2024-07-19 15:13:19 -07:00
Gregory Schier 66c6ebaacf Fix is valid 2024-07-19 15:09:45 -07:00
Gregory Schier 4e889b1688 Update yaak cli path 2024-07-19 14:39:48 -07:00
Gregory Schier 6c6250a41b Fix Go install 2024-07-19 14:28:59 -07:00
Gregory Schier cf01ea7656 Fix again 2024-07-19 14:28:05 -07:00
Gregory Schier 3e6df98e51 Fix setup go 2024-07-19 14:26:47 -07:00
Gregory Schier 80e09c207c Install Yaak CLI with Go 2024-07-19 14:25:21 -07:00
Gregory Schier b829f370cd Specify version 2024-07-19 14:06:33 -07:00
Gregory Schier 748d956eb0 Fix directory 2024-07-19 14:01:21 -07:00
Gregory Schier 544f6ff6b3 Install Yaak CLI in workflow 2024-07-19 13:57:04 -07:00
Gregory Schier 3f15ea85c2 Fix checkout 2024-07-19 11:16:15 -07:00
Gregory Schier 7ea20a3fb8 Fix working directory 2024-07-19 11:13:58 -07:00
Gregory Schier 6df1af4f94 Remove failing step 2024-07-19 11:10:45 -07:00
Gregory Schier 1d6624602f Move ci/build to workflow 2024-07-19 11:09:07 -07:00
Gregory Schier ac42767aaf Debug where npm is 2024-07-19 11:06:39 -07:00
Gregory Schier a722797b6a Inherit env for exec 2024-07-19 11:04:03 -07:00
Gregory Schier d630f4362c TRy again 2024-07-19 11:02:15 -07:00
Gregory Schier 0ed5c61fac Add debug 2024-07-19 10:58:48 -07:00
Gregory Schier c3442f4326 Fix copy plugins script 2024-07-19 10:53:39 -07:00
Gregory Schier 9617ee95e0 Fix workflow 2024-07-19 10:49:29 -07:00
Gregory Schier 102bd588c2 NodeJS Plugin Runtime (#53) 2024-07-19 10:41:47 -07:00
Gregory Schier 7e5408fc92 Update useSaveResponse.tsx 2024-06-27 22:05:41 -07:00
Gregory Schier 408f42b86b Fix RadioDropdown key 2024-06-24 11:18:38 -07:00
Gregory Schier 94abb6838a Better performance on large workspaces 2024-06-21 10:53:11 -07:00
Gregory Schier fdc96001db Better active workspace change notification 2024-06-21 10:11:00 -07:00
Gregory Schier b6cd6e415a Consolidate any* hooks 2024-06-21 10:01:45 -07:00
Gregory Schier 146fc133f0 Add mutationKey everywhere 2024-06-21 09:25:25 -07:00
Gregory Schier 3b784378bf Move request to another workspace (#52) 2024-06-21 09:01:18 -07:00
Gregory Schier bc35195ca8 Bump CI node version 2024-06-20 16:45:59 -07:00
Gregory Schier 0d106bdd90 Safe URI for reflection 2024-06-20 13:11:40 -07:00
Gregory Schier ba9b914303 Fix button styles 2024-06-20 12:55:13 -07:00
Gregory Schier 3c12b14572 Refactor gRPC reflection! 2024-06-20 12:49:58 -07:00
Gregory Schier 907836a751 Update script 2024-06-20 09:23:50 -07:00
Gregory Schier c993a5e658 Actually write the file 2024-06-20 09:20:04 -07:00
Gregory Schier 4275169005 Generic build version 2024-06-20 09:17:28 -07:00
Gregory Schier c511a053df Bump version 2024-06-20 09:07:38 -07:00
Gregory Schier 1b036aabc1 Better fallback request name generation 2024-06-20 09:03:24 -07:00
Gregory Schier d29e503309 Fix GRPC with files not refreshing, and tight render loop 2024-06-20 08:40:10 -07:00
Gregory Schier f81ffe249e Better gRPC reflection errors 2024-06-18 10:54:39 -07:00
Gregory Schier 5cdcbc8dce Bump version 2024-06-18 10:41:22 -07:00
Gregory Schier 0545c2d598 Editor autocomplete same font size as editor 2024-06-18 09:43:51 -07:00
Gregory Schier 9520359e62 Move GraphQL introspection out of LocalStorage 2024-06-18 09:43:28 -07:00
Gregory Schier cbfd259436 REvert other thing 2024-06-17 17:05:51 -07:00
Gregory Schier f2213ff4e8 Fix editor tags wrapping behavior 2024-06-17 17:05:29 -07:00
Gregory Schier 82abb4b004 Change version 2024-06-17 15:09:44 -07:00
Gregory Schier 73b2e44094 Recursive environments 2024-06-17 12:24:06 -07:00
Gregory Schier 0317c46f8f Fix flash loading response viewer 2024-06-17 11:43:45 -07:00
Gregory Schier ab1224c997 Fix parsing notification timestamp 2024-06-17 11:43:20 -07:00
Gregory Schier 2589e3e0dd More dynamic plugin access 2024-06-15 22:13:01 -07:00
Gregory Schier b49081cd06 Workspace dropdown to RadioDropdown 2024-06-14 17:07:35 -07:00
Gregory Schier 6c331ed734 Fix plugins 2024-06-13 07:03:50 -07:00
Gregory Schier 4469b84ad6 Support nested functions 2024-06-12 23:13:36 -07:00
Gregory Schier f9cd2fa7fa Parse window title and theme better 2024-06-12 10:15:14 -07:00
Gregory Schier 0674bae787 Move binary detection to TextViewer 2024-06-12 09:47:34 -07:00
Gregory Schier 53833e1345 Bump version 2024-06-12 00:23:50 -07:00
Gregory Schier b9c6d9d877 Entitlement for v8/Deno 2024-06-12 00:23:32 -07:00
Gregory Schier a5041d4229 Variables in pair editor 2024-06-11 12:33:43 -07:00
Gregory Schier 44ad8c7f30 Put toast on top 2024-06-11 12:04:46 -07:00
Gregory Schier a479df5254 Fix bulk edit label 2024-06-11 09:02:11 -07:00
Gregory Schier ec0a84d588 Bump version 2024-06-11 08:35:29 -07:00
Gregory Schier 43ca9a9390 Adjust fuzzy threshold 2024-06-10 23:25:57 -07:00
Gregory Schier 06707ed54c Fix window drag above cmd+k 2024-06-10 23:24:03 -07:00
Gregory Schier 6e4ee0045f Fix delete request in sidebar 2024-06-10 23:17:12 -07:00
Gregory Schier 55a426fc85 Don't arrow-nav to hidden dropdown items 2024-06-10 23:16:37 -07:00
Gregory Schier 81ff405874 Bulk edit environments 2024-06-10 23:16:21 -07:00
Gregory Schier 8c7f7a7a03 Fix hotkey react keys 2024-06-10 22:29:06 -07:00
Gregory Schier 47fcb8bad4 Cmd Palette Improvements (#50)
- Fuzzy matching
- Show hotkeys
- Add actions
2024-06-10 21:37:41 -07:00
Gregory Schier f0c7a83134 Download Active Response (#49)
This PR prompts you to save un-previewable file types and adds an option
to save to the response history.
2024-06-10 16:36:09 -07:00
Gregory Schier 3875f90fea Remove jump to request hotkey 2024-06-10 09:00:26 -07:00
Gregory Schier 016c3f7dac Response viewer for PDF (#48)
This PR adds a response viewer for PDF files using `react-pdf`
2024-06-10 08:57:08 -07:00
Gregory Schier 302a69ed98 Don't focus sidebar on cmd+0 2024-06-09 08:36:12 -07:00
Gregory Schier 526b64cc5a Try fix CI 2024-06-09 08:09:47 -07:00
Gregory Schier f1f1a02d79 Bump version 2024-06-09 07:56:44 -07:00
Gregory Schier d277c5677f Remove CI again 2024-06-09 07:56:09 -07:00
Gregory Schier d63dabe2fb Add it back 2024-06-09 07:23:28 -07:00
Gregory Schier a0bc0ff87c Remove CI in release stage 2024-06-09 07:22:49 -07:00
Gregory Schier 35072669ec Remove GH Action step names 2024-06-09 07:16:53 -07:00
Gregory Schier 9bfd0d1fbf Back to other 2024-06-09 07:14:07 -07:00
Gregory Schier c9a798c9cd Fix action step 2024-06-09 07:10:44 -07:00
Gregory Schier 4dad19db31 Rust cache release 2024-06-09 07:09:46 -07:00
Gregory Schier dd483dbdd8 Cmd jump to request 2024-06-09 07:03:16 -07:00
Gregory Schier 7b2cb64b14 Only CI on PR 2024-06-09 06:47:47 -07:00
Gregory Schier b6927435e5 Fix Rust lint 2024-06-09 06:43:53 -07:00
Gregory Schier a576ba7a23 Remove slow udeps from CI 2024-06-08 21:03:17 -07:00
Gregory Schier 714a96120a Rust CI to release 2024-06-08 20:51:03 -07:00
Gregory Schier 6585c049c3 Try again 2024-06-08 20:47:48 -07:00
Gregory Schier c89359cf55 Remove cache 2024-06-08 20:47:18 -07:00
Gregory Schier 2c060e5769 Try removing git db 2024-06-08 20:44:58 -07:00
Gregory Schier 595a92c324 Cargo check 2024-06-08 20:36:56 -07:00
Gregory Schier 53b922cc7c Remove Cargo fmt 2024-06-08 20:34:24 -07:00
Gregory Schier 117b4bd285 Fix tests 2024-06-08 20:30:52 -07:00
Gregory Schier a522236885 Cargo format 2024-06-08 20:28:45 -07:00
Gregory Schier acb629919b Set max dropdown width 2024-06-08 19:55:25 -07:00
Gregory Schier 99c8ffe121 Bump version 2024-06-08 19:46:32 -07:00
Gregory Schier c7cc086d1d Upgrade reqwest and add ALPN for http/2 2024-06-08 19:40:35 -07:00
Gregory Schier 0e3918d5a2 Fix curl exporter 2024-06-08 19:40:11 -07:00
Gregory Schier 3a09752322 Fix cmd+k filtering 2024-06-07 22:52:23 -07:00
Gregory Schier aa8c1649f9 Remove delete hotkey for request 2024-06-07 22:52:10 -07:00
Gregory Schier b456e8ce94 Short method tags and hide active in cmd+k 2024-06-07 22:39:11 -07:00
Gregory Schier f9412e6d8f Add command palette (#46)
This PR finished the initial PoC command palette. It currently only
supports switching between requests and workspaces, but can easily be
extended for more.
2024-06-07 21:59:57 -07:00
Gregory Schier 4a88e80669 Bulk editor (#45)
Bulk editor for all pair editors except multipart/form-data
2024-06-07 13:42:08 -07:00
Gregory Schier e9bf97bd3f Fix rose pine and method tags 2024-06-07 12:01:31 -07:00
Gregory Schier 3ed78d1088 Generate things 2024-06-07 11:58:08 -07:00
Gregory Schier 1c1a794c2a Remove tauri-plugin-deep-link 2024-06-07 11:57:44 -07:00
Gregory Schier 0e47622e64 Update CI script 2024-06-07 11:01:21 -07:00
Gregory Schier dbf5b5bdd7 Fix workflow 2024-06-07 10:54:50 -07:00
Gregory Schier acfc254a58 Deno plugins (#42)
Switch from BoaJS to Deno core
2024-06-07 10:47:41 -07:00
Gregory Schier f43b38c893 Open workspace pref (#44)
Ability to remember workspace window opening selection.
2024-06-07 09:04:53 -07:00
Gregory Schier 372588f541 Templating (#43)
Add new `templating` crate with custom parser/renderer for dealing with
variables
2024-06-07 08:39:12 -07:00
Gregory Schier 558b429807 Fix copy-as-curl variables 2024-06-05 06:53:38 -07:00
Gregory Schier cc1b3a9f25 Bump version 2024-06-04 23:53:45 -07:00
Gregory Schier 366dbc9f2a Only release on tag again 2024-06-04 23:53:31 -07:00
Gregory Schier 30ee2bea34 Fix default workspace settings on initial Workspace 2024-06-04 17:06:40 -07:00
Gregory Schier 6992436fc7 Better analytics error log 2024-06-04 16:27:22 -07:00
Gregory Schier 71afaa74d3 Merge branch 'beta' into master 2024-06-04 15:01:55 -07:00
Gregory Schier bcb991c83b Bump version 2024-06-04 15:00:34 -07:00
Gregory Schier 83c6250a8c Hopefully fix AppImage build not finding migrations. I think it was because the productName had a capital Yaak in it. 2024-06-04 14:59:40 -07:00
Gregory Schier 6d2e9b29d4 Remove Windows plugin 2024-06-04 02:56:52 -07:00
Gregory Schier 3135f9c187 2024.5.0-beta.2 (#38) 2024-06-03 14:03:25 -07:00
Gregory Schier ba166cc509 Bump version 2024-06-03 14:00:49 -07:00
Gregory Schier c53df99105 Move Postman to first plugin 2024-06-03 14:00:40 -07:00
Gregory Schier a0b08614f0 Preserve JSON/XPath filter (Closes #22) 2024-06-03 13:49:51 -07:00
Gregory Schier f4c91d131c Don't send request on completion (Fixes #27) 2024-06-03 07:49:13 -07:00
Gregory Schier 28e396cb1b Don't always change request method. Closes #29 2024-06-03 07:26:40 -07:00
Gregory Schier a669ed2c6d Tweak settings labels 2024-06-02 23:54:00 -07:00
Gregory Schier 4a418be11f Fix dropdown icon color 2024-06-02 23:50:26 -07:00
Gregory Schier 09953ff7d5 Don't call is_fullscreen so much 2024-06-02 23:38:56 -07:00
Gregory Schier 5127de831a Fix autocomplete for environment editor names 2024-06-02 17:52:51 -07:00
Gregory Schier 0b6997f59c <Select> uses custom component on Windows 2024-06-02 16:57:23 -07:00
Gregory Schier ddbd342033 Tweak Moonlight theme 2024-06-02 15:48:27 -07:00
Gregory Schier d8d0622773 Fix font size 2024-06-02 11:53:41 -07:00
Gregory Schier 23dec8e96f Better invalid URL errors 2024-06-02 11:53:35 -07:00
Gregory Schier cc9e8c4f1e Import content-type from Postman multi-part form 2024-06-02 11:53:25 -07:00
Gregory Schier ee6c7b6b1a Also release on beta branch 2024-05-31 10:37:21 -07:00
Gregory Schier 8d605f3190 Bump version 2024-05-31 09:46:57 -07:00
Gregory Schier 6ddaa99ef1 Fix multipart files 2024-05-31 09:32:16 -07:00
Gregory Schier a1102d2ba6 Fade in window contents (Layout) 2024-05-31 09:16:52 -07:00
Gregory Schier 0133432049 Window border on Linux 2024-05-31 08:43:35 -07:00
Gregory Schier bb9f0b1607 Try tweaking settings/theme for Windows. Setting the theme didn't work. 2024-05-30 23:38:49 -07:00
Gregory Schier ac1902c18b Ignore stoplights when centering settings title 2024-05-30 12:33:59 -07:00
Gregory Schier b13207072a Tweak appearance settings 2024-05-30 12:32:12 -07:00
Gregory Schier 3efb5bb4eb Dracula theme 2024-05-30 11:56:57 -07:00
Gregory Schier 606977d795 Tweak 2024-05-30 11:45:40 -07:00
Gregory Schier 9e8afc3cc9 Theme analytics and Moonlight 2024-05-30 11:00:50 -07:00
Gregory Schier a481cf403d Tweak settings for release 2024-05-30 10:28:59 -07:00
Gregory Schier 0b4e367dfc Unlisten to window event and fix hotkeys 2024-05-30 00:29:01 -07:00
Gregory Schier e4022cf532 Window title working again 2024-05-30 00:11:55 -07:00
Gregory Schier b942c22b20 Fix window stoplights 2024-05-29 22:59:34 -07:00
Gregory Schier fbc684140b Custom font sizes and better zoom 2024-05-29 12:10:01 -07:00
Gregory Schier 7c71d8b751 Merge branch 'refs/heads/release'
# Conflicts:
#	src-tauri/src/updates.rs
2024-05-26 09:11:29 -07:00
Gregory Schier d5c52e2ae5 Initial handler for yaak:// protocol 2024-05-26 08:45:15 -07:00
Gregory Schier 4f736b4656 Better theme export 2024-05-24 18:54:30 -07:00
Gregory Schier f3024a259e More theme stuff 2024-05-24 17:36:48 -07:00
Gregory Schier 11814b56f1 Tweak themes 2024-05-23 10:16:29 -07:00
Gregory Schier a936038f23 Hotdog stand 2024-05-23 10:14:07 -07:00
Gregory Schier 9e6bce0e41 More themes! 2024-05-23 09:40:11 -07:00
Gregory Schier ab33630ef6 Set window title on Mac 2024-05-23 09:40:00 -07:00
Gregory Schier 656c90b54f More tweaks 2024-05-22 23:44:47 -07:00
Gregory Schier 33768af571 Tweak Yaak default themes 2024-05-22 23:28:53 -07:00
Gregory Schier 56acec473b A bunch more theme stuff 2024-05-22 23:14:53 -07:00
Gregory Schier 4c5087659b Theme system refactor (#31) 2024-05-21 17:56:06 -07:00
Gregory Schier f1db72eb77 Move is_dev check for updates 2024-05-16 10:28:25 -07:00
Gregory Schier 6465d8732e Fix release (#30) 2024-05-14 15:35:53 -07:00
Gregory Schier 9780584f82 Merge remote-tracking branch 'refs/remotes/origin/release'
# Conflicts:
#	src-tauri/tauri.conf.json
2024-05-14 15:35:33 -07:00
Gregory Schier aad4110cc7 Bump version 2024-05-14 15:34:34 -07:00
Gregory Schier 636a73d151 Oops 2024-05-14 15:33:27 -07:00
Gregory Schier ed371c8cb7 Release 2024.4.1 (#28) 2024-05-14 15:01:55 -07:00
Gregory Schier 92709774f1 Fix maximize permission 2024-05-14 14:54:09 -07:00
Gregory Schier 8925fe9892 Fix autocomplete 2024-05-14 14:47:33 -07:00
Gregory Schier 5dd9539ab3 Add num launches to notification call 2024-05-14 14:25:10 -07:00
Gregory Schier 2c70b8bb0f Fix window clicking on Linux 2024-05-14 12:19:19 -07:00
Gregory Schier 1f88b7a41a Slight refactor 2024-05-14 08:44:15 -07:00
Gregory Schier c9e69b4b35 Build plugin 2024-05-14 08:28:20 -07:00
Gregory Schier 4842832468 Improve Curl imports 2024-05-14 08:28:01 -07:00
Gregory Schier affa7fec29 Bump version for release 2024-05-14 07:50:01 -07:00
Gregory Schier 77e7bfbbc1 Fix upgrade cancel 2024-05-14 07:08:57 -07:00
Gregory Schier cbbc01a7c6 Toast after data export 2024-05-14 00:36:15 -07:00
Gregory Schier 0a98f08f2a Fix selection of HTTP Request on create dropdown hotkey 2024-05-14 00:17:33 -07:00
Gregory Schier 9875d2353d Fix curl export with multi-line body 2024-05-14 00:05:54 -07:00
Gregory Schier 4894677599 Autocomplete URLs of other requests 2024-05-13 23:54:52 -07:00
Gregory Schier 3f40f36217 Fixed asset:// loading and tweak curl stuff 2024-05-13 23:20:30 -07:00
Gregory Schier 9480117be5 Bump version 2024-05-13 16:52:32 -07:00
Gregory Schier 50dc494b58 Better notifications 2024-05-13 16:52:20 -07:00
Gregory Schier 22aa14cdc2 Improve copy-as-curl 2024-05-13 11:30:10 -07:00
Gregory Schier b18c042483 Refactor UpdateMode 2024-05-13 07:28:45 -07:00
Gregory Schier 80ea4c14a4 Hide large GRPC messages by default 2024-05-13 07:19:26 -07:00
Gregory Schier 0e22228766 Bump version 2024-05-12 12:11:14 -07:00
Gregory Schier 9ce1732d75 Add curl banner to import dialog 2024-05-10 13:36:30 -07:00
Gregory Schier fd6ad952fe Change curl import to post-toast 2024-05-10 13:06:40 -07:00
Gregory Schier 582da26574 Toast component and use for copy-as-curl 2024-05-10 12:37:04 -07:00
Gregory Schier b533a01677 Insomnia YAML and loading state on import 2024-05-10 09:46:20 -07:00
Gregory Schier acc07780a7 Some fixes after upgrading react-query 2024-05-10 09:19:29 -07:00
Gregory Schier 9f4c80ecf1 Update deps 2024-05-10 08:52:06 -07:00
Gregory Schier 19d2574e33 Fix paste handler in Editor.tsx 2024-05-09 23:17:43 -07:00
Gregory Schier 2e3af37d16 Fix release targets 2024-05-09 15:38:27 -07:00
Gregory Schier 9e14aae069 Don't commit .cargo 2024-05-09 10:17:35 -07:00
Gregory Schier d67c0a614d Fix args 2024-05-09 09:35:39 -07:00
Gregory Schier 1c9a3512a0 Update GH action 2024-05-09 09:33:47 -07:00
Gregory Schier 6b354413f3 Try fix linux 2024-05-09 08:37:18 -07:00
Gregory Schier 819b54f376 Fix env var in GH Action 2024-05-09 08:29:45 -07:00
Gregory Schier 53ce4bfc4f Fix curl export tests 2024-05-09 08:18:06 -07:00
Gregory Schier a14f41a77a Default .app/.dev/etc domains to https protos 2024-05-09 08:16:06 -07:00
Gregory Schier 0f0cbe7bcb Bump version for beta 2024-05-09 07:52:36 -07:00
Gregory Schier 657153beff Fix GRPC event.emit permissions 2024-05-09 07:45:00 -07:00
Gregory Schier bf4eee72df Import from Curl 2024-05-09 07:31:52 -07:00
Gregory Schier c64c794f86 Package lock 2024-05-08 15:37:53 -07:00
Gregory Schier e10ff3d136 Slight refactor to copy-as-curl 2024-05-08 00:28:40 -07:00
Gregory Schier b4d268b202 Add rename request to context menu
Closes #21
2024-05-08 00:08:18 -07:00
Gregory Schier 88ee60c97f Copy as curl 2024-05-08 00:00:50 -07:00
Gregory Schier 82e2a6b73e Curl import (#24) 2024-05-07 21:57:03 -07:00
Gregory Schier 896e3d5831 Upgrade to Tauri 2.0 (#23) 2024-05-04 14:14:19 -07:00
Gregory Schier 7f02060b9c Fix horizontal scroll on GraphQL variables editor 2024-04-18 10:53:36 -07:00
Gregory Schier 91fdbe4d33 Oops 2024-04-02 10:11:37 +02:00
Gregory Schier ba5bfd07f7 Postman text body import 2024-04-02 10:10:16 +02:00
Gregory Schier fd2132994b Bump version 2024-04-01 08:48:26 +02:00
Gregory Schier 612a38d6e1 Separate floating sidebar hidden state 2024-03-22 10:43:10 -07:00
Gregory Schier d2211c5e9e Filtering for cmd palette 2024-03-22 10:42:45 -07:00
Gregory Schier b8d5e5cecb Space between var placeholders and code fold cursor 2024-03-22 10:42:35 -07:00
Gregory Schier 6779251ff3 Fix Postman variable import 2024-03-22 10:40:51 -07:00
Gregory Schier 2904caea79 Adjust highlight color 2024-03-22 10:37:45 -07:00
Gregory Schier 290636c098 Some scrolling tweaks 2024-03-20 17:27:47 -07:00
Gregory Schier 0a44635bcf Fix URL bar buttons in expanded state 2024-03-20 16:17:05 -07:00
Gregory Schier 1683271198 Bump version 2024-03-20 16:05:14 -07:00
Gregory Schier cf46243e6d Fix dialog height 2024-03-20 16:05:01 -07:00
Gregory Schier d2d5f2b957 Remove openOnHotKeyAction in favor of putting hotkey on the trigger button= 2024-03-20 15:56:39 -07:00
Gregory Schier e2220f771d Use SQLite connect options 2024-03-20 13:33:11 -07:00
Gregory Schier 6096199174 Pass workspace id to import 2024-03-20 07:30:59 -07:00
Gregory Schier 09a23ce357 Handle import errors 2024-03-20 07:27:12 -07:00
Gregory Schier a49ead969e Postman bearer, global auth, global vars 2024-03-20 07:26:46 -07:00
Gregory Schier 8d24e8c282 Implement select for command palette 2024-03-19 17:24:57 -07:00
Gregory Schier 25de5460ad Tweak checkbox and autocomplete styles 2024-03-19 17:08:06 -07:00
Gregory Schier 776679e2c3 Fix sidebar border 2024-03-19 16:44:37 -07:00
Gregory Schier 351cfae042 Export multiple workspaces 2024-03-19 13:43:33 -07:00
Gregory Schier bb561d7b98 Fix settings query store and analytics 2024-03-19 10:23:21 -07:00
Gregory Schier 88ae30101a Start of command palette 2024-03-18 17:09:01 -07:00
Gregory Schier 2d6caa1126 useRequests hook 2024-03-18 13:49:36 -07:00
Gregory Schier e2166d8a26 Fix editor key events 2024-03-18 13:40:15 -07:00
Gregory Schier c49e81cde4 Simple tests for Postman and Yaak importers 2024-03-18 13:40:00 -07:00
Gregory Schier fa46611d76 Set filename on Multipart part 2024-03-18 13:24:27 -07:00
Gregory Schier 93f9eee884 Fix GraphQL editor large variables quirk 2024-03-18 13:10:55 -07:00
Gregory Schier 9d547dee3d Fix postman import and import Insomnia gRPC 2024-03-18 08:18:04 -07:00
Gregory Schier f75446de87 Better padding 2024-03-16 13:59:06 -07:00
Gregory Schier e4bd257bae Remove debug log 2024-03-16 12:50:27 -07:00
Gregory Schier 901cf53cd2 Custom content-type for multipart items 2024-03-16 12:49:17 -07:00
Gregory Schier 4b33a696ac Content menu on entire sidebar 2024-03-16 10:47:10 -07:00
Gregory Schier 3a9d4045d0 Obfuscate environment variables 2024-03-16 10:42:46 -07:00
Gregory Schier d514880cd8 Fix light mode text selection 2024-03-16 09:48:55 -07:00
Gregory Schier 49da0e5aa8 Stubbed out global commands helper 2024-03-16 09:46:11 -07:00
Gregory Schier 40f8a41a8d Fix deleting workspace staying on deleted workspace path 2024-03-15 13:07:02 -07:00
Gregory Schier 76d1478f19 Bump version 2024-03-10 18:15:00 -07:00
Gregory Schier 8c09558f62 Fix recent workspaces 2024-03-10 17:42:25 -07:00
Gregory Schier b177993f8a Fix adding header if not exist 2024-03-10 17:10:16 -07:00
Gregory Schier 6e102175c0 Remove completion debug blur thing 2024-03-10 16:46:18 -07:00
Gregory Schier dc1af2faec Adjust detected content-type header 2024-03-10 16:26:06 -07:00
Gregory Schier ef8528d2b4 Clickable links in response viewer 2024-03-10 13:41:44 -07:00
Gregory Schier d51c58aa3d Better error handling for file not found 2024-03-10 11:02:32 -07:00
Gregory Schier 11e7fb88cb Cancel file selection sets to undefined 2024-03-10 10:57:49 -07:00
Gregory Schier efd7e7bf84 Binary file uploads and missing workspace empty state 2024-03-10 10:56:38 -07:00
Gregory Schier ce9ccd34e7 Fix GraphQL Header backend 2024-02-28 13:38:22 -08:00
Gregory Schier 9dc2435e43 Fix GraphQL content type on creation, and placeholder 2024-02-28 13:04:17 -08:00
Gregory Schier 4f6a678ca6 Include default protoc includes 2024-02-28 09:45:11 -08:00
Gregory Schier 5804344bbf Bump version 2024-02-28 08:51:34 -08:00
Gregory Schier 18caa927b7 Fix dropdown arrow keys 2024-02-28 08:51:08 -08:00
Gregory Schier e5bafd088c Track GRPC 2024-02-28 07:32:05 -08:00
Gregory Schier 33b15c52c2 Analytics ID 2024-02-28 07:27:19 -08:00
Gregory Schier 796ceb56c4 Analytics ID 2024-02-28 07:26:02 -08:00
Gregory Schier 597664d6f9 Remove Escape from hotkeys 2024-02-27 18:58:41 -08:00
Gregory Schier a40437a7fb Fix sidebar focus 2024-02-27 10:33:20 -08:00
Gregory Schier 902030bfff Fix gap in dropdown menu items 2024-02-27 10:27:04 -08:00
Gregory Schier 5e7b2db28d Methods in recent dropdown 2024-02-27 10:20:35 -08:00
Gregory Schier e12b85daae Many hotkey improvements 2024-02-27 10:10:38 -08:00
Gregory Schier 2705e90016 Info logs in build 2024-02-26 17:27:08 -08:00
Gregory Schier fd9056179d Introspection tweak 2024-02-26 17:24:44 -08:00
Gregory Schier ac1f4395d2 Tweak editor find/replace 2024-02-26 17:17:37 -08:00
Gregory Schier d5afc37dd7 Fix find/replace CM styling 2024-02-26 17:07:09 -08:00
Gregory Schier 4876ff587a Fix lint errors 2024-02-26 07:43:08 -08:00
Gregory Schier c2f3fac22b Autocomplete icons and transfer proto files on duplicate 2024-02-26 07:39:53 -08:00
Gregory Schier eae1177365 Prompt folder name on create 2024-02-26 07:14:27 -08:00
Gregory Schier 5a3596478a Better creation from folder menu 2024-02-26 07:09:59 -08:00
Gregory Schier 629e92a98e Auto-fill link to changelog in release script 2024-02-25 18:42:04 -08:00
Gregory Schier 964e6ddb63 Protoc sidecar 2024-02-25 17:43:29 -08:00
Gregory Schier 31b5032817 Fix deletion in sidebar 2024-02-25 12:56:57 -08:00
Gregory Schier 520ff0f68c Fix create dropdown hotkey 2024-02-24 22:02:04 -08:00
Gregory Schier 3d61bac030 Try changing macOS version 2024-02-24 21:25:58 -08:00
Gregory Schier 34a7c39637 Bump some things 2024-02-24 21:23:02 -08:00
Gregory Schier 4d481b82a5 Fix response pane height 2024-02-24 19:31:59 -08:00
Gregory Schier 79ee5a29b1 Don't build plugins 2024-02-24 18:58:51 -08:00
Gregory Schier 73f0e29c59 Remove npm ci plugins 2024-02-24 18:28:07 -08:00
Gregory Schier 9a28a28ae6 Check in built plugins again 2024-02-24 18:27:36 -08:00
Gregory Schier 06177c8077 Add pkg locks 2024-02-24 18:19:16 -08:00
Gregory Schier ea61428ff5 Install plugins in CI 2024-02-24 16:29:22 -08:00
Gregory Schier 2e980660c8 Bump version 2024-02-24 16:22:55 -08:00
Gregory Schier ad890e01b0 Got json-schema autocomplete working again 2024-02-24 16:22:22 -08:00
Gregory Schier 5bd2d0959a Proto files off model 2024-02-24 14:16:58 -08:00
Gregory Schier 046a569ebe Better gRPC status on error 2024-02-24 12:41:43 -08:00
Gregory Schier fd044005a6 More analytics, and cancel requests 2024-02-24 11:30:07 -08:00
Gregory Schier 0857ef9afd Hook up empty state buttons for first-launch experience 2024-02-23 16:34:19 -08:00
Gregory Schier 3dfb8b3fb2 gRPC in import/export 2024-02-23 16:16:13 -08:00
Gregory Schier 4571d7dc93 Everything in messages now 2024-02-22 19:51:30 -08:00
Gregory Schier 321b013ce6 Format XML responses 2024-02-22 01:00:02 -08:00
Gregory Schier ca4d9b1ad6 Refactor into grpc events 2024-02-22 00:49:22 -08:00
Gregory Schier bb628e699f Fix split layout placeholder 2024-02-18 09:12:44 -08:00
Gregory Schier a9d0bb3915 Add other body type 2024-02-18 08:59:14 -08:00
Gregory Schier 555389b667 Add metadata and squash migrations 2024-02-18 08:35:31 -08:00
Gregory Schier ed55eb2238 Better environment edit dialog 2024-02-18 07:44:53 -08:00
Gregory Schier e934ca9586 Allow editing base environment 2024-02-18 00:14:47 -08:00
Gregory Schier d953a75073 Render gRPC message body 2024-02-18 00:14:26 -08:00
Gregory Schier 8d29fad261 gRPC authentication 2024-02-17 23:47:28 -08:00
Gregory Schier ab8503d87c Even better dropdown filtering 2024-02-17 22:27:01 -08:00
Gregory Schier daf138c967 Started gRPC tabs 2024-02-17 22:15:44 -08:00
Gregory Schier 2205464e1e Better dropdown filtering 2024-02-17 22:03:42 -08:00
Gregory Schier 44b45fc900 Prevent dragging folders into itself 2024-02-17 15:32:15 -08:00
Gregory Schier 323449b205 Fix deps 2024-02-17 15:20:13 -08:00
Gregory Schier 63f762a891 Upgrade Vite deps and fix windows DnD 2024-02-17 14:57:12 -08:00
Gregory Schier 2679f5ebdf Fix postman importer TS ref 2024-02-17 11:05:57 -08:00
Gregory Schier 29571b4942 Add more info to settings 2024-02-17 11:04:19 -08:00
Gregory Schier 4d97dce6b1 Adjust placeholder error colors 2024-02-15 21:15:18 -08:00
Gregory Schier c8fedd3d2c Tweak tab padding 2024-02-15 16:38:14 -08:00
Gregory Schier 939117d5c8 Responsive (scroll) workspace header 2024-02-15 16:30:08 -08:00
Gregory Schier a1b4d24907 Better button highlight border 2024-02-15 15:55:32 -08:00
Gregory Schier c8feb6482b Refactor recentRequest/Env/Workspace 2024-02-15 15:14:18 -08:00
Gregory Schier b7d9f0bf92 Better sidebar collapse, debuonce container uqeries, fix recent requests 2024-02-15 15:07:15 -08:00
Gregory Schier fe4696daf7 Better recent work/env/req logic 2024-02-13 17:21:54 -08:00
Gregory Schier d63d9ca213 Fix active environment on workspace change 2024-02-13 16:42:07 -08:00
Gregory Schier a57ad3bd7c Active environment in query param 2024-02-13 16:32:31 -08:00
Gregory Schier b0a341b29f Better variable placeholder styles 2024-02-13 16:32:17 -08:00
Gregory Schier 8f8bd00487 Show GQL for graphql requests in sidebar 2024-02-13 16:32:00 -08:00
Gregory Schier bd084cdf02 Better highlight on JSON tree 2024-02-13 16:31:38 -08:00
Gregory Schier 2cd184f0c7 Cmd+n to open dropdown 2024-02-11 14:17:09 -08:00
Gregory Schier 27112a39f8 Tab-to-indent in editor 2024-02-11 14:16:36 -08:00
Gregory Schier 0a33a32475 Make editor variables more prominent 2024-02-11 14:16:25 -08:00
Gregory Schier eb08db3d4a Fix dropdown open index 2024-02-11 14:16:11 -08:00
Gregory Schier 630e573777 Catch URL error when URL = "{{HOST}}" 2024-02-11 09:04:27 -08:00
Gregory Schier c71790195b Grap gRPC status codes 2024-02-11 08:52:12 -08:00
Gregory Schier 90b0112f14 Use basemsg 2024-02-11 08:29:57 -08:00
Gregory Schier d274b85db1 Combine grpc handlers, fix duplicate 2024-02-10 10:41:45 -08:00
Gregory Schier a55cf9e216 Fix response emit and sidebar flex 2024-02-09 16:16:02 -08:00
Gregory Schier 7a960574a5 Sidebar methods and fix model hooks 2024-02-09 16:09:24 -08:00
Gregory Schier 017de296a0 Fix editor selection/cursor and lint errors 2024-02-09 14:32:58 -08:00
Gregory Schier c7620e90a1 Remove built plugins from source control 2024-02-09 05:09:37 -08:00
Gregory Schier 0d8203da47 Merge branch 'grpc' 2024-02-09 05:07:45 -08:00
Gregory Schier 671d0fe847 Move plugins to build folder 2024-02-09 05:07:34 -08:00
Gregory Schier 9f54eb77a0 gRPC Support (#20) 2024-02-09 05:01:00 -08:00
Gregory Schier bc4ef2d9f7 Better message serialization 2024-02-09 05:00:48 -08:00
Gregory Schier 9c35f7c85c Working sidebar actions for grpc 2024-02-07 00:02:02 -08:00
Gregory Schier d668244f9b Change hotkey handling to capture phase 2024-02-06 23:44:10 -08:00
Gregory Schier a2a36ceb54 Fix pool management 2024-02-06 23:26:24 -08:00
Gregory Schier 14582e6bf4 Minor tweaks 2024-02-06 19:32:03 -08:00
Gregory Schier 2ea7e6ba27 gRPC schema from files! 2024-02-06 19:20:32 -08:00
Gregory Schier 395481b5cb Proto selection UI/models 2024-02-06 12:29:23 -08:00
Gregory Schier 0dc6b2d9e7 Better reflect failure UI 2024-02-05 14:50:47 -08:00
Gregory Schier 5ad13a61e6 Async connection management 2024-02-05 11:29:27 -08:00
Gregory Schier 3ed00c0955 Refactor model emit, and recent conn dropdown 2024-02-05 10:39:47 -08:00
Gregory Schier e113f86c5d db to app_handle! 2024-02-04 22:52:04 -08:00
Gregory Schier 236087fdc8 Single upserted_model event 2024-02-04 21:19:15 -08:00
Gregory Schier 7bb620e6d5 Fix DB mutex deadlock 2024-02-04 21:17:05 -08:00
Gregory Schier acb01cf086 More messages 2024-02-04 19:08:31 -08:00
Gregory Schier 07cad2e337 Client streaming working 2024-02-04 17:53:15 -08:00
Gregory Schier 4ac0f20f2a Bidirectional working 2024-02-04 14:10:38 -08:00
Gregory Schier be0cc4bfe4 Messages are flowing! 2024-02-04 12:09:10 -08:00
Gregory Schier 6d6f865fb7 Use req/conn/msg models in unary/server 2024-02-04 11:57:12 -08:00
Gregory Schier d2b44cb7d2 Remove console log 2024-02-03 13:39:45 -08:00
Gregory Schier 1c7bdb346a Grpc layout use new models 2024-02-03 13:28:31 -08:00
Gregory Schier 4360b3658f Show gRPC requests in sidebar 2024-02-03 13:08:24 -08:00
Gregory Schier 47a8f06c90 gRPC models and tables 2024-02-03 11:14:42 -08:00
Gregory Schier 2a10113a57 Tiny fixes 2024-02-02 18:41:00 -08:00
Gregory Schier fb817bc2d5 Better formatting 2024-02-02 13:37:44 -08:00
Gregory Schier 6c69fff27d A bit better handling of responses 2024-02-02 13:32:06 -08:00
Gregory Schier d8948bb061 Split layouts and things 2024-02-02 12:41:37 -08:00
Gregory Schier fdedb9bd28 bidi hacked! 2024-02-02 01:10:54 -08:00
Gregory Schier 4e781b752d Implement cancel 2024-02-02 00:18:37 -08:00
Gregory Schier b526ea506b Better connection management 2024-02-01 20:29:32 -08:00
Gregory Schier e3a2b7146b gRPC manager mostly working 2024-02-01 15:36:50 -08:00
Gregory Schier 1ae123bb51 Small refactor 2024-02-01 02:42:59 -08:00
Gregory Schier c655557313 Refactor commands and DB 2024-02-01 02:29:24 -08:00
Gregory Schier 3ab1f5308c Some minor tweaks 2024-02-01 00:48:03 -08:00
Gregory Schier 9a2688617d Revert response JSON tree 2024-02-01 00:38:57 -08:00
Gregory Schier a3c979a987 Even better styles 2024-02-01 00:36:49 -08:00
Gregory Schier 1628d0c843 Styled it up a bit 2024-02-01 00:16:09 -08:00
Gregory Schier 393df4e269 Merge remote-tracking branch 'origin/grpc' into grpc 2024-01-31 22:14:15 -08:00
Gregory Schier 1e309e821e Hacky server streaming done 2024-01-31 22:14:08 -08:00
Gregory Schier acdec8c96d Hacky client streaming done 2024-01-31 22:13:46 -08:00
Gregory Schier c64f1108f0 Initial frontend for gRPC UI 2024-01-30 16:43:54 -08:00
Gregory Schier c51d5c5377 Hooked up test call from frontend! 2024-01-29 20:50:43 -08:00
Gregory Schier 373915671e Fix cookie jar 2024-01-28 17:49:04 -08:00
Gregory Schier 650aa240ea Track dialogs 2024-01-28 16:33:36 -08:00
Gregory Schier 2983f2544d Fix dropdown separator 2024-01-28 16:21:41 -08:00
Gregory Schier 2be41475e6 Better format 2024-01-28 16:19:46 -08:00
Gregory Schier 65c023c8b8 More response info 2024-01-28 16:02:49 -08:00
Gregory Schier a54fff93a6 Better BG color 2024-01-28 14:43:04 -08:00
Gregory Schier 6104a8b3c2 Cookie Support (#19) 2024-01-28 14:39:51 -08:00
Gregory Schier 6c44035d2b Add shift to hotkey dialog hotkey 2024-01-19 22:11:20 -08:00
Gregory Schier 29e7bb1dcb Show alert after force checking updates 2024-01-19 22:11:02 -08:00
Gregory Schier ae9c23b740 Better dialog padding 2024-01-19 22:08:32 -08:00
Gregory Schier 1df65fbf87 Change env hotkey to use shift 2024-01-19 21:53:48 -08:00
Gregory Schier 13fdf9d9e4 Fix URL 2px grow on focus 2024-01-19 21:49:51 -08:00
Gregory Schier 7da01e21e2 Bump version 2024-01-19 13:42:02 -08:00
Gregory Schier 05e8841e82 Fix analytics again 2024-01-18 22:28:25 -08:00
Gregory Schier a837ffd7bb Fix dialog close button 2024-01-18 20:57:42 -08:00
Gregory Schier def44d3266 Fix URLBar expanded state inner buttons 2024-01-18 20:40:56 -08:00
Gregory Schier 60acc86e52 Some analytics fixes 2024-01-18 20:23:02 -08:00
Gregory Schier 874c73b50f Launch analytics events, changelog, better filter styles 2024-01-18 14:42:02 -08:00
Gregory Schier 99d69687b6 Bump version 2024-01-17 14:56:47 -08:00
Gregory Schier a49ae3d89d Custom HTTP method names 2024-01-17 14:52:19 -08:00
Gregory Schier 59f723827e Workspace header tweak Windows 2024-01-17 18:48:43 -08:00
Gregory Schier b1e14a6dc4 Fix header in fullscreen mode on Mac 2024-01-17 09:34:47 -08:00
Gregory Schier e459674338 Download response, and some fixes 2024-01-16 17:02:55 -08:00
Gregory Schier e196f1d98e Fix editor toolbar blocking things 2024-01-15 21:44:53 -08:00
Gregory Schier dc552b8099 Better request creation (Closes #14) 2024-01-15 21:39:27 -08:00
Gregory Schier 9658434503 XPath plugin 2024-01-15 21:27:47 -08:00
Gregory Schier ade6c1c4f7 Fix send icon 2024-01-15 15:43:55 -08:00
Gregory Schier 2a759144d6 Switch to Lucide icons 2024-01-15 15:42:28 -08:00
Gregory Schier b0e1614aac Improve response filter UX 2024-01-15 15:19:29 -08:00
Gregory Schier 13307a76af JSONPath filter plugins working 2024-01-15 15:06:49 -08:00
Gregory Schier d23de93917 Move plugin stuff around 2024-01-15 14:33:51 -08:00
Gregory Schier f55c8aba56 Fix request duplication 2024-01-15 13:47:44 -08:00
Gregory Schier 009036b004 Fix workspace defaults 2024-01-15 12:25:13 -08:00
Gregory Schier 8887d2a8e9 Better settings dialog 2024-01-15 12:16:44 -08:00
Gregory Schier 4df7356950 Fix resize observer 2024-01-15 12:02:08 -08:00
Gregory Schier 34a8fc4e22 Move request-related settings to workspace 2024-01-15 11:52:36 -08:00
Gregory Schier b01747299f Bump beta version 2024-01-14 20:30:25 -08:00
Gregory Schier 3e9a89a4c9 fix mac decorations 2024-01-14 17:22:31 -08:00
Gregory Schier 2ef6885949 Integrated titlebar windows 2024-01-14 16:44:04 -08:00
Gregory Schier 218b593bfa Further titlebar tweaks 2024-01-14 12:02:44 -08:00
Gregory Schier b60bc091b8 Better titlebar control icons 2024-01-14 11:56:21 -08:00
Gregory Schier 55a2d92c8b Basic Linux/Windows integrated titlebar 2024-01-13 23:40:32 -08:00
Gregory Schier b212b80927 Fix hotkey formatting 2024-01-12 22:12:01 -08:00
Gregory Schier 9c4cd898a2 beta tag 2024-01-12 22:00:55 -08:00
Gregory Schier 93d1ff778e fix appearance init 2024-01-12 21:59:46 -08:00
Gregory Schier a8630ede38 Vendor Openssl 2024-01-12 21:03:28 -08:00
Gregory Schier 3600f3aa26 Hotkeys for request switcher 2024-01-12 21:03:20 -08:00
Gregory Schier 905bce0322 Appearance setting and gzip/etc support 2024-01-12 13:39:08 -08:00
Gregory Schier 202e272e90 Initial settings implementation 2024-01-11 21:13:17 -08:00
Gregory Schier 11161fda51 Dropdown manages hotkeys now 2024-01-11 10:18:05 -08:00
Gregory Schier 9f75497f15 Hotkey for keyboard shortcut help 2024-01-10 22:05:16 -08:00
Gregory Schier 8dcf9a8921 Bump version number 2024-01-10 16:25:55 -08:00
Gregory Schier d414709d1a Add hotkey dialog and rust-only analytics 2024-01-10 16:18:08 -08:00
Gregory Schier 94361f7c27 Fix beta icon 2024-01-08 17:07:42 -08:00
Gregory Schier 6056859da6 Bump version to 2024.0.0 2024-01-08 15:57:59 -08:00
Gregory Schier b1692b41f0 Hotkey labels 2024-01-08 15:57:21 -08:00
Gregory Schier 312c01e405 Show hotkeys on empty views 2024-01-08 15:13:44 -08:00
Gregory Schier 6f15d1352b Remove base env, fix hotkeys, and QoL improvements 2024-01-07 22:24:19 -08:00
Gregory Schier cb9960bbc8 Fix hotkeys getting stuck on cmd+tab 2024-01-07 21:32:25 -08:00
Gregory Schier 9e31bbcfa3 Always show settings dropdown 2023-11-22 09:39:30 -08:00
Gregory Schier 43706009a2 Tweak margin 2023-11-22 09:37:50 -08:00
Gregory Schier c11a0ca823 Fix bottom-up dropdown positioning 2023-11-22 09:35:56 -08:00
Gregory Schier 77e3f4cc40 Bump version 2023-11-22 09:06:47 -08:00
Gregory Schier 884909d449 Better linux/Windows support for hotkeys 2023-11-22 09:06:22 -08:00
Gregory Schier e5e356a822 Good hotkey support 2023-11-22 09:01:48 -08:00
Gregory Schier 1d9aa6748d Reset URL bar when request changes 2023-11-21 23:26:29 -08:00
Gregory Schier 7742cde11a Env dialog hotkey 2023-11-21 22:35:28 -08:00
Gregory Schier 7381dcec05 Remove response body and basic hotkeys 2023-11-21 22:15:01 -08:00
Gregory Schier 2c7bf29ec6 Remove app-specific menu items 2023-11-21 19:18:40 -08:00
Gregory Schier dafaa5940a Fix macOS menu and fallback URL 2023-11-21 09:24:13 -08:00
Gregory Schier 0281396d58 Hide menu on windows/linux 2023-11-21 08:17:37 -08:00
Gregory Schier e98081b9f2 Disable sandboxing (again) 2023-11-19 21:59:55 -08:00
Gregory Schier 0f7839bfaf Fix drag-drop reorder 2023-11-19 21:43:01 -08:00
Gregory Schier d2f0e690e0 Postman ID generation 2023-11-19 20:54:02 -08:00
Gregory Schier c7581d283e Bump beta.3 2023-11-19 20:46:55 -08:00
Gregory Schier a68024604b Postman variables + urlencoded forms 2023-11-19 20:29:24 -08:00
Gregory Schier ceb55bc56b Add back Windows/Linux builds 2023-11-19 18:22:13 -08:00
Gregory Schier c9b2842e62 Remove Tauri context menu plugin 2023-11-19 18:21:10 -08:00
Gregory Schier cb55bc1746 Fix header padding windows/linux 2023-11-19 18:14:49 -08:00
Gregory Schier af59695a55 Some tweaks 2023-11-19 18:13:32 -08:00
Gregory Schier a7a2608c44 Beta 2 2023-11-19 17:41:58 -08:00
Gregory Schier 78b8b96b8f Network entitlement 2023-11-19 17:41:46 -08:00
Gregory Schier ed1427d421 Try sandboxing again 2023-11-19 17:06:31 -08:00
Gregory Schier 5c3f1af87b Remove sandboxing 2023-11-17 09:33:16 -08:00
Gregory Schier 8872b96efa Out of beta 2023-11-17 07:53:26 -08:00
Gregory Schier 44fa2c8dbb Tweak 2023-11-17 07:52:03 -08:00
Gregory Schier 3ad06be9d6 Format GraphQL variables 2023-11-17 07:51:03 -08:00
Gregory Schier 21bbb29a4f Drag into folder (Closes #8) 2023-11-17 07:36:01 -08:00
Gregory Schier 48923634d9 Mostly move some stuff around 2023-11-16 18:53:34 -08:00
Gregory Schier f9703fbc1d Better update logic 2023-11-14 14:28:06 -08:00
Gregory Schier 8839a0b7af Better dropdown menu 2023-11-14 10:56:56 -08:00
Gregory Schier edb820c7d9 Version to beta 2023-11-14 10:07:39 -08:00
Gregory Schier 8584f0aa33 Beta channel updates 2023-11-14 08:57:46 -08:00
Gregory Schier f60cb35b5e Multipart form UI and fixes 2023-11-14 00:32:02 -08:00
Gregory Schier a4f5e4a6b8 Got multipart working (text-only) 2023-11-13 23:26:11 -08:00
Gregory Schier ecb3ace6a9 Fix window title moving stoplights (for now) 2023-11-13 23:25:47 -08:00
Gregory Schier 5f2b20a0da Postman import form data 2023-11-13 11:48:28 -08:00
Gregory Schier 2158692291 Some small improvements 2023-11-13 11:44:29 -08:00
Gregory Schier feab2abe0c Form urlencoded bodies! 2023-11-13 11:28:37 -08:00
Gregory Schier ae62a581a2 Url parameters done 2023-11-13 10:52:11 -08:00
Gregory Schier 92dcbedf2a Minor tweaks 2023-11-12 21:16:42 -08:00
Gregory Schier 356b8acd5b Custom updater code 2023-11-12 21:16:33 -08:00
Gregory Schier 5fd16b922c Request body is now an object 2023-11-12 11:16:12 -08:00
Gregory Schier f1fc57830d Some postman import improvements 2023-11-11 10:43:11 -08:00
Gregory Schier 8951973f02 Sync window title (Closes #13) 2023-11-10 15:55:50 -08:00
Gregory Schier 2377b29d86 Dev app icon 2023-11-10 13:06:12 -08:00
Gregory Schier f9879824d2 Upgrade sqlx 2023-11-10 12:28:33 -08:00
Gregory Schier 184ce2cb72 Clean up importers 2023-11-10 11:39:17 -08:00
Gregory Schier 2a2fb07c60 Fix is_empty check 2023-11-10 09:12:20 -08:00
Gregory Schier feb542fd2b Postman importer semi-complete 2023-11-10 09:08:20 -08:00
Gregory Schier d5295efd82 Tidy up logs and general cleanup 2023-11-09 20:33:09 -08:00
Gregory Schier 8156b51bda Move error alert to hook 2023-11-09 20:02:42 -08:00
Gregory Schier b04b56d240 Show import errors 2023-11-09 20:00:19 -08:00
Gregory Schier 3685786cb5 Hacky Yaak import complete! 2023-11-09 19:40:31 -08:00
Gregory Schier 0d94306b28 More fallback request handing 2023-11-09 17:42:10 -08:00
Gregory Schier 895fdce1b7 Request fallback name in header 2023-11-09 17:34:57 -08:00
Gregory Schier 29e0b9e5d2 Better default request names 2023-11-09 17:26:04 -08:00
Gregory Schier 3f717d4c5a Better non-named requests 2023-11-09 17:17:03 -08:00
Gregory Schier 4ce2436ac5 Better Yaak export 2023-11-09 17:03:29 -08:00
Gregory Schier 8ec735a419 Refactor previous commit 2023-11-09 16:50:57 -08:00
Gregory Schier c09bea29a2 Default request name to URL(ish) 2023-11-09 16:47:00 -08:00
Gregory Schier 97c5d2c7eb Rename initial workspace to "Yaak" 2023-11-09 13:17:21 -08:00
Gregory Schier 95b2e0ae62 No analytics in dev 2023-11-09 11:46:52 -08:00
Gregory Schier 6dd9a112fe Analytics event properties 2023-11-09 11:44:59 -08:00
Gregory Schier 95b428dcd6 Context menu, logs in DevTools, export, tweaks 2023-11-09 09:28:01 -08:00
Gregory Schier d0c08fc8ef Fix plugin (again) 2023-11-08 13:33:15 -08:00
Gregory Schier 53452875da Bundle plugin in Git 2023-11-08 13:06:49 -08:00
Gregory Schier a6609833c2 Move plugins back 2023-11-08 12:34:14 -08:00
Gregory Schier 6f68e11c4d Fix permissions 2023-11-08 12:02:17 -08:00
Gregory Schier fe8365e860 Bump version 2023-11-08 10:12:01 -08:00
Gregory Schier 81188acac1 Tweak theme 2023-11-08 10:11:29 -08:00
Gregory Schier bdb5305d16 Tweak theme 2023-11-08 09:56:13 -08:00
Gregory Schier c4926f430a Track screen size, os, and version 2023-11-08 09:49:29 -08:00
Gregory Schier 98ed12a2df Rust analytics and a few tweaks 2023-11-08 09:13:32 -08:00
Gregory Schier b35c692d58 Add basic analytics 2023-11-07 09:53:59 -08:00
Gregory Schier 7657166bfa Cancel responses on startup 2023-11-06 13:06:15 -08:00
Gregory Schier bed0e034aa Send all in a folder 2023-11-06 10:53:39 -08:00
Gregory Schier 0ecb16a2e7 Rework workspace header 2023-11-06 10:42:59 -08:00
Gregory Schier a30adb1fe9 Fix sidebar focus max recursion 2023-11-06 10:40:02 -08:00
Gregory Schier 1db78af0ad Save after formatting GraphQL (Closes #9) 2023-11-06 07:20:47 -08:00
Gregory Schier 0d2eb509e8 Move plugins back to root dir 2023-11-06 07:18:53 -08:00
Gregory Schier 5bfcccbb2f Persist sidebar collapsed state (Closes #10) 2023-11-06 07:18:42 -08:00
Gregory Schier 7eafff082c Vite to bundle insomnia plugin 2023-11-05 22:13:22 -08:00
Gregory Schier 8c51cb94b8 Better import conversion 2023-11-05 14:46:08 -08:00
Gregory Schier b0612b8632 Basic import of request body and bearer auth 2023-11-05 14:35:25 -08:00
Gregory Schier 36a44c9ca6 Recursive Insomnia import! 2023-11-05 13:33:23 -08:00
Gregory Schier 94048a0337 Remove numbers from recent requests 2023-11-04 16:19:21 -07:00
Gregory Schier 11166470aa Fix drop marker indent 2023-11-04 11:16:41 -07:00
Gregory Schier de190ca8fa Folder actions 2023-11-04 10:48:18 -07:00
Gregory Schier 9471009b8b Folder chevron icon 2023-11-03 23:10:44 -07:00
Gregory Schier de165b5c55 Fix arrow navigation for nested sidebar 2023-11-03 17:29:33 -07:00
Gregory Schier 99e4b08653 Folder-based drag-n-drop complete! 2023-11-03 16:29:21 -07:00
Gregory Schier 65648ac877 Sidebar ordering 95% done! 2023-11-03 15:02:17 -07:00
Gregory Schier b8a859895b Nested sidebar ordering almost working 2023-11-03 14:08:46 -07:00
Gregory Schier 60fa9dcf13 Add folder model 2023-11-03 07:49:44 -07:00
Gregory Schier 9f7fa3709e Even better focus state 2023-11-02 22:23:21 -07:00
Gregory Schier 1bf711826e Remove focus on env sidebar buttons 2023-11-02 22:18:13 -07:00
Gregory Schier ff6969d41c Rearrange menus 2023-11-02 21:41:35 -07:00
Gregory Schier 1e7f629b28 Refactor environment edit dialog 2023-11-02 20:38:33 -07:00
Gregory Schier 68ea718c77 Base environments fully working 2023-11-02 18:43:39 -07:00
Gregory Schier 1cd6e0af06 Initial "plugin" system with importer (#7) 2023-11-02 18:08:43 -07:00
Gregory Schier 749025640f Fix cursor color in single-line mode 2023-10-31 15:10:33 -07:00
Gregory Schier 2e72cad591 Fix sending of ephemeral requests 2023-10-30 08:24:49 -07:00
Gregory Schier 7ce4ac3239 Fix GQL introspection and bearer auth templating 2023-10-30 08:07:34 -07:00
Gregory Schier 9d4f4bef5d Fix button styles 2023-10-30 07:27:27 -07:00
Gregory Schier 3b1e4f538d Fix editor stale callbacks and recent item deletion 2023-10-30 07:07:14 -07:00
Gregory Schier 8a73636f43 Refactored some core UI 2023-10-30 06:35:52 -07:00
Gregory Schier 451ffad24a Plugin module loading 2023-10-29 20:50:23 -07:00
Gregory Schier 851082be9d Bump version 2023-10-29 17:22:27 -07:00
Gregory Schier bc3515d71e Fix sidebar scroll 2023-10-29 17:19:03 -07:00
Gregory Schier ed87192468 A bit more playing with JS runtime 2023-10-29 17:05:48 -07:00
Gregory Schier 9a56b2f331 Initial "Hello World" for plugins 2023-10-29 16:43:28 -07:00
Gregory Schier 46470160a9 Fix request creation 2023-10-29 12:05:05 -07:00
Gregory Schier 9dd4489049 Restore recent environment on workspace change
Fixes #6
2023-10-29 11:32:55 -07:00
Gregory Schier 7dac299edd Fix var complete and env dialog actions 2023-10-29 11:18:55 -07:00
Gregory Schier a9c67f59fc Remove broken key/value enter/backspace logic 2023-10-29 10:45:05 -07:00
Gregory Schier c37c020cf0 Delete key/value on backspace 2023-10-29 10:26:38 -07:00
Gregory Schier 4d93892249 Move workspace menu, better env mgmt, QoL 2023-10-29 09:45:16 -07:00
Gregory Schier b1764d0508 Bump version 2023-10-28 23:41:58 -07:00
Gregory Schier 76218365fc Better listening for path changes 2023-10-28 23:41:24 -07:00
Gregory Schier aebaa8d4b7 Bump version 2023-10-28 22:14:51 -07:00
Gregory Schier 235ab2056d Fixed auto-focus in prompt and env dropdown 2023-10-28 22:14:12 -07:00
Gregory Schier 7b7e43a185 Clear selected sidebar index on drag-drop end 2023-10-28 21:47:00 -07:00
Gregory Schier 8baaa9beb2 Revert debug name 2023-10-28 21:43:09 -07:00
Gregory Schier b9d1e70e04 Fix drag-n-drop things 2023-10-28 21:42:35 -07:00
Gregory Schier b2150181b3 Persist window paths 2023-10-28 21:23:46 -07:00
Gregory Schier e8b5e9de02 Bump version to 2023.1.0 2023-10-28 19:15:33 -07:00
Gregory Schier 9c68e62db3 Update placeholders when env changes 2023-10-28 19:14:51 -07:00
Gregory Schier 73190958fa Placeholder error and fix env nav 2023-10-28 19:08:31 -07:00
Gregory Schier 68fbb1a3ff Recent requests/workspaces. Closes #1 2023-10-28 18:46:54 -07:00
Gregory Schier ac036ff814 Fix recent requests loading on startup 2023-10-28 18:27:18 -07:00
Gregory Schier 34bfc6840c Add tauri window save state plugin 2023-10-28 13:14:27 -07:00
Gregory Schier 805ea4a656 Fix rustfmt 2023-10-28 12:45:25 -07:00
Gregory Schier 677f436bcb Handle enabled/disabled variables and render multi 2023-10-28 11:36:40 -07:00
Gregory Schier a44e88f53d Remove unused Variable type 2023-10-28 11:31:45 -07:00
Gregory Schier 3ad132d77d Variables under Environment, and render all props 2023-10-28 11:29:29 -07:00
Gregory Schier d0387bdf76 Native Codemirror cursor 2023-10-27 13:14:41 -07:00
Gregory Schier 9f2577db66 Only wrap URLBar on focus and hotkey to open recent requests 2023-10-27 12:40:43 -07:00
Gregory Schier ede0f1890f Resizing window no longer changes sidebar visibility
Fixes #4
2023-10-27 11:21:59 -07:00
Gregory Schier 439af5e8f2 Auto-expand URL bar height 2023-10-27 10:57:07 -07:00
Gregory Schier 4bf82ec3e9 Environment deletion and better actions menu 2023-10-26 16:18:47 -07:00
Gregory Schier 0e85d40f47 Stop autocomplete from jumping around 2023-10-26 15:27:48 -07:00
Gregory Schier d62702f7dd Fix request creation from menu 2023-10-26 10:41:14 -07:00
Gregory Schier d1bc5900fb Send requests with active environment 2023-10-26 10:32:06 -07:00
Gregory Schier cba8a055d5 Move create request and fix slow HTML highlighting 2023-10-26 09:42:19 -07:00
Gregory Schier 8fd7979474 Better project selector, Fixes #2, and a bunch more 2023-10-26 09:11:44 -07:00
Gregory Schier 598cef948a Fixed some routing and introspection requests 2023-10-25 21:53:18 -07:00
Gregory Schier 51cadaf53b Environments in URL and better rendering 2023-10-25 11:13:00 -07:00
Gregory Schier 7715668e96 Move responses dropdown to separate component 2023-10-25 07:59:10 -07:00
Gregory Schier 4c2c0dd1de Fix dialog height 2023-10-25 00:02:51 -07:00
Gregory Schier 2567e72bfe Better style when no active environment 2023-10-24 23:58:12 -07:00
Gregory Schier 8665ca9acb Environment dropdown and actions 2023-10-24 09:17:29 -07:00
Gregory Schier fa16e1f957 Started on environment edit dialog 2023-10-23 21:00:36 -07:00
Gregory Schier 83e2cab1b6 Hacky implementation of variable autocomplete 2023-10-23 10:31:21 -07:00
Gregory Schier 4ad5d7f291 Rendered first variable! 2023-10-22 22:30:29 -07:00
Gregory Schier 51f48d3883 Updating environments! 2023-10-22 22:06:51 -07:00
Gregory Schier 5cf59d7d70 Update .gitignore 2023-10-22 20:40:00 -07:00
Gregory Schier 39a441d118 Prettier and start of env editor 2023-10-22 20:38:57 -07:00
Gregory Schier adea2c0e81 Environments data model 2023-10-22 18:28:56 -07:00
Gregory Schier 5821e4c232 Environment data model backend 2023-10-22 16:05:09 -07:00
Gregory Schier 75b108c6cd Fix some eslint warnings 2023-10-22 11:02:39 -07:00
Gregory Schier 66c80d4d9a Add APPLE_TEAM_ID 2023-10-18 14:12:08 -07:00
Gregory Schier cd83d7d7ea Revert artifacts things 2023-10-18 13:25:35 -07:00
Gregory Schier ee868203f6 Bump cargo deps 2023-10-18 13:25:20 -07:00
Gregory Schier add21457ec Bump version 2023-10-18 12:14:38 -07:00
Gregory Schier a43fa761c7 Fix sidebar drag-n-drop 2023-10-18 11:58:58 -07:00
Gregory Schier 5dae591c79 Retry button on introspection errors 2023-06-12 13:20:42 -07:00
Gregory Schier e02954f396 Fix autocomplete doc font size 2023-05-31 21:32:48 -07:00
Gregory Schier 2297ee2a1d Persist introspection queries and also improve 2023-05-31 21:29:41 -07:00
Gregory Schier 0fec8d117b Update tauri NPM 2023-05-29 12:49:50 -07:00
Gregory Schier 465ccdd2b2 Fix graphql instrospection 2023-05-29 12:31:34 -07:00
Gregory Schier 6decba8a4a Change version 2023-04-27 16:53:39 -07:00
Gregory Schier 5a4fa40ab4 Version 1.0.0 2023-04-27 16:47:49 -07:00
Gregory Schier f3ff0b660b Fix window methods on Linux/Windows 2023-04-27 16:27:02 -07:00
Gregory Schier 2a4889bc01 Cross platform window controls 2023-04-27 10:19:49 -07:00
Gregory Schier 8dfd3579e4 Fix ubuntu build 2023-04-26 17:00:30 -07:00
Gregory Schier 4741791673 Windows and Linux 2023-04-26 16:54:51 -07:00
Gregory Schier 2edfa9bd75 Bump version 2023-04-26 16:47:50 -07:00
Gregory Schier 8d37497eb7 Very basic CSV viewer 2023-04-22 21:53:04 +08:00
Gregory Schier f4dcb67caa Truncate response files 2023-04-14 14:15:33 -07:00
Gregory Schier d5774c6067 Randomly offset new windows 2023-04-14 14:05:23 -07:00
Gregory Schier 67007b1f5c Fix text encoding and delete responses 2023-04-14 13:50:41 -07:00
Gregory Schier 9755833577 Delete response files 2023-04-14 12:17:11 -07:00
Gregory Schier b7909de566 Readonly editor disable tabindex 2023-04-13 22:36:11 -07:00
Gregory Schier 114ae4285d Fix imageview padding 2023-04-13 22:33:47 -07:00
Gregory Schier a22154e8ce Duration and size tags 2023-04-13 20:50:17 -07:00
Gregory Schier f33ef73f43 Comment 2023-04-13 18:55:32 -07:00
Gregory Schier 55c879abc2 Always store response on filesystem 2023-04-13 18:52:56 -07:00
Gregory Schier c941cb6989 Support binary responses! 2023-04-13 18:48:40 -07:00
Gregory Schier f8c5960156 Blur backdrop 2023-04-11 16:12:26 -07:00
Gregory Schier 6f625cdfd9 Autofocus buttons 2023-04-11 14:04:23 -07:00
Gregory Schier 11200677a0 Better opening workspaces and redirect workspace to recent request 2023-04-11 11:11:36 -07:00
Gregory Schier f802d9d655 Button disabled style opacity 2023-04-10 16:03:45 -07:00
Gregory Schier 8c7409a24f Dropdown keys and pointer events 2023-04-10 16:02:29 -07:00
Gregory Schier db2dc823f2 Upgrade deno core 2023-04-10 11:16:25 -07:00
Gregory Schier ce26d1b86f Tweak response history 2023-04-09 23:15:51 -07:00
Gregory Schier 6c5ae5fcaa Fixed multi-window model sync 2023-04-09 22:32:47 -07:00
Gregory Schier 45c35eae31 Tweak recent requests 2023-04-09 22:25:00 -07:00
Gregory Schier cb4ce9fdba Toggle settings 2023-04-09 22:12:16 -07:00
Gregory Schier d9916f520e Fix sidebar request focus 2023-04-09 22:03:41 -07:00
Gregory Schier 0f33fd2588 More stuff on sidebar 2023-04-09 21:52:04 -07:00
Gregory Schier 5cc5f27420 Small tweaks 2023-04-09 15:32:13 -07:00
Gregory Schier feec6fedfa Request history navigator 2023-04-09 15:26:54 -07:00
Gregory Schier fb38708fad Enter name on create workspace 2023-04-09 12:27:02 -07:00
Gregory Schier b82798bf49 Rename workspace 2023-04-09 12:23:41 -07:00
Gregory Schier 37f0eca79f Sidebar hover transitions 2023-04-06 16:30:46 -07:00
Gregory Schier 72bcc17799 Remove some more key value usage 2023-04-06 16:26:56 -07:00
Gregory Schier b2524c1de0 A bunch of tweaks 2023-04-06 16:05:25 -07:00
Gregory Schier 0b3bd6313f macOS 12 2023-04-06 08:39:30 -07:00
Gregory Schier afe075829a Remove system tray icon 2023-04-06 08:15:40 -07:00
Gregory Schier d008324c3e Minor tweaks 2023-04-04 17:21:02 -07:00
Gregory Schier 79634532fd Fix some things 2023-04-04 16:56:45 -07:00
Gregory Schier 95622bc44b Editor line wrapping support (not used yet) 2023-04-04 16:40:37 -07:00
Gregory Schier 197bc38b69 remove janky last location tracking 2023-04-04 16:23:08 -07:00
Gregory Schier fe9a06185d Fix resize cursor 2023-04-04 16:12:45 -07:00
Gregory Schier 8eb2a14737 Better button styles 2023-04-04 15:40:25 -07:00
Gregory Schier 7c7eba5f63 Bump version 2023-04-04 13:56:24 -07:00
Gregory Schier 302f1402cf Some small fixes 2023-04-04 13:56:14 -07:00
Gregory Schier 0ffe459a8b A few fixes 2023-04-04 13:31:48 -07:00
Gregory Schier 54310983a3 Better status tags and delete request on key 2023-04-04 12:36:30 -07:00
Gregory Schier fcbe923770 Remove expects from request sending 2023-04-04 08:14:32 -07:00
Gregory Schier b2a7d95922 Fix web view height 2023-04-04 07:51:41 -07:00
Gregory Schier 7da45506d4 Fix autocomplete spacing 2023-04-04 07:51:19 -07:00
Gregory Schier 51445b0d99 Fix input focus border 2023-04-03 12:19:37 -07:00
Gregory Schier 712626ac1f Hot keys and cleanup 2023-04-03 07:59:49 -07:00
Gregory Schier c1d7f6e544 Add entitlemet for v8 2023-04-02 20:23:21 -07:00
Gregory Schier 5a81c5de17 Debug codesigned build 2023-04-02 19:09:14 -07:00
Gregory Schier 2faf2986cf Disable code signing 2023-04-02 18:27:14 -07:00
Gregory Schier 8c2e058ced Fix tauri script command 2023-04-02 17:25:24 -07:00
Gregory Schier 5a31c2c930 Fix universal binary 2023-04-02 17:12:20 -07:00
Gregory Schier 0931faeeb8 Bump version 2023-04-02 15:44:41 -07:00
Gregory Schier 79ecc0ae38 Fix toolchain 2023-04-02 15:44:21 -07:00
Gregory Schier 2ba401dde1 Add proper target 2023-04-02 15:42:19 -07:00
Gregory Schier 7d93dc7d62 Try universal binary 2023-04-02 15:33:13 -07:00
Gregory Schier 427d786ef1 Fix version 2023-04-02 15:25:24 -07:00
Gregory Schier 2accf518c3 Bump version 2023-04-02 14:54:41 -07:00
Gregory Schier 91e10e6a0a Notorization (hopefully) 2023-04-02 14:53:49 -07:00
Gregory Schier 01f12c5161 Change tabs again 2023-04-02 11:11:53 -07:00
Gregory Schier 62a367cd0c Better response headers 2023-04-02 10:45:41 -07:00
Gregory Schier ceefbd1de1 Show response headers 2023-04-01 23:43:22 -07:00
Gregory Schier 3f713d878c Some more refactoring 2023-04-01 21:48:30 -07:00
Gregory Schier bc35429670 Refactor debounce and tauri event listeners 2023-04-01 21:39:46 -07:00
Gregory Schier 5b563b8a16 Fix dropdown and dialog key handling 2023-04-01 21:04:39 -07:00
Gregory Schier 35e25842be Refactor sidebar display 2023-04-01 20:58:53 -07:00
Gregory Schier 55ce39e39d Better GraphQL schema fetching 2023-04-01 17:53:36 -07:00
Gregory Schier 9ab1df1c99 More eslint fixes 2023-04-01 15:48:37 -07:00
Gregory Schier b23e56c3af Add React hooks eslint 2023-04-01 15:26:57 -07:00
Gregory Schier 604254257d Fix Tauri listeners 2023-04-01 00:02:17 -07:00
Gregory Schier d7c9fe7991 Memo editor 2023-03-31 23:19:15 -07:00
Gregory Schier ebc9939498 Fix request duplication 2023-03-31 22:54:32 -07:00
Gregory Schier 3fc5f72074 Fix tauri listeners causing too many updates 2023-03-31 22:48:34 -07:00
Gregory Schier 625abf2acb Remove import 2023-03-31 22:42:41 -07:00
Gregory Schier 0ad5ebde47 Fix 2023-03-31 22:42:26 -07:00
Gregory Schier 9a8c208a15 Upgrade Deno 2023-03-31 22:42:08 -07:00
Gregory Schier 72223c2dea Tweak 2023-03-31 16:14:25 -07:00
Gregory Schier 0b1f3466ec Fix send hotkey 2023-03-31 16:13:34 -07:00
Gregory Schier f9206c7a01 Better schema fetching 2023-03-31 16:02:09 -07:00
Gregory Schier 4feb31390d Finally fix the editor! 2023-03-31 15:56:35 -07:00
Gregory Schier 3c517e0739 Fix editor blurring bug! 2023-03-31 13:53:28 -07:00
Gregory Schier 4f1c8b0d53 Better model updates 2023-03-31 13:21:02 -07:00
Gregory Schier 68159dfa95 Fix text obscuring 2023-03-30 17:22:52 -07:00
Gregory Schier 60d4ecda1a Button ring colors 2023-03-30 17:17:07 -07:00
Gregory Schier 6843823efc Remove dummy button 2023-03-30 17:12:38 -07:00
Gregory Schier 8998b8ab17 Confirm deletions 2023-03-30 17:09:11 -07:00
Gregory Schier 728d30f360 Dedicated event for model creation 2023-03-30 16:49:49 -07:00
Gregory Schier 90a96ef8e5 Unify text selection color 2023-03-30 16:36:24 -07:00
Gregory Schier 42de045263 Some icon tweaks 2023-03-30 16:29:14 -07:00
Gregory Schier 801b29402d Fix strict mode editor blur bug 2023-03-30 10:38:33 -07:00
Gregory Schier bb2ba21bbd Better tauri listeners and stuff 2023-03-30 09:05:54 -07:00
Gregory Schier 7fcf709efe Remove updated_by, remember last location 2023-03-30 08:11:51 -07:00
Gregory Schier 904d20b9b8 Remove hardcoded window config 2023-03-29 22:16:21 -07:00
Gregory Schier fa32829b2e Fix build 2023-03-29 22:15:55 -07:00
Gregory Schier 968e80b3ad Remove unused import 2023-03-29 21:53:49 -07:00
Gregory Schier b721396340 Better multi-window updates 2023-03-29 21:53:20 -07:00
Gregory Schier 4b2c1b18a9 Fixed key/value stuff 2023-03-29 14:46:36 -07:00
Gregory Schier 06ce7abfb9 Fix bundle parts 2023-03-29 14:00:34 -07:00
Gregory Schier ab15782019 Fix(ish) multiwindow updates 2023-03-29 11:15:37 -07:00
Gregory Schier 3548945202 Obscure text 2023-03-29 10:16:51 -07:00
Gregory Schier 5852877f4d Simple auth schemes 2023-03-29 09:03:38 -07:00
Gregory Schier e96527ab27 Good start to multi-window 2023-03-28 18:29:40 -07:00
Gregory Schier 314b51db49 Focus traps for dialog and dropdown 2023-03-26 23:07:09 -07:00
Gregory Schier d3d64b38a5 Confirmation Dialogs 2023-03-26 12:02:20 -07:00
Gregory Schier 9eb0fcd441 Floating sidebar 2023-03-26 10:09:28 -07:00
Gregory Schier 56a30aa7c4 Panel icons 2023-03-25 23:29:04 -07:00
Gregory Schier def3c712c9 Update dialog 2023-03-25 21:59:18 -07:00
Gregory Schier 1589235b3f Optimistically-update key values 2023-03-25 21:54:00 -07:00
Gregory Schier 567b516bd0 More tweaks 2023-03-25 21:40:14 -07:00
Gregory Schier 1e8498b52c Animate dropdown 2023-03-25 21:36:17 -07:00
Gregory Schier e3ef29bdfd Animate sidebar transition 2023-03-25 21:31:52 -07:00
Gregory Schier ae4a43f406 Refactor and improve layout resizing 2023-03-25 21:16:10 -07:00
Gregory Schier 391a436ed3 Even better layouts 2023-03-25 18:33:01 -07:00
Gregory Schier 8f86c46f49 Better grid layouts 2023-03-25 18:12:09 -07:00
Gregory Schier 44710a8021 Global layout component 2023-03-25 13:26:31 -07:00
Gregory Schier 09c574bf30 Better dropdown separator 2023-03-25 11:06:05 -07:00
Gregory Schier 41390e9142 Fix sidebar drag 2023-03-24 08:37:52 -07:00
Gregory Schier dcc2c053f8 Upgrade TYpescript 2023-03-23 15:37:36 -07:00
Gregory Schier 5ea45537d3 Fix resize 2023-03-23 07:47:58 -07:00
Gregory Schier ae82bdc225 Style tweak 2023-03-21 23:59:09 -07:00
Gregory Schier aeda504e64 GraphQL autocomplete and duplicate request 2023-03-21 23:54:45 -07:00
Gregory Schier 225b0956a8 Tweak sidebar drag resizer 2023-03-21 19:36:32 -07:00
Gregory Schier 7a6f0ccc46 Minor style tweaks 2023-03-21 18:31:05 -07:00
Gregory Schier c51805fe69 Pull out resize bar 2023-03-21 16:53:49 -07:00
Gregory Schier 2caa13fdec Resize titlebar and tweak things 2023-03-21 16:42:52 -07:00
Gregory Schier 55970f0a92 Remove icon generation from build script 2023-03-21 14:21:07 -07:00
Gregory Schier 6f873fa186 query client cache and better body types 2023-03-21 11:38:37 -07:00
Gregory Schier 4adb8274ab Fix workspace deletion 2023-03-21 09:32:15 -07:00
Gregory Schier a3783205b8 Use proper gray for syntax 2023-03-20 17:15:12 -07:00
Gregory Schier a98487634c fix import 2023-03-20 17:13:14 -07:00
Gregory Schier 3bd4795def Minor tweaks 2023-03-20 17:12:19 -07:00
Gregory Schier 5a3b47846a Fix URL bar spacing 2023-03-20 17:01:29 -07:00
Gregory Schier 4b0793ebef Better radio dropdown type 2023-03-20 16:54:26 -07:00
Gregory Schier f855d8ab16 Typesafe routing and CM line height issue 2023-03-20 16:47:36 -07:00
Gregory Schier c5ca3daab3 Better tab dropdown handling 2023-03-20 14:14:30 -07:00
Gregory Schier ec8bec32ba Fix request creation priority 2023-03-20 13:56:03 -07:00
Gregory Schier 54aa594a70 Remove log 2023-03-20 13:49:35 -07:00
Gregory Schier 15bc08390b Handle "no body" case 2023-03-20 13:49:21 -07:00
Gregory Schier 8b16258627 Small fix 2023-03-20 13:37:14 -07:00
Gregory Schier 6b5f1b4ade Fix pointer window drag 2023-03-20 13:34:49 -07:00
Gregory Schier 4de95e49e9 Fix extra dropdown element 2023-03-20 13:19:23 -07:00
Gregory Schier e19ea612f5 Remove most of Radix UI 2023-03-20 13:16:58 -07:00
Gregory Schier b84a5530be Better Header validation 2023-03-20 01:38:05 -07:00
Gregory Schier 9fc988b1de Tweak sidebar 2023-03-20 01:30:45 -07:00
Gregory Schier c5b50c10f4 Fix pair editor container 2023-03-20 01:18:44 -07:00
Gregory Schier b487938ffb Fix input thingy 2023-03-20 01:14:13 -07:00
Gregory Schier e754dbc563 Container queries! 2023-03-20 01:08:41 -07:00
Gregory Schier 24ed6f0ee2 Better pair editor delete button 2023-03-20 00:30:42 -07:00
Gregory Schier 333b9319b6 Pair validation 2023-03-20 00:17:29 -07:00
Gregory Schier b16d74d55b Don't send disabled headers 2023-03-20 00:05:19 -07:00
Gregory Schier c5f5d72611 Small tweak 2023-03-20 00:04:40 -07:00
Gregory Schier d57dfbf225 Pair checkboxes and fix twig indent 2023-03-20 00:03:33 -07:00
Gregory Schier 31e09aba4b Rewrote twig grammar 2023-03-19 22:12:11 -07:00
Gregory Schier 7314c8f36f Re-order of pair editor 2023-03-19 13:28:57 -07:00
Gregory Schier 05f20af9ed Better header editor and added completion data 2023-03-19 11:09:21 -07:00
Gregory Schier c591394004 A couple tweaks 2023-03-19 01:01:13 -07:00
Gregory Schier b586318d4b Persist sort priority! 2023-03-19 00:48:09 -07:00
Gregory Schier 9ac5572094 Create new workspace, and more optimizations 2023-03-18 19:36:31 -07:00
Gregory Schier b1835561a8 Optimized a few components 2023-03-18 18:49:01 -07:00
Gregory Schier 6fc9b5a185 Fix sidebar drag-n-drop 2023-03-18 18:09:36 -07:00
Gregory Schier 1258550695 Got drag opacity working 2023-03-18 15:06:38 -07:00
Gregory Schier 0b6133efae Good start to drag-n-drop sidebar! 2023-03-18 14:41:07 -07:00
Gregory Schier d02d4bc76f Fix mixed parser 2023-03-17 17:57:43 -07:00
Gregory Schier 43787a6b9e Dropdown highlight 2023-03-17 17:32:24 -07:00
Gregory Schier e33085a7b4 Beginnings of autocomplete for headers 2023-03-17 16:51:20 -07:00
Gregory Schier 10616001df Flatten migrations, kvs lib, fix tabs 2023-03-17 08:36:21 -07:00
Gregory Schier 637c220475 Sidebar item dropdown 2023-03-16 15:37:53 -07:00
Gregory Schier e472249133 Sidebar dragging 2023-03-16 14:34:49 -07:00
Gregory Schier 7b5df2feb4 Add devtools toggle hotkey 2023-03-16 11:25:38 -07:00
Gregory Schier 4bedcf3949 Adjust window sizes 2023-03-16 11:16:23 -07:00
Gregory Schier cbe8cf3a05 Store appearance in k/v 2023-03-16 11:01:30 -07:00
Gregory Schier 48e43c3f9f Hotkeys and view mode kvs 2023-03-16 09:24:28 -07:00
Gregory Schier 03e36e7f1c Some fixes 2023-03-15 23:33:46 -07:00
Gregory Schier e4d34c2943 Got key values working 2023-03-15 23:24:41 -07:00
Gregory Schier ed468571d0 Fix editor padding 2023-03-15 17:29:35 -07:00
Gregory Schier 5292a03171 Minor style updates 2023-03-15 17:25:04 -07:00
Gregory Schier 0043c5fbda Add stuff to app header 2023-03-15 16:35:19 -07:00
Gregory Schier 3bbe9d9201 Better request delete and formatting 2023-03-15 09:41:38 -07:00
Gregory Schier 97db32fdf2 Fix graphql and other things 2023-03-15 09:06:56 -07:00
Gregory Schier b599ab9f5b Header editor to pair editor 2023-03-15 08:09:45 -07:00
Gregory Schier 3aaf365e4a Better header editor 2023-03-15 07:54:04 -07:00
Gregory Schier 34589f8b06 Strict mode and tweak layout padding 2023-03-14 20:19:45 -07:00
Gregory Schier b761e3d9c1 Add GraphQL variables editor 2023-03-14 19:56:02 -07:00
Gregory Schier 3247190a46 GraphQL query editor transformer works! 2023-03-14 19:08:18 -07:00
Gregory Schier b9294ff994 Add body type to request and tab dropdown 2023-03-14 11:18:56 -07:00
Gregory Schier e67118bfa9 Improved header editor 2023-03-14 00:54:41 -07:00
Gregory Schier 4a949b2720 Fix platform check 2023-03-14 00:15:01 -07:00
Gregory Schier 1e09f09bd6 Some small changes 2023-03-14 00:08:03 -07:00
Gregory Schier a209a486aa Move stuff around 2023-03-13 23:30:14 -07:00
Gregory Schier 02574cf5e0 Refactor hooks to be easier to use 2023-03-13 23:25:41 -07:00
Gregory Schier d7ff52038d Fix header editor and scroll in general 2023-03-13 19:37:36 -07:00
Gregory Schier e2fa188ca3 Lazy load routes 2023-03-13 13:56:13 -07:00
Gregory Schier 90c873e37e Back to React 2023-03-13 09:50:49 -07:00
Gregory Schier 03461ffa77 Move some stuff around 2023-03-13 09:24:38 -07:00
Gregory Schier 9245805c92 Fix URL bar 2023-03-13 00:13:25 -07:00
Gregory Schier 7ad1bd54ac Fix ButtonLink and edit request names 2023-03-13 00:11:23 -07:00
Gregory Schier 4ad91b4553 Remove old rust cache action 2023-03-12 22:48:43 -07:00
Gregory Schier 8cf3b1ae02 Better rust cache 2023-03-12 22:47:43 -07:00
Gregory Schier 47c753045c Start GraphQL support 2023-03-12 22:43:25 -07:00
Gregory Schier 389a0d785c Fix artifact tag 2023-03-12 21:41:15 -07:00
Gregory Schier 364cdb06df Remove wasm stuff 2023-03-12 21:25:31 -07:00
Gregory Schier 1b6c32c7ac Use tauri action 2023-03-12 21:13:08 -07:00
Gregory Schier 3af720d93a Fix traffic lights thingy 2023-03-12 20:47:52 -07:00
Gregory Schier babe9adc3d Cache cargo bin for "install" 2023-03-12 19:10:39 -07:00
Gregory Schier 790a3daddd Refformat 2023-03-12 19:03:27 -07:00
Gregory Schier 072d0ade88 Fix artifact upload 2023-03-12 19:01:48 -07:00
Gregory Schier f6fcb54a6e Fix dev 2023-03-12 18:39:02 -07:00
Gregory Schier 1ffad989f9 Split out macos deps 2023-03-12 18:36:25 -07:00
Gregory Schier f1326620bc Cache workflow 2023-03-12 18:28:14 -07:00
Gregory Schier 7e815444ff Add wasm-pack 2023-03-12 18:19:20 -07:00
Gregory Schier 37bae62a4d Install rsw 2023-03-12 18:14:38 -07:00
Gregory Schier 085916dfe4 Fix artifact names 2023-03-12 18:13:00 -07:00
Gregory Schier 6394c380fc Fix build command 2023-03-12 18:11:24 -07:00
Gregory Schier e08d8414b7 Update secrets context 2023-03-12 18:07:57 -07:00
Gregory Schier 7e6e605cdb Update workflow name 2023-03-12 18:05:45 -07:00
Gregory Schier f9e0c4bc24 Fix workflow 2023-03-12 18:05:13 -07:00
Gregory Schier 9dfe3db720 Start of auto updates 2023-03-12 18:04:11 -07:00
Gregory Schier a709e4b19f Fix tabbing to tabs 2023-03-11 23:32:39 -08:00
Gregory Schier 971cd02142 Fix eslint errors 2023-03-11 23:29:25 -08:00
Gregory Schier f846fa8dbc Got tab content scrolling working 2023-03-11 22:36:13 -08:00
Gregory Schier df22285d15 Removed some debug stuff 2023-03-10 10:43:15 -08:00
Gregory Schier 0b3497e5a1 Refactor editor to update better 2023-03-10 10:39:23 -08:00
Gregory Schier e9e3ba283c Fix headers persistence and better sending 2023-03-09 13:38:17 -08:00
Gregory Schier de0bd57622 Hook up header editor! 2023-03-09 13:07:13 -08:00
Gregory Schier 109006db66 Fix 2023-03-09 10:58:27 -08:00
Gregory Schier cb43f17efc Fix blur de-select speed 2023-03-09 10:57:34 -08:00
Gregory Schier d8da396c2f Fix Codemirror performance!! 2023-03-09 10:50:55 -08:00
Gregory Schier 5fbc5edb15 Switch to Preact!!! 2023-03-09 00:47:25 -08:00
Gregory Schier 17c734af11 Move some things around 2023-03-08 23:20:15 -08:00
Gregory Schier 226781af8e Better scrollbar color 2023-03-08 19:23:24 -08:00
Gregory Schier 6c8f4c943a Zoom, better sizes, color picker, sidebar footer 2023-03-08 19:22:04 -08:00
Gregory Schier c37cfaf0e4 Read-only editor 2023-03-08 16:53:13 -08:00
Gregory Schier 956a2ef5ce More theme tweaks 2023-03-08 16:37:20 -08:00
Gregory Schier 571293a34d Debounce autocomplete 2023-03-08 11:25:20 -08:00
Gregory Schier 6eaad1352a Minor theme updates again 2023-03-08 09:43:35 -08:00
Gregory Schier eec65f8721 Editor tweaks 2023-03-07 23:05:33 -08:00
Gregory Schier 25fc0c2f07 Remove unneeded space 2023-03-07 22:58:13 -08:00
Gregory Schier 317ca24dcf Fix small view 2023-03-07 22:55:51 -08:00
Gregory Schier 366116ab1b Minor style tweaks 2023-03-07 22:21:58 -08:00
Gregory Schier 520db48234 Lots more theme stuff 2023-03-07 21:52:21 -08:00
Gregory Schier 5aa80d8ea8 Start of themes 2023-03-07 11:24:38 -08:00
Gregory Schier b48a41aaec More subtle layout tweaks 2023-03-06 08:57:57 -08:00
Gregory Schier 986cd56662 More layout fiddling and error page 2023-03-04 22:26:00 -08:00
Gregory Schier 1ecf642181 More work on the layout 2023-03-04 21:51:17 -08:00
Gregory Schier 1f5e7dbaa9 Try new layout and a bunch of editor fixes 2023-03-04 19:06:12 -08:00
Gregory Schier 030ba26c5e Fix autocomplete inside dialog 2023-03-03 17:03:20 -08:00
Gregory Schier 7668a093a9 Beginnings of Header Editor 2023-03-03 13:18:57 -08:00
Gregory Schier 534d45bccf Fix tailwind dark selector 2023-03-03 07:54:19 -08:00
Gregory Schier c30caf11fe Fix content type in URL 2023-03-02 23:17:09 -08:00
Gregory Schier 420f7aa7c3 Add Dialog component 2023-03-02 18:46:10 -08:00
Gregory Schier 77ca90779c More colors 2023-03-02 17:56:53 -08:00
Gregory Schier a7488b389d Minor style tweaks 2023-03-02 16:16:41 -08:00
Gregory Schier 016adbcb30 Improved autocompletion! 2023-03-02 11:14:51 -08:00
Gregory Schier 132466f03b Rename, fix autocomplete and singleline, etc... 2023-03-02 10:42:43 -08:00
Gregory Schier b5496f0f48 Editor placeholder 2023-03-01 14:22:10 -08:00
Gregory Schier 4d7df9023e Some minor bugs 2023-03-01 14:16:02 -08:00
Gregory Schier c6ba978069 Fix migrations for build and iframe rendering 2023-03-01 10:31:50 -08:00
Gregory Schier 7490106014 Tweaks 2023-03-01 10:19:21 -08:00
Gregory Schier 569a9454ad Response streaming 2023-03-01 09:05:00 -08:00
Gregory Schier 5040d73a8b Autocomplete, and more CM stuff! 2023-02-28 22:54:54 -08:00
Gregory Schier 1e57890d2e Some small tweaks 2023-02-28 17:25:59 -08:00
Gregory Schier af964ac383 Better editor updating 2023-02-28 12:41:03 -08:00
Gregory Schier 88c9df4577 URL highlighting with inline CM 2023-02-28 11:26:26 -08:00
Gregory Schier 74dd4ee979 Implement request deletion 2023-02-27 15:42:06 -08:00
Gregory Schier 8efd95fdbe Tauri events for request model updates 2023-02-27 13:28:50 -08:00
Gregory Schier d0846dcd11 Split request upsert command 2023-02-27 10:00:57 -08:00
Gregory Schier 9dc8234f4b Add toggle for pretty view 2023-02-27 09:08:48 -08:00
Gregory Schier fe18cd1806 Small tweaks 2023-02-26 15:25:55 -08:00
Gregory Schier 2c0a891838 Add variable highlighting widgets 2023-02-26 15:06:14 -08:00
Gregory Schier 640d2a1bb4 Dropdown scrolling 2023-02-25 23:33:07 -08:00
Gregory Schier bf691017fd Show response body size 2023-02-25 23:08:19 -08:00
Gregory Schier b166401d4f A bunch more small things 2023-02-25 23:04:31 -08:00
Gregory Schier 2cf7ced1f2 Added react-router 2023-02-25 18:04:14 -08:00
Gregory Schier e4a257b807 Migrations and initial data stuff 2023-02-25 16:39:18 -08:00
Gregory Schier b8bb9f43e3 Minor tweaks 2023-02-24 17:01:48 -08:00
Gregory Schier 5b2f1e40aa Dummy requests in sidebar 2023-02-24 16:46:56 -08:00
Gregory Schier 2b92b7ab01 Codemirror initial value support 2023-02-24 16:43:47 -08:00
Gregory Schier a77e378730 Send request body 2023-02-24 16:09:19 -08:00
Gregory Schier b3795d99b5 Vendor basicSetup 2023-02-24 14:51:56 -08:00
Gregory Schier 2d83a536b9 Additional methods and tweaks 2023-02-24 14:10:25 -08:00
Gregory Schier a5829a9b6b Focus states 2023-02-24 12:35:13 -08:00
Gregory Schier 5a9fb5a3a7 Hook up theme and clear responses 2023-02-24 12:13:30 -08:00
Gregory Schier 4319ce9a7b SQLite store in proper dir 2023-02-22 20:18:14 -08:00
Gregory Schier e5551c489f Started on grid layout 2023-02-22 19:44:44 -08:00
Gregory Schier 21a562c6fd Save responses in DB 2023-02-22 18:53:44 -08:00
Gregory Schier 302f0a1860 Better URL bar 2023-02-22 16:15:25 -08:00
Gregory Schier 3b591d241c Cleaner URL bar and some improvements 2023-02-22 15:58:04 -08:00
Gregory Schier 238bd3df78 Refactor classname usage 2023-02-21 18:03:57 -08:00
Gregory Schier 30b1b87fea Some minor tweaks 2023-02-21 17:56:48 -08:00
Gregory Schier 45b7bc2c84 Add system tray 2023-02-20 00:11:15 -08:00
Gregory Schier b95429dbeb Started on general window layout 2023-02-19 23:11:59 -08:00
Gregory Schier 0a0839cc3c Content type highlighting 2023-02-18 21:41:23 -08:00
Gregory Schier d5649b0925 Update editor styles 2023-02-18 21:12:25 -08:00
Gregory Schier bfa3418ee5 Better dir structure 2023-02-18 20:30:39 -08:00
Gregory Schier 51b6147445 Update README 2023-02-18 20:20:47 -08:00
Gregory Schier 81b5678ba1 Add @rsw dir 2023-02-18 20:18:54 -08:00
Gregory Schier de8a36d04b Initial start for WASM 2023-02-18 20:17:01 -08:00
Gregory Schier ec6da90510 Re-add cfg_attr 2023-02-18 19:09:56 -08:00
Gregory Schier 5e55276d79 Fix lint errors 2023-02-18 16:30:29 -08:00
Gregory Schier 92f0ead969 Radix, request methods, and theme stuff 2023-02-18 15:53:03 -08:00
Gregory Schier e69ccb62da Add op_hello 2023-02-17 15:36:54 -08:00
Gregory Schier cf33a7d943 Split to separate files 2023-02-17 13:44:11 -08:00
Gregory Schier 23ed3f3a42 Tailwind, Prettier, ESLint, Typescript runner! 2023-02-17 12:19:13 -08:00
Gregory Schier 5b09b7b613 Oops, fix color 2023-02-16 10:28:01 -08:00
Gregory Schier 507aee40f7 Fixed scrollbar color 2023-02-16 10:25:52 -08:00
Gregory Schier c70ecdc330 Iframe response viewer 2023-02-15 20:36:46 -08:00
Gregory Schier 2418f737e7 Return struct for response 2023-02-15 20:26:33 -08:00
Gregory Schier 2f1d3a5c60 Got Codemirror up and running 2023-02-15 19:53:46 -08:00
Gregory Schier f3fc1fc0c4 Initial setup Vite Tauri 2023-02-15 16:58:56 -08:00
562 changed files with 81738 additions and 0 deletions

No files matched your search

+6
View File
@@ -0,0 +1,6 @@
node_modules/
dist/
.eslintrc.cjs
.prettierrc.cjs
src-web/postcss.config.cjs
src-web/vite.config.ts
+47
View File
@@ -0,0 +1,47 @@
module.exports = {
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:react-hooks/recommended',
'plugin:import/recommended',
'plugin:jsx-a11y/recommended',
'plugin:@typescript-eslint/recommended',
'eslint-config-prettier',
],
parser: '@typescript-eslint/parser',
parserOptions: {
project: ['./tsconfig.json'],
},
ignorePatterns: [
'scripts/**/*',
'plugin-runtime/**/*',
'plugin-runtime-types/**/*',
'src-tauri/**/*',
'src-web/tailwind.config.cjs',
'src-web/vite.config.ts',
],
settings: {
react: {
version: 'detect',
},
'import/resolver': {
node: {
paths: ['src-web'],
extensions: ['.ts', '.tsx'],
},
},
},
rules: {
'jsx-a11y/no-autofocus': 'off',
'react/react-in-jsx-scope': 'off',
'import/no-unresolved': 'off',
'@typescript-eslint/consistent-type-imports': [
'error',
{
prefer: 'type-imports',
disallowTypeAnnotations: true,
fixStyle: 'separate-type-imports',
},
],
},
};
+45
View File
@@ -0,0 +1,45 @@
name: Bug Report
description: "Something isn't working properly in Yaak"
title: "Short description"
labels: ["bug", "needs triage"]
assignees:
- gschier
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report 🤗
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
placeholder: Tell us what you see!
value: "A bug happened!"
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: What version of our software are you running?
placeholder: 2024.8.0
validations:
required: true
- type: dropdown
id: os
attributes:
label: What operating system are you on?
multiple: false
options:
- macOS
- Windows
- Linux
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
+5
View File
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Feature Request, Question, etc.
url: https://feedback.yaak.app
about: Report all non-bugs to the feedback board 👉🏼
+18
View File
@@ -0,0 +1,18 @@
on:
pull_request:
branches: [develop]
name: CI (JS)
jobs:
test:
name: Lint/Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm run lint
- run: npm test
+36
View File
@@ -0,0 +1,36 @@
on:
pull_request:
branches: [develop]
paths:
- src-tauri/**
- .github/workflows/**
name: CI (Rust)
defaults:
run:
working-directory: src-tauri
jobs:
test:
name: Check/Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev
- uses: dtolnay/rust-toolchain@stable
- uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- run: cargo check --all
- run: cargo test --all
+112
View File
@@ -0,0 +1,112 @@
name: Generate Artifacts
on:
push:
tags: [ v* ]
env:
YAAK_PLUGINS_DIR: checkout/plugins
jobs:
build-artifacts:
permissions:
contents: write
name: Build
strategy:
fail-fast: false
matrix:
include:
- platform: 'macos-latest' # for Arm-based Macs (M1 and above).
args: '--target aarch64-apple-darwin'
yaak_arch: 'arm64'
- platform: 'macos-latest' # for Intel-based Macs.
args: '--target x86_64-apple-darwin'
yaak_arch: 'x64'
- platform: 'ubuntu-22.04' # for Tauri v1, you could replace this with ubuntu-20.04.
args: ''
yaak_arch: 'x64'
- platform: 'windows-latest'
args: ''
yaak_arch: 'x64'
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout yaakapp/app
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
# Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds.
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above.
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install NPM Dependencies
run: |
npm ci
- name: Install Protoc for plugin-runtime
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run lint
run: npm run lint
- name: Checkout yaakapp/plugins
uses: actions/checkout@v4
with:
repository: yaakapp/plugins
path: ${{ env.YAAK_PLUGINS_DIR }}
- name: Set version
run: npm run replace-version
env:
YAAK_VERSION: ${{ github.ref_name }}
- uses: tauri-apps/tauri-action@v0
env:
YAAK_PLUGINS_DIR: ${{ env.YAAK_PLUGINS_DIR }}
YAAK_TARGET_ARCH: ${{ matrix.yaak_arch }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
with:
tagName: 'v__VERSION__'
releaseName: 'Release __VERSION__'
releaseBody: 'https://yaak.app/blog/__VERSION__'
releaseDraft: true
prerelease: false
args: ${{ matrix.args }}
+33
View File
@@ -0,0 +1,33 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
.eslintcache
*.sqlite
*.sqlite-*
.cargo
.tmp
tmp
+1
View File
@@ -0,0 +1 @@
20
+4
View File
@@ -0,0 +1,4 @@
node_modules/
dist/
out/
.prettierrc.cjs
+8
View File
@@ -0,0 +1,8 @@
module.exports = {
"trailingComma": "all",
"tabWidth": 2,
"semi": true,
"singleQuote": true,
"printWidth": 100,
"bracketSpacing": true
}
+19
View File
@@ -0,0 +1,19 @@
## Developer Setup
Development requires the following tools
- [Node.js](https://nodejs.org/en/download/package-manager)
- [Rust](https://www.rust-lang.org/tools/install)
Then, you can run the app.
1. Checkout the [plugins](https://github.com/yaakapp/plugins) repository
2. Run `YAAK_PLUGINS_DIR="..." npm run bootstrap` to fetch external binaries, build local dependencies, etc.
3. Run the desktop app in dev mode `npm start`
## SQLite Migrations
1. From `src-tauri/`, run `sqlx migrate add migration-name`
2. Migrate the DB by running the app (may need to `cargo clean` first)
_Note: Yaak development builds use a separate database location than production releases_
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 Yaak
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+16
View File
@@ -0,0 +1,16 @@
# [Yaak API Client](https://yaak.app)
Yaak is a desktop API client for organizing and executing REST, GraphQL, and gRPC
requests. It's built using [Tauri](https://tauri.app), Rust, and ReactJS.
![screenshot](https://github.com/user-attachments/assets/f18e963f-0b68-4ecb-b8b8-cb71aa9aec02)
## Feedback and Bug Reports
Please [Create an Issue](https://github.com/yaakapp/app/issues/new) for bug reports and
submit all other feedback to the [Feedback Board](https://feedback.yaak.app).
## Contribution Policy
Yaak open source, but currently only accepting contributions for bug fixes. See [
`DEVELOPMENT.md`](DEVELOPMENT.md).
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 473 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 471 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 KiB

+14095
View File
File diff suppressed because it is too large. Load diff
+46
View File
@@ -0,0 +1,46 @@
{
"name": "yaak-app",
"private": true,
"version": "0.0.0",
"repository": {
"type": "git",
"url": "git+https://github.com/yaakapp/app.git"
},
"workspaces": [
"plugin-runtime",
"plugin-runtime-types",
"src-tauri/yaak_models",
"src-tauri/yaak_plugin_runtime",
"src-tauri/yaak_sync",
"src-tauri/yaak_templates",
"src-web"
],
"scripts": {
"app-build": "tauri build",
"app-dev": "tauri dev --no-watch --config ./src-tauri/tauri-dev.conf.json",
"bootstrap": "run-p bootstrap:* && npm run --workspace plugin-runtime build",
"bootstrap:vendor-node": "node scripts/vendor-node.cjs",
"bootstrap:vendor-plugins": "node scripts/vendor-plugins.cjs",
"bootstrap:vendor-protoc": "node scripts/vendor-protoc.cjs",
"lint": "npm run --workspaces --if-present lint",
"replace-version": "node scripts/replace-version.cjs",
"tauri": "tauri",
"tauri-before-build": "npm run bootstrap && npm run --workspaces --if-present build",
"tauri-before-dev": "npm run --workspaces --if-present dev"
},
"devDependencies": {
"@tauri-apps/cli": "^2.0.0-rc.16",
"@typescript-eslint/eslint-plugin": "^8.5.0",
"@typescript-eslint/parser": "^8.5.0",
"eslint": "^8",
"eslint-config-prettier": "^8",
"eslint-plugin-import": "^2.30.0",
"eslint-plugin-jsx-a11y": "^6.10.0",
"eslint-plugin-react": "^7.35.2",
"eslint-plugin-react-hooks": "^4.6.2",
"nodejs-file-downloader": "^4.13.0",
"npm-run-all": "^4.1.5",
"prettier": "^3.3.3",
"typescript": "^5.6.2"
}
}
+2
View File
@@ -0,0 +1,2 @@
lib
node_modules
+47
View File
@@ -0,0 +1,47 @@
{
"name": "@yaakapp/api",
"version": "0.1.17",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@yaakapp/api",
"version": "0.1.17",
"dependencies": {
"@types/node": "^22.5.4"
},
"devDependencies": {
"typescript": "^5.6.2"
}
},
"node_modules/@types/node": {
"version": "22.5.4",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz",
"integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==",
"license": "MIT",
"dependencies": {
"undici-types": "~6.19.2"
}
},
"node_modules/typescript": {
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz",
"integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
},
"node_modules/undici-types": {
"version": "6.19.8",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
"license": "MIT"
}
}
}
+23
View File
@@ -0,0 +1,23 @@
{
"name": "@yaakapp/api",
"version": "0.2.7",
"main": "lib/index.js",
"typings": "./lib/index.d.ts",
"files": [
"lib/**/*"
],
"scripts": {
"build": "run-s build:copy-types build:tsc",
"build:tsc": "tsc",
"build:copy-types": "cpy --flat ../src-tauri/yaak_plugin_runtime/bindings/*.ts ./src/bindings/",
"prepublishOnly": "npm run build"
},
"dependencies": {
"@types/node": "^22.5.4"
},
"devDependencies": {
"cpy-cli": "^5.0.0",
"npm-run-all": "^4.1.5",
"typescript": "^5.6.2"
}
}
@@ -0,0 +1,89 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Environment } from "./models";
import type { Folder } from "./models";
import type { GrpcRequest } from "./models";
import type { HttpRequest } from "./models";
import type { HttpResponse } from "./models";
import type { Workspace } from "./models";
export type BootRequest = { dir: string, };
export type BootResponse = { name: string, version: string, capabilities: Array<string>, };
export type CallHttpRequestActionArgs = { httpRequest: HttpRequest, };
export type CallHttpRequestActionRequest = { key: string, pluginRefId: string, args: CallHttpRequestActionArgs, };
export type CallTemplateFunctionArgs = { purpose: RenderPurpose, values: { [key in string]?: string }, };
export type CallTemplateFunctionRequest = { name: string, args: CallTemplateFunctionArgs, };
export type CallTemplateFunctionResponse = { value: string | null, };
export type Color = "custom" | "default" | "primary" | "secondary" | "info" | "success" | "notice" | "warning" | "danger";
export type CopyTextRequest = { text: string, };
export type ExportHttpRequestRequest = { httpRequest: HttpRequest, };
export type ExportHttpRequestResponse = { content: string, };
export type FilterRequest = { content: string, filter: string, };
export type FilterResponse = { content: string, };
export type FindHttpResponsesRequest = { requestId: string, limit: number | null, };
export type FindHttpResponsesResponse = { httpResponses: Array<HttpResponse>, };
export type GetHttpRequestActionsRequest = Record<string, never>;
export type GetHttpRequestActionsResponse = { actions: Array<HttpRequestAction>, pluginRefId: string, };
export type GetHttpRequestByIdRequest = { id: string, };
export type GetHttpRequestByIdResponse = { httpRequest: HttpRequest | null, };
export type GetTemplateFunctionsResponse = { functions: Array<TemplateFunction>, pluginRefId: string, };
export type HttpRequestAction = { key: string, label: string, icon: string | null, };
export type Icon = "copy" | "info" | "check_circle" | "alert_triangle";
export type ImportRequest = { content: string, };
export type ImportResources = { workspaces: Array<Workspace>, environments: Array<Environment>, folders: Array<Folder>, httpRequests: Array<HttpRequest>, grpcRequests: Array<GrpcRequest>, };
export type ImportResponse = { resources: ImportResources, };
export type InternalEvent = { id: string, pluginRefId: string, replyId: string | null, payload: InternalEventPayload, };
export type InternalEventPayload = { "type": "boot_request" } & BootRequest | { "type": "boot_response" } & BootResponse | { "type": "reload_request" } | { "type": "reload_response" } | { "type": "terminate_request" } | { "type": "terminate_response" } | { "type": "import_request" } & ImportRequest | { "type": "import_response" } & ImportResponse | { "type": "filter_request" } & FilterRequest | { "type": "filter_response" } & FilterResponse | { "type": "export_http_request_request" } & ExportHttpRequestRequest | { "type": "export_http_request_response" } & ExportHttpRequestResponse | { "type": "send_http_request_request" } & SendHttpRequestRequest | { "type": "send_http_request_response" } & SendHttpRequestResponse | { "type": "get_http_request_actions_request" } & GetHttpRequestActionsRequest | { "type": "get_http_request_actions_response" } & GetHttpRequestActionsResponse | { "type": "call_http_request_action_request" } & CallHttpRequestActionRequest | { "type": "get_template_functions_request" } | { "type": "get_template_functions_response" } & GetTemplateFunctionsResponse | { "type": "call_template_function_request" } & CallTemplateFunctionRequest | { "type": "call_template_function_response" } & CallTemplateFunctionResponse | { "type": "copy_text_request" } & CopyTextRequest | { "type": "render_http_request_request" } & RenderHttpRequestRequest | { "type": "render_http_request_response" } & RenderHttpRequestResponse | { "type": "show_toast_request" } & ShowToastRequest | { "type": "get_http_request_by_id_request" } & GetHttpRequestByIdRequest | { "type": "get_http_request_by_id_response" } & GetHttpRequestByIdResponse | { "type": "find_http_responses_request" } & FindHttpResponsesRequest | { "type": "find_http_responses_response" } & FindHttpResponsesResponse | { "type": "empty_response" };
export type RenderHttpRequestRequest = { httpRequest: HttpRequest, purpose: RenderPurpose, };
export type RenderHttpRequestResponse = { httpRequest: HttpRequest, };
export type RenderPurpose = "send" | "preview";
export type SendHttpRequestRequest = { httpRequest: HttpRequest, };
export type SendHttpRequestResponse = { httpResponse: HttpResponse, };
export type ShowToastRequest = { message: string, color?: Color | null, icon?: Icon | null, };
export type TemplateFunction = { name: string, args: Array<TemplateFunctionArg>, };
export type TemplateFunctionArg = { "type": "text" } & TemplateFunctionTextArg | { "type": "select" } & TemplateFunctionSelectArg | { "type": "checkbox" } & TemplateFunctionCheckboxArg | { "type": "http_request" } & TemplateFunctionHttpRequestArg;
export type TemplateFunctionBaseArg = { name: string, optional?: boolean | null, label?: string | null, defaultValue?: string | null, };
export type TemplateFunctionCheckboxArg = { name: string, optional?: boolean | null, label?: string | null, defaultValue?: string | null, };
export type TemplateFunctionHttpRequestArg = { name: string, optional?: boolean | null, label?: string | null, defaultValue?: string | null, };
export type TemplateFunctionSelectArg = { options: Array<TemplateFunctionSelectOption>, name: string, optional?: boolean | null, label?: string | null, defaultValue?: string | null, };
export type TemplateFunctionSelectOption = { name: string, value: string, };
export type TemplateFunctionTextArg = { placeholder?: string | null, name: string, optional?: boolean | null, label?: string | null, defaultValue?: string | null, };
@@ -0,0 +1,23 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type Environment = { model: "environment", id: string, workspaceId: string, createdAt: string, updatedAt: string, name: string, variables: Array<EnvironmentVariable>, };
export type EnvironmentVariable = { enabled?: boolean, name: string, value: string, };
export type Folder = { model: "folder", id: string, createdAt: string, updatedAt: string, workspaceId: string, folderId: string | null, name: string, sortPriority: number, };
export type GrpcMetadataEntry = { enabled?: boolean, name: string, value: string, };
export type GrpcRequest = { model: "grpc_request", id: string, createdAt: string, updatedAt: string, workspaceId: string, folderId: string | null, authenticationType: string | null, authentication: Record<string, any>, message: string, metadata: Array<GrpcMetadataEntry>, method: string | null, name: string, service: string | null, sortPriority: number, url: string, };
export type HttpRequest = { model: "http_request", id: string, createdAt: string, updatedAt: string, workspaceId: string, folderId: string | null, authentication: Record<string, any>, authenticationType: string | null, body: Record<string, any>, bodyType: string | null, headers: Array<HttpRequestHeader>, method: string, name: string, sortPriority: number, url: string, urlParameters: Array<HttpUrlParameter>, };
export type HttpRequestHeader = { enabled?: boolean, name: string, value: string, };
export type HttpResponse = { model: "http_response", id: string, createdAt: string, updatedAt: string, workspaceId: string, requestId: string, bodyPath: string | null, contentLength: number | null, elapsed: number, elapsedHeaders: number, error: string | null, headers: Array<HttpResponseHeader>, remoteAddr: string | null, status: number, statusReason: string | null, url: string, version: string | null, };
export type HttpResponseHeader = { name: string, value: string, };
export type HttpUrlParameter = { enabled?: boolean, name: string, value: string, };
export type Workspace = { model: "workspace", id: string, createdAt: string, updatedAt: string, name: string, description: string, variables: Array<EnvironmentVariable>, settingValidateCertificates: boolean, settingFollowRedirects: boolean, settingRequestTimeout: number, };
+1
View File
@@ -0,0 +1 @@
export type AtLeast<T, K extends keyof T> = Partial<T> & Pick<T, K>;
+5
View File
@@ -0,0 +1,5 @@
export type * from './plugins';
export type * from './themes';
export * from './bindings/models';
export * from './bindings/events';
@@ -0,0 +1,28 @@
import {
FindHttpResponsesRequest,
FindHttpResponsesResponse,
GetHttpRequestByIdRequest,
GetHttpRequestByIdResponse,
RenderHttpRequestRequest,
RenderHttpRequestResponse,
SendHttpRequestRequest,
SendHttpRequestResponse,
ShowToastRequest,
} from '..';
export type Context = {
clipboard: {
copyText(text: string): void;
};
toast: {
show(args: ShowToastRequest): void;
};
httpRequest: {
send(args: SendHttpRequestRequest): Promise<SendHttpRequestResponse['httpResponse']>;
getById(args: GetHttpRequestByIdRequest): Promise<GetHttpRequestByIdResponse['httpRequest']>;
render(args: RenderHttpRequestRequest): Promise<RenderHttpRequestResponse['httpRequest']>;
};
httpResponse: {
find(args: FindHttpResponsesRequest): Promise<FindHttpResponsesResponse['httpResponses']>;
};
};
@@ -0,0 +1,13 @@
import { Context } from './Context';
export type FilterPluginResponse = string[];
export type FilterPlugin = {
name: string;
description?: string;
canFilter(ctx: Context, args: { mimeType: string }): Promise<boolean>;
onFilter(
ctx: Context,
args: { payload: string; mimeType: string },
): Promise<FilterPluginResponse>;
};
@@ -0,0 +1,6 @@
import { CallHttpRequestActionArgs, HttpRequestAction } from '..';
import { Context } from './Context';
export type HttpRequestActionPlugin = HttpRequestAction & {
onSelect(ctx: Context, args: CallHttpRequestActionArgs): Promise<void> | void;
};
@@ -0,0 +1,16 @@
import { Environment, Folder, HttpRequest, Workspace } from '..';
import { AtLeast } from '../helpers';
import { Context } from './Context';
export type ImportPluginResponse = null | {
workspaces: AtLeast<Workspace, 'name' | 'id' | 'model'>[];
environments: AtLeast<Environment, 'name' | 'id' | 'model' | 'workspaceId'>[];
httpRequests: AtLeast<HttpRequest, 'name' | 'id' | 'model' | 'workspaceId'>[];
folders: AtLeast<Folder, 'name' | 'id' | 'model' | 'workspaceId'>[];
};
export type ImporterPlugin = {
name: string;
description?: string;
onImport(ctx: Context, args: { text: string }): Promise<ImportPluginResponse>;
};
@@ -0,0 +1,6 @@
import { CallTemplateFunctionArgs, TemplateFunction } from '..';
import { Context } from './Context';
export type TemplateFunctionPlugin = TemplateFunction & {
onRender(ctx: Context, args: CallTemplateFunctionArgs): Promise<string | null>;
};
@@ -0,0 +1,8 @@
import { Theme } from '../themes';
import { Context } from './Context';
export type ThemePlugin = {
name: string;
description?: string;
getTheme(ctx: Context, fileContents: string): Promise<Theme>;
};
+18
View File
@@ -0,0 +1,18 @@
import { FilterPlugin } from './FilterPlugin';
import { HttpRequestActionPlugin } from './HttpRequestActionPlugin';
import { ImporterPlugin } from './ImporterPlugin';
import { TemplateFunctionPlugin } from './TemplateFunctionPlugin';
import { ThemePlugin } from './ThemePlugin';
export type { Context } from './Context';
/**
* The global structure of a Yaak plugin
*/
export type PluginDefinition = {
importer?: ImporterPlugin;
theme?: ThemePlugin;
filter?: FilterPlugin;
httpRequestActions?: HttpRequestActionPlugin[];
templateFunctions?: TemplateFunctionPlugin[];
};
+44
View File
@@ -0,0 +1,44 @@
export type Colors = {
surface: string;
surfaceHighlight?: string;
surfaceActive?: string;
text: string;
textSubtle?: string;
textSubtlest?: string;
border?: string;
borderSubtle?: string;
borderFocus?: string;
shadow?: string;
backdrop?: string;
selection?: string;
primary?: string;
secondary?: string;
info?: string;
success?: string;
notice?: string;
warning?: string;
danger?: string;
};
export type Theme = Colors & {
id: string;
name: string;
components?: Partial<{
dialog: Partial<Colors>;
menu: Partial<Colors>;
toast: Partial<Colors>;
sidebar: Partial<Colors>;
responsePane: Partial<Colors>;
appHeader: Partial<Colors>;
button: Partial<Colors>;
banner: Partial<Colors>;
placeholder: Partial<Colors>;
urlBar: Partial<Colors>;
editor: Partial<Colors>;
input: Partial<Colors>;
}>;
};
+15
View File
@@ -0,0 +1,15 @@
{
"compilerOptions": {
"module": "node16",
"target": "es6",
"lib": ["es2021"],
"declaration": true,
"declarationDir": "./lib",
"outDir": "./lib",
"strict": true,
"types": ["node"]
},
"files": [
"src/index.ts"
]
}
+3
View File
@@ -0,0 +1,3 @@
build
node_modules
*.blob
+3187
View File
File diff suppressed because it is too large. Load diff
+20
View File
@@ -0,0 +1,20 @@
{
"name": "@yaakapp-internal/plugin-runtime",
"scripts": {
"build": "run-p build:*",
"build:main": "esbuild src/index.ts --bundle --platform=node --outfile=../src-tauri/vendored/plugin-runtime/index.cjs",
"build:worker": "esbuild src/index.worker.ts --bundle --platform=node --outfile=../src-tauri/vendored/plugin-runtime/index.worker.cjs",
"build:proto": "grpc_tools_node_protoc --ts_proto_out=src/gen --ts_proto_opt=outputServices=nice-grpc,outputServices=generic-definitions,useExactTypes=false --proto_path=../proto ../proto/plugins/*.proto"
},
"dependencies": {
"intercept-stdout": "^0.1.2",
"long": "^5.2.3",
"nice-grpc": "^2.1.9",
"protobufjs": "^7.4.0"
},
"devDependencies": {
"@types/intercept-stdout": "^0.1.3",
"grpc-tools": "^1.12.4",
"ts-proto": "^2.2.0"
}
}
+21
View File
@@ -0,0 +1,21 @@
import { InternalEvent } from '@yaakapp/api';
import EventEmitter from 'node:events';
import { EventStreamEvent } from './gen/plugins/runtime';
export class EventChannel {
emitter: EventEmitter = new EventEmitter();
emit(e: InternalEvent) {
this.emitter.emit('__plugin_event__', { event: JSON.stringify(e) });
}
async *listen(): AsyncGenerator<EventStreamEvent> {
while (true) {
yield new Promise<EventStreamEvent>((resolve) => {
this.emitter.once('__plugin_event__', (event: EventStreamEvent) => {
resolve(event);
});
});
}
}
}
+51
View File
@@ -0,0 +1,51 @@
import { InternalEvent } from '@yaakapp/api';
import path from 'node:path';
import { Worker } from 'node:worker_threads';
import { EventChannel } from './EventChannel';
export class PluginHandle {
#worker: Worker;
constructor(
readonly pluginDir: string,
readonly pluginRefId: string,
readonly events: EventChannel,
) {
this.#worker = this.#createWorker();
}
sendToWorker(event: InternalEvent) {
this.#worker.postMessage(event);
}
async terminate() {
await this.#worker.terminate();
}
#createWorker(): Worker {
const workerPath = process.env.YAAK_WORKER_PATH ?? path.join(__dirname, 'index.worker.cjs');
const worker = new Worker(workerPath, {
workerData: { pluginDir: this.pluginDir, pluginRefId: this.pluginRefId },
});
worker.on('message', (e) => this.events.emit(e));
worker.on('error', this.#handleError.bind(this));
worker.on('exit', this.#handleExit.bind(this));
console.log('Created plugin worker for ', this.pluginDir);
return worker;
}
async #handleError(err: Error) {
console.error('Plugin errored', this.pluginDir, err);
}
async #handleExit(code: number) {
if (code === 0) {
console.log('Plugin exited successfully', this.pluginDir);
} else {
console.log('Plugin exited with status', code, this.pluginDir);
}
}
}
+125
View File
@@ -0,0 +1,125 @@
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
// protoc-gen-ts_proto v2.2.0
// protoc v3.19.1
// source: plugins/runtime.proto
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { type CallContext, type CallOptions } from "nice-grpc-common";
export const protobufPackage = "yaak.plugins.runtime";
export interface EventStreamEvent {
event: string;
}
function createBaseEventStreamEvent(): EventStreamEvent {
return { event: "" };
}
export const EventStreamEvent: MessageFns<EventStreamEvent> = {
encode(message: EventStreamEvent, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.event !== "") {
writer.uint32(10).string(message.event);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): EventStreamEvent {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseEventStreamEvent();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.event = reader.string();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): EventStreamEvent {
return { event: isSet(object.event) ? globalThis.String(object.event) : "" };
},
toJSON(message: EventStreamEvent): unknown {
const obj: any = {};
if (message.event !== "") {
obj.event = message.event;
}
return obj;
},
create(base?: DeepPartial<EventStreamEvent>): EventStreamEvent {
return EventStreamEvent.fromPartial(base ?? {});
},
fromPartial(object: DeepPartial<EventStreamEvent>): EventStreamEvent {
const message = createBaseEventStreamEvent();
message.event = object.event ?? "";
return message;
},
};
export type PluginRuntimeDefinition = typeof PluginRuntimeDefinition;
export const PluginRuntimeDefinition = {
name: "PluginRuntime",
fullName: "yaak.plugins.runtime.PluginRuntime",
methods: {
eventStream: {
name: "EventStream",
requestType: EventStreamEvent,
requestStream: true,
responseType: EventStreamEvent,
responseStream: true,
options: {},
},
},
} as const;
export interface PluginRuntimeServiceImplementation<CallContextExt = {}> {
eventStream(
request: AsyncIterable<EventStreamEvent>,
context: CallContext & CallContextExt,
): ServerStreamingMethodResult<DeepPartial<EventStreamEvent>>;
}
export interface PluginRuntimeClient<CallOptionsExt = {}> {
eventStream(
request: AsyncIterable<DeepPartial<EventStreamEvent>>,
options?: CallOptions & CallOptionsExt,
): AsyncIterable<EventStreamEvent>;
}
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T
: T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
: T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
: T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
: Partial<T>;
function isSet(value: any): boolean {
return value !== null && value !== undefined;
}
export type ServerStreamingMethodResult<Response> = { [Symbol.asyncIterator](): AsyncIterator<Response, void> };
export interface MessageFns<T> {
encode(message: T, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): T;
fromJSON(object: any): T;
toJSON(message: T): unknown;
create(base?: DeepPartial<T>): T;
fromPartial(object: DeepPartial<T>): T;
}
+48
View File
@@ -0,0 +1,48 @@
import { InternalEvent } from '@yaakapp/api';
import { createChannel, createClient, Status } from 'nice-grpc';
import { EventChannel } from './EventChannel';
import { PluginRuntimeClient, PluginRuntimeDefinition } from './gen/plugins/runtime';
import { PluginHandle } from './PluginHandle';
const port = process.env.PORT || '50051';
const channel = createChannel(`localhost:${port}`);
const client: PluginRuntimeClient = createClient(PluginRuntimeDefinition, channel);
const events = new EventChannel();
const plugins: Record<string, PluginHandle> = {};
(async () => {
try {
for await (const e of client.eventStream(events.listen())) {
const pluginEvent: InternalEvent = JSON.parse(e.event);
// Handle special event to bootstrap plugin
if (pluginEvent.payload.type === 'boot_request') {
const plugin = new PluginHandle(pluginEvent.payload.dir, pluginEvent.pluginRefId, events);
plugins[pluginEvent.pluginRefId] = plugin;
}
// Once booted, forward all events to the plugin worker
const plugin = plugins[pluginEvent.pluginRefId];
if (!plugin) {
console.warn('Failed to get plugin for event by', pluginEvent.pluginRefId);
continue;
}
if (pluginEvent.payload.type === 'terminate_request') {
await plugin.terminate();
console.log('Terminated plugin worker', pluginEvent.pluginRefId);
delete plugins[pluginEvent.pluginRefId];
}
plugin.sendToWorker(pluginEvent);
}
console.log('Stream ended');
} catch (err: any) {
if (err.code === Status.CANCELLED) {
console.log('Stream was cancelled by server');
} else {
console.log('Client stream errored', err);
}
}
})();
+332
View File
@@ -0,0 +1,332 @@
import {
Context,
FindHttpResponsesResponse,
GetHttpRequestByIdResponse,
HttpRequestAction,
ImportResponse,
InternalEvent,
InternalEventPayload,
RenderHttpRequestResponse,
SendHttpRequestResponse,
TemplateFunction,
} from '@yaakapp/api';
import { HttpRequestActionPlugin } from '@yaakapp/api/lib/plugins/HttpRequestActionPlugin';
import { TemplateFunctionPlugin } from '@yaakapp/api/lib/plugins/TemplateFunctionPlugin';
import interceptStdout from 'intercept-stdout';
import * as console from 'node:console';
import { Stats, readFileSync, statSync, watch } from 'node:fs';
import path from 'node:path';
import * as util from 'node:util';
import { parentPort, workerData } from 'node:worker_threads';
async function initialize() {
const { pluginDir, pluginRefId } = workerData;
const pathPkg = path.join(pluginDir, 'package.json');
const pathMod = path.posix.join(pluginDir, 'build', 'index.js');
async function importModule() {
const id = require.resolve(pathMod);
delete require.cache[id];
return require(id);
}
const pkg = JSON.parse(readFileSync(pathPkg, 'utf8'));
prefixStdout(`[plugin][${pkg.name}] %s`);
let mod = await importModule();
const capabilities: string[] = [];
if (typeof mod.pluginHookExport === 'function') capabilities.push('export');
if (typeof mod.pluginHookImport === 'function') capabilities.push('import');
if (typeof mod.pluginHookResponseFilter === 'function') capabilities.push('filter');
console.log('Plugin initialized', pkg.name, capabilities, Object.keys(mod));
function buildEventToSend(
payload: InternalEventPayload,
replyId: string | null = null,
): InternalEvent {
return { pluginRefId, id: genId(), replyId, payload };
}
function sendEmpty(replyId: string | null = null): string {
return sendPayload({ type: 'empty_response' }, replyId);
}
function sendPayload(payload: InternalEventPayload, replyId: string | null): string {
const event = buildEventToSend(payload, replyId);
sendEvent(event);
return event.id;
}
function sendEvent(event: InternalEvent) {
if (event.payload.type !== 'empty_response') {
console.log('Sending event to app', event.id, event.payload.type);
}
parentPort!.postMessage(event);
}
async function sendAndWaitForReply<T extends Omit<InternalEventPayload, 'type'>>(
payload: InternalEventPayload,
): Promise<T> {
// 1. Build event to send
const eventToSend = buildEventToSend(payload, null);
// 2. Spawn listener in background
const promise = new Promise<InternalEventPayload>(async (resolve) => {
const cb = (event: InternalEvent) => {
if (event.replyId === eventToSend.id) {
parentPort!.off('message', cb); // Unlisten, now that we're done
resolve(event.payload); // Not type-safe but oh well
}
};
parentPort!.on('message', cb);
});
// 3. Send the event after we start listening (to prevent race)
sendEvent(eventToSend);
// 4. Return the listener promise
return promise as unknown as Promise<T>;
}
async function reloadModule() {
mod = await importModule();
}
// Reload plugin if JS or package.json changes
const cb = async () => {
await reloadModule();
return sendPayload({ type: 'reload_response' }, null);
};
watchFile(pathMod, cb);
watchFile(pathPkg, cb);
const ctx: Context = {
clipboard: {
async copyText(text) {
await sendAndWaitForReply({ type: 'copy_text_request', text });
},
},
toast: {
async show(args) {
await sendAndWaitForReply({ type: 'show_toast_request', ...args });
},
},
httpResponse: {
async find(args) {
const payload = { type: 'find_http_responses_request', ...args } as const;
const { httpResponses } = await sendAndWaitForReply<FindHttpResponsesResponse>(payload);
return httpResponses;
},
},
httpRequest: {
async getById(args) {
const payload = { type: 'get_http_request_by_id_request', ...args } as const;
const { httpRequest } = await sendAndWaitForReply<GetHttpRequestByIdResponse>(payload);
return httpRequest;
},
async send(args) {
const payload = { type: 'send_http_request_request', ...args } as const;
const { httpResponse } = await sendAndWaitForReply<SendHttpRequestResponse>(payload);
return httpResponse;
},
async render(args) {
const payload = { type: 'render_http_request_request', ...args } as const;
const result = await sendAndWaitForReply<RenderHttpRequestResponse>(payload);
return result.httpRequest;
},
},
};
// Message comes into the plugin to be processed
parentPort!.on('message', async ({ payload, id: replyId }: InternalEvent) => {
try {
if (payload.type === 'boot_request') {
const payload: InternalEventPayload = {
type: 'boot_response',
name: pkg.name,
version: pkg.version,
capabilities,
};
sendPayload(payload, replyId);
return;
}
if (payload.type === 'terminate_request') {
const payload: InternalEventPayload = {
type: 'terminate_response',
};
sendPayload(payload, replyId);
return;
}
if (payload.type === 'import_request' && typeof mod.pluginHookImport === 'function') {
const reply: ImportResponse | null = await mod.pluginHookImport(ctx, payload.content);
if (reply != null) {
const replyPayload: InternalEventPayload = {
type: 'import_response',
resources: reply?.resources,
};
sendPayload(replyPayload, replyId);
return;
} else {
// Continue, to send back an empty reply
}
}
if (
payload.type === 'export_http_request_request' &&
typeof mod.pluginHookExport === 'function'
) {
const reply: string = await mod.pluginHookExport(ctx, payload.httpRequest);
const replyPayload: InternalEventPayload = {
type: 'export_http_request_response',
content: reply,
};
sendPayload(replyPayload, replyId);
return;
}
if (payload.type === 'filter_request' && typeof mod.pluginHookResponseFilter === 'function') {
const reply: string = await mod.pluginHookResponseFilter(ctx, {
filter: payload.filter,
body: payload.content,
});
const replyPayload: InternalEventPayload = {
type: 'filter_response',
content: reply,
};
sendPayload(replyPayload, replyId);
return;
}
if (
payload.type === 'get_http_request_actions_request' &&
Array.isArray(mod.plugin?.httpRequestActions)
) {
const reply: HttpRequestAction[] = mod.plugin.httpRequestActions.map(
(a: HttpRequestActionPlugin) => ({
...a,
// Add everything except onSelect
onSelect: undefined,
}),
);
const replyPayload: InternalEventPayload = {
type: 'get_http_request_actions_response',
pluginRefId,
actions: reply,
};
sendPayload(replyPayload, replyId);
return;
}
if (
payload.type === 'get_template_functions_request' &&
Array.isArray(mod.plugin?.templateFunctions)
) {
const reply: TemplateFunction[] = mod.plugin.templateFunctions.map(
(a: TemplateFunctionPlugin) => ({
...a,
// Add everything except render
onRender: undefined,
}),
);
const replyPayload: InternalEventPayload = {
type: 'get_template_functions_response',
pluginRefId,
functions: reply,
};
sendPayload(replyPayload, replyId);
return;
}
if (
payload.type === 'call_http_request_action_request' &&
Array.isArray(mod.plugin?.httpRequestActions)
) {
const action = mod.plugin.httpRequestActions.find(
(a: HttpRequestActionPlugin) => a.key === payload.key,
);
if (typeof action?.onSelect === 'function') {
await action.onSelect(ctx, payload.args);
sendEmpty(replyId);
return;
}
}
if (
payload.type === 'call_template_function_request' &&
Array.isArray(mod.plugin?.templateFunctions)
) {
const action = mod.plugin.templateFunctions.find(
(a: TemplateFunctionPlugin) => a.name === payload.name,
);
if (typeof action?.onRender === 'function') {
const result = await action.onRender(ctx, payload.args);
sendPayload({ type: 'call_template_function_response', value: result ?? null }, replyId);
return;
}
}
if (payload.type === 'reload_request') {
await reloadModule();
}
} catch (err) {
console.log('Plugin call threw exception', payload.type, err);
// TODO: Return errors to server
}
// No matches, so send back an empty response so the caller doesn't block forever
sendEmpty(replyId);
});
}
initialize().catch((err) => {
console.log('failed to boot plugin', err);
});
function genId(len = 5): string {
const alphabet = '01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
let id = '';
for (let i = 0; i < len; i++) {
id += alphabet[Math.floor(Math.random() * alphabet.length)];
}
return id;
}
function prefixStdout(s: string) {
if (!s.includes('%s')) {
throw new Error('Console prefix must contain a "%s" replacer');
}
interceptStdout((text) => {
const lines = text.split(/\n/);
let newText = '';
for (let i = 0; i < lines.length; i++) {
if (lines[i] == '') continue;
newText += util.format(s, lines[i]) + '\n';
}
return newText.trimEnd();
});
}
const watchedFiles: Record<string, Stats> = {};
/**
* Watch a file and trigger callback on change.
*
* We also track the stat for each file because fs.watch will
* trigger a "change" event when the access date changes
*/
function watchFile(filepath: string, cb: (filepath: string) => void) {
watch(filepath, (_event, _name) => {
const stat = statSync(filepath);
if (stat.mtimeMs !== watchedFiles[filepath]?.mtimeMs) {
cb(filepath);
}
watchedFiles[filepath] = stat;
});
}
+24
View File
@@ -0,0 +1,24 @@
{
"compilerOptions": {
"module": "node16",
"strict": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"target": "es2021",
"lib": ["es2021"],
"noImplicitAny": false,
"moduleResolution": "node16",
"sourceMap": true,
"outDir": "build",
"baseUrl": ".",
"paths": {
"*": [
"node_modules/*",
"src/types/*"
]
}
},
"include": [
"src"
]
}
+11
View File
@@ -0,0 +1,11 @@
syntax = "proto3";
package yaak.plugins.runtime;
service PluginRuntime {
rpc EventStream (stream EventStreamEvent) returns (stream EventStreamEvent);
}
message EventStreamEvent {
string event = 1;
}
+1
View File
@@ -0,0 +1 @@
edition = "2018"
+1
View File
@@ -0,0 +1 @@
tmp-*
+15
View File
@@ -0,0 +1,15 @@
const path = require('path');
const fs = require('fs');
const version = process.env.YAAK_VERSION?.replace('v', '');
if (!version) {
throw new Error('YAAK_VERSION environment variable not set')
}
const tauriConfigPath = path.join(__dirname, '../src-tauri/tauri.conf.json');
const tauriConfig = JSON.parse(fs.readFileSync(tauriConfigPath, 'utf8'));
tauriConfig.version = version;
console.log('Writing version ' + version + ' to ' + tauriConfigPath)
fs.writeFileSync(tauriConfigPath, JSON.stringify(tauriConfig, null, 2));
+78
View File
@@ -0,0 +1,78 @@
const path = require('node:path');
const decompress = require('decompress');
const Downloader = require('nodejs-file-downloader');
const { rmSync, cpSync, mkdirSync, existsSync } = require('node:fs');
const { execSync } = require('node:child_process');
const NODE_VERSION = 'v22.5.1';
// `${process.platform}_${process.arch}`
const MAC_ARM = 'darwin_arm64';
const MAC_X64 = 'darwin_x64';
const LNX_X64 = 'linux_x64';
const WIN_X64 = 'win32_x64';
const URL_MAP = {
[MAC_ARM]: `https://nodejs.org/download/release/${NODE_VERSION}/node-${NODE_VERSION}-darwin-arm64.tar.gz`,
[MAC_X64]: `https://nodejs.org/download/release/${NODE_VERSION}/node-${NODE_VERSION}-darwin-x64.tar.gz`,
[LNX_X64]: `https://nodejs.org/download/release/${NODE_VERSION}/node-${NODE_VERSION}-linux-x64.tar.gz`,
[WIN_X64]: `https://nodejs.org/download/release/${NODE_VERSION}/node-${NODE_VERSION}-win-x64.zip`,
};
const SRC_BIN_MAP = {
[MAC_ARM]: `node-${NODE_VERSION}-darwin-arm64/bin/node`,
[MAC_X64]: `node-${NODE_VERSION}-darwin-x64/bin/node`,
[LNX_X64]: `node-${NODE_VERSION}-linux-x64/bin/node`,
[WIN_X64]: `node-${NODE_VERSION}-win-x64/node.exe`,
};
const DST_BIN_MAP = {
darwin_arm64: 'yaaknode-aarch64-apple-darwin',
darwin_x64: 'yaaknode-x86_64-apple-darwin',
linux_x64: 'yaaknode-x86_64-unknown-linux-gnu',
win32_x64: 'yaaknode-x86_64-pc-windows-msvc.exe',
};
const key = `${process.platform}_${process.env.YAAK_TARGET_ARCH ?? process.arch}`;
const destDir = path.join(__dirname, `..`, 'src-tauri', 'vendored', 'node');
const binDest = path.join(destDir, DST_BIN_MAP[key]);
console.log(`Vendoring NodeJS ${NODE_VERSION} for ${key}`);
if (existsSync(binDest) && tryExecSync(`${binDest} --version`).trim() === NODE_VERSION) {
console.log('NodeJS already vendored');
return;
}
rmSync(destDir, { recursive: true, force: true });
mkdirSync(destDir, { recursive: true });
const url = URL_MAP[key];
const tmpDir = path.join(__dirname, 'tmp-node');
rmSync(tmpDir, { recursive: true, force: true });
(async function () {
// Download GitHub release artifact
const { filePath } = await new Downloader({ url, directory: tmpDir }).download();
// Decompress to the same directory
await decompress(filePath, tmpDir, {});
// Copy binary
const binSrc = path.join(tmpDir, SRC_BIN_MAP[key]);
cpSync(binSrc, binDest);
rmSync(tmpDir, { recursive: true, force: true });
console.log('Downloaded NodeJS to', binDest);
})().catch((err) => {
console.log('Script failed:', err);
process.exit(1);
});
function tryExecSync(cmd) {
try {
return execSync(cmd).toString('utf-8');
} catch (_) {
return '';
}
}
+25
View File
@@ -0,0 +1,25 @@
const { readdirSync, cpSync } = require('node:fs');
const path = require('node:path');
const { execSync } = require('node:child_process');
const pluginsDir = process.env.YAAK_PLUGINS_DIR;
if (!pluginsDir) {
console.log('YAAK_PLUGINS_DIR is not set');
process.exit(1);
}
console.log('Installing Yaak plugins dependencies', pluginsDir);
execSync('npm ci', { cwd: pluginsDir });
console.log('Building Yaak plugins', pluginsDir);
execSync('npm run build', { cwd: pluginsDir });
console.log('Copying Yaak plugins to', pluginsDir);
const pluginsRoot = path.join(pluginsDir, 'plugins');
for (const name of readdirSync(pluginsRoot)) {
const dir = path.join(pluginsRoot, name);
if (name.startsWith('.')) continue;
const destDir = path.join(__dirname, '../src-tauri/vendored/plugins/', name);
console.log(`Copying ${name} to ${destDir}`);
cpSync(path.join(dir, 'package.json'), path.join(destDir, 'package.json'));
cpSync(path.join(dir, 'build/index.js'), path.join(destDir, 'build/index.js'));
}
+79
View File
@@ -0,0 +1,79 @@
const decompress = require('decompress');
const Downloader = require('nodejs-file-downloader');
const path = require('node:path');
const { rmSync, mkdirSync, cpSync, existsSync } = require('node:fs');
const { execSync } = require('node:child_process');
const VERSION = '27.2';
// `${process.platform}_${process.arch}`
const MAC_ARM = 'darwin_arm64';
const MAC_X64 = 'darwin_x64';
const LNX_X64 = 'linux_x64';
const WIN_X64 = 'win32_x64';
const URL_MAP = {
[MAC_ARM]: `https://github.com/protocolbuffers/protobuf/releases/download/v${VERSION}/protoc-${VERSION}-osx-aarch_64.zip`,
[MAC_X64]: `https://github.com/protocolbuffers/protobuf/releases/download/v${VERSION}/protoc-${VERSION}-osx-x86_64.zip`,
[LNX_X64]: `https://github.com/protocolbuffers/protobuf/releases/download/v${VERSION}/protoc-${VERSION}-linux-x86_64.zip`,
[WIN_X64]: `https://github.com/protocolbuffers/protobuf/releases/download/v${VERSION}/protoc-${VERSION}-win64.zip`,
};
const SRC_BIN_MAP = {
[MAC_ARM]: 'bin/protoc',
[MAC_X64]: 'bin/protoc',
[LNX_X64]: 'bin/protoc',
[WIN_X64]: 'bin/protoc.exe',
};
const DST_BIN_MAP = {
[MAC_ARM]: 'yaakprotoc-aarch64-apple-darwin',
[MAC_X64]: 'yaakprotoc-x86_64-apple-darwin',
[LNX_X64]: 'yaakprotoc-x86_64-unknown-linux-gnu',
[WIN_X64]: 'yaakprotoc-x86_64-pc-windows-msvc.exe',
};
const dstDir = path.join(__dirname, `..`, 'src-tauri', 'vendored', 'protoc');
const key = `${process.platform}_${process.env.YAAK_TARGET_ARCH ?? process.arch}`;
console.log(`Vendoring protoc ${VERSION} for ${key}`);
const url = URL_MAP[key];
const tmpDir = path.join(__dirname, 'tmp-protoc');
const binSrc = path.join(tmpDir, SRC_BIN_MAP[key]);
const binDst = path.join(dstDir, DST_BIN_MAP[key]);
if (existsSync(binDst) && tryExecSync(`${binDst} --version`).trim().includes(VERSION)) {
console.log('Protoc already vendored');
return;
}
rmSync(tmpDir, { recursive: true, force: true });
rmSync(dstDir, { recursive: true, force: true });
mkdirSync(dstDir, { recursive: true });
(async function () {
// Download GitHub release artifact
const { filePath } = await new Downloader({ url, directory: tmpDir }).download();
// Decompress to the same directory
await decompress(filePath, tmpDir, {});
// Copy binary
cpSync(binSrc, binDst);
// Copy other files
const includeSrc = path.join(tmpDir, 'include');
const includeDst = path.join(dstDir, 'include');
cpSync(includeSrc, includeDst, { recursive: true });
rmSync(tmpDir, { recursive: true, force: true });
console.log('Downloaded protoc to', binDst);
})().catch((err) => console.log('Script failed:', err));
function tryExecSync(cmd) {
try {
return execSync(cmd).toString('utf-8');
} catch (_) {
return '';
}
}
+5
View File
@@ -0,0 +1,5 @@
# Generated by Cargo
# will have compiled files and executables
target/
vendored
+7886
View File
File diff suppressed because it is too large. Load diff
+67
View File
@@ -0,0 +1,67 @@
[workspace]
members = ["yaak_grpc", "yaak_templates", "yaak_plugin_runtime", "yaak_models"]
[package]
name = "yaak-app"
version = "0.0.0"
edition = "2021"
authors = ["Gregory Schier"]
# Produce a library for mobile support
[lib]
name = "tauri_app_lib"
crate-type = ["staticlib", "cdylib", "lib"]
[profile.release]
strip = true # Automatically strip symbols from the binary.
[build-dependencies]
tauri-build = { version = "2.0.0-rc.12", features = [] }
[target.'cfg(target_os = "macos")'.dependencies]
objc = "0.2.7"
cocoa = "0.26.0"
[target.'cfg(target_os = "linux")'.dependencies]
openssl-sys = { version = "0.9", features = ["vendored"] } # For Ubuntu installation to work
[dependencies]
yaak_grpc = { path = "yaak_grpc" }
yaak_templates = { path = "yaak_templates" }
yaak_plugin_runtime = { workspace = true }
yaak_models = { workspace = true }
anyhow = "1.0.86"
base64 = "0.22.0"
chrono = { version = "0.4.31", features = ["serde"] }
datetime = "0.5.2"
hex_color = "3.0.0"
http = "1"
log = "0.4.21"
rand = "0.8.5"
regex = "1.10.2"
reqwest = { version = "0.12.4", features = ["multipart", "cookies", "gzip", "brotli", "deflate", "json", "native-tls-alpn"] }
reqwest_cookie_store = "0.8.0"
serde = { version = "1.0.198", features = ["derive"] }
serde_json = { version = "1.0.116", features = ["raw_value"] }
serde_yaml = "0.9.34"
tauri = { workspace = true }
tauri-plugin-shell = { workspace = true }
tauri-plugin-clipboard-manager = "2.1.0-beta.7"
tauri-plugin-dialog = "2.0.0-rc.7"
tauri-plugin-fs = "2.0.0-rc.5"
tauri-plugin-log = { version = "2.0.0-rc.2", features = ["colored"] }
tauri-plugin-os = "2.0.0-rc.1"
tauri-plugin-updater = "2.0.0-rc.3"
tauri-plugin-window-state = "2.0.0-rc.5"
tokio = { version = "1.36.0", features = ["sync"] }
tokio-stream = "0.1.15"
uuid = "1.7.0"
thiserror = "1.0.61"
mime_guess = "2.0.5"
urlencoding = "2.1.3"
[workspace.dependencies]
yaak_models = { path = "yaak_models" }
yaak_plugin_runtime = { path = "yaak_plugin_runtime" }
tauri-plugin-shell = "2.0.0-rc.3"
tauri = { version = "2.0.0-rc.15", features = ["devtools", "protocol-asset"] }
+3
View File
@@ -0,0 +1,3 @@
fn main() {
tauri_build::build()
}
+48
View File
@@ -0,0 +1,48 @@
{
"$schema": "../gen/schemas/capabilities.json",
"identifier": "main",
"description": "Main permissions",
"local": true,
"windows": [
"*"
],
"permissions": [
"core:event:allow-emit",
"core:event:allow-listen",
"core:event:allow-unlisten",
"os:allow-os-type",
"clipboard-manager:allow-clear",
"clipboard-manager:allow-write-text",
"clipboard-manager:allow-read-text",
"dialog:allow-open",
"dialog:allow-save",
"fs:allow-read-file",
"fs:allow-read-text-file",
{
"identifier": "fs:scope",
"allow": [
{
"path": "$APPDATA"
},
{
"path": "$APPDATA/**"
}
]
},
"shell:allow-open",
"core:webview:allow-set-webview-zoom",
"core:window:allow-close",
"core:window:allow-is-fullscreen",
"core:window:allow-maximize",
"core:window:allow-minimize",
"core:window:allow-set-decorations",
"core:window:allow-set-title",
"core:window:allow-show",
"core:window:allow-start-dragging",
"core:window:allow-theme",
"core:window:allow-toggle-maximize",
"core:window:allow-unmaximize",
"clipboard-manager:allow-read-text",
"clipboard-manager:allow-write-text"
]
}
+1
View File
@@ -0,0 +1 @@
{"clipboard-manager":{"default_permission":{"identifier":"default","description":"No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n","permissions":[]},"permissions":{"allow-clear":{"identifier":"allow-clear","description":"Enables the clear command without any pre-configured scope.","commands":{"allow":["clear"],"deny":[]}},"allow-read-image":{"identifier":"allow-read-image","description":"Enables the read_image command without any pre-configured scope.","commands":{"allow":["read_image"],"deny":[]}},"allow-read-text":{"identifier":"allow-read-text","description":"Enables the read_text command without any pre-configured scope.","commands":{"allow":["read_text"],"deny":[]}},"allow-write-html":{"identifier":"allow-write-html","description":"Enables the write_html command without any pre-configured scope.","commands":{"allow":["write_html"],"deny":[]}},"allow-write-image":{"identifier":"allow-write-image","description":"Enables the write_image command without any pre-configured scope.","commands":{"allow":["write_image"],"deny":[]}},"allow-write-text":{"identifier":"allow-write-text","description":"Enables the write_text command without any pre-configured scope.","commands":{"allow":["write_text"],"deny":[]}},"deny-clear":{"identifier":"deny-clear","description":"Denies the clear command without any pre-configured scope.","commands":{"allow":[],"deny":["clear"]}},"deny-read-image":{"identifier":"deny-read-image","description":"Denies the read_image command without any pre-configured scope.","commands":{"allow":[],"deny":["read_image"]}},"deny-read-text":{"identifier":"deny-read-text","description":"Denies the read_text command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text"]}},"deny-write-html":{"identifier":"deny-write-html","description":"Denies the write_html command without any pre-configured scope.","commands":{"allow":[],"deny":["write_html"]}},"deny-write-image":{"identifier":"deny-write-image","description":"Denies the write_image command without any pre-configured scope.","commands":{"allow":[],"deny":["write_image"]}},"deny-write-text":{"identifier":"deny-write-text","description":"Denies the write_text command without any pre-configured scope.","commands":{"allow":[],"deny":["write_text"]}}},"permission_sets":{},"global_scope_schema":null},"core":{"default_permission":{"identifier":"default","description":"Default core plugins set which includes:\n- 'core:path:default'\n- 'core:event:default'\n- 'core:window:default'\n- 'core:webview:default'\n- 'core:app:default'\n- 'core:image:default'\n- 'core:resources:default'\n- 'core:menu:default'\n- 'core:tray:default'\n","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command withoutLine truncated
+1
View File
@@ -0,0 +1 @@
{"main":{"identifier":"main","description":"Main permissions","local":true,"windows":["*"],"permissions":["core:event:allow-emit","core:event:allow-listen","core:event:allow-unlisten","os:allow-os-type","clipboard-manager:allow-clear","clipboard-manager:allow-write-text","clipboard-manager:allow-read-text","dialog:allow-open","dialog:allow-save","fs:allow-read-file","fs:allow-read-text-file",{"identifier":"fs:scope","allow":[{"path":"$APPDATA"},{"path":"$APPDATA/**"}]},"shell:allow-open","core:webview:allow-set-webview-zoom","core:window:allow-close","core:window:allow-is-fullscreen","core:window:allow-maximize","core:window:allow-minimize","core:window:allow-set-decorations","core:window:allow-set-title","core:window:allow-show","core:window:allow-start-dragging","core:window:allow-theme","core:window:allow-toggle-maximize","core:window:allow-unmaximize","clipboard-manager:allow-read-text","clipboard-manager:allow-write-text"]}}
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Loaded 100 of 562 files, more files were not shown because too many files have changed in this diff. Show more