@llun/activities.schema 0.4.1 → 0.4.3

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/.github/workflows/test.yml +33 -0
  2. package/.yarn/install-state.gz +0 -0
  3. package/dist/cjs/actor.js +32 -4
  4. package/dist/cjs/content.js +86 -0
  5. package/dist/cjs/index.js +1 -2
  6. package/dist/cjs/like.js +2 -2
  7. package/dist/cjs/note/emoji.js +1 -0
  8. package/dist/esm/actor.js +32 -4
  9. package/dist/esm/content.js +83 -0
  10. package/dist/esm/index.js +1 -2
  11. package/dist/esm/like.js +1 -1
  12. package/dist/esm/note/emoji.js +1 -0
  13. package/dist/types/actor.d.ts +117 -12
  14. package/dist/types/content.d.ts +631 -0
  15. package/dist/types/index.d.ts +1 -2
  16. package/dist/types/like.d.ts +2 -0
  17. package/dist/types/note/baseContent.d.ts +2 -0
  18. package/dist/types/note/emoji.d.ts +1 -0
  19. package/dist/types/note/tag.d.ts +1 -0
  20. package/dist/types/undo.d.ts +2 -0
  21. package/package.json +3 -2
  22. package/src/actor.ts +32 -4
  23. package/src/content.ts +100 -0
  24. package/src/index.ts +1 -2
  25. package/src/like.ts +1 -1
  26. package/src/note/emoji.ts +1 -0
  27. package/tests/README.md +70 -0
  28. package/tests/actor-compatibility.test.js +140 -0
  29. package/tests/fixtures/friendica-poliverso-org.json +55 -0
  30. package/tests/fixtures/mastodon-chaos-social.json +121 -0
  31. package/tests/fixtures/mastodon-hcommons-social.json +105 -0
  32. package/tests/fixtures/mastodon-social-1.json +146 -0
  33. package/tests/fixtures/mastodon-social-2.json +89 -0
  34. package/tests/fixtures/misskey-mewl-me.json +146 -0
  35. package/tests/fixtures/pleroma-udongein-xyz.json +81 -0
  36. package/.claude/settings.local.json +0 -22
  37. package/dist/cjs/note.js +0 -9
  38. package/dist/cjs/question.js +0 -31
  39. package/dist/esm/note.js +0 -6
  40. package/dist/esm/question.js +0 -28
  41. package/dist/types/note.d.ts +0 -95
  42. package/dist/types/question.d.ts +0 -114
  43. package/src/note.ts +0 -8
  44. package/src/question.ts +0 -35
