Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
807784c
Support portable IRIs in vocab codecs
dahlia Jun 29, 2026
472a18a
Document portable IRI codec support
dahlia Jun 29, 2026
b5187bc
Reuse portable IRI regex patterns
dahlia Jun 29, 2026
609d8e4
Add FEP/PR links to the changelog
dahlia Jun 29, 2026
6ad8269
Narrow portable IRI cache detection
dahlia Jun 29, 2026
b23d14d
Harden portable IRI cache checks
dahlia Jun 29, 2026
e38aabb
Preserve portable IRI authority escapes
dahlia Jun 29, 2026
f8557a6
Tighten portable IRI edge handling
dahlia Jun 29, 2026
fad374c
Accept DID scheme case variants
dahlia Jun 29, 2026
ac24a08
Preserve portable IRI cache data
dahlia Jun 29, 2026
938145f
Preserve aliased portable IRI caches
dahlia Jun 29, 2026
16da439
Expand portable IRI context aliases
dahlia Jun 29, 2026
0a5db0a
Preserve @id extension portable IRIs
dahlia Jun 29, 2026
06696b2
Respect remote portable IRI contexts
dahlia Jun 29, 2026
a47aad2
Load nested portable IRI contexts
dahlia Jun 29, 2026
c418545
Cache remote portable IRI contexts
dahlia Jun 29, 2026
00be738
Normalize expanded portable IRI values
dahlia Jun 29, 2026
43e239b
Avoid duplicate portable IRI scans
dahlia Jun 30, 2026
e86a7ad
Reject malformed portable DID authorities
dahlia Jun 30, 2026
def6d45
Preserve portable IRI cache shape
dahlia Jun 30, 2026
deba7d9
Tighten portable IRI URL parsing
dahlia Jun 30, 2026
33d934c
Preserve unmapped JSON-LD cache terms
dahlia Jun 30, 2026
b1ec301
Skip represented JSON-LD cache terms
dahlia Jun 30, 2026
f4d4dd8
Recheck decoded portable IRI escapes
dahlia Jun 30, 2026
f9f2bac
Batch portable IRI cache merge checks
dahlia Jun 30, 2026
a887b99
Harden portable IRI cache handling
dahlia Jun 30, 2026
5267922
Preserve portable IRI cache contexts
dahlia Jun 30, 2026
8fbb58f
Avoid redundant portable IRI cache objects
dahlia Jun 30, 2026
ac22364
Preserve expanded portable IRI cache shape
dahlia Jun 30, 2026
cc075dd
Preserve compact portable IRI array shape
dahlia Jun 30, 2026
4927e08
Preserve compact array cache shape
dahlia Jun 30, 2026
d8358fe
Compact cache with item contexts
dahlia Jun 30, 2026
5f87005
Compare portable IRI origins
dahlia Jun 30, 2026
6809204
Document portable IRI syntax caveat
dahlia Jun 30, 2026
a68073e
Address portable IRI review feedback
dahlia Jul 1, 2026
ee73169
Tighten portable IRI edge cases
dahlia Jul 1, 2026
1beb733
Harden portable IRI cache normalization
dahlia Jul 1, 2026
3c112c3
Refresh runtime vocab snapshots
dahlia Jul 2, 2026
5c5f5cc
Avoid repeated JSON-LD id parsing
dahlia Jul 2, 2026
d8f4893
Preserve portable IRI cache edges
dahlia Jul 2, 2026
48c1aad
Move JSON-LD cache helpers to runtime
dahlia Jul 2, 2026
c2490d1
Keep cache helpers internal
dahlia Jul 2, 2026
8716ed4
Avoid dummy marker prefix collisions
dahlia Jul 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@ Version 2.4.0

To be released.

### @fedify/vocab

- Added support for [FEP-ef61] portable ActivityPub IRIs in generated
vocabulary codecs. `ap:` and `ap+ef61:` values with decoded or
percent-encoded DID authorities now parse as `URL` objects, and JSON-LD
serialization emits canonical `ap+ef61:` values with decoded DID
authorities. [[#826], [#850]]

[FEP-ef61]: https://w3id.org/fep/ef61
[#826]: https://github.com/fedify-dev/fedify/issues/826
[#850]: https://github.com/fedify-dev/fedify/pull/850


Version 2.3.1
-------------
Expand Down
7 changes: 7 additions & 0 deletions docs/manual/vocab.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,12 +108,19 @@ const create = new Create({
Note that every URI is represented as a [`URL`] object. This is for
distinguishing the URIs from the other strings.

Fedify also accepts [FEP-ef61] portable ActivityPub IRIs in JSON-LD input.
Both the `ap:` and `ap+ef61:` schemes are accepted, whether the DID authority
is decoded (e.g., `ap+ef61://did:key:.../actor`) or percent-encoded. Fedify
stores these IRIs as `URL` objects with a URL-safe authority internally, and
serializes them as canonical `ap+ef61:` IRIs with the decoded DID authority.

> [!TIP]
> You can instantiate an object from a JSON-LD document by calling the
> `fromJsonLd()` method of the object. See the [*JSON-LD* section](#json-ld)
> for details.
[`URL`]: https://developer.mozilla.org/en-US/docs/Web/API/URL
[FEP-ef61]: https://w3id.org/fep/ef61


Properties
Expand Down
1 change: 1 addition & 0 deletions packages/vocab-runtime/deno.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"license": "MIT",
"exports": {
".": "./src/mod.ts",
"./internal/jsonld-cache": "./src/internal/jsonld-cache.ts",
"./jsonld": "./src/jsonld.ts",
"./temporal": "./src/temporal.ts"
},
Expand Down
10 changes: 10 additions & 0 deletions packages/vocab-runtime/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@
"require": "./dist/jsonld.cjs",
"default": "./dist/jsonld.js"
},
"./internal/jsonld-cache": {
"types": {
"import": "./dist/internal/jsonld-cache.d.ts",
"require": "./dist/internal/jsonld-cache.d.cts",
"default": "./dist/internal/jsonld-cache.d.ts"
},
"import": "./dist/internal/jsonld-cache.js",
"require": "./dist/internal/jsonld-cache.cjs",
"default": "./dist/internal/jsonld-cache.js"
},
"./temporal": {
"types": {
"import": "./dist/temporal.d.ts",
Expand Down
Loading