@sockethub/schemas 3.0.0-alpha.16 → 3.0.0-alpha.18

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.
@@ -1,7 +1,8 @@
1
1
  {
2
- "schemaVersion": "3.0.0-alpha.16",
3
- "generatedAt": "2026-07-08T23:36:21.861Z",
2
+ "schemaVersion": "3.0.0-alpha.18",
3
+ "generatedAt": "2026-08-01T21:39:05.934Z",
4
4
  "contextToPlatformId": {
5
+ "https://sockethub.org/ns/context/platform/caldav/v1.jsonld": "caldav",
5
6
  "https://sockethub.org/ns/context/platform/dummy/v1.jsonld": "dummy",
6
7
  "https://sockethub.org/ns/context/platform/error/v1.jsonld": "error",
7
8
  "https://sockethub.org/ns/context/platform/feeds/v1.jsonld": "feeds",
@@ -11,6 +12,7 @@
11
12
  "https://sockethub.org/ns/context/platform/xmpp/v1.jsonld": "xmpp"
12
13
  },
13
14
  "contextToSchemaId": {
15
+ "https://sockethub.org/ns/context/platform/caldav/v1.jsonld": "https://sockethub.org/schemas/as2/platform/caldav/v1/messages.schema.json",
14
16
  "https://sockethub.org/ns/context/platform/dummy/v1.jsonld": "https://sockethub.org/schemas/as2/platform/dummy/v1/messages.schema.json",
15
17
  "https://sockethub.org/ns/context/platform/error/v1.jsonld": "https://sockethub.org/schemas/as2/platform/error/v1/messages.schema.json",
16
18
  "https://sockethub.org/ns/context/platform/feeds/v1.jsonld": "https://sockethub.org/schemas/as2/platform/feeds/v1/messages.schema.json",
@@ -20,6 +22,7 @@
20
22
  "https://sockethub.org/ns/context/platform/xmpp/v1.jsonld": "https://sockethub.org/schemas/as2/platform/xmpp/v1/messages.schema.json"
21
23
  },
22
24
  "contextToCredentialsSchemaId": {
25
+ "https://sockethub.org/ns/context/platform/caldav/v1.jsonld": "https://sockethub.org/schemas/as2/platform/caldav/v1/credentials.schema.json",
23
26
  "https://sockethub.org/ns/context/platform/dummy/v1.jsonld": "https://sockethub.org/schemas/as2/platform/dummy/v1/credentials.schema.json",
24
27
  "https://sockethub.org/ns/context/platform/error/v1.jsonld": "https://sockethub.org/schemas/as2/platform/error/v1/credentials.schema.json",
25
28
  "https://sockethub.org/ns/context/platform/feeds/v1.jsonld": "https://sockethub.org/schemas/as2/platform/feeds/v1/credentials.schema.json",
@@ -143,6 +143,28 @@ var ObjectTypesSchema = {
143
143
  enum: ["address"]
144
144
  }
145
145
  }
146
+ },
147
+ calendar: {
148
+ required: ["id", "type"],
149
+ additionalProperties: true,
150
+ properties: {
151
+ id: {
152
+ type: "string",
153
+ format: "iri"
154
+ },
155
+ type: {
156
+ enum: ["calendar"]
157
+ },
158
+ name: {
159
+ type: "string"
160
+ },
161
+ components: {
162
+ type: "array",
163
+ items: {
164
+ enum: ["event", "task"]
165
+ }
166
+ }
167
+ }
146
168
  }
147
169
  };
148
170
  var InternalObjectTypesList = ["platform", "heartbeat"];
@@ -162,7 +184,8 @@ var TargetTypesList = [
162
184
  "feed",
163
185
  "website",
164
186
  "platform",
165
- "address"
187
+ "address",
188
+ "calendar"
166
189
  ];
