@takosjp/yurucommu-api 2.0.0

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.
Files changed (44) hide show
  1. package/dist/index.d.ts +5 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +1024 -0
  4. package/dist/lib/api/account.d.ts +4 -0
  5. package/dist/lib/api/account.d.ts.map +1 -0
  6. package/dist/lib/api/actors.d.ts +43 -0
  7. package/dist/lib/api/actors.d.ts.map +1 -0
  8. package/dist/lib/api/auth.d.ts +18 -0
  9. package/dist/lib/api/auth.d.ts.map +1 -0
  10. package/dist/lib/api/communities.d.ts +112 -0
  11. package/dist/lib/api/communities.d.ts.map +1 -0
  12. package/dist/lib/api/dm.d.ts +67 -0
  13. package/dist/lib/api/dm.d.ts.map +1 -0
  14. package/dist/lib/api/fetch.d.ts +31 -0
  15. package/dist/lib/api/fetch.d.ts.map +1 -0
  16. package/dist/lib/api/follow.d.ts +7 -0
  17. package/dist/lib/api/follow.d.ts.map +1 -0
  18. package/dist/lib/api/media.d.ts +24 -0
  19. package/dist/lib/api/media.d.ts.map +1 -0
  20. package/dist/lib/api/moderation.d.ts +35 -0
  21. package/dist/lib/api/moderation.d.ts.map +1 -0
  22. package/dist/lib/api/normalize.d.ts +13 -0
  23. package/dist/lib/api/normalize.d.ts.map +1 -0
  24. package/dist/lib/api/notifications.d.ts +17 -0
  25. package/dist/lib/api/notifications.d.ts.map +1 -0
  26. package/dist/lib/api/posts.d.ts +57 -0
  27. package/dist/lib/api/posts.d.ts.map +1 -0
  28. package/dist/lib/api/recommendations.d.ts +10 -0
  29. package/dist/lib/api/recommendations.d.ts.map +1 -0
  30. package/dist/lib/api/search.d.ts +19 -0
  31. package/dist/lib/api/search.d.ts.map +1 -0
  32. package/dist/lib/api/stories.d.ts +33 -0
  33. package/dist/lib/api/stories.d.ts.map +1 -0
  34. package/dist/lib/api.d.ts +16 -0
  35. package/dist/lib/api.d.ts.map +1 -0
  36. package/dist/lib/fetch-with-timeout.d.ts +7 -0
  37. package/dist/lib/fetch-with-timeout.d.ts.map +1 -0
  38. package/dist/lib/transport.d.ts +11 -0
  39. package/dist/lib/transport.d.ts.map +1 -0
  40. package/dist/social-server.d.ts +34 -0
  41. package/dist/social-server.d.ts.map +1 -0
  42. package/dist/types/index.d.ts +152 -0
  43. package/dist/types/index.d.ts.map +1 -0
  44. package/package.json +30 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/lib/transport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;CAC1C;AAcD,MAAM,MAAM,oBAAoB,GAAG,MAAM,YAAY,CAAC;AAKtD,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,oBAAoB,GAC7B,IAAI,CAEN;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAEtE;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED,wBAAgB,wBAAwB,IAAI,YAAY,CAEvD"}
