Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6c68f9bfbd |
2
.npmrc
2
.npmrc
@@ -1 +1 @@
|
||||
@add-ideas:registry=https://git.add-ideas.de/api/packages/zemion/npm/
|
||||
@add-ideas:registry=https://git.add-ideas.de/api/packages/lotobo/npm/
|
||||
|
||||
11
CHANGELOG.md
11
CHANGELOG.md
@@ -3,6 +3,17 @@
|
||||
All notable changes to av-tools are documented here. The project follows
|
||||
semantic versioning once a first release is legally publishable.
|
||||
|
||||
## 0.2.1 — 2026-07-27
|
||||
|
||||
- Move the canonical source, manifest schema links, and package registry from
|
||||
the personal `zemion` namespace to the `lotobo` (LocalToolBox) Gitea
|
||||
organization.
|
||||
- Upgrade the Toolbox contract, React shell, and validation testkit to 0.2.3,
|
||||
republished from the organization-owned registry without functional shell
|
||||
changes.
|
||||
- Replace the generic starter favicon with original add·ideas
|
||||
audio/video file artwork.
|
||||
|
||||
## 0.2.0 — 2026-07-27
|
||||
|
||||
- Allow recognized local audio/video to begin native browser playback while
|
||||
|
||||
@@ -8,8 +8,8 @@ telemetry, runtime CDN, remote-media fetch or third-party script.
|
||||
It is also a Toolbox SDK application. The same static build runs directly or
|
||||
under Toolbox Portal with shared shell, theme, help and app switching.
|
||||
|
||||
> **Release status:** 0.2.0 is licensed GPL-3.0-or-later. Its canonical
|
||||
> release consists of the exact reviewed `v0.2.0` source, production
|
||||
> **Release status:** 0.2.1 is licensed GPL-3.0-or-later. Its canonical
|
||||
> release consists of the exact reviewed `v0.2.1` source, production
|
||||
> ZIP/checksum and Corresponding Source bundle published together. See
|
||||
> [Licensing](#licensing).
|
||||
|
||||
@@ -167,7 +167,7 @@ the conditional native command-plan integration suite; it is not a production
|
||||
runtime dependency.
|
||||
|
||||
```sh
|
||||
git clone git@git.add-ideas.de:zemion/av-tools.git
|
||||
git clone git@git.add-ideas.de:lotobo/av-tools.git
|
||||
cd av-tools
|
||||
npm ci
|
||||
npm run dev
|
||||
|
||||
18
SOURCE.md
18
SOURCE.md
@@ -1,17 +1,17 @@
|
||||
# Source and reproducibility record
|
||||
|
||||
This file identifies the source corresponding to av-tools 0.2.0. It is not a
|
||||
This file identifies the source corresponding to av-tools 0.2.1. It is not a
|
||||
substitute for satisfying a component's licence or for delivering complete
|
||||
Corresponding Source with an object-code release.
|
||||
|
||||
## av-tools
|
||||
|
||||
- Canonical repository:
|
||||
`git@git.add-ideas.de:zemion/av-tools.git`
|
||||
- Browser source: `https://git.add-ideas.de/zemion/av-tools`
|
||||
- Version: `0.2.0`
|
||||
- Release source identity: immutable annotated tag `v0.2.0`
|
||||
(`refs/tags/v0.2.0`) in the canonical repository.
|
||||
`git@git.add-ideas.de:lotobo/av-tools.git`
|
||||
- Browser source: `https://git.add-ideas.de/lotobo/av-tools`
|
||||
- Version: `0.2.1`
|
||||
- Release source identity: immutable annotated tag `v0.2.1`
|
||||
(`refs/tags/v0.2.1`) in the canonical repository.
|
||||
- Application licence: `GPL-3.0-or-later`; full GPL version 3 terms in
|
||||
`LICENSE`.
|
||||
- Copyright: Copyright © 2026 Albrecht Degering.
|
||||
@@ -22,10 +22,10 @@ the tag exists, is annotated, points to the reviewed release commit and is
|
||||
available without authentication:
|
||||
|
||||
```sh
|
||||
test "$(git cat-file -t v0.2.0)" = tag
|
||||
git rev-parse v0.2.0^{commit}
|
||||
test "$(git cat-file -t v0.2.1)" = tag
|
||||
git rev-parse v0.2.1^{commit}
|
||||
git ls-remote --tags \
|
||||
https://git.add-ideas.de/zemion/av-tools.git refs/tags/v0.2.0
|
||||
https://git.add-ideas.de/lotobo/av-tools.git refs/tags/v0.2.1
|
||||
```
|
||||
|
||||
The Toolbox manifest names the canonical repository and SPDX licence. Publish
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Third-party notices
|
||||
|
||||
av-tools 0.2.0 is Copyright © 2026 Albrecht Degering and licensed
|
||||
av-tools 0.2.1 is Copyright © 2026 Albrecht Degering and licensed
|
||||
GPL-3.0-or-later; see the root `LICENSE`. This inventory describes third-party
|
||||
inputs. It is informational, not legal advice, and does not replace their
|
||||
terms. Files under `LICENSES/` reproduce available terms. A packaged ZIP also
|
||||
@@ -11,8 +11,8 @@ receives licence files shipped by installed runtime npm packages under
|
||||
|
||||
| Package | Version | Licence declared upstream | Project source | Role | Distribution |
|
||||
| -------------------------------- | -------------------------- | ------------------------- | --------------------------------------------- | ------------------------------------------------------- | --------------------------------------------------------- |
|
||||
| `@add-ideas/toolbox-contract` | 0.2.2 | Apache-2.0 | `https://git.add-ideas.de/zemion/toolbox-sdk` | typed manifest/context contract | shipped, bundled |
|
||||
| `@add-ideas/toolbox-shell-react` | 0.2.2 | Apache-2.0 | `https://git.add-ideas.de/zemion/toolbox-sdk` | shared Toolbox application shell | shipped, bundled |
|
||||
| `@add-ideas/toolbox-contract` | 0.2.3 | Apache-2.0 | `https://git.add-ideas.de/lotobo/toolbox-sdk` | typed manifest/context contract | shipped, bundled |
|
||||
| `@add-ideas/toolbox-shell-react` | 0.2.3 | Apache-2.0 | `https://git.add-ideas.de/lotobo/toolbox-sdk` | shared Toolbox application shell | shipped, bundled |
|
||||
| `@ffmpeg/ffmpeg` | 0.12.15 | MIT | `https://github.com/ffmpegwasm/ffmpeg.wasm` | browser worker and high-level FFmpeg API | shipped, bundled |
|
||||
| `@ffmpeg/util` | 0.12.2 | MIT | `https://github.com/ffmpegwasm/ffmpeg.wasm` | byte/blob helpers | shipped, bundled |
|
||||
| `@ffmpeg/types` | 0.12.4 | MIT | `https://github.com/ffmpegwasm/ffmpeg.wasm` | transitive runtime API types | shipped as compiled/bundled references |
|
||||
@@ -73,7 +73,7 @@ shipped in the static ZIP:
|
||||
|
||||
| Package | Exact version | Licence | Role |
|
||||
| ----------------------------- | ------------- | ---------- | ------------------------------------- |
|
||||
| `@add-ideas/toolbox-testkit` | 0.2.2 | Apache-2.0 | manifest and nested-path test helpers |
|
||||
| `@add-ideas/toolbox-testkit` | 0.2.3 | Apache-2.0 | manifest and nested-path test helpers |
|
||||
| `@eslint/js` | 10.0.1 | MIT | lint rules |
|
||||
| `@playwright/test` | 1.61.1 | Apache-2.0 | browser tests |
|
||||
| `@testing-library/jest-dom` | 6.9.1 | MIT | DOM assertions |
|
||||
|
||||
@@ -5,7 +5,7 @@ extensions or this document. The app queries muxers, demuxers, decoders,
|
||||
encoders and filters; a preset is disabled with missing components listed.
|
||||
Browser playback is a separate capability checked with MIME/media APIs.
|
||||
|
||||
## 0.2.0 release fixture matrix
|
||||
## 0.2.1 release fixture matrix
|
||||
|
||||
All 15 files are generated and re-probed with native FFmpeg 7.1.3 for test
|
||||
preparation and pass the checksum/probe verifier. That proves fixture
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Known limitations
|
||||
|
||||
This is the conservative 0.2.0 release baseline. A capability appearing in
|
||||
This is the conservative 0.2.1 release baseline. A capability appearing in
|
||||
FFmpeg output does not remove these product/browser/resource limits.
|
||||
|
||||
## Functional
|
||||
@@ -79,7 +79,7 @@ FFmpeg output does not remove these product/browser/resource limits.
|
||||
verification against the live container.
|
||||
- The application is GPL-3.0-or-later and its native legal files and pinned
|
||||
source identities are included in the release record. Publish the production
|
||||
ZIP/checksum, exact `v0.2.0` source and FFmpeg Corresponding Source bundle
|
||||
ZIP/checksum, exact `v0.2.1` source and FFmpeg Corresponding Source bundle
|
||||
together; development-only smoke artifacts must not be distributed.
|
||||
- Chromium covers a broad real pinned-core ST operation matrix, a real MT
|
||||
H.264/AAC conversion, MT-to-ST fallback, nested static/Toolbox-context
|
||||
|
||||
@@ -9,9 +9,9 @@ working tree. Revisions are full immutable commit ids.
|
||||
|
||||
| Repository | Revision inspected | Used for | Copied or adapted |
|
||||
| -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| av-tools, `git@git.add-ideas.de:zemion/av-tools.git` | no revision: canonical `main` was unborn and had no commits | canonical destination and licence/history check | the empty repository was scaffolded in place; no prior code existed |
|
||||
| Toolbox SDK, `https://git.add-ideas.de/zemion/toolbox-sdk.git` | `53c40a61ba1581246f65773fcbb1c1cfd31ac98e` (SDK 0.2.2) | manifest schema/definition, `AppShell`, context behavior, shared styles, token-free registry, nested-path checks and toolchain baseline | published 0.2.2 packages are direct dependencies; documented usage patterns were followed; no SDK source file was copied |
|
||||
| Toolbox Portal, `https://git.add-ideas.de/zemion/toolbox-portal.git` | `bda9da044d61c109afd9969d357cc27f76648938` initially; `5c052bc6d1073a66600cfddc44c0e16da34bede8` for final integration | release ZIP/sidecar/lock formats, independent assembly, catalogue behavior, path security, nested deployment and production headers | no portal application source was copied; the AV smoke harness consumes only an exact cloned Portal revision; the separate Portal worktree contains its own reviewed integration patch |
|
||||
| av-tools, `git@git.add-ideas.de:lotobo/av-tools.git` | no revision: canonical `main` was unborn and had no commits | canonical destination and licence/history check | the empty repository was scaffolded in place; no prior code existed |
|
||||
| Toolbox SDK, `https://git.add-ideas.de/lotobo/toolbox-sdk.git` | `ef2dab4b46c61812c9a877d8a19fe497b4a4630a` (SDK 0.2.3) | manifest schema/definition, `AppShell`, context behavior, shared styles, token-free registry, nested-path checks and toolchain baseline | published 0.2.3 packages are direct dependencies; documented usage patterns were followed; no SDK source file was copied |
|
||||
| Toolbox Portal, `https://git.add-ideas.de/lotobo/toolbox-portal.git` | `bda9da044d61c109afd9969d357cc27f76648938` initially; `5c052bc6d1073a66600cfddc44c0e16da34bede8` for final integration | release ZIP/sidecar/lock formats, independent assembly, catalogue behavior, path security, nested deployment and production headers | no portal application source was copied; the AV smoke harness consumes only an exact cloned Portal revision; the separate Portal worktree contains its own reviewed integration patch |
|
||||
| ffmpeg.wasm, `https://github.com/ffmpegwasm/ffmpeg.wasm.git` | `f876f907c7e9b9bf51d4ed0b913a855a63ae63fc`; pinned release baseline `71aa99d37c02a7b4c435275ca9ef50e612f6efa1` | current API, worker lifecycle, filesystem, loading, ST/MT behavior, licence documentation and build layout | no reference-worktree source was copied; wrapper/util remain exact npm dependencies, while the five core assets are rebuilt from the recorded source/toolchain/patch profile and verified against the build lock |
|
||||
|
||||
For the **pinned** package set, the more specific upstream release tag
|
||||
|
||||
@@ -11,7 +11,7 @@ The repository already declares the application licence and immutable
|
||||
third-party source identities. Before any distribution:
|
||||
|
||||
1. commit the reviewed GPL-3.0-or-later source;
|
||||
2. create and verify annotated tag `v0.2.0` at that exact commit;
|
||||
2. create and verify annotated tag `v0.2.1` at that exact commit;
|
||||
3. push the commit and tag to the canonical public repository;
|
||||
4. assemble, review and publish corresponding source and exact external
|
||||
notices for both reviewed core profiles and linked libraries;
|
||||
@@ -57,8 +57,8 @@ npm run package:release -- --allow-unlicensed-development-smoke
|
||||
Pass `--force` only to replace the exact same-version ZIP and sidecar. Output:
|
||||
|
||||
```text
|
||||
release/av-tools-0.2.0.zip
|
||||
release/av-tools-0.2.0.zip.sha256
|
||||
release/av-tools-0.2.1.zip
|
||||
release/av-tools-0.2.1.zip.sha256
|
||||
release/ffmpeg-core-0.12.10-reviewed-stack5m.1-corresponding-source.tar.xz
|
||||
release/ffmpeg-core-0.12.10-reviewed-stack5m.1-corresponding-source.tar.xz.sha256
|
||||
```
|
||||
@@ -68,7 +68,7 @@ Verify independently:
|
||||
```sh
|
||||
node scripts/checksum-release.mjs
|
||||
(cd release && sha256sum -c ffmpeg-core-0.12.10-reviewed-stack5m.1-corresponding-source.tar.xz.sha256)
|
||||
unzip -l release/av-tools-0.2.0.zip
|
||||
unzip -l release/av-tools-0.2.1.zip
|
||||
tar -tJf release/ffmpeg-core-0.12.10-reviewed-stack5m.1-corresponding-source.tar.xz
|
||||
```
|
||||
|
||||
@@ -96,7 +96,7 @@ exact `HEAD` and clones that revision into a temporary directory:
|
||||
|
||||
```sh
|
||||
npm run portal:smoke -- \
|
||||
--artifact release/av-tools-0.2.0.zip \
|
||||
--artifact release/av-tools-0.2.1.zip \
|
||||
--portal-root ../toolbox-portal
|
||||
```
|
||||
|
||||
@@ -123,7 +123,7 @@ for `v0.6.0` and must not suppress review of new gaps. See
|
||||
|
||||
## 5. Publish only reviewed bytes
|
||||
|
||||
From a clean `v0.2.0` checkout, rerun all checks, create the ZIP once, verify
|
||||
From a clean `v0.2.1` checkout, rerun all checks, create the ZIP once, verify
|
||||
the sidecar, assemble that exact ZIP through Portal, and publish the immutable
|
||||
ZIP, `.zip.sha256`, manifest, changelog, Corresponding Source and notices. Put
|
||||
its exact lowercase digest/version/id/target in a reviewed Portal lock. Never
|
||||
|
||||
32
package-lock.json
generated
32
package-lock.json
generated
@@ -1,16 +1,16 @@
|
||||
{
|
||||
"name": "av-tools",
|
||||
"version": "0.2.0",
|
||||
"version": "0.2.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "av-tools",
|
||||
"version": "0.2.0",
|
||||
"version": "0.2.1",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@add-ideas/toolbox-contract": "0.2.2",
|
||||
"@add-ideas/toolbox-shell-react": "0.2.2",
|
||||
"@add-ideas/toolbox-contract": "0.2.3",
|
||||
"@add-ideas/toolbox-shell-react": "0.2.3",
|
||||
"@ffmpeg/ffmpeg": "0.12.15",
|
||||
"@ffmpeg/util": "0.12.2",
|
||||
"fflate": "0.8.3",
|
||||
@@ -18,7 +18,7 @@
|
||||
"react-dom": "19.2.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@add-ideas/toolbox-testkit": "0.2.2",
|
||||
"@add-ideas/toolbox-testkit": "0.2.3",
|
||||
"@eslint/js": "10.0.1",
|
||||
"@playwright/test": "1.61.1",
|
||||
"@testing-library/jest-dom": "6.9.1",
|
||||
@@ -44,18 +44,18 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@add-ideas/toolbox-contract": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-contract/-/0.2.2/toolbox-contract-0.2.2.tgz",
|
||||
"integrity": "sha512-VcZ8j4O2PgFaIYgxs6r9u0uPxA+hHKwhCW+omfeVCtbjAAYhH2KhRlBGm0ERVVYcK5kchyzZLXrC4LKWRotVzg==",
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/lotobo/npm/%40add-ideas%2Ftoolbox-contract/-/0.2.3/toolbox-contract-0.2.3.tgz",
|
||||
"integrity": "sha512-T0PVSuMT40GjTDfQJhEEY3ZawQq8zz1/ry95JdKI6W39CdLacaRXdGnEpDCMHt+jUbf1Jz7Nat/M5dFCgKVM9A==",
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/@add-ideas/toolbox-shell-react": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-shell-react/-/0.2.2/toolbox-shell-react-0.2.2.tgz",
|
||||
"integrity": "sha512-w/xbLCd50a2Jq7vQ9Z9ygUOuqlOCRkIYlk4vSJx0mf4REJNeMYi3PE2MbaLUC4DkQWyrmatsa5HNT89o0l91BA==",
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/lotobo/npm/%40add-ideas%2Ftoolbox-shell-react/-/0.2.3/toolbox-shell-react-0.2.3.tgz",
|
||||
"integrity": "sha512-DT5lQDH48BFkFcmFLZnQh7+Cm73JzBPcmp5WzUXypfkUXpEyDYHzaXgmW4kZ0edSwh4RK4sPmx+JPtK0X4aKCQ==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@add-ideas/toolbox-contract": "0.2.2"
|
||||
"@add-ideas/toolbox-contract": "0.2.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=18 <20",
|
||||
@@ -63,13 +63,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@add-ideas/toolbox-testkit": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-testkit/-/0.2.2/toolbox-testkit-0.2.2.tgz",
|
||||
"integrity": "sha512-ZxrRYiJI/j5aXwcd3mQItgDl1iOJ6N26+MpIG18qVZNwKKFCTCfSTzgzRooPt8rRc1MQYTPo4c+l/QpOWuTXxA==",
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/lotobo/npm/%40add-ideas%2Ftoolbox-testkit/-/0.2.3/toolbox-testkit-0.2.3.tgz",
|
||||
"integrity": "sha512-sq1MwhKWfFKen+N+124hl74qQimRSvmQ9sOU7jdcI+2qCKZ67+2B8rWyezeV80uTFu4Jv6deHksfYQ/tKNV6XQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@add-ideas/toolbox-contract": "0.2.2"
|
||||
"@add-ideas/toolbox-contract": "0.2.3"
|
||||
},
|
||||
"bin": {
|
||||
"toolbox-check": "dist/cli.js"
|
||||
|
||||
14
package.json
14
package.json
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"name": "av-tools",
|
||||
"private": true,
|
||||
"version": "0.2.0",
|
||||
"version": "0.2.1",
|
||||
"description": "Local-first browser audio and video conversion and light editing with ffmpeg.wasm.",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"author": "Albrecht Degering",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://git.add-ideas.de/zemion/av-tools.git"
|
||||
"url": "git+https://git.add-ideas.de/lotobo/av-tools.git"
|
||||
},
|
||||
"homepage": "https://git.add-ideas.de/zemion/av-tools",
|
||||
"homepage": "https://git.add-ideas.de/lotobo/av-tools",
|
||||
"bugs": {
|
||||
"url": "https://git.add-ideas.de/zemion/av-tools/issues"
|
||||
"url": "https://git.add-ideas.de/lotobo/av-tools/issues"
|
||||
},
|
||||
"type": "module",
|
||||
"engines": {
|
||||
@@ -51,8 +51,8 @@
|
||||
"release:artifact": "npm run check && npm run vendor:verify && npm run test:opus-regression && npm run test:browser && npm run package:release"
|
||||
},
|
||||
"dependencies": {
|
||||
"@add-ideas/toolbox-contract": "0.2.2",
|
||||
"@add-ideas/toolbox-shell-react": "0.2.2",
|
||||
"@add-ideas/toolbox-contract": "0.2.3",
|
||||
"@add-ideas/toolbox-shell-react": "0.2.3",
|
||||
"@ffmpeg/ffmpeg": "0.12.15",
|
||||
"@ffmpeg/util": "0.12.2",
|
||||
"fflate": "0.8.3",
|
||||
@@ -60,7 +60,7 @@
|
||||
"react-dom": "19.2.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@add-ideas/toolbox-testkit": "0.2.2",
|
||||
"@add-ideas/toolbox-testkit": "0.2.3",
|
||||
"@eslint/js": "10.0.1",
|
||||
"@playwright/test": "1.61.1",
|
||||
"@testing-library/jest-dom": "6.9.1",
|
||||
|
||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"$schema": "https://git.add-ideas.de/zemion/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json",
|
||||
"$schema": "https://git.add-ideas.de/lotobo/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json",
|
||||
"schemaVersion": 1,
|
||||
"id": "de.add-ideas.av-tools",
|
||||
"name": "Audio & Video Tools",
|
||||
"version": "0.2.0",
|
||||
"version": "0.2.1",
|
||||
"description": "Convert and lightly edit audio and video locally in the browser.",
|
||||
"entry": "./",
|
||||
"icon": "./favicon.svg",
|
||||
@@ -44,14 +44,14 @@
|
||||
"telemetry": false
|
||||
},
|
||||
"source": {
|
||||
"repository": "https://git.add-ideas.de/zemion/av-tools",
|
||||
"repository": "https://git.add-ideas.de/lotobo/av-tools",
|
||||
"license": "GPL-3.0-or-later"
|
||||
},
|
||||
"actions": [
|
||||
{
|
||||
"id": "source",
|
||||
"label": "Source",
|
||||
"url": "https://git.add-ideas.de/zemion/av-tools"
|
||||
"url": "https://git.add-ideas.de/lotobo/av-tools"
|
||||
}
|
||||
],
|
||||
"assets": [
|
||||
|
||||
@@ -23,7 +23,7 @@ if (source.version !== packageJson.version) {
|
||||
}
|
||||
|
||||
if (
|
||||
source.source?.repository !== 'https://git.add-ideas.de/zemion/av-tools' ||
|
||||
source.source?.repository !== 'https://git.add-ideas.de/lotobo/av-tools' ||
|
||||
source.source?.license !== 'GPL-3.0-or-later'
|
||||
) {
|
||||
throw new Error(
|
||||
|
||||
@@ -23,9 +23,9 @@ const zipEpoch = new Date(1980, 0, 1, 0, 0, 0);
|
||||
const maximumEntryBytes = 256 * 1024 * 1024;
|
||||
const maximumArchiveBytes = 2 * 1024 * 1024 * 1024;
|
||||
const applicationLicenseSpdx = 'GPL-3.0-or-later';
|
||||
const canonicalRepository = 'https://git.add-ideas.de/zemion/av-tools';
|
||||
const canonicalRepository = 'https://git.add-ideas.de/lotobo/av-tools';
|
||||
const canonicalPackageRepository =
|
||||
'git+https://git.add-ideas.de/zemion/av-tools.git';
|
||||
'git+https://git.add-ideas.de/lotobo/av-tools.git';
|
||||
const requiredNativeLegalFiles = [
|
||||
'LICENSES/native/FFmpeg-LICENSE.md',
|
||||
'LICENSES/native/FreeType-LICENSE.txt',
|
||||
|
||||
@@ -196,7 +196,7 @@ export function HelpDialog({ open, onClose }: HelpDialogProps) {
|
||||
</aside>
|
||||
<footer>
|
||||
<a
|
||||
href="https://git.add-ideas.de/zemion/av-tools"
|
||||
href="https://git.add-ideas.de/lotobo/av-tools"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"$schema": "https://git.add-ideas.de/zemion/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json",
|
||||
"$schema": "https://git.add-ideas.de/lotobo/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json",
|
||||
"schemaVersion": 1,
|
||||
"id": "de.add-ideas.av-tools",
|
||||
"name": "Audio & Video Tools",
|
||||
"version": "0.2.0",
|
||||
"version": "0.2.1",
|
||||
"description": "Convert and lightly edit audio and video locally in the browser.",
|
||||
"entry": "./",
|
||||
"icon": "./favicon.svg",
|
||||
@@ -37,14 +37,14 @@
|
||||
"telemetry": false
|
||||
},
|
||||
"source": {
|
||||
"repository": "https://git.add-ideas.de/zemion/av-tools",
|
||||
"repository": "https://git.add-ideas.de/lotobo/av-tools",
|
||||
"license": "GPL-3.0-or-later"
|
||||
},
|
||||
"actions": [
|
||||
{
|
||||
"id": "source",
|
||||
"label": "Source",
|
||||
"url": "https://git.add-ideas.de/zemion/av-tools"
|
||||
"url": "https://git.add-ideas.de/lotobo/av-tools"
|
||||
}
|
||||
],
|
||||
"assets": [
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export const APP_VERSION = '0.2.0';
|
||||
export const APP_VERSION = '0.2.1';
|
||||
export const FFMPEG_WRAPPER_VERSION = '0.12.15';
|
||||
export const FFMPEG_UTIL_VERSION = '0.12.2';
|
||||
export const FFMPEG_CORE_VERSION = '0.12.10';
|
||||
|
||||
@@ -112,7 +112,7 @@ export async function startNestedStaticServer(): Promise<NestedStaticServer> {
|
||||
};
|
||||
const catalog = {
|
||||
$schema:
|
||||
'https://git.add-ideas.de/zemion/toolbox-sdk/raw/branch/main/schemas/toolbox-catalog.v1.schema.json',
|
||||
'https://git.add-ideas.de/lotobo/toolbox-sdk/raw/branch/main/schemas/toolbox-catalog.v1.schema.json',
|
||||
schemaVersion: 1,
|
||||
id: 'de.add-ideas.browser-test-toolbox',
|
||||
name: 'Browser Test Toolbox',
|
||||
|
||||
@@ -165,30 +165,30 @@ describe('licence release gate', () => {
|
||||
describe('release checksum', () => {
|
||||
it('formats and parses the portable sidecar form', () => {
|
||||
const digest = 'a'.repeat(64);
|
||||
const line = checksumLine(digest, 'av-tools-0.2.0.zip');
|
||||
expect(line).toBe(`${digest} av-tools-0.2.0.zip\n`);
|
||||
const line = checksumLine(digest, 'av-tools-0.2.1.zip');
|
||||
expect(line).toBe(`${digest} av-tools-0.2.1.zip\n`);
|
||||
expect(parseChecksumLine(line)).toEqual({
|
||||
archiveName: 'av-tools-0.2.0.zip',
|
||||
archiveName: 'av-tools-0.2.1.zip',
|
||||
digest,
|
||||
});
|
||||
});
|
||||
|
||||
it('writes and verifies a checksum sidecar', async () => {
|
||||
const directory = await temporaryDirectory();
|
||||
const archive = path.join(directory, 'av-tools-0.2.0.zip');
|
||||
const archive = path.join(directory, 'av-tools-0.2.1.zip');
|
||||
await writeFile(archive, 'deterministic bytes');
|
||||
const result = await writeChecksum(archive);
|
||||
expect(await verifyChecksum(archive, result.sidecarPath)).toBe(
|
||||
result.digest
|
||||
);
|
||||
expect(await readFile(result.sidecarPath, 'utf8')).toContain(
|
||||
' av-tools-0.2.0.zip'
|
||||
' av-tools-0.2.1.zip'
|
||||
);
|
||||
});
|
||||
|
||||
it('rejects checksum mismatches', async () => {
|
||||
const directory = await temporaryDirectory();
|
||||
const archive = path.join(directory, 'av-tools-0.2.0.zip');
|
||||
const archive = path.join(directory, 'av-tools-0.2.1.zip');
|
||||
const sidecar = `${archive}.sha256`;
|
||||
await writeFile(archive, 'changed');
|
||||
await mkdir(path.dirname(sidecar), { recursive: true });
|
||||
|
||||
Reference in New Issue
Block a user