`;
@@ -1066,10 +1119,7 @@ function generate_app_card(app) {
h += ``;
h += ``;
- // // Open App
- // h += ``;
- // // Settings
- // h += ``;
+
// "Approved for incentive program"
if (app.approved_for_incentive_program)
h += `.
+ */
+import express from "express";
+import { generateDevHtml, build } from "./utils.js";
+import { argv } from 'node:process';
+import chalk from 'chalk';
+import dotenv from 'dotenv';
+import path_ from 'path';
+dotenv.config();
+
+const app = express();
+let port = process.env.PORT ?? 4000; // Starting port
+const maxAttempts = 10; // Maximum number of ports to try
+const env = argv[2] ?? "dev";
+
+const startServer = (attempt, useAnyFreePort = false) => {
+ if (attempt > maxAttempts) {
+ useAnyFreePort = true; // Use any port that is free
+ }
+
+ const server = app.listen(useAnyFreePort ? 0 : port, () => {
+ console.log("\n-----------------------------------------------------------\n");
+ console.log(`Puter is now live at: `, chalk.underline.blue(`http://localhost:${server.address().port}`));
+ console.log("\n-----------------------------------------------------------\n");
+ }).on('error', (err) => {
+ if (err.code === 'EADDRINUSE') { // Check if the error is because the port is already in use
+ console.error(chalk.red(`ERROR: Port ${port} is already in use. Trying next port...`));
+ port++; // Increment the port number
+ startServer(attempt + 1); // Try the next port
+ }
+ });
+};
+
+// Start the server with the first attempt
+startServer(1);
+
+// build the GUI
+build();
+
+app.get(["/", "/app/*", "/action/*"], (req, res) => {
+ res.send(generateDevHtml({
+ env: env,
+ api_origin: "https://api.puter.com",
+ title: "Puter",
+ max_item_name_length: 150,
+ require_email_verification_to_publish_website: false,
+ short_description: `Puter is a privacy-first personal cloud that houses all your files, apps, and games in one private and secure place, accessible from anywhere at any time.`,
+ }));
+})
+app.use(express.static('./'));
+
+if(env === "prod"){
+ // make sure to serve the ./dist/ folder maps to the root of the website
+ app.use(express.static('./src/gui/dist/'));
+}
+
+if(env === "dev"){
+ app.use(express.static('./src/gui/src/'));
+}
+
+export { app };
diff --git a/src/gui/src/UI/Components/ActionCard.js b/src/gui/src/UI/Components/ActionCard.js
index 96a79d0c..dc115b2a 100644
--- a/src/gui/src/UI/Components/ActionCard.js
+++ b/src/gui/src/UI/Components/ActionCard.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
export default def(class ActionCard extends Component {
diff --git a/src/gui/src/UI/Components/Button.js b/src/gui/src/UI/Components/Button.js
index 3cb306b3..bd72d05e 100644
--- a/src/gui/src/UI/Components/Button.js
+++ b/src/gui/src/UI/Components/Button.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
export default def(class Button extends Component {
diff --git a/src/gui/src/UI/Components/CodeEntryView.js b/src/gui/src/UI/Components/CodeEntryView.js
index b3e71858..53429607 100644
--- a/src/gui/src/UI/Components/CodeEntryView.js
+++ b/src/gui/src/UI/Components/CodeEntryView.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
export default def(class CodeEntryView extends Component {
diff --git a/src/gui/src/UI/Components/ConfirmationsView.js b/src/gui/src/UI/Components/ConfirmationsView.js
index 17319b5b..b94a1fd2 100644
--- a/src/gui/src/UI/Components/ConfirmationsView.js
+++ b/src/gui/src/UI/Components/ConfirmationsView.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
/**
diff --git a/src/gui/src/UI/Components/Flexer.js b/src/gui/src/UI/Components/Flexer.js
index a2872131..c3404b2b 100644
--- a/src/gui/src/UI/Components/Flexer.js
+++ b/src/gui/src/UI/Components/Flexer.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
/**
diff --git a/src/gui/src/UI/Components/Frame.js b/src/gui/src/UI/Components/Frame.js
index 3b6b0098..581481f3 100644
--- a/src/gui/src/UI/Components/Frame.js
+++ b/src/gui/src/UI/Components/Frame.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
export default def(class Frame extends Component {
diff --git a/src/gui/src/UI/Components/Glyph.js b/src/gui/src/UI/Components/Glyph.js
index 268fdfde..39f6c145 100644
--- a/src/gui/src/UI/Components/Glyph.js
+++ b/src/gui/src/UI/Components/Glyph.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
import { Component } from "../../util/Component.js";
export default def(class Glyph extends Component {
diff --git a/src/gui/src/UI/Components/JustHTML.js b/src/gui/src/UI/Components/JustHTML.js
index 8c6a57b0..5fe51a12 100644
--- a/src/gui/src/UI/Components/JustHTML.js
+++ b/src/gui/src/UI/Components/JustHTML.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
/**
diff --git a/src/gui/src/UI/Components/NotifCard.js b/src/gui/src/UI/Components/NotifCard.js
index fe4fdbc0..9f71a8b4 100644
--- a/src/gui/src/UI/Components/NotifCard.js
+++ b/src/gui/src/UI/Components/NotifCard.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
export default def(class NotifCard extends Component {
diff --git a/src/gui/src/UI/Components/PasswordEntry.js b/src/gui/src/UI/Components/PasswordEntry.js
index 02fa10e2..82e59fc5 100644
--- a/src/gui/src/UI/Components/PasswordEntry.js
+++ b/src/gui/src/UI/Components/PasswordEntry.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
export default def(class PasswordEntry extends Component {
diff --git a/src/gui/src/UI/Components/QRCode.js b/src/gui/src/UI/Components/QRCode.js
index f15d83e5..e724690b 100644
--- a/src/gui/src/UI/Components/QRCode.js
+++ b/src/gui/src/UI/Components/QRCode.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
import UIComponentWindow from "../UIComponentWindow.js";
diff --git a/src/gui/src/UI/Components/RecoveryCodeEntryView.js b/src/gui/src/UI/Components/RecoveryCodeEntryView.js
index 2d029e40..e8b21182 100644
--- a/src/gui/src/UI/Components/RecoveryCodeEntryView.js
+++ b/src/gui/src/UI/Components/RecoveryCodeEntryView.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
export default def(class RecoveryCodeEntryView extends Component {
diff --git a/src/gui/src/UI/Components/RecoveryCodesView.js b/src/gui/src/UI/Components/RecoveryCodesView.js
index 09fc8c50..9e57c8a1 100644
--- a/src/gui/src/UI/Components/RecoveryCodesView.js
+++ b/src/gui/src/UI/Components/RecoveryCodesView.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
export default def(class RecoveryCodesView extends Component {
diff --git a/src/gui/src/UI/Components/Slider.js b/src/gui/src/UI/Components/Slider.js
index 13c7754a..112bfd94 100644
--- a/src/gui/src/UI/Components/Slider.js
+++ b/src/gui/src/UI/Components/Slider.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
/**
diff --git a/src/gui/src/UI/Components/Spinner.js b/src/gui/src/UI/Components/Spinner.js
index 7e00a033..89d8a270 100644
--- a/src/gui/src/UI/Components/Spinner.js
+++ b/src/gui/src/UI/Components/Spinner.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
export default def(class Spinner extends Component {
diff --git a/src/gui/src/UI/Components/StepHeading.js b/src/gui/src/UI/Components/StepHeading.js
index 8e95380a..6aa1f2a0 100644
--- a/src/gui/src/UI/Components/StepHeading.js
+++ b/src/gui/src/UI/Components/StepHeading.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
/**
diff --git a/src/gui/src/UI/Components/StepView.js b/src/gui/src/UI/Components/StepView.js
index dafa8492..cc26373e 100644
--- a/src/gui/src/UI/Components/StepView.js
+++ b/src/gui/src/UI/Components/StepView.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
export default def(class StepView extends Component {
diff --git a/src/gui/src/UI/Components/StringView.js b/src/gui/src/UI/Components/StringView.js
index 50fbf68e..82849d46 100644
--- a/src/gui/src/UI/Components/StringView.js
+++ b/src/gui/src/UI/Components/StringView.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
/**
diff --git a/src/gui/src/UI/Components/Table.js b/src/gui/src/UI/Components/Table.js
index 40b02281..f34d060f 100644
--- a/src/gui/src/UI/Components/Table.js
+++ b/src/gui/src/UI/Components/Table.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
/**
diff --git a/src/gui/src/UI/Components/TestView.js b/src/gui/src/UI/Components/TestView.js
index a412d45a..f92eacb2 100644
--- a/src/gui/src/UI/Components/TestView.js
+++ b/src/gui/src/UI/Components/TestView.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const Component = use('util.Component');
/**
diff --git a/src/gui/src/UI/Settings/UITabAccount.js b/src/gui/src/UI/Settings/UITabAccount.js
index 2d933ef8..47a027d7 100644
--- a/src/gui/src/UI/Settings/UITabAccount.js
+++ b/src/gui/src/UI/Settings/UITabAccount.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
import UIWindowChangePassword from '../UIWindowChangePassword.js';
import UIWindowChangeEmail from './UIWindowChangeEmail.js';
import UIWindowChangeUsername from '../UIWindowChangeUsername.js';
diff --git a/src/gui/src/UI/Settings/UITabClock.js b/src/gui/src/UI/Settings/UITabClock.js
index 498aa87e..e49530ee 100644
--- a/src/gui/src/UI/Settings/UITabClock.js
+++ b/src/gui/src/UI/Settings/UITabClock.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
// About
export default {
id: 'clock',
diff --git a/src/gui/src/UI/Settings/UITabLanguage.js b/src/gui/src/UI/Settings/UITabLanguage.js
index dfadec99..fbea62a2 100644
--- a/src/gui/src/UI/Settings/UITabLanguage.js
+++ b/src/gui/src/UI/Settings/UITabLanguage.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
import changeLanguage from '../../i18n/i18nChangeLanguage.js';
// About
diff --git a/src/gui/src/UI/Settings/UITabPersonalization.js b/src/gui/src/UI/Settings/UITabPersonalization.js
index c80e60ad..0c50464f 100644
--- a/src/gui/src/UI/Settings/UITabPersonalization.js
+++ b/src/gui/src/UI/Settings/UITabPersonalization.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
import UIWindowThemeDialog from '../UIWindowThemeDialog.js';
import UIWindowDesktopBGSettings from '../UIWindowDesktopBGSettings.js';
diff --git a/src/gui/src/UI/Settings/UITabSecurity.js b/src/gui/src/UI/Settings/UITabSecurity.js
index 5d6564ad..89ef589b 100644
--- a/src/gui/src/UI/Settings/UITabSecurity.js
+++ b/src/gui/src/UI/Settings/UITabSecurity.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import TeePromise from "../../util/TeePromise.js";
import Button from "../Components/Button.js";
import Flexer from "../Components/Flexer.js";
diff --git a/src/gui/src/UI/UIComponentWindow.js b/src/gui/src/UI/UIComponentWindow.js
index 3e8cf930..e98bd2dd 100644
--- a/src/gui/src/UI/UIComponentWindow.js
+++ b/src/gui/src/UI/UIComponentWindow.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import UIWindow from './UIWindow.js'
import Placeholder from "../util/Placeholder.js"
diff --git a/src/gui/src/UI/UIWindow2FASetup.js b/src/gui/src/UI/UIWindow2FASetup.js
index d574f8d3..62aad9b9 100644
--- a/src/gui/src/UI/UIWindow2FASetup.js
+++ b/src/gui/src/UI/UIWindow2FASetup.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
Plan:
Components: OneAtATimeView < ... >
diff --git a/src/gui/src/UI/UIWindowManageSessions.js b/src/gui/src/UI/UIWindowManageSessions.js
index bfa26326..9515c2ae 100644
--- a/src/gui/src/UI/UIWindowManageSessions.js
+++ b/src/gui/src/UI/UIWindowManageSessions.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import UIAlert from "./UIAlert.js";
import UIWindow from "./UIWindow.js";
diff --git a/src/gui/src/UI/UIWindowShare.js b/src/gui/src/UI/UIWindowShare.js
index cf4e7cee..9d0aca87 100644
--- a/src/gui/src/UI/UIWindowShare.js
+++ b/src/gui/src/UI/UIWindowShare.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import UIWindow from './UIWindow.js'
async function UIWindowShare(items, recipient){
diff --git a/src/gui/src/UI/UIWindowTaskManager.js b/src/gui/src/UI/UIWindowTaskManager.js
index c92756e5..47c58e22 100644
--- a/src/gui/src/UI/UIWindowTaskManager.js
+++ b/src/gui/src/UI/UIWindowTaskManager.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import { END_HARD, END_SOFT } from "../definitions.js";
import UIAlert from "./UIAlert.js";
import UIContextMenu from "./UIContextMenu.js";
diff --git a/src/gui/src/UI/UIWindowThemeDialog.js b/src/gui/src/UI/UIWindowThemeDialog.js
index 234bf34f..1226c115 100644
--- a/src/gui/src/UI/UIWindowThemeDialog.js
+++ b/src/gui/src/UI/UIWindowThemeDialog.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import UIComponentWindow from './UIComponentWindow.js';
import Button from './Components/Button.js';
import Flexer from './Components/Flexer.js';
diff --git a/src/gui/src/css/normalize.css b/src/gui/src/css/normalize.css
index 192eb9ce..bebf47bc 100644
--- a/src/gui/src/css/normalize.css
+++ b/src/gui/src/css/normalize.css
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
diff --git a/src/gui/src/css/theme.css b/src/gui/src/css/theme.css
index 3438204d..b548da56 100644
--- a/src/gui/src/css/theme.css
+++ b/src/gui/src/css/theme.css
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/* used for pseudo-stylesheet */
/*
diff --git a/src/gui/src/definitions.js b/src/gui/src/definitions.js
index cec4261d..d738066b 100644
--- a/src/gui/src/definitions.js
+++ b/src/gui/src/definitions.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
export class Service {
construct (o) {
this.$puter = {};
diff --git a/src/gui/src/helpers/truncate_filename.js b/src/gui/src/helpers/truncate_filename.js
index 2672eb0a..c8d51636 100644
--- a/src/gui/src/helpers/truncate_filename.js
+++ b/src/gui/src/helpers/truncate_filename.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
import path from '../lib/path.js';
export const DEFAULT_TRUNCATE_LENGTH = 20;
diff --git a/src/gui/src/i18n/i18n.js b/src/gui/src/i18n/i18n.js
index f0f5fd65..7b4f55cb 100644
--- a/src/gui/src/i18n/i18n.js
+++ b/src/gui/src/i18n/i18n.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
import translations from './translations/translations.js';
window.listSupportedLanguages = () => Object.keys(translations).map(lang => translations[lang]);
diff --git a/src/gui/src/i18n/i18nChangeLanguage.js b/src/gui/src/i18n/i18nChangeLanguage.js
index 44cfa335..9a10ab0a 100644
--- a/src/gui/src/i18n/i18nChangeLanguage.js
+++ b/src/gui/src/i18n/i18nChangeLanguage.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
function changeLanguage(lang) {
window.locale = lang;
window.mutate_user_preferences({
diff --git a/src/gui/src/i18n/translations/ar.js b/src/gui/src/i18n/translations/ar.js
index 97b622c2..6cf2074f 100644
--- a/src/gui/src/i18n/translations/ar.js
+++ b/src/gui/src/i18n/translations/ar.js
@@ -18,334 +18,334 @@
*/
const ar = {
- name: "العربية",
- english_name: "Arabic",
- code: "ar",
- dictionary: {
- about: "حول",
- account: "حساب",
- account_password: "التحقق من كلمة مرور الحساب",
- access_granted_to: "دخول مسموح به",
- add_existing_account: "إضافة حساب موجود",
- all_fields_required: "يجب ملء كل الفراغات",
- allow: "سماح",
- apply: "تطبيق",
- ascending: "تصاعدي",
- associated_websites: "المواقع المرتبطة",
- auto_arrange: "ترتيب تلقائي",
- background: "خلفية",
- browse: "إبحث",
- cancel: "إلغاء",
- center: "وسط",
- change_desktop_background: "تغيير خلفية المكتب",
- change_email: "تغيير البريد الإلكتروني",
- change_language: "تغيير اللغة",
- change_password: "تغيير كلمة السر",
- change_ui_colors: "تغيير ألوان واجهة المستخدم",
- change_username: "تغيير إسم المستخدم",
- close: "غلق",
- close_all_windows: "غلق كل النوافذ",
- close_all_windows_confirm: "هل أنت متأكد أنك تريد إغلاق كافة النوافذ؟",
- close_all_windows_and_log_out: "أغلق جميع النوافذ وقم بتسجيل الخروج",
- change_always_open_with: "هل تريد دائمًا فتح هذا النوع من الملفات باستخدام",
- color: "اللون",
- confirm: "تأكيد",
- confirm_2fa_setup: "لقد أضفت الرمز إلى تطبيق المصادقة الخاص بي",
- confirm_2fa_recovery: "لقد قمت بحفظ رموز الاسترداد الخاصة بي في مكان آمن",
- confirm_account_for_free_referral_storage_c2a: "تأكيد الحساب لتخزين الإحالة المجانية",
- confirm_code_generic_incorrect: "رمز غير صحيح",
- confirm_code_generic_too_many_requests: "طلبات كثيرة جدا. يرجى الانتظار بضع دقائق",
- confirm_code_generic_submit: "إرسال الرمز",
- confirm_code_generic_try_again: "حاول ثانية",
- confirm_code_generic_title: "أدخل رمز التأكيد",
- confirm_code_2fa_instruction: "أدخل الرمز المكون من 6 أرقام من تطبيق المصادقة الخاص بك",
- confirm_code_2fa_submit_btn: "إرسال",
- confirm_code_2fa_title: "أدخل رمز المصادقة الثنائية",
- confirm_delete_multiple_items: "هل أنت متأكد أنك تريد حذف هذه العناصر نهائيًا؟",
- confirm_delete_single_item: "هل تريد حذف هذا العنصر نهائيًا؟",
- confirm_open_apps_log_out: "لديك تطبيقات مفتوحة. هل أنت متأكد أنك تريد تسجيل الخروج؟",
- confirm_new_password: "تأكيد كلمة السر الجديدة",
- confirm_delete_user: "هل انت متأكد انك تريد حذف حسابك؟ سيتم حذف جميع ملفاتك وبياناتك نهائيًا. لا يمكن التراجع عن هذا الإجراء",
- confirm_delete_user_title: "حذف الحساب؟",
- confirm_session_revoke: "هل أنت متأكد أنك تريد إلغاء هذه الجلسة؟",
- confirm_your_email_address: "قم بتأكيد عنوان بريدك الإلكتروني",
- contact_us: "اتصل بنا",
- contact_us_verification_required: "يجب أن يكون لديك عنوان بريد إلكتروني تم التحقق منه لاستخدام هذا",
- contain: "يحتوي",
- continue: "أكمل",
- copy: 'أنسخ',
- copy_link: "أنسخ الرابط",
- copying: "ينسخ",
- copying_file: "%% ينسخ",
- cover: "غلاف",
+ name: "العربية",
+ english_name: "Arabic",
+ code: "ar",
+ dictionary: {
+ about: "حول",
+ account: "حساب",
+ account_password: "تحقق من كلمة مرور الحساب",
+ access_granted_to: "تم منح الوصول إلى",
+ add_existing_account: "إضافة حساب موجود",
+ all_fields_required: "جميع الحقول مطلوبة.",
+ allow: "السماح",
+ apply: "تطبيق",
+ ascending: "تصاعدي",
+ associated_websites: "المواقع المرتبطة",
+ auto_arrange: "ترتيب تلقائي",
+ background: "خلفية",
+ browse: "تصفح",
+ cancel: "إلغاء",
+ center: "مركز",
+ change_desktop_background: "تغيير خلفية سطح المكتب...",
+ change_email: "تغيير البريد الإلكتروني",
+ change_language: "تغيير اللغة",
+ change_password: "تغيير كلمة المرور",
+ change_ui_colors: "تغيير ألوان واجهة المستخدم",
+ change_username: "تغيير اسم المستخدم",
+ close: "إغلاق",
+ close_all_windows: "إغلاق جميع النوافذ",
+ close_all_windows_confirm: "هل أنت متأكد أنك تريد إغلاق جميع النوافذ؟",
+ close_all_windows_and_log_out: "إغلاق النوافذ وتسجيل الخروج",
+ change_always_open_with: "هل تريد دائمًا فتح هذا النوع من الملفات باستخدام",
+ color: "لون",
+ confirm: "تأكيد",
+ confirm_2fa_setup: "لقد أضفت الرمز إلى تطبيق المصادقة",
+ confirm_2fa_recovery: "لقد حفظت رموز الاسترداد في مكان آمن",
+ confirm_account_for_free_referral_storage_c2a: "أنشئ حسابًا وقم بتأكيد عنوان بريدك الإلكتروني للحصول على 1 جيجابايت من مساحة التخزين المجانية. سيحصل صديقك أيضًا على 1 جيجابايت من مساحة التخزين المجانية.",
+ confirm_code_generic_incorrect: "رمز غير صحيح.",
+ confirm_code_generic_too_many_requests: "طلبات كثيرة جدًا. يرجى الانتظار بضع دقائق.",
+ confirm_code_generic_submit: "إرسال الرمز",
+ confirm_code_generic_try_again: "حاول مرة أخرى",
+ confirm_code_generic_title: "أدخل رمز التأكيد",
+ confirm_code_2fa_instruction: "أدخل الرمز المكون من 6 أرقام من تطبيق المصادقة الخاص بك.",
+ confirm_code_2fa_submit_btn: "إرسال",
+ confirm_code_2fa_title: "أدخل رمز المصادقة الثنائية",
+ confirm_delete_multiple_items: "هل أنت متأكد أنك تريد حذف هذه العناصر نهائيًا؟",
+ confirm_delete_single_item: "هل تريد حذف هذا العنصر نهائيًا؟",
+ confirm_open_apps_log_out: "لديك تطبيقات مفتوحة. هل أنت متأكد أنك تريد تسجيل الخروج؟",
+ confirm_new_password: "تأكيد كلمة المرور الجديدة",
+ confirm_delete_user: "هل أنت متأكد أنك تريد حذف حسابك؟ سيتم حذف جميع ملفاتك وبياناتك نهائيًا. لا يمكن التراجع عن هذا الإجراء.",
+ confirm_delete_user_title: "حذف الحساب؟",
+ confirm_session_revoke: "هل أنت متأكد أنك تريد إلغاء هذه الجلسة؟",
+ confirm_your_email_address: "تأكيد عنوان بريدك الإلكتروني",
+ contact_us: "اتصل بنا",
+ contact_us_verification_required: "يجب أن يكون لديك عنوان بريد إلكتروني مُؤكد لاستخدام هذه الخدمة.",
+ contain: "احتواء",
+ continue: "استمر",
+ copy: "نسخ",
+ copy_link: "نسخ الرابط",
+ copying: "جارٍ النسخ",
+ copying_file: "جارٍ نسخ %%",
+ cover: "تغطية",
create_account: "إنشاء حساب",
create_free_account: "إنشاء حساب مجاني",
- create_shortcut: "انشاء اختصار",
+ create_shortcut: "إنشاء اختصار",
credits: "الاعتمادات",
- current_password: "كلمة السر الحالية",
- cut: "قطع",
+ current_password: "كلمة المرور الحالية",
+ cut: "قص",
clock: "ساعة",
- clock_visible_hide: "إخفاء - مخفي دائمًا",
- clock_visible_show: "إظهار - مرئي دائمًا",
- clock_visible_auto: "تلقائي - افتراضي، مرئي فقط في وضع ملء الشاشة",
- close_all: "إغلاق الكل",
- created: "تم إنشاؤه",
- date_modified: "تم تغيير الوقت",
+ clock_visible_hide: "إخفاء - مخفية دائمًا",
+ clock_visible_show: "إظهار - مرئية دائمًا",
+ clock_visible_auto: "تلقائي - الافتراضي، مرئي فقط في وضع الشاشة الكاملة.",
+ close_all: "إغلاق الكل",
+ created: "تم الإنشاء",
+ date_modified: "تاريخ التعديل",
default: "افتراضي",
delete: "حذف",
delete_account: "حذف الحساب",
- delete_permanently: "حذف بشكل نهائي",
- deleting_file: "%% حذف",
- deploy_as_app: "نشر كتطبيق",
- descending: "تنازلي",
- desktop: "سطح المكتب",
- desktop_background_fit: "خلفية سطح المكتب مناسبة",
- developers: "المطورين",
- dir_published_as_website: `:تم نشر الدليل كموقع ويب`,
- disable_2fa: "تعطيل المصادقة الثنائية",
- disable_2fa_confirm: "هل أنت متأكد أنك تريد تعطيل المصادقة الثنائية؟",
- disable_2fa_instructions: "أدخل كلمة المرور الخاصة بك لتعطيل المصادقة الثنائية",
- disassociate_dir: "فصل المجلد",
- documents: "المستندات",
- dont_allow: "عدم السماح",
- download: "تحميل",
- download_file: "تحميل ملف",
- downloading: "جارى التحميل",
- email: "بريد إلكتروني",
- email_change_confirmation_sent: "تم إرسال رسالة تأكيد بالبريد الإلكتروني إلى عنوان بريدك الإلكتروني الجديد. يرجى التحقق من صندوق الوارد الخاص بك واتباع التعليمات لإكمال العملية",
- email_invalid: "البريد الإلكتروني غير صالح",
- email_or_username: "البريد الإلكتروني أو اسم المستخدم",
- email_required: "يجب إدخال البريد الإلكتروني",
- empty_trash: "قم بإفراغ سلة المهملات",
- empty_trash_confirmation: "تأكيد إفراغ سلة المهملات",
- emptying_trash: "...إفراغ القمامة",
- enable_2fa: "تمكين المصادقة الثنائية",
- end_hard: "نهاية بالقوة",
- end_process_force_confirm: "هل أنت متأكد أنك تريد فرض إنهاء هذه العملية؟",
- end_soft: "نهاية لينة",
- enlarged_qr_code: "رمز الاستجابة السريعة الموسع",
- enter_password_to_confirm_delete_user: "أدخل كلمة المرور الخاصة بك لتأكيد حذف الحساب",
- error_message_is_missing: "خطأ الرسالة مفقودة",
- error_unknown_cause: "حدث خطأ غير معروف",
- error_uploading_files: "فشل تحميل الملفات",
- favorites: "المفضلة",
- feedback: "تعليق",
- feedback_c2a: "يرجى استخدام النموذج أدناه لإرسال تعليقاتك وتعليقاتك وتقارير الأخطاء إلينا",
- feedback_sent_confirmation: "أشكركم على الاتصال بنا. إذا كان لديك بريد إلكتروني مرتبط بحسابك، فسوف تتلقى ردًا منا في أقرب وقت ممكن",
- fit: "ملائم",
- folder: "مجلد",
- force_quit: "الخروج بالقوة",
- forgot_pass_c2a: "هل نسيت كلمة السر؟",
- from: "من",
- general: "عام ",
- get_a_copy_of_on_puter: `الحصول على نسخة على جهاز الكمبيوتر`,
- get_copy_link: "الحصول على رابط النسخ",
- hide_all_windows: "إخفاء كافة النوافذ ",
- home: "الرئيسة",
- html_document: "وثيقة أتش تي أم أل",
- hue: "مسحة",
- image: "صورة",
- incorrect_password: "كلمة سر خاطئة",
- invite_link: "رابط الدعوة",
- item: "عنصر",
- items_in_trash_cannot_be_renamed: "لا يمكن إعادة تسمية هذا العنصر لأنه موجود في سلة المهملات. لإعادة تسمية هذا العنصر، اسحبه أولاً خارج سلة المهملات",
- jpeg_image: "صورة jpeg",
- keep_in_taskbar: "احتفظ بها في شريط المهام",
- language: "لغة",
- license: "رخصة",
- lightness: "خفة",
- link_copied: "تم نسخ الرابط",
- loading: "تحميل",
- log_in: "تسجيل الدخول",
- log_into_another_account_anyway: "قم بتسجيل الدخول إلى حساب آخر على أي حال",
- log_out: "تسجيل خروج",
- looks_good: "تبدو جيدة!",
- manage_sessions: "إدارة الجلسات",
- menubar_style: "نمط شريط القوائم",
- menubar_style_desktop: "سطح المكتب",
- menubar_style_system: "نظام",
- menubar_style_window: "نافذة",
- modified: "معدل",
- move: "نقل",
- moving_file: "نقل %%",
- my_websites: "مواقعي الإلكترونية",
- name: 'اسم',
- name_cannot_be_empty: 'لا يمكن أن يكون الاسم فارغًا',
- name_cannot_contain_double_period: "لا يمكن أن يحتوي الاسم على نقطة مزدوجة ",
- name_cannot_contain_period: "' ' لا يمكن أن يحتوي الاسم على",
- name_cannot_contain_slash: "'/' لا يمكن أن يحتوي الاسم على",
- name_must_be_string: "يجب أن يكون الاسم سلسلة",
- name_too_long: "الاسم طويل جدًا",
- new: "جديد",
- new_email: "بريد إلكتروني جديد",
- new_folder: "ملف جديد",
- new_password: "كلمة المرور الجديدة ",
- new_username: "اسم مستخدم جديد",
- no: "لا",
- no_dir_associated_with_site: 'لا يوجد دليل مرتبط بالموقع',
- no_websites_published: "لم يتم نشر أي مواقع",
- ok: 'نعم',
- open: "فتح",
- open_in_new_tab: "فتح في علامة تبويب جديدة",
- open_in_new_window: "افتح في نافذة جديدة",
- open_with: "افتح ب",
- original_name: "الاسم الاصلي",
- original_path: "المسار الأصلي",
- oss_code_and_content: "البرامج والمحتوى مفتوح المصدر",
- password: "كلمة المرور",
- password_changed: "تم تغيير كلمة السر",
- password_recovery_rate_limit: "لقد وصلت إلى الحد الأقصى؛ يرجى الانتظار بضع دقائق. ولمنع حدوث ذلك في المستقبل، تجنب إعادة تحميل الصفحة عدة مرات",
- password_recovery_token_invalid: "استعادة كلمة المرور لم تعد صالحة",
- password_recovery_unknown_error: "حدث خطأ غير معروف. الرجاء معاودة المحاولة في وقت لاحق",
- password_required: "كلمة المرور مطلوبة",
- password_strength_error: "يجب أن تتكون كلمة المرور من 8 أحرف على الأقل وتحتوي على حرف كبير واحد وحرف صغير واحد ورقم واحد وحرف خاص واحد على الأقل",
- passwords_do_not_match: "كلمة المرور غير مطابقة",
- paste: "لصق",
- paste_into_folder: "الصق داخل الملف",
- path: "مسار",
- personalization: "الطابع الشخصي",
- pick_name_for_website: "اختيار اسم لموقع الويب",
- picture: "صورة",
- pictures: "صور",
- plural_suffix: "س",
- powered_by_puter_js: `مشغل بواسطة{{link=docs}}Puter.js{{/link}}`,
- preparing: "إعداد",
- preparing_for_upload: "التحضير للتحميل",
- print: "طبع",
- privacy: "خصوصية",
- proceed_to_login: "انتقل إلى تسجيل الدخول",
- proceed_with_account_deletion: "تابع عملية حذف الحساب",
- process_status_initializing: "تهيئة",
- process_status_running: "تشغيل",
- process_type_app: "برنامج",
- process_type_init: "أولي",
- process_type_ui: "واجهة المستخدم",
- properties: "ملكيات",
- public: "عام",
- publish: "ينشر",
- publish_as_website: "نشر كموقع على شبكة الإنترنت",
- puter_description: "Puter عبارة عن سحابة شخصية تعطي الأولوية للخصوصية للاحتفاظ بجميع ملفاتك وتطبيقاتك وألعابك في مكان واحد آمن، ويمكن الوصول إليها من أي مكان وفي أي وقت.",
- reading_file: "قراءة %%",
- recent: "مؤخرًا",
- recommended: "موصى به",
- recover_password: "إستعادة كلمة المرور",
- refer_friends_c2a: "احصل على 1 جيجابايت لكل صديق يقوم بإنشاء حساب على Outer وتأكيده. سيحصل صديقك أيضًا على 1 غيغابايت!",
- refer_friends_social_media_c2a: "احصل على 1 غيغابايت من مساحة التخزين المجانية على موقع Puter.com!",
- refresh: "أنعش",
- release_address_confirmation: "هل أنت متأكد أنك تريد تحرير هذا العنوان؟",
- remove_from_taskbar: "إزالة من شريط المهام",
- rename: "إعادة تسمية",
- repeat: "تكرار",
- replace: "إستبدال",
- replace_all: "استبدال الكل",
- resend_confirmation_code: "إعادة إرسال رمز التأكيد",
- reset_colors: "إعادة تعيين الألوان",
- restart_puter_confirm: "هل أنت متأكد أنك تريد إعادة تشغيل Puter؟",
- restore: "استرجاع",
- save: "حفظ",
- saturation: "تشبع",
- save_account: "حفظ الحساب",
- save_account_to_get_copy_link: "يرجى إنشاء حساب للمتابعة",
- save_account_to_publish: "يرجى إنشاء حساب للمتابعة",
- save_session: "حفظ جلسة",
- save_session_c2a: "قم بإنشاء حساب لحفظ جلستك الحالية وتجنب فقدان عملك",
- scan_qr_c2a: "قم بمسح الرمز أدناه لتسجيل الدخول إلى هذه الجلسة من الأجهزة الأخرى",
- scan_qr_2fa: "امسح رمز الاستجابة السريعة ضوئيًا باستخدام تطبيق المصادقة الخاص بك",
- scan_qr_generic: "قم بمسح رمز الاستجابة السريعة هذا باستخدام هاتفك أو جهاز آخر",
- search: "Search",
- seconds: "ثواني",
- security: "حماية",
- select: "إختار",
- selected: "المحدد",
- select_color: "إختر لون",
- sessions: "الجلسات",
- send: "أرسل",
- send_password_recovery_email: "إرسال بريد إلكتروني لاستعادة كلمة المرور",
- session_saved: "تم حفظ الجلسة",
- settings: "إعدادات",
- set_new_password: "تعيين كلمة مرور جديدة",
- share: "مشاركة",
- share_to: "شارك إلى",
- share_with: "شارك مع:",
- shortcut_to: "اختصار ل",
- show_all_windows: "إظهار كافة النوافذ",
- show_hidden: "أظهر المخفي",
- sign_in_with_puter: "سجل الدخول ب Puter",
- sign_up: "إشترك",
- signing_in: "تسجيل الدخول",
- size: "الحجم",
- skip: "تخطي",
- something_went_wrong: "لقد حدث خطأ ما",
- sort_by: "ترتيب حسب",
- start: "بدأ",
- status: "حالة",
- storage_usage: "استخدام التخزين",
- storage_puter_used: "يستخدمه بوتر",
- taking_longer_than_usual: "يستغرق وقتا أطول قليلا من المعتاد. انتظر من فضلك...",
- task_manager: "مدير المهام",
- taskmgr_header_name: "اسم",
- taskmgr_header_status: "حالة",
- taskmgr_header_type: "نوع",
- terms: "شروط",
- text_document: "وثيقة نصية",
- tos_fineprint: `بالنقر على "إنشاء حساب مجاني"، فإنك توافق على {{link=terms}}شروط الاستخدام{{/link}} و {{link=privacy}}حماية البيانات{{/link}}`,
- transparency: "شفافية",
- trash: "نفايات",
- two_factor: "المصادقة الثنائية",
- two_factor_disabled: "المصادقة الثنائية معطل",
- two_factor_enabled: "المصادقة الثنائية ممكّن",
- type: "اكتب",
- type_confirm_to_delete_account: "اكتب 'تأكيد' لحذف حسابك",
- ui_colors: "ألوان واجهة المستخدم",
- ui_manage_sessions: "مدير الجلسة",
- ui_revoke: "إبطال",
- undo: "الغاء",
- unlimited: "غير محدود",
- unzip: "فك الضغط",
- upload: "رفع",
- upload_here: "ارفع هنا",
- usage: "الاستخدام",
- username: "اسم المستخدم",
- username_changed: "تم تغيير اسم المستخدم",
- username_required: "اسم المستخدم مطلوب",
- versions: "الإصدارات",
- videos: "فيديوهات",
- visibility: "رؤية",
- yes: "نعم",
- yes_release_it: "نعم أطلقه",
- you_have_been_referred_to_puter_by_a_friend: "لقد تمت إحالتك إلى Puter بواسطة صديق!",
- zip: "ملف مضغوط",
- zipping_file: "ضغط %%",
+ delete_permanently: "حذف نهائي",
+ deleting_file: "جارٍ حذف %%",
+ deploy_as_app: "نشر كتطبيق",
+ descending: "تنازلي",
+ desktop: "سطح المكتب",
+ desktop_background_fit: "ملائمة",
+ developers: "المطورين",
+ dir_published_as_website: "%strong% تم نشره إلى:",
+ disable_2fa: "تعطيل المصادقة الثنائية",
+ disable_2fa_confirm: "هل أنت متأكد أنك تريد تعطيل المصادقة الثنائية؟",
+ disable_2fa_instructions: "أدخل كلمة المرور لتعطيل المصادقة الثنائية.",
+ disassociate_dir: "فصل الدليل",
+ documents: "المستندات",
+ dont_allow: "عدم السماح",
+ download: "تنزيل",
+ download_file: "تنزيل الملف",
+ downloading: "جارٍ التنزيل",
+ email: "البريد الإلكتروني",
+ email_change_confirmation_sent: "تم إرسال بريد تأكيد إلى عنوان بريدك الإلكتروني الجديد. يرجى التحقق من صندوق الوارد واتباع التعليمات لإكمال العملية.",
+ email_invalid: "البريد الإلكتروني غير صالح.",
+ email_or_username: "البريد الإلكتروني أو اسم المستخدم",
+ email_required: "البريد الإلكتروني مطلوب.",
+ empty_trash: "إفراغ سلة المهملات",
+ empty_trash_confirmation: "هل أنت متأكد أنك تريد حذف العناصر في سلة المهملات نهائيًا؟",
+ emptying_trash: "جارٍ إفراغ سلة المهملات...",
+ enable_2fa: "تمكين المصادقة الثنائية",
+ end_hard: "إنهاء صعب",
+ end_process_force_confirm: "هل أنت متأكد أنك تريد إنهاء هذه العملية بالقوة؟",
+ end_soft: "إنهاء سلس",
+ enlarged_qr_code: "رمز QR مكبر",
+ enter_password_to_confirm_delete_user: "أدخل كلمة المرور لتأكيد حذف الحساب",
+ error_message_is_missing: "رسالة الخطأ مفقودة.",
+ error_unknown_cause: "حدث خطأ غير معروف.",
+ error_uploading_files: "فشل في تحميل الملفات",
+ favorites: "المفضلة",
+ feedback: "ملاحظات",
+ feedback_c2a: "يرجى استخدام النموذج أدناه لإرسال ملاحظاتك وتعليقاتك وتقرير الأخطاء.",
+ feedback_sent_confirmation: "شكرًا لتواصلك معنا. إذا كان لديك بريد إلكتروني مرتبط بحسابك، ستتلقى ردًا منا في أقرب وقت ممكن.",
+ fit: "ملائمة",
+ folder: "مجلد",
+ force_quit: "إنهاء بالقوة",
+ forgot_pass_c2a: "هل نسيت كلمة المرور؟",
+ from: "من",
+ general: "عام",
+ get_a_copy_of_on_puter: "احصل على نسخة من '%%' على Puter.com!",
+ get_copy_link: "احصل على رابط النسخ",
+ hide_all_windows: "إخفاء جميع النوافذ",
+ home: "الصفحة الرئيسية",
+ html_document: "مستند HTML",
+ hue: "درجة اللون",
+ image: "صورة",
+ incorrect_password: "كلمة مرور غير صحيحة",
+ invite_link: "رابط الدعوة",
+ item: "عنصر",
+ items_in_trash_cannot_be_renamed: "لا يمكن إعادة تسمية هذا العنصر لأنه في سلة المهملات. لإعادة تسمية هذا العنصر، اسحبه أولاً خارج سلة المهملات.",
+ jpeg_image: "صورة JPEG",
+ keep_in_taskbar: "الاحتفاظ في شريط المهام",
+ language: "اللغة",
+ license: "رخصة",
+ lightness: "إضاءة",
+ link_copied: "تم نسخ الرابط",
+ loading: "جارٍ التحميل",
+ log_in: "تسجيل الدخول",
+ log_into_another_account_anyway: "تسجيل الدخول إلى حساب آخر على أي حال",
+ log_out: "تسجيل الخروج",
+ looks_good: "يبدو جيدًا!",
+ manage_sessions: "إدارة الجلسات",
+ menubar_style: "نمط شريط القوائم",
+ menubar_style_desktop: "سطح المكتب",
+ menubar_style_system: "النظام",
+ menubar_style_window: "النافذة",
+ modified: "تم التعديل",
+ move: "نقل",
+ moving_file: "جارٍ نقل %%",
+ my_websites: "مواقعي الإلكترونية",
+ name: "اسم",
+ name_cannot_be_empty: "الاسم لا يمكن أن يكون فارغًا.",
+ name_cannot_contain_double_period: "الاسم لا يمكن أن يكون '..'.",
+ name_cannot_contain_period: "الاسم لا يمكن أن يكون '.'.",
+ name_cannot_contain_slash: "الاسم لا يمكن أن يحتوي على '/'.",
+ name_must_be_string: "الاسم يجب أن يكون نصًا فقط.",
+ name_too_long: "الاسم لا يمكن أن يكون أطول من %% حرف.",
+ new: "جديد",
+ new_email: "البريد الإلكتروني الجديد",
+ new_folder: "مجلد جديد",
+ new_password: "كلمة المرور الجديدة",
+ new_username: "اسم المستخدم الجديد",
+ no: "لا",
+ no_dir_associated_with_site: "لا يوجد دليل مرتبط بهذا العنوان.",
+ no_websites_published: "لم تنشر أي مواقع إلكترونية بعد.",
+ ok: "موافق",
+ open: "فتح",
+ open_in_new_tab: "فتح في علامة تبويب جديدة",
+ open_in_new_window: "فتح في نافذة جديدة",
+ open_with: "فتح باستخدام",
+ original_name: "الاسم الأصلي",
+ original_path: "المسار الأصلي",
+ oss_code_and_content: "برامج ومحتوى مفتوح المصدر",
+ password: "كلمة المرور",
+ password_changed: "تم تغيير كلمة المرور.",
+ password_recovery_rate_limit: "لقد وصلت إلى الحد الأقصى؛ يرجى الانتظار بضع دقائق. لمنع حدوث ذلك في المستقبل، تجنب إعادة تحميل الصفحة كثيرًا.",
+ password_recovery_token_invalid: "رمز استعادة كلمة المرور لم يعد صالحًا.",
+ password_recovery_unknown_error: "حدث خطأ غير معروف. يرجى المحاولة مرة أخرى لاحقًا.",
+ password_required: "كلمة المرور مطلوبة.",
+ password_strength_error: "يجب أن تكون كلمة المرور بطول 8 أحرف على الأقل وتحتوي على حرف كبير واحد، حرف صغير واحد، رقم واحد، وحرف خاص واحد على الأقل.",
+ passwords_do_not_match: "`كلمة المرور الجديدة` و`تأكيد كلمة المرور الجديدة` غير متطابقتين.",
+ paste: "لصق",
+ paste_into_folder: "لصق في المجلد",
+ path: "المسار",
+ personalization: "تخصيص",
+ pick_name_for_website: "اختر اسمًا لموقعك الإلكتروني:",
+ picture: "صورة",
+ pictures: "الصور",
+ plural_suffix: "s",
+ powered_by_puter_js: "مدعوم بواسطة {{link=docs}}Puter.js{{/link}}",
+ preparing: "جارٍ التحضير...",
+ preparing_for_upload: "جارٍ التحضير للتحميل...",
+ print: "طباعة",
+ privacy: "الخصوصية",
+ proceed_to_login: "المتابعة لتسجيل الدخول",
+ proceed_with_account_deletion: "المتابعة مع حذف الحساب",
+ process_status_initializing: "جارٍ التهيئة",
+ process_status_running: "جارٍ التشغيل",
+ process_type_app: "تطبيق",
+ process_type_init: "تهيئة",
+ process_type_ui: "واجهة المستخدم",
+ properties: "الخصائص",
+ public: "عام",
+ publish: "نشر",
+ publish_as_website: "نشر كموقع إلكتروني",
+ puter_description: "Puter هو سحابة شخصية تركز على الخصوصية للحفاظ على جميع ملفاتك، تطبيقاتك، وألعابك في مكان آمن واحد، متاحة من أي مكان وفي أي وقت.",
+ reading_file: "جارٍ قراءة %strong%",
+ recent: "الأخيرة",
+ recommended: "مُوصى به",
+ recover_password: "استعادة كلمة المرور",
+ refer_friends_c2a: "احصل على 1 جيجابايت عن كل صديق ينشئ حسابًا ويؤكده على Puter. سيحصل صديقك على 1 جيجابايت أيضًا!",
+ refer_friends_social_media_c2a: "احصل على 1 جيجابايت من التخزين المجاني على Puter.com!",
+ refresh: "تحديث",
+ release_address_confirmation: "هل أنت متأكد أنك تريد تحرير هذا العنوان؟",
+ remove_from_taskbar: "إزالة من شريط المهام",
+ rename: "إعادة تسمية",
+ repeat: "تكرار",
+ replace: "استبدال",
+ replace_all: "استبدال الكل",
+ resend_confirmation_code: "إعادة إرسال رمز التأكيد",
+ reset_colors: "إعادة ضبط الألوان",
+ restart_puter_confirm: "هل أنت متأكد أنك تريد إعادة تشغيل Puter؟",
+ restore: "استعادة",
+ save: "حفظ",
+ saturation: "تشبع",
+ save_account: "حفظ الحساب",
+ save_account_to_get_copy_link: "يرجى إنشاء حساب للمتابعة.",
+ save_account_to_publish: "يرجى إنشاء حساب للمتابعة.",
+ save_session: "حفظ الجلسة",
+ save_session_c2a: "أنشئ حسابًا لحفظ جلستك الحالية وتجنب فقدان عملك.",
+ scan_qr_c2a: "امسح الرمز أدناه لتسجيل الدخول إلى هذه الجلسة من أجهزة أخرى",
+ scan_qr_2fa: "امسح رمز الاستجابة السريعة باستخدام تطبيق المصادقة الخاص بك",
+ scan_qr_generic: "امسح رمز الاستجابة السريعة هذا باستخدام هاتفك أو جهاز آخر",
+ search: "بحث",
+ seconds: "ثوانٍ",
+ security: "الأمان",
+ select: "تحديد",
+ selected: "محدد",
+ select_color: "اختر لونًا…",
+ sessions: "جلسات",
+ send: "إرسال",
+ send_password_recovery_email: "إرسال بريد استعادة كلمة المرور",
+ session_saved: "شكرًا لإنشاء حساب. تم حفظ هذه الجلسة.",
+ settings: "الإعدادات",
+ set_new_password: "تعيين كلمة مرور جديدة",
+ share: "مشاركة",
+ share_to: "مشاركة إلى",
+ share_with: "مشاركة مع:",
+ shortcut_to: "اختصار إلى",
+ show_all_windows: "عرض جميع النوافذ",
+ show_hidden: "إظهار المخفي",
+ sign_in_with_puter: "تسجيل الدخول باستخدام Puter",
+ sign_up: "تسجيل",
+ signing_in: "جارٍ تسجيل الدخول…",
+ size: "الحجم",
+ skip: "تخطي",
+ something_went_wrong: "حدث خطأ ما.",
+ sort_by: "فرز حسب",
+ start: "بدء",
+ status: "الحالة",
+ storage_usage: "استخدام التخزين",
+ storage_puter_used: "مستخدم بواسطة Puter",
+ taking_longer_than_usual: "يستغرق وقتًا أطول من المعتاد. يرجى الانتظار...",
+ task_manager: "مدير المهام",
+ taskmgr_header_name: "الاسم",
+ taskmgr_header_status: "الحالة",
+ taskmgr_header_type: "النوع",
+ terms: "الشروط",
+ text_document: "مستند نصي",
+ tos_fineprint: "بالنقر على 'إنشاء حساب مجاني' فإنك توافق على {{link=terms}}شروط الخدمة{{/link}} و{{link=privacy}}سياسة الخصوصية{{/link}} لـPuter.",
+ transparency: "الشفافية",
+ trash: "المهملات",
+ two_factor: "المصادقة الثنائية",
+ two_factor_disabled: "تم تعطيل المصادقة الثنائية",
+ two_factor_enabled: "تم تمكين المصادقة الثنائية",
+ type: "نوع",
+ type_confirm_to_delete_account: "اكتب 'تأكيد' لحذف حسابك.",
+ ui_colors: "ألوان واجهة المستخدم",
+ ui_manage_sessions: "مدير الجلسات",
+ ui_revoke: "إلغاء",
+ undo: "تراجع",
+ unlimited: "غير محدود",
+ unzip: "فك الضغط",
+ upload: "رفع",
+ upload_here: "ارفع هنا",
+ usage: "الاستخدام",
+ username: "اسم المستخدم",
+ username_changed: "تم تحديث اسم المستخدم بنجاح.",
+ username_required: "اسم المستخدم مطلوب.",
+ versions: "الإصدارات",
+ videos: "مقاطع الفيديو",
+ visibility: "الرؤية",
+ yes: "نعم",
+ yes_release_it: "نعم، أطلقه",
+ you_have_been_referred_to_puter_by_a_friend: "تم إحالتك إلى Puter بواسطة صديق!",
+ zip: "ضغط",
+ zipping_file: "جارٍ ضغط %strong%",
- // === إعداد المصادقة الثنائية ===
- setup2fa_1_step_heading: "افتح تطبيق المصادقة الخاص بك",
- setup2fa_1_instructions: `
- مكنك استخدام أي تطبيق مصادقة يدعم بروتوكول كلمة المرور المستندة إلى الوقت (TOTP).
- هناك الكثير للاختيار من بينها، ولكن إذا لم تكن متأكدًا
- Authy
- يعد خيارًا قويًا لنظامي التشغيل Android وiOS.
- `,
- setup2fa_2_step_heading: "مسح رمز الاستجابة السريعة",
- setup2fa_3_step_heading: "أدخل الرمز المكون من 6 أرقام",
- setup2fa_4_step_heading: "انسخ رموز الاسترداد الخاصة بك",
- setup2fa_4_instructions: `
- تعد رموز الاسترداد هذه هي الطريقة الوحيدة للوصول إلى حسابك إذا فقدت هاتفك أو لم تتمكن من استخدام تطبيق المصادقة الخاص بك.
- تأكد من تخزينها في مكان آمن.
- `,
- setup2fa_5_step_heading: "تأكيد إعداد المصادقة الثنائية",
- setup2fa_5_confirmation_1: "لقد قمت بحفظ رموز الاسترداد الخاصة بي في مكان آمن",
- setup2fa_5_confirmation_2: "أنا مستعد لتمكين المصادقة الثنائية",
- setup2fa_5_button: "تمكين المصادقة الثنائية",
+ // === 2FA Setup ===
+ setup2fa_1_step_heading: "افتح تطبيق المصادقة الخاص بك",
+ setup2fa_1_instructions: `
+ يمكنك استخدام أي تطبيق مصادقة يدعم بروتوكول كلمة المرور لمرة واحدة المعتمدة على الوقت (TOTP).
+ هناك العديد للاختيار من بينها، ولكن إذا كنت غير متأكد
+ Authy
+ هو خيار موثوق به لنظام Android و iOS.
+ `,
+ setup2fa_2_step_heading: "مسح رمز الاستجابة السريعة (QR code)",
+ setup2fa_3_step_heading: "أدخل الرمز المكون من 6 أرقام",
+ setup2fa_4_step_heading: "انسخ رموز الاسترداد الخاصة بك",
+ setup2fa_4_instructions: `
+ هذه رموز الاسترداد هي الطريقة الوحيدة للوصول إلى حسابك إذا فقدت هاتفك أو لم تتمكن من استخدام تطبيق المصادقة الخاص بك.
+ تأكد من حفظها في مكان آمن.
+ `,
+ setup2fa_5_step_heading: "تأكيد إعداد المصادقة الثنائية (2FA)",
+ setup2fa_5_confirmation_1: "لقد قمت بحفظ رموز الاسترداد في مكان آمن",
+ setup2fa_5_confirmation_2: "أنا جاهز لتمكين المصادقة الثنائية (2FA)",
+ setup2fa_5_button: "تمكين المصادقة الثنائية (2FA)",
- // === تسجيل دخول المصادقة الثنائية ===
- login2fa_otp_title: "دخل رمز المصادقة الثنائية",
- login2fa_otp_instructions: "أدخل الرمز المكون من 6 أرقام من تطبيق المصادقة الخاص بك",
- login2fa_recovery_title: "أدخل رمز الاسترداد",
- login2fa_recovery_instructions: "أدخل أحد رموز الاسترداد الخاصة بك للوصول إلى حسابك",
- login2fa_use_recovery_code: "استخدم رمز الاسترداد",
- login2fa_recovery_back: "عودة",
- login2fa_recovery_placeholder: "XXXXXXXX",
- }
+ // === 2FA Login ===
+ login2fa_otp_title: "أدخل رمز المصادقة الثنائية (2FA)",
+ login2fa_otp_instructions: "أدخل الرمز المكون من 6 أرقام من تطبيق المصادقة الخاص بك.",
+ login2fa_recovery_title: "أدخل رمز الاسترداد",
+ login2fa_recovery_instructions: "أدخل أحد رموز الاسترداد الخاصة بك للوصول إلى حسابك.",
+ login2fa_use_recovery_code: "استخدام رمز الاسترداد",
+ login2fa_recovery_back: "الرجوع",
+ login2fa_recovery_placeholder: "XXXXXXXX"
+ }
};
export default ar;
\ No newline at end of file
diff --git a/src/gui/src/i18n/translations/bn.js b/src/gui/src/i18n/translations/bn.js
index c90ebb55..f21028ac 100644
--- a/src/gui/src/i18n/translations/bn.js
+++ b/src/gui/src/i18n/translations/bn.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const bn = {
name: "বাংলা",
english_name: "Bengali",
diff --git a/src/gui/src/i18n/translations/br.js b/src/gui/src/i18n/translations/br.js
index 6959b0cf..e46761a8 100644
--- a/src/gui/src/i18n/translations/br.js
+++ b/src/gui/src/i18n/translations/br.js
@@ -16,207 +16,337 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
+
const br = {
- name: "Português (Brasil)",
- english_name: "Portuguese (Brazil)",
- code: "br",
- dictionary: {
- about: "Sobre",
- access_granted_to: "Acesso garantido a",
+ name: "Português (Brasil)",
+ english_name: "Portuguese (Brazil)",
+ code: "br",
+ dictionary: {
+ about: "Sobre",
account: "Conta",
- add_existing_account: "Incluir Conta Existente",
+ account_password: "Verificar Senha da Conta",
+ access_granted_to: "Acesso Concedido Para",
+ add_existing_account: "Adicionar Conta Existente",
all_fields_required: 'Todos os campos são obrigatórios.',
+ allow: 'Permitir',
apply: "Aplicar",
ascending: 'Ascendente',
- auto_arrange: 'Auto Organizar',
- background: "Tela de Fundo",
- browse: "Pesquisar",
+ associated_websites: "Sites Associados",
+ auto_arrange: 'Organizar Automaticamente',
+ background: "Plano de Fundo",
+ browse: "Navegar",
cancel: 'Cancelar',
- center: 'Centrar',
- change_always_open_with: "Quer sempre abrir arquivos deste tipo com",
- change_desktop_background: 'Alterar Tela de Fundo',
- change_language: "Alterar a Língua",
- change_password: "Alterar a Senha",
- change_ui_colors: "Alterar Cores da Interface",
- change_username: "Alterar Nome de Utilizador",
- clock: "Relógio",
- close_all_windows_and_log_out: 'Fechar Janelas e Sair',
+ center: 'Centralizar',
+ change_desktop_background: 'Mudar plano de fundo da área de trabalho…',
+ change_email: "Mudar Email",
+ change_language: "Mudar Idioma",
+ change_password: "Mudar Senha",
+ change_ui_colors: "Mudar Cores da Interface",
+ change_username: "Mudar Nome de Usuário",
+ close: 'Fechar',
close_all_windows: "Fechar Todas as Janelas",
+ close_all_windows_confirm: "Tem certeza de que deseja fechar todas as janelas?",
+ close_all_windows_and_log_out: 'Fechar Janelas e Sair',
+ change_always_open_with: "Deseja sempre abrir este tipo de arquivo com",
color: 'Cor',
- confirm_account_for_free_referral_storage_c2a: 'Crie uma conta e confirme o endereço do email para receber 1 GB de armazenamento gratuito. Seu amigo receberá 1 GB de armazenamento gratuito também.',
- confirm_delete_multiple_items: 'Quer apagar estes itens permanentemente?',
- confirm_delete_single_item: 'Quer apagar este item permanentemente?',
- confirm_delete_user: "Você quer excluir sua conta? Todos os arquivos e informações poderão ser destruídas permanentemente. Esta operação não pode ser desfeita.",
- confirm_new_password: "Confirme sua Nova Senha",
- confirm_open_apps_log_out: 'Você possui aplicações abertas. Quer mesmo fechar sua sessão?',
- contact_us: "Contate-nos",
- contain: 'Contém',
- continue: "Continua",
- copy_link: "Copia Link",
- copy: 'Copia',
+ confirm: 'Confirmar',
+ confirm_2fa_setup: 'Adicionei o código ao meu aplicativo autenticador',
+ confirm_2fa_recovery: 'Salvei meus códigos de recuperação em um local seguro',
+ confirm_account_for_free_referral_storage_c2a: 'Crie uma conta e confirme seu endereço de e-mail para receber 1 GB de armazenamento gratuito. Seu amigo também receberá 1 GB de armazenamento gratuito.',
+ confirm_code_generic_incorrect: "Código Incorreto.",
+ confirm_code_generic_too_many_requests: "Muitas solicitações. Por favor, aguarde alguns minutos.",
+ confirm_code_generic_submit: "Enviar Código",
+ confirm_code_generic_try_again: "Tente Novamente",
+ confirm_code_generic_title: "Digite o Código de Confirmação",
+ confirm_code_2fa_instruction: "Digite o código de 6 dígitos do seu aplicativo autenticador.",
+ confirm_code_2fa_submit_btn: "Enviar",
+ confirm_code_2fa_title: "Digite o Código 2FA",
+ confirm_delete_multiple_items: 'Tem certeza de que deseja excluir permanentemente estes itens?',
+ confirm_delete_single_item: 'Deseja excluir permanentemente este item?',
+ confirm_open_apps_log_out: 'Você tem aplicativos abertos. Tem certeza de que deseja sair?',
+ confirm_new_password: "Confirmar Nova Senha",
+ confirm_delete_user: "Tem certeza de que deseja excluir sua conta? Todos os seus arquivos e dados serão permanentemente excluídos. Esta ação não pode ser desfeita.",
+ confirm_delete_user_title: "Excluir Conta?",
+ confirm_session_revoke: "Tem certeza de que deseja revogar esta sessão?",
+ confirm_your_email_address: "Confirme Seu Endereço de Email",
+ contact_us: "Fale Conosco",
+ contact_us_verification_required: "Você deve ter um endereço de e-mail verificado para usar isto.",
+ contain: 'Conter',
+ continue: "Continuar",
+ copy: 'Copiar',
+ copy_link: "Copiar Link",
copying: "Copiando",
- cover: 'Capa',
+ copying_file: "Copiando %%",
+ cover: 'Cobrir',
create_account: "Criar Conta",
create_free_account: "Criar Conta Gratuita",
create_shortcut: "Criar Atalho",
credits: "Créditos",
current_password: "Senha Atual",
- cut: 'Cortar',
- date_modified: 'Data alterada',
+ cut: 'Recortar',
+ clock: "Relógio",
+ clock_visible_hide: 'Ocultar - Sempre oculto',
+ clock_visible_show: 'Mostrar - Sempre visível',
+ clock_visible_auto: 'Auto - Padrão, visível apenas no modo de tela cheia.',
+ close_all: 'Fechar Tudo',
+ created: 'Criado',
+ date_modified: 'Data de modificação',
+ default: 'Padrão',
+ delete: 'Excluir',
delete_account: "Excluir Conta",
delete_permanently: "Excluir Permanentemente",
- delete: 'Excluir',
- deploy_as_app: 'Publicar como aplicativo',
+ deleting_file: "Excluindo %%",
+ deploy_as_app: 'Implantar como aplicativo',
descending: 'Descendente',
- desktop_background_fit: "Caber Exatamente",
+ desktop: 'Área de Trabalho',
+ desktop_background_fit: "Ajustar",
developers: "Desenvolvedores",
- dir_published_as_website: `%strong% foi publicado para:`,
+ dir_published_as_website: `%strong% foi publicado em:`,
+ disable_2fa: 'Desativar 2FA',
+ disable_2fa_confirm: "Tem certeza de que deseja desativar 2FA?",
+ disable_2fa_instructions: "Digite sua senha para desativar 2FA.",
disassociate_dir: "Desassociar Diretório",
- download_file: 'Download de Arquivo',
- download: 'Download',
- downloading: "Efectuando o Download",
- email_or_username: "Email ou Nome de Utilizador",
+ documents: 'Documentos',
+ dont_allow: 'Não Permitir',
+ download: 'Baixar',
+ download_file: 'Baixar Arquivo',
+ downloading: "Baixando",
email: "Email",
- empty_trash_confirmation: `Você quer apagar os itens do Lixo permanentemente?`,
- empty_trash: 'Esvaziar Lixo',
- emptying_trash: 'Limpando o Lixoh…',
- enter_password_to_confirm_delete_user: "Entre sua senha para confirmar a exclusão da conta",
+ email_change_confirmation_sent: "Um e-mail de confirmação foi enviado para seu novo endereço de e-mail. Por favor, verifique sua caixa de entrada e siga as instruções para concluir o processo.",
+ email_invalid: 'Email inválido.',
+ email_or_username: "Email ou Nome de Usuário",
+ email_required: 'Email é obrigatório.',
+ empty_trash: 'Esvaziar Lixeira',
+ empty_trash_confirmation: `Tem certeza de que deseja excluir permanentemente os itens na Lixeira?`,
+ emptying_trash: 'Esvaziando Lixeira…',
+ enable_2fa: 'Ativar 2FA',
+ end_hard: "Finalizar Forçadamente",
+ end_process_force_confirm: "Tem certeza de que deseja finalizar forçadamente este processo?",
+ end_soft: "Finalizar Suavemente",
+ enlarged_qr_code: "Código QR Ampliado",
+ enter_password_to_confirm_delete_user: "Digite sua senha para confirmar a exclusão da conta",
+ error_message_is_missing: "Mensagem de erro está ausente.",
+ error_unknown_cause: "Ocorreu um erro desconhecido.",
+ error_uploading_files: "Falha ao carregar arquivos",
favorites: "Favoritos",
- feedback_c2a: "Favor usar o formulário abaixo para enviar seus comentários e comunicados.",
- feedback_sent_confirmation: "Obrigado por nos contactar. Se tiver email associado a esta conta, esperamos nos ver novamente.",
feedback: "Feedback",
+ feedback_c2a: "Por favor, use o formulário abaixo para nos enviar seu feedback, comentários e relatórios de bugs.",
+ feedback_sent_confirmation: "Obrigado por nos contatar. Se você tiver um e-mail associado à sua conta, você receberá uma resposta nossa o mais rápido possível.",
+ fit: "Ajustar",
+ folder: 'Pasta',
+ force_quit: 'Forçar Encerrar',
forgot_pass_c2a: "Esqueceu a senha?",
from: "De",
general: "Geral",
- get_a_copy_of_on_puter: `Obter uma cópia de '%%' no Puter.com!`,
- get_copy_link: 'Copiar Link',
+ get_a_copy_of_on_puter: `Obtenha uma cópia de '%%' em Puter.com!`,
+ get_copy_link: 'Obter Link de Cópia',
hide_all_windows: "Ocultar Todas as Janelas",
- home: "Início",
+ home: 'Início',
html_document: 'Documento HTML',
+ hue: 'Matiz',
image: 'Imagem',
- invite_link: "Link do Convite",
+ incorrect_password: "Senha incorreta",
+ invite_link: "Link de Convite",
item: 'item',
- items_in_trash_cannot_be_renamed: `Item não pode ser renomeado porque está no lixo. Para renomear, arraste-o para fora do Lixo.`,
+ items_in_trash_cannot_be_renamed: `Este item não pode ser renomeado porque está na lixeira. Para renomear este item, primeiro arraste-o para fora da Lixeira.`,
jpeg_image: 'Imagem JPEG',
- keep_in_taskbar: 'Armazenar na Barra de Tarefas',
+ keep_in_taskbar: 'Manter na Barra de Tarefas',
language: "Idioma",
license: "Licença",
+ lightness: 'Luminosidade',
+ link_copied: "Link copiado",
loading: 'Carregando',
log_in: "Entrar",
- log_into_another_account_anyway: 'Entrar com outra conta de qualquer maneira',
+ log_into_another_account_anyway: 'Entrar em outra conta de qualquer maneira',
log_out: 'Sair',
- manage_sessions: 'Gerenciar Sessões',
- menubar_style_desktop: "Desktop",
+ looks_good: "Parece bom!",
+ manage_sessions: "Gerenciar Sessões",
+ menubar_style: "Estilo da Barra de Menus",
+ menubar_style_desktop: "Área de Trabalho",
menubar_style_system: "Sistema",
menubar_style_window: "Janela",
- menubar_style: "Estilo da Barra de Menu",
+ modified: 'Modificado',
move: 'Mover',
moving_file: "Movendo %%",
my_websites: "Meus Sites",
- name_cannot_be_empty: 'Nome não pode ser vazio.',
- name_cannot_contain_double_period: "Nome não pode conter o caracters '..'.",
- name_cannot_contain_period: "Nome não pode conter o caracter '.'.",
- name_cannot_contain_slash: "Nome não pode conter o caracter '/'.",
- name_must_be_string: "Nome tem que ser apenas texto.",
- name_too_long: `Nome não pode ter mais que %% characters.`,
name: 'Nome',
- new_folder: 'Nova Pasta',
- new_password: "Nova Senha",
- new_username: "Novo Utilizador",
+ name_cannot_be_empty: 'O nome não pode estar vazio.',
+ name_cannot_contain_double_period: "O nome não pode ser o caractere '..'.",
+ name_cannot_contain_period: "O nome não pode ser o caractere '.'.",
+ name_cannot_contain_slash: "O nome não pode conter o caractere '/'.",
+ name_must_be_string: "O nome só pode ser uma string.",
+ name_too_long: `O nome não pode ter mais de %% caracteres.`,
new: 'Novo',
- no_dir_associated_with_site: 'Não existe diretório associado com este endereço.',
- no_websites_published: "Você ainda não publicou sites.",
- no: 'Não',
- ok: 'OK',
- open_in_new_tab: "Abrir em Nova Aba",
- open_in_new_window: "Abrir em Nova Janela",
- open_with: "Abrir Com",
- open: "Abrir",
- oss_code_and_content: "Software de Código Aberto",
- password_changed: "Senha alterada.",
- password: "Senha",
- passwords_do_not_match: '`Nova Senha` e `Confirmação de Nova Senha` não conferem com idênticas.',
- paste_into_folder: "Cole na Pasta",
- paste: 'Colar',
- personalization: "Personalização",
- pick_name_for_website: "Escolha um nome para seu site:",
- picture: "Imagem",
- plural_suffix: 's',
- powered_by_puter_js: `Criado por {{link=docs}}Puter.js{{/link}}`,
- preparing_for_upload: "Preparando para o envio...",
- preparing: "Preparando...",
- privacy: "Privacidade",
- proceed_to_login: 'Proceguir para a entrada',
- proceed_with_account_deletion: "Prosseguir com Exclusão da Conta",
- properties: "Propriedades",
- publish_as_website: 'Publicar como Site',
- publish: "Publicar",
- puter_description: `Puter é uma nuvem pessoal que prioriza a privacidade para manter todos os seus arquivos, aplicativos e jogos em um local seguro, acessível de qualquer lugar e a qualquer hora.`,
- recent: "Recentes",
- recover_password: "Recuperar Senha",
- refer_friends_c2a: "Obtenha 1 GB para cada amigo que criar e confirmar uma conta no Puter. Seu amigo ganhará 1 GB também!",
- refer_friends_social_media_c2a: `Obternha 1 GB de armazenamento gratuito no Puter.com!`,
- refresh: 'Atualizar',
- release_address_confirmation: `Você deseja liberar este endereço?`,
- remove_from_taskbar:'Remover da Barra de Tarefas',
- rename: 'Renomear',
- repeat: 'Repetir',
- replace_all: 'Substituir Todas',
- replace: 'Substituir',
- resend_confirmation_code: "Re-enviar o Código de Confirmação",
- restore: "Restaurar",
- save_account_to_get_copy_link: "Favor criar uma conta para prosseguir.",
- save_account_to_publish: 'Favor criar uma conta para prosseguir.',
- save_account: 'Gravar conta',
- save_session_c2a: 'Crie uma conta para gravar a sessão atual e evitar a perda de seu trabalho.',
- save_session: 'Gravar sessão',
- scan_qr_c2a: 'Escaneie o código abaixo para entrar nesta sessão com outros dispositivos',
- search: "Pesquisar",
- security: "Segurança",
- select_color: 'Selecionar cor…',
- select: "Selecionar",
- selected: 'selecionado',
- send_password_recovery_email: "Enviar Email de Recuperação de Senha",
- send: "Enviar",
- session_saved: "Obrigado por criar uma conta. Esta sessão foi gravada.",
- sessions: 'Sessões',
- set_new_password: "Informar Nova Senha",
- settings: "Configurações",
- share_to: "Partilhar com",
- show_all_windows: "Exibir Todas as Janelas",
- show_hidden: 'Exibir oculto',
- sign_in_with_puter: "Entrar no Puter",
- sign_up: "Registar",
- signing_in: "Entrar…",
- size: 'Tamanho',
- skip: 'Pular',
- sort_by: 'Organizar por',
- start: 'Início',
- status: "Status",
- storage_usage: "Uso do Armazenamento",
- taking_longer_than_usual: 'Está a levar mais tempo que o usual. Por favor, aguarde...',
- terms: "Termos",
- text_document: 'Documento de Texto',
- tos_fineprint: `Clicando em 'Criar Conta Gratuita' você concorda com os {{link=terms}}Termos de Serviço{{/link}} e {{link=privacy}}Política de Privacidade{{/link}} do Puter.`,
- trash: 'Lixo',
- type_confirm_to_delete_account: "Digite 'confirm' para excluir sua conta.",
- type: 'Tipo',
- ui_colors: "Cores da Interface",
- undo: 'Desfazer',
- unlimited: 'Ilimitado',
- unzip: "Deszipar",
- upload_here: 'Enviar aqui',
- upload: 'Enviar',
- usage: 'Uso',
- username_changed: 'Nome de Utilizador atualizado com sucesso.',
- username: "Nome de Utilizador",
- versions: "Versões",
- visibility: "Visibilidade",
- yes_release_it: 'Sim, Libere Isto',
- yes: 'Sim',
- you_have_been_referred_to_puter_by_a_friend: "Você indicou o Puter a um amigo!",
- zip: "Zipar",
- }
+ new_email: 'Novo Email',
+ new_folder: 'Nova pasta',
+ new_password: "Nova Senha",
+ new_username: "Novo Nome de Usuário",
+ "no": "Não",
+ "no_dir_associated_with_site": "Nenhum diretório associado a este endereço.",
+ "no_websites_published": "Você ainda não publicou nenhum site.",
+ "ok": "OK",
+ "open": "Abrir",
+ "open_in_new_tab": "Abrir em Nova Aba",
+ "open_in_new_window": "Abrir em Nova Janela",
+ "open_with": "Abrir Com",
+ "original_name": "Nome Original",
+ "original_path": "Caminho Original",
+ "oss_code_and_content": "Software e Conteúdo de Código Aberto",
+ "password": "Senha",
+ "password_changed": "Senha alterada.",
+ "password_recovery_rate_limit": "Você atingiu nosso limite de tentativas; por favor, aguarde alguns minutos. Para evitar isso no futuro, evite recarregar a página muitas vezes.",
+ "password_recovery_token_invalid": "Este token de recuperação de senha não é mais válido.",
+ "password_recovery_unknown_error": "Ocorreu um erro desconhecido. Por favor, tente novamente mais tarde.",
+ "password_required": "Senha é necessária.",
+ "password_strength_error": "A senha deve ter pelo menos 8 caracteres e conter pelo menos uma letra maiúscula, uma letra minúscula, um número e um caractere especial.",
+ "passwords_do_not_match": "`Nova Senha` e `Confirmar Nova Senha` não correspondem.",
+ "paste": "Colar",
+ "paste_into_folder": "Colar na Pasta",
+ "path": "Caminho",
+ "personalization": "Personalização",
+ "pick_name_for_website": "Escolha um nome para o seu site:",
+ "picture": "Imagem",
+ "pictures": "Imagens",
+ "plural_suffix": "s",
+ "powered_by_puter_js": "Desenvolvido por {{link=docs}}Puter.js{{/link}}",
+ "preparing": "Preparando...",
+ "preparing_for_upload": "Preparando para upload...",
+ "print": "Imprimir",
+ "privacy": "Privacidade",
+ "proceed_to_login": "Prossiga para o login",
+ "proceed_with_account_deletion": "Prosseguir com a Exclusão da Conta",
+ "process_status_initializing": "Inicializando",
+ "process_status_running": "Executando",
+ "process_type_app": "App",
+ "process_type_init": "Início",
+ "process_type_ui": "UI",
+ "properties": "Propriedades",
+ "public": "Público",
+ "publish": "Publicar",
+ "publish_as_website": "Publicar como site",
+ "puter_description": "Puter é uma nuvem pessoal que prioriza a privacidade para manter todos os seus arquivos, aplicativos e jogos em um lugar seguro, acessível de qualquer lugar a qualquer momento.",
+ "reading_file": "Lendo %strong%",
+ "recent": "Recente",
+ "recommended": "Recomendado",
+ "recover_password": "Recuperar Senha",
+ "refer_friends_c2a": "Ganhe 1 GB para cada amigo que criar e confirmar uma conta no Puter. Seu amigo também ganhará 1 GB!",
+ "refer_friends_social_media_c2a": "Ganhe 1 GB de armazenamento gratuito no Puter.com!",
+ "refresh": "Atualizar",
+ "release_address_confirmation": "Tem certeza de que deseja liberar este endereço?",
+ "remove_from_taskbar": "Remover da Barra de Tarefas",
+ "rename": "Renomear",
+ "repeat": "Repetir",
+ "replace": "Substituir",
+ "replace_all": "Substituir Todos",
+ "resend_confirmation_code": "Reenviar Código de Confirmação",
+ "reset_colors": "Redefinir Cores",
+ "restart_puter_confirm": "Tem certeza de que deseja reiniciar o Puter?",
+ "restore": "Restaurar",
+ "save": "Salvar",
+ "saturation": "Saturação",
+ "save_account": "Salvar conta",
+ "save_account_to_get_copy_link": "Por favor, crie uma conta para prosseguir.",
+ "save_account_to_publish": "Por favor, crie uma conta para prosseguir.",
+ "save_session": "Salvar sessão",
+ "save_session_c2a": "Crie uma conta para salvar sua sessão atual e evitar perder seu trabalho.",
+ "scan_qr_c2a": "Escaneie o código abaixo para fazer login nesta sessão a partir de outros dispositivos",
+ "scan_qr_2fa": "Escaneie o código QR com seu aplicativo autenticador",
+ "scan_qr_generic": "Escaneie este código QR usando seu telefone ou outro dispositivo",
+ "search": "Buscar",
+ "seconds": "segundos",
+ "security": "Segurança",
+ "select": "Selecionar",
+ "selected": "selecionado",
+ "select_color": "Selecionar cor…",
+ "sessions": "Sessões",
+ "send": "Enviar",
+ "send_password_recovery_email": "Enviar E-mail de Recuperação de Senha",
+ "session_saved": "Obrigado por criar uma conta. Esta sessão foi salva.",
+ "settings": "Configurações",
+ "set_new_password": "Definir Nova Senha",
+ "share": "Compartilhar",
+ "share_to": "Compartilhar para",
+ "share_with": "Compartilhar com:",
+ "shortcut_to": "Atalho para",
+ "show_all_windows": "Mostrar Todas as Janelas",
+ "show_hidden": "Mostrar ocultos",
+ "sign_in_with_puter": "Entrar com Puter",
+ "sign_up": "Cadastrar-se",
+ "signing_in": "Entrando...",
+ "size": "Tamanho",
+ "skip": "Pular",
+ "something_went_wrong": "Algo deu errado.",
+ "sort_by": "Ordenar por",
+ "start": "Iniciar",
+ "status": "Status",
+ "storage_usage": "Uso de Armazenamento",
+ "storage_puter_used": "usado pelo Puter",
+ "taking_longer_than_usual": "Levando um pouco mais de tempo do que o normal. Por favor, aguarde...",
+ "task_manager": "Gerenciador de Tarefas",
+ "taskmgr_header_name": "Nome",
+ "taskmgr_header_status": "Status",
+ "taskmgr_header_type": "Tipo",
+ "terms": "Termos",
+ "text_document": "Documento de texto",
+ "tos_fineprint": "Ao clicar em 'Criar Conta Gratuita' você concorda com os {{link=terms}}Termos de Serviço{{/link}} e a {{link=privacy}}Política de Privacidade{{/link}} do Puter.",
+ "transparency": "Transparência",
+ "trash": "Lixeira",
+ "two_factor": "Autenticação de Dois Fatores",
+ "two_factor_disabled": "2FA Desativada",
+ "two_factor_enabled": "2FA Ativada",
+ "type": "Tipo",
+ "type_confirm_to_delete_account": "Digite 'confirmar' para excluir sua conta.",
+ "ui_colors": "Cores da Interface",
+ "ui_manage_sessions": "Gerenciador de Sessões",
+ "ui_revoke": "Revogar",
+ "undo": "Desfazer",
+ "unlimited": "Ilimitado",
+ "unzip": "Descompactar",
+ "upload": "Upload",
+ "upload_here": "Fazer upload aqui",
+ "usage": "Uso",
+ "username": "Nome de Usuário",
+ "username_changed": "Nome de usuário atualizado com sucesso.",
+ "username_required": "Nome de usuário é necessário.",
+ "versions": "Versões",
+ "videos": "Vídeos",
+ "visibility": "Visibilidade",
+ "yes": "Sim",
+ "yes_release_it": "Sim, Liberar",
+ "you_have_been_referred_to_puter_by_a_friend": "Você foi indicado ao Puter por um amigo!",
+ "zip": "Compactar",
+ "zipping_file": "Compactando %strong%",
+
+ // === 2FA Setup ===
+ "setup2fa_1_step_heading": "Abra seu aplicativo autenticador",
+ "setup2fa_1_instructions": `
+ Você pode usar qualquer aplicativo autenticador que suporte o protocolo de Senha de Uso Único com Base em Tempo (TOTP).
+ Existem muitas opções, mas se você não tiver certeza
+ Authy
+ é uma escolha sólida para Android e iOS.
+ `,
+ "setup2fa_2_step_heading": "Escaneie o código QR",
+ "setup2fa_3_step_heading": "Digite o código de 6 dígitos",
+ "setup2fa_4_step_heading": "Copie seus códigos de recuperação",
+ "setup2fa_4_instructions": `
+ Esses códigos de recuperação são a única maneira de acessar sua conta se você perder seu telefone ou não puder usar seu aplicativo autenticador.
+ Certifique-se de armazená-los em um lugar seguro.
+ `,
+ "setup2fa_5_step_heading": "Confirme a configuração do 2FA",
+ "setup2fa_5_confirmation_1": "Salvei meus códigos de recuperação em um local seguro",
+ "setup2fa_5_confirmation_2": "Estou pronto para ativar o 2FA",
+ "setup2fa_5_button": "Ativar 2FA",
+
+ // === 2FA Login ===
+ "login2fa_otp_title": "Digite o Código 2FA",
+ "login2fa_otp_instructions": "Digite o código de 6 dígitos do seu aplicativo autenticador.",
+ "login2fa_recovery_title": "Digite um código de recuperação",
+ "login2fa_recovery_instructions": "Digite um dos seus códigos de recuperação para acessar sua conta.",
+ "login2fa_use_recovery_code": "Usar um código de recuperação",
+ "login2fa_recovery_back": "Voltar",
+ "login2fa_recovery_placeholder": "XXXXXXXX"
+ }
};
export default br;
diff --git a/src/gui/src/i18n/translations/da.js b/src/gui/src/i18n/translations/da.js
index a91d109f..bbba3ca4 100644
--- a/src/gui/src/i18n/translations/da.js
+++ b/src/gui/src/i18n/translations/da.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const da = {
name: "Dansk",
english_name: "Danish",
diff --git a/src/gui/src/i18n/translations/de.js b/src/gui/src/i18n/translations/de.js
index a481060a..7b77e09b 100644
--- a/src/gui/src/i18n/translations/de.js
+++ b/src/gui/src/i18n/translations/de.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const de = {
name: "Deutsch",
english_name: "German",
diff --git a/src/gui/src/i18n/translations/emoji.js b/src/gui/src/i18n/translations/emoji.js
index 109dc7d2..04ac847a 100644
--- a/src/gui/src/i18n/translations/emoji.js
+++ b/src/gui/src/i18n/translations/emoji.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const emoji = {
name: "🌍",
english_name: "Emoji",
diff --git a/src/gui/src/i18n/translations/en.js b/src/gui/src/i18n/translations/en.js
index e9c87c88..f867e6aa 100644
--- a/src/gui/src/i18n/translations/en.js
+++ b/src/gui/src/i18n/translations/en.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const en = {
name: "English",
english_name: "English",
diff --git a/src/gui/src/i18n/translations/es.js b/src/gui/src/i18n/translations/es.js
index 6d03e69a..8ff49e19 100644
--- a/src/gui/src/i18n/translations/es.js
+++ b/src/gui/src/i18n/translations/es.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const es = {
name: "Español",
english_name: "Spanish",
diff --git a/src/gui/src/i18n/translations/fa.js b/src/gui/src/i18n/translations/fa.js
index f422759c..dd894745 100644
--- a/src/gui/src/i18n/translations/fa.js
+++ b/src/gui/src/i18n/translations/fa.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const fa = {
name: "فارسی",
english_name: "Farsi",
diff --git a/src/gui/src/i18n/translations/fi.js b/src/gui/src/i18n/translations/fi.js
index 37a159df..88756619 100644
--- a/src/gui/src/i18n/translations/fi.js
+++ b/src/gui/src/i18n/translations/fi.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const fi = {
name: "Suomi",
english_name: "Finnish",
diff --git a/src/gui/src/i18n/translations/fr.js b/src/gui/src/i18n/translations/fr.js
index 19928c79..7cc30be8 100644
--- a/src/gui/src/i18n/translations/fr.js
+++ b/src/gui/src/i18n/translations/fr.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const fr = {
name: "Français",
english_name: "French",
diff --git a/src/gui/src/i18n/translations/hi.js b/src/gui/src/i18n/translations/hi.js
index 5b8ddf7b..bfdaf7e9 100644
--- a/src/gui/src/i18n/translations/hi.js
+++ b/src/gui/src/i18n/translations/hi.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const hi = {
name: "हिंदी",
english_name: "hindi",
diff --git a/src/gui/src/i18n/translations/hy.js b/src/gui/src/i18n/translations/hy.js
index 06cae2ca..e340f9cc 100644
--- a/src/gui/src/i18n/translations/hy.js
+++ b/src/gui/src/i18n/translations/hy.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const hy = {
name: "Հայերեն",
english_name: "Armenian",
diff --git a/src/gui/src/i18n/translations/ig.js b/src/gui/src/i18n/translations/ig.js
index f10d3094..7bc7e88c 100644
--- a/src/gui/src/i18n/translations/ig.js
+++ b/src/gui/src/i18n/translations/ig.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const ig = {
name: "Igbo",
english_name: "Igbo",
diff --git a/src/gui/src/i18n/translations/it.js b/src/gui/src/i18n/translations/it.js
index 4be3baad..3adefaf6 100644
--- a/src/gui/src/i18n/translations/it.js
+++ b/src/gui/src/i18n/translations/it.js
@@ -16,72 +16,156 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const it = {
name: "Italiano",
english_name: "Italian",
code: "it",
dictionary: {
+ about: "About",
+ account: "Account",
+ account_password: "Verifica Account Password",
access_granted_to: "Accesso garantito a",
add_existing_account: "Aggiungi un account esistente",
- all_fields_required: 'Tutte le caselle sono richieste.',
+ all_fields_required: "Tutti i campi sono richiesti.",
+ allow: "Consenti",
apply: "Applica",
ascending: 'Ascendente',
+ associated_websites: "Siti associati",
+ auto_arrange: 'Organizzazione automatica',
background: "Sfondo",
browse: "Sfoglia",
cancel: 'Annulla',
center: 'Centra ',
change_desktop_background: 'Modifica sfondo…',
+ change_email: "Modifica Email",
change_language: "Cambia lingua",
change_password: "Modifica password",
+ change_ui_colors: "Cambia i colori dell'interfaccia",
change_username: "Modifica Nome Utente",
+ close: "Chiudi",
close_all_windows: "Chiudi tutte le finestre",
+ close_all_windows_confirm: "Sei sicuro di voler chiudere tutte le finestre?",
+ close_all_windows_and_log_out: "Chiudi tutte le finestre e disconnettiti",
+ change_always_open_with: "Vuoi sempre aprire questo tipo di file con",
color: 'Colore',
+ confirm: "Conferma",
+ confirm_2fa_setup: "Ho aggiunto il codice alla mia app di autenticazione",
+ confirm_2fa_recovery: "Ho salvato il codice di recupero in un posto sicuro",
confirm_account_for_free_referral_storage_c2a: 'Crea un account e conferma la tua email per ricevere 1 GB di spazio di archiviazione gratuito. Anche il tuo amico riceverà dello spazio extra!',
+ confirm_code_generic_incorrect: "Codice errato.",
+ confirm_code_generic_too_many_requests: "Troppe richieste. Attendi qualche minuto.",
+ confirm_code_generic_submit: "Invia Codice",
+ confirm_code_generic_try_again: "Riprova",
+ confirm_code_generic_title: "Inserisci Codice di Conferma",
+ confirm_code_2fa_instruction: "Inserisci il codice a 6 cifre dalla tua app di autenticazione.",
+ confirm_code_2fa_submit_btn: "Invia",
+ confirm_code_2fa_title: "Inserisci il Codice 2FA",
+ confirm_delete_multiple_items: 'Sei sicuro di voler eliminare definitivamente questi elementi?',
+ confirm_delete_single_item: 'Vuoi eliminare definitivamente questo elemento?',
+ confirm_open_apps_log_out: 'Ci sono delle applicazioni aperte. Sei sicuro di voler effettuare il log out?',
confirm_new_password: "Conferma la nuova Password",
+ confirm_delete_user: "Sei sicuro di voler cancellare il tuo account? tutti i tuoi file e dati saranno definitivamente cancellati. Quest'azione non è reversibile.",
+ confirm_delete_user_title: "Cancellare l'Account?",
+ confirm_session_revoke: "Sei sicuro di voler revocare questa sessione?",
+ confirm_your_email_address: "Conferma il tuo indirizzo email",
contact_us: "Contattaci",
+ contact_us_verification_required: "Devi verificare il tuo indirizzo email per utilizzare questa funzione.",
contain: 'Contiene',
continue: "Continua",
copy: 'Copia',
copy_link: "Copia il link",
copying: "Copia in corso",
+ copying_file: "Copiando %%",
cover: 'Cover',
create_account: "Crea Account",
create_free_account: "Crea un account gratis",
create_shortcut: "Crea Scorciatoia",
+ credits: "Credits",
current_password: "Password corrente",
cut: 'Taglia',
+ clock: "Orologio",
+ clock_visible_hide: 'Nascondi - Sempre nascosto',
+ clock_visible_show: 'Mostra - Sempre visibile',
+ clock_visible_auto: 'Auto - Default, visibile solo in modalità schermo intero',
+ close_all: 'Close All',
+ created: 'Created',
date_modified: 'Data ultima modifica',
+ default: 'Default',
delete: 'Elimina',
+ delete_account: "Elimina Account",
delete_permanently: "Elimina permanentemente",
+ deleting_file: "Eliminando %%",
deploy_as_app: 'Distribuisci come Applicazione',
descending: 'Discendente',
+ desktop: 'Desktop',
desktop_background_fit: "Adatta",
+ developers: "Sviluppatori",
dir_published_as_website: `%strong% è stato pubblicato su:`,
+ disable_2fa: 'Disabilita 2FA',
+ disable_2fa_confirm: "Sei sicuro di voler disabilitare 2FA?",
+ disable_2fa_instructions: "Inserisci la tua password per disabilitare 2FA.",
disassociate_dir: "Dissocia la Directory",
+ documents: 'Documenti',
+ dont_allow: 'Non consentire',
download: 'Scarica',
+ download_file: 'Scarica file',
downloading: "Download in corso",
email: "Email",
+ email_change_confirmation_sent: "Ti abbiamo inviato un'email di conferma. Controlla la tua casella di posta e segui le istruzioni per completare il processo.",
+ email_invalid: 'Email non valida.',
email_or_username: "Email o Nome Utente",
+ email_required: "Email richiesta.",
empty_trash: 'Svuota Cestino',
empty_trash_confirmation: `Sei sicuro di voler svuotare il cestino?`,
emptying_trash: 'Il cestino si sta svuotando…',
+ enable_2fa: 'Abilita 2FA',
+ end_hard: "Forza la chiusura",
+ end_process_force_confirm: "Sei sicuro di voler forzare la chiusura di questo processo?",
+ end_soft: "Chiudi",
+ enlarged_qr_code: "QR Code ingrandito",
+ enter_password_to_confirm_delete_user: "Inserisci la tua password per confermare l'eliminazione del tuo account.",
+ error_message_is_missing: "Messaggio di errore mancante.",
+ error_unknown_cause: "Errore sconosciuto.",
+ error_uploading_files: "Errore durante l'upload dei file.",
+ favorites: "Preferiti",
feedback: "Feedback",
feedback_c2a: "Usa il form qua sotto per inviarci feedback, commenti, e segnalarci dei bug.",
feedback_sent_confirmation: "Grazie per averci contattato. Se hai un indirizzo email associato al tuo account, ti ricontatteremo il prima possibile.",
+ fit: 'Adatta',
+ folder: 'Cartella',
+ force_quit: 'Forza la chiusura',
forgot_pass_c2a: "Password dimenticata?",
from: "Da",
general: "Generale",
get_a_copy_of_on_puter: `Ottieni una copia di '%%' su Puter.com!`,
get_copy_link: 'Ottieni link di copia',
hide_all_windows: "Nascondi tutte le finestre",
+ home: 'Home',
html_document: 'Documento HTML',
+ hue: 'Tonalità',
image: 'Immagine',
+ incorrect_password: 'Password errata',
invite_link: "Link d’invito",
+ item: 'elemento',
items_in_trash_cannot_be_renamed: `Impossibile rinominare un elemento nel Cestino. Per rinominarlo, è necessario ripristinarlo.`,
jpeg_image: 'Immagine JPEG',
keep_in_taskbar: 'Blocca nella barra delle applicazioni',
+ language: "Lingua",
+ license: "Licenza",
+ lightness: 'Luminosità',
+ link_copied: "Link copiato",
+ loading: 'Caricamento',
log_in: "Accedi",
+ log_into_another_account_anyway: 'Accedi comunque con un altro account',
log_out: 'Disconnettiti',
+ looks_good: "Sembra buono!",
+ manage_sessions: "Gestisci le sessioni",
+ menubar_style: "Stile della barra dei menu",
+ menubar_style_desktop: "Desktop",
+ menubar_style_system: "System",
+ menubar_style_window: "Window",
+ modified: 'Modificato',
move: 'Sposta',
moving_file: "Spostamento in corso %%",
my_websites: "I miei siti web",
@@ -93,9 +177,11 @@ const it = {
name_must_be_string: "Il nome può contenere una sola linea.",
name_too_long: `Il nome non può essere più lungo di %% caratteri.`,
new: 'Nuovo',
+ new_email: "Nuova Email",
new_folder: 'Nuova Cartella',
new_password: "Nuova Password",
new_username: "Nuovo Nome Utente",
+ no: 'No',
no_dir_associated_with_site: 'Nessuna directory è stata associata all’indirizzo.',
no_websites_published: "Non hai pubblicato nessun sito web.",
ok: 'OK',
@@ -103,20 +189,45 @@ const it = {
open_in_new_tab: "Apri in una nuova scheda",
open_in_new_window: "Apri in una nuova finestra",
open_with: "Apri con",
+ original_name: 'Nome originale',
+ original_path: 'Percorso originale',
+ oss_code_and_content: "Contenuto e software Open Source",
password: "Password",
password_changed: "Password modificata.",
+ password_recovery_rate_limit: "Hai raggiunto il limite di richieste; per favore attendi qualche minuto. Per evitarlo in futuro evita di ricaricare la pagina troppe volte.",
+ password_recovery_token_invalid: "Questo token per il recupero della password non è valido.",
+ password_recovery_unknown_error: "Errore sconosciuto. Per favore riprova più tardi.",
+ password_required: 'Password richiesta.',
+ password_strength_error: "La password deve essere lunga almeno 8 caratteri e contenete almeno una maiuscola, una minuscola, un numero e un carattere speciale.",
passwords_do_not_match: 'Le caselle `Nuova Password` and `Conferma Nuova Password` non corrispondono.',
paste: 'Incolla',
paste_into_folder: "Incolla nella cartella",
+ path: 'Percorso',
+ personalization: "Personalizzazione",
pick_name_for_website: "Scegli un nome per il tuo sito web:",
picture: "Immagine",
+ pictures: 'Immagini',
+ plural_suffix: 'i',
powered_by_puter_js: `Powered by {{link=docs}}Puter.js{{/link}}`,
preparing: "Preparazione in corso...",
preparing_for_upload: "Preparazione per l’upload...",
+ print: 'Stampa',
+ privacy: "Privacy",
+ proceed_to_login: 'Procedi con il login',
+ proceed_with_account_deletion: "Continua con l'eliminazione dell'account",
+ process_status_initializing: "Inizializzando",
+ process_status_running: "In esecuzione",
+ process_type_app: 'App',
+ process_type_init: 'Init',
+ process_type_ui: 'UI',
properties: "Proprietà",
+ public: "Pubblico",
publish: "Pubblica",
publish_as_website: 'Pubblica come sito web',
+ puter_description: `Puter è un cloud personale che mette la privacy al primo posto, per conservare tutti i tuoi file, app e giochi in un unico luogo sicuro, accessibile da qualsiasi luogo e in qualsiasi momento.`,
+ reading_file: "Leggendo %strong%",
recent: "Recenti",
+ recommended: "Consigliati",
recover_password: "Ripristina la Password",
refer_friends_c2a: "Ottieni 1 GB di spazio di archiviazione per ogni amico che crea un account e conferma l’email su Puter. Anche il tuo amico riceverà dello spazio extra!",
refer_friends_social_media_c2a: `Ottieni 1GB di spazio di spazio di archiviazione gratuito su Puter.com!`,
@@ -125,43 +236,116 @@ const it = {
remove_from_taskbar:'Sblocca dalla barra delle applicazioni',
rename: 'Rinomina',
repeat: 'Ripeti',
+ replace: 'Sostituisci',
+ replace_all: 'Sostituisci tutto',
resend_confirmation_code: "Invia di nuovo il codice di conferma",
+ reset_colors: "Ripristina i colori",
+ restart_puter_confirm: "Sei sicuro di voler resettare Puter?",
restore: "Ripristina",
+ save: "Salva",
+ saturation: "Saturazione",
+ save_account: 'Salva Account',
save_account_to_get_copy_link: "È necessario creare un account per procedere.",
save_account_to_publish: 'È necessario creare un account per procedere.',
+ save_session: "Salva sessione",
save_session_c2a: 'Crea un account per salvare la tua sessione e non perdere i tuoi dati.',
scan_qr_c2a: 'Scansiona il codice qua sotto per utilizzare questa sessione da altri dispositivi',
+ scan_qr_2fa: 'Scansiona il codice QR con la tua app di autenticazione',
+ scan_qr_generic: 'Scansiona il codice QR usando il tuo sma',
+ search: 'Search',
+ seconds: 'seconds',
+ security: "Security",
select: "Seleziona",
+ selected: 'Selezionato',
select_color: 'Seleziona un colore…',
+ sessions: "Sessioni",
send: "Invia",
send_password_recovery_email: "Invia Email per il ripristino della password",
session_saved: "Grazie per aver creato un account. La sessione è stata salvata",
+ settings: "Impostazioni",
set_new_password: "Imposta una nuova Password",
+ share: "Condividi",
share_to: "Condividi con",
+ share_with: "Condividi con",
+ shortcut_to: "Scorciatoia per",
show_all_windows: "Mostra tutte le finestre",
show_hidden: 'Mostra nascosti',
sign_in_with_puter: "Accedi con Puter",
sign_up: "Registrati",
signing_in: "Accesso in corso…",
size: 'Dimensione',
+ skip: "Salta",
+ something_went_wrong: "Qualcosa è andato storto.",
sort_by: 'Ordina per',
start: 'Start',
+ status: 'Stato',
+ storage_usage: "Utilizzo dello spazio",
+ storage_puter_used: 'utilizzato da Puter',
taking_longer_than_usual: 'Il processo in corso ci sta mettendo più del solito. Attendere prego...',
+ task_manager: "Task Manager",
+ taskmgr_header_name: "Nome",
+ taskmgr_header_status: "Stato",
+ taskmgr_header_type: "Tipo",
+ terms: "Termini",
text_document: 'Documento di testo',
tos_fineprint: `Cliccando su 'Crea un account gratis' accetti i {{link=terms}}Termini di Servizio{{/link}} e l'{{link=privacy}}Informativa sulla Privacy{{/link}} di Puter.`,
+ transparency: "Trasparenza",
trash: 'Cestino',
+ two_factor: 'Autenticazione a due fattori',
+ two_factor_disabled: '2FA Disabilitata',
+ two_factor_enabled: '2FA Abilitata',
type: 'Tipo',
+ type_confirm_to_delete_account: "Scrivi 'conferma' per eliminare il tuo account.",
+ ui_colors: "Colori dell'interfaccia",
+ ui_manage_sessions: "Session Manager",
+ ui_revoke: "Revoca",
undo: 'Annulla',
+ unlimited: 'Illimitato',
unzip: "Unzip",
upload: 'Carica',
upload_here: 'Carica qui',
+ usage: 'Utilizzo',
username: "Nome Utente",
username_changed: 'Nome utente aggiornato con successo.',
+ username_required: 'Il nome utente è richiesto.',
versions: "Versioni",
+ videos: "Video",
+ visibility: "Visibilità",
+ yes: 'Sì',
yes_release_it: 'Si, rilascialo',
you_have_been_referred_to_puter_by_a_friend: "Sei stato invitato su Puter da un amico!",
zip: "Zip",
+ zipping_file: "Zipping %strong%",
+
+ // === 2FA Setup ===
+ setup2fa_1_step_heading: 'Apri la tua app di autenticazione',
+ setup2fa_1_instructions: `
+ Puoi utilizzare qualsiasi app di autenticazione che supporti il protocollo TOTP (Time-based One-Time Password).
+ Ci sono molte opzioni tra cui scegliere, ma se non sei sicuro,
+ Authy
+ è una scelta valida sia per Android che per iOS.
+ `,
+ setup2fa_2_step_heading: 'Scansiona il codice QR',
+ setup2fa_3_step_heading: 'Inserisci il codice a 6 cifre',
+ setup2fa_4_step_heading: 'Copia i tuoi codici di recupero',
+ setup2fa_4_instructions: `
+ Questi codici di recupero sono l'unico modo per accedere al tuo account se perdi il telefono o non puoi utilizzare la tua app di autenticazione.
+ Assicurati di conservarli in un luogo sicuro.
+ `,
+ setup2fa_5_step_heading: 'Conferma la configurazione del 2FA',
+ setup2fa_5_confirmation_1: 'Ho salvato i miei codici di recupero in un luogo sicuro',
+ setup2fa_5_confirmation_2: 'Sono pronto per abilitare il 2FA',
+ setup2fa_5_button: 'Abilita 2FA',
+
+ // === 2FA Login ===
+ login2fa_otp_title: 'Inserisci il codice 2FA',
+ login2fa_otp_instructions: 'Inserisci il codice a 6 cifre dalla tua app di autenticazione.',
+ login2fa_recovery_title: 'Inserisci un codice di recupero',
+ login2fa_recovery_instructions: 'Inserisci uno dei tuoi codici di recupero per accedere al tuo account.',
+ login2fa_use_recovery_code: 'Usa un codice di recupero',
+ login2fa_recovery_back: 'Indietro',
+ login2fa_recovery_placeholder: 'XXXXXXXX',
}
-}
+};
export default it;
\ No newline at end of file
diff --git a/src/gui/src/i18n/translations/ko.js b/src/gui/src/i18n/translations/ko.js
index b7318a6e..c9659f62 100644
--- a/src/gui/src/i18n/translations/ko.js
+++ b/src/gui/src/i18n/translations/ko.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const ko = {
name: "한국어",
english_name: "Korean",
diff --git a/src/gui/src/i18n/translations/nb.js b/src/gui/src/i18n/translations/nb.js
index 478ef91e..191e0bef 100644
--- a/src/gui/src/i18n/translations/nb.js
+++ b/src/gui/src/i18n/translations/nb.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const nb = {
name: "Norsk Bokmål",
english_name: "Norwegian Bokmål",
diff --git a/src/gui/src/i18n/translations/nl.js b/src/gui/src/i18n/translations/nl.js
index b6b0d5af..d02da55d 100644
--- a/src/gui/src/i18n/translations/nl.js
+++ b/src/gui/src/i18n/translations/nl.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const nl = {
name: "Nederlands",
english_name: "Dutch",
diff --git a/src/gui/src/i18n/translations/nn.js b/src/gui/src/i18n/translations/nn.js
index ccadf63b..1f323609 100644
--- a/src/gui/src/i18n/translations/nn.js
+++ b/src/gui/src/i18n/translations/nn.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const nn = {
name: "Norsk Nynorsk",
english_name: "Norwegian Nynorsk",
diff --git a/src/gui/src/i18n/translations/pl.js b/src/gui/src/i18n/translations/pl.js
index b3c1ea7a..631dafc5 100644
--- a/src/gui/src/i18n/translations/pl.js
+++ b/src/gui/src/i18n/translations/pl.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const pl = {
name: "Polski",
english_name: "Polish",
diff --git a/src/gui/src/i18n/translations/pt.js b/src/gui/src/i18n/translations/pt.js
index 349c906a..32ebbbf5 100644
--- a/src/gui/src/i18n/translations/pt.js
+++ b/src/gui/src/i18n/translations/pt.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const pt = {
name: "Português",
english_name: "Portuguese",
diff --git a/src/gui/src/i18n/translations/ro.js b/src/gui/src/i18n/translations/ro.js
index 9bca3a48..7cd7c936 100644
--- a/src/gui/src/i18n/translations/ro.js
+++ b/src/gui/src/i18n/translations/ro.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const ro = {
name: "Română",
english_name: "Romanian",
diff --git a/src/gui/src/i18n/translations/ru.js b/src/gui/src/i18n/translations/ru.js
index dadfe712..34802e92 100644
--- a/src/gui/src/i18n/translations/ru.js
+++ b/src/gui/src/i18n/translations/ru.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const ru = {
name: "Русский",
english_name: "Russian",
@@ -152,7 +153,7 @@ const ru = {
keep_in_taskbar: 'Сохранить на Панели Задач',
language: "Язык",
license: "Лицензия",
- lightness: 'Легкость',
+ lightness: 'Легкость', //нужен контекст
link_copied: "Ссылка скопирована",
loading: 'Загружается',
log_in: "Войти",
@@ -218,8 +219,9 @@ const ru = {
process_status_running: "Выполняется",
process_type_app: 'Прил',
process_type_init: 'Иниц',
- process_type_ui: 'UI',
+ process_type_ui: 'Пользовательский интерфейс',
properties: "Свойства",
+ public: "Общий",
publish: "Опубликовать",
public: 'Общий доступ',
publish_as_website: 'Опубликовать как сайт',
@@ -243,7 +245,7 @@ const ru = {
restore: "Восстановить",
save: 'Сохранить',
saturation: 'Насыщенность',
- save_account: 'Сохранить учетную запись',
+ save_account: 'Сохранить Учетную запись',
save_account_to_get_copy_link: "Пожалуйста, создайте учетную запись, чтобы продолжить.",
save_account_to_publish: 'Пожалуйста, создайте учетную запись, чтобы продолжить.',
save_session: 'Сохранить сеанс',
diff --git a/src/gui/src/i18n/translations/sv.js b/src/gui/src/i18n/translations/sv.js
index a05a5e76..ea88c573 100644
--- a/src/gui/src/i18n/translations/sv.js
+++ b/src/gui/src/i18n/translations/sv.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const sv = {
name: "Svenska",
english_name: "Swedish",
diff --git a/src/gui/src/i18n/translations/th.js b/src/gui/src/i18n/translations/th.js
index 519d8712..4d391ba3 100644
--- a/src/gui/src/i18n/translations/th.js
+++ b/src/gui/src/i18n/translations/th.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const th = {
name: "ไทย",
english_name: "Thai",
diff --git a/src/gui/src/i18n/translations/tr.js b/src/gui/src/i18n/translations/tr.js
index 5b16e9cf..0e1a29f6 100644
--- a/src/gui/src/i18n/translations/tr.js
+++ b/src/gui/src/i18n/translations/tr.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const tr = {
name: "Türkçe",
english_name: "Turkish",
diff --git a/src/gui/src/i18n/translations/translations.js b/src/gui/src/i18n/translations/translations.js
index 21a78e3e..1abbd95a 100644
--- a/src/gui/src/i18n/translations/translations.js
+++ b/src/gui/src/i18n/translations/translations.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
import ar from './ar.js';
import bn from './bn.js';
import br from './br.js';
@@ -42,6 +43,7 @@ import sv from './sv.js';
import th from './th.js';
import tr from './tr.js';
import ur from './ur.js';
+import ua from './ua.js';
import zh from './zh.js';
import zhtw from './zhtw.js';
import emoji from './emoji.js';
@@ -74,6 +76,7 @@ export default {
sv,
th,
tr,
+ ua,
zh,
zhtw,
ur,
diff --git a/src/gui/src/i18n/translations/ua.js b/src/gui/src/i18n/translations/ua.js
new file mode 100644
index 00000000..ee521f56
--- /dev/null
+++ b/src/gui/src/i18n/translations/ua.js
@@ -0,0 +1,336 @@
+/**
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+const ua = {
+ name: "Українська",
+ english_name: "Ukrainian",
+ code: "ua",
+ dictionary: {
+ about: "Про систему",
+ account: "Обліковий запис",
+ account_password: "Перевірити пароль облікового запису",
+ access_granted_to: "Доступ надано",
+ add_existing_account: "Додати існуючий обліковий запис",
+ all_fields_required: 'Усі поля обов\'язкові.',
+ allow: "Дозволити",
+ apply: "Застосувати",
+ ascending: 'За зростанням',
+ associated_websites: "Асоційовані веб-сайти",
+ auto_arrange: 'Автоупорядкування',
+ background: "Фон",
+ browse: "Переглянути",
+ cancel: 'Відміна',
+ center: 'Відцентрувати',
+ change_desktop_background: 'Змінити фон робочого столу…',
+ change_email: "Змінити Email",
+ change_language: "Змінити Мову",
+ change_password: "Змінити Пароль",
+ change_ui_colors: "Змінити Тему Оформлення",
+ change_username: "Змінити Ім\'я Користувача",
+ close: 'Закрити',
+ close_all_windows: "Закрити всі Вікна",
+ close_all_windows_confirm: "Ви впевнені, що хочете закрити всі вікна?",
+ close_all_windows_and_log_out: 'Закрити Вікна і Вийти',
+ change_always_open_with: "Бажаєте завжди відкривати файли цього типу в",
+ color: 'Колір',
+ confirm: "Підтвердити",
+ confirm_2fa_setup: "Я додав код у свій додаток для аутентифікації",
+ confirm_2fa_recovery: "Я зберіг свої коди для відновлення в безпечному місці",
+ confirm_account_for_free_referral_storage_c2a: 'Створіть обліковий запис і підтвердіть свою електронну адресу, щоб отримати 1 Гб безкоштовного дискового простору. Ваш друг також отримає 1 Гб безкоштовного дискового простору.',
+ confirm_code_generic_incorrect: "Код невірний",
+ confirm_code_generic_too_many_requests: "Забагато запитів. Будь ласка, зачекайте кілька хвилин",
+ confirm_code_generic_submit: "Прийняти код",
+ confirm_code_generic_try_again: "Спробувати знову",
+ confirm_code_generic_title: "Ввести код підтвердження",
+ confirm_code_2fa_instruction: "Введіть шестизначний код з вашого додатка для аутентифікації.",
+ confirm_code_2fa_submit_btn: "Прийняти",
+ confirm_code_2fa_title: "Введіть код для двофакторної аутентифікації",
+ confirm_delete_multiple_items: 'Ви впевнені, що хочете назавжди видалити ці елементи?',
+ confirm_delete_single_item: 'Ви впевнені, що хочете назавжди видалити цей елемент?',
+ confirm_open_apps_log_out: 'У вас є відкриті додатки. Ви впевнені, що хочете вийти з системи?',
+ confirm_new_password: "Підтвердьте новий пароль",
+ confirm_delete_user: "Ви впевнені, що хочете видалити свій обліковий запис? Усі ваші файли та дані будуть видалені назавжди. Цю дію неможливо скасувати.",
+ confirm_delete_user_title: "Видалити обліковий запис?",
+ confirm_session_revoke: "Ви впевнені, що хочете відкликати цей сеанс?",
+ confirm_your_email_address: "Підтвердити електронну адресу",
+ contact_us: "Зв'яжіться з нами",
+ contact_us_verification_required:"Вам необхідно мати підтверджену електронну адресу для використання цієї функції",
+ contain: 'Зміст',
+ continue: "Продовжити",
+ copy: 'Копіювати',
+ copy_link: "Копіювати Посилання",
+ copying: "Копіюється",
+ copying_file:"Копіюється %%",
+ cover: 'Обкладинка',
+ create_account: "Створити Обліковий Запис",
+ create_free_account: "Створити Безкоштовний Обліковий Запис",
+ create_shortcut: "Створити Ярлик",
+ credits: "Титри",
+ current_password: "Поточний Пароль",
+ cut: 'Вирізати',
+ clock: "Годинник",
+ clock_visible_hide: 'Приховати - Завжди приховано',
+ clock_visible_show: 'Показати - Завжди на виду',
+ clock_visible_auto: 'Авто - За Замовчуванням, видно тільки у повноекранному режимі',
+ close_all: "Закрити все",
+ created: "Створено",
+ date_modified: 'Дата зміни',
+ default: 'За замовчуванням',
+ delete: 'Видалити',
+ delete_account: "Видалити Обліковий Запис",
+ delete_permanently: "Видалити Назавжди",
+ deploy_as_app: 'Розгорнути як додаток',
+ descending: 'За спаданням',
+ desktop: "Робочий стіл",
+ desktop_background_fit: "Вмістити",
+ developers: "Розробники",
+ dir_published_as_website: `%strong% опубліковано в:`,
+ disable_2fa: "Вимкнути двофакторну аутентифікацію",
+ disable_2fa_confirm: "Ви впевнені, що хочете вимкнути двофакторну аутентифікацію?",
+ disable_2fa_instructions: "Введіть ваш пароль для вимкнення двофакторної аутентифікації",
+ disassociate_dir: "Від'єднати Директорію",
+ documents: "Документи",
+ dont_allow: "Не дозволяти",
+ download: 'Завантажити',
+ download_file: 'Завантажити Файл',
+ downloading: "Завантажується",
+ email: "Email",
+ email_change_confirmation_sent: "На вашу нову електронну адресу було надіслано листа з підтвердженням. Будь ласка, перевірте свою поштову скриньку і дотримуйтесь інструкцій, щоб завершити процес.",
+ email_invalid: 'Електронна адреса недійсна.',
+ email_or_username: "Email або Ім'я Користувача",
+ email_required: 'Email обов\'язковий.',
+ empty_trash: 'Очистити Кошик',
+ empty_trash_confirmation: `Ви впевнені, що хочете назавжди видалити елементи з Кошика?`,
+ emptying_trash: 'Очищення Кошика…',
+ enable_2fa: "Увімкнути двофакторну аутентифікацію",
+ end_hard: "Закрити жорстко",
+ end_process_force_confirm: "Ви впевнені, що хочете примусово завершити цей процес?",
+ end_soft: "Закрити м'яко",
+ enlarged_qr_code: "Збільшити QR код",
+ enter_password_to_confirm_delete_user: "Введіть пароль для підтвердження видалення облікового запису",
+ error_message_is_missing: "Повідомлення про помилку відсутнє",
+ error_unknown_cause: "Сталася невідома помилка",
+ error_uploading_files: "Збій завантаження файлів",
+ favorites: "Вибране",
+ feedback: "Зворотній зв'язок",
+ feedback_c2a: "Будь ласка, скористайтеся формою нижче, щоб надіслати нам свої відгуки, коментарі та повідомлення про помилки.",
+ feedback_sent_confirmation: "Дякуємо, що зв'язалися з нами. Якщо у вас є електронна пошта, пов'язана з вашим обліковим записом, ми відповімо вам якомога швидше.",
+ fit: "Вмістити",
+ folder: "Папка",
+ force_quit: 'Примусово Закрити',
+ forgot_pass_c2a: "Забули пароль?",
+ from: "Від",
+ general: "Загальний",
+ get_a_copy_of_on_puter: `Отримайте копію '%%' на Puter.com!`,
+ get_copy_link: 'Отримати Посилання для Копіювання',
+ hide_all_windows: "Приховати всі вікна",
+ home: "Додому",
+ html_document: 'HTML документ',
+ hue: 'Колірна Гама',
+ image: 'Зображення',
+ incorrect_password: "Невірний пароль",
+ invite_link: "Невірне посилання",
+ item: 'Елемент',
+ items_in_trash_cannot_be_renamed: `Цей елемент неможливо переіменувати тому що він знаходиться у корзині. Спочатку
+ перетащіть його з корзини`,
+ jpeg_image: 'JPEG зображення',
+ keep_in_taskbar: 'Зберегти на Панелі Задач',
+ language: "Мова",
+ license: "Ліцензія",
+ lightness: 'Легкість',
+ link_copied: "Посилання скопійоване",
+ loading: 'Завантажується',
+ log_in: "Ввійти",
+ log_into_another_account_anyway: 'Все одно ввійти в інший аккаунт',
+ log_out: 'Вийти',
+ looks_good: "Гарно виглядає!",
+ manage_sessions: "Управління Сеансами",
+ menubar_style: "Стиль Меню",
+ menubar_style_desktop: "Робочого стола",
+ menubar_style_system: "Системи",
+ menubar_style_window: "Вікна",
+ modified: "Змінено",
+ move: 'Перемістити',
+ moving_file: "Переміщується %%",
+ my_websites: "Мої Сайти",
+ name: 'Ім\'я',
+ name_cannot_be_empty: 'Ім\'я не може бути порожнім.',
+ name_cannot_contain_double_period: "Ім'я не может бути '..' символом.",
+ name_cannot_contain_period: "Ім'я не може бути '.' символом.",
+ name_cannot_contain_slash: "Ім'я не може містити '/' символ.",
+ name_must_be_string: "Ім\'я може містити тільки текстові символи",
+ name_too_long: `Ім\'я не може бути більш ніж %% символів уздовж.`,
+ new: 'Новий',
+ new_email: 'Новий Email',
+ new_folder: 'Нова папка',
+ new_password: "Новий Пароль",
+ new_username: "Нове Ім'я Користувача",
+ no: 'Ні',
+ no_dir_associated_with_site: 'Немає директорії, пов\'язанної з цією адресою.',
+ no_websites_published: "Ви ще не опублікували жодного сайту.",
+ ok: 'OK',
+ open: "Відчинити",
+ open_in_new_tab: "Відчинити у Новій Вкладці",
+ open_in_new_window: "Відчинити у Новому Вікні",
+ open_with: "Відчинити за допомогою",
+ original_name: "Оригінальне Ім'я",
+ original_path: "Оригинальный путь",
+ oss_code_and_content: "Програмне забезпечення та контент з відкритим кодом",
+ password: "Пароль",
+ password_changed: "Пароль змінено.",
+ password_recovery_rate_limit: "Ви досягли ліміту; будь ласка, зачекайте кілька хвилин. Щоб уникнути цього в майбутньому, не перезавантажуйте сторінку занадто багато разів.",
+ password_recovery_token_invalid: "Цей токен відновлення пароля більше не дійсний.",
+ password_recovery_unknown_error: "Сталася невідома помилка. Будь ласка, спробуйте пізніше.",
+ password_required: 'Потрібен Пароль.',
+ password_strength_error: "Пароль має містити не менше 8 символів і включати хоча б одну велику літеру, одну малу літеру, одну цифру та один спеціальний символ.",
+ passwords_do_not_match: 'Поля Новий Пароль і Підтвердіть Новий Пароль не співпадають.',
+ paste: 'Вставити',
+ paste_into_folder: "Вставити в Папку",
+ path: "Шлях",
+ personalization: "Персоналізація",
+ pick_name_for_website: "Виберіть ім'я для вашого сайту:",
+ picture: "Зображення",
+ pictures: "Зображення",
+ plural_suffix: 's',
+ powered_by_puter_js: "Створено на {{link=docs}}Puter.js{{/link}}",
+ preparing: "Підготовка...",
+ preparing_for_upload: "Підготовка до завантаження...",
+ privacy: "Конфіденційність",
+ proceed_to_login: 'Перейти до Входу',
+ proceed_with_account_deletion: "Продовжити Видалення Облікового Запису",
+ process_status_initializing: "Ініціалізація",
+ process_status_running: "Виконується",
+ process_type_app: 'Дод.',
+ process_type_init: 'Ініц.',
+ process_type_ui: 'Інтерфейс користувача',
+ properties: "Властивості",
+ public: "Загальний",
+ publish: "Опублікувати",
+ publish_as_website: 'Опублікувати як сайт',
+ puter_description: "Puter — це персональна хмара, яка забезпечує конфіденційність, дозволяючи зберігати всі ваші файли, додатки та ігри в одному безпечному місці, доступному з будь-якого місця в будь-який час.",
+ reading_file: "Читання файлу",
+ recent: "Недавній",
+ recommended: "Рекомендований",
+ recover_password: "Відновити Пароль",
+ refer_friends_c2a: "Отримайте 1 ГБ за кожного друга, який створить і підтвердить обліковий запис на Puter. Ваш друг також отримає 1 ГБ!",
+ refer_friends_social_media_c2a: "Отримайте 1 ГБ безкоштовного сховища на Puter.com!",
+ refresh: 'Оновити',
+ release_address_confirmation: "Ви впевнені, що хочете звільнити цю адресу?",
+ remove_from_taskbar:'Видалити з Панелі Завдань',
+ rename: 'Перейменувати',
+ repeat: 'Повторити',
+ replace: 'Замінити',
+ replace_all: 'Замінити Все',
+ resend_confirmation_code: "Повторно надіслати Код Підтвердження",
+ reset_colors: "Скинути Кольори",
+ restart_puter_confirm: "Ви впевнені, що хочете перезапустити Puter?",
+ restore: "Відновити",
+ save: "Зберегти",
+ saturation: 'Насиченість',
+ save_account: 'Зберегти Обліковий запис',
+ save_account_to_get_copy_link: "Будь ласка, створіть обліковий запис, щоб продовжити.",
+ save_account_to_publish: 'Будь ласка, створіть обліковий запис, щоб продовжити.',
+ save_session: 'Зберегти сеанс',
+ save_session_c2a: 'Створіть обліковий запис, щоб зберегти поточний сеанс і не втратити дані.',
+ scan_qr_c2a: 'Скануйте код нижче, щоб увійти в цей сеанс з інших пристроїв',
+ scan_qr_2fa: "Скануйте код за допомогою вашого додатку для аутентифікації",
+ scan_qr_generic: 'Скануйте цей QR-код за допомогою телефону або іншого пристрою',
+ search: "Пошук",
+ seconds: 'секунди',
+ security: "Безпека",
+ select: "Вибрати",
+ selected: 'вибрано',
+ select_color: 'Вибрати колір…',
+ sessions: "Сеанси",
+ send: "Надіслати",
+ send_password_recovery_email: "Надіслати електронний лист для відновлення пароля",
+ session_saved: "Дякуємо вам за створення облікового запису. Цей сеанс збережено.",
+ settings: "Налаштування",
+ set_new_password: "Встановити Новий Пароль",
+ share_to: "Поділитися з",
+ share_with: "Поділитися з",
+ shortcut_to: "Ярлик для",
+ show_all_windows: "Показати Всі Вікна",
+ show_hidden: 'Показати приховані',
+ sign_in_with_puter: "Увійти з Puter",
+ sign_up: "Зареєструватися",
+ signing_in: "Вхід у систему…",
+ size: 'Розмір',
+ skip: 'Пропустити',
+ sort_by: 'Відсортувати за',
+ start: 'Почати',
+ status: "Статус",
+ storage_usage: "Використання сховища",
+ storage_puter_used: 'використано Puter',
+ taking_longer_than_usual: 'Це займає трохи більше часу, ніж зазвичай. будь ласка, зачекайте...',
+ task_manager: "Диспетчер Завдань",
+ taskmgr_header_name: "Ім'я",
+ taskmgr_header_status: "Статус",
+ taskmgr_header_type: "Тип",
+ terms: "Умови",
+ text_document: 'Текстовий документ',
+ tos_fineprint: "Натискаючи 'Створити безкоштовний обліковий запис', ви погоджуєтеся з {{link=terms}}Умовами Використання{{/link}} та {{link=privacy}}Політикою Конфіденційності{{/link}} Puter.",
+ transparency: "Прозорість",
+ trash: 'Кошик',
+ two_factor: "Двофакторна аутентифікація",
+ two_factor_disabled: "Двофакторна аутентифікація вимкнена",
+ two_factor_enabled:"Двофакторна аутентифікація увімкнена",
+ type: 'Тип',
+ type_confirm_to_delete_account: "Введіть 'Підтвердити', щоб видалити обліковий запис.",
+ ui_colors: "Кольори UI",
+ ui_manage_sessions: "Менеджер Сеансів",
+ ui_revoke: "Відкликати",
+ undo: 'Скасувати',
+ unlimited: 'Необмежено',
+ unzip: "Розпакувати",
+ upload: 'Завантажити',
+ upload_here: 'Завантажити тут',
+ usage: 'Використання',
+ username: "Ім'я Користувача",
+ username_changed: "Ім'я Користувача успішно оновлено.",
+ username_required: "Потрібно ім'я Користувача.",
+ versions: "Версії",
+ videos: "Відео",
+ visibility: 'Видимість',
+ yes: 'Так',
+ yes_release_it: 'Так, звільнити.',
+ you_have_been_referred_to_puter_by_a_friend: "Вас запросив друг у Puter!",
+ zip: "Архівувати",
+ zipping_file: "Архівування %strong%",
+ setup2fa_1_step_heading: 'Відкрийте ваш додаток для аутентифікації',
+ setup2fa_1_instructions: `Ви можете використовувати будь-який додаток, який підтримує Одноразовий Пароль на основі часу. Їх багато, але якщо ви не впевнені у виборі Authy є чудовим варіантом для Android і iOS.`,
+ setup2fa_2_step_heading: 'Скануйте QR код',
+ setup2fa_3_step_heading: 'Введіть шестизначний код',
+ setup2fa_4_step_heading: 'Скопіюйте ваші коди відновлення',
+ setup2fa_4_instructions: "Ці коди відновлення є єдиним способом входу у ваш обліковий запис, якщо ви втратите телефон або не зможете використовувати додаток для аутентифікації. Упевніться, що ви їх зберегли.",
+ setup2fa_5_step_heading: 'Підтвердьте налаштування 2FA',
+ setup2fa_5_confirmation_1: 'Я зберіг свої коди в надійному місці',
+ setup2fa_5_confirmation_2: 'Я готовий використовувати 2FA',
+ setup2fa_5_button: 'Увімкнути 2FA',
+ login2fa_otp_title: 'Введіть код 2FA',
+ login2fa_otp_instructions: 'Введіть шестизначний код з вашого додатку для аутентифікації',
+ login2fa_recovery_title: 'Введіть код відновлення',
+ login2fa_recovery_instructions: 'Введіть один з кодів відновлення для доступу до облікового запису',
+ login2fa_use_recovery_code: 'Використовуйте код відновлення',
+ login2fa_recovery_back: 'Назад',
+ login2fa_recovery_placeholder: 'XXXXXXXX',
+ }
+}
+
+export default ua;
diff --git a/src/gui/src/i18n/translations/ur.js b/src/gui/src/i18n/translations/ur.js
index 79c26900..8b48be53 100644
--- a/src/gui/src/i18n/translations/ur.js
+++ b/src/gui/src/i18n/translations/ur.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const ur = {
name: "اردو",
english_name: "Urdu",
diff --git a/src/gui/src/i18n/translations/zh.js b/src/gui/src/i18n/translations/zh.js
index e801e00d..7c5646d3 100644
--- a/src/gui/src/i18n/translations/zh.js
+++ b/src/gui/src/i18n/translations/zh.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
const zh = {
name: "中文",
english_name: "Chinese",
diff --git a/src/gui/src/i18n/translations/zhtw.js b/src/gui/src/i18n/translations/zhtw.js
index 25b1a3b0..276284d4 100644
--- a/src/gui/src/i18n/translations/zhtw.js
+++ b/src/gui/src/i18n/translations/zhtw.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
const zhtw = {
name: "繁體中文",
english_name: "Traditional Chinese",
diff --git a/src/gui/src/index.js b/src/gui/src/index.js
index cc1a58e9..450cff79 100644
--- a/src/gui/src/index.js
+++ b/src/gui/src/index.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
window.puter_gui_enabled = true;
/**
diff --git a/src/gui/src/init_async.js b/src/gui/src/init_async.js
index 31bf4a0a..394fb6c8 100644
--- a/src/gui/src/init_async.js
+++ b/src/gui/src/init_async.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
// Note: this logs AFTER all imports because imports are hoisted
logger.info('start -> async initialization');
diff --git a/src/gui/src/init_sync.js b/src/gui/src/init_sync.js
index cea2e534..5635e15a 100644
--- a/src/gui/src/init_sync.js
+++ b/src/gui/src/init_sync.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/**
* @global
* @function logger
diff --git a/src/gui/src/initgui.js b/src/gui/src/initgui.js
index 0f41366d..a4ed477b 100644
--- a/src/gui/src/initgui.js
+++ b/src/gui/src/initgui.js
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+
import UIDesktop from './UI/UIDesktop.js'
import UIWindow from './UI/UIWindow.js'
import UIAlert from './UI/UIAlert.js'
diff --git a/src/gui/src/services/BroadcastService.js b/src/gui/src/services/BroadcastService.js
index e0e6a470..21bb9dfe 100644
--- a/src/gui/src/services/BroadcastService.js
+++ b/src/gui/src/services/BroadcastService.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
import { Service } from "../definitions.js";
export class BroadcastService extends Service {
diff --git a/src/gui/src/services/ExportRegistrantService.js b/src/gui/src/services/ExportRegistrantService.js
index a404d8b9..aefdc8af 100644
--- a/src/gui/src/services/ExportRegistrantService.js
+++ b/src/gui/src/services/ExportRegistrantService.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import Spinner from "../UI/Components/Spinner";
import { Service } from "../definitions";
diff --git a/src/gui/src/services/LaunchOnInitService.js b/src/gui/src/services/LaunchOnInitService.js
index 268c6be7..093fc7ed 100644
--- a/src/gui/src/services/LaunchOnInitService.js
+++ b/src/gui/src/services/LaunchOnInitService.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import UIAlert from "../UI/UIAlert.js";
import { Service } from "../definitions.js";
diff --git a/src/gui/src/services/LocaleService.js b/src/gui/src/services/LocaleService.js
index dbeeedb9..b165d07d 100644
--- a/src/gui/src/services/LocaleService.js
+++ b/src/gui/src/services/LocaleService.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import { Service } from "../definitions.js";
import i18n from "../i18n/i18n.js";
diff --git a/src/gui/src/services/ProcessService.js b/src/gui/src/services/ProcessService.js
index 410217c4..08683772 100644
--- a/src/gui/src/services/ProcessService.js
+++ b/src/gui/src/services/ProcessService.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import { InitProcess, Service } from "../definitions.js";
// The NULL UUID is also the UUID for the init process.
diff --git a/src/gui/src/services/SettingsService.js b/src/gui/src/services/SettingsService.js
index 3470fdce..0a743949 100644
--- a/src/gui/src/services/SettingsService.js
+++ b/src/gui/src/services/SettingsService.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import { Service } from "../definitions.js";
import AboutTab from '../UI/Settings/UITabAbout.js';
diff --git a/src/gui/src/services/ThemeService.js b/src/gui/src/services/ThemeService.js
index 77356eeb..b49d41e6 100644
--- a/src/gui/src/services/ThemeService.js
+++ b/src/gui/src/services/ThemeService.js
@@ -16,6 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
import UIAlert from "../UI/UIAlert.js";
import { Service } from "../definitions.js";
diff --git a/src/gui/src/util/Component.js b/src/gui/src/util/Component.js
index 813ce00b..7039513f 100644
--- a/src/gui/src/util/Component.js
+++ b/src/gui/src/util/Component.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import ValueHolder from "./ValueHolder.js";
export const Component = def(class Component extends HTMLElement {
diff --git a/src/gui/src/util/Placeholder.js b/src/gui/src/util/Placeholder.js
index 5515a9f7..65af0871 100644
--- a/src/gui/src/util/Placeholder.js
+++ b/src/gui/src/util/Placeholder.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/**
* @typedef {Object} PlaceholderReturn
* @property {String} html: An html string that represents the placeholder
diff --git a/src/gui/src/util/TeePromise.js b/src/gui/src/util/TeePromise.js
index c53fcb65..a98874ea 100644
--- a/src/gui/src/util/TeePromise.js
+++ b/src/gui/src/util/TeePromise.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
export default def(class TeePromise {
static ID = 'util.TeePromise';
diff --git a/src/gui/src/util/ValueHolder.js b/src/gui/src/util/ValueHolder.js
index 172b76c8..662297d4 100644
--- a/src/gui/src/util/ValueHolder.js
+++ b/src/gui/src/util/ValueHolder.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/**
* Holds an observable value.
*/
diff --git a/src/gui/utils.js b/src/gui/utils.js
index 04cf957f..e0ff55a2 100644
--- a/src/gui/utils.js
+++ b/src/gui/utils.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
Copyright (C) 2024 Puter Technologies Inc.
diff --git a/src/parsely/exports.js b/src/parsely/exports.js
index 85551cc7..da80f40e 100644
--- a/src/parsely/exports.js
+++ b/src/parsely/exports.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import { adapt_parser, VALUE } from './parser.js';
import { Discard, FirstMatch, Optional, Repeat, Sequence } from './parsers/combinators.js';
import { Fail, Literal, None, StringOf, StringUntil, Symbol } from './parsers/terminals.js';
diff --git a/src/parsely/parser.js b/src/parsely/parser.js
index c588ccf1..3bdcf971 100644
--- a/src/parsely/parser.js
+++ b/src/parsely/parser.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
export const adapt_parser = v => v;
export const UNRECOGNIZED = Symbol('unrecognized');
diff --git a/src/parsely/parsers/combinators.js b/src/parsely/parsers/combinators.js
index d65066d8..48ca91e6 100644
--- a/src/parsely/parsers/combinators.js
+++ b/src/parsely/parsers/combinators.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import { adapt_parser, INVALID, Parser, UNRECOGNIZED, VALUE } from '../parser.js';
/**
diff --git a/src/parsely/parsers/terminals.js b/src/parsely/parsers/terminals.js
index a7afaaa8..65ae4197 100644
--- a/src/parsely/parsers/terminals.js
+++ b/src/parsely/parsers/terminals.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import { INVALID, Parser, UNRECOGNIZED, VALUE } from '../parser.js';
/**
diff --git a/src/parsely/streams.js b/src/parsely/streams.js
index 23254b62..9e63a8aa 100644
--- a/src/parsely/streams.js
+++ b/src/parsely/streams.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/**
* Base class for input streams.
* Defines which methods are expected for any stream implementations.
diff --git a/src/phoenix/config/dev.js b/src/phoenix/config/dev.js
index 01886c81..fb4a27c3 100644
--- a/src/phoenix/config/dev.js
+++ b/src/phoenix/config/dev.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/config/release.js b/src/phoenix/config/release.js
index 03352ff3..8e00ff05 100644
--- a/src/phoenix/config/release.js
+++ b/src/phoenix/config/release.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/doc/stash/SymbolParserImpl.js b/src/phoenix/doc/stash/SymbolParserImpl.js
index 0c6f4b2a..5ad3c9a0 100644
--- a/src/phoenix/doc/stash/SymbolParserImpl.js
+++ b/src/phoenix/doc/stash/SymbolParserImpl.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/rollup.config.js b/src/phoenix/rollup.config.js
index 69880de0..9b58543d 100644
--- a/src/phoenix/rollup.config.js
+++ b/src/phoenix/rollup.config.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ANSIContext.js b/src/phoenix/src/ansi-shell/ANSIContext.js
index cc7283a1..5fca2801 100644
--- a/src/phoenix/src/ansi-shell/ANSIContext.js
+++ b/src/phoenix/src/ansi-shell/ANSIContext.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ANSIShell.js b/src/phoenix/src/ansi-shell/ANSIShell.js
index ea83bb7f..f0a0baad 100644
--- a/src/phoenix/src/ansi-shell/ANSIShell.js
+++ b/src/phoenix/src/ansi-shell/ANSIShell.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ConcreteSyntaxError.js b/src/phoenix/src/ansi-shell/ConcreteSyntaxError.js
index 7ffbfd5c..70bc7b33 100644
--- a/src/phoenix/src/ansi-shell/ConcreteSyntaxError.js
+++ b/src/phoenix/src/ansi-shell/ConcreteSyntaxError.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/arg-parsers/simple-parser.js b/src/phoenix/src/ansi-shell/arg-parsers/simple-parser.js
index d853d905..0c77fec5 100644
--- a/src/phoenix/src/ansi-shell/arg-parsers/simple-parser.js
+++ b/src/phoenix/src/ansi-shell/arg-parsers/simple-parser.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/decorators/errors.js b/src/phoenix/src/ansi-shell/decorators/errors.js
index 85eabb3e..fb81bb61 100644
--- a/src/phoenix/src/ansi-shell/decorators/errors.js
+++ b/src/phoenix/src/ansi-shell/decorators/errors.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ioutil/ByteWriter.js b/src/phoenix/src/ansi-shell/ioutil/ByteWriter.js
index d2e0655a..756ca409 100644
--- a/src/phoenix/src/ansi-shell/ioutil/ByteWriter.js
+++ b/src/phoenix/src/ansi-shell/ioutil/ByteWriter.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ioutil/MemReader.js b/src/phoenix/src/ansi-shell/ioutil/MemReader.js
index 53d711ae..11a7c8f1 100644
--- a/src/phoenix/src/ansi-shell/ioutil/MemReader.js
+++ b/src/phoenix/src/ansi-shell/ioutil/MemReader.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ioutil/MemWriter.js b/src/phoenix/src/ansi-shell/ioutil/MemWriter.js
index 8e091f0d..aa1675a4 100644
--- a/src/phoenix/src/ansi-shell/ioutil/MemWriter.js
+++ b/src/phoenix/src/ansi-shell/ioutil/MemWriter.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ioutil/MultiWriter.js b/src/phoenix/src/ansi-shell/ioutil/MultiWriter.js
index 9b3be271..75e14f0f 100644
--- a/src/phoenix/src/ansi-shell/ioutil/MultiWriter.js
+++ b/src/phoenix/src/ansi-shell/ioutil/MultiWriter.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ioutil/NullifyWriter.js b/src/phoenix/src/ansi-shell/ioutil/NullifyWriter.js
index 3980aeff..f51af4d4 100644
--- a/src/phoenix/src/ansi-shell/ioutil/NullifyWriter.js
+++ b/src/phoenix/src/ansi-shell/ioutil/NullifyWriter.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ioutil/ProxyReader.js b/src/phoenix/src/ansi-shell/ioutil/ProxyReader.js
index 9b2e6bfe..3c202dd1 100644
--- a/src/phoenix/src/ansi-shell/ioutil/ProxyReader.js
+++ b/src/phoenix/src/ansi-shell/ioutil/ProxyReader.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ioutil/ProxyWriter.js b/src/phoenix/src/ansi-shell/ioutil/ProxyWriter.js
index cd6b4dbd..5ee46b0b 100644
--- a/src/phoenix/src/ansi-shell/ioutil/ProxyWriter.js
+++ b/src/phoenix/src/ansi-shell/ioutil/ProxyWriter.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ioutil/SignalReader.js b/src/phoenix/src/ansi-shell/ioutil/SignalReader.js
index 17ea234b..66cc9930 100644
--- a/src/phoenix/src/ansi-shell/ioutil/SignalReader.js
+++ b/src/phoenix/src/ansi-shell/ioutil/SignalReader.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/ioutil/SyncLinesReader.js b/src/phoenix/src/ansi-shell/ioutil/SyncLinesReader.js
index be89d509..69fb781f 100644
--- a/src/phoenix/src/ansi-shell/ioutil/SyncLinesReader.js
+++ b/src/phoenix/src/ansi-shell/ioutil/SyncLinesReader.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/parsing/PARSE_CONSTANTS.js b/src/phoenix/src/ansi-shell/parsing/PARSE_CONSTANTS.js
index bb4769cd..75df56c0 100644
--- a/src/phoenix/src/ansi-shell/parsing/PARSE_CONSTANTS.js
+++ b/src/phoenix/src/ansi-shell/parsing/PARSE_CONSTANTS.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/parsing/PuterShellParser.js b/src/phoenix/src/ansi-shell/parsing/PuterShellParser.js
index 3c87dbf8..297b3d85 100644
--- a/src/phoenix/src/ansi-shell/parsing/PuterShellParser.js
+++ b/src/phoenix/src/ansi-shell/parsing/PuterShellParser.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/parsing/UnquotedTokenParserImpl.js b/src/phoenix/src/ansi-shell/parsing/UnquotedTokenParserImpl.js
index f6916088..142c0179 100644
--- a/src/phoenix/src/ansi-shell/parsing/UnquotedTokenParserImpl.js
+++ b/src/phoenix/src/ansi-shell/parsing/UnquotedTokenParserImpl.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/parsing/brainstorming.js b/src/phoenix/src/ansi-shell/parsing/brainstorming.js
index 0e16cdca..f6d760cc 100644
--- a/src/phoenix/src/ansi-shell/parsing/brainstorming.js
+++ b/src/phoenix/src/ansi-shell/parsing/brainstorming.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/parsing/buildParserFirstHalf.js b/src/phoenix/src/ansi-shell/parsing/buildParserFirstHalf.js
index 141f632f..932c41fc 100644
--- a/src/phoenix/src/ansi-shell/parsing/buildParserFirstHalf.js
+++ b/src/phoenix/src/ansi-shell/parsing/buildParserFirstHalf.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/parsing/buildParserSecondHalf.js b/src/phoenix/src/ansi-shell/parsing/buildParserSecondHalf.js
index 1fa6e4ae..00cc36aa 100644
--- a/src/phoenix/src/ansi-shell/parsing/buildParserSecondHalf.js
+++ b/src/phoenix/src/ansi-shell/parsing/buildParserSecondHalf.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/pipeline/Coupler.js b/src/phoenix/src/ansi-shell/pipeline/Coupler.js
index ad40b9c0..517dd405 100644
--- a/src/phoenix/src/ansi-shell/pipeline/Coupler.js
+++ b/src/phoenix/src/ansi-shell/pipeline/Coupler.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/pipeline/Pipe.js b/src/phoenix/src/ansi-shell/pipeline/Pipe.js
index 59c9c46f..41533aab 100644
--- a/src/phoenix/src/ansi-shell/pipeline/Pipe.js
+++ b/src/phoenix/src/ansi-shell/pipeline/Pipe.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/pipeline/Pipeline.js b/src/phoenix/src/ansi-shell/pipeline/Pipeline.js
index 590d96e4..35dfa96f 100644
--- a/src/phoenix/src/ansi-shell/pipeline/Pipeline.js
+++ b/src/phoenix/src/ansi-shell/pipeline/Pipeline.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/pipeline/iowrappers.js b/src/phoenix/src/ansi-shell/pipeline/iowrappers.js
index fc4cf49c..324a5904 100644
--- a/src/phoenix/src/ansi-shell/pipeline/iowrappers.js
+++ b/src/phoenix/src/ansi-shell/pipeline/iowrappers.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/readline/history.js b/src/phoenix/src/ansi-shell/readline/history.js
index f04b3a36..ead08e74 100644
--- a/src/phoenix/src/ansi-shell/readline/history.js
+++ b/src/phoenix/src/ansi-shell/readline/history.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/readline/readline.js b/src/phoenix/src/ansi-shell/readline/readline.js
index 735ec3e9..1a99804c 100644
--- a/src/phoenix/src/ansi-shell/readline/readline.js
+++ b/src/phoenix/src/ansi-shell/readline/readline.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/readline/readtoken.js b/src/phoenix/src/ansi-shell/readline/readtoken.js
index 63fbc138..459aa0a5 100644
--- a/src/phoenix/src/ansi-shell/readline/readtoken.js
+++ b/src/phoenix/src/ansi-shell/readline/readtoken.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/readline/rl_comprehend.js b/src/phoenix/src/ansi-shell/readline/rl_comprehend.js
index 12ab9a23..30c958b5 100644
--- a/src/phoenix/src/ansi-shell/readline/rl_comprehend.js
+++ b/src/phoenix/src/ansi-shell/readline/rl_comprehend.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/readline/rl_csi_handlers.js b/src/phoenix/src/ansi-shell/readline/rl_csi_handlers.js
index 1128929b..22470166 100644
--- a/src/phoenix/src/ansi-shell/readline/rl_csi_handlers.js
+++ b/src/phoenix/src/ansi-shell/readline/rl_csi_handlers.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/readline/rl_words.js b/src/phoenix/src/ansi-shell/readline/rl_words.js
index 10469852..0fd1293e 100644
--- a/src/phoenix/src/ansi-shell/readline/rl_words.js
+++ b/src/phoenix/src/ansi-shell/readline/rl_words.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/ansi-shell/signals.js b/src/phoenix/src/ansi-shell/signals.js
index b81253fe..bf060b5b 100644
--- a/src/phoenix/src/ansi-shell/signals.js
+++ b/src/phoenix/src/ansi-shell/signals.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/context/context.js b/src/phoenix/src/context/context.js
index aaf3868b..2d6d67d3 100644
--- a/src/phoenix/src/context/context.js
+++ b/src/phoenix/src/context/context.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/main_cli.js b/src/phoenix/src/main_cli.js
index 1f1808ee..093ffb29 100644
--- a/src/phoenix/src/main_cli.js
+++ b/src/phoenix/src/main_cli.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/main_puter.js b/src/phoenix/src/main_puter.js
index 0411b553..4182fad9 100644
--- a/src/phoenix/src/main_puter.js
+++ b/src/phoenix/src/main_puter.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/meta/versions.js b/src/phoenix/src/meta/versions.js
index cd83eacf..f56ebe2d 100644
--- a/src/phoenix/src/meta/versions.js
+++ b/src/phoenix/src/meta/versions.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/platform/node/env.js b/src/phoenix/src/platform/node/env.js
index 58f31614..859692c3 100644
--- a/src/phoenix/src/platform/node/env.js
+++ b/src/phoenix/src/platform/node/env.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import os from 'os';
export const CreateEnvProvider = () => {
diff --git a/src/phoenix/src/platform/node/filesystem.js b/src/phoenix/src/platform/node/filesystem.js
index 17e30710..c067acb2 100644
--- a/src/phoenix/src/platform/node/filesystem.js
+++ b/src/phoenix/src/platform/node/filesystem.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/platform/node/system.js b/src/phoenix/src/platform/node/system.js
index ec83ebfe..67564a56 100644
--- a/src/phoenix/src/platform/node/system.js
+++ b/src/phoenix/src/platform/node/system.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import process from 'node:process';
export const CreateSystemProvider = () => {
diff --git a/src/phoenix/src/platform/puter/drivers.js b/src/phoenix/src/platform/puter/drivers.js
index dea0d0d6..20ab8fa3 100644
--- a/src/phoenix/src/platform/puter/drivers.js
+++ b/src/phoenix/src/platform/puter/drivers.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/platform/puter/env.js b/src/phoenix/src/platform/puter/env.js
index 2ef342b4..0c7b2389 100644
--- a/src/phoenix/src/platform/puter/env.js
+++ b/src/phoenix/src/platform/puter/env.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
export const CreateEnvProvider = ({ config }) => {
return {
getEnv: () => {
diff --git a/src/phoenix/src/platform/puter/filesystem.js b/src/phoenix/src/platform/puter/filesystem.js
index 3ce632ec..5e028fac 100644
--- a/src/phoenix/src/platform/puter/filesystem.js
+++ b/src/phoenix/src/platform/puter/filesystem.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/platform/puter/system.js b/src/phoenix/src/platform/puter/system.js
index 320ec73a..14aa7874 100644
--- a/src/phoenix/src/platform/puter/system.js
+++ b/src/phoenix/src/platform/puter/system.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
export const CreateSystemProvider = ({ puterSDK }) => {
return {
exit: (code) => {
diff --git a/src/phoenix/src/promise.js b/src/phoenix/src/promise.js
index 5c47d2bd..aa75a06e 100644
--- a/src/phoenix/src/promise.js
+++ b/src/phoenix/src/promise.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
export class TeePromise {
static STATUS_PENDING = Symbol('pending');
static STATUS_RUNNING = {};
diff --git a/src/phoenix/src/pty/NodeStdioPTT.js b/src/phoenix/src/pty/NodeStdioPTT.js
index 58cd947c..b9a35d25 100644
--- a/src/phoenix/src/pty/NodeStdioPTT.js
+++ b/src/phoenix/src/pty/NodeStdioPTT.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import { ReadableStream, WritableStream } from 'stream/web';
import { signals } from "../ansi-shell/signals.js";
diff --git a/src/phoenix/src/pty/XDocumentPTT.js b/src/phoenix/src/pty/XDocumentPTT.js
index 64435d2d..3846583d 100644
--- a/src/phoenix/src/pty/XDocumentPTT.js
+++ b/src/phoenix/src/pty/XDocumentPTT.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/completers/CommandCompleter.js b/src/phoenix/src/puter-shell/completers/CommandCompleter.js
index 4f9fa2df..4e9d7f6a 100644
--- a/src/phoenix/src/puter-shell/completers/CommandCompleter.js
+++ b/src/phoenix/src/puter-shell/completers/CommandCompleter.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/completers/FileCompleter.js b/src/phoenix/src/puter-shell/completers/FileCompleter.js
index 805024c6..392f19e3 100644
--- a/src/phoenix/src/puter-shell/completers/FileCompleter.js
+++ b/src/phoenix/src/puter-shell/completers/FileCompleter.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/completers/OptionCompleter.js b/src/phoenix/src/puter-shell/completers/OptionCompleter.js
index 922f2bad..b9906a4a 100644
--- a/src/phoenix/src/puter-shell/completers/OptionCompleter.js
+++ b/src/phoenix/src/puter-shell/completers/OptionCompleter.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/__exports__.js b/src/phoenix/src/puter-shell/coreutils/__exports__.js
index 7d35eb96..6576a1c7 100644
--- a/src/phoenix/src/puter-shell/coreutils/__exports__.js
+++ b/src/phoenix/src/puter-shell/coreutils/__exports__.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/ai.js b/src/phoenix/src/puter-shell/coreutils/ai.js
index 23e2bbb2..c73ddf97 100644
--- a/src/phoenix/src/puter-shell/coreutils/ai.js
+++ b/src/phoenix/src/puter-shell/coreutils/ai.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/basename.js b/src/phoenix/src/puter-shell/coreutils/basename.js
index f5e78602..e7ede739 100644
--- a/src/phoenix/src/puter-shell/coreutils/basename.js
+++ b/src/phoenix/src/puter-shell/coreutils/basename.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/cat.js b/src/phoenix/src/puter-shell/coreutils/cat.js
index f1e2941f..b555fdc1 100644
--- a/src/phoenix/src/puter-shell/coreutils/cat.js
+++ b/src/phoenix/src/puter-shell/coreutils/cat.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/cd.js b/src/phoenix/src/puter-shell/coreutils/cd.js
index 7352d39c..0463290e 100644
--- a/src/phoenix/src/puter-shell/coreutils/cd.js
+++ b/src/phoenix/src/puter-shell/coreutils/cd.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/changelog.js b/src/phoenix/src/puter-shell/coreutils/changelog.js
index 027ec4c9..0785df0d 100644
--- a/src/phoenix/src/puter-shell/coreutils/changelog.js
+++ b/src/phoenix/src/puter-shell/coreutils/changelog.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/clear.js b/src/phoenix/src/puter-shell/coreutils/clear.js
index 4e17963a..e25a9184 100644
--- a/src/phoenix/src/puter-shell/coreutils/clear.js
+++ b/src/phoenix/src/puter-shell/coreutils/clear.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/concept-parser.js b/src/phoenix/src/puter-shell/coreutils/concept-parser.js
index b17ab65f..1ed2ebd3 100644
--- a/src/phoenix/src/puter-shell/coreutils/concept-parser.js
+++ b/src/phoenix/src/puter-shell/coreutils/concept-parser.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import { GrammarContext, standard_parsers } from '@heyputer/parsely/exports.js';
import { Parser, UNRECOGNIZED, VALUE } from '@heyputer/parsely/parser.js';
import { StringStream } from '@heyputer/parsely/streams.js';
diff --git a/src/phoenix/src/puter-shell/coreutils/coreutil_lib/echo_escapes.js b/src/phoenix/src/puter-shell/coreutils/coreutil_lib/echo_escapes.js
index 8bcc0be1..d6c1339c 100644
--- a/src/phoenix/src/puter-shell/coreutils/coreutil_lib/echo_escapes.js
+++ b/src/phoenix/src/puter-shell/coreutils/coreutil_lib/echo_escapes.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/coreutil_lib/exit.js b/src/phoenix/src/puter-shell/coreutils/coreutil_lib/exit.js
index 1d7b419b..95efc7d1 100644
--- a/src/phoenix/src/puter-shell/coreutils/coreutil_lib/exit.js
+++ b/src/phoenix/src/puter-shell/coreutils/coreutil_lib/exit.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/coreutil_lib/help.js b/src/phoenix/src/puter-shell/coreutils/coreutil_lib/help.js
index fbf16f4e..02eb94d8 100644
--- a/src/phoenix/src/puter-shell/coreutils/coreutil_lib/help.js
+++ b/src/phoenix/src/puter-shell/coreutils/coreutil_lib/help.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/coreutil_lib/validate.js b/src/phoenix/src/puter-shell/coreutils/coreutil_lib/validate.js
index 807f748b..efbcf957 100644
--- a/src/phoenix/src/puter-shell/coreutils/coreutil_lib/validate.js
+++ b/src/phoenix/src/puter-shell/coreutils/coreutil_lib/validate.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/cp.js b/src/phoenix/src/puter-shell/coreutils/cp.js
index 032f7ecc..d0d17342 100644
--- a/src/phoenix/src/puter-shell/coreutils/cp.js
+++ b/src/phoenix/src/puter-shell/coreutils/cp.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/date.js b/src/phoenix/src/puter-shell/coreutils/date.js
index fd3bcc68..028dfbba 100644
--- a/src/phoenix/src/puter-shell/coreutils/date.js
+++ b/src/phoenix/src/puter-shell/coreutils/date.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/dcall.js b/src/phoenix/src/puter-shell/coreutils/dcall.js
index d24d89f4..144a5464 100644
--- a/src/phoenix/src/puter-shell/coreutils/dcall.js
+++ b/src/phoenix/src/puter-shell/coreutils/dcall.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/dirname.js b/src/phoenix/src/puter-shell/coreutils/dirname.js
index c0f52d51..dbd595af 100644
--- a/src/phoenix/src/puter-shell/coreutils/dirname.js
+++ b/src/phoenix/src/puter-shell/coreutils/dirname.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/echo.js b/src/phoenix/src/puter-shell/coreutils/echo.js
index d29509a5..f5bda9cd 100644
--- a/src/phoenix/src/puter-shell/coreutils/echo.js
+++ b/src/phoenix/src/puter-shell/coreutils/echo.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/env.js b/src/phoenix/src/puter-shell/coreutils/env.js
index 6f9eb4ab..5cd6776b 100644
--- a/src/phoenix/src/puter-shell/coreutils/env.js
+++ b/src/phoenix/src/puter-shell/coreutils/env.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/errno.js b/src/phoenix/src/puter-shell/coreutils/errno.js
index db74b2f6..34b509b3 100644
--- a/src/phoenix/src/puter-shell/coreutils/errno.js
+++ b/src/phoenix/src/puter-shell/coreutils/errno.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/exit.js b/src/phoenix/src/puter-shell/coreutils/exit.js
index a3164984..b0fcd998 100644
--- a/src/phoenix/src/puter-shell/coreutils/exit.js
+++ b/src/phoenix/src/puter-shell/coreutils/exit.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/false.js b/src/phoenix/src/puter-shell/coreutils/false.js
index d888e53a..5b31e632 100644
--- a/src/phoenix/src/puter-shell/coreutils/false.js
+++ b/src/phoenix/src/puter-shell/coreutils/false.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/grep.js b/src/phoenix/src/puter-shell/coreutils/grep.js
index eb183144..718af4d1 100644
--- a/src/phoenix/src/puter-shell/coreutils/grep.js
+++ b/src/phoenix/src/puter-shell/coreutils/grep.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/head.js b/src/phoenix/src/puter-shell/coreutils/head.js
index e96d8570..ba6ecc55 100644
--- a/src/phoenix/src/puter-shell/coreutils/head.js
+++ b/src/phoenix/src/puter-shell/coreutils/head.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/help.js b/src/phoenix/src/puter-shell/coreutils/help.js
index 817074c0..5171cf73 100644
--- a/src/phoenix/src/puter-shell/coreutils/help.js
+++ b/src/phoenix/src/puter-shell/coreutils/help.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/jq.js b/src/phoenix/src/puter-shell/coreutils/jq.js
index ab3a641d..3f92f8f9 100644
--- a/src/phoenix/src/puter-shell/coreutils/jq.js
+++ b/src/phoenix/src/puter-shell/coreutils/jq.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/login.js b/src/phoenix/src/puter-shell/coreutils/login.js
index e5117cfa..2ef56d43 100644
--- a/src/phoenix/src/puter-shell/coreutils/login.js
+++ b/src/phoenix/src/puter-shell/coreutils/login.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/ls.js b/src/phoenix/src/puter-shell/coreutils/ls.js
index c30d8fbe..de6cbc8e 100644
--- a/src/phoenix/src/puter-shell/coreutils/ls.js
+++ b/src/phoenix/src/puter-shell/coreutils/ls.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/man.js b/src/phoenix/src/puter-shell/coreutils/man.js
index 2c16c1de..2af6ff1e 100644
--- a/src/phoenix/src/puter-shell/coreutils/man.js
+++ b/src/phoenix/src/puter-shell/coreutils/man.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/mkdir.js b/src/phoenix/src/puter-shell/coreutils/mkdir.js
index f14d32e6..dd6deef5 100644
--- a/src/phoenix/src/puter-shell/coreutils/mkdir.js
+++ b/src/phoenix/src/puter-shell/coreutils/mkdir.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/mv.js b/src/phoenix/src/puter-shell/coreutils/mv.js
index bf05b50e..d32146d8 100644
--- a/src/phoenix/src/puter-shell/coreutils/mv.js
+++ b/src/phoenix/src/puter-shell/coreutils/mv.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/neofetch.js b/src/phoenix/src/puter-shell/coreutils/neofetch.js
index a7d447c5..27ceb11f 100644
--- a/src/phoenix/src/puter-shell/coreutils/neofetch.js
+++ b/src/phoenix/src/puter-shell/coreutils/neofetch.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/printf.js b/src/phoenix/src/puter-shell/coreutils/printf.js
index 0a99d87d..51d0aa3d 100644
--- a/src/phoenix/src/puter-shell/coreutils/printf.js
+++ b/src/phoenix/src/puter-shell/coreutils/printf.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/printhist.js b/src/phoenix/src/puter-shell/coreutils/printhist.js
index d740fcc6..88efc09f 100644
--- a/src/phoenix/src/puter-shell/coreutils/printhist.js
+++ b/src/phoenix/src/puter-shell/coreutils/printhist.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/pwd.js b/src/phoenix/src/puter-shell/coreutils/pwd.js
index 1fd5907f..f6be908a 100644
--- a/src/phoenix/src/puter-shell/coreutils/pwd.js
+++ b/src/phoenix/src/puter-shell/coreutils/pwd.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/rm.js b/src/phoenix/src/puter-shell/coreutils/rm.js
index 358e41b5..2e1e09f6 100644
--- a/src/phoenix/src/puter-shell/coreutils/rm.js
+++ b/src/phoenix/src/puter-shell/coreutils/rm.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/rmdir.js b/src/phoenix/src/puter-shell/coreutils/rmdir.js
index d03048f0..9efceb35 100644
--- a/src/phoenix/src/puter-shell/coreutils/rmdir.js
+++ b/src/phoenix/src/puter-shell/coreutils/rmdir.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/sample-data.js b/src/phoenix/src/puter-shell/coreutils/sample-data.js
index 039b6900..ce3b05bf 100644
--- a/src/phoenix/src/puter-shell/coreutils/sample-data.js
+++ b/src/phoenix/src/puter-shell/coreutils/sample-data.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/sed.js b/src/phoenix/src/puter-shell/coreutils/sed.js
index c9c10ede..f4b4b5f3 100644
--- a/src/phoenix/src/puter-shell/coreutils/sed.js
+++ b/src/phoenix/src/puter-shell/coreutils/sed.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/sed/address.js b/src/phoenix/src/puter-shell/coreutils/sed/address.js
index 446466cc..b90a0c03 100644
--- a/src/phoenix/src/puter-shell/coreutils/sed/address.js
+++ b/src/phoenix/src/puter-shell/coreutils/sed/address.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/sed/command.js b/src/phoenix/src/puter-shell/coreutils/sed/command.js
index 56b8c84c..037da01b 100644
--- a/src/phoenix/src/puter-shell/coreutils/sed/command.js
+++ b/src/phoenix/src/puter-shell/coreutils/sed/command.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/sed/parser.js b/src/phoenix/src/puter-shell/coreutils/sed/parser.js
index 3d742822..28d0b419 100644
--- a/src/phoenix/src/puter-shell/coreutils/sed/parser.js
+++ b/src/phoenix/src/puter-shell/coreutils/sed/parser.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/sed/script.js b/src/phoenix/src/puter-shell/coreutils/sed/script.js
index f77c89db..e59a5c5c 100644
--- a/src/phoenix/src/puter-shell/coreutils/sed/script.js
+++ b/src/phoenix/src/puter-shell/coreutils/sed/script.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/sed/utils.js b/src/phoenix/src/puter-shell/coreutils/sed/utils.js
index 25da2a9c..f3d59214 100644
--- a/src/phoenix/src/puter-shell/coreutils/sed/utils.js
+++ b/src/phoenix/src/puter-shell/coreutils/sed/utils.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/sleep.js b/src/phoenix/src/puter-shell/coreutils/sleep.js
index 9023053f..b71b8f43 100644
--- a/src/phoenix/src/puter-shell/coreutils/sleep.js
+++ b/src/phoenix/src/puter-shell/coreutils/sleep.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/sort.js b/src/phoenix/src/puter-shell/coreutils/sort.js
index 3f725a82..4ec623a9 100644
--- a/src/phoenix/src/puter-shell/coreutils/sort.js
+++ b/src/phoenix/src/puter-shell/coreutils/sort.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/tail.js b/src/phoenix/src/puter-shell/coreutils/tail.js
index f93c5482..6a70bb59 100644
--- a/src/phoenix/src/puter-shell/coreutils/tail.js
+++ b/src/phoenix/src/puter-shell/coreutils/tail.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/test.js b/src/phoenix/src/puter-shell/coreutils/test.js
index baf0e19b..5c5bc262 100644
--- a/src/phoenix/src/puter-shell/coreutils/test.js
+++ b/src/phoenix/src/puter-shell/coreutils/test.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/touch.js b/src/phoenix/src/puter-shell/coreutils/touch.js
index 5b32067a..5757c232 100644
--- a/src/phoenix/src/puter-shell/coreutils/touch.js
+++ b/src/phoenix/src/puter-shell/coreutils/touch.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/true.js b/src/phoenix/src/puter-shell/coreutils/true.js
index fa2ddce9..31695452 100644
--- a/src/phoenix/src/puter-shell/coreutils/true.js
+++ b/src/phoenix/src/puter-shell/coreutils/true.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/txt2img.js b/src/phoenix/src/puter-shell/coreutils/txt2img.js
index bc432d24..c4586540 100644
--- a/src/phoenix/src/puter-shell/coreutils/txt2img.js
+++ b/src/phoenix/src/puter-shell/coreutils/txt2img.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/usages.js b/src/phoenix/src/puter-shell/coreutils/usages.js
index a04c39e9..a97ec31f 100644
--- a/src/phoenix/src/puter-shell/coreutils/usages.js
+++ b/src/phoenix/src/puter-shell/coreutils/usages.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/wc.js b/src/phoenix/src/puter-shell/coreutils/wc.js
index 1924a4d3..f3914467 100644
--- a/src/phoenix/src/puter-shell/coreutils/wc.js
+++ b/src/phoenix/src/puter-shell/coreutils/wc.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/coreutils/which.js b/src/phoenix/src/puter-shell/coreutils/which.js
index 6871acdc..8fb3ab78 100644
--- a/src/phoenix/src/puter-shell/coreutils/which.js
+++ b/src/phoenix/src/puter-shell/coreutils/which.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/main.js b/src/phoenix/src/puter-shell/main.js
index a962a27f..98b9dcd2 100644
--- a/src/phoenix/src/puter-shell/main.js
+++ b/src/phoenix/src/puter-shell/main.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/plugins/ChatHistoryPlugin.js b/src/phoenix/src/puter-shell/plugins/ChatHistoryPlugin.js
index 8d9df329..103c15a8 100644
--- a/src/phoenix/src/puter-shell/plugins/ChatHistoryPlugin.js
+++ b/src/phoenix/src/puter-shell/plugins/ChatHistoryPlugin.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/providers/BuiltinCommandProvider.js b/src/phoenix/src/puter-shell/providers/BuiltinCommandProvider.js
index fc766dc6..680afa5f 100644
--- a/src/phoenix/src/puter-shell/providers/BuiltinCommandProvider.js
+++ b/src/phoenix/src/puter-shell/providers/BuiltinCommandProvider.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/providers/CompositeCommandProvider.js b/src/phoenix/src/puter-shell/providers/CompositeCommandProvider.js
index ceffeed5..91300e7f 100644
--- a/src/phoenix/src/puter-shell/providers/CompositeCommandProvider.js
+++ b/src/phoenix/src/puter-shell/providers/CompositeCommandProvider.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/providers/PathCommandProvider.js b/src/phoenix/src/puter-shell/providers/PathCommandProvider.js
index 6b55a044..6ce2d435 100644
--- a/src/phoenix/src/puter-shell/providers/PathCommandProvider.js
+++ b/src/phoenix/src/puter-shell/providers/PathCommandProvider.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/providers/PuterAppCommandProvider.js b/src/phoenix/src/puter-shell/providers/PuterAppCommandProvider.js
index 0de34ed2..13540b15 100644
--- a/src/phoenix/src/puter-shell/providers/PuterAppCommandProvider.js
+++ b/src/phoenix/src/puter-shell/providers/PuterAppCommandProvider.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/puter-shell/providers/ScriptCommandProvider.js b/src/phoenix/src/puter-shell/providers/ScriptCommandProvider.js
index f2b1edbf..e080fa6a 100644
--- a/src/phoenix/src/puter-shell/providers/ScriptCommandProvider.js
+++ b/src/phoenix/src/puter-shell/providers/ScriptCommandProvider.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/util/bytes.js b/src/phoenix/src/util/bytes.js
index cee745c9..9c785ba5 100644
--- a/src/phoenix/src/util/bytes.js
+++ b/src/phoenix/src/util/bytes.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/util/file.js b/src/phoenix/src/util/file.js
index a29045f2..4e1ff670 100644
--- a/src/phoenix/src/util/file.js
+++ b/src/phoenix/src/util/file.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import { resolveRelativePath } from './path.js';
// Iterate the given file, one line at a time.
diff --git a/src/phoenix/src/util/lang.js b/src/phoenix/src/util/lang.js
index dea8aa06..510f728e 100644
--- a/src/phoenix/src/util/lang.js
+++ b/src/phoenix/src/util/lang.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/util/log.js b/src/phoenix/src/util/log.js
index f68f772a..aa55747b 100644
--- a/src/phoenix/src/util/log.js
+++ b/src/phoenix/src/util/log.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/util/path.js b/src/phoenix/src/util/path.js
index bd418be0..817de1b9 100644
--- a/src/phoenix/src/util/path.js
+++ b/src/phoenix/src/util/path.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/util/singleton.js b/src/phoenix/src/util/singleton.js
index 4bcbf85d..6e7c2b94 100644
--- a/src/phoenix/src/util/singleton.js
+++ b/src/phoenix/src/util/singleton.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/util/statemachine.js b/src/phoenix/src/util/statemachine.js
index ca4a77ee..459a6d0d 100644
--- a/src/phoenix/src/util/statemachine.js
+++ b/src/phoenix/src/util/statemachine.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/src/util/wrap-text.js b/src/phoenix/src/util/wrap-text.js
index 86adfe84..58c97a1f 100644
--- a/src/phoenix/src/util/wrap-text.js
+++ b/src/phoenix/src/util/wrap-text.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test.js b/src/phoenix/test.js
index 2414e287..dbf89ac9 100644
--- a/src/phoenix/test.js
+++ b/src/phoenix/test.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils.test.js b/src/phoenix/test/coreutils.test.js
index 004b7677..511ff609 100644
--- a/src/phoenix/test/coreutils.test.js
+++ b/src/phoenix/test/coreutils.test.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/basename.js b/src/phoenix/test/coreutils/basename.js
index 888e1299..39f56a71 100644
--- a/src/phoenix/test/coreutils/basename.js
+++ b/src/phoenix/test/coreutils/basename.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/date.js b/src/phoenix/test/coreutils/date.js
index efc800ea..c38e8af5 100644
--- a/src/phoenix/test/coreutils/date.js
+++ b/src/phoenix/test/coreutils/date.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/dirname.js b/src/phoenix/test/coreutils/dirname.js
index a263b9d7..9cb8a457 100644
--- a/src/phoenix/test/coreutils/dirname.js
+++ b/src/phoenix/test/coreutils/dirname.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/echo.js b/src/phoenix/test/coreutils/echo.js
index 099f762c..3bb7134b 100644
--- a/src/phoenix/test/coreutils/echo.js
+++ b/src/phoenix/test/coreutils/echo.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/env.js b/src/phoenix/test/coreutils/env.js
index 5cb30a54..26855b93 100644
--- a/src/phoenix/test/coreutils/env.js
+++ b/src/phoenix/test/coreutils/env.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/errno.js b/src/phoenix/test/coreutils/errno.js
index 0191125b..c09bf9d5 100644
--- a/src/phoenix/test/coreutils/errno.js
+++ b/src/phoenix/test/coreutils/errno.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/false.js b/src/phoenix/test/coreutils/false.js
index bb88d31e..ef5ad3ff 100644
--- a/src/phoenix/test/coreutils/false.js
+++ b/src/phoenix/test/coreutils/false.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/harness.js b/src/phoenix/test/coreutils/harness.js
index 08ea91c2..344a8ebb 100644
--- a/src/phoenix/test/coreutils/harness.js
+++ b/src/phoenix/test/coreutils/harness.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/head.js b/src/phoenix/test/coreutils/head.js
index fb34034f..0c6de276 100644
--- a/src/phoenix/test/coreutils/head.js
+++ b/src/phoenix/test/coreutils/head.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/printf.js b/src/phoenix/test/coreutils/printf.js
index 04c6c6a9..60b79de0 100644
--- a/src/phoenix/test/coreutils/printf.js
+++ b/src/phoenix/test/coreutils/printf.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/sleep.js b/src/phoenix/test/coreutils/sleep.js
index 039dbd8c..cea93e44 100644
--- a/src/phoenix/test/coreutils/sleep.js
+++ b/src/phoenix/test/coreutils/sleep.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/sort.js b/src/phoenix/test/coreutils/sort.js
index 98302935..5f336e4c 100644
--- a/src/phoenix/test/coreutils/sort.js
+++ b/src/phoenix/test/coreutils/sort.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/tail.js b/src/phoenix/test/coreutils/tail.js
index 93cd28f0..4f5f1dc4 100644
--- a/src/phoenix/test/coreutils/tail.js
+++ b/src/phoenix/test/coreutils/tail.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/true.js b/src/phoenix/test/coreutils/true.js
index 7ef5dfe8..2e16062b 100644
--- a/src/phoenix/test/coreutils/true.js
+++ b/src/phoenix/test/coreutils/true.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/coreutils/wc.js b/src/phoenix/test/coreutils/wc.js
index 16fa45bb..285f03db 100644
--- a/src/phoenix/test/coreutils/wc.js
+++ b/src/phoenix/test/coreutils/wc.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/readtoken.js b/src/phoenix/test/readtoken.js
index 549e3589..836b9694 100644
--- a/src/phoenix/test/readtoken.js
+++ b/src/phoenix/test/readtoken.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/test-bytes.js b/src/phoenix/test/test-bytes.js
index ba583762..5ef27bab 100644
--- a/src/phoenix/test/test-bytes.js
+++ b/src/phoenix/test/test-bytes.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/test-stateful-processor.js b/src/phoenix/test/test-stateful-processor.js
index 8e6ecd5a..5264ede1 100644
--- a/src/phoenix/test/test-stateful-processor.js
+++ b/src/phoenix/test/test-stateful-processor.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/test/wrap-text.js b/src/phoenix/test/wrap-text.js
index 3ee7a7bd..5d6ba3a5 100644
--- a/src/phoenix/test/wrap-text.js
+++ b/src/phoenix/test/wrap-text.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/phoenix/tools/gen.js b/src/phoenix/tools/gen.js
index 031d6932..713b2c1c 100644
--- a/src/phoenix/tools/gen.js
+++ b/src/phoenix/tools/gen.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/pty/exports.js b/src/pty/exports.js
index 1e36b768..6dd6cad4 100644
--- a/src/pty/exports.js
+++ b/src/pty/exports.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/puter-js-common/index.js b/src/puter-js-common/index.js
index 384cdc8f..ce7be26a 100644
--- a/src/puter-js-common/index.js
+++ b/src/puter-js-common/index.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
const { AdvancedBase } = require('./src/AdvancedBase');
module.exports = {
diff --git a/src/puter-js-common/src/AdvancedBase.js b/src/puter-js-common/src/AdvancedBase.js
index e0ca8ab4..069e474a 100644
--- a/src/puter-js-common/src/AdvancedBase.js
+++ b/src/puter-js-common/src/AdvancedBase.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
// This doesn't go in ./bases because it logically depends on
// both ./bases and ./traits, and ./traits depends on ./bases.
diff --git a/src/puter-js-common/src/PosixError.js b/src/puter-js-common/src/PosixError.js
index 06159998..6d177f60 100644
--- a/src/puter-js-common/src/PosixError.js
+++ b/src/puter-js-common/src/PosixError.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/puter-js-common/src/bases/BasicBase.js b/src/puter-js-common/src/bases/BasicBase.js
index a01a0f00..78d121f9 100644
--- a/src/puter-js-common/src/bases/BasicBase.js
+++ b/src/puter-js-common/src/bases/BasicBase.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
class BasicBase {
_get_inheritance_chain () {
const chain = [];
diff --git a/src/puter-js-common/src/bases/TraitBase.js b/src/puter-js-common/src/bases/TraitBase.js
index 3cec906a..62d3cc1e 100644
--- a/src/puter-js-common/src/bases/TraitBase.js
+++ b/src/puter-js-common/src/bases/TraitBase.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
const { BasicBase } = require("./BasicBase");
class TraitBase extends BasicBase {
diff --git a/src/puter-js-common/src/traits/NodeModuleDITrait.js b/src/puter-js-common/src/traits/NodeModuleDITrait.js
index 1e011de6..d7952704 100644
--- a/src/puter-js-common/src/traits/NodeModuleDITrait.js
+++ b/src/puter-js-common/src/traits/NodeModuleDITrait.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/**
* This trait allows dependency injection of node modules.
* This is incredibly useful for passing mock implementations
diff --git a/src/puter-js-common/src/traits/PropertiesTrait.js b/src/puter-js-common/src/traits/PropertiesTrait.js
index 7e35a9f3..9e2c4b72 100644
--- a/src/puter-js-common/src/traits/PropertiesTrait.js
+++ b/src/puter-js-common/src/traits/PropertiesTrait.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
module.exports = {
install_in_instance: (instance) => {
const properties = instance._get_merged_static_object('PROPERTIES');
diff --git a/src/puter-js-common/test/test.js b/src/puter-js-common/test/test.js
index ef08e5b4..34a36f4d 100644
--- a/src/puter-js-common/test/test.js
+++ b/src/puter-js-common/test/test.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
const { expect } = require('chai');
const { BasicBase } = require('../src/bases/BasicBase');
const { AdvancedBase } = require('../src/AdvancedBase');
diff --git a/src/puter-js/src/index.js b/src/puter-js/src/index.js
index 425fb06a..0ccb016e 100644
--- a/src/puter-js/src/index.js
+++ b/src/puter-js/src/index.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import OS from './modules/OS.js';
import FileSystem from './modules/FileSystem/index.js';
import Hosting from './modules/Hosting.js';
diff --git a/src/puter-js/src/modules/AI.js b/src/puter-js/src/modules/AI.js
index edf9abb4..9a8b47c4 100644
--- a/src/puter-js/src/modules/AI.js
+++ b/src/puter-js/src/modules/AI.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../lib/utils.js'
class AI{
diff --git a/src/puter-js/src/modules/Apps.js b/src/puter-js/src/modules/Apps.js
index 4307e29b..0ab71457 100644
--- a/src/puter-js/src/modules/Apps.js
+++ b/src/puter-js/src/modules/Apps.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../lib/utils.js'
class Apps{
diff --git a/src/puter-js/src/modules/Auth.js b/src/puter-js/src/modules/Auth.js
index 7c877bbe..9858c15c 100644
--- a/src/puter-js/src/modules/Auth.js
+++ b/src/puter-js/src/modules/Auth.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../lib/utils.js'
class Auth{
diff --git a/src/puter-js/src/modules/Email.js b/src/puter-js/src/modules/Email.js
index 4f754d33..c1340516 100644
--- a/src/puter-js/src/modules/Email.js
+++ b/src/puter-js/src/modules/Email.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../lib/utils.js'
class Email{
diff --git a/src/puter-js/src/modules/FSItem.js b/src/puter-js/src/modules/FSItem.js
index 0df2ec5f..52ac52b6 100644
--- a/src/puter-js/src/modules/FSItem.js
+++ b/src/puter-js/src/modules/FSItem.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import path from "../lib/path.js"
class FSItem{
diff --git a/src/puter-js/src/modules/FileSystem/index.js b/src/puter-js/src/modules/FileSystem/index.js
index 0e6b2679..e3de1750 100644
--- a/src/puter-js/src/modules/FileSystem/index.js
+++ b/src/puter-js/src/modules/FileSystem/index.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import io from '../../lib/socket.io/socket.io.esm.min.js';
// Operations
diff --git a/src/puter-js/src/modules/FileSystem/operations/copy.js b/src/puter-js/src/modules/FileSystem/operations/copy.js
index 4e33162a..30b32a8a 100644
--- a/src/puter-js/src/modules/FileSystem/operations/copy.js
+++ b/src/puter-js/src/modules/FileSystem/operations/copy.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../../../lib/utils.js';
import getAbsolutePathForApp from '../utils/getAbsolutePathForApp.js';
diff --git a/src/puter-js/src/modules/FileSystem/operations/deleteFSEntry.js b/src/puter-js/src/modules/FileSystem/operations/deleteFSEntry.js
index 0b8644b6..616e202f 100644
--- a/src/puter-js/src/modules/FileSystem/operations/deleteFSEntry.js
+++ b/src/puter-js/src/modules/FileSystem/operations/deleteFSEntry.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../../../lib/utils.js';
import getAbsolutePathForApp from '../utils/getAbsolutePathForApp.js';
diff --git a/src/puter-js/src/modules/FileSystem/operations/mkdir.js b/src/puter-js/src/modules/FileSystem/operations/mkdir.js
index c256ab65..d48474b7 100644
--- a/src/puter-js/src/modules/FileSystem/operations/mkdir.js
+++ b/src/puter-js/src/modules/FileSystem/operations/mkdir.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../../../lib/utils.js';
import getAbsolutePathForApp from '../utils/getAbsolutePathForApp.js';
import path from "../../../lib/path.js"
diff --git a/src/puter-js/src/modules/FileSystem/operations/move.js b/src/puter-js/src/modules/FileSystem/operations/move.js
index eb87c245..ca338cd1 100644
--- a/src/puter-js/src/modules/FileSystem/operations/move.js
+++ b/src/puter-js/src/modules/FileSystem/operations/move.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../../../lib/utils.js';
import getAbsolutePathForApp from '../utils/getAbsolutePathForApp.js';
diff --git a/src/puter-js/src/modules/FileSystem/operations/read.js b/src/puter-js/src/modules/FileSystem/operations/read.js
index 971bc59d..0d35b868 100644
--- a/src/puter-js/src/modules/FileSystem/operations/read.js
+++ b/src/puter-js/src/modules/FileSystem/operations/read.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../../../lib/utils.js';
import getAbsolutePathForApp from '../utils/getAbsolutePathForApp.js';
diff --git a/src/puter-js/src/modules/FileSystem/operations/readdir.js b/src/puter-js/src/modules/FileSystem/operations/readdir.js
index fe2f2e14..1bbbe001 100644
--- a/src/puter-js/src/modules/FileSystem/operations/readdir.js
+++ b/src/puter-js/src/modules/FileSystem/operations/readdir.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../../../lib/utils.js';
import getAbsolutePathForApp from '../utils/getAbsolutePathForApp.js';
diff --git a/src/puter-js/src/modules/FileSystem/operations/rename.js b/src/puter-js/src/modules/FileSystem/operations/rename.js
index c670e482..0c8e1ad2 100644
--- a/src/puter-js/src/modules/FileSystem/operations/rename.js
+++ b/src/puter-js/src/modules/FileSystem/operations/rename.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../../../lib/utils.js';
import getAbsolutePathForApp from '../utils/getAbsolutePathForApp.js';
diff --git a/src/puter-js/src/modules/FileSystem/operations/sign.js b/src/puter-js/src/modules/FileSystem/operations/sign.js
index c2d5efb5..20fe8713 100644
--- a/src/puter-js/src/modules/FileSystem/operations/sign.js
+++ b/src/puter-js/src/modules/FileSystem/operations/sign.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../../../lib/utils.js';
diff --git a/src/puter-js/src/modules/FileSystem/operations/space.js b/src/puter-js/src/modules/FileSystem/operations/space.js
index 9c2e787f..6592936d 100644
--- a/src/puter-js/src/modules/FileSystem/operations/space.js
+++ b/src/puter-js/src/modules/FileSystem/operations/space.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../../../lib/utils.js';
const space = function (...args) {
diff --git a/src/puter-js/src/modules/FileSystem/operations/stat.js b/src/puter-js/src/modules/FileSystem/operations/stat.js
index 28f9d649..856f51eb 100644
--- a/src/puter-js/src/modules/FileSystem/operations/stat.js
+++ b/src/puter-js/src/modules/FileSystem/operations/stat.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../../../lib/utils.js';
import getAbsolutePathForApp from '../utils/getAbsolutePathForApp.js';
diff --git a/src/puter-js/src/modules/FileSystem/operations/upload.js b/src/puter-js/src/modules/FileSystem/operations/upload.js
index ab8778ea..3744d190 100644
--- a/src/puter-js/src/modules/FileSystem/operations/upload.js
+++ b/src/puter-js/src/modules/FileSystem/operations/upload.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../../../lib/utils.js';
import getAbsolutePathForApp from '../utils/getAbsolutePathForApp.js';
import path from "../../../lib/path.js"
diff --git a/src/puter-js/src/modules/FileSystem/operations/write.js b/src/puter-js/src/modules/FileSystem/operations/write.js
index c1319ad4..dd160478 100644
--- a/src/puter-js/src/modules/FileSystem/operations/write.js
+++ b/src/puter-js/src/modules/FileSystem/operations/write.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import path from "../../../lib/path.js"
import getAbsolutePathForApp from '../utils/getAbsolutePathForApp.js';
diff --git a/src/puter-js/src/modules/FileSystem/utils/getAbsolutePathForApp.js b/src/puter-js/src/modules/FileSystem/utils/getAbsolutePathForApp.js
index 186b94dc..48a66695 100644
--- a/src/puter-js/src/modules/FileSystem/utils/getAbsolutePathForApp.js
+++ b/src/puter-js/src/modules/FileSystem/utils/getAbsolutePathForApp.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import path from "../../../lib/path.js"
const getAbsolutePathForApp = (relativePath)=>{
diff --git a/src/puter-js/src/modules/Hosting.js b/src/puter-js/src/modules/Hosting.js
index fa223416..bca46b3d 100644
--- a/src/puter-js/src/modules/Hosting.js
+++ b/src/puter-js/src/modules/Hosting.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../lib/utils.js';
import getAbsolutePathForApp from './FileSystem/utils/getAbsolutePathForApp.js';
diff --git a/src/puter-js/src/modules/KV.js b/src/puter-js/src/modules/KV.js
index c0405606..0341d179 100644
--- a/src/puter-js/src/modules/KV.js
+++ b/src/puter-js/src/modules/KV.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../lib/utils.js'
class KV{
diff --git a/src/puter-js/src/modules/OS.js b/src/puter-js/src/modules/OS.js
index a436e58a..cf2f43d4 100644
--- a/src/puter-js/src/modules/OS.js
+++ b/src/puter-js/src/modules/OS.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import * as utils from '../lib/utils.js'
class OS{
diff --git a/src/puter-js/src/modules/PuterDialog.js b/src/puter-js/src/modules/PuterDialog.js
index 8be19417..1d77c076 100644
--- a/src/puter-js/src/modules/PuterDialog.js
+++ b/src/puter-js/src/modules/PuterDialog.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
class PuterDialog extends HTMLElement {
constructor(resolve, reject) {
super();
diff --git a/src/puter-js/src/modules/UI.js b/src/puter-js/src/modules/UI.js
index 8a3fe496..221cb9ae 100644
--- a/src/puter-js/src/modules/UI.js
+++ b/src/puter-js/src/modules/UI.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import FSItem from './FSItem.js';
import PuterDialog from './PuterDialog.js';
import EventListener from '../lib/EventListener.js';
diff --git a/src/puter-js/src/modules/Util.js b/src/puter-js/src/modules/Util.js
index 16dbe147..2d8fc119 100644
--- a/src/puter-js/src/modules/Util.js
+++ b/src/puter-js/src/modules/Util.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
import { CallbackManager, Dehydrator, Hydrator } from "../lib/xdrpc";
/**
diff --git a/src/puter-js/test/fs.test.js b/src/puter-js/test/fs.test.js
index c194ef38..dcbd0715 100644
--- a/src/puter-js/test/fs.test.js
+++ b/src/puter-js/test/fs.test.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/* eslint-disable */
// TODO: Make these more compatible with eslint
naughtyStrings = [
diff --git a/src/puter-js/test/kv.test.js b/src/puter-js/test/kv.test.js
index 16de6ab3..0a91ab2b 100644
--- a/src/puter-js/test/kv.test.js
+++ b/src/puter-js/test/kv.test.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/* eslint-disable */
// TODO: Make these more compatible with eslint
window.kvTests = [
diff --git a/src/strataparse/dsl/ParserBuilder.js b/src/strataparse/dsl/ParserBuilder.js
index 0936f973..1a218b28 100644
--- a/src/strataparse/dsl/ParserBuilder.js
+++ b/src/strataparse/dsl/ParserBuilder.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/dsl/ParserRegistry.js b/src/strataparse/dsl/ParserRegistry.js
index 87e5f7b4..9ef5104e 100644
--- a/src/strataparse/dsl/ParserRegistry.js
+++ b/src/strataparse/dsl/ParserRegistry.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/exports.js b/src/strataparse/exports.js
index 928f2902..daa579d2 100644
--- a/src/strataparse/exports.js
+++ b/src/strataparse/exports.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/parse.js b/src/strataparse/parse.js
index 14663335..fd5e675f 100644
--- a/src/strataparse/parse.js
+++ b/src/strataparse/parse.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/parse_impls/StrUntilParserImpl.js b/src/strataparse/parse_impls/StrUntilParserImpl.js
index 9f627faf..a80e4baa 100644
--- a/src/strataparse/parse_impls/StrUntilParserImpl.js
+++ b/src/strataparse/parse_impls/StrUntilParserImpl.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/parse_impls/combinators.js b/src/strataparse/parse_impls/combinators.js
index 6d6b5697..2f68a8c3 100644
--- a/src/strataparse/parse_impls/combinators.js
+++ b/src/strataparse/parse_impls/combinators.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/parse_impls/literal.js b/src/strataparse/parse_impls/literal.js
index 4b6319cf..b5af905e 100644
--- a/src/strataparse/parse_impls/literal.js
+++ b/src/strataparse/parse_impls/literal.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/parse_impls/whitespace.js b/src/strataparse/parse_impls/whitespace.js
index 82bcb1cb..baba772c 100644
--- a/src/strataparse/parse_impls/whitespace.js
+++ b/src/strataparse/parse_impls/whitespace.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/strata.js b/src/strataparse/strata.js
index 73dc7055..e3faafa8 100644
--- a/src/strataparse/strata.js
+++ b/src/strataparse/strata.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/strata_impls/ContextSwitchingPStratumImpl.js b/src/strataparse/strata_impls/ContextSwitchingPStratumImpl.js
index de819072..a3014ad8 100644
--- a/src/strataparse/strata_impls/ContextSwitchingPStratumImpl.js
+++ b/src/strataparse/strata_impls/ContextSwitchingPStratumImpl.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/strata_impls/FirstRecognizedPStratumImpl.js b/src/strataparse/strata_impls/FirstRecognizedPStratumImpl.js
index cc3c645c..2455d3f8 100644
--- a/src/strataparse/strata_impls/FirstRecognizedPStratumImpl.js
+++ b/src/strataparse/strata_impls/FirstRecognizedPStratumImpl.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/strata_impls/MergeWhitespacePStratumImpl.js b/src/strataparse/strata_impls/MergeWhitespacePStratumImpl.js
index f699557b..f5b7d927 100644
--- a/src/strataparse/strata_impls/MergeWhitespacePStratumImpl.js
+++ b/src/strataparse/strata_impls/MergeWhitespacePStratumImpl.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/strataparse/strata_impls/terminals.js b/src/strataparse/strata_impls/terminals.js
index eb3445c6..405a3e03 100644
--- a/src/strataparse/strata_impls/terminals.js
+++ b/src/strataparse/strata_impls/terminals.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/terminal/config/dev.js b/src/terminal/config/dev.js
index 129f9055..f3a709c6 100644
--- a/src/terminal/config/dev.js
+++ b/src/terminal/config/dev.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/terminal/config/release.js b/src/terminal/config/release.js
index a919ca1f..dad116d2 100644
--- a/src/terminal/config/release.js
+++ b/src/terminal/config/release.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/terminal/rollup.config.js b/src/terminal/rollup.config.js
index 7c0920b6..ae756766 100644
--- a/src/terminal/rollup.config.js
+++ b/src/terminal/rollup.config.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/terminal/src/main.js b/src/terminal/src/main.js
index d27f557f..f1254e70 100644
--- a/src/terminal/src/main.js
+++ b/src/terminal/src/main.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/terminal/src/pty/PTT.js b/src/terminal/src/pty/PTT.js
index c39d0839..a3d75a07 100644
--- a/src/terminal/src/pty/PTT.js
+++ b/src/terminal/src/pty/PTT.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/terminal/src/pty/PTY.js b/src/terminal/src/pty/PTY.js
index 476e4d6e..a053e841 100644
--- a/src/terminal/src/pty/PTY.js
+++ b/src/terminal/src/pty/PTY.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/terminal/src/pty/XDocumentANSIShell.js b/src/terminal/src/pty/XDocumentANSIShell.js
index 88638341..880b7d06 100644
--- a/src/terminal/src/pty/XDocumentANSIShell.js
+++ b/src/terminal/src/pty/XDocumentANSIShell.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/*
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/src/useapi/main.js b/src/useapi/main.js
index 9a6c1e13..c45fb9e1 100644
--- a/src/useapi/main.js
+++ b/src/useapi/main.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
const globalwith = (vars, fn) => {
const original_values = {};
const keys = Object.keys(vars);
diff --git a/tools/check-translations.js b/tools/check-translations.js
index eaf7e98a..d5932770 100644
--- a/tools/check-translations.js
+++ b/tools/check-translations.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
/**
* Copyright (C) 2024 Puter Technologies Inc.
*
diff --git a/tools/file-walker/package.json b/tools/file-walker/package.json
new file mode 100644
index 00000000..c49603b1
--- /dev/null
+++ b/tools/file-walker/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "file-walker",
+ "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": {
+ }
+}
+
diff --git a/tools/file-walker/test.js b/tools/file-walker/test.js
new file mode 100644
index 00000000..784e7e28
--- /dev/null
+++ b/tools/file-walker/test.js
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+const fs = require('fs');
+const fsp = fs.promises;
+const path_ = require('path');
+
+const hl_readdir = async path => {
+ const names = await fs.promises.readdir(path);
+ const entries = [];
+
+ for ( const name of names ) {
+ // wet: copied from phoenix shell
+ const stat_path = path_.join(path, name);
+ const stat = await fs.promises.lstat(stat_path);
+ entries.push({
+ name,
+ is_dir: stat.isDirectory(),
+ is_symlink: stat.isSymbolicLink(),
+ symlink_path: stat.isSymbolicLink() ? await fs.promises.readlink(stat_path) : null,
+ size: stat.size,
+ modified: stat.mtimeMs / 1000,
+ created: stat.ctimeMs / 1000,
+ accessed: stat.atimeMs / 1000,
+ mode: stat.mode,
+ uid: stat.uid,
+ gid: stat.gid,
+ });
+ }
+
+ return entries;
+};
+
+const walk = async function* walk (options, root_path, components = []) {
+ const current_path = path_.join(root_path, ...components);
+ const entries = await hl_readdir(current_path);
+ outer:
+ for ( const entry of entries ) {
+ entry.dirpath = current_path;
+ entry.path = path_.join(current_path, entry.name);
+
+ // TODO: labelled break?
+ for ( const exclude_regex of (options.excludes ?? []) ) {
+ if ( exclude_regex.test(entry.path) ) {
+ continue outer;
+ }
+ }
+
+ if ( ! options.pre_order ) yield entry;
+ if ( entry.is_dir ) {
+ yield* walk(options, root_path, [...components, entry.name]);
+ }
+ if ( options.pre_order ) yield entry;
+ }
+};
+
+const modes = {
+ primary_source_files: {
+ excludes: [
+ ]
+ },
+};
+
+const util = require('util');
+const exec = util.promisify(require('child_process').exec);
+
+async function git_blame(path) {
+ const abs_path = path_.resolve(path);
+
+ try {
+ const { stdout } = await exec(`git blame -f "${abs_path}"`, {
+ maxBuffer: 1024 * 1024
+ });
+
+ const blameLines = stdout.split('\n');
+ const parsedBlame = blameLines
+ .map(line => {
+ if (!line.trim()) return null;
+
+ // console.log(line);
+ const parts = line.split(/\s+/);
+ let [commitHash, path, author, timestamp, lineNumber, , ,] = parts;
+ author = author.slice(1);
+
+ const o = {
+ commitHash,
+ author,
+ timestamp,
+ lineNumber: parseInt(lineNumber, 10),
+ };
+ return o;
+ })
+ .filter(item => item !== null)
+ ;
+
+ return parsedBlame;
+ } catch (error) {
+ console.log('AZXV')
+ throw new Error(`Error executing git blame: ${error.message}`);
+ }
+}
+
+// Example usage
+const blame = async (path) => {
+ try {
+ const result = await git_blame(path);
+ // console.log('result?', result)
+ return result;
+ } catch ( e ) {
+ console.log('SKIPPED: ' + e.message);
+ }
+ return [];
+}
+
+const walk_test = async () => {
+ // console.log(await hl_readdir('.'));
+ for await ( const value of walk({
+ excludes: [
+ /^\.git/,
+ /^volatile\//,
+ /^node_modules\//,
+ /\/node_modules$/,
+ /^node_modules$/,
+ /package-lock\.json/,
+ /^src\/gui\/dist/,
+ ]
+ }, '.') ) {
+ if ( ! value.is_dir ) continue;
+ console.log('value', value.path);
+ }
+}
+
+const authors = {};
+
+const blame_test = async () => {
+ // const results = await blame('src/backend/src/services/HostDiskUsageService.js');
+ // const results = await blame('package.json');
+ console.log('results', results)
+ return;
+ for ( const result of results ) {
+ if ( ! authors[result.author] ) {
+ authors[result.author] = { lines: 0 };
+ }
+ authors[result.author].lines++;
+ }
+
+ console.log('AUTHORS', authors);
+}
+
+
+/*
+Contribution count function to test file walking and
+git blame parsing.
+*/
+const walk_and_blame = async () => {
+ // console.log(await hl_readdir('.'));
+ for await ( const value of walk({
+ excludes: [
+ /^\.git/,
+ /^volatile\//,
+ /^node_modules\//,
+ /\/node_modules$/,
+ /^node_modules$/,
+ /package-lock\.json/,
+ /src\/backend\/src\/public\/assets/,
+ /^src\/gui\/src\/lib/
+ ]
+ }, '.') ) {
+ if ( value.is_dir ) continue;
+ console.log('value', value.path);
+ const results = await blame(value.path);
+ for ( const result of results ) {
+ if ( ! authors[result.author] ) {
+ authors[result.author] = { lines: 0 };
+ }
+ authors[result.author].lines++;
+ }
+ }
+ console.log('AUTHORS', authors);
+}
+
+const main = walk_and_blame;
+
+main();
diff --git a/tools/gen-release-notes.js b/tools/gen-release-notes.js
new file mode 100644
index 00000000..ed82b94b
--- /dev/null
+++ b/tools/gen-release-notes.js
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+import { simpleGit } from 'simple-git';
+
+const REPO_URL = 'https://github.com/HeyPuter/puter';
+
+const params = {
+ from: 'v2.3.0',
+ // from: 'v2.4.0',
+ to: 'v2.5.0',
+ date: '2024-07-08',
+};
+
+const git = simpleGit();
+const log = await git.log({ from: params.from });
+const commits = log.all;
+
+const CC_REGEX = /^([a-z]+)(\([a-z]+\))?:\s(.*)/;
+const parse_conventional_commit = message => {
+ const parts = CC_REGEX.exec(message);
+ if ( ! parts ) return null;
+ let [match, type, scope, summary] = parts;
+ if ( ! match ) return null;
+ if ( scope ) scope = scope.slice(1, -1);
+ return { type, scope, summary };
+};
+
+const types = {
+ feat: {
+ label: 'Features'
+ },
+ fix: {
+ label: 'Bug Fixes'
+ }
+};
+
+const scopes = {
+ puter: {
+ label: 'Puter'
+ },
+ phoenix: {
+ label: 'Phoenix Shell'
+ },
+ git: {
+ label: 'Puter Git'
+ },
+ backend: {
+ label: 'Backend'
+ },
+ gui: {
+ label: 'GUI'
+ },
+};
+
+const scope_aliases = {
+ main: 'puter',
+ ui: 'gui',
+ parsely: 'phoenix',
+};
+
+const data = {};
+const ensure_scope = name => {
+ if ( data[name] ) return;
+ const o = data[name] = {};
+ for ( const k in types ) o[k] = [];
+};
+
+for ( const commit of commits ) {
+ const meta = parse_conventional_commit(commit.message);
+ if ( ! meta ) continue;
+ let scope = meta.scope ?? 'puter';
+ while ( scope in scope_aliases ) {
+ scope = scope_aliases[scope];
+ }
+ ensure_scope(scope);
+ if ( ! scopes[scope] ) {
+ console.log(commit);
+ throw new Error(`missing scope: ${scope}`);
+ }
+
+ if ( types.hasOwnProperty(meta.type) ) {
+ data[scope][meta.type].push({ meta, commit });
+ }
+}
+
+let s = '';
+s += `## ${params.from} (${params.date})\n\n`;
+for ( const scope_name in data ) {
+ const scope = data[scope_name];
+ s += `### ${scopes[scope_name].label}\n\n`;
+ for ( const type_name in types ) {
+ const type = types[type_name];
+ const items = scope[type_name];
+ if ( items.length == 0 ) continue;
+ s += `#### ${type.label}\n\n`;
+ for ( const { meta, commit } of items ) {
+ const shorthash = commit.hash.slice(0,7)
+ s += `- ${meta.summary} ([${shorthash}](${REPO_URL}/commit/${commit.hash}))\n`;
+ }
+ }
+}
+
+console.log(s);
\ No newline at end of file
diff --git a/l_checker_config.json b/tools/l_checker_config.json
similarity index 83%
rename from l_checker_config.json
rename to tools/l_checker_config.json
index a7bd893f..0572f11f 100644
--- a/l_checker_config.json
+++ b/tools/l_checker_config.json
@@ -1,5 +1,8 @@
{
- "ignore": ["**/!(*.js|*.css)", "**/assets/**"],
+ "ignore": [
+ "**/!(*.js|*.css)", "**/assets/**", "**/lib/**",
+ "eslint.config.js"
+ ],
"license": "doc/license_header.txt",
"licenseFormats": {
"js": {
diff --git a/run-selfhosted.js b/tools/run-selfhosted.js
similarity index 85%
rename from run-selfhosted.js
rename to tools/run-selfhosted.js
index bc0221ce..a659656a 100644
--- a/run-selfhosted.js
+++ b/tools/run-selfhosted.js
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2024 Puter Technologies Inc.
+ *
+ * This file is part of Puter.
+ *
+ * Puter is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
// surrounding_box function
//
// It's really hard to see an error message without using
|