Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
177ce2b
TEMP
stephenwf Aug 8, 2025
5ee1645
IIIF Presentation 4 support
stephenwf Feb 13, 2026
e83e572
Migrating initial types
stephenwf Feb 14, 2026
1b56e2a
Removed last dependency (geojson) and added p4 meta files
stephenwf Feb 15, 2026
a7d67ce
Updated build tools
stephenwf Feb 15, 2026
3ea1253
Updated tests
stephenwf Feb 15, 2026
72ad813
Fixed up type errors
stephenwf Feb 15, 2026
0d1aae2
Node 24 only
stephenwf Feb 15, 2026
96d7964
Fixes for Presentation 4 - hasPart
stephenwf Feb 15, 2026
fb59fc3
Fixes for image services (v4)
stephenwf Feb 15, 2026
e991c1a
Improved normalized types
stephenwf Feb 15, 2026
6fdf3df
Specific resource normalization
stephenwf Feb 16, 2026
3502dff
Changed types to mirror V3 structure
stephenwf Feb 16, 2026
135d780
Presentation 3 to 4 fixtures, type test and fixes
stephenwf Feb 16, 2026
6a0bcba
Normalized type tests
stephenwf Feb 16, 2026
ac0df1f
Removed v4 aliases
stephenwf Feb 16, 2026
7f9dbf5
Removed optional type properties
stephenwf Feb 16, 2026
494c637
Iteration of types
stephenwf Feb 17, 2026
0a92424
CLI
stephenwf Feb 17, 2026
9de9c8c
Updates to upgrader
stephenwf Feb 17, 2026
214208f
Update class-requirements.ts
stephenwf Feb 17, 2026
ea69a30
Validator updates
stephenwf Feb 17, 2026
5d5ea38
Updates to object format
stephenwf Feb 18, 2026
7956c53
Tighten up strictness of p4 types
stephenwf Feb 18, 2026
252230a
Fixed start property serialisation
stephenwf Feb 18, 2026
b7ff7bd
Added ID to ocean liners
stephenwf Feb 18, 2026
19d111f
PointSelector and services
stephenwf Feb 18, 2026
e5897b9
Language property updates and arrays
stephenwf Feb 18, 2026
f66f226
Collection types split
stephenwf Feb 18, 2026
330ad24
Removed context from types
stephenwf Feb 18, 2026
6acf6fb
Aligned normalized types with what is output.
stephenwf Feb 18, 2026
b5184ab
Updates to normalized resources
stephenwf Feb 18, 2026
a4b4a34
Expanded type test
stephenwf Feb 18, 2026
735fd4a
Update build-test.yml
stephenwf Feb 18, 2026
9e408c3
New p4 upgrader + validator package paths
stephenwf Feb 19, 2026
4cb1dc0
Specific resource fixes for annotation targets
stephenwf Feb 19, 2026
58bb6da
Update annotation.d.ts
stephenwf Feb 19, 2026
b1c254a
Bin
stephenwf Feb 19, 2026
483c8d2
Bin
stephenwf Feb 19, 2026
38a9f0e
Fixed export
stephenwf Feb 19, 2026
b91381a
Fixes to parser
stephenwf Feb 19, 2026
a4f99f6
Fixed compaction
stephenwf Feb 19, 2026
2a978b4
Update README.md
stephenwf Feb 19, 2026
e87429c
Deduplicate warnings in validator
stephenwf Feb 19, 2026
fb8df62
Fix cli
stephenwf Feb 19, 2026
751b39f
Fix for CLI
stephenwf Feb 19, 2026
adf363d
Validating URLs via CLI
stephenwf Feb 19, 2026
fc56106
docs: add Presentation 4 RC implementation review
stephenwf Jul 23, 2026
9333d47
feat: accept Presentation 4 in the default parser
stephenwf Jul 23, 2026
06562a8
feat: normalize Presentation 4 collection pages
stephenwf Jul 23, 2026
ef42f65
feat: validate authored Presentation 4 documents
stephenwf Jul 23, 2026
7445fbc
fix: preserve Presentation 4 annotation aggregates
stephenwf Jul 23, 2026
ea9a4ef
fix: harden Presentation 4 wire serialization
stephenwf Jul 23, 2026
20578ba
test: align Presentation 4 aggregate repair
stephenwf Jul 23, 2026
fa8e179
docs: record the first Presentation 4 implementation pass
stephenwf Jul 23, 2026
6fcec62
chore: align the Presentation 4 parser candidate
stephenwf Jul 23, 2026
b17aee4
feat: expose Presentation 4 compatibility diagnostics
stephenwf Jul 23, 2026
bdf0b85
docs: describe Presentation 4 compatibility preflight
stephenwf Jul 23, 2026
e8b11eb
test: pin the official Presentation 4 corpus
stephenwf Jul 23, 2026
fac52b5
docs: record the release-confidence milestone
stephenwf Jul 23, 2026
b6ef66b
fix: distinguish Presentation 4 references from resources
stephenwf Jul 23, 2026
308a3b7
docs: record reference and runtime convergence
stephenwf Jul 23, 2026
54eeedc
fix: align Presentation 4 property model
stephenwf Jul 23, 2026
4405d12
fix: publish self-contained declarations
stephenwf Jul 23, 2026
60db95d
feat: define Presentation 4 Scene boundary
stephenwf Jul 23, 2026
216f0ad
fix: preserve opaque service objects
stephenwf Jul 23, 2026
8a5aba2
docs: complete Presentation 4 release handoff
stephenwf Jul 23, 2026
9973712
fix: preserve converted Presentation 4 structures
stephenwf Jul 23, 2026
2cbfd9a
test: refresh generated Presentation 4 corpus
stephenwf Jul 23, 2026
5a74e12
docs: record complete Presentation 4 corpus
stephenwf Jul 23, 2026
c9991fe
fix: retain vendored Presentation 3 imports
stephenwf Jul 23, 2026
d76f42a
Allow esbuild
stephenwf Jul 23, 2026
50fcf34
feat: complete Presentation 4 Scene component support
stephenwf Aug 7, 2026
1bd5761
Formatting
stephenwf Aug 8, 2026
0526323
CI versions
stephenwf Aug 8, 2026
c2b0b10
CLI + Validator fixes
stephenwf Aug 8, 2026
3f01159
CLI clean up
stephenwf Aug 8, 2026
e43432b
Presentation 3 validator
stephenwf Aug 8, 2026
bc6b166
fix(presentation-4): preserve serialized document data
stephenwf Aug 8, 2026
8dd1762
fix(presentation-4): align authored types with validation
stephenwf Aug 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 6 additions & 3 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node: ['18', '22']
node: ["22", "24"]

