Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
f21ba3f
Add Filer.buffer to tb.buffer
Notplayingallday383 Sep 17, 2025
f1a31c9
Add UPK Builder workflow
Notplayingallday383 Sep 18, 2025
532e5c2
oops
Notplayingallday383 Sep 18, 2025
4e35a30
lets see how this goes
Notplayingallday383 Sep 18, 2025
b0fa626
Update UPK-Build.yml
Notplayingallday383 Sep 18, 2025
2e92c21
update
Notplayingallday383 Sep 18, 2025
6979c44
Update
Notplayingallday383 Sep 18, 2025
57cbce5
Update security.md
Notplayingallday383 Sep 18, 2025
8d99994
Add this for when I finish implementing TFS
Notplayingallday383 Sep 25, 2025
f1b9063
chore: auto-fix formatting and linting with Biome
github-actions[bot] Sep 25, 2025
e01298c
feat: introduce OPFS & TFS into Terbium
Notplayingallday383 Oct 1, 2025
6f0864b
chore: auto-fix formatting and linting with Biome
github-actions[bot] Oct 1, 2025
2c47795
More fixes
Notplayingallday383 Oct 2, 2025
c48f5c1
Merge branch 'dev' of https://github.com/terbiumos/web-v2 into dev
Notplayingallday383 Oct 2, 2025
04f1e09
temporarily break profile modal but start implementing vFS
Notplayingallday383 Oct 6, 2025
b7f67e3
Finish vFS support in dialogs and File Manager
Notplayingallday383 Oct 6, 2025
dd88445
Add migration option from Filer to OPFS
Notplayingallday383 Oct 7, 2025
018f60c
bug fixes
Notplayingallday383 Oct 8, 2025
2da4ee2
More VFS Improvements
Notplayingallday383 Oct 8, 2025
cf8348e
chore: auto-fix formatting and linting with Biome
github-actions[bot] Oct 8, 2025
208a523
fix login background
Notplayingallday383 Oct 9, 2025
1df0b92
Update vfs.ts
Notplayingallday383 Oct 9, 2025
6fe3532
Finish filer migration tool
Notplayingallday383 Oct 14, 2025
f369fc9
Updates
Notplayingallday383 Oct 15, 2025
a291124
Update @terbiumos/tfs version to 1.0.12-beta
Notplayingallday383 Oct 17, 2025
5fc1ffc
fixes
Notplayingallday383 Oct 19, 2025
1460aca
Migrate backend to hono and remove uneeded dependencies
Notplayingallday383 Oct 21, 2025
5a7c58b
fix login not accepting keys
Notplayingallday383 Oct 22, 2025
203db35
WIP
Notplayingallday383 Oct 28, 2025
ffa1dde
Stub
Notplayingallday383 Oct 28, 2025
9c3627a
maybe fix biome
Notplayingallday383 Oct 28, 2025
a2119d4
Ignore issues with postcss being weird
Notplayingallday383 Oct 28, 2025
e709f6e
fix webdav drive support entirely and add local drives only option to…
Notplayingallday383 Oct 28, 2025
3768a1d
fix biome
Notplayingallday383 Oct 29, 2025
69b59db
Merge branch 'dev' of https://github.com/TerbiumOS/web-v2 into dev
Notplayingallday383 Oct 29, 2025
dbe466c
oops
Notplayingallday383 Oct 29, 2025
13dbe94
terminal fixes
Notplayingallday383 Oct 29, 2025
67e5c76
more fixes
Notplayingallday383 Oct 29, 2025
8e11ff3
fix mispelling
Notplayingallday383 Nov 4, 2025
c06a529
Update deps
Notplayingallday383 Nov 4, 2025
a2327d9
The start
Notplayingallday383 Nov 6, 2025
1347129
chore: auto-fix formatting and linting with Biome
github-actions[bot] Nov 6, 2025
21e2a3c
fix incorrect usage of access
Notplayingallday383 Nov 8, 2025
8c576d7
chore: auto-fix formatting and linting with Biome
github-actions[bot] Nov 8, 2025
82bd753
improvements to vFS operations
Notplayingallday383 Nov 11, 2025
0708fff
chore: auto-fix formatting and linting with Biome
github-actions[bot] Nov 11, 2025
9647d07
moving computers
Notplayingallday383 Nov 11, 2025
d65ee6b
feat: introduce janky solution to actually fix the mediaisland timer
Notplayingallday383 Nov 12, 2025
9fedaf4
vFS & Anura VFS Support fixes
Notplayingallday383 Nov 12, 2025
679537a
chore: auto-fix formatting and linting with Biome
github-actions[bot] Nov 12, 2025
3f7b16e
fix wallpaper
Notplayingallday383 Nov 16, 2025
3bb0831
Switch from spotty Scramjet fetching to libcurl
Notplayingallday383 Nov 20, 2025
29ac847
chore: auto-fix formatting and linting with Biome
github-actions[bot] Nov 20, 2025
bcd4191
more improvements
Notplayingallday383 Nov 20, 2025
858127f
Merge branch 'dev' of https://github.com/TerbiumOS/web-v2 into dev
Notplayingallday383 Nov 20, 2025
1a63d92
bug fixes
Notplayingallday383 Nov 25, 2025
d90b3a8
More OOBE Polishing
Notplayingallday383 Nov 25, 2025
485a3d4
use unbundled libcurl & shave down bundle sizes
Notplayingallday383 Nov 27, 2025
a0a6893
chore: auto-fix formatting and linting with Biome
github-actions[bot] Nov 27, 2025
3026731
add window customization
Notplayingallday383 Nov 28, 2025
bed7865
Merge branch 'dev' of https://github.com/terbiumos/web-v2 into dev
Notplayingallday383 Nov 28, 2025
7253831
Introduce a new changelog system
Notplayingallday383 Nov 28, 2025
473ac55
chore: auto-fix formatting and linting with Biome
github-actions[bot] Nov 28, 2025
0915caa
Fixes to Anura Processing, Update EMCA Version, and some housekeeping
Notplayingallday383 Dec 1, 2025
cbb010f
chore: auto-fix formatting and linting with Biome
github-actions[bot] Dec 1, 2025
6752f9d
WIP Cloud Features
Notplayingallday383 Dec 2, 2025
274a25f
Merge branch 'dev' of https://github.com/TerbiumOS/web-v2 into dev
Notplayingallday383 Dec 2, 2025
f58f695
bug fixes (switching pcs)
Notplayingallday383 Dec 2, 2025
5d587de
readd lockfile and update react
Notplayingallday383 Dec 3, 2025
5050777
Update lockfile
Notplayingallday383 Dec 3, 2025
6309c3e
fixes to some file operations & fixes to anura window manager
Notplayingallday383 Dec 3, 2025
880cef8
Fix OOBE not waiting for app installation, and the anura styling engine
Notplayingallday383 Dec 4, 2025
7a4fed8
Update Setup.tsx
Notplayingallday383 Dec 4, 2025
9527b41
fix drive formatting (ik the formatting is weird)
Notplayingallday383 Dec 4, 2025
073f30a
chore: auto-fix formatting and linting with Biome
github-actions[bot] Dec 4, 2025
134cf65
fix indents
Notplayingallday383 Dec 4, 2025
30e9116
Account Manager improvements & other bug fixes
Notplayingallday383 Dec 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/biome.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