167
190
  var validActorRefs = ActorTypesList.map((type) => ({
168
191
  $ref: `#/definitions/type/${type}`
@@ -293,4 +316,4 @@ export {
293
316
  ActivityStreamSchema
294
317
  };
295
318
 
296
- //# debugId=437DA7179E12305964756E2164756E21
319
+ //# debugId=F35FC49153771F2764756E2164756E21
@@ -2,11 +2,11 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/helpers/objects.ts", "../src/context.ts", "../src/schemas/activity-stream.ts"],
4
4
  "sourcesContent": [
5
- "// The shared actor/target entity vocabulary. Content object types (message,\n// presence, attendance, room-info, topic, …) are owned by each platform's\n// `messages` (inbound) and `responses` (outbound) schemas; the base envelope no\n// longer enumerates a global object vocabulary.\nexport const ObjectTypesSchema = {\n feed: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n type: {\n enum: [\"feed\"],\n },\n id: {\n type: \"string\",\n format: \"iri\",\n },\n name: {\n type: \"string\",\n },\n description: {\n type: \"string\",\n },\n author: {\n type: \"string\",\n },\n favicon: {\n type: \"string\",\n },\n },\n },\n\n person: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n id: {\n type: \"string\",\n },\n type: {\n enum: [\"person\"],\n },\n name: {\n type: \"string\",\n },\n },\n },\n\n room: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n id: {\n type: \"string\",\n },\n type: {\n enum: [\"room\"],\n },\n name: {\n type: \"string\",\n },\n },\n },\n\n service: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n id: {\n type: \"string\",\n },\n type: {\n enum: [\"service\"],\n },\n name: {\n type: \"string\",\n },\n },\n },\n\n platform: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n id: {\n type: \"string\",\n },\n type: {\n enum: [\"platform\"],\n },\n name: {\n type: \"string\",\n },\n },\n },\n\n website: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n id: {\n type: \"string\",\n format: \"iri\",\n },\n type: {\n enum: [\"website\"],\n },\n name: {\n type: \"string\",\n },\n },\n },\n\n address: {\n required: [\"type\"],\n additionalProperties: false,\n properties: {\n type: {\n enum: [\"address\"],\n },\n },\n },\n};\n\n// Internal AS object types reserved for Sockethub IPC/housekeeping.\nexport const InternalObjectTypesList = [\"platform\", \"heartbeat\"];\nexport const ObjectTypesList = Object.keys(ObjectTypesSchema);\nexport const ActorTypesList = [\n \"person\",\n \"room\",\n \"service\",\n \"feed\",\n \"website\",\n \"platform\",\n];\nexport const TargetTypesList = [\n \"person\",\n \"room\",\n \"service\",\n \"feed\",\n \"website\",\n \"platform\",\n \"address\",\n];\nexport const validActorRefs = ActorTypesList.map((type) => ({\n $ref: `#/definitions/type/${type}`,\n}));\nexport const validTargetRefs = TargetTypesList.map((type) => ({\n $ref: `#/definitions/type/${type}`,\n}));\n",
5
+ "// The shared actor/target entity vocabulary. Content object types (message,\n// presence, attendance, room-info, topic, …) are owned by each platform's\n// `messages` (inbound) and `responses` (outbound) schemas; the base envelope no\n// longer enumerates a global object vocabulary.\nexport const ObjectTypesSchema = {\n feed: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n type: {\n enum: [\"feed\"],\n },\n id: {\n type: \"string\",\n format: \"iri\",\n },\n name: {\n type: \"string\",\n },\n description: {\n type: \"string\",\n },\n author: {\n type: \"string\",\n },\n favicon: {\n type: \"string\",\n },\n },\n },\n\n person: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n id: {\n type: \"string\",\n },\n type: {\n enum: [\"person\"],\n },\n name: {\n type: \"string\",\n },\n },\n },\n\n room: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n id: {\n type: \"string\",\n },\n type: {\n enum: [\"room\"],\n },\n name: {\n type: \"string\",\n },\n },\n },\n\n service: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n id: {\n type: \"string\",\n },\n type: {\n enum: [\"service\"],\n },\n name: {\n type: \"string\",\n },\n },\n },\n\n platform: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n id: {\n type: \"string\",\n },\n type: {\n enum: [\"platform\"],\n },\n name: {\n type: \"string\",\n },\n },\n },\n\n website: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n id: {\n type: \"string\",\n format: \"iri\",\n },\n type: {\n enum: [\"website\"],\n },\n name: {\n type: \"string\",\n },\n },\n },\n\n address: {\n required: [\"type\"],\n additionalProperties: false,\n properties: {\n type: {\n enum: [\"address\"],\n },\n },\n },\n\n calendar: {\n required: [\"id\", \"type\"],\n additionalProperties: true,\n properties: {\n id: {\n type: \"string\",\n format: \"iri\",\n },\n type: {\n enum: [\"calendar\"],\n },\n name: {\n type: \"string\",\n },\n components: {\n type: \"array\",\n items: {\n enum: [\"event\", \"task\"],\n },\n },\n },\n },\n};\n\n// Internal AS object types reserved for Sockethub IPC/housekeeping.\nexport const InternalObjectTypesList = [\"platform\", \"heartbeat\"];\nexport const ObjectTypesList = Object.keys(ObjectTypesSchema);\nexport const ActorTypesList = [\n \"person\",\n \"room\",\n \"service\",\n \"feed\",\n \"website\",\n \"platform\",\n];\nexport const TargetTypesList = [\n \"person\",\n \"room\",\n \"service\",\n \"feed\",\n \"website\",\n \"platform\",\n \"address\",\n \"calendar\",\n];\nexport const validActorRefs = ActorTypesList.map((type) => ({\n $ref: `#/definitions/type/${type}`,\n}));\nexport const validTargetRefs = TargetTypesList.map((type) => ({\n $ref: `#/definitions/type/${type}`,\n}));\n",
6
6
  "import type { ActivityStream, JsonLdContext } from \"./types.js\";\n\n/**\n * Canonical AS2 base vocabulary URL.\n */\nexport const AS2_BASE_CONTEXT_URL = \"https://www.w3.org/ns/activitystreams\";\n\n/**\n * Sockethub base vocabulary URL for shared platform terms.\n */\nexport const SOCKETHUB_BASE_CONTEXT_URL =\n \"https://sockethub.org/ns/context/v1.jsonld\";\n\n/**\n * URL prefix for per-platform context URLs.\n */\nexport const PLATFORM_CONTEXT_PREFIX =\n \"https://sockethub.org/ns/context/platform/\";\n\n/**\n * Built-in pseudo-platform used for server-side error payloads.\n */\nexport const ERROR_PLATFORM_ID = \"error\";\nexport const ERROR_PLATFORM_CONTEXT_URL =\n \"https://sockethub.org/ns/context/platform/error/v1.jsonld\";\n\n/**\n * Built-in pseudo-platform used for internal control messages.\n */\nexport const INTERNAL_PLATFORM_ID = \"sockethub:internal\";\nexport const INTERNAL_PLATFORM_CONTEXT_URL =\n \"https://sockethub.org/ns/context/platform/sockethub:internal/v1.jsonld\";\n\nconst platformContextToPlatformId = new Map<string, string>();\nconst platformContextToSchemaId = new Map<string, string>();\nconst platformContextToCredentialsSchemaId = new Map<string, string>();\n\n/**\n * Build the canonical Sockethub @context array from a platform id or full context URL.\n */\nexport function buildCanonicalContext(platform: string): JsonLdContext {\n const platformUrl = platform.startsWith(\"https://\")\n ? platform\n : `${PLATFORM_CONTEXT_PREFIX}${platform}/v1.jsonld`;\n return [AS2_BASE_CONTEXT_URL, SOCKETHUB_BASE_CONTEXT_URL, platformUrl];\n}\n\n/**\n * Extract the platform ID from a canonical @context array.\n */\nexport function platformIdFromContext(\n context: string[] | unknown,\n): string | undefined {\n if (!Array.isArray(context)) {\n return undefined;\n }\n for (const entry of context) {\n if (\n typeof entry === \"string\" &&\n entry.startsWith(PLATFORM_CONTEXT_PREFIX)\n ) {\n const rest = entry.slice(PLATFORM_CONTEXT_PREFIX.length);\n const slashIdx = rest.indexOf(\"/\");\n if (slashIdx > 0) {\n return rest.slice(0, slashIdx);\n }\n }\n }\n return undefined;\n}\n\n/**\n * Normalize unknown @context input into a string-only array.\n */\nfunction normalizeContextArray(value: unknown): Array<string> {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.filter((entry): entry is string => typeof entry === \"string\");\n}\n\n/**\n * Get a normalized @context array from an activity stream.\n */\nexport function getContextArray(msg: ActivityStream): Array<string> {\n return normalizeContextArray(msg[\"@context\"]);\n}\n\n/**\n * Register a platform context URL and its schema IDs for runtime resolution.\n */\nexport function registerPlatformContext(\n platformId: string,\n platformContextUrl: string,\n schemaId: string,\n credentialsSchemaId: string,\n) {\n platformContextToPlatformId.set(platformContextUrl, platformId);\n platformContextToSchemaId.set(platformContextUrl, schemaId);\n platformContextToCredentialsSchemaId.set(\n platformContextUrl,\n credentialsSchemaId,\n );\n}\n\n/**\n * Resolve the single registered platform context URL from a message.\n * Returns null when there are zero or multiple registered platform contexts.\n */\nexport function resolvePlatformContextUrl(msg: ActivityStream): string | null {\n const contexts = getContextArray(msg);\n const matches = contexts.filter((contextUrl) =>\n platformContextToPlatformId.has(contextUrl),\n );\n if (matches.length !== 1) {\n return null;\n }\n return matches[0];\n}\n\n/**\n * Resolve a platform ID from a platform context URL.\n */\nexport function getPlatformIdByContextUrl(\n platformContextUrl: string,\n): string | undefined {\n return platformContextToPlatformId.get(platformContextUrl);\n}\n\n/**\n * Resolve a message schema ID from a platform context URL.\n */\nexport function getSchemaIdByContextUrl(\n platformContextUrl: string,\n): string | undefined {\n return platformContextToSchemaId.get(platformContextUrl);\n}\n\n/**\n * Resolve a credentials schema ID from a platform context URL.\n */\nexport function getCredentialsSchemaIdByContextUrl(\n platformContextUrl: string,\n): string | undefined {\n return platformContextToCredentialsSchemaId.get(platformContextUrl);\n}\n",
7
7
  "import {\n AS2_BASE_CONTEXT_URL,\n SOCKETHUB_BASE_CONTEXT_URL,\n} from \"../context.js\";\nimport {\n ObjectTypesSchema,\n validActorRefs,\n validTargetRefs,\n} from \"../helpers/objects.js\";\n\nconst contextSchema = {\n type: \"array\",\n minItems: 3,\n maxItems: 3,\n items: {\n type: \"string\",\n },\n allOf: [\n {\n contains: {\n const: AS2_BASE_CONTEXT_URL,\n },\n },\n {\n contains: {\n const: SOCKETHUB_BASE_CONTEXT_URL,\n },\n },\n ],\n};\nconst typeSchema = {\n type: \"string\",\n};\n\nexport const ActivityStreamSchema = {\n $id: \"https://sockethub.org/schemas/v/activity-stream.json\",\n description: \"Schema for Sockethub Activity Streams\",\n\n type: \"object\",\n required: [\"@context\", \"type\", \"actor\"],\n // Reject unknown top-level message properties. Inbound messages carry only\n // the properties below; `error`/`sessionSecret` are added server-side after\n // validation, so they never reach this schema.\n additionalProperties: false,\n properties: {\n \"@context\": contextSchema,\n id: {\n type: \"string\",\n },\n type: typeSchema,\n actor: {\n type: \"object\",\n oneOf: validActorRefs,\n },\n target: {\n type: \"object\",\n oneOf: validTargetRefs,\n },\n // Object shape is validated per-platform by each platform's `messages`\n // (inbound) and `responses` (outbound) schemas, which own their object\n // vocabulary. The base envelope only requires it to be an object.\n object: {\n type: \"object\",\n },\n published: {\n type: \"string\",\n format: \"date-time\",\n },\n },\n\n definitions: {\n type: ObjectTypesSchema,\n },\n};\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "437DA7179E12305964756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "F35FC49153771F2764756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -156,6 +156,28 @@ export declare const ActivityStreamSchema: {
156
156
  };
157
157
  };
158
158
  };
159
+ calendar: {
160
+ required: string[];
161
+ additionalProperties: boolean;
162
+ properties: {
163
+ id: {
164
+ type: string;
165
+ format: string;
166
+ };
167
+ type: {
168
+ enum: string[];
169
+ };
170
+ name: {
171
+ type: string;
172
+ };
173
+ components: {
174
+ type: string;
175
+ items: {
176
+ enum: string[];
177
+ };
178
+ };
179
+ };
180
+ };
159
181
  };