name: Node ${{ matrix.node }} build
steps:
Expand All @@ -19,15 +19,18 @@ jobs:

- uses: pnpm/action-setup@v3
with:
version: 9
version: 11.13.0
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]

- run: pnpm run build
- run: pnpm run test
- run: pnpm run lint
- run: pnpm run lint:pkg
- run: pnpm run typecheck
- run: pnpm run test:package-types
- run: node scripts/typecheck-p4-json-fixtures.mjs
- run: node scripts/typecheck-p4-normalized-fixtures.mjs
- run: node pkg-tests/node-load.cjs
- run: node pkg-tests/node-load.mjs
- run: node pkg-tests/node-umd.mjs
Expand Down
13 changes: 7 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Release NPM package

on:
push:
tags: ['v*']
tags: ["v*"]

jobs:
build:
Expand All @@ -13,19 +13,20 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '20.x'
node-version: "24.x"

- uses: pnpm/action-setup@v3
with:
version: 9
version: 11.13.0
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]

- run: pnpm build
- run: pnpm run test
- run: pnpm run lint
- run: pnpm run lint:pkg
- run: pnpm run typecheck
- run: pnpm run test:package-types

release:
needs: [build]
Expand All @@ -36,15 +37,15 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '20.x'
node-version: "24.x"

- name: Set tag
id: tagName
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}

- uses: pnpm/action-setup@v3
with:
version: 9
version: 11.13.0
run_install: |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
Expand Down
8 changes: 8 additions & 0 deletions .oxfmtrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"singleQuote": false,
"printWidth": 120,
"trailingComma": "es5",
"sortPackageJson": false,
"ignorePatterns": []
}
5 changes: 0 additions & 5 deletions .prettierrc

This file was deleted.

4 changes: 4 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true
}
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed

- Fixed incorrectly formatted label/value maps in Manifests (#33)

<!--

### Fixed
Expand Down Expand Up @@ -74,6 +75,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `Collection` now has a `iiif-parser:hasPart` when normalized

[^1]: A `Reference<T>` has the shape: `{ id: string, type: T }` and is usually narrowed to one or more types

[^2]: SpecificResource is defined by the W3C Annotation specification, but in short you can access the original reference by accessing `specificResource.source`

[^3]: These properties were added to the specification pre-3.0 and then later removed.

[^4]: This does not replace the inline services with references, instead it's a parallel store of normalized services. Editing tools will have to update both. This moves the problem of multiple services with different structures and fields to the user. The normalized structures will be specifically useful for loading Image services progressively in a store without affecting the serialisation of the IIIF.
Loading
Loading