steps:
- name: "Checkout code"
uses: "actions/checkout@v4"
uses: "actions/checkout@v5"
with:
token: "${{ secrets.GITHUB_TOKEN }}"

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Set up Node
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 'lts/*'
- name: Setup pnpm
Expand Down
47 changes: 47 additions & 0 deletions .github/workflows/upk-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Build UPK for Anura
on:
push:
paths:
- 'package.json'

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 'lts/*'
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
- name: Install dependencies
run: pnpm i
- name: Install BareMux v1
run: pnpm i @mercuryworkshop/bare-mux@^1.1.4
- name: Download upk-tools.zip
run: curl -L -o upk-tools.zip https://cdn.terbiumon.top/upk-tools.zip
- name: Extract upk-tools
run: unzip -o upk-tools.zip
- name: replace BCC Client v2 with v1
run: mv bx1bcc.ts src/sys/liquor/bcc.ts
- name: Add BareMux Script
run: npx replace-in-file "<head>" "<head> <script src=\"libs/bare-mux/bare.cjs\"></script>" index.html
- name: Replace BareMux in codebase
run: bash replace.sh
- name: Build TB React
run: pnpm run build-static
- name: "Run UPK Builder"
run: python3 upk.py
- name: Upload UPK
uses: actions/upload-artifact@v4
with:
name: UPK
path: terbium-upk.app.zip
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ dist-ssr
*.local
*.tsbuildinfo
.npmrc
pnpm-lock.yaml
package-lock.json

# Editor directories and files
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

