Compare commits

..
2667 Commits
Author SHA1 Message Date
KernelDeimos 29834f02c0 release: 2.5.1 2025-02-13 21:50:39 -05:00
KernelDeimos 0bcbc8f784 fix: phoenix changelog 2025-02-13 17:48:21 -05:00
KernelDeimos abd66309c8 dev: update phoenix changelog 2025-02-13 16:57:00 -05:00
KernelDeimos a2413b12b0 dev: de-couple requiring a read from fallback read
IMPORTANT: requires update to database access implementations
2025-02-13 15:11:02 -05:00
Nariman Jelveh 7fca9b79ea Merge pull request #1113 from ProgrammerIn-wonderland/main
Added tab completion to PDEs
2025-02-12 13:43:44 -08:00
ProgrammerIn-wonderland ffaa91f849 Added tab compleition to PDEs 2025-02-12 16:42:24 -05:00
Nariman Jelveh b32011f10f Merge pull request #1111 from HeyPuter/revert-1109-add/browser-ides
Revert "Added Browser IDEs"
2025-02-11 19:37:49 -08:00
Nariman Jelveh 50d5713e8f Revert "Added Browser IDEs" 2025-02-11 19:37:36 -08:00
Nariman Jelveh 1133c4656a Merge pull request #1109 from mojafa/add/browser-ides
Added Browser IDEs
2025-02-11 19:37:18 -08:00
ProgrammerIn-wonderland fd387597bb PDE command provider 2025-02-11 17:49:31 -05:00
KernelDeimos 5169d4bb40 dev: add stream support to Gemini 2025-02-11 16:24:57 -05:00
KernelDeimos b74ec1f69c dev: add Gemini support (non-streaming) 2025-02-11 14:57:17 -05:00
KernelDeimos 74319b44af dev: add more information to lock logs 2025-02-11 14:40:38 -05:00
KernelDeimos c2c5d88336 fix: update package.json 2025-02-11 12:29:01 -05:00
KernelDeimos fa4b38cd02 fix: oops, no export (putility.libs.event) 2025-02-11 11:23:55 -05:00
KernelDeimos e49af481ba dev: make it easier to use putility emitter 2025-02-11 11:10:02 -05:00
KernelDeimos a803d55cfb fix: broken test in putility 2025-02-11 10:54:03 -05:00
mojafa ab704ce4d7 added browser IDE support
Signed-off-by: mojafa <[email protected]>
2025-02-11 03:23:34 +03:00
KernelDeimos 70fde95255 fix: parse body before auth for /down 2025-02-10 17:54:23 -05:00
KernelDeimos e5c3769bd8 fix: fix previous fix 2025-02-10 17:42:12 -05:00
KernelDeimos 390230c5a0 fix: potential fix for /down auth
This is a temporary  workaround for a bug de-syncing http session
cookies.
2025-02-10 17:35:19 -05:00
KernelDeimos 2000b8909f fix: allow command provider to not implement complete method 2025-02-10 17:22:10 -05:00
KernelDeimos ad2ed295b1 dev: fix app close messages from ExecService 2025-02-10 13:59:47 -05:00
jelveh a3513c22a2 do not repeat session picking in popup for file pickers 2025-02-07 18:07:02 -08:00
jelveh 4d380ffa8a remove unnecessary confirmation dialog for file/directory pickers in popups 2025-02-07 17:47:58 -08:00
KernelDeimos 6dcb3777ca dev: fix index_url issue 2025-02-07 15:57:29 -05:00
KernelDeimos ca17f38929 dev: normalize Mistral, get tool calls working
Mistral has a lot of unnecessary quirks because the SDK coerces to
snake_case. We should see if the OpenAI client works with Mistral, and
it it does we'll use that instead so we don't have to maintain all these
exceptional cases.
2025-02-07 15:27:28 -05:00
KernelDeimos 735f275e7c dev: normalize Groq (tool use works) 2025-02-07 14:01:34 -05:00
KernelDeimos 29cd14a01d dev: XAI streaming function calls 2025-02-07 12:55:34 -05:00
jelveh 84b2400650 it fixes it surely! 2025-02-06 19:52:54 -08:00
jelveh d4b4df06fd Use the fetch API in Puter.js's Convert module 2025-02-06 19:45:10 -08:00
jelveh 1e5deabcdb Update package-lock.json 2025-02-06 18:20:12 -08:00
jelveh 949d3ab17c add Convert modules to Puter.js 2025-02-06 18:19:12 -08:00
KernelDeimos 62cf10072a dev: include cost information in usage reports
This adds an incremental migration from models reporting input and
output tokens, to models reporting full token information. This means
AIChatService doesn't need to lookup the model details or know about the
different types of tokens supported by every model.
2025-02-06 17:34:57 -05:00
KernelDeimos f7147ab312 dev: generalize how OpenAIUtil handles usage
The current implementation would break for XAIService because it gets
cumulative usage reports as the stream goes on (whereas OpenAI and
DeepSeek only provide this at the end of the stream).
2025-02-06 17:34:57 -05:00
KernelDeimos 16e2729b1d dev: migrate XAIService to normalized messages 2025-02-06 17:34:57 -05:00
KernelDeimos ce0ab02f39 dev: add file output mode for convert 2025-02-06 17:34:57 -05:00
KernelDeimos 5e30958a14 tweak: enable convert module on selfhosted run 2025-02-06 17:34:57 -05:00
KernelDeimos 2b0e173975 dev: add convert module (and ConvertAPI) 2025-02-06 17:34:57 -05:00
ProgrammerIn-wonderland 12806a2395 only close TLS socket once 2025-02-06 17:13:04 -05:00
ProgrammerIn-wonderland 26666fe666 new API puter.net.generateWispV1URL() 2025-02-05 16:56:57 -05:00
KernelDeimos c8bed6eaee dev: add deepseek tool calls 2025-02-05 15:32:35 -05:00
KernelDeimos d4eff82d3c dev: add email attachments 2025-02-05 14:12:05 -05:00
KernelDeimos da4a1a182b dev: de-couple OpenAI SDK utilities from service
This change will be helpful for making behavior across OpenAI-compatible
APIs consistent.
2025-02-05 11:36:07 -05:00
KernelDeimos 50383aab59 dev: try this for now 2025-02-04 16:45:42 -05:00
KernelDeimos e6fc773706 fix: unfixed fix from earlier 2025-02-04 16:36:06 -05:00
KernelDeimos 9dbba292c4 dev: coerce semantics of tool calls/use in messages
If these APIs were standardized this would have been so much less
painful, but alas, tool calls are implemented completely differently
between Claude and OpenAI. Good job guys.
2025-02-04 16:15:47 -05:00
KernelDeimos 484bb5c201 fix: parser error for empty json buffer 2025-02-04 15:42:03 -05:00
KernelDeimos d2358d234b fix: fix name and id for openai tool calls 2025-02-04 14:36:30 -05:00
KernelDeimos 29c0241119 fix: let messages with tool_calls have content=null 2025-02-04 14:21:14 -05:00
KernelDeimos 8f27742038 fix: repair stream end 2025-02-04 14:09:28 -05:00
KernelDeimos e2797c38d0 fix: add type=text 2025-02-04 14:02:01 -05:00
KernelDeimos 747614c28b dev: integrate stream normalization for OpenAI 2025-02-04 13:57:10 -05:00
KernelDeimos 437467e0ce dev: integrate stream normalization for Claude 2025-02-04 13:10:14 -05:00
Nariman Jelveh 0ce8fdc9f6 Merge pull request #1037 from HeyPuter/Add-TRADEMARK.md
Create TRADEMARK.md
2025-02-03 14:23:24 -08:00
jelveh 4e17908664 Update TRADEMARK.md 2025-02-03 14:22:01 -08:00
KernelDeimos f54b7b7b3d dev: PoC for stream normalization 2025-02-03 16:57:13 -05:00
KernelDeimos f0434435c4 dev: option to normalize AI response (non-streaming) 2025-02-03 14:03:27 -05:00
KernelDeimos 57231d31e4 dev: add email module to run-selfhosted 2025-02-03 13:14:52 -05:00
KernelDeimos cfa3fde436 dev: error handling and text encoding 2025-02-03 13:11:29 -05:00
KernelDeimos 55d052cfc2 fix: various issues with Mail module 2025-02-03 12:25:22 -05:00
KernelDeimos e281dc92e3 dev: add mail module 2025-02-03 10:08:39 -05:00
KernelDeimos dc90999fee dev: enable gpt-o3-mini 2025-01-31 14:48:49 -05:00
KernelDeimos d88dedb66c dev: normalize Claude input
- add merging of same-role messages for all normalized inputs
- generalize Claude-specific system message extraction
- remove redundant behavior from Claude
2025-01-31 11:22:06 -05:00
KernelDeimos 40aa52225f dev: make ai fallback configurable 2025-01-31 10:32:36 -05:00
Nariman Jelveh e257dceb93 Merge pull request #1100 from Zac0511/patch-4
Update fr.js
2025-01-31 05:04:24 -08:00
Zac0511 6c2fa4d398 Update fr.js
Fixed some translations and deleted a copy of billing translations
2025-01-31 09:50:49 +01:00
KernelDeimos 2d12949a08 dev: improve user request error detection 2025-01-30 15:40:10 -05:00
KernelDeimos 60eef2fc67 fix: buffer incomplete JSON objects from AI stream
- simplify ndjson stream to get complete lines instead of chunks
- add buffering for incomplete lines
2025-01-30 15:21:05 -05:00
KernelDeimos af3d732fc4 dev: async await for puter-exec 2025-01-30 13:37:15 -05:00
KernelDeimos d0eca6dafb Revert "dev: remove redundant message adaption from claude"
This reverts commit 0c42613ff0.
2025-01-30 12:23:27 -05:00
KernelDeimos 760eb55b69 Revert "fix: mistake in 0c42613"
This reverts commit 8ffd0004b3.
2025-01-30 12:23:06 -05:00
KernelDeimos 8ffd0004b3 fix: mistake in 0c42613 2025-01-30 12:19:07 -05:00
KernelDeimos 05ced4e625 Revert "dev: remove max_tokens from Claude"
This reverts commit 3bce60893e.
2025-01-30 12:18:26 -05:00
KernelDeimos 3bce60893e dev: remove max_tokens from Claude 2025-01-30 12:09:35 -05:00
KernelDeimos 0c42613ff0 dev: remove redundant message adaption from claude 2025-01-30 10:11:52 -05:00
KernelDeimos babe9f8ede dev: remove now-redundant token count logic from openai service 2025-01-29 16:58:30 -05:00
KernelDeimos 7151723894 dev: use message normalization and clean up openai service 2025-01-29 16:45:15 -05:00
KernelDeimos 0009ededfa dev: implement generic extract_text for ai messages 2025-01-29 16:08:30 -05:00
KernelDeimos e9279ffb36 dev: implement message normalization 2025-01-29 15:28:14 -05:00
KernelDeimos e6ad54be19 dev: puterjs exec module (2) 2025-01-29 13:58:21 -05:00
KernelDeimos cbe02a4489 dev: puterjs exec module 2025-01-29 13:57:50 -05:00
KernelDeimos 77d6bb2d8c dev: always select highest version of the specified language 2025-01-29 10:31:58 -05:00
KernelDeimos dcd47bc4cf fix: fix microcents to USD conversion in AIChatService
This only affects a value sent to TrackSpendingService. Cost
calculations related to user's quotas / billing remain unaffected.
2025-01-28 16:45:48 -05:00
KernelDeimos 913c1b7836 test: add unit test for TimeWindow
TimeWindow is used by TrackSpendingService for two purposes:
- tracking cost within a time window
- preventing duplicate alarms within a cooldown period

It is important to test this to ensure alarms related to AI costs are
accurate.
2025-01-28 16:16:00 -05:00
KernelDeimos 1dad2e8716 dev: allow specifying runtime version 2025-01-28 14:25:45 -05:00
KernelDeimos c852a287e8 dev: push exec submission updates to client 2025-01-28 13:41:26 -05:00
KernelDeimos 4005e9667c dev: implement custom backoff strategy for judge0 2025-01-28 13:27:26 -05:00
KernelDeimos 5718071c08 dev: add judge0 exec and polling 2025-01-28 12:55:54 -05:00
KernelDeimos 0fac03a05a fix: claude duplicate messages in stream 2025-01-28 11:27:47 -05:00
KernelDeimos c96d3b546c dev: update selfhosted default modules 2025-01-28 10:37:39 -05:00
KernelDeimos 3451308e48 dev: tweak supported languages list 2025-01-28 10:20:31 -05:00
KernelDeimos 5b04d1afe1 dev: increase alarm threshold for ai use 2025-01-28 00:35:40 -05:00
KernelDeimos 97f86e564f dev: oh my Claude
Sometimes tool use requests are streamed as JSON, but sometimes they're
streamed as an empty string (causing the JSON parser to error). Had they
not streamed anything we actually would've responded correctly, but
what they stream implies "this empty string is the JSON input" which is
incorrect. Oh well.
2025-01-27 21:32:50 -05:00
KernelDeimos 3f99d975c0 dev: initial work on judge0 implementation 2025-01-27 16:19:16 -05:00
KernelDeimos 81ee52b00f dev: add puterexec module 2025-01-27 15:38:29 -05:00
KernelDeimos 4d826c0602 dev: process language information from judge0 2025-01-27 14:50:40 -05:00
KernelDeimos ecc89678d1 doc: add examples of streaming tool use 2025-01-27 14:13:01 -05:00
KernelDeimos 5ad53e061a dev: get streaming tool use to work in Claude 2025-01-27 13:53:56 -05:00
KernelDeimos d00061ae2f dev: improve accuracy of TrackSpendingService 2025-01-27 11:36:54 -05:00
jelveh 52c1adb7eb Update globals.js 2025-01-26 17:05:43 -08:00
jelveh bb348e4bd5 Update UIWindowMyWebsites.js 2025-01-26 11:20:07 -08:00
KernelDeimos 6083e3ac52 fix: skip request-count usage check via AIChatService 2025-01-24 17:58:04 -05:00
KernelDeimos db9597a7b5 doc: add example function calling requests 2025-01-24 16:35:46 -05:00
KernelDeimos aae18e6878 dev: support POST requests in puter.http 2025-01-24 15:38:19 -05:00
KernelDeimos c7f3e0b937 fix: remove log from InternetModule 2025-01-23 21:27:14 -05:00
KernelDeimos 1fde01aa04 dev: enable tool use for Claude 2025-01-23 20:21:14 -05:00
KernelDeimos e9f6266062 dev: add deepseek AI to backend 2025-01-23 20:07:41 -05:00
KernelDeimos 40030ebc94 dev: enable tool-use in Claude 2025-01-23 16:46:13 -05:00
KernelDeimos 54a104276b dev: add tools normalization/converting 2025-01-23 16:15:32 -05:00
KernelDeimos bcdec32ba2 doc: log some AI responses 2025-01-23 15:20:31 -05:00
KernelDeimos 06452f5283 fix: small workaround for duplicate close 2025-01-23 14:58:23 -05:00
KernelDeimos 36dc9664ad fix: race condition and buffer issue in puter.http
The call to sock.write() wasn't waiting for the 'open' event, which
worked fine over non-TLS sockets by chance. Also, responses with only
a single WISP packet were resulting in buffered response data not
being sent to the caller.
2025-01-23 14:14:13 -05:00
KernelDeimos 3f5b34cd34 fix: missing some buffer contents in no-keepalive 2025-01-23 13:43:21 -05:00
KernelDeimos ee136f4168 dev: add extra safeguards for system user 2025-01-23 11:46:36 -05:00
KernelDeimos 7909cae76e dev: check 'invalid_request_error' hint from openai 2025-01-23 11:46:36 -05:00
jelveh 6f7ab2ab17 Update RecommendedAppsService.js 2025-01-22 21:38:07 -08:00
jelveh bfdf815f61 Update RecommendedAppsService.js 2025-01-22 21:34:27 -08:00
jelveh 925077916e Update RecommendedAppsService.js 2025-01-22 21:29:30 -08:00
KernelDeimos 9cbb741a8a fix: new edge cases with function calls / tools 2025-01-22 19:55:33 -05:00
KernelDeimos 1256614ec2 dev: add support for tools 2025-01-22 19:28:05 -05:00
KernelDeimos cf7aa27543 fix: oops, we're passing negative values; let's just remove this 2025-01-22 18:13:41 -05:00
KernelDeimos 61824ea04b fix: oops we still need that 2025-01-22 18:04:56 -05:00
KernelDeimos 7f50da5082 dev: use Connection: close for http requests by default 2025-01-22 17:46:51 -05:00
KernelDeimos 8143e5700f fix: remove hard-coded token limit for OpenAI 2025-01-22 17:28:18 -05:00
KernelDeimos 2b505caf98 dev: implement puter.http 2025-01-22 16:16:36 -05:00
KernelDeimos 6f39365b24 fix: wisp relay authentication 2025-01-22 14:20:53 -05:00
KernelDeimos 591c6c0fd3 dev: add wisp relay service 2025-01-22 11:45:58 -05:00
KernelDeimos 4c72e9d285 dev: separate process management from DevWatcherService 2025-01-22 10:08:06 -05:00
KernelDeimos 44c6f57c7a dev: add system kv access for extensions 2025-01-20 13:33:02 -05:00
KernelDeimos e8f5450cb0 fix: reduce code paths for querystrings 2025-01-20 10:34:25 -05:00
jelveh 4e578e9b28 update copyright date 2025-01-19 22:27:31 -08:00
jelveh 55f3f07ee5 Implement puter.ui.wasLaunchedWithItems() 2025-01-19 22:20:19 -08:00
Nariman Jelveh f13fa2553c Merge pull request #1093 from AryanTavish/main
Complete the Norwegian Bokmål (Norsk Bokmål) translation of Puter
2025-01-19 16:34:45 -08:00
jelveh ed2eea7c6b Update nb.js 2025-01-19 16:34:28 -08:00
Aryan Tavish 967da6ba24 Update nb.js (removed object billing to make indivisual string keys )
For example, instead of:

billing = {
    change_payment_method: "Endre",
    // ...
}
changed to:

'billing.change_payment_method': "Endre",
// ...
2025-01-18 10:19:30 +05:30
KernelDeimos d03952b237 fix: icons 2025-01-17 18:28:19 -05:00
Nariman Jelveh f27ef665ee Merge pull request #1094 from ProgrammerIn-wonderland/main
more socket fixes
2025-01-17 14:08:14 -08:00
ProgrammerIn-wonderland 01fc301f1e replace hardcoded api.puter.com with puter.APIOrigin 2025-01-17 17:05:51 -05:00
ProgrammerIn-wonderland 5798fcd042 automatic reconnection on disconnect 2025-01-17 17:05:42 -05:00
KernelDeimos 17d0738d62 dev: no_temp_user event setting 2025-01-17 13:09:00 -05:00
Nariman Jelveh 7d24fa2b32 Update nb.js 2025-01-16 19:07:44 -08:00
aryantavish 3883af2e96 Complete the Norwegian Bokmål (Norsk Bokmål) translation of Puter 2025-01-17 07:40:08 +05:30
KernelDeimos 56ae760bea dev: extension support for request measurements 2025-01-15 11:59:30 -05:00
KernelDeimos 38ccc82c8e fix: subdomains to deleted files tried to deref fs node 2025-01-15 11:11:57 -05:00
KernelDeimos 37ca89228c fix: app icon empty string should be skipped 2025-01-15 11:11:57 -05:00
Nariman Jelveh 8cff90bdc3 Merge pull request #1092 from ProgrammerIn-wonderland/main
move try-catch outside of loop in TLS readstream
2025-01-15 08:00:31 -08:00
ProgrammerIn-wonderland f177732a0e move try-catch outside of loop in TLS readstream 2025-01-15 10:11:58 -05:00
Nariman Jelveh d638f371d0 Merge pull request #1091 from ProgrammerIn-wonderland/main
add 0x01 and 0x03 wisp messages
2025-01-14 21:03:21 -08:00
ProgrammerIn-wonderland b35cf776aa add 0x01 and 0x03 wisp messages 2025-01-15 00:01:43 -05:00
Nariman Jelveh 4fd6da9903 Merge pull request #1090 from ProgrammerIn-wonderland/main
TLS Support through rustls-wasm
2025-01-14 21:01:29 -08:00
ProgrammerIn-wonderland 98be5c1323 error handling on TLS handshake and reporting wisp errors to client 2025-01-14 23:54:47 -05:00
ProgrammerIn-wonderland 6261d7c90c WIP TLS support 2025-01-14 21:20:00 -05:00
Nariman Jelveh 365fac907c Merge pull request #1088 from ProgrammerIn-wonderland/main
add close to psocket
2025-01-14 14:52:46 -08:00
ProgrammerIn-wonderland a5e4840920 add close() 2025-01-14 17:51:24 -05:00
KernelDeimos 766c235cc7 fix: save_account case for disable_user_signup 2025-01-14 17:23:39 -05:00
Raiu 8d5860d733 feature: disable creation of temp_users and user signup through config 2025-01-14 17:06:14 -05:00
Raiu 78ac033a1c fix: use .get() for Map lookup. fix: correctly set url and url_paths. fix: null check to throw error. 2025-01-14 17:06:14 -05:00
KernelDeimos 7fa0822584 dev: measure response data amount 2025-01-14 16:17:55 -05:00
KernelDeimos 113ed31336 fix: ensure puter.signup emit resolves 2025-01-14 14:41:27 -05:00
KernelDeimos ca9e74ece4 dev: measure request transfer amount 2025-01-14 13:43:50 -05:00
KernelDeimos 4f3a6f7bbc dev: ll_rmdir,ll_rmnode -> provider.(rmdir,unlink) 2025-01-14 13:06:41 -05:00
KernelDeimos 5bf11adff3 dev: add utility to measure bytes in a stream 2025-01-14 10:45:23 -05:00
KernelDeimos 202e7f06e2 test: cleanup and tweak batch test
One of the test cases has been rendered redundant so it has been
removed. Another test was changed to overwrite a file as it's expected
to already exist.
2025-01-14 09:42:20 -05:00
KernelDeimos d9822a4f09 fix: --onlycase param broke cartesian tests 2025-01-14 09:18:33 -05:00
KernelDeimos f359ae193e fix: empty response when mkdir is a no-op 2025-01-13 15:27:02 -05:00
KernelDeimos 807c3ba5ec fix: mkdir with create_missing when some parents exist
There was an issue affecting mkdir requests with create_missing_parents
set to true which prevented the correct behavior if some of the listed
parents were already present. This commit ensures mkdir selects the
deepest existing node as the parent before proceeding.
2025-01-13 15:16:52 -05:00
KernelDeimos fb7025164e fix: possible out-or-order response objects from batch 2025-01-13 14:39:43 -05:00
KernelDeimos 5ef75e5df3 fix: app data check error in write 2025-01-13 14:11:26 -05:00
KernelDeimos 9215937064 test: remove tests for unsupported behavior in mkdir 2025-01-13 13:54:59 -05:00
KernelDeimos c9215d9e86 test: update outdated test cases 2025-01-13 11:38:00 -05:00
KernelDeimos 9d9d97fd00 fix: missing parent dirs created in move 2025-01-13 10:07:49 -05:00
KernelDeimos 6f4b1bf94a fix: missing changes to run-selfhosted.js 2025-01-13 09:11:39 -05:00
jelveh 706a2403e1 When navigating context menu using keyboard skip over item dividers 2025-01-11 14:59:03 -08:00
KernelDeimos d6bbba7bf0 fix: appease mocha's import requirements 2025-01-10 17:40:02 -05:00
KernelDeimos 6a6bfa034f fix: error msg for invalid puter-ocr urls 2025-01-10 17:37:44 -05:00
KernelDeimos 14cc8f7bc0 doc: notes about mountpoint hurdles 2025-01-10 16:44:46 -05:00
KernelDeimos e1bdee1abe dev: ability to run api tests from puter terminal 2025-01-10 16:24:08 -05:00
KernelDeimos 2993b887bd dev: experimental local-terminal service 2025-01-10 14:12:30 -05:00
KernelDeimos 7293fdbbfa dev: ll_move -> provider.move 2025-01-10 13:10:43 -05:00
KernelDeimos 28c5800d06 sync: package-lock.json 2025-01-10 10:27:40 -05:00
KernelDeimos 75aaaa66a8 fix: improper 500 in wisp token verify 2025-01-10 10:27:40 -05:00
KernelDeimos 7aa886d573 fix: actor param in legacy /write 2025-01-10 10:27:40 -05:00
jelveh a295420f58 fix: new desktop height calculation when resizing browser window 2025-01-09 16:15:32 -08:00
KernelDeimos 8fabf014a9 fix: circular imports 2025-01-09 19:07:31 -05:00
KernelDeimos eac2ddf8da sync: backend ver with puter ver 2025-01-09 19:07:31 -05:00
jelveh eb59c1a102 Don't console.log auth token 2025-01-09 15:32:33 -08:00
Nariman Jelveh d65ee6cfb1 Merge pull request #1085 from ProgrammerIn-wonderland/main
networking API beginnings
2025-01-09 15:25:40 -08:00
ProgrammerIn-wonderland 1ed3bccaa5 networking API beginnings 2025-01-09 18:11:28 -05:00
KernelDeimos d9a8ea095c dev: try removing npm registry from Dockerfile 2025-01-09 17:38:53 -05:00
KernelDeimos dd86724941 dev: add cartesian case selector 2025-01-09 16:36:37 -05:00
KernelDeimos 405d9b35aa move: api-tester to monorepo 2025-01-09 15:51:50 -05:00
KernelDeimos 44ad3c5781 fix: test and improve boolify 2025-01-09 15:45:15 -05:00
KernelDeimos f60c008158 fix: skip test files in mod lib loading 2025-01-09 15:41:40 -05:00
KernelDeimos 6d196d59f0 fix: shortcut issue 2025-01-09 11:51:26 -05:00
KernelDeimos 740fdb592e fix: test for get-launch-apps 2025-01-09 11:10:41 -05:00
KernelDeimos 3097b86597 fix: add package-lock.json 2025-01-09 10:24:12 -05:00
KernelDeimos 8963eb0c4f fix: try redundant npm install after build stage 2025-01-08 15:23:03 -05:00
KernelDeimos 686d3de518 fix: I'ma buy GitHub a coffee and spill it on their servers if this works 2025-01-08 14:47:49 -05:00
KernelDeimos a13af7e31a fix: oh, right; there's two of them 2025-01-08 12:20:05 -05:00
KernelDeimos 63b3376b48 dev: try upgrading docker node version 2025-01-08 12:11:43 -05:00
KernelDeimos 0cb1ca7989 chore: date and update version 2025-01-07 15:51:44 -05:00
KernelDeimos 691be3802b doc: update CHANGELOG.md 2025-01-07 15:50:26 -05:00
KernelDeimos 4085d508b0 dev: update release notes generator 2025-01-07 15:33:53 -05:00
KernelDeimos 803f440d55 fix: terminal not loading in self-hosted 2025-01-07 15:13:35 -05:00
KernelDeimos f5a7b06d40 doc: fix generated comment errors (batch 2) 2025-01-07 14:35:54 -05:00
KernelDeimos 7deb0c5692 fix: don't call /rao in gui 2025-01-06 21:20:13 -05:00
jelveh 6a184d52b4 Update copyright notice dates in license headers 2025-01-06 15:18:22 -08:00
KernelDeimos 540821c759 doc: fix generated comment errors (batch 1) 2025-01-06 16:47:30 -05:00
KernelDeimos 15898fe5b7 chore: update license headers 2025-01-06 11:55:17 -05:00
KernelDeimos 0fb05309c2 doc: miscellaneous comment fixes 2025-01-06 11:24:18 -05:00
KernelDeimos 57befd310d doc: fix comments for list(), models(), complete() 2025-01-06 10:04:54 -05:00
jelveh 9c181516fc lol there was an empty file in there! 2025-01-05 23:20:17 -08:00
jelveh 5f81299bf0 cleaned up as much as i could 2025-01-05 23:14:47 -08:00
jelveh f3f1a1f188 Copyright notice fix 2025-01-05 22:39:20 -08:00
Nariman Jelveh 737a3a0ebc Merge pull request #1082 from ahmadkani/main
English README translated to Persian language
2025-01-04 14:54:22 -08:00
Ahmad e633d11dbb English document translated to Persian language 2025-01-04 10:47:36 +03:30
jelveh a03314f8b8 Update dev-center.js 2025-01-03 21:05:55 -08:00
KernelDeimos 9b0f220556 dev: request /rao from sites 2025-01-03 14:32:24 -05:00
KernelDeimos 71f221dd07 dev: ll_copy -> provider.copy_tree 2025-01-03 14:32:24 -05:00
KernelDeimos 8a9164d7c5 fix: missing ll_copy import 2025-01-03 13:28:03 -05:00
jelveh 34fcae9c56 Update UIWindow.js 2025-01-03 09:48:00 -08:00
jelveh 3e3db2327e Update UIWindow.js 2025-01-03 09:42:15 -08:00
KernelDeimos 63401f2c83 dev: DRY base64 app icons from streams 2025-01-03 11:46:01 -05:00
KernelDeimos 06a67a3b22 dev: migrate /rao to actor-capable auth 2025-01-03 10:24:46 -05:00
jelveh cd5866dd6b Update UITaskbarItem.js 2025-01-02 18:48:24 -08:00
jelveh 6fbd00f2ec Update style.css 2025-01-02 18:14:49 -08:00
jelveh 1ef8c36135 quick fix 2025-01-02 18:05:38 -08:00
jelveh ddd1c254f0 Update style.css 2025-01-02 17:20:47 -08:00
jelveh 3a47bc69d9 Add tooltips to vague icons in Dev Center 2025-01-02 17:14:08 -08:00
KernelDeimos a8fc4669e8 dev: fix default origins in puter.js 2025-01-02 16:23:02 -05:00
jelveh f1d0f9cd1f Update style.css 2025-01-02 11:04:00 -08:00
KernelDeimos 3e4c8ab56b dev: add wisp auth endpoints 2025-01-02 12:45:52 -05:00
KernelDeimos 13003c486f fix: bad uuid reference to resourceService 2025-01-02 10:53:37 -05:00
jelveh 626c453f19 Add more sub-sections to ACCEPTABLE USES 2025-01-01 10:46:25 -08:00
jelveh 3856ec476d Update TRADEMARK.md 2025-01-01 10:16:06 -08:00
jelveh 0c5f780f59 Merge branch 'main' of https://github.com/heyputer/puter 2025-01-01 10:01:41 -08:00
Nariman Jelveh 314d373527 Merge pull request #1079 from HeyPuter/revert-1050-issue-1000-drag-drop-fix
Revert "Fix: drag-and-drop issue: files not appearing on desktop automatically"
2025-01-01 09:49:44 -08:00
Nariman Jelveh 774a75401a Revert "Fix: drag-and-drop issue: files not appearing on desktop automatically" 2025-01-01 09:49:33 -08:00
Nariman Jelveh 55687bb412 Merge pull request #1050 from mariatouil/issue-1000-drag-drop-fix
Fix: drag-and-drop issue: files not appearing on desktop automatically
2025-01-01 09:49:23 -08:00
jelveh 4691af3a6f Update AppInformationService.js 2024-12-31 21:27:42 -08:00
jelveh a0da1e06e3 Use puter.ui's spinner for all spinners in Dev Center 2024-12-31 20:46:05 -08:00
KernelDeimos ad8a3978c0 fix: allow localhost for development 2024-12-31 17:16:09 -05:00
KernelDeimos 29471a752f dev: ll_readdir -> provider.readdir 2024-12-31 15:43:04 -05:00
KernelDeimos 0ef1849013 dev: make puterfs a mountpoint 2024-12-31 15:43:04 -05:00
jelveh 5d8ccf8c9e Use the correct date formatting in get_stats depending on DB engine 2024-12-31 11:21:08 -08:00
jelveh 13e5f7f69f Replace non-existent timestamp column with ts in get_stats 2024-12-31 10:53:46 -08:00
KernelDeimos 9d578b8d1f dev: begin de-coupling FSNodeContext/PuterFS 2024-12-31 13:15:01 -05:00
KernelDeimos f7196991fc refactor: rm legacy FSAccessContext and systemfs 2024-12-31 10:33:39 -05:00
jelveh 539b31cc5b Don't allow dropping of Launcher icons after trash in taskbar. 2024-12-30 22:02:42 -08:00
jelveh 4da9f525da delete components that aren't used 2024-12-30 20:39:51 -08:00
KernelDeimos 2728761d3c dev: remove unnecessary filesystem methods
These used to serve a purpose but now they only cause a dependency loop
between LL*/HL* operations and FilesystemService itself, making it
difficult to strategize filesystem behavior.
2024-12-30 15:52:10 -05:00
KernelDeimos dacbbf033d fix: rewrite confusing log message 2024-12-30 15:34:12 -05:00
KernelDeimos 233260233c fix: AppInformationService initialization 2024-12-30 15:23:37 -05:00
KernelDeimos 47a4313d92 fix: dev center app icon SVG issue 2024-12-30 13:39:12 -05:00
KernelDeimos 23eab63776 fix: app icon double-encode bug
When getting a stream for an SVG icon from AppIconService with a
previously-fetched stored icon provided, a double-encoding bug was
preventing a valid image from being obtained.
2024-12-30 13:38:41 -05:00
KernelDeimos a6b9d33d27 fix: first read of recommended apps 2024-12-30 12:55:44 -05:00
KernelDeimos 055ba7d9df dev: move recommended apps to service with cache invalidation
Adds an event for app invalidation.

Moves iconify_apps to AppIconService and adds RecommenededAppsService,
which holds some logic that used to be in get-launch-apps. The event for
app invalidation is then used by RecommenededAppsService to determine
when to clear the recommended apps cache.
2024-12-30 12:38:51 -05:00
KernelDeimos c1961dd54e dev: move app services to apps module
Moves AppIconService, OldAppNameService, and ProtectedAppService to the
new apps module to keep things organized, and updates imports. There
were no interesting init errors. Services creating a database at init
were tested for failures but this wasn't an issue. It turns out
initializing with a database accessor before the db service inits is
okay, but using that database accessor at init is not.
2024-12-30 11:03:27 -05:00
KernelDeimos 2de442be92 dev: add apps module, migrate AppInformationService
There are now several services related to apps, and
RecommendedAppsService is about to be added, making this a good time to
create a separate module for these services and migrate the legacy
service AppInformationService.

During migration it was realized that most of the initialization needed
to occur at boot.consolidation rather than boot.init because the
database needs to be initialized first.
2024-12-30 10:19:02 -05:00
jelveh 3ffb3cbc74 Remove credentialless from Dev Center advanced section 2024-12-29 22:13:11 -08:00
jelveh a105192882 Update dev-center.js 2024-12-29 21:53:43 -08:00
jelveh 3b60e9913e Update dev-center.js 2024-12-29 19:25:13 -08:00
jelveh cc0abf9f3b Update style.css 2024-12-29 18:47:32 -08:00
jelveh 0d0f429bd8 Add icons to dev center sub tabs 2024-12-29 18:44:06 -08:00
jelveh c9fe08cea5 Update style.css 2024-12-29 18:00:12 -08:00
jelveh 5da8872315 Update dev-center.js 2024-12-29 17:20:59 -08:00
jelveh be24f2acec Update dev-center.js 2024-12-29 16:53:09 -08:00
jelveh bc0e7e12b5 Add better grouping and chart labeling for dev center analytics 2024-12-29 16:42:31 -08:00
jelveh 4f88ee37de Analytics for apps 😎 2024-12-29 14:55:59 -08:00
Nariman Jelveh 3b7a051d79 Add Ritesh Sahu to SECURITY-ACKNOWLEDGEMENTS.md 2024-12-29 10:24:33 -08:00
jelveh 2bdaac6177 Update fuzz.js 2024-12-28 16:49:26 -08:00
jelveh 14cb77d544 Update fuzz.js 2024-12-28 15:42:40 -08:00
jelveh c58788805d Update dev-center.js 2024-12-28 14:48:01 -08:00
jelveh 3eff05d97d add a little STYLE to analytics 2024-12-27 22:05:15 -08:00
jelveh 116c3d358a add simple analytics tab for Dev Center 2024-12-27 21:52:17 -08:00
jelveh ac8068a139 No need for params when passing params to Apps driver 2024-12-27 18:24:09 -08:00
jelveh d7aa08b345 Revert "if clichouse exists hit it in _refresh_app_stats"
This reverts commit 9867d26432.
2024-12-27 17:53:43 -08:00
jelveh 9867d26432 if clichouse exists hit it in _refresh_app_stats 2024-12-27 17:47:19 -08:00
jelveh 7252d2ef4f Check cache first when returning stats for the all period in the AppInformationService 2024-12-27 17:21:17 -08:00
jelveh 027f52d0fd Update AppInformationService.js 2024-12-27 16:55:31 -08:00
jelveh 9f5a138047 add analytics to the Apps driver 2024-12-27 14:39:51 -08:00
KernelDeimos c3fb0bca41 doc: document how to create a driver 2024-12-27 17:23:30 -05:00
KernelDeimos 396498f88a dev: try a different approach for trigger_download 2024-12-27 15:27:03 -05:00
KernelDeimos 5e844205b3 dev: update/cleanup PerformanceMonitor 2024-12-27 13:15:55 -05:00
KernelDeimos 33d094322f dev: change cache score for fs 2024-12-27 10:58:53 -05:00
jelveh 8daf1a5469 Update keyboard.js 2024-12-26 20:57:40 -08:00
jelveh c58c0facda Update get-launch-apps.js 2024-12-26 20:30:20 -08:00
jelveh 93aa83bdf7 change apps in taskbar and launcher 2024-12-26 20:21:46 -08:00
jelveh 5f5eeb2a06 Use alerts to show error message when signing up temp user 2024-12-26 17:28:46 -08:00
jelveh e74aa13187 Send puter.signup event before signup process starts 2024-12-26 17:14:11 -08:00
jelveh 76654e65de Fix the issue with contextmenu going completely nuts when opened near the right edge of the screen 2024-12-26 13:43:34 -08:00
jelveh 68fb7e8291 Update AppInformationService.js 2024-12-25 18:26:20 -08:00
jelveh e263c2be95 Update AppInformationService.js 2024-12-25 18:21:36 -08:00
jelveh 89eb6a80e1 AppInformationService can now use clickhouse to pull metrics 2024-12-25 17:57:22 -08:00
jelveh 3d32f4123b Send more infor in the puter.app_open event 2024-12-24 22:52:07 -08:00
KernelDeimos efd4730f75 fix: prefix peer addresses with protocol 2024-12-24 16:49:22 -05:00
KernelDeimos d386096467 feat: hash-based distributed cache inval 2024-12-24 16:19:58 -05:00
KernelDeimos eb7494ce55 dev: measure cache rate and fix an edge-case 2024-12-24 14:04:22 -05:00
KernelDeimos 7c29d7c16d dev: smaller readdir app icons 2024-12-24 13:11:39 -05:00
jelveh 0859543ca3 Update TRADEMARK.md 2024-12-23 21:51:15 -08:00
KernelDeimos 498d6ed3d8 clean: remove unnecessary additional method 2024-12-23 15:49:15 -05:00
KernelDeimos 728ecbfb03 fix: clone message object 2024-12-23 15:27:25 -05:00
jelveh 38adf9fce3 Update TRADEMARK.md 2024-12-23 12:13:29 -08:00
KernelDeimos 35cc83a560 dev: filter topic ARNs (and tweaks) 2024-12-23 14:58:39 -05:00
KernelDeimos 5ed2f39ec7 dev: add Amazon SNS integration
There were a few things which made this rather difficult:
- AWS SDK doesn't appear to have a utility to validate message
  signatures.
- The only available node.js module that does this is known to be
  unreliable.
- SNS sends 'text/plain' MIME type even though the data is in JSON
  format, so a middleware had to be added to account for this.
- We don't accept POST requests with no Origin header. Since SNS doesn't
  send the Origin header, an exception had to be made for this.
- The endpoint needs to be public and SNS doesn't seem to have a
  proxying utility for developers such as what Stripe has.
- Because of the above point, debugging time was affected by deployment
  time to the staging server.
2024-12-23 14:53:18 -05:00
KernelDeimos 2dc6c4737b fix: timing for PrefixLogger call to /whoami
This commit fixes the timing of the /whoami call used for the
PrefixLogger (a logger for puter.js that displays app names) to ensure
the API origin and token are available. This is done by waiting for a
service called 'api-access' to be initialized first.

This was discovered while testing changes for /whoami responses that
display icons, because the current behavior breaks the call for
non-puter.com instances.
2024-12-23 11:50:30 -05:00
KernelDeimos cb2653b84d dev: no icons form /whoami calls without icon_size
Calls to `/whoami` generally don't require app icons. Fetching icons of
the smallest size still incurs round-trip latency from the database and
S3, as well as additional delay for any retries due to failed icon
generation.

Although this is technically a regression in `/whoami`, the impact is
localized to Puter's desktop only because apps are not allowed to
receive taskbar icons.
2024-12-23 11:26:44 -05:00
KernelDeimos d1bec45df6 dev: fallback icon read 2024-12-23 10:45:04 -05:00
jelveh 665f5559e1 make email confirmation window responsive 2024-12-23 06:59:09 -08:00
KernelDeimos e56a62c539 fix: try catching icon read errors before stream
Current issue with get-launch-apps wasn't fixed by catching errors while
reading the stream so this next attempt catches errors from the call to
start reading.

If the error occurs asynchronously this may not work either.
2024-12-23 09:50:01 -05:00
jelveh e736e428d6 disable email confirmation digit input while confirming 2024-12-23 06:43:46 -08:00
KernelDeimos ada051b9b8 fix: try catching on stream_to_buffer 2024-12-23 09:40:22 -05:00
jelveh d922c848ce request 64x64 icon sizes when opening apps 2024-12-23 06:17:16 -08:00
Nariman Jelveh eb26eacdc2 Merge pull request #1078 from HeyPuter/revert-1076-patch-1
Revert "Create devcontainer.json"
2024-12-22 12:07:28 -08:00
Nariman Jelveh ce0b4b9394 Revert "Create devcontainer.json" 2024-12-22 12:07:17 -08:00
Nariman Jelveh 613c75f1ed Merge pull request #1076 from akamas/patch-1
Create devcontainer.json
2024-12-22 12:07:09 -08:00
jelveh 6c1226bc8c emit an event when an app is opened 2024-12-21 22:44:20 -08:00
jelveh 55073189bb cleanup 2024-12-21 21:30:32 -08:00
jelveh 0beb442fa6 remove unused imports in helpers.js 2024-12-21 21:10:08 -08:00
jelveh e5f8127e21 Update app.js 2024-12-21 18:40:17 -08:00
KernelDeimos 5d049e8f06 fix: check if row.timestamp is Date 2024-12-21 14:57:37 -05:00
SAnker f4d36a271d Create devcontainer.json 2024-12-21 08:52:16 +01:00
Nariman Jelveh 770b957b42 Merge pull request #1024 from HatemLamia/add-french-translation
feat: Complete the  French (Français) translation of Puter #975
2024-12-20 17:59:24 -08:00
jelveh 76fbe9b4ce request 64x64 icons for Taskbar via /whoami 2024-12-20 14:06:37 -08:00
KernelDeimos e732859ff8 dev: icon_size for taskbar items 2024-12-20 16:39:05 -05:00
jelveh 530db18bae request 64x64 icons for taskbar and launch menu 2024-12-20 13:29:01 -08:00
KernelDeimos ee3f0c6e08 dev: do base64 svg check outside of get-launch-apps 2024-12-20 16:09:49 -05:00
Nariman Jelveh 77db3da1cf Merge pull request #1075 from joswin18/add-malalayalam-translations
Complete Malayalam translation based on English file #754
2024-12-20 12:48:22 -08:00
KernelDeimos df10a7c332 dev: add icon_size query for get-launch-apps 2024-12-20 15:08:10 -05:00
joswin18 3921241c46 Add Malayalam translations for missing keys in ml.js 2024-12-21 01:23:06 +05:30
KernelDeimos f14e1fefcf fix: AppES PD alert
This happened because the return signature of get_app_icon was changed
so that the MIME type can be returned when the uploaded or default icon
is being used as a fallback. AppES was not updated to account for this
change.
2024-12-20 13:56:32 -05:00
KernelDeimos a504c6ba2a perf: optimize recommended apps 2024-12-20 13:16:00 -05:00
KernelDeimos 3da571c39a test: unit-test get-launch-apps 2024-12-20 12:07:34 -05:00
KernelDeimos c6c3844763 chore: update kv.js 2024-12-20 12:07:24 -05:00
KernelDeimos 2a5073687d perf: reorder get-launch-apps behavior
As the recommended app list is hard-coded, these apps should be fetched
first as they don't depend on a database request.
2024-12-20 12:07:24 -05:00
jelveh e6194f028d support icon_size in the apps module of Puter.js and Dev Center 2024-12-20 06:58:02 -08:00
KernelDeimos 648d6e036d fix: fix for previous fix 2024-12-20 09:25:30 -05:00
KernelDeimos 4f3a1618b1 fix: fix fallback icon behavior in get_icon_stream 2024-12-20 09:12:50 -05:00
jelveh b1833ce1d7 close #1073 2024-12-19 19:35:22 -08:00
Hatem Lamia 4a77c93ce6 Merge branch 'main' into add-french-translation 2024-12-19 23:10:22 +01:00
KernelDeimos 9c86614df5 fix: revert test change 2024-12-19 13:22:50 -05:00
KernelDeimos 0d53020739 dev: fix a timestamp bug in old name expiry 2024-12-19 13:22:00 -05:00
KernelDeimos 6d2966f314 dev: AppES predicate transform for old name retry lookup 2024-12-19 13:22:00 -05:00
KernelDeimos c775a2e860 dev: option to follow old app names in get_app 2024-12-19 13:22:00 -05:00
KernelDeimos 0ccb3b2eed dev: track old app names 2024-12-19 13:22:00 -05:00
Nariman Jelveh 40abd568e3 Merge pull request #1067 from bill-c-law/explorer-table-too-wide
Fix explorer table extra white space on right
2024-12-18 16:06:36 -08:00
jelveh 7a98616c86 Restore package-lock.json from master 2024-12-18 15:39:11 -08:00
jelveh 8c9f92cb61 cleanup 2024-12-18 15:31:14 -08:00
KernelDeimos c69006e185 fix: acl check for subdomain on access 2024-12-18 14:51:30 -05:00
KernelDeimos 81ad3243b1 dev: entity storage parameters + app icon size 2024-12-18 14:12:42 -05:00
KernelDeimos f032faa06d dev: add fallback for missing icons 2024-12-18 13:04:52 -05:00
KernelDeimos 7ec6621111 dev: make code more compatible with migration branch 2024-12-18 12:20:47 -05:00
KernelDeimos 90967ab109 dev: add ico support 2024-12-18 12:05:11 -05:00
KernelDeimos 8a3d74d30c dev: add bmp support for app icons 2024-12-18 11:23:04 -05:00
KernelDeimos d67a6f0e0c doc: document and cleanup app icons 2024-12-17 15:17:31 -05:00
KernelDeimos fc87897a3d dev: parallelize app icon generation 2024-12-17 14:56:07 -05:00
KernelDeimos 925ebd5310 fix: attempt fix for prod issue with app icons 2024-12-17 13:51:33 -05:00
bill-c-law c5198a03fe Fix explorer table extra white space on right
Fix explorer table was always too wide with extra white space on right side causing an unnecessary horizontal scrollbar.  Changed width for both the header row and item rows from 100vw to 100%, and added min-width.
2024-12-17 13:25:42 -05:00
KernelDeimos 046ef3cb4f dev: add endpoint to read app icons 2024-12-17 12:57:24 -05:00
KernelDeimos 20d27d59bf dev: create pre-sized icons for apps 2024-12-17 12:57:03 -05:00
jelveh 905be23854 Larger launch icons 2024-12-17 09:17:38 -08:00
jelveh 453b7d9ac9 Enforce taskbar height 2024-12-17 09:13:43 -08:00
Nariman Jelveh 971383ef58 Merge pull request #1065 from bestlaw66/patch-1
Update README.zh.md
2024-12-17 09:01:40 -08:00
KernelDeimos 4a0e4d51b5 git: update .gitignore 2024-12-17 10:27:11 -05:00
KernelDeimos f87769b445 fix: remove redundant notification query 2024-12-17 10:23:20 -05:00
KernelDeimos 2336a62b4f fix: share only emails email_confirmed recipients 2024-12-17 10:00:43 -05:00
jelveh 63efee390a Fix login using QR code 2024-12-17 06:48:40 -08:00
jelveh 47908f01a9 Add that sweet sweet subtle shadow for taskbar 2024-12-16 16:17:35 -08:00
jelveh 3c9a6b9d19 swipe to scroll Explore on mobile 2024-12-16 16:01:43 -08:00
jelveh c9ab994042 Make progress window mobile friendly 2024-12-16 15:30:42 -08:00
jelveh 8019fd6b73 Update style.css 2024-12-16 15:21:17 -08:00
jelveh ec2cb250b8 Update initgui.js 2024-12-16 15:16:04 -08:00
jelveh 35059098c3 Update style.css 2024-12-16 15:08:37 -08:00
jelveh 08d23ffca9 Update style.css 2024-12-16 14:58:03 -08:00
jelveh a06f9c1ec1 Update style.css 2024-12-16 14:52:43 -08:00
jelveh 24ca4e6ad8 Update style.css 2024-12-16 14:44:55 -08:00
jelveh b1c057e3a6 Update style.css 2024-12-16 14:35:15 -08:00
jelveh 276c9aab96 allow smooth swipe-to-scroll on mobile 2024-12-16 14:29:43 -08:00
jelveh 4e964d82ad ok, apple is horrible. 2024-12-16 14:22:10 -08:00
jelveh 1c5d59da79 Update style.css 2024-12-16 14:19:05 -08:00
jelveh 07de2aba30 Update style.css 2024-12-16 14:13:53 -08:00
jelveh ba7247e75d More aggressive measures to disable pinch/pan zoom on touch devices 2024-12-16 14:05:17 -08:00
KernelDeimos fd6f8bf225 perf: single request for gui boot kv keys 2024-12-16 16:54:08 -05:00
KernelDeimos 7ba1b7656b fix: database issue with KBKV update 2024-12-16 16:54:08 -05:00
jelveh 7f036223f6 Update initgui.js 2024-12-16 13:35:18 -08:00
jelveh 380a4b45ef Add user-scalable=no to the desktop 2024-12-16 13:30:16 -08:00
jelveh 89aa02ccec allow web-share in iframes 2024-12-16 12:58:51 -08:00
KernelDeimos 5a68691290 perf: multiple kv keys 2024-12-16 15:38:30 -05:00
jelveh 29d4eefbae Update style.css 2024-12-16 07:25:11 -08:00
jelveh 6014b1ea36 append custom_script_tags_str to the HTML of homepage 2024-12-16 07:09:37 -08:00
jelveh 3d761f008b Emit add_script_tags_to_homepage_html event before building the HTML of homepage 2024-12-16 07:01:44 -08:00
jelveh 556258847a Fix sizing for windows snapping given the new taskbar 2024-12-15 21:49:31 -08:00
jelveh d7c6229aea update search position in both desktop and launcher 2024-12-15 21:39:05 -08:00
jelveh b893a47595 Update style.css 2024-12-15 19:28:46 -08:00
jelveh ab5bc17991 set correct size for home screen on mobile 2024-12-15 19:23:30 -08:00
jelveh 949f97eb2e add mobile responsiveness for otp, login, and password recovery 2024-12-15 17:52:57 -08:00
jelveh 66bcf8a296 Update style.css 2024-12-14 20:55:10 -08:00
jelveh 1266fb8a29 Update style.css 2024-12-14 20:44:20 -08:00
jelveh 37ef58eb04 make Launcher mobile-friendly 2024-12-14 20:32:34 -08:00
jelveh 5ba957b14a add smooth scrolling for mobile taskbar 2024-12-14 19:31:41 -08:00
jelveh a90beab0b1 show all taskbar items on mobile as well. 2024-12-14 19:18:56 -08:00
jelveh cfbf98efdd fix more mobile styles 2024-12-14 17:09:03 -08:00
jelveh 803f54dec2 Update style.css 2024-12-14 16:57:19 -08:00
jelveh 6565c740f3 fix minimize not working on mobile 2024-12-14 16:50:43 -08:00
jelveh 26b046b512 Fix multiple issues with mobile responsiveness 2024-12-14 16:39:12 -08:00
jelveh 1a99581d0e fix minor css issues 2024-12-14 13:39:23 -08:00
jelveh 2061d571b0 fix issue with empty file associations input breaking the save process in Dev Center 2024-12-14 13:26:52 -08:00
jelveh ce36a685fc new taskbar is here! 2024-12-14 10:52:53 -08:00
jelveh 94e7f5deb4 fix: taskbar items of apps should always appear before Trash 2024-12-13 20:42:56 -08:00
jelveh 134f9d2934 Update UIWindowPublishWebsite.js 2024-12-13 19:18:06 -08:00
jelveh 54b93cc349 add a copy button next to App UID in Dev Center 2024-12-13 18:37:43 -08:00
jelveh 65d918866e fix: fullpage mode 2024-12-13 16:10:44 -08:00
KernelDeimos 45f6bc12eb dev: move and simplify writeFile write 2024-12-13 16:49:04 -05:00
KernelDeimos 8045d60e88 clean: cleanup copy and move 2024-12-13 16:04:48 -05:00
KernelDeimos e208b99d21 fix(security): verify dest_node uid matches signature 2024-12-13 15:53:12 -05:00
KernelDeimos e840544ee0 dev: DRY destination node handling 2024-12-13 15:30:55 -05:00
KernelDeimos 6b6c295a87 dev: rewrite and move writeFile rename 2024-12-13 14:49:03 -05:00
KernelDeimos 298609c6e9 fix: bug in writeFile rename 2024-12-13 13:35:55 -05:00
KernelDeimos 96a5c3c213 dev: move and simplify writeFile trash and delete 2024-12-13 13:18:34 -05:00
KernelDeimos d23c33c377 dev: cleanup writeFile: copy, move, mkdir 2024-12-13 12:37:16 -05:00
KernelDeimos 4b3f71b25e dev: migrate listenerutil, remove duplicate 2024-12-13 10:20:31 -05:00
bestlaw66 05a7e28f55 Update README.zh.md
在国内有大部分用户都在使用宝塔面板管理服务器,因此增加使用宝塔面板部署的教程,可视化的部署方式可以帮助用户更加便捷的部署
2024-12-13 12:13:10 +08:00
jelveh c792f4a345 fix: remove unnecessary item_path definition in delete fs api 2024-12-12 18:07:50 -08:00
KernelDeimos 06aeae518b clean: miscellaneous cleanups 2024-12-12 16:42:16 -05:00
KernelDeimos 332939308e clean: remove test functions 2024-12-12 14:47:26 -05:00
KernelDeimos 168dbad295 dev: organize share sequence 2024-12-12 14:47:26 -05:00
KernelDeimos 69e9df1ae2 fix: add missing permissions 2024-12-12 14:46:25 -05:00
Nariman Jelveh b89cd9529d Merge pull request #1063 from charlottekatzmann/patch-1
Update da.js #875
2024-12-12 11:46:49 -08:00
Charlotte Katzmann 46365beb7b Update da.js #875 2024-12-12 20:36:19 +01:00
Nariman Jelveh 54076d9d7f Merge pull request #1060 from biocyberman/translation/danish
Finish Danish translation, resolve issue #875
2024-12-12 11:00:37 -08:00
Nariman Jelveh 0a18cbb19d Merge branch 'main' into translation/danish 2024-12-12 11:00:30 -08:00
Nariman Jelveh 1aaba0016a Merge pull request #1061 from MPiya/#875
#875 Complete the Danish (Dansk) translation of Puter
2024-12-12 10:58:56 -08:00
Nariman Jelveh a879c83369 Merge branch 'main' into #875 2024-12-12 10:58:47 -08:00
Nariman Jelveh 63c5aa2215 Merge pull request #1062 from lauritsbonde/laurits/danish-translation
add missing danish translations
2024-12-12 10:58:20 -08:00
lauritsbonde 5126571217 add missing danish translations 2024-12-12 19:48:34 +01:00
KernelDeimos 651076a39b doc: document permission scanning 2024-12-12 13:47:03 -05:00
Chris fb346807e7 Add Danish missing translation 2024-12-12 19:45:38 +01:00
Vang Le-Quy 78cf0f403f Finish Danish translation, resolve issue #875 2024-12-12 19:41:39 +01:00
KernelDeimos 4e47c8bf9d clean: cleanup utils directory 2024-12-12 13:02:22 -05:00
KernelDeimos d5ecac4d0f dev: update deprecated use of __proto__ 2024-12-12 12:23:58 -05:00
KernelDeimos 951fb32f57 dev: add another response to AIChatService 2024-12-12 10:51:08 -05:00
Nariman Jelveh ee85a6d5e2 Merge pull request #1055 from themermabrouk/feature/issue-#975/finish-French-translations
feature(issue #975) finish French translations
2024-12-12 07:42:58 -08:00
Nariman Jelveh 713226081e Merge branch 'main' into feature/issue-#975/finish-French-translations 2024-12-12 07:42:45 -08:00
Nariman Jelveh 07d8e3b229 Merge pull request #1058 from hexsproductions/update-fr-translation
Add missing French translations (#975)
2024-12-12 07:38:32 -08:00
hexsproductions 52d077cc19 Add missing French translations (#975) 2024-12-12 15:59:55 +01:00
KernelDeimos d4ca9d438c dev: fix issue with prompt validation 2024-12-12 09:51:43 -05:00
Nariman Jelveh 5f37f7f48f Merge pull request #1047 from dev-wonny/#966-korean-translation-update
Complete Korean translation for ko.js (#966)
2024-12-12 06:39:34 -08:00
Nariman Jelveh 4a6dfc31e8 Merge pull request #1057 from HeyPuter/revert-1043-patch-1
Revert "Resolved Issue #965: Completed Kurdish Translations"
2024-12-11 18:47:44 -08:00
Nariman Jelveh 1b71184b13 Revert "Resolved Issue #965: Completed Kurdish Translations" 2024-12-11 18:47:34 -08:00
Nariman Jelveh 3203159f59 Merge pull request #1043 from Abdulbasit0123/patch-1
Resolved Issue #965: Completed Kurdish Translations
2024-12-11 18:47:30 -08:00
Nariman Jelveh 3bd32bb13b Merge branch 'main' into patch-1 2024-12-11 18:46:52 -08:00
jelveh 51ad4e12d4 Update index.html 2024-12-11 18:40:38 -08:00
Nariman Jelveh d570c2fbff Merge pull request #1056 from alizargit/main
Update dev-center.js to improve UX
2024-12-11 18:39:45 -08:00
Ali Z 5412408538 Update dev-center.js 2024-12-11 18:36:13 -08:00
KernelDeimos 6ca701139a fix: logic from previous commit 2024-12-11 20:55:49 -05:00
KernelDeimos c6e814daa8 fix: add fallback moderation in case openai goes down 2024-12-11 20:51:23 -05:00
themer 0efac5c77e feature(issue #975) finish French translations 2024-12-12 00:43:55 +01:00
Nariman Jelveh 97a1616305 Merge pull request #1054 from landof/patch-1
Fix languages orders in translations.js
2024-12-11 15:16:36 -08:00
landof 56a5671488 Fix languages orders in translations.js 2024-12-11 15:06:33 -08:00
KernelDeimos 4ff5bec40e clean: remove spans on deprecated calls 2024-12-11 16:52:14 -05:00
KernelDeimos cbe15a42bd dev: update TelemetryService 2024-12-11 16:36:20 -05:00
KernelDeimos 08dbef7b8c dev: add a feature to hook tracing into context 2024-12-11 16:02:45 -05:00
KernelDeimos c2b094a351 dev: return otel/jaegar tracing to working state 2024-12-11 15:25:55 -05:00
KernelDeimos dac5458b2e dev: migrate DatabaseFSEntryFetcher to puterfs module 2024-12-11 13:35:37 -05:00
KernelDeimos 4e0ce06982 clean: remove unused caching mechanism 2024-12-11 13:35:37 -05:00
KernelDeimos df20cb8e6c clean: filesystem batch 2024-12-11 13:35:16 -05:00
Nariman Jelveh 04cc9c2e05 Merge branch 'main' into #966-korean-translation-update 2024-12-11 09:54:50 -08:00
Nariman Jelveh 658af1fff0 Update ko.js 2024-12-11 09:45:37 -08:00
Nariman Jelveh fb0a091506 Merge pull request #1053 from HeyPuter/revert-1051-fix/stuck-new-app-loading-983
Revert "fix: resolve issue #983 - Stuck on Creating new app loading s…
2024-12-11 09:45:04 -08:00
Nariman Jelveh 51ab24314e Revert "fix: resolve issue #983 - Stuck on Creating new app loading screen" 2024-12-11 09:44:31 -08:00
Nariman Jelveh f800cf2dc9 Merge pull request #1051 from mariatouil/fix/stuck-new-app-loading-983
fix: resolve issue #983 - Stuck on Creating new app loading screen
2024-12-11 09:44:27 -08:00
Nariman Jelveh 040a6a7513 Merge pull request #1052 from vasarmilan/feature-hun-translation
Add Hungarian translations
2024-12-11 09:43:42 -08:00
Nariman Jelveh 653f493d27 Merge branch 'main' into feature-hun-translation 2024-12-11 09:43:30 -08:00
Nariman Jelveh 5422a239e4 Merge pull request #1048 from phellinger/hungarian-translation-update-#972
Complete Hungarian translation of Puter #972
2024-12-11 09:41:30 -08:00
vasarmilan e148bcb909 Add Hungarian translations 2024-12-11 18:00:57 +01:00
KernelDeimos ed48a16ced clean: remove newly-unused imports 2024-12-11 12:00:42 -05:00
KernelDeimos 4d9cc9bd83 fix: permission strings for ES services 2024-12-11 11:25:29 -05:00
Nariman Jelveh 2cf959dc2c Merge pull request #1046 from nicola-laura/korean-translation
Korean translation improvement (#966)
2024-12-11 08:24:07 -08:00
Nariman Jelveh 74d95aa366 Update ko.js 2024-12-11 08:21:47 -08:00
Nariman Jelveh 530b7ac647 Merge pull request #1044 from ismailix/965
kurdish translate ismailix
2024-12-11 08:20:43 -08:00
Nariman Jelveh 13518d0ff6 Update ku.js 2024-12-11 08:20:24 -08:00
maria touilzak c75c9d0383 fix: resolve issue #983 - Stuck on Creating new app loading screen 2024-12-11 16:56:21 +01:00
maria touilzak 96c7576607 Fix: drag-and-drop issue: files not appearing on desktop automatically 2024-12-11 15:34:05 +01:00
phellinger 7d2787d26b feat: complete Hungarian translation of Puter #972 2024-12-11 13:08:01 +01:00
“devwonny” ca3d669a10 Complete Korean translation for ko.js (#966)
Complete Korean translation for ko.js (#966)
https://github.com/HeyPuter/puter/issues/966
2024-12-11 19:44:48 +09:00
Nicola fefc4ac304 added missing translations and suggested improvements to existing translations (#966) 2024-12-11 17:56:14 +09:00
Nariman Jelveh 5889e4c25c Merge pull request #1045 from rdsingh120/main
Added Spanish translations for all the missing translations.
2024-12-10 19:07:21 -08:00
Ripudaman Singh 4b454a8706 Added Spanish translations for all the missing translations. 2024-12-10 20:38:47 -05:00
jelveh df34ee048a fix bug with 'Show All' in taskbar items 2024-12-10 17:04:33 -08:00
KernelDeimos 1dc2a6af81 dev: simplify get-launch-apps 2024-12-10 17:10:53 -05:00
KernelDeimos 1beda5b23d clean: cleanup filesystem routes 2024-12-10 16:40:38 -05:00
KernelDeimos cd7755da6b clean: misc cleanups 2024-12-10 15:58:22 -05:00
KernelDeimos ff62d9009e refactor: allow service-specific API errors to be registered 2024-12-10 15:23:54 -05:00
igorunmek af3b6fd152 kurdish translate upwork ismailix 2024-12-10 22:41:27 +03:00
KernelDeimos 8557c54527 clean: cleanup log outputs 2024-12-10 14:19:01 -05:00
KernelDeimos 1b578019f9 fix: provide actor context to ws event 2024-12-10 14:06:14 -05:00
KernelDeimos 96008233ba fix: context error in user connected event 2024-12-10 13:45:31 -05:00
KernelDeimos 6bb9437268 clean: remove legacy driver support 2024-12-10 13:18:42 -05:00
KernelDeimos b9d53b77a2 refactor: migrate kv driver invocation 2024-12-10 12:54:13 -05:00
KernelDeimos 2fcc257ae1 refactor: migrate entity storage driver invocation 2024-12-10 11:40:49 -05:00
KernelDeimos 193833f4f9 clean: remove legacy driver module 2024-12-10 10:38:40 -05:00
Ken 9965f219d8 refactor: adjust max_tokens for specific models
fix: fix issue when there is an assistant role
2024-12-10 09:17:16 -05:00
KernelDeimos 01395f302e fix: signup 500 for temp user 2024-12-10 09:09:25 -05:00
Nariman Jelveh 192958e88b Merge pull request #1042 from saud-saeed/main
Update Swedish translations in sv.js
2024-12-10 05:44:27 -08:00
Nariman Jelveh 62f4318914 Update sv.js 2024-12-10 05:44:14 -08:00
Abdulbasit 9d97ee849d Resolved issue #965, completed Kurdish translations
I completed the translation for Kurdish and fixed some typos of the already translated phrases and sentences.
2024-12-10 13:42:38 +03:00
Saud Saeed 84c1efbf5f Update Swedish translations in sv.js
fix: Resolve issue #960 by adding missing Swedish (Svenska) translations
2024-12-10 11:21:18 +01:00
Nariman Jelveh 56f57e4ab9 Merge pull request #1039 from Agastya18/feat/add-Escape-key
feat: add Escape key functionality to UIPrompt for closing the prompt
2024-12-09 23:08:54 -08:00
Nariman Jelveh 13c34211ed Merge pull request #1040 from twuttiwat/patch-1
Add missing Thai translations in th.js
2024-12-09 22:04:28 -08:00
Nariman Jelveh cf845d3ac1 Update th.js 2024-12-09 22:03:45 -08:00
Teerawat Wuttiwat 529c5376e4 Add missing Thai translations in th.js 2024-12-10 11:58:01 +07:00
agastya gaur e1b6c83813 feat: add Escape key functionality to UIPrompt for closing the prompt 2024-12-10 08:26:55 +05:30
Nariman Jelveh dd43c0acfa Merge pull request #1038 from Exclusiveideas/igbo-translation-updates
fixed "Complete the Igbo translation of Puter #969" issue
2024-12-09 18:43:42 -08:00
Nariman Jelveh bc30012087 Merge branch 'main' into igbo-translation-updates 2024-12-09 18:43:31 -08:00
Exclusiveideas cb7d4eaaf9 fixed "Complete the Igbo translation of Puter #969" issue 2024-12-10 03:31:48 +01:00
jelveh f2e2473a7d Create TRADEMARK.md 2024-12-09 18:24:51 -08:00
jelveh 6eec8a821b Merge branch 'main' of https://github.com/heyputer/puter 2024-12-09 18:19:30 -08:00
jelveh 7aa056f1e3 remove Missing translations comment from ig.js 2024-12-09 16:50:52 -08:00
Nariman Jelveh cd472f30e7 Merge pull request #1036 from HeyPuter/revert-1035-main
Revert "Update missing translations for Igbo"
2024-12-09 16:45:03 -08:00
Nariman Jelveh b04b09042e Revert "Update missing translations for Igbo" 2024-12-09 16:44:23 -08:00
Nariman Jelveh 6dfa795423 Merge pull request #1035 from Nathaniyell/main
Update missing translations for Igbo
2024-12-09 16:44:00 -08:00
Nariman Jelveh 49d7ad8eaa Update ig.js 2024-12-09 16:41:37 -08:00
Nathaniel Essien 803377868c Merge branch 'main' into main 2024-12-10 01:38:57 +01:00
Nariman Jelveh 444950ef8d Merge pull request #1034 from Victor-Evogor/main
Complete Igbo translations for missing keys (#969)
2024-12-09 16:37:17 -08:00
Nathaniyell 6f4d57a3c6 fix: correct Igbo translation for "Free" in billing terms 2024-12-10 01:36:05 +01:00
Nathaniyell f0f19e727e feat: add missing Igbo translations for billing-related terms 2024-12-10 01:35:24 +01:00
Victor Evogor 6b15eaed1c Complete Igbo translations for missing keys (#969) 2024-12-10 01:16:57 +01:00
KernelDeimos acf8ae302e fix: bad import for TeePromise 2024-12-09 18:03:45 -05:00
KernelDeimos 7acb096add fix: sorting bug in AIChatService 2024-12-09 16:31:53 -05:00
KernelDeimos 0f2641b88f clean: remove some unused code/comments 2024-12-09 16:31:53 -05:00
Nguyễn Tuấn Anh b2ea8a3888 feat: set max token to 8096 2024-12-09 16:31:36 -05:00
KernelDeimos 6c0f04706d move: MountpointService 2024-12-09 16:03:18 -05:00
KernelDeimos 4917848c60 refactor: move SizeService and DRY capacity usage
This commit also fixes a but that was discovered in calculating the size
of files during a copy operation.
2024-12-09 15:50:44 -05:00
KernelDeimos db00f0ae67 dev: cleanup filesystem utilities 2024-12-09 14:42:14 -05:00
KernelDeimos 3f5bc7163f dev: cleanup config.js 2024-12-09 14:08:46 -05:00
KernelDeimos 537d0d47ec dev: cleanup RuntimeEnvironment.js 2024-12-09 13:49:40 -05:00
KernelDeimos 7839d52925 dev: address TODO comment in Kernel.js 2024-12-09 13:14:10 -05:00
KernelDeimos c36dd1b3d3 refactor: extension loading 2024-12-09 12:05:23 -05:00
KernelDeimos 070937c7e6 clean: remove some unused vars 2024-12-09 12:05:23 -05:00
KernelDeimos 7af8afb053 refactor: address TODO; de-couple some services from FilesystemService 2024-12-09 12:05:11 -05:00
Nariman Jelveh bec3a28d33 Merge pull request #1028 from loismbferraz/issue-963-complete-portuguese-translation
portuguese translations for #963 issue added
2024-12-09 08:41:22 -08:00
loismbferraz c614b8a789 portuguese translations for #963 issue added 2024-12-09 16:23:38 +00:00
Nariman Jelveh 4c3a053a0a Merge pull request #1026 from nathnapa88/patch-1
Update th.js
2024-12-09 07:58:49 -08:00
nathnapa88 0a746f1e32 Update th.js 2024-12-09 15:42:10 +00:00
Nariman Jelveh d075718bf2 Merge pull request #1025 from hoursing/main
feat: Complete the Vietnamese translation of Puter #954
2024-12-09 06:37:07 -08:00
Nariman Jelveh c7e0ce6dd1 Merge branch 'main' into main 2024-12-09 06:36:55 -08:00
Nariman Jelveh 333f0ea42f Merge pull request #1023 from lephuongnam22/main
(#954) Add Vietnamese translations for billing-related terms
2024-12-09 06:21:16 -08:00
Nariman Jelveh 4643e8a523 Merge branch 'main' into main 2024-12-09 06:21:07 -08:00
Nariman Jelveh 25d3bac454 Merge pull request #1021 from vulct174/main
feat: add Vietnamese translations for billing in vi.js
2024-12-09 06:18:25 -08:00
Nariman Jelveh 0197e1489c Merge branch 'main' into main 2024-12-09 06:18:16 -08:00
Nariman Jelveh a1858fb495 Merge pull request #1020 from lvluu/feature/issue-954
feat: (#954) Add Vietnamese translations for billing-related terms
2024-12-09 06:14:06 -08:00
Nariman Jelveh 6890935d01 Update vi.js 2024-12-09 06:13:43 -08:00
hoursing 56489c33f6 feat: Complete the Vietnamese translation of Puter #954 2024-12-09 17:33:28 +07:00
lamia c840bc8161 feat: Complete the French (Français) translation of Puter #975 2024-12-09 09:49:41 +01:00
Nam Le ba876745b3 Update translation 2024-12-09 19:04:58 +11:00
Nam Le bbd0183320 Update text translation 2024-12-09 18:59:16 +11:00
Nariman Jelveh 4477f8f6e8 Merge pull request #1022 from akuumaa/issue-952
feat: Complete the German (Deutsch) translation of Puter #952
2024-12-08 23:20:20 -08:00
Nam Le 2dfc58fc2d (#954) Add Vietnamese translations for billing-related terms 2024-12-09 18:13:15 +11:00
akuumaa 05fef6749e feat: Complete the German (Deutsch) translation of Puter 2024-12-09 07:17:31 +01:00
lvluu 267a55aae5 feat: (#954) Add Vietnamese translations for billing-related terms 2024-12-09 12:59:38 +07:00
VuLCT 3e26dbe6a0 feat: add vietnamese translations for billing in vi.js 2024-12-09 12:42:18 +07:00
Nariman Jelveh d98b6e385c Merge pull request #1010 from cprogrammer1209/PUTER-ta-dec8
Added to new Tamil Words to the ta.js file.
2024-12-08 20:14:46 -08:00
Nariman Jelveh 9104ac0bd9 Merge pull request #1019 from Elisassa/update-zhTW-translation
Added Traditional Chinese translations
2024-12-08 17:27:44 -08:00
Nariman Jelveh fc09a26277 Update zhtw.js 2024-12-08 17:27:29 -08:00
Elisassa 35f2a4f594 Added Traditional Chinese translations 2024-12-08 19:35:55 -05:00
Nariman Jelveh a16fd36ad3 Merge pull request #1018 from dmytro-nesteruk/main
tweak: update ua translations;
2024-12-08 15:50:55 -08:00
Nariman Jelveh 3ad7c8437f Merge pull request #1017 from RamiIbrahim2002/arabic-translation-issue-948
Update Arabic translations for issue #948
2024-12-08 15:49:23 -08:00
Nariman Jelveh 80e4d040c7 Merge branch 'main' into arabic-translation-issue-948 2024-12-08 15:49:01 -08:00
Nariman Jelveh 89819204c1 Merge pull request #1016 from hasanayoub/fix-ar-translation_issue_948
Completed Arabic translations for issue #948
2024-12-08 15:46:03 -08:00
jelveh 320278dfdf Update ar.js 2024-12-08 15:45:19 -08:00
Nariman Jelveh 183b8105f9 Update ar.js 2024-12-08 15:19:52 -08:00
Dmytro Nesteruk 118605f054 tweak: updated ua translations; 2024-12-09 00:34:55 +02:00
Dmytro Nesteruk 208a38603d tweak: update ua translations; 2024-12-08 23:17:35 +02:00
hasanayoub 4c1b78f73b Completed Arabic translations for issue #948 2024-12-09 00:11:59 +03:00
RamiIbrahim2002 3f0f3dab51 Update Arabic translations for issue #948 2024-12-08 22:07:51 +01:00
Nariman Jelveh 974feeade3 Merge pull request #1015 from nafisa45/main
Add Bengali translations for billing module strings
2024-12-08 13:00:09 -08:00
Nariman Jelveh 05ecd2547b Update bn.js 2024-12-08 12:59:23 -08:00
nafisa45 de6e5ddb25 I have updated the undefined part of the translation with the intact %strong% and (%%) 2024-12-09 01:32:19 -05:00
Nariman Jelveh c4931c30ee Merge pull request #1014 from gwyneblaidd/main
Complete the Ukrainian (Українська) translation of Puter · Issue #956 · HeyPuter/puter
2024-12-08 12:39:03 -08:00
jelveh ceaf6cb24a Update ua.js 2024-12-08 12:38:38 -08:00
gwyneblaidd 2bbf11f91b Update ua.js 2024-12-08 22:31:59 +02:00
gwyneblaidd 255f102d16 Update ua.js 2024-12-08 22:24:18 +02:00
Nariman Jelveh e7f3ac6fa8 Merge pull request #1013 from CriDM/add-italian-translations
Added missing Italian translations (#968)
2024-12-08 11:49:59 -08:00
Nariman Jelveh badd4c218e Merge branch 'main' into add-italian-translations 2024-12-08 11:48:32 -08:00
Nariman Jelveh 7e1766bbdc Merge pull request #1012 from danielpetrica/patch-2
Update it.js
2024-12-08 11:47:46 -08:00
Nariman Jelveh 77c7d347a4 Update it.js 2024-12-08 11:47:15 -08:00
Daniel, Petrica Andrei-Daniel 5d8854f628 Update it.js 2024-12-08 20:39:36 +01:00
CriDM c6fa98b3b7 Added missing Italian translations (#968) 2024-12-08 20:35:56 +01:00
Nariman Jelveh 996c8097b7 Merge pull request #1011 from HeyPuter/revert-1009-warning_dialog
Revert "Created test cases for issue #878 "
2024-12-08 11:32:04 -08:00
Nariman Jelveh 40ea2a3f02 Revert "Created test cases for issue #878 " 2024-12-08 11:31:47 -08:00
Nariman Jelveh 575b4bd34c Merge pull request #1009 from LeeMEow23/warning_dialog
Created test cases for issue #878
2024-12-08 11:31:42 -08:00
Nariman Jelveh c8894c7d4c Merge branch 'main' into warning_dialog 2024-12-08 11:29:52 -08:00
root 019a8c1d93 Added to new Tamil Words 2024-12-08 23:30:21 +05:30
e5z26 2ca1f71595 removed jsdom in test file
removed because wasn't being used
2024-12-07 19:09:22 -05:00
Nariman Jelveh 4c5f427ac2 Merge pull request #1008 from HeyPuter/revert-1007-patch-1
Revert "Update id.js"
2024-12-07 11:46:15 -08:00
Nariman Jelveh e6a171e8f1 Revert "Update id.js" 2024-12-07 11:46:05 -08:00
Nariman Jelveh 777ac3a8ca Merge pull request #1007 from zefta27/patch-1
Update id.js
2024-12-07 11:45:36 -08:00
Nariman Jelveh f97394ded1 Merge branch 'main' into patch-1 2024-12-07 11:45:17 -08:00
Nariman Jelveh 0b71e2a723 Merge pull request #1004 from wildanhkm/wildanhkm/feat/id-translations
update id translations
2024-12-07 11:21:23 -08:00
Nariman Jelveh 8fc570d076 Merge branch 'main' into wildanhkm/feat/id-translations 2024-12-07 11:21:15 -08:00
Nariman Jelveh e030cd3d03 Merge pull request #1006 from arrafi-ahmed/issue-970
Fix issue #970
2024-12-07 10:34:01 -08:00
Nariman Jelveh e9ac20b8b0 Update id.js 2024-12-07 10:30:28 -08:00
Nariman Jelveh aa82e06e14 Merge pull request #1005 from arthur-adriansens/main
Close apps by clicking on icons (issue #944) + awesome animations!
2024-12-07 10:27:11 -08:00
jelveh 383b4841ae fix the issue with windows losing focus right after they're opened 2024-12-07 10:16:25 -08:00
Zefta Adetya b3426b52d1 Update id.js
Replacing undefined text
2024-12-08 00:37:18 +07:00
raf 34ab6dbdff Fix issue #970: [updated undefined values for bahasa translation] 2024-12-07 23:47:58 +07:00
wildanhkm 1d6bc54ae6 update id translations 2024-12-07 23:20:47 +07:00
Arthur 6a2f5f0eee Added sattisfying taskbar icon animation 2024-12-07 16:20:22 +00:00
Arthur 90b7e449b7 Added "Toggling apps to minimize once it clicked" #944 feature 2024-12-07 15:46:01 +00:00
Nariman Jelveh 8ea6ac1b48 Merge pull request #1003 from sumi1239/feature/kr-translations
feat: added a few Korean translatations
2024-12-06 17:52:33 -08:00
William Shiozawa b23e800f4e feat: added a few Korean translatations 2024-12-06 17:36:21 -08:00
jelveh 71bb8ba881 remove "Missing translations" comment from Hebrew i18n file. 2024-12-06 14:09:32 -08:00
KernelDeimos b34b8efea9 clean: remove some unused variables 2024-12-06 17:03:16 -05:00
KernelDeimos cb4bcba7ec clean: cleanup helpers.js 2024-12-06 17:03:16 -05:00
KernelDeimos 7db3be5716 clean: remove unused variables in filesystem 2024-12-06 17:03:16 -05:00
Nariman Jelveh f93a754273 Merge pull request #1002 from Tristramit/Tristramit-patch-1
Update he.js
2024-12-06 14:02:50 -08:00
KernelDeimos c566d48433 clean: fix errors found by find-unused-exports 2024-12-06 15:40:59 -05:00
Amos Weislib 197be1c0bc Update he.js
Few corrections
2024-12-06 21:36:58 +01:00
KernelDeimos 7232406680 clean: remove unused imports from phoenix 2024-12-06 15:28:07 -05:00
jelveh 87f4f3d2dd fix unmatched double quote 2024-12-06 12:23:52 -08:00
KernelDeimos c87db23faa refactor: combine parsely and strataparse into @heyputer/parsers 2024-12-06 15:08:23 -05:00
KernelDeimos 62a010b1b2 doc: clarify the distinction between CoreModule and Core2Module 2024-12-06 13:05:03 -05:00
KernelDeimos 73f738c9d9 doc: add more extensions documentation 2024-12-06 13:05:03 -05:00
KernelDeimos 1679648780 doc: document the test kernel 2024-12-06 13:05:03 -05:00
KernelDeimos 1e0fb1c3c5 doc: document kernel behavior 2024-12-06 13:05:03 -05:00
KernelDeimos 9aeecb650a doc: generate and edit comments for tools 2024-12-06 13:05:03 -05:00
Amos Weislib 299a88103e Update he.js
referencing issue
#974
2024-12-06 19:05:00 +01:00
Nariman Jelveh c6455d53e4 Merge pull request #1001 from HeorhiiPavlovskyi/Issue-961
Issue #961, filled missing translations, Updating ru.js
2024-12-06 09:59:44 -08:00
Nariman Jelveh 0935c56842 Update ru.js 2024-12-06 09:58:01 -08:00
unknown 9d91649ca1 Update ru.js 2024-12-06 19:48:47 +02:00
KernelDeimos 545e7db5bd fix: test issues from contextlink removal
Apparently there were two things:
- had to remove contextlink from the test command (that was expected)
- can't import libs from putility in the test environment. The error
  produced for this doesn't really explain why.
2024-12-06 12:09:23 -05:00
Nariman Jelveh fad2c944ab Merge pull request #999 from JJooaa/finnish-translations
Fixes issue [#976]: Add missing Finnish translations.
2024-12-06 08:59:52 -08:00
Nariman Jelveh 741d8f0bb4 Update fi.js 2024-12-06 08:46:41 -08:00
KernelDeimos 2c24fe5532 doc: document tools directory (README.md) 2024-12-06 11:39:07 -05:00
KernelDeimos d1e8d51173 clean: remove contextlink
Updates references in phoenix shell to use context from putility.
2024-12-06 11:17:14 -05:00
Justin Oeni 540132cc71 Added two files to test hasGitDirectory and showGitWarningDialog 2024-12-06 10:42:44 -05:00
KernelDeimos 72c496df4b clean: remove early typescript trial 2024-12-06 10:38:55 -05:00
JJooaa 6abbf8440b update: add missing finnish translations 2024-12-06 16:55:05 +08:00
Nariman Jelveh 7f37c42219 Merge pull request #997 from bertsrl/patch-1
Update ro.js
2024-12-05 23:53:24 -08:00
Nariman Jelveh 50a2f3d275 Merge pull request #998 from smikayel/improvement/Armenian_localozation
add translation for missing sentancies
2024-12-05 23:46:26 -08:00
Nariman Jelveh e2fbe80cce Merge pull request #995 from kirney23/main
japanese translations
2024-12-05 23:44:41 -08:00
Nariman Jelveh 1e573b654a Merge branch 'main' into main 2024-12-05 23:44:23 -08:00
Nariman Jelveh aa00830168 Merge pull request #996 from hutajoullach/main
Japanese translation issue number 967
2024-12-05 23:40:19 -08:00
smikayel d6e20dcb20 add translation for missing sentancies 2024-12-06 11:39:09 +04:00
Berty 76308479c6 Update ro.js
Updated the romanian translations.

I kept the terms "Professional" and "Business" in English as they are commonly used this way in Romanian in IT services context

I adapted the forms of address to second person singular ("tu") instead of formal ("dumneavoastră") to maintain a friendly and modern tone

I maintained consistency with existing translations in the file
Placeholders (%strong%, %%) were kept in grammatically correct positions for Romanian language
2024-12-06 09:36:50 +02:00
HutaJoullach 0ed5aaed2c japanese-translation-issue-number-967 2024-12-06 16:24:14 +09:00
kirney23 b3ce0e93fb Update ja.js 2024-12-06 11:38:53 +09:00
Nariman Jelveh 984b5d617d Merge pull request #994 from samueldev900/samueldev900_brazillian_translation
feat: add brazillian translations for billing-related terms in br.js
2024-12-05 15:43:32 -08:00
Nariman Jelveh b41e8b09ad Update br.js 2024-12-05 15:40:32 -08:00
Samuel Oliveira fdfc90a931 feat: add brazillian translations for billing-related terms in br.js (revision) 2024-12-05 20:29:37 -03:00
Samuel Oliveira e66df14862 feat: add brazillian translations for billing-related terms in br.js 2024-12-05 20:18:41 -03:00
KernelDeimos e301247bfc dev: add an example module and service 2024-12-05 16:58:15 -05:00
KernelDeimos 82457fbc9f doc: document smol (SmolUtil) lib 2024-12-05 16:16:44 -05:00
KernelDeimos 7de23ce68d move: SmolUtil and ServerHealthService 2024-12-05 16:16:44 -05:00
Nariman Jelveh f9c6f82440 Merge pull request #993 from paulinek13/polish-translation
sync(i18n): add Polish translations for billing-related terms
2024-12-05 12:55:17 -08:00
Paulina Kalicka 15f9aded26 sync(i18n): add Polish translations for billing-related terms 2024-12-05 21:18:20 +01:00
KernelDeimos 09b0d744d5 clean: remove redundant promise.js 2024-12-05 15:08:33 -05:00
KernelDeimos 86a9c959e0 doc: document commonly-used putility libraries 2024-12-05 14:36:34 -05:00
KernelDeimos 58dea19cd9 move strutil and time.js to putility 2024-12-05 14:00:21 -05:00
KernelDeimos e279dc6e5f fix: add missing import 2024-12-05 13:56:08 -05:00
KernelDeimos 7424fd888d doc: update and generate docs 2024-12-05 13:29:10 -05:00
KernelDeimos 3df5f649a4 dev: migrate ExpectationService and PagerService 2024-12-05 13:20:06 -05:00
KernelDeimos a2072c5fac doc: move/clean ErrorService
Some documentation comments were missing or inaccurate so these were
also edited after moving.
2024-12-05 12:10:07 -05:00
KernelDeimos e5a7d1c1bb doc: edit/generate CoreModule2 docs 2024-12-05 12:10:07 -05:00
Nariman Jelveh f1ece26418 Merge pull request #990 from ICODER32/patch-1
Update ur.js
2024-12-05 08:59:03 -08:00
Nariman Jelveh f17a53018b Update ur.js 2024-12-05 08:57:31 -08:00
Nariman Jelveh a6b86c5947 Merge pull request #989 from arthur-adriansens/dutch
Added new Dutch translation
2024-12-05 08:56:16 -08:00
KernelDeimos 036016b20b dev: move/clean AlarmService and related utils 2024-12-05 11:41:41 -05:00
M Ibtisam Anwar d9a08de959 Update ur.js
Updated undefined urdu translations
2024-12-05 21:09:21 +05:00
Arthur f1d9ac5208 changed to single quotes 2024-12-05 16:41:38 +01:00
Arthur 18784b2677 completed Dutch translation #979 2024-12-05 16:33:03 +01:00
KernelDeimos 13a895b76b fix: fake_chat default model and usage errors 2024-12-05 09:34:51 -05:00
KernelDeimos 1e2f9df110 doc: remove comment error 2024-12-05 09:14:30 -05:00
Nariman Jelveh 9ddaab3010 Merge pull request #981 from rowin-C/filetype-association
feat: added tagify in Filetype-Association input in dev center
2024-12-04 18:13:46 -08:00
KernelDeimos a1c2226561 fix: update test kernel 2024-12-04 20:40:42 -05:00
Nariman Jelveh 223802f631 Merge pull request #986 from githubalexliu/translate_zh
Translated to Chinese
2024-12-04 16:53:10 -08:00
Nariman Jelveh 4653273d9a Update zh.js 2024-12-04 16:51:29 -08:00
githubalexliu c1aa637005 Translated to Chinese 2024-12-04 19:26:32 -05:00
jelveh 591cf0f45e tweak for fluid ux 2024-12-04 16:22:06 -08:00
jelveh 12ca609046 invalidate user cache when hitting /get-dev-profile 2024-12-04 15:13:54 -08:00
KernelDeimos 169c1aa3a7 doc: generate puterai docs and is a docgen bug 2024-12-04 16:58:45 -05:00
KernelDeimos 8848055f1b doc: update CONTRIBUTING.md 2024-12-04 16:33:45 -05:00
KernelDeimos 9992252083 doc: add file structure image 2024-12-04 16:32:30 -05:00
KernelDeimos 7eb5e59d94 dev: move some utils, LogService, to new module 2024-12-04 14:45:42 -05:00
KernelDeimos 5c3a65060d dev: include library functions in module docgen 2024-12-04 14:42:22 -05:00
KernelDeimos 5fa0a0263d dev: cleanup docgen and add method logging 2024-12-04 14:42:22 -05:00
KernelDeimos 0b36e72c80 doc: re-comment LogService 2024-12-04 14:42:22 -05:00
KernelDeimos 2453baa234 dev: make a module where utilities will go 2024-12-04 14:42:22 -05:00
Nariman Jelveh 5e7ea5f3b0 Merge pull request #985 from Agastya18/farsi-translation
Translate billing-related strings to Persian in fa.js
2024-12-04 10:20:35 -08:00
Nariman Jelveh a99ee51b00 Update fa.js 2024-12-04 10:19:09 -08:00
agastya gaur e395571256 Translate billing-related strings to Persian in fa.js 2024-12-04 22:32:45 +05:30
KernelDeimos 9e5429b9ab dev: improve module docgen
- fixes some bugs
- adds list of relative requires
2024-12-04 10:43:49 -05:00
jelveh b2dae896e6 expand support for more filestypes 2024-12-04 07:17:06 -08:00
Nariman Jelveh c0257c482f Merge pull request #982 from rowin-C/hindi-translation
tweak: added missing hindi translation
2024-12-04 07:00:23 -08:00
Nariman Jelveh cc7683a7fe Update hi.js 2024-12-04 06:59:59 -08:00
Nariman Jelveh b6e4f518fd Merge pull request #984 from ulaski/add-missing-turkish-translations
Add missing turkish translations
2024-12-04 06:53:04 -08:00
Nariman Jelveh 8cfefebfb6 Update tr.js 2024-12-04 06:52:36 -08:00
Ulas Kilicaslan e2f603d792 Add missing turkish translations 2024-12-04 15:12:25 +03:00
ron 4f82658d94 tweak: added missing hindi translation 2024-12-04 14:26:04 +05:30
ron 0cd1f151b5 feat: added tagify in Filetype-Association input in dev center 2024-12-04 12:35:36 +05:30
Nariman Jelveh 70c2fd6ee5 Merge pull request #980 from LeeMEow23/warning_dialog
Added the warning dialog
2024-12-03 19:17:32 -08:00
jelveh 59ac89db85 handle the return value of skipWarning 2024-12-03 19:10:14 -08:00
jelveh b4938659d1 disable copy/paste from local environment.
It never worked and has ruined the experience with regular copy/paste on Puter
2024-12-03 18:58:22 -08:00
Your Name 5302d3a62e Added the warning dialog
If the system detects any sensitive files, it will pop up the dialog showing the warning and provide the user with options of continuing or not.
2024-12-03 18:08:08 -05:00
jelveh 02e62f1625 wake up babe new i18n keys dropped 2024-12-03 14:18:19 -08:00
KernelDeimos c1bcd84715 chore: update package-lock.json 2024-12-03 17:07:37 -05:00
KernelDeimos 67ab8a1710 doc: first run of module documenter 2024-12-03 17:07:37 -05:00
KernelDeimos ac372204fa dev: move web service utilities 2024-12-03 17:07:37 -05:00
KernelDeimos 1922feab1e dev: add module documentation generator 2024-12-03 17:07:37 -05:00
Nariman Jelveh 46263cc1ad Update #DoesItRunPuter.md 2024-12-03 12:05:19 -08:00
KernelDeimos 10f6e5458e refactor: move WebServerService and socketio to module 2024-12-03 14:19:26 -05:00
KernelDeimos 3887ce05da dev: de-couple legacy mkdir and remove it
A legacy mkdir function was still being used by the
generate_system_fsentries function. However, it wasn't necessary because
we now associate fsentries by uuid, eliminating the requirement to
create the home directory separately from its subdirectories.

The old mkdir function was removed, and generate_system_fsentries was
moved to a new service called UserService, which is intended to
eventually hold all methods related creating, removing, and updating
users.
2024-12-03 13:04:12 -05:00
KernelDeimos 87db20de14 dev: add user.email-changed event 2024-12-03 10:05:24 -05:00
Nariman Jelveh e8d4408dca Revert "File association format (#946)" (#947)
This reverts commit f0d1de7e44.
2024-12-03 06:43:40 -08:00
Sauhbagya Prasad f0d1de7e44 File association format (#946)
* added validation function

* tagify implementation (incomplete)

* tagify implementation (completed)

* feat:implemented Tagify and filetype validation on filetype associaction in dev center

* tweak: removed unnessary tagify from dependency (its streamed from CDN)

* removed unnecessary tagify import
2024-12-03 06:43:16 -08:00
KernelDeimos 614f065e17 tweak: disable 4o-mini and mistral in comment writer 2024-12-02 12:18:46 -05:00
KernelDeimos b40d4534a7 fix: correct AI comment faults
Currently the AI comment writer is trusting the AI to write comment
markers. This means sometimes the syntax of a source file is broken by
comment generation. The instructions in the prompt were pretty clear, so
rather than --fixup'ing the previous commit I'm adding these changes
separately as an interesting case study of how different models behave.

Following this result, I am going to be removing mistral from the
comment writer. It is the most likely to misbehave.

I will also be removing gpt-4o-mini, which sometimes included source
lines despite the "no surrounding text" instruction.
2024-12-02 12:05:13 -05:00
KernelDeimos f75010b355 doc: (skip if using git bisect) ai comments 2024-12-02 11:47:47 -05:00
KernelDeimos 0a1be464d1 tweak: fix "all" option 2024-12-02 11:45:13 -05:00
KernelDeimos aadb261b29 dev: interactive prompt for file limit 2024-12-02 11:09:50 -05:00
KernelDeimos ac44aaf393 doc: make comment writer self-commented 2024-12-02 11:01:23 -05:00
KernelDeimos 7e4ae19aff dev: tweak comment writer to fix some problems 2024-12-02 11:00:50 -05:00
KernelDeimos 857718538b fix: update package-lock.json 2024-12-02 10:26:52 -05:00
KernelDeimos 7a8687cd2c doc: ai generated comments 2024-12-02 10:26:52 -05:00
KernelDeimos 2dfeeeda27 dev: update comment generator 2024-12-02 10:22:58 -05:00
Nariman Jelveh 67ee264239 Merge pull request #945 from MherFrangyan/patch-1
Update hy.js
2024-12-01 22:30:05 -08:00
jelveh 40dccb7741 Update en.js 2024-12-01 22:27:40 -08:00
Mher 1d217e2d59 Update hy.js
added translate
2024-12-02 10:24:09 +04:00
jelveh 6e6bd34463 Update en.js 2024-12-01 22:09:39 -08:00
jelveh 61f54369d7 add more i18n keys for billing 2024-12-01 19:20:25 -08:00
jelveh 9dda9c8dbf add more i18n keys 2024-12-01 19:13:51 -08:00
jelveh 349ae24636 add more keys for billing i18n 2024-12-01 18:51:47 -08:00
jelveh 5ced83195d add more i18n keys for billing 2024-12-01 16:45:53 -08:00
KernelDeimos ab4ba76433 fix: ignore two calls with undefined origin 2024-12-01 19:41:08 -05:00
KernelDeimos 340c7a821f fix: undefined APIOrigin 2024-12-01 19:29:47 -05:00
Nariman Jelveh ae42f6301f Merge pull request #938 from mithunmunsi/fix-issue-871
Fixes issue #871
2024-12-01 14:51:46 -08:00
Nariman Jelveh f0b5765cd7 Merge branch 'main' into fix-issue-871 2024-12-01 14:50:13 -08:00
KernelDeimos 3d2648e4ec chore: update package-lock.json 2024-12-01 15:29:35 -05:00
jelveh e056fafc50 clean up unsed imports 2024-12-01 10:10:30 -08:00
jelveh b874863986 Update signup.js 2024-11-30 23:01:04 -08:00
jelveh 88339c4044 add more billing keys for i18n 2024-11-30 17:40:54 -08:00
Nariman Jelveh a715cec1e6 Merge pull request #943 from enweazudaniel/patch-1
Update ig.js
2024-11-30 13:26:11 -08:00
enweazudaniel f672c28245 Update ig.js 2024-11-30 21:16:36 +01:00
jelveh badc654968 add i18n entries for billing and offerings 2024-11-30 11:13:01 -08:00
jelveh 67ca4ccf20 fix: add id to the setting menu item in user option menu 2024-11-29 19:40:54 -08:00
jelveh e662c782b7 fix: add an id to My Websites content menu item 2024-11-29 19:26:13 -08:00
Nariman Jelveh 73864c93cf Merge pull request #942 from Aliieeee/update-finnish-translations
Review Undefined Words and Correct it
2024-11-29 15:49:25 -08:00
Ali Hassan e9ba0833da Review Undefined Words and Correct it 2024-11-30 00:34:06 +02:00
jelveh 9b74a2e177 Update it.js 2024-11-29 14:22:56 -08:00
Nariman Jelveh 0223429e3b Merge pull request #940 from mkalevo/finnish-translation-#871
#871 added missing Finnish translations in fi.js
2024-11-29 13:48:11 -08:00
Nariman Jelveh c97d64da91 Update fi.js 2024-11-29 13:47:10 -08:00
Nariman Jelveh 489eba0423 Merge pull request #939 from danielpetrica/patch-1
Update it.js
2024-11-29 13:44:30 -08:00
Nariman Jelveh 5d5b20f40a Merge branch 'main' into patch-1 2024-11-29 13:44:01 -08:00
Nariman Jelveh ac21708c46 Merge pull request #937 from puyab91/italian_translation
PR_836_italian translation
2024-11-29 13:41:07 -08:00
Daniel, Petrica Andrei-Daniel 8c0c31cd09 Update it.js 2024-11-29 22:35:38 +01:00
mkalevo 60e87bdf92 #871 added missing Finnish translations in fi.js 2024-11-29 20:44:56 +00:00
Daniel, Petrica Andrei-Daniel cb70bb2b62 Update it.js 2024-11-29 21:28:56 +01:00
Mithun Munsi 57bdd39d7a Fixes issue #871 2024-11-29 22:25:06 +02:00
KernelDeimos 9f726b3e75 dev: add ai comment generator 2024-11-29 15:22:24 -05:00
puya.bahrani f2243859cf italian translation 2024-11-29 21:12:17 +01:00
Nariman Jelveh c3a042371c Merge pull request #936 from HeyPuter/revert-935-update-italian-translations
Revert "Update Italian translations"
2024-11-29 10:29:55 -08:00
Nariman Jelveh 4ac33675a3 Revert "Update Italian translations" 2024-11-29 10:29:46 -08:00
Nariman Jelveh f4e05440ae Merge pull request #935 from RidvanPlluzhina/update-italian-translations
Update Italian translations
2024-11-29 10:28:52 -08:00
RidvanPlluzhina d2bab8c7e8 Update Italian translations 2024-11-29 19:26:17 +01:00
Nariman Jelveh 1cfb3f5a75 Merge pull request #934 from ria147/ria147/update-dev-center
Enable Save button in Dev Center only when settings change and add a Reset button
2024-11-29 07:27:10 -08:00
jelveh 9ba0f2410c set correct base64 value for icon and socialImage 2024-11-29 07:16:59 -08:00
jelveh 92cd65261e also track icon and socialImage 2024-11-29 06:53:29 -08:00
ria147 3f1804eb2a dev: enable/disable reset button iff changes are made 2024-11-29 01:03:53 -05:00
ria147 e5788b6e47 dev: add functionality to reset edit button 2024-11-29 00:58:09 -05:00
ria147 55ffd801e0 feat: add reset edit changes button to dev-center 2024-11-29 00:47:40 -05:00
ria147 63a0053da8 feat: enable/disable save button in dev-center iff changes made 2024-11-29 00:30:57 -05:00
Nariman Jelveh 42378ecc4c Merge pull request #932 from kingflamez/polish-translation
Added missing Polish translation
2024-11-28 01:30:15 -08:00
kingflamez 09665a8d7b added missing polish translation 2024-11-28 08:16:34 +01:00
kingflamez bd35710548 added missing polish translation 2024-11-28 08:15:32 +01:00
jelveh 6bef127c24 Update de.js 2024-11-27 19:13:55 -08:00
Nariman Jelveh 061341db19 Merge pull request #929 from ahamiltonnn/German-translation
Added German translation
2024-11-27 19:12:09 -08:00
Austin Hamilton 80f3ffa5fa Added missing placeholders 2024-11-27 20:08:31 -07:00
jelveh c30f06b0f2 Update he.js 2024-11-27 19:08:05 -08:00
Nariman Jelveh 210e08b678 Merge pull request #930 from AmitMaymon/patch-1
Update he.js
2024-11-27 19:06:23 -08:00
AmitMaymon 8d846d3c37 Update he.js
Translated the unfinished hebrew translation
2024-11-28 05:01:16 +02:00
Austin Hamilton 73d7152652 Added german translation 2024-11-27 20:01:00 -07:00
jelveh 8dec78b090 fix: remove unnecessary integrity and crossorigin attributes in dev center when linking to jquery 2024-11-27 17:56:45 -08:00
KernelDeimos c5cd8cc219 dev: register PermissionUtil 2024-11-27 16:29:57 -05:00
KernelDeimos d014814c36 dev: allow services to register usage info 2024-11-27 16:19:50 -05:00
jelveh f94631949f tweak: return created timestamp of apps in query 2024-11-27 13:16:02 -08:00
KernelDeimos d2c1878ed4 dev: add usage check hook for ai services 2024-11-27 16:09:04 -05:00
Nariman Jelveh 237dc94377 Merge pull request #928 from Nathaniyell/main
Update Igbo translation of words #864
2024-11-27 11:41:56 -08:00
Nariman Jelveh 7c41396a62 Update ig.js 2024-11-27 11:40:21 -08:00
Nathaniyell 589ca4771e update ig.js 2024-11-27 20:31:22 +01:00
Nathaniyell 5ac5b8bd48 git add update translation of words 2024-11-27 20:27:26 +01:00
KernelDeimos 9ddc84e6cf dev: record token-based usages 2024-11-27 13:53:33 -05:00
Nariman Jelveh e96bae5b7d Merge pull request #927 from keimindev/feature/add-Korean
Issues #861-Add missing Korean translations
2024-11-27 06:19:52 -08:00
Nariman Jelveh f60834f043 Merge branch 'main' into feature/add-Korean 2024-11-27 06:19:29 -08:00
Nariman Jelveh a6e31ee7f5 Merge pull request #925 from Fumnanya92/Fumnanya92-update-igbo-translations
Update ig.js
2024-11-27 05:57:35 -08:00
Nariman Jelveh 1c4a66da44 Update ig.js 2024-11-27 05:53:36 -08:00
Nariman Jelveh 9397004b86 Merge pull request #926 from hpark75/korean-000861-ko-js-missing
KOREAN-000861: Missing translations done
2024-11-27 05:43:35 -08:00
Nariman Jelveh d7f31e91e1 Merge branch 'main' into korean-000861-ko-js-missing 2024-11-27 05:43:25 -08:00
Nariman Jelveh e9888c12ac Merge pull request #922 from anapimolodec/861-korean
added Korean translations
2024-11-27 05:40:43 -08:00
Nariman Jelveh 27f65e54c8 Update ko.js 2024-11-27 05:40:07 -08:00
keimindev 55e9fabf35 Add missing Korean translations 2024-11-27 19:05:58 +09:00
Hee b8e358b658 KOREAN-000861: Missing translations done 2024-11-27 06:58:16 -03:00
Fumnanya92 da3251d2cc Update ig.js
Complete missing Igbo translations in src/gui/src/i18n/translations/ig.js

- Translated all missing keys in the Igbo localization file.
- Ensured cultural appropriateness and accurate representation of English text.
- Carefully handled placeholders like %strong% for proper placement within the translated text.
2024-11-27 09:15:56 +01:00
Nariman Jelveh 6204ddd5c6 Merge pull request #924 from denisugiarto/update-id-translation
update id.js
2024-11-26 20:54:53 -08:00
Nariman Jelveh bc95875f2d Merge pull request #923 from monyxie/zh-translations
Update zh translations
2024-11-26 20:50:54 -08:00
deni sugiarto 0592d2709e update id.js 2024-11-27 11:18:52 +07:00
Aiaru 71e7a12b35 added translations 2024-11-27 13:00:19 +09:00
Max Xie 77eb1c0a3d Update zh translations 2024-11-27 11:54:06 +08:00
Nariman Jelveh 6d6e3e67ab Merge pull request #921 from junian/patch-1
Update id.js #865
2024-11-26 19:15:42 -08:00
Nariman Jelveh a4217ae169 Update id.js 2024-11-26 19:14:30 -08:00
Junian Triajianto 2f6d7323ca Update id.js 2024-11-27 10:08:28 +07:00
Junian Triajianto 2238b933a7 Update id.js #865 2024-11-27 10:04:10 +07:00
KernelDeimos 811732cb56 dev: switch xai to openai client, get streaming counts 2024-11-26 16:45:33 -05:00
KernelDeimos 0d90b588aa dev: get streaming token counts on everything (except xAI) 2024-11-26 16:45:33 -05:00
KernelDeimos 2dd9417234 dev: get token counts on all services 2024-11-26 16:45:33 -05:00
jelveh f3d270ccbc fix: remove inactive links in README 2024-11-26 13:39:42 -08:00
Nariman Jelveh bcf36491b4 Merge pull request #920 from gng92/patch-2
Update hy.js
2024-11-26 11:23:13 -08:00
Nariman Jelveh e4f2066bb4 Update hy.js 2024-11-26 11:22:52 -08:00
gng92 63660b004d Update hy.js
Missing translations added
2024-11-26 23:19:04 +04:00
Nariman Jelveh ecedba4120 Merge pull request #919 from Rebandradha/main
"Complete Kurdish Translation for ku.js"Completed missing Kurdish translations in ku.js
2024-11-26 10:22:26 -08:00
jelveh 4686e210c3 Update ku.js 2024-11-26 10:21:23 -08:00
KernelDeimos fe1a4cfd4d fix: improve backend mod error handling 2024-11-26 13:20:44 -05:00
Nariman Jelveh 885a58c97d Update ku.js 2024-11-26 10:19:13 -08:00
Nariman Jelveh f27c824682 Merge pull request #918 from HeyPuter/revert-917-main
Revert "Improve your word choice to make it easier for Indonesians to underst…"
2024-11-26 09:40:34 -08:00
Nariman Jelveh 2884fe7183 Revert "Improve your word choice to make it easier for Indonesians to underst…" 2024-11-26 09:40:02 -08:00
Nariman Jelveh 1c145119f0 Merge pull request #917 from rhecustein/main
Improve your word choice to make it easier for Indonesians to underst…
2024-11-26 09:39:55 -08:00
Bintang Wijaya d0642d7806 Merge branch 'main' into main 2024-11-27 00:04:12 +07:00
rebandradha 14cc4904bd Completed missing Kurdish translations in ku.js 2024-11-26 20:04:06 +03:00
jelveh 63450ccd49 Update id.js 2024-11-26 08:58:35 -08:00
Nariman Jelveh e424e905aa Merge pull request #916 from DigitalGenius-ui/update-transulation
new transulations are added
2024-11-26 08:56:24 -08:00
rhecustein ab1bceab06 Improve your word choice to make it easier for Indonesians to understand. 2024-11-26 23:37:58 +07:00
KernelDeimos b25d55e596 dev: configurable extension dirs 2024-11-26 11:10:28 -05:00
DigitalGenius-ui b3f5a7b846 new transulations are added 2024-11-26 23:54:51 +08:00
Nariman Jelveh a54f51db90 Merge pull request #915 from bestlucky123/fix_issue_862
Fix: Japanese Translation for i18n (Issue 862)
2024-11-26 06:19:07 -08:00
Nariman Jelveh 0cf9304683 Update ja.js 2024-11-26 06:18:44 -08:00
bestlucky123 fceaf714c3 Fix: Japanese Translation for i18n 2024-11-26 18:35:29 +09:00
KernelDeimos 871416f461 dev: migrate openai to new controller (last one) 2024-11-25 15:54:11 -05:00
KernelDeimos 3f4efb9948 dev: implement ai model fallback 2024-11-25 14:58:21 -05:00
KernelDeimos 0d86233b45 dev: migrate together-ai to new controller 2024-11-25 12:10:22 -05:00
KernelDeimos 5746c7156a dev: migrate Mistral to new controller 2024-11-25 12:10:22 -05:00
KernelDeimos e6928cf6c7 sync: add llama-3.1-70b-specdec 2024-11-25 12:10:22 -05:00
KernelDeimos 4015c531f5 dev: migrate Groq to new controller 2024-11-25 12:10:22 -05:00
KernelDeimos 2c3eb93d22 sync: model info 2024-11-25 12:10:22 -05:00
Nariman Jelveh 0b4adb6bc1 Merge pull request #914 from JessicaFredin/update-swedish-translations
Update Swedish translations in sv.js
2024-11-25 08:29:28 -08:00
Nariman Jelveh ecd6c4e781 Update sv.js 2024-11-25 08:27:02 -08:00
Nariman Jelveh c86b1175b3 Merge pull request #912 from BertramYe/BertramYe-patch-add-Chinese-(中文)-translation-of-Puter
Update zh.js
2024-11-25 08:14:03 -08:00
Nariman Jelveh d65828930a Merge branch 'main' into BertramYe-patch-add-Chinese-(中文)-translation-of-Puter 2024-11-25 08:13:49 -08:00
Nariman Jelveh 91b4ca77cb Merge pull request #913 from SoarUI/main
update issues/#845
2024-11-25 08:11:54 -08:00
Nariman Jelveh 0273192105 Update zh.js 2024-11-25 08:11:34 -08:00
JessicaFredin b734ed75b6 Update Swedish translations in sv.js 2024-11-25 17:10:09 +01:00
BertramYe 76faf79f5a Update zh.js
fix the issue of `Complete the Chinese (中文) translation of Puter #845`
2024-11-25 23:57:03 +08:00
Nariman Jelveh b51618d5aa Merge pull request #911 from mardax007/main
Updated nl.js with missing translations
2024-11-25 07:39:59 -08:00
Mardax d590f53c46 Update nl.js 2024-11-25 15:39:21 +00:00
jelveh e0a577f5a5 Update nl.js 2024-11-25 07:35:50 -08:00
soarui 957513737d update issues/#845 2024-11-25 10:35:31 -05:00
Mardax 638c805a95 Update nl.js 2024-11-25 15:32:08 +00:00
Nariman Jelveh 0c6e8ca4ed Merge pull request #910 from monish-j/fix-hindi-translations
Fix missing Hindi translations in hi.js
2024-11-25 06:57:51 -08:00
jelveh b73a3bbfd8 Update hi.js 2024-11-25 06:57:22 -08:00
Monish Jaiswal 5ec3bbcf24 Fix missing Hindi translations in hi.js 2024-11-25 14:07:19 +05:30
jelveh 9a0edc80e4 tweak: decrease the opacity of the overlay for showSpinner 2024-11-24 21:09:45 -08:00
jelveh 8817a25b65 Update UIWindowQR.js 2024-11-24 15:51:36 -08:00
KernelDeimos 7fa11a4ca0 dev: apply openai moderation to claude and xai 2024-11-24 18:14:50 -05:00
KernelDeimos ef7047ede4 dev: allow extensions to audit prompts 2024-11-24 18:14:50 -05:00
KernelDeimos df42d433c9 ops: don't allow no origin 2024-11-24 18:14:50 -05:00
Nariman Jelveh 39c7df9bb5 Merge pull request #909 from Zac0511/patch-3
Update fr.js
2024-11-24 15:06:00 -08:00
jelveh 66016b9db6 feat: record signup metadata for abuse prevention 2024-11-24 13:00:43 -08:00
KernelDeimos e0df5429ce dev: add validator middleware 2024-11-24 14:27:37 -05:00
KernelDeimos 78da140cd6 dev: add server id 2024-11-24 13:37:13 -05:00
KernelDeimos 86bf08ccc0 dev: add metadata column 2024-11-24 13:34:54 -05:00
Zac0511 6b90c3f44d Update fr.js 2024-11-24 09:23:54 +01:00
Nariman Jelveh 4ed0af7921 Merge pull request #908 from AmirH-Sal/patch-1
Update fa.js
2024-11-23 21:07:18 -08:00
jelveh ff0cbef37b Update fa.js 2024-11-23 21:05:49 -08:00
AmirH-Sal 3b3d8cb316 Update fa.js 2024-11-23 20:56:45 -08:00
jelveh 3cedd17b8e fix: app query should return app metadata 2024-11-23 19:08:40 -08:00
jelveh f77f05062f tweak: improve minor ux for dev center 2024-11-23 14:50:02 -08:00
jelveh 7cf215ab67 feat: add support for categories in the Dev Center 2024-11-23 14:35:46 -08:00
jelveh 10b2ae6542 style: improve the flow and code of the Save Account flow 2024-11-23 14:14:30 -08:00
jelveh fc5aca1f72 feat: puter.js's showSpinner() will keep the spinner active for at least 1200ms 2024-11-23 13:23:20 -08:00
jelveh 966d98e469 tweak: showWorking -> showSpinner 2024-11-23 13:04:53 -08:00
jelveh 0980f7c585 tweak: trim description in the output html for homepage 2024-11-23 11:03:54 -08:00
jelveh b6a9d957aa tweak: clean up some dead imports 2024-11-23 10:44:45 -08:00
jelveh 5ec2d8f6ba Merge branch 'main' of https://github.com/heyputer/puter 2024-11-23 08:48:34 -08:00
jelveh a2c7b379f8 fix: safe parsing of app metadata 2024-11-23 08:48:14 -08:00
Nariman Jelveh 06996d238b Merge pull request #907 from rsdribeiroIT/portuguese_language
Update pt.js
2024-11-23 08:32:57 -08:00
jelveh d35308fd04 Update pt.js 2024-11-23 08:25:59 -08:00
[email protected] f5fc234dbb Update pt.js 2024-11-23 16:17:35 +00:00
Nariman Jelveh 2e6f10bee9 Merge pull request #905 from yeldynov/main
update ru.js
2024-11-23 07:14:21 -08:00
jelveh 2adf836f8a Update ru.js 2024-11-23 07:09:56 -08:00
Nariman Jelveh b7ceacfb8d Merge pull request #906 from PeterZsigmond/complete-hungarian-translation
Complete the Hungarian (Magyar) translation of Puter (Issue #867)
2024-11-23 06:39:33 -08:00
Peter Zsigmond b84c6a04a7 Add missing Hungarian translations in hu.js 2024-11-23 12:39:46 +01:00
Nikita Yeldynov 5de3fe8b46 update ru.js 2024-11-23 11:02:05 +02:00
jelveh be36d31509 feat: allow developers to set social media images for their apps 2024-11-22 17:59:00 -08:00
KernelDeimos 791c6f11f4 dev: max tokens for claude 2024-11-22 17:42:01 -05:00
KernelDeimos 3ed1453939 tool: token count testing 2024-11-22 17:21:48 -05:00
Nariman Jelveh 4b5a3128f3 Merge pull request #904 from saltimbanc/main
Update ro.js
2024-11-22 14:05:46 -08:00
Titus 53e00bec4f Update ro.js 2024-11-22 23:50:30 +02:00
KernelDeimos aa3dcea462 refactor: central controller for all LLM services
Adds AIChatService, an implementor of puter-chat-completion which can
delegate to other implementors (implementors that have registered with
AIChatService at initialization) based on details of the request.

Makes AIChatService the test implementation. AIChatService then
delegates to FakeChatService when in test mode.

Adds `models()` method to puter-chat-completion. This method, instead of
returning only the names of supported models, includes other details
such as the cost and maximum output size.

Implements `models()` on Claude and XAI.

Registers Claude and XAI with AIChatService.
2024-11-22 15:52:37 -05:00
KernelDeimos 791f7748c7 fix: configuration for browser launch
Makes browser launch on startup configurable. Also, by default, users of
Arch Linux will not be subjected to this behavior (they won't like it).
2024-11-22 13:58:33 -05:00
KernelDeimos 960a9ec9ee dev: set claude back 2024-11-22 11:28:44 -05:00
Nariman Jelveh d77c5f40b2 Merge pull request #903 from Kumara2mahe/missing-translation-issue851-mahendra
Add missing tamil translations; issue #851
2024-11-22 08:07:18 -08:00
Nariman Jelveh 35e4089a6f Update ta.js 2024-11-22 08:02:43 -08:00
Kumara2mahe ae9317a9ed Add missing tamil translations 2024-11-22 21:20:50 +05:30
KernelDeimos ee7bedd558 fix: previous fix 2024-11-22 10:37:00 -05:00
KernelDeimos 56710e17f3 fix: always adapt model for ClaudeEnough 2024-11-22 10:34:21 -05:00
KernelDeimos 1e15696096 Eh, Claude enough...
Replaces Claude with Grok pretending to be Claude. This is in lieu of a
proper fallback system which will be implemented later.

Grok will always say it's pretending to be Claude rather than
identifying itself as Claude.
2024-11-22 10:13:49 -05:00
jelveh f500fb4706 fix: automatically open browser when starting only if in dev env 2024-11-22 07:11:05 -08:00
jelveh 70096a8d6f fix(deps): update multiple dependencies 2024-11-22 06:35:22 -08:00
KernelDeimos f533dca1a6 fix: image generation supports test mode 2024-11-22 09:22:24 -05:00
jelveh 2d4312972a feat: automatically open the browser when starting Puter 2024-11-21 22:51:43 -08:00
jelveh 1062363096 feat: spinner for the showWorking() overlay in puter.js 2024-11-21 19:41:39 -08:00
Nariman Jelveh 1811545818 Merge pull request #902 from DavidReque/feat/loading-overlay
Improved Work Overlay Behavior
2024-11-21 19:28:42 -08:00
David Requeno 0385a2b32d tweak: enhance working overlay behavior 2024-11-21 21:14:13 -06:00
Nariman Jelveh 93d7340cc0 Merge pull request #898 from kemal-akar/main
Turkish translations completed and missing parts fixed (Issue #849)
2024-11-21 16:07:20 -08:00
jelveh d36e63c519 Update tr.js 2024-11-21 16:06:55 -08:00
Nariman Jelveh 21c99a90eb Merge pull request #900 from HeyPuter/revert-715-main
Revert "Added installation instructions for public hosting to readme"
2024-11-21 16:02:42 -08:00
Nariman Jelveh 971aa4cd0a Revert "Added installation instructions for public hosting to readme" 2024-11-21 16:02:27 -08:00
Nariman Jelveh 3f34301fc5 Merge pull request #715 from decipher2k/main
Added installation instructions for public hosting to readme
2024-11-21 16:02:08 -08:00
Nariman Jelveh 90c3acdef5 Merge pull request #899 from pashak1207/main
Fix: Resolved issue #848 - Ukrainian translation
2024-11-21 15:26:11 -08:00
pashak1207 ee705e5c1c Fix: Resolved issue #848 - Ukrainian translation 2024-11-21 23:39:51 +02:00
Kemal Akar 325483c2ac Turkish translations completed and missing parts fixed (Issue #849) 2024-11-22 00:26:57 +03:00
KernelDeimos 7f30ec46e7 test: add more thumbnailer tests 2024-11-21 15:45:37 -05:00
Nariman Jelveh 41e28badcd Merge pull request #897 from mark10112/thai-translation
Update th.js
2024-11-21 12:08:41 -08:00
jelveh 73c66bebf7 Update th.js 2024-11-21 12:08:31 -08:00
DESKTOP-Q7DI747\User 7e888248d1 thai missing translations 2024-11-22 02:32:42 +07:00
KernelDeimos 03817cd5c7 dev: thumbnail tests and readings 2024-11-21 14:09:56 -05:00
Nariman Jelveh 415d39e86d Merge pull request #896 from afaq-karim/translation/urdu-847
feat(i18n): update Urdu localization with missing translations
2024-11-21 10:48:53 -08:00
jelveh c140cd158b Update ur.js 2024-11-21 10:48:37 -08:00
afaq-karim 0c4b994644 feat(i18n): update Urdu localization with missing translations 2024-11-21 23:42:18 +05:00
KernelDeimos 1363de7cbf text: add test for privacy_aware_path 2024-11-21 12:06:02 -05:00
KernelDeimos d30d62f558 fix: share issue with prefix usernames 2024-11-21 11:40:08 -05:00
KernelDeimos d93fd419e4 dev: add human_readable_age to /whoami 2024-11-21 11:03:40 -05:00
Nariman Jelveh 14f52bcd1f Merge pull request #892 from nlaburu/i18n_gui_french
fix french missing translations
2024-11-21 05:51:49 -08:00
jelveh 4ce0670370 Update fr.js 2024-11-21 05:51:35 -08:00
Noah 6992ce06cb Merge branch 'HeyPuter:main' into i18n_gui_french 2024-11-21 11:05:36 +01:00
nlaburu a998e4b4cc fix missing placeholders in fr.js 2024-11-21 11:04:58 +01:00
Nariman Jelveh dd11cc0256 Merge pull request #895 from kiwipix/patch-3
Update zhtw.js
2024-11-20 20:07:13 -08:00
jelveh 46053f3e7c Update zhtw.js 2024-11-20 20:04:00 -08:00
kiwipix 2f15d129b6 Update zhtw.js
add translation for missing items
2024-11-21 11:53:08 +08:00
Nariman Jelveh cf8bf308a7 Merge pull request #894 from tien0412/patch-1
finish translation for vi.js
2024-11-20 19:49:40 -08:00
Nariman Jelveh 4d0d8e125b Update vi.js 2024-11-20 19:49:26 -08:00
tien0412 12cc753903 finish translation for vi.js 2024-11-21 10:29:42 +07:00
KernelDeimos 16257a7b54 fix: permission grants in open_item 2024-11-20 21:00:03 -05:00
nlaburu 99cd9b2315 fix french missing translations 2024-11-21 00:48:36 +01:00
jelveh bfacfc2a4e fix: sharing notification click opening directories 2024-11-20 15:44:17 -08:00
Nariman Jelveh 505865f3bf Merge pull request #891 from LuizGribner/feature/br-translation
Translate completed to Portuguese-BR
2024-11-20 15:25:19 -08:00
Nariman Jelveh ca2f7b4326 Update br.js 2024-11-20 15:23:19 -08:00
jelveh 035de8e73e Update UIDesktop.js 2024-11-20 15:21:05 -08:00
Luiz Gribner f5247c9dfe Translate completed to Portuguese-BR 2024-11-20 19:55:38 -03:00
KernelDeimos 5e463e1db8 dev: validate metadata 2024-11-20 17:17:23 -05:00
KernelDeimos e6986d5216 dev: add share metadata and messages 2024-11-20 17:01:32 -05:00
Nariman Jelveh 9dff04f8d5 Merge pull request #890 from HeyPuter/revert-886-motabbir
Revert "Added missing translations for Bengali localization (#842)"
2024-11-20 12:55:42 -08:00
Nariman Jelveh 63d4a604fa Revert "Added missing translations for Bengali localization (#842)" 2024-11-20 12:53:02 -08:00
Nariman Jelveh 1b98f0486f Merge pull request #886 from motabbirhossain/motabbir
Added missing translations for Bengali localization (#842)
2024-11-20 12:52:54 -08:00
Nariman Jelveh 546a268ed9 Merge branch 'main' into motabbir 2024-11-20 12:52:44 -08:00
KernelDeimos c7419d18df dev: add /acl/set-user-user 2024-11-20 15:36:00 -05:00
KernelDeimos 70d8e837af dev: prevent sharing a file to the same user twice 2024-11-20 15:23:46 -05:00
KernelDeimos 4396630453 dev: add /acl/stat-user-user
This new endpoint shows permissions granted by the current user to the
specified user in the scope of a specified filesystem node, including
permissions on the affecting parent nodes.

This is related to two future tasks:
- prevent users from sharing a file with the same user twice
- add an endpoint to modify the access mode of a shared file
2024-11-20 14:57:20 -05:00
Nariman Jelveh ea4cde82fc Merge pull request #889 from Barkatzx/update-bn.js
issue #842
2024-11-20 11:37:43 -08:00
Nariman Jelveh b76ab955b1 Merge branch 'main' into update-bn.js 2024-11-20 11:37:35 -08:00
Nariman Jelveh cedde40cd4 Merge pull request #887 from kazi331/patch-2
Update bn.js
2024-11-20 11:27:38 -08:00
jelveh d0bf94c5d0 Update bn.js 2024-11-20 11:18:59 -08:00
Nariman Jelveh 3bb4de4f90 Merge pull request #888 from NadaAly56/fix-arabic-translation
fixixng arabic translation
2024-11-20 10:27:15 -08:00
jelveh ac4cc95be5 Update ar.js 2024-11-20 10:26:21 -08:00
Nariman Jelveh 0abddf5fea Merge branch 'main' into patch-2 2024-11-20 10:24:44 -08:00
Barkatzx b0046ceb26 issue #842 2024-11-21 00:23:25 +06:00
Nariman Jelveh dc5f699ec6 Merge pull request #885 from FahimFBA/issue-842
Filled the missing Bengali translation and updated the old translation
2024-11-20 10:15:47 -08:00
jelveh be566cb7c1 Update bn.js 2024-11-20 10:15:30 -08:00
nada f0012fdf87 fixixng arabic translation 2024-11-20 19:30:26 +02:00
KernelDeimos d911754e2b dev: fix test_mode flag 2024-11-20 12:03:39 -05:00
Kazi Shariful Islam 4ca1bddbd1 Update bn.js
updated with manual translation
2024-11-20 22:57:27 +06:00
motabbirhossain d43e79243a Added missing translations for Bengali localization (#842) 2024-11-20 22:46:17 +06:00
FahimFBA 0d1e676ce1 update translation: login2fa_otp_instructions 2024-11-20 22:22:53 +06:00
FahimFBA 98e2331a56 update translation: setup2fa_4_instructions 2024-11-20 22:22:33 +06:00
FahimFBA af7be2c917 update translation: setup2fa_3_step_heading 2024-11-20 22:21:59 +06:00
FahimFBA f85adbe7ec update translation: setup2fa_1_instructions 2024-11-20 22:21:46 +06:00
FahimFBA 43a2afc843 update translation: undo 2024-11-20 22:20:49 +06:00
FahimFBA d2eae20223 update translation:two_factor_enabled 2024-11-20 22:20:26 +06:00
FahimFBA 16e6307bca update translation: two_factor_disabled 2024-11-20 22:20:11 +06:00
FahimFBA 9fd977761c update translation: skip 2024-11-20 22:19:15 +06:00
FahimFBA fdd0c67b1d update translation: reset_colors 2024-11-20 22:18:28 +06:00
FahimFBA 7a8da04634 update translation: replace_all 2024-11-20 22:17:50 +06:00
FahimFBA b89a5ad523 update translation: refer_friends_social_media_c2a 2024-11-20 22:17:27 +06:00
FahimFBA eb19ec0c48 update translation: refer_friends_c2a 2024-11-20 22:17:11 +06:00
FahimFBA 26250800de update translation: personalization 2024-11-20 22:16:08 +06:00
FahimFBA fd7e762850 update translation: passwords_do_not_match 2024-11-20 22:15:51 +06:00
FahimFBA 47717f1d41 update translation: password_reset_sent 2024-11-20 22:15:33 +06:00
FahimFBA 90a2a44c45 update translation: password_requirements 2024-11-20 22:15:10 +06:00
FahimFBA 90fa5f184c update translation: password_recovery_rate_limit 2024-11-20 22:14:45 +06:00
FahimFBA 38fec34d56 update translation: open_with 2024-11-20 22:14:12 +06:00
FahimFBA af2e1687ca update translation: open_in_new_window 2024-11-20 22:13:57 +06:00
FahimFBA 88efa1c89c update translation: lightness 2024-11-20 22:13:11 +06:00
FahimFBA c6a734896d update translation: items_in_trash_cannot_be_renamed 2024-11-20 22:12:43 +06:00
FahimFBA f6a4a7864a update translation: hide_all_windows 2024-11-20 22:12:23 +06:00
FahimFBA b8adacabc1 update translation: force_quit 2024-11-20 22:11:44 +06:00
FahimFBA 9314b949ff update translation: feedback_sent_confirmation 2024-11-20 22:11:04 +06:00
FahimFBA 9e918042b1 update translation: email_invalid 2024-11-20 22:09:31 +06:00
FahimFBA faf5a48ee1 update translation: email_change_confirmation_sent 2024-11-20 22:09:11 +06:00
FahimFBA 67cc5b03ad update translation: dont_allow 2024-11-20 22:08:45 +06:00
FahimFBA 3bbacdeaea update translation: disable_2fa_instructions 2024-11-20 22:08:21 +06:00
FahimFBA 451b23eb4c update translation: disable_2fa_confirm 2024-11-20 22:08:06 +06:00
FahimFBA a7f032a325 update translation: disable_2fa 2024-11-20 22:07:52 +06:00
FahimFBA b267547ea7 update translation: deploy_as_app 2024-11-20 22:07:23 +06:00
FahimFBA c2da4527b7 update translation: date_modified 2024-11-20 22:06:59 +06:00
FahimFBA 6bef43468a update translation: close_all 2024-11-20 22:06:34 +06:00
FahimFBA 20c49b6a05 update translation: clock_visible_auto 2024-11-20 22:06:14 +06:00
FahimFBA 127a241b84 update translation: confirm_delete_user 2024-11-20 22:05:30 +06:00
FahimFBA 4555a21fa1 update translation: confirm_code_2fa_instruction 2024-11-20 22:04:54 +06:00
FahimFBA e5229f4c7e update translation: confirm_code_2fa_instruction 2024-11-20 22:04:32 +06:00
FahimFBA 3114eb2dd5 update translation: confirming too many request
confirm_code_generic_too_many_requests
2024-11-20 22:04:12 +06:00
FahimFBA 3c07c30933 update translation: confirmation for referral
confirm_account_for_free_referral_storage_c2a
2024-11-20 22:03:17 +06:00
FahimFBA 41ec3a9698 update translation: confirm_2fa_recovery 2024-11-20 22:02:34 +06:00
FahimFBA 3c31791fe6 update translation: confirm 2024-11-20 22:01:58 +06:00
FahimFBA d9d5c09f15 update translation: confirm 2024-11-20 22:01:14 +06:00
FahimFBA c6a01e3060 update translation: change_always_open_with 2024-11-20 22:00:05 +06:00
FahimFBA 0d75306379 update translation: close_all_windows_and_log_out 2024-11-20 21:58:59 +06:00
FahimFBA ea1d46e27d update translation: change_ui_colors 2024-11-20 21:57:59 +06:00
FahimFBA 8ade96a54d update translation: change_email 2024-11-20 21:57:42 +06:00
FahimFBA 7b15d804df update translation: change_desktop_background 2024-11-20 21:57:22 +06:00
FahimFBA ede6ed4a0c add translation: This user already has access to this item 2024-11-20 21:54:25 +06:00
FahimFBA b76d2922c3 add translation: You can't share with yourself. 2024-11-20 21:53:25 +06:00
FahimFBA 3bd07dfabd add translation: Owner 2024-11-20 21:52:59 +06:00
FahimFBA 712852b3aa add translation: Share With… 2024-11-20 21:52:39 +06:00
FahimFBA e43e646f54 add translation: People with access 2024-11-20 21:52:20 +06:00
FahimFBA efbe0e0f7e add translation: Viewer 2024-11-20 21:51:48 +06:00
FahimFBA 6ac6870b9a add translation: Editor 2024-11-20 21:51:29 +06:00
FahimFBA f468c172f4 add translation: zipping 2024-11-20 21:51:10 +06:00
FahimFBA 84a68a3688 add translation: sequencing 2024-11-20 21:50:42 +06:00
FahimFBA f9b2a81d00 add translation: unzipping 2024-11-20 21:49:45 +06:00
FahimFBA 27da49dcd3 add translation: writing 2024-11-20 21:49:21 +06:00
FahimFBA be7d651f7f add translation: reading 2024-11-20 21:48:59 +06:00
FahimFBA a820721f74 add translation: password_strength_error 2024-11-20 21:47:09 +06:00
FahimFBA da2dee842a add translation: password_required 2024-11-20 21:45:49 +06:00
FahimFBA ae20fd5afa add translation: password_recovery_unknown_error 2024-11-20 21:45:19 +06:00
FahimFBA 86a54b9415 add translation: password_recovery_token_invalid 2024-11-20 21:43:36 +06:00
FahimFBA 1fa0bebfd5 update translation for: Clock Visibility 2024-11-20 21:42:44 +06:00
FahimFBA e3782f7b42 add translation for: clock_visibility 2024-11-20 21:41:41 +06:00
FahimFBA 2d522537ee add translation for: change 2024-11-20 21:41:07 +06:00
Nariman Jelveh 5ab87979bc Merge pull request #882 from Abhinav-Bansal751/main
Update es.js
2024-11-19 21:45:34 -08:00
jelveh 2c86240399 fix: add placeholders 2024-11-19 21:42:29 -08:00
Bansal b2afeb162a Update es.js 2024-11-20 11:02:54 +05:30
jelveh 35fd15854a fix: capitalize Hindi in i18n 2024-11-19 17:54:28 -08:00
jelveh f693211348 add: missing translation keys to different language files 2024-11-19 17:02:47 -08:00
KernelDeimos 36ca7f63aa dev: update referral and share notifs 2024-11-19 16:47:41 -05:00
KernelDeimos 0fa3be9d43 clean: cleanup backend logs 2024-11-19 15:00:04 -05:00
KernelDeimos dca7892fca sync: update CoreModule 2024-11-19 14:39:17 -05:00
KernelDeimos e0f4c527f4 dev: migrate referral service and use user.email-confirmed event 2024-11-19 14:31:33 -05:00
jelveh 65e6d6c09f fix: give camera and recorder write permission to Desktop 2024-11-19 10:52:42 -08:00
KernelDeimos 01725ffebf fix: potential null-or-undefined in DriverService 2024-11-19 13:08:58 -05:00
KernelDeimos 7ed557f375 dev: add fake chat service, for testing 2024-11-19 13:08:39 -05:00
KernelDeimos 86789920c4 dev: apply all relevant shares on verified email 2024-11-19 12:40:03 -05:00
KernelDeimos 0fd3b1e611 fix: usage bug 2024-11-19 11:08:54 -05:00
KernelDeimos 7e7234b2f3 fix: update share email 2024-11-19 10:28:42 -05:00
jelveh 4cc63b2580 Update UIWindowShare.js 2024-11-18 11:29:15 -08:00
jelveh 905b5d851e fix: allow scrolling of user list in share window 2024-11-18 10:40:15 -08:00
jelveh 0e45132c05 feat: show profile pics in sharing notifications 2024-11-18 07:22:13 -08:00
jelveh b11016dab3 fix: mobile detection 2024-11-17 11:33:42 -08:00
jelveh 7a7c14fb04 fix: mobile-friendly taskbar 2024-11-17 11:06:10 -08:00
jelveh 0885937f03 feat: Implement profile pictures 2024-11-16 19:07:09 -08:00
KernelDeimos 59fa600f2b dev: edge rate limit for email share 2024-11-16 20:04:23 -05:00
KernelDeimos e0128aa88c fix: prevent permission cycles 2024-11-15 18:47:47 -05:00
jelveh e482b00a30 fix: launchApp on explorer supports ~ now 2024-11-15 15:38:59 -08:00
jelveh 8fefd4a61f feat: allow launchApp to open explorer at a specific path 2024-11-15 15:29:23 -08:00
jelveh cdd1a8c4e3 feat: Require email confirmation before sharing 2024-11-15 12:07:48 -08:00
Eric Dubé 98bd10c82b Revert "added a chime playback"
This reverts commit 2eaf1080d6.
2024-11-15 13:41:31 -05:00
Eric Dubé 5fd11cc607 Revert "added event listener to play chime on the first click"
This reverts commit 4885a76a75.
2024-11-15 13:41:31 -05:00
Eric Dubé fa5d731641 Revert "."
This reverts commit 1919cb3d99.
2024-11-15 13:41:31 -05:00
Eric Dubé f8ac0dbdb7 Revert "play chime only once"
This reverts commit edeb79d92c.
2024-11-15 13:41:31 -05:00
KernelDeimos 08779ac455 dev: make share feature flag reflect user state 2024-11-15 13:40:24 -05:00
KernelDeimos 14b962b459 dev: add function-flag feature flag type 2024-11-15 13:34:56 -05:00
4nshuman edeb79d92c play chime only once 2024-11-15 12:43:17 -05:00
4nshuman 1919cb3d99 . 2024-11-15 12:43:17 -05:00
4nshuman 4885a76a75 added event listener to play chime on the first click 2024-11-15 12:43:17 -05:00
4nshuman 2eaf1080d6 added a chime playback 2024-11-15 12:43:17 -05:00
KernelDeimos 69bfa60199 fix: only allow UserActorType for ShareService 2024-11-15 12:09:31 -05:00
jelveh 045259cefb feat: show unread notification count in the browser tab's title 2024-11-14 17:19:21 -08:00
KernelDeimos b1ffb8eca1 fix: new sessions miss notifications 2024-11-14 19:26:15 -05:00
jelveh d0f16c8105 fix: don't allow sharing with recipient just shared with 2024-11-14 15:38:26 -08:00
KernelDeimos 085d808817 fix: add username to comments 2024-11-14 18:09:46 -05:00
jelveh d91435db57 Merge branch 'main' of https://github.com/heyputer/puter 2024-11-14 14:45:43 -08:00
jelveh cf4b6aa1c2 feat: in Share window, display access level next to recipient 2024-11-14 14:45:35 -08:00
KernelDeimos db79a72daa feat(backend): add comments for fsentries 2024-11-14 17:45:20 -05:00
jelveh 0cbe0139d7 feat: when sharing, users can choose between 'viewer' and 'editor' for permissions 2024-11-14 14:08:49 -08:00
jelveh a6650ee2d8 feat: handle notif.ack in desktop 2024-11-14 12:52:15 -08:00
KernelDeimos 9e303a2f7c fix: occasional db error from notics 2024-11-14 15:18:28 -05:00
KernelDeimos 00e0fb350a dev: add notif.ack message 2024-11-14 15:18:28 -05:00
KernelDeimos 3f3f4e6cb9 fix: un-awked notif check in wrong place 2024-11-14 15:18:28 -05:00
jelveh 9d40ad9b4e Update UIWindow.js 2024-11-14 09:55:39 -08:00
jelveh 9d7987fae5 fix: disabled sortable on sharing section in the sidebar 2024-11-14 09:37:06 -08:00
KernelDeimos 665471f9f0 fix: add mixxing context to BroadcastService 2024-11-13 23:25:44 -05:00
KernelDeimos 22dd42ef7f fix: attempt at fixing broadcast 2024-11-13 23:13:45 -05:00
KernelDeimos cd22425a3d fix: replace ll_readshares with better approach
Recursively checking for files with 'see' permission? What was I
thinking? This replaces the disasterously awful approach of scanning a
user's entire file tree to find shares, with an approach which instead
selects on the permissions table and extracts file UUIDs from
permissions.
2024-11-13 22:44:54 -05:00
KernelDeimos 34836e374f fix: only add enabled_logs when not empty 2024-11-13 22:15:09 -05:00
KernelDeimos caf8d2a055 dev: track ll_readshares depth 2024-11-13 21:14:56 -05:00
KernelDeimos 249dc06201 fix: don't check share permission anymore 2024-11-13 20:39:58 -05:00
jelveh 94b10c78b7 tweak: sharing style 2024-11-13 17:30:03 -08:00
jelveh b5bb95e2d7 feat: add error handling to the share flow 2024-11-13 15:59:29 -08:00
jelveh 9a311058ef tweak: disable sidebar_items polling 2024-11-13 15:45:02 -08:00
jelveh 599c7ad0a1 Update UIElement.js 2024-11-13 14:43:30 -08:00
jelveh 622205ae51 tweak: enable sharing 2024-11-13 13:49:17 -08:00
KernelDeimos 27cc07e985 fix: files shared array in notification 2024-11-13 15:02:10 -05:00
KernelDeimos 89aab03905 tweak: enable share 2024-11-13 13:15:22 -05:00
KernelDeimos 8f59c2614d tweak: put groups manager behind a flag 2024-11-13 12:54:54 -05:00
KernelDeimos 5725bd8c66 fix: report path for broken files as /-void/ 2024-11-13 12:11:48 -05:00
Nariman Jelveh c53107db67 Merge pull request #830 from Zac0511/patch-2
Update README.fr.md
2024-11-12 22:28:23 -08:00
jelveh 7ca0a02fa4 tweak: safe data URI strings for icons in search 2024-11-12 20:45:53 -08:00
jelveh 55d2af189e feat: search 2024-11-12 20:20:43 -08:00
KernelDeimos b589512c9d feat: search endpoint 2024-11-12 17:58:43 -05:00
jelveh ac3317aea9 fix: issue with popover closing when clicked 2024-11-12 13:27:29 -08:00
jelveh 1adfe5c709 feat: the socialLink UI component 2024-11-12 12:40:14 -08:00
jelveh 45ecce4653 Update style.css 2024-11-11 20:49:49 -08:00
jelveh a70cb49a30 tweak: style improvement 2024-11-11 17:31:43 -08:00
jelveh 27c01c9bd9 feat: Reaload App option in the window title bar context menu 2024-11-11 11:46:28 -08:00
KernelDeimos a08e9758fe fix: groups manager location 2024-11-11 14:40:50 -05:00
jelveh a9679910c6 Update style.css 2024-11-10 10:46:13 -08:00
KernelDeimos 402ffb0fd1 fix: don't show kvstore in usages 2024-11-10 13:33:41 -05:00
KernelDeimos 4f9d9a54ef fix: add missing id for task_manager menu item 2024-11-10 12:46:42 -05:00
Nariman Jelveh 6c44032293 fix: Update security.txt canonical URL 2024-11-10 08:55:51 -08:00
Nariman Jelveh d6307cc389 Create FUNDING.yml 2024-11-10 08:48:12 -08:00
KernelDeimos fc0cb2dde4 tweak: usage endpoint 2024-11-09 17:41:16 -05:00
KernelDeimos 85020109b3 dev: add virtual groups for computed permissions 2024-11-09 17:40:47 -05:00
KernelDeimos a324c91560 dev: add quick window to see what groups a user is in
I need this for development/debugging purposes. I figure I may as well
start developing the system dialog we'll eventually have to create
rather than make a temporary debugging element. This window could
eventually become a full-featured group manager, and can easily be moved
to a settings tab.
2024-11-09 15:57:28 -05:00
KernelDeimos 59984bb930 dev: recursive log toggle for puter.js 2024-11-09 15:14:37 -05:00
KernelDeimos 6f5f11da09 dev: allow other backend services to set gui_params 2024-11-08 16:04:55 -05:00
jelveh e8f67da9a3 fix: update apps cache by reading from primary db 2024-11-08 10:56:00 -08:00
KernelDeimos 164d5ef167 test: update TestKernel 2024-11-08 12:13:30 -05:00
Zac0511 acfa912cde Update README.fr.md 2024-11-08 10:17:55 +01:00
Zac0511 bb3b38c9ed Update README.fr.md
Added a link to Puter.com
2024-11-08 10:12:58 +01:00
KernelDeimos 28adcf533f feat(ai): add xAI grok-beta 2024-11-07 15:01:13 -05:00
KernelDeimos d613c5fc83 log: when app is launched 2024-11-07 14:27:02 -05:00
KernelDeimos 5caa2c0e3a fix: logging in AppConnection 2024-11-07 14:26:30 -05:00
KernelDeimos 5d416e2316 refactor: simplify module constructors
This was a really small refactor - about 30mins - that moves the concern
of common constructor args for modules outside of each individual call.

A Context object is now used for common constructor arguments. Some of
the values on this object - such as APIOrigin and authToken - are
following values on the instance of the Puter class. This means that for
some modules it is already possible to eliminate the setAuthToken and
setAPIOrigin listeners (out of scope for this commit). Any which remain
could eventually be replaced with a listener on the Context object
itself.

This commit also moves the initSubmodules method to the top of the class
so that it's easier for new devs to find, in case they're looking into
an issue on a specific module rather than the Puter class itself.
2024-11-07 13:29:18 -05:00
Nariman Jelveh 63d6573fba docs: add link to Self-Hosting Documentation in README.md 2024-11-06 17:34:32 -08:00
jelveh 1a6d648a6e fix: persist clock visibility change 2024-11-05 18:31:03 -08:00
KernelDeimos ba2eb716f5 dev: add prefix logger 2024-11-05 15:57:55 -05:00
KernelDeimos da0022abf0 feat: add puter.auth.whoami() 2024-11-05 15:49:51 -05:00
KernelDeimos 755736edee feat: add puter.log 2024-11-05 15:31:44 -05:00
KernelDeimos e71fe11e32 dev: add toggle logging, and fix issues in logger 2024-11-05 15:31:17 -05:00
KernelDeimos b0cbcdf743 dev: add logger to putility 2024-11-05 15:03:21 -05:00
KernelDeimos fe8d6af1b5 sync: update claude model (take 2) 2024-11-04 22:46:57 -05:00
KernelDeimos 52a54d2248 sync: update claude model 2024-11-04 22:28:34 -05:00
jelveh 9263cbaedd Merge branch 'main' of https://github.com/heyputer/puter 2024-11-04 17:33:13 -08:00
jelveh 9590bbdad1 fix: don't access metadata.credentialless if it doesn't exist 2024-11-04 17:33:08 -08:00
KernelDeimos 16b9f09e66 fix: reinitialize settings tabs for DOM events 2024-11-04 19:25:04 -05:00
KernelDeimos 856688f884 dev: add database and config access for extensions 2024-11-04 16:42:42 -05:00
jelveh c44b9ab8d5 fix: use correct cursor when hovering over sidebar items 2024-11-04 10:08:11 -08:00
jelveh 79cff7ba29 Update style.css 2024-11-04 09:33:48 -08:00
jelveh 4e7979b50e Update style.css 2024-11-03 20:57:53 -08:00
jelveh 1056231004 feat: collapsible sidebar menu in Dev Center 2024-11-03 20:50:46 -08:00
jelveh 06d5dd763d tweak: dev center table visible when overflowing 2024-11-03 20:13:35 -08:00
jelveh 666912a8a3 revert style update 2024-11-03 17:20:09 -08:00
jelveh 452e3383e8 Update style.css 2024-11-03 17:18:12 -08:00
jelveh 05950b0fc3 tweak: automatically update sidebar_items every 2 seconds 2024-11-03 17:13:24 -08:00
jelveh 2e122c2cab Update style.css 2024-11-03 16:16:00 -08:00
jelveh ff30de1d69 feat: customize the order of Explorer sidebar items 2024-11-03 16:00:39 -08:00
jelveh 121043d312 fix: issue with context menu divider item stealing the event from previous item 2024-11-02 18:54:30 -07:00
jelveh 0315cb3337 fix: issue with non-scrollable window body and document Context Menu 2024-11-02 17:51:07 -07:00
KernelDeimos 05573dad51 tweak: load mods from extensions directory 2024-11-01 19:29:16 -04:00
KernelDeimos f836ac30a9 fix: temporary fix because .on can't call ensure_service 2024-11-01 18:21:05 -04:00
KernelDeimos 84989367a7 dev: hook extensions into service event bus 2024-11-01 17:42:12 -04:00
KernelDeimos 58f34b948a dev: simplify module/extension setup 2024-11-01 16:13:00 -04:00
KernelDeimos 7569e8a703 tweak: endpoints are authorized by default 2024-11-01 15:43:40 -04:00
KernelDeimos 4b6c70fa5e dev: expose more core definitions to extensions 2024-11-01 15:43:27 -04:00
KernelDeimos a614145250 dev: run npm install after copying extensions 2024-11-01 15:26:39 -04:00
KernelDeimos d958c01111 dev: add support for single-file extensions 2024-11-01 14:42:42 -04:00
KernelDeimos 3f6900f26b dev: add get() and post() to extension API 2024-11-01 14:41:29 -04:00
KernelDeimos d1ebbbe3c7 chore: update kdmod package.json to avoid confusion 2024-10-31 18:20:00 -04:00
KernelDeimos 0a47daa289 fix: issues in kdmod
The kdmod module was broken since we renamed packages/ to src/. Also,
the update to mod loading for some unknown reason now requires each call
to require to end with `.js`. As far as I know, this was working
previously.
2024-10-31 18:15:41 -04:00
KernelDeimos 14d45a27ed feat: add extension API for modules
Allows modules to register a listener to the 'install' event without
creating a Module class. This changes how external modules are
installed.

External modules are now referred to as "extensions"; this commit does
not update the term but does use 'extension' as the name of the global.
2024-10-31 18:08:27 -04:00
KernelDeimos f36718005f sync: add wiki as a submodule 2024-10-31 18:08:30 -04:00
Zac0511 f2fc8ba5cf Edit "Puter version" title and description in the bug report template
A quick edit to replace "Puter version (if accessible)" by "Puter version" and a new description to say that its not required.
2024-10-31 13:54:42 -04:00
KernelDeimos 9a0c5b4f74 dev: support no-response endpoints in Collector
The no_response option is added to Collector::post. If an endpoint
returns an empty response, this option must be set to avoid a JSON parse
error.
2024-10-30 18:52:47 -04:00
Nariman Jelveh 96b64f6b53 Merge pull request #817 from djelacik/main
minor documentation fixes
2024-10-30 08:26:35 -07:00
DeveloperDaniell 05169e9e1e minor documentation fixes 2024-10-30 16:36:43 +02:00
jelveh dc478382fb tweak: don't break if contact_us is not found 2024-10-29 23:44:54 -07:00
jelveh fc5e15f2a6 feat: first extension that implements a custom user options menu 2024-10-29 22:55:26 -07:00
jelveh b018571a86 feat: add support for extensions 2024-10-29 18:37:32 -07:00
KernelDeimos 14f477a633 fix: Collector bug on undefined body 2024-10-29 18:56:11 -04:00
KernelDeimos b9625945ae dev: expose save account and email confirm 2024-10-29 18:56:11 -04:00
KernelDeimos 463c96c69a fix: hyphenize_confirm_code bug 2024-10-29 18:56:11 -04:00
KernelDeimos 38adb5741b fix: app close issue in phoenix 2024-10-29 16:19:58 -04:00
KernelDeimos b30de5bf78 fix: reading JSON string from service_usage_monthly
This was hilariously difficult to debug. This isn't the first time an
issue like this occurred; this happens because of a deviation between
mysql and sqlite, where a JSON-typed column in mysql will return as a
native object in queries, whereas a JSON-typed column in sqlite is a
string column and will therefore return as an un-parsed JSON string in
queries.
2024-10-29 13:18:53 -04:00
KernelDeimos 7ba16d1c21 fix: recently broke counting service sql 2024-10-28 19:14:15 -04:00
KernelDeimos f1087953b5 fix: ignore invalid entries from service_usage_monthly 2024-10-28 19:09:17 -04:00
KernelDeimos 193da63304 fix: service usage screen
This fixes service monthly usage counts as shown in Settings.
2024-10-28 18:47:40 -04:00
KernelDeimos c0b109d4d2 dev: add get_proxy_object to util/context 2024-10-28 15:11:26 -04:00
KernelDeimos 3649dff9aa dev: add module lib installation to useapi 2024-10-28 15:11:26 -04:00
jelveh 3d85edf537 Update UIWindow.js 2024-10-27 21:33:08 -07:00
jelveh 54ae69b7b7 feat: add an 'Upload' button at the bottom of OpenFilePicker 2024-10-27 21:32:39 -07:00
jelveh cd8a080d72 tweak: user-friendly badges for apps in Dev Center 2024-10-27 21:09:18 -07:00
Nariman Jelveh b7c50fc2bb docs: add Garry's Mod to #DoesItRunPuter 2024-10-27 15:58:54 -07:00
jelveh af511c05e3 feat: Allow apps to toggle credentialless via Dev Center 2024-10-27 14:44:06 -07:00
KernelDeimos 4dc1e01682 fix: continue work on blocked_email_domains (2) 2024-10-27 15:46:21 -04:00
jelveh 161be7fe6b remove 'About' from taskbar apps 2024-10-26 09:56:57 -07:00
KernelDeimos 515051dabf fix: continue work on blocked_email_domains 2024-10-26 03:28:45 -04:00
KernelDeimos c22a69ffb1 fix: errors thrown by launch_app
Fixes errors that were noticed being thrown by launch_app, specifically
in the branch of logic when launch_app is called NOT via ExecService.
This branch of logic was added to fix an issue where notepad wasn't
prompting to save unsaved changes on close because data-appusessdk was
not properly set to true. The fix still worked, despite throwing these
errors, because setting data-appUsesSDK to true is the first thing it
does. However, broadcast messages to apps launched with launch_app NOT
via ExecService would have been broken.
2024-10-26 03:07:02 -04:00
jelveh a9bbcf908d Update style.css 2024-10-25 11:36:50 -07:00
KernelDeimos f3a9e784a3 dev: add can iterate check 2024-10-25 14:27:42 -04:00
KernelDeimos b98c5a349e dev: make anti-csrf more convenient 2024-10-24 23:11:07 -04:00
KernelDeimos f55b7ac0b8 dev: ensure existing app tokens don't break (for now) 2024-10-24 19:54:29 -04:00
KernelDeimos 6b8fbda14c dev: allow app tokens to identify user sessions 2024-10-24 19:51:54 -04:00
KernelDeimos bc51d4bd52 fix: notepad save issue 2024-10-24 02:28:19 -04:00
KernelDeimos 87f7fc0265 tweak: clarify blocked domain message 2024-10-24 00:57:21 -04:00
KernelDeimos 955b087297 feat: add config for blocked email domains 2024-10-24 00:38:40 -04:00
KernelDeimos 988039eade dev: src prop for images 2024-10-23 22:59:18 -04:00
KernelDeimos 25e9ed8227 dev: make el() yet more convenient 2024-10-23 01:08:16 -04:00
KernelDeimos 5965ab5de0 dev: allow UIElement to be used as settings tab 2024-10-22 23:55:42 -04:00
KernelDeimos 0bb80d2933 doc: add todo regarding /whoami 2024-10-22 21:54:48 -04:00
KernelDeimos 37bb98b965 dev(gui): add UIElement 2024-10-22 21:54:48 -04:00
jelveh 37aa2b1d06 tweak: improve the usage bar visibility 2024-10-22 17:39:38 -07:00
jelveh 4e8c7455aa tweak: Move clock settings to the 'Personalization' tab of 'Settings' 2024-10-22 17:18:16 -07:00
jelveh 6f702c3927 Going to /settings will open the Settings in full page mode 2024-10-22 16:46:06 -07:00
KernelDeimos c6bc42f551 fix: height 100% on flexer and step view 2024-10-22 18:10:16 -04:00
KernelDeimos 368c20cf57 dev: updates and URL collector 2024-10-21 22:57:25 -04:00
KernelDeimos 12e0cecf02 fix: wait no 2024-10-21 18:12:08 -04:00
KernelDeimos c8f913d710 fix: phoenix incorrect lookup order 2024-10-21 18:07:45 -04:00
ProgrammerIn-wonderland 891e799e5e WIP symlink, net_device virtio, move fixes, upload binary fixes 2024-10-21 17:04:57 -04:00
jelveh 13248a99bf feat: add support for fadeIn effect for UIWindow 2024-10-21 07:48:06 -07:00
jelveh 99ce3bde19 fix: turns out we don't support utm_source I learn something new about Puter every day! 2024-10-20 20:42:34 -07:00
jelveh 5e27055215 tweak: add utm_source to GitHub link 2024-10-20 20:26:31 -07:00
jelveh 920a2f2427 tweak: make backdrop darker to increase focus on active window 2024-10-20 20:15:19 -07:00
KernelDeimos 60fdce9052 sync: put app-center in the taskbar 2024-10-20 20:30:35 -04:00
KernelDeimos 8b1a935c93 sync: developer is in /dist now 2024-10-20 20:30:11 -04:00
KernelDeimos e0b9072129 fix: issue with service scripts that use TestView 2024-10-19 21:17:57 -04:00
Nariman Jelveh 90e7098cc7 Merge pull request #787 from 4nshuman/issue/zip-operation
Issue/zip operation
2024-10-19 15:45:39 -07:00
KernelDeimos b5535ae3ca dev: add dev2 env 2024-10-19 18:22:09 -04:00
KernelDeimos 0fb4f73d76 chore: remove noisy logs 2024-10-19 17:31:46 -04:00
4nshuman 63b4da5be8 connected upload's inbuilt progress counter 2024-10-20 02:07:07 +05:30
4nshuman fabc21ecf7 fixed sorting logic on directory list 2024-10-20 02:00:58 +05:30
4nshuman a646b02e45 provide incremental directories to mkdir 2024-10-20 02:00:35 +05:30
jelveh c29122c23f tweak: use different icons for system directories in the sidebar 2024-10-19 12:59:24 -07:00
4nshuman 4fdea7db66 offloaded write operations to Upload module 2024-10-20 00:06:30 +05:30
4nshuman f32b1cfce8 added option to create parent directories for programmatic file drops 2024-10-20 00:05:40 +05:30
4nshuman fc461c8735 added absolute file path processing 2024-10-20 00:04:36 +05:30
4nshuman d39b7a8972 record unique directory list 2024-10-19 23:52:21 +05:30
jelveh 74baab49f4 tweak: improve welcome window footer link color 2024-10-19 10:35:56 -07:00
jelveh 564ff65363 feat: welcome screen to quickly explain what Puter is 2024-10-19 10:28:03 -07:00
KernelDeimos 480d996279 dev: proof-of-concept for fs postMessage relay
Adds a filesystem relay service to GUI-side which currently reports an
exmaple fsentry for /stat and /readdir. Added filesystem services for
both sides. Moved filesystem implementations from src/modules to src/lib
since they're being called by services now rather than modules.

This functionality is effectively disabled unless
src/puter-js/src/services/Filesystem.js is updated to use init_app_fs_()
when the environment is 'app'.
2024-10-19 03:46:47 -04:00
KernelDeimos 6e5d5c2021 dev: clone property descriptors in Context 2024-10-19 03:45:41 -04:00
KernelDeimos c2a475f3c0 dev: lay the groundwork for client FS relay
Adds XDIncomingService to manage messages from another window. IPC now
registers with XDIncoming and reports whether it was handled, that way
messages intended to reach GUI can be reliably ignored.

On GUI-side, XDIncomingService will be used by FSRelayService (not yet
implemented) to handle requests for filesystem operations from another
window.

On App-side, XDIncomingService might be used by the PostMessageFS
client-side filesystem implementation terminal to listen for filesystem
events that were relayed by GUI (after a permission check) from their
original websocket source. Either that, or we'll open a filesystem
socket for each app using that app's token.

NoPuterYetService was added because IPC.js is loaded before
globalThis.puter exists, and was the easiest way to still allow IPC's
listener to be registered with XDIncomingService.

APIAccessService was added. This service currently holds auth_token and
api_token and does nothing else. FilesystemService listens to this to
maintain a websocket connection. APIAccessService will help to manage
the complexity of all further code dependent on being informed about
changes to the auth token or origin. Currently in puter.js these are
passed around to several modules which manage the same piece of state
information independantly.
2024-10-18 23:10:19 -04:00
KernelDeimos bc5d09fe31 dev: hooks and sequencing functions for ServiceManager 2024-10-18 23:10:19 -04:00
jelveh 2f6f2b7d7c Set autoDedupe to true for creating new apps in Dev Center 2024-10-18 18:44:06 -07:00
KernelDeimos 143cfb5654 fix: 1954f8-related issue #2
mkdir operation was passing user instead if actor. I really think I
changed this already; getting a crazy deja-vu feeling about it. Maybe a
commit was lost somewhere along the road, but not sure.
2024-10-18 21:24:05 -04:00
jelveh b1411cd622 Add dedupeName for to puter.apps and Dev Center 2024-10-18 18:02:37 -07:00
jelveh 8ed5db1734 Merge branch 'main' of https://github.com/heyputer/puter 2024-10-18 17:50:25 -07:00
jelveh 14fc963dd4 Show approval badges and lock in Dev Center 2024-10-18 17:48:14 -07:00
KernelDeimos b9c157b28e tweak: start from 1 2024-10-18 20:48:09 -04:00
KernelDeimos 66e8b37f70 dev: add dedupe_name option for app creation 2024-10-18 20:42:41 -04:00
KernelDeimos 4ce2dccc76 dev: update app approved_for props visibility
Allows owner users to read the approved_for properties on their own apps
2024-10-18 20:12:19 -04:00
KernelDeimos f5865daede fix: 1954f8-related issue
get-user-app-token was calling ll_mkdir with 'user' instead of 'actor'
2024-10-18 19:58:44 -04:00
KernelDeimos 1954f86680 fix(security): always use actor 2024-10-18 19:15:40 -04:00
KernelDeimos 94e15dbfa8 test: fix topics test and ServiceManager 2024-10-18 19:13:06 -04:00
jelveh 598a08ec45 Allow users to cancel a deploy operation before start 2024-10-18 16:07:01 -07:00
KernelDeimos 3c5d2af8c8 fix: small issue in Service.js 2024-10-18 15:53:40 -04:00
jelveh 29f5820129 Fix settings sidebar margin 2024-10-18 12:45:27 -07:00
KernelDeimos fb1216d488 fix: prevent code from breaking just because it was bundled 2024-10-18 15:06:08 -04:00
KernelDeimos 7922314840 dev: add generic pub/sub system for use anywhere
Dispatching and listening to events is non-trivial. The apparent
triviality is in implementing a list of listeners and calling them. The
non-triviality is in the nature of what happens to a system when it has
multiple different interfaces to register listeners and publish events.

This commit adds TopicsFeature, which allows any class extending
AdvancedBase to declare topics. A topic is a simple pub/sub channel.
TopicsFeature will manage the state of listeners so the class doesn't
need to. A GC-friendly mechanism for detaching listeners is also provided.
2024-10-17 22:56:00 -04:00
KernelDeimos 9b1f1817f5 dev: move service interface to trait 2024-10-17 22:56:00 -04:00
KernelDeimos 273a51fc53 dev: add ServiceManager
The ServiceManager will replace manual management of services within
initgui, and will also be used within puter.js. Eventually Puter's
backend might use this instead of the existing Container class, although
this will be a large change that needs to be done incrementally.

The difference between ServiceManager and Container is the logic behind
when initialization occurs. Rather than have all services initialized at
once when Container's init() method is called, services are initialized
as soon as their dependencies have been initialized.
2024-10-17 22:56:00 -04:00
jelveh 2a81825a6b Update default apps in the Launch menu 2024-10-17 16:14:24 -07:00
KernelDeimos 9535100c85 doc: add brainstorming for mountpoints 2024-10-17 03:00:35 -04:00
KernelDeimos 7980aafbd9 doc: add devlog from puter.js 2024-10-17 01:19:06 -04:00
ProgrammerIn-wonderland f0b7214a07 working persistence 2024-10-15 18:30:08 -04:00
ProgrammerIn-wonderland aae6fff340 adding locking to puter-save 2024-10-15 18:30:08 -04:00
ProgrammerIn-wonderland f0bc10f1e8 WIP persistence 2024-10-15 18:30:08 -04:00
KernelDeimos 1ea6d270f8 dev: add endpoint for GUI to query app file access 2024-10-15 16:19:11 -04:00
KernelDeimos fd7bd339ca dev: add Context to putility 2024-10-15 16:17:37 -04:00
Nariman Jelveh a2216aaea2 Merge pull request #805 from lohitkotni/patch-1
Update README.te.md
2024-10-14 20:53:37 -07:00
Surya Lohith Kotni a8e843297e Update README.te.md
fixed typo
2024-10-15 09:20:10 +05:30
Ibrahim H. 12a38b8258 Show a badge on README 2024-10-14 22:18:36 -04:00
Ibrahim H. f9b9565dab Create test workflow
basic test workflow setup, this allows checking that everything is fine on node v18 up to v22.
2024-10-14 22:18:36 -04:00
Zac0511 40f8634f24 Update bug_report.yaml 2024-10-14 22:16:04 -04:00
Zac0511 a22d9199f3 Update bug_report.yaml 2024-10-14 22:16:04 -04:00
Zac0511 551aed30be Update bug_report.yaml 2024-10-14 22:16:04 -04:00
Zac0511 0cd8404e87 Update and rename bug_report.md to bug_report.yaml 2024-10-14 22:16:04 -04:00
KernelDeimos 149684de01 dev: allow emulator app to access user files 2024-10-14 15:46:19 -04:00
KernelDeimos 9e88096e7e clean: remove a console.log 2024-10-14 15:19:52 -04:00
KernelDeimos e011df1a20 move: PuterAPIFilesystem 2024-10-14 15:19:18 -04:00
Nariman Jelveh 0f5f8bc591 Merge pull request #803 from lohitkotni/main
added telugu language translation
2024-10-14 09:20:57 -07:00
KernelDeimos 6d23369512 sync: add new page 2024-10-14 12:18:04 -04:00
loko 14bd643d4f added telugu language translation 2024-10-14 21:40:57 +05:30
KernelDeimos 3762037576 dev: oops 2024-10-12 00:01:33 -04:00
KernelDeimos 11fbcb27b0 dev: cache readdir 2024-10-11 23:51:38 -04:00
KernelDeimos 77f6bdcd6d dev: make puter.fs cache togglable 2024-10-11 18:39:58 -04:00
KernelDeimos 6ee7caaee1 dev: apply TTL cache for stat entries
Adds CachedFilesystem layer to client filesystem chain. Currently only
stat is implemented. The stat implementation will hold onto an entry for
3 seconds as per hardcoded configuration. Eventually, once invalidation
via websockets is working, this TTL should be extended.
2024-10-11 18:39:58 -04:00
KernelDeimos fc9a371e09 dev: add more to NariMethodsFeature 2024-10-11 18:39:58 -04:00
KernelDeimos 43c5402b7c feat(putility): trait method override support
Support for trait method overrides will make it possible to use putility
traits with the decorator pattern while using a proxy class to avoid
redundant re-implementation of proxy methods.

Use of the pattern described above will occur in the implementation of
client-side filesystem caching.
2024-10-11 18:39:58 -04:00
KernelDeimos c12ae2a923 dev: prepare puter.js fs for decorator pattern
- de-coupled xhr callback passing from the interface of the underlying
  filesystem implementation.
- This makes the interface to delegate calls more suitable for use with
  the decorator pattern.
- The decorator pattern will be used to manage the complexity of the
  caching layer by separating the concerns of different caching methods.
2024-10-11 18:39:58 -04:00
ProgrammerIn-wonderland 4f8304ec15 switch ne2k_pci to virtio 2024-10-11 18:14:38 -04:00
ProgrammerIn-wonderland d9805c0cab delete prompt-path 2024-10-11 17:06:32 -04:00
ProgrammerIn-wonderland fb41d2a51c change PWD to not use prompt-path and fix unicode issues 2024-10-11 17:06:32 -04:00
KernelDeimos 010282edf2 fix: don't display all apps for extensionless files
This hides database entries with empty types from the list of suggested
apps for files that have no extension. These entries should also be
removed from the database and the bug causing them should be fixed in
dev center.
2024-10-11 14:51:52 -04:00
KernelDeimos 38dcb60d3f fix: creating app shortcut in self-hosted
For some reason ll_write has an undefined `actor` when clicking "Add
Shortcut to Desktop" from Dev Center. This should be investigated
further.
2024-10-11 14:50:35 -04:00
Nariman Jelveh 3157186f4f close #798 2024-10-10 17:40:17 -07:00
KernelDeimos d4b96a17c8 dev: add RWLock to putility 2024-10-10 18:47:07 -04:00
KernelDeimos 37e7b6ad70 fix: disable thumbnails for AppData uploads 2024-10-10 15:03:22 -04:00
KernelDeimos 823ab28448 test: update test invocation 2024-10-10 03:19:28 -04:00
ProgrammerIn-wonderland b8490248c5 update 9p-puter driver with error handling 2024-10-09 20:36:03 -04:00
ProgrammerIn-wonderland 1e7e516d73 change submodule url 2024-10-09 20:36:03 -04:00
ProgrammerIn-wonderland 979bd06d70 9p automounting 2024-10-09 20:36:03 -04:00
ProgrammerIn-wonderland b145e30a90 feat: v86 9p server support 2024-10-09 20:36:03 -04:00
Nariman Jelveh d449367db5 Update loading.svg 2024-10-09 10:04:09 -07:00
Nariman Jelveh 9890e3a8be close #771 2024-10-08 19:51:57 -07:00
Nariman Jelveh d0940ccd21 close #776 2024-10-08 18:59:14 -07:00
KernelDeimos 0b9a9eec99 doc: oops 2024-10-08 18:41:01 -04:00
KernelDeimos 57d6da0858 doc: add scratch.md 2024-10-08 18:39:55 -04:00
KernelDeimos 7f1b870d30 feat: support readdir for directory symlinks 2024-10-08 18:31:39 -04:00
KernelDeimos c2a9506b48 fix: thumbnail service updates 2024-10-08 01:41:18 -04:00
ProgrammerIn-wonderland ed0a83ca9d dev: update v86, switch twisp to epoxy-server with twisp feature 2024-10-07 22:04:41 -04:00
4nshuman 857c3b88b3 added fflate to lint check 2024-10-06 21:27:03 +05:30
4nshuman 822d850513 purge JSZip 2024-10-06 21:25:46 +05:30
4nshuman e252567c88 Added progress dialog details 2024-10-06 21:19:42 +05:30
4nshuman f0f8e454f9 added Promises to handle multiple file creation and closing progress dialog 2024-10-06 20:27:12 +05:30
4nshuman a09dd29416 added empty directory check and file creation 2024-10-06 20:25:40 +05:30
4nshuman e992e4d5d4 unzipped directory creation 2024-10-06 20:25:10 +05:30
4nshuman 2a82579eb8 added unzip error handler 2024-10-06 20:23:10 +05:30
4nshuman a79cc040e8 implemented fflate unzip operation 2024-10-06 20:22:50 +05:30
4nshuman e5f0f46633 added blob to uInt8Array conversion 2024-10-06 20:22:07 +05:30
4nshuman 9a2e701683 eleminate JSZip invocation 2024-10-06 20:21:29 +05:30
4nshuman 00f2dbdcf0 added window hide delay config 2024-10-06 20:18:30 +05:30
4nshuman b9d7a1d2a1 added zip support for empty directories 2024-10-06 17:33:30 +05:30
4nshuman b9b8229099 fixed comments phrasing 2024-10-06 16:19:46 +05:30
4nshuman 5b477c2cac fixed module name 2024-10-06 16:10:40 +05:30
4nshuman 09d10cb29b rectified progress window for unzip operation 2024-10-06 16:03:09 +05:30
4nshuman f6541fc793 convention implemented definition header 2024-10-06 16:01:18 +05:30
4nshuman deb8c4e13b added status message terms 2024-10-06 16:00:01 +05:30
4nshuman a93236118f redirected unzip to helper method 2024-10-06 15:32:31 +05:30
4nshuman a9bebdd7f0 fixed typo 2024-10-06 15:26:26 +05:30
4nshuman dfe71d5965 modified zipping operationand integrated fflate 2024-10-05 23:47:22 +05:30
4nshuman f05f7454e9 added helper method to convert binary large object to uInt8Array for zipping operations 2024-10-05 23:45:54 +05:30
4nshuman 582c411c00 added fflate min js to the library 2024-10-05 23:44:04 +05:30
4nshuman f3625ed907 added terms for status message on zip operation 2024-10-05 23:43:43 +05:30
4nshuman 4c7b75ed67 added fflate on static asset and libPath 2024-10-05 23:43:15 +05:30
4nshuman 1929aaf5ef added fflate on libPath on puter-gui 2024-10-05 23:42:43 +05:30
4nshuman 01aaa07e87 added zip progress counter configurations 2024-10-05 23:41:45 +05:30
KernelDeimos c7b08d1b5e doc: tweak 2024-10-04 16:09:02 -04:00
KernelDeimos 1e0b8cfe7c doc: add troubleshooting steps for no build-essentials 2024-10-04 16:02:05 -04:00
KernelDeimos c135649551 move: notes.md 2024-10-03 18:20:51 -04:00
KernelDeimos 196531d118 dev: update handling of duplicate emails 2024-10-03 17:04:47 -04:00
KernelDeimos 822f3b8c45 dev: add notes and some updates to email logic 2024-10-03 14:54:40 -04:00
KernelDeimos 2c3065a70f test: register test for CleanEmailService 2024-10-02 21:30:14 -04:00
KernelDeimos 054b9c2864 dev: add service for cleaning email addresses 2024-10-02 17:51:43 -04:00
KernelDeimos 9db55fc5f7 fix: remove redundant openai model fallback 2024-10-02 15:14:46 -04:00
KernelDeimos 29fd595cf9 dev: rootfs-v0.2.0 2024-10-02 15:13:57 -04:00
KernelDeimos 9985996686 fix: app pseudonym in wrong conditional block 2024-09-30 20:38:25 -04:00
KernelDeimos 4febd81169 dev: app pseudonyms 2024-09-30 19:35:34 -04:00
KernelDeimos 8bc4122bea tweak: change phoenix help text when launched with -c 2024-09-30 19:16:10 -04:00
KernelDeimos 5ed8823a16 tidy: remove a console log 2024-09-30 18:11:25 -04:00
KernelDeimos 5317adf8a4 feat: allow passing cli args via url 2024-09-30 18:09:28 -04:00
KernelDeimos b6c0cb6abc feat: add -c flag for phoenix 2024-09-30 16:50:18 -04:00
KernelDeimos 6e1ed7ab04 dev: update emu load indicator 2024-09-30 16:50:03 -04:00
KernelDeimos 04c05a5bb8 fix: properly add owner object to fsentries 2024-09-27 16:30:13 -04:00
KernelDeimos a70d0dd088 fix: add progress bar fix 2024-09-27 15:08:19 -04:00
KernelDeimos eab2721f89 dev: use streaming decompression 2024-09-26 18:49:29 -04:00
KernelDeimos 545ac0097f tweak: ascii tux (important) 2024-09-26 18:28:13 -04:00
KernelDeimos 45cd3b79bb tweak: disable grace period by default 2024-09-26 15:47:47 -04:00
KernelDeimos 259877b677 fix: allow ETX to propagate to bash 2024-09-26 15:47:35 -04:00
KernelDeimos 08601ae2af feat: progress indicator for emulator 2024-09-25 23:47:10 -04:00
KernelDeimos d0535cf10b dev: add wasm bench 2024-09-25 21:45:03 -04:00
KernelDeimos fff8993200 fix: error deleting entry from My Websites window
This could not be tested locally due to another but only affecting
self-hosted installations. This will be tested in staging in the
meantime while the other bug is being fixed.
2024-09-23 17:55:54 -04:00
KernelDeimos b1b725a2eb tweak: image from CDN (for real this time) 2024-09-23 15:07:26 -04:00
KernelDeimos 68c4274dc3 tweak: image from CDN 2024-09-23 14:54:01 -04:00
Nariman Jelveh 288411c377 Update style.css 2024-09-22 15:46:48 -07:00
KernelDeimos 27b66254e3 dev: compress default image with brotli 2024-09-22 17:49:00 -04:00
Nariman Jelveh 3ce8da37eb close #772 2024-09-22 12:40:38 -07:00
KernelDeimos 07d3592d88 tweak: don't auto-start puter-linux for now 2024-09-21 15:39:19 -04:00
Nariman Jelveh 18fed60341 Merge pull request #770 from ruthwikchikoti/issue#736
feat: translate README.md to Dutch
2024-09-21 12:15:48 -07:00
Ruthwik Chikoti 31e2773743 feat: translate README.md to Dutch 2024-09-21 18:21:27 +05:30
Nariman Jelveh bd91839551 Don't allow background processes to change the browser's URL 2024-09-19 17:41:37 -07:00
KernelDeimos 4311b482fd fix: second half of connectToInstance 2024-09-18 21:02:51 -04:00
KernelDeimos cb324cc125 fix: error in process.handle_connection 2024-09-18 20:55:00 -04:00
KernelDeimos f4dd195245 dev: fix previous commit 2024-09-18 17:04:48 -04:00
KernelDeimos afc0ac8548 dev: attempt to fix process select issue 2024-09-18 17:01:02 -04:00
KernelDeimos 439653458e fix: quick patch to avoid columnify error 2024-09-18 16:22:26 -04:00
KernelDeimos 0456893789 dev: add emulator prod deployment 2024-09-18 16:21:07 -04:00
KernelDeimos f2acd83b72 fix: upsert subdomain check to insert only 2024-09-18 16:21:07 -04:00
KernelDeimos e3431cd7f5 dev: add build script for relay 2024-09-18 16:21:07 -04:00
KernelDeimos 48873b6d23 git: add epoxy-tls submodule 2024-09-18 16:21:07 -04:00
KernelDeimos 8aed3d9454 dev: prep for network build 2024-09-18 16:21:07 -04:00
KernelDeimos 25817bf6a2 dev: add puter-linux app to db migrations 2024-09-18 16:21:07 -04:00
KernelDeimos 4589ed95be dev: handle pty close
Return to phoenix shell when a pty stream is closed by twisp.

Pipes in phoenix with commands from the emulator do not appear to be
working properly, but something in there is working.
2024-09-18 16:21:07 -04:00
KernelDeimos 404fbaa4cb dev: add terminal multiplexing
This involves establishing the protocol through which phoenix instances
run a command on the emulator. The pty is able to communicate with the
terminal in both directions. This commit adds logs to be removed later.

There are a few things left that this commit does not address:
- handling close of delegate process
- handling sigint from phoenix to delegate process
- closing the connection to twisp
2024-09-18 16:21:07 -04:00
KernelDeimos bc83e90e33 tweak: use virtualization-optimized kernel 2024-09-18 16:21:07 -04:00
KernelDeimos e3d4a5f3b3 dev: multi-instance many-to-many app-to-app comms
I'll elaborate here because the commit name is confusing. Any time an
app gets a connection to another app, either because it launched that
app (or was launched by that app) or requested a connection to that app,
the ID the app gets to represent the app it's communicating with is now
a pseudo app id rather than the app instance ID. This accomplishes two
things:

1. It's more secure. There are multiple places where GUI assumes that
   knowing an app's instance ID means you can do things as that app.
2. Between the same two apps, there may now be more than one connection.
   This is useful for situations like Phoenix shell talking to the
   emulator in multiple separate instances to pipe commands. (this is
   coming later)
2024-09-18 16:21:07 -04:00
KernelDeimos 62634b0afe feat: add connectToInstance method to puter.ui 2024-09-18 16:21:07 -04:00
KernelDeimos e2cb6194bb dev: add startup apps, start emulator by default 2024-09-18 16:21:07 -04:00
KernelDeimos e1ec84877a dev: resize handling 2024-09-18 16:21:07 -04:00
KernelDeimos db3e0b5ce8 fix: simplify callback listener and fix async bug 2024-09-18 16:21:07 -04:00
KernelDeimos 21383eec3c dev: get basic PTY integration working 2024-09-18 16:21:07 -04:00
KernelDeimos 28adc4e5d5 dev: add emulator page 2024-09-18 16:21:07 -04:00
KernelDeimos 41e7526372 dev: add twisp submodule 2024-09-18 16:21:07 -04:00
KernelDeimos 2c0b8428c5 dev: add emulator image build 2024-09-18 16:21:07 -04:00
Nariman Jelveh 95112a9de6 Merge pull request #765 from 4nshuman/issue/737
Added Swedish translation | Other fixes
2024-09-14 09:32:10 -07:00
4nshuman cadd7453c4 added german translation link to the list 2024-09-14 20:17:02 +05:30
4nshuman 50c6e74f99 added swedish translation to the list 2024-09-14 20:16:35 +05:30
4nshuman a45def27a5 fixed translation list alphabetical order 2024-09-14 20:15:59 +05:30
4nshuman 8f6b3c07a9 added swedish translation file 2024-09-14 20:15:09 +05:30
4nshuman cc794fb70b added translation for german alt on image tag 2024-09-14 20:14:52 +05:30
Nariman Jelveh 480a1c440c Merge pull request #763 from bibekp-dev/Issue670/EnglishToGerman
Issue670/english to german
2024-09-12 09:48:08 -07:00
Bibek Panda c204cd366a Created and updated README.de.md for English To German Translation
German translation changes are committed in README.de.md file
2024-09-12 13:03:07 +05:30
Bibek Panda c0b3010192 Create README.de.md 2024-09-12 12:58:03 +05:30
Nariman Jelveh 58040c7596 Merge pull request #762 from the-heidi/patch-1 2024-09-11 20:35:20 -07:00
the-heidi 0743189ddb Update README.ko.md to fix phrasing issues 2024-09-11 20:30:38 -07:00
KernelDeimos 33de98107f fix: email change on account with unverified email
Changing the email address on an account that did not already have a
confirmed email would result in the email_confirmed column never being
set. This commit fixes that.

Additionally, an SQL statement using the unconfirmed email to identify a
row was changed so it now uses the user ID instead, which is safer.

Resolves: 759
2024-09-10 14:04:32 -04:00
Nariman Jelveh d38fb9f0e1 Update README.md 2024-09-10 08:59:41 -07:00
Nariman Jelveh 351b8cca3b Merge pull request #760 from gyarfasB/huntext
feat: hungarian readme translation
2024-09-10 08:53:59 -07:00
Gyárfás Balázs 89d11e3b0f translation-hun-readme 2024-09-10 14:02:10 +02:00
Nariman Jelveh a4a349a64a Update README.md 2024-09-07 09:50:04 -07:00
Nariman Jelveh 11ddbf70c8 Add link to Ukrainian README from the English README 2024-09-07 09:49:40 -07:00
Nariman Jelveh 6e7def5a66 Merge pull request #757 from SergiyZyuzko/translation/ukrainian
Ukrainian Translation added
2024-09-07 09:47:02 -07:00
Sergiy abb44b6d68 Ukrainian Translation added 2024-09-07 16:41:31 +00:00
KernelDeimos cc4ab1cb36 fix: html-webpack-plugin dev dep 2024-09-04 23:56:23 -04:00
KernelDeimos 6bdcae769d fix: double-echo in phoenix 2024-09-04 23:56:23 -04:00
KernelDeimos a33d721e21 fix phoenix WINSZ handling 2024-09-04 23:56:23 -04:00
Nariman Jelveh 7139d29749 Add link to Malayalam README in the English README 2024-09-04 22:03:26 -04:00
Nariman Jelveh 9e988eb012 Merge pull request #753 from rinogodson/malayalam-translation
Add Malayalam translation to README.md
2024-09-04 21:59:43 -04:00
Rino Godson 72c90778e8 Add Malayalam translation to README.md 2024-09-05 07:12:27 +05:30
Nariman Jelveh 64597e28fb temporarily remove lang files for further testing 2024-09-03 14:56:14 -04:00
Nariman Jelveh 1c5f48d451 Merge pull request #741 from Pulkitxm/translation_Ukrainian
translate README.md to Ukrainian
2024-09-03 14:52:59 -04:00
Nariman Jelveh 43eb614499 Merge pull request #743 from Pulkitxm/translation_Dutch
Add Dutch Readme content
2024-09-03 14:52:34 -04:00
Nariman Jelveh 25bb0652b8 Merge pull request #742 from Pulkitxm/translation_Swedish
Add Swedish Readme content
2024-09-03 14:52:24 -04:00
KernelDeimos 4910838ab1 fix: webpack error reporting + unintentional whitespace changes 2024-09-03 14:44:51 -04:00
Nariman Jelveh 57c2d72e21 Update UIWindow.js 2024-09-03 14:24:58 -04:00
Nariman Jelveh 8e56ac5ec7 Update UIWindow.js 2024-09-03 14:14:19 -04:00
Nariman Jelveh 9528cb0614 Add link to Armenian README in the English README 2024-09-03 11:55:05 -04:00
Nariman Jelveh 377c9f04b1 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-09-03 11:54:03 -04:00
Nariman Jelveh 9411f994e3 Merge pull request #751 from gng92/patch-1
Create README.hy.md
2024-09-03 11:53:36 -04:00
gng92 e8713dc5a5 Create README.hy.md
Added Armenian translation for ./doc/i18n/README.en.md (issue #735 )
2024-09-03 19:44:42 +04:00
KernelDeimos ed7d6dcbfb fix: dist 2024-09-02 21:30:22 -04:00
KernelDeimos d35026467e fix: use jq el for focus 2024-09-02 20:52:46 -04:00
KernelDeimos cd39bb5aa0 fix: fix sourcemap 2024-09-02 20:50:15 -04:00
KernelDeimos d07929da1b dev: add v86 submodule and app 2024-09-02 20:49:48 -04:00
Nariman Jelveh 1f7a4782d8 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-09-02 17:44:24 -04:00
Nariman Jelveh 94ec23b4c7 Remove fa.js temporarily 2024-09-02 17:44:17 -04:00
KernelDeimos 5ab3d88393 cleanup 2024-09-02 17:37:38 -04:00
KernelDeimos 18a24f614f dev: update ipc ready and app launched events 2024-09-02 17:37:38 -04:00
Nariman Jelveh 65c23ecd93 Merge pull request #748 from Sky-De/FarsiReadme
README.en.md translated to Farsi and added to project
2024-09-02 16:02:03 -04:00
skyDe 512f22857a README.en.md translated to Farsi and added to project 2024-09-01 06:18:06 -08:00
Nariman Jelveh 8e5711bf38 add link to Hebrew README 2024-08-31 14:41:49 -04:00
Nariman Jelveh 9acbd09da9 Merge pull request #747 from OrelsProjects/issue-732-translate-readme.md-from-english-to-hebrew
Create README.he.md
2024-08-31 14:41:00 -04:00
Orelsgit 4c936197e7 Create README.he.md 2024-08-31 21:00:25 +03:00
Nariman Jelveh e58de0db84 Merge pull request #746 from fauzipadlaw/main
No need word repetition for gambar  in Indonesian
2024-08-31 13:46:09 -04:00
Muhammad Fauzi 3acabc6c79 Merge branch 'HeyPuter:main' into main 2024-08-31 23:46:25 +07:00
Muhammad Fauzi ddbb4207f2 Update Pictures translation to Gambar, no word repetition for plural
The literal translation for Pictures IS Gambar-gambar, but after reviewing how it looks on live demo Puter, this translation seems a bit off, since other word like Videos is not Video-video, documents is not Dokumen-dokumen.

So, I think it's better to just translate Pictures to Gambar only. Indonesian actually does not care about singular and plural. If we really need to emphasize it plural, we just repeat the word. Which in this context, it is not that necessary to emphasize it.
2024-08-31 23:46:06 +07:00
Pulkit 4d1dd7a6db Add Dutch Readme content 2024-08-31 12:15:07 +05:30
Pulkit 194b150636 Add Swedish Readme content 2024-08-31 12:10:07 +05:30
Pulkit fe5ee39584 Add Ukrainian Readme content 2024-08-31 12:02:58 +05:30
Nariman Jelveh e295f64a90 Update README.md 2024-08-31 00:19:04 -04:00
Nariman Jelveh bb787a9ffc Merge pull request #740 from Pulkitxm/main
translate README.md to finnish
2024-08-30 21:14:52 -07:00
Pulkit ee0f063e22 Add finnish Readme content 2024-08-31 07:50:48 +05:30
KernelDeimos c9d09a78b6 fix: remove now-redundant loadScript call 2024-08-30 15:24:01 -07:00
KernelDeimos 46a0f714d1 fix: env for dev build 2024-08-30 15:24:01 -07:00
KernelDeimos 3092300a01 fix: mistakes 2024-08-30 15:24:01 -07:00
KernelDeimos 4b8910169a fix: add env to EmitPlugin config 2024-08-30 15:24:01 -07:00
KernelDeimos 72946f920c fix: remove accidentally left-over code 2024-08-30 15:24:01 -07:00
KernelDeimos 8ad435a0ea dev: bundle gui in dev 2024-08-30 15:24:01 -07:00
Nariman Jelveh 0d01d1f800 Update package-lock.json 2024-08-29 19:45:05 -07:00
KernelDeimos a4e9c7bdd7 rename folder 2024-08-29 22:24:55 -04:00
KernelDeimos cf24c3dd2a rename 2024-08-29 22:21:07 -04:00
KernelDeimos 3361043b9d chore: rename putil 2024-08-29 14:14:35 -07:00
KernelDeimos 5f7d1f589a fix: don't var when no var 2024-08-29 17:03:51 -04:00
Nariman Jelveh d43fc62d89 Remove menu-aim from the list of statically linked libs 2024-08-29 13:33:37 -07:00
KernelDeimos 1cd21ee658 tweak: cleanup and comment 2024-08-28 19:10:35 -07:00
KernelDeimos c86df11abd dev: launchApp as registered ipc handler
Add launchApp as a registered ipc handler, which will allow communication
between iframes (apps/puter.js) to be simplified.
2024-08-28 19:10:35 -07:00
KernelDeimos 813ee95cee fix: fallback to read access in /sign 2024-08-28 17:53:36 -04:00
Nariman Jelveh fa4bef8873 Update README.md 2024-08-28 14:35:39 -07:00
Nariman Jelveh 2c3d30d119 Merge pull request #727 from EngrAdnanAhmad/README-URDU
Translated README section to Urdu with correct clickable links
2024-08-28 14:34:30 -07:00
EngrAdnanAhmad a17f8408eb Translated README section to Urdu with correct clickable links 2024-08-29 02:26:52 +05:00
Nariman Jelveh f11dd8609d Merge pull request #726 from Zac0511/main
Update README.md
2024-08-28 13:09:24 -07:00
pikagaufre 8e4962beed Update README.md 2024-08-28 20:07:12 +00:00
Nariman Jelveh 18cfef65b8 Attempt to open apps from URL only if user is authenticated and desktop is loaded 2024-08-27 20:02:01 -07:00
KernelDeimos d1d0a9cccc tweak: update license for puter-wisp 2024-08-27 22:40:27 -04:00
KernelDeimos a4766278e4 tweak: package name for @heyputer/puter-wisp 2024-08-27 22:37:22 -04:00
KernelDeimos 2d1cb0050d dev: puter-wisp 2024-08-27 22:20:32 -04:00
Nariman Jelveh 2385457d12 Remove the redundant image/ prefix in base64 encoded app icons in dev center 2024-08-27 18:04:04 -07:00
Nariman Jelveh d285c2097f use flexbox for app navbar in dev center 2024-08-27 17:34:09 -07:00
Nariman Jelveh b1c91758da Fix sort bug in dev center 2024-08-27 17:27:40 -07:00
Nariman Jelveh 45925bacb6 Improve the usability of the Settings tab in Dev Center 2024-08-27 17:11:48 -07:00
KernelDeimos aa61c3009c fix: typo in a default file 2024-08-26 17:43:33 -04:00
KernelDeimos d2c7477b3b fix(docker): ensure temp admin pass shows 2024-08-26 17:42:15 -04:00
Nariman Jelveh 683c20ca7f Add links to Korean and Polish READMEs in the English README 2024-08-26 09:22:39 -07:00
Nariman Jelveh 4eda3244de Merge pull request #719 from VinayakPaka/issue-688
translated README.en.md from English to Polish
2024-08-26 09:19:27 -07:00
Nariman Jelveh 262cbc8de2 Merge pull request #718 from yomalbalooshi/main
Added README.ar.md
2024-08-26 08:51:52 -07:00
VinayakPaka 11304d82c3 translated README.en.md from English to Polish 2024-08-26 20:34:51 +05:30
Yasmeen Albalooshi 577e0d4ed9 Update README.md to have Arabic Translation 2024-08-26 10:54:05 +03:00
Yasmeen 5857248651 Add Arabic Translation file 2024-08-26 10:49:51 +03:00
decipher 155aab57d3 Removed else statement for closing registration in signup.js 2024-08-26 04:59:08 +02:00
Nariman Jelveh da5635b576 Show an error if file containing puter.js is loaded using the file: protocol 2024-08-25 14:38:19 -07:00
KernelDeimos 9a622004ea fix: fix 500 when check-app has bad url 2024-08-25 16:54:19 -04:00
Eric Dubé d8dc3ac122 Update instructions.md 2024-08-25 16:21:48 -04:00
Nariman Jelveh cd2eb656a1 Add link to Thai README in the English README 2024-08-25 12:30:42 -07:00
Nariman Jelveh dd5eff9780 Merge pull request #717 from Panyakornk/patch-1
Create README.th.md
2024-08-25 12:21:39 -07:00
Panyakornk 28a7f0ba1f Create README.th.md 2024-08-26 01:00:44 +07:00
decipher 222d7dede3 Added configuration option for closing registration
Set config.registration_closed=true; in ./src/backend/src/config.js to close registration
2024-08-25 19:28:12 +02:00
decipher 56b73b385d Update README.md 2024-08-25 18:06:21 +02:00
decipher 9c7dc53fc9 Update README.md
Added "Installation on public server"
2024-08-25 18:03:15 +02:00
Nariman Jelveh b43ecb490a Place github link and icon in the toolbar 2024-08-24 11:41:42 -07:00
Nariman Jelveh 3a82d13985 Merge pull request #712 from catalin-lungu/feature/english-to-romanian
Fixes issue #677: Translate README.md from English to Romanian
2024-08-24 10:46:59 -07:00
Catalin ea87223c46 Fixes issue #677: Translate README.md from English to Romanian 2024-08-24 20:31:47 +03:00
Nariman Jelveh 852f2ea944 Update README.md 2024-08-23 23:09:04 -07:00
Nariman Jelveh 9b0bd4f820 Add link to Romanian README in the English README 2024-08-23 23:08:15 -07:00
Nariman Jelveh 5af56a64c1 Merge pull request #711 from Atharva089/main
Added the README.ro.md file
2024-08-23 23:06:53 -07:00
Nariman Jelveh b5e4962e71 Update README.ro.md 2024-08-23 23:06:10 -07:00
Atharva Chavan 02c2801891 Added the README.ro.md file
Translated the README.en.md file from English to Romanian language.
2024-08-24 10:50:37 +05:30
KernelDeimos eb18550f41 fix(puterai): close streams 2024-08-23 19:42:53 -04:00
KernelDeimos 5a616f67dd fix(puterjs): fix settings object check 2024-08-23 16:39:30 -04:00
KernelDeimos 7f9d1e90b1 chore(puterai): update model 2024-08-23 16:09:22 -04:00
KernelDeimos 6cf7d0ae27 doc: update CONTRIBUTING.md 2024-08-23 15:09:25 -04:00
Nariman Jelveh cdc3947585 Merge pull request #709 from fauzipadlaw/main
Add link to Indonesian in main readme
2024-08-23 10:47:06 -07:00
Muhammad Fauzi c1ac30820d Merge branch 'main' of github.com:fauzipadlaw/puter 2024-08-24 00:29:06 +07:00
Muhammad Fauzi 194d0bcc6d Add link to Indonesian Readme in the English Readme 2024-08-24 00:28:27 +07:00
Nariman Jelveh 48324735ee Merge pull request #708 from fauzipadlaw/main
Add README.id.md
2024-08-23 10:18:51 -07:00
Muhammad Fauzi a549fc86bc Add README.id.md 2024-08-24 00:05:28 +07:00
KernelDeimos 53e7a91f18 feat(puterai): add groq 2024-08-23 00:16:29 -04:00
KernelDeimos 937528f767 fix(security): signing in public folders 2024-08-22 23:48:30 -04:00
Nariman Jelveh 2d39b9be77 Update index.js 2024-08-22 20:47:02 -07:00
KernelDeimos 055c628afd feat(puterai): add mistral 2024-08-22 23:28:08 -04:00
KernelDeimos fd86934bc9 feat: add method to list models 2024-08-22 22:24:03 -04:00
Nariman Jelveh 702618f81d Add link to Tamil Readme in the English Readme 2024-08-22 12:52:17 -07:00
Nariman Jelveh 617d7d7f55 Merge pull request #706 from yanniro2/main
Add Tamil readme file
2024-08-22 12:50:50 -07:00
Nariman Jelveh ff02b7bb9f Delete .vscode/settings.json 2024-08-22 12:50:29 -07:00
Nariman Jelveh d4e955a9e0 Add link to French README in the English README 2024-08-22 11:57:53 -07:00
Nariman Jelveh 9de4067e33 Merge pull request #707 from Morraycage/feat/fr-readme
feat(readme): add french readme respecting format and styling
2024-08-22 11:56:28 -07:00
Niroyan Kugaruban 2b507d1dd0 change 2024-08-22 14:47:24 -04:00
Nariman Jelveh 766a388660 fix badge url 2024-08-22 11:45:28 -07:00
Nariman Jelveh d36ef2d770 Fix image tag for the badge 2024-08-22 11:38:19 -07:00
Sayf Roumane 02e7e27796 feat(readme): add french readme respecting format and styling 2024-08-22 20:30:43 +02:00
KernelDeimos 7600d9b07c feat: add streaming to XHR driver client 2024-08-22 14:28:43 -04:00
Niroyan Kugaruban bdd24c69a5 Add Tamil readme file 2024-08-22 13:44:12 -04:00
Nariman Jelveh fa96c6d146 Add link to Bengali README to English README 2024-08-22 08:22:18 -07:00
Nariman Jelveh 502b346039 Merge pull request #705 from Priyanshu1035/readme
Added README.bn.md
2024-08-22 08:16:23 -07:00
Nariman Jelveh 07ca9ff6ea Fix license link 2024-08-22 08:15:27 -07:00
Priyanshu1035 ae1469e760 Merge branch 'readme' of https://github.com/Priyanshu1035/puter into readme 2024-08-22 19:29:49 +05:30
Priyanshu1035 4415e76a0b readmeinbengali 2024-08-22 19:29:10 +05:30
Nariman Jelveh 67e5219639 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-08-21 20:59:51 -07:00
Nariman Jelveh 6135054b3b add stream flag to the chat() method of puter.ai 2024-08-21 20:59:42 -07:00
KernelDeimos c08b897d4a fix(puterai): adapt message role for claude 2024-08-21 23:50:09 -04:00
Nariman Jelveh 3bface8c66 if first args in puter.chat is a string, it's the prompt 2024-08-21 20:38:03 -07:00
Nariman Jelveh dadaf5e8b1 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-08-21 20:19:34 -07:00
Nariman Jelveh 43c18377eb Add support for multiple AI drivers via puter.js 2024-08-21 20:19:26 -07:00
KernelDeimos 21539a1651 tweak: let driver be called service 2024-08-21 23:18:12 -04:00
KernelDeimos bdfdf2331b feat(puterai): add togetherai 2024-08-21 23:17:02 -04:00
KernelDeimos 7b254e8676 tweak(puerai): add model parameter 2024-08-21 23:15:53 -04:00
KernelDeimos 439f52b5a3 feat(puterjs): add drivers module 2024-08-21 18:31:16 -04:00
KernelDeimos 32f0edb93a feat(api): add /lsmod 2024-08-21 18:31:16 -04:00
KernelDeimos d009cd0aaf feat(puterai): add claude 2024-08-21 18:31:16 -04:00
KernelDeimos 9d5963cdf5 feat(puterai): add streaming 2024-08-21 18:31:16 -04:00
Nariman Jelveh 2678679ab7 Correct the order of README translation links 2024-08-21 14:11:16 -07:00
Nariman Jelveh 7024e2ec91 Add ketboards.js to prod dependencies 2024-08-20 19:51:21 -07:00
Nariman Jelveh 921f522732 Remove redundant console.log 2024-08-20 19:37:35 -07:00
Nariman Jelveh 0b97bff1a2 Open public folders via URL only if deskotp has finished loading 2024-08-20 19:29:11 -07:00
Nariman Jelveh 5caf59f1bc make logger return empty string 2024-08-20 19:05:34 -07:00
KernelDeimos a002ad08e5 fix(security): remove unconfirmed_email from /whoami for apps 2024-08-20 21:42:42 -04:00
Nariman Jelveh b737570f73 Merge pull request #703 from FabioDePalma/ita
added readme file in Italian
2024-08-20 00:19:18 -07:00
FabioDePalma aa610befb1 added readme file in Italian 2024-08-20 09:05:13 +02:00
Nariman Jelveh 45d35eec72 Merge pull request #702 from Sam-SSTU/main
add Chinese, add language tag
2024-08-19 19:36:37 -07:00
Nariman Jelveh a3eb52702d Remove language badges and add link to the Chinese README inside the English README 2024-08-19 19:36:20 -07:00
Sam-SSTU fca88a82cc add Chinese, add language tag 2024-08-20 09:56:16 +08:00
KernelDeimos a7cdb70251 fix: ll_write 2024-08-19 21:27:53 -04:00
Nariman Jelveh 0705c2919f Remove redundant console.log()s 2024-08-19 15:21:51 -07:00
KernelDeimos cb4cab529a fix: don't try to sanitize null owners 2024-08-19 16:46:49 -04:00
KernelDeimos 3d92d0c619 tweak: show full scan in dev console 2024-08-19 14:50:32 -04:00
KernelDeimos 14820481b9 fix: missing key for feature flag perm check 2024-08-19 14:49:17 -04:00
KernelDeimos 6b4a19e12a fix: implicit app permissions bug 2024-08-19 00:58:23 -04:00
KernelDeimos 48fea77a20 fix: share services and features with apps 2024-08-18 22:44:27 -04:00
KernelDeimos 3819584d11 fix: admin user public folder 2024-08-18 15:55:01 -04:00
KernelDeimos 2386d87229 feat: add writable attribute to fs items 2024-08-18 15:55:01 -04:00
Nariman Jelveh fc26f88e60 Add link to the Vietnamese README in the English README 2024-08-18 11:22:17 -07:00
Nariman Jelveh d6c0af0b88 Merge pull request #700 from Priyanshu1035/readme
Added Readme in Vietnamese
2024-08-18 11:19:33 -07:00
Nariman Jelveh 625ae0eade Fix URL encoding of Vietnamese string 2024-08-18 11:18:42 -07:00
Priyanshu1035 380e946bbf updated PR to revert accidental changes 2024-08-18 23:23:58 +05:30
KernelDeimos b6b64d3bcc fix: add anti-csrf token for /revoke-session 2024-08-18 01:07:04 -04:00
KernelDeimos 9fa12d43fc fix: only show 2fa when available 2024-08-18 00:42:58 -04:00
KernelDeimos 6e325fa000 fix: requirement for email_confirmed in backend 2024-08-18 00:42:58 -04:00
Nariman Jelveh 38a6793c16 Merge pull request #698 from jsdmas/korean-language 2024-08-17 20:12:35 -07:00
JinHo Jang 11fb02c67b Create README.ko.md 2024-08-18 11:55:53 +09:00
KernelDeimos ef245b70df fix: do primary read of user after setting email_confirmed 2024-08-17 17:20:31 -04:00
KernelDeimos 0519b4a71b fix: require confirmed email for public folder 2024-08-17 16:36:59 -04:00
Nariman Jelveh 3f520e13f3 remove cover iframe for public folders 2024-08-17 12:29:32 -07:00
KernelDeimos ceecf54357 chore: sync versions 2024-08-17 15:13:12 -04:00
Nariman Jelveh 4e37064f47 fix issues public folder paths 2024-08-17 11:34:53 -07:00
Nariman Jelveh 88e8e33dc2 take into account feature flags for sharing 2024-08-17 11:11:36 -07:00
Nariman Jelveh 54d248e40b Add link to Turkish README in the English Readme 2024-08-17 09:53:38 -07:00
Nariman Jelveh 933ff7f1d0 Merge pull request #695 from emrhngngr/turkish-language
Created Read.me in Turkish.
2024-08-17 09:22:39 -07:00
Nariman Jelveh f43b52b0e1 fix the markdown link for the license 2024-08-17 09:15:00 -07:00
Emirhan 1c0adfc89a Created Read.me in Turkish. 2024-08-17 13:50:52 +03:00
KernelDeimos 4561b8937d feat: report feature flags in /whoami 2024-08-15 19:14:59 -04:00
Nariman Jelveh 8e39f41dd4 Encode Japanese string in the badge URL in README 2024-08-15 15:11:23 -07:00
Nariman Jelveh 8cb415675b Add link to Japanese README in the English Readme 2024-08-15 15:06:55 -07:00
Nariman Jelveh 276ace9f51 Merge pull request #691 from calreed-prof/main
Translate README.md to japanese
2024-08-15 15:04:24 -07:00
calreed-prof ac673cfae5 Created README.jp.md 2024-08-15 15:58:07 -06:00
Nariman Jelveh ada4bf9bbd Merge pull request #690 from abhishekpaturkar/issue-666-readme-hindi
added readme translation into hindi
2024-08-15 12:15:28 -07:00
abhishekpaturkar 70bf4bdfa1 translate README.md into hindi 2024-08-15 23:01:29 +05:30
Nariman Jelveh c5d112248a Merge pull request #689 from eltociear/patch-4
chore: update SystemFSEntryService.js
2024-08-15 08:38:46 -07:00
Ikko Eltociear Ashimine 959a0f4e39 chore: update SystemFSEntryService.js
propery -> property
2024-08-16 00:25:30 +09:00
KernelDeimos d032ab7d24 chore: update tiktoken 2024-08-14 21:08:29 -04:00
KernelDeimos a821dc67d5 tweak: add driver to implicit admin permissions 2024-08-14 19:42:57 -04:00
Nariman Jelveh 471514ea43 Add link to Spanish README in the English Readme 2024-08-14 15:05:51 -07:00
Nariman Jelveh 81cba63ea8 Merge pull request #685 from juank0205/issue-664-readme-spanish
translate README.md to spanish
2024-08-14 15:04:03 -07:00
KernelDeimos 209555c1d9 feat: make public folders a config opt-in 2024-08-14 17:20:49 -04:00
KernelDeimos 461ea3eae6 feat: add feature flag for /share 2024-08-14 17:20:49 -04:00
KernelDeimos d4319ea072 fix: sqlite condition in MonthlyUsageService 2024-08-14 17:20:09 -04:00
juank0205 0d3af0048f translate README.md to spanish 2024-08-14 16:09:26 -05:00
Nariman Jelveh bf4ba3f1d6 Update README.md 2024-08-14 12:38:00 -07:00
Nariman Jelveh df8ec416cd Merge pull request #683 from NFFY88/fix-readme-links
fix broken links in readme
2024-08-14 12:18:03 -07:00
Danil Buslaev 11695846fa fix broken links in readme 2024-08-14 21:34:44 +03:00
Nariman Jelveh 4cd94df90c Use the correct local dev address in README files 2024-08-14 10:54:09 -07:00
Nariman Jelveh 4a553ca67c Merge pull request #681 from NFFY88/russian-readme 2024-08-14 10:13:38 -07:00
Danil Buslaev 82dec20c07 added translation link to readme 2024-08-14 19:45:14 +03:00
Danil Buslaev 93d475b6b3 added readme translation into Russian 2024-08-14 19:20:18 +03:00
Nariman Jelveh c98d1ca25e Add link to the Portuguese README in the English README 2024-08-14 08:23:09 -07:00
Nariman Jelveh eea26207af Merge pull request #680 from TatianaMagnus/672-add-readme-portuguese-translation
672 Adding readme portuguese translation
2024-08-14 08:20:51 -07:00
Tatiana Magnus Vianna 3dd3ae02ae Adding readme portuguese translation 2024-08-14 11:51:38 -03:00
Nariman Jelveh 4f8786fc8f Add link to Danish README in the English Readme 2024-08-14 07:40:37 -07:00
Nariman Jelveh 94124eb576 Merge pull request #679 from JesHansen/issue/678-translate-readme-to-danish
Add Danish translation of README.en.md
2024-08-14 07:30:20 -07:00
Jes Bak Hansen ebaec99741 Add Danish translation of README.en.md 2024-08-14 15:40:45 +02:00
Nariman Jelveh f7924f30bc Create README.en.md 2024-08-14 00:59:58 -07:00
Nariman Jelveh f00e0cf4a6 Add YouTube link to README.md 2024-08-13 20:42:40 -07:00
Nariman Jelveh 448da65366 Merge pull request #662 from looz0/patch-1
Add security email to contact section
2024-08-12 19:33:24 -07:00
looz0 902bde3c2d Add security email to contact section 2024-08-12 19:20:21 -07:00
Nariman Jelveh e44d3d8133 Merge pull request #661 from Ranegg/Ranegg-fi-translations
Added Finnish translations related to issue #536
2024-08-12 10:04:01 -07:00
Ranegg cb8d0fa011 Added Finnish translations related to issue #536 2024-08-12 19:35:41 +03:00
Nariman Jelveh 5c7701d5de Merge pull request #659 from JoelSjogren/fix-548
completed translation english to swedish in sv.js
2024-08-11 09:59:42 -07:00
Joel Sjögren 0c4690e39c completed translation english to swedish in sv.js 2024-08-11 10:54:57 +02:00
Nariman Jelveh 37edb78fe9 Merge pull request #658 from NGunjyal01/fix/533/Translation-English-To-Danish
completed translation english to danish in da.js
2024-08-10 16:30:46 -07:00
KernelDeimos 3f07ead1b9 fix: add context to event listener aiife 2024-08-09 16:50:39 -04:00
unknown 00e8b81d16 completed translation english to danish in da.js 2024-08-09 23:16:52 +05:30
Nariman Jelveh 2898ff681f Merge pull request #657 from NGunjyal01/fix/531-Translatio-English-To-Portuguese
Completed Translation of English To Portuguese(Portugal)
2024-08-09 09:37:36 -07:00
unknown 200cc4680b Completed Transaltion of English To Portuguese from Portugal 2024-08-09 20:34:23 +05:30
KernelDeimos e60632343b sync: cross origin + small gui updates 2024-08-08 21:24:10 -04:00
KernelDeimos 783cf57934 sync: update hardcoded permissions 2024-08-08 17:23:30 -04:00
KernelDeimos 5b74b4affa fix: missing method in SLink 2024-08-08 17:22:34 -04:00
KernelDeimos e2f35b4844 dev: CLink and SLink classes 2024-08-08 15:13:32 -04:00
KernelDeimos c213b21bee move: BroadcastService to [+] BroadcastModule 2024-08-08 15:13:32 -04:00
KernelDeimos cea29645fe feat: add message encryption between Puter peers 2024-08-08 15:13:32 -04:00
KernelDeimos 476acae0e0 fix: disable unconfigured ai services 2024-08-05 16:04:25 -04:00
KernelDeimos c97688706e tweak: add boot error help 2024-08-05 15:59:09 -04:00
KernelDeimos 7aece26f4b tweak: add default driver mapping 2024-08-03 21:07:56 -04:00
KernelDeimos 9a9bd5eaf0 feat: add test_mode flag 2024-08-03 21:07:56 -04:00
KernelDeimos 78fa77d920 feat: add tts driver to puterai module 2024-08-03 21:07:56 -04:00
KernelDeimos fb26fdbc56 feat: add image generation driver to puterai module 2024-08-03 21:07:56 -04:00
KernelDeimos 4e3bd1831e feat: add chat completions driver to puterai module 2024-08-03 21:07:56 -04:00
KernelDeimos ef6671da18 feat: add --overwrite-config and configurable uuid masking
This is in preparation for the chat completions driver. OpenAI asks that
a user ID be provided in requests when service is being provided to
other users, so we deterministically generate different UUIDs for this
purpose to prevent user information from being exposed.
2024-08-03 21:07:56 -04:00
KernelDeimos f924d48b02 feat: add textract driver to puterai module 2024-08-03 21:07:56 -04:00
KernelDeimos b520783bf4 fix: add missing driver parameter to /call endpoint 2024-08-03 21:07:56 -04:00
KernelDeimos 1f059c330c dev: update FileFacade to use LLRead 2024-08-03 21:07:56 -04:00
Nariman Jelveh 475eb13fb3 add checkmark to selected language in the settings window 2024-08-02 14:00:44 -07:00
Nariman Jelveh 5db00abeaf Merge pull request #654 from Razy-F/Hebrew-translation 2024-08-02 08:01:06 -07:00
Nariman Jelveh fcb38aee87 Update translations.js to add Hebrew files 2024-08-01 23:53:56 -07:00
Razy F fa2702183c Add the new he.js translation filee 2024-08-02 09:06:34 +03:00
Nariman Jelveh a2255521f2 Escape rootItems in Dev Center before printing 2024-08-01 18:54:10 -07:00
Nariman Jelveh 09289b5004 Update README.md 2024-08-01 17:04:45 -07:00
Nariman Jelveh 53b67b3631 Merge pull request #650 from de1eb/main
Updated Korean translation file
2024-08-01 00:14:15 -07:00
Nariman Jelveh 11658beb18 Merge branch 'main' into main 2024-08-01 00:03:03 -07:00
Nariman Jelveh ed4d74d27d Merge pull request #648 from ljyamada/issue514
Complete Korean translation #541
2024-07-31 23:53:54 -07:00
Noru V e8b57debe9 Updated plural suffix problem related to showing the number of items when you use Explorer 2024-08-01 11:09:18 +09:00
Noru V 1063b6c1ab Updated Korean translation file 2024-08-01 10:28:24 +09:00
haruto eeda878554 Complete Korean translation #541
Complete Korean translation based on English file #541
2024-08-01 10:00:19 +09:00
Nariman Jelveh b35428ddd3 Merge pull request #646 from RandomStrangerOnTheInternet/main
Update Dutch translations
2024-07-31 17:07:16 -04:00
KernelDeimos 8b11937365 dev: fix incomplete support for multipart driver requests 2024-07-31 17:06:50 -04:00
KernelDeimos 7a09c5c47a doc: add example requests 2024-07-31 17:06:50 -04:00
KernelDeimos c28f2cb4df dev: add service to test images through drivers 2024-07-31 17:06:50 -04:00
Nariman Jelveh ade66bd1da escape unescaped single quote causing syntax error 2024-07-31 17:04:22 -04:00
RandomStrangerOnTheInternet c7ab7e04a6 Update Dutch translations (fixes https://github.com/HeyPuter/puter/issues/543) 2024-07-31 22:56:36 +02:00
Nariman Jelveh 1e753843d2 Remove some of the unused component imports 2024-07-28 12:41:52 -07:00
KernelDeimos 02504690cf test: add database migration tests 2024-07-28 04:02:16 -04:00
KernelDeimos d0e461e206 fix: sqlite migrations error
This issue was caused by an INSERT statement which adds the admin user
to the admin group. The admin user is created at initialization, so for
new installs it does not exist at the time migration scripts are run.
Additionally, new javascript-coded migrations (.mig.js) would not have
run for new installs because of redundant (WET; not DRY) code for
initial setup.

This commit also improves error handling of the migration service, which
was necessary to diagnose this issue.

In the future, setup always needs to be tested after updating migration
scripts, even though migration of existing databases is where most of
the issues will happen.

Resolves: #639
2024-07-27 18:54:17 -04:00
Nariman Jelveh 1c5ef01668 Merge pull request #640 from BryarGh/edit-kurdish-template
Update Kurdish language template
2024-07-27 14:47:04 -07:00
Nariman Jelveh c717746646 Use the english version of the license header but retain the credit to Bryar Ghafoor 2024-07-27 14:07:24 -07:00
Bryar Ghafoor fe119756b5 Update Kurdish language template 2024-07-27 23:19:24 +03:00
KernelDeimos 70787ffa2c tweak: print new password when resetting pass via server console 2024-07-26 22:43:11 -04:00
Nariman Jelveh 840436a04c Merge pull request #638 from fauzipadlaw/main
Add Indonesian Translation for i18n
2024-07-26 12:54:05 -07:00
Muhammad Fauzi 033643b0e7 feat: Add Indonesian Translation for i18n 2024-07-27 02:45:05 +07:00
KernelDeimos 654e0b9333 move: move selfhosting-related services to a module 2024-07-26 01:23:22 -04:00
KernelDeimos 6213806aba dev: move driver arg types to a registry 2024-07-25 23:19:54 -04:00
KernelDeimos af3180a57f dev: add monthly usage to new call method 2024-07-25 23:19:54 -04:00
KernelDeimos 8be7a7d219 dev: add logical rate-limit to new call method 2024-07-25 23:19:54 -04:00
KernelDeimos 780a993465 dev: move policy selection to call_new_ 2024-07-25 23:19:54 -04:00
KernelDeimos ea409d1578 dev: begin using Invoker for driver calls 2024-07-25 23:19:54 -04:00
KernelDeimos 20b58ddcb5 dev: add Invoker 2024-07-25 23:19:54 -04:00
KernelDeimos 9e38e048c1 dev: prepare to implement policy enforcer 2024-07-25 23:19:54 -04:00
KernelDeimos e514dfcf50 fix: prevent large logs from service events (2) 2024-07-25 23:19:54 -04:00
KernelDeimos d5ec40078f dev: begin adding new driver call method 2024-07-25 23:19:54 -04:00
KernelDeimos e0d30f041b dev: move implied system perms 2024-07-25 23:19:54 -04:00
KernelDeimos 984ae9e6a2 feat: add password reset from server console 2024-07-25 23:19:54 -04:00
KernelDeimos 580fbdb113 tweak: record time for permission scans 2024-07-25 23:19:54 -04:00
KernelDeimos cca19ad495 dev: remove svc_permission.check 2024-07-25 23:19:54 -04:00
KernelDeimos 191be84e32 dev: migrate svc_permission check() to scan() 2024-07-25 23:19:54 -04:00
KernelDeimos 3b85e4eeba dev: migrate ACLService to use scan() 2024-07-25 23:19:54 -04:00
KernelDeimos a0f0151446 dev: improve permission scan reading 2024-07-25 23:19:54 -04:00
KernelDeimos 4a6055d239 dev: add user-app to permission scanning 2024-07-25 23:19:54 -04:00
KernelDeimos 54471fada9 feat: add server command to scan permissions 2024-07-25 23:19:54 -04:00
KernelDeimos c9ded89b22 feat: grant user driver perms from admin 2024-07-25 23:19:54 -04:00
KernelDeimos f0c36a1cdf feat: replace default_user with admin 2024-07-25 23:19:54 -04:00
KernelDeimos d1261460ba dev: obtain driver permission from system user 2024-07-25 23:19:54 -04:00
KernelDeimos ab156297a7 feat: add system user 2024-07-25 23:19:54 -04:00
KernelDeimos 2cd68100d2 refactor: add traits and services as drivers 2024-07-25 23:19:54 -04:00
KernelDeimos 8beda66328 data: add extra sound 2024-07-25 18:28:16 -04:00
KernelDeimos 5fee393b67 data: add startup and shutdown chimes 2024-07-25 18:01:10 -04:00
Nariman Jelveh f30bbbd375 Add translation template for Kurdish 2024-07-25 14:48:12 -07:00
Nariman Jelveh e7c72e079b Merge pull request #633 from Zac0511/main
Add badges
2024-07-25 10:36:35 -07:00
Zac0511 6cfea963a0 Add badges
Added install badges, Puter.js badges, and source Figma files
2024-07-25 17:33:10 +02:00
Nariman Jelveh a28df490ba Merge pull request #632 from Zac0511/patch-2
Update README.md
2024-07-25 08:07:41 -07:00
Zac0511 5c49e83378 Update README.md
Added the license shield
2024-07-25 13:00:28 +02:00
Zac0511 d22abb36cb Update README.md
Added two shields displaying the repo size and latest version, and gets updated automatically
2024-07-25 12:22:24 +02:00
Nariman Jelveh 8a5302c8e2 Merge pull request #619 from secondtruth/issue-template-meta
Add issue template for meta suggestions
2024-07-24 16:34:46 -07:00
Nariman Jelveh 9250e23d96 Update meta.md 2024-07-24 16:34:33 -07:00
Zac0511 bef38dfc96 meta: Create config.yml to add Puter Discord to the issue screen (#631)
This adds a config file which will show the Puter Discord Server in the issue menu, allowing users to quickly ask help on the Puter Discord
2024-07-24 16:24:19 -04:00
Nariman Jelveh 22d7134802 Pass window.crossOriginIsolated value to the popup 2024-07-24 12:36:19 -07:00
KernelDeimos 48c819ac73 chore: update SLA for chat model
Resolves: #630
2024-07-24 13:35:26 -04:00
KernelDeimos fa9cc8efcf fix: prevent large logs from service events (1) 2024-07-24 02:31:45 -04:00
KernelDeimos 5d5f5660b4 feat: add options to disable winston and devwatch 2024-07-24 01:52:07 -04:00
Nariman Jelveh cc0800d60a Remove unnecessary console.log calls 2024-07-22 19:43:50 -07:00
KernelDeimos 203669a79f release: v2.4.2 2024-07-22 20:23:40 -04:00
Nariman Jelveh f8b39630ab Merge pull request #628 from HeyPuter/eric/fix-templates
Write contents from template when creating a file from a tempalte
2024-07-22 16:53:01 -07:00
Nariman Jelveh 5d58764316 Use join. to build target path 2024-07-22 16:38:45 -07:00
KernelDeimos 5d2a6fce30 fix: fix templates 2024-07-22 17:10:58 -04:00
Nariman Jelveh 1f7f094282 Merge pull request #627 from Koppeks/koppeks/templates_folder_contextmenu
Templates folder feature
2024-07-22 11:33:02 -07:00
Nariman Jelveh d8dd218089 Don't show No templates found for now. 2024-07-22 11:31:01 -07:00
Nariman Jelveh a9801fc10d place available_templates call in update_auth_data to guarantee that user object exists 2024-07-22 11:07:57 -07:00
Nariman Jelveh 2d5a0bb894 closes #614 2024-07-21 17:01:24 -07:00
Koppeks a0113788f9 remove extra comments 2024-07-21 17:32:33 -03:00
Nariman Jelveh 5cf74a0ad9 Merge pull request #624 from enweazudaniel/main
Update ig.js
2024-07-21 09:18:31 -07:00
enweazudaniel 382fb24dbb Update ig.js 2024-07-21 17:04:33 +01:00
KernelDeimos 8f87770ceb fix: popup login in co isolation mode 2024-07-20 20:46:03 -04:00
KernelDeimos 2a5cec7ee9 fix: add necessary iframe attributes for co isolation 2024-07-20 18:54:08 -04:00
Nariman Jelveh 1579cbccf0 Merge pull request #620 from pvhuwung/i18n/vietnamese-translation
Add Vietnamese Translation for i18n
2024-07-20 14:12:24 -07:00
pvhuwung 02e1b1e8f5 chore: fix confirm for type_confirm_to_delete_account 2024-07-21 04:03:37 +07:00
Pham Viet Hung *David f4a45d74e7 Merge branch 'HeyPuter:main' into i18n/vietnamese-translation 2024-07-21 04:53:48 +08:00
pvhuwung c2d3d69dbe feat: add vietnamese localization-a 2024-07-21 03:53:14 +07:00
Nariman Jelveh 71f4b4d71f When setting size/position of app window make sure it's not an empty string 2024-07-20 13:34:36 -07:00
Nariman Jelveh 452b7495b1 use app-request as label for app idea issues 2024-07-20 11:46:20 -07:00
Nariman Jelveh ace14e99fa Merge pull request #618 from secondtruth/issue-template-app-idea
Add issue template for app ideas
2024-07-20 11:41:50 -07:00
Christian Neff fe63839bbb Add issue template for meta suggestions 2024-07-20 19:38:22 +02:00
Christian Neff b3c1b128e2 Add issue template for app ideas 2024-07-20 18:09:37 +02:00
Nariman Jelveh b6a433ce0c Merge pull request #616 from stariver1862/patch-1
Complete Traditional Chinese translation based on English file #550
2024-07-20 08:06:07 -07:00
Nariman Jelveh 3a09e84838 fix: syntax error and formatting issue 2024-07-20 08:05:14 -07:00
Nariman Jelveh 4990ba01cc Merge branch 'main' into patch-1 2024-07-20 07:47:38 -07:00
Nariman Jelveh 6b5c31ddfe Merge pull request #615 from mlgzackfly/update-translations
fix(i18n): Complete Traditional Chinese translation based on English file #550
2024-07-20 07:33:49 -07:00
WHL b9e73b7288 Update zhtw.js, Complete Traditional Chinese translation based on English file #550 2024-07-20 22:18:05 +08:00
mlgzackfly 37fd666a9a fix(i18n): update zhtw.js to match en.js 2024-07-20 19:36:45 +08:00
Koppeks f897e84498 Temporal commit for issue #432 2024-07-19 19:42:47 -03:00
Nariman Jelveh eae51e945b Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-07-19 13:11:35 -07:00
Nariman Jelveh 98e69642d0 fix: launch_app not considering explorer as a special case 2024-07-19 13:11:26 -07:00
Nariman Jelveh 45c29b6220 Merge pull request #611 from Alfika07/main
Fixed Tamil translation
2024-07-19 08:52:58 -07:00
Nariman Jelveh f2bb551e75 Change english_name from English to Tamil 2024-07-19 08:52:19 -07:00
Alfika07 8a3d0430f3 Add Tamil translation to translations.js 2024-07-19 09:46:04 +02:00
Alfika07 333d6e3b65 Move Tamil translation to the rest of translations 2024-07-19 09:43:23 +02:00
KernelDeimos e58da265ba try cross-origin isolation only on sites 2024-07-18 20:58:09 -04:00
KernelDeimos 7043b9400c fix: well kinda (HOSTNAME in phoenix) 2024-07-18 20:16:08 -04:00
Nariman Jelveh eeda9fb568 close #409 2024-07-18 16:06:45 -07:00
KernelDeimos ae25711a13 update package.json for local testing 2024-07-18 17:02:31 -04:00
KernelDeimos 602a19895c fix: it was github actions the entire time 2024-07-18 16:58:36 -04:00
KernelDeimos 614f2c5061 fix: fix CI attempt #7 2024-07-18 16:44:11 -04:00
KernelDeimos 9d549b192d fix: fix CI attempt #6 2024-07-18 16:38:56 -04:00
KernelDeimos 74adcddc1d fix: fix CI attempt #5 2024-07-18 16:36:44 -04:00
Nariman Jelveh 5a4328e449 Update Dockerfile 2024-07-18 13:33:02 -07:00
Nariman Jelveh 8b5f58c156 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-07-18 13:30:14 -07:00
Nariman Jelveh d9a90a67c1 let me try fixing mocha! 2024-07-18 13:30:05 -07:00
KernelDeimos 84b993bce9 fix: fix CI attempt #4 2024-07-18 16:27:36 -04:00
KernelDeimos 3bca973f5f fix: fix CI attempt #3 2024-07-18 16:20:57 -04:00
KernelDeimos aebe89a1ac fix: fix CI attempt #2 2024-07-18 16:16:31 -04:00
KernelDeimos 58c199c153 fix: run mocha within packages in monorepo 2024-07-18 16:10:45 -04:00
Nariman Jelveh 82fa2d0862 close #169 2024-07-18 13:01:14 -07:00
KernelDeimos ad3d318d07 fix: make webpack output not look like errors 2024-07-18 14:50:53 -04:00
KernelDeimos e539932070 feat: add cross_origin_isolation option 2024-07-18 14:23:03 -04:00
KernelDeimos 8c8904cb36 doc: update documentation for boot sequence 2024-07-18 14:23:03 -04:00
Nariman Jelveh f9333b3d1e feat: add option to disable temporary users 2024-07-18 12:59:42 -04:00
KernelDeimos ba50d0f96d feat: add some default groups 2024-07-18 01:08:49 -04:00
Nariman Jelveh 8e7306c23b Add support for dropping multiple Puter items onto Dev Center (close #311) 2024-07-17 20:56:36 -07:00
Nariman Jelveh e6833253c7 close #276 2024-07-17 20:14:07 -07:00
Nariman Jelveh 4d6edff169 Escape arguments passed to dev-center 2024-07-17 18:32:02 -07:00
KernelDeimos 29f919c98a sync: package-lock.json 2024-07-17 17:15:29 -04:00
Nariman Jelveh 45f131f8ea No scrollbar for session list 2024-07-17 14:05:49 -07:00
Nariman Jelveh d80f2fa847 fix: fix path issues under win32 platform 2024-07-17 13:36:22 -07:00
KernelDeimos 5c636d4fd2 fix: remove abnoxious debug file 2024-07-17 13:55:55 -04:00
Nariman Jelveh f28836180e Merge pull request #603 from ohm69/pl-trans
Translation improvements, mainly style and context-based
2024-07-17 08:06:30 -07:00
Michal Hobot 8bece96f62 Translation improvements, mainly style and context-based
After using a Polish-translated puter I found out several places for improvement
2024-07-17 15:43:23 +02:00
Nariman Jelveh 6c29427e16 close #174 2024-07-16 19:06:46 -07:00
Nariman Jelveh 9bfee0862f Merge pull request #600 from Koppeks/koppeks/translation-es
Translation to Spanish
2024-07-16 18:14:44 -07:00
Nariman Jelveh 9d8a46814d Merge pull request #597 from bryanthaboi/main
Directions for Windows / Docker Composer
2024-07-16 16:38:42 -07:00
Nariman Jelveh c19c18bfcf Bring both Windows and Linux/Mac instructions under Docker Compose 2024-07-16 16:32:42 -07:00
Koppeks 151527825f update translation file es.js to be up to date with the file en.js 2024-07-16 20:30:42 -03:00
Nariman Jelveh cc4c93b77f Update README.md 2024-07-16 15:56:59 -07:00
Nariman Jelveh 3ca92955cb Make the screenshot a little larger 2024-07-16 15:56:37 -07:00
Nariman Jelveh 9bc427ced2 Merge pull request #598 from ohm69/patch-1
Translate en.js as of 2024-07-10
2024-07-16 09:09:44 -07:00
Michal Hobot 8e297cd7e3 Translate en.js as of 2024-07-10 2024-07-16 17:55:34 +02:00
bryanthaboi 5833b391f1 Update README.md 2024-07-16 09:17:35 -04:00
bryanthaboi 64e4299ac0 Update README.md 2024-07-16 09:10:38 -04:00
KernelDeimos 747d7dea89 Update SECURITY-ACKNOWLEDGEMENTS.md 2024-07-15 20:03:14 -04:00
Nariman Jelveh c80526900b Merge pull request #594 from Szab54/patch-1
Update translations.js to Hungarian lang
2024-07-15 12:39:07 -07:00
Nariman Jelveh 1b12a413fe Merge pull request #595 from Szab54/patch-3
Create hu.js hungarian language
2024-07-15 12:38:33 -07:00
XYCert 69a80ab3d2 Create hu.js hungarian language 2024-07-15 21:04:38 +02:00
XYCert 56820cf6ee Update translations.js to Hungarian lang 2024-07-15 20:58:31 +02:00
KernelDeimos a259755fe5 Fix broken link 2024-07-15 13:22:15 -04:00
KernelDeimos 7a12e699de Update SECURITY-ACKNOWLEDGEMENTS.md 2024-07-15 13:21:05 -04:00
Nariman Jelveh 7f0365202e Merge pull request #593 from Varun710/tamil-translation
Tamil translation
2024-07-14 22:36:13 -07:00
Varun710 81781f80af Tamil translation 2024-07-15 00:27:35 -05:00
Nariman Jelveh 93f4e52983 Update README.md to add Mastodon link 2024-07-14 16:43:56 -07:00
Nariman Jelveh b52c31133e Merge pull request #591 from LNLenost/patch-1
Fixed grammar issues/untranslated stings in italian translation
2024-07-14 10:44:37 -07:00
LNLenost 84e31eff2f Update it.js 2024-07-14 19:34:09 +02:00
Nariman Jelveh 46cbe077bc Merge pull request #590 from narek-gh/armenian-translation
Update Armenian translation based on English file
2024-07-13 14:25:31 -07:00
Narek 3b8af7cc5c Update Armenian translation file 2024-07-14 00:11:15 +04:00
Nariman Jelveh 9afb1b78b8 Fix blackfortresslabs.com URL 2024-07-11 18:36:29 -07:00
Nariman Jelveh ae04a09c90 Take into account that godmode might be either integer or boolean 2024-07-11 18:07:09 -07:00
KernelDeimos e8f4c328bf fix: read_only fields in ES 2024-07-11 21:00:14 -04:00
Nariman Jelveh 7b4e95139f Shorten Reddit link 2024-07-11 17:24:57 -07:00
KernelDeimos 6a2fbc1925 fix(security): hoist acl check in ll_read 2024-07-11 20:09:39 -04:00
KernelDeimos ab74f1ee8d release: v2.4.1 2024-07-11 19:41:08 -04:00
Nariman Jelveh b790bab9c0 Merge pull request #585 from HeyPuter/eric/rename-traits-to-features
refactor(backend): rename traits to features
2024-07-11 14:37:12 -07:00
KernelDeimos f7d15bae41 refactor(backend): rename traits to features 2024-07-11 16:50:09 -04:00
Nariman Jelveh 01a248e96e Merge pull request #579 from Waheed4719/issue#530
Issue#530 - Update bengali translations
2024-07-10 17:55:59 -07:00
Waheed Uddin Ahmed cff488f4f4 Update bn.js file formatting 2024-07-11 06:46:34 +06:00
Waheed Uddin Ahmed 92abc9947f Issue#530 - Update bengali translations 2024-07-11 06:42:52 +06:00
KernelDeimos 7aadae58ce fix: remove flag that breaks puter-js webpack 2024-07-10 17:18:54 -04:00
KernelDeimos 5b1924f312 chore: remove duplicate headers 2024-07-10 16:53:54 -04:00
KernelDeimos e6e92dc7b2 dev(license-headers): add dupe detector 2024-07-10 16:50:41 -04:00
KernelDeimos 6728dd2571 dev(license-headers): fix excludes list 2024-07-10 16:25:14 -04:00
KernelDeimos 2bf9f60bb0 dev(license-headers): implement skip and replace 2024-07-10 16:12:09 -04:00
KernelDeimos d0a5a57c88 dev(tools): add conflict prompt to license-headers 2024-07-10 14:57:39 -04:00
Nariman Jelveh f006c9ed26 Rename #DoesItRunPuter?.md to #DoesItRunPuter.md 2024-07-10 11:53:11 -07:00
Nariman Jelveh 6013466bcb Rename DoesItRunPuter.md to #DoesItRunPuter?.md 2024-07-10 11:52:34 -07:00
Nariman Jelveh 435e1786a3 Rename doesitrunputer.md to DoesItRunPuter.md 2024-07-10 11:38:56 -07:00
Nariman Jelveh e96bba850f move #DoesItRunPuter from README.md to ./awesome 2024-07-10 11:38:03 -07:00
Nariman Jelveh 2378f1a833 Delete .vscode directory 2024-07-10 11:30:15 -07:00
KernelDeimos 713b1f5889 dev(tools): add missing header adding to license-headers 2024-07-10 14:10:31 -04:00
KernelDeimos fac08c4152 doc: remove extra log in doc snippet 2024-07-10 13:52:20 -04:00
Nariman Jelveh 059a1fe565 Merge pull request #576 from sbondor/fix/romanian-translations
Added missing Romanian translations.
2024-07-10 10:43:59 -07:00
Sergiu Bondor 8440f566b9 Added missing Romanian translations. 2024-07-10 19:49:45 +03:00
Nariman Jelveh adb0f9dc23 Merge pull request #575 from xslendix/main
Add Romanian translations
2024-07-10 06:25:05 -07:00
Slendi 473b6512c6 Add 2FA Romanian translations
Signed-off-by: Slendi <[email protected]>
2024-07-10 11:37:06 +03:00
KernelDeimos 67139ef91b dev(tools): add license header adder thingy 2024-07-10 00:41:08 -04:00
Nariman Jelveh c76af1ab21 Merge pull request #574 from askdkc/japanese-translation
Add Japanese translation
2024-07-09 19:29:31 -07:00
askdkc 31748506b7 Create ja.js for Japanese Translation 2024-07-10 11:22:16 +09:00
askdkc 47ec74f0aa Add Japanese Translation 2024-07-10 11:20:29 +09:00
Nariman Jelveh 5e4582dda6 Update README.md 2024-07-09 19:18:14 -07:00
Nariman Jelveh 3bd3be7dee Update README.md 2024-07-09 19:15:50 -07:00
Nariman Jelveh e5243ec560 Delete .github/ISSUE_TEMPLATE/driver-request.md 2024-07-09 19:05:04 -07:00
Nariman Jelveh e745f67273 Add 'Support' section to README.md 2024-07-09 19:04:09 -07:00
Nariman Jelveh 831b2e259e Add ladybird to #DIRP and move the license section to the bottom 2024-07-09 16:54:54 -07:00
Nariman Jelveh 069b5e0033 Merge pull request #573 from HeyPuter/fix-CI-network-issues
Move `.commit` to `/tools`
2024-07-09 16:18:10 -07:00
KernelDeimos fafa36c73f move: move dev-server.js back to gui
I'm not sure why it was here, I thought I moved it already.
2024-07-09 19:01:49 -04:00
Nariman Jelveh eebf379205 Move .commit to /tools 2024-07-09 15:58:55 -07:00
Nariman Jelveh 4e15c5fcf4 Merge pull request #572 from HeyPuter/fix-CI-network-issues
retry npm 3 times to account for the flakiness of the process
2024-07-09 15:14:21 -07:00
Nariman Jelveh 10d77f17aa retry npm 3 times to account for the flakiness of the process 2024-07-09 15:12:19 -07:00
Nariman Jelveh 4daa1f2c25 Merge pull request #571 from micheledinelli/main
Add documentation instructions to get started with My Websites
2024-07-09 14:56:40 -07:00
micheledinelli 6c4c73a9e8 Add documentation instructions to get started with My Websites 2024-07-09 23:33:11 +02:00
Nariman Jelveh 00eabd7b10 remove duplicate and/or incorrect license headers 2024-07-09 13:50:20 -07:00
Nariman Jelveh 3b59ecedd1 Merge pull request #567 from stronkexe/main
Completing Arabic translation based on English file.
2024-07-09 08:21:04 -07:00
Nariman Jelveh 871f4cab0c Merge branch 'main' into main 2024-07-09 08:16:28 -07:00
Nariman Jelveh 1d52a559ff Remove more duplicate license headers 2024-07-09 08:14:33 -07:00
Nariman Jelveh ab164c3a0a Merge pull request #570 from micheledinelli/main
Completing Italian translation based on English file
2024-07-09 07:59:11 -07:00
micheledinelli f5a8ee1c6a Completing Italian translation based on English file 2024-07-09 16:55:45 +02:00
Nariman Jelveh 7fa2dd535f remove all duplicated license headers 2024-07-09 07:51:54 -07:00
micheledinelli a96abb5793 Completing Italian translation based on English file. 2024-07-09 16:49:19 +02:00
Nariman Jelveh 1f4297f746 Remove extra license header from ar.js 2024-07-09 07:48:35 -07:00
stronkexe 78a0acea69 Completing Arabic translation based on English file 2024-07-09 09:35:07 +01:00
KernelDeimos 3a7221dba5 chore: cleanup root directory 2024-07-09 04:18:55 -04:00
KernelDeimos bda4aed2e8 chore: add missing license headers 2024-07-09 04:10:33 -04:00
KernelDeimos 365d795c3f doc: omit cp of .env.example in local build instructions
This command contradicts the statement that Puter will find the
next available port when port 4100 is in use.
2024-07-09 04:03:58 -04:00
KernelDeimos a1ff375931 doc: update comment_prefixes.md 2024-07-09 03:40:46 -04:00
KernelDeimos 50036e954d dev: add js-parse-and-output experiment 2024-07-09 03:40:34 -04:00
KernelDeimos 0b39c76c40 move: incubator to experiments
This name is easier to understand and more generalizable.
2024-07-09 03:19:31 -04:00
KernelDeimos 47f76ccc89 dev: add file walker 2024-07-09 03:15:51 -04:00
Nariman Jelveh d3a9ba847a Move icon credits to the GUI project directory 2024-07-08 22:23:02 -07:00
Nariman Jelveh 338004474f Add jsdoc-style comments for a number of functions 2024-07-08 17:52:43 -07:00
Nariman Jelveh 535475b3c3 Improve getMimeType to remove trailing dot in the extension if preset 2024-07-08 17:33:09 -07:00
Nariman Jelveh 073b501e41 Merge pull request #566 from matheussss1/update-br-translation
feat: update BR translation
2024-07-08 14:40:29 -07:00
Matheus Carvalho 42a6b3938a feat: update BR translation 2024-07-08 18:33:39 -03:00
KernelDeimos a9338b45c1 chore: update package.json 2024-07-08 17:31:50 -04:00
Nariman Jelveh 8b9d57dc88 Merge pull request #565 from medelm1/update-arabic-translations
Update Arabic translations in ar.js
2024-07-08 14:03:09 -07:00
Nariman Jelveh 7d92304e7f Update ar.js 2024-07-08 13:59:45 -07:00
Nariman Jelveh 7844965489 Merge branch 'update-arabic-translations' of https://github.com/medelm1/puter into pr/565 2024-07-08 13:59:18 -07:00
Nariman Jelveh 8bdd489eaf Add missing commas 2024-07-08 13:59:13 -07:00
Med Elm fe5be7f3cf Update Arabic translations in src/gui/src/i18n/translations/ar.js to match English version in src/gui/src/i18n/translations/en.js 2024-07-08 13:59:13 -07:00
Nariman Jelveh 42496f9319 Add missing commas 2024-07-08 13:58:50 -07:00
KernelDeimos 48f99fb807 dev: add script to replace release-please 2024-07-08 16:57:02 -04:00
Med Elm bffa192805 Update Arabic translations in src/gui/src/i18n/translations/ar.js to match English version in src/gui/src/i18n/translations/en.js 2024-07-08 21:44:19 +01:00
Nariman Jelveh 26e9b0b2de Merge pull request #564 from Speedyjet/Russian_and_Ukrainian
Russian and ukrainian
2024-07-08 13:18:33 -07:00
Nariman Jelveh e061b1f488 Merge pull request #560 from Speedyjet/translations_russian_and_ukrainian
Russian translation fixed
2024-07-08 13:14:45 -07:00
Nariman Jelveh d2c68308bb Merge branch 'main' into translations_russian_and_ukrainian 2024-07-08 13:08:55 -07:00
Oleh Brusentsov e61039faf4 Ukrainian updated 2024-07-08 21:44:42 +02:00
Nariman Jelveh a1dd354787 Merge pull request #561 from julijatol/main
Update ru.js issue #547
2024-07-08 12:29:54 -07:00
KernelDeimos 3ed7916856 feat: JSON support for kv driver 2024-07-08 15:27:54 -04:00
Yuliya Tolstikova 17145d0be6 Update ru.js issue #547 2024-07-08 15:12:48 -04:00
Oleh Brusentsov 8836011428 Russian translation fixed 2024-07-08 20:44:53 +02:00
KernelDeimos 1f659f7c01 chore: fix release-please version 2024-07-08 13:47:44 -04:00
github-actions[bot] c84e15ba20 chore(main): release 1.0.0 2024-07-08 13:47:44 -04:00
Nariman Jelveh 86fd2f4bc4 Delete src/dev-center/.eslintignore 2024-07-08 10:06:09 -07:00
KernelDeimos 1f3eb08a70 chore: remove eslint 2024-07-08 00:53:40 -04:00
Nariman Jelveh cb8f0aa359 wtf is wrong with eslint?! 2024-07-07 21:40:53 -07:00
Nariman Jelveh 58ff7c279d Update .eslintignore 2024-07-07 21:38:39 -07:00
Nariman Jelveh 1f8cd7f613 Create .eslintignore 2024-07-07 21:36:37 -07:00
KernelDeimos 94c0449437 fix: docker runtime fail because stdout columns 2024-07-08 00:31:18 -04:00
KernelDeimos 6603c45093 sync: update gui paths in Dockerfile 2024-07-08 00:31:02 -04:00
Nariman Jelveh 30f9f29982 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-07-07 20:44:04 -07:00
Nariman Jelveh 594424444a make Dev Center aware of the origin of the host environment 2024-07-07 20:43:57 -07:00
KernelDeimos 4078a63fe1 tweak: maximize dev center on start 2024-07-07 23:16:19 -04:00
Nariman Jelveh ad56091c2f Merge pull request #559 from TianLangStudio/translation_zh
[translation] improve Chinese translation fix issue 549
2024-07-07 19:47:36 -07:00
Nariman Jelveh fd39f92ea6 get username and appID from puter.js rather than iframe URL in Dev Center 2024-07-07 19:44:28 -07:00
KernelDeimos 283f409a66 fix: fix owner ids for default apps 2024-07-07 22:35:45 -04:00
FusionZhu a8474054cc improve Chinese translation fix issue 549 2024-07-08 10:27:53 +08:00
KernelDeimos 10f4d7d50c feat: register dev center to apps 2024-07-07 22:26:32 -04:00
Nariman Jelveh e73d55b2c0 Perform getDeveloperProfile only when on puter.com 2024-07-07 19:22:26 -07:00
Nariman Jelveh f2b551d5be Initial commit for Dev Center 2024-07-07 18:52:37 -07:00
KernelDeimos af083b0800 cleanup: feat: support canonical puter.js url in dev 2024-07-07 20:47:01 -04:00
KernelDeimos fd41ae217c feat: support canonical puter.js url in dev 2024-07-07 20:45:02 -04:00
Nariman Jelveh fdea7907be Update screenshot in README.md 2024-07-07 16:45:59 -07:00
Nariman Jelveh 11cfa83193 Update README.md 2024-07-07 16:38:12 -07:00
Nariman Jelveh c88ce8e68c Delete test.txt 2024-07-07 16:31:46 -07:00
Nariman Jelveh c47556d1b7 Update README.md 2024-07-07 16:09:07 -07:00
Nariman Jelveh e6cdca09cc Remove the FAQ section from README.md 2024-07-07 15:58:17 -07:00
Nariman Jelveh 5e5a18565f Update README.md 2024-07-07 15:22:06 -07:00
Nariman Jelveh 2fbe6a6b26 Update README.md 2024-07-07 15:18:27 -07:00
Nariman Jelveh c5f4ff5a49 Update README.md 2024-07-07 15:15:19 -07:00
Nariman Jelveh 841c8bf9f2 Update README.md to add emojis to heading for easier reading 2024-07-07 15:09:49 -07:00
Nariman Jelveh 70b9b6f088 Update README.md 2024-07-07 15:03:09 -07:00
Nariman Jelveh 45840067f9 Update readme and put self-hosting instructions in a separate document 2024-07-07 15:01:01 -07:00
KernelDeimos 2a91edb965 chore: add Buffer to eslint 2024-07-07 17:12:55 -04:00
KernelDeimos edc5743a61 chore: add incubator/ to eslint ignores 2024-07-07 17:12:55 -04:00
KernelDeimos d3f3e089d3 sync: update check-translations.js 2024-07-07 17:12:55 -04:00
KernelDeimos 7c227ad967 chore: update eslint config 2024-07-07 17:12:55 -04:00
KernelDeimos a43cab0c93 refactor: move puter gui to workspace 2024-07-07 17:12:55 -04:00
Nariman Jelveh c23e8931ab Merge pull request #218 from lsileoni/main
WIP: Barebones x86emu skeleton
2024-07-07 11:25:18 -07:00
Nariman Jelveh d6dd04f195 Merge pull request #476 from HeyPuter/eric/more-reserved-words
tweak: add more reserved words
2024-07-07 11:22:35 -07:00
Nariman Jelveh 7811294f33 Add puter to reserved_words.js 2024-07-07 11:21:49 -07:00
Nariman Jelveh 016633cfbb Merge pull request #557 from Ramanmishra09/main
Issue no-551 hindi translation
2024-07-07 10:23:23 -07:00
Nariman Jelveh 4c26ebe3ac Fix key references for the Hindi language 2024-07-07 10:11:17 -07:00
ramanfloyeedee ce50718f84 Issue no-551 hindi translation
I have created hi.js file under src/i18n/translations in the main branch.
please review the file.
Thanks
2024-07-07 21:31:43 +05:30
Nariman Jelveh cb5184f2f1 Confirming to delete accoutn works with both English and the chosen locale of the user 2024-07-07 08:47:09 -07:00
Nariman Jelveh ce2b38c084 Merge pull request #556 from mklr19/translate-german
Updated german translation file
2024-07-07 08:22:46 -07:00
Nariman Jelveh 69332e14e7 Merge pull request #555 from etnms/#537-french-translation
Issue #537 - updated French translation based on English file
2024-07-07 08:07:44 -07:00
mklr19 37dca86506 Updated german translation file 2024-07-07 15:42:27 +02:00
etnms 812480bbd0 updated French translation based on English file per issue #513 2024-07-07 10:23:35 +02:00
Sam Atkins ef298ce3aa feat: Display app icon and description in embeds 2024-07-06 22:24:43 -04:00
KernelDeimos c8abe2380f dev: small changes 2024-07-06 22:12:49 -04:00
Nariman Jelveh d0cb0a96de Add english_name attribute for the Polish i18n file 2024-07-06 11:20:01 -07:00
Nariman Jelveh ac7fe1e436 Merge pull request #526 from brodbar/main
Update and revise Turkish translation
2024-07-06 08:45:33 -07:00
brodbar 28a9469914 Update locale 2024-07-06 16:47:50 +03:00
Nariman Jelveh bf27811167 Merge pull request #523 from sysnajar/th
Add Thai translation. https://github.com/HeyPuter/puter/issues/522
2024-07-05 21:27:40 -07:00
Nariman Jelveh 31bf69f10e add the two missing keys 2024-07-05 21:25:48 -07:00
Sysnajar 5e78690b97 Add Thai translation. 2024-07-06 10:46:58 +07:00
Nariman Jelveh d0758631ea Add more English translation keys 2024-07-05 15:35:16 -07:00
Nariman Jelveh c9e2427ad6 Merge pull request #521 from Zuhaib-Asif/update-urdu-translations
Updated Urdu translations, added missing entries, and corrected inacc… fix #520
2024-07-05 14:38:15 -07:00
Zuhaib Asif a9c33da151 Updated Urdu translations, added missing entries, and corrected inaccuracies 2024-07-06 02:21:49 +05:00
KernelDeimos 7d2f6d256f fix: group permission audit table 2024-07-04 19:37:52 -04:00
KernelDeimos 4af279a72f feat: rate-limit for excessive groups 2024-07-04 19:37:52 -04:00
KernelDeimos 0855f2b36e fix: property validation on some permission endpoints 2024-07-04 16:42:17 -04:00
Nariman Jelveh dcbca2f829 Add i18n keys for multiple terms 2024-07-03 13:05:39 -07:00
KernelDeimos de7e2adabd doc: document /group/list 2024-07-03 15:41:23 -04:00
KernelDeimos d55f38ca68 feat: add /group/list endpoint 2024-07-03 15:41:23 -04:00
Nariman Jelveh 3633349700 Merge pull request #516 from guicazaroto/feature/translate-br.js
feature: add (pt-br) translation for system settings.
2024-07-02 15:59:23 -07:00
Guilherme Guimarães Cazaroto 77211c4f71 feature: add (pt-br) translation for system settings. 2024-07-02 19:42:49 -03:00
KernelDeimos c0063a871f fix: handling of batch requests with zero files 2024-07-02 15:38:56 -04:00
Nariman Jelveh 80ea655d05 close #512 2024-07-01 15:44:48 -07:00
KernelDeimos d9c4fbbd1d fix: ui color input attributes 2024-07-01 14:23:49 -04:00
Sam Atkins 75a989a7b6 feat(phoenix): Make clear clear scrollback unless -x is given
From what I understand, we shouldn't need both `\x1B[2J` and `\x1B[3J`
sequences to clear everything, but xterm.js would not correctly clear
the visible region with only `\x1B[3J`. So, we have both.
2024-07-01 13:59:43 -04:00
Sam Atkins d76e7130cb fix(phoenix): Gracefully handle completing a non-existent path
filesystem.readdir() can throw, which previously would crash Phoenix and
leave the terminal unresponsive. This change makes it return no results
instead.
2024-07-01 13:52:46 -04:00
Sam Atkins 4539408a21 feat(phoenix): Show actual host name in prompt and neofetch 2024-07-01 12:46:15 -04:00
Sam Atkins e2ea57fcf9 tweak(phoenix): Only take auth params from config message
Having the parent app send us arbitrary config values was a holdover
from when phoenix was an embedded iframe and not a separate app. It led
to a security issue previously. Let's only take the auth parameters
since we can't get those otherwise, and they're safe to read.
Everything else should be available in our own URL params.
2024-07-01 12:46:15 -04:00
Sam Atkins b7133760df tweak: Ensure puter.domain is always set for launched apps 2024-07-01 12:46:15 -04:00
Nariman Jelveh 91e9fa7c25 improve the ux of "Show Desktop" toolbar button 2024-06-30 23:30:55 -07:00
KernelDeimos 2f5b9cc4ee chore: add temp user-app permission 2024-06-30 16:40:25 -04:00
KernelDeimos 2f163221bd fix: update PD alert custom details 2024-06-30 16:31:02 -04:00
KernelDeimos a0f4292072 test: add more test scenarios for sharing 2024-06-30 15:09:49 -04:00
KernelDeimos 1429d6f57c fix: column nullability blunder 2024-06-30 15:06:10 -04:00
KernelDeimos b10302ad74 fix: add missing columns for public directory update 2024-06-28 22:26:57 -04:00
KernelDeimos 88d6bee954 feat: get first test working on share-test service 2024-06-28 17:43:45 -04:00
KernelDeimos 9ad04cd33f prereq: make it possible to access storage without context init 2024-06-28 17:43:45 -04:00
KernelDeimos 332371fccb feat: add service to test file share logic 2024-06-28 17:43:45 -04:00
Nariman Jelveh 95e1268527 Make contextmenu smooth as butter 2024-06-28 12:48:55 -07:00
Sam Atkins d077504f9b doc(git): Expand documentation and add FIXMEs 2024-06-28 14:19:23 -04:00
Sam Atkins 711dbc0d2f feat(git): Understand references like HEAD^ and main~3
There are a lot of ways of specifying a revision, but these are a couple
of common ones.
2024-06-28 14:19:23 -04:00
Sam Atkins adcd3db0ed refactor: Move parsely into top-level packages directory
Parsely was missed by fa7bec3854 because
it got merged afterwards.
2024-06-28 14:19:23 -04:00
Sam Atkins 45cdfcb5bf feat(git): Display ref names in git log and git show 2024-06-28 14:19:23 -04:00
Sam Atkins 351d3f50ba tweak(git): List git subcommands in git help with no arguments 2024-06-28 14:19:23 -04:00
Sam Atkins 73d0f5a90c fix(git): Make git commit display detached HEAD correctly 2024-06-28 14:19:23 -04:00
Sam Atkins dd10a37749 feat(git): Make shorten_hash() guaranteed to produce a unique hash
Until now we just relied on it being very unlikely that there would be a
collision. This new method ensures that the returned hash is unique.
2024-06-28 14:19:23 -04:00
Sam Atkins fa3df72f6e feat(git): Add a --debug option, which sets the DEBUG global
I ended up removing the debugging code that used this, but it seems
useful anyway for future debug logs.
2024-06-28 14:19:23 -04:00
Sam Atkins 2e4259d267 feat(git): Implement git cherry-pick
This is quite manual, and only handles the simple cases where no merge
conflicts occur. Should be useful for basing a `rebase` command off of
though.
2024-06-28 14:19:23 -04:00
Sam Atkins bab5204209 feat(git): Color output for git status files
Matching canonical git, staged changes are green and unstaged/untracked
are red.
2024-06-28 14:19:23 -04:00
Sam Atkins 4ba8a32b45 feat(git): Implement git restore
I tried implementing --source=foo too, but was bumping into weird
behaviour with isomorphic-git, so I've removed that for now. Eventually
we'll want it, but it seems fairly niche.
2024-06-28 14:19:23 -04:00
Sam Atkins a68037111a feat(git): Display file contents as a string for git show FILE_OID 2024-06-28 14:19:23 -04:00
Sam Atkins b6906bbcaa feat(git): Resolve more forms of commit reference
Specifically, we previously didn't resolve short commit hashes into the
full ones.

These functions provide a single place to later add more ways of
selection a commit, such as `HEAD~1`.
2024-06-28 14:19:23 -04:00
Sam Atkins 60976b1ed6 feat(git): Format output closer to canonical git
Make some parts colored or bold, and indent commit messages.
2024-06-28 14:19:23 -04:00
Sam Atkins 955154468f feat(git): Make git add work for deleted files
Previously, this:

```sh
> rm deleted.txt
> git add deleted.txt
```

...would unhelpfully complain that deleted.txt cannot be found. Now, it
records the deleted file to the index, just as canonical git does.
2024-06-28 14:19:23 -04:00
Sam Atkins 057b3acf00 feat(git): Allow checking out a commit instead of a branch 2024-06-28 14:19:23 -04:00
Sam Atkins 2c9b1a3ffc feat(git): Handle detached HEAD in git status and git branch --list 2024-06-28 14:19:23 -04:00
Sam Atkins d6dd1a5bb0 feat(git): Add --color and --no-color options
These allow the user to force color on or off. The chalk library is used
for the output, because it's already used elsewhere in Puter and seems
like a good choice.

Ideally, the default will be based on whether stdout is a tty, but Puter
doesn't yet have that concept, so we just default to color.
2024-06-28 14:19:23 -04:00
Sam Atkins 364d580ff8 feat(git): Add authentication to clone, fetch, and pull. 2024-06-28 14:19:23 -04:00
Sam Atkins 8c70229a18 feat(git): Implement git push
For now, the authentication is by --username and --password options,
which obviously is not good because the password is visible. But doing
it in a nicer way requires features that Phoenix or Puter are currently
missing.
2024-06-28 14:19:23 -04:00
Sam Atkins 3cad1ec436 feat(git): Add diff display to show and log subcommands 2024-06-28 14:19:23 -04:00
Sam Atkins c436460b8c tweak(git): Move proxy url definition into config files
We'll likely want to host our own proxy. Self-hosters likewise may have
their own, but it's convenient to use isomorphic-git's for development.
2024-06-28 14:19:23 -04:00
Sam Atkins a68194090e tweak(git): Check for 'ENOENT' instead of ErrorCodes.ENOENT
This is functionally the same, but removes one place where we
unnecessarily relied on Puter code.
2024-06-28 14:19:23 -04:00
Sam Atkins c0562d78a2 docs(git): Document git client 2024-06-28 14:19:23 -04:00
Sam Atkins 622b6a9b92 feat(git): Implement git diff 2024-06-28 14:19:23 -04:00
Sam Atkins 49c2f16351 feat(git): Add start-revision and file arguments to git log 2024-06-28 14:19:23 -04:00
Sam Atkins eb2b6a08b0 feat(git): Implement git pull 2024-06-28 14:19:23 -04:00
Sam Atkins 1822ace296 refactor(git): Use dir/gitdir variable names like isogit does
I prefer the other names, but being able to type `{ dir, gitdir }` is
shorter and a lot less error-prone than `{ dir: repository_dir, gitdir:
git_dir }`.
2024-06-28 14:19:23 -04:00
Sam Atkins 35e4453930 feat(git): Implement git checkout
For now this only lets you check out branches, not files.
2024-06-28 14:19:23 -04:00
Sam Atkins 98a4b9ede3 feat(git): Implement git fetch
Sporadically we hang while trying to fetch. I haven't been able to
identify why but it seems like a race condition in isomorphic-git
somewhere.
2024-06-28 14:19:23 -04:00
Sam Atkins c86e4dfdce Remove unused imports from git subcommands 2024-06-28 14:19:23 -04:00
Sam Atkins ad4f13255d feat(git): Implement git branch
Create, delete, copy, rename, and list branches.
2024-06-28 14:19:23 -04:00
Sam Atkins 43ce0d5b45 feat(git): Implement git remote 2024-06-28 14:19:23 -04:00
Sam Atkins 95c8235a4a feat(git): Implement git clone 2024-06-28 14:19:23 -04:00
Sam Atkins fa81dca950 feat(backend): Add tab completion to server console command arguments
A command can optionally define a `completer(args)` function. It takes
an array of strings for the current arguments, and returns an array of
completion results for the last argument.

Includes a few completers:
- alarm:info/clear/inspect completes the first argument as an alarm id
  or short_id
- script:run completes the first argument as a script name
- params:get/set completes the first argument as a parameter name
2024-06-28 11:18:29 -04:00
Sam Atkins e1e76c6be7 feat(backend): Add tab-completion to server console command names 2024-06-28 11:18:29 -04:00
KernelDeimos ecb997885c fix: bug introduced when refactoring /share to Sequence 2024-06-27 18:27:20 -04:00
KernelDeimos 2faaeaedb3 chore: add write request to kdmod 2024-06-27 18:27:20 -04:00
KernelDeimos e9ee3191e9 doc: document group endpoints 2024-06-27 18:27:20 -04:00
KernelDeimos c374b0cbca feat: add group permission endpoints 2024-06-27 18:27:20 -04:00
KernelDeimos 4216346384 feat: add group management endpoints 2024-06-27 18:27:20 -04:00
KernelDeimos 00149402e0 feat: add user-group permission check 2024-06-27 18:27:20 -04:00
KernelDeimos b817a78efa sql: group permissions table 2024-06-27 18:27:20 -04:00
KernelDeimos 0ddb13e8ee sql: group table 2024-06-27 18:27:20 -04:00
KernelDeimos e132a203d1 refactor: move check-user-permission to Sequence 2024-06-27 18:27:20 -04:00
Nariman Jelveh fbc02a5f62 Fix the issue with re-opening submenus using keyboard 2024-06-26 09:41:57 -07:00
Nariman Jelveh 8a763eab6f fix multiple issues with ctx menu event delegation and keyboard navigation 2024-06-26 00:57:12 -07:00
KernelDeimos b78c83a4ab refactor: share endpoint 2024-06-25 16:59:50 -04:00
KernelDeimos 5551326c98 doc: add documentation for app shares 2024-06-24 20:13:40 -04:00
Sam Atkins d81f6e5ede chore: Mark globals as being part of the window object
Silences eslint
2024-06-24 19:15:02 -04:00
Sam Atkins 00765d0fce chore: Add mods/ directory to eslint 2024-06-24 19:15:02 -04:00
KernelDeimos 9033f6f8c7 fix: update email share object 2024-06-24 19:12:21 -04:00
KernelDeimos 9751fd92a5 feat: add appdata permission (if applicable) on app share 2024-06-24 19:12:21 -04:00
KernelDeimos 13e2f72c9f feat: add subdomain permission (if applicable) on app share 2024-06-24 19:12:21 -04:00
KernelDeimos 0cf90ee39a fix: fix issues with apps in /share endpoint 2024-06-24 19:12:21 -04:00
Sam Atkins 46eb4ed2b9 fix: Throw an error when readdir is called on a non-directory 2024-06-24 19:08:56 -04:00
KernelDeimos a136ee5edd fix: oops 2024-06-24 14:05:08 -04:00
KernelDeimos 15465bfc50 fix: improve console experience on mac 2024-06-24 14:01:00 -04:00
KernelDeimos c79f500364 tweak: improve dev console 2024-06-24 13:53:00 -04:00
Nariman Jelveh 266e41f95c Remove extra height for iframe when menu bar is in desktop mode 2024-06-24 10:24:30 -07:00
KernelDeimos 2839e74420 doc: /sharelink/request 2024-06-24 01:11:40 -04:00
KernelDeimos 742f625309 feat: add /sharelink/request endpoint 2024-06-24 01:11:40 -04:00
KernelDeimos b0e067e4ae doc: misc doc additions 2024-06-23 17:35:19 -04:00
KernelDeimos 16b1649ff6 feat: add debug mod 2024-06-23 17:35:05 -04:00
Nariman Jelveh a094ae5683 Update en.js 2024-06-23 10:01:16 -07:00
Nariman Jelveh a521ff3d7c Merge pull request #490 from HeyPuter/customizable-menubar
Customizable menubar
2024-06-22 22:10:01 -07:00
Nariman Jelveh a58aa3f2e6 Close #480 2024-06-22 22:09:19 -07:00
Nariman Jelveh 0bd0eaf890 add the ability to pick between desktop and winow menubars 2024-06-22 19:51:29 -07:00
KernelDeimos a72ec9799a fix: readdir on file 2024-06-22 19:10:25 -04:00
Nariman Jelveh 704a4ead17 Show register form when user receiving a file is not the correctone 2024-06-21 12:16:42 -07:00
Nariman Jelveh e31625d0da Update IPC.js 2024-06-21 00:06:01 -07:00
Nariman Jelveh d0e3da9b3e Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-06-20 23:47:43 -07:00
Nariman Jelveh 61961b565e Update initgui.js 2024-06-20 23:47:35 -07:00
KernelDeimos 265f4d9d64 doc: document testing Puter with email 2024-06-20 22:59:45 -04:00
Nariman Jelveh 27ec2d7f1c Update initgui.js 2024-06-20 19:43:32 -07:00
Nariman Jelveh 88ce871601 Update initgui.js 2024-06-20 19:38:47 -07:00
Nariman Jelveh 2d4f5778a2 Update initgui.js 2024-06-20 19:37:27 -07:00
Nariman Jelveh 5cb5a75455 Verify share_token when launched 2024-06-20 19:31:03 -07:00
KernelDeimos 5a49074f95 doc: sharelink endpoints 2024-06-20 22:15:57 -04:00
KernelDeimos 301ffaf61d feat: add endpoints for share tokens 2024-06-20 22:15:57 -04:00
KernelDeimos db5990a989 feat: add share service and share-by-email to /share 2024-06-20 22:15:57 -04:00
KernelDeimos fc4ae19d99 chore: cleanup share.js 2024-06-20 22:15:57 -04:00
KernelDeimos bf63144f7a fix: null email in request to /share 2024-06-20 19:41:41 -04:00
Nariman Jelveh 1c2ba76db2 If items are dropped on the home directory of another user, try to share the items rather than copy/move 2024-06-20 14:06:43 -07:00
Nariman Jelveh 6f0706ffc5 rename show_or_hide_empty_folder_message to toggle_empty_folder_message 2024-06-20 13:28:45 -07:00
Nariman Jelveh a834fbcc6c remove scroll bar from 2024-06-20 11:32:03 -07:00
KernelDeimos c0fb470719 tweak: update gui 2024-06-20 12:58:04 -04:00
KernelDeimos dd5fde5130 feat: update share endpoint to support more things 2024-06-20 12:58:04 -04:00
KernelDeimos 18f9959776 doc: type-tagged objects, update share doc 2024-06-20 12:58:04 -04:00
KernelDeimos 5f4b922b19 doc: document future share endpoint 2024-06-20 12:58:04 -04:00
Sam Atkins 2355a43efa tweak: Re-add mime.js import
This got removed in 7006dcc31c, but we do
need it.
2024-06-20 14:21:41 +01:00
Nariman Jelveh 1500f84d46 close #483 2024-06-19 22:30:42 -07:00
KernelDeimos 82f86ee4ab doc(backend): protected apps; function and permissions 2024-06-20 00:43:52 -04:00
KernelDeimos 16c4907be5 feat: add permission rewriter for app by name 2024-06-20 00:32:12 -04:00
Nariman Jelveh f6a4413411 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-06-19 21:07:48 -07:00
Nariman Jelveh feabbaf564 close #430 2024-06-19 21:07:41 -07:00
KernelDeimos 3ae0081b41 tweak: update this too to avoid confusion 2024-06-20 00:01:22 -04:00
KernelDeimos 3b9a74c0cb doc: meta documentation and common pattern tracking 2024-06-20 00:00:59 -04:00
KernelDeimos f2f3d6ff46 feat: add protected apps 2024-06-19 23:44:42 -04:00
Nariman Jelveh 7006dcc31c refactor item_icon 2024-06-19 18:39:32 -07:00
Nariman Jelveh 219cb63b73 refactor open_item 2024-06-19 18:27:49 -07:00
Nariman Jelveh 0726a11d11 refactor get_html_element_from_options 2024-06-19 17:59:48 -07:00
KernelDeimos 55c609b3fe fix: update test kernel 2024-06-19 19:55:50 -04:00
KernelDeimos 7f5f6f83d7 doc: add this doc/planning folder so it stops being in my index 2024-06-19 18:40:05 -04:00
KernelDeimos ceba309dbd fix: add stream limit 2024-06-19 18:33:56 -04:00
KernelDeimos 2008db0852 fix: validate size metadata 2024-06-19 18:33:56 -04:00
Nariman Jelveh 44d340d429 Update UIWindowShare.js 2024-06-19 14:16:48 -07:00
Nariman Jelveh ad079cdcc5 Use razzle dazzle to display icons of items being shared 2024-06-19 14:06:25 -07:00
KernelDeimos d14a30e089 devex: add command to start/stop recording logs to a file 2024-06-19 15:49:58 -04:00
KernelDeimos eb17d61fc1 security: address 7018641 2024-06-19 15:17:58 -04:00
Nariman Jelveh bfd896041e Update UIWindow.js 2024-06-19 12:13:01 -07:00
Nariman Jelveh bd958b3820 show the share dialog when items are dropped on a username in the sidebar 2024-06-19 12:11:05 -07:00
Nariman Jelveh c67674c889 Add license headers 2024-06-19 00:01:12 -07:00
Nariman Jelveh 41e307bd5b cast selectable_body and multiselectable to Boolean 2024-06-18 23:37:28 -07:00
Nariman Jelveh 892750788b Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-06-18 23:21:16 -07:00
Nariman Jelveh 4bd62c02dc close #309 2024-06-18 23:21:07 -07:00
KernelDeimos 5cda51e184 tweak: add missing file for previous commit 2024-06-19 02:10:58 -04:00
KernelDeimos fb1e2f21fb feat: start directory index frame 2024-06-19 02:03:02 -04:00
Nariman Jelveh 581964b655 Make GUI open the relavant directory when URL is provided 2024-06-18 22:11:14 -07:00
Nariman Jelveh c1647a5982 wip: bad commit message, I know. 2024-06-18 21:57:34 -07:00
KernelDeimos a813fbbb88 feat: add cookie for site token 2024-06-19 00:51:16 -04:00
KernelDeimos 86fca17fb1 feat: add protected subdomains 2024-06-19 00:51:16 -04:00
KernelDeimos e7c0b8320a feat: add querystring-informed errors 2024-06-19 00:51:16 -04:00
KernelDeimos 616f28d1d4 tweak: change default static hosting domain 2024-06-19 00:51:16 -04:00
KernelDeimos 56e527d3ee db: add protected flag to app and subdomain 2024-06-19 00:51:16 -04:00
KernelDeimos 360ad2e252 refactor: move FilesystemService to BaseService 2024-06-19 00:51:16 -04:00
KernelDeimos 3e98f1a8a8 tweak: acl update 2024-06-19 00:10:40 -04:00
Nariman Jelveh 174e2b7781 Take user to shared directory when clicked on share notif 2024-06-18 21:04:09 -07:00
KernelDeimos cd65217f5c fix: switch share notif username to sender 2024-06-18 23:43:10 -04:00
Nariman Jelveh 1d083efb67 We officially have one of the best web-based Context Menus 2024-06-18 20:25:42 -07:00
Nariman Jelveh 1904b92a9d Update jquery.menu-aim.js 2024-06-18 18:15:53 -07:00
Nariman Jelveh 5dc640bec1 Add a list of sharing users in the sidebar of Explore 2024-06-18 17:15:46 -07:00
KernelDeimos d96f924cad fix: type error in puter-site 2024-06-18 13:03:40 -04:00
Sam Atkins 85c6798448 fix: Make polyfilled import.meta.filename getter a valid function 2024-06-18 13:17:04 +01:00
KernelDeimos 7eabb43bd4 fix: i forgot to test reloading 2024-06-18 05:09:29 -04:00
KernelDeimos de5886698e fix: fix permission cascade properly this time 2024-06-18 03:56:38 -04:00
KernelDeimos 10cbf08233 fix: peers array assumption 2024-06-18 02:44:20 -04:00
KernelDeimos b126b67094 fix: fix that fix 2024-06-18 01:40:27 -04:00
KernelDeimos e63ab3a67f fix: add permission implicator for file modes 2024-06-18 01:39:13 -04:00
Nariman Jelveh 4aa72eaf15 Update jQuery UI to 1.13.2 2024-06-17 22:35:17 -07:00
Nariman Jelveh 91b7f7db1e simplify UI for sharing 2024-06-17 21:50:30 -07:00
Nariman Jelveh e9af6358bb Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-06-17 21:26:09 -07:00
Nariman Jelveh 7f516896be Add the ability to share and revoke permission through UiWindowShare 2024-06-17 21:26:00 -07:00
KernelDeimos 34d4d606c3 tweak: add more information to errors 2024-06-17 22:45:05 -04:00
KernelDeimos 831c29f23b tweak: report permission for file shares 2024-06-17 22:13:06 -04:00
KernelDeimos bbf09eb74e doc: document path property items in /share 2024-06-17 20:35:49 -04:00
KernelDeimos 11a135c7b7 doc: add request example for /share 2024-06-17 18:44:21 -04:00
KernelDeimos 807addb4ef doc: document /share endpoint 2024-06-17 18:34:45 -04:00
KernelDeimos 6cdbc92ae3 tweak: add dry-run and tweak response for /share 2024-06-17 18:34:45 -04:00
KernelDeimos 846fdc20d4 feat: multi-recipient multi-file share endpoint 2024-06-17 18:34:45 -04:00
Nariman Jelveh afe37a69d6 Update IPC.js 2024-06-17 14:51:48 -07:00
KernelDeimos ce0eee3e29 tweak: add more reserved words 2024-06-17 17:45:33 -04:00
KernelDeimos f7a054956b fix: add app_uid param to kv interface 2024-06-17 17:33:37 -04:00
Nariman Jelveh 21c537fe22 Refactor to use KV exclusively 2024-06-17 14:33:24 -07:00
Nariman Jelveh 5f8b8a2147 Make sure an iframe is focused after app is loaded 2024-06-17 13:17:37 -07:00
Nariman Jelveh 2a748f1884 Close all other contextmenus when a new menu item is opened 2024-06-17 09:41:22 -07:00
Nariman Jelveh b2f2c557e9 Update UIWindowShare.js 2024-06-16 23:29:40 -07:00
Nariman Jelveh ccf6ebef4d Add support for disabled context menu items through puter.js 2024-06-16 20:18:11 -07:00
Nariman Jelveh 04adade80e Update launch_app.js 2024-06-16 19:25:06 -07:00
Nariman Jelveh fe2c8bc249 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-06-16 19:24:58 -07:00
Nariman Jelveh f185c02f4c Update UIContextMenu.js 2024-06-16 19:00:53 -07:00
KernelDeimos 35cbec43e6 tweak: add full fsentry to share notification 2024-06-16 22:00:15 -04:00
Nariman Jelveh 4ef6fd6148 Make mouseMoved event take into account window head height 2024-06-16 18:48:34 -07:00
Nariman Jelveh 2a0fb8fe6d Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-06-16 18:35:50 -07:00
Nariman Jelveh b789bb7078 Refactor launch_app to add support for fullpage apps on landing 2024-06-16 18:10:37 -07:00
KernelDeimos 31d4eb090e feat: implicit access from apps to shared appdata dirs 2024-06-16 21:09:04 -04:00
KernelDeimos a2a10b94be fix: do not delegate to select on read like ever that is really dumb 2024-06-16 20:57:32 -04:00
KernelDeimos 9b39309e18 fix: database migration 2024-06-16 18:59:45 -04:00
Nariman Jelveh 6d1c1d3ed2 Add support for the metadata attribute for the App object in puter.js 2024-06-16 15:12:33 -07:00
KernelDeimos cb050b079a chore: update eslint config 2024-06-16 16:41:28 -04:00
KernelDeimos f7216b9567 feat: add app metadata 2024-06-16 16:41:28 -04:00
Nariman Jelveh 8ebf1cec3f Update UIContextMenu.js 2024-06-16 13:41:16 -07:00
Nariman Jelveh 0fea080ba9 Blur context menu items when mouse leaves 2024-06-16 13:25:46 -07:00
KernelDeimos 632c536616 fix: correct shown flag behavior 2024-06-16 02:19:37 -04:00
Nariman Jelveh c35ecec5a4 Focus back on the parent window when an item in context menu is clicked 2024-06-15 23:17:45 -07:00
Nariman Jelveh e466dc8057 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-06-15 22:58:31 -07:00
Nariman Jelveh 476f408a13 Take into account the menubar height when positioning the contextmenu via puter.js 2024-06-15 22:58:24 -07:00
KernelDeimos 8c49ba2553 feat: add share list to stat 2024-06-16 01:54:25 -04:00
Nariman Jelveh 0dbc6aad0f Don't show 'Cut' and 'Delete' options on shared items 2024-06-15 22:14:14 -07:00
Nariman Jelveh 705b9de28c Add basic sharing UI 2024-06-15 20:36:40 -07:00
KernelDeimos b648817f27 fix: incorrect error from suggested_apps 2024-06-15 23:21:54 -04:00
KernelDeimos 1389298f8c doc: document share endpoints 2024-06-15 22:39:47 -04:00
KernelDeimos 2f6c428a40 feat: send notification when file gets shared 2024-06-15 22:39:47 -04:00
KernelDeimos f9d2a87d25 chore: choose end-user-facing name for fs nodes 2024-06-15 22:39:47 -04:00
KernelDeimos 0f05a41ea8 tweak: add improvements to share/file-by-username 2024-06-15 22:39:47 -04:00
KernelDeimos 9ac8535832 Add support for optional auth 2024-06-15 22:39:47 -04:00
Nariman Jelveh ea84c2f26d Fix issues with inconsistent path formats for owned files vs shared files 2024-06-15 22:39:47 -04:00
KernelDeimos f2c6e01296 fix: remove legacy permission check in stat 2024-06-15 22:39:47 -04:00
KernelDeimos d128ceed6f fix: handle subpaths under another user 2024-06-15 22:39:47 -04:00
KernelDeimos 19a5eb0076 feat: add readdir delegate for sharing user homedirs 2024-06-15 22:39:47 -04:00
KernelDeimos 8424d44609 feat: add readdir delegate for shares in a user directory 2024-06-15 22:39:47 -04:00
KernelDeimos 1166e69c76 fix: remove last component when share URL is file 2024-06-15 22:39:47 -04:00
KernelDeimos 079e25a9fe feat: add /show urls 2024-06-15 22:39:47 -04:00
KernelDeimos 5d214c7b52 feat: add /share/file-by-username endpoint 2024-06-15 22:39:47 -04:00
Nariman Jelveh 1859668257 Add proper handling of the close event handler in UINotification 2024-06-15 17:28:11 -07:00
KernelDeimos 7015cfcd31 chore: update doc too 2024-06-15 19:26:08 -04:00
KernelDeimos d5d987ead6 chore: fix typo because acknowledge is not spelled awknowledge in any variant of the english language 2024-06-15 19:25:09 -04:00
KernelDeimos 6f333bf262 doc: update notification doc 2024-06-15 19:13:11 -04:00
KernelDeimos 5f5bd6bd24 doc: add notification documentation 2024-06-15 18:59:32 -04:00
KernelDeimos 20542b0565 tweak: update notification format 2024-06-15 18:59:32 -04:00
KernelDeimos ef8f4de962 tweak: use timestamps to track notif awks 2024-06-15 18:59:32 -04:00
KernelDeimos f06cb30447 tweak: set limit to 200 for notification select 2024-06-15 18:59:32 -04:00
KernelDeimos c5334b0e19 feat: introduce notification selection via driver 2024-06-15 18:59:32 -04:00
KernelDeimos d5cbc24cfe chore: update lint config 2024-06-15 18:59:32 -04:00
KernelDeimos 0101f425d4 feat: add mark-read endpoint 2024-06-15 18:59:32 -04:00
KernelDeimos 02fc4d86b7 feat: re-send unreads on login 2024-06-15 18:59:32 -04:00
KernelDeimos a1e6887bf9 feat: add service for notifications 2024-06-15 18:59:32 -04:00
Nariman Jelveh 7e13ab16c9 Update style.css 2024-06-15 14:24:16 -07:00
KernelDeimos a623c94728 tweak: set app/subdomain query limit very high 2024-06-15 16:41:51 -04:00
KernelDeimos ba58c3fbeb Add a debug logger for backend 2024-06-15 16:02:07 -04:00
Nariman Jelveh 7b724ff1eb show the "Close All" button on multiple notifications 2024-06-15 13:01:33 -07:00
Nariman Jelveh b74315c7f5 add "fade up?!" animation to disappearing notifications 2024-06-15 12:31:14 -07:00
Nariman Jelveh e18766a651 Add support for value and click options to UINotification 2024-06-15 12:02:09 -07:00
Nariman Jelveh 9ecd5170e7 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-06-15 11:31:39 -07:00
Nariman Jelveh 82c60414b9 Add support for icon, title, and text in notifications 2024-06-15 11:31:26 -07:00
KernelDeimos 502c9a36c7 chore: cleanup console log in BroadcastService 2024-06-15 13:53:53 -04:00
Nariman Jelveh 40c0ef4567 reimplement stacked notifications 2024-06-15 01:28:35 -07:00
Nariman Jelveh 5a47ba4110 Update UIDesktop.js 2024-06-15 01:02:14 -07:00
Nariman Jelveh f047c6b738 implement naive notification stacking 2024-06-15 01:01:29 -07:00
KernelDeimos e77c5f8bbc chore: update lint config 2024-06-14 23:22:23 -04:00
KernelDeimos 6c20ababfb chore: sync package.json 2024-06-14 23:17:58 -04:00
KernelDeimos 1207a158bd feat: add cross-server event broadcasting 2024-06-14 23:17:58 -04:00
KernelDeimos 3ae0773ce8 chore: revive static-assets (for now) 2024-06-14 23:06:38 -04:00
Eric Dubé d6d6fb0c37 Update build-and-test.yml 2024-06-14 22:42:19 -04:00
KernelDeimos 2cc1c5ac6c chore: fix linter errors 2024-06-14 22:01:31 -04:00
Nariman Jelveh 981066c4a1 Refactor helpers.js 2024-06-14 16:38:07 -07:00
Nariman Jelveh cb60759687 Fix html encode/decode issue in item rename 2024-06-13 11:46:54 -07:00
Nariman Jelveh cf08244b6f Enable keyboard navigation in the menubar 2024-06-13 00:05:48 -07:00
Nariman Jelveh 0c4728fbc1 Refactor 2024-06-12 21:41:02 -07:00
Nariman Jelveh 72641c66a2 Support the modification of individual items withing a menu bar 2024-06-12 19:18:24 -07:00
KernelDeimos cdff12e4e0 Remove repo links from Phoenix shell init 2024-06-12 01:50:13 -04:00
KernelDeimos dfdf1dd973 chore: appease linter so it stops ruining my index 2024-06-11 22:46:11 -04:00
KernelDeimos d38bf63f8e Get rid of old typo'd debug log 2024-06-11 13:57:25 -04:00
KernelDeimos 8e0f150fab Fix ESM-interop issue 2024-06-11 13:57:03 -04:00
KernelDeimos 684b0dc059 Support configurable mod locations 2024-06-10 03:02:17 -04:00
KernelDeimos 8d22276f13 fix(backend): remove a bad thing that really doesn't work 2024-06-09 14:21:07 -04:00
KernelDeimos b85cb50ea2 tweak: update eslint config 2024-06-09 13:14:48 -04:00
KernelDeimos 431b0da027 tweak: fix package-lock.json
Using npm install appears to have different results depending on whether
or not the parent directory of the puter repository happens to have a
package.json file (ex: nested workspaces).
2024-06-09 13:14:48 -04:00
KernelDeimos eb05fbd2dc feat: add external mod loading
A package called "useapi" is introduced to provide a dynamic import
system. This import system, rather than relying on the state of the
filesystem, is populated as modules are installed into Puter's kernel.

The "useapi" package is then used to add support for loading external
mod directories as Puter kernel modules, making it possible to mod puter
without any tooling.
2024-06-09 13:14:48 -04:00
Eric Dubé fa7bec3854 refactor: flatten the monorepo 2024-06-08 01:07:42 -04:00
KernelDeimos f88c4a5c9c doc(backend): document modules, services, and service-scripts 2024-06-06 20:10:23 -04:00
Ben Hählen 6ef283d7ef Docker CI - Update actions (#460)
* Update docker-image.yaml

* Update docker-image.yaml

* Update docker-image.yaml

* Update docker-image.yaml

* Update docker-image.yaml

* Create Docker on Tag and push on main
2024-06-06 16:41:19 -04:00
Nariman Jelveh 5e9617f6cc Add support for ContextMenu icons via Puter.js 2024-06-05 14:39:52 -07:00
KernelDeimos 30550fcddd feat(backend): add script service
The script service allows other services to register re-runnable tasks
called "scripts". These can be invoked via "script:run" in the console.
2024-06-05 16:17:03 -04:00
Nariman Jelveh 1416807c9d Merge pull request #454 from eltociear/patch-3
chore: update UI.js
2024-06-05 10:39:43 -07:00
KernelDeimos 41f378e403 Somehow this got lost earlier 2024-06-04 16:53:29 -04:00
KernelDeimos 0b0707363c Fix potential race condition 2024-06-04 16:28:53 -04:00
Nariman Jelveh 04fefc0761 Update README.md 2024-06-04 13:07:02 -07:00
Ikko Eltociear Ashimine de974f0551 chore: update UI.js
occured -> occurred
2024-06-05 01:17:23 +09:00
Eric Dubé aec5cd5148 Merge pull request #451 from HeyPuter/eric/drivers-1
refactor(backend): de-couple driver registration from DriverService
2024-06-03 18:11:53 -04:00
Eric Dubé 2a2a42c153 Merge pull request #424 from AtkinsSJ/sed
Actually parse sed scripts
2024-06-03 12:22:15 -04:00
Nariman Jelveh 66639ea110 Merge pull request #449 from wamynobe/main
fix: fix typo
2024-06-03 00:50:31 -07:00
Nariman Jelveh 1ae82b3210 turns out ESLint is garbage 2024-06-02 16:30:29 -07:00
Nariman Jelveh a81f461b54 Implement the contextMenu API for Puter.js 2024-06-02 16:15:35 -07:00
Nariman Jelveh cf8a07286a Fix typo sanitizeItems to sanitize_items 2024-06-02 10:23:41 -07:00
Nariman Jelveh 6efff83616 Support separator in the setMenubar API 2024-06-02 10:21:11 -07:00
Nariman Jelveh 233a2719c6 Add temp-email driver implementation to the SDK 2024-06-01 16:34:37 -07:00
Nariman Jelveh 49f61c4782 Update UIContextMenu.js 2024-06-01 15:56:32 -07:00
KernelDeimos 665b2d4e4e refactor(backend): de-couple driver registration from DriverService 2024-06-01 18:20:27 -04:00
Mason Nguyen ce328b7245 fix: fix typo 2024-06-01 11:00:03 +07:00
Eric Dubé 135b5eccc5 Merge pull request #448 from HeyPuter/eric/log-update
feat(backend): improve logger and reduce logs
2024-05-31 20:38:10 -04:00
KernelDeimos 2d8e6240c6 feat(backend): add tip of day 2024-05-31 20:36:14 -04:00
KernelDeimos 4bdad75766 feat(backend): improve logger and reduce logs 2024-05-31 19:40:13 -04:00
KernelDeimos 522664d415 feat(backend): allow services to provide user properties 2024-05-31 18:10:11 -04:00
KernelDeimos 71e2310fa4 tweak(ui): expose UIAlert to service scripts 2024-05-31 18:09:15 -04:00
KernelDeimos d2b37fc436 tweak(ui): fix NotifCard accessing on_click 2024-05-31 18:03:45 -04:00
Nariman Jelveh e6e058c0a0 Update UIContextMenu.js 2024-05-31 10:58:18 -07:00
Sam Atkins 6de4c89c25 refactor(phoenix): Combine similar sed command classes
These make more sense combined into one Command which is controlled by
constructor parameters:

- b, t and T
- d and D
- g and G
- h and H
- p and P
2024-05-31 15:49:32 +01:00
Sam Atkins 0d4f907b66 feat(phoenix): Implement parsing of sed scripts
Sed is now finally able to actually run scripts, instead of ignoring all
input and running a hard-coded test script!
2024-05-31 15:49:32 +01:00
Sam Atkins e047b0bf30 fix(phoenix): Add missing newlines to sed command output 2024-05-31 15:49:32 +01:00
Sam Atkins f250f86446 feat(phoenix): Add --dump and --file options to sed 2024-05-31 15:49:32 +01:00
Sam Atkins 4067c82486 feat(phoenix): Expose parsed arg tokens to apps that request them
Some shell apps care about what order the arguments appear in. When
`parseArgs()` is called with `tokens: true`, it produces this `tokens`
array which represents all the command line options and arguments, in
order, which is useful for these more advanced cases.
2024-05-31 15:49:32 +01:00
Sam Atkins 306014adc7 feat(phoenix): Add more commands to sed, including labels and branching
This is ported over from an old forgotten branch I'd deleted, then
thankfully managed to dig up again. 😅

Instead of making GroupCommand contain child commands, use a flat array
for commands and implement groups as GroupStartCommand and
GroupEndCommand. This makes it much simpler to iterate the commands
list in order to jump to labels.

Then implement those labels and the commands that use them: b, t, and T.

Also add the s SubstituteCommand, and combine the code for the q and Q
commands.
2024-05-31 15:49:32 +01:00
Sam Atkins 6aae8fc63b refactor(phoenix): Split up sed code
Let's organise this a bit.
2024-05-31 15:49:32 +01:00
Sam Atkins 9b4d16fbe9 fix(parsely): Make Repeat parser work when no separator is given 2024-05-31 15:49:32 +01:00
Sam Atkins d46b043c5d feat(parsely): Add stringUntil() parser
The counterpart of stringOf(), it reads characters until it matches its
parameter.
2024-05-31 15:49:32 +01:00
Sam Atkins 5656d9d42f feat(parsely): Add a fail() parser
I've found this useful for stubbing out parts of a grammar during
development.
2024-05-31 15:49:32 +01:00
Nariman Jelveh c9a43ce5c0 Update UIContextMenu.js 2024-05-30 18:16:32 -07:00
Nariman Jelveh 7c8492ba43 Fix the issue of checkmark's wrong color in ctx menu disabled items on hover 2024-05-30 17:09:18 -07:00
Nariman Jelveh 16d5ac6abb Delay opening the submenu for smoother mouse navigation on the menu 2024-05-30 15:24:50 -07:00
Nariman Jelveh a8515e0a41 Switch font to Inter 🎉 2024-05-30 15:14:25 -07:00
KernelDeimos fccabf1bc0 feat(backend): allow services to provide whoami values 2024-05-30 17:11:06 -04:00
Eric Dubé dd1d129693 Merge pull request #444 from HeyPuter/eric/ui-updates
UI Updates
2024-05-30 16:48:28 -04:00
KernelDeimos 124596058a feat(ui): allow component-based settings tabs 2024-05-30 16:14:32 -04:00
KernelDeimos be38df32ec tweak(ui): allow setting render more for JustHTML 2024-05-30 16:14:32 -04:00
KernelDeimos 577bd59b6c feat(ui): add new components
This commit adds the following components:
- ActionCard
- Frame
- NotifCard
2024-05-30 16:14:32 -04:00
KernelDeimos f8780d032b fix(ui): improve Component base class
The following improvements were made:
- do not require empty object in constructor
- allow components to override render mode based on constructor values
- improve error handling in get()
- allow array of property names in on_ready()->listen()
- allow components to be attached to shadow roots
2024-05-30 16:07:16 -04:00
KernelDeimos 38ba42575c feat(ui): add new components
This commit adds the following components:
- Glyph
2024-05-30 16:04:52 -04:00
Nariman Jelveh 60f0ade3c1 Improve the UX of the menubar and context menu 2024-05-30 13:02:00 -07:00
KernelDeimos 8e083d20d2 tweak(ui): allow size changing on spinner 2024-05-30 15:59:05 -04:00
Eric Dubé a62a56fd7b Merge pull request #413 from AtkinsSJ/extract-posix-error
refactor: Move PosixError class where it can be accessed outside of Phoenix
2024-05-30 12:43:41 -04:00
Eric Dubé 895358e6e5 Merge pull request #423 from AtkinsSJ/parsely
Tidy up "newparser" so it can be used properly
2024-05-30 12:42:03 -04:00
Eric Dubé d57980c6cb Merge pull request #421 from AtkinsSJ/exit-status
Add exit status codes to `puter.exit()`, and an `exit` builtin to Phoenix
2024-05-30 12:28:36 -04:00
Eric Dubé 0672562c8a Merge pull request #442 from HeyPuter/eric/extensibility
class registry for service scripts
2024-05-28 20:10:03 -04:00
KernelDeimos d047abf31c Update eslint 2024-05-28 19:06:00 -04:00
KernelDeimos e050506a05 Add class registry (second pass)
ExportService gets removed and instead a global class registry is added.
The `init.js` file is split into `init_sync.js` and `init_async.js`
so that synchronous code that isn't dependent on imports is guarenteed
to run before initgui.js. The globalThis scope and service-script API
now expose `def`, a function for registering class definitions, and
`use`, a function for obtaining registered classes.
2024-05-28 19:06:00 -04:00
KernelDeimos cd574c87ef Fix the previous fix 2024-05-28 16:10:43 -04:00
KernelDeimos 4e3a24e609 fix: check subdomain earlier for /apps 2024-05-28 15:51:22 -04:00
Eric Dubé c495ccff65 Merge pull request #408 from AtkinsSJ/git-client
Add a git client
2024-05-28 12:10:01 -04:00
KernelDeimos 51bac4486f Add class registry (first pass)
In the first pass I add a `register` method and update `defineComponent`
so it calls `register` as well. This made it possible to create a
proof-of-concept for registered classes. Additionally ExportService was
added to expose registered classes to service scripts. This first pass
works, but it would be better if all types of classes (components or
otherwise) were registered via the same method.
2024-05-27 21:16:50 -04:00
Eric Dubé 146ce659e2 Merge pull request #434 from HeyPuter/eric/get-user-service
refactor: add GetUserService
2024-05-26 00:44:03 -04:00
KernelDeimos c0cb1cd2b8 refactor: add GetUserService 2024-05-26 00:31:51 -04:00
Eric Dubé f4d41891d9 Merge pull request #426 from HeyPuter/eric/service-scripts
refactor(gui): add service scripts
2024-05-25 17:35:55 -04:00
KernelDeimos 06f41659f5 Add function to import UIWindow from service scripts 2024-05-25 17:20:22 -04:00
KernelDeimos cbfad2ef7a refactor(gui): add service scripts 2024-05-24 19:29:07 -04:00
Eric Dubé 8de94d3f1c Merge pull request #422 from HeyPuter/eric/gui-loading
GUI loading refactor + service-registered gui scripts
2024-05-24 17:42:14 -04:00
Eric Dubé f20870544d Update docker-image.yaml 2024-05-24 16:53:13 -04:00
Eric Dubé 4d91ef14f4 Update docker-image.yaml 2024-05-24 16:49:43 -04:00
Eric Dubé 6ed9f0a01d Update docker-image.yaml 2024-05-24 16:41:20 -04:00
Eric Dubé 94e9f8fd34 Update docker-image.yaml 2024-05-24 16:37:01 -04:00
Eric Dubé fc51424f86 Merge pull request #332 from HeyPuter/release-please--branches--main--components--puter.com
chore(main): release 1.0.0
2024-05-24 16:25:34 -04:00
github-actions[bot] 5146dc4981 chore(main): release 2.3.0 2024-05-24 16:22:55 -04:00
Sam Atkins 03123faa8a Finish concept JSON parser
This now can parse JSON correctly in various configurations.
2024-05-24 16:23:26 +01:00
Sam Atkins 7fccf79591 Make stringOf() take a callback instead of an array of accepted values
THe `a.stringOf(' \r\n\t'.split('')),` pattern works fine for small sets
of characters, but is horrible for situations like "any alphanumeric".
Instead, let's make it take a callback function that is run on each
character.
2024-05-24 16:23:26 +01:00
Sam Atkins d3dff8c20e Throw errors if parsing fails
Not consuming all input is now treated as an error, unless the
`must_consume_all_input` flag is set to false when parsing.
2024-05-24 16:23:26 +01:00
Sam Atkins 0bc4c3fde2 Move StringStream into Parsely 2024-05-24 16:23:26 +01:00
Sam Atkins 873dee7e51 Implement 'trailing' parameter for repeat() parser 2024-05-24 13:30:45 +01:00
Sam Atkins 837ec68371 Reorganize and document Parsely classes
- lib.js only holds Parser so rename it parser.js
- Move Symbol and None into terminals.js
- Briefly document all parser classes
2024-05-24 12:26:04 +01:00
Sam Atkins f8525c6f6c Rename newparser to Parsely
We're going to actually use this so let's give it a more permanent name.
2024-05-24 11:48:34 +01:00
KernelDeimos a1cfe7aef2 Allow services to register additional js files for gui 2024-05-23 18:41:34 -04:00
KernelDeimos 5042d49935 Simplify debugging runtime config object changes 2024-05-23 18:40:41 -04:00
KernelDeimos c89b50bf31 Refactor gui loading 2024-05-23 18:13:57 -04:00
Nariman Jelveh 103f9d209d Update README.md 2024-05-23 14:32:24 -07:00
KernelDeimos 4508bfac73 Fix cookie issue 2024-05-23 13:30:02 -04:00
Sam Atkins 3184d3482c feat(phoenix): Implement an exit builtin 2024-05-23 15:27:15 +01:00
Sam Atkins 5de3052026 feat(phoenix): Respond to exit status codes
- Detect exit status of Puter apps, now that that's available.
- Store the exit status of each pipeline.
- Display a message when the exit status was non-zero.

That message is temporary, until we have a better way of displaying or
querying it, such as the `$?` shell variable.
2024-05-23 15:26:43 +01:00
Sam Atkins 7674da4cd2 feat: Add exit status code to apps
`puter.exit()` now takes a status code, similar to the exit status on
desktop OSes. This is passed to the appClosed event, so that eg a
parent app can know whether its child app ran successfully.
2024-05-23 12:54:06 +01:00
Eric Dubé b15dc316d3 Merge pull request #406 from AtkinsSJ/fs-upload-data-type-error
Explicitly reject invalid types for puter.fs.upload() and .write() payloads
2024-05-22 12:13:24 -04:00
Sam Atkins 10f715f726 Implement git show 2024-05-22 16:00:42 +01:00
Sam Atkins 0377015190 Implement git config
This is also basic:

git config key             # To read a value
git config key value       # To set a value
git config --unset key     # To delete a value

As noted, --list is not possible to implement currently.
2024-05-22 16:00:42 +01:00
Sam Atkins 98c33fb3cc Implement git log
This is quite barebones for now.

Commit formatting is done in a separate file, as this is used by other
git commands, such as `show`.
2024-05-22 16:00:42 +01:00
Sam Atkins b4e2ba4544 Implement git commit 2024-05-22 16:00:42 +01:00
Sam Atkins 32c172d145 Implement git add 2024-05-22 16:00:42 +01:00
Sam Atkins 5a308a2a53 Implement git status 2024-05-22 16:00:42 +01:00
Sam Atkins 71873a9c27 Add a helper function for finding the git repo 2024-05-22 16:00:42 +01:00
Sam Atkins 5e3db870ec Implement git init 2024-05-22 16:00:42 +01:00
Sam Atkins 85b7587c42 Implement git help, git version, and subcommand infrastructure
Each subcommand is its own file, modeled after Phoenix's coreutils.
2024-05-22 16:00:42 +01:00
Sam Atkins b75c42b39f Implement Puter filesystem wrapper for git app 2024-05-22 08:56:50 +01:00
Sam Atkins 0d2ffdb380 Add boilerplate for empty git app
It does nothing but output a message to the console.
2024-05-22 08:56:50 +01:00
Sam Atkins 8f1c4fcda9 feat(Phoenix): Pass command line arguments and ENV when launching apps 2024-05-22 08:56:50 +01:00
Sam Atkins bf33fd752d Remove outdated FIXMEs about consuming extra stdin data 2024-05-22 08:56:50 +01:00
Sam Atkins c08c8bd073 Expose POSIX error name as PosixError.code
This matches the behaviour of Node.JS's errors, and some libraries
expect it.
2024-05-22 08:56:50 +01:00
Sam Atkins 8098dc9dcc Move error-conversion functions into PosixError
Specifically, this makes the Puter->PosixError conversion available to
the in-progress git client.
2024-05-22 08:56:50 +01:00
Sam Atkins e43b21387c Move PosixError into puter-js-common
The in-progress git client also needs to use this. puter-js-common uses
commonjs modules, so it had to be adjusted for that.
2024-05-22 08:56:50 +01:00
KernelDeimos 1f6a2093fb Disallow negative size values 2024-05-21 18:46:34 -04:00
KernelDeimos 90463a0732 Add support for webhook endpoints 2024-05-21 17:25:28 -04:00
Sam Atkins acf7eabef9 Expose POSIX error name as PosixError.code
This matches the behaviour of Node.JS's errors, and some libraries
expect it.
2024-05-20 12:14:22 +01:00
Sam Atkins 017077f8cb Move error-conversion functions into PosixError
Specifically, this makes the Puter->PosixError conversion available to
the in-progress git client.
2024-05-20 12:14:18 +01:00
Sam Atkins e798576a87 Move PosixError into puter-js-common
The in-progress git client also needs to use this. puter-js-common uses
commonjs modules, so it had to be adjusted for that.
2024-05-20 12:11:12 +01:00
Karan Parmar cc45a08388 updated the github links displayed in the Terminal welcome message 2024-05-19 11:52:26 +01:00
KernelDeimos 8cca067991 Fix 8688ha84v 2024-05-17 22:55:40 -04:00
Eric Dubé 80b763c47c Merge pull request #407 from AtkinsSJ/clean-suggested-apps
fix: Remove null or duplicate app entries from suggest_app_for_fsentry()
2024-05-17 15:46:06 -04:00
Eric Dubé 8786024559 Merge pull request #404 from secondtruth/patch-1
Update de.js
2024-05-17 15:42:02 -04:00
Eric Dubé bbb43f53d0 Merge pull request #403 from Zac0511/patch-3
Update fr.js
2024-05-17 15:39:06 -04:00
KernelDeimos 639e40d355 Phoenix shell deployment update 2024-05-17 13:26:44 -04:00
KernelDeimos f964f06f3f Fix 8688h4bwg 2024-05-17 13:05:13 -04:00
KernelDeimos e4543c5f35 Fix 8688ggu00 (2) 2024-05-17 12:32:16 -04:00
Sam Atkins 6900233c5a fix: Remove null or duplicate app entries from suggest_app_for_fsentry() 2024-05-17 15:34:36 +01:00
Sam Atkins 03fe3b6a0d Reject invalid types for puter.fs.upload() items or .write() data
Previously, this would crash in upload() when trying to iterate the
`entries` array, which is undefined when the `items` parameter is an
unsupported type.
2024-05-17 14:39:31 +01:00
Sam Atkins a9c89cef19 refactor: Reduce boilerplate for returning errors from puter.fs.upload() 2024-05-17 14:39:31 +01:00
Zac0511 340b9202c0 Update fr.js 2024-05-17 14:36:54 +02:00
Zac0511 99ca8755f3 Update fr.js 2024-05-17 14:22:22 +02:00
Zac0511 eaf1e96fa2 Update fr.js 2024-05-17 14:19:19 +02:00
Zac0511 f9b5353058 Update fr.js 2024-05-17 14:15:49 +02:00
Zac0511 e0af914c90 Update fr.js 2024-05-17 14:00:43 +02:00
Zac0511 8f19f4dc5b Update fr.js
Complete rework of the file, completly remade from en.js
2024-05-17 13:58:33 +02:00
Zac0511 5f47e7f0fa Update fr.js
Bug repairing... again
2024-05-17 09:55:25 +02:00
Zac0511 9c39b0453d Update fr.js
Little update for some bugs
2024-05-17 09:16:12 +02:00
Zac0511 545fc103b8 Update fr.js
Complete rework of the file for the latest updates
2024-05-17 09:10:55 +02:00
KernelDeimos c55b1e4680 Remove verification requirement on contact us form 2024-05-16 19:08:51 -04:00
Eric Dubé 297db58e68 Merge pull request #405 from HeyPuter/eric/path-builder
Add path builder
2024-05-16 19:08:56 -04:00
KernelDeimos e3f57ee20e Add path builder 2024-05-16 19:02:58 -04:00
KernelDeimos 5031cea040 Update _default.js for deployment purposes 2024-05-16 18:55:59 -04:00
Eric Dubé 6fe126ad5a Merge pull request #386 from HeyPuter/eric/socket-auth
fix(security): Move token for socket.io to request body
2024-05-16 18:02:12 -04:00
KernelDeimos 49b257ecff fix(security): Move token for socket.io to request body
Currently this commit breaks websocket events and needs to
be updated.
2024-05-16 17:58:44 -04:00
KernelDeimos f042b095f1 Fix 8688gxkuj 2024-05-16 17:25:41 -04:00
Christian Neff 43d0936533 Update de.js
Translated:
- 2FA strings
- Task Manager strings
- 2 other scattered strings
2024-05-16 19:51:42 +02:00
KernelDeimos b68873c5f4 Fix 8688grpf1 2024-05-16 12:48:57 -04:00
Zac0511 e1ae9241af Update fr.js 2024-05-16 18:27:12 +02:00
Zac0511 b6ea37c517 Update fr.js
Since there was a lot of text and menus added, and they were not translated, so i just translated them.
2024-05-16 18:06:21 +02:00
KernelDeimos bee0e19eaf Fix 8688ggu00 2024-05-15 20:59:20 -04:00
Eric Dubé f54657a569 Merge pull request #402 from HeyPuter/eric/email-lock
Add locking to save_account
2024-05-15 18:49:03 -04:00
Eric Dubé 1aa27084d0 Merge pull request #396 from AtkinsSJ/xterm-fix
fix(Terminal): Accept input from Chrome on Android
2024-05-15 18:24:02 -04:00
KernelDeimos 691c8f1436 Add locking to save_account 2024-05-15 18:22:54 -04:00
Eric Dubé b72e5b7e02 Merge pull request #401 from HeyPuter/eric/service-patches
Allow patching services
2024-05-15 15:47:14 -04:00
KernelDeimos c70e378973 Add error id for expired auth tokens 2024-05-15 15:42:00 -04:00
KernelDeimos 21444daefb Add jsdoc comments to registerService and patchService 2024-05-15 15:41:37 -04:00
KernelDeimos 2e0d7361cb Add method to patch services 2024-05-15 15:32:18 -04:00
Eric Dubé 6e0b6d84d2 Merge pull request #400 from AtkinsSJ/fix-apierror-includes
fix: Correct APIError imports
2024-05-15 13:51:04 -04:00
Eric Dubé ec59abe3ae Merge pull request #399 from AtkinsSJ/fix-db-scripts
fix: Add missing file extension to 0009_app-prefix-fix.sql in DB init
2024-05-15 13:45:30 -04:00
Sam Atkins 062e23b5c9 fix: Correct APIError imports
APIError is the only thing exported from its file, so we must not wrap
it in {}.
2024-05-15 17:47:15 +01:00
Sam Atkins a8160a8cdc fix: Add missing file extension to 0009_app-prefix-fix.sql in DB init 2024-05-15 10:18:28 +01:00
KernelDeimos 0b093dd57e Revoke other sessions when password is changed 2024-05-14 19:40:57 -04:00
KernelDeimos 923d5878c3 Prevent enable of 2FA without configure 2024-05-14 17:33:14 -04:00
Eric Dubé 9c5849fbce Merge pull request #397 from HeyPuter/eric/anti-csrf
Update for /logout
2024-05-14 14:08:35 -04:00
Sam Atkins 4ef3e53de3 fix(Terminal): Accept input from Chrome on Android
Xterm.js produces two kinds of events: onKey and onData. On a desktop,
these are effectively the same, but on mobile, IME inputs produce data
but not key presses. By listening to onData instead of onKey, we get
that input.

With some experimentation, I also found that we don't need the code to
handle enter, home, end, or Ctrl-Shift-V. All of these function as
expected without that code, so we can remove it and simplify this
further. :^)
2024-05-14 16:10:30 +01:00
Sam Atkins 2656b47640 chore: Update xterm
From version 5.4.0 onwards, xterm scopes its package names as
`@xterm/foo` instead of just `xterm-foo`.

We currently have a copy of xterm.css which we use instead of directly
including the one from the `@xterm/xterm` package, so I've updated the
contents of that too.
2024-05-14 16:10:30 +01:00
Sam Atkins fafbc292ca Remove xterm dependency from Phoenix
This is used by Terminal, not Phoenix.
2024-05-14 16:10:30 +01:00
KernelDeimos 800aef1942 Implement anti-CSRF for logout 2024-05-13 20:40:27 -04:00
KernelDeimos da7f73baa6 Add AntiCSRFService 2024-05-13 19:08:51 -04:00
KernelDeimos afb9d866b5 fix: Fix phoenix app prefix and TokenService test 2024-05-13 18:17:39 -04:00
Eric Dubé 7dc5929cfd Merge pull request #385 from HeyPuter/eric/dry-middleware
Add password requirement to: disable 2FA, change email
2024-05-13 16:38:59 -04:00
KernelDeimos c2f1694107 Require password entry to disable 2FA 2024-05-13 16:00:07 -04:00
KernelDeimos 23215bd6f7 Move change_email/start to password-protected endpoint 2024-05-13 16:00:07 -04:00
KernelDeimos 1493cacb69 Add rate-limiting to new password change endpoint 2024-05-13 16:00:07 -04:00
KernelDeimos 9076fddc0d Add new password change endpoint 2024-05-13 16:00:07 -04:00
KernelDeimos a89c9d59cf Add UserProtectedEndpointsService 2024-05-13 16:00:07 -04:00
KernelDeimos 15dec21118 doc(backend): Document the boot sequence
Now that the boot sequence is better formalized it may be documented.
2024-05-13 16:00:07 -04:00
KernelDeimos d800b12569 refactor(backend): Trigger webserver events in webserver
We were triggering webserver events in Kernel. This change improves
adherence to separation-of-concerns and ensures event cascading is
working as expected. This also better formalizes the boot sequence.
2024-05-13 01:05:49 -04:00
Eric Dubé 89ac491120 Merge pull request #391 from AtkinsSJ/truncate-filename
refactor: Put truncate_filename() helper in its own file
2024-05-10 12:54:46 -04:00
Eric Dubé 981a0f08fe Merge pull request #390 from AtkinsSJ/task-manager-components
refactor: Convert Task Manager to Components
2024-05-10 12:54:30 -04:00
Sam Atkins e53bfe6b62 refactor: Put truncate_filename() helper in its own file
Every user previously set the max_length as window.TRUNCATE_LENGTH, so
I've moved that constant into the truncate_filename file and set it as
the default if max_length is not specified.
2024-05-10 17:46:09 +01:00
Sam Atkins 9bb4570126 Re-use existing Task Manager rows if possible instead of recreating them
Most of the time, we'll already have a TaskManagerRow for the given
process, so we can just update its properties.

Iterating the results from #iter_tasks means we also insert the rows in
the correct order, regardless of their previous order.
2024-05-10 17:41:13 +01:00
Sam Atkins 5b43358219 fix: Only run Component initialization functions once
If the Component gets removed from the DOM and then re-added, it already
has contents, and we don't need to create them again. It also has
already had on_ready called, so that doesn't need to happen again
either.

This fix stops Components duplicating their content elements and
listener callbacks whenever they're moved around the document.
2024-05-10 17:41:01 +01:00
Sam Atkins cf605c8a38 refactor: Convert Task Manager to use Components
This currently behaves the same as it did before: It still recreates the
table contents every half a second. It should also look identical,
though it's possible I missed some small differences.

The component structure is:

TaskManagerTable
- Table
  - TaskManagerRow
  - TaskManagerRow
  - TaskManagerRow
  - ...

TaskManagerRow is implemented so that we can later move to modifying
them in place as the process tree changes, instead of having to replace
them all.

Otherwise, most of the code is just moved around, and not changed much.
2024-05-10 17:41:01 +01:00
Sam Atkins e304f6fc3a Add ability to look up a process by its uuid 2024-05-10 17:38:00 +01:00
Sam Atkins 09cee986f2 Add a Table component, based on the TaskManager table
For now, this is quite basic. The main feature is the sticky header.
2024-05-10 17:38:00 +01:00
Eric Dubé 3992fe1a45 Merge pull request #384 from AtkinsSJ/progress-dialogs
refactor: Replace several existing progress dialogs with one configurable one
2024-05-10 12:25:32 -04:00
Eric Dubé 17e08cafce Merge pull request #380 from AtkinsSJ/eslint-ci
Run ESLint on CI
2024-05-10 12:24:31 -04:00
Sam Atkins 7243ed718f Merge pull request #388 from AtkinsSJ/no-docker-images-for-prs
ci: Stop producing Docker images for PRs
2024-05-10 09:39:31 +01:00
Sam Atkins 387cfd758f Merge pull request #387 from ghostxbh/patch-1
fix: Eliminates duplicate translation keys
2024-05-10 09:31:52 +01:00
Sam Atkins c75a0bd311 ci: Wrap Docker images name with quotes
Not sure if this is required, but my IDE was complaining about it.
2024-05-10 09:29:49 +01:00
Sam Atkins 18633dcd88 ci: Stop producing Docker images for PRs 2024-05-10 09:28:55 +01:00
ghostxbh 5800350b25 fix: Eliminates duplicate translation keys 2024-05-10 10:41:21 +08:00
KernelDeimos cd2daa1910 Require email verification for contact form 2024-05-09 19:40:34 -04:00
KernelDeimos 8b6bbe003d fix(security) Disable 2FA configure if 2FA is enabled 2024-05-09 18:04:58 -04:00
Sam Atkins edebbee9e7 feat: Display upload errors in UIWindowProgress dialog
The object returned from UIWindowProgress() now has a `show_error()`
method, taking a title and message. Calling it will replace the content
of the window with those messages.

I've made use of this for file uploads. The only other place we
currently have errors we could show is for zipping and downloading
files, but we do not always have a progress dialog in that case, so I'll
leave that for now.

I think ideally, we would always create a progress dialog, and it would
then support being invisible initially, but appearing after a delay.
Then we'd always have an object to call `show_error()` on, and it could
then immediately show the dialog. But I'll get to that another day. :^)
2024-05-09 19:00:55 +01:00
Sam Atkins f3269693de Stop dumping binary data to the console
This was freaking out and freezing the Puter server, and my entire
terminal app. XD
2024-05-09 18:28:39 +01:00
Sam Atkins c2c87bf0ba refactor: Replace UIWindowDownloadDirProg with UIWindowProgress 2024-05-09 18:28:39 +01:00
Sam Atkins e525747002 refactor: Replace UIWindowCopyProgress with UIWindowProgress 2024-05-09 18:28:39 +01:00
Sam Atkins 6d8c709de8 Delete unused UIWindowDownloadProgress.js 2024-05-09 18:28:39 +01:00
Sam Atkins f07c13a50c feat: Show "Deleting /foo" in progress window when deleting files
Previously we showed "Moving /foo" which was confusing.

Also, make use of i18n replacements instead of gluing strings together,
because other languages might put the words in a different order. For
now, I've modified all the translations so that the "Moving foo" text
will appear as it did before, but these will require someone who
actually knows the different languages to check and correct them.
2024-05-09 18:19:05 +01:00
Sam Atkins c12312cbd3 refactor: Replace UIWindowMoveProgress with UIWindowProgress 2024-05-09 18:18:27 +01:00
Sam Atkins cb6c098f95 refactor: Replace UIWindowProgressEmptyTrash with UIWindowProgress
I noticed during this that emptying the trash from inside the Trash
window uses a different code path without a progress dialog, so I've
added a TODO to merge that in. I tried just using it directly but the
behaviour is a bit different. (The Trash one makes all the items fade
out.)
2024-05-09 18:17:15 +01:00
Sam Atkins 09ca82e1d8 refactor: Replace UIWindowNewFolderProgress with UIWindowProgress
This previously had code for the cancel button, but that cancel button
didn't exist. I've left the previous on-cancel code commented out with
a TODO.
2024-05-09 15:51:45 +01:00
Sam Atkins 5b565a69d7 refactor: Replace UIWindowUploadProgress with UIWindowProgress 2024-05-09 15:51:45 +01:00
Sam Atkins 52ddfc8801 Introduce a general-purpose progress window
We have 7 of these, which all have very similar code. Let's deduplicate
them! :^)
2024-05-09 15:51:45 +01:00
Sam Atkins df3f7e9a6e Allow Button component to not have button-block class
This needs a better solution for configuring the button's CSS classes,
but this works for now.
2024-05-09 12:38:29 +01:00
Sam Atkins 05aaa5b667 chore: Remove dead code from 2FA development
No `.qr-code-checkbox input`s now exist. Also, `.code-confirm-btn` is
only used by CodeEntryView, which doesn't use this Button component.
2024-05-09 12:12:33 +01:00
KernelDeimos df24c663df Invalidate email confirmation on password change 2024-05-08 22:28:41 -04:00
KernelDeimos 45e7f162a2 Add password change notification 2024-05-08 16:01:20 -04:00
Sam Atkins fbda8c8286 Run ESLint on CI
Run the ESLint static analysis tool on any code that is submitted, to
find possible bugs such as undefined functions and variables. We may
want to adjust the ESLint settings over time, but this seems like a
good start.

This is merged into the previous check-translations.yml action, because
that's also a form of linting. Possibly that could be reimplemented as
an ESLint plugin.
2024-05-08 18:53:37 +01:00
Sam Atkins 8c70efa058 Suppress remaining eslint errors
These two seem like bugs but are unclear to me how to fix, so I've added
FIXMEs.

/puter/packages/backend/src/routers/kvstore/clearItems.js
  41:32  error  'DB_MODE_WRITE' is not defined  no-undef

/puter/packages/backend/src/routers/whoami.js
  104:35  error  'db' is not defined  no-undef
2024-05-08 18:53:36 +01:00
Eric Dubé 65b489883d Merge pull request #381 from AtkinsSJ/web-components
Convert UIWindowThemeDialog to components
2024-05-08 12:15:23 -04:00
Sam Atkins 1b2608d6ee refactor: Replace component definition boilerplate with a function
Also, we can ask the CustomElementRegistry if it has an entry with a
given name, instead of polluting the window object.
2024-05-08 14:46:58 +01:00
Sam Atkins 9267b50666 Convert UIWindowThemeDialog to components
This also fixes the "Reset Colors" button not adjusting the sliders.
2024-05-08 14:46:58 +01:00
Sam Atkins 2604dae83c Resolve eslint issues in new 2FA code
/puter/src/UI/Settings/UITabSecurity.js
  13:13  error  'user' is not defined        no-undef
  31:13  error  'user' is not defined        no-undef
  32:70  error  'user' is not defined        no-undef
  36:30  error  'user' is not defined        no-undef
  40:82  error  'user' is not defined        no-undef
  41:83  error  'user' is not defined        no-undef
  87:41  error  'api_origin' is not defined  no-undef

/puter/src/UI/UIWindow2FASetup.js
  39:33  error  'api_origin' is not defined  no-undef
  51:37  error  'api_origin' is not defined  no-undef
  69:37  error  'api_origin' is not defined  no-undef

/puter/src/UI/UIWindowLogin.js
  202:73  error  'api_origin' is not defined  no-undef
  271:73  error  'api_origin' is not defined  no-undef
2024-05-08 09:49:58 +01:00
Sam Atkins 6778aa4343 Resolve eslint issues in Russian translation
/puter/src/i18n/translations/ru.js
  180:34  error  Irregular whitespace not allowed    no-irregular-whitespace
  257:9   error  Duplicate key 'storage_puter_used'  no-dupe-keys
2024-05-08 09:44:31 +01:00
KernelDeimos 5890b7e7bf Disable password reset token when email or password is changed 2024-05-07 20:18:11 -04:00
KernelDeimos d58aa33d2b Remove taskbar items from localstorage 2024-05-07 20:01:05 -04:00
KernelDeimos f62617a8bf Remove auth_token from /down call 2024-05-07 14:29:09 -04:00
KernelDeimos d20249f29a Send email notifications when 2FA state changes 2024-05-06 21:13:00 -04:00
Eric Dubé 0e16a3f3b4 Merge pull request #370 from HeyPuter/eric/2fa
2FA
2024-05-06 19:33:50 -04:00
Nariman Jelveh 5409547bba Make the 2fa disable prompt a child of the Settings window 2024-05-06 16:16:57 -07:00
KernelDeimos db8e2c3bf2 Address next batch of UX issues 2024-05-06 19:09:28 -04:00
KernelDeimos 4c53ec6dd3 Address UX issues 2024-05-06 18:53:43 -04:00
KernelDeimos b2d678ca95 Cleanup dead code 2024-05-06 16:45:03 -04:00
KernelDeimos adbefb4622 Cleanup log messages 2024-05-06 16:44:23 -04:00
KernelDeimos 429b7033a4 Improve error handling for 2FA rate limit 2024-05-06 16:35:35 -04:00
KernelDeimos 7f3e2852c6 Add rate limits 2024-05-06 16:12:54 -04:00
KernelDeimos 57d9c246c0 Fix css in firefox 2024-05-06 15:47:09 -04:00
KernelDeimos 7fce223a6d Fix OTP test endpoint 2024-05-06 15:40:34 -04:00
KernelDeimos abbbf0d030 Add confirmation for disabling 2FA 2024-05-06 15:36:38 -04:00
KernelDeimos a628358c9f Fix OTP time window 2024-05-06 15:02:14 -04:00
KernelDeimos 918eb3bb67 Put otpauth back on 9.2.4 2024-05-06 02:10:22 -04:00
KernelDeimos ecae1997aa Maybe this?? 2024-05-06 01:58:55 -04:00
KernelDeimos e4c7caa8ea Worth a try 2024-05-06 01:54:02 -04:00
KernelDeimos 54d1f05851 Install otpauth in root package.json because that... matters? 2024-05-06 01:48:25 -04:00
KernelDeimos 1592bc44fc Fix spinner getting stuck 2024-05-06 01:30:32 -04:00
KernelDeimos 77fedee58a Remove artifact 2024-05-06 00:13:24 -04:00
KernelDeimos 63e72a22e0 Fix settings card update 2024-05-06 00:02:46 -04:00
KernelDeimos 00c8ece07e Finish recovery codes 2024-05-06 00:02:46 -04:00
KernelDeimos 60a561c84c Re-use CodeEntryView for login 2024-05-06 00:02:46 -04:00
KernelDeimos 5cbe256120 Add missing part of previous commit 2024-05-06 00:02:46 -04:00
KernelDeimos 4ad50b14d6 Fix the duplicate loading issue 2024-05-06 00:02:46 -04:00
KernelDeimos df88373519 Remove test window open 2024-05-06 00:02:46 -04:00
KernelDeimos 099699198c Tweak QR code sizes 2024-05-06 00:02:46 -04:00
Nariman Jelveh 75bd1bc4c8 Update UIWindow2FASetup.js 2024-05-06 00:02:46 -04:00
Nariman Jelveh 12c883b6fd Remove the confirmation prompt when closing the 2FA setup winow
When exiting a window there should be a confirmation if exiting that window will irreversibly destroy work. For example, when you're working on a document and if you exit unsaved changes will be lost.
This doesn't seem to be the case. What work will be irreversibly lost?
2024-05-06 00:02:46 -04:00
Nariman Jelveh 144d647540 Improve styling 2024-05-06 00:02:46 -04:00
Nariman Jelveh c8a6d109ce Add icon for Security tab and warning/success styling for 2fa card 2024-05-06 00:02:46 -04:00
KernelDeimos 5fa3c6511f Fix padding and enable code 2024-05-06 00:02:46 -04:00
KernelDeimos a2a8f9de74 Fix cache state 2024-05-06 00:02:46 -04:00
KernelDeimos d72d83d0f3 Add i18n entries for 2FA setup 2024-05-06 00:02:46 -04:00
KernelDeimos c91c0afa71 Complete the 2FA setup flow 2024-05-06 00:02:46 -04:00
KernelDeimos a95fcc96be Add text components and styling 2024-05-06 00:02:46 -04:00
KernelDeimos f9c5a688b1 Fix code entry focus on init 2024-05-06 00:02:46 -04:00
KernelDeimos e9b8c452b9 Temporarily disable real check for testing 2024-05-06 00:02:46 -04:00
KernelDeimos 3e380ba844 Add otp test endpoint and next wizard step 2024-05-06 00:02:46 -04:00
KernelDeimos 22234ad1c1 Add the wizardy behaviour 2024-05-06 00:02:46 -04:00
KernelDeimos 662fd13548 Add code entry to 2FA wizard 2024-05-06 00:02:46 -04:00
KernelDeimos a672b8a58c Add UIWindow2FASetup 2024-05-06 00:02:46 -04:00
KernelDeimos 6e0cdb8a6b Document 2FA wizard structure 2024-05-06 00:02:46 -04:00
KernelDeimos 0baa678c8b Add Flexer 2024-05-06 00:02:46 -04:00
KernelDeimos c99747d7f2 Make using web components easier 2024-05-06 00:02:46 -04:00
KernelDeimos 2681a78501 Use username as otp label 2024-05-06 00:02:46 -04:00
KernelDeimos 3bf7737790 Add recovery codes 2024-05-06 00:02:46 -04:00
KernelDeimos 455d3946d6 Add checkboxes and cancel action for 2FA setup 2024-05-06 00:02:46 -04:00
KernelDeimos 2dfecb5287 Add 2fa setting and complete login flow 2024-05-06 00:02:46 -04:00
KernelDeimos abc12bd407 Add otp input at login 2024-05-06 00:02:46 -04:00
KernelDeimos bbf352caa4 Add missing package-lock.json changes 2024-05-06 00:02:46 -04:00
KernelDeimos d7c5c37cf8 Implement backend for 2FA 2024-05-06 00:02:46 -04:00
KernelDeimos 038373cbbc Fix filename inconsistency that breaks Linux support 2024-05-06 00:02:33 -04:00
Nariman Jelveh 321520741d Merge pull request #372 from nyedidikeke/naming-convention-patch-1
refactor: nomenclature, typo fixes, IDE and documentation enhancement 🔨
2024-05-05 19:46:16 -07:00
Didi Keke 2c75c636af docs: environment variable configuration 🌱 2024-05-06 01:21:59 +00:00
Didi Keke 01b7e523d0 chore: comment and fine tune .gitignore settings 🔨 2024-05-06 01:18:40 +00:00
Didi Keke 05d4a28adc chore: format content 📝 2024-05-06 01:14:36 +00:00
Didi Keke b89142c45c chore: include .vscode/extensions.json ⚓
- For recommendation of extensions or otherwise.
2024-05-05 20:31:08 +00:00
Didi Keke f9359bfb73 chore: ignore nested folders 🐜 2024-05-05 20:23:05 +00:00
Didi Keke 4d30740198 fix: typographical errors 🐛 2024-05-05 08:34:50 +00:00
Didi Keke 2d6dfd9002 chore: add word spelling dictionary 👼 2024-05-05 08:15:30 +00:00
Didi Keke 3914a14a2a chore: update .gitignore settings for VS Code 🚀
- All files within the `.vscode/` directory are ignored except for `settings.json`, `tasks.json`, and `launch.json`.
2024-05-05 08:11:13 +00:00
Didi Keke 2949f71691 fix: typographical error 🐛 2024-05-05 07:54:11 +00:00
Didi Keke 551121524c refactor: name from SelfhostedModule to SelfHostedModule 🔨 2024-05-05 07:53:55 +00:00
Nariman Jelveh 038c5e9a6e Merge pull request #371 from mafendi/main
Added Russian translation
2024-05-04 17:22:12 -07:00
Efendi 467aabe5ee Update translations.js
Added ru
2024-05-05 00:09:52 +03:00
Efendi 4f73641f46 Add files via upload 2024-05-05 00:07:07 +03:00
Nariman Jelveh 48e97b5ec2 Update UITaskbarItem.js 2024-05-04 12:34:28 -07:00
KernelDeimos a86106c0c1 Fix save_account token 2024-05-04 14:19:09 -04:00
Nariman Jelveh c9f3693785 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-05-03 21:32:26 -07:00
Nariman Jelveh 5151863a94 disable context menu on settings sidebar 2024-05-03 21:32:23 -07:00
Nariman Jelveh 16a81cdc7f Merge pull request #369 from nyedidikeke/patch-1
fix: reliability issue 🐛
2024-05-03 21:10:21 -07:00
Nariman Jelveh ebb6cf2a91 clean up console messages and errors 2024-05-03 20:49:12 -07:00
Didi Keke 1d546d9ef7 fix: reliability issue 🐛 2024-05-04 03:23:28 +00:00
Nariman Jelveh 6bef35b406 Fix issue with passive event listeners via jQuery 2024-05-03 20:21:26 -07:00
Nariman Jelveh ecd9d5493f Fix issue with trash not opening from taskbar 2024-05-03 19:57:48 -07:00
Nariman Jelveh 33a6f4c49f quick fix 2024-05-03 16:56:27 -07:00
Nariman Jelveh 3c92cd3198 Update initgui.js 2024-05-03 12:04:38 -07:00
Eric Dubé 4d0e6b4772 Merge pull request #336 from AtkinsSJ/app-tab-completion
Phoenix: Add tab-completion for command names
2024-05-03 12:39:07 -04:00
Eric Dubé ebdf0d9148 Merge pull request #348 from AtkinsSJ/eslint
Set up eslint, and try to resolve the issues it finds
2024-05-03 12:28:21 -04:00
Sam Atkins 44aa4f1b0a chore: Remove debugger calls
/puter/packages/phoenix/src/ansi-shell/arg-parsers/simple-parser.js
  30:38  warning  Unexpected 'debugger' statement  no-debugger

/puter/packages/phoenix/src/ansi-shell/pipeline/Coupler.js
  71:32  warning  Unexpected 'debugger' statement  no-debugger
2024-05-02 17:41:14 +01:00
Sam Atkins fa7c6bee96 fix: Correct variables used in errors in sign.js
I couldn't figure out how to get a name for the no_suitable_app error
unfortunately, so that's just commented out.

/puter/packages/backend/src/routers/sign.js
   65:74  error  'subject' is not defined  no-undef
  114:59  error  'subject' is not defined  no-undef
2024-05-02 17:39:01 +01:00
Sam Atkins fa3b86fa7e chore: Amend empty blocks in upload.js
/puter/packages/puter-js/src/modules/FileSystem/operations/upload.js
   63:22  error  Empty block statement  no-empty
  173:22  error  Empty block statement  no-empty
2024-05-02 17:31:17 +01:00
Sam Atkins 52d5299374 fix: Use correct variable for version number
/puter/packages/backend/src/services/ComplainAboutVersionsService.js
  30:36  error  'current_version' is not defined  no-undef
2024-05-02 17:30:53 +01:00
Sam Atkins 23d959bf64 chore: Clarify usage of window fields in index.js
/puter/src/index.js
  58:15  error  'loadScript' is not defined  no-undef
  59:15  error  'loadScript' is not defined  no-undef
  65:13  error  'gui_env' is not defined     no-undef
  66:15  error  'loadScript' is not defined  no-undef
  68:15  error  'loadCSS' is not defined     no-undef
  69:15  error  'loadScript' is not defined  no-undef
  73:5   error  'initgui' is not defined     no-undef
2024-05-02 17:26:41 +01:00
Sam Atkins 5198081c2b chore: Fix eslint issues in initgui.js
Almost entirely clarifying use of window fields

/puter/src/initgui.js
    82:28   error  'api_origin' is not defined                                   no-undef
   118:34   error  'url_query_params' is not defined                             no-undef
   120:17   error  'app_query_params' is not defined                             no-undef
   136:8    error  'url_query_params' is not defined                             no-undef
   136:51   error  'url_query_params' is not defined                             no-undef
   136:105  error  'url_query_params' is not defined                             no-undef
   138:14   error  'url_query_params' is not defined                             no-undef
   138:57   error  'url_query_params' is not defined                             no-undef
   138:110  error  'url_query_params' is not defined                             no-undef
   154:8    error  'url_query_params' is not defined                             no-undef
   154:54   error  'url_query_params' is not defined                             no-undef
   154:110  error  'url_query_params' is not defined                             no-undef
   164:17   error  'openerOrigin' is not defined                                 no-undef
   171:30   error  'openerOrigin' is not defined                                 no-undef
   173:37   error  'is_auth' is not defined                                      no-undef
   184:23   error  'getUserAppToken' is not defined                              no-undef
   184:39   error  'openerOrigin' is not defined                                 no-undef
   186:41   error  'is_auth' is not defined                                      no-undef
   195:23   error  'getUserAppToken' is not defined                              no-undef
   195:39   error  'openerOrigin' is not defined                                 no-undef
   205:8    error  'url_query_params' is not defined                             no-undef
   206:32   error  'url_query_params' is not defined                             no-undef
   218:23   error  'url_query_params' is not defined                             no-undef
   219:22   error  'openerOrigin' is not defined                                 no-undef
   219:38   error  'url_query_params' is not defined                             no-undef
   220:26   error  'url_query_params' is not defined                             no-undef
   228:29   error  'embedded_in_popup' is not defined                            no-undef
   238:20   error  'url_query_params' is not defined                             no-undef
   239:21   error  'url_query_params' is not defined                             no-undef
   270:36   error  'openerOrigin' is not defined                                 no-undef
   271:30   error  'checkUserSiteRelationship' is not defined                    no-undef
   271:56   error  'openerOrigin' is not defined                                 no-undef
   274:44   error  'logged_in_users' is not defined                              no-undef
   274:76   error  'userAppToken' is not defined                                 no-undef
   274:92   error  'url_query_params' is not defined                             no-undef
   284:17   error  'userAppToken' is not defined                                 no-undef
   288:25   error  'is_auth' is not defined                                      no-undef
   302:13   error  'url_query_params' is not defined                             no-undef
   303:38   error  'url_query_params' is not defined                             no-undef
   309:17   error  'logout' is not defined                                       no-undef
   331:13   error  'update_auth_data' is not defined                             no-undef
   363:8    error  'is_auth' is not defined                                      no-undef
   388:13   error  'update_auth_data' is not defined                             no-undef
   394:23   error  'get_auto_arrange_data' is not defined                        no-undef
   395:31   error  'desktop_path' is not defined                                 no-undef
   403:30   error  'url_query_params' is not defined                             no-undef
   405:38   error  'getUserAppToken' is not defined                              no-undef
   405:62   error  'openerOrigin' is not defined                                 no-undef
   415:35   error  'user' is not defined                                         no-undef
   417:24   error  'openerOrigin' is not defined                                 no-undef
   430:24   error  'openerOrigin' is not defined                                 no-undef
   438:20   error  'openerOrigin' is not defined                                 no-undef
   439:37   error  'getAppUIDFromOrigin' is not defined                          no-undef
   439:57   error  'openerOrigin' is not defined                                 no-undef
   444:35   error  'url_query_params' is not defined                             no-undef
   508:46   error  'url_query_params' is not defined                             no-undef
   630:54   error  'busy_indicator_hide_delay' is not defined                    no-undef
   636:49   error  'busy_indicator_hide_delay' is not defined                    no-undef
   647:13   error  'update_sites_cache' is not defined                           no-undef
   656:9    error  'refresh_desktop_background' is not defined                   no-undef
   661:9    error  'is_auth' is not defined                                      no-undef
   661:23   error  'first_visit_ever' is not defined                             no-undef
   662:12   error  'logged_in_users' is not defined                              no-undef
   679:14   error  'is_auth' is not defined                                      no-undef
   679:27   error  'first_visit_ever' is not defined                             no-undef
   693:12   error  'url_query_params' is not defined                             no-undef
   696:47   error  'url_query_params' is not defined                             no-undef
   704:18   error  'gui_origin' is not defined                                   no-undef
   715:17   error  'update_auth_data' is not defined                             no-undef
   728:8    error  'feature_flags' is not defined                                no-undef
   746:19   error  'get_auto_arrange_data' is not defined                        no-undef
   747:27   error  'desktop_path' is not defined                                 no-undef
   755:26   error  'url_query_params' is not defined                             no-undef
   758:34   error  'getUserAppToken' is not defined                              no-undef
   758:58   error  'openerOrigin' is not defined                                 no-undef
   768:31   error  'user' is not defined                                         no-undef
   770:20   error  'openerOrigin' is not defined                                 no-undef
   783:20   error  'openerOrigin' is not defined                                 no-undef
   792:16   error  'openerOrigin' is not defined                                 no-undef
   793:33   error  'getAppUIDFromOrigin' is not defined                          no-undef
   793:53   error  'openerOrigin' is not defined                                 no-undef
   801:31   error  'url_query_params' is not defined                             no-undef
   864:42   error  'url_query_params' is not defined                             no-undef
   987:50   error  'busy_indicator_hide_delay' is not defined                    no-undef
   993:45   error  'busy_indicator_hide_delay' is not defined                    no-undef
  1021:13   error  'update_explorer_footer_selected_items_count' is not defined  no-undef
  1057:13   error  'active_item_container' is not defined                        no-undef
  1061:17   error  'active_item_container' is not defined                        no-undef
  1065:21   error  'active_item_container' is not defined                        no-undef
  1071:9    error  'active_element' is not defined                               no-undef
  1179:21   error  'select_ctxmenu_item' is not defined                          no-undef
  1185:21   error  'select_ctxmenu_item' is not defined                          no-undef
  1198:21   error  'select_ctxmenu_item' is not defined                          no-undef
  1211:21   error  'select_ctxmenu_item' is not defined                          no-undef
  1222:25   error  'select_ctxmenu_item' is not defined                          no-undef
  1255:22   error  'active_item_container' is not defined                        no-undef
  1256:39   error  'active_item_container' is not defined                        no-undef
  1257:21   error  'active_element' is not defined                               no-undef
  1258:23   error  'active_item_container' is not defined                        no-undef
  1263:27   error  'active_item_container' is not defined                        no-undef
  1264:39   error  'active_item_container' is not defined                        no-undef
  1267:27   error  'active_item_container' is not defined                        no-undef
  1268:39   error  'active_element' is not defined                               no-undef
  1268:74   error  'active_element' is not defined                               no-undef
  1268:93   error  'active_element' is not defined                               no-undef
  1271:27   error  'active_item_container' is not defined                        no-undef
  1272:39   error  'active_item_container' is not defined                        no-undef
  1275:39   error  'active_element' is not defined                               no-undef
  1275:74   error  'active_element' is not defined                               no-undef
  1275:93   error  'active_element' is not defined                               no-undef
  1323:114  error  'active_item_container' is not defined                        no-undef
  1331:21   error  'active_element' is not defined                               no-undef
  1334:27   error  'active_item_container' is not defined                        no-undef
  1390:37   error  'active_element' is not defined                               no-undef
  1407:31   error  'delete_item' is not defined                                  no-undef
  1419:37   error  'active_element' is not defined                               no-undef
  1419:115  error  'trash_path' is not defined                                   no-undef
  1436:31   error  'delete_item' is not defined                                  no-undef
  1438:55   error  'trash_path' is not defined                                   no-undef
  1445:59   error  'trash_path' is not defined                                   no-undef
  1446:61   error  'trash_path' is not defined                                   no-undef
  1452:37   error  'active_element' is not defined                               no-undef
  1456:25   error  'move_items' is not defined                                   no-undef
  1456:53   error  'trash_path' is not defined                                   no-undef
  1467:16   error  'keypress_item_seach_term' is not defined                     no-undef
  1468:30   error  'keypress_item_seach_buffer_timeout' is not defined           no-undef
  1470:13   error  'keypress_item_seach_buffer_timeout' is not defined           no-undef
  1471:17   error  'keypress_item_seach_term' is not defined                     no-undef
  1474:13   error  'keypress_item_seach_term' is not defined                     no-undef
  1477:38   error  'active_item_container' is not defined                        no-undef
  1480:108  error  'keypress_item_seach_term' is not defined                     no-undef
  1485:30   error  'active_item_container' is not defined                        no-undef
  1487:78   error  'keypress_item_seach_term' is not defined                     no-undef
  1505:19   error  'active_item_container' is not defined                        no-undef
  1509:17   error  'update_explorer_footer_selected_items_count' is not defined  no-undef
  1509:63   error  'active_element' is not defined                               no-undef
  1518:16   error  'keypress_item_seach_term' is not defined                     no-undef
  1519:30   error  'keypress_item_seach_buffer_timeout' is not defined           no-undef
  1521:13   error  'keypress_item_seach_buffer_timeout' is not defined           no-undef
  1522:17   error  'keypress_item_seach_term' is not defined                     no-undef
  1525:13   error  'keypress_item_seach_term' is not defined                     no-undef
  1531:97   error  'keypress_item_seach_term' is not defined                     no-undef
  1538:67   error  'keypress_item_seach_term' is not defined                     no-undef
  1581:39   error  'active_element' is not defined                               no-undef
  1583:39   error  'active_element' is not defined                               no-undef
  1590:17   error  'update_explorer_footer_selected_items_count' is not defined  no-undef
  1600:36   error  'active_element' is not defined                               no-undef
  1602:36   error  'active_element' is not defined                               no-undef
  1615:15   error  'mouseover_window' is not defined                             no-undef
  1616:15   error  'mouseover_window' is not defined                             no-undef
  1616:55   error  'trash_path' is not defined                                   no-undef
  1621:38   error  'active_element' is not defined                               no-undef
  1623:38   error  'active_element' is not defined                               no-undef
  1628:21   error  'clipboard' is not defined                                    no-undef
  1629:21   error  'clipboard_op' is not defined                                 no-undef
  1632:58   error  'trash_path' is not defined                                   no-undef
  1636:25   error  'clipboard' is not defined                                    no-undef
  1648:38   error  'active_element' is not defined                               no-undef
  1650:38   error  'active_element' is not defined                               no-undef
  1655:21   error  'clipboard' is not defined                                    no-undef
  1656:21   error  'clipboard_op' is not defined                                 no-undef
  1658:25   error  'clipboard' is not defined                                    no-undef
  1668:107  error  'last_enter_pressed_to_rename_ts' is not defined              no-undef
  1682:21   error  'launch_app' is not defined                                   no-undef
  1705:21   error  'select_ctxmenu_item' is not defined                          no-undef
  1713:21   error  'active_item_container' is not defined                        no-undef
  1714:37   error  'active_item_container' is not defined                        no-undef
  1717:25   error  'open_item' is not defined                                    no-undef
  1736:16   error  'clipboard' is not defined                                    no-undef
  1745:37   error  'trash_path' is not defined                                   no-undef
  1745:74   error  'trash_path' is not defined                                   no-undef
  1745:96   error  'clipboard_op' is not defined                                 no-undef
  1748:20   error  'clipboard_op' is not defined                                 no-undef
  1749:21   error  'copy_clipboard_items' is not defined                         no-undef
  1750:25   error  'clipboard_op' is not defined                                 no-undef
  1751:21   error  'move_clipboard_items' is not defined                         no-undef
  1760:13   error  'undo_last_action' is not defined                             no-undef
  1767:9    error  'mouseX' is not defined                                       no-undef
  1768:9    error  'mouseY' is not defined                                       no-undef
  1771:13   error  'mouseX' is not defined                                       no-undef
  1771:29   error  'mouseY' is not defined                                       no-undef
  1771:38   error  'toolbar_height' is not defined                               no-undef
  1771:63   error  'mouseX' is not defined                                       no-undef
  1771:78   error  'mouseY' is not defined                                       no-undef
  1772:13   error  'current_active_snap_zone' is not defined                     no-undef
  1774:17   error  'mouseX' is not defined                                       no-undef
  1774:32   error  'mouseY' is not defined                                       no-undef
  1774:49   error  'mouseY' is not defined                                       no-undef
  1774:58   error  'desktop_height' is not defined                               no-undef
  1775:13   error  'current_active_snap_zone' is not defined                     no-undef
  1777:17   error  'mouseX' is not defined                                       no-undef
  1777:32   error  'mouseY' is not defined                                       no-undef
  1777:41   error  'desktop_height' is not defined                               no-undef
  1778:13   error  'current_active_snap_zone' is not defined                     no-undef
  1780:17   error  'mouseX' is not defined                                       no-undef
  1780:26   error  'desktop_width' is not defined                                no-undef
  1780:48   error  'mouseY' is not defined                                       no-undef
  1780:65   error  'mouseY' is not defined                                       no-undef
  1780:74   error  'desktop_height' is not defined                               no-undef
  1781:13   error  'current_active_snap_zone' is not defined                     no-undef
  1783:18   error  'mouseX' is not defined                                       no-undef
  1783:27   error  'desktop_width' is not defined                                no-undef
  1783:50   error  'mouseY' is not defined                                       no-undef
  1783:59   error  'toolbar_height' is not defined                               no-undef
  1783:84   error  'mouseX' is not defined                                       no-undef
  1783:93   error  'desktop_width' is not defined                                no-undef
  1783:115  error  'mouseY' is not defined                                       no-undef
  1784:13   error  'current_active_snap_zone' is not defined                     no-undef
  1786:17   error  'mouseX' is not defined                                       no-undef
  1786:26   error  'desktop_width' is not defined                                no-undef
  1786:48   error  'mouseY' is not defined                                       no-undef
  1786:58   error  'desktop_height' is not defined                               no-undef
  1787:13   error  'current_active_snap_zone' is not defined                     no-undef
  1789:17   error  'mouseY' is not defined                                       no-undef
  1789:26   error  'toolbar_height' is not defined                               no-undef
  1789:49   error  'mouseX' is not defined                                       no-undef
  1789:66   error  'mouseX' is not defined                                       no-undef
  1789:75   error  'desktop_width' is not defined                                no-undef
  1790:13   error  'current_active_snap_zone' is not defined                     no-undef
  1793:13   error  'current_active_snap_zone' is not defined                     no-undef
  1802:21   error  'mouseX' is not defined                                       no-undef
  1802:41   error  'mouseX' is not defined                                       no-undef
  1802:75   error  'mouseY' is not defined                                       no-undef
  1802:95   error  'mouseY' is not defined                                       no-undef
  1819:21   error  'mouseX' is not defined                                       no-undef
  1819:41   error  'mouseX' is not defined                                       no-undef
  1819:75   error  'mouseY' is not defined                                       no-undef
  1819:95   error  'mouseY' is not defined                                       no-undef
  1840:12   error  'mouseover_window' is not defined                             no-undef
  1841:15   error  'mouseover_window' is not defined                             no-undef
  1876:17   error  'upload_items' is not defined                                 no-undef
  1934:21   error  'logout' is not defined                                       no-undef
  1936:17   error  'logout' is not defined                                       no-undef
  1946:22   error  'gui_origin' is not defined                                   no-undef
  1951:50   error  'auth_token' is not defined                                   no-undef
  1958:18   error  Empty block statement                                         no-empty
2024-05-02 17:23:20 +01:00
Sam Atkins b6c491171c chore: Fix eslint issues in helper/ files
/puter/src/helpers/determine_active_container_parent.js
  22:30  error  'active_element' is not defined         no-undef
  25:30  error  'active_element' is not defined         no-undef
  29:30  error  'active_element' is not defined         no-undef
  32:41  error  'active_element' is not defined         no-undef
  32:61  error  'active_element' is not defined         no-undef
  33:30  error  'active_element' is not defined         no-undef
  36:41  error  'active_item_container' is not defined  no-undef
  37:28  error  'active_item_container' is not defined  no-undef

/puter/src/helpers/download.js
  51:27  error  'api_origin' is not defined           no-undef
  52:59  error  'auth_token' is not defined           no-undef
  92:16  error  'operation_cancelled' is not defined  no-undef

/puter/src/helpers/new_context_menu_item.js
  38:21  error  'create_folder' is not defined  no-undef
  48:21  error  'create_file' is not defined    no-undef
  56:21  error  'create_file' is not defined    no-undef
  70:25  error  'create_file' is not defined    no-undef

/puter/src/helpers/refresh_item_container.js
   83:13  error  'update_window_layout' is not defined                no-undef
   86:13  error  'update_details_layout_sort_visuals' is not defined  no-undef
  124:35  error  'trash_path' is not defined                          no-undef
  162:29  error  Empty block statement                                no-empty
  166:51  error  'path' is not defined                                no-undef
  168:34  error  'trash_path' is not defined                          no-undef
  168:62  error  'appdata_path' is not defined                        no-undef
  171:38  error  'desktop_item_positions' is not defined              no-undef
  178:37  error  'item_icon' is not defined                           no-undef
  207:31  error  'trash_path' is not defined                          no-undef
  216:21  error  'sort_items' is not defined                          no-undef
  217:26  error  Empty block statement                                no-empty
  222:13  error  'sort_items' is not defined                          no-undef
  233:17  error  'update_explorer_footer_item_count' is not defined   no-undef

/puter/src/helpers/update_title_based_on_uploads.js
  21:41  error  'active_uploads' is not defined  no-undef
  22:59  error  'active_uploads' is not defined  no-undef
  23:51  error  'active_uploads' is not defined  no-undef
  27:51  error  'active_uploads' is not defined  no-undef
2024-05-02 17:02:53 +01:00
Sam Atkins eefc0d41e1 chore: Fix eslint issues in helpers.js
Most of these are window fields that wanted `window.` prepended, but a
couple of issues are code that was using undefined variables (`ht` and
`dir_uuid`) and some switch-cases that I believe are intentionally
falling through.

/puter/src/helpers.js
    39:55   error  'auth_token' is not defined                                                                                            no-undef
    47:14   error  'api_origin' is not defined                                                                                            no-undef
    55:40   error  'auth_token' is not defined                                                                                            no-undef
    59:17   error  'logout' is not defined                                                                                                no-undef
   199:14   error  'api_origin' is not defined                                                                                            no-undef
   208:40   error  'auth_token' is not defined                                                                                            no-undef
   212:17   error  'logout' is not defined                                                                                                no-undef
   224:14   error  'api_origin' is not defined                                                                                            no-undef
   234:40   error  'auth_token' is not defined                                                                                            no-undef
   238:17   error  'logout' is not defined                                                                                                no-undef
   316:13   error  Expected a 'break' statement before 'case'                                                                             no-fallthrough
   323:13   error  Expected a 'break' statement before 'case'                                                                             no-fallthrough
   330:13   error  Expected a 'break' statement before 'case'                                                                             no-fallthrough
   337:13   error  Expected a 'break' statement before 'case'                                                                             no-fallthrough
   367:47   error  Unnecessary escape character: \/                                                                                       no-useless-escape
   411:14   error  'isString' is not defined                                                                                              no-undef
   420:47   error  'config' is not defined                                                                                                no-undef
   519:21   error  'globToRegExp' is not defined                                                                                          no-undef
   651:14   error  Empty block statement                                                                                                  no-empty
   656:9    error  'update_auth_data' is not defined                                                                                      no-undef
   678:36   error  'api_origin' is not defined                                                                                            no-undef
   722:5    error  'update_user_preferences' is not defined                                                                               no-undef
   740:24   error  'uuidv4' is not defined                                                                                                no-undef
   746:9    error  'appCallbackFunctions' is not defined                                                                                  no-undef
   789:14   error  'api_origin' is not defined                                                                                            no-undef
   794:40   error  'auth_token' is not defined                                                                                            no-undef
   861:33   error  'trash_path' is not defined                                                                                            no-undef
   867:21   error  Empty block statement                                                                                                  no-empty
   889:70   error  'trash_path' is not defined                                                                                            no-undef
   891:59   error  'trash_path' is not defined                                                                                            no-undef
   894:49   error  'trash_path' is not defined                                                                                            no-undef
   907:29   error  'docs_path' is not defined                                                                                             no-undef
   909:35   error  'pictures_path' is not defined                                                                                         no-undef
   911:35   error  'home_path' is not defined                                                                                             no-undef
   913:35   error  'videos_path' is not defined                                                                                           no-undef
   915:35   error  'desktop_path' is not defined                                                                                          no-undef
  1037:5    error  'getItem' is not defined                                                                                               no-undef
  1041:17   error  'setItem' is not defined                                                                                               no-undef
  1070:54   error  Empty block statement                                                                                                  no-empty
  1089:51   error  'ht' is not defined                                                                                                    no-undef
  1091:20   error  'desktop_loading_fade_delay' is not defined                                                                            no-undef
  1150:27   error  'operation_id' is not defined                                                                                          no-undef
  1151:5    error  'operation_cancelled' is not defined                                                                                   no-undef
  1169:21   error  'activate_item_name_editor' is not defined                                                                             no-undef
  1172:21   error  'actions_history' is not defined                                                                                       no-undef
  1181:54   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  1187:37   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  1211:21   error  'activate_item_name_editor' is not defined                                                                             no-undef
  1214:21   error  'actions_history' is not defined                                                                                       no-undef
  1245:22   error  'operation_id' is not defined                                                                                          no-undef
  1246:5    error  'operation_cancelled' is not defined                                                                                   no-undef
  1249:5    error  'update_explorer_footer_selected_items_count' is not defined                                                           no-undef
  1263:24   error  'clipboard' is not defined                                                                                             no-undef
  1264:29   error  'clipboard' is not defined                                                                                             no-undef
  1273:20   error  'operation_cancelled' is not defined                                                                                   no-undef
  1302:38   error  'clipboard' is not defined                                                                                             no-undef
  1303:38   error  'clipboard' is not defined                                                                                             no-undef
  1327:9    error  'actions_history' is not defined                                                                                       no-undef
  1335:40   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  1341:29   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  1354:22   error  'operation_id' is not defined                                                                                          no-undef
  1377:20   error  'operation_cancelled' is not defined                                                                                   no-undef
  1432:9    error  'actions_history' is not defined                                                                                       no-undef
  1440:40   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  1446:29   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  1486:17   error  'update_explorer_footer_item_count' is not defined                                                                     no-undef
  1487:17   error  'update_explorer_footer_selected_items_count' is not defined                                                           no-undef
  1500:8    error  'clipboard' is not defined                                                                                             no-undef
  1501:24   error  'clipboard' is not defined                                                                                             no-undef
  1502:61   error  'clipboard' is not defined                                                                                             no-undef
  1505:13   error  'move_items' is not defined                                                                                            no-undef
  1508:5    error  'clipboard' is not defined                                                                                             no-undef
  1537:23   error  'api_origin' is not defined                                                                                            no-undef
  1537:84   error  'auth_token' is not defined                                                                                            no-undef
  1556:34   error  'uuidv4' is not defined                                                                                                no-undef
  1565:45   error  'get_apps' is not defined                                                                                              no-undef
  1572:13   error  This branch can never execute. Its condition is a duplicate or covered by previous conditions in the if-else-if chain  no-dupe-else-if
  1639:21   error  'root_dirname' is not defined                                                                                          no-undef
  1684:37   error  'gui_origin' is not defined                                                                                            no-undef
  1711:60   error  'app_domain' is not defined                                                                                            no-undef
  1723:64   error  'auth_token' is not defined                                                                                            no-undef
  1737:49   error  'auth_token' is not defined                                                                                            no-undef
  1748:12   error  'api_origin' is not defined                                                                                            no-undef
  1749:64   error  'api_origin' is not defined                                                                                            no-undef
  1800:13   error  'launch_apps' is not defined                                                                                           no-undef
  1803:13   error  'launch_apps' is not defined                                                                                           no-undef
  1803:43   error  'launch_apps' is not defined                                                                                           no-undef
  1806:13   error  'launch_apps' is not defined                                                                                           no-undef
  1806:34   error  'launch_apps' is not defined                                                                                           no-undef
  1810:22   error  'api_origin' is not defined                                                                                            no-undef
  1819:48   error  'auth_token' is not defined                                                                                            no-undef
  1867:56   error  'trash_path' is not defined                                                                                            no-undef
  1873:34   error  'trash_path' is not defined                                                                                            no-undef
  1942:30   error  'busy_indicator_hide_delay' is not defined                                                                             no-undef
  1948:25   error  'busy_indicator_hide_delay' is not defined                                                                             no-undef
  1954:48   error  'user_preferences' is not defined                                                                                      no-undef
  1955:9    error  'launch_app' is not defined                                                                                            no-undef
  1956:19   error  'user_preferences' is not defined                                                                                      no-undef
  1967:9    error  'launch_app' is not defined                                                                                            no-undef
  1978:25   error  'item_icon' is not defined                                                                                             no-undef
  1992:9    error  'window_nav_history' is not defined                                                                                    no-undef
  1992:45   error  'window_nav_history' is not defined                                                                                    no-undef
  1992:88   error  'window_nav_history_current_position' is not defined                                                                   no-undef
  1993:9    error  'window_nav_history' is not defined                                                                                    no-undef
  1994:9    error  'window_nav_history_current_position' is not defined                                                                   no-undef
  1996:9    error  'update_window_path' is not defined                                                                                    no-undef
  2009:22   error  'api_origin' is not defined                                                                                            no-undef
  2017:48   error  'auth_token' is not defined                                                                                            no-undef
  2021:25   error  'logout' is not defined                                                                                                no-undef
  2025:20   error  Empty block statement                                                                                                  no-empty
  2029:70   error  'suggest_apps_for_fsentry' is not defined                                                                              no-undef
  2040:17   error  'unzipItem' is not defined                                                                                             no-undef
  2057:17   error  'trigger_download' is not defined                                                                                      no-undef
  2065:13   error  'launch_app' is not defined                                                                                            no-undef
  2087:22   error  'operation_id' is not defined                                                                                          no-undef
  2088:5    error  'operation_cancelled' is not defined                                                                                   no-undef
  2129:12   error  'operation_cancelled' is not defined                                                                                   no-undef
  2166:30   error  Empty block statement                                                                                                  no-empty
  2173:20   error  'operation_cancelled' is not defined                                                                                   no-undef
  2182:34   error  'trash_path' is not defined                                                                                            no-undef
  2196:55   error  'trash_path' is not defined                                                                                            no-undef
  2196:116  error  'trash_path' is not defined                                                                                            no-undef
  2197:57   error  'trash_path' is not defined                                                                                            no-undef
  2201:46   error  'trash_path' is not defined                                                                                            no-undef
  2215:47   error  'trash_path' is not defined                                                                                            no-undef
  2254:25   error  'update_explorer_footer_item_count' is not defined                                                                     no-undef
  2255:25   error  'update_explorer_footer_selected_items_count' is not defined                                                           no-undef
  2260:34   error  'trash_path' is not defined                                                                                            no-undef
  2270:25   error  'update_window_path' is not defined                                                                                    no-undef
  2274:34   error  'trash_path' is not defined                                                                                            no-undef
  2279:46   error  'dir_uuid' is not defined                                                                                              no-undef
  2302:33   error  'item_icon' is not defined                                                                                             no-undef
  2303:42   error  'trash_path' is not defined                                                                                            no-undef
  2309:47   error  'trash_path' is not defined                                                                                            no-undef
  2331:41   error  'item_icon' is not defined                                                                                             no-undef
  2343:21   error  'sort_items' is not defined                                                                                            no-undef
  2348:21   error  'sort_items' is not defined                                                                                            no-undef
  2391:47   error  'trash_path' is not defined                                                                                            no-undef
  2397:51   error  'trash_path' is not defined                                                                                            no-undef
  2398:53   error  'trash_path' is not defined                                                                                            no-undef
  2413:34   error  'trash_path' is not defined                                                                                            no-undef
  2414:9    error  'actions_history' is not defined                                                                                       no-undef
  2418:40   error  'trash_path' is not defined                                                                                            no-undef
  2419:9    error  'actions_history' is not defined                                                                                       no-undef
  2428:12   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  2641:21   error  'upload_items' is not defined                                                                                          no-undef
  2659:21   error  'trash_path' is not defined                                                                                            no-undef
  2679:21   error  'show_save_account_notice_if_needed' is not defined                                                                    no-undef
  2683:17   error  'active_uploads' is not defined                                                                                        no-undef
  2695:17   error  'active_uploads' is not defined                                                                                        no-undef
  2714:17   error  'actions_history' is not defined                                                                                       no-undef
  2722:25   error  'show_save_account_notice_if_needed' is not defined                                                                    no-undef
  2723:33   error  'upload_progress_hide_delay' is not defined                                                                            no-undef
  2726:24   error  'active_uploads' is not defined                                                                                        no-undef
  2733:24   error  'active_uploads' is not defined                                                                                        no-undef
  2739:24   error  'active_uploads' is not defined                                                                                        no-undef
  2766:17   error  'uuidv4' is not defined                                                                                                no-undef
  2772:16   error  'trash_path' is not defined                                                                                            no-undef
  2782:47   error  'trash_path' is not defined                                                                                            no-undef
  2782:108  error  'trash_path' is not defined                                                                                            no-undef
  2783:37   error  'trash_path' is not defined                                                                                            no-undef
  2786:36   error  'trash_path' is not defined                                                                                            no-undef
  2788:13   error  'update_explorer_footer_item_count' is not defined                                                                     no-undef
  2788:71   error  'trash_path' is not defined                                                                                            no-undef
  2793:28   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  2799:28   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  2815:18   error  'api_origin' is not defined                                                                                            no-undef
  2818:42   error  'auth_token' is not defined                                                                                            no-undef
  2991:28   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  2998:28   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  3066:24   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  3074:24   error  'copy_progress_hide_delay' is not defined                                                                              no-undef
  3086:17   error  'actions_history' is not defined                                                                                       no-undef
  3095:17   error  'suggest_apps_for_fsentry' is not defined                                                                              no-undef
  3104:95   error  'truncate_filename' is not defined                                                                                     no-undef
  3104:123  error  'TRUNCATE_LENGTH' is not defined                                                                                       no-undef
  3111:84   error  'item_icon' is not defined                                                                                             no-undef
  3150:23   error  'update_sites_cache' is not defined                                                                                    no-undef
  3153:27   error  'determine_website_url' is not defined                                                                                 no-undef
  3158:17   error  'update_window_path' is not defined                                                                                    no-undef
  3166:17   error  'sort_items' is not defined                                                                                            no-undef
  3171:34   error  'truncate_filename' is not defined                                                                                     no-undef
  3171:66   error  'TRUNCATE_LENGTH' is not defined                                                                                       no-undef
  3205:9    error  'actions_history' is not defined                                                                                       no-undef
  3206:29   error  'actions_history' is not defined                                                                                       no-undef
  3211:13   error  'undo_create_file_or_folder' is not defined                                                                            no-undef
  3214:13   error  'rename_file' is not defined                                                                                           no-undef
  3217:13   error  'undo_upload' is not defined                                                                                           no-undef
  3220:13   error  'undo_copy' is not defined                                                                                             no-undef
  3223:13   error  'undo_move' is not defined                                                                                             no-undef
  3226:13   error  'undo_delete' is not defined                                                                                           no-undef
  3249:26   error  'get_html_element_from_options' is not defined                                                                         no-undef
  3251:9    error  'move_items' is not defined                                                                                            no-undef
  3257:26   error  'get_html_element_from_options' is not defined                                                                         no-undef
  3259:9    error  'move_items' is not defined                                                                                            no-undef
  3265:21   error  'global_element_id' is not defined                                                                                     no-undef
  3282:23   error  'determine_website_url' is not defined                                                                                 no-undef
  3324:42   error  'byte_format' is not defined                                                                                           no-undef
  3381:116  error  'truncate_filename' is not defined                                                                                     no-undef
  3381:148  error  'TRUNCATE_LENGTH' is not defined                                                                                       no-undef
  3396:5    error  'is_auto_arrange_enabled' is not defined                                                                               no-undef
  3398:5    error  'desktop_item_positions' is not defined                                                                                no-undef
  3408:8    error  'reset_item_positions' is not defined                                                                                  no-undef
  3409:9    error  'delete_desktop_item_positions' is not defined                                                                         no-undef
  3415:26   error  'desktop_item_positions' is not defined                                                                                no-undef
  3426:44   error  'desktop_item_positions' is not defined                                                                                no-undef
  3430:5    error  'desktop_item_positions' is not defined                                                                                no-undef
  3438:28   error  'is_fullscreen' is not defined                                                                                         no-undef
  3462:14   error  'window_for_app_instance' is not defined                                                                               no-undef
  3469:31   error  'iframe_for_app_instance' is not defined                                                                               no-undef
  3483:23   error  'window_for_app_instance' is not defined                                                                               no-undef
  3514:42   error  Unnecessary escape character: \[                                                                                       no-useless-escape
  3514:59   error  Unnecessary escape character: \/                                                                                       no-useless-escape
2024-05-02 16:54:17 +01:00
Sam Atkins e5cd2bed87 chore: Clarify usage of window fields in globals.js
/puter/src/globals.js
  124:65  error  'first_visit_animation' is not defined  no-undef
2024-05-02 11:21:51 +01:00
Sam Atkins 766da39138 chore: Clarify usage of window fields in UIWindowSignup.js
/puter/src/UI/UIWindowSignup.js
  154:22  error  'is_email' is not defined                 no-undef
  170:35  error  'check_password_strength' is not defined  no-undef
  188:22  error  'gui_origin' is not defined               no-undef
  203:21  error  'update_auth_data' is not defined         no-undef
2024-05-02 11:21:51 +01:00
Sam Atkins 72c0e118c3 chore: Clarify usage of window fields in UIWindowSessionList.js
/puter/src/UI/UIWindowSessionList.js
   33:117  error  'icons' is not defined             no-undef
   34:41   error  'logged_in_users' is not defined   no-undef
   35:32   error  'logged_in_users' is not defined   no-undef
  134:36   error  'logged_in_users' is not defined   no-undef
  141:17   error  'update_auth_data' is not defined  no-undef
2024-05-02 11:21:51 +01:00
Sam Atkins 66cdf98190 chore: Clarify usage of window fields in UIWindowSaveAccount.js
/puter/src/UI/UIWindowSaveAccount.js
  130:22  error  'api_origin' is not defined        no-undef
  142:48  error  'auth_token' is not defined        no-undef
  145:21  error  'update_auth_data' is not defined  no-undef
2024-05-02 11:21:51 +01:00
Sam Atkins e5d4be6250 chore: Clarify usage of window fields in UIWindowRefer.js
/puter/src/UI/UIWindowRefer.js
  25:20  error  'gui_origin' is not defined  no-undef
  25:37  error  'user' is not defined        no-undef
  73:30  error  'socialLink' is not defined  no-undef
2024-05-02 11:21:51 +01:00
Sam Atkins 130b57b986 chore: Clarify usage of window fields in UIWindowRecoverPassword.js
/puter/src/UI/UIWindowRecoverPassword.js
   84:16  error  'is_email' is not defined    no-undef
   91:22  error  'api_origin' is not defined  no-undef
  101:25  error  'logout' is not defined      no-undef
2024-05-02 11:21:51 +01:00
Sam Atkins 2f30ae7a82 fix: Make url variable accessible to all users of it
Line 107 tries to use `url` but can't see it.

Also, clarify usage of window fields.

/puter/src/UI/UIWindowPublishWebsite.js
   67:67  error  'generate_identifier' is not defined  no-undef
  107:54  error  'url' is not defined                  no-undef
  110:17  error  'update_sites_cache' is not defined   no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins e983e9e9b7 chore: Clarify usage of window fields in UIWindowNewPassword.js
/puter/src/UI/UIWindowNewPassword.js
   48:38  error  'api_origin' is not defined               no-undef
  153:35  error  'check_password_strength' is not defined  no-undef
  163:22  error  'api_origin' is not defined               no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins b042f3c738 chore: Clarify usage of window fields in UIWindowMyWebsites.js
/puter/src/UI/UIWindowMyWebsites.js
  156:30  error  'api_origin' is not defined  no-undef
  164:56  error  'auth_token' is not defined  no-undef
  168:33  error  'logout' is not defined      no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins ece37b62f2 chore: Clarify usage of window fields in progress dialogs
/puter/src/UI/UIWindowMoveProgress.js
  74:9  error  'operation_cancelled' is not defined  no-undef

/puter/src/UI/UIWindowNewFolderProgress.js
  67:9  error  'operation_cancelled' is not defined  no-undef

/puter/src/UI/UIWindowProgressEmptyTrash.js
  67:9  error  'operation_cancelled' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins abc70f2e92 chore: Clarify usage of window fields in UIWindowManageSessions.js
/puter/src/UI/UIWindowManageSessions.js
   91:41  error  'api_origin' is not defined  no-undef
  122:37  error  'api_origin' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 2ed258cb69 chore: Clarify usage of window fields in UIWindowLogin.js
/puter/src/UI/UIWindowLogin.js
  141:16  error  'is_email' is not defined          no-undef
  160:22  error  'gui_origin' is not defined        no-undef
  167:21  error  'update_auth_data' is not defined  no-undef
  180:59  error  'gui_origin' is not defined        no-undef
  186:29  error  'app_domain' is not defined        no-undef
  188:54  error  'gui_origin' is not defined        no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 6903ce0043 chore: Clarify usage of window fields in UIWindowItemProperties.js
/puter/src/UI/UIWindowItemProperties.js
  135:26   error  Empty block statement              no-empty
  147:120  error  'byte_format' is not defined       no-undef
  155:395  error  'extractSubdomain' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 0ebcbe516c chore: Clarify usage of window fields in UIWindowFontPicker.js
/puter/src/UI/UIWindowFontPicker.js
  45:12  error  'isString' is not defined             no-undef
  95:21  error  'scrollParentToChild' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins c44e0ca737 chore: Clarify usage of window fields in UIWindowFeedback.js
/puter/src/UI/UIWindowFeedback.js
  79:22  error  'api_origin' is not defined  no-undef
  84:48  error  'auth_token' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 7f050dc61a chore: Clarify usage of window fields in UIWindowDownloadProgress.js
/puter/src/UI/UIWindowDownloadProgress.js
  74:9  error  'operation_cancelled' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 93e13cdb06 chore: Clarify usage of window fields in UIWindowDesktopBGSettings.js
/puter/src/UI/UIWindowDesktopBGSettings.js
  168:26  error  'api_origin' is not defined  no-undef
  178:52  error  'auth_token' is not defined  no-undef
  182:29  error  'logout' is not defined      no-undef
  188:24  error  Empty block statement        no-empty
2024-05-02 11:21:50 +01:00
Sam Atkins dea3bc1a7f chore: Clarify use of window fields in UIWindowEmailConfirmationRequired
/puter/src/UI/UIWindowEmailConfirmationRequired.js
  113:26  error  'api_origin' is not defined         no-undef
  121:52  error  'auth_token' is not defined         no-undef
  125:29  error  'logout' is not defined             no-undef
  131:29  error  'refresh_user_data' is not defined  no-undef
  160:22  error  'api_origin' is not defined         no-undef
  165:48  error  'auth_token' is not defined         no-undef
  169:25  error  'logout' is not defined             no-undef
  188:13  error  'logout' is not defined             no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 2f6fcdb878 chore: Clarify usage of window fields in UIWindowDownloadProgress.js
/puter/src/UI/UIWindowDownloadProgress.js
  74:9  error  'operation_cancelled' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 3de32c2acc chore: Clarify usage of window fields in UIWindowColorPicker.js
/puter/src/UI/UIWindowColorPicker.js
  26:12  error  'isString' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins ff28d2919b chore: Clarify usage of window fields in UIWindowChangeUsername.js
/puter/src/UI/UIWindowChangeUsername.js
   97:18  error  'api_origin' is not defined  no-undef
  101:44  error  'auth_token' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins e3fb25cf45 chore: Clarify usage of window fields in UIWindowChangePassword.js
/puter/src/UI/UIWindowChangePassword.js
  107:31  error  'check_password_strength' is not defined  no-undef
  117:18  error  'api_origin' is not defined               no-undef
  121:44  error  'auth_token' is not defined               no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins d39fd8659e chore: Clarify usage of window fields in UIWindow.js
And also add some missing imports.

/puter/src/UI/UIWindow.js
    33:20   error  'global_element_id' is not defined                            no-undef
    34:5    error  'last_window_zindex' is not defined                           no-undef
    48:5    error  'window_stack' is not defined                                 no-undef
    69:52   error  'uuidv4' is not defined                                       no-undef
    90:9    error  'is_embedded' is not defined                                  no-undef
   174:52   error  'last_window_zindex' is not defined                           no-undef
   174:94   error  'last_window_zindex' is not defined                           no-undef
   244:77   error  'is_embedded' is not defined                                  no-undef
   289:57   error  'navbar_path' is not defined                                  no-undef
   436:25   error  'launch_app' is not defined                                   no-undef
   456:9    error  'window_nav_history' is not defined                           no-undef
   457:9    error  'window_nav_history_current_position' is not defined          no-undef
   524:9    error  'animate_window_opening' is not defined                       no-undef
   599:17   error  'validate_fsentry_name' is not defined                        no-undef
   790:9    error  'navbar_path_droppable' is not defined                        no-undef
   791:9    error  'sidebar_item_droppable' is not defined                       no-undef
   801:33   error  'window_nav_history' is not defined                           no-undef
   801:63   error  'window_nav_history_current_position' is not defined          no-undef
   804:46   error  'root_dirname' is not defined                                 no-undef
   812:17   error  'window_nav_history_current_position' is not defined          no-undef
   812:68   error  'window_nav_history_current_position' is not defined          no-undef
   813:34   error  'window_nav_history' is not defined                           no-undef
   813:64   error  'window_nav_history_current_position' is not defined          no-undef
   815:17   error  'update_window_path' is not defined                           no-undef
   825:29   error  'window_nav_history_current_position' is not defined          no-undef
   826:38   error  'window_nav_history' is not defined                           no-undef
   834:25   error  'window_nav_history_current_position' is not defined          no-undef
   835:42   error  'window_nav_history' is not defined                           no-undef
   835:72   error  'window_nav_history_current_position' is not defined          no-undef
   840:59   error  'root_dirname' is not defined                                 no-undef
   847:29   error  'update_window_path' is not defined                           no-undef
   869:33   error  'window_nav_history' is not defined                           no-undef
   869:63   error  'window_nav_history_current_position' is not defined          no-undef
   872:46   error  'root_dirname' is not defined                                 no-undef
   880:17   error  'window_nav_history_current_position' is not defined          no-undef
   882:37   error  'window_nav_history' is not defined                           no-undef
   882:67   error  'window_nav_history_current_position' is not defined          no-undef
   885:21   error  'update_window_path' is not defined                           no-undef
   896:29   error  'window_nav_history_current_position' is not defined          no-undef
   896:86   error  'window_nav_history' is not defined                           no-undef
   897:38   error  'window_nav_history' is not defined                           no-undef
   905:25   error  'window_nav_history_current_position' is not defined          no-undef
   906:42   error  'window_nav_history' is not defined                           no-undef
   906:72   error  'window_nav_history_current_position' is not defined          no-undef
   911:59   error  'root_dirname' is not defined                                 no-undef
   918:29   error  'update_window_path' is not defined                           no-undef
   941:50   error  'root_dirname' is not defined                                 no-undef
   950:17   error  'window_nav_history' is not defined                           no-undef
   950:46   error  'window_nav_history' is not defined                           no-undef
   950:82   error  'window_nav_history_current_position' is not defined          no-undef
   951:17   error  'window_nav_history' is not defined                           no-undef
   952:17   error  'window_nav_history_current_position' is not defined          no-undef
   954:17   error  'update_window_path' is not defined                           no-undef
   968:25   error  'update_window_layout' is not defined                         no-undef
   983:25   error  'update_window_layout' is not defined                         no-undef
   986:25   error  'update_window_layout' is not defined                         no-undef
   997:13   error  'is_auth' is not defined                                      no-undef
  1023:13   error  'update_explorer_footer_selected_items_count' is not defined  no-undef
  1106:21   error  'active_element' is not defined                               no-undef
  1117:13   error  'update_explorer_footer_selected_items_count' is not defined  no-undef
  1143:18   error  'mouseover_window' is not defined                             no-undef
  1205:82   error  'mouseX' is not defined                                       no-undef
  1205:107  error  'mouseY' is not defined                                       no-undef
  1219:83   error  'mouseover_window' is not defined                             no-undef
  1244:31   error  'mouseover_window' is not defined                             no-undef
  1246:17   error  'copy_items' is not defined                                   no-undef
  1246:45   error  'mouseover_window' is not defined                             no-undef
  1252:21   error  'create_shortcut' is not defined                              no-undef
  1255:27   error  'mouseover_window' is not defined                             no-undef
  1264:17   error  'move_items' is not defined                                   no-undef
  1264:45   error  'mouseover_window' is not defined                             no-undef
  1286:13   error  'scale_window' is not defined                                 no-undef
  1302:13   error  'scale_window' is not defined                                 no-undef
  1359:21   error  'upload_items' is not defined                                 no-undef
  1413:47   error  'window_width_threshold_for_sidebar' is not defined           no-undef
  1414:49   error  'window_width_threshold_for_sidebar' is not defined           no-undef
  1420:53   error  'window_width_threshold_for_sidebar' is not defined           no-undef
  1435:17   error  'last_window_zindex' is not defined                           no-undef
  1460:29   error  'current_active_snap_zone' is not defined                     no-undef
  1469:50   error  'current_active_snap_zone' is not defined                     no-undef
  1473:43   error  'desktop_height' is not defined                               no-undef
  1474:40   error  'toolbar_height' is not defined                               no-undef
  1476:44   error  'last_window_zindex' is not defined                           no-undef
  1480:55   error  'current_active_snap_zone' is not defined                     no-undef
  1484:43   error  'desktop_height' is not defined                               no-undef
  1485:40   error  'toolbar_height' is not defined                               no-undef
  1487:44   error  'last_window_zindex' is not defined                           no-undef
  1491:55   error  'current_active_snap_zone' is not defined                     no-undef
  1495:43   error  'desktop_height' is not defined                               no-undef
  1496:40   error  'toolbar_height' is not defined                               no-undef
  1497:41   error  'desktop_width' is not defined                                no-undef
  1498:44   error  'last_window_zindex' is not defined                           no-undef
  1502:55   error  'current_active_snap_zone' is not defined                     no-undef
  1506:43   error  'desktop_height' is not defined                               no-undef
  1507:40   error  'toolbar_height' is not defined                               no-undef
  1510:44   error  'last_window_zindex' is not defined                           no-undef
  1514:55   error  'current_active_snap_zone' is not defined                     no-undef
  1517:42   error  'desktop_width' is not defined                                no-undef
  1518:43   error  'desktop_height' is not defined                               no-undef
  1519:40   error  'toolbar_height' is not defined                               no-undef
  1521:44   error  'last_window_zindex' is not defined                           no-undef
  1525:55   error  'current_active_snap_zone' is not defined                     no-undef
  1528:40   error  'toolbar_height' is not defined                               no-undef
  1528:57   error  'desktop_height' is not defined                               no-undef
  1531:43   error  'desktop_height' is not defined                               no-undef
  1532:44   error  'last_window_zindex' is not defined                           no-undef
  1536:55   error  'current_active_snap_zone' is not defined                     no-undef
  1539:40   error  'toolbar_height' is not defined                               no-undef
  1539:57   error  'desktop_height' is not defined                               no-undef
  1540:41   error  'desktop_width' is not defined                                no-undef
  1542:43   error  'desktop_height' is not defined                               no-undef
  1543:44   error  'last_window_zindex' is not defined                           no-undef
  1559:52   error  'current_active_snap_zone' is not defined                     no-undef
  1590:28   error  'current_active_snap_zone' is not defined                     no-undef
  1592:40   error  'toolbar_height' is not defined                               no-undef
  1595:43   error  'desktop_height' is not defined                               no-undef
  1599:33   error  'current_active_snap_zone' is not defined                     no-undef
  1601:40   error  'toolbar_height' is not defined                               no-undef
  1604:43   error  'desktop_height' is not defined                               no-undef
  1608:33   error  'current_active_snap_zone' is not defined                     no-undef
  1610:40   error  'toolbar_height' is not defined                               no-undef
  1613:43   error  'desktop_height' is not defined                               no-undef
  1617:33   error  'current_active_snap_zone' is not defined                     no-undef
  1619:40   error  'toolbar_height' is not defined                               no-undef
  1619:57   error  'desktop_height' is not defined                               no-undef
  1622:43   error  'desktop_height' is not defined                               no-undef
  1626:33   error  'current_active_snap_zone' is not defined                     no-undef
  1628:40   error  'toolbar_height' is not defined                               no-undef
  1628:57   error  'desktop_height' is not defined                               no-undef
  1629:41   error  'desktop_width' is not defined                                no-undef
  1631:43   error  'desktop_height' is not defined                               no-undef
  1635:33   error  'current_active_snap_zone' is not defined                     no-undef
  1637:40   error  'toolbar_height' is not defined                               no-undef
  1640:43   error  'desktop_height' is not defined                               no-undef
  1644:33   error  'current_active_snap_zone' is not defined                     no-undef
  1645:29   error  'scale_window' is not defined                                 no-undef
  1656:51   error  'window_width_threshold_for_sidebar' is not defined           no-undef
  1657:53   error  'window_width_threshold_for_sidebar' is not defined           no-undef
  1663:57   error  'window_width_threshold_for_sidebar' is not defined           no-undef
  1674:71   error  'taskbar_height' is not defined                               no-undef
  1676:51   error  'taskbar_height' is not defined                               no-undef
  1703:35   error  'window_width_threshold_for_sidebar' is not defined           no-undef
  1718:36   error  'window_width_threshold_for_sidebar' is not defined           no-undef
  1719:49   error  'window_width_threshold_for_sidebar' is not defined           no-undef
  1725:42   error  'window_width_threshold_for_sidebar' is not defined           no-undef
  1733:50   error  'toolbar_height' is not defined                               no-undef
  1734:38   error  'toolbar_height' is not defined                               no-undef
  1736:32   error  'toolbar_height' is not defined                               no-undef
  1773:13   error  'setItem' is not defined                                      no-undef
  1820:21   error  'scale_window' is not defined                                 no-undef
  1867:51   error  'trash_path' is not defined                                   no-undef
  1881:41   error  'sort_items' is not defined                                   no-undef
  1882:41   error  'set_sort_by' is not defined                                  no-undef
  1889:41   error  'sort_items' is not defined                                   no-undef
  1890:41   error  'set_sort_by' is not defined                                  no-undef
  1897:41   error  'sort_items' is not defined                                   no-undef
  1898:41   error  'set_sort_by' is not defined                                  no-undef
  1905:41   error  'sort_items' is not defined                                   no-undef
  1906:41   error  'set_sort_by' is not defined                                  no-undef
  1918:41   error  'sort_items' is not defined                                   no-undef
  1919:41   error  'set_sort_by' is not defined                                  no-undef
  1927:41   error  'sort_items' is not defined                                   no-undef
  1928:41   error  'set_sort_by' is not defined                                  no-undef
  1973:40   error  'clipboard' is not defined                                    no-undef
  1975:36   error  'clipboard_op' is not defined                                 no-undef
  1976:37   error  'copy_clipboard_items' is not defined                         no-undef
  1977:41   error  'clipboard_op' is not defined                                 no-undef
  1978:37   error  'move_clipboard_items' is not defined                         no-undef
  1986:39   error  'actions_history' is not defined                              no-undef
  1988:33   error  'undo_last_action' is not defined                             no-undef
  1998:33   error  'init_upload_using_dialog' is not defined                     no-undef
  2014:48   error  'UIWindowSaveAccount' is not defined                          no-undef
  2023:85   error  'UIWindowEmailConfirmationRequired' is not defined            no-undef
  2036:33   error  'launch_app' is not defined                                   no-undef
  2059:44   error  'mouseX' is not defined                                       no-undef
  2063:43   error  'mouseY' is not defined                                       no-undef
  2102:68   error  'trash_path' is not defined                                   no-undef
  2103:37   error  'delete_item' is not defined                                  no-undef
  2110:67   error  'trash_path' is not defined                                   no-undef
  2110:128  error  'trash_path' is not defined                                   no-undef
  2146:21   error  'upload_items' is not defined                                 no-undef
  2163:13   error  'enter_fullpage_mode' is not defined                          no-undef
  2173:8    error  'active_element' is not defined                               no-undef
  2174:9    error  'active_element' is not defined                               no-undef
  2195:25   error  'item_icon' is not defined                                    no-undef
  2210:9    error  'window_nav_history' is not defined                           no-undef
  2210:45   error  'window_nav_history' is not defined                           no-undef
  2210:88   error  'window_nav_history_current_position' is not defined          no-undef
  2211:9    error  'window_nav_history' is not defined                           no-undef
  2212:9    error  'window_nav_history_current_position' is not defined          no-undef
  2214:9    error  'update_window_path' is not defined                           no-undef
  2257:37   error  'item_icon' is not defined                                    no-undef
  2364:9    error  'update_window_path' is not defined                           no-undef
  2380:38   error  'root_dirname' is not defined                                 no-undef
  2389:9    error  'window_nav_history' is not defined                           no-undef
  2389:45   error  'window_nav_history' is not defined                           no-undef
  2389:88   error  'window_nav_history_current_position' is not defined          no-undef
  2390:9    error  'window_nav_history' is not defined                           no-undef
  2391:9    error  'window_nav_history_current_position' is not defined          no-undef
  2391:62   error  'window_nav_history' is not defined                           no-undef
  2392:9    error  'update_window_path' is not defined                           no-undef
  2436:59   error  'root_dirname' is not defined                                 no-undef
  2453:19   error  'clipboard' is not defined                                    no-undef
  2455:16   error  'clipboard_op' is not defined                                 no-undef
  2456:17   error  'copy_clipboard_items' is not defined                         no-undef
  2457:21   error  'clipboard_op' is not defined                                 no-undef
  2458:17   error  'move_clipboard_items' is not defined                         no-undef
  2484:18   error  'mouseover_window' is not defined                             no-undef
  2503:21   error  'create_shortcut' is not defined                              no-undef
  2515:17   error  'move_items' is not defined                                   no-undef
  2525:18   error  'mouseover_window' is not defined                             no-undef
  2605:12   error  'window_nav_history' is not defined                           no-undef
  2605:42   error  'window_nav_history' is not defined                           no-undef
  2605:84   error  'window_nav_history_current_position' is not defined          no-undef
  2612:12   error  'window_nav_history_current_position' is not defined          no-undef
  2626:55   error  'navbar_path' is not defined                                  no-undef
  2687:17   error  'update_window_layout' is not defined                         no-undef
  2690:21   error  'update_details_layout_sort_visuals' is not defined           no-undef
  2698:13   error  'update_window_path' is not defined                           no-undef
  2707:54   error  'root_dirname' is not defined                                 no-undef
  2712:9    error  'navbar_path_droppable' is not defined                        no-undef
  2715:5    error  'update_explorer_footer_selected_items_count' is not defined  no-undef
  2727:18   error  'mouseover_window' is not defined                             no-undef
  2746:21   error  'create_shortcut' is not defined                              no-undef
  2758:17   error  'move_items' is not defined                                   no-undef
  2768:18   error  'mouseover_window' is not defined                             no-undef
  2807:36   error  'sendWindowWillCloseMsg' is not defined                       no-undef
  2819:23   error  'window_stack' is not defined                                 no-undef
  2829:17   error  'remove_taskbar_item' is not defined                          no-undef
  2836:17   error  'exit_fullpage_mode' is not defined                           no-undef
  2853:31   error  'window_stack' is not defined                                 no-undef
  2854:73   error  'window_stack' is not defined                                 no-undef
  2854:86   error  'window_stack' is not defined                                 no-undef
  2857:47   error  'window_stack' is not defined                                 no-undef
  2857:60   error  'window_stack' is not defined                                 no-undef
  2916:22   error  'window_stack' is not defined                                 no-undef
  2924:13   error  'active_item_container' is not defined                        no-undef
  2949:20   error  'toolbar_height' is not defined                               no-undef
  3007:14   error  'api_origin' is not defined                                   no-undef
  3017:40   error  'auth_token' is not defined                                   no-undef
  3021:17   error  'logout' is not defined                                       no-undef
  3083:43   error  'last_window_zindex' is not defined                           no-undef
  3123:38   error  'last_window_zindex' is not defined                           no-undef
  3127:98   error  'last_window_zindex' is not defined                           no-undef
  3131:100  error  'last_window_zindex' is not defined                           no-undef
  3147:81   error  'mouseX' is not defined                                       no-undef
  3147:106  error  'mouseY' is not defined                                       no-undef
  3151:9    error  'active_item_container' is not defined                        no-undef
  3153:34   error  'active_item_container' is not defined                        no-undef
  3155:9    error  'window_stack' is not defined                                 no-undef
  3157:11   error  'active_item_container' is not defined                        no-undef
  3252:5    error  'sort_items' is not defined                                   no-undef
  3253:5    error  'set_sort_by' is not defined                                  no-undef
  3258:14   error  'api_origin' is not defined                                   no-undef
  3267:40   error  'auth_token' is not defined                                   no-undef
  3271:17   error  'logout' is not defined                                       no-undef
  3280:21   error  'update_details_layout_sort_visuals' is not defined           no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 126b00b35c chore: Clarify usage of window fields in UITaskbarItem.js
/puter/src/UI/UITaskbarItem.js
   31:24  error  'global_element_id' is not defined    no-undef
  124:21  error  'launch_app' is not defined           no-undef
  143:21  error  'empty_trash' is not defined          no-undef
  158:25  error  'remove_taskbar_item' is not defined  no-undef
  160:21  error  'update_taskbar' is not defined       no-undef
  174:21  error  'update_taskbar' is not defined       no-undef
  250:73  error  'mouseover_window' is not defined     no-undef
  254:33  error  'path' is not defined                 no-undef
  297:21  error  'launch_app' is not defined           no-undef
  328:89  error  'mouseover_window' is not defined     no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 94291c4968 chore: Clarify usage of window fields in UITaskbar.js
/puter/src/UI/UITaskbar.js
   24:5    error  'global_element_id' is not defined      no-undef
   31:14   error  'api_origin' is not defined             no-undef
   36:40   error  'auth_token' is not defined             no-undef
   44:33   error  'global_element_id' is not defined      no-undef
   77:17   error  'launch_apps' is not defined            no-undef
   77:33   error  'launch_apps' is not defined            no-undef
   77:55   error  'launch_apps' is not defined            no-undef
   79:17   error  'launch_apps' is not defined            no-undef
   80:26   error  'api_origin' is not defined             no-undef
   85:52   error  'auth_token' is not defined             no-undef
   99:16   error  'launch_apps' is not defined            no-undef
  105:88   error  'launch_apps' is not defined            no-undef
  106:38   error  'launch_apps' is not defined            no-undef
  119:16   error  'launch_apps' is not defined            no-undef
  121:107  error  'launch_apps' is not defined            no-undef
  125:45   error  'launch_apps' is not defined            no-undef
  126:38   error  'launch_apps' is not defined            no-undef
  179:17   error  'launch_app' is not defined             no-undef
  201:25   error  'launch_app' is not defined             no-undef
  215:39   error  'trash_path' is not defined             no-undef
  228:68   error  'trash_path' is not defined             no-undef
  230:17   error  'launch_app' is not defined             no-undef
  236:13   error  'move_items' is not defined             no-undef
  236:31   error  'trash_path' is not defined             no-undef
  240:5    error  'make_taskbar_sortable' is not defined  no-undef
  262:22   error  Empty block statement                   no-empty
  284:29   error  'launch_app' is not defined             no-undef
  297:17   error  'update_taskbar' is not defined         no-undef
  301:17   error  'update_taskbar' is not defined         no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins a5821815bf chore: Clarify usage of window fields in UIPrompt.js
/puter/src/UI/UIPrompt.js
  26:12  error  'isString' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins c5612beff9 chore: Clarify usage of window fields in UIPopover.js
/puter/src/UI/UIPopover.js
  28:5   error  'global_element_id' is not defined  no-undef
  33:30  error  'global_element_id' is not defined  no-undef
  40:59  error  'global_element_id' is not defined  no-undef
  76:59  error  'taskbar_height' is not defined     no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins eecaf759ea chore: Clarify usage of window fields in UINotification.js
The click handler also makes use of the `options` parameter from
UINotification(), which isn't available there, so I've commented that
out. This needs more work.

/puter/src/UI/UINotification.js
  21:5   error  'global_element_id' is not defined  no-undef
  26:39  error  'global_element_id' is not defined  no-undef
  34:73  error  'global_element_id' is not defined  no-undef
  47:14  error  'toolbar_height' is not defined     no-undef
  55:12  error  'options' is not defined            no-undef
  55:36  error  'options' is not defined            no-undef
  56:13  error  'options' is not defined            no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 620a1a1334 chore: Clarify usage of window fields in UIItem.js
/puter/src/UI/UIItem.js
    42:21   error  'global_element_id' is not defined                            no-undef
    62:23   error  'determine_website_url' is not defined                        no-undef
   100:58   error  'timeago' is not defined                                      no-undef
   104:42   error  'byte_format' is not defined                                  no-undef
   161:151  error  'truncate_filename' is not defined                            no-undef
   161:183  error  'TRUNCATE_LENGTH' is not defined                              no-undef
   171:5    error  'show_or_hide_empty_folder_message' is not defined            no-undef
   178:64   error  'trash_path' is not defined                                   no-undef
   186:9    error  'update_explorer_footer_item_count' is not defined            no-undef
   190:10   error  'is_auto_arrange_enabled' is not defined                      no-undef
   217:21   error  'upload_items' is not defined                                 no-undef
   336:16   error  'mouseover_window' is not defined                             no-undef
   337:39   error  'mouseover_window' is not defined                             no-undef
   338:23   error  'mouseover_window' is not defined                             no-undef
   341:24   error  'mouseX' is not defined                                       no-undef
   341:46   error  'mouseX' is not defined                                       no-undef
   341:69   error  'mouseY' is not defined                                       no-undef
   341:90   error  'mouseY' is not defined                                       no-undef
   342:88   error  'mouseX' is not defined                                       no-undef
   342:113  error  'mouseY' is not defined                                       no-undef
   350:18   error  'is_auto_arrange_enabled' is not defined                      no-undef
   350:78   error  'trash_path' is not defined                                   no-undef
   352:17   error  'mouseover_window' is not defined                             no-undef
   358:17   error  'desktop_item_positions' is not defined                       no-undef
   359:17   error  'save_desktop_item_positions' is not defined                  no-undef
   383:73   error  'mouseover_window' is not defined                             no-undef
   427:21   error  'launch_app' is not defined                                   no-undef
   448:25   error  'copy_items' is not defined                                   no-undef
   450:25   error  'copy_items' is not defined                                   no-undef
   455:25   error  'create_shortcut' is not defined                              no-undef
   468:32   error  'desktop_item_positions' is not defined                       no-undef
   469:25   error  'save_desktop_item_positions' is not defined                  no-undef
   471:21   error  'move_items' is not defined                                   no-undef
   483:89   error  'mouseover_window' is not defined                             no-undef
   525:13   error  'open_item' is not defined                                    no-undef
   540:13   error  'open_item' is not defined                                    no-undef
   579:9    error  'update_explorer_footer_selected_items_count' is not defined  no-undef
   596:13   error  'update_explorer_footer_selected_items_count' is not defined  no-undef
   651:34   error  'truncate_filename' is not defined                            no-undef
   651:66   error  'TRUNCATE_LENGTH' is not defined                              no-undef
   661:9    error  'rename_file' is not defined                                  no-undef
   678:13   error  'last_enter_pressed_to_rename_ts' is not defined              no-undef
   679:13   error  'update_explorer_footer_selected_items_count' is not defined  no-undef
   718:25   error  'activate_item_name_editor' is not defined                    no-undef
   763:78   error  'trash_path' is not defined                                   no-undef
   775:29   error  'move_items' is not defined                                   no-undef
   796:25   error  'zipItems' is not defined                                     no-undef
   810:25   error  'zipItems' is not defined                                     no-undef
   875:39   error  'delete_item' is not defined                                  no-undef
   877:63   error  'trash_path' is not defined                                   no-undef
   885:67   error  'trash_path' is not defined                                   no-undef
   885:116  error  'trash_path' is not defined                                   no-undef
   886:69   error  'trash_path' is not defined                                   no-undef
   906:29   error  'create_shortcut' is not defined                              no-undef
   925:25   error  'move_items' is not defined                                   no-undef
   925:53   error  'trash_path' is not defined                                   no-undef
   936:63   error  'trash_path' is not defined                                   no-undef
   936:122  error  'trash_path' is not defined                                   no-undef
   945:25   error  'open_item' is not defined                                    no-undef
   962:49   error  'suggest_apps_for_fsentry' is not defined                     no-undef
   984:37   error  'user_preferences' is not defined                             no-undef
   987:43   error  'user_preferences' is not defined                             no-undef
   989:42   error  'user_preferences' is not defined                             no-undef
  1007:41   error  'user_preferences' is not defined                             no-undef
  1008:72   error  'user_preferences' is not defined                             no-undef
  1011:33   error  'launch_app' is not defined                                   no-undef
  1047:29   error  'open_item' is not defined                                    no-undef
  1093:25   error  'launch_app' is not defined                                   no-undef
  1114:25   error  'empty_trash' is not defined                                  no-undef
  1127:29   error  'zipItems' is not defined                                     no-undef
  1129:29   error  'trigger_download' is not defined                             no-undef
  1140:25   error  'zipItems' is not defined                                     no-undef
  1151:41   error  'JSZip' is not defined                                        no-undef
  1180:25   error  'move_items' is not defined                                   no-undef
  1219:31   error  'clipboard' is not defined                                    no-undef
  1221:28   error  'clipboard_op' is not defined                                 no-undef
  1222:29   error  'copy_clipboard_items' is not defined                         no-undef
  1223:33   error  'clipboard_op' is not defined                                 no-undef
  1224:29   error  'move_clipboard_items' is not defined                         no-undef
  1247:25   error  'create_shortcut' is not defined                              no-undef
  1265:25   error  'move_items' is not defined                                   no-undef
  1265:47   error  'trash_path' is not defined                                   no-undef
  1290:35   error  'delete_item' is not defined                                  no-undef
  1292:63   error  'trash_path' is not defined                                   no-undef
  1299:67   error  'trash_path' is not defined                                   no-undef
  1299:128  error  'trash_path' is not defined                                   no-undef
  1300:57   error  'trash_path' is not defined                                   no-undef
  1313:25   error  'activate_item_name_editor' is not defined                    no-undef
  1373:9    error  'sort_items' is not defined                                   no-undef
  1376:9    error  'activate_item_name_editor' is not defined                    no-undef
  1433:31   error  'copy_to_clipboard' is not defined                            no-undef
  1517:9    error  'show_or_hide_empty_folder_message' is not defined            no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 9fc983f54a chore: Clarify usage of window fields in UIDesktop.js
/puter/src/UI/UIDesktop.js
    44:24   error  'gui_origin' is not defined                                   no-undef
    46:25   error  'auth_token' is not defined                                   no-undef
    86:5    error  'socket' is not defined                                       no-undef
    95:5    error  'socket' is not defined                                       no-undef
   104:5    error  'socket' is not defined                                       no-undef
   105:43   error  'trash_path' is not defined                                   no-undef
   106:45   error  'trash_path' is not defined                                   no-undef
   109:49   error  'trash_path' is not defined                                   no-undef
   112:5    error  'socket' is not defined                                       no-undef
   118:9    error  'launch_apps' is not defined                                  no-undef
   121:9    error  'launch_apps' is not defined                                  no-undef
   121:39   error  'launch_apps' is not defined                                  no-undef
   124:9    error  'launch_apps' is not defined                                  no-undef
   124:30   error  'launch_apps' is not defined                                  no-undef
   127:5    error  'socket' is not defined                                       no-undef
   146:5    error  'socket' is not defined                                       no-undef
   153:85   error  'truncate_filename' is not defined                            no-undef
   153:114  error  'TRUNCATE_LENGTH' is not defined                              no-undef
   156:77   error  'item_icon' is not defined                                    no-undef
   192:13   error  'update_window_path' is not defined                           no-undef
   199:13   error  'sort_items' is not defined                                   no-undef
   203:5    error  'socket' is not defined                                       no-undef
   206:9    error  'sendItemChangeEventToWatchingApps' is not defined            no-undef
   220:25   error  'fsentry.path' is assigned to itself                          no-self-assign
   233:17   error  'update_explorer_footer_item_count' is not defined            no-undef
   234:17   error  'update_explorer_footer_selected_items_count' is not defined  no-undef
   239:26   error  'trash_path' is not defined                                   no-undef
   249:17   error  'update_window_path' is not defined                           no-undef
   253:26   error  'trash_path' is not defined                                   no-undef
   280:25   error  'item_icon' is not defined                                    no-undef
   281:34   error  'trash_path' is not defined                                   no-undef
   287:39   error  'trash_path' is not defined                                   no-undef
   308:37   error  'item_icon' is not defined                                    no-undef
   319:17   error  'sort_items' is not defined                                   no-undef
   324:13   error  'sort_items' is not defined                                   no-undef
   328:5    error  'socket' is not defined                                       no-undef
   333:9    error  'refresh_user_data' is not defined                            no-undef
   336:5    error  'socket' is not defined                                       no-undef
   341:9    error  'refresh_user_data' is not defined                            no-undef
   344:5    error  'socket' is not defined                                       no-undef
   346:9    error  'sendItemChangeEventToWatchingApps' is not defined            no-undef
   360:85   error  'truncate_filename' is not defined                            no-undef
   360:114  error  'TRUNCATE_LENGTH' is not defined                              no-undef
   363:77   error  'item_icon' is not defined                                    no-undef
   398:13   error  'update_window_path' is not defined                           no-undef
   405:13   error  'sort_items' is not defined                                   no-undef
   409:5    error  'socket' is not defined                                       no-undef
   415:9    error  'sendItemChangeEventToWatchingApps' is not defined            no-undef
   440:81   error  'item_icon' is not defined                                    no-undef
   445:17   error  'sort_items' is not defined                                   no-undef
   455:29   error  'item_icon' is not defined                                    no-undef
   463:17   error  Duplicate key 'associated_app_name'                           no-dupe-keys
   470:17   error  'sort_items' is not defined                                   no-undef
   491:42   error  'desktop_path' is not defined                                 no-undef
   496:5    error  'getItem' is not defined                                      no-undef
   508:8    error  'url_query_params' is not defined                             no-undef
   525:9    error  'update_user_preferences' is not defined                      no-undef
   560:17   error  'upload_items' is not defined                                 no-undef
   560:52   error  'desktop_path' is not defined                                 no-undef
   577:16   error  'mouseover_window' is not defined                             no-undef
   585:69   error  'desktop_path' is not defined                                 no-undef
   613:17   error  'copy_items' is not defined                                   no-undef
   613:43   error  'desktop_path' is not defined                                 no-undef
   617:17   error  'move_items' is not defined                                   no-undef
   617:43   error  'desktop_path' is not defined                                 no-undef
   649:39   error  'is_auto_arrange_enabled' is not defined                      no-undef
   651:37   error  'is_auto_arrange_enabled' is not defined                      no-undef
   651:64   error  'is_auto_arrange_enabled' is not defined                      no-undef
   652:37   error  'store_auto_arrange_preference' is not defined                no-undef
   652:67   error  'is_auto_arrange_enabled' is not defined                      no-undef
   653:40   error  'is_auto_arrange_enabled' is not defined                      no-undef
   654:41   error  'sort_items' is not defined                                   no-undef
   655:41   error  'set_sort_by' is not defined                                  no-undef
   656:41   error  'clear_desktop_item_positions' is not defined                 no-undef
   658:41   error  'set_desktop_item_positions' is not defined                   no-undef
   668:44   error  'is_auto_arrange_enabled' is not defined                      no-undef
   671:37   error  'sort_items' is not defined                                   no-undef
   672:37   error  'set_sort_by' is not defined                                  no-undef
   677:44   error  'is_auto_arrange_enabled' is not defined                      no-undef
   680:37   error  'sort_items' is not defined                                   no-undef
   681:37   error  'set_sort_by' is not defined                                  no-undef
   686:44   error  'is_auto_arrange_enabled' is not defined                      no-undef
   689:37   error  'sort_items' is not defined                                   no-undef
   690:37   error  'set_sort_by' is not defined                                  no-undef
   695:44   error  'is_auto_arrange_enabled' is not defined                      no-undef
   698:37   error  'sort_items' is not defined                                   no-undef
   699:37   error  'set_sort_by' is not defined                                  no-undef
   708:44   error  'is_auto_arrange_enabled' is not defined                      no-undef
   712:37   error  'sort_items' is not defined                                   no-undef
   713:37   error  'set_sort_by' is not defined                                  no-undef
   718:44   error  'is_auto_arrange_enabled' is not defined                      no-undef
   722:37   error  'sort_items' is not defined                                   no-undef
   723:37   error  'set_sort_by' is not defined                                  no-undef
   757:43   error  'desktop_path' is not defined                                 no-undef
   767:35   error  'clipboard' is not defined                                    no-undef
   769:32   error  'clipboard_op' is not defined                                 no-undef
   770:33   error  'copy_clipboard_items' is not defined                         no-undef
   770:54   error  'desktop_path' is not defined                                 no-undef
   771:37   error  'clipboard_op' is not defined                                 no-undef
   772:33   error  'move_clipboard_items' is not defined                         no-undef
   780:35   error  'actions_history' is not defined                              no-undef
   782:29   error  'undo_last_action' is not defined                             no-undef
   791:29   error  'init_upload_using_dialog' is not defined                     no-undef
   818:9    error  'is_embedded' is not defined                                  no-undef
   911:12   error  'user' is not defined                                         no-undef
   922:13   error  'is_embedded' is not defined                                  no-undef
   940:8    error  'url_query_params' is not defined                             no-undef
   941:28   error  'url_query_params' is not defined                             no-undef
   943:35   error  'home_path' is not defined                                    no-undef
   944:16   error  'url_query_params' is not defined                             no-undef
   945:34   error  'url_query_params' is not defined                             no-undef
   950:29   error  'item_icon' is not defined                                    no-undef
   966:13   error  'launch_app' is not defined                                   no-undef
   967:23   error  'app_launched_from_url' is not defined                        no-undef
   970:25   error  'app_query_params' is not defined                             no-undef
  1017:40   error  'taskbar_height' is not defined                               no-undef
  1023:40   error  'user' is not defined                                         no-undef
  1024:9    error  'getItem' is not defined                                      no-undef
  1031:21   error  'setItem' is not defined                                      no-undef
  1125:47   error  'user' is not defined                                         no-undef
  1128:48   error  'user' is not defined                                         no-undef
  1131:25   error  'update_auth_data' is not defined                             no-undef
  1170:37   error  'listSupportedLanguages' is not defined                       no-undef
  1249:29   error  'logout' is not defined                                       no-undef
  1253:25   error  'logout' is not defined                                       no-undef
  1261:9    error  'is_fullscreen' is not defined                                no-undef
  1308:5    error  'launch_app' is not defined                                   no-undef
  1381:9    error  'launch_apps' is not defined                                  no-undef
  1460:14   error  'api_origin' is not defined                                   no-undef
  1468:40   error  'auth_token' is not defined                                   no-undef
  1488:14   error  'toolbar_height' is not defined                               no-undef
  1502:9    error  'reset_window_size_and_position' is not defined               no-undef
  1513:5    error  'refresh_desktop_background' is not defined                   no-undef
  1520:26   error  'window_border_radius' is not defined                         no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins dd7361441d chore: Clarify usage of window fields in UIContextMenu.js
/puter/src/UI/UIContextMenu.js
   23:21  error  'global_element_id' is not defined      no-undef
  117:57  error  'taskbar_height' is not defined         no-undef
  118:52  error  'taskbar_height' is not defined         no-undef
  260:17  error  'make_taskbar_sortable' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 63347843cb chore: Clarify usage of window fields in UIAlert.js
/puter/src/UI/UIAlert.js
  26:12  error  'isString' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins c2ef0a9578 chore: Clarify usage of window fields in Settings app
Solves these eslint issues:

/puter/src/UI/Settings/UITabAccount.js
  34:13   error  'user' is not defined  no-undef
  47:99   error  'user' is not defined  no-undef
  55:12   error  'user' is not defined  no-undef
  59:105  error  'user' is not defined  no-undef

/puter/src/UI/Settings/UITabLanguage.js
  35:37  error  'listSupportedLanguages' is not defined  no-undef

/puter/src/UI/Settings/UITabUsage.js
   45:18  error  'api_origin' is not defined   no-undef
   50:46  error  'auth_token' is not defined   no-undef
   54:21  error  'logout' is not defined       no-undef
   96:18  error  'api_origin' is not defined   no-undef
  101:46  error  'auth_token' is not defined   no-undef
  105:21  error  'logout' is not defined       no-undef
  116:51  error  'byte_format' is not defined  no-undef
  123:41  error  'byte_format' is not defined  no-undef
  124:45  error  'byte_format' is not defined  no-undef

/puter/src/UI/Settings/UIWindowChangeEmail.js
   96:18  error  'api_origin' is not defined  no-undef
  100:44  error  'auth_token' is not defined  no-undef

/puter/src/UI/Settings/UIWindowFinalizeUserDeletion.js
   29:12  error  'user' is not defined        no-undef
   97:16  error  'user' is not defined        no-undef
  115:22  error  'api_origin' is not defined  no-undef
  120:50  error  'auth_token' is not defined  no-undef
  127:25  error  'logout' is not defined      no-undef
  139:25  error  'logout' is not defined      no-undef

/puter/src/UI/Settings/UIWindowSettings.js
  48:162  error  'icons' is not defined  no-undef
  86:13   error  Duplicate key 'height'  no-dupe-keys
2024-05-02 11:21:50 +01:00
Sam Atkins d17e0b80b3 chore: Add missing import for node:console
Solves these eslint issues:

/puter/run-selfhosted.js
   49:9  error  'console' is not defined  no-undef
   64:5  error  'console' is not defined  no-undef
  127:5  error  'console' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 8d4a1e0ed3 fix: Add missing TextEncoder to PTT
Solves this eslint issue:

/puter/packages/terminal/src/pty/PTT.js
  35:29  error  'encoder' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 280479c0c6 chore: Clarify usage of window fields in IPC.js
Resolves these eslint errors:

/puter/src/IPC.js
    53:69  error  'appCallbackFunctions' is not defined                no-undef
    55:9   error  'appCallbackFunctions' is not defined                no-undef
    57:16  error  'appCallbackFunctions' is not defined                no-undef
    81:33  error  'window_for_app_instance' is not defined             no-undef
    84:27  error  'iframe_for_app_instance' is not defined             no-undef
   105:48  error  Empty block statement                                no-empty
   180:18  error  'api_origin' is not defined                          no-undef
   190:44  error  'auth_token' is not defined                          no-undef
   194:21  error  'logout' is not defined                              no-undef
   207:18  error  'api_origin' is not defined                          no-undef
   216:44  error  'auth_token' is not defined                          no-undef
   220:21  error  'logout' is not defined                              no-undef
   239:18  error  'api_origin' is not defined                          no-undef
   248:44  error  'auth_token' is not defined                          no-undef
   252:21  error  'logout' is not defined                              no-undef
   268:13  error  'is_auth' is not defined                             no-undef
   309:13  error  'is_auth' is not defined                             no-undef
   348:27  error  'window_for_app_instance' is not defined             no-undef
   360:27  error  'window_for_app_instance' is not defined             no-undef
   576:35  error  'uuidv4' is not defined                              no-undef
   582:9   error  'launch_app' is not defined                          no-undef
   597:37  error  'appdata_path' is not defined                        no-undef
   629:12  error  'appdata_signatures' is not defined                  no-undef
   633:23  error  'appdata_signatures' is not defined                  no-undef
   638:30  error  'appdata_path' is not defined                        no-undef
   647:25  error  'appdata_signatures' is not defined                  no-undef
   664:29  error  'appdata_signatures' is not defined                  no-undef
   682:13  error  'is_auth' is not defined                             no-undef
   717:13  error  'is_auth' is not defined                             no-undef
   745:13  error  'is_auth' is not defined                             no-undef
   773:13  error  'is_auth' is not defined                             no-undef
   783:22  error  'api_origin' is not defined                          no-undef
   793:48  error  'auth_token' is not defined                          no-undef
   797:25  error  'logout' is not defined                              no-undef
   825:13  error  'is_auth' is not defined                             no-undef
   857:36  error  'operation_id' is not defined                        no-undef
   872:41  error  'auth_token' is not defined                          no-undef
   873:41  error  'api_origin' is not defined                          no-undef
   939:45  error  'item_icon' is not defined                           no-undef
   951:33  error  'sort_items' is not defined                          no-undef
   954:29  error  'show_save_account_notice_if_needed' is not defined  no-undef
   998:38  error  'busy_indicator_hide_delay' is not defined           no-undef
  1004:33  error  'busy_indicator_hide_delay' is not defined           no-undef
  1018:37  error  'pictures_path' is not defined                       no-undef
  1020:37  error  'desktop_path' is not defined                        no-undef
  1022:37  error  'documents_path' is not defined                      no-undef
  1024:37  error  'videos_path' is not defined                         no-undef
  1026:37  error  'audio_path' is not defined                          no-undef
  1028:37  error  'appdata_path' is not defined                        no-undef
  1032:13  error  'is_auth' is not defined                             no-undef
  1044:28  error  'operation_id' is not defined                        no-undef
  1059:33  error  'auth_token' is not defined                          no-undef
  1060:33  error  'api_origin' is not defined                          no-undef
  1145:31  error  'iframe_for_app_instance' is not defined             no-undef
  1163:31  error  'window_for_app_instance' is not defined             no-undef
  1178:36  error  'get_apps' is not defined                            no-undef
  1199:11  error  'window_for_app_instance' is not defined             no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins ca65ed1258 chore: Use this to refer to itemWatchCallbackFunctions field
Solves these eslint issues:

/puter/packages/puter-js/src/modules/UI.js
  418:20  error  'itemWatchCallbackFunctions' is not defined  no-undef
  418:74  error  'itemWatchCallbackFunctions' is not defined  no-undef
  419:21  error  'itemWatchCallbackFunctions' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 33785b3786 chore: Add missing imports for node:process 2024-05-02 11:21:50 +01:00
Sam Atkins 96e9c154bd chore: Fix a couple of regex related eslint issues
/puter/packages/phoenix/src/puter-shell/providers/ScriptCommandProvider.js
  27:38  error  Unnecessary escape character: \/  no-useless-escape

/puter/packages/phoenix/src/util/wrap-text.js
  24:33  error  Unexpected control character(s) in regular expression: \x1b  no-control-regex
2024-05-02 11:21:50 +01:00
Sam Atkins c8a20cadbf fix: Correct grep output when asking for line numbers
A couple of issues here:
- We didn't pass the line number to do_grep_line() so `i` was undefined
- Operator precedence messed with the ternary so when line numbers were
  requested, the line wouldn't be output.

Found thanks to this now-solved eslint issue:

/puter/packages/phoenix/src/puter-shell/coreutils/grep.js
  100:60  error  'i' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 71f8afab9a chore: Adjust comment for eslint
This was confusing its fallthrough detection:

/puter/packages/phoenix/src/puter-shell/coreutils/date.js
  132:21  error  Expected a 'break' statement before 'case'  no-fallthrough
2024-05-02 11:21:50 +01:00
Sam Atkins 6ad8f5e06a fix: Parse octal echo escapes
Found by this eslint issue:

/puter/packages/phoenix/src/puter-shell/coreutils/coreutil_lib/echo_escapes.js
  107:59  error  'hexchars' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 50d75cd2f9 refactor: Make loop condition non-constant
Resolves this eslint issue:

/puter/packages/phoenix/src/ansi-shell/readline/readline.js
  154:33  error  Unexpected constant condition  no-constant-condition
2024-05-02 11:21:50 +01:00
Sam Atkins 6d895dff42 chore: Remove empty block statement
Resolves this eslint issue:

/puter/packages/phoenix/src/ansi-shell/parsing/PuterShellParser.js
  25:9  error  Empty block statement  no-empty
2024-05-02 11:21:50 +01:00
Sam Atkins d4c2b492ef fix: Correct inverted instanceof check in SignalReader.read()
Also make tmp_value non-const because it gets modified later.

Solves these eslint issues:

/puter/packages/phoenix/src/ansi-shell/ioutil/SignalReader.js
  45:14  error  Unexpected negating the left operand of 'instanceof' operator  no-unsafe-negation
  46:13  error  'tmp_value' is constant                                        no-const-assign
2024-05-02 11:21:50 +01:00
Sam Atkins 64c886bfeb chore: Clarify setter to not return a value
Solves this eslint issue:

/puter/packages/phoenix/src/ansi-shell/ANSIShell.js
  86:23  error  Setter cannot return a value  no-setter-return
2024-05-02 11:21:50 +01:00
Sam Atkins 2094e05a2e chore: Comment out unreachable code in ExpectationService
The `return` looks temporary but I don't know this code well enough.

Solves this eslint issue:

/puter/packages/backend/src/services/runtime-analysis/ExpectationService.js
  94:9  error  Unreachable code  no-unreachable
2024-05-02 11:21:50 +01:00
Sam Atkins 0df0de6507 chore: Define def() and defv() using const
Fixes these eslint issues:

/puter/packages/backend/src/services/auth/TokenService.js
   3:1   error  'def' is not defined   no-undef
  18:1   error  'defv' is not defined  no-undef
  61:11  error  'def' is not defined   no-undef
  69:21  error  'defv' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 01ab6b88ea chore: Remove unused uses of uuid_user in save_account.js
The variable doesn't exist, and we never use it after this. Seems like a
copy-paste error.

Solves these eslint errors:

/puter/packages/backend/src/routers/save_account.js
  90:9   error  'uuid_user' is not defined  no-undef
  91:9   error  'uuid_user' is not defined  no-undef
  91:21  error  'uuid_user' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 9b3dd6b753 chore: Fix eslint issues in backend util
/puter/packages/backend/src/util/stdioutil.js
  26:24  error  Unexpected control character(s) in regular expression: \x1b  no-control-regex

/puter/packages/backend/src/util/streamutil.js
  368:1  error  'string_to_stream' is not defined  no-undef
  463:5  error  'string_to_stream' is not defined  no-undef

/puter/packages/backend/src/util/strutil.js
  42:1  error  'format_as_usd' is not defined  no-undef
  56:5  error  'format_as_usd' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 60523dc7a7 chore: Fix some eslint issues in services
/puter/packages/backend/src/services/ContextInitService.js
  57:18  error  'async_factory' is not defined  no-undef

/puter/packages/backend/src/services/StorageService.js
  22:5  error  Expected to call 'super()'  constructor-super

/puter/packages/backend/src/services/WebServerService.js
  258:35  error  'services' is not defined  no-undef

/puter/packages/backend/src/services/auth/AuthService.js
  52:13  error  Unreachable code  no-unreachable

/puter/packages/backend/src/services/drivers/implementations/BaseImplementation.js
   64:25  error  'services' is not defined  no-undef
   75:39  error  'services' is not defined  no-undef
  117:39  error  'services' is not defined  no-undef
  123:42  error  'services' is not defined  no-undef
  149:42  error  'services' is not defined  no-undef
  168:38  error  'services' is not defined  no-undef

/puter/packages/backend/src/services/drivers/implementations/PuterDriverProxy.js
  43:5  error  Expected to call 'super()'              constructor-super
  44:9  error  'this' is not allowed before 'super()'  no-this-before-super

/puter/packages/backend/src/services/drivers/meta/Construct.js
  125:9  error  Unreachable code  no-unreachable

/puter/packages/backend/src/services/runtime-analysis/PagerService.js
  49:41  error  'util' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins ca3f9a823d chore: Fix some eslint issues in routers
/puter/packages/backend/src/routers/open_item.js
  48:10  error  Unexpected negating the left operand of 'instanceof' operator  no-unsafe-negation

/puter/packages/backend/src/routers/save_account.js
  106:34  error  'get_user' is not defined   no-undef

/puter/packages/backend/src/routers/sign.js
  37:10  error  Unexpected negating the left operand of 'instanceof' operator  no-unsafe-negation
2024-05-02 11:21:50 +01:00
Sam Atkins 0c0846eef9 chore: Fix some backend router eslint issues
/puter/packages/backend/src/routers/auth/list-permissions.js
  36:15  error  'APIError' is not defined  no-undef

/puter/packages/backend/src/routers/auth/list-sessions.js
  17:15  error  'APIError' is not defined  no-undef

/puter/packages/backend/src/routers/auth/revoke-user-app.js
  34:15  error  'APIError' is not defined  no-undef
  43:15  error  'APIError' is not defined  no-undef

/puter/packages/backend/src/routers/delete-site.js
  43:11  error  Unexpected empty object pattern  no-empty-pattern

/puter/packages/backend/src/routers/drivers/usage.js
  146:11  error  'k' is not defined  no-undef
  147:21  error  'k' is not defined  no-undef
  147:52  error  'k' is not defined  no-undef

/puter/packages/backend/src/routers/drivers/xd.js
  68:5  error  'window' is not defined  no-undef
  69:21  error  Parsing error: The keyword 'interface' is reserved

/puter/packages/backend/src/routers/filesystem_api/batch/all.js
   51:21  error  'get_app' is not defined       no-undef
  224:13  error  Unexpected constant condition  no-constant-condition

/puter/packages/backend/src/routers/filesystem_api/copy.js
   70:10  error  Unexpected constant condition  no-constant-condition
  106:13  error  Duplicate key 'new_name'       no-dupe-keys

/puter/packages/backend/src/routers/filesystem_api/read.js
  80:5  error  Unreachable code  no-unreachable

/puter/packages/backend/src/routers/filesystem_api/token-read.js
   53:9  error  Unreachable code  no-unreachable
   58:9  error  Unreachable code  no-unreachable
  104:5  error  Unreachable code  no-unreachable

/puter/packages/backend/src/routers/hosting/puter-site.js
  65:21  error  Unexpected constant nullishness on the left-hand side of a `??` expression  no-constant-binary-expression
2024-05-02 11:21:50 +01:00
Sam Atkins b4af28a91b chore: Miscellaneous eslint fixes
/puter/packages/backend/src/om/entitystorage/ValidationES.js
  89:25  error  Do not assign to the exception parameter  no-ex-assign

/puter/packages/backend/src/om/proptypes/__all__.js
  166:17  warning  Unexpected 'debugger' statement  no-debugger

/puter/packages/backend/src/routers/_default.js
  405:31  error  'err' is not defined  no-undef
2024-05-02 11:21:50 +01:00
Sam Atkins 4879ee93bf chore: Fix eslint errors in backend/src/helpers.js
/puter/packages/backend/src/helpers.js
   682:9   error  'sharing_users' is not defined     no-undef
   689:12  error  'sharing_users' is not defined     no-undef
   690:28  error  'sharing_users' is not defined     no-undef
   695:28  error  'sharing_users' is not defined     no-undef
   720:9   error  'shared_fsentries' is not defined  no-undef
   733:12  error  'shared_fsentries' is not defined  no-undef
   734:28  error  'shared_fsentries' is not defined  no-undef
   735:17  error  'shared_fsentries' is not defined  no-undef
   735:58  error  'shared_fsentries' is not defined  no-undef
   736:31  error  'shared_fsentries' is not defined  no-undef
   900:57  error  'e' is not defined                 no-undef
  1849:18  error  Empty block statement              no-empty
2024-05-02 11:21:50 +01:00
Sam Atkins 8ab1cd0ca8 chore: Remove unused 'connective' source files 2024-05-02 11:21:50 +01:00
Sam Atkins 11f3e29604 chore: Disable eslint checks on puter-js tests
These currently work in a way that's different from what eslint expects,
so disable it. At some point it would be good if it could check them
(and if the tests could run on CI) but right now they just make a lot of
noise.
2024-05-02 11:21:50 +01:00
Sam Atkins 8cf6379de3 chore: Correct eslint errors in backend filesystem
Removes or disables the following eslint errors/warnings:

/puter/packages/backend/src/api/filesystem/FlagParam.js
  33:19  error  'APIError' is not defined  no-undef
  47:19  error  'APIError' is not defined  no-undef
  58:15  error  'APIError' is not defined  no-undef

/puter/packages/backend/src/api/filesystem/StringParam.js
  32:19  error  'APIError' is not defined  no-undef
  39:13  error  'APIError' is not defined  no-undef
  46:19  error  'APIError' is not defined  no-undef

/puter/packages/backend/src/filesystem/FilesystemService.js
  141:17  warning  Unexpected 'debugger' statement  no-debugger
  366:21  error    'services' is not defined        no-undef

/puter/packages/backend/src/filesystem/batch/BatchExecutor.js
  121:21  error  Do not assign to the exception parameter  no-ex-assign

/puter/packages/backend/src/filesystem/hl_operations/hl_data_read.js
  44:19  error  'APIError' is not defined     no-undef
  47:22  error  'chkperm' is not defined      no-undef
  48:19  error  'APIError' is not defined     no-undef
  51:29  error  'LLRead' is not defined       no-undef
  54:13  error  'version_id' is not defined   no-undef
  88:35  error  'PassThrough' is not defined  no-undef

/puter/packages/backend/src/filesystem/hl_operations/hl_mkdir.js
  68:49  error  'fs' is not defined  no-undef

/puter/packages/backend/src/filesystem/hl_operations/hl_move.js
  102:33  error  'get_user' is not defined  no-undef
  104:35  error  'get_user' is not defined  no-undef
  110:33  error  'df' is not defined        no-undef

/puter/packages/backend/src/filesystem/hl_operations/hl_read.js
  54:13  error  'stream' is constant  no-const-assign

/puter/packages/backend/src/filesystem/hl_operations/hl_stat.js
  40:37  error  'APIError' is not defined  no-undef

/puter/packages/backend/src/filesystem/lib/PuterPath.js
  67:5  error  Expected to return a value in getter 'hasRelativePortion'  getter-return

/puter/packages/backend/src/filesystem/ll_operations/ll_copy_idea.js
   53:21  error  'UploadProgressTracker' is not defined   no-undef
   73:17  error  'PuterS3StorageStrategy' is not defined  no-undef
  137:22  error  'LLFilesystemOperation' is not defined   no-undef

/puter/packages/backend/src/filesystem/ll_operations/ll_read.js
  102:65  error  'offset' is not defined  no-undef
  102:73  error  'offset' is not defined  no-undef
  102:80  error  'length' is not defined  no-undef

/puter/packages/backend/src/filesystem/ll_operations/ll_rmnode.js
  43:23  error  'APIError' is not defined  no-undef

/puter/packages/backend/src/filesystem/storage/SystemFSEntryService.js
  101:26  error  '_path' is not defined  no-undef

/puter/packages/backend/src/filesystem/validation.js
  27:29  error  Unexpected control character(s) in regular expression: \x00, \x1f  no-control-regex
  28:29  error  Unexpected control character(s) in regular expression: \x00, \x1f  no-control-regex
  28:31  error  Unnecessary escape character: \/                                   no-useless-escape
2024-05-02 11:21:50 +01:00
Sam Atkins 4a426ce045 chore: Remove duplicate translation keys 2024-05-02 11:21:50 +01:00
Sam Atkins 25b35769c5 chore: Set-up eslint
eslint is a static analysis tool that tries to identify bugs and
mistakes in the code. We have quite a variety of code in this repo so
the config is a little complicated, but I've tried to make it clear.
It's found a *lot* of issues (over 1700), and while many of which will
not be actual problems, (it doesn't like us using window properties
without `window.`,) but some definitely are.
2024-05-02 11:21:50 +01:00
Nariman Jelveh 4b0c474537 Merge pull request #363 from AtkinsSJ/document-selfhost-limitations
docs: Explain self-host differences
2024-05-01 11:09:37 -07:00
Sam Atkins a74b8e32fa docs: Explain self-host differences 2024-04-30 16:29:57 +01:00
Sam Atkins 251368e749 docs: Link to sections in README 2024-04-30 16:29:47 +01:00
Nariman Jelveh 0b1f963f0b Add fun HN badges! 2024-04-30 00:01:36 -07:00
Nariman Jelveh 4ea54823b0 Merge pull request #360 from Bashamega/bashamega-patch
Fixes the scroll bar
2024-04-29 22:20:33 -07:00
Bashamega c6ffa6e9e1 fix 2024-04-30 06:48:11 +03:00
KernelDeimos 8e6ee9ea79 Fix oversight in token compression 2024-04-29 22:48:10 -04:00
KernelDeimos e7e7363fa7 Drop useless header 2024-04-29 22:34:19 -04:00
KernelDeimos 5a76bad28d fix: reduce token lengths 2024-04-29 21:46:02 -04:00
KernelDeimos c1e4eeec32 Add TokenService and test utility 2024-04-29 21:11:31 -04:00
KernelDeimos d2de46edfb fix: increase QR code size 2024-04-29 19:48:01 -04:00
KernelDeimos 04432df554 feat: improve password recovery experience 2024-04-29 19:26:29 -04:00
KernelDeimos c44028f413 refactor: normalize email calls 2024-04-29 17:34:24 -04:00
Nariman Jelveh 8cad610a54 more sanitization, just in case 2024-04-29 14:09:54 -07:00
Nariman Jelveh f807a28e95 bugfix 2024-04-29 12:05:41 -07:00
KernelDeimos 4c1d5a4b6d fix: fix error handling for outdated node versions 2024-04-29 02:42:04 -04:00
Nariman Jelveh ecfbc44a20 safely escape settings strings 2024-04-28 16:02:54 -07:00
Nariman Jelveh 63c81d6fff Update UITabAccount.js 2024-04-27 19:29:44 -07:00
Nariman Jelveh 42d85abfc2 Update WebServerService.js 2024-04-27 19:10:10 -07:00
Nariman Jelveh fd4e2f59dc Update WebServerService.js 2024-04-27 19:03:48 -07:00
Nariman Jelveh 053728a03f Validate the Host header before responding to requests 2024-04-27 18:52:01 -07:00
Nariman Jelveh 92f6c8003b Merge pull request #352 from enweazudaniel/main
Language: Add Igbo translations
2024-04-27 14:49:28 -07:00
Nariman Jelveh 826afd7653 change en to ig for object name 2024-04-27 14:38:18 -07:00
enweazudaniel 0df9519f76 Language: Add Igbo 2024-04-27 12:06:29 +01:00
enweazudaniel d5d0f67797 Language: Add (Igbo) ig.js 2024-04-27 12:03:18 +01:00
Nariman Jelveh 219cc94fbf Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-04-26 19:13:34 -07:00
Nariman Jelveh bfa6419070 Update helpers.js 2024-04-26 19:13:22 -07:00
KernelDeimos d7d6ff0cca Rate limit updates 2024-04-26 21:02:01 -04:00
KernelDeimos 79d6f64451 Notify old email when email change is initiated 2024-04-26 21:02:01 -04:00
Nariman Jelveh fd59a6c994 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-04-26 15:36:22 -07:00
Nariman Jelveh cb4776cc0e do not append question mark to app URL if there is no query params to append 2024-04-26 15:36:15 -07:00
Eric Dubé 2ee00ca8e6 Revert "fix(security): Prevent email enumeration" (#351) 2024-04-26 18:22:14 -04:00
Nariman Jelveh a3ec7bb5ad Fix the issue with context submenu not closing parent menu when clicked 2024-04-25 23:14:39 -07:00
Nariman Jelveh faa72fd97c Update UIWindow.js 2024-04-25 23:10:03 -07:00
Nariman Jelveh 378b87459a Add robust hostname comparison for when declaring an environment as GUI 2024-04-25 17:51:20 -07:00
KernelDeimos 30f17ade3a fix: use primary read in signup 2024-04-25 19:46:39 -04:00
KernelDeimos ecec8bf75d Use pread for signup page 2024-04-25 19:44:06 -04:00
KernelDeimos 736ebb6f28 Improve server health service 2024-04-25 19:39:18 -04:00
Nariman Jelveh 928dd90f61 Merge pull request #346 from youngsiiimba/main
fix(security): Prevent email enumeration
2024-04-25 14:59:56 -07:00
KernelDeimos eb166a67a9 fix(security): Fix session revocation 2024-04-25 16:19:46 -04:00
Nariman Jelveh 51a6d1ea1d Allow the <p> tag in UIAlert body 2024-04-25 13:19:03 -07:00
Nariman Jelveh 3cce0e88df Revert "Allow the <p> tag in UIAlert body"
This reverts commit e2dcc813ec.
2024-04-25 13:18:37 -07:00
Nariman Jelveh e2dcc813ec Allow the <p> tag in UIAlert body 2024-04-25 13:18:28 -07:00
Nariman Jelveh a572a0a640 Merge pull request #341 from Xiayucheng1212/pass_locale
Pass locale to the iframe url whenever accessing an app
2024-04-25 13:14:16 -07:00
Nariman Jelveh c4b2d9861f Clean up some of the unnecessary console warnings 2024-04-25 13:11:11 -07:00
Simba Chawanda ed70314686 fix(security): Prevent email enumeration 2024-04-25 09:27:37 +02:00
Nariman Jelveh f5f35f2c37 Phase out openItem in IPC
also fix the issue with directories being opened with notepad after setting notepad as default app for files without extensions.
2024-04-24 23:12:57 -07:00
KernelDeimos ccf1afc93c feat(security): add ip rate limiting 2024-04-24 22:35:40 -04:00
KernelDeimos 7800ef6102 fix(security): skip cache when checking old passwd 2024-04-24 22:28:27 -04:00
Nariman Jelveh 25eea41f60 Keep track of app_instance_ids 2024-04-24 17:57:30 -07:00
Nariman Jelveh c21c16026b Update ko.js 2024-04-24 14:43:07 -07:00
KernelDeimos 74e9270d58 Fix 2024-04-24 16:16:31 -04:00
KernelDeimos b2e72adba9 Add ratelimit for /confirm-email 2024-04-24 16:12:09 -04:00
KernelDeimos 1eac147918 Add ratelimit for /contactUs 2024-04-24 16:09:04 -04:00
スーチ・ファトマワティ 3f6f4bb4c0 fix(security): update follow-redirects
When using axios, its dependency follow-redirects only clears authorization header during cross-domain redirect, but allows the proxy-authentication header which contains credentials too.

## Steps To Reproduce & PoC
```js
const axios = require('axios');

axios.get('http://127.0.0.1:10081/', {
 headers: {
 'AuThorization': 'Rear Test',
 'ProXy-AuthoriZation': 'Rear Test',
 'coOkie': 't=1'
 }
})
 .then((response) => {
 console.log(response);
 })
```
When I meet the cross-domain redirect, the sensitive headers like authorization and cookie are cleared, but proxy-authentication header is kept.

```diff
- removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);
+ removeMatchingHeaders(/^(?:authorization|proxy-authorization|cookie)$/i, this._options.headers);
```
CWE-200
`CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N`
CVE-2024-28849
2024-04-24 15:23:47 -04:00
Sam Atkins a8d1d3b87a docs: Add help text to dcall utility (#335) 2024-04-24 15:21:31 -04:00
Nariman Jelveh fb3dfc5672 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-04-24 12:06:16 -07:00
Nariman Jelveh cdd0231a76 translation fix 2024-04-24 12:06:05 -07:00
Eric Dubé e9e43c059a Merge pull request #342 from brhahlen/docker-ci-improvements
Update Docker CI
2024-04-24 15:04:29 -04:00
Nariman Jelveh 548e975cac remove unused imports, sanitization, and validation of input 2024-04-24 10:05:53 -07:00
Sam Atkins cf0eee1fa3 feat: Add command names to phoenix tab-completion
Gives CommandProviders a `complete(query, {ctx})` method where they can provide completed command names, and then make use of this in CommandCompleter.

Supported CommandProvider sources:
- Shell built-ins (was supported previously)
- PATH executables (when running under Node)
- Puter app names (when running in Puter)

Script filenames are not yet supported.
2024-04-24 15:08:54 +01:00
Sam Atkins dc5b010d09 feat: Allow querying puter-apps driver by partial app names 2024-04-24 15:08:54 +01:00
Sam Atkins a854a0dc0a feat: Implement 'Like' predicate in entity storage
This acts like the SQL 'LIKE' keyword, allowing partial string matches.
2024-04-24 15:08:54 +01:00
Sam Atkins d733119456 fix: Make PathCommandProvider reject queries with path separators
`../bin/foo` should only find `foo` relative to the current working
directory, not to directories in PATH.

Also switch to using the Node path library since PathCommandProvider is
Node-only, and this means getting the correct path separator and
delimiter values on Windows.
2024-04-24 11:45:21 +01:00
Sam Atkins 670673ab8d Rename FooCompleter js files to match FooCommandProvider file names 2024-04-24 11:19:25 +01:00
Ben Hählen 028b37b9d4 Update Docker CI 2024-04-24 11:29:44 +02:00
Xiayucheng1212 916e1bb95c Add local to url 2024-04-24 16:40:42 +08:00
Nariman Jelveh c9e8207e4b Clean up the console warninf message 2024-04-23 23:53:15 -07:00
Nariman Jelveh aef6df048c allow the <strong> tag in UIAlert 2024-04-23 23:06:04 -07:00
Nariman Jelveh f8b2b18185 Update en.js 2024-04-23 22:49:16 -07:00
Nariman Jelveh ce411ed728 Perform more advanced input and string sanitization and validation for performance and security 2024-04-23 22:46:33 -07:00
Nariman Jelveh 9859a32e15 Deprecate and remove UIWindowConfirmDownload 2024-04-23 16:35:28 -07:00
Nariman Jelveh 3be7af8fb8 Merge branch 'main' of https://github.com/HeyPuter/puter into main 2024-04-23 16:26:07 -07:00
Nariman Jelveh 5538649125 Update UIAlert.js 2024-04-23 16:25:57 -07:00
Eric Dubé 97ee951b1f Merge pull request #339 from HeyPuter/eric/rate-limits
Add ip rate limiting to some endpoints
2024-04-23 19:24:17 -04:00
KernelDeimos 44aac16991 Add ip rate limiting 2024-04-23 19:13:37 -04:00
Nariman Jelveh ab5fee1562 deprecate UIWindowGetCopyLink as it's not supported by the backend 2024-04-23 15:43:55 -07:00
KernelDeimos 65a73b5b45 Rename workspace modules to avoid confusion 2024-04-23 04:06:15 -04:00
KernelDeimos 74e213a534 fix(security): always use application/octet-stream 2024-04-22 23:54:03 -04:00
KernelDeimos f9d561d40b docs: document purpose of scary-looking token 2024-04-22 23:48:45 -04:00
Nariman Jelveh 5066128c72 Merge pull request #329 from Eric-Lighthall/desktop-bg-revert
feat: add option to change desktop background to default
2024-04-22 20:26:39 -07:00
Eric Dubé a2de5e3da2 Merge pull request #328 from HeyPuter/release-please--branches--main--components--puter.com
chore(main): release 2.2.0
2024-04-22 22:05:35 -04:00
github-actions[bot] 458f2eae4c chore(main): release 2.2.0 2024-04-23 02:03:34 +00:00
KernelDeimos c166560ff4 feat: add /healthcheck endpoint 2024-04-22 22:02:40 -04:00
Eric Lighthall 03f05f316f feat: add option to change desktop background to default
users can now select 'default' as their desktop background
2024-04-22 18:26:15 -07:00
Eric DubéandNariman Jelveh 331d9e7542 feat: allow apps to add a menubar via puter.js
* Begin work on menubar and dropdowns

* Improve menubar

* Fix pointer event behavior

* Fix labels

* Fix active button

* Eliminate flicker

* Update _default.js

---------

Co-authored-by: Nariman Jelveh <[email protected]>
2024-04-22 20:38:16 -04:00
lsileoni f1dedf5a74 Proper order for moving the compressed file into the static directory 2024-04-11 21:39:07 +03:00
lsileoni 2ebda29f02 Don't bind manager to window for now 2024-04-11 21:38:36 +03:00
lsileoni fa841582a9 Added temporary package.json, so node doens't refer to the repo root package.json 2024-04-11 20:54:21 +03:00
lsileoni 2b28388fa7 Changes to module imports for parity between the browser and node, fixed browser and node examples 2024-04-11 20:53:48 +03:00
lsileoni a6b7ec5c66 Clean up index.html usage example 2024-04-11 20:52:47 +03:00
lsileoni 902a242f6b Rebuilding logic and zstd compression for v86starter 2024-04-11 19:15:58 +03:00
lsileoni d6a327ea86 Changed vm build target directory to /tmp because of package.json issue 2024-04-11 15:51:50 +03:00
lsileoni 21ef0598f9 Also ignore wasm blobs 2024-04-11 15:49:46 +03:00
lsileoni 2405ee90e9 Ignore generated .bin files 2024-04-11 15:48:31 +03:00
lsileoni 4815eb10a9 Don't bind to all interfaces by default in web server 2024-04-11 12:41:17 +03:00
lsileoni d13efbbe23 Changed vm dir to make_container in starter script 2024-04-11 12:25:21 +03:00
Luis 9b1fbea7e1 Merge branch 'HeyPuter:main' into main 2024-04-11 12:23:16 +03:00
lsileoni 4054e822ed Barebones x86emu skeleton 2024-04-02 18:25:21 +03:00
1732 changed files with 124218 additions and 30670 deletions

No files matched your search

+1 -1
View File
@@ -1 +1 @@
PORT=4000
PORT=4000
+1
View File
@@ -0,0 +1 @@
github: ['HeyPuter']
+11
View File
@@ -0,0 +1,11 @@
---
name: App idea
about: Suggest a potential app for Puter
title: ''
labels:
- app-request
assignees: ''
---
-25
View File
@@ -1,25 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Issue Description**
**Steps to Reproduce**
**Expected & Actual Behavior**
**Addition Information or Screenshots (if applicable)**
**Deployment**
- [ ] Production (puter.com)
- [ ] Development (`npm run start`)
- [ ] Docker (via `docker run`)
- [ ] Docker (via `docker-compose`)
**Puter version (if accessible)**
> Click the profile button on the top-right, then "Settings". The version number will be printed at the bottom
+60
View File
@@ -0,0 +1,60 @@
name: Bug Report
description: Create a report to help us improve
title: "Bug: "
labels: ["bug"]
body:
- type: markdown
attributes:
value: Please fill this form to report the bug you encoutered on Puter
- type: textarea
id: description
attributes:
label: Issue Description
description: Type a description of what the bug does
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce
description: Type how we may reproduce the bug
placeholder: Open the menu, click that button...
validations:
required: false
- type: textarea
id: expected-behaviour
attributes:
label: Expected behaviour
description: Tell us what you would expect to happen if the bug wasn't there
placeholder: Its supposed to...
validations:
required: false
- type: textarea
id: additional-info
attributes:
label: Addition Information or Screenshots (if applicable)
description: You can add any additional informations, such as screenshots of the bug
placeholder: You can add a screenshot by clicking the image icon in the text zone
validations:
required: false
- type: checkboxes
id: deployment
attributes:
label: Deployment
description: Select on which deployment(s) you encountered the bug
options:
- label: Production (puter.com)
- label: Development (`npm run start`)
- label: Docker (via `docker run`)
- label: Docker (via `docker-compose`)
validations:
required: true
- type: input
id: version
attributes:
label: Puter version
description: Type the version of Puter you were using when you encountered the bug. This is not required. If you can't access the version, then continue without adding the version number.
placeholder: Click the profile button on the top-right, then "Settings". The version number will be printed at the bottom
validations:
required: false
+5
View File
@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Puter Discord
url: https://discord.gg/PQcx7Teh8u
about: Chat on Puter's Discord, find help, share your apps, etc...
-10
View File
@@ -1,10 +0,0 @@
---
name: Driver Request
about: Request a driver on Puter
title: ''
labels: ''
assignees: ''
---
> Drivers are services that apps on Puter can use. For example, drivers support many of the features in the [Puter SDK](https://docs.puter.com/). If you're not sure if what you're suggesting is a driver, you should use the "Feature Request" template instead.
+11
View File
@@ -0,0 +1,11 @@
---
name: Meta suggestion
about: Suggest an idea for the community and ecosystem around Puter including the metadata files
title: ''
labels:
- idea
- meta
assignees: 'jelveh'
---
-31
View File
@@ -1,31 +0,0 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
name: Node.js CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x, 18.x, 20.x, 21.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run build --if-present
- run: npm test
-28
View File
@@ -1,28 +0,0 @@
# This workflow runs the tools/check-translations.js script to make sure that the translation data is valid.
name: Check Translations
env:
NODE_VERSION: 21.x
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
cache-dependency-path: ./package-lock.json
- run: npm ci
- run: npm run check-translations
+12 -14
View File
@@ -5,8 +5,10 @@ name: Docker Image CI
# branch called `main`.
on:
push:
branches: ['release']
tags:
- '*.*.*'
branches:
- 'main'
# Defines two custom environment variables for the workflow. These are used
# for the Container registry domain, and a name for the Docker image that
@@ -40,12 +42,12 @@ jobs:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
# This step uses [docker/metadata-action](https://github.com/docker/metadata-action#about)
# to extract tags and labels that will be applied to the specified image.
@@ -56,16 +58,10 @@ jobs:
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
images: "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}"
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}},enable=${{ !startsWith(github.ref, 'refs/tags/v0.') }}
type=sha
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }}
type=ref,event=branch
# This step uses the `docker/build-push-action` action to build the
# image, based on your repository's `Dockerfile`. If the build succeeds,
@@ -81,6 +77,8 @@ jobs:
with:
platforms: linux/amd64,linux/arm64
context: .
push: true
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
+28
View File
@@ -0,0 +1,28 @@
name: test
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Build
run: |
npm install
npm run test
+21 -1
View File
@@ -1,12 +1,32 @@
# Misc
.DS_Store
# Dependencies
node_modules/
*.zip
*.tgz
license.config.json
license-header.txt
# Build Outputs
dist/
.vscode/
# VS Code IDE
.vscode/**/*
!.vscode/extensions.json
!.vscode/launch.json
!.vscode/settings.json
!.vscode/tasks.json
# Local env files
.env
!.env.example
# this is for jetbrain IDEs
.idea/
/puter
# Local Netlify folder
.netlify
src/emulator/release/
+12
View File
@@ -0,0 +1,12 @@
[submodule "submodules/v86"]
path = submodules/v86
url = [email protected]:HeyPuter/v86.git
[submodule "submodules/twisp"]
path = submodules/twisp
url = [email protected]:MercuryWorkshop/twisp.git
[submodule "submodules/epoxy-tls"]
path = submodules/epoxy-tls
url = [email protected]:MercuryWorkshop/epoxy-tls.git
[submodule "submodules/wiki"]
path = submodules/wiki
url = https://github.com/HeyPuter/puter.wiki.git
+718
View File
@@ -1,5 +1,723 @@
# Changelog
## v2.5.1 (2025-02-13)
### Puter
#### Bug Fixes
- phoenix changelog ([0bcbc8f](https://github.com/HeyPuter/puter/commit/0bcbc8f7845de99305f53c6da2bb1f365b87ac50))
- update package.json ([c2c5d88](https://github.com/HeyPuter/puter/commit/c2c5d883365ae33749709d11e0c2de9050ca144e))
- oops, no export (putility.libs.event) ([fa4b38c](https://github.com/HeyPuter/puter/commit/fa4b38cd028be4b19ec98bcf588227e0fc92af9d))
- broken test in putility ([a803d55](https://github.com/HeyPuter/puter/commit/a803d55cfbdd5b15e7fe48df3f4363c1658f0930))
- parse body before auth for /down ([70fde95](https://github.com/HeyPuter/puter/commit/70fde95255532a7fe0d99c64a4efb1ae625776a4))
- fix previous fix ([e5c3769](https://github.com/HeyPuter/puter/commit/e5c3769bd813b1510dd0429e1e4eca8e277af7c7))
- potential fix for /down auth ([390230c](https://github.com/HeyPuter/puter/commit/390230c5a07b1774f84a1b3505f7531ce81dc2cc))
- allow command provider to not implement complete method ([2000b89](https://github.com/HeyPuter/puter/commit/2000b8909f08d91147b86fce22fe006e0c3152d2))
- unfixed fix from earlier ([e6fc773](https://github.com/HeyPuter/puter/commit/e6fc7737066d09509f0c7b38e4c51f25e86e12d0))
- parser error for empty json buffer ([484bb5c](https://github.com/HeyPuter/puter/commit/484bb5c201e17bf45e1a1d97b1e9b2d61d6087dc))
- fix name and id for openai tool calls ([d2358d2](https://github.com/HeyPuter/puter/commit/d2358d234b45d719a2cc4e92582ed89d2d1832ab))
- let messages with tool_calls have content=null ([29c0241](https://github.com/HeyPuter/puter/commit/29c024111943267b741b1b4a8933e1ea1a35a65e))
- repair stream end ([8f27742](https://github.com/HeyPuter/puter/commit/8f277420380e9c6fa8a9925a3e9651f48b8734e6))
- add type=text ([e2797c3](https://github.com/HeyPuter/puter/commit/e2797c38d0754930033780d5270cc64cbba2c94e))
- various issues with Mail module ([55d052c](https://github.com/HeyPuter/puter/commit/55d052cfc2549bfdf72f3a8b27cdc7dc4294bc54))
- buffer incomplete JSON objects from AI stream ([60eef2f](https://github.com/HeyPuter/puter/commit/60eef2fc6734f88df06e2f85db9b9368cc8c227f))
- mistake in 0c42613 ([8ffd000](https://github.com/HeyPuter/puter/commit/8ffd0004b3b7b34cd6a9c43c6ca960c7a1cbbe15))
- fix microcents to USD conversion in AIChatService ([dcd47bc](https://github.com/HeyPuter/puter/commit/dcd47bc4cfc5f8a67ea86e0485d08c2417f899ed))
- claude duplicate messages in stream ([0fac03a](https://github.com/HeyPuter/puter/commit/0fac03a05a4f597f7ed531651c830e44012b646b))
- skip request-count usage check via AIChatService ([6083e3a](https://github.com/HeyPuter/puter/commit/6083e3ac52fcde7f598c838bc49085e6b3de7162))
- remove log from InternetModule ([c7f3e0b](https://github.com/HeyPuter/puter/commit/c7f3e0b937f5d72d6f30dba25d7c351e2e14f289))
- small workaround for duplicate close ([06452f5](https://github.com/HeyPuter/puter/commit/06452f5283085b18266ee7fb89136b9c23879243))
- race condition and buffer issue in puter.http ([36dc966](https://github.com/HeyPuter/puter/commit/36dc9664ad5520b21c07a1b5c85c8aff7cbe423b))
- missing some buffer contents in no-keepalive ([3f5b34c](https://github.com/HeyPuter/puter/commit/3f5b34cd341b9063d01baba72e708a9ebb16485b))
- new edge cases with function calls / tools ([9cbb741](https://github.com/HeyPuter/puter/commit/9cbb741a8ae8ea6b869b6ccf64cd3152b28c2b8c))
- oops, we're passing negative values; let's just remove this ([cf7aa27](https://github.com/HeyPuter/puter/commit/cf7aa27543700d6268ee709f127e73f7cfe12a5a))
- oops we still need that ([61824ea](https://github.com/HeyPuter/puter/commit/61824ea04b0cb7611d2acdf45e0a1ecc2856901a))
- remove hard-coded token limit for OpenAI ([8143e57](https://github.com/HeyPuter/puter/commit/8143e5700f53279a5a18d21b7c5466f3b9bb6ce6))
- wisp relay authentication ([6f39365](https://github.com/HeyPuter/puter/commit/6f39365b24cda53a6cac7e203b9d8cbc09bb0ba3))
- reduce code paths for querystrings ([e8f5450](https://github.com/HeyPuter/puter/commit/e8f5450cb05213c3c06802442103f5c414eee5cc))
- icons ([d03952b](https://github.com/HeyPuter/puter/commit/d03952b23712ae8a61c7f2c7582d297691e0ecc1))
- subdomains to deleted files tried to deref fs node ([38ccc82](https://github.com/HeyPuter/puter/commit/38ccc82c8e95636ee4b7c5ca2f761098f12affa2))
- app icon empty string should be skipped ([37ca892](https://github.com/HeyPuter/puter/commit/37ca89228cc2f978602098ee4aae1ecb3d333526))
- save_account case for disable_user_signup ([766c235](https://github.com/HeyPuter/puter/commit/766c235cc738051588a67ff5ab4230e76b64173c))
- use .get() for Map lookup. fix: correctly set url and url_paths. fix: null check to throw error. ([78ac033](https://github.com/HeyPuter/puter/commit/78ac033a1ca4f51b71c2bcb185b305903f7be495))
- ensure puter.signup emit resolves ([113ed31](https://github.com/HeyPuter/puter/commit/113ed31336c494a3f7a9e744a34de35b3785c033))
- --onlycase param broke cartesian tests ([d9822a4](https://github.com/HeyPuter/puter/commit/d9822a4f09e3e0c5fbed8c655435f534af949290))
- empty response when mkdir is a no-op ([f359ae1](https://github.com/HeyPuter/puter/commit/f359ae193e87552b3a2e2aafa3fda389478fca38))
- mkdir with create_missing when some parents exist ([807c3ba](https://github.com/HeyPuter/puter/commit/807c3ba5eca02f69b5e6ce547420312b68c7993f))
- possible out-or-order response objects from batch ([fb70251](https://github.com/HeyPuter/puter/commit/fb7025164e3f42cae1365ec65960019b24f4360d))
- app data check error in write ([5ef75e5](https://github.com/HeyPuter/puter/commit/5ef75e5df35ae95242da97235512495b7585bd0d))
- missing parent dirs created in move ([9d9d97f](https://github.com/HeyPuter/puter/commit/9d9d97fd0074058506b0506d5027b0c6b8a26845))
- missing changes to run-selfhosted.js ([6f4b1bf](https://github.com/HeyPuter/puter/commit/6f4b1bf94a031b3324f5ecd51557b1298a1c3175))
- appease mocha's import requirements ([d6bbba7](https://github.com/HeyPuter/puter/commit/d6bbba7bf064991d59fbfe74db5221e0118a781c))
- error msg for invalid puter-ocr urls ([6a6bfa0](https://github.com/HeyPuter/puter/commit/6a6bfa034fe16dba7172ab5adbf23f00df38301d))
- improper 500 in wisp token verify ([75aaaa6](https://github.com/HeyPuter/puter/commit/75aaaa66a8c7df00e1fb80c353d890269296839c))
- actor param in legacy /write ([7aa886d](https://github.com/HeyPuter/puter/commit/7aa886d573362e6739bd99bbed02f4831557ccb4))
- new desktop height calculation when resizing browser window ([a295420](https://github.com/HeyPuter/puter/commit/a295420f58326b04c976cf92bd2d582d2eafa71b))
- circular imports ([8fabf01](https://github.com/HeyPuter/puter/commit/8fabf014a9eb783183e87489ae2b6c6bbc42c99a))
- test and improve boolify ([44ad3c5](https://github.com/HeyPuter/puter/commit/44ad3c578106d2b01007240188db57760c15af96))
- skip test files in mod lib loading ([f60c008](https://github.com/HeyPuter/puter/commit/f60c008158127458e02e3bb92287617d9f1f9514))
- shortcut issue ([6d196d5](https://github.com/HeyPuter/puter/commit/6d196d59f026bec4acb0296d8f0f38c7cee2e8c2))
- test for get-launch-apps ([740fdb5](https://github.com/HeyPuter/puter/commit/740fdb592e494bf5b197493774cef6559bfb50b9))
- add package-lock.json ([3097b86](https://github.com/HeyPuter/puter/commit/3097b86597218de9e59b450b70185634a94be210))
- try redundant npm install after build stage ([8963eb0](https://github.com/HeyPuter/puter/commit/8963eb0c4f1220dd515ac6ed7a2a8f1de26655ae))
- I'ma buy GitHub a coffee and spill it on their servers if this works ([686d3de](https://github.com/HeyPuter/puter/commit/686d3de518e6e090d683294ad3dd856db26856a0))
- oh, right; there's two of them ([a13af7e](https://github.com/HeyPuter/puter/commit/a13af7e31aa4cd36457a90a7d75878b6d39ba73b))
## v2.5.0 (2025-01-07)
### Puter
#### Features
- hash-based distributed cache inval ([d386096](https://github.com/HeyPuter/puter/commit/d38609646793a5a14b8af96964fc7176725a0531))
- add Escape key functionality to UIPrompt for closing the prompt ([e1b6c83](https://github.com/HeyPuter/puter/commit/e1b6c83813d03809aba0abdecbf6de5529728031))
- set max token to 8096 ([b2ea8a3](https://github.com/HeyPuter/puter/commit/b2ea8a3888c5496858d257018071ba54abd6f4a8))
- added tagify in Filetype-Association input in dev center ([0cd1f15](https://github.com/HeyPuter/puter/commit/0cd1f151b5986ede431f1792139fa1a5471ae059))
- add reset edit changes button to dev-center ([55ffd80](https://github.com/HeyPuter/puter/commit/55ffd801e007723758eacc17ec732ee5a336123e))
- enable/disable save button in dev-center iff changes made ([63a0053](https://github.com/HeyPuter/puter/commit/63a0053da8c76bf4ac175c7f17353225443dd342))
- record signup metadata for abuse prevention ([66016b9](https://github.com/HeyPuter/puter/commit/66016b9db602ca85e8f0ddc846865d4641e64190))
- add support for categories in the Dev Center ([7cf215a](https://github.com/HeyPuter/puter/commit/7cf215ab677e3fc912a3bd1ac52795c1e8860c32))
- puter.js's showSpinner() will keep the spinner active for at least 1200ms ([fc5aca1](https://github.com/HeyPuter/puter/commit/fc5aca1f72de22c1530054272b55a59021ba9caa))
- allow developers to set social media images for their apps ([be36d31](https://github.com/HeyPuter/puter/commit/be36d31509280340e2a62a8c478b1e64617792a4))
- automatically open the browser when starting Puter ([2d43129](https://github.com/HeyPuter/puter/commit/2d4312972a1377a64732694811fe889f59573432))
- spinner for the `showWorking()` overlay in puter.js ([1062363](https://github.com/HeyPuter/puter/commit/1062363096418f164a6d00ed8872770ff64237b5))
- show profile pics in sharing notifications ([0e45132](https://github.com/HeyPuter/puter/commit/0e45132c05aa1106503fef02b7e4c97ecc675e10))
- Implement profile pictures ([0885937](https://github.com/HeyPuter/puter/commit/0885937f033caf35503eeb9e65bb390952992faf))
- allow `launchApp` to open explorer at a specific path ([8fefd4a](https://github.com/HeyPuter/puter/commit/8fefd4a61f0005d4f3ec2e43f7249f3edd91c837))
- Require email confirmation before sharing ([cdd1a8c](https://github.com/HeyPuter/puter/commit/cdd1a8c4e379b885ff48a874ae5577d2f0efae06))
- show unread notification count in the browser tab's title ([045259c](https://github.com/HeyPuter/puter/commit/045259cefbe24e3f52fe3840e4975d3243e99957))
- in Share window, display access level next to recipient ([cf4b6aa](https://github.com/HeyPuter/puter/commit/cf4b6aa1c24d936f9a42ca1e2945eea40939c970))
- when sharing, users can choose between 'viewer' and 'editor' for permissions ([0cbe013](https://github.com/HeyPuter/puter/commit/0cbe0139d7f306ce62992f1eda94d99e09b32df8))
- handle `notif.ack` in desktop ([a6650ee](https://github.com/HeyPuter/puter/commit/a6650ee2d8074aeb7c476e5572334853f1b6d7e8))
- add error handling to the share flow ([b5bb95e](https://github.com/HeyPuter/puter/commit/b5bb95e2d7f6021a6341e26cf15d5449ada48830))
- search ([55d2af1](https://github.com/HeyPuter/puter/commit/55d2af189e9479fb5980ce149ce74e890b325014))
- search endpoint ([b589512](https://github.com/HeyPuter/puter/commit/b589512c9dedec22fd41b92cbba2570042149873))
- the `socialLink` UI component ([1adfe5c](https://github.com/HeyPuter/puter/commit/1adfe5c70947d9de008c9d601f91b1ee14128d5d))
- Reaload App option in the window title bar context menu ([27c01c9](https://github.com/HeyPuter/puter/commit/27c01c9bd991ef871153eb5931f78fec265a62e4))
- add puter.auth.whoami() ([da0022a](https://github.com/HeyPuter/puter/commit/da0022abf0f880c7b52d2cd937ef9d1298fc09cc))
- add puter.log ([755736e](https://github.com/HeyPuter/puter/commit/755736edee9baa783be9b7d96083d908a2f2f750))
- collapsible sidebar menu in Dev Center ([1056231](https://github.com/HeyPuter/puter/commit/1056231004a629f3f76f2525ec7d83b67d3d7fa5))
- customize the order of Explorer sidebar items ([ff30de1](https://github.com/HeyPuter/puter/commit/ff30de1d6947e4692b5cf0da2e19ab37aacf1ec8))
- add extension API for modules ([14d45a2](https://github.com/HeyPuter/puter/commit/14d45a27edb99f63b4f6e010221e3a0880ae246d))
- first extension that implements a custom user options menu ([fc5e15f](https://github.com/HeyPuter/puter/commit/fc5e15f2a6d4eb5e5847fa7f2dd87b1fa382fc7c))
- add support for extensions ([b018571](https://github.com/HeyPuter/puter/commit/b018571a86f4114eab9b5edde4ecd87e343d22a7))
- add an 'Upload' button at the bottom of `OpenFilePicker` ([54ae69b](https://github.com/HeyPuter/puter/commit/54ae69b7b76016307c3b92437ca06dc2aa1eddb9))
- Allow apps to toggle `credentialless` via Dev Center ([af511c0](https://github.com/HeyPuter/puter/commit/af511c05e3ddddcce661c5406d5c831a21689608))
- add config for blocked email domains ([955b087](https://github.com/HeyPuter/puter/commit/955b087297f829b11b82dc9bd79a0e03721c5f33))
- add support for `fadeIn` effect for `UIWindow` ([13248a9](https://github.com/HeyPuter/puter/commit/13248a99bfa318e84cb99e2954a5f46805eda34f))
- welcome screen to quickly explain what Puter is ([564ff65](https://github.com/HeyPuter/puter/commit/564ff65363258cab4196b967dd556105e424d48c))
- v86 9p server support ([b145e30](https://github.com/HeyPuter/puter/commit/b145e30a90ff2f0d44d89f83dbda4de1bf2991d4))
- support readdir for directory symlinks ([7f1b870](https://github.com/HeyPuter/puter/commit/7f1b870d302421972c4f6221ae6d93b5979d51dd))
- allow passing cli args via url ([5317adf](https://github.com/HeyPuter/puter/commit/5317adf8a4961be3f0ca2a8c403c922633f934fa))
- add -c flag for phoenix ([b6c0cb6](https://github.com/HeyPuter/puter/commit/b6c0cb6abc1c29846b4b7e696812476bea24bbc7))
- progress indicator for emulator ([08601ae](https://github.com/HeyPuter/puter/commit/08601ae2af7b1f564690e6a9cae7e689cb7ba48a))
- translate README.md to Dutch ([31e2773](https://github.com/HeyPuter/puter/commit/31e2773743c336630c917e893b0148441f5fc515))
- add connectToInstance method to puter.ui ([62634b0](https://github.com/HeyPuter/puter/commit/62634b0afe4d33da08768975322d4deb23041442))
- add method to list models ([fd86934](https://github.com/HeyPuter/puter/commit/fd86934bc9021541810447cf7e2a5f33b3e283b3))
- add streaming to XHR driver client ([7600d9b](https://github.com/HeyPuter/puter/commit/7600d9b07c5b719d529f8a48c38d9178efefa266))
- add writable attribute to fs items ([2386d87](https://github.com/HeyPuter/puter/commit/2386d87229aa6205ef8ced6563371ab40a0def62))
- report feature flags in /whoami ([4561b89](https://github.com/HeyPuter/puter/commit/4561b8937de025471c2dfb1771465d779cefab5d))
- make public folders a config opt-in ([209555c](https://github.com/HeyPuter/puter/commit/209555c1d93845fa129bea450f9c25d595a3c60f))
- add feature flag for /share ([461ea3e](https://github.com/HeyPuter/puter/commit/461ea3eae6ad32bf34c43a822de7a06f08efb556))
- add message encryption between Puter peers ([cea2964](https://github.com/HeyPuter/puter/commit/cea29645fec493020a4f66e378b087fa17ae03d4))
- add test_mode flag ([9a9bd5e](https://github.com/HeyPuter/puter/commit/9a9bd5eaf0aca8fd1cc57455db03dba55801d5a0))
- add tts driver to puterai module ([78fa77d](https://github.com/HeyPuter/puter/commit/78fa77d9200e0b9fafc4014f8d0cb08c74cd16cb))
- add image generation driver to puterai module ([fb26fdb](https://github.com/HeyPuter/puter/commit/fb26fdbc561d5545d28352427553695cd3237ad5))
- add chat completions driver to puterai module ([4e3bd18](https://github.com/HeyPuter/puter/commit/4e3bd1831e92e83ce9b4e30a16afd562b0221dd8))
- add --overwrite-config and configurable uuid masking ([ef6671d](https://github.com/HeyPuter/puter/commit/ef6671da18f6841cb2143808fe21586ac3505942))
- add textract driver to puterai module ([f924d48](https://github.com/HeyPuter/puter/commit/f924d48b02f39884931db45a05dd61b65f2cee4a))
- add password reset from server console ([984ae9e](https://github.com/HeyPuter/puter/commit/984ae9e6a23da17414e43d58fc0e861827031269))
- add server command to scan permissions ([54471fa](https://github.com/HeyPuter/puter/commit/54471fada946a70eaa0df6bfceae995bc4e5848c))
- grant user driver perms from admin ([c9ded89](https://github.com/HeyPuter/puter/commit/c9ded89b22bb822c20aea379a17a8bdf74a658de))
- replace default_user with admin ([f0c36a1](https://github.com/HeyPuter/puter/commit/f0c36a1cdf16f11765c29360a5c38140008b90c7))
- add system user ([ab15629](https://github.com/HeyPuter/puter/commit/ab156297a746c0754145c2abdb2c99bb1b30651a))
- add options to disable winston and devwatch ([5d5f566](https://github.com/HeyPuter/puter/commit/5d5f5660b4020650b68b79ccf3860d3fb0bf98a9))
- add new file templates ([1f7f094](https://github.com/HeyPuter/puter/commit/1f7f094282fae915a2436701cfb756444cd3f781))
- add cross_origin_isolation option ([e539932](https://github.com/HeyPuter/puter/commit/e53993207077aecd2c01712519251993bb2562bc))
- add option to disable temporary users ([f9333b3](https://github.com/HeyPuter/puter/commit/f9333b3d1e05bd0dffaecd2e29afd08ea61559fc))
- add some default groups ([ba50d0f](https://github.com/HeyPuter/puter/commit/ba50d0f96d58075abec067d24e6532bd874093f0))
- Add support for dropping multiple Puter items onto Dev Center (close #311) ([8e7306c](https://github.com/HeyPuter/puter/commit/8e7306c23be01ee6c31cdb4c99f2fb1f71a2247f))
#### Translations
- complete Hungarian translation of Puter #972 ([7d2787d](https://github.com/HeyPuter/puter/commit/7d2787d26b3a64cbc128fb2cb3871b43b41912fe))
- add missing Igbo translations for billing-related terms ([f0f19e7](https://github.com/HeyPuter/puter/commit/f0f19e727e574a8558fcbbf27ba501f434db69f8))
- Complete the Vietnamese translation of Puter #954 ([56489c3](https://github.com/HeyPuter/puter/commit/56489c33f611fc053096b455e4cb7b3d8f20852c))
- Complete the French (Français) translation of Puter #975 ([c840bc8](https://github.com/HeyPuter/puter/commit/c840bc8161055b90e040bdae3196817e0791ecf5))
- Complete the German (Deutsch) translation of Puter ([05fef67](https://github.com/HeyPuter/puter/commit/05fef6749e8d80f13ab94a4e0ea49ce4972a0961))
- (#954) Add Vietnamese translations for billing-related terms ([267a55a](https://github.com/HeyPuter/puter/commit/267a55aae50f87edb483abb375029ff79e736112))
- add vietnamese translations for billing in vi.js ([3e26dbe](https://github.com/HeyPuter/puter/commit/3e26dbe6a0411fe75c36cf2866d34f28a2dcb553))
- added a few Korean translatations ([b23e800](https://github.com/HeyPuter/puter/commit/b23e800f4e70f162b52cc15053d03961a37033bb))
- add brazillian translations for billing-related terms in br.js (revision) ([fdfc90a](https://github.com/HeyPuter/puter/commit/fdfc90a9317a19d45a0b2b3ad283be9a10a92732))
- add brazillian translations for billing-related terms in br.js ([e66df14](https://github.com/HeyPuter/puter/commit/e66df14862e6dd7278623279e43e2189e7ddafe5))
- Add Indonesian Translation for i18n ([033643b](https://github.com/HeyPuter/puter/commit/033643b0e757b51ea0be90e2198bbec65d31cfc5))
- add Polish translations for billing-related terms ([15f9ade](https://github.com/HeyPuter/puter/commit/15f9aded26eaa4c630fe948350d3a53cdb0278a3))
- update Urdu localization with missing translations ([0c4b994](https://github.com/HeyPuter/puter/commit/0c4b9946442ad92549522fcd91ea6aefbb9f19d6))
- Update ig.js ([382fb24](https://github.com/HeyPuter/puter/commit/382fb24dbb1737a8a54ed2491f80b2e2276cde61))
- feat: add vietnamese localization-a ([c2d3d69](https://github.com/HeyPuter/puter/commit/c2d3d69dbe33f36fcae13bcbc8e2a31a86025af9))
- Update zhtw.js, Complete Traditional Chinese translation based on English file #550 ([b9e73b7](https://github.com/HeyPuter/puter/commit/b9e73b7288aebb14e6bbf1915743e9157fc950b1))
- update zhtw.js to match en.js ([37fd666](https://github.com/HeyPuter/puter/commit/37fd666a9a6788d5f0c59311499f29896b48bc82))
- Add Tamil translation to translations.js ([8a3d043](https://github.com/HeyPuter/puter/commit/8a3d0430f39f872b8a460c344cce652c340b700b))
- Move Tamil translation to the rest of translations ([333d6e3](https://github.com/HeyPuter/puter/commit/333d6e3b651e460caca04a896cbc8c175555b79b))
- Translation improvements, mainly style and context-based ([8bece96](https://github.com/HeyPuter/puter/commit/8bece96f6224a060d5b408e08c58865fadb8b79c))
- update translation file es.js to be up to date with the file en.js ([1515278](https://github.com/HeyPuter/puter/commit/151527825f1eb4b060aaf97feb7d18af4fcddbf2))
- Translate en.js as of 2024-07-10 ([8e297cd](https://github.com/HeyPuter/puter/commit/8e297cd7e30757073e2f96593c363a273b639466))
- Create hu.js hungarian language ([69a80ab](https://github.com/HeyPuter/puter/commit/69a80ab3d2c94ee43d96021c3bcbdab04a4b5dc6))
- Update translations.js to Hungarian lang ([56820cf](https://github.com/HeyPuter/puter/commit/56820cf6ee56ff810a6b495a281ccbb2e7f9d8fb))
- Tamil translation ([81781f8](https://github.com/HeyPuter/puter/commit/81781f80afc07cd1e6278906cdc68c8092fbfedf))
- Update it.js ([84e31ef](https://github.com/HeyPuter/puter/commit/84e31eff2f58584d8fab7dd10606f2f6ced933a2))
- Update Armenian translation file ([3b8af7c](https://github.com/HeyPuter/puter/commit/3b8af7cc5c1be8ed67be827360bbfe0f0b5027e9))
- correct Igbo translation for "Free" in billing terms ([6f4d57a](https://github.com/HeyPuter/puter/commit/6f4d57a3c6da607038f4fbe49c691478f47933be))
#### Bug Fixes
- missing ll_copy import ([8a9164d](https://github.com/HeyPuter/puter/commit/8a9164d7c5380aafb864b56ca1a3ee59f24daf38))
- bad uuid reference to resourceService ([13003c4](https://github.com/HeyPuter/puter/commit/13003c486fbebad0f26dd1b569f5fd5f2cefc9e7))
- allow localhost for development ([ad8a397](https://github.com/HeyPuter/puter/commit/ad8a3978c07e44f7a534981ddd65bc131c9aac6b))
- rewrite confusing log message ([dacbbf0](https://github.com/HeyPuter/puter/commit/dacbbf033dcc0f4506198761eab3bfb6ef915336))
- AppInformationService initialization ([2332602](https://github.com/HeyPuter/puter/commit/233260233c4e52399541aedbf8b13800de80d3fd))
- dev center app icon SVG issue ([47a4313](https://github.com/HeyPuter/puter/commit/47a4313d92152b9e5b4036715ac4f19431be8940))
- app icon double-encode bug ([23eab63](https://github.com/HeyPuter/puter/commit/23eab63776a146a78b10e973518158fc07b13653))
- first read of recommended apps ([a6b9d33](https://github.com/HeyPuter/puter/commit/a6b9d33d27909ead3d14eff4446062d62aad4651))
- prefix peer addresses with protocol ([efd4730](https://github.com/HeyPuter/puter/commit/efd4730f757471c3eac2d5e396dd69b619ad2999))
- clone message object ([728ecbf](https://github.com/HeyPuter/puter/commit/728ecbfb033082186ca9480f2ab2d1607b57ca5a))
- timing for PrefixLogger call to /whoami ([2dc6c47](https://github.com/HeyPuter/puter/commit/2dc6c4737b9ec9db281b4b32ed4bd20ac490e47d))
- try catching icon read errors before stream ([e56a62c](https://github.com/HeyPuter/puter/commit/e56a62c5390958e585f299751bafd13becc1c9b6))
- try catching on stream_to_buffer ([ada051b](https://github.com/HeyPuter/puter/commit/ada051b9b87e945b4a80c1fae99b8c5644b82dc0))
- check if row.timestamp is Date ([5d049e8](https://github.com/HeyPuter/puter/commit/5d049e8f06dafe2e499ccfea66ef013a9b595396))
- AppES PD alert ([f14e1fe](https://github.com/HeyPuter/puter/commit/f14e1fefcf18438bd59eb86d625b8c5a6fb3ffc5))
- fix for previous fix ([648d6e0](https://github.com/HeyPuter/puter/commit/648d6e036d6f8040a1e440c1e76dc9dcc746156f))
- fix fallback icon behavior in get_icon_stream ([4f3a161](https://github.com/HeyPuter/puter/commit/4f3a1618b10dd393f5c94c0967beb228a593b214))
- revert test change ([9c86614](https://github.com/HeyPuter/puter/commit/9c86614df5d58ca0385450e1edb5adb5b6d72300))
- acl check for subdomain on access ([c69006e](https://github.com/HeyPuter/puter/commit/c69006e1852befa93f94a7c45651025214941a4e))
- attempt fix for prod issue with app icons ([925ebd5](https://github.com/HeyPuter/puter/commit/925ebd531013e36ee5c05d53ef229d314fb89435))
- remove redundant notification query ([f87769b](https://github.com/HeyPuter/puter/commit/f87769b445d53e6322a55a788e26d38629299ae9))
- share only emails email_confirmed recipients ([2336a62](https://github.com/HeyPuter/puter/commit/2336a62b4f635c025b02bb7efe91b5ddf58bae25))
- database issue with KBKV update ([7ba1b76](https://github.com/HeyPuter/puter/commit/7ba1b7656b5e24375cad639b9a8e37577b526c09))
- taskbar items of apps should always appear before Trash ([94e7f5d](https://github.com/HeyPuter/puter/commit/94e7f5deb4330a844a680c22f55b8753225a1a7e))
- fullpage mode ([65d9188](https://github.com/HeyPuter/puter/commit/65d918866ea0ee981bc26151332b730abccb7be8))
- bug in writeFile rename ([298609c](https://github.com/HeyPuter/puter/commit/298609c6e9080e00c90b66c673e104d90f9d3ed0))
- remove unnecessary `item_path` definition in `delete` fs api ([c792f4a](https://github.com/HeyPuter/puter/commit/c792f4a345b307d024f73ff2817ae473b2620913))
- add missing permissions ([69e9df1](https://github.com/HeyPuter/puter/commit/69e9df1ae21cf906dfcc3d9d7a23455e5274271c))
- logic from previous commit ([6ca7011](https://github.com/HeyPuter/puter/commit/6ca701139a07a0d20071cf1532cc6e95639a01da))
- add fallback moderation in case openai goes down ([c6e814d](https://github.com/HeyPuter/puter/commit/c6e814daa80eec01c10f319ebebcb84c42cd26e1))
- permission strings for ES services ([4d9cc9b](https://github.com/HeyPuter/puter/commit/4d9cc9bd830d0c73024f2bc5a91ab226aedefded))
- resolve issue #983 - Stuck on Creating new app loading screen ([c75c9d0](https://github.com/HeyPuter/puter/commit/c75c9d03833af52730cac89a8fee5f5c317f0f78))
- provide actor context to ws event ([1b57801](https://github.com/HeyPuter/puter/commit/1b578019f915918e51185f5705d7fa6e0328b9ae))
- context error in user connected event ([9600823](https://github.com/HeyPuter/puter/commit/96008233ba4935e789cd092c07aa8b351cb44d45))
- signup 500 for temp user ([01395f3](https://github.com/HeyPuter/puter/commit/01395f302e763cdad022c0e5a995869fcd805d86))
- bad import for TeePromise ([acf8ae3](https://github.com/HeyPuter/puter/commit/acf8ae302ec4ee79c11c2b0e810edd53f21446c5))
- sorting bug in AIChatService ([7acb096](https://github.com/HeyPuter/puter/commit/7acb096addd58113cc8d4338ba941cd14ac81f4f))
- test issues from contextlink removal ([545e7db](https://github.com/HeyPuter/puter/commit/545e7db5bdac6e39962390469767667bc62857fd))
- add missing import ([e279dc6](https://github.com/HeyPuter/puter/commit/e279dc6e5f4095550f41aadd194ea94e1e2a2271))
- fake_chat default model and usage errors ([13a895b](https://github.com/HeyPuter/puter/commit/13a895b76b1e5a677c2eeeb0a07be6ce9fd02a99))
- update test kernel ([a1c2226](https://github.com/HeyPuter/puter/commit/a1c2226561655e091cbc0d014ada62bfc7881f2a))
- correct AI comment faults ([b40d453](https://github.com/HeyPuter/puter/commit/b40d4534a71565a7f2d0ae278c98d7326c5aa963))
- update package-lock.json ([8577185](https://github.com/HeyPuter/puter/commit/857718538b8a7bf27dc036f4eeb3728cb6ea96e7))
- ignore two calls with undefined origin ([ab4ba76](https://github.com/HeyPuter/puter/commit/ab4ba76433ac623abaa17c0e5dd024e95b9fef3f))
- undefined APIOrigin ([340c7a8](https://github.com/HeyPuter/puter/commit/340c7a821fb91e2d106c2b3febf8182de7b21f7d))
- add id to the setting menu item in user option menu ([67ca4cc](https://github.com/HeyPuter/puter/commit/67ca4ccf20fd714848121192d5ae7c41f3763da4))
- add an id to `My Websites` content menu item ([e662c78](https://github.com/HeyPuter/puter/commit/e662c782b745f4f98024d1353a6a162d5fe58c44))
- remove unnecessary `integrity` and `crossorigin` attributes in dev center when linking to jquery ([8dec78b](https://github.com/HeyPuter/puter/commit/8dec78b090ec4434ad77003d6f3c25de98779864))
- remove inactive links in README ([f3d270c](https://github.com/HeyPuter/puter/commit/f3d270ccbcd8990270cf968a3638b7affa2df6ba))
- improve backend mod error handling ([fe1a4cf](https://github.com/HeyPuter/puter/commit/fe1a4cfd4d5dd1eddbb2d50ef3f5ebf78a81656d))
- app query should return app metadata ([3cedd17](https://github.com/HeyPuter/puter/commit/3cedd17b8ed4acb1099bc2e87aba0137339c8a17))
- safe parsing of app metadata ([a2c7b37](https://github.com/HeyPuter/puter/commit/a2c7b379f8181b373b0513d9166f75adc147aafa))
- configuration for browser launch ([791f774](https://github.com/HeyPuter/puter/commit/791f7748c7c1959f63327a73a7e24e41b574a910))
- previous fix ([ee7bedd](https://github.com/HeyPuter/puter/commit/ee7bedd5586d69ce74f32c1400f377d6a8971eaa))
- always adapt model for ClaudeEnough ([56710e1](https://github.com/HeyPuter/puter/commit/56710e17f3b06eef07e54c243f6b725fcc4a4583))
- automatically open browser when starting only if in dev env ([f500fb4](https://github.com/HeyPuter/puter/commit/f500fb47061f8f3a3dc7d871cb529f5c0b058185))
- image generation supports test mode ([f533dca](https://github.com/HeyPuter/puter/commit/f533dca1a6d88ca7a14bd69f15d0a151e24c58e1))
- share issue with prefix usernames ([d30d62f](https://github.com/HeyPuter/puter/commit/d30d62f558ca5f8c74090900aa39c13ca3ca1d2e))
- permission grants in open_item ([16257a7](https://github.com/HeyPuter/puter/commit/16257a7b5459550ee3782cf32c87a8241325878d))
- sharing notification click opening directories ([bfacfc2](https://github.com/HeyPuter/puter/commit/bfacfc2a4e4b50c9e0842f9f2d56de67a598b959))
- add placeholders ([2c86240](https://github.com/HeyPuter/puter/commit/2c862403994ff6385144841db07dcc94c5c2fc2e))
- capitalize `Hindi` in i18n ([35fd158](https://github.com/HeyPuter/puter/commit/35fd15854ad3cc92924c4ded752e337f467a7125))
- give camera and recorder write permission to Desktop ([65e6d6c](https://github.com/HeyPuter/puter/commit/65e6d6c09fd464b3fea979689fab5f26a2647c4a))
- potential null-or-undefined in DriverService ([01725ff](https://github.com/HeyPuter/puter/commit/01725ffebf86ed332087c877956e59570ea700ed))
- usage bug ([0fd3b1e](https://github.com/HeyPuter/puter/commit/0fd3b1e61157d989d55e6dacba2add0e03d260e7))
- update share email ([7e7234b](https://github.com/HeyPuter/puter/commit/7e7234b2f3fb89560108447cfd7fa87499ec6f38))
- allow scrolling of user list in share window ([905b5d8](https://github.com/HeyPuter/puter/commit/905b5d851ef68d923d8f7fbaddbe214cb812bae6))
- mobile detection ([b11016d](https://github.com/HeyPuter/puter/commit/b11016dab321717f2c367e985167a4689fc02814))
- mobile-friendly taskbar ([7a7c14f](https://github.com/HeyPuter/puter/commit/7a7c14fb040b28ef769abdba41b50d88c856fb20))
- prevent permission cycles ([e0128aa](https://github.com/HeyPuter/puter/commit/e0128aa88c54548304532282e5ed1b4a2d36ff3e))
- `launchApp` on explorer supports `~` now ([e482b00](https://github.com/HeyPuter/puter/commit/e482b00a303ca7ec0230be1924334d59adc00f8e))
- only allow UserActorType for ShareService ([69bfa60](https://github.com/HeyPuter/puter/commit/69bfa601993eb6c47c3555b92559878d76ba749e))
- new sessions miss notifications ([b1ffb8e](https://github.com/HeyPuter/puter/commit/b1ffb8eca13520fa41833f5361ff6a6505a80a2c))
- don't allow sharing with recipient just shared with ([d0f16c8](https://github.com/HeyPuter/puter/commit/d0f16c810509c7e4e8acba3408c71655664cfad2))
- add username to comments ([085d808](https://github.com/HeyPuter/puter/commit/085d808817e985f2bc52b7a91a31991ca3b2e89f))
- occasional db error from notics ([9e303a2](https://github.com/HeyPuter/puter/commit/9e303a2f7c7bf6ac9032e6c9b87bffd3126baa86))
- un-awked notif check in wrong place ([3f3f4e6](https://github.com/HeyPuter/puter/commit/3f3f4e6cb9fd3faad2e87fbf9ea1f09b934151ca))
- disabled sortable on sharing section in the sidebar ([9d7987f](https://github.com/HeyPuter/puter/commit/9d7987fae50b510f1836e306d5f6f497a560de08))
- add mixxing context to BroadcastService ([665471f](https://github.com/HeyPuter/puter/commit/665471f9f02b1f1163edb47932a31f52577ee7df))
- attempt at fixing broadcast ([22dd42e](https://github.com/HeyPuter/puter/commit/22dd42ef7f64d32ada0c776287f53a80a4470315))
- replace ll_readshares with better approach ([cd22425](https://github.com/HeyPuter/puter/commit/cd22425a3d363f6008b3d07f40a082769ee22a14))
- only add enabled_logs when not empty ([34836e3](https://github.com/HeyPuter/puter/commit/34836e374fccac297a6f0fa5f323f3609d0c9179))
- don't check share permission anymore ([249dc06](https://github.com/HeyPuter/puter/commit/249dc062014947c32bee8a8238b2c8acf86188bb))
- files shared array in notification ([27cc07e](https://github.com/HeyPuter/puter/commit/27cc07e985a799fae791d6edf61b7e656e0e182e))
- report path for broken files as /-void/ ([5725bd8](https://github.com/HeyPuter/puter/commit/5725bd8c66539564e7f58f96c6e81044a3751f97))
- issue with popover closing when clicked ([ac3317a](https://github.com/HeyPuter/puter/commit/ac3317aea918953358947638ca11822baa38e23f))
- groups manager location ([a08e975](https://github.com/HeyPuter/puter/commit/a08e9758fe7625d31279b8947a4e5ca6471578ff))
- don't show kvstore in usages ([402ffb0](https://github.com/HeyPuter/puter/commit/402ffb0fd1e812a8db8ea90ac53ed613fdd30a4b))
- add missing id for task_manager menu item ([4f9d9a5](https://github.com/HeyPuter/puter/commit/4f9d9a54efb3c5177125904a1c9ddec66ca089dc))
- Update security.txt canonical URL ([6c44032](https://github.com/HeyPuter/puter/commit/6c44032293836871a27fb3c857a0ff3b80462702))
- update apps cache by reading from primary db ([e8f67da](https://github.com/HeyPuter/puter/commit/e8f67da9a3d81273f59d136c8383f00d9dc8ca5a))
- logging in AppConnection ([5caa2c0](https://github.com/HeyPuter/puter/commit/5caa2c0e3a152d1fc947b86329778db462139db0))
- persist clock visibility change ([1a6d648](https://github.com/HeyPuter/puter/commit/1a6d648a6ecdda07b23da9e6f4ef49b70b54cce1))
- don't access `metadata.credentialless` if it doesn't exist ([9590bbd](https://github.com/HeyPuter/puter/commit/9590bbdad1099cf75d6073663a9fcec5f3136482))
- reinitialize settings tabs for DOM events ([16b9f09](https://github.com/HeyPuter/puter/commit/16b9f09e66ffe1584f925cb1a9f261bc159c8dda))
- use correct cursor when hovering over sidebar items ([c44b9ab](https://github.com/HeyPuter/puter/commit/c44b9ab8d5f575393bf864fd30235287f845a4e8))
- issue with context menu divider item stealing the event from previous item ([121043d](https://github.com/HeyPuter/puter/commit/121043d312577a6e048497108309cd08b73df4d0))
- issue with non-scrollable window body and document Context Menu ([0315cb3](https://github.com/HeyPuter/puter/commit/0315cb333719b08c6581b556c69a14cbe671b7bd))
- temporary fix because .on can't call ensure_service ([f836ac3](https://github.com/HeyPuter/puter/commit/f836ac30a901a7b3258399a54eab5c7c8cc47463))
- issues in kdmod ([0a47daa](https://github.com/HeyPuter/puter/commit/0a47daa2896d97c318aec2e2288f61ade5f4ea48))
- Collector bug on undefined body ([14f477a](https://github.com/HeyPuter/puter/commit/14f477a6330c9169145a7f8b2721d02e7517513b))
- hyphenize_confirm_code bug ([463c96c](https://github.com/HeyPuter/puter/commit/463c96c69a915ea75db66fd449e83a61ca036f6f))
- app close issue in phoenix ([38adb57](https://github.com/HeyPuter/puter/commit/38adb5741b241081dd3f30de2f9afdd708cc9fa5))
- reading JSON string from service_usage_monthly ([b30de5b](https://github.com/HeyPuter/puter/commit/b30de5bf786ae8f28f3248277c5b2df2f0e5ebf4))
- recently broke counting service sql ([7ba16d1](https://github.com/HeyPuter/puter/commit/7ba16d1c21d07e58cefebf967e5ca2b74502e841))
- ignore invalid entries from service_usage_monthly ([f108795](https://github.com/HeyPuter/puter/commit/f1087953b57297a1e066ea68563e8a273a1af4c0))
- service usage screen ([193da63](https://github.com/HeyPuter/puter/commit/193da633044f463ec1ed60eca4608761fc40b1d7))
- continue work on blocked_email_domains (2) ([4dc1e01](https://github.com/HeyPuter/puter/commit/4dc1e01682571f16a25eebb2e9c7918587ca89ae))
- continue work on blocked_email_domains ([515051d](https://github.com/HeyPuter/puter/commit/515051dabf9f2a145ae2d090f829df7188e9fd28))
- errors thrown by launch_app ([c22a69f](https://github.com/HeyPuter/puter/commit/c22a69ffb1809ad7959f8a8fe934052369b5d44f))
- notepad save issue ([bc51d4b](https://github.com/HeyPuter/puter/commit/bc51d4bd52b5d0a7bb4feddea7bb9d73e449f7d8))
- height 100% on flexer and step view ([c6bc42f](https://github.com/HeyPuter/puter/commit/c6bc42f551a46919b4b70a9ae3dfec85086b0233))
- wait no ([12e0cec](https://github.com/HeyPuter/puter/commit/12e0cecf02f4d906035a6f0059557416475db106))
- phoenix incorrect lookup order ([c8f913d](https://github.com/HeyPuter/puter/commit/c8f913d710454d0ab3da2147309b442a78965720))
- turns out we don't support `utm_source` I learn something new about Puter every day! ([99ce3bd](https://github.com/HeyPuter/puter/commit/99ce3bde199de729c4796a681c188c4a0da9165e))
- issue with service scripts that use TestView ([e0b9072](https://github.com/HeyPuter/puter/commit/e0b90721299fa3013f66c866ba637c52efe9df1d))
- 1954f8-related issue #2 ([143cfb5](https://github.com/HeyPuter/puter/commit/143cfb5654eca8b50fb7ff434f47db24d7bdf3aa))
- 1954f8-related issue ([f5865da](https://github.com/HeyPuter/puter/commit/f5865daede2b32682d0472926bc5db65c9ef37ab))
- small issue in Service.js ([3c5d2af](https://github.com/HeyPuter/puter/commit/3c5d2af8c8341ef78236ef38153ed0b4f20c5cac))
- prevent code from breaking just because it was bundled ([fb1216d](https://github.com/HeyPuter/puter/commit/fb1216d488bed8ee8d88c7c71e4a6f1054e3a01c))
- don't display all apps for extensionless files ([010282e](https://github.com/HeyPuter/puter/commit/010282edf299c2a39e53de7441b8850d0b8011b8))
- creating app shortcut in self-hosted ([38dcb60](https://github.com/HeyPuter/puter/commit/38dcb60d3f407dd185999d01d8e14355b47df0b8))
- disable thumbnails for AppData uploads ([37e7b6a](https://github.com/HeyPuter/puter/commit/37e7b6ad70f197db3be8712315446079caa23892))
- thumbnail service updates ([c2a9506](https://github.com/HeyPuter/puter/commit/c2a9506b4855f67d320eb479a67800098d73e8ec))
- remove redundant openai model fallback ([9db55fc](https://github.com/HeyPuter/puter/commit/9db55fc5f7a975ab301c88bbac493b7a5b1933bb))
- app pseudonym in wrong conditional block ([9985996](https://github.com/HeyPuter/puter/commit/99859966866ebce005f88e3a916c68dc04ba97bf))
- properly add owner object to fsentries ([04c05a5](https://github.com/HeyPuter/puter/commit/04c05a5bb8b73dda21093a2bf563f5cd6faaa356))
- add progress bar fix ([a70d0dd](https://github.com/HeyPuter/puter/commit/a70d0dd0881b0a07cea404fe13515a5e10321e3e))
- allow ETX to propagate to bash ([259877b](https://github.com/HeyPuter/puter/commit/259877b677a7bfc8e5b377c8852d687978c9bc24))
- error deleting entry from My Websites window ([fff8993](https://github.com/HeyPuter/puter/commit/fff89932002d67bf0f121532709c871263e33473))
- second half of connectToInstance ([4311b48](https://github.com/HeyPuter/puter/commit/4311b482fd629c6d1f65956eb711c8e890453179))
- error in process.handle_connection ([cb324cc](https://github.com/HeyPuter/puter/commit/cb324cc125285b5cd6a6b0cebf444a6cd873ded9))
- quick patch to avoid columnify error ([4396534](https://github.com/HeyPuter/puter/commit/439653458eab38e622cf215ae96b6af34d1db7d4))
- upsert subdomain check to insert only ([f2acd83](https://github.com/HeyPuter/puter/commit/f2acd83b72c388939233fd7145f2dcf78d8ad39e))
- simplify callback listener and fix async bug ([db3e0b5](https://github.com/HeyPuter/puter/commit/db3e0b5ce84e4b0b35550f380da97b5d6fcb394b))
- email change on account with unverified email ([33de981](https://github.com/HeyPuter/puter/commit/33de98107f6e3284acb180b1a44bb02ae082642f))
- html-webpack-plugin dev dep ([cc4ab1c](https://github.com/HeyPuter/puter/commit/cc4ab1cb36a002929f26a39f252a262fc1f1aab4))
- double-echo in phoenix ([6bdcae7](https://github.com/HeyPuter/puter/commit/6bdcae769d311b5deb82136d5e35d7ad986bca28))
- webpack error reporting + unintentional whitespace changes ([4910838](https://github.com/HeyPuter/puter/commit/4910838ab1a72738b44f948cbf65feea848e5271))
- dist ([ed7d6dc](https://github.com/HeyPuter/puter/commit/ed7d6dcbfbf432ae90d9e379dbf47de5587a57a2))
- use jq el for focus ([d350264](https://github.com/HeyPuter/puter/commit/d35026467eb9a5f67d6ec0c99f2a24d418b8e3a5))
- fix sourcemap ([cd39bb5](https://github.com/HeyPuter/puter/commit/cd39bb5aa073286baa053f8458f0af54a4b7313a))
- remove now-redundant loadScript call ([c9d09a7](https://github.com/HeyPuter/puter/commit/c9d09a78b6f4bc9682d13d2f982f9a2b7f77dd66))
- env for dev build ([46a0f71](https://github.com/HeyPuter/puter/commit/46a0f714d10c2fa99ee9436f453176d54cc161f8))
- mistakes ([3092300](https://github.com/HeyPuter/puter/commit/3092300a0144791b25816b39845a3d85968e9059))
- add env to EmitPlugin config ([4b89101](https://github.com/HeyPuter/puter/commit/4b8910169a26f85489135cd84b27fe8f91b37bc6))
- remove accidentally left-over code ([72946f9](https://github.com/HeyPuter/puter/commit/72946f920c9f27f4c9de3156aa9144d290699222))
- don't var when no var ([5f7d1f5](https://github.com/HeyPuter/puter/commit/5f7d1f589a56b3d3ea2026dcbd5f9c48b8dc9e6d))
- fallback to read access in /sign ([813ee95](https://github.com/HeyPuter/puter/commit/813ee95cee6f1fca79a886b12d8fe4603ca0d213))
- typo in a default file ([aa61c30](https://github.com/HeyPuter/puter/commit/aa61c3009c624099e7bd518870b18b02c008530c))
- fix 500 when check-app has bad url ([9a62200](https://github.com/HeyPuter/puter/commit/9a622004ea488783127abd83f3f4caf779a5aabb))
- ll_write ([a7cdb70](https://github.com/HeyPuter/puter/commit/a7cdb70251ae86f883257de3596838d20196c62d))
- don't try to sanitize null owners ([cb4cab5](https://github.com/HeyPuter/puter/commit/cb4cab529affa5c28ddb32b90328ad47f21de8d4))
- missing key for feature flag perm check ([1482048](https://github.com/HeyPuter/puter/commit/14820481b9700a5c61c6d9a156944f42f9879008))
- implicit app permissions bug ([6b4a19e](https://github.com/HeyPuter/puter/commit/6b4a19e12a115be2c0e323d17340ab2ce2b6b025))
- share services and features with apps ([48fea77](https://github.com/HeyPuter/puter/commit/48fea77a20a0938fc2272483c798b817ca1c9848))
- admin user public folder ([3819584](https://github.com/HeyPuter/puter/commit/3819584d119076658c9d4be2b2b941c58d122ad4))
- add anti-csrf token for /revoke-session ([b6b64d3](https://github.com/HeyPuter/puter/commit/b6b64d3bccb6e17240a245c956ead2ae5a87c8dd))
- only show 2fa when available ([9fa12d4](https://github.com/HeyPuter/puter/commit/9fa12d43fc782d7e4d2584b1cf74dca13b7ced25))
- requirement for email_confirmed in backend ([6e325fa](https://github.com/HeyPuter/puter/commit/6e325fa000f19b8f20d79829ab2bd78edce80425))
- do primary read of user after setting email_confirmed ([ef245b7](https://github.com/HeyPuter/puter/commit/ef245b70df482ff470877459fcb28e1f490fe42d))
- require confirmed email for public folder ([0519b4a](https://github.com/HeyPuter/puter/commit/0519b4a71b236e464c9d1136065e8f5ba15def8e))
- sqlite condition in MonthlyUsageService ([d4319ea](https://github.com/HeyPuter/puter/commit/d4319ea072e0793a32dbddb1d456227cf481e42c))
- add context to event listener aiife ([3f07ead](https://github.com/HeyPuter/puter/commit/3f07ead1b9940ee133c142f4c34d19884bbb3cd2))
- missing method in SLink ([5b74b4a](https://github.com/HeyPuter/puter/commit/5b74b4affae5473029e887542717c76c7b32f562))
- disable unconfigured ai services ([476acae](https://github.com/HeyPuter/puter/commit/476acae0e0d07c7b025cdbcfd86aacfedd7831a5))
- add missing driver parameter to /call endpoint ([b520783](https://github.com/HeyPuter/puter/commit/b520783bf4a543c71eaef73277f42d5918ac4469))
- sqlite migrations error ([d0e461e](https://github.com/HeyPuter/puter/commit/d0e461e206300e7fe3f9bc7f54eaa3a25bb762d8))
- prevent large logs from service events (2) ([e514dfc](https://github.com/HeyPuter/puter/commit/e514dfcf5049771af3901334e37b1a7c53e05452))
- prevent large logs from service events (1) ([fa9cc8e](https://github.com/HeyPuter/puter/commit/fa9cc8efcfda5e573c73841ae49c423879e5fcd8))
- fix templates ([5d2a6fc](https://github.com/HeyPuter/puter/commit/5d2a6fce305a3dcd4857f52ebb75f529dffe4790))
- popup login in co isolation mode ([8f87770](https://github.com/HeyPuter/puter/commit/8f87770cebab32c00cb10133979d426306685292))
- add necessary iframe attributes for co isolation ([2a5cec7](https://github.com/HeyPuter/puter/commit/2a5cec7ee914c9c97ae90b85464f9fc5332ad2fb))
- chore: fix confirm for type_confirm_to_delete_account ([02e1b1e](https://github.com/HeyPuter/puter/commit/02e1b1e8f5f8e22d7ab39ebff99f7dd8e08a4221))
- syntax error and formatting issue ([3a09e84](https://github.com/HeyPuter/puter/commit/3a09e84838fe8b74bd050641620eec87d9f59dfc))
- #432 ([f897e84](https://github.com/HeyPuter/puter/commit/f897e844989083b0b369ba0ce4d2c5a9f3db5ad8))
- `launch_app` not considering `explorer` as a special case ([98e6964](https://github.com/HeyPuter/puter/commit/98e69642d027a83975a0b2b825317213098bb689))
- well kinda (HOSTNAME in phoenix) ([7043b94](https://github.com/HeyPuter/puter/commit/7043b9400c63842c4c54d82724167666708d3119))
- it was github actions the entire time ([602a198](https://github.com/HeyPuter/puter/commit/602a19895c05b45a7d283470e7af3ae786be1bf2))
- run mocha within packages in monorepo ([58c199c](https://github.com/HeyPuter/puter/commit/58c199c15356ac087a04b16dd18e8fe0f1aea359))
- make webpack output not look like errors ([ad3d318](https://github.com/HeyPuter/puter/commit/ad3d318d07377c78c0429247225655e489b68be4))
- No scrollbar for session list ([45f131f](https://github.com/HeyPuter/puter/commit/45f131f8eaf94cf3951ca7ffeb6f311590233b8a))
- fix path issues under win32 platform ([d80f2fa](https://github.com/HeyPuter/puter/commit/d80f2fa847bfaef98dc8d482898f5c15f268e4bd))
- remove abnoxious debug file ([5c636d4](https://github.com/HeyPuter/puter/commit/5c636d4fd25e14ba3813f7fca3b70ff7bd6860e7))
- read_only fields in ES ([e8f4c32](https://github.com/HeyPuter/puter/commit/e8f4c328bff5c36b95fe460b80803e12e619f8ee))
### Security
#### Bug Fixes
- verify dest_node uid matches signature ([e208b99](https://github.com/HeyPuter/puter/commit/e208b99d211e98cd88e0a8b2917bbe6b2f2423a0))
- always use actor ([1954f86](https://github.com/HeyPuter/puter/commit/1954f86680be642e1af03f648d6b587fe67dfaa8))
- signing in public folders ([937528f](https://github.com/HeyPuter/puter/commit/937528f7676e8ace7287141e1f5057842a2b5eb7))
- remove unconfirmed_email from /whoami for apps ([a002ad0](https://github.com/HeyPuter/puter/commit/a002ad08e5622a349b5d24ed2c7c5f61215146b8))
- hoist acl check in ll_read ([6a2fbc1](https://github.com/HeyPuter/puter/commit/6a2fbc1925952ecceed741afe138270d1eeda7b7))
### Backend
#### Features
- add comments for fsentries ([db79a72](https://github.com/HeyPuter/puter/commit/db79a72daab5460bc8e24f6e16c6280291b2f6fe))
### AI
#### Features
- add xAI grok-beta ([28adcf5](https://github.com/HeyPuter/puter/commit/28adcf533fd867dfdf3bda0007753e65c91ff5e5))
- add groq ([53e7a91](https://github.com/HeyPuter/puter/commit/53e7a91f1800b60b48575a6e41d96d2ccbd6d362))
- add mistral ([055c628](https://github.com/HeyPuter/puter/commit/055c628afd2e33589d3dc66c52934505143eafd4))
- add togetherai ([bdfdf23](https://github.com/HeyPuter/puter/commit/bdfdf2331b37680b95ac56b31026d3bdab4c173b))
- add claude ([d009cd0](https://github.com/HeyPuter/puter/commit/d009cd0aaff645a24d37085ed41c55fe296a5722))
- add streaming ([9d5963c](https://github.com/HeyPuter/puter/commit/9d5963cdf5fe63a4f7970d2d03bc307f4d4fa3ab))
#### Bug Fixes
- close streams ([eb18550](https://github.com/HeyPuter/puter/commit/eb18550f411947a0d8ccaf283701596b1386cfe6))
- adapt message role for claude ([c08b897](https://github.com/HeyPuter/puter/commit/c08b897d4a6a77c54a7e8d2e705e2048ab4797ba))
### GUI
### Putility
#### Features
- trait method override support ([43c5402](https://github.com/HeyPuter/puter/commit/43c5402b7cb92e604cbe59badc8f735131d2c349))
### Docker
#### Bug Fixes
- ensure temp admin pass shows ([d2c7477](https://github.com/HeyPuter/puter/commit/d2c7477b3bf170be492a6d5387330645cdf9c33a))
### Puter JS
#### Features
- add drivers module ([439f52b](https://github.com/HeyPuter/puter/commit/439f52b5a3f1a94e6d15ddacc315ae797f4709c2))
#### Bug Fixes
- fix settings object check ([5a616f6](https://github.com/HeyPuter/puter/commit/5a616f67dd22a0dcbb8a380bbbd2347a0029ce31))
### API
#### Features
- add /lsmod ([32f0edb](https://github.com/HeyPuter/puter/commit/32f0edb93a8fb0c33b0614b99c7fc439c8f6afc9))
## v2.4.2 (2024-07-22)
### Puter
#### Features
- add new file templates ([1f7f094](https://github.com/HeyPuter/puter/commit/1f7f094282fae915a2436701cfb756444cd3f781))
- add cross_origin_isolation option ([e539932](https://github.com/HeyPuter/puter/commit/e53993207077aecd2c01712519251993bb2562bc))
- add option to disable temporary users ([f9333b3](https://github.com/HeyPuter/puter/commit/f9333b3d1e05bd0dffaecd2e29afd08ea61559fc))
- add some default groups ([ba50d0f](https://github.com/HeyPuter/puter/commit/ba50d0f96d58075abec067d24e6532bd874093f0))
- Add support for dropping multiple Puter items onto Dev Center (close #311) ([8e7306c](https://github.com/HeyPuter/puter/commit/8e7306c23be01ee6c31cdb4c99f2fb1f71a2247f))
#### Translations
- Update ig.js ([382fb24](https://github.com/HeyPuter/puter/commit/382fb24dbb1737a8a54ed2491f80b2e2276cde61))
- feat: add vietnamese localization-a ([c2d3d69](https://github.com/HeyPuter/puter/commit/c2d3d69dbe33f36fcae13bcbc8e2a31a86025af9))
- Update zhtw.js, Complete Traditional Chinese translation based on English file #550 ([b9e73b7](https://github.com/HeyPuter/puter/commit/b9e73b7288aebb14e6bbf1915743e9157fc950b1))
- update zhtw.js to match en.js ([37fd666](https://github.com/HeyPuter/puter/commit/37fd666a9a6788d5f0c59311499f29896b48bc82))
- Add Tamil translation to translations.js ([8a3d043](https://github.com/HeyPuter/puter/commit/8a3d0430f39f872b8a460c344cce652c340b700b))
- Move Tamil translation to the rest of translations ([333d6e3](https://github.com/HeyPuter/puter/commit/333d6e3b651e460caca04a896cbc8c175555b79b))
- Translation improvements, mainly style and context-based ([8bece96](https://github.com/HeyPuter/puter/commit/8bece96f6224a060d5b408e08c58865fadb8b79c))
- update translation file es.js to be up to date with the file en.js ([1515278](https://github.com/HeyPuter/puter/commit/151527825f1eb4b060aaf97feb7d18af4fcddbf2))
- Translate en.js as of 2024-07-10 ([8e297cd](https://github.com/HeyPuter/puter/commit/8e297cd7e30757073e2f96593c363a273b639466))
- Create hu.js hungarian language ([69a80ab](https://github.com/HeyPuter/puter/commit/69a80ab3d2c94ee43d96021c3bcbdab04a4b5dc6))
- Update translations.js to Hungarian lang ([56820cf](https://github.com/HeyPuter/puter/commit/56820cf6ee56ff810a6b495a281ccbb2e7f9d8fb))
- Tamil translation ([81781f8](https://github.com/HeyPuter/puter/commit/81781f80afc07cd1e6278906cdc68c8092fbfedf))
- Update it.js ([84e31ef](https://github.com/HeyPuter/puter/commit/84e31eff2f58584d8fab7dd10606f2f6ced933a2))
- Update Armenian translation file ([3b8af7c](https://github.com/HeyPuter/puter/commit/3b8af7cc5c1be8ed67be827360bbfe0f0b5027e9))
#### Bug Fixes
- fix templates ([5d2a6fc](https://github.com/HeyPuter/puter/commit/5d2a6fce305a3dcd4857f52ebb75f529dffe4790))
- popup login in co isolation mode ([8f87770](https://github.com/HeyPuter/puter/commit/8f87770cebab32c00cb10133979d426306685292))
- add necessary iframe attributes for co isolation ([2a5cec7](https://github.com/HeyPuter/puter/commit/2a5cec7ee914c9c97ae90b85464f9fc5332ad2fb))
- chore: fix confirm for type_confirm_to_delete_account ([02e1b1e](https://github.com/HeyPuter/puter/commit/02e1b1e8f5f8e22d7ab39ebff99f7dd8e08a4221))
- syntax error and formatting issue ([3a09e84](https://github.com/HeyPuter/puter/commit/3a09e84838fe8b74bd050641620eec87d9f59dfc))
- #432 ([f897e84](https://github.com/HeyPuter/puter/commit/f897e844989083b0b369ba0ce4d2c5a9f3db5ad8))
- `launch_app` not considering `explorer` as a special case ([98e6964](https://github.com/HeyPuter/puter/commit/98e69642d027a83975a0b2b825317213098bb689))
- well kinda (HOSTNAME in phoenix) ([7043b94](https://github.com/HeyPuter/puter/commit/7043b9400c63842c4c54d82724167666708d3119))
- it was github actions the entire time ([602a198](https://github.com/HeyPuter/puter/commit/602a19895c05b45a7d283470e7af3ae786be1bf2))
- fix CI attempt #7 ([614f2c5](https://github.com/HeyPuter/puter/commit/614f2c5061525f230ccd879bfb047434ac46a9ba))
- fix CI attempt #6 ([9d549b1](https://github.com/HeyPuter/puter/commit/9d549b192d149eac96c316ded645bf7c2e96153d))
- fix CI attempt #5 ([74adcdd](https://github.com/HeyPuter/puter/commit/74adcddc1d60e0a513408a0716ed2b301126225d))
- fix CI attempt #4 ([84b993b](https://github.com/HeyPuter/puter/commit/84b993bce913c3ad99127063bcfaae19331b199c))
- fix CI attempt #3 ([3bca973](https://github.com/HeyPuter/puter/commit/3bca973f5f4e65a2bd24c634c347fbd681a7458b))
- fix CI attempt #2 ([aebe89a](https://github.com/HeyPuter/puter/commit/aebe89a1acb070764551e8e89e325325ffbed8f9))
- run mocha within packages in monorepo ([58c199c](https://github.com/HeyPuter/puter/commit/58c199c15356ac087a04b16dd18e8fe0f1aea359))
- make webpack output not look like errors ([ad3d318](https://github.com/HeyPuter/puter/commit/ad3d318d07377c78c0429247225655e489b68be4))
- No scrollbar for session list ([45f131f](https://github.com/HeyPuter/puter/commit/45f131f8eaf94cf3951ca7ffeb6f311590233b8a))
- fix path issues under win32 platform ([d80f2fa](https://github.com/HeyPuter/puter/commit/d80f2fa847bfaef98dc8d482898f5c15f268e4bd))
- remove abnoxious debug file ([5c636d4](https://github.com/HeyPuter/puter/commit/5c636d4fd25e14ba3813f7fca3b70ff7bd6860e7))
- read_only fields in ES ([e8f4c32](https://github.com/HeyPuter/puter/commit/e8f4c328bff5c36b95fe460b80803e12e619f8ee))
### Security
#### Bug Fixes
- hoist acl check in ll_read ([6a2fbc1](https://github.com/HeyPuter/puter/commit/6a2fbc1925952ecceed741afe138270d1eeda7b7))
## v2.4.1 (2024-07-11)
### Puter
#### Features
- update BR translation ([42a6b39](https://github.com/HeyPuter/puter/commit/42a6b3938a588b8b4d1bd976c37e9c6e58408c75))
- JSON support for kv driver ([3ed7916](https://github.com/HeyPuter/puter/commit/3ed7916856f03eafbe0891f2ab39c34d20d2bd24))
#### Translations
- Update bn.js file formatting ([cff488f](https://github.com/HeyPuter/puter/commit/cff488f4f4378ca6c7568a585a665f2a3b87b89c))
- Issue#530 - Update bengali translations ([92abc99](https://github.com/HeyPuter/puter/commit/92abc9947f811f94f17a5ee5a4b73ee2b210900a))
- Added missing Romanian translations. ([8440f56](https://github.com/HeyPuter/puter/commit/8440f566b91c9eb4f01addcb850061e3fbe3afc7))
- Add 2FA Romanian translations ([473b651](https://github.com/HeyPuter/puter/commit/473b6512c697854e3f3badae1eb7b87742954da5))
- Add Japanese Translation ([47ec74f](https://github.com/HeyPuter/puter/commit/47ec74f0aa6adb3952e6460909029a4acb0c3039))
- Completing Italian translation based on English file ([f5a8ee1](https://github.com/HeyPuter/puter/commit/f5a8ee1c6ab950d62c90b6257791f026a508b4e4))
- Completing Italian translation based on English file. ([a96abb5](https://github.com/HeyPuter/puter/commit/a96abb5793528d0dc56d75f95d771e1dcf5960d1))
- Completing Arabic translation based on English file ([78a0ace](https://github.com/HeyPuter/puter/commit/78a0acea6980b6d491da4874edbd98e17c0d9577))
- Update Arabic translations in src/gui/src/i18n/translations/ar.js to match English version in src/gui/src/i18n/translations/en.js ([fe5be7f](https://github.com/HeyPuter/puter/commit/fe5be7f3cf7f336730137293ba86a637e8d8591d))
- Update Arabic translations in src/gui/src/i18n/translations/ar.js to match English version in src/gui/src/i18n/translations/en.js ([bffa192](https://github.com/HeyPuter/puter/commit/bffa192805216fc17045cd8d629f34784dca7f3f))
- Ukrainian updated ([e61039f](https://github.com/HeyPuter/puter/commit/e61039faf409b0ad85c7513b0123f3f2e92ebe32))
- Update ru.js issue #547 ([17145d0](https://github.com/HeyPuter/puter/commit/17145d0be6a9a1445947cc0c4bec8f16a475144c))
- Russian translation fixed ([8836011](https://github.com/HeyPuter/puter/commit/883601142873f10d69c84874499065a7d29af054))
#### Bug Fixes
- remove flag that breaks puter-js webpack ([7aadae5](https://github.com/HeyPuter/puter/commit/7aadae58ce1a51f925bf64c3d65ac1fa6971b164))
- Improve `getMimeType` to remove trailing dot in the extension if preset ([535475b](https://github.com/HeyPuter/puter/commit/535475b3c36a37e3319ed067a24fb671790dcda3))
## 2.4.0 (2024-07-08)
### Features
* add (pt-br) translation for system settings. ([77211c4](https://github.com/HeyPuter/puter/commit/77211c4f71b0285fb3060f7e5c8d493b4d7c4f0c))
* add /group/list endpoint ([d55f38c](https://github.com/HeyPuter/puter/commit/d55f38ca68899c3574cfe328d2b206b1143ff0d4))
* add /share/file-by-username endpoint ([5d214c7](https://github.com/HeyPuter/puter/commit/5d214c7b52887b594af6be497f1892baf7d77679))
* add /sharelink/request endpoint ([742f625](https://github.com/HeyPuter/puter/commit/742f625309f9f4cfa70cf7d2fe5b03fd164913ea))
* add /show urls ([079e25a](https://github.com/HeyPuter/puter/commit/079e25a9fe8e179f26d72378856058eb656e2314))
* add app metadata ([f7216b9](https://github.com/HeyPuter/puter/commit/f7216b95672b38802b288ef5b022e947017ff311))
* add appdata permission (if applicable) on app share ([9751fd9](https://github.com/HeyPuter/puter/commit/9751fd92a50e75385cffed0ca847d5076ba98c92))
* add cookie for site token ([a813fbb](https://github.com/HeyPuter/puter/commit/a813fbbb88bcfb8b9a61976e2a4fc4aab943fc88))
* add cross-server event broadcasting ([1207a15](https://github.com/HeyPuter/puter/commit/1207a158bdc88a90b14d31d03387ce353c176a9c))
* add debug mod ([16b1649](https://github.com/HeyPuter/puter/commit/16b1649ff62fd87a4dda5d2e1c68941c864c5da4))
* add endpoints for share tokens ([301ffaf](https://github.com/HeyPuter/puter/commit/301ffaf61dbb4fca1a855650ab80707ae6d9f602))
* Add exit status code to apps ([7674da4](https://github.com/HeyPuter/puter/commit/7674da4cd225bcad34079251c5600fc32e32248b))
* add external mod loading ([eb05fbd](https://github.com/HeyPuter/puter/commit/eb05fbd2dc4877553b5118a069a9afdc32bea137))
* add group management endpoints ([4216346](https://github.com/HeyPuter/puter/commit/4216346384d90dcba429dbcb175e6f86482d19f4))
* add group permission endpoints ([c374b0c](https://github.com/HeyPuter/puter/commit/c374b0cbca761e7c8a47d56a09551f2e9378066a))
* add mark-read endpoint ([0101f42](https://github.com/HeyPuter/puter/commit/0101f425d480705c20df4919a76f66e987f5790f))
* add permission rewriter for app by name ([16c4907](https://github.com/HeyPuter/puter/commit/16c4907be592dae31ed3c1aa3fac3b9655255d6f))
* add protected apps ([f2f3d6f](https://github.com/HeyPuter/puter/commit/f2f3d6ff460932698fb8da7309fbce3e96132950))
* add protected subdomains ([86fca17](https://github.com/HeyPuter/puter/commit/86fca17fb17c0c24397c29b49b133deadea1de8b))
* add querystring-informed errors ([e7c0b83](https://github.com/HeyPuter/puter/commit/e7c0b8320a6829315d9154d6d513bab4491c47ea))
* add readdir delegate for shares in a user directory ([8424d44](https://github.com/HeyPuter/puter/commit/8424d446099ac30ccf829c57d43eef1f235618e4))
* add readdir delegate for sharing user homedirs ([19a5eb0](https://github.com/HeyPuter/puter/commit/19a5eb00763f3ac31df8483fb59cb7a96c448745))
* add service for notifications ([a1e6887](https://github.com/HeyPuter/puter/commit/a1e6887bf93da21b9482040b3e30ee083fb23477))
* add service to test file share logic ([332371f](https://github.com/HeyPuter/puter/commit/332371fccb198462948a440419adc7a26d671a23))
* add share list to stat ([8c49ba2](https://github.com/HeyPuter/puter/commit/8c49ba2553ce6bee20eb5b6f2721bc80f639e98a))
* add share service and share-by-email to /share ([db5990a](https://github.com/HeyPuter/puter/commit/db5990a98935817c0e16d30e921bb99c57a98fc8))
* add subdomain permission (if applicable) on app share ([13e2f72](https://github.com/HeyPuter/puter/commit/13e2f72c9f33f485570f13f45341246b1a05879f))
* add user-group permission check ([0014940](https://github.com/HeyPuter/puter/commit/00149402e041443aa3ac571fbe97a9a85f95564b))
* **backend:** add script service ([30550fc](https://github.com/HeyPuter/puter/commit/30550fcddda18469735499546de502d29b85e2ad))
* **backend:** Add tab completion to server console command arguments ([fa81dca](https://github.com/HeyPuter/puter/commit/fa81dca9507b7fa0f82099b75f2ab89c865626ac))
* **backend:** Add tab-completion to server console command names ([e1e76c6](https://github.com/HeyPuter/puter/commit/e1e76c6be71fdeb3b6246307b626734d8dc26f86))
* **backend:** add tip of day ([2d8e624](https://github.com/HeyPuter/puter/commit/2d8e6240c61dc6301f49cbdcd1c3b04736f9ca93))
* **backend:** allow services to provide user properties ([522664d](https://github.com/HeyPuter/puter/commit/522664d415c33342500defec309c2ff15bc94804))
* **backend:** allow services to provide whoami values ([fccabf1](https://github.com/HeyPuter/puter/commit/fccabf1bc0c4418f3599222616dd63bf98c14fe1))
* **backend:** improve logger and reduce logs ([4bdad75](https://github.com/HeyPuter/puter/commit/4bdad75766d0617a164024b39b79bf5373c495a6))
* Display app icon and description in embeds ([ef298ce](https://github.com/HeyPuter/puter/commit/ef298ce3aa3ce90224e883fb0ba33f9cd3a3da44))
* get first test working on share-test service ([88d6bee](https://github.com/HeyPuter/puter/commit/88d6bee9546f36d689c53ec7fe95f01f772f5211))
* **git:** Add --color and --no-color options ([d6dd1a5](https://github.com/HeyPuter/puter/commit/d6dd1a5bb0a2b2bba2cfe86d2e51ff2a6e42841c))
* **git:** Add a --debug option, which sets the DEBUG global ([fa3df72](https://github.com/HeyPuter/puter/commit/fa3df72f6ed2d45a440ebc2aacbbae67bf042478))
* **git:** Add authentication to clone, fetch, and pull. ([364d580](https://github.com/HeyPuter/puter/commit/364d580ff896691ee70d3735f495c720651a9f41))
* **git:** Add diff display to `show` and `log` subcommands ([3cad1ec](https://github.com/HeyPuter/puter/commit/3cad1ec436f99a78f782ab9576325d4341284964))
* **git:** Add start-revision and file arguments to `git log` ([49c2f16](https://github.com/HeyPuter/puter/commit/49c2f163515d2130c17a6f6a6a16bc27ea69336a))
* **git:** Allow checking out a commit instead of a branch ([057b3ac](https://github.com/HeyPuter/puter/commit/057b3acf00af49c005b9bf7069c5d22983a32e1e))
* **git:** Color output for `git status` files ([bab5204](https://github.com/HeyPuter/puter/commit/bab5204209aa2efc0c053643677a78db6ede0929))
* **git:** Display file contents as a string for `git show FILE_OID` ([a680371](https://github.com/HeyPuter/puter/commit/a68037111a04580cfa2688694a68ef6ac7a495fa))
* **git:** Display ref names in `git log` and `git show` ([45cdfcb](https://github.com/HeyPuter/puter/commit/45cdfcb5bfa66937b33054a127e0b17001f3faa4))
* **git:** Format output closer to canonical git ([60976b1](https://github.com/HeyPuter/puter/commit/60976b1ed61984d9d290f3a0ae99dd97632e9909))
* **git:** Handle detached HEAD in `git status` and `git branch --list` ([2c9b1a3](https://github.com/HeyPuter/puter/commit/2c9b1a3ffc3d5e282ffe5b83a86314e99445bbc6))
* **git:** Implement `git branch` ([ad4f132](https://github.com/HeyPuter/puter/commit/ad4f13255d52f8226f22800c16b388cf0e6384d7))
* **git:** Implement `git checkout` ([35e4453](https://github.com/HeyPuter/puter/commit/35e4453930bc4e151887f83c97efec19cc15da70))
* **git:** Implement `git cherry-pick` ([2e4259d](https://github.com/HeyPuter/puter/commit/2e4259d267b3cfafd5cefc57a02643c6432fec4d))
* **git:** Implement `git clone` ([95c8235](https://github.com/HeyPuter/puter/commit/95c8235a4a1fea39a46c40df04cb1004a2fe7b23))
* **git:** Implement `git diff` ([622b6a9](https://github.com/HeyPuter/puter/commit/622b6a9b921c3c03efc0b519c9a26c6701d80e50))
* **git:** Implement `git fetch` ([98a4b9e](https://github.com/HeyPuter/puter/commit/98a4b9ede39b94c0c6b6b8345d7551359961186a))
* **git:** Implement `git pull` ([eb2b6a0](https://github.com/HeyPuter/puter/commit/eb2b6a08b03cee0612885412cd4b03c9564044e3))
* **git:** Implement `git push` ([8c70229](https://github.com/HeyPuter/puter/commit/8c70229a188b743220db076a740a992fd7971301))
* **git:** Implement `git remote` ([43ce0d5](https://github.com/HeyPuter/puter/commit/43ce0d5b45d4eb4f296afcaaa1ecadc125c53e89))
* **git:** Implement `git restore` ([4ba8a32](https://github.com/HeyPuter/puter/commit/4ba8a32b45d395f28433572db5644d630776789e))
* **git:** Make `git add` work for deleted files ([9551544](https://github.com/HeyPuter/puter/commit/955154468f48e45028dad2e916708d6a763affad))
* **git:** Make shorten_hash() guaranteed to produce a unique hash ([dd10a37](https://github.com/HeyPuter/puter/commit/dd10a377493c0d8f10a1ac8779dc27f3f3bf6c37))
* **git:** Resolve more forms of commit reference ([b6906bb](https://github.com/HeyPuter/puter/commit/b6906bbcaaa50fc8a8c60beb6d2d38bcb7dda758))
* **git:** Understand references like `HEAD^` and `main~3` ([711dbc0](https://github.com/HeyPuter/puter/commit/711dbc0d2fde9c2ddc6c86f64fb4caa7837c9dcb))
* implicit access from apps to shared appdata dirs ([31d4eb0](https://github.com/HeyPuter/puter/commit/31d4eb090efb340fdfb7cb6b751145e859624eeb))
* introduce notification selection via driver ([c5334b0](https://github.com/HeyPuter/puter/commit/c5334b0e19cf9762f536ec482c3ff872e9c12399))
* multi-recipient multi-file share endpoint ([846fdc2](https://github.com/HeyPuter/puter/commit/846fdc20d4a887a1f8a4f3bda4fafe41efab2733))
* **parsely:** Add a fail() parser ([5656d9d](https://github.com/HeyPuter/puter/commit/5656d9d42f76202a534ad640d3a4e287e0e40418))
* **parsely:** Add stringUntil() parser ([d46b043](https://github.com/HeyPuter/puter/commit/d46b043c5d16f1205d61de3f3ba43ed8ad7bff93))
* **phoenix:** Add --dump and --file options to sed ([f250f86](https://github.com/HeyPuter/puter/commit/f250f86446a506f24fa2ad396328e3a2212a68d0))
* **phoenix:** Add more commands to sed, including labels and branching ([306014a](https://github.com/HeyPuter/puter/commit/306014adc77a7ca155feb95d1146cb46ee075b52))
* **phoenix:** Expose parsed arg tokens to apps that request them ([4067c82](https://github.com/HeyPuter/puter/commit/4067c82486c99cad20f41927ad39ebea438b717f))
* **phoenix:** Implement an `exit` builtin ([3184d34](https://github.com/HeyPuter/puter/commit/3184d3482c7b95c0fd1fc0745555ff82fc9a8c99))
* **phoenix:** Implement parsing of sed scripts ([0d4f907](https://github.com/HeyPuter/puter/commit/0d4f907b6675b15bd50a55f50aa28f0803b18b7b))
* **phoenix:** Make `clear` clear scrollback unless `-x` is given ([75a989a](https://github.com/HeyPuter/puter/commit/75a989a7b69bfdfdf69e5f0365027c5b27d8bfc6))
* **Phoenix:** Pass command line arguments and ENV when launching apps ([8f1c4fc](https://github.com/HeyPuter/puter/commit/8f1c4fcda98e72a7b970e8c6fc2fe39a5e012264))
* **phoenix:** Respond to exit status codes ([5de3052](https://github.com/HeyPuter/puter/commit/5de305202656a172b187dac87543d6c1c69a2958))
* **phoenix:** Show actual host name in prompt and neofetch ([4539408](https://github.com/HeyPuter/puter/commit/4539408a218a50244dc615cf7de56c29dcac53e6))
* rate-limit for excessive groups ([4af279a](https://github.com/HeyPuter/puter/commit/4af279a72fc9de89ddc3ba51806ca3760a36265d))
* re-send unreads on login ([02fc4d8](https://github.com/HeyPuter/puter/commit/02fc4d86b7166fb4803be5d28e2a593d6b7d9785))
* register dev center to apps ([10f4d7d](https://github.com/HeyPuter/puter/commit/10f4d7d50ce9314f9c3888c74cb17c8ebbecee98))
* send notification when file gets shared ([2f6c428](https://github.com/HeyPuter/puter/commit/2f6c428a403a006f7878861d2f0356c3294519be))
* start directory index frame ([fb1e2f2](https://github.com/HeyPuter/puter/commit/fb1e2f21fb67aefe0602f6c978199c7cd019bbf7))
* support canonical puter.js url in dev ([fd41ae2](https://github.com/HeyPuter/puter/commit/fd41ae217c7a9f7229326f62a829471580a744bd))
* **ui:** add new components ([577bd59](https://github.com/HeyPuter/puter/commit/577bd59b6cc94810e851ad544f8234e25a4e6e27))
* **ui:** add new components ([38ba425](https://github.com/HeyPuter/puter/commit/38ba42575ce9f3506f8ce219b9580202b3ed9993))
* **ui:** allow component-based settings tabs ([1245960](https://github.com/HeyPuter/puter/commit/124596058a286241b51dd87ce2fc1a68478cb5b8))
* update share endpoint to support more things ([dd5fde5](https://github.com/HeyPuter/puter/commit/dd5fde5130c1840ab598e6622766ae835142e58a))
### Bug Fixes
* add app_uid param to kv interface ([f7a0549](https://github.com/HeyPuter/puter/commit/f7a054956b8739a3bc305a49faee929ea0da1e15))
* add missing columns for public directory update ([b10302a](https://github.com/HeyPuter/puter/commit/b10302ad744fd9c58f9735743e075815183c772c))
* Add missing file extension to 0009_app-prefix-fix.sql in DB init ([a8160a8](https://github.com/HeyPuter/puter/commit/a8160a8cdcdd6aff98728a6f1643d93386e6bb5a))
* add permission implicator for file modes ([e63ab3a](https://github.com/HeyPuter/puter/commit/e63ab3a67f6555eb13d6af477a8da9f1b54d6608))
* add stream limit ([ceba309](https://github.com/HeyPuter/puter/commit/ceba309dbd4df89f310d1a530f939a5b7991f4c7))
* **backend:** remove a bad thing that really doesn't work ([8d22276](https://github.com/HeyPuter/puter/commit/8d22276f13106f7642d11da30b1500817a20ad43))
* bug introduced when refactoring /share to Sequence ([ecb9978](https://github.com/HeyPuter/puter/commit/ecb997885c1efb766827c84d2ffb8dc6ddabe992))
* check subdomain earlier for /apps ([4e3a24e](https://github.com/HeyPuter/puter/commit/4e3a24e6093e279e210765e07e436f4e63b74072))
* column nullability blunder ([1429d6f](https://github.com/HeyPuter/puter/commit/1429d6f57c67dff51fc41ca0c2868f8d000845f1))
* Correct APIError imports ([062e23b](https://github.com/HeyPuter/puter/commit/062e23b5c9673db1f8b0ff0469289d52dd1e3f99))
* correct shown flag behavior ([632c536](https://github.com/HeyPuter/puter/commit/632c5366161ff8fbbd4d60c61dfbe52dad488a2c))
* database migration ([9b39309](https://github.com/HeyPuter/puter/commit/9b39309e18a2927d25fe794d91da4e4d068c4bca))
* do not delegate to select on read like ever that is really dumb ([a2a10b9](https://github.com/HeyPuter/puter/commit/a2a10b94be59403e03fb08bec5d7c056ce5b554f))
* docker runtime fail because stdout columns ([94c0449](https://github.com/HeyPuter/puter/commit/94c0449437ce4cb26d00a15a3f277bc7b09367b4))
* fix issues with apps in /share endpoint ([0cf90ee](https://github.com/HeyPuter/puter/commit/0cf90ee39af6548d271dec45ed8ee9e6df1cd14d))
* fix owner ids for default apps ([283f409](https://github.com/HeyPuter/puter/commit/283f409a662d126e7f3ce811f1467ac6fab9a522))
* fix permission cascade properly this time ([de58866](https://github.com/HeyPuter/puter/commit/de5886698e1eae2b250baac174b57029f3244e96))
* Fix phoenix app prefix and TokenService test ([afb9d86](https://github.com/HeyPuter/puter/commit/afb9d866b5091058711db931cde904947e661c15))
* fix that fix ([b126b67](https://github.com/HeyPuter/puter/commit/b126b670940a0e20cfe7bd0eba3db891bab5c142))
* fix typo ([ce328b7](https://github.com/HeyPuter/puter/commit/ce328b7245ad741b64c5885f64f806fc98a55d84))
* **git:** Make git commit display detached HEAD correctly ([73d0f5a](https://github.com/HeyPuter/puter/commit/73d0f5a90cb5dcbadfc6d0fd22f14e8bc0e61f86))
* group permission audit table ([7d2f6d2](https://github.com/HeyPuter/puter/commit/7d2f6d256f56e30d752e9999c6e8bde68f9d9637))
* handle subpaths under another user ([d128cee](https://github.com/HeyPuter/puter/commit/d128ceed6f4928fa0793815feb2e2715cd273ff8))
* handling of batch requests with zero files ([c0063a8](https://github.com/HeyPuter/puter/commit/c0063a871fd891a1774f1bee00e86170fed249fa))
* i forgot to test reloading ([7eabb43](https://github.com/HeyPuter/puter/commit/7eabb43bd4257b4129d67eaeda2aa27e8268dc78))
* improve console experience on mac ([15465bf](https://github.com/HeyPuter/puter/commit/15465bfc5035a64762f7c86a3d38af8be6be5b59))
* incorrect error from suggested_apps ([b648817](https://github.com/HeyPuter/puter/commit/b648817f2743c2b6214ebe4177d921c9b9027594))
* Make polyfilled import.meta.filename getter a valid function ([85c6798](https://github.com/HeyPuter/puter/commit/85c679844869b6b05fcbda231d8dc7026a66da97))
* null email in request to /share ([bf63144](https://github.com/HeyPuter/puter/commit/bf63144f7a79c48bd650ae851ddd0c8a10d748c3))
* Only run Component initialization functions once ([5b43358](https://github.com/HeyPuter/puter/commit/5b43358219402bee3eadf4a0f184a4b924d3293b))
* oops ([a136ee5](https://github.com/HeyPuter/puter/commit/a136ee5edd3149798a0d82f494f423f503b65f00))
* **parsely:** Make Repeat parser work when no separator is given ([9b4d16f](https://github.com/HeyPuter/puter/commit/9b4d16fbe9d5698c57f9da725a22b528a7d7cac2))
* peers array assumption ([10cbf08](https://github.com/HeyPuter/puter/commit/10cbf08233620440aa39f5302deaac4f59f02247))
* **phoenix:** Add missing newlines to sed command output ([e047b0b](https://github.com/HeyPuter/puter/commit/e047b0bf302284da61e677432e4cc25b531b24f2))
* **phoenix:** Gracefully handle completing a non-existent path ([d76e713](https://github.com/HeyPuter/puter/commit/d76e7130cba9f0ca05940abafe4fd1a41464aa83))
* property validation on some permission endpoints ([0855f2b](https://github.com/HeyPuter/puter/commit/0855f2b36eca3bbdaa8429cbde3aa1242e8e96ee))
* readdir on file ([a72ec97](https://github.com/HeyPuter/puter/commit/a72ec9799ac3bd76ceafa22cce149e373a13f3b9))
* remove last component when share URL is file ([1166e69](https://github.com/HeyPuter/puter/commit/1166e69c76688d1811701c56cd4df9d38e286793))
* remove legacy permission check in stat ([f2c6e01](https://github.com/HeyPuter/puter/commit/f2c6e01296e4214336e63bc2d69bcbf17f59890f))
* Remove null or duplicate app entries from suggest_app_for_fsentry() ([6900233](https://github.com/HeyPuter/puter/commit/6900233c5aaa2d1a49f495e9f9a060796757a91e))
* **security:** Move token for socket.io to request body ([49b257e](https://github.com/HeyPuter/puter/commit/49b257ecffbb1e12090b86a67528a5ad09da69db))
* switch share notif username to sender ([cd65217](https://github.com/HeyPuter/puter/commit/cd65217f5cda1c986ee231e2eeeef5abefa36ecb))
* **Terminal:** Accept input from Chrome on Android ([4ef3e53](https://github.com/HeyPuter/puter/commit/4ef3e53de34f0097950a7e707ca2483863beafb5))
* Throw an error when readdir is called on a non-directory ([46eb4ed](https://github.com/HeyPuter/puter/commit/46eb4ed2b96c235e10e15645a30d2f192a1af0de))
* type error in puter-site ([d96f924](https://github.com/HeyPuter/puter/commit/d96f924cad7a13ea6e9084bb0ebb79ecc5fcb8a3))
* ui color input attributes ([d9c4fbb](https://github.com/HeyPuter/puter/commit/d9c4fbbd1dcce12ee05ee33652a5fa518196463d))
* **ui:** improve Component base class ([f8780d0](https://github.com/HeyPuter/puter/commit/f8780d032b10138851c22af53b8610c578139acc))
* update email share object ([9033f6f](https://github.com/HeyPuter/puter/commit/9033f6f8c74ef8739294d640ac1c7eba95519bbd))
* update PD alert custom details ([2f16322](https://github.com/HeyPuter/puter/commit/2f163221bdde09425cae11ef7f8e4eb0b10c7103))
* update test kernel ([55c609b](https://github.com/HeyPuter/puter/commit/55c609b3fec4ef018febc6e88c44a6277960d728))
* validate size metadata ([2008db0](https://github.com/HeyPuter/puter/commit/2008db08524259264a0c8186a34fc75d7a133f5f))
## 2.3.0 (2024-05-22)
### Features
* add /healthcheck endpoint ([c166560](https://github.com/HeyPuter/puter/commit/c166560ff4ab5a453d3ec4f97326c995deb7f522))
* Add command names to phoenix tab-completion ([cf0eee1](https://github.com/HeyPuter/puter/commit/cf0eee1fa35328e05aefc8a425b5977efe5f4ec9))
* add option to change desktop background to default ([03f05f3](https://github.com/HeyPuter/puter/commit/03f05f316f11e8afe5fcee40b2b80a0de5e6826f))
* allow apps to add a menubar via puter.js ([331d9e7](https://github.com/HeyPuter/puter/commit/331d9e75428ec7609394f59b1755374c7340f83e))
* Allow querying puter-apps driver by partial app names ([dc5b010](https://github.com/HeyPuter/puter/commit/dc5b010d0913d2151b4851f8da5df72d2c8f42e7))
* Display upload errors in UIWindowProgress dialog ([edebbee](https://github.com/HeyPuter/puter/commit/edebbee9e7e9efbb33bf709b637c103be40d15a8))
* Implement 'Like' predicate in entity storage ([a854a0d](https://github.com/HeyPuter/puter/commit/a854a0dc0aa79a31695db833184c5ca3698632a9))
* improve password recovery experience ([04432df](https://github.com/HeyPuter/puter/commit/04432df5540811710ce1cc47ce6c136e5453bccb))
* **security:** add ip rate limiting ([ccf1afc](https://github.com/HeyPuter/puter/commit/ccf1afc93c24ee7f9a126216209a185d6b4d9fe4))
* Show "Deleting /foo" in progress window when deleting files ([f07c13a](https://github.com/HeyPuter/puter/commit/f07c13a50cee790eec44bce2f6e56fbcbf73f9b0))
### Bug Fixes
* Add missing file extension to 0009_app-prefix-fix.sql in DB init ([a8160a8](https://github.com/HeyPuter/puter/commit/a8160a8cdcdd6aff98728a6f1643d93386e6bb5a))
* Add missing TextEncoder to PTT ([8d4a1e0](https://github.com/HeyPuter/puter/commit/8d4a1e0ed3872e2c82b9e4be9b6d8b359e9cea09))
* Correct APIError imports ([062e23b](https://github.com/HeyPuter/puter/commit/062e23b5c9673db1f8b0ff0469289d52dd1e3f99))
* Correct grep output when asking for line numbers ([c8a20ca](https://github.com/HeyPuter/puter/commit/c8a20cadbfd539d185d32f4558916825fcf265ba))
* Correct inverted instanceof check in SignalReader.read() ([d4c2b49](https://github.com/HeyPuter/puter/commit/d4c2b492ef4864804776d3cb7d24797fdc536886))
* Correct variables used in errors in sign.js ([fa7c6be](https://github.com/HeyPuter/puter/commit/fa7c6bee9699527028be0ae9759155bc67c52324))
* Eliminates duplicate translation keys ([5800350](https://github.com/HeyPuter/puter/commit/5800350b253994dea410afff64e3df2a171e7775))
* fix error handling for outdated node versions ([4c1d5a4](https://github.com/HeyPuter/puter/commit/4c1d5a4b6d009ce075897d499d3517219bd745a4))
* Fix phoenix app prefix and TokenService test ([afb9d86](https://github.com/HeyPuter/puter/commit/afb9d866b5091058711db931cde904947e661c15))
* increase QR code size ([d2de46e](https://github.com/HeyPuter/puter/commit/d2de46edfbc05d132d5c929f6935b82515fbbda0))
* Make PathCommandProvider reject queries with path separators ([d733119](https://github.com/HeyPuter/puter/commit/d73311945610417a1ebc7bb0723ced0a599594b4))
* Make url variable accessible to all users of it ([2f30ae7](https://github.com/HeyPuter/puter/commit/2f30ae7a825adcd8da95888c38fe39c34acee0ff))
* Only run Component initialization functions once ([5b43358](https://github.com/HeyPuter/puter/commit/5b43358219402bee3eadf4a0f184a4b924d3293b))
* Parse octal echo escapes ([6ad8f5e](https://github.com/HeyPuter/puter/commit/6ad8f5e06abd050d319271f818d72debf5bc8e44))
* reduce token lengths ([5a76bad](https://github.com/HeyPuter/puter/commit/5a76bad28dfd8ec89a309941e410a54927fae22d))
* reliability issue :bug: ([1d546d9](https://github.com/HeyPuter/puter/commit/1d546d9ef70ef9066ad5838e9782ae330d289f29))
* Remove null or duplicate app entries from suggest_app_for_fsentry() ([6900233](https://github.com/HeyPuter/puter/commit/6900233c5aaa2d1a49f495e9f9a060796757a91e))
* **security:** always use application/octet-stream ([74e213a](https://github.com/HeyPuter/puter/commit/74e213a534dbf2844c8cebeee7eb59ec70de306e))
* **security:** Fix session revocation ([eb166a6](https://github.com/HeyPuter/puter/commit/eb166a67a9f0caf4fd77f9e27dc8209c2fc51f4c))
* **security:** Move token for socket.io to request body ([49b257e](https://github.com/HeyPuter/puter/commit/49b257ecffbb1e12090b86a67528a5ad09da69db))
* **security:** Prevent email enumeration ([ed70314](https://github.com/HeyPuter/puter/commit/ed703146863f896df76c98fad7127c6748c0ef9b))
* **security:** skip cache when checking old passwd ([7800ef6](https://github.com/HeyPuter/puter/commit/7800ef61029c8d1ba47491b4028a0cb972298725))
* **Terminal:** Accept input from Chrome on Android ([4ef3e53](https://github.com/HeyPuter/puter/commit/4ef3e53de34f0097950a7e707ca2483863beafb5))
* test release-please action [#3](https://github.com/HeyPuter/puter/issues/3) ([8fb0a66](https://github.com/HeyPuter/puter/commit/8fb0a66ef21921990e564e5f61c0e80e7f929dc7))
* test release-please action [#4](https://github.com/HeyPuter/puter/issues/4) ([f392de7](https://github.com/HeyPuter/puter/commit/f392de722a5232b622ed91b656a31cdc443c2e84))
* typographical error :bug: ([2949f71](https://github.com/HeyPuter/puter/commit/2949f71691eb0a258888c5d2a5bb496d2fe64a23))
* typographical errors :bug: ([4d30740](https://github.com/HeyPuter/puter/commit/4d30740198402cd1cc61b9ea4c45e006b69ec87e))
* Use correct variable for version number ([52d5299](https://github.com/HeyPuter/puter/commit/52d52993744dffa9f7f59a232da5df9077560731))
* use primary read in signup ([30f17ad](https://github.com/HeyPuter/puter/commit/30f17ade3a893d2283316e581836607e2029f9b9))
## [2.2.0](https://github.com/HeyPuter/puter/compare/v2.1.1...v2.2.0) (2024-04-23)
### Features
* add /healthcheck endpoint ([c166560](https://github.com/HeyPuter/puter/commit/c166560ff4ab5a453d3ec4f97326c995deb7f522))
* allow apps to add a menubar via puter.js ([331d9e7](https://github.com/HeyPuter/puter/commit/331d9e75428ec7609394f59b1755374c7340f83e))
## [2.1.1](https://github.com/HeyPuter/puter/compare/v2.1.0...v2.1.1) (2024-04-22)
+35 -13
View File
@@ -45,37 +45,59 @@ If you'd like to contribute code to Puter, you need to fork the project and subm
We'll review your pull request and work with you to get your changes merged into the project.
## Repository Structure
![file structure](./doc/File%20Structure.drawio.png)
## Your first code contribution
We maintain a list of issues that are good for first-time contributors. You can find these issues by searching for the [`good first issue`](https://github.com/HeyPuter/puter/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) label in our [GitHub repository](https://github.com/HeyPuter/puter). These issues are designed to be relatively easy to fix, and we're happy to help you get started. Pick an issue that interests you, and leave a comment on the issue to let us know you're working on it.
<br>
## Documentation for Contributors
See [doc/contributors/index.md](./doc/contributors/index.md) for more information.
### Backend
See [src/backend/CONTRIBUTING.md](src/backend/CONTRIBUTING.md)
<br>
## PR Standards
We expect the following from pull requests (it makes things easier):
- If you're closing an issue, please reference that issue in the PR description
- Avoid whitespace changes
- No regressions for "appspace" (Puter apps)
<br>
## Commit Messages
Use the imperative, as is the convention in the Linux kernel:
**Note:** we will squash-merge some PRs so they follow . Large PRs should follow conventional commits also. The instructions below are outdated but suitable for most PRs.
- correct: `Improve performance of readdir`
- incorrect: `Improved readdir`
- incorrect: `Improving readdir`
### Conventional Commits
We use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) with the following prefixes:
- `fix:` for bug fixes
- `dev:` instead of `refactor:`; covers more basis
- `tweak:` for small updates
- `sync:` when updating data from another source
- `feat:` for a commit that first introduces a new feature
Commit messages after the prefix should use the imperative (the same convention used in the repo for Linux, which Git was built for):
- correct: `dev: improve performance of readdir`
- incorrect: `dev: improved readdir`
- incorrect: `dev: improving readdir`
We have the following exceptions to this rule:
- If the commit message is in _past tense_, it's a shorthand for the following:
- `Apply changes that would be applied after one had <past tense message>`
- `dev: apply changes that would be applied after one had <past tense message>`
- If the commit message is in _present tense_, it's shorthand for the following:
- `Apply changes that would be applied after <present-tense message>`
- `dev: apply changes that would be applied after <present-tense message>`
For example, the following are correct:
- `Improved readdir`
- interpret this as: `Apply changes that would be applied after one had improved readdir`
- `Improving readdir`
- interpret this as: `Apply changes that would be applied after improving readdir`
- `dev: improved readdir`
- interpret this as: `dev: apply changes that would be applied after one had improved readdir`
- `dev: improving readdir`
- interpret this as: `dev: apply changes that would be applied after improving readdir`
<br>
+20 -6
View File
@@ -8,7 +8,7 @@
# worry about Docker unless the build/run process changes.
# Build stage
FROM node:21-alpine AS build
FROM node:22-alpine AS build
# Install build dependencies
RUN apk add --no-cache git python3 make g++ \
@@ -23,15 +23,25 @@ COPY package*.json ./
# Copy the source files
COPY . .
# Install mocha
RUN npm install -g mocha
# Install node modules
RUN npm cache clean --force \
&& npm ci
RUN npm cache clean --force && \
for i in 1 2 3; do \
npm ci && break || \
if [ $i -lt 3 ]; then \
sleep 15; \
else \
exit 1; \
fi; \
done
# Run the build command if necessary
RUN npm run build
RUN cd src/gui && npm run build && cd -
# Production stage
FROM node:21-alpine
FROM node:22-alpine
# Set labels
LABEL repo="https://github.com/HeyPuter/puter"
@@ -46,7 +56,7 @@ RUN mkdir -p /opt/puter/app
WORKDIR /opt/puter/app
# Copy built artifacts and necessary files from the build stage
COPY --from=build /app/dist ./dist
COPY --from=build /app/src/gui/dist ./dist
COPY --from=build /app/node_modules ./node_modules
COPY . .
@@ -61,4 +71,8 @@ HEALTHCHECK --interval=30s --timeout=3s \
ENV NO_VAR_RUNTUME=1
# Attempt to fix `[email protected]` missing after build stage
# by doing a redundant `npm install` at this stage
RUN npm install
CMD ["npm", "start"]
+89 -103
View File
@@ -3,10 +3,14 @@
<h3 align="center">The Internet OS! Free, Open-Source, and Self-Hostable.</h3>
<p align="center">
<a href="https://puter.com/"><strong>« LIVE DEMO »</strong></a>
<img alt="test" src="https://github.com/heyPuter/puter/actions/workflows/test.yml/badge.svg">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/?ref=github.com"><strong>« LIVE DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
<a href="https://puter.com/?ref=github.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
@@ -15,27 +19,27 @@
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
·
<a href="https://hackerone.com/puter_h1b">Bug Bounty</a>
</p>
<h3 align="center"><img width="700" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-2.webp"></h3>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter is an advanced, open-source internet operating system designed to be feature-rich, exceptionally fast, and highly extensible. It can be used to build remote desktop environments or serve as an interface for cloud storage services, remote servers, web hosting platforms, and more.
Puter is an advanced, open-source internet operating system designed to be feature-rich, exceptionally fast, and highly extensible. Puter can be used as:
- A privacy-first personal cloud to keep all your files, apps, and games in one secure place, accessible from anywhere at any time.
- A platform for building and publishing websites, web apps, and games.
- An alternative to Dropbox, Google Drive, OneDrive, etc. with a fresh interface and powerful features.
- A remote desktop environment for servers and workstations.
- A friendly, open-source project and community to learn about web development, cloud computing, distributed systems, and much more!
<br/>
## Getting Started
After reading this section, please proceed to **Self-Hosting** and **Configuration** below.
Read these instructions carefully or you may see errors due to
an invalid setup.
### Local Development
### 💻 Local Development
```bash
git clone https://github.com/HeyPuter/puter
@@ -44,21 +48,24 @@ npm install
npm start
```
This will launch Puter at http://localhost:4000 (or the next available port).
This will launch Puter at http://puter.localhost:4100 (or the next available port).
If this does not work, see [First Run Issues](./doc/first-run-issues.md) for
troubleshooting steps.
<br/>
### Using Docker
**note:** it is **not** necessary to run this within a clone of this repository. For contributors, it is recommended to use the [Local Development](#local-development) instructions.
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
### Using Docker Compose
<br/>
**note:** it is **not** necessary to run this within a clone of this repository. For contributors, it is recommended to use the [Local Development](#local-development) instructions.
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
@@ -69,114 +76,93 @@ docker compose up
<br/>
See [Configuration](#configuration) for next steps.
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
## ⚠️ Self-Hosting ⚠️
The self-hosted version of Puter is currently in alpha stage and should not be used in production yet. It is under active development and may contain bugs, other issues. Please exercise caution and use it for testing and evaluation purposes only.
### 🚀 Self-Hosting
For detailed guides on self-hosting Puter, including configuration options and best practices, see our [Self-Hosting Documentation](https://github.com/HeyPuter/puter/blob/main/doc/self-hosters/instructions.md).
<br/>
## Configuration
### ☁️ Puter.com
Running the server will generate a configuration file in one of these locations:
- `config/config.json` when [Using Docker](#using-docker)
- `volatile/config/config.json` in [Local Development](#local-development)
- `/etc/puter/config.json` on a server (or within a Docker container)
### Domain Name
To access Puter on your device, you can simply go to the address printed in
the server console (usually `puter.localhost:4100`).
To access Puter from another device, a domain name must be configured, as well as
an `api` subdomain. For example, `example.local` might be the domain name pointing
to the IP address of the server running puter, and `api.example.com` must point to
this address as well. This domain must be specified in the configuration file
(usually `volatile/config/config.json`) as well.
See [domain configuration](./doc/self-hosters/domains.md) for more information.
### Configure the Port
- You can specify a custom port by setting `http_port` to a desired value
- If you're using a reverse-proxy such as nginx or cloudflare, you should
also set `pub_port` to the public (external) port (usually `443`)
- If you have HTTPS enabled on your reverse-proxy, ensure that
`protocol` in config.json is set accordingly
### Default User
By default, Puter will create a user called `default_user`.
This user will have a randomly generated password, which will be printed
in the development console.
A warning will persist in the dev console until this user's
password is changed. Please login to this user and change the password as
your first step.
Puter is available as a hosted service at [**puter.com**](https://puter.com).
<br/>
## License
## System Requirements
This repository is licensed under AGPL-3.0; However, our SDK (puter.js) is also available under Apache 2.0, as indicated by the license file in that section (packages/puter-js) of this repository.
- **Operating Systems:** Linux, macOS, Windows
- **RAM:** 2GB minimum (4GB recommended)
- **Disk Space:** 1GB free space
- **Node.js:** Version 16+ (Version 22+ recommended)
- **npm:** Latest stable version
<br/>
## FAQ
## Support
### ❓ What's the use case for Puter?
Connect with the maintainers and community through these channels:
Puter can be used as:
- Bug report or feature request? Please [open an issue](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Security issues? [[email protected]](mailto:[email protected])
- Email maintainers at [[email protected]](mailto:[email protected])
- An alternative to Dropbox, Google Drive, OneDrive, etc. with a fresh interface and powerful features.
- Remote desktop environment for servers and workstations.
- A platform for building and hosting websites, web apps, and games.
- A friendly, open-source project and community to learn about web development, cloud computing, distributed systems, and much more!
We are always happy to help you with any questions you may have. Don't hesitate to ask!
<br/>
## License
### ❓ Why isn't Puter built with React, Angular, Vue, etc.?
For performance reasons, Puter is built with vanilla JavaScript and jQuery. Additionally, we'd like to avoid complex abstractions and to remain in control of the entire stack, as much as possible.
Also partly inspired by some of our favorite projects that are not built with frameworks: [VSCode](https://github.com/microsoft/vscode), [Photopea](https://www.photopea.com/), and [OnlyOffice](https://www.onlyoffice.com/).
This repository, including all its contents, sub-projects, modules, and components, is licensed under [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) unless explicitly stated otherwise. Third-party libraries included in this repository may be subject to their own licenses.
<br/>
### ❓ Why jQuery?
## Translations
Puter interacts directly with the DOM and jQuery provides an elegant yet powerful API to manipulate the DOM, handle events, and much more. It's also fast, mature, and battle-tested.
<br/>
## #DoesItRunPuter
- [Minecraft](https://twitter.com/HeyPuter/status/1771957571496092036) | [video](https://www.youtube.com/watch?v=GIowZUXkg5g)
- [Samsung Watch](https://twitter.com/CharmunkDev/status/1781501714543030554)
- [PlayStation 4](https://twitter.com/HeyPuter/status/1767978053014270059)
- [Skyworth TV](https://twitter.com/ericalexdube/status/1767983049277411564)
- [A Fridge!](https://twitter.com/HeyPuter/status/1778890003797745842)
- [Oculus Quest 2](https://twitter.com/HeyPuter/status/1768664081756754012)
- [Tesla Model 3](https://twitter.com/EricLighthall/status/1781479732997214501)
- [Tesla Model S](https://twitter.com/HeyPuter/status/1767971178864587057)
- [Tesla Model Y](https://twitter.com/HeyPuter/status/1772858333751636310)
- [Nintendo Switch](https://twitter.com/HeyPuter/status/1780645795240538518)
- [Steam Deck](https://twitter.com/everythingSung/status/1782162352403828793)
<br/>
## Credits
The default wallpaper is created by [Milad Fakurian](https://unsplash.com/photos/blue-orange-and-yellow-wallpaper-E8Ufcyxz514) and published on [Unsplash](https://unsplash.com/).
Icons by [Papirus](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme) under GPL-3.0 license.
Icons by [Iconoir](https://iconoir.com/) under MIT license.
Icons by [Elementary Icons](https://github.com/elementary/icons) under GPL-3.0 license.
Icons by [Tabler Icons](https://tabler.io/) under MIT license.
Icons by [bootstrap-icons](https://icons.getbootstrap.com/) under MIT license.
- [Arabic / العربية](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ar.md)
- [Armenian / Հայերեն](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.hy.md)
- [Bengali / বাংলা](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.bn.md)
- [Chinese / 中文](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.zh.md)
- [Danish / Dansk](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.da.md)
- [English](https://github.com/HeyPuter/puter/blob/main/README.md)
- [Farsi / فارسی](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.fa.md)
- [Finnish / Suomi](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.fi.md)
- [French / Français](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.fr.md)
- [German/ Deutsch](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.de.md)
- [Hebrew/ עברית](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.he.md)
- [Hindi / हिंदी](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.hi.md)
- [Hungarian / Magyar](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.hu.md)
- [Indonesian / Bahasa Indonesia](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.id.md)
- [Italian / Italiano](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.it.md)
- [Japanese / 日本語](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.jp.md)
- [Korean / 한국어](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ko.md)
- [Malayalam / മലയാളം](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ml.md)
- [Polish / Polski](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.pl.md)
- [Portuguese / Português](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.pt.md)
- [Romanian / Română](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ro.md)
- [Russian / Русский](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ru.md)
- [Spanish / Español](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.es.md)
- [Swedish / Svenska](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.sv.md)
- [Tamil / தமிழ்](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ta.md)
- [Telugu / తెలుగు](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.te.md)
- [Thai / ไทย](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.th.md)
- [Turkish / Türkçe](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.tr.md)
- [Ukrainian / Українська](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ua.md)
- [Urdu / اردو](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ur.md)
- [Vietnamese / Tiếng Việt](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.vi.md)
+3 -1
View File
@@ -3,5 +3,7 @@ We would like to thank the following security researchers for their responsible
# 2024
- Tim Suess: [GitHub](https://github.com/blackfortresslabs) | [Email]([email protected]) | [Website](blackfortresslabs.com)
- Ritesh Sahu [GitHub](https://github.com/riteshs4hu/) | [X](https://x.com/riteshs4hu) | [Website](https://medium.com/@riteshs4hu)
- Tim Suess: [GitHub](https://github.com/blackfortresslabs) | [Email]([email protected]) | [Website](https://www.blackfortresslabs.com)
- xyzeva: [Github](https://github.com/xyzeva) | [Email](mailto:[email protected]) | [Website](https://kibty.town/)
- Yusuf Kelany: [GitHub](https://github.com/YusufYaser) | [X](https://x.com/RealYusufYaser) | [Website](https://yusufyaser.xyz)
-1
View File
@@ -37,4 +37,3 @@ Please submit a report to us before engaging in conduct that may be inconsistent
* Please provide detailed reports with reproducible steps and a clearly defined impact.
* Include the version number of the vulnerable package in your report
* Social engineering (e.g. phishing, vishing, smishing) is prohibited.
+214
View File
@@ -0,0 +1,214 @@
# Trademark Guidelines
Version 1.0 dated January 1, 2025
<img src="https://puter.com/images/logo.png" alt="Puter Technologies Inc. Logo" width="150"/>
<br>
This trademark policy was prepared to help you understand how to use the Puter trademarks, service marks and logos with Puter Technologies Inc.'s Puter software.
While some of our software is available under a free and open source software license, that copyright license does not include a license to use our trademark, and this Policy is intended to explain how to use our marks consistent with background law and community expectation.
This Policy covers:
1. Our **word** trademarks and service marks: Puter Technologies Inc., Puter, Puter.com
2. Our **logos**: The Puter Technologies Inc. logo at the top of this policy
This policy encompasses all trademarks and service marks, whether they are registered or not.
<br>
<br>
## 1. GENERAL GUIDELINES
Whenever you use one of our marks, you must always do so in a way that does not mislead anyone about what they are getting and from whom. For example, you cannot say you are providing the Puter software when you're providing a modified version of it, because recipients may not understand the differences between your modified versions and our own.
You also cannot use our logo on your website in a way that suggests that your website is an official website or that we endorse your website.
You can, though, say you like the Puter software, that you participate in the Puter community, that you are providing an unmodified version of the Puter software.
You may not use or register our marks, or variations of them as part of your own trademark, service mark, domain name, company name, trade name, product name or service name.
Trademark law does not allow your use of names or trademarks that are too similar to ours. You therefore may not use an obvious variation of any of our marks or any phonetic equivalent, foreign language equivalent, takeoff, or abbreviation for a similar or compatible product or service. We would consider the following too similar to one of our Marks:
- MyPuter
- PuterFooBar
<br>
<br>
## 2. ACCEPTABLE USES
<br>
### Distribution of Unmodified Software
When you redistribute an unmodified copy of Puter software, you must retain all trademarks, logos, and notices we have placed on the software to identify its origin. This includes:
* Binary distributions exactly as we provide them
* Source code distributions exactly as we provide them
* Documentation and other materials directly from our official repositories
<br>
### Distribution of Modified Software
If you distribute a modified version of Puter software, you:
* Must remove all Puter logos from the modified software
* May use our word marks (but not logos) to accurately describe the software's origin
* Must clearly indicate that the software has been modified
* Must include a notice stating: "This software is a modified version of Puter software and is not endorsed by Puter Technologies Inc."
Example of acceptable description: "This software is derived from Puter software and includes modifications for [describe your changes]."
<br>
### Compatibility Statements
You may use our word marks (but not logos) to accurately describe your software's compatibility with Puter software under these conditions:
* Your statements about compatibility must be accurate and not misleading
* You must include the following notice: "Puter is a trademark of Puter Technologies Inc. This [product/service] is not affiliated with or endorsed by Puter Technologies Inc."
* You may not suggest that Puter Technologies Inc. has certified or approved your software
<br>
### Products Built for Puter
You may describe your product as working with or being built for Puter if:
* Your product is fully compatible with the documented Puter APIs
* Your product name follows this format: "[Your Product Name] for Puter"
* You include this notice in all materials: "Puter is a trademark of Puter Technologies Inc. [Your Product Name] is not affiliated with or endorsed by Puter Technologies Inc."
* Your branding and marketing materials do not create confusion about the source of your product
<br>
### Open Source Projects
For open source projects that interact with or extend Puter software:
* You may use "puter" as part of your project name only if:
* The name is in the format "[descriptor]-puter" (e.g., "auth-puter", "backup-puter")
* The project's README clearly states it's not officially associated with Puter
* The project maintains compatibility with current Puter APIs
* You must not use our logos without explicit permission
* You must include appropriate trademark attribution notices
<br>
### Community Activities
You may use our word marks (but not logos) for non-commercial community activities:
* User groups and meetups focused on Puter software
* Educational content about Puter software
* Blog posts, videos, articles, or tutorials about Puter software
Conditions for community use:
* Activities must be non-commercial
* Any fees charged must only cover actual costs
* You must include appropriate trademark attribution
* You must not suggest official endorsement without explicit permission
<br>
### Merchandise and Promotional Items
You may not create merchandise or promotional items bearing our marks without explicit written permission from Puter Technologies Inc.
<br>
### Academic and Research Use
You may use our word marks (but not logos) in:
* Academic papers
* Research publications
* Technical documentation
* Educational materials
Include appropriate citations and trademark attributions in such uses.
<br>
### Online Content and Social Media
When using our marks in online content:
* You may use our word marks in hashtags, handles, or usernames if:
* The content is clearly about Puter software
* You don't imply official status
* You include appropriate trademark attribution
* You must not register social media accounts that could be confused with official Puter accounts
<br>
### APIs and Development
When developing with Puter APIs:
* You may use our word marks to accurately describe your integration
* You must not use our marks in a way that suggests your API or service is endorse by
Puter or provided by Puter
* You must include appropriate trademark attribution
All uses described above must also comply with the General Guidelines section of this policy and maintain the integrity of our marks as described in the How to Display Our Marks section.
<br>
### No Domain Names
You must not register any domain that includes our word marks or any variant or combination of them.
<br>
<br>
## 3. HOW TO DISPLAY OUR MARKS
When you have the right to use our mark, here is how to display it.
<br>
### Trademark marking and legends
The first or most prominent mention of a mark on a webpage, document, or documentation should be accompanied by a symbol indicating whether the mark is a registered trademark ("®") or an unregistered trademark ("™"). If you don't know which applies, contact us.
Place the following notice at the foot of the page where you have used the mark: "Puter is trademark of Puter Technologies Inc."
<br>
### Use of trademarks in text
**Always use trademarks in their exact form with the correct spelling, neither abbreviated, hyphenated, or combined with any other word or words.**
Unacceptable: Puter-DB
**Don't pluralize a trademark.**
Unacceptable: I have seventeen Puters running in my lab.
**Always use a trademark as an adjective modifying a noun.**
Unacceptable: This is a Puter.
Acceptable: This is a Puter software application.
<br>
### Use of Logos
You may not change any logo except to scale it. This means you may not add decorative elements, change the colors, change the proportions, distort it, add elements, or combine it with other logos.
However, when the context requires the use of black-and-white graphics and the logo is color, you may reproduce the logo in a manner that produces a black-and-white image.
<br>
<br>
## This Document
These guidelines are based on the Model Trademark Guidelines, available at http://www.modeltrademarkguidelines.org., used under a Creative Commons Attribution 3.0 Unported license: https://creativecommons.org/licenses/by/3.0/deed.en_US.
+1
View File
@@ -0,0 +1 @@
header: doc/license_header.txt
+16
View File
@@ -0,0 +1,16 @@
# #DoesItRunPuter
- [Minecraft](https://twitter.com/HeyPuter/status/1771957571496092036) | [video](https://www.youtube.com/watch?v=GIowZUXkg5g)
- [Samsung Watch](https://twitter.com/CharmunkDev/status/1781501714543030554)
- [PlayStation 4](https://twitter.com/HeyPuter/status/1767978053014270059)
- [Skyworth TV](https://twitter.com/ericalexdube/status/1767983049277411564)
- [A Fridge!](https://twitter.com/HeyPuter/status/1778890003797745842)
- [Oculus Quest 2](https://twitter.com/HeyPuter/status/1768664081756754012)
- [Tesla Model 3](https://twitter.com/EricLighthall/status/1781479732997214501)
- [Tesla Model S](https://twitter.com/HeyPuter/status/1767971178864587057)
- [Tesla Model Y](https://twitter.com/HeyPuter/status/1772858333751636310)
- [Nintendo Switch](https://twitter.com/HeyPuter/status/1780645795240538518)
- [Steam Deck](https://twitter.com/everythingSung/status/1782162352403828793)
- [Ladybird Browser](https://x.com/HeyPuter/status/1810783504503800035)
- [Garry's Mod](https://x.com/HeyPuter/status/1850587712786722862)
- [Samsung Q88BA](https://x.com/AmirIsAround/status/1862614583263076540)
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

@@ -0,0 +1,30 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="40" height="40" rx="8" fill="url(#paint0_linear_1_68)"/>
<rect x="1.05" y="1.05" width="37.9" height="37.9" rx="6.95" stroke="white" stroke-opacity="0.15" stroke-width="2.1"/>
<g filter="url(#filter0_d_1_68)">
<path d="M19.9999 30V20.6668H17.4545" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M28.8316 27.9194L26.3633 25.3334V20.6668H23.8179" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M18.7272 12.6669C18.7376 10.8665 19.4233 9.14251 20.6362 7.86699" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M15.1637 15.3336C15.4104 14.5502 15.8887 13.8696 16.5294 13.3901C17.1701 12.9107 17.9399 12.6574 18.7272 12.6669C19.2584 12.6621 19.7842 12.7789 20.2678 13.0092C20.7515 13.2395 21.1812 13.5778 21.5271 14.0002" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M11.1681 27.9194L13.6364 25.3334V20.6668H12.3637C11.5257 20.6757 10.6944 20.5094 9.91854 20.1775C9.14265 19.8457 8.43776 19.3549 7.84516 18.7341C7.25256 18.1133 6.78416 17.3748 6.46738 16.5619C6.1506 15.7491 5.99182 14.8782 6.00032 14.0002C5.99182 13.1223 6.1506 12.2514 6.46738 11.4385C6.78416 10.6257 7.25256 9.88722 7.84516 9.26639C8.43776 8.64556 9.14265 8.15483 9.91854 7.82296C10.6944 7.49109 11.5257 7.32474 12.3637 7.33366C13.06 7.33705 13.7499 7.47257 14.4 7.73365C14.7269 7.19693 15.1788 6.7562 15.7132 6.45296C16.2476 6.14973 16.8468 5.99396 17.4545 6.00034C18.0927 6.00185 18.7199 6.17411 19.2767 6.50078C19.8335 6.82746 20.3015 7.29772 20.6362 7.86698C21.8314 6.6594 23.4301 5.98946 25.0906 6.00034C25.9286 5.99143 26.7599 6.15778 27.5358 6.48965C28.3117 6.82152 29.0166 7.31224 29.6092 7.93307C30.2018 8.55391 30.6702 9.29237 30.9869 10.1052C31.3037 10.9181 31.4625 11.789 31.454 12.6669V12.9336C32.2017 13.1921 32.8514 13.6932 33.3091 14.3644C33.7667 15.0356 34.0085 15.8421 33.9994 16.6669C34.0086 17.1948 33.9162 17.7193 33.7276 18.209C33.5389 18.6986 33.2581 19.1434 32.9017 19.5168C32.5453 19.8902 32.1207 20.1845 31.6533 20.3821C31.1859 20.5797 30.6853 20.6765 30.1813 20.6668" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M28.2723 29.3334C28.2723 30.4379 29.127 31.3334 30.1813 31.3334C31.2357 31.3334 32.0904 30.4379 32.0904 29.3334C32.0904 28.2288 31.2357 27.3334 30.1813 27.3334C29.127 27.3334 28.2723 28.2288 28.2723 29.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M18.0908 32C18.0908 33.1046 18.9455 34 19.9999 34C21.0542 34 21.9089 33.1046 21.9089 32C21.9089 30.8955 21.0542 30.0001 19.9999 30.0001C18.9455 30.0001 18.0908 30.8955 18.0908 32Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M7.90936 29.3334C7.90936 30.4379 8.76406 31.3334 9.81838 31.3334C10.8727 31.3334 11.7274 30.4379 11.7274 29.3334C11.7274 28.2288 10.8727 27.3334 9.81838 27.3334C8.76406 27.3334 7.90936 28.2288 7.90936 29.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
</g>
<defs>
<filter id="filter0_d_1_68" x="0.999999" y="1" width="38" height="38" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_68"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_68" result="shape"/>
</filter>
<linearGradient id="paint0_linear_1_68" x1="20" y1="0" x2="20" y2="40" gradientUnits="userSpaceOnUse">
<stop stop-color="#0C2530"/>
<stop offset="1" stop-color="#071115"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

+49
View File
@@ -0,0 +1,49 @@
<svg width="198" height="40" viewBox="0 0 198 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1_56)">
<rect width="198.001" height="40.0014" rx="8" fill="url(#paint0_linear_1_56)"/>
<g filter="url(#filter0_d_1_56)">
<path d="M21.9998 30.0001V20.6668H19.4545" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M30.8316 27.9194L28.3633 25.3334V20.6668H25.8179" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M20.7272 12.6669C20.7376 10.8665 21.4232 9.1425 22.6362 7.86698" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M17.1636 15.3336C17.4104 14.5502 17.8887 13.8696 18.5294 13.3901C19.1701 12.9107 19.9399 12.6574 20.7272 12.6669C21.2584 12.6621 21.7842 12.7789 22.2678 13.0092C22.7515 13.2395 23.1812 13.5778 23.5271 14.0002" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M13.1681 27.9194L15.6364 25.3334V20.6668H14.3637C13.5257 20.6757 12.6944 20.5094 11.9185 20.1775C11.1426 19.8457 10.4378 19.3549 9.84516 18.7341C9.25256 18.1133 8.78415 17.3748 8.46738 16.5619C8.1506 15.7491 7.99181 14.8782 8.00032 14.0002C7.99181 13.1223 8.1506 12.2514 8.46738 11.4385C8.78415 10.6257 9.25256 9.88722 9.84516 9.26639C10.4378 8.64556 11.1426 8.15483 11.9185 7.82296C12.6944 7.49109 13.5257 7.32474 14.3637 7.33366C15.06 7.33705 15.7499 7.47257 16.4 7.73365C16.7269 7.19693 17.1788 6.7562 17.7132 6.45296C18.2475 6.14973 18.8468 5.99396 19.4545 6.00034C20.0927 6.00185 20.7199 6.17411 21.2767 6.50078C21.8335 6.82746 22.3015 7.29772 22.6362 7.86698C23.8314 6.6594 25.4301 5.98946 27.0906 6.00034C27.9286 5.99143 28.7599 6.15778 29.5358 6.48965C30.3117 6.82152 31.0166 7.31224 31.6092 7.93307C32.2018 8.55391 32.6702 9.29237 32.9869 10.1052C33.3037 10.9181 33.4625 11.789 33.454 12.6669V12.9336C34.2017 13.1921 34.8514 13.6932 35.3091 14.3644C35.7667 15.0356 36.0085 15.8421 35.9994 16.6669C36.0086 17.1948 35.9162 17.7193 35.7276 18.209C35.5389 18.6986 35.2581 19.1434 34.9017 19.5168C34.5453 19.8902 34.1207 20.1845 33.6533 20.3821C33.1859 20.5797 32.6853 20.6765 32.1813 20.6668" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M30.2723 29.3334C30.2723 30.4379 31.127 31.3334 32.1813 31.3334C33.2356 31.3334 34.0903 30.4379 34.0903 29.3334C34.0903 28.2288 33.2356 27.3334 32.1813 27.3334C31.127 27.3334 30.2723 28.2288 30.2723 29.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M20.0908 32C20.0908 33.1046 20.9455 34 21.9998 34C23.0542 34 23.9089 33.1046 23.9089 32C23.9089 30.8955 23.0542 30.0001 21.9998 30.0001C20.9455 30.0001 20.0908 30.8955 20.0908 32Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M9.90935 29.3334C9.90935 30.4379 10.764 31.3334 11.8184 31.3334C12.8727 31.3334 13.7274 30.4379 13.7274 29.3334C13.7274 28.2288 12.8727 27.3334 11.8184 27.3334C10.764 27.3334 9.90935 28.2288 9.90935 29.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
</g>
<g filter="url(#filter1_d_1_56)">
<path d="M44.4041 26.5007H42.424L46.8732 14.1371H49.0284L53.4776 26.5007H51.4975L48.0021 16.3828H47.9055L44.4041 26.5007ZM44.7361 21.6591H51.1594V23.2287H44.7361V21.6591ZM61.8886 17.228L58.526 26.5007H56.5942L53.2256 17.228H55.1634L57.5118 24.3636H57.6084L59.9507 17.228H61.8886ZM66.0178 26.706C65.4302 26.706 64.899 26.5973 64.4241 26.38C63.9492 26.1586 63.5729 25.8386 63.2952 25.4201C63.0215 25.0015 62.8846 24.4884 62.8846 23.8807C62.8846 23.3575 62.9853 22.9268 63.1865 22.5888C63.3877 22.2507 63.6594 21.9831 64.0015 21.7859C64.3436 21.5886 64.7259 21.4397 65.1485 21.3391C65.5711 21.2385 66.0017 21.162 66.4404 21.1097C66.9958 21.0453 67.4466 20.993 67.7927 20.9528C68.1388 20.9085 68.3903 20.8381 68.5473 20.7415C68.7042 20.6449 68.7827 20.4879 68.7827 20.2706V20.2283C68.7827 19.7011 68.6338 19.2926 68.336 19.0028C68.0422 18.7131 67.6035 18.5682 67.0199 18.5682C66.4122 18.5682 65.9333 18.703 65.5832 18.9726C65.237 19.2383 64.9976 19.5341 64.8648 19.8601L63.1684 19.4737C63.3696 18.9103 63.6634 18.4555 64.0498 18.1094C64.4402 17.7592 64.8889 17.5057 65.396 17.3487C65.9031 17.1877 66.4364 17.1072 66.9958 17.1072C67.3661 17.1072 67.7585 17.1515 68.173 17.24C68.5916 17.3246 68.9819 17.4815 69.3442 17.7109C69.7104 17.9403 70.0102 18.2683 70.2437 18.6949C70.4771 19.1175 70.5938 19.6669 70.5938 20.343V26.5007H68.831V25.2329H68.7586C68.6419 25.4664 68.4668 25.6958 68.2334 25.9212C67.9999 26.1465 67.7001 26.3337 67.3339 26.4826C66.9676 26.6315 66.5289 26.706 66.0178 26.706ZM66.4102 25.2571C66.9093 25.2571 67.3359 25.1585 67.69 24.9613C68.0482 24.7641 68.3199 24.5065 68.505 24.1886C68.6942 23.8666 68.7888 23.5225 68.7888 23.1562V21.9609C68.7244 22.0253 68.5996 22.0857 68.4145 22.142C68.2334 22.1944 68.0261 22.2406 67.7927 22.2809C67.5592 22.3171 67.3319 22.3513 67.1105 22.3835C66.8891 22.4117 66.704 22.4358 66.5551 22.456C66.205 22.5002 65.885 22.5747 65.5952 22.6793C65.3095 22.784 65.0801 22.9349 64.907 23.1321C64.738 23.3253 64.6535 23.5828 64.6535 23.9048C64.6535 24.3515 64.8185 24.6896 65.1485 24.919C65.4785 25.1444 65.8991 25.2571 66.4102 25.2571ZM72.998 26.5007V17.228H74.8031V26.5007H72.998ZM73.9096 15.7972C73.5957 15.7972 73.326 15.6926 73.1006 15.4833C72.8793 15.27 72.7686 15.0164 72.7686 14.7226C72.7686 14.4248 72.8793 14.1713 73.1006 13.962C73.326 13.7487 73.5957 13.642 73.9096 13.642C74.2235 13.642 74.4911 13.7487 74.7125 13.962C74.9379 14.1713 75.0506 14.4248 75.0506 14.7226C75.0506 15.0164 74.9379 15.27 74.7125 15.4833C74.4911 15.6926 74.2235 15.7972 73.9096 15.7972ZM79.0365 14.1371V26.5007H77.2314V14.1371H79.0365ZM84.1633 26.706C83.5757 26.706 83.0445 26.5973 82.5696 26.38C82.0947 26.1586 81.7184 25.8386 81.4407 25.4201C81.167 25.0015 81.0301 24.4884 81.0301 23.8807C81.0301 23.3575 81.1308 22.9268 81.332 22.5888C81.5332 22.2507 81.8049 21.9831 82.147 21.7859C82.4891 21.5886 82.8714 21.4397 83.294 21.3391C83.7166 21.2385 84.1472 21.162 84.5859 21.1097C85.1413 21.0453 85.5921 20.993 85.9382 20.9528C86.2843 20.9085 86.5358 20.8381 86.6928 20.7415C86.8497 20.6449 86.9282 20.4879 86.9282 20.2706V20.2283C86.9282 19.7011 86.7793 19.2926 86.4815 19.0028C86.1877 18.7131 85.749 18.5682 85.1654 18.5682C84.5577 18.5682 84.0788 18.703 83.7287 18.9726C83.3825 19.2383 83.1431 19.5341 83.0103 19.8601L81.3139 19.4737C81.5151 18.9103 81.8089 18.4555 82.1953 18.1094C82.5857 17.7592 83.0344 17.5057 83.5415 17.3487C84.0486 17.1877 84.5819 17.1072 85.1413 17.1072C85.5116 17.1072 85.904 17.1515 86.3185 17.24C86.7371 17.3246 87.1274 17.4815 87.4897 17.7109C87.8559 17.9403 88.1557 18.2683 88.3892 18.6949C88.6226 19.1175 88.7393 19.6669 88.7393 20.343V26.5007H86.9765V25.2329H86.9041C86.7874 25.4664 86.6123 25.6958 86.3789 25.9212C86.1454 26.1465 85.8456 26.3337 85.4794 26.4826C85.1131 26.6315 84.6744 26.706 84.1633 26.706ZM84.5557 25.2571C85.0548 25.2571 85.4814 25.1585 85.8355 24.9613C86.1937 24.7641 86.4654 24.5065 86.6505 24.1886C86.8397 23.8666 86.9343 23.5225 86.9343 23.1562V21.9609C86.8699 22.0253 86.7451 22.0857 86.56 22.142C86.3789 22.1944 86.1716 22.2406 85.9382 22.2809C85.7047 22.3171 85.4774 22.3513 85.256 22.3835C85.0346 22.4117 84.8495 22.4358 84.7006 22.456C84.3505 22.5002 84.0305 22.5747 83.7407 22.6793C83.455 22.784 83.2256 22.9349 83.0525 23.1321C82.8835 23.3253 82.799 23.5828 82.799 23.9048C82.799 24.3515 82.964 24.6896 83.294 24.919C83.624 25.1444 84.0446 25.2571 84.5557 25.2571ZM91.2884 26.5007V14.1371H93.0934V18.7312H93.2021C93.3067 18.538 93.4577 18.3146 93.6549 18.0611C93.8521 17.8075 94.1258 17.5862 94.4759 17.397C94.826 17.2038 95.2889 17.1072 95.8644 17.1072C96.613 17.1072 97.2811 17.2964 97.8687 17.6747C98.4563 18.053 98.9171 18.5984 99.2511 19.3107C99.5892 20.0231 99.7582 20.8803 99.7582 21.8824C99.7582 22.8846 99.5912 23.7438 99.2571 24.4602C98.9231 25.1726 98.4643 25.7219 97.8807 26.1083C97.2972 26.4906 96.6311 26.6818 95.8825 26.6818C95.3191 26.6818 94.8582 26.5872 94.5 26.3981C94.1459 26.2089 93.8682 25.9876 93.667 25.734C93.4657 25.4805 93.3108 25.2551 93.2021 25.0579H93.0512V26.5007H91.2884ZM93.05Line truncated
<path d="M144.937 26.5007V14.1371H150.044C150.97 14.1371 151.769 14.3182 152.441 14.6804C153.117 15.0386 153.638 15.5396 154.005 16.1836C154.371 16.8235 154.554 17.5681 154.554 18.4172C154.554 19.2705 154.367 20.017 153.992 20.6569C153.622 21.2928 153.093 21.7859 152.405 22.136C151.717 22.4861 150.9 22.6612 149.954 22.6612H146.803V20.3068H149.398C149.849 20.3068 150.225 20.2283 150.527 20.0714C150.833 19.9144 151.065 19.6951 151.222 19.4133C151.379 19.1276 151.457 18.7956 151.457 18.4172C151.457 18.0349 151.379 17.7049 151.222 17.4272C151.065 17.1455 150.833 16.9281 150.527 16.7752C150.221 16.6223 149.845 16.5458 149.398 16.5458H147.925V26.5007H144.937ZM162.01 22.4982V17.228H164.956V26.5007H162.142V24.7741H162.046C161.841 25.3416 161.49 25.7924 160.995 26.1264C160.504 26.4564 159.911 26.6214 159.214 26.6214C158.583 26.6214 158.027 26.4765 157.548 26.1868C157.069 25.897 156.697 25.4925 156.431 24.9734C156.166 24.4502 156.031 23.8384 156.027 23.1381V17.228H158.979V22.5586C158.983 23.0617 159.116 23.4581 159.377 23.7479C159.639 24.0376 159.995 24.1825 160.446 24.1825C160.74 24.1825 161.003 24.1181 161.237 23.9893C161.474 23.8565 161.661 23.6654 161.798 23.4158C161.939 23.1623 162.01 22.8564 162.01 22.4982ZM172.069 17.228V19.4013H166.219V17.228H172.069ZM167.444 15.0064H170.396V23.5849C170.396 23.766 170.425 23.9129 170.481 24.0256C170.541 24.1342 170.628 24.2127 170.74 24.261C170.853 24.3053 170.988 24.3274 171.145 24.3274C171.258 24.3274 171.376 24.3173 171.501 24.2972C171.63 24.2731 171.726 24.2529 171.791 24.2368L172.238 26.3679C172.097 26.4081 171.898 26.4584 171.64 26.5188C171.386 26.5792 171.083 26.6174 170.728 26.6335C170.036 26.6657 169.443 26.5852 168.947 26.392C168.456 26.1948 168.08 25.889 167.819 25.4744C167.561 25.0599 167.436 24.5387 167.444 23.9109V15.0064ZM177.81 26.6758C176.84 26.6758 176.003 26.4846 175.298 26.1023C174.598 25.7159 174.059 25.1665 173.68 24.4542C173.306 23.7378 173.119 22.8866 173.119 21.9006C173.119 20.9427 173.308 20.1056 173.686 19.3892C174.065 18.6688 174.598 18.1094 175.286 17.7109C175.974 17.3085 176.785 17.1072 177.719 17.1072C178.379 17.1072 178.983 17.2099 179.53 17.4151C180.078 17.6204 180.55 17.9242 180.949 18.3267C181.347 18.7292 181.657 19.2262 181.879 19.8178C182.1 20.4054 182.211 21.0795 182.211 21.8402V22.5767H174.151V20.8622H179.464C179.46 20.5483 179.385 20.2686 179.24 20.0231C179.096 19.7776 178.896 19.5864 178.643 19.4496C178.393 19.3087 178.106 19.2383 177.78 19.2383C177.449 19.2383 177.154 19.3127 176.892 19.4616C176.63 19.6065 176.423 19.8057 176.27 20.0593C176.117 20.3088 176.037 20.5926 176.029 20.9105V22.6552C176.029 23.0335 176.103 23.3655 176.252 23.6513C176.401 23.933 176.612 24.1523 176.886 24.3093C177.16 24.4663 177.486 24.5447 177.864 24.5447C178.126 24.5447 178.363 24.5085 178.576 24.4361C178.79 24.3636 178.973 24.257 179.126 24.1161C179.279 23.9752 179.393 23.8022 179.47 23.5969L182.18 23.6754C182.068 24.2831 181.82 24.8124 181.438 25.2631C181.06 25.7099 180.563 26.058 179.947 26.3075C179.331 26.553 178.619 26.6758 177.81 26.6758ZM183.718 26.5007V17.228H186.586V18.9183H186.682C186.852 18.3066 187.127 17.8518 187.51 17.554C187.892 17.2521 188.337 17.1012 188.844 17.1012C188.981 17.1012 189.121 17.1113 189.266 17.1314C189.411 17.1475 189.546 17.1736 189.671 17.2099V19.7756C189.53 19.7273 189.345 19.689 189.115 19.6609C188.89 19.6327 188.689 19.6186 188.512 19.6186C188.162 19.6186 187.846 19.6971 187.564 19.854C187.286 20.007 187.067 20.2223 186.906 20.5C186.749 20.7737 186.67 21.0956 186.67 21.4659V26.5007H183.718Z" fill="#218EF2"/>
</g>
</g>
<rect x="1.07143" y="1.07143" width="195.858" height="37.8585" rx="6.92857" stroke="white" stroke-opacity="0.15" stroke-width="2.14286"/>
<defs>
<filter id="filter0_d_1_56" x="1.39972" y="-0.60028" width="41.2006" height="41.2006" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="2.80014"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_56"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_56" result="shape"/>
</filter>
<filter id="filter1_d_1_56" x="36.2871" y="3.78642" width="159.429" height="32.4286" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="2.85714"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_56"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_56" result="shape"/>
</filter>
<linearGradient id="paint0_linear_1_56" x1="99.0007" y1="0" x2="99.0007" y2="40.0014" gradientUnits="userSpaceOnUse">
<stop stop-color="#0C2530"/>
<stop offset="1" stop-color="#071115"/>
</linearGradient>
<clipPath id="clip0_1_56">
<rect width="198.001" height="40.0014" rx="8" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

@@ -0,0 +1,30 @@
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="56" height="56" rx="8.4" fill="url(#paint0_linear_1_62)"/>
<rect x="1.05" y="1.05" width="53.9" height="53.9" rx="7.35" stroke="white" stroke-opacity="0.15" stroke-width="2.1"/>
<g filter="url(#filter0_d_1_62)">
<path d="M27.9998 42.2858V28.9526H24.3635" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M40.6166 39.3134L37.0904 35.6192V28.9526H33.4541" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M26.1817 17.5242C26.1966 14.9521 27.1761 12.4893 28.9088 10.6671" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M21.0909 21.3337C21.4434 20.2146 22.1267 19.2422 23.042 18.5573C23.9573 17.8724 25.0569 17.5105 26.1817 17.5242C26.9406 17.5173 27.6917 17.6842 28.3826 18.0132C29.0735 18.3422 29.6875 18.8254 30.1815 19.4289" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M15.3829 39.3134L18.9092 35.6192V28.9526H17.0911C15.8939 28.9653 14.7063 28.7277 13.5979 28.2536C12.4895 27.7795 11.4825 27.0785 10.6359 26.1916C9.78937 25.3047 9.12022 24.2497 8.66768 23.0885C8.21514 21.9273 7.98831 20.6831 8.00046 19.4289C7.98831 18.1747 8.21514 16.9306 8.66768 15.7693C9.12022 14.6081 9.78937 13.5532 10.6359 12.6663C11.4825 11.7794 12.4895 11.0783 13.5979 10.6042C14.7063 10.1301 15.8939 9.89249 17.0911 9.90522C18.0857 9.91007 19.0713 10.1037 20.0001 10.4766C20.467 9.7099 21.1126 9.08028 21.876 8.64709C22.6394 8.21389 23.4954 7.99138 24.3635 8.00049C25.2752 8.00264 26.1713 8.24872 26.9667 8.7154C27.7622 9.18208 28.4307 9.85389 28.9088 10.6671C30.6163 8.942 32.9002 7.98495 35.2723 8.00049C36.4694 7.98775 37.657 8.22539 38.7654 8.69949C39.8738 9.1736 40.8808 9.87463 41.7274 10.7615C42.5739 11.6484 43.2431 12.7034 43.6956 13.8646C44.1482 15.0258 44.375 16.27 44.3629 17.5242V17.9051C45.431 18.2744 46.3592 18.9903 47.013 19.9492C47.6667 20.9081 48.0121 22.0601 47.9991 23.2384C48.0123 23.9926 47.8802 24.7419 47.6108 25.4414C47.3414 26.1409 46.9401 26.7764 46.4309 27.3097C45.9218 27.8431 45.3153 28.2635 44.6475 28.5458C43.9798 28.8281 43.2646 28.9664 42.5447 28.9526" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M39.8176 41.3334C39.8176 42.9113 41.0386 44.1905 42.5447 44.1905C44.0509 44.1905 45.2719 42.9113 45.2719 41.3334C45.2719 39.7555 44.0509 38.4763 42.5447 38.4763C41.0386 38.4763 39.8176 39.7555 39.8176 41.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M25.2726 45.1429C25.2726 46.7208 26.4936 48 27.9998 48C29.506 48 30.727 46.7208 30.727 45.1429C30.727 43.5649 29.506 42.2858 27.9998 42.2858C26.4936 42.2858 25.2726 43.5649 25.2726 45.1429Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M10.7276 41.3334C10.7276 42.9113 11.9486 44.1905 13.4548 44.1905C14.961 44.1905 16.182 42.9113 16.182 41.3334C16.182 39.7555 14.961 38.4763 13.4548 38.4763C11.9486 38.4763 10.7276 39.7555 10.7276 41.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
</g>
<defs>
<filter id="filter0_d_1_62" x="1.28571" y="1.28571" width="53.4286" height="53.4286" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="2.85714"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_62"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_62" result="shape"/>
</filter>
<linearGradient id="paint0_linear_1_62" x1="28" y1="0" x2="28" y2="56" gradientUnits="userSpaceOnUse">
<stop stop-color="#0C2530"/>
<stop offset="1" stop-color="#071115"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

+44
View File
@@ -0,0 +1,44 @@
<svg width="164" height="56" viewBox="0 0 164 56" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="164" height="56" rx="8" fill="url(#paint0_linear_1_50)"/>
<rect x="1.05" y="1.05" width="161.9" height="53.9" rx="6.95" stroke="white" stroke-opacity="0.15" stroke-width="2.1"/>
<g filter="url(#filter0_d_1_50)">
<path d="M31.9998 42.2858V28.9526H28.3636" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M44.6166 39.3134L41.0904 35.6192V28.9526H37.4541" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M30.1817 17.5242C30.1966 14.9521 31.1761 12.4893 32.9088 10.6671" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M25.0909 21.3337C25.4434 20.2146 26.1268 19.2422 27.042 18.5573C27.9573 17.8724 29.057 17.5105 30.1817 17.5242C30.9406 17.5173 31.6917 17.6842 32.3826 18.0132C33.0735 18.3422 33.6875 18.8254 34.1815 19.4289" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M19.3829 39.3134L22.9092 35.6192V28.9526H21.0911C19.8939 28.9653 18.7063 28.7277 17.5979 28.2536C16.4895 27.7795 15.4825 27.0785 14.6359 26.1916C13.7894 25.3047 13.1202 24.2497 12.6677 23.0885C12.2151 21.9273 11.9883 20.6831 12.0005 19.4289C11.9883 18.1747 12.2151 16.9306 12.6677 15.7693C13.1202 14.6081 13.7894 13.5532 14.6359 12.6663C15.4825 11.7794 16.4895 11.0783 17.5979 10.6042C18.7063 10.1301 19.8939 9.89249 21.0911 9.90522C22.0857 9.91007 23.0713 10.1037 24 10.4766C24.467 9.7099 25.1126 9.08028 25.876 8.64709C26.6394 8.21389 27.4954 7.99138 28.3635 8.00049C29.2752 8.00264 30.1713 8.24872 30.9667 8.7154C31.7622 9.18208 32.4307 9.85389 32.9088 10.6671C34.6163 8.942 36.9002 7.98495 39.2723 8.00049C40.4694 7.98775 41.657 8.22539 42.7654 8.69949C43.8738 9.1736 44.8808 9.87463 45.7274 10.7615C46.5739 11.6484 47.2431 12.7034 47.6956 13.8646C48.1482 15.0258 48.375 16.27 48.3629 17.5242V17.9051C49.431 18.2744 50.3592 18.9903 51.013 19.9492C51.6667 20.9081 52.0121 22.0601 51.9991 23.2384C52.0123 23.9926 51.8802 24.7419 51.6108 25.4414C51.3414 26.1409 50.9401 26.7764 50.4309 27.3097C49.9218 27.8431 49.3153 28.2635 48.6475 28.5458C47.9798 28.8281 47.2646 28.9664 46.5447 28.9526" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M43.8176 41.3334C43.8176 42.9113 45.0386 44.1905 46.5448 44.1905C48.0509 44.1905 49.2719 42.9113 49.2719 41.3334C49.2719 39.7555 48.0509 38.4763 46.5448 38.4763C45.0386 38.4763 43.8176 39.7555 43.8176 41.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M29.2726 45.1429C29.2726 46.7208 30.4936 48 31.9998 48C33.506 48 34.727 46.7208 34.727 45.1429C34.727 43.565 33.506 42.2858 31.9998 42.2858C30.4936 42.2858 29.2726 43.565 29.2726 45.1429Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M14.7276 41.3334C14.7276 42.9113 15.9486 44.1905 17.4548 44.1905C18.961 44.1905 20.182 42.9113 20.182 41.3334C20.182 39.7555 18.961 38.4763 17.4548 38.4763C15.9486 38.4763 14.7276 39.7555 14.7276 41.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
</g>
<g filter="url(#filter1_d_1_50)">
<path d="M62.2613 24.5H60.3977L64.5852 12.8636H66.6136L70.8011 24.5H68.9375L65.6477 14.9773H65.5568L62.2613 24.5ZM62.5738 19.9432H68.6193V21.4204H62.5738V19.9432ZM78.7173 15.7727L75.5525 24.5H73.7344L70.5639 15.7727H72.3878L74.598 22.4886H74.6889L76.8934 15.7727H78.7173ZM82.6037 24.6932C82.0506 24.6932 81.5506 24.5909 81.1037 24.3864C80.6567 24.178 80.3025 23.8769 80.0412 23.4829C79.7836 23.089 79.6548 22.6061 79.6548 22.0341C79.6548 21.5417 79.7495 21.1364 79.9389 20.8182C80.1283 20.5 80.384 20.2481 80.7059 20.0625C81.0279 19.8769 81.3878 19.7367 81.7855 19.642C82.1832 19.5473 82.5885 19.4754 83.0014 19.4261C83.5241 19.3655 83.9484 19.3163 84.2741 19.2784C84.5999 19.2367 84.8366 19.1704 84.9844 19.0795C85.1321 18.9886 85.2059 18.8409 85.2059 18.6364V18.5966C85.2059 18.1004 85.0658 17.7159 84.7855 17.4432C84.509 17.1704 84.0961 17.0341 83.5469 17.0341C82.9749 17.0341 82.5241 17.161 82.1946 17.4148C81.8688 17.6648 81.6434 17.9432 81.5184 18.25L79.9219 17.8864C80.1112 17.3561 80.3878 16.928 80.7514 16.6023C81.1188 16.2727 81.5412 16.0341 82.0184 15.8864C82.4957 15.7348 82.9976 15.6591 83.5241 15.6591C83.8726 15.6591 84.2419 15.7008 84.6321 15.7841C85.026 15.8636 85.3934 16.0114 85.7344 16.2273C86.079 16.4432 86.3612 16.7519 86.5809 17.1534C86.8006 17.5511 86.9105 18.0682 86.9105 18.7045V24.5H85.2514V23.3068H85.1832C85.0734 23.5265 84.9086 23.7424 84.6889 23.9545C84.4692 24.1667 84.187 24.3428 83.8423 24.4829C83.4976 24.6231 83.0847 24.6932 82.6037 24.6932ZM82.973 23.3295C83.4427 23.3295 83.8442 23.2367 84.1775 23.0511C84.5147 22.8655 84.7703 22.6231 84.9446 22.3239C85.1226 22.0208 85.2116 21.697 85.2116 21.3523V20.2273C85.151 20.2879 85.0336 20.3447 84.8594 20.3977C84.6889 20.447 84.4938 20.4905 84.2741 20.5284C84.0544 20.5625 83.8404 20.5947 83.6321 20.625C83.4237 20.6515 83.2495 20.6742 83.1094 20.6932C82.7798 20.7348 82.4787 20.8049 82.2059 20.9034C81.937 21.0019 81.7211 21.1439 81.5582 21.3295C81.3991 21.5114 81.3196 21.7538 81.3196 22.0568C81.3196 22.4773 81.4749 22.7954 81.7855 23.0114C82.0961 23.2235 82.4919 23.3295 82.973 23.3295ZM89.1733 24.5V15.7727H90.8721V24.5H89.1733ZM90.0312 14.4261C89.7358 14.4261 89.482 14.3276 89.2699 14.1307C89.0615 13.9299 88.9574 13.6913 88.9574 13.4148C88.9574 13.1345 89.0615 12.8958 89.2699 12.6989C89.482 12.4981 89.7358 12.3977 90.0312 12.3977C90.3267 12.3977 90.5786 12.4981 90.7869 12.6989C90.999 12.8958 91.1051 13.1345 91.1051 13.4148C91.1051 13.6913 90.999 13.9299 90.7869 14.1307C90.5786 14.3276 90.3267 14.4261 90.0312 14.4261ZM94.8565 12.8636V24.5H93.1576V12.8636H94.8565ZM99.6818 24.6932C99.1288 24.6932 98.6288 24.5909 98.1818 24.3864C97.7348 24.178 97.3807 23.8769 97.1193 23.4829C96.8617 23.089 96.7329 22.6061 96.7329 22.0341C96.7329 21.5417 96.8276 21.1364 97.017 20.8182C97.2064 20.5 97.4621 20.2481 97.7841 20.0625C98.106 19.8769 98.4659 19.7367 98.8636 19.642C99.2613 19.5473 99.6666 19.4754 100.08 19.4261C100.602 19.3655 101.026 19.3163 101.352 19.2784C101.678 19.2367 101.915 19.1704 102.062 19.0795C102.21 18.9886 102.284 18.8409 102.284 18.6364V18.5966C102.284 18.1004 102.144 17.7159 101.864 17.4432C101.587 17.1704 101.174 17.0341 100.625 17.0341C100.053 17.0341 99.6022 17.161 99.2727 17.4148C98.9469 17.6648 98.7216 17.9432 98.5966 18.25L97 17.8864C97.1894 17.3561 97.4659 16.928 97.8295 16.6023C98.1969 16.2727 98.6193 16.0341 99.0966 15.8864C99.5738 15.7348 100.076 15.6591 100.602 15.6591C100.951 15.6591 101.32 15.7008 101.71 15.7841C102.104 15.8636 102.472 16.0114 102.812 16.2273C103.157 16.4432 103.439 16.7519 103.659 17.1534C103.879 17.5511 103.989 18.0682 103.989 18.7045V24.5H102.33V23.3068H102.261C102.151 23.5265 101.987 23.7424 101.767 23.9545C101.547 24.1667 101.265 24.3428 100.92 24.4829C100.576 24.6231 100.163 24.6932 99.6818 24.6932ZM100.051 23.3295C100.521 23.3295 100.922 23.2367 101.256 23.0511C101.593 22.8655 101.848 22.6231 102.023 22.3239C102.201 22.0208 102.29 21.697 102.29 21.3523V20.2273C102.229 20.2879 102.112 20.3447 101.937 20.3977C101.767 20.447 101.572 20.4905 101.352 20.5284C101.133 20.5625 100.919 20.5947 100.71 20.625C100.502 20.6515 100.328 20.6742 100.187 20.6932C99.8579 20.7348 99.5568 20.8049 99.2841 20.9034C99.0151 21.0019 98.7992 21.1439 98.6363 21.3295C98.4772 21.5114 98.3977 21.7538 98.3977 22.0568C98.3977 22.4773 98.553 22.7954 98.8636 23.0114C99.1742 23.2235 99.57 23.3295 100.051 23.3295ZM106.388 24.5V12.8636H108.087V17.1875H108.189C108.287 17.0057 108.429 16.7954 108.615 16.5568C108.801 16.3182 109.058 16.1098 109.388 15.9318C109.717 15.75 110.153 15.6591 110.695 15.6591C111.399 15.6591 112.028 15.8371 112.581 16.1932C113.134 16.5492 113.568 17.0625 113.882 17.7329C114.2 18.4034 114.359 19.2102 114.359 20.1534C114.359 21.0966 114.202 21.9053 113.888 22.5795C113.573 23.25 113.142 23.767 112.592 24.1307C112.043 24.4905 111.416 24.6704 110.712 24.6704C110.181 24.6704 109.748 24.5814 109.41 24.4034C109.077 24.2254 108.816 24.017 108.626 23.7784C108.437 23.5398 108.291 23.3276 108.189 23.142H108.047V24.5H106.388ZM108.053 20.1364CLine truncated
<path d="M60.9357 43.5V31.1364H66.043C66.9686 31.1364 67.7675 31.3175 68.4396 31.6797C69.1157 32.0379 69.6369 32.5389 70.0032 33.1829C70.3694 33.8228 70.5525 34.5673 70.5525 35.4165C70.5525 36.2698 70.3654 37.0163 69.9911 37.6562C69.6208 38.2921 69.0916 38.7851 68.4034 39.1353C67.7152 39.4854 66.8982 39.6605 65.9524 39.6605H62.8011V37.3061H65.397C65.8478 37.3061 66.2241 37.2276 66.5259 37.0707C66.8318 36.9137 67.0632 36.6944 67.2202 36.4126C67.3771 36.1269 67.4556 35.7949 67.4556 35.4165C67.4556 35.0342 67.3771 34.7042 67.2202 34.4265C67.0632 34.1448 66.8318 33.9274 66.5259 33.7745C66.22 33.6216 65.8437 33.5451 65.397 33.5451H63.924V43.5H60.9357ZM78.0081 39.4975V34.2273H80.9542V43.5H78.141V41.7734H78.0444C77.8391 42.3409 77.489 42.7917 76.9939 43.1257C76.5029 43.4557 75.9093 43.6207 75.213 43.6207C74.5812 43.6207 74.0258 43.4758 73.5469 43.1861C73.0679 42.8963 72.6956 42.4918 72.43 41.9726C72.1644 41.4494 72.0296 40.8377 72.0255 40.1374V34.2273H74.9776V39.5579C74.9816 40.061 75.1144 40.4574 75.376 40.7471C75.6376 41.0369 75.9938 41.1818 76.4446 41.1818C76.7384 41.1818 77.002 41.1174 77.2354 40.9886C77.4729 40.8558 77.66 40.6646 77.7969 40.4151C77.9377 40.1616 78.0081 39.8557 78.0081 39.4975ZM88.0672 34.2273V36.4006H82.2174V34.2273H88.0672ZM83.4429 32.0057H86.395V40.5842C86.395 40.7653 86.4231 40.9122 86.4795 41.0248C86.5398 41.1335 86.6264 41.212 86.7391 41.2603C86.8517 41.3046 86.9866 41.3267 87.1435 41.3267C87.2562 41.3267 87.3749 41.3166 87.4997 41.2965C87.6285 41.2724 87.7251 41.2522 87.7895 41.2361L88.2362 43.3672C88.0954 43.4074 87.8961 43.4577 87.6386 43.5181C87.385 43.5785 87.0811 43.6167 86.727 43.6328C86.0347 43.665 85.4411 43.5845 84.9461 43.3913C84.4551 43.1941 84.0788 42.8882 83.8172 42.4737C83.5596 42.0592 83.4348 41.538 83.4429 40.9101V32.0057ZM93.8083 43.6751C92.8384 43.6751 92.0012 43.4839 91.2969 43.1016C90.5967 42.7152 90.0574 42.1658 89.679 41.4535C89.3048 40.7371 89.1176 39.8859 89.1176 38.8998C89.1176 37.942 89.3068 37.1049 89.6851 36.3885C90.0634 35.6681 90.5967 35.1087 91.2849 34.7102C91.9731 34.3078 92.784 34.1065 93.7177 34.1065C94.3778 34.1065 94.9815 34.2092 95.5288 34.4144C96.0762 34.6197 96.5491 34.9235 96.9475 35.326C97.3459 35.7284 97.6558 36.2255 97.8772 36.8171C98.0985 37.4047 98.2092 38.0788 98.2092 38.8395V39.576H90.1499V37.8615H95.4624C95.4584 37.5476 95.3839 37.2679 95.2391 37.0224C95.0942 36.7769 94.8949 36.5857 94.6414 36.4489C94.3919 36.308 94.1041 36.2376 93.7781 36.2376C93.4481 36.2376 93.1523 36.312 92.8907 36.4609C92.6291 36.6058 92.4218 36.805 92.2689 37.0586C92.1159 37.3081 92.0355 37.5918 92.0274 37.9098V39.6545C92.0274 40.0328 92.1019 40.3648 92.2508 40.6506C92.3997 40.9323 92.611 41.1516 92.8847 41.3086C93.1583 41.4655 93.4843 41.544 93.8626 41.544C94.1242 41.544 94.3617 41.5078 94.575 41.4354C94.7883 41.3629 94.9714 41.2563 95.1244 41.1154C95.2773 40.9745 95.392 40.8015 95.4685 40.5962L98.179 40.6747C98.0664 41.2824 97.8188 41.8117 97.4365 42.2624C97.0582 42.7092 96.5611 43.0573 95.9454 43.3068C95.3296 43.5523 94.6173 43.6751 93.8083 43.6751ZM99.7169 43.5V34.2273H102.584V35.9176H102.681C102.85 35.3059 103.126 34.8511 103.508 34.5533C103.89 34.2514 104.335 34.1005 104.842 34.1005C104.979 34.1005 105.12 34.1105 105.265 34.1307C105.41 34.1468 105.545 34.1729 105.669 34.2092V36.7748C105.528 36.7266 105.343 36.6883 105.114 36.6601C104.889 36.632 104.687 36.6179 104.51 36.6179C104.16 36.6179 103.844 36.6964 103.562 36.8533C103.285 37.0063 103.065 37.2216 102.904 37.4993C102.747 37.773 102.669 38.0949 102.669 38.4652V43.5H99.7169Z" fill="#218EF2"/>
</g>
<defs>
<filter id="filter0_d_1_50" x="5.28571" y="1.28571" width="53.4286" height="53.4286" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="2.85714"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_50"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_50" result="shape"/>
</filter>
<filter id="filter1_d_1_50" x="54.4" y="3.9" width="103.2" height="48.2" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="2.8"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_50"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_50" result="shape"/>
</filter>
<linearGradient id="paint0_linear_1_50" x1="82" y1="0" x2="82" y2="56" gradientUnits="userSpaceOnUse">
<stop stop-color="#0C2530"/>
<stop offset="1" stop-color="#071115"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,49 @@
<svg width="215" height="40" viewBox="0 0 215 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1_56)">
<rect width="215.001" height="40.0014" rx="8" fill="url(#paint0_linear_1_56)"/>
<g filter="url(#filter0_d_1_56)">
<path d="M21.9998 30.0001V20.6668H19.4545" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M30.8316 27.9194L28.3633 25.3334V20.6668H25.8179" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M20.7272 12.6669C20.7376 10.8665 21.4232 9.1425 22.6362 7.86698" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M17.1636 15.3336C17.4104 14.5502 17.8887 13.8696 18.5294 13.3901C19.1701 12.9107 19.9399 12.6574 20.7272 12.6669C21.2584 12.6621 21.7842 12.7789 22.2678 13.0092C22.7515 13.2395 23.1812 13.5778 23.5271 14.0002" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M13.1681 27.9194L15.6364 25.3334V20.6668H14.3637C13.5257 20.6757 12.6944 20.5094 11.9185 20.1775C11.1426 19.8457 10.4378 19.3549 9.84516 18.7341C9.25256 18.1133 8.78415 17.3748 8.46738 16.5619C8.1506 15.7491 7.99181 14.8782 8.00032 14.0002C7.99181 13.1223 8.1506 12.2514 8.46738 11.4385C8.78415 10.6257 9.25256 9.88722 9.84516 9.26639C10.4378 8.64556 11.1426 8.15483 11.9185 7.82296C12.6944 7.49109 13.5257 7.32474 14.3637 7.33366C15.06 7.33705 15.7499 7.47257 16.4 7.73365C16.7269 7.19693 17.1788 6.7562 17.7132 6.45296C18.2475 6.14973 18.8468 5.99396 19.4545 6.00034C20.0927 6.00185 20.7199 6.17411 21.2767 6.50078C21.8335 6.82746 22.3015 7.29772 22.6362 7.86698C23.8314 6.6594 25.4301 5.98946 27.0906 6.00034C27.9286 5.99143 28.7599 6.15778 29.5358 6.48965C30.3117 6.82152 31.0166 7.31224 31.6092 7.93307C32.2018 8.55391 32.6702 9.29237 32.9869 10.1052C33.3037 10.9181 33.4625 11.789 33.454 12.6669V12.9336C34.2017 13.1921 34.8514 13.6932 35.3091 14.3644C35.7667 15.0356 36.0085 15.8421 35.9994 16.6669C36.0086 17.1948 35.9162 17.7193 35.7276 18.209C35.5389 18.6986 35.2581 19.1434 34.9017 19.5168C34.5453 19.8902 34.1207 20.1845 33.6533 20.3821C33.1859 20.5797 32.6853 20.6765 32.1813 20.6668" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M30.2723 29.3334C30.2723 30.4379 31.127 31.3334 32.1813 31.3334C33.2356 31.3334 34.0903 30.4379 34.0903 29.3334C34.0903 28.2288 33.2356 27.3334 32.1813 27.3334C31.127 27.3334 30.2723 28.2288 30.2723 29.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M20.0908 32C20.0908 33.1046 20.9455 34 21.9998 34C23.0542 34 23.9089 33.1046 23.9089 32C23.9089 30.8955 23.0542 30.0001 21.9998 30.0001C20.9455 30.0001 20.0908 30.8955 20.0908 32Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M9.90935 29.3334C9.90935 30.4379 10.764 31.3334 11.8184 31.3334C12.8727 31.3334 13.7274 30.4379 13.7274 29.3334C13.7274 28.2288 12.8727 27.3334 11.8184 27.3334C10.764 27.3334 9.90935 28.2288 9.90935 29.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
</g>
<g filter="url(#filter1_d_1_56)">
<path d="M43.3597 26.5007V14.1371H47.7667C48.7285 14.1371 49.5254 14.3121 50.1573 14.6623C50.7892 15.0124 51.262 15.4913 51.576 16.0991C51.8899 16.7028 52.0468 17.3829 52.0468 18.1395C52.0468 18.9002 51.8879 19.5844 51.5699 20.1921C51.256 20.7958 50.7811 21.2747 50.1452 21.6289C49.5133 21.979 48.7185 22.1541 47.7606 22.1541H44.7301V20.5724H47.5916C48.1993 20.5724 48.6923 20.4678 49.0706 20.2585C49.449 20.0452 49.7267 19.7554 49.9037 19.3892C50.0808 19.023 50.1694 18.6064 50.1694 18.1395C50.1694 17.6727 50.0808 17.2582 49.9037 16.8959C49.7267 16.5337 49.4469 16.25 49.0646 16.0447C48.6863 15.8395 48.1872 15.7369 47.5674 15.7369H45.2251V26.5007H43.3597ZM57.8785 26.6878C57.0092 26.6878 56.2506 26.4886 55.6026 26.0902C54.9546 25.6917 54.4516 25.1343 54.0934 24.418C53.7352 23.7016 53.5561 22.8645 53.5561 21.9066C53.5561 20.9447 53.7352 20.1036 54.0934 19.3832C54.4516 18.6627 54.9546 18.1033 55.6026 17.7049C56.2506 17.3065 57.0092 17.1072 57.8785 17.1072C58.7478 17.1072 59.5065 17.3065 60.1544 17.7049C60.8024 18.1033 61.3055 18.6627 61.6637 19.3832C62.0219 20.1036 62.201 20.9447 62.201 21.9066C62.201 22.8645 62.0219 23.7016 61.6637 24.418C61.3055 25.1343 60.8024 25.6917 60.1544 26.0902C59.5065 26.4886 58.7478 26.6878 57.8785 26.6878ZM57.8846 25.1726C58.448 25.1726 58.9149 25.0237 59.2851 24.7258C59.6554 24.428 59.9291 24.0316 60.1061 23.5366C60.2873 23.0415 60.3778 22.4962 60.3778 21.9006C60.3778 21.3089 60.2873 20.7656 60.1061 20.2706C59.9291 19.7715 59.6554 19.3711 59.2851 19.0692C58.9149 18.7674 58.448 18.6165 57.8846 18.6165C57.3171 18.6165 56.8462 18.7674 56.4719 19.0692C56.1017 19.3711 55.826 19.7715 55.6449 20.2706C55.4678 20.7656 55.3792 21.3089 55.3792 21.9006C55.3792 22.4962 55.4678 23.0415 55.6449 23.5366C55.826 24.0316 56.1017 24.428 56.4719 24.7258C56.8462 25.0237 57.3171 25.1726 57.8846 25.1726ZM65.9439 26.5007L63.2152 17.228H65.0806L66.8977 24.0376H66.9882L68.8114 17.228H70.6768L72.4879 24.0074H72.5784L74.3835 17.228H76.2489L73.5262 26.5007H71.685L69.8015 19.8057H69.6626L67.7791 26.5007H65.9439ZM81.6761 26.6878C80.7625 26.6878 79.9757 26.4926 79.3157 26.1023C78.6596 25.7078 78.1525 25.1545 77.7944 24.4421C77.4402 23.7257 77.2631 22.8866 77.2631 21.9247C77.2631 20.9749 77.4402 20.1378 77.7944 19.4133C78.1525 18.6889 78.6516 18.1234 79.2915 17.717C79.9355 17.3105 80.6881 17.1072 81.5493 17.1072C82.0725 17.1072 82.5796 17.1938 83.0706 17.3668C83.5616 17.5399 84.0023 17.8115 84.3927 18.1818C84.7831 18.5521 85.091 19.033 85.3164 19.6246C85.5417 20.2122 85.6544 20.9266 85.6544 21.7677V22.4077H78.2833V21.0554H83.8856C83.8856 20.5805 83.789 20.1599 83.5958 19.7937C83.4027 19.4234 83.131 19.1316 82.7809 18.9183C82.4347 18.705 82.0283 18.5984 81.5614 18.5984C81.0543 18.5984 80.6116 18.7231 80.2333 18.9726C79.859 19.2181 79.5692 19.5401 79.364 19.9386C79.1627 20.333 79.0621 20.7616 79.0621 21.2244V22.2809C79.0621 22.9007 79.1708 23.4279 79.3881 23.8626C79.6095 24.2972 79.9173 24.6292 80.3118 24.8587C80.7062 25.084 81.167 25.1967 81.6942 25.1967C82.0363 25.1967 82.3482 25.1484 82.6299 25.0518C82.9117 24.9512 83.1551 24.8023 83.3604 24.6051C83.5657 24.4079 83.7226 24.1644 83.8313 23.8746L85.5397 24.1825C85.4029 24.6856 85.1574 25.1263 84.8032 25.5046C84.4531 25.8789 84.0124 26.1707 83.4811 26.38C82.9539 26.5852 82.3522 26.6878 81.6761 26.6878ZM87.6572 26.5007V17.228H89.4019V18.701H89.4985C89.6675 18.2019 89.9653 17.8095 90.3919 17.5238C90.8226 17.234 91.3095 17.0891 91.8529 17.0891C91.9655 17.0891 92.0984 17.0931 92.2513 17.1012C92.4083 17.1092 92.531 17.1193 92.6195 17.1314V18.8579C92.5471 18.8378 92.4183 18.8157 92.2332 18.7915C92.048 18.7634 91.8629 18.7493 91.6778 18.7493C91.2512 18.7493 90.8708 18.8398 90.5368 19.0209C90.2068 19.198 89.9452 19.4455 89.752 19.7635C89.5588 20.0774 89.4622 20.4356 89.4622 20.8381V26.5007H87.6572ZM97.846 26.6878C96.9324 26.6878 96.1456 26.4926 95.4856 26.1023C94.8296 25.7078 94.3225 25.1545 93.9643 24.4421C93.6101 23.7257 93.433 22.8866 93.433 21.9247C93.433 20.9749 93.6101 20.1378 93.9643 19.4133C94.3225 18.6889 94.8215 18.1234 95.4614 17.717C96.1054 17.3105 96.858 17.1072 97.7192 17.1072C98.2424 17.1072 98.7495 17.1938 99.2405 17.3668C99.7316 17.5399 100.172 17.8115 100.563 18.1818C100.953 18.5521 101.261 19.033 101.486 19.6246C101.712 20.2122 101.824 20.9266 101.824 21.7677V22.4077H94.4533V21.0554H100.056C100.056 20.5805 99.9589 20.1599 99.7658 19.7937C99.5726 19.4234 99.3009 19.1316 98.9508 18.9183C98.6047 18.705 98.1982 18.5984 97.7313 18.5984C97.2242 18.5984 96.7815 18.7231 96.4032 18.9726C96.0289 19.2181 95.7391 19.5401 95.5339 19.9386C95.3326 20.333 95.232 20.7616 95.232 21.2244V22.2809C95.232 22.9007 95.3407 23.4279 95.558 23.8626C95.7794 24.2972 96.0873 24.6292 96.4817 24.8587C96.8761 25.084 97.3369 25.1967 97.8641 25.1967C98.2062 25.1967 98.5181 25.1484 98.7999 25.0518C99.0816 24.9512 99.3251 24.8023 99.5303 24.6051C99.7356 24.4079 99.8925 24.1644 100.001 23.8746L101.71 24.1825C101.573 24.6856 101.327 25.1263 100.973 25.5046C100.623 25.8789 100.182 26.1707 99.6511 2Line truncated
<path d="M142.937 26.5007V14.1371H148.044C148.97 14.1371 149.769 14.3182 150.441 14.6804C151.117 15.0386 151.638 15.5396 152.005 16.1836C152.371 16.8235 152.554 17.5681 152.554 18.4172C152.554 19.2705 152.367 20.017 151.992 20.6569C151.622 21.2928 151.093 21.7859 150.405 22.136C149.717 22.4861 148.9 22.6612 147.954 22.6612H144.803V20.3068H147.398C147.849 20.3068 148.225 20.2283 148.527 20.0714C148.833 19.9144 149.065 19.6951 149.222 19.4133C149.379 19.1276 149.457 18.7956 149.457 18.4172C149.457 18.0349 149.379 17.7049 149.222 17.4272C149.065 17.1455 148.833 16.9281 148.527 16.7752C148.221 16.6223 147.845 16.5458 147.398 16.5458H145.925V26.5007H142.937ZM160.01 22.4982V17.228H162.956V26.5007H160.142V24.7741H160.046C159.841 25.3416 159.49 25.7924 158.995 26.1264C158.504 26.4564 157.911 26.6214 157.214 26.6214C156.583 26.6214 156.027 26.4765 155.548 26.1868C155.069 25.897 154.697 25.4925 154.431 24.9734C154.166 24.4502 154.031 23.8384 154.027 23.1381V17.228H156.979V22.5586C156.983 23.0617 157.116 23.4581 157.377 23.7479C157.639 24.0376 157.995 24.1825 158.446 24.1825C158.74 24.1825 159.003 24.1181 159.237 23.9893C159.474 23.8565 159.661 23.6654 159.798 23.4158C159.939 23.1623 160.01 22.8564 160.01 22.4982ZM170.069 17.228V19.4013H164.219V17.228H170.069ZM165.444 15.0064H168.396V23.5849C168.396 23.766 168.425 23.9129 168.481 24.0256C168.541 24.1342 168.628 24.2127 168.74 24.261C168.853 24.3053 168.988 24.3274 169.145 24.3274C169.258 24.3274 169.376 24.3173 169.501 24.2972C169.63 24.2731 169.726 24.2529 169.791 24.2368L170.238 26.3679C170.097 26.4081 169.898 26.4584 169.64 26.5188C169.386 26.5792 169.083 26.6174 168.728 26.6335C168.036 26.6657 167.443 26.5852 166.947 26.392C166.456 26.1948 166.08 25.889 165.819 25.4744C165.561 25.0599 165.436 24.5387 165.444 23.9109V15.0064ZM175.81 26.6758C174.84 26.6758 174.003 26.4846 173.298 26.1023C172.598 25.7159 172.059 25.1665 171.68 24.4542C171.306 23.7378 171.119 22.8866 171.119 21.9006C171.119 20.9427 171.308 20.1056 171.686 19.3892C172.065 18.6688 172.598 18.1094 173.286 17.7109C173.974 17.3085 174.785 17.1072 175.719 17.1072C176.379 17.1072 176.983 17.2099 177.53 17.4151C178.078 17.6204 178.55 17.9242 178.949 18.3267C179.347 18.7292 179.657 19.2262 179.879 19.8178C180.1 20.4054 180.211 21.0795 180.211 21.8402V22.5767H172.151V20.8622H177.464C177.46 20.5483 177.385 20.2686 177.24 20.0231C177.096 19.7776 176.896 19.5864 176.643 19.4496C176.393 19.3087 176.106 19.2383 175.78 19.2383C175.449 19.2383 175.154 19.3127 174.892 19.4616C174.63 19.6065 174.423 19.8057 174.27 20.0593C174.117 20.3088 174.037 20.5926 174.029 20.9105V22.6552C174.029 23.0335 174.103 23.3655 174.252 23.6513C174.401 23.933 174.612 24.1523 174.886 24.3093C175.16 24.4663 175.486 24.5447 175.864 24.5447C176.126 24.5447 176.363 24.5085 176.576 24.4361C176.79 24.3636 176.973 24.257 177.126 24.1161C177.279 23.9752 177.393 23.8022 177.47 23.5969L180.18 23.6754C180.068 24.2831 179.82 24.8124 179.438 25.2631C179.06 25.7099 178.563 26.058 177.947 26.3075C177.331 26.553 176.619 26.6758 175.81 26.6758ZM181.718 26.5007V17.228H184.586V18.9183H184.682C184.852 18.3066 185.127 17.8518 185.51 17.554C185.892 17.2521 186.337 17.1012 186.844 17.1012C186.981 17.1012 187.121 17.1113 187.266 17.1314C187.411 17.1475 187.546 17.1736 187.671 17.2099V19.7756C187.53 19.7273 187.345 19.689 187.115 19.6609C186.89 19.6327 186.689 19.6186 186.512 19.6186C186.162 19.6186 185.846 19.6971 185.564 19.854C185.286 20.007 185.067 20.2223 184.906 20.5C184.749 20.7737 184.67 21.0956 184.67 21.4659V26.5007H181.718ZM189.471 26.6758C189.037 26.6758 188.664 26.5228 188.354 26.217C188.049 25.9111 187.898 25.5408 187.902 25.1062C187.898 24.6796 188.049 24.3153 188.354 24.0135C188.664 23.7076 189.037 23.5547 189.471 23.5547C189.882 23.5547 190.244 23.7076 190.558 24.0135C190.876 24.3153 191.037 24.6796 191.041 25.1062C191.037 25.3959 190.96 25.6596 190.811 25.897C190.667 26.1345 190.475 26.3236 190.238 26.4645C190.005 26.6053 189.749 26.6758 189.471 26.6758ZM192.991 17.228H195.943V26.8871C195.943 27.6517 195.786 28.2595 195.472 28.7102C195.162 29.161 194.723 29.485 194.156 29.6822C193.588 29.8794 192.918 29.978 192.146 29.978C192.041 29.978 191.942 29.976 191.85 29.9719C191.757 29.9679 191.657 29.9639 191.548 29.9599V27.7202C191.62 27.7282 191.685 27.7342 191.741 27.7383C191.797 27.7423 191.854 27.7443 191.91 27.7443C192.317 27.7443 192.598 27.6678 192.755 27.5149C192.912 27.366 192.991 27.1366 192.991 26.8267V17.228ZM194.464 16.1474C194.049 16.1474 193.693 16.0105 193.395 15.7369C193.097 15.4592 192.949 15.1251 192.949 14.7347C192.949 14.3484 193.097 14.0183 193.395 13.7447C193.693 13.467 194.049 13.3281 194.464 13.3281C194.882 13.3281 195.239 13.467 195.532 13.7447C195.83 14.0183 195.979 14.3484 195.979 14.7347C195.979 15.1251 195.83 15.4592 195.532 15.7369C195.239 16.0105 194.882 16.1474 194.464 16.1474ZM205.917 20.0593L203.207 20.1317C203.179 19.9386 203.102 19.7675 202.977 19.6186C202.853 19.4657 202.69 19.3469 202.488 19.2624C202.291 19.1739 202Line truncated
</g>
</g>
<rect x="1.07143" y="1.07143" width="212.858" height="37.8585" rx="6.92857" stroke="white" stroke-opacity="0.15" stroke-width="2.14286"/>
<defs>
<filter id="filter0_d_1_56" x="1.39972" y="-0.60028" width="41.2006" height="41.2006" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="2.80014"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_56"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_56" result="shape"/>
</filter>
<filter id="filter1_d_1_56" x="36.2871" y="3.78642" width="176.429" height="32.4286" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="2.85714"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_56"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_56" result="shape"/>
</filter>
<linearGradient id="paint0_linear_1_56" x1="107.501" y1="0" x2="107.501" y2="40.0014" gradientUnits="userSpaceOnUse">
<stop stop-color="#0C2530"/>
<stop offset="1" stop-color="#071115"/>
</linearGradient>
<clipPath id="clip0_1_56">
<rect width="215.001" height="40.0014" rx="8" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

+44
View File
@@ -0,0 +1,44 @@
<svg width="163" height="56" viewBox="0 0 163 56" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="163" height="56" rx="8" fill="url(#paint0_linear_1_50)"/>
<rect x="1.05" y="1.05" width="160.9" height="53.9" rx="6.95" stroke="white" stroke-opacity="0.15" stroke-width="2.1"/>
<g filter="url(#filter0_d_1_50)">
<path d="M31.9998 42.2858V28.9526H28.3636" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M44.6166 39.3134L41.0904 35.6192V28.9526H37.4541" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M30.1817 17.5242C30.1966 14.9521 31.1761 12.4893 32.9088 10.6671" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M25.0909 21.3337C25.4434 20.2146 26.1268 19.2422 27.042 18.5573C27.9573 17.8724 29.057 17.5105 30.1817 17.5242C30.9406 17.5173 31.6917 17.6842 32.3826 18.0132C33.0735 18.3422 33.6875 18.8254 34.1815 19.4289" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M19.3829 39.3134L22.9092 35.6192V28.9526H21.0911C19.8939 28.9653 18.7063 28.7277 17.5979 28.2536C16.4895 27.7795 15.4825 27.0785 14.6359 26.1916C13.7894 25.3047 13.1202 24.2497 12.6677 23.0885C12.2151 21.9273 11.9883 20.6831 12.0005 19.4289C11.9883 18.1747 12.2151 16.9306 12.6677 15.7693C13.1202 14.6081 13.7894 13.5532 14.6359 12.6663C15.4825 11.7794 16.4895 11.0783 17.5979 10.6042C18.7063 10.1301 19.8939 9.89249 21.0911 9.90522C22.0857 9.91007 23.0713 10.1037 24 10.4766C24.467 9.7099 25.1126 9.08028 25.876 8.64709C26.6394 8.21389 27.4954 7.99138 28.3635 8.00049C29.2752 8.00264 30.1713 8.24872 30.9667 8.7154C31.7622 9.18208 32.4307 9.85389 32.9088 10.6671C34.6163 8.942 36.9002 7.98495 39.2723 8.00049C40.4694 7.98775 41.657 8.22539 42.7654 8.69949C43.8738 9.1736 44.8808 9.87463 45.7274 10.7615C46.5739 11.6484 47.2431 12.7034 47.6956 13.8646C48.1482 15.0258 48.375 16.27 48.3629 17.5242V17.9051C49.431 18.2744 50.3592 18.9903 51.013 19.9492C51.6667 20.9081 52.0121 22.0601 51.9991 23.2384C52.0123 23.9926 51.8802 24.7419 51.6108 25.4414C51.3414 26.1409 50.9401 26.7764 50.4309 27.3097C49.9218 27.8431 49.3153 28.2635 48.6475 28.5458C47.9798 28.8281 47.2646 28.9664 46.5447 28.9526" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M43.8176 41.3334C43.8176 42.9113 45.0386 44.1905 46.5448 44.1905C48.0509 44.1905 49.2719 42.9113 49.2719 41.3334C49.2719 39.7555 48.0509 38.4763 46.5448 38.4763C45.0386 38.4763 43.8176 39.7555 43.8176 41.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M29.2726 45.1429C29.2726 46.7208 30.4936 48 31.9998 48C33.506 48 34.727 46.7208 34.727 45.1429C34.727 43.565 33.506 42.2858 31.9998 42.2858C30.4936 42.2858 29.2726 43.565 29.2726 45.1429Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
<path d="M14.7276 41.3334C14.7276 42.9113 15.9486 44.1905 17.4548 44.1905C18.961 44.1905 20.182 42.9113 20.182 41.3334C20.182 39.7555 18.961 38.4763 17.4548 38.4763C15.9486 38.4763 14.7276 39.7555 14.7276 41.3334Z" stroke="#218EF2" stroke-width="2" stroke-miterlimit="10" stroke-linecap="square"/>
</g>
<g filter="url(#filter1_d_1_50)">
<path d="M61.2784 24.5V12.8636H65.4261C66.3314 12.8636 67.0814 13.0284 67.6761 13.358C68.2708 13.6875 68.7159 14.1383 69.0113 14.7102C69.3068 15.2784 69.4545 15.9186 69.4545 16.6307C69.4545 17.3466 69.3049 17.9905 69.0057 18.5625C68.7102 19.1307 68.2632 19.5814 67.6648 19.9148C67.0701 20.2443 66.322 20.4091 65.4204 20.4091H62.5682V18.9204H65.2613C65.8333 18.9204 66.2973 18.822 66.6534 18.625C67.0095 18.4242 67.2708 18.1515 67.4375 17.8068C67.6041 17.4621 67.6875 17.0701 67.6875 16.6307C67.6875 16.1913 67.6041 15.8011 67.4375 15.4602C67.2708 15.1193 67.0076 14.8523 66.6477 14.6591C66.2916 14.4659 65.822 14.3693 65.2386 14.3693H63.0341V24.5H61.2784ZM74.9432 24.6761C74.125 24.6761 73.411 24.4886 72.8011 24.1136C72.1913 23.7386 71.7178 23.214 71.3807 22.5398C71.0435 21.8655 70.875 21.0776 70.875 20.1761C70.875 19.2708 71.0435 18.4792 71.3807 17.8011C71.7178 17.1231 72.1913 16.5966 72.8011 16.2216C73.411 15.8466 74.125 15.6591 74.9432 15.6591C75.7613 15.6591 76.4754 15.8466 77.0852 16.2216C77.6951 16.5966 78.1685 17.1231 78.5057 17.8011C78.8428 18.4792 79.0113 19.2708 79.0113 20.1761C79.0113 21.0776 78.8428 21.8655 78.5057 22.5398C78.1685 23.214 77.6951 23.7386 77.0852 24.1136C76.4754 24.4886 75.7613 24.6761 74.9432 24.6761ZM74.9488 23.25C75.4791 23.25 75.9185 23.1098 76.267 22.8295C76.6155 22.5492 76.8731 22.1761 77.0398 21.7102C77.2102 21.2443 77.2954 20.7311 77.2954 20.1704C77.2954 19.6136 77.2102 19.1023 77.0398 18.6364C76.8731 18.1667 76.6155 17.7898 76.267 17.5057C75.9185 17.2216 75.4791 17.0795 74.9488 17.0795C74.4148 17.0795 73.9716 17.2216 73.6193 17.5057C73.2708 17.7898 73.0113 18.1667 72.8409 18.6364C72.6742 19.1023 72.5909 19.6136 72.5909 20.1704C72.5909 20.7311 72.6742 21.2443 72.8409 21.7102C73.0113 22.1761 73.2708 22.5492 73.6193 22.8295C73.9716 23.1098 74.4148 23.25 74.9488 23.25ZM82.5341 24.5L79.9659 15.7727H81.7216L83.4318 22.1818H83.517L85.2329 15.7727H86.9886L88.6932 22.1534H88.7784L90.4772 15.7727H92.2329L89.6704 24.5H87.9375L86.1647 18.1989H86.0341L84.2613 24.5H82.5341ZM97.3409 24.6761C96.481 24.6761 95.7405 24.4924 95.1193 24.125C94.5019 23.7538 94.0246 23.2329 93.6875 22.5625C93.3541 21.8883 93.1875 21.0985 93.1875 20.1932C93.1875 19.2992 93.3541 18.5114 93.6875 17.8295C94.0246 17.1477 94.4943 16.6155 95.0966 16.2329C95.7026 15.8504 96.411 15.6591 97.2216 15.6591C97.714 15.6591 98.1913 15.7405 98.6534 15.9034C99.1155 16.0663 99.5303 16.322 99.8977 16.6704C100.265 17.0189 100.555 17.4716 100.767 18.0284C100.979 18.5814 101.085 19.2538 101.085 20.0454V20.6477H94.1477V19.375H99.4204C99.4204 18.928 99.3295 18.5322 99.1477 18.1875C98.9659 17.839 98.7102 17.5644 98.3807 17.3636C98.0549 17.1629 97.6723 17.0625 97.2329 17.0625C96.7557 17.0625 96.339 17.1799 95.9829 17.4148C95.6307 17.6458 95.3579 17.9489 95.1647 18.3239C94.9754 18.6951 94.8807 19.0985 94.8807 19.5341V20.5284C94.8807 21.1117 94.9829 21.6079 95.1875 22.017C95.3958 22.4261 95.6856 22.7386 96.0568 22.9545C96.428 23.1667 96.8617 23.2727 97.3579 23.2727C97.6799 23.2727 97.9735 23.2273 98.2386 23.1364C98.5038 23.0417 98.7329 22.9015 98.9261 22.7159C99.1193 22.5303 99.267 22.3011 99.3693 22.0284L100.977 22.3182C100.848 22.7917 100.617 23.2064 100.284 23.5625C99.9545 23.9148 99.5397 24.1894 99.0397 24.3864C98.5435 24.5795 97.9772 24.6761 97.3409 24.6761ZM102.97 24.5V15.7727H104.612V17.1591H104.703C104.862 16.6894 105.142 16.3201 105.544 16.0511C105.949 15.7784 106.408 15.642 106.919 15.642C107.025 15.642 107.15 15.6458 107.294 15.6534C107.442 15.661 107.557 15.6704 107.641 15.6818V17.3068C107.572 17.2879 107.451 17.267 107.277 17.2443C107.103 17.2178 106.928 17.2045 106.754 17.2045C106.353 17.2045 105.995 17.2898 105.68 17.4602C105.37 17.6269 105.124 17.8598 104.942 18.1591C104.76 18.4545 104.669 18.7917 104.669 19.1704V24.5H102.97ZM112.56 24.6761C111.7 24.6761 110.959 24.4924 110.338 24.125C109.721 23.7538 109.243 23.2329 108.906 22.5625C108.573 21.8883 108.406 21.0985 108.406 20.1932C108.406 19.2992 108.573 18.5114 108.906 17.8295C109.243 17.1477 109.713 16.6155 110.315 16.2329C110.921 15.8504 111.63 15.6591 112.44 15.6591C112.933 15.6591 113.41 15.7405 113.872 15.9034C114.334 16.0663 114.749 16.322 115.116 16.6704C115.484 17.0189 115.774 17.4716 115.986 18.0284C116.198 18.5814 116.304 19.2538 116.304 20.0454V20.6477H109.366V19.375H114.639C114.639 18.928 114.548 18.5322 114.366 18.1875C114.185 17.839 113.929 17.5644 113.599 17.3636C113.274 17.1629 112.891 17.0625 112.452 17.0625C111.974 17.0625 111.558 17.1799 111.202 17.4148C110.849 17.6458 110.577 17.9489 110.383 18.3239C110.194 18.6951 110.099 19.0985 110.099 19.5341V20.5284C110.099 21.1117 110.202 21.6079 110.406 22.017C110.615 22.4261 110.904 22.7386 111.276 22.9545C111.647 23.1667 112.08 23.2727 112.577 23.2727C112.899 23.2727 113.192 23.2273 113.457 23.1364C113.723 23.0417 113.952 22.9015 114.145 22.7159C114.338 22.5303 114.486 22.3011 114.588 22.0284L116.196 22.3182C116.067 22.7917 115.836 23.2064 115.503 23.5625C115.173 23.9148 114.758 24.1894 114.258 24.3864C113.762 24.5795 1Line truncated
<path d="M60.9357 43.5V31.1364H66.043C66.9686 31.1364 67.7675 31.3175 68.4396 31.6797C69.1157 32.0379 69.6369 32.5389 70.0032 33.1829C70.3694 33.8228 70.5525 34.5673 70.5525 35.4165C70.5525 36.2698 70.3654 37.0163 69.9911 37.6562C69.6208 38.2921 69.0916 38.7851 68.4034 39.1353C67.7152 39.4854 66.8982 39.6605 65.9524 39.6605H62.8011V37.3061H65.397C65.8478 37.3061 66.2241 37.2276 66.5259 37.0707C66.8318 36.9137 67.0632 36.6944 67.2202 36.4126C67.3771 36.1269 67.4556 35.7949 67.4556 35.4165C67.4556 35.0342 67.3771 34.7042 67.2202 34.4265C67.0632 34.1448 66.8318 33.9274 66.5259 33.7745C66.22 33.6216 65.8437 33.5451 65.397 33.5451H63.924V43.5H60.9357ZM78.0081 39.4975V34.2273H80.9542V43.5H78.141V41.7734H78.0444C77.8391 42.3409 77.489 42.7917 76.9939 43.1257C76.5029 43.4557 75.9093 43.6207 75.213 43.6207C74.5812 43.6207 74.0258 43.4758 73.5469 43.1861C73.0679 42.8963 72.6956 42.4918 72.43 41.9726C72.1644 41.4494 72.0296 40.8377 72.0255 40.1374V34.2273H74.9776V39.5579C74.9816 40.061 75.1144 40.4574 75.376 40.7471C75.6376 41.0369 75.9938 41.1818 76.4446 41.1818C76.7384 41.1818 77.002 41.1174 77.2354 40.9886C77.4729 40.8558 77.66 40.6646 77.7969 40.4151C77.9377 40.1616 78.0081 39.8557 78.0081 39.4975ZM88.0672 34.2273V36.4006H82.2174V34.2273H88.0672ZM83.4429 32.0057H86.395V40.5842C86.395 40.7653 86.4231 40.9122 86.4795 41.0248C86.5398 41.1335 86.6264 41.212 86.7391 41.2603C86.8517 41.3046 86.9866 41.3267 87.1435 41.3267C87.2562 41.3267 87.3749 41.3166 87.4997 41.2965C87.6285 41.2724 87.7251 41.2522 87.7895 41.2361L88.2362 43.3672C88.0954 43.4074 87.8961 43.4577 87.6386 43.5181C87.385 43.5785 87.0811 43.6167 86.727 43.6328C86.0347 43.665 85.4411 43.5845 84.9461 43.3913C84.4551 43.1941 84.0788 42.8882 83.8172 42.4737C83.5596 42.0592 83.4348 41.538 83.4429 40.9101V32.0057ZM93.8083 43.6751C92.8384 43.6751 92.0012 43.4839 91.2969 43.1016C90.5967 42.7152 90.0574 42.1658 89.679 41.4535C89.3048 40.7371 89.1176 39.8859 89.1176 38.8998C89.1176 37.942 89.3068 37.1049 89.6851 36.3885C90.0634 35.6681 90.5967 35.1087 91.2849 34.7102C91.9731 34.3078 92.784 34.1065 93.7177 34.1065C94.3778 34.1065 94.9815 34.2092 95.5288 34.4144C96.0762 34.6197 96.5491 34.9235 96.9475 35.326C97.3459 35.7284 97.6558 36.2255 97.8772 36.8171C98.0985 37.4047 98.2092 38.0788 98.2092 38.8395V39.576H90.1499V37.8615H95.4624C95.4584 37.5476 95.3839 37.2679 95.2391 37.0224C95.0942 36.7769 94.8949 36.5857 94.6414 36.4489C94.3919 36.308 94.1041 36.2376 93.7781 36.2376C93.4481 36.2376 93.1523 36.312 92.8907 36.4609C92.6291 36.6058 92.4218 36.805 92.2689 37.0586C92.1159 37.3081 92.0355 37.5918 92.0274 37.9098V39.6545C92.0274 40.0328 92.1019 40.3648 92.2508 40.6506C92.3997 40.9323 92.611 41.1516 92.8847 41.3086C93.1583 41.4655 93.4843 41.544 93.8626 41.544C94.1242 41.544 94.3617 41.5078 94.575 41.4354C94.7883 41.3629 94.9714 41.2563 95.1244 41.1154C95.2773 40.9745 95.392 40.8015 95.4685 40.5962L98.179 40.6747C98.0664 41.2824 97.8188 41.8117 97.4365 42.2624C97.0582 42.7092 96.5611 43.0573 95.9454 43.3068C95.3296 43.5523 94.6173 43.6751 93.8083 43.6751ZM99.7169 43.5V34.2273H102.584V35.9176H102.681C102.85 35.3059 103.126 34.8511 103.508 34.5533C103.89 34.2514 104.335 34.1005 104.842 34.1005C104.979 34.1005 105.12 34.1105 105.265 34.1307C105.41 34.1468 105.545 34.1729 105.669 34.2092V36.7748C105.528 36.7266 105.343 36.6883 105.114 36.6601C104.889 36.632 104.687 36.6179 104.51 36.6179C104.16 36.6179 103.844 36.6964 103.562 36.8533C103.285 37.0063 103.065 37.2216 102.904 37.4993C102.747 37.773 102.669 38.0949 102.669 38.4652V43.5H99.7169ZM107.47 43.6751C107.035 43.6751 106.663 43.5221 106.353 43.2163C106.047 42.9104 105.896 42.5401 105.9 42.1055C105.896 41.6788 106.047 41.3146 106.353 41.0128C106.663 40.7069 107.035 40.554 107.47 40.554C107.88 40.554 108.243 40.7069 108.557 41.0128C108.874 41.3146 109.035 41.6788 109.039 42.1055C109.035 42.3952 108.959 42.6588 108.81 42.8963C108.665 43.1337 108.474 43.3229 108.237 43.4638C108.003 43.6046 107.748 43.6751 107.47 43.6751ZM110.989 34.2273H113.941V43.8864C113.941 44.651 113.785 45.2587 113.471 45.7095C113.161 46.1603 112.722 46.4842 112.155 46.6815C111.587 46.8787 110.917 46.9773 110.144 46.9773C110.04 46.9773 109.941 46.9752 109.848 46.9712C109.756 46.9672 109.655 46.9632 109.547 46.9591V44.7194C109.619 44.7275 109.683 44.7335 109.74 44.7376C109.796 44.7416 109.852 44.7436 109.909 44.7436C110.315 44.7436 110.597 44.6671 110.754 44.5142C110.911 44.3653 110.989 44.1359 110.989 43.826V34.2273ZM112.462 33.1467C112.048 33.1467 111.692 33.0098 111.394 32.7361C111.096 32.4584 110.947 32.1244 110.947 31.734C110.947 31.3476 111.096 31.0176 111.394 30.744C111.692 30.4663 112.048 30.3274 112.462 30.3274C112.881 30.3274 113.237 30.4663 113.531 30.744C113.829 31.0176 113.978 31.3476 113.978 31.734C113.978 32.1244 113.829 32.4584 113.531 32.7361C113.237 33.0098 112.881 33.1467 112.462 33.1467ZM123.916 37.0586L121.205 37.131C121.177 36.9378 121.101 36.7668 120.976 36.6179C120.851 36.465 120.688 36.3462 120.487 36.2617C120.29 36.1732 120.06Line truncated
</g>
<defs>
<filter id="filter0_d_1_50" x="5.28571" y="1.28571" width="53.4286" height="53.4286" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="2.85714"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_50"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_50" result="shape"/>
</filter>
<filter id="filter1_d_1_50" x="54.4" y="3.9" width="102.2" height="48.6773" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="2.8"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1_50"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1_50" result="shape"/>
</filter>
<linearGradient id="paint0_linear_1_50" x1="81.5" y1="0" x2="81.5" y2="56" gradientUnits="userSpaceOnUse">
<stop stop-color="#0C2530"/>
<stop offset="1" stop-color="#071115"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

-3
View File
@@ -1,3 +0,0 @@
import { build } from "./utils.js"
build();
+214
View File
@@ -0,0 +1,214 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" version="25.0.1">
<diagram name="Page-1" id="5LlmtnmR4draSSsTtYyD">
<mxGraphModel grid="1" page="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" pageScale="1" pageWidth="1100" pageHeight="850" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="skmebJAFKBwesmhEX21R-64" value="Legacy Notice" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="540" y="555" width="130" height="20" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-8" value="only most important directories shown" style="rounded=1;whiteSpace=wrap;html=1;align=right;" vertex="1" parent="1">
<mxGeometry x="380" y="50" width="230" height="20" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-1" value="src/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="360" y="110" width="80" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-2" value="Puter Repository" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="240" y="40" width="160" height="40" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-4" value="Every directory under src/ is a node module." style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=14;align=left;" vertex="1" parent="1">
<mxGeometry x="470" y="110" width="260" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-5" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=elbowEdgeStyle;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-2" target="skmebJAFKBwesmhEX21R-1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="490" y="260" as="sourcePoint" />
<mxPoint x="540" y="210" as="targetPoint" />
<Array as="points">
<mxPoint x="320" y="125" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-6" value="backend/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="440" y="190" width="80" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-7" value="gui/src/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="440" y="1000" width="80" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-10" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-1" target="skmebJAFKBwesmhEX21R-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="490" y="260" as="sourcePoint" />
<mxPoint x="540" y="210" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-12" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-1" target="skmebJAFKBwesmhEX21R-6">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="490" y="260" as="sourcePoint" />
<mxPoint x="540" y="210" as="targetPoint" />
<Array as="points">
<mxPoint x="400" y="205" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-14" value="extensions/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="520" y="1080" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-15" value="Puter GUI Extensions" style="rounded=1;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="730" y="1080" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-16" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-14" target="skmebJAFKBwesmhEX21R-15">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="530" y="980" as="sourcePoint" />
<mxPoint x="580" y="930" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-15" target="skmebJAFKBwesmhEX21R-15">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-18" value="UI/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="520" y="1120" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-19" value="Puter Desktop" style="rounded=1;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="730" y="1120" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-20" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-18" target="skmebJAFKBwesmhEX21R-19">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="670" y="1098" as="sourcePoint" />
<mxPoint x="740" y="1098" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-21" value="services/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="520" y="1160" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-22" value="Frontend Services" style="rounded=1;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="730" y="1160" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-23" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-21" target="skmebJAFKBwesmhEX21R-22">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="670" y="1138" as="sourcePoint" />
<mxPoint x="740" y="1138" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-24" value="initgui.js" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="520" y="1200" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-25" value="Launches services and initializes the GUI" style="rounded=1;whiteSpace=wrap;html=1;fontSize=13;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="730" y="1200" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-26" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-24" target="skmebJAFKBwesmhEX21R-25">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="670" y="1185" as="sourcePoint" />
<mxPoint x="740" y="1185" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-27" value="IPC.js" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="520" y="1240" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-28" value="Manages communication between Desktop and apps" style="rounded=1;whiteSpace=wrap;html=1;fontSize=13;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="730" y="1240" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-29" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-27" target="skmebJAFKBwesmhEX21R-28">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="670" y="1225" as="sourcePoint" />
<mxPoint x="740" y="1225" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-46" value="modules/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="520" y="280" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-47" value="New Code goes Here" style="rounded=1;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="730" y="280" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-48" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-46" target="skmebJAFKBwesmhEX21R-47">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="530" y="180" as="sourcePoint" />
<mxPoint x="580" y="130" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-47" target="skmebJAFKBwesmhEX21R-47">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-50" value="services/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="520" y="320" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-51" value="Core Module services" style="rounded=1;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="730" y="320" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-52" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-50" target="skmebJAFKBwesmhEX21R-51">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="670" y="298" as="sourcePoint" />
<mxPoint x="740" y="298" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-53" value="routers/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="520" y="480" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-54" value="HTTP endpoints" style="rounded=1;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="730" y="480" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-55" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-53" target="skmebJAFKBwesmhEX21R-54">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="670" y="458" as="sourcePoint" />
<mxPoint x="740" y="458" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-62" value="&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;This is the original directory where routes&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;were placed. New services should use the&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&quot;Endpoint&quot; class to define routes.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Examples:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- PermissionAPIService.js&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- NotificationService.js&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- KernelInfoService.js&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgba(0, 0, 0, 0); font-family: monospace; font-size: 0px; text-wrap: nowrap;&quot;&gt;%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22extensions%2F%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontSize%3D16%3BfillColor%3D%23e1d5e7%3BstrokeColor%3D%239673a6%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22520%22%20y%3D%22400%22%20width%3D%22140%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22Puter%20GUI%20Extensions%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontSize%3D16%3BfillColor%3D%23d5e8d4%3BstrokeColor%3D%2382b366%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22730%22%20y%3D%22400%22%20width%3D%22180%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3B%22%20edge%3D%221%22%20source%3D%222%22%20target%3D%223%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22530%22%20y%3D%22300%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22580%22%20y%3D%22250%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20style%3D%22edgeStyle%3DorthogonalEdgeStyle%3Brounded%3D0%3BorthogonalLoop%3D1%3BjettySize%3Dauto%3Bhtml%3D1%3BexitX%3D0.5%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3B%22%20edge%3D%221%22%20source%3D%223%22%20target%3D%223%22%20parent%3D%221%22%3E%3CmxGeometry%20relative%3D%221%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%226%22%20value%3D%22UI%2F%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontSize%3D16%3BfillColor%3D%23e1d5e7%3BstrokeColor%3D%239673a6%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22520%22%20y%3D%22440%22%20width%3D%22140%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%227%22%20value%3D%22Puter%20Desktop%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontSize%3D16%3BfillColor%3D%23d5e8d4%3BstrokeColor%3D%2382b366%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22730%22%20y%3D%22440%22%20width%3D%22180%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%228%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3B%22%20edge%3D%221%22%20source%3D%226%22%20target%3D%227%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22670%22%20y%3D%22418%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22740%22%20y%3D%22418%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%229%22%20value%3D%22services%2F%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontSize%3D16%3BfillColor%3D%23e1d5e7%3BstrokeColor%3D%239673a6%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22520%22%20y%3D%22480%22%20width%3D%22140%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2210%22%20value%3D%22Frontend%20Services%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontSize%3D16%3BfillColor%3D%23d5e8d4%3BstrokeColor%3D%2382b366%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22730%22%20y%3D%22480%22%20width%3D%22180%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2211%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3B%22%20edge%3D%221%22%20source%3D%229%22%20target%3D%2210%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22670%22%20y%3D%22458%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22740%22%20y%3D%22458%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmLine truncated
<mxGeometry x="645" y="545" width="270" height="135" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-63" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=elbowEdgeStyle;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-62" target="skmebJAFKBwesmhEX21R-54">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="730" y="560" as="sourcePoint" />
<mxPoint x="780" y="510" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-65" value="structured/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="520" y="700" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-66" value="unstructured/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="520" y="720" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-68" value="&lt;div&gt;These directories mostly contain code for&lt;/div&gt;&lt;div&gt;the permission system to make it easier to maintain.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;structured/&amp;lt;pattern&amp;gt;/ contains code that is formatted according to &quot;&amp;lt;pattern&amp;gt;&quot;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;unstructured/ contains miscellaneous code used by the permission system.&lt;/div&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=18;fillColor=#f5f5f5;strokeColor=#666666;align=left;verticalAlign=top;fontSize=13;fontColor=#333333;" vertex="1" parent="1">
<mxGeometry x="730" y="700" width="270" height="150" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-69" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-68" target="skmebJAFKBwesmhEX21R-65">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="730" y="680" as="sourcePoint" />
<mxPoint x="780" y="630" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-70" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-68" target="skmebJAFKBwesmhEX21R-66">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="740" y="720" as="sourcePoint" />
<mxPoint x="670" y="720" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-71" value="these should go to:&lt;div&gt;modules/auth/&lt;/div&gt;&lt;div&gt;in the future&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="520" y="760" width="140" height="50" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-72" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-71" target="skmebJAFKBwesmhEX21R-66">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="730" y="680" as="sourcePoint" />
<mxPoint x="780" y="630" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-73" value="util/" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="520" y="880" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-74" value="&lt;div&gt;Utilities used by various services in Puter&#39;s backend.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;These should be incrementally moved to individual `lib` directories in modules/&lt;/div&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=18;fillColor=#f5f5f5;strokeColor=#666666;align=left;verticalAlign=top;fontSize=13;fontColor=#333333;" vertex="1" parent="1">
<mxGeometry x="730" y="880" width="270" height="90" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-75" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=vertical;" edge="1" parent="1" source="skmebJAFKBwesmhEX21R-74" target="skmebJAFKBwesmhEX21R-73">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="740" y="740" as="sourcePoint" />
<mxPoint x="670" y="740" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-76" value="Migration Notice" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="540" y="400" width="130" height="20" as="geometry" />
</mxCell>
<mxCell id="skmebJAFKBwesmhEX21R-77" value="&lt;div&gt;Services here should be incrementally&lt;/div&gt;&lt;div&gt;migrated into the modules/ directory.&lt;/div&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=18;fillColor=#fff2cc;strokeColor=#d6b656;align=left;verticalAlign=top;fontSize=13;" vertex="1" parent="1">
<mxGeometry x="650" y="390" width="270" height="50" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

+5
View File
@@ -0,0 +1,5 @@
# API Documentation
Note that this documentation is different from the [puter.js docs](https://docs.puter.com).
The scope of the documentation in this directory includes both stable API endpoints that
are used by **puter.js**, as well as API endpoints that may be subject to future changes.
+9
View File
@@ -0,0 +1,9 @@
# Share Links
A **share link** is a link to Puter's origin which contains a token
in the query string (the key is `share_token`; ex:
`http://puter.localhost:4100?share_token=...`).
This token can be used to apply permissions to the user of the
current session **if and only if** this user's email is confirmed
and matches the share link's associated email.
+219
View File
@@ -0,0 +1,219 @@
# Group Endpoints
## POST `/group/create` (auth required)
### Description
Creates a group and returns a UID (UUID formatted).
Groups do not have names, or any other descriptive attributes.
Instead they are always identified with a UUID, and they have
a `metadata` property.
The `metadata` property will always be given back to the client
in the same way it was provided. The `extra` property, also an
object, may be changed by the backend. The behavior of setting
any property on `extra` is currently undefined as all properties
are reserved for future use.
### Parameters
- **metadata:** _- optional_
- **accepts:** `object`
- **description:** arbitrary metadata to describe the group
- **extra:** _- optional_
- **accepts:** `object`
- **description:** extra parameters (server may change these)
### Request Example
```javascript
await fetch(`${window.api_origin}/group/create`, {
"headers": {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
"body": JSON.stringify({
metadata: { title: 'Some Title' }
}),
"method": "POST",
});
// { uid: '9c644a1c-3e43-4df4-ab67-de5b68b235b6' }
```
### Response Example
```json
{
"uid": "9c644a1c-3e43-4df4-ab67-de5b68b235b6"
}
```
## POST `/group/add-users`
### Description
Adds one or more users to a group
### Parameters
- **uid:** _- required_
- **accepts:** `string`
UUID of an existing group
- **users:** `Array<string>`
usernames of users to add to the group
### Request Example
```javascript
await fetch(`${window.api_origin}/group/add-users`, {
"headers": {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
"body": JSON.stringify({
uid: '9c644a1c-3e43-4df4-ab67-de5b68b235b6',
users: ['first_user', 'second_user'],
}),
"method": "POST",
});
```
## POST `/group/remove-users`
### Description
Remove one or more users from a group
### Parameters
- **uid:** _- required_
- **accepts:** `string`
UUID of an existing group
- **users:** `Array<string>`
usernames of users to remove from the group
### Request Example
```javascript
await fetch(`${window.api_origin}/group/add-users`, {
"headers": {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
"body": JSON.stringify({
uid: '9c644a1c-3e43-4df4-ab67-de5b68b235b6',
users: ['first_user', 'second_user'],
}),
"method": "POST",
});
```
## GET `/group/list`
### Description
List groups associated with the current user
### Parameters
_none_
### Response Example
```json
{
"owned_groups": [
{
"uid": "c3bd4047-fc65-4da8-9363-e52195890de4",
"metadata": {},
"members": [
"default_user"
]
}
],
"in_groups": [
{
"uid": "c3bd4047-fc65-4da8-9363-e52195890de4",
"metadata": {},
"members": [
"default_user"
]
}
]
}
```
# Group Permission Endpoints
## POST `/grant-user-group`
Grant permission from the current user to a group.
This creates an association between the user and the
group for this permission; the group will only have
the permission effectively while the user who granted
permission has the permission.
### Parameters
- **group_uid:** _- required_
- **accepts:** `string`
UUID of an existing group
- **permission:** _- required_
- **accepts:** `string`
A permission string
### Request Example
```javascript
await fetch("http://puter.localhost:4100/auth/grant-user-group", {
"headers": {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
"body": JSON.stringify({
group_uid: '9c644a1c-3e43-4df4-ab67-de5b68b235b6',
permission: 'fs:/someuser/somedir/somefile:read'
}),
"method": "POST",
});
```
## POST `/revoke-user-group`
Revoke permission granted from the current user
to a group.
### Parameters
- **group_uid:** _- required_
- **accepts:** `string`
UUID of an existing group
- **permission:** _- required_
- **accepts:** `string`
A permission string
### Request Example
```javascript
await fetch("http://puter.localhost:4100/auth/grant-user-group", {
"headers": {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
"body": JSON.stringify({
group_uid: '9c644a1c-3e43-4df4-ab67-de5b68b235b6',
permission: 'fs:/someuser/somedir/somefile:read'
}),
"method": "POST",
});
```
- > **TODO** figure out how to manage documentation that could
reasonably show up in two files. For example: this is a group
endpoint as well as a permission system endpoint.
(architecturally it's a permission system endpoint, and
the permissions feature depends on the groups feature;
at least until a time when PermissionService is refactored
so a service like GroupService can mutate the permission
check sequences)
+112
View File
@@ -0,0 +1,112 @@
# Notification Endpoints
Endpoints for managing notifications.
## POST `/notif/mark-ack` (auth required)
### Description
The `/notif/mark-ack` endpoint marks the specified notification
as "acknowledged". This indicates that the user has chosen to either
dismiss or act on this notification.
### Parameters
| Name | Description | Default Value |
| ---- | ----------- | -------- |
| uid | UUID associated with the notification | **required** |
### Response
This endpoint responds with an empty object (`{}`).
## POST `/notif/mark-read` (auth required)
### Description
The `/notif/mark-read` endpoint marks that the specified notification
has been shown to the user. It will not "pop up" as a new notification
if they load the gui again.
### Parameters
| Name | Description | Default Value |
| ---- | ----------- | -------- |
| uid | UUID associated with the notification | **required** |
### Response
This endpoint responds with an empty object (`{}`).
### Request Example
```javascript
await fetch("https://api.puter.local/notif/mark-read", {
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
body: JSON.stringify({
uid: 'a14ea3d5-828b-42f9-9613-35f43b0a3cb8',
}),
method: "POST",
});
```
## ENTITY STORAGE `puter-notifications`
The `puter-notifications` driver is an Entity Storage driver.
It is read-only.
### Request Examples
#### Select Unread Notifications
```javascript
await fetch("http://api.puter.localhost:4100/drivers/call", {
"headers": {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
"body": JSON.stringify({
interface: 'puter-notifications',
method: 'select',
args: { predicate: ['unread'] }
}),
"method": "POST",
});
```
#### Select First 200 Notifications
```javascript
await fetch("http://api.puter.localhost:4100/drivers/call", {
"headers": {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
"body": JSON.stringify({
interface: 'puter-notifications',
method: 'select',
args: {}
}),
"method": "POST",
});
```
#### Select Next 200 Notifications
```javascript
await fetch("http://api.puter.localhost:4100/drivers/call", {
"headers": {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
"body": JSON.stringify({
interface: 'puter-notifications',
method: 'select',
args: { offset: 200 }
}),
"method": "POST",
});
```
+367
View File
@@ -0,0 +1,367 @@
# Share Endpoints
Share endpoints allow sharing files with other users.
## POST `/share` (auth required)
### Description
The `/share` endpoint shares 1 or more filesystem items
with one or more recipients. The recipients will receive
some notification about the shared item, making this
different from calling `/grant-user-user` with a permission.
When users are **specified by email** they will receive
a [share link](./concepts/share-link.md).
Each item specified in the `shares` property is a tag-typed
object of type `fs-share` or `app-share`.
#### File Shares (`fs-share`)
File shares grant permission to a file or directory. By default
this is read permission. If `access` is specified as `"write"`,
then write permission will be granted.
#### App Shares (`app-share`)
App shares grant permission to read a protected app.
##### subdomain permission
If there is a subdomain associated with the app, and the owner
of the subdomain is the same as the owner of the app, then
permission to access the subdomain will be granted.
Note that the subdomain is only associated if the subdomain
entry has `associated_app_id` set according to the app's id,
and will not be considered "associated" if only the index_url
happens to match the subdomain url.
##### appdata permission
If the app has `shared_appdata` set to `true` in its metadata
object, the recipient of the share will also get write permission
to the app owner's corresponding appdata directory. The appdata
directory must exist for this to work as expected
(otherwise the permission rewrite rule fails since the uuid
can't be determined).
### Example
```json
{
"recipients": [
"user_that_gets_shared_to",
"[email protected]"
],
"shares": [
{
"$": "app-share",
"name": "some-app-name"
},
{
"$": "app-share",
"uid": "app-SOME-APP-UID"
},
{
"$": "fs-share",
"path": "/some/file/or/directory"
},
{
"$": "fs-share",
"path": "SOME-FILE-UUID"
}
]
}
```
### Parameters
- **recipients** _- required_
- **accepts:** `string | Array<string>`
- **description:**
recipients for the filesystem entries being shared.
- **notes:**
- validation on `string`: email or username
- requirement of at least one value
- **shares:** _- required_
- **accepts:** `object | Array<object>`
- object is [type-tagged](./type-tagged.md)
- type is either [file-share](./types/file-share.md)
or [app-share](./types/app-share.md)
- **notes:**
- requirement that file/directory or app exists
- requirement of at least one entry
- **dry_run:** _- optional_
- **accepts:** `bool`
- **description:**
when true, only validation will occur
### Response
- **$:** `api:share`
- **$version:** `v0.0.0`
- **status:** one of: `"success"`, `"mixed"`, `"aborted"`
- **recipients:** array of: `api:status-report` or
`heyputer:api/APIError`
- **paths:** array of: `api:status-report` or
`heyputer:api/APIError`
- **dry_run:** `true` if present
### Request Example
```javascript
await fetch("http://puter.localhost:4100/share", {
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
body: JSON.stringify({
recipients: [
"user_that_gets_shared_to",
"[email protected]"
],
shares: [
{
$: "app-share",
name: "some-app-name"
},
{
$: "app-share",
uid: "app-SOME-APP-UID"
},
{
$: "fs-share",
path: "/some/file/or/directory"
},
{
$: "fs-share",
path: "SOME-FILE-UUID"
}
]
}),
method: "POST",
});
```
### Success Response
```json
{
"$": "api:share",
"$version": "v0.0.0",
"status": "success",
"recipients": [
{
"$": "api:status-report",
"status": "success"
}
],
"paths": [
{
"$": "api:status-report",
"status": "success"
}
],
"dry_run": true
}
```
### Error response (missing file)
```json
{
"$": "api:share",
"$version": "v0.0.0",
"status": "mixed",
"recipients": [
{
"$": "api:status-report",
"status": "success"
}
],
"paths": [
{
"$": "heyputer:api/APIError",
"code": "subject_does_not_exist",
"message": "File or directory not found.",
"status": 404
}
],
"dry_run": true
}
```
### Error response (missing user)
```json
{
"$": "api:share",
"$version": "v0.0.0",
"status": "mixed",
"recipients": [
{
"$": "heyputer:api/APIError",
"code": "user_does_not_exist",
"message": "The user `non_existing_user` does not exist.",
"username": "non_existing_user",
"status": 422
}
],
"paths": [
{
"$": "api:status-report",
"status": "success"
}
],
"dry_run": true
}
```
## POST `/sharelink/check` (no auth)
### Description
The `/sharelink/check` endpoint verifies that a token provided
by a share link is valid.
### Example
```javascript
await fetch(`${config.api_origin}/sharelink/check`, {
"headers": {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
"body": JSON.stringify({
token: '...',
}),
"method": "POST",
});
```
### Parameters
- **token:** _- required_
- **accepts:** `string`
The token from the querystring parameter
### Response
A type-tagged object, either of type `api:share` or `api:error`
### Success Response
```json
{
"$": "api:share",
"uid": "836671d4-ac5d-4bd3-bc0a-ec357e0d8f02",
"email": "[email protected]"
}
```
### Error Response
```json
{
"$": "api:error",
"message":"Field `token` is required.",
"key":"token",
"code":"field_missing"
}
```
## POST `/sharelink/apply` (no auth)
### Description
The `/sharelink/apply` endpoint applies a share to the current
user **if and only if** that user's email is confirmed and matches
the email associated with the share.
### Example
```javascript
await fetch(`${config.api_origin}/sharelink/apply`, {
"headers": {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
"body": JSON.stringify({
uid: '836671d4-ac5d-4bd3-bc0a-ec357e0d8f02',
}),
"method": "POST",
});
```
### Parameters
- **uid:** _- required_
- **accepts:** `string`
The uid of an existing share, received using `/sharelink/check`
### Response
A type-tagged object, either of type `api:status-report` or `api:error`
### Success Response
```json
{"$":"api:status-report","status":"success"}
```
### Error Response
```json
{
"message": "This share can not be applied to this user.",
"code": "can_not_apply_to_this_user"
}
```
## POST `/sharelink/request` (no auth)
### Description
The `/sharelink/request` endpoint requests the permissions associated
with a share link to the issuer of the share (user that sent the share).
This can be used when a user is logged in, but that user's email does
not match the email associated with the share.
### Example
```javascript
await fetch(`${config.api_origin}/sharelink/request`, {
"headers": {
"Content-Type": "application/json",
"Authorization": `Bearer ${puter.authToken}`,
},
"body": JSON.stringify({
uid: '836671d4-ac5d-4bd3-bc0a-ec357e0d8f02',
}),
"method": "POST",
});
```
### Parameters
- **uid:** _- required_
- **accepts:** `string`
The uid of an existing share, received using `/sharelink/check`
### Response
A type-tagged object, either of type `api:status-report` or `api:error`
### Success Response
```json
{"$":"api:status-report","status":"success"}
```
### Error Response
```json
{
"message": "This share is already valid for this user; POST to /apply for access",
"code": "no_need_to_request"
}
```
+79
View File
@@ -0,0 +1,79 @@
# Type-Tagged Objects
```js
{
"$": "some-type",
"$version": "0.0.0",
"some_property": "some value",
}
```
## What's a Type-Tagged Object?
Type-Tagged objects are a convention understood by Puter's backend
to communicate meta information along with a JSON object.
The key feature of Type-Tagged Objects is the type key: `"$"`.
## Why Type-Tagged Objects?
The primary reason: to have a consistent convention we can use
anywhere.
- Since other services rarely use `$` in their property names,
we can safely use this without introducing reserved words and
re-mapping property names.
- Some places we use this convention might not need it, but
staying consistent means API end-users can
[do more with less code](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself).
## Specification
- The `"$"` key indicates a type (or class) of object
- Any other key beginning with `$` is a **meta-key**
- Other keys are not allowed to contain `$`
- `"$version"` must follow [semver](https://semver.org/)
- Keys with multiple `"$"` symbols are reserved for future use
## Alternative Representations
Puter's API will always send results in the format described
above, which is called the "Standard Representation"
Any endpoint which accepts a Type-Tagged Object will also
accept these alternative representations:
### Structured Representation
Depending on the architecture of your client, this format
may be more convenient to work with:
```json
{
"$": "$meta-body",
"type": "some-type",
"meta": { "version": "0.0.0" },
"body": { "some_property": "some value" }
}
```
### Array Representation
In the array representation, meta values go at the end.
```json
["some-type",
{ "some_property": "some value" },
{ "version": "0.0.0" }
]
```
If the second element of the list is not an object, it
will implicitly be placed in a property called value.
The following are equivalent:
```json
["some-type", "hello"]
```
```json
["some-type", { "value": "hello" }]
```
+26
View File
@@ -0,0 +1,26 @@
# `{"$": "app-share"}` - File Share
## Structure
- **name:** name of the app
- **uid:** name of the app
## Notes
- One of `name` or `uid` **must** be specified
## Examples
Share app by name
```json
{
"$": "app-share",
"name": "some-app-name"
}
```
Share app by uid
```json
{
"$": "app-share",
"uid": "app-0a7337f7-0f8a-49ca-b71a-38d39304fe04"
}
```
+32
View File
@@ -0,0 +1,32 @@
# `{"$": "file-share"}` - File Share
## Structure
- **path:** file or directory's path or uuid
- **access:** one of: `"read"`, `"write"` (default: `"read"`)
## Examples
Share with read access
```json
{
"$": "file-share",
"path": "/some/path"
}
```
Share with write access
```json
{
"$": "file-share",
"path": "/some/path",
"access": "write"
}
```
Using a UUID
```json
{
"$": "file-share",
"path": "b912c381-0c0b-466c-95a6-f9a4fc680a7d"
}
```
+33
View File
@@ -0,0 +1,33 @@
# Comment Prefixes
Comments have prefixes using
[Conventional: Comments](https://conventionalcomments.org/)
as a **loose** guideline, and using this markdown file as a
the actual guideline.
This document will be updated on an _as-needed_ basis.
## The rules
- A comment line always looks like this:
- A whitespace character
- Optional prefix matching `/[a-z-]+\([a-z-]a+\):/`
- A whitespace character
- The comment
- Formalized prefixes must follow the rules below
- Any other prefix can be used. After some uses it
might be good to formalize it, but that's not a hard rule.
## Formalized prefixes
- `todo:` is interchangable with the famous `TODO:`, **except:**
when lowercase (`todo:`) it can include a scope: `todo(security):`.
- `track:` is used to track common patterns.
- Anything written after `track:` must be registered in
[track-comments.md](../devmeta/track-comments.md)
- `wet:` is usesd to track anything that doesn't adhere
to the DRY principle; the following message should describe
where similar code is
- `compare(<identifier>):` is used to note differences between other
implementations of a similar idea
- `name:` pedantic commentary on the name of something
+3
View File
@@ -0,0 +1,3 @@
## Puter Extensions
See the [Wiki Page](https://github.com/HeyPuter/puter/wiki/ex_extensions)
+2
View File
@@ -0,0 +1,2 @@
### `vscode`
- `es6-string-html`
+103
View File
@@ -0,0 +1,103 @@
## 2024-10-16
### Considerations for Mountpoints Feature
- `_storage_upload` takes paramter `uuid` instead of `path`
- S3 bucket strategy needs the UUID
- If we do hashes, 10MB chunks should be fine
- we're already able to smooth out bursty traffic using the
EWA algorithm
- Use of `systemFSEntryService`
- Is that normalized? Does everything go through this interface?
- Storage interface has methods like `post_insert`
- as far as I can tell this doesn't pose any issue
-
### Brainstorming Migration Strategies
#### Interface boundary at HL<->LL filesystem methods
-- **tags:** brainstorming
From the perspectice of a trait-oriented implementation,
which is not how LL/HL filesystem operations are currently implemented,
the LL-class operations are implemented in separate traits.
The composite trait containing all of these traits would be the trait
that represents a filesystem implementation itself.
Other filesystem interfaces that I've seen, such as FUSE and 9p,
all usually have a monolithic interface - that is to say, an interface
which includes all of the filesystem operations, rather than several
interfaces each implementing a single filesystem operaiton.
Something about the fact that the LL-class operations are in separate
classes makes it difficult to reason about how to move.
Is it simply that multiple files in a directory is just more
annoying to think about? Maybe, but there must be something more.
Perhaps it's that there are several references. Each implementation
(that is, implemenation of a single filesystem operation) could have
any number of different references across any number of different files.
This would not be the case with a monolithic interface.
I think the best of both worlds would be to have an interface representing
the entire filesystem and, in one place, link of of the individual
operation implementations to compose a filesystem implementation
### Filesystem Brainstorming
Puter's backend uses a service architecture. Each service is an instance
of a class extending "Service". A service can listen to events of the
backend's lifecycle, interact with other services, and interact with
external interfaces such as APIs and databases.
Puter's current filesystem, let's call it PuterFSv1, exists as the result
of multiple services working together. We have LocalDiskStorageService
which mimics an S3 bucket on a local system, and we have
DatabaseFSEntryService which manages information about files, directories,
and their relationships within the database, and therefore depends on
DatabaseAccessService.
It is now time to introduce a MountpointService. This will allow another
service or a user's configuration to assign an instance of a filesystem
implementation (such as PuterFSv1) to a specific path.
The trouble here is that PuterFSv1 is composed of services, and the nature
of a service is such that it exists for the lifecycle of the application.
The class for a particular service can be re-used and registered with
multiple names (creating multiple services with the same implementation
but perhaps different configuration), but that's only a clean scenario when
there is just one service. PuterFSv1, on the other hand, is like an
imaginary service composed of other services.
The following possibilities then should be discussed:
- CompositeService base class for a service that is composed of
more than one service.
- Refactor filesystem to not use service architecture.
- Each filesystem service can manage state and configuration
for multiple mountpoints
(I don't like this idea; it feels messy. I wonder what software
principles this violates)
We can take advantage of traits/interfaces here.
PuterFSv1 depends on two interfaces:
- An S3-like data storage implementation
- An fsentry storage implementation
Counterintuitively from what I first thought, "Refactor the filesystem"
actually looks like the best solution, and it doens't even look like it
will be that difficult. In fact, it'll likely make the filesystem easier
to maintain and more robust as a result.
Additionally, we can introduce PuterFSv2, which will introduce storing
data in chunks identified by their hashes, and associated hashes with
fsentries.
PuterFSService will be a new service which registers 'PuterFSv1' with
FilesystemService.
An instance of a filesystem needs to be separate from a mountpoint.
For example, PuterFSv1 will usually have only one instance but it may
be mounted several different times. `/some-user` on Puter's VFS could
be a mountpoint for `/some-user` in the instance of PuterFSv1.
+62
View File
@@ -0,0 +1,62 @@
# Track Comments
Comments beginning with `// track:`. See
[comment_prefixes.md](../contributors/comment_prefixes.md)
## Track Comment Registry
- `track: type check`:
A condition that's used to check the type of an imput.
- `track: adapt`
A value can by adapted from another type at this line.
- `track: bounds check`:
A condition that's used to check the bounds of an array
or other list-like entity.
- `track: ruleset`
A series of conditions that early-return or `continue`
- `track: object description in comment`
A comment above the creation of some object which
could potentially have a `description` property.
This is especially relevant if the object is stored
in some kind of registry where multiple objects
could be listed in the console.
- `track: slice a prefix`
A common pattern where a prefix string is "sliced off"
of another string to obtain a significant value, such
as an indentifier.
- `track: actor type`
The sub-type of an Actor object is checked.
- `track: scoping iife`
An immediately-invoked function expression specifically
used to reduce scope clutter.
- `track: good candidate for sequence`
Some code involves a series of similar steps,
or there's a common behavior that should happen
in between. The Sequence class is good for this so
it might be a worthy migration.
- `track: opposite condition of sibling`
A sibling class, function, method, or other construct of
source code has a boolean expression which always evaluates
to the opposite of the one below this track comment.
- `track: null check before processing`
An object could be undefined or null, additional processing
occurs after a null check, and the unprocessed object is not
relevant to the rest of the code. If the code for obtaining
the object and processing it is moved to a function outside,
then the null check should result in a early return of null;
this code with the track comment may have additional logic
for the null/undefined case.
- `track: manual safe object`
This code manually creates a new "client-safe" version of
some object that's in scope. This could be either to pass
onto the browser or to pass to something like the
notification service.
- `track: common operations on multiple items`
A patterm which emerges when multiple variables have
common operations done upon them in sequence.
It may be applicable to write an iterator in the
future, or something will come up that require
these to be handled with a modular approach instead.
- `track: checkpoint`
A location where some statement about the state of the
software must hold true.
+12
View File
@@ -0,0 +1,12 @@
# Meta Documentation
## Notes
- > This document is a work-in-progress
## Rules
### "is" and "is not"
- When "A is B", always bold "is": "A **is** B" (`A **is** B`)
- When "A is not B", always bold "not": "A is **not** B" (`A is **not** B`)
+53
View File
@@ -0,0 +1,53 @@
# First Run Issues
## "Cannot find package '@heyputer/backend'"
Scenario: You see the following output:
```
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Cannot find package '@heyputer/backend' ┃
┃ 📝 this usually happens if you forget `npm install` ┃
┃ Suggestions: ┃
┃ - try running `npm install` ┃
┃ Technical Notes: ┃
┃ - @heyputer/backend is in an npm workspace ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
```
1. Ensure you have run `npm install`.
2. [Install build essentials for your distro](#installing-build-essentials),
then run `npm install` again.
## Installing Build Essentials
### Debian-based distros
```
sudo apt update
sudo apt install build-essential
```
### RHEL-family distros (Fedora, Rocky, etc)
```
sudo dnf groupinstall "Development Tools"
```
### "I use Arch btw"
```
sudo pacman -S base-devel
```
### Alpine
If you're running in Puter's Alpine image then this is already installed.
```
sudo apk add build-base
```
### Gentoo
You know what you're doing; you just wanted to see if we mentioned Gentoo.
+129
View File
@@ -0,0 +1,129 @@
<h3 align="center"><img width="80" alt="Puter.com، الحاسوب السحابي الشخصي: جميع ملفاتك وتطبيقاتك وألعابك في مكان واحد يمكن الوصول إليه من أي مكان في أي وقت." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">نظام تشغيل الإنترنت! مجاني ومفتوح المصدر وقابل للاستضافة الذاتية.</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« عرض توضيحي مباشر »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">مجموعة أدوات التطوير</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">ديسكورد</a>
·
<a href="https://reddit.com/r/puter">ريديت</a>
·
<a href="https://twitter.com/HeyPuter">إكس (تويتر)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="لقطة شاشة" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## بيوتر
<div dir="rtl">
<p>بيوتر هو نظام تشغيل إنترنت متقدم ومفتوح المصدر، مصمم ليكون غنيًا بالميزات وسريعًا بشكل استثنائي وقابلًا للتوسع بدرجة كبيرة. يمكن استخدام بيوتر كـ:</p>
<ul>
<li>سحابة شخصية تعطي الأولوية للخصوصية لحفظ جميع ملفاتك وتطبيقاتك وألعابك في مكان آمن واحد، يمكن الوصول إليه من أي مكان وفي أي وقت.</li>
<li>منصة لبناء ونشر المواقع الإلكترونية وتطبيقات الويب والألعاب</li>
<li>بديل لـ Dropbox وGoogle Drive وOneDrive وغيرها، مع واجهة جديدة وميزات قوية.</li>
<li>بيئة سطح مكتب عن بُعد للخوادم ومحطات العمل.</li>
<li>مشروع ومجتمع ودود ومفتوح المصدر للتعلم عن تطوير الويب والحوسبة السحابية والأنظمة الموزعة والكثير غير ذلك!</li>
</ul>
</div>
<br/>
## البدء
### 💻 التطوير المحلي
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
سيؤدي هذا إلى تشغيل Puter على http://puter.localhost:4100 (أو المنفذ التالي المتاح).
<br/>
### 🐳 دوكر
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 دوكر كومبوز
#### لينكس/ماك
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### ويندوز
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ موقع Puter.com
متاح Puter كخدمة مستضافة على[**puter.com**](https://puter.com)الموقع
<br/>
## متطلبات النظام
- **Operating Systems:** لينكس، ماك، ويندوز
- **RAM** ٢ جيجابايت كحد أدنى (يوصى بـ ٤ جيجابايت)
- **Disk Space:** ١ جيجابايت مساحة حرة
- **Node.js:** الإصدار ١٦+ (يوصى بالإصدار ٢٢+)
- **npm:** أحدث إصدار مستقر
<br/>
## الدعم
تواصل مع المشرفين والمجتمع من خلال هذه القنوات:
- تقرير عن خطأ أو طلب ميزة؟ الرجاء [فتح مشكلة](https://github.com/HeyPuter/puter/issues/new/choose)
- دسكورد: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- إكس (تويتر): [x.com/HeyPuter](https://x.com/HeyPuter)
- ريديت: [/reddit.com/r/puter](https://www.reddit.com/r/puter/)
- ماستودون: [mastodon.social/@puter](https://mastodon.social/@puter)
- مشاكل أمنية؟ [[email protected]](mailto:[email protected])
- البريد الإلكتروني للمشرفين [[email protected]](mailto:[email protected])
نحن دائمًا سعداء لمساعدتك في أي أسئلة قد تكون لديك. لا تتردد في السؤال!
<br/>
## الترخيص
هذا المستودع، بما في ذلك جميع محتوياته ومشاريعه الفرعية ووحداته ومكوناته، مرخص تحت [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) ما لم ينص على خلاف ذلك صراحةً. قد تخضع المكتبات الخارجية المدرجة في هذا المستودع لتراخيصها الخاصة.
<br/>
+124
View File
@@ -0,0 +1,124 @@
<h3 align="center"><img width="80" alt="Puter.com, ব্যক্তিগত ক্লাউড কম্পিউটার: আপনার সমস্ত ফাইল, অ্যাপস, এবং গেম এক জায়গায়, যেকোনো সময়, যেকোনো স্থান থেকে অ্যাক্সেসযোগ্য।" src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">ইন্টারনেট ওএস! ফ্রি, ওপেন-সোর্স, এবং সেল্ফ-হোস্টেবল।</h3>
<p align="center">
<img alt="GitHub রেপোর আকার " src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub রিলিজ" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub লাইসেন্স" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« লাইভ ডেমো »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">এসডিকে</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">ডিসকর্ড</a>
·
<a href="https://reddit.com/r/puter">রেডিট</a>
·
<a href="https://twitter.com/HeyPuter">X (টুইটার)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="স্ক্রিনশট" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter একটি উন্নত, ওপেন-সোর্স ইন্টারনেট অপারেটিং সিস্টেম যা বৈশিষ্ট্যপূর্ণ, অত্যন্ত দ্রুত এবং উচ্চ মাত্রায় সম্প্রসারণযোগ্য। Puter ব্যবহার করা যেতে পারে:
- একটি প্রাইভেসি-প্রথম পার্সোনাল ক্লাউড হিসাবে যা আপনার সমস্ত ফাইল, অ্যাপস এবং গেমসকে এক জায়গায় নিরাপদে রাখে, যেকোনো সময় যেকোনো স্থান থেকে অ্যাক্সেসযোগ্য।
- ওয়েবসাইট, ওয়েব অ্যাপ এবং গেম তৈরি ও প্রকাশ করার একটি প্ল্যাটফর্ম হিসাবে।
- ড্রপবক্স, গুগল ড্রাইভ, ওয়ানড্রাইভ ইত্যাদির বিকল্প হিসাবে একটি নতুন ইন্টারফেস এবং শক্তিশালী বৈশিষ্ট্য সহ।
- সার্ভার এবং ওয়ার্কস্টেশনের জন্য একটি রিমোট ডেস্কটপ এনভায়রনমেন্ট হিসাবে।
- ওয়েব ডেভেলপমেন্ট, ক্লাউড কম্পিউটিং, ডিস্ট্রিবিউটেড সিস্টেম এবং আরও অনেক কিছু শিখতে একটি বন্ধুত্বপূর্ণ, ওপেন-সোর্স প্রকল্প এবং কমিউনিটি হিসাবে!
<br/>
## শুরু করার জন্য
## 💻 লোকাল ডেভেলপমেন্ট
```bash
Copy code
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
এটি Puter কে http://puter.localhost:4100 (অথবা পরবর্তী উপলব্ধ পোর্টে) চালু করবে।
<br/>
## 🐳 ডকার
```bash
Copy code
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
## 🐙 ডকার কম্পোজ
## লিনাক্স/ম্যাকওএস
```bash
Copy code
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
## উইন্ডোজ
```powershell
Copy code
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
## ☁️ Puter.com
Puter [**puter.com**](https://puter.com) এ হোস্টেড সার্ভিস হিসেবে উপলব্ধ।
<br/>
## সিস্টেম রিকোয়ারমেন্টস
- **অপারেটিং সিস্টেম:** লিনাক্স, ম্যাকওএস, উইন্ডোজ
- **র‍্যাম:** ২জিবি ন্যূনতম (৪জিবি প্রস্তাবিত)
- **ডিস্ক স্পেস:** ১জিবি ফ্রি স্পেস
- **Node.js:** সংস্করণ ১৬+ (সংস্করণ ২২+ প্রস্তাবিত)
- **npm:** সর্বশেষ স্থিতিশীল সংস্করণ
<br/>
## সাপোর্ট
মেইনটেইনার এবং কমিউনিটির সাথে এই চ্যানেলগুলির মাধ্যমে সংযোগ করুন:
- বাগ রিপোর্ট বা ফিচার রিকোয়েস্ট? অনুগ্রহ করে একটি ইস্যু খুলুন।
- ডিসকর্ড: discord.com/invite/PQcx7Teh8u
- X (টুইটার): x.com/HeyPuter
- রেডিট: reddit.com/r/puter/
- মাস্টডন: mastodon.social/@puter
- সিকিউরিটি ইস্যু? security@puter.com
- মেইনটেইনারদের ইমেইল করুন hi@puter.com এ
আপনার যেকোনো প্রশ্নের জন্য আমরা সবসময় সাহায্য করতে প্রস্তুত। জিজ্ঞাসা করতে দ্বিধা করবেন না!
<br/>
## লাইসেন্স
এই রিপোজিটরি, এর সমস্ত বিষয়বস্তু, সাব-প্রকল্প, মডিউল, এবং কম্পোনেন্ট সহ [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) লাইসেন্সের অধীনে লাইসেন্সকৃত, যদি অন্যথায় স্পষ্টভাবে উল্লেখ না করা হয়। এই রিপোজিটরিতে অন্তর্ভুক্ত তৃতীয় পক্ষের লাইব্রেরিগুলি তাদের নিজস্ব লাইসেন্সের অধীনে হতে পারে।
<br/>
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, Den Personlige Cloudcomputer: Alle dine filer, apps og spil på ét sted tilgængelige fra hvor som helst til enhver tid." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Internet OS'et! Gratis, Open-Source og kan selvhostes.</h3>
<p align="center">
<img alt="GitHub repo størrelse" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Udgivelse" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub Licens" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« LIVE DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="skærmbillede" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter er et avanceret, open-source internetoperativsystem designet til at være funktionsrigt, exceptionelt hurtigt og meget udvideligt. Puter kan bruges som:
- En privatlivsfokuseret personlig sky til at opbevare alle dine filer, apps og spil på ét sikkert sted, tilgængeligt hvor som helst og når som helst.
- En platform til at bygge og publicere hjemmesider, webapplikationer og spil.
- Et alternativ til Dropbox, Google Drive, OneDrive osv. med et friskt interface og kraftfulde funktioner.
- Et fjernskrivebordsmiljø for servere og arbejdsstationer.
- Et venligt, open-source projekt og fællesskab til at lære om webudvikling, cloud computing, distribuerede systemer og meget mere!
<br/>
## Kom godt i gang
### 💻 Lokal Udvikling
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Dette vil starte Puter på http://puter.localhost:4100 (eller den næste tilgængelige port).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter er tilgængelig som en hosted tjeneste på [**puter.com**](https://puter.com).
<br/>
## Systemkrav
- **Operativsystemer:** Linux, macOS, Windows
- **RAM:** 2GB minimum (4GB anbefales)
- **Diskplads:** 1GB fri plads
- **Node.js:** Version 16+ (Version 22+ anbefales)
- **npm:** Seneste stabile version
<br/>
## Support
Kom i kontakt med vedligeholderne og fællesskabet gennem disse kanaler:
- Bugrapport eller funktionønske? Åbn [venligst en sag](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Sikkerhedsspørgsmål? [[email protected]](mailto:[email protected])
- Send email til vedligeholdere på [[email protected]](mailto:[email protected])
Vi er altid glade for at hjælpe dig med eventuelle spørgsmål, du måtte have. Tøv ikke med at spørge!
<br/>
## Licens
Dette repository, inklusive alt dets indhold, underprojekter, moduler og komponenter, er licenseret under [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt), medmindre andet er udtrykkeligt angivet. Tredjepartsbiblioteker inkluderet i dette repository kan være underlagt deres egne licenser.
<br/>
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, Der persönliche Cloud-Computer: Alle Ihre Dateien, Apps und Spiele an einem Ort, jederzeit und überall zugänglich." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Das Internet-Betriebssystem! Kostenlos, Open-Source und selbst hostbar.</h3>
<p align="center">
<img alt="GitHub Repo-Größe" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Veröffentlichung" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=neueste%20Version"> <img alt="GitHub Lizenz" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« LIVE DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="Bildschirmfoto" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter ist ein fortschrittliches, Open-Source-Internet-Betriebssystem, das funktionsreich, außergewöhnlich schnell und hochgradig erweiterbar konzipiert wurde. Puter kann verwendet werden als:
- Eine datenschutzfreundliche persönliche Cloud, um alle Ihre Dateien, Apps und Spiele an einem sicheren Ort aufzubewahren, jederzeit und überall zugänglich.
- Eine Plattform zum Erstellen und Veröffentlichen von Websites, Webanwendungen und Spielen.
- Eine Alternative zu Dropbox, Google Drive, OneDrive usw. mit einer frischen Benutzeroberfläche und leistungsstarken Funktionen.
- Eine Remote-Desktop-Umgebung für Server und Workstations.
- Ein freundliches, Open-Source-Projekt und eine Community, um mehr über Webentwicklung, Cloud Computing, verteilte Systeme und vieles mehr zu lernen!
<br/>
## Erste Schritte
### 💻 Lokale Entwicklung
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Dies startet Puter unter http://puter.localhost:4100 (oder dem nächsten verfügbaren Port).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter ist als gehosteter Dienst unter [**puter.com**](https://puter.com) verfügbar.
<br/>
## Systemanforderungen
- **Betriebssysteme:** Linux, macOS, Windows
- **RAM:** Mindestens 2GB (4GB empfohlen)
- **Festplattenspeicher:** 1GB freier Speicherplatz
- **Node.js:** Version 16+ (Version 22+ empfohlen)
- **npm:** Neueste stabile Version
<br/>
## Unterstützung
Verbinden Sie sich mit den Maintainern und der Community über diese Kanäle:
- Fehlerbericht oder Funktionsanfrage? Bitte [öffnen Sie ein Issue](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Sicherheitsprobleme? [[email protected]](mailto:[email protected])
- E-Mail an die Maintainer: [[email protected]](mailto:[email protected])
Wir helfen Ihnen gerne bei allen Fragen, die Sie haben könnten. Zögern Sie nicht zu fragen!
<br/>
## Lizenz
Dieses Repository, einschließlich aller Inhalte, Unterprojekte, Module und Komponenten, ist unter [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) lizenziert, sofern nicht ausdrücklich anders angegeben. In diesem Repository enthaltene Bibliotheken von Drittanbietern können ihren eigenen Lizenzen unterliegen.
<br/>
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, The Personal Cloud Computer: All your files, apps, and games in one place accessible from anywhere at any time." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">The Internet OS! Free, Open-Source, and Self-Hostable.</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« LIVE DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter is an advanced, open-source internet operating system designed to be feature-rich, exceptionally fast, and highly extensible. Puter can be used as:
- A privacy-first personal cloud to keep all your files, apps, and games in one secure place, accessible from anywhere at any time.
- A platform for building and publishing websites, web apps, and games.
- An alternative to Dropbox, Google Drive, OneDrive, etc. with a fresh interface and powerful features.
- A remote desktop environment for servers and workstations.
- A friendly, open-source project and community to learn about web development, cloud computing, distributed systems, and much more!
<br/>
## Getting Started
### 💻 Local Development
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
This will launch Puter at http://puter.localhost:4100 (or the next available port).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter is available as a hosted service at [**puter.com**](https://puter.com).
<br/>
## System Requirements
- **Operating Systems:** Linux, macOS, Windows
- **RAM:** 2GB minimum (4GB recommended)
- **Disk Space:** 1GB free space
- **Node.js:** Version 16+ (Version 22+ recommended)
- **npm:** Latest stable version
<br/>
## Support
Connect with the maintainers and community through these channels:
- Bug report or feature request? Please [open an issue](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Security issues? [[email protected]](mailto:[email protected])
- Email maintainers at [[email protected]](mailto:[email protected])
We are always happy to help you with any questions you may have. Don't hesitate to ask!
<br/>
## License
This repository, including all its contents, sub-projects, modules, and components, is licensed under [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) unless explicitly stated otherwise. Third-party libraries included in this repository may be subject to their own licenses.
<br/>
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, El Computador Personal en Nube: Todos tus archivos, apps y juegos en un solo lugar accesible desde cualquier lugar en cualquier momento" src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">El Sistema Operativo de Internet! Gratis, de Código abierto, y Autohospedable.</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« DEMO EN VIVO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter es un sistema operativo en internet avanzado y de código abierto, diseñado para ser rico en funcionalidades, excepcionalmente rápido y altamente extensible. Puter puede ser usado como:
- Una nube personal privada para almacenar todos tus archivos, aplicaciones y juegos en un lugar seguro, accesible y desde cualquier lugar en cualquier momento.
- Una plataforma para construir y publicar páginas web, aplicativos sobre la web y juegos.
- Una alternativa a Dropbox, Google Drive, OneDrive, etc. con una interfaz fresca y llena de funcionalidades.
- Un entorno de escritorio remoto para servidores y estaciones de trabajo.
- Un proyecto y comunidad abiertas y amigables para aprender sobre desarrollo web, computación en la nube, sistemas distribuidos y mucho más!
<br/>
## Primeros Pasos
### 💻 Desarrollo Local
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Esto ejecutará Puter en http://puter.localhost:4100 (o el siguiente puerto disponible).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter está disponible como servicio alojado en [**puter.com**](https://puter.com).
<br/>
## Requerimientos del sistema
- **Sistemas operativos:** Linux, macOS, Windows
- **RAM:** 2GB mínimo (4GB recomendados)
- **Almacenamiento:** 1GB de espacio libre
- **Node.js:** Versión 16+ (Versión 22+ recomendada)
- **npm:** Última version estable
<br/>
## Soporte
Conéctate con los mantenedores y la comunidad a través de estos canales:
- Reporte de bug o solicitud de funcionalidad? Por favor [abrir un issue](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Problemas de seguridad? [[email protected]](mailto:[email protected])
- Envia un email a los mantenedores en [[email protected]](mailto:[email protected])
Estamos siempre felices de ayudar con cualquier pregunta que puedas tener. No dudes en preguntar!
<br/>
## Licencia
Este repositorio, incluyendo todo su contenido, sub-proyectos, modulos y componentes, esta licenciado bajo [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) a menos que se indique explícitamente lo contrario. Librerías de terceros incluidos en este repositorio pueden estar sujetas a sus propias licencias.
<br/>
+133
View File
@@ -0,0 +1,133 @@
<h3 align="center"><img width="80" alt="Puter.com، رایانش ابری شخصی: همه فایل‌ها، برنامه‌ها و بازی‌های شما در یک مکان قابل دسترسی از هر جا و در هر زمان." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">سیستم‌عامل اینترنت! رایگان، متن‌باز، و قابل میزبانی شخصی.</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« نسخه نمایشی زنده »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">مستندات توسعه‌دهندگان</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">دیسکورد</a>
·
<a href="https://reddit.com/r/puter">ردیت</a>
·
<a href="https://twitter.com/HeyPuter">ایکس (توییتر)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="عکس صفحه" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## پیوتر
<div dir="rtl">
<p>پیوتر یک سیستم عامل تحت وب پیشرفته‌ی متن‌باز است که به منظور ایجاد ویژگی‌های متنوع، سرعت بسیار بالا، و مقیاس‌پذیری طراحی شده است. از پیوتر می‌توان به‌عنوان:</p>
<ul>
<li>یک فضای ابری شخصی که بر حریم خصوصی تمرکز دارد و تمام فایل‌ها، برنامه‌ها، و بازی‌های شما را در یک مکان امن ذخیره می‌کند، قابل دسترسی از هر جا و در هر زمان.</li>
<li>پلتفرمی برای ساخت و انتشار وب‌سایت‌ها، اپلیکیشن‌های وب، و بازی‌ها.</li>
<li>جایگزینی برای Dropbox، Google Drive، OneDrive، و سایر موارد، با یک رابط کاربری مدرن و قابلیت‌های قدرتمند.</li>
<li>یک محیط دسکتاپ از راه دور برای سرورها و ایستگاه‌های کاری.</li>
<li> یک پروژه و جامعه‌ی متن‌باز دوستانه برای یادگیری توسعه وب، رایانش ابری، سیستم‌های توزیع‌شده، و موارد دیگر نام برد!</li>
</ul>
</div>
<br/>
## نحوه‌ی استفاده
### 💻 توسعه‌ی محلی
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
این کار پیوتر را در http://puter.localhost:4100 (یا پورت در دسترس بعدی) اجرا می‌کند.
<br/>
### 🐳 داکر
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 داکر کامپوز
#### لینوکس/مک
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### ویندوز
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ وبگاه Puter.com
پیوتر به‌عنوان یک سرویس میزبانی‌شده در وبگاه [**puter.com**](https://puter.com) موجود است.
## پیش‌نیازهای سیستم
- **سیستم‌عامل‌ها:** لینوکس، مک، ویندوز
- **RAM** حداقل ۲ گیگابایت (پیشنهاد: ۴ گیگابایت)
- **فضای دیسک:** ۱ گیگابایت فضای خالی
- **Node.js:** نسخه ۱۶+ (پیشنهاد: نسخه ۲۲+)
- **npm:** آخرین نسخه پایدار
<br/>
## پشتیبانی
با مدیران و انجمن از طریق این کانال‌ها در تماس باشید:
- گزارش اشکال یا درخواست ویژگی؟ لطفاً [Isuue باز کنید](https://github.com/HeyPuter/puter/issues/new/choose)
- دیسکورد: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- ایکس (توییتر): [x.com/HeyPuter](https://x.com/HeyPuter)
- ردیت: [/reddit.com/r/puter](https://www.reddit.com/r/puter/)
- ماستودون: [mastodon.social/@puter](https://mastodon.social/@puter)
- مشکلات امنیتی؟ [[email protected]](mailto:[email protected])
- ایمیل مدیران: [[email protected]](mailto:[email protected])
ما همیشه از پاسخگویی به سوالات شما خرسند هستیم. در سوال پرسیدن درنگ نکنید!
## گواهی
این مخزن، شامل تمام محتویات، پروژه‌های فرعی، ماژول‌ها و اجزای آن، تحت مجوز [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) است مگر آنکه خلاف آن به‌طور صریح ذکر شده باشد. کتابخانه‌های خارجی ممکن است گواهی‌های جداگانه داشته باشند.
<br/>
+126
View File
@@ -0,0 +1,126 @@
<h3 align="center"><img width="80" alt="Puter.com, The Personal Cloud Computer: All your files, apps, and games in one place accessible from anywhere at any time." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Internetin käyttöjärjestelmä! Ilmainen, avoimen lähdekoodin ja itse isännöitävä.</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=viimeisin%20versio"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« LIVE DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="näyttökuva" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter on kehittynyt, avoimen lähdekoodin internetin käyttöjärjestelmä, joka on suunniteltu olemaan ominaisuuksiltaan rikas, poikkeuksellisen nopea ja erittäin laajennettava. Puteria voidaan käyttää:
- Yksityisyyttä kunnioittavana henkilökohtaisena pilvenä, johon voit tallentaa kaikki tiedostosi, sovelluksesi ja pelisi turvallisesti yhdessä paikassa, josta ne ovat saatavilla missä tahansa ja milloin tahansa.
- Alustana verkkosivustojen, web-sovellusten ja pelien rakentamiseen ja julkaisemiseen.
- Vaihtoehtona Dropboxille, Google Drivelle, OneDrivelle jne. tuoreella käyttöliittymällä ja tehokkailla ominaisuuksilla.
- Etätyöpöytäympäristönä palvelimille ja työasemille.
- Ystävällisenä, avoimen lähdekoodin projektina ja yhteisönä, jossa voit oppia verkkokehityksestä, pilvipalveluista, hajautetuista järjestelmistä ja paljon muusta!
<br/>
## Aloittaminen
### 💻 Paikallinen kehitys
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Tämä käynnistää Puterin osoitteessa http://puter.localhost:4100 (tai seuraavassa vapaassa portissa).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter on saatavilla isännöitynä palveluna osoitteessa [**puter.com**](https://puter.com).
<br/>
## Järjestelmävaatimukset
- **Käyttöjärjestelmät:** Linux, macOS, Windows
- **RAM:** Vähintään 2GB (Suositeltu 4GB)
- **Levytila:** 1GB vapaata tilaa
- **Node.js:** Versio 16+ (Suositeltu versio 22+)
- **npm:** Uusin vakaa versio
<br/>
## Tuki
Ota yhteyttä ylläpitäjiin ja yhteisöön näiden kanavien kautta:
- Onko sinulla virheraportti tai ominaisuuspyyntö? Ole hyvä ja [avaa uusi issue](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Turvallisuusongelmat? [[email protected]](mailto:[email protected])
- Ota yhteyttä ylläpitäjiin sähköpostitse osoitteessa [[email protected]](mailto:[email protected])
Olemme aina valmiita auttamaan sinua kaikissa kysymyksissäsi. Älä epäröi kysyä!
<br/>
## Lisenssi
Tämä repository, mukaan lukien kaikki sen sisältö, aliprojektit, moduulit ja komponentit, on lisensoitu [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt)-lisenssillä, ellei toisin mainita. Tämän repositoryn mukana tulevat kolmannen osapuolen kirjastot voivat olla omien lisenssiensä alaisia.
<br/>
+125
View File
@@ -0,0 +1,125 @@
<h3 align="center"><img width="80" alt="Puter.com, L'ordinateur cloud personnel : Tous vos fichiers, applications et jeux en un seul endroit accessible de partout à tout moment." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">L'OS Internet ! Gratuit, open-source et auto-hébergeable.</h3>
<p align="center">
<img alt="Taille du dépôt GitHub" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="Version GitHub" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=derni%C3%A8re%20version"> <img alt="Licence GitHub" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« DÉMO EN DIRECT »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="capture d'écran" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter est un système d'exploitation internet avancé, open-source, conçu pour être riche en fonctionnalités, extrêmement rapide et hautement extensible. Puter peut être utilisé comme :
- Un cloud personnel axé sur la confidentialité pour garder tous vos fichiers, applications et jeux en un seul endroit sécurisé, accessible de partout à tout moment.
- Une plateforme pour créer et publier des sites web, des applications web et des jeux.
- Une alternative à Dropbox, Google Drive, OneDrive, etc. avec une interface renouvelée et des fonctionnalités puissantes.
- Un environnement de bureau à distance pour serveurs et stations de travail.
- Un projet et une communauté open-source accueillants pour apprendre le développement web, l'informatique en nuage, les systèmes distribués, et bien plus encore !
<br/>
## Démarrage
### 💻 Développement Local
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Cela lancera Puter à http://puter.localhost:4100 (ou au port disponible suivant).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter est disponible en tant que service hébergé sur [**puter.com**](https://puter.com).
<br/>
## Configuration système requise
- **Systèmes d'exploitation:** Linux, macOS, Windows
- **RAM:** Minimum 2 Go (4 Go recommandés)
- **Espace disque:** 1 Go d'espace libre
- **Node.js:** Version 16+ (Version 22+ recommandée)
- **npm:** Dernière version stable
<br/>
## Support
Connectez-vous avec les mainteneurs et la communauté via ces canaux :
- Un bug ou une demande de fonctionnalité ? Veuillez [ouvrir une issue](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Problèmes de sécurité ? [[email protected]](mailto:[email protected])
- Email des mainteneurs à [[email protected]](mailto:[email protected])
Nous sommes toujours heureux de vous aider avec toutes les questions que vous pourriez avoir. N'hésitez pas à nous demander !
<br/>
## License
Ce dépôt, y compris tout son contenu, sous-projets, modules et composants, est licencié sous [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) sauf indication contraire explicite. Les bibliothèques tierces incluses dans ce dépôt peuvent être soumises à leurs propres licences.
<br/>
+130
View File
@@ -0,0 +1,130 @@
<h3 align="center"><img width="80" alt="Puter.com,
הענן הפרטי: כל הקבצים, האפליקציות והמשחקים שלך במקום אחד נגיש מכל מקום ובכל זמן." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center" dir="rtl">מערכת ההפעלה של האינטרנט! חינמית, קוד פתוח וניתנת לאחסון עצמאי.</h3>
<p align="center">
<img alt="GitHub גודל ספרית" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub גרסא" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub רישיון" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« הדגמה לייב »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="צילום מסך" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
<div dir="rtl">
<p div="rtl">
מערכת ההפעלה Puter הינה ספרית קוד פתוח, מתקדמת, עשירה בתכנים, מהירה במיוחד וניתנת להרחבה.
אפשר להישתמש ב Puter כ:</p>
<ul>
<li>ענן אישי עם פרטיות מקסימלית, לשמירת הקבצים, האפליקציות והמשחקים שלך במקום מאובטח אחד, נגיש מכל מקום ובכל זמן.</li>
<li>פלטפורמה לבניית ופרסום אתרים, אפליקציות ומשחקים.</li>
<li>אלטרנטיבה ל-Dropbox, Google Drive, OneDrive וכו' עם ממשק מרענן ותכנים חזקים.</li>
<li>סביבה לעבודה מרחוק לשרתים ותחנות עבודה.</li>
<li>פרוייקט ידידותי, קוד פתוח וקהילה ללמידה על פיתוח אינטרנט, פיתוח בענן, מערכות מבוזרות ועוד הרבה!</li>
<ul>
</div>
<br/>
## בוא נתחיל
### 💻 פיתוח מקומי (Localhost)
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
פקודה זו תפעיל את Puter בכתובת http://puter.localhost:4100 (או בפורט הפנוי הבא).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
מערכת ההפעלה Puter זמינה כשירות אחסון ב- [**puter.com**](https://puter.com).
<br/>
## דרישות מערכת
- **מערכות הפעלה:** Linux, macOS, Windows
- **RAM:** לפחות 2GB, מומלץ 4GB
- **מקום פנוי בדיסק:** 1GB
- **Node.js:** גרסה 16+ (מומלץ גרסה 22+)
- **npm:** הגרסה היציבה האחרונה
<br/>
## תמיכה
צור קשר עם המפתחים והקהילה דרך הערוצים הבאים:
- דיווח על באג או בקשה לתוכן? אנא [פתח פניה](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter](https://www.reddit.com/r/puter.)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- בעיות אבטחה? [[email protected]](mailto:[email protected])
- שלח אימייל למפתחים ב [[email protected]](mailto:[email protected])
אנחנו תמיד שמחים לעזור עם כל שאלה שיש. אל תהסס לשאול!
<br/>
## רישיון
ספריה זו, כולל כל התכנים שלה, תתי הפרויקטים, המודולים והרכיבים שלה, מורשית תחת [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) אלא אם נאמר אחרת במפורש. לספריות צד שלישי הכלולות בספרייה זו עשויות להיות רישיונות משלהן.
<br/>
+126
View File
@@ -0,0 +1,126 @@
<h3 align="center"><img width="80" alt="Puter.com, व्यक्तिगत क्लाउड कंप्यूटर: आपकी सभी फाइलें, ऐप्स और गेम एक ही स्थान पर, कभी भी, कहीं से भी पहुँच योग्य." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">इंटरनेट ऑपरेटिंग सिस्टम! मुफ़्त, ओपन-सोर्स, और स्वयं-होस्ट करने योग्य|</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« LIVE DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter एक उन्नत, ओपन-सोर्स इंटरनेट ऑपरेटिंग सिस्टम है जिसे फीचर-रिच, असाधारण रूप से तेज़ और अत्यधिक विस्तार योग्य बनाने के लिए डिज़ाइन किया गया है। Puter का उपयोग इस प्रकार किया जा सकता है:
- एक गोपनीयता-पहले व्यक्तिगत क्लाउड जो आपकी सभी फ़ाइलों, ऐप्स और गेम को एक सुरक्षित स्थान पर रखता है, जिसे कहीं से भी किसी भी समय एक्सेस किया जा सकता है।
- वेबसाइट, वेब ऐप्स और गेम बनाने और प्रकाशित करने के लिए एक प्लेटफ़ॉर्म।
- ड्रॉपबॉक्स, Google ड्राइव, OneDrive आदि का एक विकल्प नए इंटरफ़ेस और शक्तिशाली सुविधाओं के साथ सर्वर और वर्कस्टेशन के लिए एक रिमोट डेस्कटॉप वातावरण।
- वेब विकास, क्लाउड कंप्यूटिंग, वितरित सिस्टम और बहुत कुछ सीखने के लिए एक दोस्ताना, ओपन-सोर्स प्रोजेक्ट और समुदाय!
<br/>
## शुरू करें
### 💻 स्थानीय विकास
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
यह Puter को लॉन्च करेगा http://puter.localhost:4100 (या अगले उपलब्ध पोर्ट पर).
<br/>
### 🐳 डॉकर
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 डॉकर कंपोज़
#### लिनक्स/मैकओएस
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### विंडोज
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter एक होस्टेड सेवा के रूप में उपलब्ध है [**puter.com**](https://puter.com).
<br/>
## सिस्टम आवश्यकताएँ
- **ऑपरेटिंग सिस्टम:** लिनक्स, मैकओएस, विंडोज
- **रैम:** 2GB न्यूनतम (4GB अनुशंसित)
- **डिस्क स्थान:** 1GB खाली स्थान
- **नोड.जेएस:** संस्करण 16+ (संस्करण 22+ अनुशंसित)
- **एनपीएम:** नवीनतम स्थिर संस्करण
<br/>
## समर्थन
मेनटेनरों और समुदाय से इन चैनलों के माध्यम से जुड़ें:
- बग रिपोर्ट या फीचर रिक्वेस्ट? कृपया [open an issue](https://github.com/HeyPuter/puter/issues/new/choose).
- डिस्कॉर्ड: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (ट्विटर): [x.com/HeyPuter](https://x.com/HeyPuter)
- रेड्डिट: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- मास्टोडॉन: [mastodon.social/@puter](https://mastodon.social/@puter)
- सुरक्षा समस्याएँ? [[email protected]](mailto:[email protected])
- ईमेल रखरखावकर्ता को [[email protected]](mailto:[email protected])
हमें आपकी किसी भी प्रश्न में मदद करने में खुशी होगी। बेझिझक पूछें!
<br/>
## लाइसेंस
यह रिपॉजिटरी, इसकी सभी सामग्री, उप-प्रोजेक्ट्स, मॉड्यूल और घटकों सहित, लाइसेंस के तहत है [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) जब तक स्पष्ट रूप से अन्यथा नहीं कहा गया है। इस रिपॉजिटरी में शामिल तृतीय-पक्ष पुस्तकालयों के अपने स्वयं के लाइसेंस के अधीन हो सकते हैं।
<br/>
+128
View File
@@ -0,0 +1,128 @@
<h3 align="center"><img width="80" alt="Puter.com, A személyi felhő számítógép: Minden fájl, alkalmazás és játék egy helyen elérhető bárhonnan, bármikor." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Az internetes oprendszer! Ingyenes, nyílt-forráskódú, saját szerveren futtatható.</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« ÉLŐ DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
A Puter egy fejlett, nyílt forráskódú internetes operációs rendszer, amelyet úgy terveztek, hogy funkciókban gazdag, kivételesen gyors és nagymértékben bővíthető legyen. A Puter a következőképpen használható:
- Egy adatvédelmet előtérbe helyező személyes felhő, amely minden fájlt, alkalmazást és játékot egy biztonságos helyen tart. Bárhonnan és bármikor elérhető.
- Egy platform weboldalak, web-appok, és játékok készítéséhez/közzétételéhez.
- A Dropbox, Google Drive, OneDrive (stb.) alternatívája megújult felülettel és hatékony funkciókkal.
- Egy távoli desktop-környezet szervereknek és workstation-öknek.
- Egy barátságos, nyílt forráskódú projekt és közösség, amely a webfejlesztéssel, a felhőalapú számítástechnikával, elosztott rendszerekkel és sok más érdekes témával foglalkozik!
<br/>
## Első lépések
### 💻 Helyi (lokális) fejlesztés
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Ezzel a http://puter.localhost:4100 -on futtatjuk Putert. (vagy a legközelebbi elérhető porton).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
A Puter elérhető hostolt szolgáltatásként a [**puter.com**](https://puter.com) címen.
<br/>
## Rendszerkövetelmények
- **Operációs rendszerek:** Linux, macOS, Windows
- **RAM:** 2GB minimum (4GB ajánlott)
- **Tárhely:** 1GB szabad tárhely
- **Node.js:** 16+ (22+ verzió ajánlott)
- **npm:** legújabb stabil verzió
<br/>
## Támogatás
Lépj kapcsolatba a fejlesztőkkel és a közösséggel az alábbi platformokon:
- Észrevételeid/javaslataid vannak? Az [alábbi linken](https://github.com/HeyPuter/puter/issues/new/choose) megoszthatod velünk.
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Biztonsági hibák? [[email protected]](mailto:[email protected])
- A fejlesztőket a [[email protected]](mailto:[email protected]) email címen érheted el.
Mindig örömmel segítünk bármilyen felmerülő kérdésben. Bátran kérdezz tőlünk!
<br/>
## License
Ez a repo, beleértve annak minden tartalmát, alprojektjeit, moduljait és komponenseit, az [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) licenc alatt áll, hacsak másképp nem rendelkeznek róla. A repoban szereplő harmadik fél által fejlesztett könyvtárak saját licencfeltételek alá eshetnek.
<br/>
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, The Personal Cloud Computer: All your files, apps, and games in one place accessible from anywhere at any time." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Ինտերնետ ՕՀ! Անվճար, բաց կոդով և ինքնահոսթ հնարավորությամբ։</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« Օնլայն դեմո »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter-ը առաջադեմ, բաց կոդով ինտերնետային օպերացիոն համակարգ է, որը նախագծված է լինել ֆունկցիոնալ հարուստ, բացառիկ արագ և բարձր ընդլայնելի։ Puter-ը կարող է օգտագործվել հետևյալ կերպ․
- Անձնական ամպային համակարգ՝ առաջնային գաղտնիությամբ, որը թույլ է տալիս պահել ձեր բոլոր ֆայլերը, հավելվածները և խաղերը մեկ անվտանգ վայրում, որը հասանելի է ցանկացած վայրից և ցանկացած ժամանակ։
- Պլատֆորմ կայքերի, վեբ հավելվածների և խաղերի ստեղծման և հրապարակման համար։
- Dropbox, Google Drive, OneDrive և այլ ծառայությունների այլընտրանք՝ նոր ինտերֆեյսով և հզոր գործառույթներով։
- Հեռավոր աշխատասեղանի միջավայր սերվերների և աշխատանքային կայանների համար։
- Պարզ, բաց կոդով նախագիծ և համայնք՝ վեբ ծրագրավորման, ամպային հաշվարկների, բաշխված համակարգերի և այլ թեմաների մասին սովորելու համար։
<br/>
## Սկսել
### 💻 Լոկալ ծրագրավորում
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Սա կգործակի Puter-ը հետևյալ հասցեով՝ http://puter.localhost:4100 (կամ հաջորդ հասանելի պորտով)։
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter-ը հասանելի է որպես հյուրընկալվող ծառայություն [**puter.com**](https://puter.com).
<br/>
## System Requirements
- **Օպերացիոն համակարգ:** Linux, macOS, Windows
- **Օպերատիվ հիշողություն:** 2GB նվազագույնը (4GB խորհուրդ է տրվում)
- **Համակարգչի հիշողություն:** 1GB ազատ տարածություն
- **Node.js:** Տարբերակ 16+ (Տարբերակ 22+ խորհուրդ է տրվում)
- **npm:** Վերջին կայուն տարբերակը
<br/>
## Աջակցություն
Կապվեք համակարգողների և համայնքի հետ այս կայքերի միջոցով՝
- Սխալների կամ գործառույթի հարցում՝ (https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Անվտանգության խնդիրներ՝ [[email protected]](mailto:[email protected])
- Email maintainers at [[email protected]](mailto:[email protected])
Մենք միշտ ուրախ ենք օգնել ձեզ ցանկացած հարցում։ Մի կաշկանդվեք հարցնել։
<br/>
## Լիցենզիա
Այս պահոցարանը, ներառյալ բոլոր իր բովանդակությունը, ենթա-պրոյեկտները, մոդուլները և բաղադրիչները, լիցենզավորվում են [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) լիցենզիայի տակ, եթե այլ կերպ հստակ նշված չէ։ Այս պահոցարանում ներառված երրորդ կողմի գրադարանները կարող են ենթարկվել իրենց սեփական լիցենզիաներին։
<br/>
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, Komputer Cloud Pribadi: Semua file, aplikasi, dan permainan Anda berada di satu tempat yang dapat diakses dari mana saja kapan saja." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Sistem Operasi Internet! Gratis, Sumber Terbuka, dan Dapat Dihosting Sendiri.</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« LIVE DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter adalah sistem operasi internet canggih, open-source, yang dirancang untuk menjadi kaya fitur, sangat cepat, dan sangat dapat diperluas. Puter dapat digunakan sebagai:
- Cloud pribadi yang mengutamakan privasi untuk menyimpan semua file, aplikasi, dan permainan Anda di satu tempat yang aman, yang dapat diakses dari mana saja kapan saja.
- Platform untuk membangun dan mempublikasikan situs web, aplikasi web, dan permainan.
- Alternatif untuk Dropbox, Google Drive, OneDrive, dll. Dengan antarmuka baru dan fitur-fitur canggih.
- Lingkungan desktop jarak jauh untuk server dan workstation.
- Proyek dan komunitas open-source yang ramah untuk belajar tentang pengembangan web, komputasi gemawan (cloud), sistem terdistribusi, dan banyak lagi!
<br/>
## Memulai
### 💻 Pengembangan Lokal
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Ini akan menjalankan Puter di http://puter.localhost:4100 (atau di port berikutnya yang tersedia)
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter tersedia sebagai layanan yang telah dihosting di [**puter.com**](https://puter.com).
<br/>
## Persyaratan Sistem
- **Sistem Operasi:** Linux, macOS, Windows
- **RAM:** 2GB minimal (rekomendasi 4GB)
- **Penyimpanan:** 1GB ruang tersedia
- **Node.js:** Version 16+ (rekomendasi versi 22+)
- **npm:** Versi stabil termutakhir
<br/>
## Dukuangan
Terhubung dengan maintainer dan komunitas melalui saluran-saluran berikut:
- Laporan bug atau permintaan fitur? Silakan [buat issue](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Isu keamanan? [[email protected]](mailto:[email protected])
- Email maintainers di [[email protected]](mailto:[email protected])
Kami selalu senang membantu Anda dengan pertanyaan apa pun yang Anda miliki. Jangan ragu untuk bertanya!
<br/>
## Lisensi
Repositori ini, termasuk semua isinya, sub-proyek, modul, dan komponen, dilisensikan di bawah [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) kecuali dinyatakan sebaliknya secara eksplisit. Perpustakaan pihak ketiga yang termasuk dalam repositori ini mungkin tunduk pada lisensinya sendiri.
<br/>
+128
View File
@@ -0,0 +1,128 @@
<h3 align="center"><img width="80" alt="Puter.com, The Personal Cloud Computer: All your files, apps, and games in one place accessible from anywhere at any time." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Il sistema operativo di Internet! Gratuito, Open-Source e Auto-Hostabile.</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« LIVE DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter è un sistema operativo di Internet avanzato e open-source, progettato per essere ricco di funzionalità, eccezionalmente veloce e altamente estensibile. Puter può essere utilizzato come:
- Un cloud personale che tiene conto della privacy per conservare tutti i file, le app e i giochi in un luogo sicuro, accessibile da qualsiasi luogo e in qualsiasi momento.
- Una piattaforma per creare e pubblicare siti web, app e giochi.
- Un'alternativa a Dropbox, Google Drive, OneDrive, ecc. con un'interfaccia nuova e funzioni potenti.
- Un ambiente desktop remoto per server e workstation.
- Un progetto e una comunità open-source amichevole per imparare lo sviluppo web, il cloud computing, i sistemi distribuiti e molto altro ancora!
<br/>
## Getting Started
### 💻 Local Development
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
In questo modo Puter verrà avviato all'indirizzo http://puter.localhost:4100 (o alla prossima porta disponibile).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter è disponibile come servizio in hosting su [**puter.com**](https://puter.com).
<br/>
## Requisiti di Sistema
- **Sistema Operativo:** Linux, macOS, Windows
- **RAM:** 2GB minimi (4GB raccomandati)
- **Spazio su Disco:** 1GB liberi
- **Node.js:** Versione 16+ (Versione 22+ raccomandati)
- **npm:** Ultima versione stabile
<br/>
## Supporto
Collegatevi con i maintainers e la comunità attraverso questi canali:
- Segnalazione di bug o richiesta di funzionalità? Perfavore [aprire una issue](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Problemi di sicurezza? [[email protected]](mailto:[email protected])
- Email maintainers a [[email protected]](mailto:[email protected])
Siamo sempre felici di aiutarvi con qualsiasi domanda. Non esitate a chiedere!
<br/>
## Licenza
Questo repository, compresi tutti i suoi contenuti, sottoprogetti, moduli e componenti, è concesso in licenza [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt), a meno che non sia esplicitamente indicato diversamente. Le librerie di terze parti incluse in questo repository possono essere soggette alle loro licenze.
<br/>
+123
View File
@@ -0,0 +1,123 @@
<h3 align="center"><img width="80" alt="Puter.com, あなたのファイル、アプリ、ゲームをどこからでもアクセス可能にするパーソナルクラウドコンピュータ" src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">インターネットOS!無料、オープンソース、セルフホスト可能。</h3>
<p align="center">
<img alt="GitHub リポジトリサイズ" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub リリース" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=%E6%9C%80%E6%96%B0%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3"> <img alt="GitHub ライセンス" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« ライブデモ »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="スクリーンショット" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puterは、機能豊富で非常に高速、そして高い拡張性を持つ、先進的なオープンソースのインターネットオペレーティングシステムです。Puterは以下の用途に利用できます:
- プライバシーを最優先するパーソナルクラウドとして、あなたのファイル、アプリ、ゲームを一か所で安全に管理し、どこからでもアクセス可能に。
- ウェブサイト、ウェブアプリ、ゲームの作成と公開のためのプラットフォーム。
- Dropbox、Google Drive、OneDriveなどの代替として、新しいインターフェースと強力な機能を提供。
- サーバーやワークステーションのためのリモートデスクトップ環境。
- ウェブ開発、クラウドコンピューティング、分散システムなどを学ぶための、フレンドリーでオープンなコミュニティとプロジェクト。
<br/>
## はじめに
### 💻 ローカル開発
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
これでPuterが http://puter.localhost:4100 (または次に利用可能なポート)で起動します。
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puterは[**puter.com**](https://puter.com)でホストサービスとして利用可能です。
<br/>
## システム要件
- **オペレーティングシステム:** Linux, macOS, Windows
- **RAM:** 最小2GB(推奨4GB)
- **ディスクスペース:** 1GBの空き容量
- **Node.js:** バージョン16以上(推奨バージョン22以上)
- **npm:** 最新の安定バージョン
<br/>
## サポート
メンテナーやコミュニティと以下のチャンネルを通じてつながりましょう:
- バグ報告や機能リクエストがありますか? [issueを開く](https://github.com/HeyPuter/puter/issues/new/choose) してください。
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- セキュリティの問題? [[email protected]](mailto:[email protected])
- メンテナーへのメールは [[email protected]](mailto:[email protected]) まで
質問があれば、いつでもお気軽にお問い合わせください!
<br/>
## ライセンス
このリポジトリ、ならびにそのすべてのコンテンツ、サブプロジェクト、モジュール、コンポーネントは、[AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt)の下でライセンスされています。明示的に異なるライセンスが示されている場合を除きます。このリポジトリに含まれるサードパーティのライブラリは、それぞれのライセンスが適用される場合があります。
<br/>
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, The Personal Cloud Computer: All your files, apps, and games in one place accessible from anywhere at any time." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Puter: 인터넷 OS! 무료이고 오픈소스이며 자체 호스팅이 가능합니다.</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« 시연 영상 »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter는 오픈소스 인터넷 운영 체제로, 매우 빠르고 확장성이 뛰어나며 새로운 인터페이스와 다양한 기능을 갖추고 있습니다. Puter는 다음과 같이 사용될 수 있습니다:
- 모든 파일, 앱, 게임을 한 곳에 안전하게 보관하고 언제 어디서나 접근할 수 있는 프라이버시 중심의 개인 클라우드로 사용할 수 있습니다.
- 웹사이트, 웹 앱, 게임을 구축하고 배포하는 플랫폼으로 활용할 수 있습니다.
- Dropbox, Google Drive, OneDrive 등의 대안으로 사용할 수 있으며 보다 발전된 기능과 인터페이스를 제공합니다.
- 서버와 워크스테이션을 위한 원격 데스크톱 환경으로 활용할 수 있습니다.
- 웹 개발, 클라우드 컴퓨팅, 분산 시스템 등에 대해 배울 수 있는 친근한 오픈소스 프로젝트이자 커뮤니티입니다!
<br/>
## 시작하기
### 💻 로컬 환경 개발
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
위처럼 실행할 시 Puter는 http://puter.localhost:4100 (또는 사용 가능한 다음 포트)에서 실행됩니다.
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter는 [**puter.com**](https://puter.com)에서 호스팅 서비스로 이용할 수 있습니다.
<br/>
## 시스템 요구사항
- **Operating Systems:** Linux, macOS, Windows
- **RAM:** 2GB minimum (4GB recommended)
- **Disk Space:** 1GB free space
- **Node.js:** Version 16+ (Version 22+ recommended)
- **npm:** Latest stable version
<br/>
## 지원
다음 채널을 통해 관리자 및 커뮤니티와 소통하세요:
- 버그 신고나 기능 요청이 있으신가요? [이슈를 열어주세요.](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- 보안 관련 문제는 [[email protected]](mailto:[email protected]) 으로 연락주세요.
- 관리자에게 이메일 보내기: [[email protected]](mailto:[email protected])
어떤 질문이든 기꺼이 도와드리겠습니다. 언제든 물어보세요!
<br/>
## 라이선스
이 저장소는 모든 내용, 하위 프로젝트, 모듈 및 구성 요소를 포함하여 명시적으로 달리 명시되지 않는 한 [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) 라이선스 하에 제공됩니다. 이 저장소에 포함된 제3자 라이브러리는 해당 라이브러리의 고유 라이선스를 따를 수 있습니다.
<br/>
+128
View File
@@ -0,0 +1,128 @@
<h3 align="center"><img width="80" alt="Puter.com, The Personal Cloud Computer: All your files, apps, and games in one place accessible from anywhere at any time." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">ഇന്റർനെറ്റ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റം!<br> സൗജന്യവും, ഓപ്പൺ സോഴ്സും സ്വയം ഹോസ്റ്റ് ചെയ്യാൻ പറ്റുന്നതും</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« ലൈവ് ഡെമോ »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## പ്യൂട്ടർ (Puter)
ഫീച്ചറുകളാൽ സമ്പുഷ്ടവും അസാധാരണമാംവിധം വേഗതയേറിയതും,വളരെ വിപുലീകരിക്കാവുന്നതുമായ ഒരു നൂതന, ഓപ്പൺ സോഴ്‌സ് ഇന്റർനെറ്റ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റമാണ് പ്യൂട്ടർ. പ്യൂട്ടർ ഇനിപ്പറയുന്ന രീതിയിൽ ഉപയോഗിക്കാം:
- നിങ്ങളുടെ എല്ലാ ഫയലുകളും ആപ്പുകളും ഗെയിമുകളും ഒരു സുരക്ഷിത സ്ഥലത്ത് സൂക്ഷിക്കുന്നതിനുള്ള, സ്വകാര്യതയ്ക്ക് മുൻഗണന കൊടുക്കുന്ന ആദ്യത്തെ വ്യക്തിഗത ക്ലൗഡ്, എവിടെ നിന്നും എപ്പോൾ വേണമെങ്കിലും ആക്‌സസ് ചെയ്യാൻ കഴിയും.
- വെബ്‌സൈറ്റുകൾ, വെബ് ആപ്പുകൾ, ഗെയിമുകൾ എന്നിവ നിർമ്മിക്കുന്നതിനും പ്രസിദ്ധീകരിക്കുന്നതിനുമുള്ള ഒരു പ്ലാറ്റ്ഫോം.
- പുതിയ ഇന്റർഫേസും, ശക്തമായ ഫീച്ചറുകളും അടങ്ങിയ, ഡ്രോപ്പ്‌ബോക്‌സ്, ഗൂഗിൾ ഡ്രൈവ്, വൺഡ്രൈവ് മുതലായവയ്‌ക്കുള്ള ബദൽ.
- സെർവറുകൾക്കും വർക്ക്സ്റ്റേഷനുകൾക്കും, ഒരു വിദൂര ഡെസ്ക്ടോപ്പ് പരിസ്ഥിതി.
- വെബ് ഡെവലപ്മെന്റ്, ക്ലൗഡ് കംപ്യൂട്ടിംഗ്, ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങൾ എന്നിവയെ കുറിച്ചും, അതിലേറെ കാര്യങ്ങളെ കുറിച്ചും അറിയാനുള്ള സൗഹൃദപരവും ഓപ്പൺ സോഴ്സുമായ പ്രോജക്റ്റും കമ്മ്യൂണിറ്റിയും!
<br/>
## തുടങ്ങാനായി
### 💻 ലോക്കൽ ഡെവലപ്മെന്റ്
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
ഇത് http://puter.localhost:4100 (അല്ലെങ്കിൽ അടുത്ത ലഭ്യമായ പോർട്ടിൽ) എന്നതിൽ Puter സമാരംഭിക്കും
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
പ്യൂട്ടർ [**puter.com**](https://puter.com) എന്നതിൽ ഹോസ്റ്റ് ചെയ്‌ത സേവനമായി ലഭ്യമാണ്.
<br/>
## സിസ്റ്റത്തിന്റെ ആവശ്യകതകൾ
- **ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ:** ലിനക്സ്, മാക്ക് ഒഎസ്, വിൻഡോസ്
- **RAM:** 2GB കുറഞ്ഞത് (4GB ശുപാർശ ചെയ്യുന്നു)
- **ഡിസ്ക് സ്പേസ്:** 1GB ഒഴിഞ്ഞ ഇടം
- **Node.js:** Version 16+ (Version 22+ ശുപാർശ ചെയ്യുന്നു)
- **npm:** ഏറ്റവും പുതിയ സ്ഥിരതയുള്ള പതിപ്പ്
<br/>
## പിന്തുണ
ഈ ചാനലുകളിലൂടെ പരിപാലിക്കുന്നവരുമായും കമ്മ്യൂണിറ്റിയുമായും ബന്ധപ്പെടുക:
- ബഗ്ഗ് റിപ്പോർട്ടോ, ഫീച്ചർ റിക്ക്വസ്റ്റോ ഉണ്ടോ? ദയവുചെയ്ത് [ഒരു ഇഷ്യൂ തുടങ്ങുക](https://github.com/HeyPuter/puter/issues/new/choose).
- ഡിസ്കോർഡ്: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- എക്സ് (ട്വിറ്റർ): [x.com/HeyPuter](https://x.com/HeyPuter)
- റെഡ്ഡിറ്റ്: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- മാസ്റ്റഡൺ: [mastodon.social/@puter](https://mastodon.social/@puter)
- സുരക്ഷാ പ്രശ്നങ്ങളുണ്ടോ? [[email protected]](mailto:[email protected])
- ഇമെയിൽ മെയിന്റൈനർമാർ: [[email protected]](mailto:[email protected])
നിങ്ങൾക്ക് ഉണ്ടായേക്കാവുന്ന ഏത് ചോദ്യങ്ങളിലും നിങ്ങളെ സഹായിക്കുന്നതിൽ ഞങ്ങൾക്ക് എപ്പോഴും സന്തോഷമുണ്ട്. ചോദിക്കാൻ മടിക്കേണ്ട!
<br/>
## ലൈസൻസ്
ഈ ശേഖരം, അതിന്റെ എല്ലാ ഉള്ളടക്കങ്ങളും, ഉപപദ്ധതികളും, മൊഡ്യൂളുകളും, ഘടകങ്ങളും ഉൾപ്പെടെ, [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) എന്നതിന് കീഴിൽ ലൈസൻസുള്ളതാണ്. ഈ ശേഖരത്തിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന മൂന്നാം കക്ഷി ലൈബ്രറികൾ അവരുടെ സ്വന്തം ലൈസൻസുകൾക്ക് വിധേയമായിരിക്കാം.
<br/>
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, De Persoonlijke Cloud Computer: Al je bestanden, apps en games op één plek, overal en altijd toegankelijk." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Het Internet OS! Gratis, Open-Source en Zelf te Hosten.</h3>
<p align="center">
<img alt="GitHub repo grootte" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=laatste%20versie"> <img alt="GitHub Licentie" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« LIVE DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter is een geavanceerd, open-source internetbesturingssysteem ontworpen om functierijk, uitzonderlijk snel en zeer uitbreidbaar te zijn. Puter kan worden gebruikt als:
- Een privacy-gerichte persoonlijke cloud om al je bestanden, apps en games op één veilige plek te bewaren, overal en altijd toegankelijk.
- Een platform voor het bouwen en publiceren van websites, web-apps en games.
- Een alternatief voor Dropbox, Google Drive, OneDrive, etc. met een frisse interface en krachtige functies.
- Een externe desktopomgeving voor servers en werkstations.
- Een vriendelijk, open-source project en gemeenschap om te leren over webontwikkeling, cloud computing, gedistribueerde systemen en veel meer!
<br/>
## Aan de slag
### 💻 Lokale Ontwikkeling
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Dit zal Puter starten op http://puter.localhost:4100 (of de eerstvolgende beschikbare poort).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter is beschikbaar als een gehoste service op [**puter.com**](https://puter.com).
<br/>
## Systeemvereisten
- **Besturingssystemen:** Linux, macOS, Windows
- **RAM:** 2GB minimum (4GB aanbevolen)
- **Schijfruimte:** 1GB vrije ruimte
- **Node.js:** Versie 16+ (Versie 22+ aanbevolen)
- **npm:** Laatste stabiele versie
<br/>
## Ondersteuning
Verbind met de onderhouders en de gemeenschap via deze kanalen:
- Bug rapport of functieverzoek? [Open een issue](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Beveiligingsproblemen? [[email protected]](mailto:[email protected])
- E-mail onderhouders op [[email protected]](mailto:[email protected])
We helpen je graag met al je vragen. Aarzel niet om te vragen!
<br/>
## Licentie
Deze repository, inclusief alle inhoud, subprojecten, modules en componenten, is gelicentieerd onder [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) tenzij expliciet anders vermeld. Bibliotheken van derden die in deze repository zijn opgenomen, kunnen onderworpen zijn aan hun eigen licenties.
<br/>
+119
View File
@@ -0,0 +1,119 @@
<h3 align="center"><img width="80" alt="Puter.com, Osobisty Komputer Chmurowy: Wszystkie twoje pliki, aplikacje i gry w jednym miejscu, dostępne z dowolnego miejsca o dowolnej porze." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">System Operacyjny Internetu! Darmowy, Open-Source i Możliwy do Samodzielnego Hostowania.</h3>
<p align="center">
<img alt="Rozmiar repozytorium GitHub" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="Wydanie GitHub" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="Licencja GitHub" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« DEMO NA ŻYWO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="zrzut ekranu" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter to zaawansowany, open-source'owy system operacyjny internetowy, zaprojektowany tak, aby był bogaty w funkcje, wyjątkowo szybki i wysoce rozszerzalny. Puter może być używany jako:
- Prywatna chmura osobista do przechowywania wszystkich plików, aplikacji i gier w jednym bezpiecznym miejscu, dostępnym z dowolnego miejsca o dowolnej porze.
- Platforma do budowania i publikowania stron internetowych, aplikacji webowych i gier.
- Alternatywa dla Dropbox, Google Drive, OneDrive itp. ze świeżym interfejsem i potężnymi funkcjami.
- Zdalne środowisko pulpitu dla serwerów i stacji roboczych.
- Przyjazny, open-source'owy projekt i społeczność do nauki o tworzeniu stron internetowych, chmurze obliczeniowej, systemach rozproszonych i wielu innych!
<br/>
## Rozpoczęcie pracy
## 💻 Rozwój lokalny
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
To uruchomi Puter na http://puter.localhost:4100 (lub na następnym dostępnym porcie).
<br/>
## 🐳 Docker
```bash
Copy code
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
## 🐙 Docker Compose
## Linux/macOS
```bash
Copy code
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
## Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
## ☁️ Puter.com
Puter jest dostępny jako usługa hostowana na [**puter.com**](https://puter.com).
<br/>
## Wymagania systemowe
- **Systemy operacyjne:** Linux, macOS, Windows
- **RAM:** Minimum 2GB (zalecane 4GB)
- **Przestrzeń dyskowa:** 1GB wolnego miejsca
- **Node.js:** Wersja 16+ (zalecana wersja 22+)
- **npm:** Najnowsza stabilna wersja
<br/>
## Wsparcie
Połącz się z opiekunami i społecznością przez te kanały:
- Raport o błędzie lub prośba o funkcję? Proszę otworzyć zgłoszenie.
- Discord: discord.com/invite/PQcx7Teh8u
- X (Twitter): x.com/HeyPuter
- Reddit: reddit.com/r/puter/
- Mastodon: mastodon.social/@puter
- Problemy z bezpieczeństwem? security@puter.com
- Email do opiekunów: hi@puter.com
Zawsze chętnie pomożemy Ci z wszelkimi pytaniami, jakie możesz mieć. Nie wahaj się pytać!
<br/>
## Licencja
To repozytorium, w tym cała jego zawartość, podprojekty, moduły i komponenty, jest licencjonowane na podstawie [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt), chyba że wyraźnie zaznaczono inaczej. Biblioteki stron trzecich zawarte w tym repozytorium mogą podlegać własnym licencjom.
<br/>
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, O Computador Pessoal em Nuvem: Todos os seus arquivos, aplicativos e jogos em um único lugar, acessíveis de qualquer lugar e a qualquer hora." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">O Sistema Operacional da Internet! Gratuito, de Código Aberto e Auto-Hospedável.</h3>
<p align="center">
<img alt="Tamanho do repositório do GitHub" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="Lançamento no GitHub" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="Licença do GitHub" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« DEMONSTRAÇÃO AO VIVO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter é um sistema operacional de internet avançado e de código aberto, projetado para ser rico em recursos, excepcionalmente rápido e altamente extensível. Puter pode ser usado como:
- Um serviço de nuvem pessoal com foco na privacidade para manter todos os seus arquivos, aplicativos e jogos em um local seguro, acessível de qualquer lugar e a qualquer hora.
- Uma plataforma para construir e publicar websites, aplicativos web e jogos.
- Uma alternativa ao Dropbox, Google Drive, OneDrive, etc., com uma interface renovada e recursos poderosos.
- Um ambiente de desktop remoto para servidores e estações de trabalho.
- Um projeto e comunidade de código aberto e amigável para aprender sobre desenvolvimento web, computação em nuvem, sistemas distribuídos e muito mais!
<br/>
## Iniciando o Projeto
### 💻 Desenvolvimento Local
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Isso iniciará o Puter em http://puter.localhost:4100 (ou na próxima porta disponível).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
O Puter está disponível como um serviço hospedado em [**puter.com**](https://puter.com).
<br/>
## Requerimentos do sistema
- **Sistema operacional:** Linux, macOS, Windows
- **RAM:** 2GB mínimo (4GB recomendado)
- **Espaço de disco:** 1GB de espaço disponível
- **Node.js:** Versão 16+ (Versão 22+ recomendada)
- **npm:** Última versão estável
<br/>
## Suporte
Conecte-se com os mantenedores e a comunidade através destes canais:
- Relato de bug ou solicitação de recurso? Por favor, [abra um tópico](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Problemas de segurança? [[email protected]](mailto:[email protected])
- Envie um email para os mantenedores em [[email protected]](mailto:[email protected])
Estamos sempre felizes em ajudá-lo com quaisquer perguntas que você possa ter. Não hesite em perguntar!
<br/>
## Licença
Este repositório, incluindo todos os seus conteúdos, subprojetos, módulos e componentes, está licenciado sob [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) a menos que explicitamente indicado de outra forma. Bibliotecas de terceiros incluídas neste repositório podem estar sujeitas às suas próprias licenças.
<br/>
+125
View File
@@ -0,0 +1,125 @@
<h3 align="center"><img width="80" alt="Puter.com, Calculatorul Personal Cloud: Toate fișierele, aplicațiile și jocurile dumneavoastră într-un singur loc, accesibile de oriunde și oricând." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Sistemul de Operare Internet! Gratuit, Open-Source și Găzduibil Autonom.</h3>
<p align="center">
<img alt="Mărime GitHub repository" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="Versiune GitHub" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=ultima%20versiune"> <img alt="Licență GitHub" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« DEMO LIVE »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter este un sistem de operare pe internet avansat, open-source, proiectat să fie bogat în funcții, extrem de rapid și foarte extensibil. Puter poate fi folosit ca:
- Un cloud personal care pune pe primul loc confidențialitatea pentru a păstra toate fișierele, aplicațiile și jocurile tale într-un loc sigur, accesibil de oriunde și oricând.
- O platforma pentru a construi și publica site-uri web, aplicații web și jocuri.
- O alternativă la Dropbox, Google Drive, OneDrive, etc. cu o interfață nouă și funcționalități puternice.
- Un mediu desktop la distanță pentru servere si stații de lucru.
- Un proiect prietenos, open-source și o comunitate pentru a învăța despre dezvoltarea web, cloud computing, sisteme distribuite și multe altele!
<br/>
## Începeți
### 💻 Dezvoltare Locală
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Aceasta va lansa Puter la adresa http://puter.localhost:4100 (sau la următorul port disponibil).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter este disponibil ca serviciu găzduit la [**puter.com**](https://puter.com).
<br/>
## Cerințe de Sistem
- **Sisteme de Operare:** Linux, macOS, Windows
- **RAM:** 2GB minim (4GB recomandat)
- **Spațiu pe Disk:** 1GB spațiu liber
- **Node.js:** Versiunea 16+ (Versiunea 22+ recomandată)
- **npm:** Ultima versiune stabilă
<br/>
## Suport
Conectați-vă cu cei care asigură mentenanța proiectului și comunitatea prin intermediul acestor canale:
- Aveți o problemă sau doriți o funcționalitate nouă? Vă rugăm [să deschideți o problemă](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Probleme de securitate? [[email protected]](mailto:[email protected])
- Trimiteți un email celor care asigură mentenanța proiectul la [[email protected]](mailto:[email protected])
Suntem întotdeauna bucuroși să vă ajutăm cu orice întrebări aveți. Nu ezitați să ne întrebați!
<br/>
## Licență
Acest depozit, inclusiv toate conținuturile sale, sub-proiectele, modulele și componentele, sunt licențiate sub [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt), cu excepția cazului în care se menționează altfel în mod explicit. Bibliotecile terțe incluse în acest depozit pot fi supuse propriilor licențe.
<br/>
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, персональный облачный компьютер: все ваши файлы, приложения и игры в одном месте, доступные из любой точки мира в любое время." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Интернет ОС! Бесплатная, с открытым исходным кодом и возможностью самостоятельной установки.</h3>
<p align="center">
<img alt="Размер репозитория GitHub" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="Релиз GitHub" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="Лицензия GitHub" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« ЖИВОЕ ДЕМО »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter — это передовая операционная система с открытым исходным кодом, разработанная для обеспечения широкого функционала, исключительной скорости и высокой масштабируемости. Puter можно использовать как:
- Персональное облако с приоритетом конфиденциальности для хранения всех ваших файлов, приложений и игр в одном безопасном месте, доступном из любой точки мира в любое время.
- Платформа для создания и публикации веб-сайтов, веб-приложений и игр.
- Альтернатива Dropbox, Google Drive, OneDrive и т. д. с новым интерфейсом и мощными функциями.
- Удаленное рабочее окружение для серверов и рабочих станций.
- Дружественный проект с открытым исходным кодом и сообщество для изучения веб-разработки, облачных вычислений, распределенных систем и многого другого!
<br/>
## Начало работы
### 💻 Локальная разработка
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Это запустит Puter по адресу http://puter.localhost:4100 (или на следующем доступном порту).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter доступен как облачный сервис на [**puter.com**](https://puter.com).
<br/>
## Системные требования
- **Операционные системы:** Linux, macOS, Windows
- **ОЗУ:** минимум 2 ГБ (рекомендуется 4 ГБ)
- **Место на диске:** 1 ГБ свободного места
- **Node.js:** Версия 16+ (рекомендуется версия 22+)
- **npm:** Последняя стабильная версия
<br/>
## Поддержка
Свяжитесь с разработчиками и сообществом этими способами:
- Отчет об ошибке или запрос функции? Пожалуйста, [откройте вопрос](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Проблемы безопасности? [[email protected]](mailto:[email protected])
- Свяжитесь с разработчиками по адресу [[email protected]](mailto:[email protected])
Мы всегда рады помочь вам с любыми вопросами. Не стесняйтесь спрашивать!
<br/>
## Лицензия
Этот репозиторий, включая все его содержимое, подпроекты, модули и компоненты, лицензирован в соответствии с [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt), если явно не указано иное. Сторонние библиотеки, включенные в этот репозиторий, могут подпадать под действие их собственных лицензий.
<br/>
+125
View File
@@ -0,0 +1,125 @@
<h3 align="center"><img width="80" alt="Puter.com, Den personliga molndatorn: Alla dina filer, appar och spel på ett ställe tillgängliga var som helst när som helst." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Internet OS! Gratis, öppen källkod och självhostad.</h3>
<p align="center">
<img alt="GitHub repo storlek" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Utgåva" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=senaste%20versionen"> <img alt="GitHub Licens" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« LIVE DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="skärmdump" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter är ett avancerat, öppen källkod internetoperativsystem designat för att vara funktionsrikt, exceptionellt snabbt och mycket utbyggbart. Puter kan användas som:
- Ett integritetsfokuserat personligt moln för att hålla alla dina filer, appar och spel på ett säkert ställe, tillgängligt var som helst när som helst.
- En plattform för att bygga och publicera webbplatser, webbappar och spel.
- Ett alternativ till Dropbox, Google Drive, OneDrive, etc. med ett fräscht gränssnitt och kraftfulla funktioner.
- En fjärrskrivbordsmiljö för servrar och arbetsstationer.
- Ett vänligt, öppen källkod-projekt och gemenskap för att lära sig om webbutveckling, molndatorer, distribuerade system och mycket mer!
<br/>
## Komma igång
### 💻 Lokal Utveckling
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Detta kommer att starta Puter på http://puter.localhost:4100 (eller nästa lediga port).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter är tillgängligt som en värdtjänst på [**puter.com**](https://puter.com).
<br/>
## Systemkrav
- **Operating Systems:** Linux, macOS, Windows
- **RAM:** 2GB minimum (4GB recommended)
- **Disk Space:** 1GB free space
- **Node.js:** Version 16+ (Version 22+ recommended)
- **npm:** Latest stable version
<br/>
## Support
Anslut med underhållarna och gemenskapen genom dessa kanaler:
- Buggrapport eller funktionsförfrågan? Vänligen [öppna ett ärende](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Säkerhetsproblem? [[email protected]](mailto:[email protected])
- E-posta underhållarna på [[email protected]](mailto:[email protected])
Vi hjälper dig gärna med eventuella frågor du kan ha. Tveka inte att fråga!
<br/>
## Licens
Detta arkiv, inklusive allt dess innehåll, delprojekt, moduler och komponenter, är licensierat under [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) om inte annat uttryckligen anges. Tredjepartsbibliotek som ingår i detta arkiv kan vara föremål för sina egna licenser.
<br/>
+123
View File
@@ -0,0 +1,123 @@
<h3 align="center"><img width="80" alt="Puter.com, The Personal Cloud Computer: உங்கள் கோப்புகள், ஆப்ஸ் மற்றும் கேம்கள் அனைத்தும் ஒரே இடத்தில் எங்கிருந்தும் எந்த நேரத்திலும் அணுகலாம்." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">இன்டர்நெட் OS! இலவசம், ஓப்பன் சோர்ஸ் மற்றும் Self-Hostable</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub உரிமம்" src="https://img.shields.io/github/license/HeyPuter/puter" >
</p>
<p align="center">
<a href="https://puter.com/"><strong>« லைவ் டெமோ »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## புட்டர் (Putter)
புட்டர்(putter) என்பது ஒரு மேம்பட்ட, திறந்த மூல இலவசமாக இணைய இயக்க முறைமையாகும், இது அம்சம் நிறைந்ததாகவும், விதிவிலக்காக வேகமாகவும், அதிக விரிவாக்கக்கூடியதாகவும் வடிவமைக்கப்பட்டுள்ளது. புட்டரை இவ்வாறு பயன்படுத்தலாம்:
- உங்கள் கோப்புகள், பயன்பாடுகள் மற்றும் கேம்கள் அனைத்தையும் ஒரே பாதுகாப்பான இடத்தில் வைத்திருக்க, எந்த நேரத்திலும் எங்கிருந்தும் அணுகக்கூடிய தனியுரிமை-முதல் தனிப்பட்ட கிளவுட்.
- இணையதளங்கள், இணைய பயன்பாடுகள் மற்றும் கேம்களை உருவாக்கி வெளியிடுவதற்கான தளம் இதுவாகும்.
- புதிய இடைமுகம் மற்றும் சக்திவாய்ந்த அம்சங்களுடன் Dropbox, Google Drive, OneDrive போன்றவற்றுக்கு மாற்றீடாக உபயோகிக்க கூடியது.
- சர்வர்கள் மற்றும் பணிநிலையங்களுக்கான தொலைநிலை டெஸ்க்டாப்(desktop) சூழல்.
- வலை மேம்பாடு, கிளவுட் கம்ப்யூட்டிங், விநியோகிக்கப்பட்ட அமைப்புகள் மற்றும் பலவற்றைப் பற்றி அறிந்து ஒரு நட்பு ரீதியான, திறந்த மூல திட்டம் மற்றும் சமூக அறிவியலில் சார்ந்த ஒன்று.
<br/>
## தொடங்குதல்
### 💻 உள்ளூர் வளர்ச்சி
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
``` தொடக்கம்
```
இது புட்டரை <http://puter.localhost:4100> இல் தொடங்கும் (அல்லது அடுத்து கிடைக்கும் இடம்).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 டோக்கர் கம்போஸ்
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
புட்டர் ஹோஸ்ட் செய்யப்பட்ட சேவையாக [**puter.com**](https://puter.com) இல் கிடைக்கிறது.
<br/>
## கணினி தேவைகள்
- **இயக்க முறைமைகள்:** Linux, macOS, Windows
- **ரேம்:** குறைந்தபட்சம் 2 ஜிபி (4 ஜிபி பரிந்துரைக்கப்படுகிறது)
- **வட்டு இடம்:** 1GB இலவச இடம்
- **Node.js:** Version 16+ (Version 22+ recommended)
- **npm:** சமீபத்திய நிலையான பதிப்பு(Latest stable version)
<br/>
## ஆதரவு
இந்த சேனல்கள் மூலம் பராமரிப்பாளர்கள் மற்றும் சமூகத்துடன் சமூக இணைப்பாளர்:
- பிழை அறிக்கை அல்லது மாற்றுதல் கோரிக்கை? தயவுசெய்து [சிக்கலைத் திறக்கவும்](https://github.com/HeyPuter/puter/issues/new/choose).
- கருத்து வேறுபாடு: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- பாதுகாப்பு பிரச்சினைகள்? [[email protected]](mailto:[email protected])
- மின்னஞ்சல் பராமரிப்பாளர்களுக்கு [[email protected]](mailto:[email protected])
உங்களுக்கு ஏதேனும் கேள்விகள் இருந்தால் உங்களுக்கு உதவ நாங்கள் எப்போதும் மகிழ்ச்சியடைகிறோம். தயங்காமல் கேளுங்கள்!
<br/>
## உரிமம்
இந்தக் களஞ்சியமானது, அதன் அனைத்து உள்ளடக்கங்கள், துணைத் திட்டங்கள், தொகுதிகள் மற்றும் கூறுகள் உட்பட, வெளிப்படையாகக் கூறப்படாவிட்டால், [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) இன் கீழ் உரிமம் பெற்றுள்ளது. . இந்தக் களஞ்சியத்தில் சேர்க்கப்பட்டுள்ள மூன்றாம் தரப்பு நூலகங்கள் அவற்றின் சொந்த உரிமங்களுக்கு உட்பட்டதாக இருக்கும்.
<br/>
+161
View File
@@ -0,0 +1,161 @@
<h3 align="center"><img width="80" alt="Puter.com, The Personal Cloud Computer: మీ అన్ని ఫైల్‌లు, యాప్‌లు మరియు గేమ్‌లను ఒకే స్థలంలో ఎక్కడి నుండైనా ఎప్పుడైనా యాక్సెస్ చేయవచ్చు." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center"> ఇంటర్నెట్ OS! ఉచిత, ఓపెన్ సోర్స్, and Self-Hostable.</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« ప్రత్యక్ష ప్రదర్శన »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## పుటర్ (Puter)
పుటర్ అనేది అధునాతన, ఓపెన్ సోర్స్ ఇంటర్నెట్ ఆపరేటింగ్ సిస్టమ్, ఇది ఫీచర్-రిచ్, అనూహ్యంగా వేగవంతమైన మరియు అత్యంత విస్తరించదగినదిగా రూపొందించబడింది. పుటర్‌ను ఇలా ఉపయోగించవచ్చు:
- మీ అన్ని ఫైల్‌లు, యాప్‌లు మరియు గేమ్‌లను ఒకే సురక్షిత స్థలంలో ఉంచడానికి గోప్యత-మొదటి వ్యక్తిగత క్లౌడ్, ఎప్పుడైనా ఎక్కడి నుండైనా యాక్సెస్ చేయవచ్చు.
- వెబ్‌సైట్‌లు, వెబ్ యాప్‌లు మరియు గేమ్‌లను రూపొందించడానికి మరియు ప్రచురించడానికి ఒక వేదిక.
- తాజా ఇంటర్‌ఫేస్ మరియు శక్తివంతమైన ఫీచర్‌లతో Dropbox, Google Drive, OneDrive మొదలైన వాటికి ప్రత్యామ్నాయం.
- సర్వర్లు మరియు వర్క్‌స్టేషన్‌ల కోసం రిమోట్ డెస్క్‌టాప్ వాతావరణం.
- వెబ్ డెవలప్‌మెంట్, క్లౌడ్ కంప్యూటింగ్, డిస్ట్రిబ్యూట్ సిస్టమ్‌లు మరియు మరిన్నింటి గురించి తెలుసుకోవడానికి స్నేహపూర్వక, ఓపెన్ సోర్స్ ప్రాజెక్ట్ మరియు కమ్యూనిటీ!
<br/>
## ప్రారంభించడం
### లోకల్ డెవలప్మెంట్
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
ఇది http://puter.localhost:4100 (లేదా తదుపరి అందుబాటులో ఉన్న పోర్ట్) వద్ద పుటర్‌ని ప్రారంభిస్తుంది.
ఇది పని చేయకపోతే, దీని కోసం [మొదటి రన్ సమస్యలు](./doc/first-run-issues.md) చూడండి
ట్రబుల్షూటింగ్ దశలు.
<br/>
### 🐳 డోకర్
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 డోకర్ Compose
#### లినక్స్/ macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### విండోస్
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
పుటర్ [**puter.com**](https://puter.com)లో హోస్ట్ చేయబడి ఉంది.
<br/>
## System Requirements
- **ఆపరేటింగ్ సిస్టమ్స్:** లినక్స్, macOS, విండోస్
- **RAM:** 2GB కనీసం(4GB recommended)
- **Disk Space:** 1GB ఖాళీ
- **Node.js:** Version 16+ (Version 22+ recommended)
- **npm:** Latest stable version
<br/>
## Support
ఈ ఛానెల్‌ల ద్వారా నిర్వాహకులు మరియు సంఘంతో కనెక్ట్ అవ్వండి:
- బగ్ నివేదిక లేదా ఫీచర్ అభ్యర్థన? దయచేసి [open an issue](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Security issues? [[email protected]](mailto:[email protected])
- Email maintainers at [[email protected]](mailto:[email protected])
మీకు ఏవైనా సందేహాలు ఉంటే మీకు సహాయం చేయడానికి మేము ఎల్లప్పుడూ సంతోషిస్తాము. అడగడానికి సంకోచించకండి!
<br/>
## లైసెన్సు
ఈ రిపోజిటరీ, దాని మొత్తం కంటెంట్‌లు, ఉప-ప్రాజెక్ట్‌లు, మాడ్యూల్స్ మరియు కాంపోనెంట్‌లతో సహా, [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) కింద లైసెన్స్‌ని కలిగి ఉంటుంది. . ఈ రిపోజిటరీలో చేర్చబడిన థర్డ్-పార్టీ లైబ్రరీలు వాటి స్వంత లైసెన్స్‌లకు లోబడి ఉండవచ్చు.
<br/>
## అనువాదాలు
- [Arabic / العربية](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ar.md)
- [Armenian / Հայերեն](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.hy.md)
- [Bengali / বাংলা](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.bn.md)
- [Chinese / 中文](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.zh.md)
- [Danish / Dansk](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.da.md)
- [English](https://github.com/HeyPuter/puter/blob/main/README.md)
- [Farsi / فارسی](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.fa.md)
- [Finnish / Suomi](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.fi.md)
- [French / Français](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.fr.md)
- [German/ Deutsch](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.de.md)
- [Hebrew/ עברית](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.he.md)
- [Hindi / हिंदी](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.hi.md)
- [Hungarian / Magyar](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.hu.md)
- [Indonesian / Bahasa Indonesia](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.id.md)
- [Italian / Italiano](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.it.md)
- [Japanese / 日本語](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.jp.md)
- [Korean / 한국어](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ko.md)
- [Malayalam / മലയാളം](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ml.md)
- [Polish / Polski](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.pl.md)
- [Portuguese / Português](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.pt.md)
- [Romanian / Română](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ro.md)
- [Russian / Русский](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ru.md)
- [Spanish / Español](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.es.md)
- [Swedish / Svenska](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.sv.md)
- [Tamil / தமிழ்](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ta.md)
- [Telugu / తెలుగు](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.te.md)
- [Thai / ไทย](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.th.md)
- [Turkish / Türkçe](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.tr.md)
- [Ukrainian / Українська](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ua.md)
- [Urdu / اردو](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ur.md)
- [Vietnamese / Tiếng Việt](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.vi.md)
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, The Personal Cloud Computer: All your files, apps, and games in one place accessible from anywhere at any time." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">ระบบปฏิบัติการอินเทอร์เน็ต ฟรี, โอเพ่นซอร์ส, และสามารถโฮสต์ได้ด้วยตนเอง</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« การสาธิตสด »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">ชุดพัฒนาโปรแกรม</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">ดิสคอร์ด</a>
·
<a href="https://reddit.com/r/puter">เรดดิท</a>
·
<a href="https://twitter.com/HeyPuter">X (ทวิตเตอร์)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## พิวเตอร์
พิวเตอร์ เป็นระบบปฏิบัติการอินเทอร์เน็ตขั้นสูงแบบโอเพ่นซอร์สที่ออกแบบมาให้มีฟีเจอร์ครบถ้วน ความเร็วสูง และมีความสามารถที่จะขยายได้สูง. พิวเตอร์ สามารถใช้ได้เป็น:
- คลาวด์ส่วนตัว เพื่อเก็บไฟล์, แอพพลิเคชัน, และเกมทั้งหมดของคุณในที่เดียวที่ปลอดภัยและสามารถเข้าถึงได้ทุกที่ทุกเวลา
- แพลตฟอร์มสำหรับการสร้างและเผยแพร่เว็บไซต์, เว็บแอปพลิเคชัน, และเกม
- ทางเลือกอีกหนึ่งทางที่สามารถใช้แทน Dropbox, Google Drive, OneDrive ฯลฯ โดยที่มีอินเทอร์เฟซใหม่และฟีเจอร์ที่ทรงพลัง
- สภาพแวดล้อมสำหรับเดสก์ท็อประยะไกลที่ใช้กับเซิร์ฟเวอร์และสถานีทำงาน
- โครงการโอเพ่นซอร์สและชุมชนที่เป็นมิตรที่คุณสามารถเรียนรู้เกี่ยวกับการพัฒนาเว็บ, คลาวด์คอมพิวติ้ง, ระบบกระจาย, และอีกมากมาย
<br/>
## การเริ่มต้นใช้งาน
### 💻 การพัฒนาภายในเครื่อง
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
พิวเตอร์ จะถูกเปิดใช้งานที่ http://puter.localhost:4100 (หรือพอร์ตถัดไปที่ว่าง).
<br/>
### 🐳 ด็อกเกอร์
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 ด็อกเกอร์ คอมโพส
#### ลินุกซ์/แมคโอเอส
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### วินโดวส์
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
สามารถใช้งาน พิวเตอร์ ได้ในรูปแบบบริการโฮสต์ที่ [**puter.com**](https://puter.com).
<br/>
## ข้อกำหนดของระบบ
- **ระบบปฏิบัติการ:** ลินุกซ์ แมคโอเอส วินโดวส์
- **แรม:** อย่างน้อย 2GB (แนะนำ 4GB)
- **พื้นที่เก็บข้อมูล:** พื้นที่ว่าง 1GB
- **Node.js:** เวอร์ชัน 16+ (แนะนำเวอร์ชัน 22+)
- **npm:** เวอร์ชันล่าสุดที่เสถียร
<br/>
## การช่วยเหลือ
ติดต่อกับผู้ดูแลระบบและชุมชนผ่านช่องทางเหล่านี้:
- พบข้อผิดพลาดหรือขอฟีเจอร์ใหม่? กรุณา [เปิดปัญหา](https://github.com/HeyPuter/puter/issues/new/choose).
- ดิสคอร์ด: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (ทวิตเตอร์): [x.com/HeyPuter](https://x.com/HeyPuter)
- เรดดิท: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- มาสตอดอน: [mastodon.social/@puter](https://mastodon.social/@puter)
- ปัญหาด้านความปลอดภัย [[email protected]](mailto:[email protected])
- ส่งอีเมลถึงผู้ดูแลระบบได้ที่ [[email protected]](mailto:[email protected])
เรายินดีเสมอที่จะช่วยเหลือคุณกับทุกทุกคำถามที่คุณมี อย่าลังเลที่จะถาม
<br/>
## ลิขสิทธิ์
ที่เก็บข้อมูลนี้ รวมถึงเนื้อหาทั้งหมด, โครงการย่อย, โมดูล, และส่วนประกอบต่างๆ ได้รับใบอนุญาตภายใต้ [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) เว้นแต่จะมีการระบุไว้เป็นอย่างอื่นอย่างชัดเจน ไลบรารีจากบุคคลที่สามที่รวมอยู่ในที่เก็บข้อมูลนี้อาจอยู่ภายใต้ใบอนุญาตของตนเอง
<br/>
+127
View File
@@ -0,0 +1,127 @@
<h3 align="center"><img width="80" alt="Puter.com, Kişisel Bulut Bilgisayar: Tüm dosyalarınız, uygulamalarınız ve oyunlarınız her zaman her yerden erişilebilen tek bir yerde." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">İnternet İşletim Sistemi! Ücretsiz, Açık Kaynaklı ve Kendi Kendine Barındırılabilir</h3>
<p align="center">
<img alt="GitHub Depo Boyutu" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Yayınlamak" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub Lisans" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« CANLI DEMO »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter, zengin özelliklere sahip, son derece hızlı ve son derece genişletilebilir olacak şekilde tasarlanmış gelişmiş, açık kaynaklı bir internet işletim sistemidir. Puter şu şekilde kullanılabilir:
- Tüm dosyalarınızı, uygulamalarınızı ve oyunlarınızı tek bir güvenli yerde tutmak için gizlilik öncelikli bir kişisel bulut, her yerden her zaman erişilebilir.
- Web siteleri, web uygulamaları ve oyunlar oluşturmak ve yayınlamak için bir platform.
- Yeni bir arayüz ve güçlü özelliklerle Dropbox, Google Drive, OneDrive vb. uygulamalara bir alternatif.
- Sunucular ve iş istasyonları için bir uzak masaüstü ortamı.
- Web geliştirme, bulut bilişim, dağıtık sistemler ve çok daha fazlası hakkında bilgi edinmek için dost canlısı, açık kaynaklı bir proje ve topluluk!
<br/>
## Başlarken
### 💻 Yerel Geliştirme
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Bu, Puter'ı http://puter.localhost:4100 adresinde (veya bir sonraki kullanılabilir portta) başlatacaktır.
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter, [**puter.com**](https://puter.com) adresinde barındırılan bir hizmet olarak kullanılabilir.
<br/>
## Sistem Gereksinimleri
- **İşletim Sistemleri:** Linux, macOS, Windows
- **RAM:** 2GB Minimum (4GB önerilir)
- **Disk Alanı:** 1GB boş alan
- **Node.js:** Sürüm 16+ (Sürüm 22+ önerilir)
- **npm:** En son stabil sürüm
<br/>
## Destek
Bakımcılarla ve toplulukla şu kanallar aracılığıyla iletişim kurabilirsiniz:
- Hata raporu veya özellik isteği? Lütfen [yeni bir issue açın](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Güvenlik sorunları? [[email protected]](mailto:[email protected])
- Bakımcılara şu adresten e-posta gönderin [[email protected]](mailto:[email protected])
Sorularınız varsa size her zaman yardımcı olmaktan mutluluk duyarız. Sormaktan çekinmeyin!
<br/>
## Lisans
Bu depo, tüm içeriği, alt projeleri, modülleri ve bileşenleri dahil olmak üzere, aksi açıkça belirtilmedikçe [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) altında lisanslanmıştır. Bu depoda yer alan üçüncü taraf kütüphaneler kendi lisanslarına tabi olabilir.
<br/>
+125
View File
@@ -0,0 +1,125 @@
<h3 align="center"><img width="80" alt="Puter.com, The Personal Cloud Computer: Всі ваші файли, додатки та ігри в одному місці, доступні з будь-якого куточка світу в будь-який час." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Інтернет ОС! Безкоштовна, відкрита та self-hosted.</h3>
<p align="center">
<img alt="Розмір репозиторію на GitHub" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="Остання версія на GitHub" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="Ліцензія GitHub" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« Онлайн ДЕМО »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="скріншот" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter — це просунута, інтернет-ОС, з відкритим кодом, створена для того, щоб бути багатофункціональною, надзвичайно швидкою та розширюваною. Puter може використовуватися як:
- Приватний хмарний сервіс для збереження всіх ваших файлів, додатків і ігор у безпечному місці, доступному в будь-який час з будь-якого місця.
- Платформа для створення та публікації вебсайтів, вебдодатків і ігор.
- Альтернатива Dropbox, Google Drive, OneDrive і тд, з свіженьким інтерфейсом та потужними функціями.
- Віддалене робоче середовище для серверів і робочих станцій.
- Дружній, відкритий проєкт та спільнота для вивчення веброзробки, хмарних обчислень, розподілених систем і багато іншого!
<br/>
## Початок роботи
### Локальна розробка
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Це запустить Puter на http://puter.localhost:4100 (або на наступному доступному порті).
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter доступний як hosted service на [**puter.com**](https://puter.com).
<br/>
## Системні вимоги
- **Операційні Системи:** Linux, macOS, Windows
- **RAM:** 2GB мінімум (4GB рекомендовано)
- **Місце на диску:** 1GB вільного місця
- **Node.js:** Version 16+ (Version 22+ рекомендовано)
- **npm:** остання "stable" версія
<br/>
## Підтримка
Зв'язатися з розробниками та спільнотою можна через такі канали:
- Повідомити про помилку, або запит щодо нової фічі? Будь ласка, [створіть issue](https://github.com/HeyPuter/puter/issues/new/choose).
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- Питання щодо Security? [[email protected]](mailto:[email protected])
- Написати розробникам [[email protected]](mailto:[email protected])
Ми завжди готові допомогти Вам з будь-якими питаннями, що можуть виникнути. Не соромтеся ставити нам питання!
<br/>
## License
Цей репорзиторій, включаючи увесь його контент, дочірні проєкти, модулі, і компоненти, ліцензовано за [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt), якщо явно не вказано інше. Сторонні бібліотеки, включені в цей репозиторій, можуть підпадати під дію інших ліцензій.
<br/>
+121
View File
@@ -0,0 +1,121 @@
<h3 align="center"><img width="80" alt="Puter.com, ذاتی کلاؤڈ کمپیوٹر: آپ کی تمام فائلیں، ایپس، اور کھیل ایک جگہ پر، کہیں سے بھی اور کسی بھی وقت قابل رسائی۔" src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">انٹرنیٹ OS! مفت، اوپن سورس، اور خود میزبان.</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« لائیو ڈیمو »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">ڈسکورڈ</a>
·
<a href="https://reddit.com/r/puter">ریڈڈٹ</a>
·
<a href="https://twitter.com/HeyPuter">ایکس (ٹوئٹر)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="اسکرین شاٹ" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
ایک جدید، اوپن سورس انٹرنیٹ آپریٹنگ سسٹم ہے جو کہ خصوصیات سے بھرپور، بہت تیز، اور انتہائی توسیع پذیر ہے۔ Puter
: کو استعمال کیا جا سکتا ہے Puter
- ایک پرائیویسی فرسٹ ذاتی کلاؤڈ کے طور پر تاکہ آپ کی تمام فائلیں، ایپس، اور کھیل ایک محفوظ جگہ پر رکھی جا سکیں، کہیں سے بھی اور کسی بھی وقت قابل رسائی ہوں۔
- ویب سائٹس، ویب ایپس، اور کھیل بنانے اور شائع کرنے کے لئے ایک پلیٹ فارم کے طور پر۔
- وغیرہ کا متبادل، نئے انٹرفیس اور طاقتور خصوصیات کے ساتھ۔ Dropbox، Google Drive، OneDrive
- سرورز اور ورک اسٹیشنز کے لیے ایک ریموٹ ڈیسک ٹاپ ماحول کے طور پر۔
- ویب ڈویلپمنٹ، کلاؤڈ کمپیوٹنگ، تقسیم شدہ نظاموں، اور بہت کچھ سیکھنے کے لیے ایک دوستانہ، اوپن سورس پروجیکٹ اور کمیونٹی!
<br/>
## شروع کرنے کا طریقہ
### 💻 مقامی ترقی
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
یہ Puter کو http://puter.localhost:4100 (یا اگلے دستیاب پورٹ) پر لانچ کرے گا۔
<br/>
🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
🐙 Docker Compose
Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
### ☁️ Puter.com
Puter کو [**puter.com**](https://puter.com) پر میزبان سروس کے طور پر دستیاب ہے۔
<br/>
## نظام کی ضروریات
- **آپریٹنگ سسٹمز:** لینکس، macOS، ونڈوز
- **RAM:** کم از کم 2GB (4GB تجویز کردہ)
- **ڈسک کی جگہ:** 1GB خالی جگہ
- **Node.js:** ورژن 16+ (ورژن 22+ تجویز کردہ)
- **npm:** تازہ ترین مستحکم ورژن
<br/>
## سپورٹ
منتظمین اور کمیونٹی سے جڑنے کے لیے یہ چینلز استعمال کریں:
- بگ رپورٹ یا فیچر درخواست؟ براہ کرم [ایک مسئلہ کھولیں](https://github.com/HeyPuter/puter/issues/new/choose).
- ڈسکورڈ: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- ایکس (ٹوئٹر): [x.com/HeyPuter](https://x.com/HeyPuter)
- ریڈڈٹ: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- ماسٹڈون: [mastodon.social/@puter](https://mastodon.social/@puter)
- سیکیورٹی کے مسائل؟ [[email protected]](mailto:[email protected])
- منتظمین کو ای میل کریں [[email protected]](mailto:[email protected])
ہم ہمیشہ آپ کی مدد کے لیے خوش ہیں۔ سوالات پوچھنے میں ہچکچاہٹ نہ کریں
!
<br/>
## لائسنس
اس ریپوزٹری، بشمول اس کے تمام مواد، ذیلی پروجیکٹس، ماڈیولز، اور کمپوننٹس، کو [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) کے تحت لائسنس کیا گیا ہے جب تک کہ واضح طور پر کہیں اور نہ کہا گیا ہو۔ اس ریپوزٹری میں شامل تھرڈ پارٹی لائبریریاں اپنی لائسنس کے تابع ہو سکتی ہیں۔
<br/>
+125
View File
@@ -0,0 +1,125 @@
<h3 align="center"><img width="80" alt="Puter.com, Máy Tính Đám Mây Cá Nhân: Tất cả các tệp, ứng dụng, và trò chơi của bạn ở một nơi, có thể truy cập từ bất cứ đâu vào bất kỳ lúc nào." src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">Hệ điều hành Internet! Miễn phí, Mã nguồn mở và Có thể tự lưu trữ.</h3>
<p align="center">
<img alt="Kích thước repo GitHub" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="Phiên bản phát hành GitHub" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=Phi%C3%AAn%20b%E1%BA%A3n%20ph%C3%A1t%20h%C3%A0nh%20GitHub"> <img alt="Giấy phép GitHub" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« DEMO TRỰC TIẾP »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="chụp màn hình" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter là một hệ điều hành internet tiên tiến, mã nguồn mở được thiết kế để có nhiều tính năng, tốc độ vượt trội và khả năng mở rộng cao. Puter có thể được sử dụng như:
- Một đám mây cá nhân ưu tiên quyền riêng tư để lưu trữ tất cả các tệp, ứng dụng và trò chơi của bạn ở một nơi an toàn, có thể truy cập từ bất cứ đâu, bất cứ lúc nào.
- Một nền tảng để xây dựng và xuất bản các trang web, ứng dụng web và trò chơi.
- Một sự thay thế cho Dropbox, Google Drive, OneDrive, v.v. với giao diện mới mẻ và nhiều tính năng mạnh mẽ.
- Một môi trường máy tính từ xa cho các máy chủ và máy trạm.
- Một dự án thân thiện, mã nguồn mở và cộng đồng để học hỏi về phát triển web, điện toán đám mây, hệ thống phân tán và nhiều hơn nữa!
<br/>
## Bắt Đầu
## 💻 Phát Triển Cục Bộ
```bash
Copy code
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
Điều này sẽ khởi chạy Puter tại http://puter.localhost:4100 (hoặc cổng kế tiếp có sẵn).
<br/>
### 🐳 Docker
```bash
Copy code
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
## 🐙 Docker Compose
## Linux/macOS
``` bash
Copy code
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
## Windows
```powershell
Copy code
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
## ☁️ Puter.com
Puter có sẵn dưới dạng dịch vụ lưu trữ tại [**puter.com**](https://puter.com).
<br/>
## Yêu Cầu Hệ Thống
- **Hệ Điều Hành:** Linux, macOS, Windows
- **RAM:** Tối thiểu 2GB (Khuyến nghị 4GB)
- **Dung Lượng Ổ Cứng:** Còn trống 1GB
- **Node.js:** Phiên bản 16+ (Khuyến nghị phiên bản 22+)
- **npm:** Phiên bản ổn định mới nhất
<br/>
## Hỗ Trợ
Kết nối với các nhà bảo trì và cộng đồng thông qua các kênh sau:
- Báo cáo lỗi hoặc yêu cầu tính năng? Vui lòng mở một vấn đề.
- Discord: discord.com/invite/PQcx7Teh8u
- X (Twitter): x.com/HeyPuter
- Reddit: reddit.com/r/puter/
- Mastodon: mastodon.social/@puter
- Vấn đề bảo mật? security@puter.com
- Email các nhà bảo trì tại hi@puter.com
Chúng tôi luôn sẵn sàng giúp đỡ bạn với bất kỳ câu hỏi nào bạn có. Đừng ngần ngại hỏi!
<br/>
## Giấy Phép
Kho lưu trữ này, bao gồm tất cả nội dung, dự án con, mô-đun và thành phần của nó, được cấp phép theo [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt), trừ khi được tuyên bố rõ ràng khác. Các thư viện của bên thứ ba được bao gồm trong kho lưu trữ này có thể phải tuân theo các giấy phép riêng của chúng.
<br/>
+138
View File
@@ -0,0 +1,138 @@
<h3 align="center"><img width="80" alt="Puter.com,个人云计算机:所有文件、应用程序和游戏在一个地方,随时随地可访问。" src="https://assets.puter.site/puter-logo.png"></h3>
<h3 align="center">互联网操作系统!免费、开源且可自行托管。</h3>
<p align="center">
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/HeyPuter/puter"> <img alt="GitHub Release" src="https://img.shields.io/github/v/release/HeyPuter/puter?label=latest%20version"> <img alt="GitHub License" src="https://img.shields.io/github/license/HeyPuter/puter">
</p>
<p align="center">
<a href="https://puter.com/"><strong>« 在线演示 »</strong></a>
<br />
<br />
<a href="https://puter.com">Puter.com</a>
·
<a href="https://docs.puter.com" target="_blank">SDK</a>
·
<a href="https://discord.com/invite/PQcx7Teh8u">Discord</a>
·
<a href="https://reddit.com/r/puter">Reddit</a>
·
<a href="https://twitter.com/HeyPuter">X (Twitter)</a>
</p>
<h3 align="center"><img width="800" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>
<br/>
## Puter
Puter 是一个先进的开源互联网操作系统,设计为功能丰富、速度极快且高度可扩展。Puter 可用作:
- 一个以隐私为优先的个人云,将所有文件、应用程序和游戏保存在一个安全的地方,随时随地可访问。
- 构建和发布网站、Web 应用程序和游戏的平台。
- Dropbox、Google Drive、OneDrive 等的替代品,具有全新的界面和强大的功能。
- 服务器和工作站的远程桌面环境。
- 一个友好的开源项目和社区,学习 Web 开发、云计算、分布式系统等更多内容!
<br/>
## 入门指南
### 💻 本地开发
```bash
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
```
这将会在 http://puter.localhost:4100(或下一个可用端口)启动 Puter。
<br/>
### 🐳 Docker
```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```
<br/>
### 🐙 Docker Compose
#### Linux/macOS
```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```
<br/>
#### Windows
```powershell
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
```
<br/>
## 宝塔面板Docker一键部署(推荐)
1. 安装宝塔面板9.2.0及以上版本,前往 [宝塔面板](https://www.bt.cn/new/download.html?r=dk_puter) 官网,选择正式版的脚本下载安装
2. 安装后登录宝塔面板,在左侧菜单栏中点击 `Docker`,首次进入会提示安装`Docker`服务,点击立即安装,按提示完成安装
3. 安装完成后在应用商店中搜索`puter`,点击安装,配置域名等基本信息即可完成安装
### ☁️ Puter.com
Puter 可以作为托管服务使用,访问 [**puter.com**](https://puter.com)。
<br/>
## 系统要求
- **操作系统:** Linux, macOS, Windows
- **内存:** 最低 2GB(推荐 4GB)
- **磁盘空间:** 1GB 可用空间
- **Node.js:** 版本 16+(推荐 22+)
- **npm:** 最新稳定版本
<br/>
## 支持
通过以下渠道与维护者和社区联系:
- 有 Bug 报告或功能请求?请 [提交问题](https://github.com/HeyPuter/puter/issues/new/choose)。
- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u)
- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter)
- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/)
- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter)
- 安全问题?请联系 [[email protected]](mailto:[email protected])
- 电子邮件维护者 [[email protected]](mailto:[email protected])
我们随时乐意帮助您解答任何问题,欢迎随时联系!
<br/>
## 许可证
本仓库,包括其所有内容、子项目、模块和组件,除非另有明确说明,否则均遵循 [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) 许可证。 本仓库中包含的第三方库可能受其各自的许可证约束。
<br/>
+136
View File
@@ -0,0 +1,136 @@
### Problem
When sending metadata along with arbitrary JSON objects,
a collision of property names may occur. For example, the
driver system can't place a "type" property on an arbitrary
response coming from a driver because that might also be
the name of a property in the response.
#### Example:
```json
{
"type": "api:thing",
"version": "v1.0.0",
"some": "info"
}
```
#### Awful Solution
Reserved words. Drivers need to know their response can't have
keys like `type` or `version`. If we'd like to add more meta
keys in the future we need to verify that no existing drivers
use the new key we'd like to reserve. If we have have such features
as user-submitted drivers this will be impossibe.
A `meta` key as a single reserved word could work, which is one
of the solutions discussed below.
#### Obvious Solution:
The obvious solution is to return an object with a
`head` property and a `body` propery:
```json
{
"head": {
"type": "api:thing",
"version": "v1.0.0"
},
"body": {
"some": "info"
}
}
```
I don't mind this solution. I've come up with some alternatives though,
because this solution has a couple drawbacks:
- it looks a little verbose
- it's not backwards-compatible with arbitrary JSON-object responses
## Solutions
### Dollar-Sign Convention
- Objects have two classes of keys:
- "meta" keys begin with "$"
- other keys must validate against the
usual identifier rules: `/[A-Za-z_][A-Za-z0-9_]*/`
- The meta key `$` indicates the schema or class of
the object.
- Example:
```json
{
"$": "api:thing",
"$version": "v1.0.0",
"some": "info"
}
```
- what sucks about it:
- `$` might be surprising or confusing
- response is a subset of valid JSON keys
(those not including `$`)
- what's nice about it:
- backwards-compatible with arbitrary JSON-object responses
which don't already use `$`
### Underscore Convention
- Same as above, but `_` instead of `$`
```json
{
"_": "api:thing",
"_version": "v1.0.0",
"some": "info"
}
```
- what sucks about it:
- `_` might be confusing
- response is a subset of valid JSON keys
(those not including `_`)
- what's nice about it:
- `_` is conventionally used for private property names,
so this might be a little less surprising
- backwards-compatible with arbitrary JSON-object responses
which don't already use `_`
### Nesting Convention, simplified
- Similar to the "obvious solution" except
metadata fields are lifted up a level.
It's relatively inconsequential if meta keys
have reserved words compared to value keys.
```json
{
"type": "api:thing",
"version": "v1.0.0",
"value": {
"some": "info"
}
}
```
### Modified Dollar/Underscore convention
- Using `_` in this example, but instead of prefixing
meta properties they all go under one key.
```json
{
"_": {
"type": "api:thing",
"version": "v1.0.0"
},
"some": "info"
}
```
- what sucks about it:
- `_` might be confusing
- response is a subset of valid JSON keys
(those not **exactly** `_`)
- what's nice about it:
- `_` is conventionally used for private property names,
so this might be a little less surprising
- backwards-compatible with arbitrary JSON-object responses
which don't already use `_` as an exact key
- only one reserved key
+12
View File
@@ -0,0 +1,12 @@
# Micro Modules
**CoreModule** has a large number of services. Each service handles
a general concern, like "notifications", but increasing this granularity
a little put more could allow a lot more code re-use.
One specific example that comes to mind is services that provide
CRUD operations for a database table. The **EntityStoreService** can
be used for a lot of these even though right now it's specifically
used for drivers. Having a common class of service like this can also
allow quickly configuring the equivalent service for providing those
CRUD operations through an API.
+12
View File
@@ -124,6 +124,18 @@ The GUI is a single page application (SPA) and as best practice any route under
In other words, consider the routes above as "reserved" for Puter.
### Publish My Website
Right-click anywhere on the desktop to display options
From the options menu, select "New".
Then, choose "Folder".
Give the folder a name according to your preference.
After creating the folder:
Right-click on the folder.
Select the option "Publish as Website".
### Best Practices
- The `title` tags and meta tags (`<title></title>`, `<meta property="og:title"`, `<meta name="twitter:title"`, ...) should be dynamically set by the server. For example, if the URL is of an app (e.g. `https://puter.com/app/editor`) the `title` tags and meta tags should contain the app's title rather than the generic Puter title.
+85
View File
@@ -0,0 +1,85 @@
# Documentation Scratchpad
## 2024-10-08
This is place where any documentation can be written, and this documentation
may later be moved or reformatted.
I added this file because I noticed sometimes I don't write documentation
simply because I don't yet know the best place to put the documentation,
which in retrospect seems incredibly silly so instead this file should exist.
### Batch and Symlinks
All filesystem operations will eventually be available through batch requests.
Since batch requests can also handle the cases for single files, it seems silly
to support those endpoints too, so eventually most calls will be done through
`/batch`. Puter's legacy filesystem endpoints will always be supported, but a
future `api.___/fs/v2.0` urlspace for the filesystem API might not include them.
This is batch:
```javascript
await (async () => {
const endpoint = 'http://api.puter.localhost:4100/batch';
const ops = [
{
op: 'mkdir',
path: '/default_user/Desktop/some-dir',
},
{
op: 'write',
path: '/default_user/Desktop/some-file.txt',
}
];
const blob = new Blob(["12345678"], { type: 'text/plain' });
const formData = new FormData();
for ( const op of ops ) {
formData.append('operation', JSON.stringify(op));
}
formData.append('fileinfo', JSON.stringify({
name: 'file.txt',
size: 8,
mime: 'text/plain',
}));
formData.append('file', blob, 'hello.txt');
const response = await fetch(endpoint, {
method: 'POST',
headers: { 'Authorization': `Bearer ${puter.authToken}` },
body: formData
});
return await response.json();
})();
```
Symlinks are also created via `/batch`
```javascript
await (async () => {
const endpoint = 'http://api.puter.localhost:4100/batch';
const ops = [
{
op: 'symlink',
path: '~/Desktop',
name: 'link',
target: '/bb/Desktop/some'
},
];
const formData = new FormData();
for ( const op of ops ) {
formData.append('operation', JSON.stringify(op));
}
const response = await fetch(endpoint, {
method: 'POST',
headers: { 'Authorization': `Bearer ${puter.authToken}` },
body: formData
});
return await response.json();
})();
```
+4 -4
View File
@@ -1,4 +1,4 @@
# Configurating Domains for Self-Hosted Puter
# Configuring Domains for Self-Hosted Puter
## Local Network Configuration
@@ -51,7 +51,7 @@ Setting up a local DNS server on your network allows for flexible and scalable d
- **Pi-hole**: Acts as both an ad-blocker and a DNS server. Ideal for easy setup and maintenance.
- **BIND9**: Offers comprehensive DNS server capabilities for complex setups.
- **Dnsmasq**: Lightweight and suitable for smaller networks or those new to running a DNS server.
- **dnsmasq**: Lightweight and suitable for smaller networks or those new to running a DNS server.
**contributors note:** feel free to add any software you're aware of
which might help with this to the list. Also, feel free to add instructions here for specific software; our goal is for Puter to be easy to setup with tools you're already familiar with.
@@ -60,7 +60,7 @@ which might help with this to the list. Also, feel free to add instructions here
1. Choose and install DNS server software on a device within your network.
2. Configure the DNS server to resolve `puter.local` and `api.puter.local` to the IP address of your Puter hosting device.
3. Update your router’s DHCP settings to distribute the DNS server's IP address to all devices on the network.
3. Update your router's DHCP settings to distribute the DNS server's IP address to all devices on the network.
By setting up a local DNS server, you gain the most flexibility and control over your network's domain name resolution, ensuring that all devices can access Puter and its API without manual configuration.
@@ -68,5 +68,5 @@ By setting up a local DNS server, you gain the most flexibility and control over
Please note the self-hosting feature is still in alpha and a public production
deployment is not recommended at this time. However, if you wish to host
publically you can do so following the same steps you normally would to configure
publicly you can do so following the same steps you normally would to configure
a domain name and ensuring the `api` subdomain points to the server as well.
+54
View File
@@ -0,0 +1,54 @@
# Self-Hosting Puter
> [!WARNING]
> The self-hosted version of Puter is currently in alpha stage and should not be used in production yet. It is under active development and may contain bugs, other issues. Please exercise caution and use it for testing and evaluation purposes only.
### Self-Hosting Differences
Currently, the self-hosted version of Puter is different in a few ways from [Puter.com](https://puter.com):
- There is no built-in way to access apps from puter.com (see below)
- Several "core" apps are missing, such as **Code** or **Draw**
- Some assets are different
Work is ongoing to improve the **App Center** and make it available on self-hosted.
Until then, it is still possible to add apps using the **Dev Center** app.
<br/>
## Configuration
Running the server will generate a configuration file in one of these locations:
- `config/config.json` when [Using Docker](#using-docker)
- `volatile/config/config.json` in [Local Development](#local-development)
- `/etc/puter/config.json` on a server (or within a Docker container)
### Domain Name
To access Puter on your device, you can simply go to the address printed in
the server console (usually `puter.localhost:4100`).
To access Puter from another device, a domain name must be configured, as well as
an `api` subdomain. For example, `example.local` might be the domain name pointing
to the IP address of the server running puter, and `api.example.com` must point to
this address as well. This domain must be specified in the configuration file
(usually `volatile/config/config.json`) as well.
See [domain configuration](./domains.md) for more information.
### Configure the Port
- You can specify a custom port by setting `http_port` to a desired value
- If you're using a reverse-proxy such as nginx or cloudflare, you should
also set `pub_port` to the public (external) port (usually `443`)
- If you have HTTPS enabled on your reverse-proxy, ensure that
`protocol` in config.json is set accordingly
### Default User
By default, Puter will create a user called `default_user`.
This user will have a randomly generated password, which will be printed
in the development console.
A warning will persist in the dev console until this user's
password is changed. Please login to this user and change the password as
your first step.
<br/>
+31
View File
@@ -0,0 +1,31 @@
# Testing with Email
Testing anything involving email is really simple using [mailhog](https://github.com/mailhog/MailHog)
### Step 1: Configure email service
In your `config.json` for Puter (`volatile/config/config.json` usually, `/var/puter/config.json` in containers),
add this entry to the `"services`" map:
```javascript
"services": {
// ... there are probably other service configs
"email": {
"host": "localhost",
"port": 1025
}
}
```
### Step 2: Install and run mailhog
Follow the instructions on [MailHog](https://github.com/mailhog/MailHog)'s
repository, or install through your distro's package manager.
Run the command: `mailhog`.
You should now have an inbox at [http://127.0.0.1:8025](http://127.0.0.1:8025).
Every email that Puter sends will show up on this page.
+9
View File
@@ -0,0 +1,9 @@
# Uncategorized Documentation
Any document in this directory may be moved in the future to
a more suitable location. This is a good place to put any
documentation that needs to be written when it's unclear what
the best place for it is. This is to avoid situations where
documentation _doesn't_ get written simply because it's not clear
where it belongs (something which the author of this very document
has been guilty of at times).
+46
View File
@@ -0,0 +1,46 @@
# Notes about ES6 Class Syntax
## Document Meta
> **backend focus:** This documentation is more relevant to
> Puter's backend than frontend, but is placed here because
> it could apply to other areas in the future.
## Expressions as Methods
One important shortcoming in the ES6 class syntax to be aware of
is that it discourages the use of expressions as methods.
For example:
```javascript
class ExampleClass extends SomeBase {
intuitive_method_definition () {}
constructor () {
this.less_intuitive = some_expr();
}
}
```
Even if it is known that the return type of `some_expr` is a function,
it is still unclear whether it's being used as a callback or
as a method without other context in the code, since this is
how we typically assign instance members rather than methods.
We solve this in Puter's backend using a **trait** called
[AssignableMethodsTrait](../../packages/backend/src/traits/AssignableMethodsTrait.js)
which allows a static member called `METHODS` to contain
method definitions.
### Uses for Expressions as Methods
#### Method Composition
Method Composition is the act of composing methods from other
constituents. For example,
[Sequence](../../packages/backend/src/codex/Sequence.js)
allows composing a method from smaller functions, allowing
easier definition of "in-betwewen-each" behaviors and ways
to track which values from the arguments are actually read
during a particular call.
+66
View File
@@ -0,0 +1,66 @@
# Puter Mods
## What is a Puter Mod?
Currently, the definition of a Puter mod is:
> A [Module](../../packages/backend/doc/contributors/modules.md)
> which is exported by a package directory which itself exists
> within a directory specified in the `mod_directories` array
> in `config.json`.
## Enabling Puter Mods
### Step 1: Update Configuration
First update the configuration (usually at `./volatile/config.json`
or `/var/puter/config.json`) to specify mod directories.
```json
{
"config_name": "example config",
"mod_directories": [
"{source}/mods/mods_enabled"
]
// ... other config options
}
```
The first path you'll want to add is
`"{source}/mods/mods_enabled"`
which adds all the mods included in Puter's official repository.
You don't need to change `{source}` unless your entry javascript
file is in a different location than the default.
If you want to enable all the mods, you can change the path above
to `mods_available` instead and skip step 2 below.
### Step 2: Select Mods
To enable a Puter mod, create a symbolic link (AKA symlink) in
`mods/mods_enabled`, pointing to
a directory in `mods/mods_available`. This follows the same convention
as managing sites/mods in Apache or Nginx servers.
For example to enable KDMOD (which you can read as "Kernel Dev" mod,
or "the mod that GitHub user KernelDeimos created to help with testing")
you would run this command:
```sh
ln -rs ./mods/mods_available/kdmod ./mods/mods_enabled/
```
This will create a symlink at `./mods/mods_enabled/kdmod` pointing
to the directory `./mods/mods_available/kdmod`.
> **note:** here are some helpful tips for the `ln` command:
> - You can remember `ln`'s first argument is the unaffected
> source file by remembering `cp` and `mv` are the same in
> this way.
> - If you don't add `-s` you get a hard link. You will rarely
> find yourself needing to do that.
> - The `-r` flag allows you to write both paths relative to
> the directory from which you are calling the command, which
> is sometimes more intuitive.
+139
View File
@@ -0,0 +1,139 @@
import js from "@eslint/js";
import globals from "globals";
export default [
js.configs.recommended,
{
// Global ignores
ignores: [
"**/*.min.js",
"**/src/lib/**",
"**/dist/",
"src/backend/src/public/assets/**",
"incubator/**"
],
},
{
// Top-level and tools use Node
files: [
"tools/**/*.js",
],
languageOptions: {
globals: {
...globals.node,
}
}
},
{
// Back end
files: [
"src/backend/**/*.js",
"mods/**/*.js",
"dev-server.js",
"utils.js",
],
languageOptions: {
globals: {
...globals.node,
"kv": true,
"def": true,
"use": true,
"ll":true,
}
}
},
{
// Front end
files: [
"src/**/*.js",
],
ignores: [
"src/backend/**/*.js",
],
languageOptions: {
globals: {
...globals.browser,
...globals.commonjs,
// Weird false positives
"Buffer": true,
// Puter Common
"puter": true,
"i18n": true,
"html_encode": true,
"html_decode": true,
"isMobile": true,
// Class Registry
"logger": true,
"def": true,
"use": true,
// Libraries
"saveAs": true, // FileSaver
"iro": true, // iro.js color picker
"$": true, // jQuery
"jQuery": true, // jQuery
"fflate": true, // fflate
"_": true, // lodash
"QRCode": true, // qrcode
"io": true, // socket.io
"timeago": true, // timeago
"SelectionArea": true, // viselect
// Puter GUI Globals
"set_menu_item_prop": true,
"determine_active_container_parent": true,
"privacy_aware_path": true,
"api_origin": true,
"auth_token": true,
"logout": true,
"is_email": true,
"select_ctxmenu_item": true,
}
}
},
{
// Mods
// NOTE: Mods have backend and frontend parts, so this just includes the globals for both.
files: [
"mods/**/*.js",
],
languageOptions: {
globals: {
...globals.node,
"use": true,
"window": true,
"puter": true,
}
}
},
{
// Tests
files: [
"**/test/**/*.js",
],
languageOptions: {
globals: {
...globals.mocha,
}
}
},
{
// Phoenix
files: [
"src/phoenix/**/*.js",
],
languageOptions: {
globals: {
...globals.node,
}
}
},
{
// Global rule settings
rules: {
"no-prototype-builtins": "off", // Complains about any use of hasOwnProperty()
"no-unused-vars": "off", // Temporary, we just have a lot of these
"no-debugger": "warn",
"no-async-promise-executor": "off", // We do this quite often and it's fine
}
},
];
+29
View File
@@ -0,0 +1,29 @@
# Parsing Javascript and Generating it Back
## What Purpose?
This would be really useful for refactoring tools. I also want
automatic comments to be placed when certain features are used,
such as the [Sequence](../../src/backend/src/codex/Sequence.js)
class, since its usefulness won't be immediately apparent where
it appears in the source code.
I turns out the state of affairs with respect to generating a
CST for javascript... [kind of sucks](https://github.com/benjamn/recast/issues/1412).
I hope that further discussion on the issue I linked renders the
previous statement ironic.
## So, What Next?
The options I see are:
1. Add support to recast to make use of @babel/parser tokens when
the `tokens: true` option is set.
2. Add a format-preserving outputter to @babel/outputter.
[this is being worked on](https://github.com/babel/rfcs/pull/15)
3. Wait for someone else to do either of the previous two things.
4. Write a CST parser for javascript.
I'm going to start with option #3. It's very disappointing that
I don't have time to do #4, because I don't very much like solutions
#1 and #2; I like my CSTs to be more cohesive - a pyramid of meaning -
rather than lexer output dumped at the end of an AST.
@@ -0,0 +1,20 @@
{
"name": "js-parse-and-output",
"version": "1.0.0",
"description": "",
"main": "test.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "AGPL-3.0-only",
"dependencies": {
"@babel/generator": "^7.24.7",
"@babel/parser": "^7.24.7",
"acorn": "^8.12.1",
"acorn-static-class-features": "^1.0.0",
"escodegen": "^2.1.0",
"recast": "^0.23.9"
}
}
Loaded 100 of 1732 files, more files were not shown because too many files have changed in this diff. Show more