feat(search): add pagefind provider support

Add Pagefind indexing and browser search adapters behind a provider switch.

This lets prebuild generate either Stork or Pagefind search artifacts and lets the existing search UI run against Pagefind while preserving scoped filters, excerpts, and result metadata.
This commit is contained in:
ThatGuySam 2026-03-15 13:42:07 -05:00
parent 727f84e4c2
commit e1da6eb880
12 changed files with 690 additions and 65 deletions

64
pnpm-lock.yaml generated
View file

@ -137,6 +137,9 @@ importers:
ofetch:
specifier: ^1.0.0
version: 1.0.0
pagefind:
specifier: 1.4.0
version: 1.4.0
plist:
specifier: ^3.0.1
version: 3.0.1
@ -1254,6 +1257,36 @@ packages:
'@oslojs/encoding@1.1.0':
resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==}
'@pagefind/darwin-arm64@1.4.0':
resolution: {integrity: sha512-2vMqkbv3lbx1Awea90gTaBsvpzgRs7MuSgKDxW0m9oV1GPZCZbZBJg/qL83GIUEN2BFlY46dtUZi54pwH+/pTQ==}
cpu: [arm64]
os: [darwin]
'@pagefind/darwin-x64@1.4.0':
resolution: {integrity: sha512-e7JPIS6L9/cJfow+/IAqknsGqEPjJnVXGjpGm25bnq+NPdoD3c/7fAwr1OXkG4Ocjx6ZGSCijXEV4ryMcH2E3A==}
cpu: [x64]
os: [darwin]
'@pagefind/freebsd-x64@1.4.0':
resolution: {integrity: sha512-WcJVypXSZ+9HpiqZjFXMUobfFfZZ6NzIYtkhQ9eOhZrQpeY5uQFqNWLCk7w9RkMUwBv1HAMDW3YJQl/8OqsV0Q==}
cpu: [x64]
os: [freebsd]
'@pagefind/linux-arm64@1.4.0':
resolution: {integrity: sha512-PIt8dkqt4W06KGmQjONw7EZbhDF+uXI7i0XtRLN1vjCUxM9vGPdtJc2mUyVPevjomrGz5M86M8bqTr6cgDp1Uw==}
cpu: [arm64]
os: [linux]
'@pagefind/linux-x64@1.4.0':
resolution: {integrity: sha512-z4oddcWwQ0UHrTHR8psLnVlz6USGJ/eOlDPTDYZ4cI8TK8PgwRUPQZp9D2iJPNIPcS6Qx/E4TebjuGJOyK8Mmg==}
cpu: [x64]
os: [linux]
'@pagefind/windows-x64@1.4.0':
resolution: {integrity: sha512-NkT+YAdgS2FPCn8mIA9bQhiBs+xmniMGq1LFPDhcFn0+2yIUEiIG06t7bsZlhdjknEQRTSdT7YitP6fC5qwP0g==}
cpu: [x64]
os: [win32]
'@parcel/watcher-android-arm64@2.5.6':
resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==}
engines: {node: '>= 10.0.0'}
@ -5808,6 +5841,10 @@ packages:
package-manager-detector@1.6.0:
resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==}
pagefind@1.4.0:
resolution: {integrity: sha512-z2kY1mQlL4J8q5EIsQkLzQjilovKzfNVhX8De6oyE6uHpfFtyBaqUpcl/XzJC/4fjD8vBDyh1zolimIcVrCn9g==}
hasBin: true
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
@ -9217,6 +9254,24 @@ snapshots:
'@oslojs/encoding@1.1.0': {}
'@pagefind/darwin-arm64@1.4.0':
optional: true
'@pagefind/darwin-x64@1.4.0':
optional: true
'@pagefind/freebsd-x64@1.4.0':
optional: true
'@pagefind/linux-arm64@1.4.0':
optional: true
'@pagefind/linux-x64@1.4.0':
optional: true
'@pagefind/windows-x64@1.4.0':
optional: true
'@parcel/watcher-android-arm64@2.5.6':
optional: true
@ -14522,6 +14577,15 @@ snapshots:
package-manager-detector@1.6.0: {}
pagefind@1.4.0:
optionalDependencies:
'@pagefind/darwin-arm64': 1.4.0
'@pagefind/darwin-x64': 1.4.0
'@pagefind/freebsd-x64': 1.4.0
'@pagefind/linux-arm64': 1.4.0
'@pagefind/linux-x64': 1.4.0
'@pagefind/windows-x64': 1.4.0
parent-module@1.0.1:
dependencies:
callsites: 3.1.0