- [React](https://react.dev)
- [TailwindCSS](https://tailwindcss.com)
- [FilerJS](https://github.com/filerjs/filer)
- [TFS](https://github.com/terbiumos/tfs)
- [Fflate](https://github.com/101arrowz/fflate/)
- [BareMux](https://github.com/mercuryworkshop/bare-mux)

Expand Down
1 change: 1 addition & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ If your version of terbium is unsupported, please do not make a GitHub Issue abo

| Version | Supported |
| ------- | --------- |
| 2.1.0 (stable) | ❌ |
| 2.1.1 (stable) | ✅ |

### Supported Lemonade Versions
Expand Down
7 changes: 6 additions & 1 deletion biome.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://biomejs.dev/schemas/2.2.4/schema.json",
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
"vcs": {
"enabled": false,
"clientKind": "git",
Expand All @@ -14,6 +14,11 @@
"indentWidth": 4,
"lineWidth": 320
},
"css": {
"parser": {
"tailwindDirectives": true
}
},
"linter": {
"enabled": true,
"rules": {
Expand Down
1 change: 0 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
Welcome to Terbium v2's Documentation. Here is a simple table of contents to help you get where you need to get

- [How to Contribute to Terbium v2](./contributions.md)
- [Quick Guide to Filer](./quick-guide-to-filer.md)
- [Creating Terminal Commands](./creating-terminal-commands.md)
- [Creating Apps](./creating-apps.md)
- [Backend Configuration Options](./backend-configuration.md)
Expand Down
185 changes: 182 additions & 3 deletions docs/apis/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ So you're looking to use Terbium APIs. Well, you're in the right place! Terbium
- [Platform](#platform)
- [Process](#process)
- [Screen](#screen)
- [VFS](#vfs)
- [System](#system)
- [Mediaisland](#mediaisland)
- [File](#file)
Expand Down Expand Up @@ -456,7 +457,7 @@ So you're looking to use Terbium APIs. Well, you're in the right place! Terbium
- **FileBrowser**
- Description: Simple FileBrowser Dialog
- Parameters:
- `props: { title: string, filter: string, onOk: Function }` - FileBrowser dialog properties.
- `props: { title: string, filter: string, onOk: Function, onCancel: Function, local: boolean }` - FileBrowser dialog properties.
- Example:
```javascript
await tb.dialog.FileBrowser({
Expand All @@ -469,7 +470,7 @@ So you're looking to use Terbium APIs. Well, you're in the right place! Terbium
- **DirectoryBrowser**
- Description: Simple FileBrowser Dialog
- Parameters:
- `props: { title: string, filter: string, onOk: Function }` - FileBrowser dialog properties.
- `props: { title: string, filter: string, onOk: Function, onCancel: Function, local: boolean }` - FileBrowser dialog properties.
- Example:
```javascript
await tb.dialog.DirectoryBrowser({
Expand All @@ -482,7 +483,7 @@ So you're looking to use Terbium APIs. Well, you're in the right place! Terbium
- **SaveFile**
- Description: Simple File Saving Dialog
- Parameters:
- `props: { title: string, defualtDir: string, filename: string, onOk: Function }` - SaveFile dialog properties.
- `props: { title: string, defualtDir: string, filename: string, onOk: Function, onCancel: Function, local: boolean }` - SaveFile dialog properties.
- Example:
```javascript
await tb.dialog.SaveFile({
Expand Down Expand Up @@ -583,6 +584,184 @@ So you're looking to use Terbium APIs. Well, you're in the right place! Terbium
tb.screen.capture()
```

### VFS
- **servers**
- Description: A Map of the current users webdav servers
- Returns: `Object` - VFSOperations
- Example:
```js
for (const instance of tb.vfs.servers) {
const davInfo = instance[1];
// Use dav instance info here including a already established connection if one is availible
}
```
- **currentServer**
- Description: The current WebDav server to use for operations
- Returns: `Object` - VFSOperations
- Example:
```js
const client = tb.vfs.currentServer.connection.client;
// use webdav methods here or use VFS Operations as a drop in for working between TFS and VFS
```

- **create**
- Description: (async) Returns a new instance of VFS, You will probably not use this function unless your directly modifying terbiums codebase
- Returns: `Promise<VFS>`
- Example:
```js
const vfs = await vfs.create();
```

- **mount**
- Description: Mounts the inputed server from vfs.servers
- Parameters:
- `serverName: string` - the name of the server to mount
- Example:
```js
await tb.vfs.mount("servername");
```

- **mountAll**
- Description: Mounts all servers avalible in vfs.servers
- Example:
```js
await tb.vfs.mountAll()
```

- **addServer**
- Description: Adds a server to the users WebDav server list
- Parameters:
- `Server: ServerInfo[]` - The server information to put in
- Example:
```js
await tb.vfs.addServer({
name: "any name you want for the drive name";
url: "https://somedavendpoint.com/";
username: "IloveTerbiumDev";
password: "XSTARSwasHere";
})
```

- **removeServer**
- Description: Removes a server from the users WebDav server list
- Parameters:
- `ServerName: string` - The name of the server to remove
- Example:
```js
await tb.vfs.removeServer("webdav1")
```

- **setServer**
- Description: Sets `currentServer` to the requested server
- Parameters:
- `ServerName: string` - The server name to set the server too **NOTE** Server MUST be mounted to perform this operation.
- Example:
```js
await tb.vfs.setServer("webdav1");
// tb.vfs.currentServer is now the instance of VFSOperations that webdav1 uses
```

- **whatFS**
- Description: Returns Either TFS or VFSOperations as the suitable File System for you to use for said drive
- Parameters:
- `Path: string` - The path to check
- Example:
```js
const fs = await tb.vfs.whatFS("/mnt/dav");
// FS is VFSOperations
const fs = await tb.vfs.whatFS("/home/XSTARS/");
// FS is TFS.fs
```

- **VFSOperations**
> **NOTE:** This is **NOT** an API. This is an instance representing File System actions, WebDav client information, etc., and is referenced by several APIs above.
#### Properties

- **client**: `WebDavClient`
The WebDav Client Interface.

#### Methods

- **readdir(path, callback)**
- Reads the contents of a directory at the given path.
- **Parameters:**
- `path: string` — Directory path.
- `callback: (err: any, files?: any[]) => void` — Called with error or array of file names.

- **readFile(path, callback)**
- Reads the contents of a file as text.
- **Parameters:**
- `path: string` — File path.
- `callback: (err: any, data?: string) => void` — Called with error or file data.

- **writeFile(path, data, callback)**
- Writes data to a file, replacing its contents.
- **Parameters:**
- `path: string` — File path.
- `data: string | ArrayBuffer` — Data to write.
- `callback: (err: any) => void` — Called with error if any.

- **delete(path, callback)**
- Deletes a file at the specified path.
- **Parameters:**
- `path: string` — File path.
- `callback: (err: any) => void` — Called with error if any.

- **rename(oldPath, newPath, callback)**
- Renames or moves a file from `oldPath` to `newPath`.
- **Parameters:**
- `oldPath: string` — Original file path.
- `newPath: string` — New file path.
- `callback: (err: any) => void` — Called with error if any.

- **createDirectory(path, callback)**
- Creates a new directory at the specified path.
- **Parameters:**
- `path: string` — Directory path.
- `callback: (err: any) => void` — Called with error if any.

- **exists(path, callback)**
- Checks if a file or directory exists at the given path.
- **Parameters:**
- `path: string` — Path to check.
- `callback: (err: any, exists?: boolean) => void` — Called with error or existence boolean.

- **stat(path, callback)**
- Retrieves metadata/statistics about a file or directory.
- **Parameters:**
- `path: string` — Path to check.
- `callback: (err: any, stat?: any) => void` — Called with error or stat object.

- **copy(source, destination, callback)**
- Copies a file from source to destination.
- **Parameters:**
- `source: string` — Source file path.
- `destination: string` — Destination file path.
- `callback: (err: any) => void` — Called with error if any.

- **unlink(path, callback)**
- Deletes a file at the specified path (alias for `delete`).
- **Parameters:**
- `path: string` — File path.
- `callback: (err: any) => void` — Called with error if any.

- **move(source, destination, callback)**
- Moves a file from source to destination (alias for `rename`).
- **Parameters:**
- `source: string` — Source file path.
- `destination: string` — Destination file path.
- `callback: (err: any) => void` — Called with error if any.

- **appendFile(path, data, callback)**
- Appends data to the end of a file.
- **Parameters:**
- `path: string` — File path.
- `data: string | ArrayBuffer` — Data to append.
- `callback: (err: any) => void` — Called with error if any.

All of these functions also have a Promises variant that has the exact same syntax except it does not have a callback instead you use it asynchronously


### System
- **version**
- Description: Lists the version of Terbium
Expand Down
Loading