@@ -0,0 +1,34 @@
1
+ import type { Actor } from "./types/index.js";
2
+ export interface SocialServerDiscovery {
3
+ readonly product: "yurucommu";
4
+ readonly name: string;
5
+ readonly server: {
6
+ readonly id: "yurucommu-server";
7
+ readonly name: string;
8
+ readonly canonicalOrigin: string;
9
+ readonly activitypubOrigin: string;
10
+ };
11
+ readonly clients: readonly {
12
+ readonly id: "yurucommu" | "yurume";
13
+ readonly name: string;
14
+ readonly defaultEntry: "feed" | "messages";
15
+ }[];
16
+ readonly issuer: string;
17
+ readonly apiBaseUrl: string;
18
+ readonly activitypubOrigin: string;
19
+ readonly mediaOrigin: string;
20
+ readonly socialServerCapabilitiesUrl: string;
21
+ readonly capabilities: readonly string[];
22
+ readonly endpoints: {
23
+ readonly api: string;
24
+ readonly authProviders: string;
25
+ readonly currentUser: string;
26
+ readonly timeline: string;
27
+ readonly conversations: string;
28
+ readonly notifications: string;
29
+ readonly mobilePushRegistrations: string;
30
+ };
31
+ }
32
+ export declare function fetchCurrentActor(): Promise<Actor | null>;
33
+ export declare function fetchSocialServerDiscovery(): Promise<SocialServerDiscovery>;
34
+ //# sourceMappingURL=social-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-server.d.ts","sourceRoot":"","sources":["../src/social-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAC;QAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;KACpC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,SAAS;QACzB,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,QAAQ,CAAC;QACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAAC;KAC5C,EAAE,CAAC;IACJ,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;KAC1C,CAAC;CACH;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAM/D;AAED,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAIjF"}
@@ -0,0 +1,152 @@
1
+ export interface Actor {
2
+ ap_id: string;
3
+ username: string;
4
+ preferred_username: string;
5
+ name: string | null;
6
+ summary: string | null;
7
+ icon_url: string | null;
8
+ header_url: string | null;
9
+ follower_count: number;
10
+ following_count: number;
11
+ post_count: number;
12
+ is_private?: boolean;
13
+ role?: "owner" | "moderator" | "member";
14
+ created_at: string;
15
+ is_following?: boolean;
16
+ is_followed_by?: boolean;
17
+ fields?: {
18
+ name: string;
19
+ value: string;
20
+ }[];
21
+ moved_to?: string | null;
22
+ also_known_as?: string[];
23
+ }
24
+ export interface Community {
25
+ ap_id: string;
26
+ preferred_username: string;
27
+ name: string;
28
+ summary: string | null;
29
+ icon_url: string | null;
30
+ visibility?: "public" | "private";
31
+ member_count?: number;
32
+ created_at: string;
33
+ }
34
+ export interface MediaAttachment {
35
+ url?: string;
36
+ r2_key: string;
37
+ content_type: string;
38
+ name?: string;
39
+ }
40
+ export interface PostAuthor {
41
+ ap_id: string;
42
+ username: string;
43
+ preferred_username: string;
44
+ name: string | null;
45
+ icon_url: string | null;
46
+ }
47
+ export interface Post {
48
+ ap_id: string;
49
+ type: string;
50
+ author: PostAuthor;
51
+ content: string;
52
+ summary: string | null;
53
+ attachments: MediaAttachment[];
54
+ in_reply_to: string | null;
55
+ visibility: "public" | "unlisted" | "followers" | "direct";
56
+ community_ap_id: string | null;
57
+ like_count: number;
58
+ reply_count: number;
59
+ announce_count: number;
60
+ published: string;
61
+ edited_at: string | null;
62
+ liked: boolean;
63
+ bookmarked: boolean;
64
+ reposted: boolean;
65
+ }
66
+ export interface DMParticipant {
67
+ ap_id: string;
68
+ username: string;
69
+ preferred_username: string;
70
+ name: string | null;
71
+ icon_url: string | null;
72
+ }
73
+ export interface DMSender {
74
+ ap_id: string;
75
+ username: string;
76
+ preferred_username: string;
77
+ name: string | null;
78
+ icon_url: string | null;
79
+ }
80
+ export interface DMMessage {
81
+ id: string;
82
+ sender: DMSender;
83
+ content: string;
84
+ created_at: string;
85
+ }
86
+ export interface NotificationActor {
87
+ ap_id: string;
88
+ username: string;
89
+ preferred_username: string;
90
+ name: string | null;
91
+ icon_url: string | null;
92
+ }
93
+ export interface Notification {
94
+ id: string;
95
+ type: "follow" | "follow_request" | "like" | "announce" | "reply" | "mention";
96
+ actor: NotificationActor;
97
+ object_ap_id: string | null;
98
+ read: boolean;
99
+ created_at: string;
100
+ }
101
+ export interface StoryAttachment {
102
+ type: string;
103
+ mediaType: string;
104
+ url: string;
105
+ r2_key: string;
106
+ width?: number;
107
+ height?: number;
108
+ duration?: string;
109
+ }
110
+ export interface OverlayPosition {
111
+ x: number;
112
+ y: number;
113
+ width: number;
114
+ height: number;
115
+ }
116
+ export interface StoryOverlay {
117
+ type: string;
118
+ position: OverlayPosition;
119
+ name?: string;
120
+ oneOf?: Array<{
121
+ type: string;
122
+ name: string;
123
+ }>;
124
+ closed?: string;
125
+ href?: string;
126
+ [key: string]: unknown;
127
+ }
128
+ export interface Story {
129
+ ap_id: string;
130
+ author: PostAuthor;
131
+ attachment: StoryAttachment;
132
+ caption?: string;
133
+ displayDuration: string;
134
+ overlays?: StoryOverlay[];
135
+ published: string;
136
+ end_time: string;
137
+ viewed: boolean;
138
+ like_count?: number;
139
+ share_count?: number;
140
+ liked?: boolean;
141
+ votes?: {
142
+ [key: number]: number;
143
+ };
144
+ votes_total?: number;
145
+ user_vote?: number;
146
+ }
147
+ export interface ActorStories {
148
+ actor: PostAuthor;
149
+ stories: Story[];
150
+ has_unviewed: boolean;
151
+ }
152
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@takosjp/yurucommu-api",
3
+ "version": "2.0.0",
4
+ "description": "Typed client SDK and public API contract for yurucommu-server clients.",
5
+ "license": "GPL-3.0-only",
6
+ "type": "module",
7
+ "sideEffects": false,
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js",
15
+ "default": "./dist/index.js"
16
+ }
17
+ },
18
+ "types": "./dist/index.d.ts",
19
+ "scripts": {
20
+ "check": "tsc --noEmit -p tsconfig.json",
21
+ "build": "rm -rf dist && bun build src/index.ts --target browser --format esm --outfile dist/index.js && bunx tsc -p tsconfig.build.json && bun scripts/rewrite-dts-imports.mjs",
22
+ "pack:dry": "npm pack --dry-run"
23
+ },
24
+ "devDependencies": {
25
+ "typescript": "^5.7.0"
26
+ },
27
+ "publishConfig": {
28
+ "access": "public"
29
+ }
30
+ }