@sockethub/schemas 3.0.0-alpha.11 → 3.0.0-alpha.12
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/dist/context.js +101 -0
- package/dist/context.js.map +10 -0
- package/dist/contexts/platform/dummy/v1.jsonld +8 -0
- package/dist/contexts/platform/error/v1.jsonld +8 -0
- package/dist/contexts/platform/feeds/v1.jsonld +8 -0
- package/dist/contexts/platform/irc/v1.jsonld +8 -0
- package/dist/contexts/platform/metadata/v1.jsonld +8 -0
- package/dist/contexts/platform/sockethub%3Ainternal/v1.jsonld +8 -0
- package/dist/contexts/platform/xmpp/v1.jsonld +8 -0
- package/dist/contexts/v1.jsonld +7 -0
- package/dist/index.js +312 -31
- package/dist/index.js.map +10 -9
- package/dist/maps/context-map.json +35 -0
- package/dist/schemas/platform/dummy/v1/credentials.schema.json +1 -0
- package/dist/schemas/platform/dummy/v1/messages.schema.json +22 -0
- package/dist/schemas/platform/error/v1/credentials.schema.json +1 -0
- package/dist/schemas/platform/error/v1/messages.schema.json +1 -0
- package/dist/schemas/platform/feeds/v1/credentials.schema.json +1 -0
- package/dist/schemas/platform/feeds/v1/messages.schema.json +36 -0
- package/dist/schemas/platform/irc/v1/credentials.schema.json +48 -0
- package/dist/schemas/platform/irc/v1/messages.schema.json +19 -0
- package/dist/schemas/platform/metadata/v1/credentials.schema.json +1 -0
- package/dist/schemas/platform/metadata/v1/messages.schema.json +29 -0
- package/dist/schemas/platform/sockethub%3Ainternal/v1/credentials.schema.json +1 -0
- package/dist/schemas/platform/sockethub%3Ainternal/v1/messages.schema.json +1 -0
- package/dist/schemas/platform/xmpp/v1/credentials.schema.json +43 -0
- package/dist/schemas/platform/xmpp/v1/messages.schema.json +21 -0
- package/package.json +8 -3
- package/src/context.ts +125 -0
- package/src/helpers/error-parser.ts +65 -18
- package/src/helpers/objects.ts +59 -3
- package/src/index.test.data.credentials.ts +37 -5
- package/src/index.test.data.platform.ts +3 -0
- package/src/index.test.data.streams.ts +117 -25
- package/src/index.test.ts +31 -3
- package/src/index.ts +28 -1
- package/src/schemas/activity-stream.ts +30 -9
- package/src/schemas/json/activity-object.json +50 -1
- package/src/schemas/json/activity-stream.json +77 -44
- package/src/schemas/json/platform.json +22 -2
- package/src/schemas/json/sockethub-config.json +15 -1
- package/src/schemas/platform.ts +25 -1
- package/src/schemas/sockethub-config.ts +15 -1
- package/src/types/ajv-formats-draft2019.d.ts +5 -0
- package/src/types.ts +10 -3
- package/src/validator.ts +138 -18
package/dist/context.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
function __accessProp(key) {
|
|
8
|
+
return this[key];
|
|
9
|
+
}
|
|
10
|
+
var __toESMCache_node;
|
|
11
|
+
var __toESMCache_esm;
|
|
12
|
+
var __toESM = (mod, isNodeMode, target) => {
|
|
13
|
+
var canCache = mod != null && typeof mod === "object";
|
|
14
|
+
if (canCache) {
|
|
15
|
+
var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
|
|
16
|
+
var cached = cache.get(mod);
|
|
17
|
+
if (cached)
|
|
18
|
+
return cached;
|
|
19
|
+
}
|
|
20
|
+
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
21
|
+
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
22
|
+
for (let key of __getOwnPropNames(mod))
|
|
23
|
+
if (!__hasOwnProp.call(to, key))
|
|
24
|
+
__defProp(to, key, {
|
|
25
|
+
get: __accessProp.bind(mod, key),
|
|
26
|
+
enumerable: true
|
|
27
|
+
});
|
|
28
|
+
if (canCache)
|
|
29
|
+
cache.set(mod, to);
|
|
30
|
+
return to;
|
|
31
|
+
};
|
|
32
|
+
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
33
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
34
|
+
|
|
35
|
+
// src/context.ts
|
|
36
|
+
var AS2_BASE_CONTEXT_URL = "https://www.w3.org/ns/activitystreams";
|
|
37
|
+
var SOCKETHUB_BASE_CONTEXT_URL = "https://sockethub.org/ns/context/v1.jsonld";
|
|
38
|
+
var PLATFORM_CONTEXT_PREFIX = "https://sockethub.org/ns/context/platform/";
|
|
39
|
+
var ERROR_PLATFORM_ID = "error";
|
|
40
|
+
var ERROR_PLATFORM_CONTEXT_URL = "https://sockethub.org/ns/context/platform/error/v1.jsonld";
|
|
41
|
+
var INTERNAL_PLATFORM_ID = "sockethub:internal";
|
|
42
|
+
var INTERNAL_PLATFORM_CONTEXT_URL = "https://sockethub.org/ns/context/platform/sockethub:internal/v1.jsonld";
|
|
43
|
+
var platformContextToPlatformId = new Map;
|
|
44
|
+
var platformContextToSchemaId = new Map;
|
|
45
|
+
var platformContextToCredentialsSchemaId = new Map;
|
|
46
|
+
function buildCanonicalContext(platformContextUrl) {
|
|
47
|
+
return [
|
|
48
|
+
AS2_BASE_CONTEXT_URL,
|
|
49
|
+
SOCKETHUB_BASE_CONTEXT_URL,
|
|
50
|
+
platformContextUrl
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
function normalizeContextArray(value) {
|
|
54
|
+
if (!Array.isArray(value)) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
return value.filter((entry) => typeof entry === "string");
|
|
58
|
+
}
|
|
59
|
+
function getContextArray(msg) {
|
|
60
|
+
return normalizeContextArray(msg["@context"]);
|
|
61
|
+
}
|
|
62
|
+
function registerPlatformContext(platformId, platformContextUrl, schemaId, credentialsSchemaId) {
|
|
63
|
+
platformContextToPlatformId.set(platformContextUrl, platformId);
|
|
64
|
+
platformContextToSchemaId.set(platformContextUrl, schemaId);
|
|
65
|
+
platformContextToCredentialsSchemaId.set(platformContextUrl, credentialsSchemaId);
|
|
66
|
+
}
|
|
67
|
+
function resolvePlatformContextUrl(msg) {
|
|
68
|
+
const contexts = getContextArray(msg);
|
|
69
|
+
const matches = contexts.filter((contextUrl) => platformContextToPlatformId.has(contextUrl));
|
|
70
|
+
if (matches.length !== 1) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return matches[0];
|
|
74
|
+
}
|
|
75
|
+
function getPlatformIdByContextUrl(platformContextUrl) {
|
|
76
|
+
return platformContextToPlatformId.get(platformContextUrl);
|
|
77
|
+
}
|
|
78
|
+
function getSchemaIdByContextUrl(platformContextUrl) {
|
|
79
|
+
return platformContextToSchemaId.get(platformContextUrl);
|
|
80
|
+
}
|
|
81
|
+
function getCredentialsSchemaIdByContextUrl(platformContextUrl) {
|
|
82
|
+
return platformContextToCredentialsSchemaId.get(platformContextUrl);
|
|
83
|
+
}
|
|
84
|
+
export {
|
|
85
|
+
resolvePlatformContextUrl,
|
|
86
|
+
registerPlatformContext,
|
|
87
|
+
getSchemaIdByContextUrl,
|
|
88
|
+
getPlatformIdByContextUrl,
|
|
89
|
+
getCredentialsSchemaIdByContextUrl,
|
|
90
|
+
getContextArray,
|
|
91
|
+
buildCanonicalContext,
|
|
92
|
+
SOCKETHUB_BASE_CONTEXT_URL,
|
|
93
|
+
PLATFORM_CONTEXT_PREFIX,
|
|
94
|
+
INTERNAL_PLATFORM_ID,
|
|
95
|
+
INTERNAL_PLATFORM_CONTEXT_URL,
|
|
96
|
+
ERROR_PLATFORM_ID,
|
|
97
|
+
ERROR_PLATFORM_CONTEXT_URL,
|
|
98
|
+
AS2_BASE_CONTEXT_URL
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
//# debugId=B82ECB9373ACA6B464756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/context.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"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 for a platform context URL.\n */\nexport function buildCanonicalContext(\n platformContextUrl: string,\n): JsonLdContext {\n return [\n AS2_BASE_CONTEXT_URL,\n SOCKETHUB_BASE_CONTEXT_URL,\n platformContextUrl,\n ];\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"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,IAAM,uBAAuB;AAK7B,IAAM,6BACT;AAKG,IAAM,0BACT;AAKG,IAAM,oBAAoB;AAC1B,IAAM,6BACT;AAKG,IAAM,uBAAuB;AAC7B,IAAM,gCACT;AAEJ,IAAM,8BAA8B,IAAI;AACxC,IAAM,4BAA4B,IAAI;AACtC,IAAM,uCAAuC,IAAI;AAK1C,SAAS,qBAAqB,CACjC,oBACa;AAAA,EACb,OAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA;AAMJ,SAAS,qBAAqB,CAAC,OAA+B;AAAA,EAC1D,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AAAA,IACvB,OAAO,CAAC;AAAA,EACZ;AAAA,EACA,OAAO,MAAM,OAAO,CAAC,UAA2B,OAAO,UAAU,QAAQ;AAAA;AAMtE,SAAS,eAAe,CAAC,KAAoC;AAAA,EAChE,OAAO,sBAAsB,IAAI,WAAW;AAAA;AAMzC,SAAS,uBAAuB,CACnC,YACA,oBACA,UACA,qBACF;AAAA,EACE,4BAA4B,IAAI,oBAAoB,UAAU;AAAA,EAC9D,0BAA0B,IAAI,oBAAoB,QAAQ;AAAA,EAC1D,qCAAqC,IACjC,oBACA,mBACJ;AAAA;AAOG,SAAS,yBAAyB,CAAC,KAAoC;AAAA,EAC1E,MAAM,WAAW,gBAAgB,GAAG;AAAA,EACpC,MAAM,UAAU,SAAS,OAAO,CAAC,eAC7B,4BAA4B,IAAI,UAAU,CAC9C;AAAA,EACA,IAAI,QAAQ,WAAW,GAAG;AAAA,IACtB,OAAO;AAAA,EACX;AAAA,EACA,OAAO,QAAQ;AAAA;AAMZ,SAAS,yBAAyB,CACrC,oBACkB;AAAA,EAClB,OAAO,4BAA4B,IAAI,kBAAkB;AAAA;AAMtD,SAAS,uBAAuB,CACnC,oBACkB;AAAA,EAClB,OAAO,0BAA0B,IAAI,kBAAkB;AAAA;AAMpD,SAAS,kCAAkC,CAC9C,oBACkB;AAAA,EAClB,OAAO,qCAAqC,IAAI,kBAAkB;AAAA;",
|
|
8
|
+
"debugId": "B82ECB9373ACA6B464756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|