@@ -0,0 +1,33 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, develop ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+
13
+ strategy:
14
+ matrix:
15
+ node-version: [22.x, 24.x]
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Use Node.js ${{ matrix.node-version }}
21
+ uses: actions/setup-node@v4
22
+ with:
23
+ node-version: ${{ matrix.node-version }}
24
+ cache: 'npm'
25
+
26
+ - name: Install dependencies
27
+ run: npm ci
28
+
29
+ - name: Run tests
30
+ run: npm test
31
+
32
+ - name: Check build
33
+ run: npm run build
Binary file
package/dist/cjs/actor.js CHANGED
@@ -3,19 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Service = exports.Person = exports.Actor = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const image_js_1 = require("./image.js");
6
+ const propertyValue_js_1 = require("./note/propertyValue.js");
7
+ const hashtag_js_1 = require("./note/hashtag.js");
8
+ const emoji_js_1 = require("./note/emoji.js");
6
9
  exports.Actor = zod_1.z.object({
7
10
  id: zod_1.z.string(),
8
- type: zod_1.z.union([zod_1.z.literal("Person"), zod_1.z.literal("Service")]),
11
+ type: zod_1.z.union([
12
+ zod_1.z.literal("Person"),
13
+ zod_1.z.literal("Service"),
14
+ zod_1.z.literal("Application"),
15
+ zod_1.z.literal("Group"),
16
+ zod_1.z.literal("Organization"),
17
+ ]),
9
18
  following: zod_1.z.string().url().optional(),
10
- followers: zod_1.z.string().url(),
19
+ followers: zod_1.z.string().url().optional(),
11
20
  inbox: zod_1.z.string().url(),
12
21
  outbox: zod_1.z.string().url(),
22
+ featured: zod_1.z.string().url().optional(),
23
+ featuredTags: zod_1.z.string().url().optional(),
13
24
  preferredUsername: zod_1.z.string(),
14
- name: zod_1.z.string(),
25
+ name: zod_1.z.string().optional(),
15
26
  summary: zod_1.z.string().nullish(),
16
- url: zod_1.z.string().url(),
27
+ url: zod_1.z.string().optional(),
17
28
  published: zod_1.z.string().nullish(),
18
29
  manuallyApprovesFollowers: zod_1.z.boolean().optional(),
30
+ discoverable: zod_1.z.boolean().optional(),
31
+ indexable: zod_1.z.boolean().optional(),
32
+ memorial: zod_1.z.boolean().optional(),
33
+ suspended: zod_1.z.boolean().optional(),
34
+ devices: zod_1.z.string().url().optional(),
35
+ alsoKnownAs: zod_1.z.array(zod_1.z.string()).optional(),
36
+ movedTo: zod_1.z.string().optional(),
19
37
  publicKey: zod_1.z.object({
20
38
  id: zod_1.z.string(),
21
39
  owner: zod_1.z.string(),
@@ -28,6 +46,16 @@ exports.Actor = zod_1.z.object({
28
46
  .optional(),
29
47
  icon: image_js_1.Image.nullish(),
30
48
  image: image_js_1.Image.nullish(),
49
+ attachment: zod_1.z.array(propertyValue_js_1.PropertyValue).optional(),
50
+ tag: zod_1.z.array(zod_1.z.union([hashtag_js_1.HashTag, emoji_js_1.Emoji])).optional(),
51
+ generator: zod_1.z
52
+ .object({
53
+ id: zod_1.z.string().optional(),
54
+ type: zod_1.z.string(),
55
+ name: zod_1.z.string().optional(),
56
+ url: zod_1.z.string().optional(),
57
+ })
58
+ .optional(),
31
59
  });
32
60
  exports.Person = exports.Actor;
33
61
  exports.Service = exports.Actor;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VideoContent = exports.ArticleContent = exports.PageContent = exports.ImageContent = exports.Question = exports.ENTITY_TYPE_QUESTION = exports.Note = exports.ENTITY_TYPE_NOTE = void 0;
4
+ const zod_1 = require("zod");
5
+ const baseContent_js_1 = require("./note/baseContent.js");
6
+ const note_js_1 = require("./question/note.js");
7
+ /**
8
+ * Note content type - the standard ActivityPub content type.
9
+ */
10
+ exports.ENTITY_TYPE_NOTE = "Note";
11
+ exports.Note = baseContent_js_1.BaseContent.extend({
12
+ type: zod_1.z.literal(exports.ENTITY_TYPE_NOTE),
13
+ });
14
+ /**
15
+ * Question content type for polls.
16
+ */
17
+ exports.ENTITY_TYPE_QUESTION = "Question";
18
+ exports.Question = baseContent_js_1.BaseContent.extend({
19
+ type: zod_1.z.literal(exports.ENTITY_TYPE_QUESTION),
20
+ endTime: zod_1.z
21
+ .string()
22
+ .describe("Question end time in ISO 8601 datetime format")
23
+ .optional(),
24
+ closed: zod_1.z
25
+ .string()
26
+ .describe("The datetime when the poll was closed, in ISO 8601 format. Used when a poll is closed early")
27
+ .nullish(),
28
+ // Single-choice poll options (mutually exclusive with anyOf)
29
+ oneOf: note_js_1.Note.array()
30
+ .describe("Poll options for single-choice polls")
31
+ .optional(),
32
+ // Multiple-choice poll options (mutually exclusive with oneOf)
33
+ anyOf: note_js_1.Note.array()
34
+ .describe("Poll options for multiple-choice polls")
35
+ .optional(),
36
+ // Misskey extension for total unique voters
37
+ votersCount: zod_1.z
38
+ .number()
39
+ .describe("Total number of unique voters (Misskey extension)")
40
+ .optional(),
41
+ });
42
+ /**
43
+ * Image content type used by Pixelfed and similar services.
44
+ * Extends BaseContent with image-specific properties.
45
+ */
46
+ exports.ImageContent = baseContent_js_1.BaseContent.extend({
47
+ type: zod_1.z.literal("Image"),
48
+ name: zod_1.z.string().nullish(),
49
+ mediaType: zod_1.z.string().nullish(),
50
+ width: zod_1.z.number().nullish(),
51
+ height: zod_1.z.number().nullish(),
52
+ blurhash: zod_1.z.string().nullish(),
53
+ });
54
+ /**
55
+ * Page content type used by WriteFreely and similar services.
56
+ */
57
+ exports.PageContent = baseContent_js_1.BaseContent.extend({
58
+ type: zod_1.z.literal("Page"),
59
+ name: zod_1.z.string().nullish(),
60
+ mediaType: zod_1.z.string().nullish(),
61
+ width: zod_1.z.number().nullish(),
62
+ height: zod_1.z.number().nullish(),
63
+ blurhash: zod_1.z.string().nullish(),
64
+ });
65
+ /**
66
+ * Article content type used by blogs and similar services.
67
+ */
68
+ exports.ArticleContent = baseContent_js_1.BaseContent.extend({
69
+ type: zod_1.z.literal("Article"),
70
+ name: zod_1.z.string().nullish(),
71
+ mediaType: zod_1.z.string().nullish(),
72
+ width: zod_1.z.number().nullish(),
73
+ height: zod_1.z.number().nullish(),
74
+ blurhash: zod_1.z.string().nullish(),
75
+ });
76
+ /**
77
+ * Video content type used by PeerTube and similar services.
78
+ */
79
+ exports.VideoContent = baseContent_js_1.BaseContent.extend({
80
+ type: zod_1.z.literal("Video"),
81
+ name: zod_1.z.string().nullish(),
82
+ mediaType: zod_1.z.string().nullish(),
83
+ width: zod_1.z.number().nullish(),
84
+ height: zod_1.z.number().nullish(),
85
+ blurhash: zod_1.z.string().nullish(),
86
+ });
package/dist/cjs/index.js CHANGED
@@ -18,9 +18,8 @@ exports.Mastodon = exports.QuestionOption = void 0;
18
18
  __exportStar(require("./accept.js"), exports);
19
19
  __exportStar(require("./follow.js"), exports);
20
20
  __exportStar(require("./like.js"), exports);
21
- __exportStar(require("./note.js"), exports);
21
+ __exportStar(require("./content.js"), exports);
22
22
  __exportStar(require("./collection.js"), exports);
23
- __exportStar(require("./question.js"), exports);
24
23
  __exportStar(require("./reject.js"), exports);
25
24
  __exportStar(require("./undo.js"), exports);
26
25
  __exportStar(require("./announce.js"), exports);
package/dist/cjs/like.js CHANGED
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Like = exports.ENTITY_TYPE_LIKE = void 0;
4
4
  const zod_1 = require("zod");
5
- const note_js_1 = require("./note.js");
5
+ const content_js_1 = require("./content.js");
6
6
  exports.ENTITY_TYPE_LIKE = "Like";
7
7
  exports.Like = zod_1.z.object({
8
8
  type: zod_1.z.literal(exports.ENTITY_TYPE_LIKE),
9
9
  id: zod_1.z.string(),
10
10
  actor: zod_1.z.string(),
11
- object: zod_1.z.union([zod_1.z.string(), note_js_1.Note]),
11
+ object: zod_1.z.union([zod_1.z.string(), content_js_1.Note]),
12
12
  });
@@ -5,6 +5,7 @@ const zod_1 = require("zod");
5
5
  const image_js_1 = require("../image.js");
6
6
  exports.Emoji = zod_1.z.object({
7
7
  type: zod_1.z.literal("Emoji"),
8
+ id: zod_1.z.string().optional(),
8
9
  name: zod_1.z.string(),
9
10
  updated: zod_1.z.string(),
10
11
  icon: image_js_1.Image,
package/dist/esm/actor.js CHANGED
@@ -1,18 +1,36 @@
1
1
  import { z } from "zod";
2
2
  import { Image } from "./image.js";
3
+ import { PropertyValue } from "./note/propertyValue.js";
4
+ import { HashTag } from "./note/hashtag.js";
5
+ import { Emoji } from "./note/emoji.js";
3
6
  export const Actor = z.object({
4
7
  id: z.string(),
5
- type: z.union([z.literal("Person"), z.literal("Service")]),
8
+ type: z.union([
9
+ z.literal("Person"),
10
+ z.literal("Service"),
11
+ z.literal("Application"),
12
+ z.literal("Group"),
13
+ z.literal("Organization"),
14
+ ]),
6
15
  following: z.string().url().optional(),
7
- followers: z.string().url(),
16
+ followers: z.string().url().optional(),
8
17
  inbox: z.string().url(),
9
18
  outbox: z.string().url(),
19
+ featured: z.string().url().optional(),
20
+ featuredTags: z.string().url().optional(),
10
21
  preferredUsername: z.string(),
11
- name: z.string(),
22
+ name: z.string().optional(),
12
23
  summary: z.string().nullish(),
13
- url: z.string().url(),
24
+ url: z.string().optional(),
14
25
  published: z.string().nullish(),
15
26
  manuallyApprovesFollowers: z.boolean().optional(),
27
+ discoverable: z.boolean().optional(),
28
+ indexable: z.boolean().optional(),
29
+ memorial: z.boolean().optional(),
30
+ suspended: z.boolean().optional(),
31
+ devices: z.string().url().optional(),
32
+ alsoKnownAs: z.array(z.string()).optional(),
33
+ movedTo: z.string().optional(),
16
34
  publicKey: z.object({
17
35
  id: z.string(),
18
36
  owner: z.string(),
@@ -25,6 +43,16 @@ export const Actor = z.object({
25
43
  .optional(),
26
44
  icon: Image.nullish(),
27
45
  image: Image.nullish(),
46
+ attachment: z.array(PropertyValue).optional(),
47
+ tag: z.array(z.union([HashTag, Emoji])).optional(),
48
+ generator: z
49
+ .object({
50
+ id: z.string().optional(),
51
+ type: z.string(),
52
+ name: z.string().optional(),
53
+ url: z.string().optional(),
54
+ })
55
+ .optional(),
28
56
  });
29
57
  export const Person = Actor;
30
58
  export const Service = Actor;
@@ -0,0 +1,83 @@
1
+ import { z } from "zod";
2
+ import { BaseContent } from "./note/baseContent.js";
3
+ import { Note as QuestionOptionNote } from "./question/note.js";
4
+ /**
5
+ * Note content type - the standard ActivityPub content type.
6
+ */
7
+ export const ENTITY_TYPE_NOTE = "Note";
8
+ export const Note = BaseContent.extend({
9
+ type: z.literal(ENTITY_TYPE_NOTE),
10
+ });
11
+ /**
12
+ * Question content type for polls.
13
+ */
14
+ export const ENTITY_TYPE_QUESTION = "Question";
15
+ export const Question = BaseContent.extend({
16
+ type: z.literal(ENTITY_TYPE_QUESTION),
17
+ endTime: z
18
+ .string()
19
+ .describe("Question end time in ISO 8601 datetime format")
20
+ .optional(),
21
+ closed: z
22
+ .string()
23
+ .describe("The datetime when the poll was closed, in ISO 8601 format. Used when a poll is closed early")
24
+ .nullish(),
25
+ // Single-choice poll options (mutually exclusive with anyOf)
26
+ oneOf: QuestionOptionNote.array()
27
+ .describe("Poll options for single-choice polls")
28
+ .optional(),
29
+ // Multiple-choice poll options (mutually exclusive with oneOf)
30
+ anyOf: QuestionOptionNote.array()
31
+ .describe("Poll options for multiple-choice polls")
32
+ .optional(),
33
+ // Misskey extension for total unique voters
34
+ votersCount: z
35
+ .number()
36
+ .describe("Total number of unique voters (Misskey extension)")
37
+ .optional(),
38
+ });
39
+ /**
40
+ * Image content type used by Pixelfed and similar services.
41
+ * Extends BaseContent with image-specific properties.
42
+ */
43
+ export const ImageContent = BaseContent.extend({
44
+ type: z.literal("Image"),
45
+ name: z.string().nullish(),
46
+ mediaType: z.string().nullish(),
47
+ width: z.number().nullish(),
48
+ height: z.number().nullish(),
49
+ blurhash: z.string().nullish(),
50
+ });
51
+ /**
52
+ * Page content type used by WriteFreely and similar services.
53
+ */
54
+ export const PageContent = BaseContent.extend({
55
+ type: z.literal("Page"),
56
+ name: z.string().nullish(),
57
+ mediaType: z.string().nullish(),
58
+ width: z.number().nullish(),
59
+ height: z.number().nullish(),
60
+ blurhash: z.string().nullish(),
61
+ });
62
+ /**
63
+ * Article content type used by blogs and similar services.
64
+ */
65
+ export const ArticleContent = BaseContent.extend({
66
+ type: z.literal("Article"),
67
+ name: z.string().nullish(),
68
+ mediaType: z.string().nullish(),
69
+ width: z.number().nullish(),
70
+ height: z.number().nullish(),
71
+ blurhash: z.string().nullish(),
72
+ });
73
+ /**
74
+ * Video content type used by PeerTube and similar services.
75
+ */
76
+ export const VideoContent = BaseContent.extend({
77
+ type: z.literal("Video"),
78
+ name: z.string().nullish(),
79
+ mediaType: z.string().nullish(),
80
+ width: z.number().nullish(),
81
+ height: z.number().nullish(),
82
+ blurhash: z.string().nullish(),
83
+ });
package/dist/esm/index.js CHANGED
@@ -1,9 +1,8 @@
1
1
  export * from "./accept.js";
2
2
  export * from "./follow.js";
3
3
  export * from "./like.js";
4
- export * from "./note.js";
4
+ export * from "./content.js";
5
5
  export * from "./collection.js";
6
- export * from "./question.js";
7
6
  export * from "./reject.js";
8
7
  export * from "./undo.js";
9
8
  export * from "./announce.js";
package/dist/esm/like.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { Note } from "./note.js";
2
+ import { Note } from "./content.js";
3
3
  export const ENTITY_TYPE_LIKE = "Like";
4
4
  export const Like = z.object({
5
5
  type: z.literal(ENTITY_TYPE_LIKE),
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { Image } from "../image.js";
3
3
  export const Emoji = z.object({
4
4
  type: z.literal("Emoji"),
5
+ id: z.string().optional(),
5
6
  name: z.string(),
6
7
  updated: z.string(),
7
8
  icon: Image,
@@ -1,17 +1,26 @@
1
1
  import { z } from "zod";
2
2
  export declare const Actor: z.ZodObject<{
3
3
  id: z.ZodString;
4
- type: z.ZodUnion<readonly [z.ZodLiteral<"Person">, z.ZodLiteral<"Service">]>;
4
+ type: z.ZodUnion<readonly [z.ZodLiteral<"Person">, z.ZodLiteral<"Service">, z.ZodLiteral<"Application">, z.ZodLiteral<"Group">, z.ZodLiteral<"Organization">]>;
5
5
  following: z.ZodOptional<z.ZodString>;
6
- followers: z.ZodString;
6
+ followers: z.ZodOptional<z.ZodString>;
7
7
  inbox: z.ZodString;
8
8
  outbox: z.ZodString;
9
+ featured: z.ZodOptional<z.ZodString>;
10
+ featuredTags: z.ZodOptional<z.ZodString>;
9
11
  preferredUsername: z.ZodString;
10
- name: z.ZodString;
12
+ name: z.ZodOptional<z.ZodString>;
11
13
  summary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12
- url: z.ZodString;
14
+ url: z.ZodOptional<z.ZodString>;
13
15
  published: z.ZodOptional<z.ZodNullable<z.ZodString>>;
14
16
  manuallyApprovesFollowers: z.ZodOptional<z.ZodBoolean>;
17
+ discoverable: z.ZodOptional<z.ZodBoolean>;
18
+ indexable: z.ZodOptional<z.ZodBoolean>;
19
+ memorial: z.ZodOptional<z.ZodBoolean>;
20
+ suspended: z.ZodOptional<z.ZodBoolean>;
21
+ devices: z.ZodOptional<z.ZodString>;
22
+ alsoKnownAs: z.ZodOptional<z.ZodArray<z.ZodString>>;
23
+ movedTo: z.ZodOptional<z.ZodString>;
15
24
  publicKey: z.ZodObject<{
16
25
  id: z.ZodString;
17
26
  owner: z.ZodString;
@@ -30,21 +39,56 @@ export declare const Actor: z.ZodObject<{
30
39
  mediaType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
31
40
  url: z.ZodString;
32
41
  }, z.core.$strip>>>;
42
+ attachment: z.ZodOptional<z.ZodArray<z.ZodObject<{
43
+ type: z.ZodLiteral<"PropertyValue">;
44
+ name: z.ZodString;
45
+ value: z.ZodString;
46
+ }, z.core.$strip>>>;
47
+ tag: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
48
+ type: z.ZodLiteral<"Hashtag">;
49
+ href: z.ZodString;
50
+ name: z.ZodString;
51
+ }, z.core.$strip>, z.ZodObject<{
52
+ type: z.ZodLiteral<"Emoji">;
53
+ id: z.ZodOptional<z.ZodString>;
54
+ name: z.ZodString;
55
+ updated: z.ZodString;
56
+ icon: z.ZodObject<{
57
+ type: z.ZodLiteral<"Image">;
58
+ mediaType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
59
+ url: z.ZodString;
60
+ }, z.core.$strip>;
61
+ }, z.core.$strip>]>>>;
62
+ generator: z.ZodOptional<z.ZodObject<{
63
+ id: z.ZodOptional<z.ZodString>;
64
+ type: z.ZodString;
65
+ name: z.ZodOptional<z.ZodString>;
66
+ url: z.ZodOptional<z.ZodString>;
67
+ }, z.core.$strip>>;
33
68
  }, z.core.$strip>;
34
69
  export type Actor = z.infer<typeof Actor>;
35
70
  export declare const Person: z.ZodObject<{
36
71
  id: z.ZodString;
37
- type: z.ZodUnion<readonly [z.ZodLiteral<"Person">, z.ZodLiteral<"Service">]>;
72
+ type: z.ZodUnion<readonly [z.ZodLiteral<"Person">, z.ZodLiteral<"Service">, z.ZodLiteral<"Application">, z.ZodLiteral<"Group">, z.ZodLiteral<"Organization">]>;
38
73
  following: z.ZodOptional<z.ZodString>;
39
- followers: z.ZodString;
74
+ followers: z.ZodOptional<z.ZodString>;
40
75
  inbox: z.ZodString;
41
76
  outbox: z.ZodString;
77
+ featured: z.ZodOptional<z.ZodString>;
78
+ featuredTags: z.ZodOptional<z.ZodString>;
42
79
  preferredUsername: z.ZodString;
43
- name: z.ZodString;
80
+ name: z.ZodOptional<z.ZodString>;
44
81
  summary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
45
- url: z.ZodString;
82
+ url: z.ZodOptional<z.ZodString>;
46
83
  published: z.ZodOptional<z.ZodNullable<z.ZodString>>;
47
84
  manuallyApprovesFollowers: z.ZodOptional<z.ZodBoolean>;
85
+ discoverable: z.ZodOptional<z.ZodBoolean>;
86
+ indexable: z.ZodOptional<z.ZodBoolean>;
87
+ memorial: z.ZodOptional<z.ZodBoolean>;
88
+ suspended: z.ZodOptional<z.ZodBoolean>;
89
+ devices: z.ZodOptional<z.ZodString>;
90
+ alsoKnownAs: z.ZodOptional<z.ZodArray<z.ZodString>>;
91
+ movedTo: z.ZodOptional<z.ZodString>;
48
92
  publicKey: z.ZodObject<{
49
93
  id: z.ZodString;
50
94
  owner: z.ZodString;
@@ -63,21 +107,56 @@ export declare const Person: z.ZodObject<{
63
107
  mediaType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
64
108
  url: z.ZodString;
65
109
  }, z.core.$strip>>>;
110
+ attachment: z.ZodOptional<z.ZodArray<z.ZodObject<{
111
+ type: z.ZodLiteral<"PropertyValue">;
112
+ name: z.ZodString;
113
+ value: z.ZodString;
114
+ }, z.core.$strip>>>;
115
+ tag: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
116
+ type: z.ZodLiteral<"Hashtag">;
117
+ href: z.ZodString;
118
+ name: z.ZodString;
119
+ }, z.core.$strip>, z.ZodObject<{
120
+ type: z.ZodLiteral<"Emoji">;
121
+ id: z.ZodOptional<z.ZodString>;
122
+ name: z.ZodString;
123
+ updated: z.ZodString;
124
+ icon: z.ZodObject<{
125
+ type: z.ZodLiteral<"Image">;
126
+ mediaType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
127
+ url: z.ZodString;
128
+ }, z.core.$strip>;
129
+ }, z.core.$strip>]>>>;
130
+ generator: z.ZodOptional<z.ZodObject<{
131
+ id: z.ZodOptional<z.ZodString>;
132
+ type: z.ZodString;
133
+ name: z.ZodOptional<z.ZodString>;
134
+ url: z.ZodOptional<z.ZodString>;
135
+ }, z.core.$strip>>;
66
136
  }, z.core.$strip>;
67
137
  export type Person = z.infer<typeof Person>;
68
138
  export declare const Service: z.ZodObject<{
69
139
  id: z.ZodString;
70
- type: z.ZodUnion<readonly [z.ZodLiteral<"Person">, z.ZodLiteral<"Service">]>;
140
+ type: z.ZodUnion<readonly [z.ZodLiteral<"Person">, z.ZodLiteral<"Service">, z.ZodLiteral<"Application">, z.ZodLiteral<"Group">, z.ZodLiteral<"Organization">]>;
71
141
  following: z.ZodOptional<z.ZodString>;
72
- followers: z.ZodString;
142
+ followers: z.ZodOptional<z.ZodString>;
73
143
  inbox: z.ZodString;
74
144
  outbox: z.ZodString;
145
+ featured: z.ZodOptional<z.ZodString>;
146
+ featuredTags: z.ZodOptional<z.ZodString>;
75
147
  preferredUsername: z.ZodString;
76
- name: z.ZodString;
148
+ name: z.ZodOptional<z.ZodString>;
77
149
  summary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
78
- url: z.ZodString;
150
+ url: z.ZodOptional<z.ZodString>;
79
151
  published: z.ZodOptional<z.ZodNullable<z.ZodString>>;
80
152
  manuallyApprovesFollowers: z.ZodOptional<z.ZodBoolean>;
153
+ discoverable: z.ZodOptional<z.ZodBoolean>;
154
+ indexable: z.ZodOptional<z.ZodBoolean>;
155
+ memorial: z.ZodOptional<z.ZodBoolean>;
156
+ suspended: z.ZodOptional<z.ZodBoolean>;
157
+ devices: z.ZodOptional<z.ZodString>;
158
+ alsoKnownAs: z.ZodOptional<z.ZodArray<z.ZodString>>;
159
+ movedTo: z.ZodOptional<z.ZodString>;
81
160
  publicKey: z.ZodObject<{
82
161
  id: z.ZodString;
83
162
  owner: z.ZodString;
@@ -96,5 +175,31 @@ export declare const Service: z.ZodObject<{
96
175
  mediaType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
97
176
  url: z.ZodString;
98
177
  }, z.core.$strip>>>;
178
+ attachment: z.ZodOptional<z.ZodArray<z.ZodObject<{
179
+ type: z.ZodLiteral<"PropertyValue">;
180
+ name: z.ZodString;
181
+ value: z.ZodString;
182
+ }, z.core.$strip>>>;
183
+ tag: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
184
+ type: z.ZodLiteral<"Hashtag">;
185
+ href: z.ZodString;
186
+ name: z.ZodString;
187
+ }, z.core.$strip>, z.ZodObject<{
188
+ type: z.ZodLiteral<"Emoji">;
189
+ id: z.ZodOptional<z.ZodString>;
190
+ name: z.ZodString;
191
+ updated: z.ZodString;
192
+ icon: z.ZodObject<{
193
+ type: z.ZodLiteral<"Image">;
194
+ mediaType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
195
+ url: z.ZodString;
196
+ }, z.core.$strip>;
197
+ }, z.core.$strip>]>>>;
198
+ generator: z.ZodOptional<z.ZodObject<{
199
+ id: z.ZodOptional<z.ZodString>;
200
+ type: z.ZodString;
201
+ name: z.ZodOptional<z.ZodString>;
202
+ url: z.ZodOptional<z.ZodString>;
203
+ }, z.core.$strip>>;
99
204
  }, z.core.$strip>;
100
205
  export type Service = z.infer<typeof Service>;