160
182
  };
161
183
  };
@@ -1,5 +1,5 @@
1
1
  {
2
- "$id": "https://sockethub.org/schemas/3.0.0-alpha.16/activity-stream.json",
2
+ "$id": "https://sockethub.org/schemas/3.0.0-alpha.18/activity-stream.json",
3
3
  "description": "Schema for Sockethub Activity Streams",
4
4
  "type": "object",
5
5
  "required": [
@@ -81,6 +81,9 @@
81
81
  },
82
82
  {
83
83
  "$ref": "#/definitions/type/address"
84
+ },
85
+ {
86
+ "$ref": "#/definitions/type/calendar"
84
87
  }
85
88
  ]
86
89
  },
@@ -237,6 +240,36 @@
237
240
  ]
238
241
  }
239
242
  }
243
+ },
244
+ "calendar": {
245
+ "required": [
246
+ "id",
247
+ "type"
248
+ ],
249
+ "additionalProperties": true,
250
+ "properties": {
251
+ "id": {
252
+ "type": "string",
253
+ "format": "iri"
254
+ },
255
+ "type": {
256
+ "enum": [
257
+ "calendar"
258
+ ]
259
+ },
260
+ "name": {
261
+ "type": "string"
262
+ },
263
+ "components": {
264
+ "type": "array",
265
+ "items": {
266
+ "enum": [
267
+ "event",
268
+ "task"
269
+ ]
270
+ }
271
+ }
272
+ }
240
273
  }
