@fedify/express 0.2.1 → 1.8.0-dev.1004
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.
- package/LICENSE +1 -1
- package/README.md +4 -57
- package/dist/index.d.ts +5 -4
- package/dist/index.js +69 -73
- package/package.json +29 -19
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
<!-- deno-fmt-ignore-file -->
|
|
2
|
+
|
|
1
3
|
@fedify/express: Integrate Fedify with Express
|
|
2
4
|
==============================================
|
|
3
5
|
|
|
4
6
|
[![npm][npm badge]][npm]
|
|
5
7
|
[![Matrix][Matrix badge]][Matrix]
|
|
6
|
-
[![Discord][Discord badge]][Discord]
|
|
7
8
|
[![Follow @fedify@hollo.social][@fedify@hollo.social badge]][@fedify@hollo.social]
|
|
8
9
|
|
|
9
10
|
This package provides a simple way to integrate [Fedify] with [Express].
|
|
@@ -13,7 +14,7 @@ The integration code looks like this:
|
|
|
13
14
|
~~~~ typescript
|
|
14
15
|
import express from "express";
|
|
15
16
|
import { integrateFederation } from "@fedify/express";
|
|
16
|
-
import { federation } from "./federation"; // Your `Federation` instance
|
|
17
|
+
import { federation } from "./federation.ts"; // Your `Federation` instance
|
|
17
18
|
|
|
18
19
|
export const app = express();
|
|
19
20
|
|
|
@@ -25,62 +26,8 @@ app.use(integrateFederation(federation, (req) => "context data goes here"));
|
|
|
25
26
|
[npm]: https://www.npmjs.com/package/@fedify/express
|
|
26
27
|
[npm badge]: https://img.shields.io/npm/v/@fedify/express?logo=npm
|
|
27
28
|
[Matrix]: https://matrix.to/#/#fedify:matrix.org
|
|
28
|
-
[Matrix badge]: https://img.shields.io/matrix/fedify%3Amatrix.org
|
|
29
|
-
[Discord]: https://discord.gg/bhtwpzURwd
|
|
30
|
-
[Discord badge]: https://img.shields.io/discord/1295652627505217647?logo=discord&cacheSeconds=60
|
|
29
|
+
[Matrix badge]: https://img.shields.io/matrix/fedify%3Amatrix.org
|
|
31
30
|
[@fedify@hollo.social badge]: https://fedi-badge.deno.dev/@fedify@hollo.social/followers.svg
|
|
32
31
|
[@fedify@hollo.social]: https://hollo.social/@fedify
|
|
33
32
|
[Fedify]: https://fedify.dev/
|
|
34
33
|
[Express]: https://expressjs.com/
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
Changelog
|
|
38
|
-
---------
|
|
39
|
-
|
|
40
|
-
### Version 0.2.1
|
|
41
|
-
|
|
42
|
-
Released on May 11, 2025.
|
|
43
|
-
|
|
44
|
-
- Fixed an invalid version constraint in the `peerDependencies`.
|
|
45
|
-
[[#3] by Emelia Smith]
|
|
46
|
-
|
|
47
|
-
[#3]: https://github.com/fedify-dev/express/pull/3
|
|
48
|
-
|
|
49
|
-
### Version 0.2.0
|
|
50
|
-
|
|
51
|
-
Released on September 30, 2024.
|
|
52
|
-
|
|
53
|
-
- Relaxed the requirement for the peer dependency `@fedify/fedify` to allow
|
|
54
|
-
any version under 2.0.0.
|
|
55
|
-
|
|
56
|
-
### Version 0.1.4
|
|
57
|
-
|
|
58
|
-
Released on August 31, 2024.
|
|
59
|
-
|
|
60
|
-
- Fixed a bug where it throws `TypeError` with message <q>RequestInit: duplex
|
|
61
|
-
option is required when sending a body.</q>
|
|
62
|
-
|
|
63
|
-
### Version 0.1.3
|
|
64
|
-
|
|
65
|
-
Released on August 5, 2024.
|
|
66
|
-
|
|
67
|
-
- Fixed the middleware to not fill `Request.body` when the request method is
|
|
68
|
-
`GET` or `HEAD`.
|
|
69
|
-
- Fixed the middleware to content-negotiate the response based on
|
|
70
|
-
the `Accept` header.
|
|
71
|
-
|
|
72
|
-
### Version 0.1.2
|
|
73
|
-
|
|
74
|
-
Released on August 5, 2024.
|
|
75
|
-
|
|
76
|
-
- Fixed incorrectly configured export targets in *package.json*.
|
|
77
|
-
|
|
78
|
-
### Version 0.1.1
|
|
79
|
-
|
|
80
|
-
Released on August 5, 2024.
|
|
81
|
-
|
|
82
|
-
- Added missing entry points to the *package.json*.
|
|
83
|
-
|
|
84
|
-
### Version 0.1.0
|
|
85
|
-
|
|
86
|
-
Initial release. Released on August 5, 2024.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Federation } from
|
|
2
|
-
import { Request, Response
|
|
1
|
+
import { Federation } from "@fedify/fedify";
|
|
2
|
+
import { NextFunction, Request, Response } from "express";
|
|
3
3
|
|
|
4
|
+
//#region index.d.ts
|
|
4
5
|
type Middleware = (req: Request, res: Response, next: NextFunction) => void;
|
|
5
6
|
type ContextDataFactory<TContextData> = (req: Request) => TContextData | Promise<TContextData>;
|
|
6
7
|
declare function integrateFederation<TContextData>(federation: Federation<TContextData>, contextDataFactory: ContextDataFactory<TContextData>): Middleware;
|
|
7
|
-
|
|
8
|
-
export {
|
|
8
|
+
//#endregion
|
|
9
|
+
export { ContextDataFactory, integrateFederation };
|
package/dist/index.js
CHANGED
|
@@ -1,80 +1,76 @@
|
|
|
1
|
-
|
|
1
|
+
import { Buffer } from "node:buffer";
|
|
2
2
|
import { Readable } from "node:stream";
|
|
3
|
+
|
|
4
|
+
//#region index.ts
|
|
3
5
|
function integrateFederation(federation, contextDataFactory) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
6
|
+
return (req, res, next) => {
|
|
7
|
+
const request = fromERequest(req);
|
|
8
|
+
const contextData = contextDataFactory(req);
|
|
9
|
+
const contextDataPromise = contextData instanceof Promise ? contextData : Promise.resolve(contextData);
|
|
10
|
+
contextDataPromise.then(async (contextData$1) => {
|
|
11
|
+
let notFound = false;
|
|
12
|
+
let notAcceptable = false;
|
|
13
|
+
const response = await federation.fetch(request, {
|
|
14
|
+
contextData: contextData$1,
|
|
15
|
+
onNotFound: () => {
|
|
16
|
+
notFound = true;
|
|
17
|
+
next();
|
|
18
|
+
return new Response("Not found", { status: 404 });
|
|
19
|
+
},
|
|
20
|
+
onNotAcceptable: () => {
|
|
21
|
+
notAcceptable = true;
|
|
22
|
+
next();
|
|
23
|
+
return new Response("Not acceptable", {
|
|
24
|
+
status: 406,
|
|
25
|
+
headers: {
|
|
26
|
+
"Content-Type": "text/plain",
|
|
27
|
+
Vary: "Accept"
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
if (notFound || notAcceptable && req.route != null) return;
|
|
33
|
+
await setEResponse(res, response);
|
|
34
|
+
res.end();
|
|
35
|
+
res.status = () => res;
|
|
36
|
+
res.send = () => res;
|
|
37
|
+
res.end = () => res;
|
|
38
|
+
res.json = () => res;
|
|
39
|
+
res.removeHeader = () => res;
|
|
40
|
+
res.setHeader = () => res;
|
|
41
|
+
});
|
|
42
|
+
};
|
|
41
43
|
}
|
|
42
44
|
function fromERequest(req) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
method: req.method,
|
|
54
|
-
headers,
|
|
55
|
-
duplex: "half",
|
|
56
|
-
body: req.method === "GET" || req.method === "HEAD" ? void 0 : Readable.toWeb(req)
|
|
57
|
-
});
|
|
45
|
+
const url = `${req.protocol}://${req.header("Host") ?? req.hostname}${req.url}`;
|
|
46
|
+
const headers = new Headers();
|
|
47
|
+
for (const [key, value] of Object.entries(req.headers)) if (Array.isArray(value)) for (const v of value) headers.append(key, v);
|
|
48
|
+
else if (typeof value === "string") headers.append(key, value);
|
|
49
|
+
return new Request(url, {
|
|
50
|
+
method: req.method,
|
|
51
|
+
headers,
|
|
52
|
+
duplex: "half",
|
|
53
|
+
body: req.method === "GET" || req.method === "HEAD" ? void 0 : Readable.toWeb(req)
|
|
54
|
+
});
|
|
58
55
|
}
|
|
59
56
|
function setEResponse(res, response) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
57
|
+
res.status(response.status);
|
|
58
|
+
response.headers.forEach((value, key) => res.setHeader(key, value));
|
|
59
|
+
if (response.body == null) return Promise.resolve();
|
|
60
|
+
const body = response.body;
|
|
61
|
+
return new Promise((resolve) => {
|
|
62
|
+
const reader = body.getReader();
|
|
63
|
+
reader.read().then(function read({ done, value }) {
|
|
64
|
+
if (done) {
|
|
65
|
+
reader.releaseLock();
|
|
66
|
+
resolve();
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
res.write(Buffer.from(value));
|
|
70
|
+
reader.read().then(read);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
76
73
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
};
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gXCJub2RlOnN0cmVhbVwiO1xuaW1wb3J0IHR5cGUgeyBGZWRlcmF0aW9uIH0gZnJvbSBcIkBmZWRpZnkvZmVkaWZ5XCI7XG5pbXBvcnQgdHlwZSB7XG4gIFJlcXVlc3QgYXMgRVJlcXVlc3QsXG4gIFJlc3BvbnNlIGFzIEVSZXNwb25zZSxcbiAgTmV4dEZ1bmN0aW9uLFxufSBmcm9tIFwiZXhwcmVzc1wiO1xuXG50eXBlIE1pZGRsZXdhcmUgPSAocmVxOiBFUmVxdWVzdCwgcmVzOiBFUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbikgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgQ29udGV4dERhdGFGYWN0b3J5PFRDb250ZXh0RGF0YT4gPSAoXG4gIHJlcTogRVJlcXVlc3QsXG4pID0+IFRDb250ZXh0RGF0YSB8IFByb21pc2U8VENvbnRleHREYXRhPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGludGVncmF0ZUZlZGVyYXRpb248VENvbnRleHREYXRhPihcbiAgZmVkZXJhdGlvbjogRmVkZXJhdGlvbjxUQ29udGV4dERhdGE+LFxuICBjb250ZXh0RGF0YUZhY3Rvcnk6IENvbnRleHREYXRhRmFjdG9yeTxUQ29udGV4dERhdGE+LFxuKTogTWlkZGxld2FyZSB7XG4gIHJldHVybiAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gZnJvbUVSZXF1ZXN0KHJlcSk7XG4gICAgY29uc3QgY29udGV4dERhdGEgPSBjb250ZXh0RGF0YUZhY3RvcnkocmVxKTtcbiAgICBjb25zdCBjb250ZXh0RGF0YVByb21pc2UgPVxuICAgICAgY29udGV4dERhdGEgaW5zdGFuY2VvZiBQcm9taXNlXG4gICAgICAgID8gY29udGV4dERhdGFcbiAgICAgICAgOiBQcm9taXNlLnJlc29sdmUoY29udGV4dERhdGEpO1xuICAgIGNvbnRleHREYXRhUHJvbWlzZS50aGVuKGFzeW5jIChjb250ZXh0RGF0YSkgPT4ge1xuICAgICAgbGV0IG5vdEZvdW5kID0gZmFsc2U7XG4gICAgICBsZXQgbm90QWNjZXB0YWJsZSA9IGZhbHNlO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZWRlcmF0aW9uLmZldGNoKHJlcXVlc3QsIHtcbiAgICAgICAgY29udGV4dERhdGEsXG4gICAgICAgIG9uTm90Rm91bmQ6ICgpID0+IHtcbiAgICAgICAgICAvLyBJZiB0aGUgYGZlZGVyYXRpb25gIG9iamVjdCBmaW5kcyBhIHJlcXVlc3Qgbm90IHJlc3BvbnNpYmxlIGZvciBpdFxuICAgICAgICAgIC8vIChpLmUuLCBub3QgYSBmZWRlcmF0aW9uLXJlbGF0ZWQgcmVxdWVzdCksIGl0IHdpbGwgY2FsbCB0aGUgYG5leHRgXG4gICAgICAgICAgLy8gZnVuY3Rpb24gcHJvdmlkZWQgYnkgdGhlIEV4cHJlc3MgZnJhbWV3b3JrIHRvIGNvbnRpbnVlIHRoZSByZXF1ZXN0XG4gICAgICAgICAgLy8gaGFuZGxpbmcgYnkgdGhlIEV4cHJlc3M6XG4gICAgICAgICAgbm90Rm91bmQgPSB0cnVlO1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKFwiTm90IGZvdW5kXCIsIHsgc3RhdHVzOiA0MDQgfSk7IC8vIHVudXNlZFxuICAgICAgICB9LFxuICAgICAgICBvbk5vdEFjY2VwdGFibGU6ICgpID0+IHtcbiAgICAgICAgICAvLyBTaW1pbGFyIHRvIGBvbk5vdEZvdW5kYCwgYnV0IHNsaWdodGx5IG1vcmUgdHJpY2t5LlxuICAgICAgICAgIC8vIFdoZW4gdGhlIGBmZWRlcmF0aW9uYCBvYmplY3QgZmluZHMgYSByZXF1ZXN0IG5vdCBhY2NlcHRhYmxlXG4gICAgICAgICAgLy8gdHlwZS13aXNlIChpLmUuLCBhIHVzZXItYWdlbnQgZG9lc24ndCB3YW50IEpTT04tTEQpLCBpdCB3aWxsIGNhbGxcbiAgICAgICAgICAvLyB0aGUgYG5leHRgIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5IHRoZSBFeHByZXNzIGZyYW1ld29yayB0byBjb250aW51ZVxuICAgICAgICAgIC8vIGlmIGFueSByb3V0ZSBpcyBtYXRjaGVkLCBhbmQgb3RoZXJ3aXNlLCBpdCB3aWxsIHJldHVybiBhIDQwNiBOb3RcbiAgICAgICAgICAvLyBBY2NlcHRhYmxlIHJlc3BvbnNlOlxuICAgICAgICAgIG5vdEFjY2VwdGFibGUgPSB0cnVlO1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKFwiTm90IGFjY2VwdGFibGVcIiwge1xuICAgICAgICAgICAgc3RhdHVzOiA0MDYsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwidGV4dC9wbGFpblwiLFxuICAgICAgICAgICAgICBWYXJ5OiBcIkFjY2VwdFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgaWYgKG5vdEZvdW5kIHx8IChub3RBY2NlcHRhYmxlICYmIHJlcS5yb3V0ZSAhPSBudWxsKSkgcmV0dXJuO1xuICAgICAgYXdhaXQgc2V0RVJlc3BvbnNlKHJlcywgcmVzcG9uc2UpO1xuICAgICAgLy8gUHJldmVudCB0aGUgRXhwcmVzcyBmcmFtZXdvcmsgZnJvbSBzZW5kaW5nIHRoZSByZXNwb25zZSBhZ2FpbjpcbiAgICAgIHJlcy5lbmQoKTtcbiAgICAgIHJlcy5zdGF0dXMgPSAoKSA9PiByZXM7XG4gICAgICByZXMuc2VuZCA9ICgpID0+IHJlcztcbiAgICAgIHJlcy5lbmQgPSAoKSA9PiByZXM7XG4gICAgICByZXMuanNvbiA9ICgpID0+IHJlcztcbiAgICAgIHJlcy5yZW1vdmVIZWFkZXIgPSAoKSA9PiByZXM7XG4gICAgICByZXMuc2V0SGVhZGVyID0gKCkgPT4gcmVzO1xuICAgIH0pO1xuICB9O1xufVxuXG5mdW5jdGlvbiBmcm9tRVJlcXVlc3QocmVxOiBFUmVxdWVzdCk6IFJlcXVlc3Qge1xuICBjb25zdCB1cmwgPSBgJHtyZXEucHJvdG9jb2x9Oi8vJHtyZXEuaGVhZGVyKFwiSG9zdFwiKSA/PyByZXEuaG9zdG5hbWV9JHtyZXEudXJsfWA7XG4gIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyZXEuaGVhZGVycykpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGZvciAoY29uc3QgdiBvZiB2YWx1ZSkgaGVhZGVycy5hcHBlbmQoa2V5LCB2KTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgaGVhZGVycy5hcHBlbmQoa2V5LCB2YWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXcgUmVxdWVzdCh1cmwsIHtcbiAgICBtZXRob2Q6IHJlcS5tZXRob2QsXG4gICAgaGVhZGVycyxcbiAgICBkdXBsZXg6IFwiaGFsZlwiLFxuICAgIGJvZHk6XG4gICAgICByZXEubWV0aG9kID09PSBcIkdFVFwiIHx8IHJlcS5tZXRob2QgPT09IFwiSEVBRFwiXG4gICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgIDogKFJlYWRhYmxlLnRvV2ViKHJlcSkpLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0RVJlc3BvbnNlKHJlczogRVJlc3BvbnNlLCByZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmVzLnN0YXR1cyhyZXNwb25zZS5zdGF0dXMpO1xuICByZXNwb25zZS5oZWFkZXJzLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHJlcy5zZXRIZWFkZXIoa2V5LCB2YWx1ZSkpO1xuICBpZiAocmVzcG9uc2UuYm9keSA9PSBudWxsKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIGNvbnN0IGJvZHkgPSByZXNwb25zZS5ib2R5O1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCByZWFkZXIgPSBib2R5LmdldFJlYWRlcigpO1xuICAgIHJlYWRlci5yZWFkKCkudGhlbihmdW5jdGlvbiByZWFkKHsgZG9uZSwgdmFsdWUgfSkge1xuICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgcmVhZGVyLnJlbGVhc2VMb2NrKCk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVzLndyaXRlKEJ1ZmZlci5mcm9tKHZhbHVlKSk7XG4gICAgICByZWFkZXIucmVhZCgpLnRoZW4ocmVhZCk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFBLFNBQVMsZ0JBQWdCO0FBY2xCLFNBQVMsb0JBQ2QsWUFDQSxvQkFDWTtBQUNaLFNBQU8sQ0FBQyxLQUFLLEtBQUssU0FBUztBQUN6QixVQUFNLFVBQVUsYUFBYSxHQUFHO0FBQ2hDLFVBQU0sY0FBYyxtQkFBbUIsR0FBRztBQUMxQyxVQUFNLHFCQUNKLHVCQUF1QixVQUNuQixjQUNBLFFBQVEsUUFBUSxXQUFXO0FBQ2pDLHVCQUFtQixLQUFLLE9BQU9BLGlCQUFnQjtBQUM3QyxVQUFJLFdBQVc7QUFDZixVQUFJLGdCQUFnQjtBQUNwQixZQUFNLFdBQVcsTUFBTSxXQUFXLE1BQU0sU0FBUztBQUFBLFFBQy9DLGFBQUFBO0FBQUEsUUFDQSxZQUFZLE1BQU07QUFLaEIscUJBQVc7QUFDWCxlQUFLO0FBQ0wsaUJBQU8sSUFBSSxTQUFTLGFBQWEsRUFBRSxRQUFRLElBQUksQ0FBQztBQUFBLFFBQ2xEO0FBQUEsUUFDQSxpQkFBaUIsTUFBTTtBQU9yQiwwQkFBZ0I7QUFDaEIsZUFBSztBQUNMLGlCQUFPLElBQUksU0FBUyxrQkFBa0I7QUFBQSxZQUNwQyxRQUFRO0FBQUEsWUFDUixTQUFTO0FBQUEsY0FDUCxnQkFBZ0I7QUFBQSxjQUNoQixNQUFNO0FBQUEsWUFDUjtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0g7QUFBQSxNQUNGLENBQUM7QUFDRCxVQUFJLFlBQWEsaUJBQWlCLElBQUksU0FBUyxLQUFPO0FBQ3RELFlBQU0sYUFBYSxLQUFLLFFBQVE7QUFFaEMsVUFBSSxJQUFJO0FBQ1IsVUFBSSxTQUFTLE1BQU07QUFDbkIsVUFBSSxPQUFPLE1BQU07QUFDakIsVUFBSSxNQUFNLE1BQU07QUFDaEIsVUFBSSxPQUFPLE1BQU07QUFDakIsVUFBSSxlQUFlLE1BQU07QUFDekIsVUFBSSxZQUFZLE1BQU07QUFBQSxJQUN4QixDQUFDO0FBQUEsRUFDSDtBQUNGO0FBRUEsU0FBUyxhQUFhLEtBQXdCO0FBQzVDLFFBQU0sTUFBTSxHQUFHLElBQUksUUFBUSxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssSUFBSSxRQUFRLEdBQUcsSUFBSSxHQUFHO0FBQzdFLFFBQU0sVUFBVSxJQUFJLFFBQVE7QUFDNUIsYUFBVyxDQUFDLEtBQUssS0FBSyxLQUFLLE9BQU8sUUFBUSxJQUFJLE9BQU8sR0FBRztBQUN0RCxRQUFJLE1BQU0sUUFBUSxLQUFLLEdBQUc7QUFDeEIsaUJBQVcsS0FBSyxNQUFPLFNBQVEsT0FBTyxLQUFLLENBQUM7QUFBQSxJQUM5QyxXQUFXLE9BQU8sVUFBVSxVQUFVO0FBQ3BDLGNBQVEsT0FBTyxLQUFLLEtBQUs7QUFBQSxJQUMzQjtBQUFBLEVBQ0Y7QUFDQSxTQUFPLElBQUksUUFBUSxLQUFLO0FBQUEsSUFDdEIsUUFBUSxJQUFJO0FBQUEsSUFDWjtBQUFBLElBQ0EsUUFBUTtBQUFBLElBQ1IsTUFDRSxJQUFJLFdBQVcsU0FBUyxJQUFJLFdBQVcsU0FDbkMsU0FDQyxTQUFTLE1BQU0sR0FBRztBQUFBLEVBQzNCLENBQUM7QUFDSDtBQUVBLFNBQVMsYUFBYSxLQUFnQixVQUFtQztBQUN2RSxNQUFJLE9BQU8sU0FBUyxNQUFNO0FBQzFCLFdBQVMsUUFBUSxRQUFRLENBQUMsT0FBTyxRQUFRLElBQUksVUFBVSxLQUFLLEtBQUssQ0FBQztBQUNsRSxNQUFJLFNBQVMsUUFBUSxLQUFNLFFBQU8sUUFBUSxRQUFRO0FBQ2xELFFBQU0sT0FBTyxTQUFTO0FBQ3RCLFNBQU8sSUFBSSxRQUFRLENBQUMsWUFBWTtBQUM5QixVQUFNLFNBQVMsS0FBSyxVQUFVO0FBQzlCLFdBQU8sS0FBSyxFQUFFLEtBQUssU0FBUyxLQUFLLEVBQUUsTUFBTSxNQUFNLEdBQUc7QUFDaEQsVUFBSSxNQUFNO0FBQ1IsZUFBTyxZQUFZO0FBQ25CLGdCQUFRO0FBQ1I7QUFBQSxNQUNGO0FBQ0EsVUFBSSxNQUFNLE9BQU8sS0FBSyxLQUFLLENBQUM7QUFDNUIsYUFBTyxLQUFLLEVBQUUsS0FBSyxJQUFJO0FBQUEsSUFDekIsQ0FBQztBQUFBLEVBQ0gsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogWyJjb250ZXh0RGF0YSJdCn0K
|
|
74
|
+
|
|
75
|
+
//#endregion
|
|
76
|
+
export { integrateFederation };
|
package/package.json
CHANGED
|
@@ -1,23 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fedify/express",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.8.0-dev.1004+d5b05e27",
|
|
4
4
|
"description": "Integrate Fedify with Express",
|
|
5
|
-
"keywords": [
|
|
5
|
+
"keywords": [
|
|
6
|
+
"Fedify",
|
|
7
|
+
"Express",
|
|
8
|
+
"Express.js"
|
|
9
|
+
],
|
|
6
10
|
"author": {
|
|
7
11
|
"name": "Hong Minhee",
|
|
8
12
|
"email": "hong@minhee.org",
|
|
9
13
|
"url": "https://hongminhee.org/"
|
|
10
14
|
},
|
|
11
|
-
"homepage": "https://
|
|
15
|
+
"homepage": "https://fedify.dev/",
|
|
12
16
|
"repository": {
|
|
13
17
|
"type": "git",
|
|
14
|
-
"url": "git+https://github.com/fedify-dev/
|
|
18
|
+
"url": "git+https://github.com/fedify-dev/fedify.git",
|
|
19
|
+
"directory": "express"
|
|
15
20
|
},
|
|
16
21
|
"license": "MIT",
|
|
17
22
|
"bugs": {
|
|
18
|
-
"url": "https://github.com/fedify-dev/
|
|
23
|
+
"url": "https://github.com/fedify-dev/fedify/issues"
|
|
19
24
|
},
|
|
20
25
|
"funding": [
|
|
26
|
+
"https://opencollective.com/fedify",
|
|
21
27
|
"https://github.com/sponsors/dahlia"
|
|
22
28
|
],
|
|
23
29
|
"type": "module",
|
|
@@ -27,24 +33,28 @@
|
|
|
27
33
|
".": {
|
|
28
34
|
"import": {
|
|
29
35
|
"types": "./dist/index.d.ts",
|
|
36
|
+
"import": "./dist/index.js",
|
|
30
37
|
"default": "./dist/index.js"
|
|
31
38
|
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
"files": ["dist/"],
|
|
35
|
-
"devDependencies": {
|
|
36
|
-
"@biomejs/biome": "1.8.3",
|
|
37
|
-
"@types/express": ">=4.0.0 <5",
|
|
38
|
-
"@types/node": "^20.14.10",
|
|
39
|
-
"express": ">= 4.0.0 < 5",
|
|
40
|
-
"tsup": "^8.1.0",
|
|
41
|
-
"typescript": "^5.0.0"
|
|
39
|
+
},
|
|
40
|
+
"./package.json": "./package.json"
|
|
42
41
|
},
|
|
42
|
+
"files": [
|
|
43
|
+
"dist/",
|
|
44
|
+
"package.json"
|
|
45
|
+
],
|
|
43
46
|
"peerDependencies": {
|
|
44
|
-
"
|
|
47
|
+
"express": "^4.0.0",
|
|
48
|
+
"@fedify/fedify": "1.8.0-dev.1004+d5b05e27"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@types/express": "^4.0.0",
|
|
52
|
+
"@types/node": "^22.16.0",
|
|
53
|
+
"tsdown": "^0.12.9",
|
|
54
|
+
"typescript": "^5.8.3"
|
|
45
55
|
},
|
|
46
56
|
"scripts": {
|
|
47
|
-
"build": "
|
|
48
|
-
"
|
|
57
|
+
"build": "tsdown",
|
|
58
|
+
"prepublish": "tsdown"
|
|
49
59
|
}
|
|
50
|
-
}
|
|
60
|
+
}
|