Files
FixIt/librarybot.yml
T
Cell a96ba665ac refactor(assets)!: rewrite content encryption with AES-256-GCM and PBKDF2 (#806)
* refactor(assets)!: rewrite content encryption with AES-256-GCM and PBKDF2

- Remove legacy Base64 obfuscation layer (content-encryption.html)
- Replace <cipher-text> with <template> for inert content storage
- Single-layer AES-256-GCM encryption via post-build script
- PBKDF2 key derivation (100k iterations) for encryption
- PBKDF2-protected password verification (data-verify-salt)
- Depth-tracking parser for nested shortcode support
- Dev mode: plaintext content used directly without encryption
- Remove crypto-js and xxhash-wasm vendored dependencies

* feat(post-encrypt): prepare package for npm publishing

- Add bin entry, build script, and dist output for npx usage
- Replace @hugo-fixit/shared with standalone implementations
- Add CLI shebang for direct execution
- Add package README with usage documentation
- Remove FIXIT_ENCRYPT_INPUT env var (redundant with --input)
- Add encryption detection warning in assets.html
- Remove Post-build Encryption sections from READMEs

* chore: integrate post-encrypt into build pipeline and use consola

- Replace console with consola for post-encrypt logging
- Improve verification messages (no templates, count, etc.)
- Simplify build scripts: encrypt runs as part of main build
- Update encryption detection warning to use npx command

* feat(assets): add encryption dev warning admonition

- Add danger admonition in single.html for full-page encryption (dev mode only)
- Add encryption detection warning in assets.html console
- Improve post-encrypt verification messages with template count

* feat(assets): improve encryption i18n, cache security, and error handling

- Add encryptionWarning and encryptionCommand i18n keys for all 16 languages
- Store PBKDF2 verification hash in localStorage cache for better security
- Show decryption errors via flashTooltip instead of console only
- Add FixItDecryptor type definitions in global.ts
- Move encryption detection to init/detection-encryption.html with batched warning
- Remove redundant per-page warning from assets.html

* feat(assets): redesign fixit-decryptor UI with card layout

- Page-level: card form with lock icon header, password input with key icon, primary-colored unlock button, circular re-encrypt button
- Shortcode-level: connected input+button design (search bar style) with focus ring sync
- Remove loading spinner, use display:none/flex toggle via .initialized class
- Move lock icon styling to UnoCSS (text-primary text-xl)
- Initialize CellTooltip on re-encrypt button
- Fix JSDoc @param warnings in global.ts

* refactor(assets): unify TOC template and decryptor animations

- TOC always rendered in `<template data-toc>`, containers populated by initToc()
- Moved TOC scroll/resize handling from events.ts to toc.ts (syncTocLayout, syncTocActiveState)
- Removed EventsModule toc dependency, updated public-api.ts constructor
- Removed visibility:hidden from #toc-auto
- Decryptor: form always visible, @starting-style for fade-in on init
- Decryptor: content expand/collapse animation using height + opacity
- Removed encrypted-hidden from TOC elements in single.html

* refactor(assets): add target to fixit:decrypted event and simplify handlers

- Add { target: Element } payload to fixit:decrypted in event-bus.ts
- Remove $content closure from fixit-decryptor init(), use detail.target
- Update content.ts and toc.ts to use detail.target from event

* fix(assets): use eventBus for TOC scroll/resize listeners and eliminate redundant template parsing

- Replace raw window scroll/resize listeners in TocModule with eventBus
  subscriptions (fixit:scroll/fixit:resize), reusing EventsModule's
  throttle and debounce instead of duplicating un-throttled handlers.
- Refactor hasUnencryptedTemplate in post-encrypt to accept the already-
  computed matches array, avoiding a redundant findEncryptionTemplates
  call on the same HTML content.
- Remove crypto-js and xxhash-wasm from README credits.

* style(assets): soften decryptor button background and add form hover shadow

* build(workflow): add post-encrypt step to build script
2026-07-05 23:26:11 +08:00

212 lines
5.2 KiB
YAML

schemaVersion: 1
baseDir: assets/lib
libraries:
- npm: '@algolia/autocomplete-js'
version: 1.19.9
local:
items:
- from: dist/umd/index.production.js
to: autocomplete-js/index.production.js
- npm: algoliasearch
version: 5.55.1
local:
items:
- from: dist/lite/builds/browser.umd.js
to: algoliasearch/browser.umd.js
- npm: animate.css
version: 4.1.1
local:
items:
- from: animate.min.css
to: animate/animate.min.css
- npm: aplayer
version: 1.10.1
local:
items:
- from: dist/APlayer.min.css
to: aplayer/APlayer.min.css
- from: dist/APlayer.min.js
to: aplayer/APlayer.min.js
- npm: cell-tooltip
version: 0.3.1
local:
items:
- from: dist/cell-tooltip.umd.js
to: cell-tooltip/cell-tooltip.umd.js
- npm: cell-watermark
version: 1.0.4
local:
items:
- from: src/watermark.js
to: cell-watermark/watermark.js
- npm: cookieconsent
version: 3.1.1
local:
items:
- from: build/cookieconsent.min.css
to: cookieconsent/cookieconsent.min.css
- from: build/cookieconsent.min.js
to: cookieconsent/cookieconsent.min.js
- npm: echarts
version: 6.1.0
local:
items:
- from: dist/echarts.min.js
to: echarts/echarts.min.js
- npm: '@fortawesome/fontawesome-free'
version: 7.3.0
local:
items:
- from: css/all.min.css
to: fontawesome-free/all.min.css
- type: dir
from: webfonts
to: webfonts
baseDir: static/lib
clean: true
- npm: fuse.js
version: 7.4.2
local:
items:
- from: dist/fuse.mjs
to: fuse/fuse.mjs
- npm: gitalk
version: 1.8.0
local:
items:
- from: dist/gitalk.css
to: gitalk/gitalk.css
- from: dist/gitalk.min.js
to: gitalk/gitalk.min.js
- npm: instant.page
version: 5.2.0
local:
items:
- from: instantpage.min.js
to: instant.page/instantpage.min.js
- npm: json-viewer-element
version: 1.0.4
local:
items:
- from: dist/json-viewer-element.umd.js
to: json-viewer-element/json-viewer-element.umd.js
- npm: katex
version: 0.17.0
local:
items:
- from: dist/contrib/copy-tex.min.js
to: katex/copy-tex.min.js
- from: dist/katex.min.css
to: katex/katex.min.css
- type: dir
from: dist/fonts
to: katex/fonts
baseDir: static/lib
clean: true
- npm: lightgallery
version: 2.9.0
local:
items:
- from: css/lightgallery-bundle.min.css
to: lightgallery/css/lightgallery-bundle.min.css
- from: lightgallery.min.js
to: lightgallery/lightgallery.min.js
- from: plugins/thumbnail/lg-thumbnail.min.js
to: lightgallery/plugins/thumbnail/lg-thumbnail.min.js
- from: plugins/zoom/lg-zoom.min.js
to: lightgallery/lg-zoom.min.js
- type: dir
from: fonts
to: lightgallery/fonts
baseDir: static/lib
clean: true
- type: dir
from: images
to: lightgallery/images
baseDir: static/lib
clean: true
- npm: mapbox-gl
version: 3.25.0
local:
items:
- from: dist/mapbox-gl.css
to: mapbox-gl/mapbox-gl.css
- from: dist/mapbox-gl.js
to: mapbox-gl/mapbox-gl.js
- npm: meting
version: 2.0.2
local:
items:
- from: dist/Meting.min.js
to: meting/Meting.min.js
- npm: pace-js
version: 1.2.4
local:
items:
- from: pace.min.js
to: pace/pace.min.js
- npm: pangu
version: 7.2.1
local:
items:
- from: dist/browser/pangu.umd.js
to: pangu/pangu.umd.js
- npm: '@panzoom/panzoom'
version: 4.6.2
local:
items:
- from: dist/panzoom.min.js
to: panzoom/panzoom.min.js
- npm: sharer.js
version: 0.5.4
local:
items:
- from: sharer.min.js
to: sharer/sharer.min.js
- npm: simple-icons
version: 16.24.1
local:
items:
- type: dir
from: icons
to: simple-icons/icons
clean: true
- npm: '@github/tab-container-element'
version: 4.8.2
local:
items:
- from: dist/bundle.min.js
to: tab-container-element/bundle.min.js
- npm: twemoji
version: 14.0.2
local:
items:
- from: dist/twemoji.min.js
to: twemoji/twemoji.min.js
- npm: twikoo
version: 1.7.13
local:
items:
- from: dist/twikoo.all.min.js
to: twikoo/twikoo.all.min.js
- npm: typeit
version: 8.8.7
local:
items:
- from: dist/index.umd.js
to: typeit/index.umd.js
- npm: valine
version: 1.5.3
local:
items:
- from: dist/Valine.min.js
to: valine/Valine.min.js
- npm: '@waline/client'
version: 3.15.2
local:
items:
- from: dist/waline.css
to: waline/waline.css
- from: dist/waline.umd.js
to: waline/waline.umd.js