- Refactoring `scripts/check-hex.js` to use git's native search instead of `ripgrep` for better portability and dependency reduction.
- Updating `tests/ui/uploadModal-integration.test.mjs` to ensure DOM isolation between tests using `beforeEach` cleanup, resolving state pollution issues.
Co-authored-by: PR0M3TH3AN <[email protected]>
Added scripts/agent/smoke-test.mjs to verify login, relay connection, video publishing, and DM decryption flows using a headless Node.js client.
The script polyfills the necessary browser environment for NostrClient and uses local relay/server resources.
Co-authored-by: PR0M3TH3AN <[email protected]>
Explicitly find the #uploadModal element within the parsed template wrapper using querySelector instead of relying on firstElementChild. This prevents null pointer exceptions in JSDOM environments where leading whitespace in the template string creates a text node as the first child.
Co-authored-by: PR0M3TH3AN <[email protected]>
Refactored the test suite to use `beforeEach` for mocking `global.fetch` and `afterEach` for cleaning up `document.body`. This ensures that `fetch` is available for all tests and that DOM state (specifically elements with duplicate IDs) does not leak between tests, resolving `TypeError: Cannot read properties of null` failures in `UploadModal.bindEvents`.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Explicitly add `@noble/hashes@^2.0.1` to `devDependencies` to satisfy `jsdom`'s peer dependency requirement, resolving the version conflict with `nostr-tools`.
- Update `package-lock.json` to reflect the new dependency resolution.
- Fix `UploadModal` integration tests (`tests/ui/uploadModal-integration.test.mjs`) to robustly handle JSDOM container reuse and `fetch` mocking, preventing false positives in CI.
- Improve `UploadModal.load` robustness by falling back to `lastElementChild` if `querySelector` fails (defensive coding against DOM quirks).
Co-authored-by: PR0M3TH3AN <[email protected]>
Run `npm install` to regenerate `package-lock.json`, ensuring that all dependencies (including `@noble/hashes`) are correctly resolved and synchronized with `package.json`. This resolves the `npm ci` failure in the CI environment.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Adds @noble/[email protected] to dependencies to satisfy jsdom's peer dependency requirement.
- Updates package-lock.json to include the new version at the root and nest the older version (1.3.1) required by nostr-tools.
- Fixes `npm ci` failure "Missing: @noble/[email protected] from lock file".
Co-authored-by: PR0M3TH3AN <[email protected]>
This resolves a CI failure where `npm ci` reports "Missing: @noble/[email protected] from lock file" due to an optional peer dependency chain in `jsdom` -> `html-encoding-sniffer` -> `@exodus/bytes` requiring `@noble/hashes@^2.0.0`, which was not being persisted in `package-lock.json` in some environments.
Explicitly adding the package ensures it is present in the lock file, satisfying the strict requirements of `npm ci`.
Co-authored-by: PR0M3TH3AN <[email protected]>
Explicitly adds @noble/[email protected] to devDependencies to satisfy the peer dependency of @exodus/bytes (used by jsdom), resolving the conflict with nostr-tools which requires version 1.3.1. Regenerates package-lock.json to include the correct versions.
Co-authored-by: PR0M3TH3AN <[email protected]>
Explicitly adds `@noble/[email protected]` to `package.json` dependencies.
This resolves a `peerDependencies` conflict where `@exodus/bytes` (a dependency
of `jsdom`) requires `@noble/hashes` ^1.8.0 || ^2.0.0, but `nostr-tools`
requires version 1.3.1.
By adding it to the root project, `npm` can correctly hoist version 2.0.1 for
`@exodus/bytes` while keeping version 1.3.1 nested for `nostr-tools`.
This fixes `npm ci` failures in CI environments that strictly validate the lockfile.
Co-authored-by: PR0M3TH3AN <[email protected]>
Explicitly add `@noble/[email protected]` to `devDependencies` to satisfy `jsdom`'s peer dependency requirement (via `@exodus/bytes`) while allowing `nostr-tools` to use its pinned version `1.3.1`. This resolves the `npm ci` failure in CI.
- Update `package.json` to include `@noble/hashes`.
- Update `package-lock.json` with resolved dependencies.
Co-authored-by: PR0M3TH3AN <[email protected]>
Update `tests/ui/video-list-view-popular-tags.test.mjs` to account for
the `#` prefix that `TagPillList` (and by extension `VideoListView`)
adds to tags. This fixes the assertion failures where "Nostr" was
expected but "#Nostr" was found, and updates the tag preference resolver
in the test to handle the prefixed format.
Fixes unit test failures in CI.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Replaced text-based "Show/Hide" sidebar toggles with SVG chevron icons.
- Added a hamburger menu icon to the "Contents" button on mobile view.
- Updated `js/docsView.js` to handle icon toggling and properly hide flex container elements using the `.hidden` class.
- Improved accessibility by maintaining `aria-expanded` attributes.
Co-authored-by: PR0M3TH3AN <[email protected]>