Compare commits

..

745 Commits

Author SHA1 Message Date
Gregory Schier
4f9a7e9c88 2024.5.0 (#39) 2024-06-03 14:08:24 -07:00
Gregory Schier
60e469a1c9 Fix release (#30) 2024-05-14 15:35:53 -07:00
Gregory Schier
7b4bc53c0f Release 2024.4.1 (#28) 2024-05-14 15:01:55 -07:00
Gregory Schier
c0068a1561 Add num launches to notification call 2024-05-14 14:25:10 -07:00
Gregory Schier
fad5e03f8b Fix window clicking on Linux 2024-05-14 12:19:19 -07:00
Gregory Schier
a22fc68764 Slight refactor 2024-05-14 08:44:15 -07:00
Gregory Schier
59a442e8c0 Build plugin 2024-05-14 08:28:20 -07:00
Gregory Schier
35e8155ecf Improve Curl imports 2024-05-14 08:28:01 -07:00
Gregory Schier
8b9a5cb5fb Bump version for release 2024-05-14 07:50:01 -07:00
Gregory Schier
29f9825f04 Fix upgrade cancel 2024-05-14 07:08:57 -07:00
Gregory Schier
ad8a6beacf Toast after data export 2024-05-14 00:36:15 -07:00
Gregory Schier
194ac78814 Fix selection of HTTP Request on create dropdown hotkey 2024-05-14 00:17:33 -07:00
Gregory Schier
0542f1ebea Fix curl export with multi-line body 2024-05-14 00:05:54 -07:00
Gregory Schier
8de917ea5e Autocomplete URLs of other requests 2024-05-13 23:54:52 -07:00
Gregory Schier
0b494bbfbf Fixed asset:// loading and tweak curl stuff 2024-05-13 23:20:30 -07:00
Gregory Schier
7e74f71c79 Bump version 2024-05-13 16:52:32 -07:00
Gregory Schier
bd7fd676a5 Better notifications 2024-05-13 16:52:20 -07:00
Gregory Schier
cb1c6a4d8c Improve copy-as-curl 2024-05-13 11:30:10 -07:00
Gregory Schier
b640f0c357 Refactor UpdateMode 2024-05-13 07:28:45 -07:00
Gregory Schier
967590c7ff Hide large GRPC messages by default 2024-05-13 07:19:26 -07:00
Gregory Schier
321d6ec9d7 Bump version 2024-05-12 12:11:14 -07:00
Gregory Schier
79b4fd7829 Add curl banner to import dialog 2024-05-10 13:36:30 -07:00
Gregory Schier
52eb4d338f Change curl import to post-toast 2024-05-10 13:06:40 -07:00
Gregory Schier
4b8b48e92f Toast component and use for copy-as-curl 2024-05-10 12:37:04 -07:00
Gregory Schier
e3f45b58e5 Insomnia YAML and loading state on import 2024-05-10 09:46:20 -07:00
Gregory Schier
a5f1922446 Some fixes after upgrading react-query 2024-05-10 09:19:29 -07:00
Gregory Schier
22e7b15a63 Update deps 2024-05-10 08:52:06 -07:00
Gregory Schier
c6bb2a73f8 Fix paste handler in Editor.tsx 2024-05-09 23:17:43 -07:00
Gregory Schier
bde961f95d Fix release targets 2024-05-09 15:38:27 -07:00
Gregory Schier
c4867b3f68 Don't commit .cargo 2024-05-09 10:17:35 -07:00
Gregory Schier
1c36e9a2f0 Fix args 2024-05-09 09:35:39 -07:00
Gregory Schier
1c82d8a738 Update GH action 2024-05-09 09:33:47 -07:00
Gregory Schier
a2df591102 Try fix linux 2024-05-09 08:37:18 -07:00
Gregory Schier
c950ee0fb8 Fix env var in GH Action 2024-05-09 08:29:45 -07:00
Gregory Schier
0ce5a9fcce Fix curl export tests 2024-05-09 08:18:06 -07:00
Gregory Schier
bd1970a805 Default .app/.dev/etc domains to https protos 2024-05-09 08:16:06 -07:00
Gregory Schier
3aaa4b1050 Bump version for beta 2024-05-09 07:52:36 -07:00
Gregory Schier
31d2426846 Fix GRPC event.emit permissions 2024-05-09 07:45:00 -07:00
Gregory Schier
25c4e4edaf Import from Curl 2024-05-09 07:31:52 -07:00
Gregory Schier
1a5bf53b02 Package lock 2024-05-08 15:37:53 -07:00
Gregory Schier
e2d1b62044 Slight refactor to copy-as-curl 2024-05-08 00:28:40 -07:00
Gregory Schier
6186104d11 Add rename request to context menu
Closes #21
2024-05-08 00:08:18 -07:00
Gregory Schier
f1e97eaea4 Copy as curl 2024-05-08 00:00:50 -07:00
Gregory Schier
bb0e58bf8b Curl import (#24) 2024-05-07 21:57:03 -07:00
Gregory Schier
dc802fa055 Upgrade to Tauri 2.0 (#23) 2024-05-04 14:14:19 -07:00
Gregory Schier
3c8e19367f Fix horizontal scroll on GraphQL variables editor 2024-04-18 10:53:36 -07:00
Gregory Schier
a89887eab8 Oops 2024-04-02 10:11:37 +02:00
Gregory Schier
7d3f0ad549 Postman text body import 2024-04-02 10:10:16 +02:00
Gregory Schier
5608db1334 Bump version 2024-04-01 08:48:26 +02:00
Gregory Schier
10443b3c02 Separate floating sidebar hidden state 2024-03-22 10:43:10 -07:00
Gregory Schier
7d272f3cd6 Filtering for cmd palette 2024-03-22 10:42:45 -07:00
Gregory Schier
d60a62ab24 Space between var placeholders and code fold cursor 2024-03-22 10:42:35 -07:00
Gregory Schier
2b0f73b7c5 Fix Postman variable import 2024-03-22 10:40:51 -07:00
Gregory Schier
0915ea8585 Adjust highlight color 2024-03-22 10:37:45 -07:00
Gregory Schier
ed9a0b8ac7 Some scrolling tweaks 2024-03-20 17:27:47 -07:00
Gregory Schier
7437f39ed3 Fix URL bar buttons in expanded state 2024-03-20 16:17:05 -07:00
Gregory Schier
27f80cd97b Bump version 2024-03-20 16:05:14 -07:00
Gregory Schier
04cf688a9b Fix dialog height 2024-03-20 16:05:01 -07:00
Gregory Schier
178af308ce Remove openOnHotKeyAction in favor of putting hotkey on the trigger button= 2024-03-20 15:56:39 -07:00
Gregory Schier
d40732a910 Use SQLite connect options 2024-03-20 13:33:11 -07:00
Gregory Schier
d8a579b7b3 Pass workspace id to import 2024-03-20 07:30:59 -07:00
Gregory Schier
bf8ef40708 Handle import errors 2024-03-20 07:27:12 -07:00
Gregory Schier
41060d5d43 Postman bearer, global auth, global vars 2024-03-20 07:26:46 -07:00
Gregory Schier
ab6cef064c Implement select for command palette 2024-03-19 17:24:57 -07:00
Gregory Schier
829d10d7b9 Tweak checkbox and autocomplete styles 2024-03-19 17:08:06 -07:00
Gregory Schier
57e1f641a7 Fix sidebar border 2024-03-19 16:44:37 -07:00
Gregory Schier
7df965e74b Export multiple workspaces 2024-03-19 13:43:33 -07:00
Gregory Schier
0e1153fdfd Fix settings query store and analytics 2024-03-19 10:23:21 -07:00
Gregory Schier
9797bc1830 Start of command palette 2024-03-18 17:09:01 -07:00
Gregory Schier
9d00eb98d2 useRequests hook 2024-03-18 13:49:36 -07:00
Gregory Schier
88f6e882c6 Fix editor key events 2024-03-18 13:40:15 -07:00
Gregory Schier
230a773909 Simple tests for Postman and Yaak importers 2024-03-18 13:40:00 -07:00
Gregory Schier
e6da1afa82 Set filename on Multipart part 2024-03-18 13:24:27 -07:00
Gregory Schier
a70d9e57be Fix GraphQL editor large variables quirk 2024-03-18 13:10:55 -07:00
Gregory Schier
8afe0c0755 Fix postman import and import Insomnia gRPC 2024-03-18 08:18:04 -07:00
Gregory Schier
e47c2513a8 Better padding 2024-03-16 13:59:06 -07:00
Gregory Schier
276bcfceeb Remove debug log 2024-03-16 12:50:27 -07:00
Gregory Schier
6fd1b35a50 Custom content-type for multipart items 2024-03-16 12:49:17 -07:00
Gregory Schier
bc33244549 Content menu on entire sidebar 2024-03-16 10:47:10 -07:00
Gregory Schier
33c982b288 Obfuscate environment variables 2024-03-16 10:42:46 -07:00
Gregory Schier
98493a1167 Fix light mode text selection 2024-03-16 09:48:55 -07:00
Gregory Schier
a8c10f9601 Stubbed out global commands helper 2024-03-16 09:46:11 -07:00
Gregory Schier
1051f84bbf Fix deleting workspace staying on deleted workspace path 2024-03-15 13:07:02 -07:00
Gregory Schier
eea137e677 Bump version 2024-03-10 18:15:00 -07:00
Gregory Schier
27cf4e925f Fix recent workspaces 2024-03-10 17:42:25 -07:00
Gregory Schier
6b239c4e3f Fix adding header if not exist 2024-03-10 17:10:16 -07:00
Gregory Schier
4c7ee5ef80 Remove completion debug blur thing 2024-03-10 16:46:18 -07:00
Gregory Schier
3ddb79899e Adjust detected content-type header 2024-03-10 16:26:06 -07:00
Gregory Schier
b14595a3e2 Clickable links in response viewer 2024-03-10 13:41:44 -07:00
Gregory Schier
82c94369ae Better error handling for file not found 2024-03-10 11:02:32 -07:00
Gregory Schier
7e77d2e9a8 Cancel file selection sets to undefined 2024-03-10 10:57:49 -07:00
Gregory Schier
ce5ce76b21 Binary file uploads and missing workspace empty state 2024-03-10 10:56:38 -07:00
Gregory Schier
27d6b30cf9 Fix GraphQL Header backend 2024-02-28 13:38:22 -08:00
Gregory Schier
9285dd5d70 Fix GraphQL content type on creation, and placeholder 2024-02-28 13:04:17 -08:00
Gregory Schier
977234808e Include default protoc includes 2024-02-28 09:45:11 -08:00
Gregory Schier
e1ccd327f5 Bump version 2024-02-28 08:51:34 -08:00
Gregory Schier
a0e3e71a4b Fix dropdown arrow keys 2024-02-28 08:51:08 -08:00
Gregory Schier
2d4037da37 Track GRPC 2024-02-28 07:32:05 -08:00
Gregory Schier
d21608bb82 Analytics ID 2024-02-28 07:27:19 -08:00
Gregory Schier
f16239de73 Analytics ID 2024-02-28 07:26:02 -08:00
Gregory Schier
d00f34c240 Remove Escape from hotkeys 2024-02-27 18:58:41 -08:00
Gregory Schier
fd77437f59 Fix sidebar focus 2024-02-27 10:33:20 -08:00
Gregory Schier
f9cd8d24a1 Fix gap in dropdown menu items 2024-02-27 10:27:04 -08:00
Gregory Schier
c0a9f79834 Methods in recent dropdown 2024-02-27 10:20:35 -08:00
Gregory Schier
ca63c101a1 Many hotkey improvements 2024-02-27 10:10:38 -08:00
Gregory Schier
dbd0b46ef2 Info logs in build 2024-02-26 17:27:08 -08:00
Gregory Schier
89793ebe2f Introspection tweak 2024-02-26 17:24:44 -08:00
Gregory Schier
e1ffc387ea Tweak editor find/replace 2024-02-26 17:17:37 -08:00
Gregory Schier
1efd0852ef Fix find/replace CM styling 2024-02-26 17:07:09 -08:00
Gregory Schier
59d532ed4d Fix lint errors 2024-02-26 07:43:08 -08:00
Gregory Schier
f034cda7cd Autocomplete icons and transfer proto files on duplicate 2024-02-26 07:39:53 -08:00
Gregory Schier
5c1cf1e57d Prompt folder name on create 2024-02-26 07:14:27 -08:00
Gregory Schier
780960f5de Better creation from folder menu 2024-02-26 07:09:59 -08:00
Gregory Schier
aada95e9da Auto-fill link to changelog in release script 2024-02-25 18:42:04 -08:00
Gregory Schier
89b5003cce Protoc sidecar 2024-02-25 17:43:29 -08:00
Gregory Schier
3559333461 Fix deletion in sidebar 2024-02-25 12:56:57 -08:00
Gregory Schier
fbb6cab567 Fix create dropdown hotkey 2024-02-24 22:02:04 -08:00
Gregory Schier
30fca29c6d Try changing macOS version 2024-02-24 21:25:58 -08:00
Gregory Schier
ec1e521b39 Bump some things 2024-02-24 21:23:02 -08:00
Gregory Schier
a8998cd696 Fix response pane height 2024-02-24 19:31:59 -08:00
Gregory Schier
df178baed6 Don't build plugins 2024-02-24 18:58:51 -08:00
Gregory Schier
e2f75371e6 Remove npm ci plugins 2024-02-24 18:28:07 -08:00
Gregory Schier
9f25ab39c6 Check in built plugins again 2024-02-24 18:27:36 -08:00
Gregory Schier
937df6a024 Add pkg locks 2024-02-24 18:19:16 -08:00
Gregory Schier
7deb7182a8 Install plugins in CI 2024-02-24 16:29:22 -08:00
Gregory Schier
82b14c56be Bump version 2024-02-24 16:22:55 -08:00
Gregory Schier
58b98734c9 Got json-schema autocomplete working again 2024-02-24 16:22:22 -08:00
Gregory Schier
c2f58f328c Proto files off model 2024-02-24 14:16:58 -08:00
Gregory Schier
36eabe7528 Better gRPC status on error 2024-02-24 12:41:43 -08:00
Gregory Schier
8347093e8b More analytics, and cancel requests 2024-02-24 11:30:07 -08:00
Gregory Schier
75282cb43a Hook up empty state buttons for first-launch experience 2024-02-23 16:34:19 -08:00
Gregory Schier
3a253a758d gRPC in import/export 2024-02-23 16:16:13 -08:00
Gregory Schier
f2955c26c1 Everything in messages now 2024-02-22 19:51:30 -08:00
Gregory Schier
e6c0317b37 Format XML responses 2024-02-22 01:00:02 -08:00
Gregory Schier
0cfb218b07 Refactor into grpc events 2024-02-22 00:49:22 -08:00
Gregory Schier
8ef103fbde Fix split layout placeholder 2024-02-18 09:12:44 -08:00
Gregory Schier
ec5cdfb025 Add other body type 2024-02-18 08:59:14 -08:00
Gregory Schier
7f4d082c17 Add metadata and squash migrations 2024-02-18 08:35:31 -08:00
Gregory Schier
e10011ef34 Better environment edit dialog 2024-02-18 07:44:53 -08:00
Gregory Schier
1eb6999c37 Allow editing base environment 2024-02-18 00:14:47 -08:00
Gregory Schier
35596916bf Render gRPC message body 2024-02-18 00:14:26 -08:00
Gregory Schier
d61b22dd87 gRPC authentication 2024-02-17 23:47:28 -08:00
Gregory Schier
5565a9db9a Even better dropdown filtering 2024-02-17 22:27:01 -08:00
Gregory Schier
b803655306 Started gRPC tabs 2024-02-17 22:15:44 -08:00
Gregory Schier
20df2bf13a Better dropdown filtering 2024-02-17 22:03:42 -08:00
Gregory Schier
e8fab85ce5 Prevent dragging folders into itself 2024-02-17 15:32:15 -08:00
Gregory Schier
ce730f3dbe Fix deps 2024-02-17 15:20:13 -08:00
Gregory Schier
2328973de5 Upgrade Vite deps and fix windows DnD 2024-02-17 14:57:12 -08:00
Gregory Schier
37dea50c91 Fix postman importer TS ref 2024-02-17 11:05:57 -08:00
Gregory Schier
40dfc8b30a Add more info to settings 2024-02-17 11:04:19 -08:00
Gregory Schier
72971bb9ec Adjust placeholder error colors 2024-02-15 21:15:18 -08:00
Gregory Schier
f835599502 Tweak tab padding 2024-02-15 16:38:14 -08:00
Gregory Schier
0caa4f8099 Responsive (scroll) workspace header 2024-02-15 16:30:08 -08:00
Gregory Schier
71d3c9acd1 Better button highlight border 2024-02-15 15:55:32 -08:00
Gregory Schier
239ffa174a Refactor recentRequest/Env/Workspace 2024-02-15 15:14:18 -08:00
Gregory Schier
eae79ab14b Better sidebar collapse, debuonce container uqeries, fix recent requests 2024-02-15 15:07:15 -08:00
Gregory Schier
ef7912615a Better recent work/env/req logic 2024-02-13 17:21:54 -08:00
Gregory Schier
7f20b67380 Fix active environment on workspace change 2024-02-13 16:42:07 -08:00
Gregory Schier
504337c178 Active environment in query param 2024-02-13 16:32:31 -08:00
Gregory Schier
d6b4f06ac8 Better variable placeholder styles 2024-02-13 16:32:17 -08:00
Gregory Schier
28cbf5474d Show GQL for graphql requests in sidebar 2024-02-13 16:32:00 -08:00
Gregory Schier
d797b84d4e Better highlight on JSON tree 2024-02-13 16:31:38 -08:00
Gregory Schier
720745857d Cmd+n to open dropdown 2024-02-11 14:17:09 -08:00
Gregory Schier
a74ea1aeda Tab-to-indent in editor 2024-02-11 14:16:36 -08:00
Gregory Schier
643f5e7f26 Make editor variables more prominent 2024-02-11 14:16:25 -08:00
Gregory Schier
a208b934e4 Fix dropdown open index 2024-02-11 14:16:11 -08:00
Gregory Schier
5892774082 Catch URL error when URL = "{{HOST}}" 2024-02-11 09:04:27 -08:00
Gregory Schier
13bfc1c3bd Grap gRPC status codes 2024-02-11 08:52:12 -08:00
Gregory Schier
00289734c7 Use basemsg 2024-02-11 08:29:57 -08:00
Gregory Schier
09c7c2cb91 Combine grpc handlers, fix duplicate 2024-02-10 10:41:45 -08:00
Gregory Schier
bbe62abd20 Fix response emit and sidebar flex 2024-02-09 16:16:02 -08:00
Gregory Schier
cae9a4fd36 Sidebar methods and fix model hooks 2024-02-09 16:09:24 -08:00
Gregory Schier
e7ee4a8867 Fix editor selection/cursor and lint errors 2024-02-09 14:32:58 -08:00
Gregory Schier
b020574c88 Remove built plugins from source control 2024-02-09 05:09:37 -08:00
Gregory Schier
192e1da5b6 Merge branch 'grpc' 2024-02-09 05:07:45 -08:00
Gregory Schier
0640079e59 Move plugins to build folder 2024-02-09 05:07:34 -08:00
Gregory Schier
a9d99aa17f gRPC Support (#20) 2024-02-09 05:01:00 -08:00
Gregory Schier
b4667e1f88 Better message serialization 2024-02-09 05:00:48 -08:00
Gregory Schier
7bc26fd448 Working sidebar actions for grpc 2024-02-07 00:02:02 -08:00
Gregory Schier
94a9a5d5d5 Change hotkey handling to capture phase 2024-02-06 23:44:10 -08:00
Gregory Schier
bcfa2c411f Fix pool management 2024-02-06 23:26:24 -08:00
Gregory Schier
1e3d43dbae Minor tweaks 2024-02-06 19:32:03 -08:00
Gregory Schier
c6b5e4d5df gRPC schema from files! 2024-02-06 19:20:32 -08:00
Gregory Schier
1293870e11 Proto selection UI/models 2024-02-06 12:29:23 -08:00
Gregory Schier
8309c19167 Better reflect failure UI 2024-02-05 14:50:47 -08:00
Gregory Schier
63a381c55a Async connection management 2024-02-05 11:29:27 -08:00
Gregory Schier
d891f891b7 Refactor model emit, and recent conn dropdown 2024-02-05 10:39:47 -08:00
Gregory Schier
0b12a6b318 db to app_handle! 2024-02-04 22:52:04 -08:00
Gregory Schier
0144ab05a0 Single upserted_model event 2024-02-04 21:19:15 -08:00
Gregory Schier
1f71d4372f Fix DB mutex deadlock 2024-02-04 21:17:05 -08:00
Gregory Schier
5ed1ea07ef More messages 2024-02-04 19:08:31 -08:00
Gregory Schier
4d2b101278 Client streaming working 2024-02-04 17:53:15 -08:00
Gregory Schier
1dfdadde98 Bidirectional working 2024-02-04 14:10:38 -08:00
Gregory Schier
d19729869e Messages are flowing! 2024-02-04 12:09:10 -08:00
Gregory Schier
5f782ad109 Use req/conn/msg models in unary/server 2024-02-04 11:57:12 -08:00
Gregory Schier
27dbdc9b5a Remove console log 2024-02-03 13:39:45 -08:00
Gregory Schier
4892863dd7 Grpc layout use new models 2024-02-03 13:28:31 -08:00
Gregory Schier
dc077209cc Show gRPC requests in sidebar 2024-02-03 13:08:24 -08:00
Gregory Schier
d8d5344d21 gRPC models and tables 2024-02-03 11:14:42 -08:00
Gregory Schier
d148a8384d Tiny fixes 2024-02-02 18:41:00 -08:00
Gregory Schier
6884e9428b Better formatting 2024-02-02 13:37:44 -08:00
Gregory Schier
25ebccfcd7 A bit better handling of responses 2024-02-02 13:32:06 -08:00
Gregory Schier
7adb0cbb50 Split layouts and things 2024-02-02 12:41:37 -08:00
Gregory Schier
50866abda4 bidi hacked! 2024-02-02 01:10:54 -08:00
Gregory Schier
c83d904cf0 Implement cancel 2024-02-02 00:18:37 -08:00
Gregory Schier
160447f8f6 Better connection management 2024-02-01 20:29:32 -08:00
Gregory Schier
184b13cc2a gRPC manager mostly working 2024-02-01 15:36:50 -08:00
Gregory Schier
8fa965e055 Small refactor 2024-02-01 02:42:59 -08:00
Gregory Schier
1dd0b69079 Refactor commands and DB 2024-02-01 02:29:24 -08:00
Gregory Schier
be8dd107e3 Some minor tweaks 2024-02-01 00:48:03 -08:00
Gregory Schier
8f139f10ef Revert response JSON tree 2024-02-01 00:38:57 -08:00
Gregory Schier
8b0823984b Even better styles 2024-02-01 00:36:49 -08:00
Gregory Schier
d82d2229d4 Styled it up a bit 2024-02-01 00:16:09 -08:00
Gregory Schier
4be1bc17f3 Merge remote-tracking branch 'origin/grpc' into grpc 2024-01-31 22:14:15 -08:00
Gregory Schier
e6af0c6009 Hacky server streaming done 2024-01-31 22:14:08 -08:00
Gregory Schier
e5d10bd72b Hacky client streaming done 2024-01-31 22:13:46 -08:00
Gregory Schier
9426885bb8 Initial frontend for gRPC UI 2024-01-30 16:43:54 -08:00
Gregory Schier
89e5d4f235 Hooked up test call from frontend! 2024-01-29 20:50:43 -08:00
Gregory Schier
eecb3fbc7f Fix cookie jar 2024-01-28 17:49:04 -08:00
Gregory Schier
244f1319b4 Track dialogs 2024-01-28 16:33:36 -08:00
Gregory Schier
6a2b76e760 Fix dropdown separator 2024-01-28 16:21:41 -08:00
Gregory Schier
bc0278fce9 Better format 2024-01-28 16:19:46 -08:00
Gregory Schier
959841fb22 More response info 2024-01-28 16:02:49 -08:00
Gregory Schier
fbc878dbe5 Better BG color 2024-01-28 14:43:04 -08:00
Gregory Schier
7d183c6580 Cookie Support (#19) 2024-01-28 14:39:51 -08:00
Gregory Schier
0555420ad9 Add shift to hotkey dialog hotkey 2024-01-19 22:11:20 -08:00
Gregory Schier
ae25561c7e Show alert after force checking updates 2024-01-19 22:11:02 -08:00
Gregory Schier
92e2b2b8f9 Better dialog padding 2024-01-19 22:08:32 -08:00
Gregory Schier
2a4a830fb7 Change env hotkey to use shift 2024-01-19 21:53:48 -08:00
Gregory Schier
0ad4c7cd7e Fix URL 2px grow on focus 2024-01-19 21:49:51 -08:00
Gregory Schier
41413d52ad Bump version 2024-01-19 13:42:02 -08:00
Gregory Schier
eabc1bd305 Fix analytics again 2024-01-18 22:28:25 -08:00
Gregory Schier
9c312e12c1 Fix dialog close button 2024-01-18 20:57:42 -08:00
Gregory Schier
18ea9dda3d Fix URLBar expanded state inner buttons 2024-01-18 20:40:56 -08:00
Gregory Schier
56d4212f68 Some analytics fixes 2024-01-18 20:23:02 -08:00
Gregory Schier
d932c19513 Launch analytics events, changelog, better filter styles 2024-01-18 14:42:02 -08:00
Gregory Schier
b800f00b7e Bump version 2024-01-17 14:56:47 -08:00
Gregory Schier
e43af5234f Custom HTTP method names 2024-01-17 14:52:19 -08:00
Gregory Schier
aa59d96e55 Workspace header tweak Windows 2024-01-17 18:48:43 -08:00
Gregory Schier
5be04ceea6 Fix header in fullscreen mode on Mac 2024-01-17 09:34:47 -08:00
Gregory Schier
da3392ac53 Download response, and some fixes 2024-01-16 17:02:55 -08:00
Gregory Schier
a2c9c98b21 Fix editor toolbar blocking things 2024-01-15 21:44:53 -08:00
Gregory Schier
8298d6e031 Better request creation (Closes #14) 2024-01-15 21:39:27 -08:00
Gregory Schier
d6331022ad XPath plugin 2024-01-15 21:27:47 -08:00
Gregory Schier
5e75d8c9a7 Fix send icon 2024-01-15 15:43:55 -08:00
Gregory Schier
51944a212a Switch to Lucide icons 2024-01-15 15:42:28 -08:00
Gregory Schier
49ed756479 Improve response filter UX 2024-01-15 15:19:29 -08:00
Gregory Schier
1d207d5fbd JSONPath filter plugins working 2024-01-15 15:06:49 -08:00
Gregory Schier
6b1d15415d Move plugin stuff around 2024-01-15 14:33:51 -08:00
Gregory Schier
df3bfaaab7 Fix request duplication 2024-01-15 13:47:44 -08:00
Gregory Schier
ad0b8a8e7d Fix workspace defaults 2024-01-15 12:25:13 -08:00
Gregory Schier
d5459229b9 Better settings dialog 2024-01-15 12:16:44 -08:00
Gregory Schier
adbf596f0b Fix resize observer 2024-01-15 12:02:08 -08:00
Gregory Schier
c740966394 Move request-related settings to workspace 2024-01-15 11:52:36 -08:00
Gregory Schier
7adab73af3 Bump beta version 2024-01-14 20:30:25 -08:00
Gregory Schier
c964f255d8 fix mac decorations 2024-01-14 17:22:31 -08:00
Gregory Schier
a7ffed9716 Integrated titlebar windows 2024-01-14 16:44:04 -08:00
Gregory Schier
488d66d248 Further titlebar tweaks 2024-01-14 12:02:44 -08:00
Gregory Schier
93cb469cb8 Better titlebar control icons 2024-01-14 11:56:21 -08:00
Gregory Schier
03a2fc8ee5 Basic Linux/Windows integrated titlebar 2024-01-13 23:40:32 -08:00
Gregory Schier
2d72e5792e Fix hotkey formatting 2024-01-12 22:12:01 -08:00
Gregory Schier
9bf9a87f12 beta tag 2024-01-12 22:00:55 -08:00
Gregory Schier
e2fca399e0 fix appearance init 2024-01-12 21:59:46 -08:00
Gregory Schier
e13fdddf98 Vendor Openssl 2024-01-12 21:03:28 -08:00
Gregory Schier
890eea299d Hotkeys for request switcher 2024-01-12 21:03:20 -08:00
Gregory Schier
9beac00981 Appearance setting and gzip/etc support 2024-01-12 13:39:08 -08:00
Gregory Schier
1a64d7d9e6 Initial settings implementation 2024-01-11 21:13:17 -08:00
Gregory Schier
bd5ae12f2e Dropdown manages hotkeys now 2024-01-11 10:18:05 -08:00
Gregory Schier
dbaf1da3ce Hotkey for keyboard shortcut help 2024-01-10 22:05:16 -08:00
Gregory Schier
a03c5df440 Bump version number 2024-01-10 16:25:55 -08:00
Gregory Schier
0776f6a2be Add hotkey dialog and rust-only analytics 2024-01-10 16:18:08 -08:00
Gregory Schier
ac9d050d9e Fix beta icon 2024-01-08 17:07:42 -08:00
Gregory Schier
b885c358a3 Bump version to 2024.0.0 2024-01-08 15:57:59 -08:00
Gregory Schier
84d447973e Hotkey labels 2024-01-08 15:57:21 -08:00
Gregory Schier
019ec4de20 Show hotkeys on empty views 2024-01-08 15:13:44 -08:00
Gregory Schier
26189067cd Remove base env, fix hotkeys, and QoL improvements 2024-01-07 22:24:19 -08:00
Gregory Schier
caf39071af Fix hotkeys getting stuck on cmd+tab 2024-01-07 21:32:25 -08:00
Gregory Schier
08a1223482 Always show settings dropdown 2023-11-22 09:39:30 -08:00
Gregory Schier
24bd90745e Tweak margin 2023-11-22 09:37:50 -08:00
Gregory Schier
7a72920e66 Fix bottom-up dropdown positioning 2023-11-22 09:35:56 -08:00
Gregory Schier
81a8276e2b Bump version 2023-11-22 09:06:47 -08:00
Gregory Schier
8fb6f51555 Better linux/Windows support for hotkeys 2023-11-22 09:06:22 -08:00
Gregory Schier
b0026aff66 Good hotkey support 2023-11-22 09:01:48 -08:00
Gregory Schier
3ced7f7c18 Reset URL bar when request changes 2023-11-21 23:26:29 -08:00
Gregory Schier
33f6995193 Env dialog hotkey 2023-11-21 22:35:28 -08:00
Gregory Schier
8af526682a Remove response body and basic hotkeys 2023-11-21 22:15:01 -08:00
Gregory Schier
d0d4324957 Remove app-specific menu items 2023-11-21 19:18:40 -08:00
Gregory Schier
2bcd0e0bbe Fix macOS menu and fallback URL 2023-11-21 09:24:13 -08:00
Gregory Schier
1b99c7e10f Hide menu on windows/linux 2023-11-21 08:17:37 -08:00
Gregory Schier
2831bb61b8 Disable sandboxing (again) 2023-11-19 21:59:55 -08:00
Gregory Schier
320670de2a Fix drag-drop reorder 2023-11-19 21:43:01 -08:00
Gregory Schier
1f39a36f26 Postman ID generation 2023-11-19 20:54:02 -08:00
Gregory Schier
1f84ba716e Bump beta.3 2023-11-19 20:46:55 -08:00
Gregory Schier
d034965d9c Postman variables + urlencoded forms 2023-11-19 20:29:24 -08:00
Gregory Schier
5eb30489e5 Add back Windows/Linux builds 2023-11-19 18:22:13 -08:00
Gregory Schier
05458a0753 Remove Tauri context menu plugin 2023-11-19 18:21:10 -08:00
Gregory Schier
7975ef0699 Fix header padding windows/linux 2023-11-19 18:14:49 -08:00
Gregory Schier
5f810a1b4c Some tweaks 2023-11-19 18:13:32 -08:00
Gregory Schier
c4093e79cf Beta 2 2023-11-19 17:41:58 -08:00
Gregory Schier
956f8ed2ea Network entitlement 2023-11-19 17:41:46 -08:00
Gregory Schier
7b32f76a1e Try sandboxing again 2023-11-19 17:06:31 -08:00
Gregory Schier
0dd11bc051 Remove sandboxing 2023-11-17 09:33:16 -08:00
Gregory Schier
aa38df28af Out of beta 2023-11-17 07:53:26 -08:00
Gregory Schier
32962a6336 Tweak 2023-11-17 07:52:03 -08:00
Gregory Schier
b268b72a4a Format GraphQL variables 2023-11-17 07:51:03 -08:00
Gregory Schier
eb0c90311b Drag into folder (Closes #8) 2023-11-17 07:36:01 -08:00
Gregory Schier
1070bf8e8f Mostly move some stuff around 2023-11-16 18:53:34 -08:00
Gregory Schier
9bdb01987c Better update logic 2023-11-14 14:28:06 -08:00
Gregory Schier
3130fb948a Better dropdown menu 2023-11-14 10:56:56 -08:00
Gregory Schier
e46de9eebd Version to beta 2023-11-14 10:07:39 -08:00
Gregory Schier
4360355c8c Beta channel updates 2023-11-14 08:57:46 -08:00
Gregory Schier
3baaddba0b Multipart form UI and fixes 2023-11-14 00:32:02 -08:00
Gregory Schier
e77c1c2a46 Got multipart working (text-only) 2023-11-13 23:26:11 -08:00
Gregory Schier
38422d59fd Fix window title moving stoplights (for now) 2023-11-13 23:25:47 -08:00
Gregory Schier
c884cedfc2 Postman import form data 2023-11-13 11:48:28 -08:00
Gregory Schier
91074a35d8 Some small improvements 2023-11-13 11:44:29 -08:00
Gregory Schier
9a02b63a6b Form urlencoded bodies! 2023-11-13 11:28:37 -08:00
Gregory Schier
4470409a24 Url parameters done 2023-11-13 10:52:11 -08:00
Gregory Schier
8a978420be Minor tweaks 2023-11-12 21:16:42 -08:00
Gregory Schier
dfc01d51ca Custom updater code 2023-11-12 21:16:33 -08:00
Gregory Schier
758154fa14 Request body is now an object 2023-11-12 11:16:12 -08:00
Gregory Schier
ef23a85577 Some postman import improvements 2023-11-11 10:43:11 -08:00
Gregory Schier
e4533088ed Sync window title (Closes #13) 2023-11-10 15:55:50 -08:00
Gregory Schier
4ffce4a534 Dev app icon 2023-11-10 13:06:12 -08:00
Gregory Schier
6b77a62934 Upgrade sqlx 2023-11-10 12:28:33 -08:00
Gregory Schier
f603867040 Clean up importers 2023-11-10 11:39:17 -08:00
Gregory Schier
b6eb7418aa Fix is_empty check 2023-11-10 09:12:20 -08:00
Gregory Schier
39c97681cf Postman importer semi-complete 2023-11-10 09:08:20 -08:00
Gregory Schier
2d0f0d8f6b Tidy up logs and general cleanup 2023-11-09 20:33:09 -08:00
Gregory Schier
209a767c91 Move error alert to hook 2023-11-09 20:02:42 -08:00
Gregory Schier
71f2a724cb Show import errors 2023-11-09 20:00:19 -08:00
Gregory Schier
4b89b95738 Hacky Yaak import complete! 2023-11-09 19:40:31 -08:00
Gregory Schier
b535722acd More fallback request handing 2023-11-09 17:42:10 -08:00
Gregory Schier
a9806a06a2 Request fallback name in header 2023-11-09 17:34:57 -08:00
Gregory Schier
948e19b82f Better default request names 2023-11-09 17:26:04 -08:00
Gregory Schier
cd841fa13a Better non-named requests 2023-11-09 17:17:03 -08:00
Gregory Schier
3ffcf91abd Better Yaak export 2023-11-09 17:03:29 -08:00
Gregory Schier
9fd84a3bfc Refactor previous commit 2023-11-09 16:50:57 -08:00
Gregory Schier
627c451cd1 Default request name to URL(ish) 2023-11-09 16:47:00 -08:00
Gregory Schier
e6ee89464a Rename initial workspace to "Yaak" 2023-11-09 13:17:21 -08:00
Gregory Schier
136e9f2738 No analytics in dev 2023-11-09 11:46:52 -08:00
Gregory Schier
d97986e526 Analytics event properties 2023-11-09 11:44:59 -08:00
Gregory Schier
7661aa9819 Context menu, logs in DevTools, export, tweaks 2023-11-09 09:28:01 -08:00
Gregory Schier
b7596f3f78 Fix plugin (again) 2023-11-08 13:33:15 -08:00
Gregory Schier
4e2231674c Bundle plugin in Git 2023-11-08 13:06:49 -08:00
Gregory Schier
d36d023a5c Move plugins back 2023-11-08 12:34:14 -08:00
Gregory Schier
3d5a7ebe3d Fix permissions 2023-11-08 12:02:17 -08:00
Gregory Schier
819384e952 Bump version 2023-11-08 10:12:01 -08:00
Gregory Schier
2f34c5e821 Tweak theme 2023-11-08 10:11:29 -08:00
Gregory Schier
0c89c154ee Tweak theme 2023-11-08 09:56:13 -08:00
Gregory Schier
060dce7440 Track screen size, os, and version 2023-11-08 09:49:29 -08:00
Gregory Schier
91707529bd Rust analytics and a few tweaks 2023-11-08 09:13:32 -08:00
Gregory Schier
22f182a8eb Add basic analytics 2023-11-07 09:53:59 -08:00
Gregory Schier
6ccc42dc3f Cancel responses on startup 2023-11-06 13:06:15 -08:00
Gregory Schier
655f5a8eed Send all in a folder 2023-11-06 10:53:39 -08:00
Gregory Schier
cd06a72d6f Rework workspace header 2023-11-06 10:42:59 -08:00
Gregory Schier
0a5d71ecc2 Fix sidebar focus max recursion 2023-11-06 10:40:02 -08:00
Gregory Schier
9c214b619c Save after formatting GraphQL (Closes #9) 2023-11-06 07:20:47 -08:00
Gregory Schier
6fddb727be Move plugins back to root dir 2023-11-06 07:18:53 -08:00
Gregory Schier
b5d3b9a803 Persist sidebar collapsed state (Closes #10) 2023-11-06 07:18:42 -08:00
Gregory Schier
a74c8a94db Vite to bundle insomnia plugin 2023-11-05 22:13:22 -08:00
Gregory Schier
abc6d0ff1e Better import conversion 2023-11-05 14:46:08 -08:00
Gregory Schier
afdbcd0a38 Basic import of request body and bearer auth 2023-11-05 14:35:25 -08:00
Gregory Schier
c31ae805a6 Recursive Insomnia import! 2023-11-05 13:33:23 -08:00
Gregory Schier
7c1afd7fe5 Remove numbers from recent requests 2023-11-04 16:19:21 -07:00
Gregory Schier
ad470a3fd2 Fix drop marker indent 2023-11-04 11:16:41 -07:00
Gregory Schier
7755d06bba Folder actions 2023-11-04 10:48:18 -07:00
Gregory Schier
5aed4b79be Folder chevron icon 2023-11-03 23:10:44 -07:00
Gregory Schier
f0e3f29606 Fix arrow navigation for nested sidebar 2023-11-03 17:29:33 -07:00
Gregory Schier
abbcc525bf Folder-based drag-n-drop complete! 2023-11-03 16:29:21 -07:00
Gregory Schier
ef8ade45b1 Sidebar ordering 95% done! 2023-11-03 15:02:17 -07:00
Gregory Schier
8919d598c2 Nested sidebar ordering almost working 2023-11-03 14:08:46 -07:00
Gregory Schier
e21e42f5fe Add folder model 2023-11-03 07:49:44 -07:00
Gregory Schier
658aed8a29 Even better focus state 2023-11-02 22:23:21 -07:00
Gregory Schier
a666f7d216 Remove focus on env sidebar buttons 2023-11-02 22:18:13 -07:00
Gregory Schier
62429df469 Rearrange menus 2023-11-02 21:41:35 -07:00
Gregory Schier
7aed699c3f Refactor environment edit dialog 2023-11-02 20:38:33 -07:00
Gregory Schier
a14db0ab74 Base environments fully working 2023-11-02 18:43:39 -07:00
Gregory Schier
7b67770dc7 Initial "plugin" system with importer (#7) 2023-11-02 18:08:43 -07:00
Gregory Schier
7766d8439b Fix cursor color in single-line mode 2023-10-31 15:10:33 -07:00
Gregory Schier
fac0683a71 Fix sending of ephemeral requests 2023-10-30 08:24:49 -07:00
Gregory Schier
79e04967f5 Fix GQL introspection and bearer auth templating 2023-10-30 08:07:34 -07:00
Gregory Schier
47eb8947f5 Fix button styles 2023-10-30 07:27:27 -07:00
Gregory Schier
959c55315c Fix editor stale callbacks and recent item deletion 2023-10-30 07:07:14 -07:00
Gregory Schier
b392f0c00f Refactored some core UI 2023-10-30 06:35:52 -07:00
Gregory Schier
c8e674d015 Plugin module loading 2023-10-29 20:50:23 -07:00
Gregory Schier
90fbb81e1d Bump version 2023-10-29 17:22:27 -07:00
Gregory Schier
21e58ca644 Fix sidebar scroll 2023-10-29 17:19:03 -07:00
Gregory Schier
cfb0aa55ea A bit more playing with JS runtime 2023-10-29 17:05:48 -07:00
Gregory Schier
9e0c021481 Initial "Hello World" for plugins 2023-10-29 16:43:28 -07:00
Gregory Schier
4acca8dd06 Fix request creation 2023-10-29 12:05:05 -07:00
Gregory Schier
88eea09428 Restore recent environment on workspace change
Fixes #6
2023-10-29 11:32:55 -07:00
Gregory Schier
90d2743267 Fix var complete and env dialog actions 2023-10-29 11:18:55 -07:00
Gregory Schier
89945532a0 Remove broken key/value enter/backspace logic 2023-10-29 10:45:05 -07:00
Gregory Schier
671860e053 Delete key/value on backspace 2023-10-29 10:26:38 -07:00
Gregory Schier
a87ca6af47 Move workspace menu, better env mgmt, QoL 2023-10-29 09:45:16 -07:00
Gregory Schier
b59ea4991c Bump version 2023-10-28 23:41:58 -07:00
Gregory Schier
b6fd59219f Better listening for path changes 2023-10-28 23:41:24 -07:00
Gregory Schier
38ce7650c1 Bump version 2023-10-28 22:14:51 -07:00
Gregory Schier
2b21e28096 Fixed auto-focus in prompt and env dropdown 2023-10-28 22:14:12 -07:00
Gregory Schier
3206651248 Clear selected sidebar index on drag-drop end 2023-10-28 21:47:00 -07:00
Gregory Schier
ba8aa0e218 Revert debug name 2023-10-28 21:43:09 -07:00
Gregory Schier
975a001635 Fix drag-n-drop things 2023-10-28 21:42:35 -07:00
Gregory Schier
30e7f7ccfe Persist window paths 2023-10-28 21:23:46 -07:00
Gregory Schier
cca8d97d63 Bump version to 2023.1.0 2023-10-28 19:15:33 -07:00
Gregory Schier
455e6c3520 Update placeholders when env changes 2023-10-28 19:14:51 -07:00
Gregory Schier
d05ee3ec16 Placeholder error and fix env nav 2023-10-28 19:08:31 -07:00
Gregory Schier
b1b5d08e89 Recent requests/workspaces. Closes #1 2023-10-28 18:46:54 -07:00
Gregory Schier
6202e59daa Fix recent requests loading on startup 2023-10-28 18:27:18 -07:00
Gregory Schier
c4a8603b81 Add tauri window save state plugin 2023-10-28 13:14:27 -07:00
Gregory Schier
5d15d1565c Fix rustfmt 2023-10-28 12:45:25 -07:00
Gregory Schier
045ff558f8 Handle enabled/disabled variables and render multi 2023-10-28 11:36:40 -07:00
Gregory Schier
504ed583cc Remove unused Variable type 2023-10-28 11:31:45 -07:00
Gregory Schier
15087f2d5a Variables under Environment, and render all props 2023-10-28 11:29:29 -07:00
Gregory Schier
eb1cd1c14b Native Codemirror cursor 2023-10-27 13:14:41 -07:00
Gregory Schier
0918d86654 Only wrap URLBar on focus and hotkey to open recent requests 2023-10-27 12:40:43 -07:00
Gregory Schier
d0e2220df7 Resizing window no longer changes sidebar visibility
Fixes #4
2023-10-27 11:21:59 -07:00
Gregory Schier
ccb04f0b45 Auto-expand URL bar height 2023-10-27 10:57:07 -07:00
Gregory Schier
54b6e1c7c3 Environment deletion and better actions menu 2023-10-26 16:18:47 -07:00
Gregory Schier
7c8acdc956 Stop autocomplete from jumping around 2023-10-26 15:27:48 -07:00
Gregory Schier
3973ae15be Fix request creation from menu 2023-10-26 10:41:14 -07:00
Gregory Schier
86dadf4f5e Send requests with active environment 2023-10-26 10:32:06 -07:00
Gregory Schier
dc4cb4be74 Move create request and fix slow HTML highlighting 2023-10-26 09:42:19 -07:00
Gregory Schier
2a29c4b551 Better project selector, Fixes #2, and a bunch more 2023-10-26 09:11:44 -07:00
Gregory Schier
2f64f45aba Fixed some routing and introspection requests 2023-10-25 21:53:18 -07:00
Gregory Schier
2f998ddfb6 Environments in URL and better rendering 2023-10-25 11:13:00 -07:00
Gregory Schier
93369a779d Move responses dropdown to separate component 2023-10-25 07:59:10 -07:00
Gregory Schier
74e28123a8 Fix dialog height 2023-10-25 00:02:51 -07:00
Gregory Schier
fef7db8710 Better style when no active environment 2023-10-24 23:58:12 -07:00
Gregory Schier
cb5d7626ac Environment dropdown and actions 2023-10-24 09:17:29 -07:00
Gregory Schier
e74f9f33c0 Started on environment edit dialog 2023-10-23 21:00:36 -07:00
Gregory Schier
0d27c17e28 Hacky implementation of variable autocomplete 2023-10-23 10:31:21 -07:00
Gregory Schier
f0b6d32639 Rendered first variable! 2023-10-22 22:30:29 -07:00
Gregory Schier
9ebd506056 Updating environments! 2023-10-22 22:06:51 -07:00
Gregory Schier
a5a91d2444 Update .gitignore 2023-10-22 20:40:00 -07:00
Gregory Schier
4435a66ece Prettier and start of env editor 2023-10-22 20:38:57 -07:00
Gregory Schier
874a1079c3 Environments data model 2023-10-22 18:28:56 -07:00
Gregory Schier
1dc239d243 Environment data model backend 2023-10-22 16:05:09 -07:00
Gregory Schier
73a04276c0 Fix some eslint warnings 2023-10-22 11:02:39 -07:00
Gregory Schier
9955064484 Add APPLE_TEAM_ID 2023-10-18 14:12:08 -07:00
Gregory Schier
7975b528ec Revert artifacts things 2023-10-18 13:25:35 -07:00
Gregory Schier
7d9fbda975 Bump cargo deps 2023-10-18 13:25:20 -07:00
Gregory Schier
fce06747e3 Bump version 2023-10-18 12:14:38 -07:00
Gregory Schier
db0cca54a7 Fix sidebar drag-n-drop 2023-10-18 11:58:58 -07:00
Gregory Schier
4424caecc5 Retry button on introspection errors 2023-06-12 13:20:42 -07:00
Gregory Schier
b866dcd566 Fix autocomplete doc font size 2023-05-31 21:32:48 -07:00
Gregory Schier
9e4e6435ab Persist introspection queries and also improve 2023-05-31 21:29:41 -07:00
Gregory Schier
41b10ff442 Update tauri NPM 2023-05-29 12:49:50 -07:00
Gregory Schier
79f3307104 Fix graphql instrospection 2023-05-29 12:31:34 -07:00
Gregory Schier
026629cd6d Change version 2023-04-27 16:53:39 -07:00
Gregory Schier
cf570a8f88 Version 1.0.0 2023-04-27 16:47:49 -07:00
Gregory Schier
4a64384468 Fix window methods on Linux/Windows 2023-04-27 16:27:02 -07:00
Gregory Schier
a9065c3380 Cross platform window controls 2023-04-27 10:19:49 -07:00
Gregory Schier
e5e5548562 Fix ubuntu build 2023-04-26 17:00:30 -07:00
Gregory Schier
44cf2f670f Windows and Linux 2023-04-26 16:54:51 -07:00
Gregory Schier
d04d91d6dd Bump version 2023-04-26 16:47:50 -07:00
Gregory Schier
3eb25b1507 Very basic CSV viewer 2023-04-22 21:53:04 +08:00
Gregory Schier
a95cae5610 Truncate response files 2023-04-14 14:15:33 -07:00
Gregory Schier
9cc6e62f28 Randomly offset new windows 2023-04-14 14:05:23 -07:00
Gregory Schier
24117f7c8d Fix text encoding and delete responses 2023-04-14 13:50:41 -07:00
Gregory Schier
7245e6e593 Delete response files 2023-04-14 12:17:11 -07:00
Gregory Schier
4a5b1f4da3 Readonly editor disable tabindex 2023-04-13 22:36:11 -07:00
Gregory Schier
c1ac67cc31 Fix imageview padding 2023-04-13 22:33:47 -07:00
Gregory Schier
4085361b7e Duration and size tags 2023-04-13 20:50:17 -07:00
Gregory Schier
8b4227dbff Comment 2023-04-13 18:55:32 -07:00
Gregory Schier
3f7ed9e177 Always store response on filesystem 2023-04-13 18:52:56 -07:00
Gregory Schier
f9f1ba9e24 Support binary responses! 2023-04-13 18:48:40 -07:00
Gregory Schier
29309500a6 Blur backdrop 2023-04-11 16:12:26 -07:00
Gregory Schier
6b07fe105f Autofocus buttons 2023-04-11 14:04:23 -07:00
Gregory Schier
90b03a0b97 Better opening workspaces and redirect workspace to recent request 2023-04-11 11:11:36 -07:00
Gregory Schier
d54a468006 Button disabled style opacity 2023-04-10 16:03:45 -07:00
Gregory Schier
7e98b6d853 Dropdown keys and pointer events 2023-04-10 16:02:29 -07:00
Gregory Schier
8069094201 Upgrade deno core 2023-04-10 11:16:25 -07:00
Gregory Schier
b28dc01e6b Tweak response history 2023-04-09 23:15:51 -07:00
Gregory Schier
6bc1f9f494 Fixed multi-window model sync 2023-04-09 22:32:47 -07:00
Gregory Schier
e85dd32005 Tweak recent requests 2023-04-09 22:25:00 -07:00
Gregory Schier
efc4e3bf6c Toggle settings 2023-04-09 22:12:16 -07:00
Gregory Schier
768a13ff4d Fix sidebar request focus 2023-04-09 22:03:41 -07:00
Gregory Schier
a8d73f74f4 More stuff on sidebar 2023-04-09 21:52:04 -07:00
Gregory Schier
4dddfc0cc5 Small tweaks 2023-04-09 15:32:13 -07:00
Gregory Schier
4163bebe3b Request history navigator 2023-04-09 15:26:54 -07:00
Gregory Schier
ad13744d14 Enter name on create workspace 2023-04-09 12:27:02 -07:00
Gregory Schier
9f9b3a5b21 Rename workspace 2023-04-09 12:23:41 -07:00
Gregory Schier
63e68baeb1 Sidebar hover transitions 2023-04-06 16:30:46 -07:00
Gregory Schier
4382ca6582 Remove some more key value usage 2023-04-06 16:26:56 -07:00
Gregory Schier
99f2f4c211 A bunch of tweaks 2023-04-06 16:05:25 -07:00
Gregory Schier
6b23379e5a macOS 12 2023-04-06 08:39:30 -07:00
Gregory Schier
4deda36e8f Remove system tray icon 2023-04-06 08:15:40 -07:00
Gregory Schier
0ce7831cfb Minor tweaks 2023-04-04 17:21:02 -07:00
Gregory Schier
4e9005e240 Fix some things 2023-04-04 16:56:45 -07:00
Gregory Schier
9147252e5b Editor line wrapping support (not used yet) 2023-04-04 16:40:37 -07:00
Gregory Schier
b6b549ca18 remove janky last location tracking 2023-04-04 16:23:08 -07:00
Gregory Schier
85c25fb71e Fix resize cursor 2023-04-04 16:12:45 -07:00
Gregory Schier
50637ba9fd Better button styles 2023-04-04 15:40:25 -07:00
Gregory Schier
bfe55dd55a Bump version 2023-04-04 13:56:24 -07:00
Gregory Schier
1a2bb3d12e Some small fixes 2023-04-04 13:56:14 -07:00
Gregory Schier
452a0c3ed5 A few fixes 2023-04-04 13:31:48 -07:00
Gregory Schier
b594a4690f Better status tags and delete request on key 2023-04-04 12:36:30 -07:00
Gregory Schier
7d2ba43463 Remove expects from request sending 2023-04-04 08:14:32 -07:00
Gregory Schier
107db42c33 Fix web view height 2023-04-04 07:51:41 -07:00
Gregory Schier
dbacb9fc8d Fix autocomplete spacing 2023-04-04 07:51:19 -07:00
Gregory Schier
1fa3499ca6 Fix input focus border 2023-04-03 12:19:37 -07:00
Gregory Schier
62f3198d27 Hot keys and cleanup 2023-04-03 07:59:49 -07:00
Gregory Schier
529550934b Add entitlemet for v8 2023-04-02 20:23:21 -07:00
Gregory Schier
ca3b22a881 Debug codesigned build 2023-04-02 19:09:14 -07:00
Gregory Schier
0ecf2d9123 Disable code signing 2023-04-02 18:27:14 -07:00
Gregory Schier
af9bb7138b Fix tauri script command 2023-04-02 17:25:24 -07:00
Gregory Schier
6cbfa74f97 Fix universal binary 2023-04-02 17:12:20 -07:00
Gregory Schier
2845fb8d35 Bump version 2023-04-02 15:44:41 -07:00
Gregory Schier
fbe2660a57 Fix toolchain 2023-04-02 15:44:21 -07:00
Gregory Schier
1519282ac6 Add proper target 2023-04-02 15:42:19 -07:00
Gregory Schier
5d8d8dca70 Try universal binary 2023-04-02 15:33:13 -07:00
Gregory Schier
0254e2c31d Fix version 2023-04-02 15:25:24 -07:00
Gregory Schier
368b494d62 Bump version 2023-04-02 14:54:41 -07:00
Gregory Schier
00d2213d05 Notorization (hopefully) 2023-04-02 14:53:49 -07:00
Gregory Schier
b04602bcb9 Change tabs again 2023-04-02 11:11:53 -07:00
Gregory Schier
80bfbd503a Better response headers 2023-04-02 10:45:41 -07:00
Gregory Schier
bfa186aebb Show response headers 2023-04-01 23:43:22 -07:00
Gregory Schier
818595e961 Some more refactoring 2023-04-01 21:48:30 -07:00
Gregory Schier
b5e9852f8d Refactor debounce and tauri event listeners 2023-04-01 21:39:46 -07:00
Gregory Schier
ff3734d65a Fix dropdown and dialog key handling 2023-04-01 21:04:39 -07:00
Gregory Schier
4aa771ba29 Refactor sidebar display 2023-04-01 20:58:53 -07:00
Gregory Schier
5848c381fa Better GraphQL schema fetching 2023-04-01 17:53:36 -07:00
Gregory Schier
03b35beae4 More eslint fixes 2023-04-01 15:48:37 -07:00
Gregory Schier
49856bb6f7 Add React hooks eslint 2023-04-01 15:26:57 -07:00
Gregory Schier
0cb56f1a85 Fix Tauri listeners 2023-04-01 00:02:17 -07:00
Gregory Schier
4a0d698776 Memo editor 2023-03-31 23:19:15 -07:00
Gregory Schier
a4ebdb5736 Fix request duplication 2023-03-31 22:54:32 -07:00
Gregory Schier
6a5ecc2880 Fix tauri listeners causing too many updates 2023-03-31 22:48:34 -07:00
Gregory Schier
7a5bd92442 Remove import 2023-03-31 22:42:41 -07:00
Gregory Schier
63c1111608 Fix 2023-03-31 22:42:26 -07:00
Gregory Schier
5704fb560a Upgrade Deno 2023-03-31 22:42:08 -07:00
Gregory Schier
33dc3b719d Tweak 2023-03-31 16:14:25 -07:00
Gregory Schier
d3329b4628 Fix send hotkey 2023-03-31 16:13:34 -07:00
Gregory Schier
42e2c9f96f Better schema fetching 2023-03-31 16:02:09 -07:00
Gregory Schier
3e8a10757f Finally fix the editor! 2023-03-31 15:56:35 -07:00
Gregory Schier
8028d82fd0 Fix editor blurring bug! 2023-03-31 13:53:28 -07:00
Gregory Schier
4ad9feba68 Better model updates 2023-03-31 13:21:02 -07:00
Gregory Schier
ef469be7a9 Fix text obscuring 2023-03-30 17:22:52 -07:00
Gregory Schier
14cd73d75a Button ring colors 2023-03-30 17:17:07 -07:00
Gregory Schier
fbe6039845 Remove dummy button 2023-03-30 17:12:38 -07:00
Gregory Schier
f3fbd070dd Confirm deletions 2023-03-30 17:09:11 -07:00
Gregory Schier
7c2611a5a7 Dedicated event for model creation 2023-03-30 16:49:49 -07:00
Gregory Schier
ae949f4616 Unify text selection color 2023-03-30 16:36:24 -07:00
Gregory Schier
89da434c0e Some icon tweaks 2023-03-30 16:29:14 -07:00
Gregory Schier
4a98d1d655 Fix strict mode editor blur bug 2023-03-30 10:38:33 -07:00
Gregory Schier
bb41f0e4fe Better tauri listeners and stuff 2023-03-30 09:05:54 -07:00
Gregory Schier
d2e0717d91 Remove updated_by, remember last location 2023-03-30 08:11:51 -07:00
Gregory Schier
7912204fcb Remove hardcoded window config 2023-03-29 22:16:21 -07:00
Gregory Schier
83e41ad618 Fix build 2023-03-29 22:15:55 -07:00
Gregory Schier
dd7e46c2cc Remove unused import 2023-03-29 21:53:49 -07:00
Gregory Schier
fb7424714a Better multi-window updates 2023-03-29 21:53:20 -07:00
Gregory Schier
47481b711e Fixed key/value stuff 2023-03-29 14:46:36 -07:00
Gregory Schier
0f86c3a731 Fix bundle parts 2023-03-29 14:00:34 -07:00
Gregory Schier
b91d1b8b3c Fix(ish) multiwindow updates 2023-03-29 11:15:37 -07:00
Gregory Schier
cd5ae6691c Obscure text 2023-03-29 10:16:51 -07:00
Gregory Schier
0f58986b4c Simple auth schemes 2023-03-29 09:03:38 -07:00
Gregory Schier
af9755c513 Good start to multi-window 2023-03-28 18:29:40 -07:00
Gregory Schier
56ce25f953 Focus traps for dialog and dropdown 2023-03-26 23:07:09 -07:00
Gregory Schier
ed70c15ee9 Confirmation Dialogs 2023-03-26 12:02:20 -07:00
Gregory Schier
d88ae99425 Floating sidebar 2023-03-26 10:09:28 -07:00
Gregory Schier
cf7ef55b7d Panel icons 2023-03-25 23:29:04 -07:00
Gregory Schier
2f12424f8d Update dialog 2023-03-25 21:59:18 -07:00
Gregory Schier
96aacec4fc Optimistically-update key values 2023-03-25 21:54:00 -07:00
Gregory Schier
7e57bb98a8 More tweaks 2023-03-25 21:40:14 -07:00
Gregory Schier
298f5c5a99 Animate dropdown 2023-03-25 21:36:17 -07:00
Gregory Schier
bf44ea7864 Animate sidebar transition 2023-03-25 21:31:52 -07:00
Gregory Schier
9abdc45e93 Refactor and improve layout resizing 2023-03-25 21:16:10 -07:00
Gregory Schier
0d82cc7574 Even better layouts 2023-03-25 18:33:01 -07:00
Gregory Schier
402b2a551f Better grid layouts 2023-03-25 18:12:09 -07:00
Gregory Schier
700c589ae2 Global layout component 2023-03-25 13:26:31 -07:00
Gregory Schier
8929d736d9 Better dropdown separator 2023-03-25 11:06:05 -07:00
Gregory Schier
8c65fce357 Fix sidebar drag 2023-03-24 08:37:52 -07:00
Gregory Schier
b81f1e9e6b Upgrade TYpescript 2023-03-23 15:37:36 -07:00
Gregory Schier
44d083d773 Fix resize 2023-03-23 07:47:58 -07:00
Gregory Schier
2b308282d4 Style tweak 2023-03-21 23:59:09 -07:00
Gregory Schier
c7738743c5 GraphQL autocomplete and duplicate request 2023-03-21 23:54:45 -07:00
Gregory Schier
abc60667c6 Tweak sidebar drag resizer 2023-03-21 19:36:32 -07:00
Gregory Schier
53162e8bca Minor style tweaks 2023-03-21 18:31:05 -07:00
Gregory Schier
6b95574e3d Pull out resize bar 2023-03-21 16:53:49 -07:00
Gregory Schier
c9d62ae961 Resize titlebar and tweak things 2023-03-21 16:42:52 -07:00
Gregory Schier
a70019927d Remove icon generation from build script 2023-03-21 14:21:07 -07:00
Gregory Schier
01cd7f951a query client cache and better body types 2023-03-21 11:38:37 -07:00
Gregory Schier
50f92bcfab Fix workspace deletion 2023-03-21 09:32:15 -07:00
Gregory Schier
362d9f8e59 Use proper gray for syntax 2023-03-20 17:15:12 -07:00
Gregory Schier
0b1cf53942 fix import 2023-03-20 17:13:14 -07:00
Gregory Schier
a4c769b33c Minor tweaks 2023-03-20 17:12:19 -07:00
Gregory Schier
74a1cb61c1 Fix URL bar spacing 2023-03-20 17:01:29 -07:00
Gregory Schier
268545c728 Better radio dropdown type 2023-03-20 16:54:26 -07:00
Gregory Schier
184bbb01c5 Typesafe routing and CM line height issue 2023-03-20 16:47:36 -07:00
Gregory Schier
66fa7ac419 Better tab dropdown handling 2023-03-20 14:14:30 -07:00
Gregory Schier
a80f3d997e Fix request creation priority 2023-03-20 13:56:03 -07:00
Gregory Schier
efa7c24c9f Remove log 2023-03-20 13:49:35 -07:00
Gregory Schier
91de21c7ad Handle "no body" case 2023-03-20 13:49:21 -07:00
Gregory Schier
1e9ba57ef0 Small fix 2023-03-20 13:37:14 -07:00
Gregory Schier
464389b248 Fix pointer window drag 2023-03-20 13:34:49 -07:00
Gregory Schier
107eb72eda Fix extra dropdown element 2023-03-20 13:19:23 -07:00
Gregory Schier
ee7bf838f4 Remove most of Radix UI 2023-03-20 13:16:58 -07:00
Gregory Schier
f63bcd94d1 Better Header validation 2023-03-20 01:38:05 -07:00
Gregory Schier
16d5cb6ade Tweak sidebar 2023-03-20 01:30:45 -07:00
Gregory Schier
63decdef8b Fix pair editor container 2023-03-20 01:18:44 -07:00
Gregory Schier
e54e88f46d Fix input thingy 2023-03-20 01:14:13 -07:00
Gregory Schier
b6f53d059e Container queries! 2023-03-20 01:08:41 -07:00
Gregory Schier
9e1771c5ec Better pair editor delete button 2023-03-20 00:30:42 -07:00
Gregory Schier
8306bc2198 Pair validation 2023-03-20 00:17:29 -07:00
Gregory Schier
3810fb7d51 Don't send disabled headers 2023-03-20 00:05:19 -07:00
Gregory Schier
5b4984113e Small tweak 2023-03-20 00:04:40 -07:00
Gregory Schier
baf9efe246 Pair checkboxes and fix twig indent 2023-03-20 00:03:33 -07:00
Gregory Schier
f4a3109a31 Rewrote twig grammar 2023-03-19 22:12:11 -07:00
Gregory Schier
241f2f39ec Re-order of pair editor 2023-03-19 13:28:57 -07:00
Gregory Schier
d9b40dca83 Better header editor and added completion data 2023-03-19 11:09:21 -07:00
Gregory Schier
cb3f053057 A couple tweaks 2023-03-19 01:01:13 -07:00
Gregory Schier
c4ab045e57 Persist sort priority! 2023-03-19 00:48:09 -07:00
Gregory Schier
d9b38efd97 Create new workspace, and more optimizations 2023-03-18 19:36:31 -07:00
Gregory Schier
5981588c95 Optimized a few components 2023-03-18 18:49:01 -07:00
Gregory Schier
388bef59b8 Fix sidebar drag-n-drop 2023-03-18 18:09:36 -07:00
Gregory Schier
3d8de61c1c Got drag opacity working 2023-03-18 15:06:38 -07:00
Gregory Schier
91b818f98d Good start to drag-n-drop sidebar! 2023-03-18 14:41:07 -07:00
Gregory Schier
3a7f0898f9 Fix mixed parser 2023-03-17 17:57:43 -07:00
Gregory Schier
c2f6de875a Dropdown highlight 2023-03-17 17:32:24 -07:00
Gregory Schier
0647001807 Beginnings of autocomplete for headers 2023-03-17 16:51:20 -07:00
Gregory Schier
4181d87792 Flatten migrations, kvs lib, fix tabs 2023-03-17 08:36:21 -07:00
Gregory Schier
58cf0a2015 Sidebar item dropdown 2023-03-16 15:37:53 -07:00
Gregory Schier
d80c3d305b Sidebar dragging 2023-03-16 14:34:49 -07:00
Gregory Schier
4d64a2bc2f Add devtools toggle hotkey 2023-03-16 11:25:38 -07:00
Gregory Schier
5c54beaaa9 Adjust window sizes 2023-03-16 11:16:23 -07:00
Gregory Schier
eee98f32b2 Store appearance in k/v 2023-03-16 11:01:30 -07:00
Gregory Schier
0949de66bf Hotkeys and view mode kvs 2023-03-16 09:24:28 -07:00
Gregory Schier
5a6acb24d9 Some fixes 2023-03-15 23:33:46 -07:00
Gregory Schier
2e5cab62c7 Got key values working 2023-03-15 23:24:41 -07:00
Gregory Schier
903db5fffd Fix editor padding 2023-03-15 17:29:35 -07:00
Gregory Schier
e3faf32708 Minor style updates 2023-03-15 17:25:04 -07:00
Gregory Schier
97926ddc03 Add stuff to app header 2023-03-15 16:35:19 -07:00
Gregory Schier
e891804051 Better request delete and formatting 2023-03-15 09:41:38 -07:00
Gregory Schier
a2982f8b77 Fix graphql and other things 2023-03-15 09:06:56 -07:00
Gregory Schier
321941baab Header editor to pair editor 2023-03-15 08:09:45 -07:00
Gregory Schier
e2e25dc30b Better header editor 2023-03-15 07:54:04 -07:00
Gregory Schier
1170ca4789 Strict mode and tweak layout padding 2023-03-14 20:19:45 -07:00
Gregory Schier
d159f62138 Add GraphQL variables editor 2023-03-14 19:56:02 -07:00
Gregory Schier
25005eef1b GraphQL query editor transformer works! 2023-03-14 19:08:18 -07:00
Gregory Schier
b17824c88d Add body type to request and tab dropdown 2023-03-14 11:18:56 -07:00
Gregory Schier
00f4a008f8 Improved header editor 2023-03-14 00:54:41 -07:00
Gregory Schier
3e2bc67b59 Fix platform check 2023-03-14 00:15:01 -07:00
Gregory Schier
efe072c7c4 Some small changes 2023-03-14 00:08:03 -07:00
Gregory Schier
59f1d11e40 Move stuff around 2023-03-13 23:30:14 -07:00
Gregory Schier
5f947ac983 Refactor hooks to be easier to use 2023-03-13 23:25:41 -07:00
Gregory Schier
aa66f957f2 Fix header editor and scroll in general 2023-03-13 19:37:36 -07:00
Gregory Schier
cf5f69271f Lazy load routes 2023-03-13 13:56:13 -07:00
Gregory Schier
c6653af782 Back to React 2023-03-13 09:50:49 -07:00
Gregory Schier
fa1f33a2ac Move some stuff around 2023-03-13 09:24:38 -07:00
Gregory Schier
9f479882ad Fix URL bar 2023-03-13 00:13:25 -07:00
Gregory Schier
41db316489 Fix ButtonLink and edit request names 2023-03-13 00:11:23 -07:00
Gregory Schier
50f0f5885e Remove old rust cache action 2023-03-12 22:48:43 -07:00
Gregory Schier
a609f09d50 Better rust cache 2023-03-12 22:47:43 -07:00
Gregory Schier
43f2aa3068 Start GraphQL support 2023-03-12 22:43:25 -07:00
Gregory Schier
a094e13bd5 Fix artifact tag 2023-03-12 21:41:15 -07:00
Gregory Schier
eb076afbe4 Remove wasm stuff 2023-03-12 21:25:31 -07:00
Gregory Schier
7b41488a38 Use tauri action 2023-03-12 21:13:08 -07:00
Gregory Schier
ca12d48352 Fix traffic lights thingy 2023-03-12 20:47:52 -07:00
Gregory Schier
0331d3b2b0 Cache cargo bin for "install" 2023-03-12 19:10:39 -07:00
Gregory Schier
4d4814583c Refformat 2023-03-12 19:03:27 -07:00
Gregory Schier
da3e158516 Fix artifact upload 2023-03-12 19:01:48 -07:00
Gregory Schier
7b9d6baff0 Fix dev 2023-03-12 18:39:02 -07:00
Gregory Schier
550f1b7c6f Split out macos deps 2023-03-12 18:36:25 -07:00
Gregory Schier
74e8ee1786 Cache workflow 2023-03-12 18:28:14 -07:00
Gregory Schier
55d3ea01b6 Add wasm-pack 2023-03-12 18:19:20 -07:00
Gregory Schier
4cfe51cbb2 Install rsw 2023-03-12 18:14:38 -07:00
Gregory Schier
1f5ac60523 Fix artifact names 2023-03-12 18:13:00 -07:00
Gregory Schier
26bf4f2abd Fix build command 2023-03-12 18:11:24 -07:00
Gregory Schier
54671fff79 Update secrets context 2023-03-12 18:07:57 -07:00
Gregory Schier
378309d763 Update workflow name 2023-03-12 18:05:45 -07:00
Gregory Schier
e7d4bba8b3 Fix workflow 2023-03-12 18:05:13 -07:00
Gregory Schier
fe3de0bc98 Start of auto updates 2023-03-12 18:04:11 -07:00
Gregory Schier
f3e38d7b71 Fix tabbing to tabs 2023-03-11 23:32:39 -08:00
Gregory Schier
eafa3b2de9 Fix eslint errors 2023-03-11 23:29:25 -08:00
Gregory Schier
d8cc075bd0 Got tab content scrolling working 2023-03-11 22:36:13 -08:00
Gregory Schier
bdb877a936 Removed some debug stuff 2023-03-10 10:43:15 -08:00
Gregory Schier
5c96e83a22 Refactor editor to update better 2023-03-10 10:39:23 -08:00
Gregory Schier
43abb57f77 Fix headers persistence and better sending 2023-03-09 13:38:17 -08:00
Gregory Schier
9c6d821978 Hook up header editor! 2023-03-09 13:07:13 -08:00
Gregory Schier
7e9babf515 Fix 2023-03-09 10:58:27 -08:00
Gregory Schier
ee36baf432 Fix blur de-select speed 2023-03-09 10:57:34 -08:00
Gregory Schier
0bf57dcab7 Fix Codemirror performance!! 2023-03-09 10:50:55 -08:00
Gregory Schier
e647d23adc Switch to Preact!!! 2023-03-09 00:47:25 -08:00
Gregory Schier
d1b5b9c371 Move some things around 2023-03-08 23:20:15 -08:00
Gregory Schier
92ec514442 Better scrollbar color 2023-03-08 19:23:24 -08:00
Gregory Schier
107466dd58 Zoom, better sizes, color picker, sidebar footer 2023-03-08 19:22:04 -08:00
Gregory Schier
4246260ce6 Read-only editor 2023-03-08 16:53:13 -08:00
Gregory Schier
936787d327 More theme tweaks 2023-03-08 16:37:20 -08:00
Gregory Schier
f976397283 Debounce autocomplete 2023-03-08 11:25:20 -08:00
Gregory Schier
657c6ad9a9 Minor theme updates again 2023-03-08 09:43:35 -08:00
Gregory Schier
ede07c3b0e Editor tweaks 2023-03-07 23:05:33 -08:00
Gregory Schier
9326e8dcce Remove unneeded space 2023-03-07 22:58:13 -08:00
Gregory Schier
8ff2adf833 Fix small view 2023-03-07 22:55:51 -08:00
Gregory Schier
5e387b513a Minor style tweaks 2023-03-07 22:21:58 -08:00
Gregory Schier
dca316c0d5 Lots more theme stuff 2023-03-07 21:52:21 -08:00
Gregory Schier
db2d786d50 Start of themes 2023-03-07 11:24:38 -08:00
Gregory Schier
c0d7962142 More subtle layout tweaks 2023-03-06 08:57:57 -08:00
Gregory Schier
5d14354ca9 More layout fiddling and error page 2023-03-04 22:26:00 -08:00
Gregory Schier
347dace6de More work on the layout 2023-03-04 21:51:17 -08:00
Gregory Schier
d952c75e3c Try new layout and a bunch of editor fixes 2023-03-04 19:06:12 -08:00
Gregory Schier
abc3745be1 Fix autocomplete inside dialog 2023-03-03 17:03:20 -08:00
Gregory Schier
1382d7c523 Beginnings of Header Editor 2023-03-03 13:18:57 -08:00
Gregory Schier
3de0edf0f9 Fix tailwind dark selector 2023-03-03 07:54:19 -08:00
Gregory Schier
5513d39152 Fix content type in URL 2023-03-02 23:17:09 -08:00
Gregory Schier
1a9547d1d2 Add Dialog component 2023-03-02 18:46:10 -08:00
Gregory Schier
26cc64d3a0 More colors 2023-03-02 17:56:53 -08:00
Gregory Schier
e465b33365 Minor style tweaks 2023-03-02 16:16:41 -08:00
Gregory Schier
957739ba5e Improved autocompletion! 2023-03-02 11:14:51 -08:00
Gregory Schier
59967374c5 Rename, fix autocomplete and singleline, etc... 2023-03-02 10:42:43 -08:00
Gregory Schier
43bc346a2b Editor placeholder 2023-03-01 14:22:10 -08:00
Gregory Schier
5fbd3f67cd Some minor bugs 2023-03-01 14:16:02 -08:00
Gregory Schier
e352343d62 Fix migrations for build and iframe rendering 2023-03-01 10:31:50 -08:00
Gregory Schier
baee0f0c6f Tweaks 2023-03-01 10:19:21 -08:00
Gregory Schier
fcc5eead88 Response streaming 2023-03-01 09:05:00 -08:00
Gregory Schier
29d1f687d1 Autocomplete, and more CM stuff! 2023-02-28 22:54:54 -08:00
Gregory Schier
f568266c7f Some small tweaks 2023-02-28 17:25:59 -08:00
Gregory Schier
a1e42b8ddb Better editor updating 2023-02-28 12:41:03 -08:00
Gregory Schier
e6389b1153 URL highlighting with inline CM 2023-02-28 11:26:26 -08:00
Gregory Schier
f0835acb33 Implement request deletion 2023-02-27 15:42:06 -08:00
Gregory Schier
35b04b219f Tauri events for request model updates 2023-02-27 13:28:50 -08:00
Gregory Schier
01b62e936a Split request upsert command 2023-02-27 10:00:57 -08:00
Gregory Schier
09d16a03ef Add toggle for pretty view 2023-02-27 09:08:48 -08:00
Gregory Schier
bb61602fd2 Small tweaks 2023-02-26 15:25:55 -08:00
Gregory Schier
f30b78ea1f Add variable highlighting widgets 2023-02-26 15:06:14 -08:00
Gregory Schier
6ee652ca75 Dropdown scrolling 2023-02-25 23:33:07 -08:00
Gregory Schier
67d8bbc154 Show response body size 2023-02-25 23:08:19 -08:00
Gregory Schier
b852484559 A bunch more small things 2023-02-25 23:04:31 -08:00
Gregory Schier
0b077e5e88 Added react-router 2023-02-25 18:04:14 -08:00
Gregory Schier
381d957db2 Migrations and initial data stuff 2023-02-25 16:39:18 -08:00
Gregory Schier
f8f77abc12 Minor tweaks 2023-02-24 17:01:48 -08:00
Gregory Schier
0b0484c610 Dummy requests in sidebar 2023-02-24 16:46:56 -08:00
Gregory Schier
2b769088af Codemirror initial value support 2023-02-24 16:43:47 -08:00
Gregory Schier
856d13c603 Send request body 2023-02-24 16:09:19 -08:00
Gregory Schier
76e398b8a1 Vendor basicSetup 2023-02-24 14:51:56 -08:00
Gregory Schier
24a7d85be0 Additional methods and tweaks 2023-02-24 14:10:25 -08:00
Gregory Schier
989271f653 Focus states 2023-02-24 12:35:13 -08:00
Gregory Schier
3fd8cd5713 Hook up theme and clear responses 2023-02-24 12:13:30 -08:00
Gregory Schier
43f1c7caf6 SQLite store in proper dir 2023-02-22 20:18:14 -08:00
Gregory Schier
bd91ac88a3 Started on grid layout 2023-02-22 19:44:44 -08:00
Gregory Schier
fbcbf2e5a5 Save responses in DB 2023-02-22 18:53:44 -08:00
Gregory Schier
31eb03da0d Better URL bar 2023-02-22 16:15:25 -08:00
Gregory Schier
a4dbfed712 Cleaner URL bar and some improvements 2023-02-22 15:58:04 -08:00
Gregory Schier
784cb53ec6 Refactor classname usage 2023-02-21 18:03:57 -08:00
Gregory Schier
43c799bd60 Some minor tweaks 2023-02-21 17:56:48 -08:00
1341 changed files with 78426 additions and 93284 deletions

View File

@@ -1,72 +0,0 @@
# Claude Context: Detaching Tauri from Yaak
## Goal
Make Yaak runnable as a standalone CLI without Tauri as a dependency. The core Rust crates in `crates/` should be usable independently, while Tauri-specific code lives in `crates-tauri/`.
## Project Structure
```
crates/ # Core crates - should NOT depend on Tauri
crates-tauri/ # Tauri-specific crates (yaak-app, yaak-tauri-utils, etc.)
crates-cli/ # CLI crate (yaak-cli)
```
## Completed Work
### 1. Folder Restructure
- Moved Tauri-dependent app code to `crates-tauri/yaak-app/`
- Created `crates-tauri/yaak-tauri-utils/` for shared Tauri utilities (window traits, api_client, error handling)
- Created `crates-cli/yaak-cli/` for the standalone CLI
### 2. Decoupled Crates (no longer depend on Tauri)
- **yaak-models**: Uses `init_standalone()` pattern for CLI database access
- **yaak-http**: Removed Tauri plugin, HttpConnectionManager initialized in yaak-app setup
- **yaak-common**: Only contains Tauri-free utilities (serde, platform)
- **yaak-crypto**: Removed Tauri plugin, EncryptionManager initialized in yaak-app setup, commands moved to yaak-app
- **yaak-grpc**: Replaced AppHandle with GrpcConfig struct, uses tokio::process::Command instead of Tauri sidecar
### 3. CLI Implementation
- Basic CLI at `crates-cli/yaak-cli/src/main.rs`
- Commands: workspaces, requests, send (by ID), get (ad-hoc URL), create
- Uses same database as Tauri app via `yaak_models::init_standalone()`
## Remaining Work
### Crates Still Depending on Tauri (in `crates/`)
1. **yaak-git** (3 files) - Moderate complexity
2. **yaak-plugins** (13 files) - **Hardest** - deeply integrated with Tauri for plugin-to-window communication
3. **yaak-sync** (4 files) - Moderate complexity
4. **yaak-ws** (5 files) - Moderate complexity
### Pattern for Decoupling
1. Remove Tauri plugin `init()` function from the crate
2. Move commands to `yaak-app/src/commands.rs` or keep inline in `lib.rs`
3. Move extension traits (e.g., `SomethingManagerExt`) to yaak-app or yaak-tauri-utils
4. Initialize managers in yaak-app's `.setup()` block
5. Remove `tauri` from Cargo.toml dependencies
6. Update `crates-tauri/yaak-app/capabilities/default.json` to remove the plugin permission
7. Replace `tauri::async_runtime::block_on` with `tokio::runtime::Handle::current().block_on()`
## Key Files
- `crates-tauri/yaak-app/src/lib.rs` - Main Tauri app, setup block initializes managers
- `crates-tauri/yaak-app/src/commands.rs` - Migrated Tauri commands
- `crates-tauri/yaak-app/src/models_ext.rs` - Database plugin and extension traits
- `crates-tauri/yaak-tauri-utils/src/window.rs` - WorkspaceWindowTrait for window state
- `crates/yaak-models/src/lib.rs` - Contains `init_standalone()` for CLI usage
## Git Branch
Working on `detach-tauri` branch.
## Recent Commits
```
c40cff40 Remove Tauri dependencies from yaak-crypto and yaak-grpc
df495f1d Move Tauri utilities from yaak-common to yaak-tauri-utils
481e0273 Remove Tauri dependencies from yaak-http and yaak-common
10568ac3 Add HTTP request sending to yaak-cli
bcb7d600 Add yaak-cli stub with basic database access
e718a5f1 Refactor models_ext to use init_standalone from yaak-models
```
## Testing
- Run `cargo check -p <crate>` to verify a crate builds without Tauri
- Run `npm run app-dev` to test the Tauri app still works
- Run `cargo run -p yaak-cli -- --help` to test the CLI

View File

@@ -1,51 +0,0 @@
---
description: Review a PR in a new worktree
allowed-tools: Bash(git worktree:*), Bash(gh pr:*)
---
Review a GitHub pull request in a new git worktree.
## Usage
```
/review-pr <PR_NUMBER>
```
## What to do
1. List all open pull requests and ask the user to select one
2. Get PR information using `gh pr view <PR_NUMBER> --json number,headRefName`
3. Extract the branch name from the PR
4. Create a new worktree at `../yaak-worktrees/pr-<PR_NUMBER>` using `git worktree add` with a timeout of at least 300000ms (5 minutes) since the post-checkout hook runs a bootstrap script
5. Checkout the PR branch in the new worktree using `gh pr checkout <PR_NUMBER>`
6. The post-checkout hook will automatically:
- Create `.env.local` with unique ports
- Copy editor config folders
- Run `npm install && npm run bootstrap`
7. Inform the user:
- Where the worktree was created
- What ports were assigned
- How to access it (cd command)
- How to run the dev server
- How to remove the worktree when done
## Example Output
```
Created worktree for PR #123 at ../yaak-worktrees/pr-123
Branch: feature-auth
Ports: Vite (1421), MCP (64344)
To start working:
cd ../yaak-worktrees/pr-123
npm run app-dev
To remove when done:
git worktree remove ../yaak-worktrees/pr-123
```
## Error Handling
- If the PR doesn't exist, show a helpful error
- If the worktree already exists, inform the user and ask if they want to remove and recreate it
- If `gh` CLI is not available, inform the user to install it

View File

@@ -1,39 +0,0 @@
---
description: Generate formatted release notes for Yaak releases
allowed-tools: Bash(git tag:*)
---
Generate formatted release notes for Yaak releases by analyzing git history and pull request descriptions.
## What to do
1. Identifies the version tag and previous version
2. Retrieves all commits between versions
- If the version is a beta version, it retrieves commits between the beta version and previous beta version
- If the version is a stable version, it retrieves commits between the stable version and the previous stable version
3. Fetches PR descriptions for linked issues to find:
- Feedback URLs (feedback.yaak.app)
- Additional context and descriptions
- Installation links for plugins
4. Formats the release notes using the standard Yaak format:
- Changelog badge at the top
- Bulleted list of changes with PR links
- Feedback links where available
- Full changelog comparison link at the bottom
## Output Format
The skill generates markdown-formatted release notes following this structure:
```markdown
[![Changelog](https://img.shields.io/badge/Changelog-VERSION-blue)](https://yaak.app/changelog/VERSION)
- Feature/fix description in by @username [#123](https://github.com/mountain-loop/yaak/pull/123)
- [Linked feedback item](https://feedback.yaak.app/p/item) by @username in [#456](https://github.com/mountain-loop/yaak/pull/456)
- A simple item that doesn't have a feedback or PR link
**Full Changelog**: https://github.com/mountain-loop/yaak/compare/vPREV...vCURRENT
```
**IMPORTANT**: Always add a blank lines around the markdown code fence and output the markdown code block last
**IMPORTANT**: PRs by `@gschier` should not mention the @username

View File

@@ -1,27 +0,0 @@
# Project Rules
## General Development
- **NEVER** commit or push without explicit confirmation
## Build and Lint
- **ALWAYS** run `npm run lint` after modifying TypeScript or JavaScript files
- Run `npm run bootstrap` after changing plugin runtime or MCP server code
## Plugin System
### Backend Constraints
- Always use `UpdateSource::Plugin` when calling database methods from plugin events
- Never send timestamps (`createdAt`, `updatedAt`) from TypeScript - Rust backend controls these
- Backend uses `NaiveDateTime` (no timezone) so avoid sending ISO timestamp strings
### MCP Server
- MCP server has **no active window context** - cannot call `window.workspaceId()`
- Get workspace ID from `workspaceCtx.yaak.workspace.list()` instead
## Rust Type Generation
- Run `cargo test --package yaak-plugins` (and for other crates) to regenerate TypeScript bindings after modifying Rust event types

View File

@@ -1,35 +0,0 @@
# Worktree Management Skill
## Creating Worktrees
When creating git worktrees for this project, ALWAYS use the path format:
```
../yaak-worktrees/<NAME>
```
For example:
- `git worktree add ../yaak-worktrees/feature-auth`
- `git worktree add ../yaak-worktrees/bugfix-login`
- `git worktree add ../yaak-worktrees/refactor-api`
## What Happens Automatically
The post-checkout hook will automatically:
1. Create `.env.local` with unique ports (YAAK_DEV_PORT and YAAK_PLUGIN_MCP_SERVER_PORT)
2. Copy gitignored editor config folders (.zed, .idea, etc.)
3. Run `npm install && npm run bootstrap`
## Deleting Worktrees
```bash
git worktree remove ../yaak-worktrees/<NAME>
```
## Port Assignments
- Main worktree: 1420 (Vite), 64343 (MCP)
- First worktree: 1421, 64344
- Second worktree: 1422, 64345
- etc.
Each worktree can run `npm run app-dev` simultaneously without conflicts.

5
.eslintignore Normal file
View File

@@ -0,0 +1,5 @@
node_modules/
dist/
.prettierrc.cjs
.eslintrc.cjs
env.d.ts

37
.eslintrc.cjs Normal file
View File

@@ -0,0 +1,37 @@
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: ["src-tauri/**/*", "plugins/**/*"],
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"
}]
}
};

7
.gitattributes vendored
View File

@@ -1,7 +0,0 @@
crates-tauri/yaak-app/vendored/**/* linguist-generated=true
crates-tauri/yaak-app/gen/schemas/**/* linguist-generated=true
**/bindings/* linguist-generated=true
crates/yaak-templates/pkg/* linguist-generated=true
# Ensure consistent line endings for test files that check exact content
crates/yaak-http/tests/test.txt text eol=lf

3
.github/FUNDING.yml vendored
View File

@@ -1,3 +0,0 @@
# These are supported funding model platforms
github: gschier

View File

@@ -1,38 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

View File

@@ -1,5 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: Bugs, Feedback, Feature Requests, and Questions
url: https://feedback.yaak.app
about: "Please report to Yaak's public feedback board. Issues will be created and linked here when applicable."

View File

@@ -1,30 +0,0 @@
on:
pull_request:
push:
branches:
- main
name: Lint and Test
permissions:
contents: read
jobs:
test:
name: Lint/Test
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
shared-key: ci
cache-on-failure: true
- run: npm ci
- run: npm run bootstrap
- run: npm run lint
- name: Run JS Tests
run: npm test
- name: Run Rust Tests
run: cargo test --all

View File

@@ -1,50 +0,0 @@
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]
jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# This is an optional setting that allows Claude to read CI results on PRs
additional_permissions: |
actions: read
# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
# prompt: 'Update the pull request description to include a summary of changes.'
# Optional: Add claude_args to customize behavior and configuration
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://code.claude.com/docs/en/cli-reference for available options
# claude_args: '--allowed-tools Bash(gh pr:*)'

View File

@@ -1,153 +1,65 @@
name: Generate Artifacts
on:
push:
tags: [v*]
branches:
- release
- beta
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"
os: "macos"
targets: "aarch64-apple-darwin"
- platform: "macos-latest" # for Intel-based Macs.
args: "--target x86_64-apple-darwin"
yaak_arch: "x64"
os: "macos"
targets: "x86_64-apple-darwin"
- platform: "ubuntu-22.04"
args: ""
yaak_arch: "x64"
os: "ubuntu"
targets: ""
- platform: "ubuntu-22.04-arm"
args: ""
yaak_arch: "arm64"
os: "ubuntu"
targets: ""
- platform: "windows-latest"
args: ""
yaak_arch: "x64"
os: "windows"
targets: ""
# Windows ARM64
- platform: "windows-latest"
args: "--target aarch64-pc-windows-msvc"
yaak_arch: "arm64"
os: "windows"
targets: "aarch64-pc-windows-msvc"
- platform: 'macos-latest' # for Arm based macs (M1 and above).
args: '--target aarch64-apple-darwin'
- platform: 'macos-latest' # for Intel based macs.
args: '--target x86_64-apple-darwin'
- platform: 'ubuntu-22.04' # for Tauri v1 you could replace this with ubuntu-20.04.
args: ''
- platform: 'windows-latest'
args: ''
runs-on: ${{ matrix.platform }}
timeout-minutes: 40
steps:
- name: Checkout yaakapp/app
uses: actions/checkout@v4
- name: Setup Node
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.targets }}
- uses: Swatinem/rust-cache@v2
with:
shared-key: ci
cache-on-failure: true
- name: install dependencies (Linux only)
if: matrix.os == 'ubuntu'
# 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' || '' }}
- 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 xdg-utils
- name: Install Protoc for plugin-runtime
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install trusted-signing-cli (Windows only)
if: matrix.os == 'windows'
shell: pwsh
run: |
$ErrorActionPreference = 'Stop'
$dir = "$env:USERPROFILE\trusted-signing"
New-Item -ItemType Directory -Force -Path $dir | Out-Null
$url = "https://github.com/Levminer/trusted-signing-cli/releases/download/0.8.0/trusted-signing-cli.exe"
$exe = Join-Path $dir "trusted-signing-cli.exe"
Invoke-WebRequest -Uri $url -OutFile $exe
echo $dir >> $env:GITHUB_PATH
& $exe --version
- run: npm ci
- run: npm run bootstrap
- run: npm run lint
- name: Run JS Tests
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install dependencies
run: npm ci
- name: Run lint
run: npm run lint
- name: Run tests
run: npm test
- name: Run Rust Tests
run: cargo test --all
- name: Set version
run: npm run replace-version
env:
YAAK_VERSION: ${{ github.ref_name }}
- name: Sign vendored binaries (macOS only)
if: matrix.os == 'macos'
env:
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
run: |
# Create keychain
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
# Import certificate
echo "$APPLE_CERTIFICATE" | base64 --decode > certificate.p12
security import certificate.p12 -P "$APPLE_CERTIFICATE_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
security list-keychain -d user -s $KEYCHAIN_PATH
# Sign vendored binaries with hardened runtime and their specific entitlements
codesign --force --options runtime --entitlements crates-tauri/yaak-app/macos/entitlements.yaakprotoc.plist --sign "$APPLE_SIGNING_IDENTITY" crates-tauri/yaak-app/vendored/protoc/yaakprotoc || true
codesign --force --options runtime --entitlements crates-tauri/yaak-app/macos/entitlements.yaaknode.plist --sign "$APPLE_SIGNING_IDENTITY" crates-tauri/yaak-app/vendored/node/yaaknode || true
- uses: tauri-apps/tauri-action@v0
env:
YAAK_TARGET_ARCH: ${{ matrix.yaak_arch }}
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
# Apple signing stuff
APPLE_CERTIFICATE: ${{ matrix.os == 'macos' && secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ matrix.os == 'macos' && secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_ID: ${{ matrix.os == 'macos' && secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ matrix.os == 'macos' && secrets.APPLE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ matrix.os == 'macos' && secrets.APPLE_SIGNING_IDENTITY }}
APPLE_TEAM_ID: ${{ matrix.os == 'macos' && secrets.APPLE_TEAM_ID }}
# Windows signing stuff
AZURE_CLIENT_ID: ${{ matrix.os == 'windows' && secrets.AZURE_CLIENT_ID }}
AZURE_CLIENT_SECRET: ${{ matrix.os == 'windows' && secrets.AZURE_CLIENT_SECRET }}
AZURE_TENANT_ID: ${{ matrix.os == 'windows' && secrets.AZURE_TENANT_ID }}
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: "[Changelog __VERSION__](https://yaak.app/blog/__VERSION__)"
tagName: 'v__VERSION__'
releaseName: 'Release __VERSION__'
releaseBody: 'https://yaak.app/changelog/__VERSION__'
releaseDraft: true
prerelease: true
args: "${{ matrix.args }} --config ./crates-tauri/yaak-app/tauri.release.conf.json"
prerelease: false
args: ${{ matrix.args }}

View File

@@ -1,44 +0,0 @@
name: Generate Sponsors README
on:
workflow_dispatch:
schedule:
- cron: 30 15 * * 0-6
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@v2
- name: Generate Sponsors
uses: JamesIves/github-sponsors-readme-action@v1
with:
token: ${{ secrets.SPONSORS_PAT }}
file: 'README.md'
maximum: 1999
template: '<a href="https://github.com/{{{ login }}}"><img src="{{{ avatarUrl }}}" width="50px" alt="User avatar: {{{ login }}}" /></a>&nbsp;&nbsp;'
active-only: false
include-private: true
marker: 'sponsors-base'
- name: Generate Sponsors
uses: JamesIves/github-sponsors-readme-action@v1
with:
token: ${{ secrets.SPONSORS_PAT }}
file: 'README.md'
minimum: 2000
template: '<a href="https://github.com/{{{ login }}}"><img src="{{{ avatarUrl }}}" width="80px" alt="User avatar: {{{ login }}}" /></a>&nbsp;&nbsp;'
active-only: false
include-private: true
marker: 'sponsors-premium'
# ⚠️ Note: You can use any deployment step here to automatically push the README
# changes back to your branch.
- name: Commit Changes
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: main
force: false
folder: '.'

18
.gitignore vendored
View File

@@ -15,8 +15,6 @@ dist-ssr
# Editor directories and files
.vscode/*
!.vscode/extensions.json
!.vscode/settings.json
!.vscode/launch.json
.idea
.DS_Store
*.suo
@@ -25,22 +23,8 @@ dist-ssr
*.sln
*.sw?
.eslintcache
out
*.sqlite
*.sqlite-*
.cargo
.tmp
tmp
.zed
codebook.toml
target
# Per-worktree Tauri config (generated by post-checkout hook)
crates-tauri/yaak-app/tauri.worktree.conf.json
# Tauri auto-generated permission files
**/permissions/autogenerated
**/permissions/schemas
.cargo

1
.husky/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
_

View File

@@ -1 +0,0 @@
node scripts/git-hooks/post-checkout.mjs "$@"

4
.husky/pre-commit Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged

4
.prettierignore Normal file
View File

@@ -0,0 +1,4 @@
node_modules/
dist/
out/
.prettierrc.cjs

8
.prettierrc.cjs Normal file
View File

@@ -0,0 +1,8 @@
module.exports = {
"trailingComma": "all",
"tabWidth": 2,
"semi": true,
"singleQuote": true,
"printWidth": 100,
"bracketSpacing": true
}

13
.run/Dev Desktop.run.xml Normal file
View File

@@ -0,0 +1,13 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Dev Desktop" type="js.build_tools.npm">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="run" />
<scripts>
<script value="start" />
</scripts>
<node-interpreter value="project" />
<envs>
</envs>
<method v="2" />
</configuration>
</component>

5
.sqllsrc.json Normal file
View File

@@ -0,0 +1,5 @@
{
"name": "yaak-dev",
"adapter": "sqlite3",
"filename": "src-tauri/db.sqlite"
}

1
.tauriignore Normal file
View File

@@ -0,0 +1 @@
plugins

View File

@@ -1,3 +0,0 @@
{
"recommendations": ["biomejs.biome", "rust-lang.rust-analyzer", "bradlc.vscode-tailwindcss"]
}

26
.vscode/launch.json vendored
View File

@@ -1,26 +0,0 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Dev App",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "start"]
},
{
"type": "node",
"request": "launch",
"name": "Build App",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "start"]
},
{
"type": "node",
"request": "launch",
"name": "Bootstrap",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "bootstrap"]
}
]
}

View File

@@ -1,6 +0,0 @@
{
"editor.defaultFormatter": "biomejs.biome",
"editor.formatOnSave": true,
"biome.enabled": true,
"biome.lint.format.enable": true
}

View File

@@ -1,69 +0,0 @@
[workspace]
resolver = "2"
members = [
# Shared crates (no Tauri dependency)
"crates/yaak-core",
"crates/yaak-common",
"crates/yaak-crypto",
"crates/yaak-git",
"crates/yaak-grpc",
"crates/yaak-http",
"crates/yaak-models",
"crates/yaak-plugins",
"crates/yaak-sse",
"crates/yaak-sync",
"crates/yaak-templates",
"crates/yaak-tls",
"crates/yaak-ws",
# CLI crates
"crates-cli/yaak-cli",
# Tauri-specific crates
"crates-tauri/yaak-app",
"crates-tauri/yaak-fonts",
"crates-tauri/yaak-license",
"crates-tauri/yaak-mac-window",
"crates-tauri/yaak-tauri-utils",
]
[workspace.dependencies]
chrono = "0.4.42"
hex = "0.4.3"
keyring = "3.6.3"
log = "0.4.29"
reqwest = "0.12.20"
rustls = { version = "0.23.34", default-features = false }
rustls-platform-verifier = "0.6.2"
serde = "1.0.228"
serde_json = "1.0.145"
sha2 = "0.10.9"
tauri = "2.9.5"
tauri-plugin = "2.5.2"
tauri-plugin-dialog = "2.4.2"
tauri-plugin-shell = "2.3.3"
thiserror = "2.0.17"
tokio = "1.48.0"
ts-rs = "11.1.0"
# Internal crates - shared
yaak-core = { path = "crates/yaak-core" }
yaak-common = { path = "crates/yaak-common" }
yaak-crypto = { path = "crates/yaak-crypto" }
yaak-git = { path = "crates/yaak-git" }
yaak-grpc = { path = "crates/yaak-grpc" }
yaak-http = { path = "crates/yaak-http" }
yaak-models = { path = "crates/yaak-models" }
yaak-plugins = { path = "crates/yaak-plugins" }
yaak-sse = { path = "crates/yaak-sse" }
yaak-sync = { path = "crates/yaak-sync" }
yaak-templates = { path = "crates/yaak-templates" }
yaak-tls = { path = "crates/yaak-tls" }
yaak-ws = { path = "crates/yaak-ws" }
# Internal crates - Tauri-specific
yaak-fonts = { path = "crates-tauri/yaak-fonts" }
yaak-license = { path = "crates-tauri/yaak-license" }
yaak-mac-window = { path = "crates-tauri/yaak-mac-window" }
yaak-tauri-utils = { path = "crates-tauri/yaak-tauri-utils" }
[profile.release]
strip = false

View File

@@ -1,88 +0,0 @@
# Developer Setup
Yaak is a combined Node.js and Rust monorepo. It is a [Tauri](https://tauri.app) project, so
uses Rust and HTML/CSS/JS for the main application but there is also a plugin system powered
by a Node.js sidecar that communicates to the app over gRPC.
Because of the moving parts, there are a few setup steps required before development can
begin.
## Prerequisites
Make sure you have the following tools installed:
- [Node.js](https://nodejs.org/en/download/package-manager)
- [Rust](https://www.rust-lang.org/tools/install)
Check the installations with the following commands:
```shell
node -v
npm -v
rustc --version
```
Install the NPM dependencies:
```shell
npm install
```
Run the `bootstrap` command to do some initial setup:
```shell
npm run bootstrap
```
## Run the App
After bootstrapping, start the app in development mode:
```shell
npm start
```
## SQLite Migrations
New migrations can be created from the `src-tauri/` directory:
```shell
npm run migration
```
Rerun the app to apply the migrations.
_Note: For safety, development builds use a separate database location from production builds._
## Lezer Grammar Generation
```sh
# Example
lezer-generator components/core/Editor/<LANG>/<LANG>.grammar > components/core/Editor/<LANG>/<LANG>.ts
```
## Linting & Formatting
This repo uses Biome for linting and formatting (replacing ESLint + Prettier).
- Lint the entire repo:
```sh
npm run lint
```
- Auto-fix lint issues where possible:
```sh
npm run lint:fix
```
- Format code:
```sh
npm run format
```
Notes:
- Many workspace packages also expose the same scripts (`lint`, `lint:fix`, and `format`).
- TypeScript type-checking still runs separately via `tsc --noEmit` in relevant packages.

21
LICENSE
View File

@@ -1,21 +0,0 @@
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.

13
Makefile Normal file
View File

@@ -0,0 +1,13 @@
.PHONY: sqlx-prepare, dev, migrate, build
sqlx-prepare:
cd src-tauri && cargo sqlx prepare --database-url 'sqlite://db.sqlite'
dev:
npm run tauri-dev
migrate:
cd src-tauri && cargo sqlx migrate run --database-url 'sqlite://db.sqlite?mode=rw'
build:
./node_modules/.bin/tauri build

View File

@@ -1,70 +1,16 @@
<p align="center">
<a href="https://github.com/JamesIves/github-sponsors-readme-action">
<img width="200px" src="https://github.com/mountain-loop/yaak/raw/main/crates-tauri/yaak-app/icons/icon.png">
</a>
</p>
# Yaak Network Toolkit
<h1 align="center">
💫 Yaak ➟ Desktop API Client 💫
</h1>
The most fun you'll ever have working with APIs.
<p align="center">
A fast, privacy-first API client for REST, GraphQL, SSE, WebSocket, and gRPC built with Tauri, Rust, and React.
</p>
<p align="center">
Development is funded by community-purchased <a href="https://yaak.app/pricing">licenses</a>. You can also <a href="https://github.com/sponsors/gschier">become a sponsor</a> to have your logo appear below. 💖
</p>
<br>
## Common Commands
```sh
# Start dev app
npm run tauri-dev
<p align="center">
<!-- sponsors-premium --><a href="https://github.com/MVST-Solutions"><img src="https:&#x2F;&#x2F;github.com&#x2F;MVST-Solutions.png" width="80px" alt="User avatar: MVST-Solutions" /></a>&nbsp;&nbsp;<a href="https://github.com/dharsanb"><img src="https:&#x2F;&#x2F;github.com&#x2F;dharsanb.png" width="80px" alt="User avatar: dharsanb" /></a>&nbsp;&nbsp;<a href="https://github.com/railwayapp"><img src="https:&#x2F;&#x2F;github.com&#x2F;railwayapp.png" width="80px" alt="User avatar: railwayapp" /></a>&nbsp;&nbsp;<a href="https://github.com/caseyamcl"><img src="https:&#x2F;&#x2F;github.com&#x2F;caseyamcl.png" width="80px" alt="User avatar: caseyamcl" /></a>&nbsp;&nbsp;<a href="https://github.com/bytebase"><img src="https:&#x2F;&#x2F;github.com&#x2F;bytebase.png" width="80px" alt="User avatar: bytebase" /></a>&nbsp;&nbsp;<a href="https://github.com/"><img src="https:&#x2F;&#x2F;raw.githubusercontent.com&#x2F;JamesIves&#x2F;github-sponsors-readme-action&#x2F;dev&#x2F;.github&#x2F;assets&#x2F;placeholder.png" width="80px" alt="User avatar: " /></a>&nbsp;&nbsp;<!-- sponsors-premium -->
</p>
<p align="center">
<!-- sponsors-base --><a href="https://github.com/seanwash"><img src="https:&#x2F;&#x2F;github.com&#x2F;seanwash.png" width="50px" alt="User avatar: seanwash" /></a>&nbsp;&nbsp;<a href="https://github.com/jerath"><img src="https:&#x2F;&#x2F;github.com&#x2F;jerath.png" width="50px" alt="User avatar: jerath" /></a>&nbsp;&nbsp;<a href="https://github.com/itsa-sh"><img src="https:&#x2F;&#x2F;github.com&#x2F;itsa-sh.png" width="50px" alt="User avatar: itsa-sh" /></a>&nbsp;&nbsp;<a href="https://github.com/dmmulroy"><img src="https:&#x2F;&#x2F;github.com&#x2F;dmmulroy.png" width="50px" alt="User avatar: dmmulroy" /></a>&nbsp;&nbsp;<a href="https://github.com/timcole"><img src="https:&#x2F;&#x2F;github.com&#x2F;timcole.png" width="50px" alt="User avatar: timcole" /></a>&nbsp;&nbsp;<a href="https://github.com/VLZH"><img src="https:&#x2F;&#x2F;github.com&#x2F;VLZH.png" width="50px" alt="User avatar: VLZH" /></a>&nbsp;&nbsp;<a href="https://github.com/terasaka2k"><img src="https:&#x2F;&#x2F;github.com&#x2F;terasaka2k.png" width="50px" alt="User avatar: terasaka2k" /></a>&nbsp;&nbsp;<a href="https://github.com/andriyor"><img src="https:&#x2F;&#x2F;github.com&#x2F;andriyor.png" width="50px" alt="User avatar: andriyor" /></a>&nbsp;&nbsp;<a href="https://github.com/majudhu"><img src="https:&#x2F;&#x2F;github.com&#x2F;majudhu.png" width="50px" alt="User avatar: majudhu" /></a>&nbsp;&nbsp;<a href="https://github.com/axelrindle"><img src="https:&#x2F;&#x2F;github.com&#x2F;axelrindle.png" width="50px" alt="User avatar: axelrindle" /></a>&nbsp;&nbsp;<a href="https://github.com/jirizverina"><img src="https:&#x2F;&#x2F;github.com&#x2F;jirizverina.png" width="50px" alt="User avatar: jirizverina" /></a>&nbsp;&nbsp;<a href="https://github.com/chip-well"><img src="https:&#x2F;&#x2F;github.com&#x2F;chip-well.png" width="50px" alt="User avatar: chip-well" /></a>&nbsp;&nbsp;<a href="https://github.com/GRAYAH"><img src="https:&#x2F;&#x2F;github.com&#x2F;GRAYAH.png" width="50px" alt="User avatar: GRAYAH" /></a>&nbsp;&nbsp;<!-- sponsors-base -->
</p>
![Yaak API Client](https://yaak.app/static/screenshot.png)
## Features
Yaak is an offline-first API client designed to stay out of your way while giving you everything you need when you need it.
Built with [Tauri](https://tauri.app), Rust, and React, its fast, lightweight, and private. No telemetry, no VC funding, and no cloud lock-in.
### 🌐 Work with any API
- Import collections from Postman, Insomnia, OpenAPI, Swagger, or Curl.
- Send requests via REST, GraphQL, gRPC, WebSocket, or Server-Sent Events.
- Filter and inspect responses with JSONPath or XPath.
### 🔐 Stay secure
- Use OAuth 2.0, JWT, Basic Auth, or custom plugins for authentication.
- Secure sensitive values with encrypted secrets.
- Store secrets in your OS keychain.
### ☁️ Organize & collaborate
- Group requests into workspaces and nested folders.
- Use environment variables to switch between dev, staging, and prod.
- Mirror workspaces to your filesystem for versioning in Git or syncing with Dropbox.
### 🧩 Extend & customize
- Insert dynamic values like UUIDs or timestamps with template tags.
- Pick from built-in themes or build your own.
- Create plugins to extend authentication, template tags, or the UI.
## Contribution Policy
Yaak is open source but only accepting contributions for bug fixes. To get started,
visit [`DEVELOPMENT.md`](DEVELOPMENT.md) for tips on setting up your environment.
## Useful Resources
- [Feedback and Bug Reports](https://feedback.yaak.app)
- [Documentation](https://feedback.yaak.app/help)
- [Yaak vs Postman](https://yaak.app/alternatives/postman)
- [Yaak vs Bruno](https://yaak.app/alternatives/bruno)
- [Yaak vs Insomnia](https://yaak.app/alternatives/insomnia)
# Migration commands
cd src-tauri
cargo sqlx migrate add ${MIGRATION_NAME}
cargo sqlx migrate run --database-url 'sqlite://db.sqlite?mode=rw'
cargo sqlx prepare --database-url 'sqlite://db.sqlite'
```

View File

@@ -1,53 +0,0 @@
{
"$schema": "https://biomejs.dev/schemas/2.3.11/schema.json",
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"a11y": {
"useKeyWithClickEvents": "off"
}
}
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 100,
"bracketSpacing": true
},
"css": {
"parser": {
"tailwindDirectives": true
},
"linter": {
"enabled": false
}
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"jsxQuoteStyle": "double",
"trailingCommas": "all",
"semicolons": "always"
}
},
"files": {
"includes": [
"**",
"!**/node_modules",
"!**/dist",
"!**/build",
"!target",
"!scripts",
"!crates",
"!crates-tauri",
"!src-web/tailwind.config.cjs",
"!src-web/postcss.config.cjs",
"!src-web/vite.config.ts",
"!src-web/routeTree.gen.ts",
"!packages/plugin-runtime-types/lib",
"!**/bindings"
]
}
}

View File

@@ -1,22 +0,0 @@
[package]
name = "yaak-cli"
version = "0.1.0"
edition = "2024"
publish = false
[[bin]]
name = "yaakcli"
path = "src/main.rs"
[dependencies]
clap = { version = "4", features = ["derive"] }
dirs = "6"
env_logger = "0.11"
log = { workspace = true }
serde_json = { workspace = true }
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
yaak-crypto = { workspace = true }
yaak-http = { workspace = true }
yaak-models = { workspace = true }
yaak-plugins = { workspace = true }
yaak-templates = { workspace = true }

View File

@@ -1,448 +0,0 @@
use clap::{Parser, Subcommand};
use log::info;
use serde_json::Value;
use std::collections::BTreeMap;
use std::path::PathBuf;
use std::sync::Arc;
use tokio::sync::mpsc;
use yaak_crypto::manager::EncryptionManager;
use yaak_http::path_placeholders::apply_path_placeholders;
use yaak_http::sender::{HttpSender, ReqwestSender};
use yaak_http::types::{SendableHttpRequest, SendableHttpRequestOptions};
use yaak_models::models::{HttpRequest, HttpRequestHeader, HttpUrlParameter};
use yaak_models::render::make_vars_hashmap;
use yaak_models::util::UpdateSource;
use yaak_plugins::events::{PluginContext, RenderPurpose};
use yaak_plugins::manager::PluginManager;
use yaak_plugins::template_callback::PluginTemplateCallback;
use yaak_templates::{parse_and_render, render_json_value_raw, RenderOptions};
#[derive(Parser)]
#[command(name = "yaakcli")]
#[command(about = "Yaak CLI - API client from the command line")]
struct Cli {
/// Use a custom data directory
#[arg(long, global = true)]
data_dir: Option<PathBuf>,
/// Environment ID to use for variable substitution
#[arg(long, short, global = true)]
environment: Option<String>,
/// Enable verbose logging
#[arg(long, short, global = true)]
verbose: bool,
#[command(subcommand)]
command: Commands,
}
#[derive(Subcommand)]
enum Commands {
/// List all workspaces
Workspaces,
/// List requests in a workspace
Requests {
/// Workspace ID
workspace_id: String,
},
/// Send an HTTP request by ID
Send {
/// Request ID
request_id: String,
},
/// Send a GET request to a URL
Get {
/// URL to request
url: String,
},
/// Create a new HTTP request
Create {
/// Workspace ID
workspace_id: String,
/// Request name
#[arg(short, long)]
name: String,
/// HTTP method
#[arg(short, long, default_value = "GET")]
method: String,
/// URL
#[arg(short, long)]
url: String,
},
}
/// Render an HTTP request with template variables and plugin functions
async fn render_http_request(
r: &HttpRequest,
environment_chain: Vec<yaak_models::models::Environment>,
cb: &PluginTemplateCallback,
opt: &RenderOptions,
) -> yaak_templates::error::Result<HttpRequest> {
let vars = &make_vars_hashmap(environment_chain);
let mut url_parameters = Vec::new();
for p in r.url_parameters.clone() {
if !p.enabled {
continue;
}
url_parameters.push(HttpUrlParameter {
enabled: p.enabled,
name: parse_and_render(p.name.as_str(), vars, cb, opt).await?,
value: parse_and_render(p.value.as_str(), vars, cb, opt).await?,
id: p.id,
})
}
let mut headers = Vec::new();
for p in r.headers.clone() {
if !p.enabled {
continue;
}
headers.push(HttpRequestHeader {
enabled: p.enabled,
name: parse_and_render(p.name.as_str(), vars, cb, opt).await?,
value: parse_and_render(p.value.as_str(), vars, cb, opt).await?,
id: p.id,
})
}
let mut body = BTreeMap::new();
for (k, v) in r.body.clone() {
body.insert(k, render_json_value_raw(v, vars, cb, opt).await?);
}
let authentication = {
let mut disabled = false;
let mut auth = BTreeMap::new();
match r.authentication.get("disabled") {
Some(Value::Bool(true)) => {
disabled = true;
}
Some(Value::String(tmpl)) => {
disabled = parse_and_render(tmpl.as_str(), vars, cb, opt)
.await
.unwrap_or_default()
.is_empty();
info!(
"Rendering authentication.disabled as a template: {disabled} from \"{tmpl}\""
);
}
_ => {}
}
if disabled {
auth.insert("disabled".to_string(), Value::Bool(true));
} else {
for (k, v) in r.authentication.clone() {
if k == "disabled" {
auth.insert(k, Value::Bool(false));
} else {
auth.insert(k, render_json_value_raw(v, vars, cb, opt).await?);
}
}
}
auth
};
let url = parse_and_render(r.url.clone().as_str(), vars, cb, opt).await?;
// Apply path placeholders (e.g., /users/:id -> /users/123)
let (url, url_parameters) = apply_path_placeholders(&url, &url_parameters);
Ok(HttpRequest {
url,
url_parameters,
headers,
body,
authentication,
..r.to_owned()
})
}
#[tokio::main]
async fn main() {
let cli = Cli::parse();
// Initialize logging
if cli.verbose {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init();
}
// Use the same app_id for both data directory and keyring
let app_id = if cfg!(debug_assertions) {
"app.yaak.desktop.dev"
} else {
"app.yaak.desktop"
};
let data_dir = cli.data_dir.unwrap_or_else(|| {
dirs::data_dir()
.expect("Could not determine data directory")
.join(app_id)
});
let db_path = data_dir.join("db.sqlite");
let blob_path = data_dir.join("blobs.sqlite");
let (query_manager, _blob_manager, _rx) =
yaak_models::init_standalone(&db_path, &blob_path).expect("Failed to initialize database");
let db = query_manager.connect();
// Initialize encryption manager for secure() template function
// Use the same app_id as the Tauri app for keyring access
let encryption_manager = Arc::new(
EncryptionManager::new(query_manager.clone(), app_id),
);
// Initialize plugin manager for template functions
let vendored_plugin_dir = data_dir.join("vendored-plugins");
let installed_plugin_dir = data_dir.join("installed-plugins");
// Use system node for CLI (must be in PATH)
let node_bin_path = PathBuf::from("node");
// Find the plugin runtime - check YAAK_PLUGIN_RUNTIME env var, then fallback to development path
let plugin_runtime_main = std::env::var("YAAK_PLUGIN_RUNTIME")
.map(PathBuf::from)
.unwrap_or_else(|_| {
// Development fallback: look relative to crate root
PathBuf::from(env!("CARGO_MANIFEST_DIR"))
.join("../../crates-tauri/yaak-app/vendored/plugin-runtime/index.cjs")
});
// Create plugin manager (plugins may not be available in CLI context)
let plugin_manager = Arc::new(
PluginManager::new(
vendored_plugin_dir,
installed_plugin_dir,
node_bin_path,
plugin_runtime_main,
false,
)
.await,
);
// Initialize plugins from database
let plugins = db.list_plugins().unwrap_or_default();
if !plugins.is_empty() {
let errors = plugin_manager
.initialize_all_plugins(plugins, &PluginContext::new_empty())
.await;
for (plugin_dir, error_msg) in errors {
eprintln!(
"Warning: Failed to initialize plugin '{}': {}",
plugin_dir, error_msg
);
}
}
match cli.command {
Commands::Workspaces => {
let workspaces = db.list_workspaces().expect("Failed to list workspaces");
if workspaces.is_empty() {
println!("No workspaces found");
} else {
for ws in workspaces {
println!("{} - {}", ws.id, ws.name);
}
}
}
Commands::Requests { workspace_id } => {
let requests = db
.list_http_requests(&workspace_id)
.expect("Failed to list requests");
if requests.is_empty() {
println!("No requests found in workspace {}", workspace_id);
} else {
for req in requests {
println!("{} - {} {}", req.id, req.method, req.name);
}
}
}
Commands::Send { request_id } => {
let request = db
.get_http_request(&request_id)
.expect("Failed to get request");
// Resolve environment chain for variable substitution
let environment_chain = db
.resolve_environments(
&request.workspace_id,
request.folder_id.as_deref(),
cli.environment.as_deref(),
)
.unwrap_or_default();
// Create template callback with plugin support
let plugin_context = PluginContext::new(None, Some(request.workspace_id.clone()));
let template_callback = PluginTemplateCallback::new(
plugin_manager.clone(),
encryption_manager.clone(),
&plugin_context,
RenderPurpose::Send,
);
// Render templates in the request
let rendered_request = render_http_request(
&request,
environment_chain,
&template_callback,
&RenderOptions::throw(),
)
.await
.expect("Failed to render request templates");
if cli.verbose {
println!("> {} {}", rendered_request.method, rendered_request.url);
}
// Convert to sendable request
let sendable = SendableHttpRequest::from_http_request(
&rendered_request,
SendableHttpRequestOptions::default(),
)
.await
.expect("Failed to build request");
// Create event channel for progress
let (event_tx, mut event_rx) = mpsc::channel(100);
// Spawn task to print events if verbose
let verbose = cli.verbose;
let verbose_handle = if verbose {
Some(tokio::spawn(async move {
while let Some(event) = event_rx.recv().await {
println!("{}", event);
}
}))
} else {
// Drain events silently
tokio::spawn(async move {
while event_rx.recv().await.is_some() {}
});
None
};
// Send the request
let sender = ReqwestSender::new().expect("Failed to create HTTP client");
let response = sender
.send(sendable, event_tx)
.await
.expect("Failed to send request");
// Wait for event handler to finish
if let Some(handle) = verbose_handle {
let _ = handle.await;
}
// Print response
if verbose {
println!();
}
println!(
"HTTP {} {}",
response.status,
response.status_reason.as_deref().unwrap_or("")
);
if verbose {
for (name, value) in &response.headers {
println!("{}: {}", name, value);
}
println!();
}
// Print body
let (body, _stats) = response.text().await.expect("Failed to read response body");
println!("{}", body);
}
Commands::Get { url } => {
if cli.verbose {
println!("> GET {}", url);
}
// Build a simple GET request
let sendable = SendableHttpRequest {
url: url.clone(),
method: "GET".to_string(),
headers: vec![],
body: None,
options: SendableHttpRequestOptions::default(),
};
// Create event channel for progress
let (event_tx, mut event_rx) = mpsc::channel(100);
// Spawn task to print events if verbose
let verbose = cli.verbose;
let verbose_handle = if verbose {
Some(tokio::spawn(async move {
while let Some(event) = event_rx.recv().await {
println!("{}", event);
}
}))
} else {
tokio::spawn(async move {
while event_rx.recv().await.is_some() {}
});
None
};
// Send the request
let sender = ReqwestSender::new().expect("Failed to create HTTP client");
let response = sender
.send(sendable, event_tx)
.await
.expect("Failed to send request");
if let Some(handle) = verbose_handle {
let _ = handle.await;
}
// Print response
if verbose {
println!();
}
println!(
"HTTP {} {}",
response.status,
response.status_reason.as_deref().unwrap_or("")
);
if verbose {
for (name, value) in &response.headers {
println!("{}: {}", name, value);
}
println!();
}
// Print body
let (body, _stats) = response.text().await.expect("Failed to read response body");
println!("{}", body);
}
Commands::Create {
workspace_id,
name,
method,
url,
} => {
let request = HttpRequest {
workspace_id,
name,
method: method.to_uppercase(),
url,
..Default::default()
};
let created = db
.upsert_http_request(&request, &UpdateSource::Sync)
.expect("Failed to create request");
println!("Created request: {}", created.id);
}
}
// Terminate plugin manager gracefully
plugin_manager.terminate().await;
}

View File

@@ -1,10 +0,0 @@
# Generated by Cargo
# will have compiled files and executables
target/
vendored/*
gen/*
**/permissions/autogenerated
**/permissions/schemas

View File

@@ -1,76 +0,0 @@
[package]
name = "yaak-app"
version = "0.0.0"
edition = "2024"
authors = ["Gregory Schier"]
publish = false
# Produce a library for mobile support
[lib]
name = "tauri_app_lib"
crate-type = ["staticlib", "cdylib", "lib"]
[features]
cargo-clippy = []
default = []
updater = []
license = ["yaak-license"]
[build-dependencies]
tauri-build = { version = "2.5.3", features = [] }
[target.'cfg(target_os = "linux")'.dependencies]
openssl-sys = { version = "0.9.105", features = ["vendored"] } # For Ubuntu installation to work
[dependencies]
charset = "0.1.5"
chrono = { workspace = true, features = ["serde"] }
cookie = "0.18.1"
eventsource-client = { git = "https://github.com/yaakapp/rust-eventsource-client", version = "0.14.0" }
http = { version = "1.2.0", default-features = false }
log = { workspace = true }
md5 = "0.8.0"
r2d2 = "0.8.10"
r2d2_sqlite = "0.25.0"
mime_guess = "2.0.5"
rand = "0.9.0"
reqwest = { workspace = true, features = ["multipart", "gzip", "brotli", "deflate", "json", "rustls-tls-manual-roots-no-provider", "socks", "http2"] }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true, features = ["raw_value"] }
tauri = { workspace = true, features = ["devtools", "protocol-asset"] }
tauri-plugin-clipboard-manager = "2.3.2"
tauri-plugin-deep-link = "2.4.5"
tauri-plugin-dialog = { workspace = true }
tauri-plugin-fs = "2.4.4"
tauri-plugin-log = { version = "2.7.1", features = ["colored"] }
tauri-plugin-opener = "2.5.2"
tauri-plugin-os = "2.3.2"
tauri-plugin-shell = { workspace = true }
tauri-plugin-single-instance = { version = "2.3.6", features = ["deep-link"] }
tauri-plugin-updater = "2.9.0"
tauri-plugin-window-state = "2.4.1"
thiserror = { workspace = true }
tokio = { workspace = true, features = ["sync"] }
tokio-stream = "0.1.17"
tokio-tungstenite = { version = "0.26.2", default-features = false }
url = "2"
tokio-util = { version = "0.7", features = ["codec"] }
ts-rs = { workspace = true }
uuid = "1.12.1"
yaak-common = { workspace = true }
yaak-tauri-utils = { workspace = true }
yaak-core = { workspace = true }
yaak-crypto = { workspace = true }
yaak-fonts = { workspace = true }
yaak-git = { workspace = true }
yaak-grpc = { workspace = true }
yaak-http = { workspace = true }
yaak-license = { workspace = true, optional = true }
yaak-mac-window = { workspace = true }
yaak-models = { workspace = true }
yaak-plugins = { workspace = true }
yaak-sse = { workspace = true }
yaak-sync = { workspace = true }
yaak-templates = { workspace = true }
yaak-tls = { workspace = true }
yaak-ws = { workspace = true }

View File

@@ -1,3 +0,0 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type WatchResult = { unlistenEvent: string, };

View File

@@ -1,17 +0,0 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type PluginUpdateInfo = { name: string, currentVersion: string, latestVersion: string, };
export type PluginUpdateNotification = { updateCount: number, plugins: Array<PluginUpdateInfo>, };
export type UpdateInfo = { replyEventId: string, version: string, downloaded: boolean, };
export type UpdateResponse = { "type": "ack" } | { "type": "action", action: UpdateResponseAction, };
export type UpdateResponseAction = "install" | "skip";
export type WatchResult = { unlistenEvent: string, };
export type YaakNotification = { timestamp: string, timeout: number | null, id: string, title: string | null, message: string, color: string | null, action: YaakNotificationAction | null, };
export type YaakNotificationAction = { label: string, url: string, };

View File

@@ -1,5 +0,0 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type PluginUpdateInfo = { name: string, currentVersion: string, latestVersion: string, };
export type PluginUpdateNotification = { updateCount: number, plugins: Array<PluginUpdateInfo>, };

View File

@@ -1,57 +0,0 @@
{
"identifier": "default",
"description": "Default capabilities for all build variants",
"windows": [
"*"
],
"permissions": [
"core:app:allow-identifier",
"core:event:allow-emit",
"core:event:allow-listen",
"core:event:allow-unlisten",
"core:path:allow-resolve-directory",
"core:path:allow-basename",
"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-dir",
"fs:allow-read-file",
"fs:allow-read-text-file",
{
"identifier": "fs:scope",
"allow": [
{
"path": "$APPDATA"
},
{
"path": "$APPDATA/**"
}
]
},
"clipboard-manager:allow-read-text",
"clipboard-manager:allow-write-text",
"core:webview:allow-set-webview-zoom",
"core:window:allow-close",
"core:window:allow-internal-toggle-maximize",
"core:window:allow-is-fullscreen",
"core:window:allow-is-maximized",
"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-unmaximize",
"opener:allow-default-urls",
"opener:allow-open-path",
"opener:allow-open-url",
"opener:allow-reveal-item-in-dir",
"shell:allow-open",
"yaak-fonts:default",
"yaak-mac-window:default"
]
}

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 848 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Some files were not shown because too many files have changed in this diff Show More