major fixes

This commit is contained in:
Michael Puckett 2023-07-29 12:32:02 -04:00
parent 55b9b469df
commit 65548f96c7
131 changed files with 1262 additions and 1351 deletions

3
.gitignore vendored
View File

@ -1,3 +1,4 @@
node_modules/ node_modules/
lerna-debug.log lerna-debug.log
.vscode .vscode
dist/

31
package-lock.json generated
View File

@ -3663,6 +3663,12 @@
"license": "MIT", "license": "MIT",
"optional": true "optional": true
}, },
"node_modules/@types/isomorphic-fetch": {
"version": "0.0.36",
"resolved": "https://registry.npmjs.org/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.36.tgz",
"integrity": "sha512-ulw4d+vW1HKn4oErSmNN2HYEcHGq0N1C5exlrMM0CRqX1UUpFhGb5lwiom5j9KN3LBJJDLRmYIZz1ghm7FIzZw==",
"dev": true
},
"node_modules/@types/json-schema": { "node_modules/@types/json-schema": {
"version": "7.0.11", "version": "7.0.11",
"dev": true, "dev": true,
@ -11447,6 +11453,15 @@
"node": ">=12.20" "node": ">=12.20"
} }
}, },
"node_modules/typescript-bundle": {
"version": "1.0.18",
"resolved": "https://registry.npmjs.org/typescript-bundle/-/typescript-bundle-1.0.18.tgz",
"integrity": "sha512-ZtzMZPzW3bnL4c+jBjgSHxlnW9TdWQjFS5RLk4k0YJb85zv78rdslf13mKXUgHZjTeEyO8R59IQ4WqSdlEXhAw==",
"dev": true,
"bin": {
"tsc-bundle": "tsc-bundle"
}
},
"node_modules/uc.micro": { "node_modules/uc.micro": {
"version": "1.0.6", "version": "1.0.6",
"license": "MIT", "license": "MIT",
@ -12045,11 +12060,13 @@
}, },
"devDependencies": { "devDependencies": {
"@types/formidable": "^2.0.5", "@types/formidable": "^2.0.5",
"@types/isomorphic-fetch": "^0.0.36",
"@typescript-eslint/eslint-plugin": "^5.40.0", "@typescript-eslint/eslint-plugin": "^5.40.0",
"@typescript-eslint/parser": "^5.40.0", "@typescript-eslint/parser": "^5.40.0",
"eslint": "^8.25.0", "eslint": "^8.25.0",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"typescript": "^5.0.4" "typescript": "^5.0.4",
"typescript-bundle": "^1.0.18"
} }
}, },
"packages/crypto-node": { "packages/crypto-node": {
@ -12251,23 +12268,22 @@
"@typescript-eslint/parser": "^5.40.0", "@typescript-eslint/parser": "^5.40.0",
"eslint": "^8.25.0", "eslint": "^8.25.0",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"typescript": "^5.0.4" "typescript": "^5.0.4",
"typescript-bundle": "^1.0.18"
} }
}, },
"packages/types": { "packages/types": {
"name": "@activity-kit/types", "name": "@activity-kit/types",
"version": "0.4.56", "version": "0.4.56",
"license": "MIT", "license": "MIT",
"dependencies": {
"formidable": "^2.1.1"
},
"devDependencies": { "devDependencies": {
"@types/jsonld": "^1.5.9", "@types/jsonld": "^1.5.9",
"@typescript-eslint/eslint-plugin": "^5.40.0", "@typescript-eslint/eslint-plugin": "^5.40.0",
"@typescript-eslint/parser": "^5.40.0", "@typescript-eslint/parser": "^5.40.0",
"eslint": "^8.25.0", "eslint": "^8.25.0",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"typescript": "^5.0.4" "typescript": "^5.0.4",
"typescript-bundle": "^1.0.18"
} }
}, },
"packages/utilities": { "packages/utilities": {
@ -12285,7 +12301,8 @@
"@typescript-eslint/parser": "^5.40.0", "@typescript-eslint/parser": "^5.40.0",
"eslint": "^8.25.0", "eslint": "^8.25.0",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"typescript": "^5.0.4" "typescript": "^5.0.4",
"typescript-bundle": "^1.0.18"
} }
} }
} }

View File

@ -3,7 +3,7 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,

View File

