dependencies.md 6.9 KB

daw theme — dependency inventory (pre-0.5.0)

Snapshot of everything the classic daw theme depends on, so we can isolate and decide each one's fate during the v0.5.0 FSE migration. Status legend:

  • Keep — still wanted; carry forward (possibly repackaged).
  • Replace — functionality stays, implementation changes (native/blocks/modern lib).
  • Drop? — likely dead or superseded; confirm before removing.
  • Audit — usage unclear; verify what still references it before deciding.

1. npm — runtime (package.json › dependencies)

Package Ver Used by Status
bootstrap 5.3.8 site-wide; CSS via styles.scss @import (webpack sass-compiled); JS bundle v4-bootstrap KEEP — upgraded 5.2.3→5.3.8 (2026-06-16). FSE/blocks may reduce need later.
bootstrap-icons 1.13.1 header nav icons (bi-* ×7); @imported in styles.scss, font files in fonts/ KEEP — upgraded 1.10.2→1.13.1 (2026-06-16); font files re-copied.
jquery ^3.6.1 deregistered globally, re-enqueued per page Replace — goal is no-jQuery; vanilla per block
jquery-validation ^1.19.5 contact/forms Drop? — Gravity Forms handles validation now
jasny-bootstrap ^4.0.0 REMOVED 2026-06-16 — fully unused; offcanvas is BS5-native (data-bs-toggle, .offcanvas-end, --bs-offcanvas-*). jasny was never bundled by gulp and referenced nowhere but package.json. (Vestigial .navmenu class still on the <nav> in header-home/studio.php — harmless leftover, clean up later.)
svg-morpheus ^0.3.0 homepage icon morph (front-page.js) Keep — tied to the bespoke homepage we're preserving
animate.css 4.1.1 (latest) scroll animations (WOW) — now imported from node_modules in legacy-style.js (was gulp-copied v4-animate.css, now orphaned) KEEP — already latest. (Long-term: replace WOW+animate with IntersectionObserver/CSS.)
fullcalendar ^5.11.3 About page calendarabout.js:120 new FullCalendar.Calendar(#calendar), page-about.php:167 <div id="calendar"> KEEP (verified in use). v6 is a breaking API change — defer that upgrade to its own focused task

2. npm — dev (package.json › devDependencies)

gulp, gulp-clean-css, gulp-concat, gulp-rename, gulp-sass, gulp-terser, gulp-uglify, sass, streamqueue, browser-sync. Status: Replace — the whole gulp pipeline → @wordpress/scripts + webpack (per 0.5.0 decision).

3. Vendored / hand-managed JS (js/, not all from npm)

Concatenated into scripts.js (per readme): WOW, jquery-validation, jquery_lazyload, backstretch (was Formstone Wallpaper), Rainbow, jquery.appear, Draw-Fill-SVG, typed.js, jquery-scrollto, smoothState, js-cookie, jquery-waypoints, ghembedder. Plus standalone:

File Purpose Status
terminal.js old homepage terminal Drop? — already removed from bundle (davo-chat replaced it)
messenger.min.js + css/messenger.css HubSpot Messenger Drop? — deprecated (readme), still in front bundle
modernizr.js feature detection Drop? — obsolete
mediaelement-and-player.min.js, wp-mediaelement.min.js media player Replace — use core mediaelement or native <audio>/<video>
loop.js backbone/underscore/wp-api infinite loop (desk/archive) Replace — core Query Loop block
chat.js / chat.min.js / chat_func.js Twilio chat (page-chat) Audit — superseded by davo-bot?
moment.min.js dates (fullcalendar) Drop? — follows fullcalendar decision
color.js, drawfillsvg.js effects Audit
Page JS: about/art/music/desk/contact/single/studio/code/analytics.js per-page behavior Audit/Replace — fold into blocks/parts where still needed
v4-*, *.min.js gulp build outputs generated, not sources

4. CSS (css/)

normalize.css, bootstrap (boot.css), animate (v4-animate), font-awesome.css, fullcalendar.css, messenger.css, chat.css, form.css, front-page.css, fonts.css, editor.css, styles.scssstyles.css. Status: Replace — most folds into theme.json (tokens/palette/typography) + per-block style.css; keep front-page.css (bespoke homepage) and editor.css.

5. Vendored PHP libs (inc/lib/)

Lib Path Used by Status
Twilio PHP SDK (full, ~80 files) inc/lib/call/Services/Twilio/* call/SMS/chat (page-chat, phone.php, sms.php, call.php) Audit — is the phone/SMS/chat feature still live? If kept, replace vendored SDK with Composer twilio/sdk
simple_html_dom inc/lib/dom.php, html_dom.php HTML scraping (music/last.fm? sitemap?) Audit

inc/lib/call/auth.php is gitignored (secrets).

6. Fonts (fonts/)

Mixed eot/otf/svg/ttf/woff/woff2 (11/1/9/11/12/3). Per style.css header: Font Awesome 4.2, Font Mfizz 2.1, Computer Modern. Status: Audit/Replace — declare kept faces in theme.json fontFamilies; drop icon fonts in favor of inline SVG/bootstrap-icons if still wanted.

7. External / CDN

Service Where Status
Matomo (self-hosted davidawindham.com/wik/) dw_analytics() footer Keep → move to inc/analytics/matomo.php
Stripe v2 (js.stripe.com/v2/) contact/pay pages Drop? — Stripe v2 is long-deprecated; Gravity Forms Stripe add-on is the real payment path now

8. WordPress plugins in play (install-level, not theme deps — for context)

Gravity Forms (+ Stripe/Signature/PDF), Akismet, WP Super Cache, WP Sweep, dw-guten (rebuilt v0.4), daw-mcp/mcp-adapter. Forms/validation/payments now belong to Gravity Forms — informs the Drop? calls on jquery-validation + Stripe v2.


Isolation summary for the upgrade

  • Definitely carry forward: Matomo, svg-morpheus (homepage), front-page.css, davo-bot widget loader, dw-guten meta sidebar.
  • Replace with platform: gulp→wp-scripts, jQuery→vanilla, loop.js→Query Loop block, mediaelement→core/native, most CSS→theme.json.
  • Verified KEEP (in use — don't drop): fullcalendar (About calendar), animate.css (via WOW), jquery-validation (comment forms), WOW, DrawFillSVG, backstretch, lazyload, js-cookie, Rainbow, svg-morpheus.
  • Confirm-then-drop (verified unused in the JS audit): terminal.js, messenger, modernizr, Stripe v2, typed.js, smoothState, jquery-waypoints, jquery.appear, jquery-scrollto. (jasny-bootstrap removed 2026-06-16.)
  • Audit features before deciding: Twilio call/SMS/chat, simple_html_dom, icon fonts, moment.min.js (FullCalendar v5 doesn't need it — check other uses).
  • ⚠️ Audit caution: broad greps here have repeatedly produced false negatives (zsh word-split on unquoted file-list vars; case-sensitivity, e.g. FullCalendar). Verify each candidate case-insensitively with literal file args, and trust David's knowledge of what's used.