@fedify/fedify 0.8.0-dev.154 → 0.8.0-dev.162
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @fedify/fedify might be problematic. Click here for more details.
- package/CHANGES.md +3 -2
- package/README.md +5 -9
- package/esm/mod.js +3 -9
- package/esm/runtime/docloader.js +14 -3
- package/package.json +1 -1
- package/types/mod.d.ts +3 -9
- package/types/mod.d.ts.map +1 -1
- package/types/runtime/docloader.d.ts.map +1 -1
package/CHANGES.md
CHANGED
@@ -8,8 +8,9 @@ Version 0.8.0
|
|
8
8
|
|
9
9
|
To be released.
|
10
10
|
|
11
|
-
- The CLI toolchain is now available on JSR:
|
12
|
-
|
11
|
+
- The CLI toolchain for testing and debugging is now available on JSR:
|
12
|
+
[@fedify/cli]. You can install it with
|
13
|
+
`deno install -A -n fedify jsr:@fedify/cli`.
|
13
14
|
|
14
15
|
- Implemented [followers collection synchronization mechanism][FEP-8fcf].
|
15
16
|
|
package/README.md
CHANGED
@@ -19,33 +19,28 @@ It aims to eliminate the complexity and redundant boilerplate code when
|
|
19
19
|
building a federated server app, so that you can focus on your business logic
|
20
20
|
and user experience.
|
21
21
|
|
22
|
-
Currently, Fedify
|
23
|
-
recommend using it in production yet, so please use it if you would like to
|
24
|
-
experiment with it and help us improve it.
|
25
|
-
|
26
|
-
The rough roadmap is to implement the following features out of the box:
|
22
|
+
Currently, Fedify provides the following features out of the box:
|
27
23
|
|
28
24
|
- Type-safe objects for [Activity Vocabulary] (including some vendor-specific
|
29
25
|
extensions)
|
30
26
|
- [WebFinger] client and server
|
31
27
|
- [HTTP Signatures]
|
32
28
|
- Middlewares for handling webhooks
|
33
|
-
- [ActivityPub] client
|
34
29
|
- [NodeInfo] protocol
|
35
30
|
- Special touch for interoperability with Mastodon and few other popular
|
36
31
|
fediverse software
|
32
|
+
- CLI toolchain for testing and debugging
|
37
33
|
|
38
34
|
If you want to know more about the project, please take a look at the following
|
39
35
|
resources:
|
40
36
|
|
41
37
|
- [Tutorial](https://fedify.dev/tutorial)
|
42
|
-
- [Manual](https://fedify.dev/manual)
|
43
|
-
([Unstable](https://unstable.fedify.dev/manual))
|
44
38
|
- [API reference][JSR]
|
45
39
|
- [Examples](https://github.com/dahlia/fedify/tree/main/examples)
|
46
40
|
|
47
41
|
If you have any questions, suggestions, or feedback, please feel free to
|
48
|
-
join our [Matrix chat space][Matrix] or [GitHub Discussions].
|
42
|
+
join our [Matrix chat space][Matrix] or [GitHub Discussions]. Or tag
|
43
|
+
[#Fedify] in the fediverse!
|
49
44
|
|
50
45
|
[^1]: You may already know some of the networks in the fediverse, such as
|
51
46
|
[Mastodon], [Lemmy], [Pixelfed], [PeerTube], and so on.
|
@@ -68,6 +63,7 @@ join our [Matrix chat space][Matrix] or [GitHub Discussions].
|
|
68
63
|
[HTTP Signatures]: https://tools.ietf.org/html/draft-cavage-http-signatures-12
|
69
64
|
[NodeInfo]: https://nodeinfo.diaspora.software/
|
70
65
|
[GitHub Discussions]: https://github.com/dahlia/fedify/discussions
|
66
|
+
[#Fedify]: https://elk.zone/mastodon.social/tags/fedify
|
71
67
|
[Mastodon]: https://joinmastodon.org/
|
72
68
|
[Lemmy]: https://join-lemmy.org/
|
73
69
|
[Pixelfed]: https://pixelfed.org/
|
package/esm/mod.js
CHANGED
@@ -8,29 +8,23 @@
|
|
8
8
|
* building a federated server app, so that you can focus on your business
|
9
9
|
* logic and user experience.
|
10
10
|
*
|
11
|
-
* Currently, Fedify
|
12
|
-
* recommend using it in production yet, so please use it if you would like to
|
13
|
-
* experiment with it and help us improve it.
|
14
|
-
*
|
15
|
-
* The rough roadmap is to implement the following features out of the box:
|
11
|
+
* Currently, Fedify provides the following features out of the box:
|
16
12
|
*
|
17
13
|
* - Type-safe objects for [Activity Vocabulary] (including some vendor-specific
|
18
14
|
* extensions)
|
19
15
|
* - [WebFinger] client and server
|
20
16
|
* - [HTTP Signatures]
|
21
17
|
* - Middlewares for handling webhooks
|
22
|
-
* - [ActivityPub] client
|
23
18
|
* - [NodeInfo] protocol
|
24
19
|
* - Special touch for interoperability with Mastodon and few other popular
|
25
20
|
* fediverse software
|
21
|
+
* - CLI toolchain for testing and debugging
|
26
22
|
*
|
27
23
|
* If you want to know more about the project, please take a look at the
|
28
24
|
* following resources:
|
29
25
|
*
|
30
26
|
* - [GitHub](https://github.com/dahlia/fedify)
|
31
|
-
* -
|
32
|
-
* - [Manual](https://fedify.dev/manual)
|
33
|
-
* ([Unstable](https://unstable.fedify.dev/manual))
|
27
|
+
* - [Tutorial](https://fedify.dev/tutorial)
|
34
28
|
* - [Examples](https://github.com/dahlia/fedify/tree/main/examples)
|
35
29
|
*
|
36
30
|
* [ActivityPub]: https://www.w3.org/TR/activitypub/
|
package/esm/runtime/docloader.js
CHANGED
@@ -28,7 +28,7 @@ function createRequest(url) {
|
|
28
28
|
headers: {
|
29
29
|
Accept: "application/activity+json, application/ld+json",
|
30
30
|
},
|
31
|
-
redirect: "
|
31
|
+
redirect: "manual",
|
32
32
|
});
|
33
33
|
}
|
34
34
|
function logRequest(request) {
|
@@ -68,6 +68,11 @@ export async function fetchDocumentLoader(url) {
|
|
68
68
|
const request = createRequest(url);
|
69
69
|
logRequest(request);
|
70
70
|
const response = await fetch(request);
|
71
|
+
// Follow redirects manually to get the final URL:
|
72
|
+
if (response.status >= 300 && response.status < 400 &&
|
73
|
+
response.headers.has("Location")) {
|
74
|
+
return fetchDocumentLoader(response.headers.get("Location"));
|
75
|
+
}
|
71
76
|
return getRemoteDocument(url, response);
|
72
77
|
}
|
73
78
|
/**
|
@@ -82,13 +87,19 @@ export async function fetchDocumentLoader(url) {
|
|
82
87
|
*/
|
83
88
|
export function getAuthenticatedDocumentLoader(identity) {
|
84
89
|
validateCryptoKey(identity.privateKey);
|
85
|
-
|
90
|
+
async function load(url) {
|
86
91
|
let request = createRequest(url);
|
87
92
|
request = await sign(request, identity.privateKey, identity.keyId);
|
88
93
|
logRequest(request);
|
89
94
|
const response = await fetch(request);
|
95
|
+
// Follow redirects manually to get the final URL:
|
96
|
+
if (response.status >= 300 && response.status < 400 &&
|
97
|
+
response.headers.has("Location")) {
|
98
|
+
return load(response.headers.get("Location"));
|
99
|
+
}
|
90
100
|
return getRemoteDocument(url, response);
|
91
|
-
}
|
101
|
+
}
|
102
|
+
return load;
|
92
103
|
}
|
93
104
|
/**
|
94
105
|
* Decorates a {@link DocumentLoader} with a cache backed by a {@link Deno.Kv}.
|
package/package.json
CHANGED
package/types/mod.d.ts
CHANGED
@@ -8,29 +8,23 @@
|
|
8
8
|
* building a federated server app, so that you can focus on your business
|
9
9
|
* logic and user experience.
|
10
10
|
*
|
11
|
-
* Currently, Fedify
|
12
|
-
* recommend using it in production yet, so please use it if you would like to
|
13
|
-
* experiment with it and help us improve it.
|
14
|
-
*
|
15
|
-
* The rough roadmap is to implement the following features out of the box:
|
11
|
+
* Currently, Fedify provides the following features out of the box:
|
16
12
|
*
|
17
13
|
* - Type-safe objects for [Activity Vocabulary] (including some vendor-specific
|
18
14
|
* extensions)
|
19
15
|
* - [WebFinger] client and server
|
20
16
|
* - [HTTP Signatures]
|
21
17
|
* - Middlewares for handling webhooks
|
22
|
-
* - [ActivityPub] client
|
23
18
|
* - [NodeInfo] protocol
|
24
19
|
* - Special touch for interoperability with Mastodon and few other popular
|
25
20
|
* fediverse software
|
21
|
+
* - CLI toolchain for testing and debugging
|
26
22
|
*
|
27
23
|
* If you want to know more about the project, please take a look at the
|
28
24
|
* following resources:
|
29
25
|
*
|
30
26
|
* - [GitHub](https://github.com/dahlia/fedify)
|
31
|
-
* -
|
32
|
-
* - [Manual](https://fedify.dev/manual)
|
33
|
-
* ([Unstable](https://unstable.fedify.dev/manual))
|
27
|
+
* - [Tutorial](https://fedify.dev/tutorial)
|
34
28
|
* - [Examples](https://github.com/dahlia/fedify/tree/main/examples)
|
35
29
|
*
|
36
30
|
* [ActivityPub]: https://www.w3.org/TR/activitypub/
|
package/types/mod.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"docloader.d.ts","sourceRoot":"","sources":["../../src/runtime/docloader.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM1D;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAEtE;;;;;;;;GAQG;AACH,MAAM,MAAM,kCAAkC,GAAG,CAC/C,QAAQ,EAAE;IAAE,KAAK,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAA;CAAE,KACpD,cAAc,CAAC;AAEpB;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC;;OAEG;IACH,GAAG,EAAE,GAAG,CAAC;IAET;;;;;OAKG;gBACS,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAKhD;AAwDD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,cAAc,CAAC,
|
1
|
+
{"version":3,"file":"docloader.d.ts","sourceRoot":"","sources":["../../src/runtime/docloader.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM1D;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAEtE;;;;;;;;GAQG;AACH,MAAM,MAAM,kCAAkC,GAAG,CAC/C,QAAQ,EAAE;IAAE,KAAK,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAA;CAAE,KACpD,cAAc,CAAC;AAEpB;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC;;OAEG;IACH,GAAG,EAAE,GAAG,CAAC;IAET;;;;;OAKG;gBACS,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAKhD;AAwDD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,cAAc,CAAC,CAYzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE;IAAE,KAAK,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAA;CAAE,GACtD,cAAc,CAiBhB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,EAAE,EAAE,OAAO,CAAC;IAEZ;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;IAEf;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;CAC1E;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CACrB,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,iBAAiB,GAC/C,cAAc,CAgDhB"}
|