241
274
  }
242
275
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "$id": "https://sockethub.org/schemas/3.0.0-alpha.16/platform.json",
2
+ "$id": "https://sockethub.org/schemas/3.0.0-alpha.18/platform.json",
3
3
  "type": "object",
4
4
  "required": [
5
5
  "name",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$id": "https://sockethub.org/schemas/3.0.0-alpha.16/sockethub-config.json",
2
+ "$id": "https://sockethub.org/schemas/3.0.0-alpha.18/sockethub-config.json",
3
3
  "description": "Sockethub Config Schema",
4
4
  "type": "object",
5
5
  "required": [
@@ -57,6 +57,7 @@
57
57
  },
58
58
  "description": "Platform packages to load",
59
59
  "default": [
60
+ "@sockethub/platform-caldav",
60
61
  "@sockethub/platform-dummy",
61
62
  "@sockethub/platform-feeds",
62
63
  "@sockethub/platform-irc",
@@ -69,6 +70,26 @@
69
70
  "default": {},
70
71
  "description": "Per-platform config keyed by package name, validated against each platform's config schema and forwarded to its child process",
71
72
  "properties": {
73
+ "@sockethub/platform-caldav": {
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "properties": {
77
+ "connectTimeoutMs": {
78
+ "type": "integer",
79
+ "minimum": 1
80
+ },
81
+ "allowPrivateAddresses": {
82
+ "type": "boolean"
83
+ },
84
+ "allowInsecureHttp": {
85
+ "type": "boolean"
86
+ },
87
+ "concurrency": {
88
+ "type": "integer",
89
+ "minimum": 1
90
+ }
91
+ }
92
+ },
72
93
  "@sockethub/platform-dummy": {
73
94
  "type": "object",
74
95
  "additionalProperties": false,
@@ -0,0 +1,71 @@
1
+ {
2
+ "required": [
3
+ "object"
4
+ ],
5
+ "properties": {
6
+ "object": {
7
+ "oneOf": [
8
+ {
9
+ "type": "object",
10
+ "required": [
11
+ "type",
12
+ "url",
13
+ "username",
14
+ "password"
15
+ ],
16
+ "additionalProperties": false,
17
+ "properties": {
18
+ "type": {
19
+ "enum": [
20
+ "credentials"
21
+ ]
22
+ },
23
+ "url": {
24
+ "type": "string",
25
+ "format": "uri",
26
+ "pattern": "^https?://",
27
+ "maxLength": 4096
28
+ },
29
+ "username": {
30
+ "type": "string",
31
+ "minLength": 1,
32
+ "maxLength": 1024
33
+ },
34
+ "password": {
35
+ "type": "string",
36
+ "minLength": 1,
37
+ "maxLength": 4096
38
+ }
39
+ }
40
+ },
41
+ {
42
+ "type": "object",
43
+ "required": [
44
+ "type",
45
+ "url",
46
+ "token"
47
+ ],
48
+ "additionalProperties": false,
49
+ "properties": {
50
+ "type": {
51
+ "enum": [
52
+ "credentials"
53
+ ]
54
+ },
55
+ "url": {
56
+ "type": "string",
57
+ "format": "uri",
58
+ "pattern": "^https?://",
59
+ "maxLength": 4096
60
+ },
61
+ "token": {
62
+ "type": "string",
63
+ "minLength": 1,
64
+ "maxLength": 8192
65
+ }
66
+ }
67
+ }
68
+ ]
69
+ }
70
+ }
71
+ }