@ -8,7 +8,7 @@ export async function createUser(
preferredUsername, preferredUsername,
}: { }: {
email: string; email: string;
password?: string; password: string;
preferredUsername: string; preferredUsername: string;
}, },
) { ) {

View File

@ -3,7 +3,7 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,

View File

@ -1,3 +1,3 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { Core } from '.';
export declare function broadcast(this: Core, activity: AP.Activity, actor: AP.Actor): Promise<unknown>; export declare function broadcast(this: Core, activity: AP.Activity, actor: AP.Actor): Promise<unknown>;

View File

@ -1,16 +1,16 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.broadcast = void 0; exports.broadcast = void 0;
const type_utilities_1 = require("@activity-kit/type-utilities");
const utilities_1 = require("@activity-kit/utilities"); const utilities_1 = require("@activity-kit/utilities");
async function broadcast(activity, actor) { async function broadcast(activity, actor) {
const publicActivity = (0, utilities_1.cleanProps)((0, utilities_1.applyContext)(activity)); const entity = (0, utilities_1.applyContext)(activity);
type_utilities_1.assert.isApActivity(entity);
const publicActivity = (0, utilities_1.cleanProps)(entity);
if (!('actor' in publicActivity)) { if (!('actor' in publicActivity)) {
throw new Error('Not an activity?'); throw new Error('Not an activity?');
} }
const recipients = await this.getRecipientInboxUrls(activity, actor); const recipients = await this.getRecipientInboxUrls(activity, actor);
console.log({
recipients,
});
const results = await Promise.all(recipients.map(async (recipient) => { const results = await Promise.all(recipients.map(async (recipient) => {
return await this.signAndSendToForeignActorInbox(recipient, actor, publicActivity); return await this.signAndSendToForeignActorInbox(recipient, actor, publicActivity);
})); }));

View File

@ -1 +1 @@
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":";;;AAEA,uDAAmE;AAO5D,KAAK,UAAU,SAAS,CAE7B,QAAqB,EACrB,KAAe;IAEf,MAAM,cAAc,GAAG,IAAA,sBAAU,EAAC,IAAA,wBAAY,EAAc,QAAQ,CAAC,CAAC,CAAC;IAEvE,IAAI,CAAC,CAAC,OAAO,IAAI,cAAc,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACrC;IAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAErE,OAAO,CAAC,GAAG,CAAC;QACV,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACjC,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAC9C,SAAS,EACT,KAAK,EACL,cAAc,CACf,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AA5BD,8BA4BC"} {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":";;;AACA,iEAAsD;AACtD,uDAAmE;AAS5D,KAAK,UAAU,SAAS,CAE7B,QAAqB,EACrB,KAAe;IAEf,MAAM,MAAM,GAAG,IAAA,wBAAY,EAAY,QAAQ,CAAC,CAAC;IAEjD,uBAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAE5B,MAAM,cAAc,GAAG,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,CAAC,CAAC,OAAO,IAAI,cAAc,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACrC;IAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAErE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACjC,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAC9C,SAAS,EACT,KAAK,EACL,cAAc,CACf,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AA5BD,8BA4BC"}

View File

@ -1,3 +1,3 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
export declare function expandCollection(this: Core, collection: AP.EitherCollectionReference): Promise<null | AP.EitherCollection>; import { Core } from '.';
export declare function expandCollection(this: Core, collection: AP.EitherCollectionReference): Promise<AP.EitherCollection | null>;

View File

@ -1,62 +1,31 @@
"use strict"; "use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.expandCollection = void 0; exports.expandCollection = void 0;
const AP = __importStar(require("@activity-kit/types"));
const type_utilities_1 = require("@activity-kit/type-utilities"); const type_utilities_1 = require("@activity-kit/type-utilities");
const utilities_1 = require("@activity-kit/utilities");
async function expandCollection(collection) { async function expandCollection(collection) {
const id = (0, utilities_1.getId)(collection); if (!type_utilities_1.guard.isApCollection(collection)) {
if (!id) {
return null; return null;
} }
const foundEntity = await this.queryById(id); const items = this.getCollectionItems(collection);
if (!foundEntity) { const expandedItems = await Promise.all(items.map(async (item) => {
return null; var _a;
if (type_utilities_1.guard.isApEntity(item)) {
return item;
}
return (_a = (await this.queryById(item))) !== null && _a !== void 0 ? _a : item;
}));
if (type_utilities_1.guard.isArray(collection.orderedItems) &&
collection.orderedItems.length) {
return {
...collection,
orderedItems: expandedItems,
};
} }
if (type_utilities_1.guard.isTypeOf(foundEntity, AP.CollectionTypes)) { else if (type_utilities_1.guard.isArray(collection.items) && collection.items.length) {
const items = await this.getCollectionItems(foundEntity); return {
if (!items) { ...collection,
return foundEntity; items: expandedItems,
} };
if (Array.isArray(foundEntity.type)
? foundEntity.type.includes(AP.CollectionTypes.ORDERED_COLLECTION)
: foundEntity.type === AP.CollectionTypes.ORDERED_COLLECTION) {
return {
...foundEntity,
orderedItems: items,
};
}
if (Array.isArray(foundEntity.type)
? foundEntity.type.includes(AP.CollectionTypes.COLLECTION)
: foundEntity.type === AP.CollectionTypes.COLLECTION) {
return {
...foundEntity,
items,
};
}
} }
return null; return null;
} }

View File

@ -1 +1 @@
{"version":3,"file":"expandCollection.js","sourceRoot":"","sources":["../src/expandCollection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA0C;AAC1C,iEAAqD;AACrD,uDAAgD;AAEzC,KAAK,UAAU,gBAAgB,CAEpC,UAAwC;IAExC,MAAM,EAAE,GAAG,IAAA,iBAAK,EAAC,UAAU,CAAC,CAAC;IAE7B,IAAI,CAAC,EAAE,EAAE;QACP,OAAO,IAAI,CAAC;KACb;IAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAE7C,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,sBAAK,CAAC,QAAQ,CAAsB,WAAW,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE;QACxE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,WAAW,CAAC;SACpB;QAED,IACE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;YAC7B,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC;YAClE,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,EAAE,CAAC,eAAe,CAAC,kBAAkB,EAC9D;YACA,OAAO;gBACL,GAAG,WAAW;gBACd,YAAY,EAAE,KAAK;aACpB,CAAC;SACH;QAED,IACE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;YAC7B,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC;YAC1D,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,EAAE,CAAC,eAAe,CAAC,UAAU,EACtD;YACA,OAAO;gBACL,GAAG,WAAW;gBACd,KAAK;aACN,CAAC;SACH;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AA/CD,4CA+CC"} {"version":3,"file":"expandCollection.js","sourceRoot":"","sources":["../src/expandCollection.ts"],"names":[],"mappings":";;;AACA,iEAAqD;AAI9C,KAAK,UAAU,gBAAgB,CAEpC,UAAwC;IAExC,IAAI,CAAC,sBAAK,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;QACrC,OAAO,IAAI,CAAC;KACb;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAElD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;;QACvB,IAAI,sBAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;QAED,OAAO,MAAA,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,mCAAI,IAAI,CAAC;IAC9C,CAAC,CAAC,CACH,CAAC;IAEF,IACE,sBAAK,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;QACtC,UAAU,CAAC,YAAY,CAAC,MAAM,EAC9B;QACA,OAAO;YACL,GAAG,UAAU;YACb,YAAY,EAAE,aAAa;SAC5B,CAAC;KACH;SAAM,IAAI,sBAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE;QACrE,OAAO;YACL,GAAG,UAAU;YACb,KAAK,EAAE,aAAa;SACrB,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AApCD,4CAoCC"}

View File

@ -1,71 +1,45 @@
"use strict"; "use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.expandEntity = void 0; exports.expandEntity = void 0;
const AP = __importStar(require("@activity-kit/types"));
const type_utilities_1 = require("@activity-kit/type-utilities"); const type_utilities_1 = require("@activity-kit/type-utilities");
const utilities_1 = require("@activity-kit/utilities"); const selfReferentialKeys = [
'@context',
'_id',
'id',
'type',
'url',
'href',
'publicKey',
];
async function expandEntity(entity) { async function expandEntity(entity) {
const expandEntry = async (key, value) => { var _a;
if (key === '_id' || return (_a = type_utilities_1.cast.isApEntity(await expandObject.bind(this)(entity))) !== null && _a !== void 0 ? _a : null;
key === 'id' ||
key === 'url' ||
key === 'type' ||
key === '@context' ||
key === 'publicKey') {
return value;
}
else if (value instanceof URL) {
if (value.toString() === utilities_1.PUBLIC_ACTOR) {
return value;
}
else {
try {
const foundEntity = await this.queryById(value);
return foundEntity ?? value;
}
catch (error) {
return value;
}
}
}
else if (Array.isArray(value)) {
return await Promise.all(value.map(async (item) => await expandEntry('', item)));
}
else {
return value;
}
};
const expanded = {};
for (const [key, value] of Object.entries(entity)) {
expanded[key] = await expandEntry(key, value);
}
if (type_utilities_1.guard.isTypeOf(expanded, AP.AllTypes)) {
return expanded;
}
return null;
} }
exports.expandEntity = expandEntity; exports.expandEntity = expandEntity;
async function expandObject(object) {
const expanded = {};
for (const [key, value] of Object.entries(object)) {
expanded[key] = await expandEntry.bind(this)([key, value]);
}
return expanded;
}
async function expandEntry(entry) {
const [key, value] = entry;
if (selfReferentialKeys.includes(key)) {
return value;
}
if (type_utilities_1.guard.isArray(value)) {
return await Promise.all(value.map(async (item) => await expandEntry.bind(this)([key, item])));
}
if (type_utilities_1.guard.isPlainObject(value)) {
return await expandObject.bind(this)(value);
}
if (type_utilities_1.guard.isUrl(value)) {
const foundEntity = type_utilities_1.cast.isApEntity(await this.queryById(value));
if (foundEntity) {
return foundEntity;
}
}
return value;
}
//# sourceMappingURL=expandEntity.js.map //# sourceMappingURL=expandEntity.js.map

View File

@ -1 +1 @@
{"version":3,"file":"expandEntity.js","sourceRoot":"","sources":["../src/expandEntity.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA0C;AAC1C,iEAAqD;AACrD,uDAAuD;AAEhD,KAAK,UAAU,YAAY,CAEhC,MAAiB;IAEjB,MAAM,WAAW,GAAG,KAAK,EAAE,GAAW,EAAE,KAAc,EAAE,EAAE;QACxD,IACE,GAAG,KAAK,KAAK;YACb,GAAG,KAAK,IAAI;YACZ,GAAG,KAAK,KAAK;YACb,GAAG,KAAK,MAAM;YACd,GAAG,KAAK,UAAU;YAClB,GAAG,KAAK,WAAW,EACnB;YACA,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,KAAK,YAAY,GAAG,EAAE;YAC/B,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,wBAAY,EAAE;gBACrC,OAAO,KAAK,CAAC;aACd;iBAAM;gBACL,IAAI;oBACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAEhD,OAAO,WAAW,IAAI,KAAK,CAAC;iBAC7B;gBAAC,OAAO,KAAK,EAAE;oBACd,OAAO,KAAK,CAAC;iBACd;aACF;SACF;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/B,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CACvD,CAAC;SACH;aAAM;YACL,OAAO,KAAK,CAAC;SACd;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjD,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAC/C;IAED,IAAI,sBAAK,CAAC,QAAQ,CAAY,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;QACpD,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AA9CD,oCA8CC"} {"version":3,"file":"expandEntity.js","sourceRoot":"","sources":["../src/expandEntity.ts"],"names":[],"mappings":";;;AAEA,iEAA2D;AAE3D,MAAM,mBAAmB,GAAG;IAC1B,UAAU;IACV,KAAK;IACL,IAAI;IACJ,MAAM;IACN,KAAK;IACL,MAAM;IACN,WAAW;CACZ,CAAC;AAEK,KAAK,UAAU,YAAY,CAAa,MAAiB;;IAC9D,OAAO,MAAA,qBAAI,CAAC,UAAU,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,mCAAI,IAAI,CAAC;AACxE,CAAC;AAFD,oCAEC;AAED,KAAK,UAAU,YAAY,CAAa,MAA+B;IACrE,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjD,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;KAC5D;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,WAAW,CAExB,KAAoC;IAEpC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAE3B,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,sBAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CACrE,CAAC;KACH;IAED,IAAI,sBAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QAC9B,OAAO,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;KAC7C;IAED,IAAI,sBAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACtB,MAAM,WAAW,GAAG,qBAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjE,IAAI,WAAW,EAAE;YACf,OAAO,WAAW,CAAC;SACpB;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}

View File

@ -1,69 +1,49 @@
"use strict"; "use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchEntityById = void 0; exports.fetchEntityById = void 0;
const AP = __importStar(require("@activity-kit/types"));
const type_utilities_1 = require("@activity-kit/type-utilities"); const type_utilities_1 = require("@activity-kit/type-utilities");
const utilities_1 = require("@activity-kit/utilities"); const utilities_1 = require("@activity-kit/utilities");
async function fetchEntityById(id) { async function fetchEntityById(id) {
const getContentType = async (url) => { const isJsonLdContentType = await getIsJsonLdContentType.bind(this)(id);
const response = await this.fetch(url.toString(), { method: 'HEAD' }); if (!isJsonLdContentType) {
return response.headers.get('Content-Type');
};
const isJsonLdContentType = async (url) => {
const contentType = await getContentType(url);
if (!contentType) {
return false;
}
return (contentType.includes(utilities_1.ACTIVITYSTREAMS_CONTENT_TYPE) ||
contentType.includes(utilities_1.LINKED_DATA_CONTENT_TYPE) ||
contentType.includes(utilities_1.JSON_CONTENT_TYPE));
};
if (!(await isJsonLdContentType(id))) {
return null; return null;
} }
const actor = await this.findOne('entity', { const botActor = await getBotActor.bind(this)();
preferredUsername: 'bot', type_utilities_1.assert.exists(botActor);
}); const botActorId = (0, utilities_1.getId)(botActor);
type_utilities_1.assert.isApActor(actor); type_utilities_1.assert.exists(botActorId);
const actorId = (0, utilities_1.getId)(actor); const { dateHeader, signatureHeader } = await this.getHttpSignature(id, botActorId, await this.getPrivateKey(botActor));
type_utilities_1.assert.exists(actorId); const headers = {
const { dateHeader, signatureHeader } = await this.getHttpSignature(id, actorId, await this.getPrivateKey(actor)); date: dateHeader,
const controller = new AbortController(); signature: signatureHeader,
const timeout = setTimeout(() => controller.abort(), 1250); };
const fetchedEntity = await this.fetch(id.toString(), { const fetchedJson = await fetchJsonByUrl.bind(this)(id, headers);
signal: controller.signal, if (fetchedJson) {
headers: { const convertedEntity = (0, utilities_1.convertJsonToEntity)(fetchedJson);
[utilities_1.ACCEPT_HEADER]: utilities_1.ACTIVITYSTREAMS_CONTENT_TYPE,
date: dateHeader,
signature: signatureHeader,
},
})
.then(async (response) => {
clearTimeout(timeout);
if (response.status === 200) {
return await response.json();
}
else if (response.status === 410) {
const data = await response.json();
if ('@context' in data) {
console.log('Likely a Tombstone?');
return data;
}
else {
throw new Error('Not found, but not a tombstone.');
}
}
else {
console.log('Found but not 200 or 404.', response.status, id.toString());
throw new Error(`Unexpected status code ${response.status}`);
}
})
.catch((error) => {
clearTimeout(timeout);
console.log(String(error));
return null;
});
if (fetchedEntity) {
const convertedEntity = (0, utilities_1.convertJsonToEntity)(fetchedEntity);
if (convertedEntity) { if (convertedEntity) {
const entity = (0, utilities_1.compressEntity)(convertedEntity); const entity = (0, utilities_1.compressEntity)(convertedEntity);
if (entity) { if (entity) {
@ -75,4 +55,69 @@ async function fetchEntityById(id) {
return null; return null;
} }
exports.fetchEntityById = fetchEntityById; exports.fetchEntityById = fetchEntityById;
async function fetchJsonByUrl(url, headers) {
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 1250);
const config = {
signal: controller.signal,
headers: {
...headers,
[utilities_1.ACCEPT_HEADER]: utilities_1.ACTIVITYSTREAMS_CONTENT_TYPE,
},
};
async function handleResponse(response) {
clearTimeout(timeout);
const data = await response.json();
if (response.status === 200) {
return data;
}
if (response.status === 400 || response.status === 410) {
if ('@context' in data) {
return data;
}
else {
return {
'@context': utilities_1.ACTIVITYSTREAMS_CONTEXT,
type: AP.ExtendedObjectTypes.TOMBSTONE,
id: url.href,
url: url.href,
};
}
}
if (response.status >= 500) {
console.log('Server error.', response.status, url.href);
return null;
}
console.log('Unexpected status code.', response.status, url.href);
return data;
}
async function handleError(error) {
clearTimeout(timeout);
console.log(`${error}`);
return null;
}
return await this.fetch(url.href, config)
.then(handleResponse)
.catch(handleError);
}
async function getContentType(url) {
const { headers } = await this.fetch(url.toString(), { method: 'HEAD' });
return headers.get('Content-Type');
}
async function getIsJsonLdContentType(url) {
const contentType = await getContentType.bind(this)(url);
if (!contentType) {
return false;
}
return (contentType.includes(utilities_1.ACTIVITYSTREAMS_CONTENT_TYPE) ||
contentType.includes(utilities_1.LINKED_DATA_CONTENT_TYPE) ||
contentType.includes(utilities_1.JSON_CONTENT_TYPE));
}
async function getBotActor() {
var _a;
const botActor = await this.findOne('entity', {
preferredUsername: utilities_1.SERVER_ACTOR_USERNAME,
});
return (_a = type_utilities_1.cast.isApActor(botActor)) !== null && _a !== void 0 ? _a : null;
}
//# sourceMappingURL=fetchEntityById.js.map //# sourceMappingURL=fetchEntityById.js.map

View File

@ -1 +1 @@
{"version":3,"file":"fetchEntityById.js","sourceRoot":"","sources":["../src/fetchEntityById.ts"],"names":[],"mappings":"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"} {"version":3,"file":"fetchEntityById.js","sourceRoot":"","sources":["../src/fetchEntityById.ts"],"names":[],"mappings":"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"}

View File

@ -4,7 +4,7 @@ exports.findEntityById = void 0;
const utilities_1 = require("@activity-kit/utilities"); const utilities_1 = require("@activity-kit/utilities");
async function findEntityById(id) { async function findEntityById(id) {
const collectionName = (0, utilities_1.getCollectionNameByUrl)(id); const collectionName = (0, utilities_1.getCollectionNameByUrl)(id);
return await this.findOne(collectionName, { id: id.toString() }); return await this.findOne(collectionName, { id: id.href });
} }
exports.findEntityById = findEntityById; exports.findEntityById = findEntityById;
//# sourceMappingURL=findEntityById.js.map //# sourceMappingURL=findEntityById.js.map

View File

@ -1 +1 @@
{"version":3,"file":"findEntityById.js","sourceRoot":"","sources":["../src/findEntityById.ts"],"names":[],"mappings":";;;AAEA,uDAAiE;AAE1D,KAAK,UAAU,cAAc,CAElC,EAAO;IAEP,MAAM,cAAc,GAAG,IAAA,kCAAsB,EAAC,EAAE,CAAC,CAAC;IAElD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AAPD,wCAOC"} {"version":3,"file":"findEntityById.js","sourceRoot":"","sources":["../src/findEntityById.ts"],"names":[],"mappings":";;;AAEA,uDAAiE;AAE1D,KAAK,UAAU,cAAc,CAElC,EAAO;IAEP,MAAM,cAAc,GAAG,IAAA,kCAAsB,EAAC,EAAE,CAAC,CAAC;IAElD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AAPD,wCAOC"}

View File

@ -1,3 +1,3 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { Core } from '.';
export declare function getActorByUserId(this: Core, userId: string): Promise<AP.Actor | null>; export declare function getActorByUserId(this: Core, userId: string): Promise<AP.Actor | null>;

View File

@ -1,16 +1,14 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.getActorByUserId = void 0; exports.getActorByUserId = void 0;
const type_utilities_1 = require("@activity-kit/type-utilities");
async function getActorByUserId(userId) { async function getActorByUserId(userId) {
if (!userId) {
return null;
}
const preferredUsername = await this.findStringValueById('username', userId); const preferredUsername = await this.findStringValueById('username', userId);
const user = await this.findOne('entity', { preferredUsername }); const user = await this.findOne('entity', { preferredUsername });
if (user && 'preferredUsername' in user) { if (!type_utilities_1.guard.isApActor(user)) {
return user; return null;
} }
return null; return user;
} }
exports.getActorByUserId = getActorByUserId; exports.getActorByUserId = getActorByUserId;
//# sourceMappingURL=getActorByUserId.js.map //# sourceMappingURL=getActorByUserId.js.map

View File

@ -1 +1 @@
{"version":3,"file":"getActorByUserId.js","sourceRoot":"","sources":["../src/getActorByUserId.ts"],"names":[],"mappings":";;;AAGO,KAAK,UAAU,gBAAgB,CAEpC,MAAc;IAEd,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE7E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAEjE,IAAI,IAAI,IAAI,mBAAmB,IAAI,IAAI,EAAE;QACvC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAjBD,4CAiBC"} {"version":3,"file":"getActorByUserId.js","sourceRoot":"","sources":["../src/getActorByUserId.ts"],"names":[],"mappings":";;;AACA,iEAAqD;AAI9C,KAAK,UAAU,gBAAgB,CAEpC,MAAc;IAEd,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE7E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAEjE,IAAI,CAAC,sBAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAbD,4CAaC"}

View File

@ -1,3 +1,3 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
export declare function getCollectionItems(this: Core, entity: AP.Collection | AP.OrderedCollection): Promise<AP.EntityReference[]>; import { Core } from '.';
export declare function getCollectionItems(this: Core, entity: AP.Collection | AP.OrderedCollection): AP.EntityReference[];

View File

@ -1,61 +1,22 @@
"use strict"; "use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.getCollectionItems = void 0; exports.getCollectionItems = void 0;
const AP = __importStar(require("@activity-kit/types"));
const type_utilities_1 = require("@activity-kit/type-utilities"); const type_utilities_1 = require("@activity-kit/type-utilities");
const utilities_1 = require("@activity-kit/utilities"); function getCollectionItems(entity) {
async function getCollectionItems(entity) { const collectionItems = [];
try { if (type_utilities_1.guard.isArray(entity.orderedItems) && entity.orderedItems.length) {
type_utilities_1.assert.isApCollection(entity); const orderedItems = entity.orderedItems.filter((item) => {
const collectionItems = entity.orderedItems || entity.items; return type_utilities_1.guard.isApEntity(item) || type_utilities_1.guard.isUrl(item);
if (!Array.isArray(collectionItems)) { });
return []; collectionItems.push(...orderedItems);
}
const result = [];
for (const item of collectionItems) {
if (item instanceof URL) {
const foundItem = await this.queryById(item);
result.push(foundItem
? await this.expandEntity(foundItem)
: {
id: item,
type: AP.CoreObjectTypes.TOMBSTONE,
content: 'Not found',
});
}
else if (!Array.isArray(item)) {
const foundItem = await this.queryById((0, utilities_1.getId)(item));
result.push(foundItem ?? item);
}
}
return result;
} }
catch (error) { else if (type_utilities_1.guard.isArray(entity.items) && entity.items.length) {
return []; const items = entity.items.filter((item) => {
return type_utilities_1.guard.isApEntity(item) || type_utilities_1.guard.isUrl(item);
});
collectionItems.push(...items);
} }
return collectionItems;
} }
exports.getCollectionItems = getCollectionItems; exports.getCollectionItems = getCollectionItems;
//# sourceMappingURL=getCollectionItems.js.map //# sourceMappingURL=getCollectionItems.js.map

View File

@ -1 +1 @@
{"version":3,"file":"getCollectionItems.js","sourceRoot":"","sources":["../src/getCollectionItems.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA0C;AAC1C,iEAAsD;AACtD,uDAAgD;AAEzC,KAAK,UAAU,kBAAkB,CAEtC,MAA4C;IAE5C,IAAI;QACF,uBAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE9B,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC;QAE5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;YACnC,OAAO,EAAE,CAAC;SACX;QAED,MAAM,MAAM,GAAyB,EAAE,CAAC;QAExC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;YAClC,IAAI,IAAI,YAAY,GAAG,EAAE;gBACvB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAE7C,MAAM,CAAC,IAAI,CACT,SAAS;oBACP,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;oBACpC,CAAC,CAAC;wBACE,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS;wBAClC,OAAO,EAAE,WAAW;qBACrB,CACN,CAAC;aACH;iBAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAA,iBAAK,EAAC,IAAI,CAAC,CAAC,CAAC;gBAEpD,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;aAChC;SACF;QAED,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAvCD,gDAuCC"} {"version":3,"file":"getCollectionItems.js","sourceRoot":"","sources":["../src/getCollectionItems.ts"],"names":[],"mappings":";;;AACA,iEAAqD;AAIrD,SAAgB,kBAAkB,CAEhC,MAA4C;IAE5C,MAAM,eAAe,GAAyB,EAAE,CAAC;IAEjD,IAAI,sBAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE;QACpE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvD,OAAO,sBAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,sBAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,eAAe,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;KACvC;SAAM,IAAI,sBAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,OAAO,sBAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,sBAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;KAChC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AArBD,gDAqBC"}

View File

@ -28,47 +28,40 @@ const AP = __importStar(require("@activity-kit/types"));
const type_utilities_1 = require("@activity-kit/type-utilities"); const type_utilities_1 = require("@activity-kit/type-utilities");
const utilities_1 = require("@activity-kit/utilities"); const utilities_1 = require("@activity-kit/utilities");
async function getPaginatedCollectionItems(collection) { async function getPaginatedCollectionItems(collection) {
const collectionItems = []; const firstCollectionPageId = (0, utilities_1.getId)(collection.first);
try { if (!firstCollectionPageId) {
type_utilities_1.assert.isApCollection(collection); if (type_utilities_1.guard.isArray(collection.orderedItems)) {
const firstCollectionPageId = (0, utilities_1.getId)(collection.first); return collection.orderedItems;
if (firstCollectionPageId) {
const firstCollectionPage = await this.queryById(firstCollectionPageId);
try {
type_utilities_1.assert.isApTypeOf(firstCollectionPage, AP.CollectionPageTypes);
let nextCollectionPage = firstCollectionPage;
while (nextCollectionPage) {
try {
type_utilities_1.assert.isApTypeOf(nextCollectionPage, AP.CollectionPageTypes);
const collectionPageItems = nextCollectionPage.orderedItems || nextCollectionPage.items;
type_utilities_1.assert.isArray(collectionPageItems);
collectionItems.push(collectionPageItems);
const nextCollectionPageId = (0, utilities_1.getId)(nextCollectionPage.next);
type_utilities_1.assert.exists(nextCollectionPageId);
const potentialNextCollectionPage = await this.queryById(nextCollectionPageId);
type_utilities_1.assert.isApTypeOf(potentialNextCollectionPage, AP.CollectionPageTypes);
nextCollectionPage = potentialNextCollectionPage;
}
catch (error) {
nextCollectionPage = null;
}
}
}
catch (error) { }
} }
else { if (type_utilities_1.guard.isArray(collection.items)) {
if (Array.isArray(collection.orderedItems)) { return collection.items;
collectionItems.push(collection.orderedItems);
}
else if (Array.isArray(collection.items)) {
collectionItems.push(collection.items);
}
} }
return collectionItems.flat();
}
catch (error) {
return []; return [];
} }
const firstCollectionPage = await this.queryById(firstCollectionPageId);
if (!type_utilities_1.guard.isApTypeOf(firstCollectionPage, AP.CollectionPageTypes)) {
return [];
}
const collectionItems = [];
let nextCollectionPage = firstCollectionPage;
while (nextCollectionPage) {
if (type_utilities_1.guard.isArray(nextCollectionPage.orderedItems)) {
collectionItems.push(nextCollectionPage.orderedItems);
}
if (type_utilities_1.guard.isArray(nextCollectionPage.items)) {
collectionItems.push(nextCollectionPage.items);
}
const nextPageId = (0, utilities_1.getId)(nextCollectionPage.next);
if (!type_utilities_1.guard.exists(nextPageId)) {
break;
}
const nextPage = await this.queryById(nextPageId);
if (!type_utilities_1.guard.isApTypeOf(nextPage, AP.CollectionPageTypes)) {
break;
}
nextCollectionPage = nextPage;
}
return collectionItems.flat();
} }
exports.getPaginatedCollectionItems = getPaginatedCollectionItems; exports.getPaginatedCollectionItems = getPaginatedCollectionItems;
//# sourceMappingURL=getPaginatedCollectionItems.js.map //# sourceMappingURL=getPaginatedCollectionItems.js.map

View File

@ -1 +1 @@
{"version":3,"file":"getPaginatedCollectionItems.js","sourceRoot":"","sources":["../src/getPaginatedCollectionItems.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA0C;AAC1C,iEAAsD;AACtD,uDAAgD;AAEzC,KAAK,UAAU,2BAA2B,CAE/C,UAAgD;IAEhD,MAAM,eAAe,GAA2B,EAAE,CAAC;IAEnD,IAAI;QACF,uBAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAElC,MAAM,qBAAqB,GAAG,IAAA,iBAAK,EAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEtD,IAAI,qBAAqB,EAAE;YACzB,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YAExE,IAAI;gBACF,uBAAM,CAAC,UAAU,CACf,mBAAmB,EACnB,EAAE,CAAC,mBAAmB,CACvB,CAAC;gBAEF,IAAI,kBAAkB,GACpB,mBAAmB,CAAC;gBAEtB,OAAO,kBAAkB,EAAE;oBACzB,IAAI;wBACF,uBAAM,CAAC,UAAU,CACf,kBAAkB,EAClB,EAAE,CAAC,mBAAmB,CACvB,CAAC;wBAEF,MAAM,mBAAmB,GACvB,kBAAkB,CAAC,YAAY,IAAI,kBAAkB,CAAC,KAAK,CAAC;wBAE9D,uBAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;wBAEpC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;wBAE1C,MAAM,oBAAoB,GAAG,IAAA,iBAAK,EAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;wBAE5D,uBAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;wBAEpC,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,SAAS,CACtD,oBAAoB,CACrB,CAAC;wBAEF,uBAAM,CAAC,UAAU,CACf,2BAA2B,EAC3B,EAAE,CAAC,mBAAmB,CACvB,CAAC;wBAEF,kBAAkB,GAAG,2BAA2B,CAAC;qBAClD;oBAAC,OAAO,KAAK,EAAE;wBACd,kBAAkB,GAAG,IAAI,CAAC;qBAC3B;iBACF;aACF;YAAC,OAAO,KAAK,EAAE,GAAE;SACnB;aAAM;YACL,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;gBAC1C,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;aAC/C;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBAC1C,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aACxC;SACF;QAED,OAAO,eAAe,CAAC,IAAI,EAAE,CAAC;KAC/B;IAAC,OAAO,KAAK,EAAE;QAGd,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAtED,kEAsEC"} {"version":3,"file":"getPaginatedCollectionItems.js","sourceRoot":"","sources":["../src/getPaginatedCollectionItems.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA0C;AAC1C,iEAAqD;AACrD,uDAAgD;AAEzC,KAAK,UAAU,2BAA2B,CAE/C,UAAgD;IAEhD,MAAM,qBAAqB,GAAG,IAAA,iBAAK,EAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEtD,IAAI,CAAC,qBAAqB,EAAE;QAG1B,IAAI,sBAAK,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;YAC1C,OAAO,UAAU,CAAC,YAAY,CAAC;SAChC;QAED,IAAI,sBAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACnC,OAAO,UAAU,CAAC,KAAK,CAAC;SACzB;QAED,OAAO,EAAE,CAAC;KACX;IAED,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAExE,IACE,CAAC,sBAAK,CAAC,UAAU,CACf,mBAAmB,EACnB,EAAE,CAAC,mBAAmB,CACvB,EACD;QACA,OAAO,EAAE,CAAC;KACX;IAED,MAAM,eAAe,GAA2B,EAAE,CAAC;IAEnD,IAAI,kBAAkB,GAAG,mBAAmB,CAAC;IAE7C,OAAO,kBAAkB,EAAE;QACzB,IAAI,sBAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE;YAClD,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;SACvD;QAED,IAAI,sBAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;YAC3C,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAChD;QAED,MAAM,UAAU,GAAG,IAAA,iBAAK,EAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,CAAC,sBAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YAC7B,MAAM;SACP;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAElD,IACE,CAAC,sBAAK,CAAC,UAAU,CAAoB,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,EACtE;YACA,MAAM;SACP;QAED,kBAAkB,GAAG,QAAQ,CAAC;KAC/B;IAED,OAAO,eAAe,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AA9DD,kEA8DC"}

View File

@ -1,4 +1,4 @@
/// <reference types="node" /> /// <reference types="node" />
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
export declare function getRecipientInboxUrls(this: Core, activity: AP.Activity, actor: AP.Actor, inboxesOnly?: boolean): Promise<URL[]>; import { Core } from '.';
export declare function getRecipientInboxUrls(this: Core, activity: AP.Activity, actor: AP.Actor, inboxesOnly?: boolean): Promise<import("url").URL[]>;

View File

@ -5,30 +5,32 @@ const type_utilities_1 = require("@activity-kit/type-utilities");
const utilities_1 = require("@activity-kit/utilities"); const utilities_1 = require("@activity-kit/utilities");
async function getRecipientInboxUrls(activity, actor, inboxesOnly) { async function getRecipientInboxUrls(activity, actor, inboxesOnly) {
const recipientUrls = await this.getRecipientUrls(activity); const recipientUrls = await this.getRecipientUrls(activity);
const recipientInboxUrls = (await Promise.all(recipientUrls.map(async (recipientUrl) => { const recipientInboxUrls = await Promise.all(recipientUrls.map(async (recipientUrl) => {
try { return await mapRecipientUrl.bind(this)(recipientUrl, actor, inboxesOnly);
if (recipientUrl.toString() === (0, utilities_1.getId)(actor).toString()) { }));
return []; return (0, utilities_1.deduplicateUrls)(recipientInboxUrls.flat().filter(type_utilities_1.guard.isUrl));
}
const foundEntity = await this.fetchEntityById(recipientUrl);
type_utilities_1.assert.isApActor(foundEntity);
if (!inboxesOnly) {
if (foundEntity.endpoints) {
if (foundEntity.endpoints.sharedInbox instanceof URL) {
return [foundEntity.endpoints.sharedInbox];
}
}
}
const inboxId = (0, utilities_1.getId)(foundEntity.inbox);
if (inboxId instanceof URL) {
return [inboxId];
}
}
catch (error) {
return [];
}
}))).flat();
return (0, utilities_1.deduplicateUrls)(recipientInboxUrls);
} }
exports.getRecipientInboxUrls = getRecipientInboxUrls; exports.getRecipientInboxUrls = getRecipientInboxUrls;
async function mapRecipientUrl(recipientUrl, actor, inboxesOnly) {
var _a;
if (recipientUrl.href === ((_a = (0, utilities_1.getId)(actor)) === null || _a === void 0 ? void 0 : _a.href)) {
return [];
}
const foundEntity = await this.fetchEntityById(recipientUrl);
if (!type_utilities_1.guard.isApActor(foundEntity)) {
return [];
}
if (!inboxesOnly) {
if (foundEntity.endpoints) {
if (type_utilities_1.guard.isUrl(foundEntity.endpoints.sharedInbox)) {
return [foundEntity.endpoints.sharedInbox];
}
}
}
const inboxId = (0, utilities_1.getId)(foundEntity.inbox);
if (type_utilities_1.guard.isUrl(inboxId)) {
return [inboxId];
}
return [];
}
//# sourceMappingURL=getRecipientInboxUrls.js.map //# sourceMappingURL=getRecipientInboxUrls.js.map

View File

@ -1 +1 @@
{"version":3,"file":"getRecipientInboxUrls.js","sourceRoot":"","sources":["../src/getRecipientInboxUrls.ts"],"names":[],"mappings":";;;AAEA,iEAAsD;AACtD,uDAAiE;AAE1D,KAAK,UAAU,qBAAqB,CAEzC,QAAqB,EACrB,KAAe,EACf,WAAqB;IAErB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE5D,MAAM,kBAAkB,GAAG,CACzB,MAAM,OAAO,CAAC,GAAG,CACf,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;QACvC,IAAI;YACF,IAAI,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAA,iBAAK,EAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACvD,OAAO,EAAE,CAAC;aACX;YAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAE7D,uBAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAE9B,IAAI,CAAC,WAAW,EAAE;gBAChB,IAAI,WAAW,CAAC,SAAS,EAAE;oBACzB,IAAI,WAAW,CAAC,SAAS,CAAC,WAAW,YAAY,GAAG,EAAE;wBACpD,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;qBAC5C;iBACF;aACF;YAED,MAAM,OAAO,GAAG,IAAA,iBAAK,EAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAEzC,IAAI,OAAO,YAAY,GAAG,EAAE;gBAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;aAClB;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,EAAE,CAAC;SACX;IACH,CAAC,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CAAC;IAET,OAAO,IAAA,2BAAe,EAAC,kBAAkB,CAAC,CAAC;AAC7C,CAAC;AAzCD,sDAyCC"} {"version":3,"file":"getRecipientInboxUrls.js","sourceRoot":"","sources":["../src/getRecipientInboxUrls.ts"],"names":[],"mappings":";;;AACA,iEAAqD;AACrD,uDAAiE;AAI1D,KAAK,UAAU,qBAAqB,CAEzC,QAAqB,EACrB,KAAe,EACf,WAAqB;IAErB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE5D,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;QACvC,OAAO,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,IAAA,2BAAe,EAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,sBAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACxE,CAAC;AAfD,sDAeC;AAED,KAAK,UAAU,eAAe,CAE5B,YAAiB,EACjB,KAAe,EACf,WAAqB;;IAErB,IAAI,YAAY,CAAC,IAAI,MAAK,MAAA,IAAA,iBAAK,EAAC,KAAK,CAAC,0CAAE,IAAI,CAAA,EAAE;QAC5C,OAAO,EAAE,CAAC;KACX;IAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAE7D,IAAI,CAAC,sBAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;QACjC,OAAO,EAAE,CAAC;KACX;IAED,IAAI,CAAC,WAAW,EAAE;QAChB,IAAI,WAAW,CAAC,SAAS,EAAE;YACzB,IAAI,sBAAK,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;gBAClD,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;aAC5C;SACF;KACF;IAED,MAAM,OAAO,GAAG,IAAA,iBAAK,EAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEzC,IAAI,sBAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QACxB,OAAO,CAAC,OAAO,CAAC,CAAC;KAClB;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}

View File

@ -1,95 +1,69 @@
"use strict"; "use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.getRecipientUrls = void 0; exports.getRecipientUrls = void 0;
const AP = __importStar(require("@activity-kit/types"));
const type_utilities_1 = require("@activity-kit/type-utilities"); const type_utilities_1 = require("@activity-kit/type-utilities");
const utilities_1 = require("@activity-kit/utilities"); const utilities_1 = require("@activity-kit/utilities");
async function getRecipientUrls(activity) { async function getRecipientUrls(activity) {
const mentions = ('object' in activity && 'tag' in activity.object const tags = type_utilities_1.guard.isApCoreObject(activity.object) && activity.object.tag
? (0, utilities_1.getArray)(activity.object.tag) ? getArray(activity.object.tag)
: []).filter((entity) => { : [];
try { const mentions = tags.map(utilities_1.getId).filter(type_utilities_1.guard.isUrl);
type_utilities_1.assert.isApType(entity, AP.LinkTypes.MENTION);
return true;
}
catch {
return false;
}
});
const recipients = [ const recipients = [
...(0, utilities_1.getArray)(activity.to), ...getArray(activity.to),
...(0, utilities_1.getArray)(activity.cc), ...getArray(activity.cc),
...(0, utilities_1.getArray)(activity.bto), ...getArray(activity.bto),
...(0, utilities_1.getArray)(activity.bcc), ...getArray(activity.bcc),
...(0, utilities_1.getArray)(activity.audience), ...getArray(activity.audience),
...mentions, ...mentions,
].flat(); ].flat();
const recipientIds = recipients const recipientIds = recipients
.map((recipient) => (0, utilities_1.getId)(recipient)) .map(utilities_1.getId)
.filter((recipientUrl) => `${recipientUrl}` !== utilities_1.PUBLIC_ACTOR); .filter(type_utilities_1.guard.isUrl)
const actorUrls = (await Promise.all(recipientIds.map(async (recipientId) => { .filter((recipientUrl) => recipientUrl.href !== utilities_1.PUBLIC_ACTOR);
const foundRecipient = await this.queryById(recipientId); const actorUrls = await Promise.all(recipientIds.map(getActorIds.bind(this)));
if (!foundRecipient) { return (0, utilities_1.deduplicateUrls)(actorUrls.flat());
return [];
}
try {
type_utilities_1.assert.isApActor(foundRecipient);
const actorUrl = (0, utilities_1.getId)(foundRecipient);
if (actorUrl instanceof URL) {
return [actorUrl];
}
}
catch (error) {
}
try {
type_utilities_1.assert.isApCollection(foundRecipient);
const collectionItems = await this.getPaginatedCollectionItems(foundRecipient);
console.log([collectionItems]);
const actorsInCollection = [];
for (const collectionItem of collectionItems) {
try {
const collectionItemId = (0, utilities_1.getId)(collectionItem);
type_utilities_1.assert.exists(collectionItemId);
const expandedCollectionItem = await this.queryById(collectionItemId);
type_utilities_1.assert.isApActor(expandedCollectionItem);
const actorUrl = (0, utilities_1.getId)(expandedCollectionItem);
if (actorUrl instanceof URL) {
actorsInCollection.push(actorUrl);
}
}
catch (error) {
}
}
return actorsInCollection;
}
catch (error) {
}
return [];
}))).flat();
return (0, utilities_1.deduplicateUrls)(actorUrls);
} }
exports.getRecipientUrls = getRecipientUrls; exports.getRecipientUrls = getRecipientUrls;
async function getActorIds(recipientId) {
const foundRecipient = await this.queryById(recipientId);
if (!foundRecipient) {
return [];
}
if (type_utilities_1.guard.isApActor(foundRecipient)) {
const actorUrl = (0, utilities_1.getId)(foundRecipient);
if (type_utilities_1.guard.isUrl(actorUrl)) {
return [actorUrl];
}
}
if (type_utilities_1.guard.isApCollection(foundRecipient)) {
const collectionItems = await this.getPaginatedCollectionItems(foundRecipient);
const actorsInCollection = [];
for (const collectionItem of collectionItems) {
const collectionItemId = (0, utilities_1.getId)(collectionItem);
if (!type_utilities_1.guard.isUrl(collectionItemId)) {
continue;
}
const expandedCollectionItem = await this.queryById(collectionItemId);
if (!type_utilities_1.guard.isApActor(expandedCollectionItem)) {
continue;
}
const actorUrl = (0, utilities_1.getId)(expandedCollectionItem);
if (!type_utilities_1.guard.isUrl(actorUrl)) {
continue;
}
actorsInCollection.push(actorUrl);
}
return actorsInCollection;
}
return [];
}
function getArray(items) {
if (!items) {
return [];
}
const array = type_utilities_1.guard.isArray(items) ? items : [items];
return array.filter((item) => {
return type_utilities_1.guard.isApEntity(item) || type_utilities_1.guard.isUrl(item);
});
}
//# sourceMappingURL=getRecipientUrls.js.map //# sourceMappingURL=getRecipientUrls.js.map

View File

@ -1 +1 @@
{"version":3,"file":"getRecipientUrls.js","sourceRoot":"","sources":["../src/getRecipientUrls.ts"],"names":[],"mappings":"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"} {"version":3,"file":"getRecipientUrls.js","sourceRoot":"","sources":["../src/getRecipientUrls.ts"],"names":[],"mappings":"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"}

View File

@ -1,3 +1,3 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { Core } from '.';
export declare const getStreamByName: (this: Core, actor: AP.Actor, name: string) => Promise<AP.EitherCollection | null>; export declare const getStreamByName: (this: Core, actor: AP.Actor, name: string) => Promise<AP.EitherCollection | null>;

View File

@ -4,7 +4,9 @@ exports.getStreamByName = void 0;
const type_utilities_1 = require("@activity-kit/type-utilities"); const type_utilities_1 = require("@activity-kit/type-utilities");
const utilities_1 = require("@activity-kit/utilities"); const utilities_1 = require("@activity-kit/utilities");
const getStreamByName = async function (actor, name) { const getStreamByName = async function (actor, name) {
type_utilities_1.assert.isArray(actor.streams); if (!actor.streams) {
return null;
}
const streams = await Promise.all(actor.streams.map(async (stream) => { const streams = await Promise.all(actor.streams.map(async (stream) => {
const streamId = (0, utilities_1.getId)(stream); const streamId = (0, utilities_1.getId)(stream);
if (!streamId) { if (!streamId) {
@ -13,15 +15,11 @@ const getStreamByName = async function (actor, name) {
return await this.queryById(streamId); return await this.queryById(streamId);
})); }));
for (const stream of streams) { for (const stream of streams) {
try { if (type_utilities_1.guard.isApCollection(stream)) {
type_utilities_1.assert.isApCollection(stream);
if (stream.name === name) { if (stream.name === name) {
return stream; return stream;
} }
} }
catch (error) {
break;
}
} }
return null; return null;
}; };

View File

@ -1 +1 @@
{"version":3,"file":"getStreamByName.js","sourceRoot":"","sources":["../src/getStreamByName.ts"],"names":[],"mappings":";;;AAEA,iEAAsD;AACtD,uDAAgD;AAEzC,MAAM,eAAe,GAAG,KAAK,WAElC,KAAe,EACf,IAAY;IAEZ,uBAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAuB,EAAE,EAAE;QAClD,MAAM,QAAQ,GAAG,IAAA,iBAAK,EAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,IAAI,CAAC;SACb;QAED,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,CACH,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI;YACF,uBAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAE9B,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,OAAO,MAAM,CAAC;aACf;SACF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM;SACP;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAhCW,QAAA,eAAe,mBAgC1B"} {"version":3,"file":"getStreamByName.js","sourceRoot":"","sources":["../src/getStreamByName.ts"],"names":[],"mappings":";;;AACA,iEAAqD;AACrD,uDAAgD;AAIzC,MAAM,eAAe,GAAG,KAAK,WAElC,KAAe,EACf,IAAY;IAEZ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAA0B,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAG,IAAA,iBAAK,EAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,IAAI,CAAC;SACb;QAED,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,CACH,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,sBAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;YAChC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,OAAO,MAAM,CAAC;aACf;SACF;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA9BW,QAAA,eAAe,mBA8B1B"}

View File

@ -20,32 +20,25 @@ const getRecipientUrls_1 = require("./getRecipientUrls");
const getRecipientInboxUrls_1 = require("./getRecipientInboxUrls"); const getRecipientInboxUrls_1 = require("./getRecipientInboxUrls");
const signAndSendToForeignActorInbox_1 = require("./signAndSendToForeignActorInbox"); const signAndSendToForeignActorInbox_1 = require("./signAndSendToForeignActorInbox");
class Core { class Core {
fetch;
initializeDb;
findAll;
findOne;
findStringIdByValue;
findStringValueById;
insertItem;
removeItem;
insertOrderedItem;
removeOrderedItem;
saveEntity;
saveString;
getTokenByUserId;
createUser;
getUserIdByToken;
authenticatePassword;
generateKeyPair;
getHttpSignature;
hashPassword;
randomBytes;
upload;
getGuid;
constructor(adapters) { constructor(adapters) {
this.fetch = adapters.fetch ?? isomorphic_fetch_1.default; var _a;
this.findEntityById = findEntityById_1.findEntityById;
this.getActorByUserId = getActorByUserId_1.getActorByUserId;
this.getPrivateKey = getPrivateKey_1.getPrivateKey;
this.getStreamByName = getStreamByName_1.getStreamByName;
this.fetchEntityById = fetchEntityById_1.fetchEntityById;
this.queryById = queryById_1.queryById;
this.expandEntity = expandEntity_1.expandEntity;
this.getCollectionItems = getCollectionItems_1.getCollectionItems;
this.getPaginatedCollectionItems = getPaginatedCollectionItems_1.getPaginatedCollectionItems;
this.expandCollection = expandCollection_1.expandCollection;
this.getRecipientInboxUrls = getRecipientInboxUrls_1.getRecipientInboxUrls;
this.getRecipientUrls = getRecipientUrls_1.getRecipientUrls;
this.broadcast = broadcast_1.broadcast;
this.signAndSendToForeignActorInbox = signAndSendToForeignActorInbox_1.signAndSendToForeignActorInbox;
this.fetch = (_a = adapters.fetch) !== null && _a !== void 0 ? _a : isomorphic_fetch_1.default;
if (adapters.db.initializeDb) { if (adapters.db.initializeDb) {
this.initializeDb = async () => await adapters.db.initializeDb?.(); this.initializeDb = async () => { var _a, _b; return await ((_b = (_a = adapters.db).initializeDb) === null || _b === void 0 ? void 0 : _b.call(_a)); };
} }
this.findAll = async (collection, matchingObject) => await adapters.db.findAll(collection, matchingObject); this.findAll = async (collection, matchingObject) => await adapters.db.findAll(collection, matchingObject);
this.findOne = async (collection, matchingObject, options) => await adapters.db.findOne(collection, matchingObject, options); this.findOne = async (collection, matchingObject, options) => await adapters.db.findOne(collection, matchingObject, options);
@ -72,20 +65,6 @@ class Core {
this.authenticatePassword = async (email, password) => await adapters.auth.authenticatePassword(email, password); this.authenticatePassword = async (email, password) => await adapters.auth.authenticatePassword(email, password);
this.upload = async (file) => await adapters.storage.upload(file); this.upload = async (file) => await adapters.storage.upload(file);
} }
findEntityById = findEntityById_1.findEntityById;
getActorByUserId = getActorByUserId_1.getActorByUserId;
getPrivateKey = getPrivateKey_1.getPrivateKey;
getStreamByName = getStreamByName_1.getStreamByName;
fetchEntityById = fetchEntityById_1.fetchEntityById;
queryById = queryById_1.queryById;
expandEntity = expandEntity_1.expandEntity;
getCollectionItems = getCollectionItems_1.getCollectionItems;
getPaginatedCollectionItems = getPaginatedCollectionItems_1.getPaginatedCollectionItems;
expandCollection = expandCollection_1.expandCollection;
getRecipientInboxUrls = getRecipientInboxUrls_1.getRecipientInboxUrls;
getRecipientUrls = getRecipientUrls_1.getRecipientUrls;
broadcast = broadcast_1.broadcast;
signAndSendToForeignActorInbox = signAndSendToForeignActorInbox_1.signAndSendToForeignActorInbox;
} }
exports.Core = Core; exports.Core = Core;
var adapters_1 = require("./adapters"); var adapters_1 = require("./adapters");

View File

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}

View File

@ -34,7 +34,10 @@ async function queryById(id) {
const fetchedEntity = await this.fetchEntityById(id); const fetchedEntity = await this.fetchEntityById(id);
if (!fetchedEntity || if (!fetchedEntity ||
type_utilities_1.guard.isApType(fetchedEntity, AP.ExtendedObjectTypes.TOMBSTONE)) { type_utilities_1.guard.isApType(fetchedEntity, AP.ExtendedObjectTypes.TOMBSTONE)) {
return this.findEntityById(id); const foundEntity = await this.findEntityById(id);
if (foundEntity) {
return foundEntity;
}
} }
return fetchedEntity; return fetchedEntity;
} }

View File

@ -1 +1 @@
{"version":3,"file":"queryById.js","sourceRoot":"","sources":["../src/queryById.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA0C;AAC1C,iEAAqD;AACrD,uDAAkD;AAE3C,KAAK,UAAU,SAAS,CAE7B,EAAO;IAEP,IAAI,IAAA,mBAAO,EAAC,EAAE,CAAC,EAAE;QACf,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;KACtC;IAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAErD,IACE,CAAC,aAAa;QACd,sBAAK,CAAC,QAAQ,CACZ,aAAa,EACb,EAAE,CAAC,mBAAmB,CAAC,SAAS,CACjC,EACD;QACA,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;KAChC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AArBD,8BAqBC"} {"version":3,"file":"queryById.js","sourceRoot":"","sources":["../src/queryById.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA0C;AAC1C,iEAAqD;AACrD,uDAAkD;AAE3C,KAAK,UAAU,SAAS,CAE7B,EAAO;IAEP,IAAI,IAAA,mBAAO,EAAC,EAAE,CAAC,EAAE;QACf,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;KACtC;IAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAErD,IACE,CAAC,aAAa;QACd,sBAAK,CAAC,QAAQ,CACZ,aAAa,EACb,EAAE,CAAC,mBAAmB,CAAC,SAAS,CACjC,EACD;QACA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAElD,IAAI,WAAW,EAAE;YACf,OAAO,WAAW,CAAC;SACpB;KACF;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAzBD,8BAyBC"}

View File

@ -1,14 +1,17 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.signAndSendToForeignActorInbox = void 0; exports.signAndSendToForeignActorInbox = void 0;
const type_utilities_1 = require("@activity-kit/type-utilities");
const utilities_1 = require("@activity-kit/utilities"); const utilities_1 = require("@activity-kit/utilities");
async function signAndSendToForeignActorInbox(foreignActorInbox, actor, activity) { async function signAndSendToForeignActorInbox(foreignActorInbox, actor, activity) {
console.log('SENDING TO...', foreignActorInbox.toString()); console.log('SENDING TO...', foreignActorInbox.href);
const convertedActivity = (0, utilities_1.convertEntityToJson)(activity); const actorId = (0, utilities_1.getId)(actor);
const { dateHeader, digestHeader, signatureHeader } = await this.getHttpSignature(foreignActorInbox, actor.id, await this.getPrivateKey(actor), convertedActivity); type_utilities_1.assert.exists(actorId);
return await this.fetch(foreignActorInbox.toString(), { const plainActivity = (0, utilities_1.convertEntityToJson)(activity);
const { dateHeader, digestHeader, signatureHeader } = await this.getHttpSignature(foreignActorInbox, actorId, await this.getPrivateKey(actor), plainActivity);
return await this.fetch(foreignActorInbox.href, {
method: 'post', method: 'post',
body: JSON.stringify(convertedActivity), body: JSON.stringify(plainActivity),
headers: { headers: {
[utilities_1.CONTENT_TYPE_HEADER]: utilities_1.ACTIVITYSTREAMS_CONTENT_TYPE, [utilities_1.CONTENT_TYPE_HEADER]: utilities_1.ACTIVITYSTREAMS_CONTENT_TYPE,
[utilities_1.ACCEPT_HEADER]: utilities_1.ACTIVITYSTREAMS_CONTENT_TYPE, [utilities_1.ACCEPT_HEADER]: utilities_1.ACTIVITYSTREAMS_CONTENT_TYPE,

View File

@ -1 +1 @@
{"version":3,"file":"signAndSendToForeignActorInbox.js","sourceRoot":"","sources":["../src/signAndSendToForeignActorInbox.ts"],"names":[],"mappings":";;;AACA,uDAKiC;AAG1B,KAAK,UAAU,8BAA8B,CAElD,iBAAsB,EACtB,KAAe,EACf,QAAqB;IAErB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3D,MAAM,iBAAiB,GAAG,IAAA,+BAAmB,EAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,GACjD,MAAM,IAAI,CAAC,gBAAgB,CACzB,iBAAiB,EACjB,KAAK,CAAC,EAAE,EACR,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/B,iBAAiB,CAClB,CAAC;IAGJ,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE;QACpD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;QACvC,OAAO,EAAE;YACP,CAAC,+BAAmB,CAAC,EAAE,wCAA4B;YACnD,CAAC,yBAAa,CAAC,EAAE,wCAA4B;YAC7C,IAAI,EAAE,iBAAiB,CAAC,QAAQ;YAChC,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,eAAe;SAC3B;KACF,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAhCD,wEAgCC"} {"version":3,"file":"signAndSendToForeignActorInbox.js","sourceRoot":"","sources":["../src/signAndSendToForeignActorInbox.ts"],"names":[],"mappings":";;;AACA,iEAAsD;AACtD,uDAMiC;AAI1B,KAAK,UAAU,8BAA8B,CAElD,iBAAsB,EACtB,KAAe,EACf,QAAqB;IAErB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAErD,MAAM,OAAO,GAAG,IAAA,iBAAK,EAAC,KAAK,CAAC,CAAC;IAE7B,uBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvB,MAAM,aAAa,GAAG,IAAA,+BAAmB,EAAC,QAAQ,CAAC,CAAC;IAEpD,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,GACjD,MAAM,IAAI,CAAC,gBAAgB,CACzB,iBAAiB,EACjB,OAAO,EACP,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/B,aAAa,CACd,CAAC;IAGJ,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACnC,OAAO,EAAE;YACP,CAAC,+BAAmB,CAAC,EAAE,wCAA4B;YACnD,CAAC,yBAAa,CAAC,EAAE,wCAA4B;YAC7C,IAAI,EAAE,iBAAiB,CAAC,QAAQ;YAChC,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,eAAe;SACD;KAC5B,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AArCD,wEAqCC"}

View File

@ -21,8 +21,7 @@
}, },
"scripts": { "scripts": {
"build": "node .build.js", "build": "node .build.js",
"format": "prettier --config .prettierrc \"**/*.ts\" --write", "build:bundle": "tsc-bundle tsconfig.json --outFile dist/bundle.js"
"lint": "eslint src/**/*.ts"
}, },
"bugs": { "bugs": {
"url": "https://github.com/michaelcpuckett/activitypub-core/issues" "url": "https://github.com/michaelcpuckett/activitypub-core/issues"
@ -35,11 +34,13 @@
}, },
"devDependencies": { "devDependencies": {
"@types/formidable": "^2.0.5", "@types/formidable": "^2.0.5",
"@types/isomorphic-fetch": "^0.0.36",
"@typescript-eslint/eslint-plugin": "^5.40.0", "@typescript-eslint/eslint-plugin": "^5.40.0",
"@typescript-eslint/parser": "^5.40.0", "@typescript-eslint/parser": "^5.40.0",
"eslint": "^8.25.0", "eslint": "^8.25.0",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"typescript": "^5.0.4" "typescript": "^5.0.4",
"typescript-bundle": "^1.0.18"
}, },
"gitHead": "94cd24962ff1406bc137c1ac244f960286d6cac0" "gitHead": "94cd24962ff1406bc137c1ac244f960286d6cac0"
} }

View File

@ -43,12 +43,12 @@ export type CoreLibrary = AuthAdapter &
queryById: (this: CoreLibrary, id: URL) => Promise<AP.Entity | null>; queryById: (this: CoreLibrary, id: URL) => Promise<AP.Entity | null>;
expandEntity: ( expandEntity: (
this: CoreLibrary, this: CoreLibrary,
originalEntity: AP.Entity, entity: AP.Entity,
) => Promise<AP.Entity>; ) => Promise<AP.Entity | null>;
getCollectionItems: ( getCollectionItems: (
this: CoreLibrary, this: CoreLibrary,
entity: AP.Collection | AP.OrderedCollection, entity: AP.Collection | AP.OrderedCollection,
) => Promise<AP.EntityReference[]>; ) => AP.EntityReference[];
getPaginatedCollectionItems: ( getPaginatedCollectionItems: (
this: CoreLibrary, this: CoreLibrary,
collection: AP.Collection | AP.OrderedCollection, collection: AP.Collection | AP.OrderedCollection,

View File

@ -1,18 +1,24 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { assert } from '@activity-kit/type-utilities';
import { applyContext, cleanProps } from '@activity-kit/utilities'; import { applyContext, cleanProps } from '@activity-kit/utilities';
import { CoreLibrary } from './adapters';
/** /**
* [x] Removes the `bto` and `bcc` properties from Objects before delivery * [x] Removes the `bto` and `bcc` properties from Objects before delivery
* (`outbox:removes-bto-and-bcc`) *MUST* * (`outbox:removes-bto-and-bcc`) *MUST*
*/ */
export async function broadcast( export async function broadcast(
this: Core, this: CoreLibrary,
activity: AP.Activity, activity: AP.Activity,
actor: AP.Actor, actor: AP.Actor,
): Promise<unknown> { ): Promise<unknown> {
const publicActivity = cleanProps(applyContext<AP.Activity>(activity)); const entity = applyContext<AP.Entity>(activity);
assert.isApActivity(entity);
const publicActivity = cleanProps(entity);
if (!('actor' in publicActivity)) { if (!('actor' in publicActivity)) {
throw new Error('Not an activity?'); throw new Error('Not an activity?');
@ -20,10 +26,6 @@ export async function broadcast(
const recipients = await this.getRecipientInboxUrls(activity, actor); const recipients = await this.getRecipientInboxUrls(activity, actor);
console.log({
recipients,
});
const results = await Promise.all( const results = await Promise.all(
recipients.map(async (recipient) => { recipients.map(async (recipient) => {
return await this.signAndSendToForeignActorInbox( return await this.signAndSendToForeignActorInbox(

View File

@ -1,52 +1,41 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { guard } from '@activity-kit/type-utilities'; import { guard } from '@activity-kit/type-utilities';
import { getId } from '@activity-kit/utilities';
import { CoreLibrary } from './adapters';
export async function expandCollection( export async function expandCollection(
this: Core, this: CoreLibrary,
collection: AP.EitherCollectionReference, collection: AP.EitherCollectionReference,
): Promise<null | AP.EitherCollection> { ): Promise<AP.EitherCollection | null> {
const id = getId(collection); if (!guard.isApCollection(collection)) {
if (!id) {
return null; return null;
} }
const foundEntity = await this.queryById(id); const items = this.getCollectionItems(collection);
if (!foundEntity) { const expandedItems = await Promise.all(
return null; items.map(async (item) => {
} if (guard.isApEntity(item)) {
return item;
}
if (guard.isTypeOf<AP.EitherCollection>(foundEntity, AP.CollectionTypes)) { return (await this.queryById(item)) ?? item;
const items = await this.getCollectionItems(foundEntity); }),
);
if (!items) { if (
return foundEntity; guard.isArray(collection.orderedItems) &&
} collection.orderedItems.length
) {
if ( return {
Array.isArray(foundEntity.type) ...collection,
? foundEntity.type.includes(AP.CollectionTypes.ORDERED_COLLECTION) orderedItems: expandedItems,
: foundEntity.type === AP.CollectionTypes.ORDERED_COLLECTION };
) { } else if (guard.isArray(collection.items) && collection.items.length) {
return { return {
...foundEntity, ...collection,
orderedItems: items, items: expandedItems,
}; };
}
if (
Array.isArray(foundEntity.type)
? foundEntity.type.includes(AP.CollectionTypes.COLLECTION)
: foundEntity.type === AP.CollectionTypes.COLLECTION
) {
return {
...foundEntity,
items,
};
}
} }
return null; return null;

View File

@ -1,52 +1,65 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { guard } from '@activity-kit/type-utilities'; import { cast, guard } from '@activity-kit/type-utilities';
import { PUBLIC_ACTOR } from '@activity-kit/utilities';
import { CoreLibrary } from './adapters';
const selfReferentialKeys = [
'@context',
'_id',
'id',
'type',
'url',
'href',
'publicKey',
];
export async function expandEntity( export async function expandEntity(
this: Core, this: CoreLibrary,
entity: AP.Entity, entity: AP.Entity,
): Promise<AP.Entity | null> { ): Promise<AP.Entity | null> {
const expandEntry = async (key: string, value: unknown) => { return cast.isApEntity(await expandObject.bind(this)(entity)) ?? null;
if ( }
key === '_id' ||
key === 'id' ||
key === 'url' ||
key === 'type' ||
key === '@context' ||
key === 'publicKey'
) {
return value;
} else if (value instanceof URL) {
if (value.toString() === PUBLIC_ACTOR) {
return value;
} else {
try {
const foundEntity = await this.queryById(value);
return foundEntity ?? value;
} catch (error) {
return value;
}
}
} else if (Array.isArray(value)) {
return await Promise.all(
value.map(async (item) => await expandEntry('', item)),
);
} else {
return value;
}
};
async function expandObject(
this: CoreLibrary,
object: Record<string, unknown>,
) {
const expanded: Record<string, unknown> = {}; const expanded: Record<string, unknown> = {};
for (const [key, value] of Object.entries(entity)) { for (const [key, value] of Object.entries(object)) {
expanded[key] = await expandEntry(key, value); expanded[key] = await expandEntry.bind(this)([key, value]);
} }
if (guard.isTypeOf<AP.Entity>(expanded, AP.AllTypes)) { return expanded;
return expanded; }
}
async function expandEntry(
return null; this: CoreLibrary,
entry: [key: string, value: unknown],
): Promise<unknown> {
const [key, value] = entry;
if (selfReferentialKeys.includes(key)) {
return value;
}
if (guard.isArray(value)) {
return await Promise.all(
value.map(async (item) => await expandEntry.bind(this)([key, item])),
);
}
if (guard.isPlainObject(value)) {
return await expandObject.bind(this)(value);
}
if (guard.isUrl(value)) {
const foundEntity = cast.isApEntity(await this.queryById(value));
if (foundEntity) {
return foundEntity;
}
}
return value;
} }

View File

@ -1,6 +1,5 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { assert } from '@activity-kit/type-utilities'; import { cast, assert } from '@activity-kit/type-utilities';
import { import {
ACCEPT_HEADER, ACCEPT_HEADER,
ACTIVITYSTREAMS_CONTENT_TYPE, ACTIVITYSTREAMS_CONTENT_TYPE,
@ -9,97 +8,45 @@ import {
LINKED_DATA_CONTENT_TYPE, LINKED_DATA_CONTENT_TYPE,
JSON_CONTENT_TYPE, JSON_CONTENT_TYPE,
getId, getId,
SERVER_ACTOR_USERNAME,
ACTIVITYSTREAMS_CONTEXT,
} from '@activity-kit/utilities'; } from '@activity-kit/utilities';
import { CoreLibrary } from './adapters';
export async function fetchEntityById( export async function fetchEntityById(
this: Core, this: CoreLibrary,
id: URL, id: URL,
): Promise<AP.Entity | null> { ): Promise<AP.Entity | null> {
const getContentType = async (url: URL): Promise<string | null> => { const isJsonLdContentType = await getIsJsonLdContentType.bind(this)(id);
const response = await this.fetch(url.toString(), { method: 'HEAD' });
return response.headers.get('Content-Type');
};
const isJsonLdContentType = async (url: URL): Promise<boolean> => { if (!isJsonLdContentType) {
const contentType = await getContentType(url);
if (!contentType) {
return false;
}
return (
contentType.includes(ACTIVITYSTREAMS_CONTENT_TYPE) ||
contentType.includes(LINKED_DATA_CONTENT_TYPE) ||
contentType.includes(JSON_CONTENT_TYPE)
);
};
if (!(await isJsonLdContentType(id))) {
return null; return null;
} }
// Send HTTP Signature for Mastodon in secure mode. const botActor = await getBotActor.bind(this)();
const actor = await this.findOne('entity', {
preferredUsername: 'bot',
});
assert.isApActor(actor); assert.exists(botActor);
const actorId = getId(actor); const botActorId = getId(botActor);
assert.exists(actorId); assert.exists(botActorId);
const { dateHeader, signatureHeader } = await this.getHttpSignature( const { dateHeader, signatureHeader } = await this.getHttpSignature(
id, id,
actorId, botActorId,
await this.getPrivateKey(actor), await this.getPrivateKey(botActor),
); );
const controller = new AbortController(); const headers = {
const timeout = setTimeout(() => controller.abort(), 1250); date: dateHeader,
signature: signatureHeader,
};
// GET requests (eg. to th e inbox) MUST be made with an Accept header of const fetchedJson = await fetchJsonByUrl.bind(this)(id, headers);
// `application/ld+json; profile="https://www.w3.org/ns/activitystreams"`
const fetchedEntity: Record<string, unknown> | null = await this.fetch(
id.toString(),
{
signal: controller.signal,
headers: {
[ACCEPT_HEADER]: ACTIVITYSTREAMS_CONTENT_TYPE,
date: dateHeader,
signature: signatureHeader,
},
},
)
.then(async (response) => {
clearTimeout(timeout);
if (response.status === 200) {
return await response.json();
} else if (response.status === 410) {
const data = await response.json();
if ('@context' in data) { if (fetchedJson) {
console.log('Likely a Tombstone?'); const convertedEntity = convertJsonToEntity(fetchedJson);
return data;
} else {
throw new Error('Not found, but not a tombstone.');
}
} else {
console.log(
'Found but not 200 or 404.',
response.status,
id.toString(),
);
throw new Error(`Unexpected status code ${response.status}`);
}
})
.catch((error: unknown) => {
clearTimeout(timeout);
console.log(String(error));
return null;
});
if (fetchedEntity) {
const convertedEntity = convertJsonToEntity(fetchedEntity);
if (convertedEntity) { if (convertedEntity) {
const entity = compressEntity(convertedEntity); const entity = compressEntity(convertedEntity);
@ -113,3 +60,100 @@ export async function fetchEntityById(
return null; return null;
} }
async function fetchJsonByUrl(
this: CoreLibrary,
url: URL,
headers: Record<string, string>,
): Promise<Record<string, unknown> | null> {
type Response = Awaited<ReturnType<(typeof this)['fetch']>>;
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 1250);
const config = {
signal: controller.signal,
headers: {
...headers,
// GET requests (eg. to the inbox) MUST be made with an Accept header of
// `application/ld+json; profile="https://www.w3.org/ns/activitystreams"`
[ACCEPT_HEADER]: ACTIVITYSTREAMS_CONTENT_TYPE,
},
};
async function handleResponse(response: Response) {
clearTimeout(timeout);
const data = await response.json();
if (response.status === 200) {
return data;
}
if (response.status === 400 || response.status === 410) {
if ('@context' in data) {
// Likely a tombstone
return data;
} else {
// Return a tombstone
return {
'@context': ACTIVITYSTREAMS_CONTEXT,
type: AP.ExtendedObjectTypes.TOMBSTONE,
id: url.href,
url: url.href,
};
}
}
if (response.status >= 500) {
console.log('Server error.', response.status, url.href);
return null;
}
console.log('Unexpected status code.', response.status, url.href);
return data;
}
async function handleError(error: Error) {
clearTimeout(timeout);
console.log(`${error}`);
return null;
}
return await this.fetch(url.href, config)
.then(handleResponse)
.catch(handleError);
}
async function getContentType(
this: CoreLibrary,
url: URL,
): Promise<string | null> {
const { headers } = await this.fetch(url.toString(), { method: 'HEAD' });
return headers.get('Content-Type');
}
async function getIsJsonLdContentType(
this: CoreLibrary,
url: URL,
): Promise<boolean> {
const contentType = await getContentType.bind(this)(url);
if (!contentType) {
return false;
}
return (
contentType.includes(ACTIVITYSTREAMS_CONTENT_TYPE) ||
contentType.includes(LINKED_DATA_CONTENT_TYPE) ||
contentType.includes(JSON_CONTENT_TYPE)
);
}
async function getBotActor(this: CoreLibrary) {
const botActor = await this.findOne('entity', {
preferredUsername: SERVER_ACTOR_USERNAME,
});
return cast.isApActor(botActor) ?? null;
}

View File

@ -1,12 +1,13 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { getCollectionNameByUrl } from '@activity-kit/utilities'; import { getCollectionNameByUrl } from '@activity-kit/utilities';
import { CoreLibrary } from './adapters';
export async function findEntityById( export async function findEntityById(
this: Core, this: CoreLibrary,
id: URL, id: URL,
): Promise<AP.Entity | null> { ): Promise<AP.Entity | null> {
const collectionName = getCollectionNameByUrl(id); const collectionName = getCollectionNameByUrl(id);
return await this.findOne(collectionName, { id: id.toString() }); return await this.findOne(collectionName, { id: id.href });
} }

View File

@ -1,21 +1,19 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { guard } from '@activity-kit/type-utilities';
import { CoreLibrary } from './adapters';
export async function getActorByUserId( export async function getActorByUserId(
this: Core, this: CoreLibrary,
userId: string, userId: string,
): Promise<AP.Actor | null> { ): Promise<AP.Actor | null> {
if (!userId) {
return null;
}
const preferredUsername = await this.findStringValueById('username', userId); const preferredUsername = await this.findStringValueById('username', userId);
const user = await this.findOne('entity', { preferredUsername }); const user = await this.findOne('entity', { preferredUsername });
if (user && 'preferredUsername' in user) { if (!guard.isApActor(user)) {
return user; return null;
} }
return null; return user;
} }

View File

@ -1,45 +1,27 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { assert } from '@activity-kit/type-utilities'; import { guard } from '@activity-kit/type-utilities';
import { getId } from '@activity-kit/utilities';
export async function getCollectionItems( import { CoreLibrary } from './adapters';
this: Core,
export function getCollectionItems(
this: CoreLibrary,
entity: AP.Collection | AP.OrderedCollection, entity: AP.Collection | AP.OrderedCollection,
): Promise<AP.EntityReference[]> { ): AP.EntityReference[] {
try { const collectionItems: AP.EntityReference[] = [];
assert.isApCollection(entity);
const collectionItems = entity.orderedItems || entity.items; if (guard.isArray(entity.orderedItems) && entity.orderedItems.length) {
const orderedItems = entity.orderedItems.filter((item) => {
return guard.isApEntity(item) || guard.isUrl(item);
});
if (!Array.isArray(collectionItems)) { collectionItems.push(...orderedItems);
return []; } else if (guard.isArray(entity.items) && entity.items.length) {
} const items = entity.items.filter((item) => {
return guard.isApEntity(item) || guard.isUrl(item);
});
const result: AP.EntityReference[] = []; collectionItems.push(...items);
for (const item of collectionItems) {
if (item instanceof URL) {
const foundItem = await this.queryById(item);
result.push(
foundItem
? await this.expandEntity(foundItem)
: {
id: item,
type: AP.CoreObjectTypes.TOMBSTONE,
content: 'Not found',
},
);
} else if (!Array.isArray(item)) {
const foundItem = await this.queryById(getId(item));
result.push(foundItem ?? item);
}
}
return result;
} catch (error) {
return [];
} }
return collectionItems;
} }

View File

@ -1,76 +1,69 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { assert } from '@activity-kit/type-utilities'; import { guard } from '@activity-kit/type-utilities';
import { getId } from '@activity-kit/utilities'; import { getId } from '@activity-kit/utilities';
import { CoreLibrary } from './adapters';
export async function getPaginatedCollectionItems( export async function getPaginatedCollectionItems(
this: Core, this: CoreLibrary,
collection: AP.Collection | AP.OrderedCollection, collection: AP.Collection | AP.OrderedCollection,
): Promise<AP.EntityReference[]> { ): Promise<AP.EntityReference[]> {
const collectionItems: AP.EntityReference[][] = []; const firstCollectionPageId = getId(collection.first);
try { if (!firstCollectionPageId) {
assert.isApCollection(collection); // TODO .getArray()
const firstCollectionPageId = getId(collection.first); if (guard.isArray(collection.orderedItems)) {
return collection.orderedItems;
if (firstCollectionPageId) {
const firstCollectionPage = await this.queryById(firstCollectionPageId);
try {
assert.isApTypeOf<AP.EitherCollectionPage>(
firstCollectionPage,
AP.CollectionPageTypes,
);
let nextCollectionPage: AP.EitherCollectionPage | null =
firstCollectionPage;
while (nextCollectionPage) {
try {
assert.isApTypeOf<AP.EitherCollectionPage>(
nextCollectionPage,
AP.CollectionPageTypes,
);
const collectionPageItems =
nextCollectionPage.orderedItems || nextCollectionPage.items;
assert.isArray(collectionPageItems);
collectionItems.push(collectionPageItems);
const nextCollectionPageId = getId(nextCollectionPage.next);
assert.exists(nextCollectionPageId);
const potentialNextCollectionPage = await this.queryById(
nextCollectionPageId,
);
assert.isApTypeOf<AP.EitherCollectionPage>(
potentialNextCollectionPage,
AP.CollectionPageTypes,
);
nextCollectionPage = potentialNextCollectionPage;
} catch (error) {
nextCollectionPage = null;
}
}
} catch (error) {}
} else {
if (Array.isArray(collection.orderedItems)) {
collectionItems.push(collection.orderedItems);
} else if (Array.isArray(collection.items)) {
collectionItems.push(collection.items);
}
} }
return collectionItems.flat(); if (guard.isArray(collection.items)) {
} catch (error) { return collection.items;
// Not a Collection. }
return []; return [];
} }
const firstCollectionPage = await this.queryById(firstCollectionPageId);
if (
!guard.isApTypeOf<AP.CollectionPage>(
firstCollectionPage,
AP.CollectionPageTypes,
)
) {
return [];
}
const collectionItems: AP.EntityReference[][] = [];
let nextCollectionPage = firstCollectionPage;
while (nextCollectionPage) {
if (guard.isArray(nextCollectionPage.orderedItems)) {
collectionItems.push(nextCollectionPage.orderedItems);
}
if (guard.isArray(nextCollectionPage.items)) {
collectionItems.push(nextCollectionPage.items);
}
const nextPageId = getId(nextCollectionPage.next);
if (!guard.exists(nextPageId)) {
break;
}
const nextPage = await this.queryById(nextPageId);
if (
!guard.isApTypeOf<AP.CollectionPage>(nextPage, AP.CollectionPageTypes)
) {
break;
}
nextCollectionPage = nextPage;
}
return collectionItems.flat();
} }

View File

@ -1,7 +1,8 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
export async function getPrivateKey(this: Core, actor: AP.Actor) { import { CoreLibrary } from './adapters';
export async function getPrivateKey(this: CoreLibrary, actor: AP.Actor) {
if (!actor.preferredUsername) { if (!actor.preferredUsername) {
throw new Error('Actor has no `preferredUsername`.'); throw new Error('Actor has no `preferredUsername`.');
} }

View File

@ -1,47 +1,55 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { assert } from '@activity-kit/type-utilities'; import { guard } from '@activity-kit/type-utilities';
import { deduplicateUrls, getId } from '@activity-kit/utilities'; import { deduplicateUrls, getId } from '@activity-kit/utilities';
import { CoreLibrary } from './adapters';
export async function getRecipientInboxUrls( export async function getRecipientInboxUrls(
this: Core, this: CoreLibrary,
activity: AP.Activity, activity: AP.Activity,
actor: AP.Actor, actor: AP.Actor,
inboxesOnly?: boolean, inboxesOnly?: boolean,
): Promise<URL[]> { ) {
const recipientUrls = await this.getRecipientUrls(activity); const recipientUrls = await this.getRecipientUrls(activity);
const recipientInboxUrls = ( const recipientInboxUrls = await Promise.all(
await Promise.all( recipientUrls.map(async (recipientUrl) => {
recipientUrls.map(async (recipientUrl) => { return await mapRecipientUrl.bind(this)(recipientUrl, actor, inboxesOnly);
try { }),
if (recipientUrl.toString() === getId(actor).toString()) { );
return [];
}
const foundEntity = await this.fetchEntityById(recipientUrl); return deduplicateUrls(recipientInboxUrls.flat().filter(guard.isUrl));
}
assert.isApActor(foundEntity);
async function mapRecipientUrl(
if (!inboxesOnly) { this: CoreLibrary,
if (foundEntity.endpoints) { recipientUrl: URL,
if (foundEntity.endpoints.sharedInbox instanceof URL) { actor: AP.Actor,
return [foundEntity.endpoints.sharedInbox]; inboxesOnly?: boolean,
} ) {
} if (recipientUrl.href === getId(actor)?.href) {
} return [];
}
const inboxId = getId(foundEntity.inbox);
const foundEntity = await this.fetchEntityById(recipientUrl);
if (inboxId instanceof URL) {
return [inboxId]; if (!guard.isApActor(foundEntity)) {
} return [];
} catch (error) { }
return [];
} if (!inboxesOnly) {
}), if (foundEntity.endpoints) {
) if (guard.isUrl(foundEntity.endpoints.sharedInbox)) {
).flat(); return [foundEntity.endpoints.sharedInbox];
}
return deduplicateUrls(recipientInboxUrls); }
}
const inboxId = getId(foundEntity.inbox);
if (guard.isUrl(inboxId)) {
return [inboxId];
}
return [];
} }

View File

@ -1,106 +1,101 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { assert } from '@activity-kit/type-utilities'; import { guard } from '@activity-kit/type-utilities';
import { import { getId, PUBLIC_ACTOR, deduplicateUrls } from '@activity-kit/utilities';
getId,
PUBLIC_ACTOR, import { CoreLibrary } from './adapters';
deduplicateUrls,
getArray,
} from '@activity-kit/utilities';
export async function getRecipientUrls( export async function getRecipientUrls(
this: Core, this: CoreLibrary,
activity: AP.Activity, activity: AP.Activity,
): Promise<URL[]> { ): Promise<URL[]> {
const mentions = ( const tags =
'object' in activity && 'tag' in activity.object guard.isApCoreObject(activity.object) && activity.object.tag
? getArray<AP.EntityReference>(activity.object.tag) ? getArray(activity.object.tag)
: [] : [];
).filter((entity: AP.EntityReference) => { const mentions = tags.map(getId).filter(guard.isUrl);
try {
assert.isApType(entity, AP.LinkTypes.MENTION);
return true;
} catch {
return false;
}
});
const recipients = [ const recipients = [
...getArray<AP.EntityReference>(activity.to), ...getArray(activity.to),
...getArray<AP.EntityReference>(activity.cc), ...getArray(activity.cc),
...getArray<AP.EntityReference>(activity.bto), ...getArray(activity.bto),
...getArray<AP.EntityReference>(activity.bcc), ...getArray(activity.bcc),
...getArray<AP.EntityReference>(activity.audience), ...getArray(activity.audience),
...mentions, ...mentions,
].flat(); ].flat();
const recipientIds = recipients const recipientIds = recipients
.map((recipient) => getId(recipient)) .map(getId)
.filter((recipientUrl) => `${recipientUrl}` !== PUBLIC_ACTOR); .filter(guard.isUrl)
.filter((recipientUrl) => recipientUrl.href !== PUBLIC_ACTOR);
const actorUrls = ( const actorUrls = await Promise.all(recipientIds.map(getActorIds.bind(this)));
await Promise.all<URL[]>(
recipientIds.map(async (recipientId) => {
const foundRecipient = await this.queryById(recipientId);
if (!foundRecipient) { return deduplicateUrls(actorUrls.flat());
return []; }
}
async function getActorIds(
try { this: CoreLibrary,
assert.isApActor(foundRecipient); recipientId: URL,
): Promise<URL[]> {
const actorUrl = getId(foundRecipient); const foundRecipient = await this.queryById(recipientId);
if (actorUrl instanceof URL) { if (!foundRecipient) {
return [actorUrl]; return [];
} }
} catch (error) {
// Not an Actor. if (guard.isApActor(foundRecipient)) {
} const actorUrl = getId(foundRecipient);
try { if (guard.isUrl(actorUrl)) {
assert.isApCollection(foundRecipient); return [actorUrl];
}
const collectionItems = await this.getPaginatedCollectionItems( }
foundRecipient,
); if (guard.isApCollection(foundRecipient)) {
const collectionItems = await this.getPaginatedCollectionItems(
console.log([collectionItems]); foundRecipient,
);
const actorsInCollection = [];
const actorsInCollection: URL[] = [];
for (const collectionItem of collectionItems) {
try { for (const collectionItem of collectionItems) {
const collectionItemId = getId(collectionItem); const collectionItemId = getId(collectionItem);
assert.exists(collectionItemId); if (!guard.isUrl(collectionItemId)) {
continue;
const expandedCollectionItem = await this.queryById( }
collectionItemId,
); const expandedCollectionItem = await this.queryById(collectionItemId);
assert.isApActor(expandedCollectionItem); if (!guard.isApActor(expandedCollectionItem)) {
continue;
const actorUrl = getId(expandedCollectionItem); }
if (actorUrl instanceof URL) { const actorUrl = getId(expandedCollectionItem);
actorsInCollection.push(actorUrl);
} if (!guard.isUrl(actorUrl)) {
} catch (error) { continue;
// Not an Actor. }
}
} actorsInCollection.push(actorUrl);
}
return actorsInCollection;
} catch (error) { return actorsInCollection;
// Not a Collection. }
}
return [];
return []; }
}),
) function getArray(
).flat(); items: null | undefined | AP.OrArray<AP.EntityReference>,
): AP.EntityReference[] {
return deduplicateUrls(actorUrls); if (!items) {
return [];
}
const array = guard.isArray(items) ? items : [items];
return array.filter((item) => {
return guard.isApEntity(item) || guard.isUrl(item);
});
} }

View File

@ -1,17 +1,20 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { assert } from '@activity-kit/type-utilities'; import { guard } from '@activity-kit/type-utilities';
import { getId } from '@activity-kit/utilities'; import { getId } from '@activity-kit/utilities';
import { CoreLibrary } from './adapters';
export const getStreamByName = async function ( export const getStreamByName = async function (
this: Core, this: CoreLibrary,
actor: AP.Actor, actor: AP.Actor,
name: string, name: string,
): Promise<AP.EitherCollection | null> { ): Promise<AP.EitherCollection | null> {
assert.isArray(actor.streams); if (!actor.streams) {
return null;
}
const streams = await Promise.all( const streams = await Promise.all(
actor.streams.map(async (stream: AP.Entity | URL) => { actor.streams.map(async (stream: AP.EntityReference) => {
const streamId = getId(stream); const streamId = getId(stream);
if (!streamId) { if (!streamId) {
@ -23,14 +26,10 @@ export const getStreamByName = async function (
); );
for (const stream of streams) { for (const stream of streams) {
try { if (guard.isApCollection(stream)) {
assert.isApCollection(stream);
if (stream.name === name) { if (stream.name === name) {
return stream; return stream;
} }
} catch (error) {
break;
} }
} }

View File

@ -1,3 +1,4 @@
import * as AP from '@activity-kit/types';
import fetch from 'isomorphic-fetch'; import fetch from 'isomorphic-fetch';
import { import {

View File

@ -1,10 +1,11 @@
import { Core } from '.';
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { guard } from '@activity-kit/type-utilities'; import { guard } from '@activity-kit/type-utilities';
import { isLocal } from '@activity-kit/utilities'; import { isLocal } from '@activity-kit/utilities';
import { CoreLibrary } from './adapters';
export async function queryById( export async function queryById(
this: Core, this: CoreLibrary,
id: URL, id: URL,
): Promise<AP.Entity | null> { ): Promise<AP.Entity | null> {
if (isLocal(id)) { if (isLocal(id)) {
@ -20,7 +21,11 @@ export async function queryById(
AP.ExtendedObjectTypes.TOMBSTONE, AP.ExtendedObjectTypes.TOMBSTONE,
) )
) { ) {
return this.findEntityById(id); const foundEntity = await this.findEntityById(id);
if (foundEntity) {
return foundEntity;
}
} }
return fetchedEntity; return fetchedEntity;

View File

@ -1,33 +1,41 @@
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import { assert } from '@activity-kit/type-utilities';
import { import {
CONTENT_TYPE_HEADER, CONTENT_TYPE_HEADER,
ACTIVITYSTREAMS_CONTENT_TYPE, ACTIVITYSTREAMS_CONTENT_TYPE,
ACCEPT_HEADER, ACCEPT_HEADER,
convertEntityToJson, convertEntityToJson,
getId,
} from '@activity-kit/utilities'; } from '@activity-kit/utilities';
import { Core } from '.';
import { CoreLibrary } from '.';
export async function signAndSendToForeignActorInbox( export async function signAndSendToForeignActorInbox(
this: Core, this: CoreLibrary,
foreignActorInbox: URL, foreignActorInbox: URL,
actor: AP.Actor, actor: AP.Actor,
activity: AP.Activity, activity: AP.Activity,
): Promise<unknown> { ): Promise<unknown> {
console.log('SENDING TO...', foreignActorInbox.toString()); console.log('SENDING TO...', foreignActorInbox.href);
const actorId = getId(actor);
assert.exists(actorId);
const plainActivity = convertEntityToJson(activity);
const convertedActivity = convertEntityToJson(activity);
const { dateHeader, digestHeader, signatureHeader } = const { dateHeader, digestHeader, signatureHeader } =
await this.getHttpSignature( await this.getHttpSignature(
foreignActorInbox, foreignActorInbox,
actor.id, actorId,
await this.getPrivateKey(actor), await this.getPrivateKey(actor),
convertedActivity, plainActivity,
); );
// send // send
return await this.fetch(foreignActorInbox.toString(), { return await this.fetch(foreignActorInbox.href, {
method: 'post', method: 'post',
body: JSON.stringify(convertedActivity), body: JSON.stringify(plainActivity),
headers: { headers: {
[CONTENT_TYPE_HEADER]: ACTIVITYSTREAMS_CONTENT_TYPE, [CONTENT_TYPE_HEADER]: ACTIVITYSTREAMS_CONTENT_TYPE,
[ACCEPT_HEADER]: ACTIVITYSTREAMS_CONTENT_TYPE, [ACCEPT_HEADER]: ACTIVITYSTREAMS_CONTENT_TYPE,
@ -35,7 +43,7 @@ export async function signAndSendToForeignActorInbox(
Date: dateHeader, Date: dateHeader,
Digest: digestHeader, Digest: digestHeader,
Signature: signatureHeader, Signature: signatureHeader,
}, } as Record<string, string>,
}).catch((error) => { }).catch((error) => {
console.log(error); console.log(error);
}); });

View File

@ -3,25 +3,24 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,
"target": "ESNext", "target": "ES2018",
"jsx": "react",
"skipLibCheck": true, "skipLibCheck": true,
"moduleResolution": "node", "moduleResolution": "node",
"sourceMap": true, "sourceMap": true,
"lib": [ "lib": [
"ESNext" "ES2018"
], ],
"outDir": "./lib" "outDir": "./lib/"
}, },
"exclude": [ "exclude": [
"./node_modules", "./node_modules",
"../../node_modules" "../../node_modules"
], ],
"include": [ "include": [
"src/index.ts" "./src/"
] ]
} }

View File

@ -3,7 +3,7 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,

View File

@ -3,7 +3,7 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,

View File

@ -3,7 +3,7 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,

View File

@ -1,13 +1,14 @@
import * as AP from '@activity-kit/types';
import { assert } from '@activity-kit/type-utilities';
import { InboxPostEndpoint } from '.'; import { InboxPostEndpoint } from '.';
export async function getActors(this: InboxPostEndpoint) { export async function getActors(this: InboxPostEndpoint): Promise<AP.Actor[]> {
const actor = await this.core.findOne('entity', { const actor = await this.core.findOne('entity', {
inbox: this.url.href, inbox: this.url.href,
}); });
if (!actor || !actor.id || !('inbox' in actor)) { assert.isApActor(actor);
throw new Error('No actor with this inbox.');
}
return [actor]; return [actor];
} }

View File

@ -1,75 +1,7 @@
import * as AP from '@activity-kit/types';
import { guard } from '@activity-kit/type-utilities';
import { getArray, getId } from '@activity-kit/utilities';
import { InboxPostEndpoint } from '.'; import { InboxPostEndpoint } from '.';
// TODO: Check with Spec. // TODO: Check with Spec.
export async function shouldForwardActivity(this: InboxPostEndpoint) { export async function shouldForwardActivity(this: InboxPostEndpoint) {
if (!this.activity) { return false;
return false;
}
if (!guard.isTypeOf<AP.Activity>(this.activity, AP.ActivityTypes)) {
return false;
}
const activity = this.activity as AP.Activity;
const to = getArray<AP.EntityReference>(activity.to);
const cc = getArray<AP.EntityReference>(activity.cc);
const audience = getArray<AP.EntityReference>(activity.audience);
const addressees = [...to, ...cc, ...audience];
for (const addressee of addressees) {
const addresseeId = getId(addressee);
if (!addresseeId) {
continue;
}
const foundItem = await this.core.findEntityById(addresseeId);
if (!foundItem) {
continue;
}
if (
guard.isApType<AP.Collection>(foundItem, AP.CollectionTypes.COLLECTION) ||
guard.isApType<AP.OrderedCollection>(
foundItem,
AP.CollectionTypes.ORDERED_COLLECTION,
)
) {
return true;
}
}
const inReplyTo = getArray<AP.EntityReference>(activity.inReplyTo);
const object =
'object' in activity ? getArray<AP.EntityReference>(activity.object) : [];
const target =
'target' in activity ? getArray<AP.EntityReference>(activity.target) : [];
const tag = getArray<AP.EntityReference>(activity.tag);
const objects = [...inReplyTo, ...object, ...target, ...tag];
for (const object of objects) {
const objectId = getId(object);
if (!objectId) {
continue;
}
const foundItem = await this.core.findEntityById(objectId);
if (!foundItem) {
continue;
}
if (foundItem) {
return true;
}
}
} }

View File

@ -3,7 +3,7 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,

View File

@ -3,7 +3,7 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,

View File

@ -3,7 +3,7 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,

View File

@ -3,7 +3,7 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,

View File

@ -1,8 +1,7 @@
{ {
"parser": "@typescript-eslint/parser", "parser": "@typescript-eslint/parser",
"parserOptions": { "parserOptions": {
"ecmaVersion": 2018, "ecmaVersion": 2018
"sourceType": "module"
}, },
"plugins": ["@typescript-eslint"], "plugins": ["@typescript-eslint"],
"extends": ["plugin:@typescript-eslint/recommended"], "extends": ["plugin:@typescript-eslint/recommended"],

View File

@ -1,9 +1,11 @@
/// <reference types="node" /> /// <reference types="node" />
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
export declare function exists(value: unknown): asserts value is string | number | object; export declare function exists(value: unknown): asserts value is string | number | object | boolean;
export declare function isObject(value: unknown): asserts value is object; export declare function isObject(value: unknown): asserts value is object;
export declare function isPlainObject(value: unknown): asserts value is Record<string, unknown>;
export declare function isString(value: unknown): asserts value is string; export declare function isString(value: unknown): asserts value is string;
export declare function isNumber(value: unknown): asserts value is number; export declare function isNumber(value: unknown): asserts value is number;
export declare function isBoolean(value: unknown): asserts value is boolean;
export declare function isDate(value: unknown): asserts value is Date; export declare function isDate(value: unknown): asserts value is Date;
export declare function isUrl(value: unknown): asserts value is URL; export declare function isUrl(value: unknown): asserts value is URL;
export declare function isArray(value: unknown): asserts value is Array<unknown>; export declare function isArray(value: unknown): asserts value is Array<unknown>;

View File

@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result; return result;
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.isApTypeOf = exports.isApType = exports.isApTransitiveActivity = exports.isApCollection = exports.isApActor = exports.isApExtendedObject = exports.isApCoreObject = exports.isApActivity = exports.isApEntity = exports.hasApType = exports.hasType = exports.isArray = exports.isUrl = exports.isDate = exports.isNumber = exports.isString = exports.isObject = exports.exists = void 0; exports.isApTypeOf = exports.isApType = exports.isApTransitiveActivity = exports.isApCollection = exports.isApActor = exports.isApExtendedObject = exports.isApCoreObject = exports.isApActivity = exports.isApEntity = exports.hasApType = exports.hasType = exports.isArray = exports.isUrl = exports.isDate = exports.isBoolean = exports.isNumber = exports.isString = exports.isPlainObject = exports.isObject = exports.exists = void 0;
const guard = __importStar(require("./guard")); const guard = __importStar(require("./guard"));
function exists(value) { function exists(value) {
if (!guard.exists(value)) { if (!guard.exists(value)) {
@ -37,6 +37,12 @@ function isObject(value) {
} }
} }
exports.isObject = isObject; exports.isObject = isObject;
function isPlainObject(value) {
if (!guard.isPlainObject(value)) {
throw new Error(`"${value}" is not a plain object.`);
}
}
exports.isPlainObject = isPlainObject;
function isString(value) { function isString(value) {
if (!guard.isString(value)) { if (!guard.isString(value)) {
throw new Error(`"${value}" is not a string.`); throw new Error(`"${value}" is not a string.`);
@ -49,6 +55,12 @@ function isNumber(value) {
} }
} }
exports.isNumber = isNumber; exports.isNumber = isNumber;
function isBoolean(value) {
if (!guard.isBoolean(value)) {
throw new Error(`"${value}" is not a boolean.`);
}
}
exports.isBoolean = isBoolean;
function isDate(value) { function isDate(value) {
if (!guard.isDate(value)) { if (!guard.isDate(value)) {
throw new Error(`"${value}" is not a Date object.`); throw new Error(`"${value}" is not a Date object.`);

View File

@ -1 +1 @@
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":"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"} {"version":3,"file":"assert.js","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":"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"}

View File

@ -1,8 +1,10 @@
/// <reference types="node" /> /// <reference types="node" />
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
export declare function exists(value: unknown): string | number | object | undefined; export declare function exists(value: unknown): string | number | boolean | object | undefined;
export declare function isObject(value: unknown): object | undefined; export declare function isObject(value: unknown): object | undefined;
export declare function isPlainObject(value: unknown): Record<string, unknown> | undefined;
export declare function isString(value: unknown): string | undefined; export declare function isString(value: unknown): string | undefined;
export declare function isBoolean(value: unknown): boolean | undefined;
export declare function isNumber(value: unknown): number | undefined; export declare function isNumber(value: unknown): number | undefined;
export declare function isDate(value: unknown): Date | undefined; export declare function isDate(value: unknown): Date | undefined;
export declare function isUrl(value: unknown): URL | undefined; export declare function isUrl(value: unknown): URL | undefined;

View File

@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result; return result;
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.isApTypeOf = exports.isApType = exports.isApTransitiveActivity = exports.isApCollection = exports.isApActor = exports.isApExtendedObject = exports.isApCoreObject = exports.isApActivity = exports.isApEntity = exports.hasApType = exports.hasType = exports.isArray = exports.isUrl = exports.isDate = exports.isNumber = exports.isString = exports.isObject = exports.exists = void 0; exports.isApTypeOf = exports.isApType = exports.isApTransitiveActivity = exports.isApCollection = exports.isApActor = exports.isApExtendedObject = exports.isApCoreObject = exports.isApActivity = exports.isApEntity = exports.hasApType = exports.hasType = exports.isArray = exports.isUrl = exports.isDate = exports.isNumber = exports.isBoolean = exports.isString = exports.isPlainObject = exports.isObject = exports.exists = void 0;
const guard = __importStar(require("./guard")); const guard = __importStar(require("./guard"));
function exists(value) { function exists(value) {
return guard.exists(value) ? value : undefined; return guard.exists(value) ? value : undefined;
@ -33,10 +33,18 @@ function isObject(value) {
return guard.isObject(value) ? value : undefined; return guard.isObject(value) ? value : undefined;
} }
exports.isObject = isObject; exports.isObject = isObject;
function isPlainObject(value) {
return guard.isPlainObject(value) ? value : undefined;
}
exports.isPlainObject = isPlainObject;
function isString(value) { function isString(value) {
return guard.isString(value) ? value : undefined; return guard.isString(value) ? value : undefined;
} }
exports.isString = isString; exports.isString = isString;
function isBoolean(value) {
return guard.isBoolean(value) ? value : undefined;
}
exports.isBoolean = isBoolean;
function isNumber(value) { function isNumber(value) {
return guard.isNumber(value) ? value : undefined; return guard.isNumber(value) ? value : undefined;
} }

View File

@ -1 +1 @@
{"version":3,"file":"cast.js","sourceRoot":"","sources":["../src/cast.ts"],"names":[],"mappings":"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"} {"version":3,"file":"cast.js","sourceRoot":"","sources":["../src/cast.ts"],"names":[],"mappings":"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"}

View File

@ -1,9 +1,11 @@
/// <reference types="node" /> /// <reference types="node" />
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
export declare function exists(value: unknown): value is string | number | object; export declare function exists(value: unknown): value is string | number | object | boolean;
export declare function isObject(value: unknown): value is object; export declare function isObject(value: unknown): value is object;
export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
export declare function isString(value: unknown): value is string; export declare function isString(value: unknown): value is string;
export declare function isNumber(value: unknown): value is number; export declare function isNumber(value: unknown): value is number;
export declare function isBoolean(value: unknown): value is boolean;
export declare function isDate(value: unknown): value is Date; export declare function isDate(value: unknown): value is Date;
export declare function isUrl(value: unknown): value is URL; export declare function isUrl(value: unknown): value is URL;
export declare function isArray(value: unknown): value is Array<unknown>; export declare function isArray(value: unknown): value is Array<unknown>;

View File

@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result; return result;
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.isApTypeOf = exports.isApType = exports.isApTransitiveActivity = exports.isApCollection = exports.isApActor = exports.isApExtendedObject = exports.isApCoreObject = exports.isApActivity = exports.isApEntity = exports.hasApType = exports.hasType = exports.isArray = exports.isUrl = exports.isDate = exports.isNumber = exports.isString = exports.isObject = exports.exists = void 0; exports.isApTypeOf = exports.isApType = exports.isApTransitiveActivity = exports.isApCollection = exports.isApActor = exports.isApExtendedObject = exports.isApCoreObject = exports.isApActivity = exports.isApEntity = exports.hasApType = exports.hasType = exports.isArray = exports.isUrl = exports.isDate = exports.isBoolean = exports.isNumber = exports.isString = exports.isPlainObject = exports.isObject = exports.exists = void 0;
const narrow = __importStar(require("./narrow")); const narrow = __importStar(require("./narrow"));
function exists(value) { function exists(value) {
return narrow.exists(value); return narrow.exists(value);
@ -33,6 +33,10 @@ function isObject(value) {
return narrow.isObject(value); return narrow.isObject(value);
} }
exports.isObject = isObject; exports.isObject = isObject;
function isPlainObject(value) {
return narrow.isPlainObject(value);
}
exports.isPlainObject = isPlainObject;
function isString(value) { function isString(value) {
return narrow.isString(value); return narrow.isString(value);
} }
@ -41,6 +45,10 @@ function isNumber(value) {
return narrow.isNumber(value); return narrow.isNumber(value);
} }
exports.isNumber = isNumber; exports.isNumber = isNumber;
function isBoolean(value) {
return narrow.isBoolean(value);
}
exports.isBoolean = isBoolean;
function isDate(value) { function isDate(value) {
return narrow.isDate(value); return narrow.isDate(value);
} }

View File

@ -1 +1 @@
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAmC;AAEnC,SAAgB,MAAM,CAAC,KAAc;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAFD,wBAEC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,4BAEC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,4BAEC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,4BAEC;AAED,SAAgB,MAAM,CAAC,KAAc;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAFD,wBAEC;AAED,SAAgB,KAAK,CAAC,KAAc;IAClC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAFD,sBAEC;AAED,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAFD,0BAEC;AAED,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAFD,0BAEC;AAED,SAAgB,SAAS,CACvB,KAAc;IAEd,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAJD,8BAIC;AAED,SAAgB,UAAU,CAAC,KAAc;IACvC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAFD,gCAEC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAFD,oCAEC;AAED,SAAgB,cAAc,CAAC,KAAc;IAC3C,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAFD,wCAEC;AAED,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,OAAO,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAFD,gDAEC;AAED,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAFD,8BAEC;AAED,SAAgB,cAAc,CAC5B,KAAc;IAEd,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAJD,wCAIC;AAED,SAAgB,sBAAsB,CACpC,KAAc;IAEd,OAAO,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAJD,wDAIC;AAED,SAAgB,QAAQ,CACtB,KAAc,EACd,IAAY;IAEZ,OAAO,MAAM,CAAC,QAAQ,CAAI,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AALD,4BAKC;AAED,SAAgB,UAAU,CACxB,KAAc,EACd,UAAkC;IAElC,OAAO,MAAM,CAAC,UAAU,CAAI,KAAK,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC;AALD,gCAKC"} {"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAmC;AAEnC,SAAgB,MAAM,CACpB,KAAc;IAEd,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAJD,wBAIC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,4BAEC;AAED,SAAgB,aAAa,CAC3B,KAAc;IAEd,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAJD,sCAIC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,4BAEC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,4BAEC;AAED,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAFD,8BAEC;AAED,SAAgB,MAAM,CAAC,KAAc;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAFD,wBAEC;AAED,SAAgB,KAAK,CAAC,KAAc;IAClC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAFD,sBAEC;AAED,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAFD,0BAEC;AAED,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAFD,0BAEC;AAED,SAAgB,SAAS,CACvB,KAAc;IAEd,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAJD,8BAIC;AAED,SAAgB,UAAU,CAAC,KAAc;IACvC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAFD,gCAEC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAFD,oCAEC;AAED,SAAgB,cAAc,CAAC,KAAc;IAC3C,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAFD,wCAEC;AAED,SAAgB,kBAAkB,CAAC,KAAc;IAC/C,OAAO,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAFD,gDAEC;AAED,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAFD,8BAEC;AAED,SAAgB,cAAc,CAC5B,KAAc;IAEd,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAJD,wCAIC;AAED,SAAgB,sBAAsB,CACpC,KAAc;IAEd,OAAO,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAJD,wDAIC;AAED,SAAgB,QAAQ,CACtB,KAAc,EACd,IAAY;IAEZ,OAAO,MAAM,CAAC,QAAQ,CAAI,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AALD,4BAKC;AAED,SAAgB,UAAU,CACxB,KAAc,EACd,UAAkC;IAElC,OAAO,MAAM,CAAC,UAAU,CAAI,KAAK,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC;AALD,gCAKC"}

View File

@ -1,8 +1,10 @@
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
export declare function exists(value: unknown): boolean; export declare function exists(value: unknown): boolean;
export declare function isObject(value: unknown): boolean; export declare function isObject(value: unknown): boolean;
export declare function isPlainObject(value: unknown): boolean;
export declare function isString(value: unknown): boolean; export declare function isString(value: unknown): boolean;
export declare function isNumber(value: unknown): boolean; export declare function isNumber(value: unknown): boolean;
export declare function isBoolean(value: unknown): boolean;
export declare function isDate(value: unknown): boolean; export declare function isDate(value: unknown): boolean;
export declare function isUrl(value: unknown): boolean; export declare function isUrl(value: unknown): boolean;
export declare function isArray(value: unknown): boolean; export declare function isArray(value: unknown): boolean;

View File

@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result; return result;
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.isApTypeOf = exports.isApType = exports.isApTransitiveActivity = exports.isApCollection = exports.isApActor = exports.isApExtendedObject = exports.isApCoreObject = exports.isApActivity = exports.isApEntity = exports.hasApType = exports.hasType = exports.isArray = exports.isUrl = exports.isDate = exports.isNumber = exports.isString = exports.isObject = exports.exists = void 0; exports.isApTypeOf = exports.isApType = exports.isApTransitiveActivity = exports.isApCollection = exports.isApActor = exports.isApExtendedObject = exports.isApCoreObject = exports.isApActivity = exports.isApEntity = exports.hasApType = exports.hasType = exports.isArray = exports.isUrl = exports.isDate = exports.isBoolean = exports.isNumber = exports.isString = exports.isPlainObject = exports.isObject = exports.exists = void 0;
const AP = __importStar(require("@activity-kit/types")); const AP = __importStar(require("@activity-kit/types"));
function isType(entity, type) { function isType(entity, type) {
if (!entity || typeof entity !== 'object') { if (!entity || typeof entity !== 'object') {
@ -38,13 +38,18 @@ function isTypeOf(entity, types) {
return Object.values(types).some((type) => isType(entity, type)); return Object.values(types).some((type) => isType(entity, type));
} }
function exists(value) { function exists(value) {
return (['string', 'number', 'object'].includes(typeof value) && value !== null); return (['string', 'number', 'object', 'boolean'].includes(typeof value) &&
value !== null);
} }
exports.exists = exists; exports.exists = exists;
function isObject(value) { function isObject(value) {
return typeof value === 'object' && value !== null; return typeof value === 'object' && value !== null;
} }
exports.isObject = isObject; exports.isObject = isObject;
function isPlainObject(value) {
return isObject(value) && Object.getPrototypeOf(value) === Object.prototype;
}
exports.isPlainObject = isPlainObject;
function isString(value) { function isString(value) {
return typeof value === 'string'; return typeof value === 'string';
} }
@ -53,6 +58,10 @@ function isNumber(value) {
return typeof value === 'number' && !isNaN(value); return typeof value === 'number' && !isNaN(value);
} }
exports.isNumber = isNumber; exports.isNumber = isNumber;
function isBoolean(value) {
return typeof value === 'boolean';
}
exports.isBoolean = isBoolean;
function isDate(value) { function isDate(value) {
return value instanceof Date; return value instanceof Date;
} }

View File

@ -1 +1 @@
{"version":3,"file":"narrow.js","sourceRoot":"","sources":["../src/narrow.ts"],"names":[],"mappings":"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"} {"version":3,"file":"narrow.js","sourceRoot":"","sources":["../src/narrow.ts"],"names":[],"mappings":"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"}

View File

@ -3,7 +3,6 @@
"version": "0.4.56", "version": "0.4.56",
"description": "> TODO: description", "description": "> TODO: description",
"author": "Michael Puckett <michaelcpuckett@gmail.com>", "author": "Michael Puckett <michaelcpuckett@gmail.com>",
"homepage": "https://github.com/michaelcpuckett/activitypub-core#readme",
"license": "MIT", "license": "MIT",
"main": "lib/index.js", "main": "lib/index.js",
"directories": { "directories": {
@ -17,8 +16,7 @@
}, },
"scripts": { "scripts": {
"build": "node .build.js", "build": "node .build.js",
"format": "prettier --config .prettierrc \"**/*.ts\" --write", "build:bundle": "tsc-bundle tsconfig.json --outFile dist/bundle.js"
"lint": "eslint activitypub/**/*.ts"
}, },
"dependencies": { "dependencies": {
"@activity-kit/types": "^0.4.56" "@activity-kit/types": "^0.4.56"
@ -28,6 +26,7 @@
"@typescript-eslint/parser": "^5.40.0", "@typescript-eslint/parser": "^5.40.0",
"eslint": "^8.25.0", "eslint": "^8.25.0",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"typescript": "^5.0.4" "typescript": "^5.0.4",
"typescript-bundle": "^1.0.18"
} }
} }

View File

@ -3,7 +3,7 @@ import * as guard from './guard';
export function exists( export function exists(
value: unknown, value: unknown,
): asserts value is string | number | object { ): asserts value is string | number | object | boolean {
if (!guard.exists(value)) { if (!guard.exists(value)) {
throw new Error(`"${value}" is undefined or null.`); throw new Error(`"${value}" is undefined or null.`);
} }
@ -15,6 +15,14 @@ export function isObject(value: unknown): asserts value is object {
} }
} }
export function isPlainObject(
value: unknown,
): asserts value is Record<string, unknown> {
if (!guard.isPlainObject(value)) {
throw new Error(`"${value}" is not a plain object.`);
}
}
export function isString(value: unknown): asserts value is string { export function isString(value: unknown): asserts value is string {
if (!guard.isString(value)) { if (!guard.isString(value)) {
throw new Error(`"${value}" is not a string.`); throw new Error(`"${value}" is not a string.`);
@ -27,6 +35,12 @@ export function isNumber(value: unknown): asserts value is number {
} }
} }
export function isBoolean(value: unknown): asserts value is boolean {
if (!guard.isBoolean(value)) {
throw new Error(`"${value}" is not a boolean.`);
}
}
export function isDate(value: unknown): asserts value is Date { export function isDate(value: unknown): asserts value is Date {
if (!guard.isDate(value)) { if (!guard.isDate(value)) {
throw new Error(`"${value}" is not a Date object.`); throw new Error(`"${value}" is not a Date object.`);

View File

@ -9,10 +9,18 @@ export function isObject(value: unknown) {
return guard.isObject(value) ? value : undefined; return guard.isObject(value) ? value : undefined;
} }
export function isPlainObject(value: unknown) {
return guard.isPlainObject(value) ? value : undefined;
}
export function isString(value: unknown) { export function isString(value: unknown) {
return guard.isString(value) ? value : undefined; return guard.isString(value) ? value : undefined;
} }
export function isBoolean(value: unknown) {
return guard.isBoolean(value) ? value : undefined;
}
export function isNumber(value: unknown) { export function isNumber(value: unknown) {
return guard.isNumber(value) ? value : undefined; return guard.isNumber(value) ? value : undefined;
} }

View File

@ -1,7 +1,9 @@
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
import * as narrow from './narrow'; import * as narrow from './narrow';
export function exists(value: unknown): value is string | number | object { export function exists(
value: unknown,
): value is string | number | object | boolean {
return narrow.exists(value); return narrow.exists(value);
} }
@ -9,6 +11,12 @@ export function isObject(value: unknown): value is object {
return narrow.isObject(value); return narrow.isObject(value);
} }
export function isPlainObject(
value: unknown,
): value is Record<string, unknown> {
return narrow.isPlainObject(value);
}
export function isString(value: unknown): value is string { export function isString(value: unknown): value is string {
return narrow.isString(value); return narrow.isString(value);
} }
@ -17,6 +25,10 @@ export function isNumber(value: unknown): value is number {
return narrow.isNumber(value); return narrow.isNumber(value);
} }
export function isBoolean(value: unknown): value is boolean {
return narrow.isBoolean(value);
}
export function isDate(value: unknown): value is Date { export function isDate(value: unknown): value is Date {
return narrow.isDate(value); return narrow.isDate(value);
} }

View File

@ -21,7 +21,8 @@ function isTypeOf<T extends AP.Entity>(
export function exists(value: unknown) { export function exists(value: unknown) {
return ( return (
['string', 'number', 'object'].includes(typeof value) && value !== null ['string', 'number', 'object', 'boolean'].includes(typeof value) &&
value !== null
); );
} }
@ -29,6 +30,10 @@ export function isObject(value: unknown) {
return typeof value === 'object' && value !== null; return typeof value === 'object' && value !== null;
} }
export function isPlainObject(value: unknown) {
return isObject(value) && Object.getPrototypeOf(value) === Object.prototype;
}
export function isString(value: unknown) { export function isString(value: unknown) {
return typeof value === 'string'; return typeof value === 'string';
} }
@ -37,6 +42,10 @@ export function isNumber(value: unknown) {
return typeof value === 'number' && !isNaN(value); return typeof value === 'number' && !isNaN(value);
} }
export function isBoolean(value: unknown) {
return typeof value === 'boolean';
}
export function isDate(value: unknown) { export function isDate(value: unknown) {
return value instanceof Date; return value instanceof Date;
} }

View File

@ -3,25 +3,24 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,
"target": "ESNext", "target": "ES2018",
"jsx": "react",
"skipLibCheck": true, "skipLibCheck": true,
"moduleResolution": "node", "moduleResolution": "node",
"sourceMap": true, "sourceMap": true,
"lib": [ "lib": [
"ESNext" "ES2018"
], ],
"outDir": "./lib" "outDir": "./lib/"
}, },
"exclude": [ "exclude": [
"./node_modules", "./node_modules",
"../../node_modules" "../../node_modules"
], ],
"include": [ "include": [
"src/index.ts" "./src/"
] ]
} }

View File

@ -1,8 +1,7 @@
{ {
"parser": "@typescript-eslint/parser", "parser": "@typescript-eslint/parser",
"parserOptions": { "parserOptions": {
"ecmaVersion": 2018, "ecmaVersion": 2018
"sourceType": "module"
}, },
"plugins": ["@typescript-eslint"], "plugins": ["@typescript-eslint"],
"extends": ["plugin:@typescript-eslint/recommended"], "extends": ["plugin:@typescript-eslint/recommended"],

View File

@ -1,8 +1,7 @@
/// <reference types="node" /> /// <reference types="node" />
import { TypeOrArrayWithType, AnyType } from '../util/const'; import { TypeOrArrayWithType, AnyType, OrArray } from '../util';
import { ContextDefinition } from 'jsonld';
export type BaseEntity<T extends AnyType> = { export type BaseEntity<T extends AnyType> = {
'@context'?: URL | URL[] | ContextDefinition; '@context'?: OrArray<URL | Record<string, URL>>;
id?: URL | null; id?: URL | null;
type: T | TypeOrArrayWithType<T>; type: T | TypeOrArrayWithType<T>;
}; };

View File

@ -1,7 +1,7 @@
{ {
"name": "@activity-kit/types", "name": "@activity-kit/types",
"version": "0.4.56", "version": "0.4.56",
"description": "> TODO: description", "description": "Types representing the ActivityPub data model",
"author": "Michael Puckett <michaelcpuckett@gmail.com>", "author": "Michael Puckett <michaelcpuckett@gmail.com>",
"homepage": "", "homepage": "",
"license": "MIT", "license": "MIT",
@ -16,9 +16,9 @@
"access": "public" "access": "public"
}, },
"scripts": { "scripts": {
"lint": "eslint src/**/*.ts",
"build": "node .build.js", "build": "node .build.js",
"format": "prettier --config .prettierrc \"**/*.ts\" --write", "build:bundle": "tsc-bundle tsconfig.json --outFile dist/bundle.js"
"lint": "eslint activitypub/**/*.ts"
}, },
"devDependencies": { "devDependencies": {
"@types/jsonld": "^1.5.9", "@types/jsonld": "^1.5.9",
@ -26,10 +26,8 @@
"@typescript-eslint/parser": "^5.40.0", "@typescript-eslint/parser": "^5.40.0",
"eslint": "^8.25.0", "eslint": "^8.25.0",
"prettier": "^2.7.1", "prettier": "^2.7.1",
"typescript": "^5.0.4" "typescript": "^5.0.4",
"typescript-bundle": "^1.0.18"
}, },
"gitHead": "94cd24962ff1406bc137c1ac244f960286d6cac0", "gitHead": "94cd24962ff1406bc137c1ac244f960286d6cac0"
"dependencies": {
"formidable": "^2.1.1"
}
} }

View File

@ -1,8 +1,7 @@
import { TypeOrArrayWithType, AnyType } from '../util/const'; import { TypeOrArrayWithType, AnyType, OrArray } from '../util';
import { ContextDefinition } from 'jsonld';
export type BaseEntity<T extends AnyType> = { export type BaseEntity<T extends AnyType> = {
'@context'?: URL | URL[] | ContextDefinition; '@context'?: OrArray<URL | Record<string, URL>>;
// Activity Pub allows null. // Activity Pub allows null.
id?: URL | null; id?: URL | null;
type: T | TypeOrArrayWithType<T>; type: T | TypeOrArrayWithType<T>;

View File

@ -3,25 +3,24 @@
"strict": true, "strict": true,
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"noImplicitAny": false, "noImplicitAny": true,
"removeComments": true, "removeComments": true,
"noLib": false, "noLib": false,
"esModuleInterop": true, "esModuleInterop": true,
"target": "ESNext", "target": "ES2018",
"jsx": "react",
"skipLibCheck": true, "skipLibCheck": true,
"moduleResolution": "node", "moduleResolution": "node",
"sourceMap": true, "sourceMap": true,
"lib": [ "lib": [
"ESNext" "ES2018"
], ],
"outDir": "./lib" "outDir": "./lib/"
}, },
"exclude": [ "exclude": [
"./node_modules", "./node_modules",
"../../node_modules" "../../node_modules"
], ],
"include": [ "include": [
"src/index.ts" "./src/"
] ]
} }

View File

@ -1,8 +1,7 @@
{ {
"parser": "@typescript-eslint/parser", "parser": "@typescript-eslint/parser",
"parserOptions": { "parserOptions": {
"ecmaVersion": 2018, "ecmaVersion": 2018
"sourceType": "module"
}, },
"plugins": ["@typescript-eslint"], "plugins": ["@typescript-eslint"],
"extends": ["plugin:@typescript-eslint/recommended"], "extends": ["plugin:@typescript-eslint/recommended"],

View File

@ -1,2 +1,2 @@
import * as AP from '@activity-kit/types'; import * as AP from '@activity-kit/types';
export declare function applyContext<T>(entity: AP.Entity): T; export declare function applyContext<T>(entity: AP.Entity): T | undefined;

View File

@ -28,8 +28,7 @@ const AP = __importStar(require("@activity-kit/types"));
const type_utilities_1 = require("@activity-kit/type-utilities"); const type_utilities_1 = require("@activity-kit/type-utilities");
const globals_1 = require("./globals"); const globals_1 = require("./globals");
function applyContext(entity) { function applyContext(entity) {
type_utilities_1.assert.isApEntity(entity); if (type_utilities_1.guard.isApTypeOf(entity, AP.ActorTypes)) {
if (type_utilities_1.guard.isTypeOf(entity, AP.ActorTypes)) {
if (!entity['@context']) { if (!entity['@context']) {
entity['@context'] = [ entity['@context'] = [
new URL(globals_1.ACTIVITYSTREAMS_CONTEXT), new URL(globals_1.ACTIVITYSTREAMS_CONTEXT),
@ -43,7 +42,7 @@ function applyContext(entity) {
} }
return entity; return entity;
} }
if (type_utilities_1.guard.isTypeOf(entity, AP.AllTypes)) { if (type_utilities_1.guard.isApTypeOf(entity, AP.AllTypes)) {
if (!entity['@context']) { if (!entity['@context']) {
entity['@context'] = new URL(globals_1.ACTIVITYSTREAMS_CONTEXT); entity['@context'] = new URL(globals_1.ACTIVITYSTREAMS_CONTEXT);
} }

View File

@ -1 +1 @@
{"version":3,"file":"applyContext.js","sourceRoot":"","sources":["../src/applyContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0C;AAC1C,iEAA6D;AAC7D,uCAA2E;AAE3E,SAAgB,YAAY,CAAI,MAAiB;IAC/C,uBAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE1B,IAAI,sBAAK,CAAC,QAAQ,CAAe,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE;QACvD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACvB,MAAM,CAAC,UAAU,CAAC,GAAG;gBACnB,IAAI,GAAG,CAAC,iCAAuB,CAAC;gBAChC,IAAI,GAAG,CAAC,+BAAqB,CAAC;gBAC9B;oBACE,sBAAsB,EAAE,IAAI,GAAG,CAAC,kCAAkC,CAAC;oBACnE,cAAc,EAAE,IAAI,GAAG,CAAC,0BAA0B,CAAC;oBACnD,aAAa,EAAE,IAAI,GAAG,CAAC,yBAAyB,CAAC;iBAClD;aACF,CAAC;SACH;QAED,OAAO,MAAM,CAAC;KACf;IAED,IAAI,sBAAK,CAAC,QAAQ,CAAgB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;QACtD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACvB,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,iCAAuB,CAAC,CAAC;SACvD;QAED,OAAO,MAAM,CAAC;KACf;AACH,CAAC;AA1BD,oCA0BC"} {"version":3,"file":"applyContext.js","sourceRoot":"","sources":["../src/applyContext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA0C;AAC1C,iEAAqD;AACrD,uCAA2E;AAE3E,SAAgB,YAAY,CAAI,MAAiB;IAC/C,IAAI,sBAAK,CAAC,UAAU,CAAe,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE;QACzD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACvB,MAAM,CAAC,UAAU,CAAC,GAAG;gBACnB,IAAI,GAAG,CAAC,iCAAuB,CAAC;gBAChC,IAAI,GAAG,CAAC,+BAAqB,CAAC;gBAC9B;oBACE,sBAAsB,EAAE,IAAI,GAAG,CAAC,kCAAkC,CAAC;oBACnE,cAAc,EAAE,IAAI,GAAG,CAAC,0BAA0B,CAAC;oBACnD,aAAa,EAAE,IAAI,GAAG,CAAC,yBAAyB,CAAC;iBAClD;aACF,CAAC;SACH;QAED,OAAO,MAAM,CAAC;KACf;IAED,IAAI,sBAAK,CAAC,UAAU,CAAgB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE;QACxD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACvB,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,iCAAuB,CAAC,CAAC;SACvD;QAED,OAAO,MAAM,CAAC;KACf;AACH,CAAC;AAxBD,oCAwBC"}

View File

@ -3,69 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.compressEntity = void 0; exports.compressEntity = void 0;
const type_utilities_1 = require("@activity-kit/type-utilities"); const type_utilities_1 = require("@activity-kit/type-utilities");
function compressEntity(entity) { function compressEntity(entity) {
const object = {}; var _a;
for (const key of Object.keys(entity)) { return (_a = type_utilities_1.cast.isApEntity(compressObject(entity))) !== null && _a !== void 0 ? _a : null;
if (typeof key === 'string') {
object[key] = entity[key];
}
}
const compressed = compressObject(object);
try {
type_utilities_1.assert.isApEntity(compressed);
return compressed;
}
catch (error) {
return null;
}
} }
exports.compressEntity = compressEntity; exports.compressEntity = compressEntity;
function compressObject(object) { function compressObject(object) {
const compressed = {}; const compressed = {};
for (const [key, value] of Object.entries(object)) { for (const [key, value] of Object.entries(object)) {
compressed[key] = compressItem(value); compressed[key] = compressUnknown(value);
} }
return compressed; return compressed;
} }
function compressItem(item) { function compressUnknown(item) {
if (item instanceof URL || item instanceof Date || typeof item === 'string') { if (!type_utilities_1.guard.exists(item)) {
return item; return item;
} }
else if (Array.isArray(item)) { if (type_utilities_1.guard.isArray(item)) {
return item.map(compressItem); return item.map(compressUnknown);
} }
else if (item && typeof item === 'object') { const entity = type_utilities_1.cast.isApEntity(item);
if ('id' in item && item.id instanceof URL) { if (!entity) {
return item.id;
}
else if ('href' in item && item.href instanceof URL) {
return item.href;
}
else if ('url' in item) {
if (item.url instanceof URL) {
return item.url;
}
else if (typeof item.url === 'object' &&
item.url !== null &&
'href' in item.url &&
item.url.href instanceof URL) {
return item.url.href;
}
else {
return item;
}
}
else {
const object = {};
for (const objectKey of Object.keys(item)) {
if (typeof objectKey === 'string') {
object[objectKey] = item[objectKey];
}
}
return compressObject(object);
}
}
else {
return item; return item;
} }
if ('id' in entity && type_utilities_1.guard.isUrl(entity.id)) {
return entity.id;
}
if ('url' in entity && type_utilities_1.guard.isUrl(entity.url)) {
return entity.url;
}
if ('href' in entity && type_utilities_1.guard.isUrl(entity.href)) {
return entity.href;
}
return entity;
} }
//# sourceMappingURL=compressEntity.js.map //# sourceMappingURL=compressEntity.js.map

View File

@ -1 +1 @@
{"version":3,"file":"compressEntity.js","sourceRoot":"","sources":["../src/compressEntity.ts"],"names":[],"mappings":";;;AACA,iEAAsD;AAEtD,SAAgB,cAAc,CAAC,MAAiB;IAC9C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3B;KACF;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAE1C,IAAI;QACF,uBAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,UAAU,CAAC;KACnB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAjBD,wCAiBC;AAED,SAAS,cAAc,CAAC,MAA+B;IACrD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAE/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjD,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,IAAa;IACjC,IAAI,IAAI,YAAY,GAAG,IAAI,IAAI,YAAY,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC3E,OAAO,IAAI,CAAC;KACb;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;KAC/B;SAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC3C,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,YAAY,GAAG,EAAE;YAC1C,OAAO,IAAI,CAAC,EAAE,CAAC;SAChB;aAAM,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,YAAY,GAAG,EAAE;YACrD,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;aAAM,IAAI,KAAK,IAAI,IAAI,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,YAAY,GAAG,EAAE;gBAC3B,OAAO,IAAI,CAAC,GAAG,CAAC;aACjB;iBAAM,IACL,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;gBAC5B,IAAI,CAAC,GAAG,KAAK,IAAI;gBACjB,MAAM,IAAI,IAAI,CAAC,GAAG;gBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,GAAG,EAC5B;gBACA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;aACtB;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF;aAAM;YACL,MAAM,MAAM,GAA4B,EAAE,CAAC;YAE3C,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;oBACjC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;iBACrC;aACF;YAED,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;SAC/B;KACF;SAAM;QACL,OAAO,IAAI,CAAC;KACb;AACH,CAAC"} {"version":3,"file":"compressEntity.js","sourceRoot":"","sources":["../src/compressEntity.ts"],"names":[],"mappings":";;;AACA,iEAA2D;AAE3D,SAAgB,cAAc,CAAC,MAAiB;;IAC9C,OAAO,MAAA,qBAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,mCAAI,IAAI,CAAC;AACzD,CAAC;AAFD,wCAEC;AAED,SAAS,cAAc,CACrB,MAA+B;IAE/B,MAAM,UAAU,GAA4B,EAAE,CAAC;IAE/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjD,UAAU,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;KAC1C;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,IAAa;IACpC,IAAI,CAAC,sBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,sBAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;KAClC;IAED,MAAM,MAAM,GAAG,qBAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,IAAI,MAAM,IAAI,sBAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QAC5C,OAAO,MAAM,CAAC,EAAE,CAAC;KAClB;IAED,IAAI,KAAK,IAAI,MAAM,IAAI,sBAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QAC9C,OAAO,MAAM,CAAC,GAAG,CAAC;KACnB;IAED,IAAI,MAAM,IAAI,MAAM,IAAI,sBAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAChD,OAAO,MAAM,CAAC,IAAI,CAAC;KACpB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}

View File

@ -1,35 +1,35 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.convertEntityToJson = void 0; exports.convertEntityToJson = void 0;
const type_utilities_1 = require("@activity-kit/type-utilities");
function convertEntityToJson(object) { function convertEntityToJson(object) {
return convertObject(object); var _a;
return (_a = type_utilities_1.cast.isPlainObject(convertObject(object))) !== null && _a !== void 0 ? _a : {};
} }
exports.convertEntityToJson = convertEntityToJson; exports.convertEntityToJson = convertEntityToJson;
function convertObject(object) { function convertObject(object) {
const converted = {}; const converted = {};
for (const [key, value] of Object.entries(object)) { for (const [key, value] of Object.entries(object)) {
converted[key] = convertItem(value); converted[key] = convertUnknown(value);
} }
return converted; return converted;
} }
function convertItem(item) { function convertUnknown(value) {
if (item instanceof URL || item instanceof Date) { if (!type_utilities_1.guard.exists(value)) {
return item.toString(); return value;
} }
else if (Array.isArray(item)) { if (type_utilities_1.guard.isArray(value)) {
return item.map(convertItem); return value.map(convertUnknown);
} }
else if (item && typeof item === 'object') { if (type_utilities_1.guard.isPlainObject(value)) {
const object = {}; return convertObject(value);
for (const objectKey of Object.keys(item)) {
if (typeof objectKey === 'string') {
object[objectKey] = item[objectKey];
}
}
return convertObject(object);
} }
else { if (type_utilities_1.guard.isDate(value)) {
return item; return value.toISOString();
} }
if (type_utilities_1.guard.isObject(value)) {
return value.toString();
}
return value;
} }
//# sourceMappingURL=convertEntityToJson.js.map //# sourceMappingURL=convertEntityToJson.js.map

View File

@ -1 +1 @@
{"version":3,"file":"convertEntityToJson.js","sourceRoot":"","sources":["../src/convertEntityToJson.ts"],"names":[],"mappings":";;;AAEA,SAAgB,mBAAmB,CACjC,MAAiB;IAEjB,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAJD,kDAIC;AAED,SAAS,aAAa,CAAC,MAA2C;IAChE,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjD,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;KACrC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,IAAa;IAChC,IAAI,IAAI,YAAY,GAAG,IAAI,IAAI,YAAY,IAAI,EAAE;QAC/C,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;KACxB;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;KAC9B;SAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC3C,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBACjC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;aACrC;SACF;QAED,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;KAC9B;SAAM;QACL,OAAO,IAAI,CAAC;KACb;AACH,CAAC"} {"version":3,"file":"convertEntityToJson.js","sourceRoot":"","sources":["../src/convertEntityToJson.ts"],"names":[],"mappings":";;;AACA,iEAA2D;AAE3D,SAAgB,mBAAmB,CACjC,MAAiB;;IAEjB,OAAO,MAAA,qBAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,mCAAI,EAAE,CAAC;AACzD,CAAC;AAJD,kDAIC;AAED,SAAS,aAAa,CACpB,MAA+B;IAE/B,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjD,SAAS,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;KACxC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,sBAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,sBAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;KAClC;IAED,IAAI,sBAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QAC9B,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;KAC7B;IAED,IAAI,sBAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;KAC5B;IAED,IAAI,sBAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACzB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;KACzB;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}

View File

@ -3848,10 +3848,13 @@ const CONTEXT_DEFINITIONS = {
}, },
}; };
const customLoader = async (url, callback) => { const customLoader = async (url, callback) => {
if (!nodeDocumentLoader) {
throw new Error('nodeDocumentLoader is not defined');
}
const contextUrl = Object.keys(CONTEXT_DEFINITIONS).find((key) => key === url); const contextUrl = Object.keys(CONTEXT_DEFINITIONS).find((key) => key === url);
if (contextUrl) { if (contextUrl) {
return { return {
contextUrl: null, contextUrl: undefined,
document: { document: {
'@context': CONTEXT_DEFINITIONS[contextUrl], '@context': CONTEXT_DEFINITIONS[contextUrl],
}, },
@ -3862,6 +3865,7 @@ const customLoader = async (url, callback) => {
}; };
const ctx = CONTEXT_DEFINITIONS[globals_1.ACTIVITYSTREAMS_CONTEXT]; const ctx = CONTEXT_DEFINITIONS[globals_1.ACTIVITYSTREAMS_CONTEXT];
const convertJsonLdToEntity = async (document) => { const convertJsonLdToEntity = async (document) => {
var _a;
const result = await jsonld.compact(document, ctx, { const result = await jsonld.compact(document, ctx, {
documentLoader: customLoader, documentLoader: customLoader,
}); });
@ -3873,7 +3877,7 @@ const convertJsonLdToEntity = async (document) => {
if (!converted) { if (!converted) {
return null; return null;
} }
return (0, applyContext_1.applyContext)(converted); return (_a = (0, applyContext_1.applyContext)(converted)) !== null && _a !== void 0 ? _a : null;
}; };
exports.convertJsonLdToEntity = convertJsonLdToEntity; exports.convertJsonLdToEntity = convertJsonLdToEntity;
//# sourceMappingURL=convertJsonLdToEntity.js.map //# sourceMappingURL=convertJsonLdToEntity.js.map

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More