Updated InMemoryRecommendationRepository to follow newer pattern

refs https://github.com/TryGhost/Product/issues/3800
This commit is contained in:
Simon Backx 2023-09-01 10:48:14 +02:00 committed by Simon Backx
parent b447bda89d
commit d5c8804e23
10 changed files with 91 additions and 557 deletions

View File

@ -158,7 +158,7 @@ Object {
"one_click_subscribe": false,
"reason": "Because cats are cute",
"title": "Cat Pictures",
"updated_at": null,
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000Z/,
"url": "https://catpictures.com/",
},
],
@ -169,7 +169,7 @@ exports[`Recommendations Admin API Can edit recommendation 2: [headers] 1`] = `
Object {
"access-control-allow-origin": "http://127.0.0.1:2369",
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
"content-length": "355",
"content-length": "377",
"content-type": "application/json; charset=utf-8",
"content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/,
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,

View File

@ -13,7 +13,8 @@ describe('Recommendations Admin API', function () {
// Clear placeholders
for (const recommendation of (await recommendationsService.repository.getAll())) {
await recommendationsService.repository.remove(recommendation.id);
recommendation.delete();
await recommendationsService.repository.save(recommendation);
}
});
@ -115,7 +116,8 @@ describe('Recommendations Admin API', function () {
recommendations: [
{
id: anyObjectId,
created_at: anyISODateTime
created_at: anyISODateTime,
updated_at: anyISODateTime
}
]
});

View File

@ -22,7 +22,6 @@
"build"
],
"devDependencies": {
"@tryghost/errors": "1.2.24",
"@types/node": "^20.5.7",
"c8": "8.0.1",
"mocha": "10.2.0",
@ -30,5 +29,8 @@
"ts-node": "10.9.1",
"typescript": "5.2.2"
},
"dependencies": {}
"dependencies": {
"@tryghost/tpl": "0.1.25",
"@tryghost/errors": "1.2.25"
}
}

View File

@ -1,8 +1,9 @@
import {Recommendation} from "./Recommendation";
import {RecommendationRepository} from "./RecommendationRepository";
import {InMemoryRepository} from '@tryghost/in-memory-repository';
export class InMemoryRecommendationRepository implements RecommendationRepository {
recommendations: Recommendation[] = [
export class InMemoryRecommendationRepository extends InMemoryRepository<string, Recommendation> implements RecommendationRepository {
store: Recommendation[] = [
new Recommendation({
title: "Shes A Beast",
reason: "She helped me get back into the gym after 8 years of chilling",
@ -50,32 +51,7 @@ export class InMemoryRecommendationRepository implements RecommendationRepositor
})
];
async add(recommendation: Recommendation): Promise<Recommendation> {
this.recommendations.push(recommendation);
return Promise.resolve(recommendation);
}
async edit(id: string, data: Partial<Recommendation>): Promise<Recommendation> {
const existing = await this.getById(id);
const updated = {...existing, ...data};
this.recommendations = this.recommendations.map(r => r.id === id ? updated : r);
return Promise.resolve(updated);
}
async remove(id: string): Promise<void> {
await this.getById(id);
this.recommendations = this.recommendations.filter(r => r.id !== id);
}
async getById(id: string): Promise<Recommendation> {
const existing = this.recommendations.find(r => r.id === id);
if (!existing) {
throw new Error("Recommendation not found");
}
return Promise.resolve(existing);
}
async getAll(): Promise<Recommendation[]> {
return Promise.resolve(this.recommendations);
toPrimitive(entity: Recommendation): object {
return entity;
}
}

View File

@ -1,5 +1,17 @@
import ObjectId from "bson-objectid";
export type AddRecommendation = {
title: string
reason: string|null
excerpt: string|null // Fetched from the site meta data
featuredImage: string|null // Fetched from the site meta data
favicon: string|null // Fetched from the site meta data
url: URL
oneClickSubscribe: boolean
}
export type EditRecommendation = Partial<AddRecommendation>
export class Recommendation {
id: string
title: string
@ -12,6 +24,12 @@ export class Recommendation {
createdAt: Date
updatedAt: Date|null
#deleted: boolean;
get deleted() {
return this.#deleted;
}
constructor(data: {id?: string, title: string, reason: string|null, excerpt: string|null, featuredImage: string|null, favicon: string|null, url: URL, oneClickSubscribe: boolean, createdAt?: Date, updatedAt?: Date|null}) {
this.id = data.id ?? ObjectId().toString();
this.title = data.title;
@ -25,5 +43,18 @@ export class Recommendation {
this.createdAt.setMilliseconds(0);
this.updatedAt = data.updatedAt ?? null;
this.updatedAt?.setMilliseconds(0);
this.#deleted = false;
}
edit(properties: Partial<Recommendation>) {
Object.assign(this, properties);
this.createdAt.setMilliseconds(0);
this.updatedAt = new Date();
this.updatedAt.setMilliseconds(0);
}
delete() {
this.#deleted = true;
}
}

View File

@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import {Recommendation} from "./Recommendation";
import {AddRecommendation, EditRecommendation, Recommendation} from "./Recommendation";
import {RecommendationService} from "./RecommendationService";
import errors from '@tryghost/errors';
@ -77,7 +77,7 @@ export class RecommendationController {
const recommendation = frame.data.recommendations[0];
const cleanedRecommendation: Omit<Recommendation, 'id'|'createdAt'|'updatedAt'> = {
const cleanedRecommendation: AddRecommendation = {
title: validateString(recommendation, "title") ?? '',
url: validateURL(recommendation, "url")!,
@ -93,13 +93,13 @@ export class RecommendationController {
return new Recommendation(cleanedRecommendation);
}
#getFrameRecommendationEdit(frame: Frame): Partial<Recommendation> {
#getFrameRecommendationEdit(frame: Frame): Partial<EditRecommendation> {
if (!frame.data || !frame.data.recommendations || !frame.data.recommendations[0]) {
throw new errors.BadRequestError();
}
const recommendation = frame.data.recommendations[0];
const cleanedRecommendation: Partial<Recommendation> = {
const cleanedRecommendation: EditRecommendation = {
title: validateString(recommendation, "title", {required: false}),
url: validateURL(recommendation, "url", {required: false}),
oneClickSubscribe: validateBoolean(recommendation, "one_click_subscribe", {required: false}),

View File

@ -1,9 +1,7 @@
import {Recommendation} from "./Recommendation";
export interface RecommendationRepository {
add(recommendation: Recommendation): Promise<Recommendation>
edit(id: string, data: Partial<Recommendation>): Promise<Recommendation>
remove(id: string): Promise<void>
getById(id: string): Promise<Recommendation>
getAll(): Promise<Recommendation[]>
save(entity: Recommendation): Promise<void>;
getById(id: string): Promise<Recommendation | null>;
getAll(): Promise<Recommendation[]>;
};

View File

@ -1,11 +1,17 @@
import {Recommendation} from "./Recommendation";
import {RecommendationRepository} from "./RecommendationRepository";
import {WellknownService} from "./WellknownService";
import errors from "@tryghost/errors";
import tpl from "@tryghost/tpl";
type MentionSendingService = {
sendAll(options: {url: URL, links: URL[]}): Promise<void>
}
const messages = {
notFound: "Recommendation with id {id} not found"
}
export class RecommendationService {
repository: RecommendationRepository;
wellknownService: WellknownService;
@ -36,27 +42,41 @@ export class RecommendationService {
}
async addRecommendation(recommendation: Recommendation) {
const r = this.repository.add(recommendation);
this.repository.save(recommendation);
await this.updateWellknown();
// Only send an update for the mentioned URL
this.sendMentionToRecommendation(recommendation);
return r;
return recommendation;
}
async editRecommendation(id: string, recommendationEdit: Partial<Recommendation>) {
// Check if it exists
const existing = await this.repository.getById(id);
const e = await this.repository.edit(existing.id, recommendationEdit);
if (!existing) {
throw new errors.NotFoundError({
message: tpl(messages.notFound, {id})
});
}
existing.edit(recommendationEdit);
await this.repository.save(existing);
await this.updateWellknown();
this.sendMentionToRecommendation(e);
return e;
this.sendMentionToRecommendation(existing);
return existing;
}
async deleteRecommendation(id: string) {
const existing = await this.repository.getById(id);
await this.repository.remove(existing.id);
if (!existing) {
throw new errors.NotFoundError({
message: tpl(messages.notFound, {id})
});
}
existing.delete();
await this.repository.save(existing);
await this.updateWellknown();
// Send a mention (because it was deleted, according to the webmentions spec)

View File

@ -1 +1,2 @@
declare module '@tryghost/errors';
declare module '@tryghost/tpl';

518
yarn.lock
View File

@ -2628,23 +2628,15 @@
resolved "https://registry.yarnpkg.com/@ebay/nice-modal-react/-/nice-modal-react-1.2.10.tgz#6b2406bfce4a5daffc43f5b85f5f238311cdfe93"
integrity sha512-qNp8vQo5kPRwB9bHlkh8lcwH/0KFWpp58X/b9KaLB/gNlJ3W24nCT2l/qBBSnWgV7NEIq25uLowaPS2mbfpZiw==
"@elastic/elasticsearch@8.6.0":
version "8.6.0"
resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-8.6.0.tgz#c474f49808deee64b5bc5b8f938bf78f4468cb94"
integrity sha512-mN5EbbgSp1rfRmQ/5Hv7jqAK8xhGJxCg7G84xje8hSefE59P+HPPCv/+DgesCUSJdZpwXIo0DwOWHfHvktxxLw==
"@elastic/elasticsearch@8.5.0", "@elastic/elasticsearch@8.6.0":
version "8.5.0"
resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-8.5.0.tgz#407aee0950a082ee76735a567f2571cf4301d4ea"
integrity sha512-iOgr/3zQi84WmPhAplnK2W13R89VXD2oc6WhlQmH3bARQwmI+De23ZJKBEn7bvuG/AHMAqasPXX7uJIiJa2MqQ==
dependencies:
"@elastic/transport" "^8.3.1"
"@elastic/transport" "^8.2.0"
tslib "^2.4.0"
"@elastic/elasticsearch@8.9.0":
version "8.9.0"
resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-8.9.0.tgz#d132021c6c12e4171fe14371609a5c69b535edd4"
integrity sha512-UyolnzjOYTRL2966TYS3IoJP4tQbvak/pmYmbP3JdphD53RjkyVDdxMpTBv+2LcNBRrvYPTzxQbpRW/nGSXA9g==
dependencies:
"@elastic/transport" "^8.3.2"
tslib "^2.4.0"
"@elastic/transport@^8.3.1", "@elastic/transport@^8.3.2":
"@elastic/transport@^8.2.0":
version "8.3.3"
resolved "https://registry.yarnpkg.com/@elastic/transport/-/transport-8.3.3.tgz#06c5b1b9566796775ac96d17959dafc269da5ec1"
integrity sha512-g5nc//dq/RQUTMkJUB8Ui8KJa/WflWmUa7yLl4SRZd67PPxIp3cn+OvGMNIhpiLRcfz1upanzgZHb/7Po2eEdQ==
@ -5597,20 +5589,6 @@
dependencies:
"@stdlib/assert-has-uint8clampedarray-support" "^0.0.x"
"@stdlib/array@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/array/-/array-0.0.12.tgz#12f40ab95bb36d424cdad991f29fc3cb491ee29e"
integrity sha512-nDksiuvRC1dSTHrf5yOGQmlRwAzSKV8MdFQwFSvLbZGGhi5Y4hExqea5HloLgNVouVs8lnAFi2oubSM4Mc7YAg==
dependencies:
"@stdlib/assert" "^0.0.x"
"@stdlib/blas" "^0.0.x"
"@stdlib/complex" "^0.0.x"
"@stdlib/constants" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/symbol" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/assert-has-float32array-support@^0.0.x":
version "0.0.8"
resolved "https://registry.yarnpkg.com/@stdlib/assert-has-float32array-support/-/assert-has-float32array-support-0.0.8.tgz#77371183726e26ca9e6f9db41d34543607074067"
@ -5964,47 +5942,6 @@
dependencies:
"@stdlib/assert-is-array" "^0.0.x"
"@stdlib/assert@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/assert/-/assert-0.0.12.tgz#1648c9016e5041291f55a6464abcc4069c5103ce"
integrity sha512-38FxFf+ZoQZbdc+m09UsWtaCmzd/2e7im0JOaaFYE7icmRfm+4KiE9BRvBT4tIn7ioLB2f9PsBicKjIsf+tY1w==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/cli" "^0.0.x"
"@stdlib/complex" "^0.0.x"
"@stdlib/constants" "^0.0.x"
"@stdlib/fs" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/ndarray" "^0.0.x"
"@stdlib/number" "^0.0.x"
"@stdlib/os" "^0.0.x"
"@stdlib/process" "^0.0.x"
"@stdlib/regexp" "^0.0.x"
"@stdlib/streams" "^0.0.x"
"@stdlib/string" "^0.0.x"
"@stdlib/symbol" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/bigint@^0.0.x":
version "0.0.11"
resolved "https://registry.yarnpkg.com/@stdlib/bigint/-/bigint-0.0.11.tgz#c416a1d727001c55f4897e6424124199d638f2fd"
integrity sha512-uz0aYDLABAYyqxaCSHYbUt0yPkXYUCR7TrVvHN+UUD3i8FZ02ZKcLO+faKisDyxKEoSFTNtn3Ro8Ir5ebOlVXQ==
dependencies:
"@stdlib/utils" "^0.0.x"
"@stdlib/blas@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/blas/-/blas-0.0.12.tgz#7e93e42b4621fc6903bf63264f045047333536c2"
integrity sha512-nWY749bWceuoWQ7gz977blCwR7lyQ/rsIXVO4b600h+NFpeA2i/ea7MYC680utIbeu2cnDWHdglBPoK535VAzA==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/assert" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/number" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/buffer-ctor@^0.0.x":
version "0.0.7"
resolved "https://registry.yarnpkg.com/@stdlib/buffer-ctor/-/buffer-ctor-0.0.7.tgz#d05b7f4a6ef26defe6cdd41ca244a927b96c55ec"
@ -6031,17 +5968,6 @@
"@stdlib/buffer-ctor" "^0.0.x"
"@stdlib/string-format" "^0.0.x"
"@stdlib/buffer@^0.0.x":
version "0.0.11"
resolved "https://registry.yarnpkg.com/@stdlib/buffer/-/buffer-0.0.11.tgz#6137b00845e6c905181cc7ebfae9f7e47c01b0ce"
integrity sha512-Jeie5eDDa1tVuRcuU+cBXI/oOXSmMxUUccZpqXzgYe0IO8QSNtNxv9mUTzJk/m5wH+lmLoDvNxzPpOH9TODjJg==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/assert" "^0.0.x"
"@stdlib/process" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/cli-ctor@^0.0.x":
version "0.0.3"
resolved "https://registry.yarnpkg.com/@stdlib/cli-ctor/-/cli-ctor-0.0.3.tgz#5b0a6d253217556c778015eee6c14be903f82c2b"
@ -6051,14 +5977,6 @@
"@stdlib/utils-noop" "^0.0.x"
minimist "^1.2.0"
"@stdlib/cli@^0.0.x":
version "0.0.10"
resolved "https://registry.yarnpkg.com/@stdlib/cli/-/cli-0.0.10.tgz#28e2fbe6865d7f5cd15b7dc5846c99bd3b91674f"
integrity sha512-OITGaxG46kwK799+NuOd/+ccosJ9koVuQBC610DDJv0ZJf8mD7sbjGXrmue9C4EOh8MP7Vm/6HN14BojX8oTCg==
dependencies:
"@stdlib/utils" "^0.0.x"
minimist "^1.2.0"
"@stdlib/complex-float32@^0.0.7", "@stdlib/complex-float32@^0.0.x":
version "0.0.7"
resolved "https://registry.yarnpkg.com/@stdlib/complex-float32/-/complex-float32-0.0.7.tgz#fb9a0c34254eaf3ed91c39983e19ef131fc18bc1"
@ -6101,16 +6019,6 @@
"@stdlib/types" "^0.0.x"
"@stdlib/utils-library-manifest" "^0.0.x"
"@stdlib/complex@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/complex/-/complex-0.0.12.tgz#3afbc190cd0a9b37fc7c6e508c3aa9fda9106944"
integrity sha512-UbZBdaUxT2G+lsTIrVlRZwx2IRY6GXnVILggeejsIVxHSuK+oTyapfetcAv0FJFLP+Rrr+ZzrN4b9G3hBw6NHA==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/assert" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/constants-array-max-typed-array-length@^0.0.x":
version "0.0.7"
resolved "https://registry.yarnpkg.com/@stdlib/constants-array-max-typed-array-length/-/constants-array-max-typed-array-length-0.0.7.tgz#b6e4cd8e46f4a1ae2b655646d46393ba3d8d5c2b"
@ -6176,16 +6084,6 @@
resolved "https://registry.yarnpkg.com/@stdlib/constants-uint8-max/-/constants-uint8-max-0.0.7.tgz#d50affeaeb6e67a0f39059a8f5122f3fd5ff4447"
integrity sha512-fqV+xds4jgwFxwWu08b8xDuIoW6/D4/1dtEjZ1sXVeWR7nf0pjj1cHERq4kdkYxsvOGu+rjoR3MbjzpFc4fvSw==
"@stdlib/constants@^0.0.x":
version "0.0.11"
resolved "https://registry.yarnpkg.com/@stdlib/constants/-/constants-0.0.11.tgz#78cd56d6c2982b30264843c3d75bde7125e90cd2"
integrity sha512-cWKy0L9hXHUQTvFzdPkTvZnn/5Pjv7H4UwY0WC1rLt+A5CxFDJKjvnIi9ypSzJS3CAiGl1ZaHCdadoqXhNdkUg==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/assert" "^0.0.x"
"@stdlib/number" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/fs-exists@^0.0.x":
version "0.0.8"
resolved "https://registry.yarnpkg.com/@stdlib/fs-exists/-/fs-exists-0.0.8.tgz#391b2cee3e014a3b20266e5d047847f68ef82331"
@ -6219,20 +6117,6 @@
"@stdlib/process-cwd" "^0.0.x"
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x"
"@stdlib/fs@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/fs/-/fs-0.0.12.tgz#662365fd5846a51f075724b4f2888ae88441b70d"
integrity sha512-zcDLbt39EEM3M3wJW6luChS53B8T+TMJkjs2526UpKJ71O0/0adR57cI7PfCpkMd33d05uM7GM+leEj4eks4Cw==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/assert" "^0.0.x"
"@stdlib/cli" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/process" "^0.0.x"
"@stdlib/string" "^0.0.x"
"@stdlib/utils" "^0.0.x"
debug "^2.6.9"
"@stdlib/math-base-assert-is-integer@^0.0.x":
version "0.0.7"
resolved "https://registry.yarnpkg.com/@stdlib/math-base-assert-is-integer/-/math-base-assert-is-integer-0.0.7.tgz#d70faf41bed1bd737333877eb21660bf0ee779df"
@ -6266,50 +6150,6 @@
"@stdlib/math-base-napi-unary" "^0.0.x"
"@stdlib/utils-library-manifest" "^0.0.x"
"@stdlib/math@^0.0.x":
version "0.0.11"
resolved "https://registry.yarnpkg.com/@stdlib/math/-/math-0.0.11.tgz#eb6638bc03a20fbd6727dd5b977ee0170bda4649"
integrity sha512-qI78sR1QqGjHj8k/aAqkZ51Su2fyBvaR/jMKQqcB/ML8bpYpf+QGlGvTty5Qdru/wpqds4kVFOVbWGcNFIV2+Q==
dependencies:
"@stdlib/assert" "^0.0.x"
"@stdlib/constants" "^0.0.x"
"@stdlib/ndarray" "^0.0.x"
"@stdlib/number" "^0.0.x"
"@stdlib/strided" "^0.0.x"
"@stdlib/symbol" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
debug "^2.6.9"
"@stdlib/ndarray@^0.0.x":
version "0.0.13"
resolved "https://registry.yarnpkg.com/@stdlib/ndarray/-/ndarray-0.0.13.tgz#2e8fc645e10f56a645a0ab81598808c0e8f43b82"
integrity sha512-Z+U9KJP4U2HWrLtuAXSPvhNetAdqaNLMcliR6S/fz+VPlFDeymRK7omRFMgVQ+1zcAvIgKZGJxpLC3vjiPUYEw==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/assert" "^0.0.x"
"@stdlib/bigint" "^0.0.x"
"@stdlib/buffer" "^0.0.x"
"@stdlib/complex" "^0.0.x"
"@stdlib/constants" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/number" "^0.0.x"
"@stdlib/string" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/nlp@^0.0.x":
version "0.0.11"
resolved "https://registry.yarnpkg.com/@stdlib/nlp/-/nlp-0.0.11.tgz#532ec0f7267b8d639e4c20c6de864e8de8a09054"
integrity sha512-D9avYWANm0Db2W7RpzdSdi5GxRYALGAqUrNnRnnKIO6sMEfr/DvONoAbWruda4QyvSC+0MJNwcEn7+PHhRwYhw==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/assert" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/random" "^0.0.x"
"@stdlib/string" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/number-ctor@^0.0.x":
version "0.0.7"
resolved "https://registry.yarnpkg.com/@stdlib/number-ctor/-/number-ctor-0.0.7.tgz#e97a66664639c9853b6c80bc7a15f7d67a2fc991"
@ -6322,31 +6162,6 @@
dependencies:
"@stdlib/array-float32" "^0.0.x"
"@stdlib/number@^0.0.x":
version "0.0.10"
resolved "https://registry.yarnpkg.com/@stdlib/number/-/number-0.0.10.tgz#4030ad8fc3fac19a9afb415c443cee6deea0e65c"
integrity sha512-RyfoP9MlnX4kccvg8qv7vYQPbLdzfS1Mnp/prGOoWhvMG3pyBwFAan34kwFb5IS/zHC3W5EmrgXCV2QWyLg/Kg==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/assert" "^0.0.x"
"@stdlib/constants" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/os" "^0.0.x"
"@stdlib/string" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/os@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/os/-/os-0.0.12.tgz#08bbf013c62a7153099fa9cbac086ca1349a4677"
integrity sha512-O7lklZ/9XEzoCmYvzjPh7jrFWkbpOSHGI71ve3dkSvBy5tyiSL3TtivfKsIC+9ZxuEJZ3d3lIjc9e+yz4HVbqQ==
dependencies:
"@stdlib/assert" "^0.0.x"
"@stdlib/cli" "^0.0.x"
"@stdlib/fs" "^0.0.x"
"@stdlib/process" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/process-cwd@^0.0.x":
version "0.0.8"
resolved "https://registry.yarnpkg.com/@stdlib/process-cwd/-/process-cwd-0.0.8.tgz#5eef63fb75ffb5fc819659d2f450fa3ee2aa10bf"
@ -6367,41 +6182,6 @@
"@stdlib/streams-node-stdin" "^0.0.x"
"@stdlib/utils-next-tick" "^0.0.x"
"@stdlib/process@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/process/-/process-0.0.12.tgz#123325079d89a32f4212f72fb694f8fe3614cf18"
integrity sha512-P0X0TMvkissBE1Wr877Avi2/AxmP7X5Toa6GatHbpJdDg6jQmN4SgPd+NZNp98YtZUyk478c8XSIzMr1krQ20g==
dependencies:
"@stdlib/assert" "^0.0.x"
"@stdlib/buffer" "^0.0.x"
"@stdlib/cli" "^0.0.x"
"@stdlib/fs" "^0.0.x"
"@stdlib/streams" "^0.0.x"
"@stdlib/string" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/random@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/random/-/random-0.0.12.tgz#e819c3abd602ed5559ba800dba751e49c633ff85"
integrity sha512-c5yND4Ahnm9Jx0I+jsKhn4Yrz10D53ALSrIe3PG1qIz3kNFcIPnmvCuNGd+3V4ch4Mbrez55Y8z/ZC5RJh4vJQ==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/assert" "^0.0.x"
"@stdlib/blas" "^0.0.x"
"@stdlib/buffer" "^0.0.x"
"@stdlib/cli" "^0.0.x"
"@stdlib/constants" "^0.0.x"
"@stdlib/fs" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/process" "^0.0.x"
"@stdlib/stats" "^0.0.x"
"@stdlib/streams" "^0.0.x"
"@stdlib/symbol" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
debug "^2.6.9"
readable-stream "^2.1.4"
"@stdlib/regexp-eol@^0.0.x":
version "0.0.7"
resolved "https://registry.yarnpkg.com/@stdlib/regexp-eol/-/regexp-eol-0.0.7.tgz#cf1667fdb5da1049c2c2f8d5c47dcbaede8650a4"
@ -6434,61 +6214,11 @@
dependencies:
"@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x"
"@stdlib/regexp@^0.0.x":
version "0.0.13"
resolved "https://registry.yarnpkg.com/@stdlib/regexp/-/regexp-0.0.13.tgz#80b98361dc7a441b47bc3fa964bb0c826759e971"
integrity sha512-3JT5ZIoq/1nXY+dY+QtkU8/m7oWDeekyItEEXMx9c/AOf0ph8fmvTUGMDNfUq0RetcznFe3b66kFz6Zt4XHviA==
dependencies:
"@stdlib/assert" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/stats@^0.0.x":
version "0.0.13"
resolved "https://registry.yarnpkg.com/@stdlib/stats/-/stats-0.0.13.tgz#87c973f385379d794707c7b5196a173dba8b07e1"
integrity sha512-hm+t32dKbx/L7+7WlQ1o4NDEzV0J4QSnwFBCsIMIAO8+VPxTZ4FxyNERl4oKlS3hZZe4AVKjoOVhBDtgEWrS4g==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/assert" "^0.0.x"
"@stdlib/blas" "^0.0.x"
"@stdlib/constants" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/ndarray" "^0.0.x"
"@stdlib/random" "^0.0.x"
"@stdlib/string" "^0.0.x"
"@stdlib/symbol" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/streams-node-stdin@^0.0.x":
version "0.0.7"
resolved "https://registry.yarnpkg.com/@stdlib/streams-node-stdin/-/streams-node-stdin-0.0.7.tgz#65ff09a2140999702a1ad885e6505334d947428f"
integrity sha512-gg4lgrjuoG3V/L29wNs32uADMCqepIcmoOFHJCTAhVe0GtHDLybUVnLljaPfdvmpPZmTvmusPQtIcscbyWvAyg==
"@stdlib/streams@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/streams/-/streams-0.0.12.tgz#07f5ceae5852590afad8e1cb7ce94174becc8739"
integrity sha512-YLUlXwjJNknHp92IkJUdvn5jEQjDckpawKhDLLCoxyh3h5V+w/8+61SH7TMTfKx5lBxKJ8vvtchZh90mIJOAjQ==
dependencies:
"@stdlib/assert" "^0.0.x"
"@stdlib/buffer" "^0.0.x"
"@stdlib/cli" "^0.0.x"
"@stdlib/fs" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
debug "^2.6.9"
readable-stream "^2.1.4"
"@stdlib/strided@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/strided/-/strided-0.0.12.tgz#86ac48e660cb7f64a45cf07e80cbbfe58be21ae1"
integrity sha512-1NINP+Y7IJht34iri/bYLY7TVxrip51f6Z3qWxGHUCH33kvk5H5QqV+RsmFEGbbyoGtdeHrT2O+xA+7R2e3SNg==
dependencies:
"@stdlib/assert" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/ndarray" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/string-base-format-interpolate@^0.0.x":
version "0.0.4"
resolved "https://registry.yarnpkg.com/@stdlib/string-base-format-interpolate/-/string-base-format-interpolate-0.0.4.tgz#297eeb23c76f745dcbb3d9dbd24e316773944538"
@ -6537,44 +6267,6 @@
"@stdlib/utils-escape-regexp-string" "^0.0.x"
"@stdlib/utils-regexp-from-string" "^0.0.x"
"@stdlib/string@^0.0.x":
version "0.0.14"
resolved "https://registry.yarnpkg.com/@stdlib/string/-/string-0.0.14.tgz#4feea4f9089ab72428eebb65fe7b93d90a7f34f4"
integrity sha512-1ClvUTPysens7GZz3WsrkFYIFs8qDmnXkyAd3zMvTXgRpy7hqrv6nNzLMQj8BHv5cBWaWPOXYd/cZ+JyMnZNQQ==
dependencies:
"@stdlib/assert" "^0.0.x"
"@stdlib/cli" "^0.0.x"
"@stdlib/constants" "^0.0.x"
"@stdlib/fs" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/nlp" "^0.0.x"
"@stdlib/process" "^0.0.x"
"@stdlib/regexp" "^0.0.x"
"@stdlib/streams" "^0.0.x"
"@stdlib/types" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/symbol@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/symbol/-/symbol-0.0.12.tgz#b9f396b0bf269c2985bb7fe99810a8e26d7288c3"
integrity sha512-2IDhpzWVGeLHgsvIsX12RXvf78r7xBkc4QLoRUv3k7Cp61BisR1Ym1p0Tq9PbxT8fknlvLToh9n5RpmESi2d4w==
dependencies:
"@stdlib/assert" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/time@^0.0.x":
version "0.0.14"
resolved "https://registry.yarnpkg.com/@stdlib/time/-/time-0.0.14.tgz#ea6daa438b1d3b019b99f5091117ee4bcef55d60"
integrity sha512-1gMFCQTabMVIgww+k4g8HHHIhyy1tIlvwT8mC0BHW7Q7TzDAgobwL0bvor+lwvCb5LlDAvNQEpaRgVT99QWGeQ==
dependencies:
"@stdlib/assert" "^0.0.x"
"@stdlib/cli" "^0.0.x"
"@stdlib/constants" "^0.0.x"
"@stdlib/fs" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/string" "^0.0.x"
"@stdlib/utils" "^0.0.x"
"@stdlib/types@^0.0.x":
version "0.0.14"
resolved "https://registry.yarnpkg.com/@stdlib/types/-/types-0.0.14.tgz#02d3aab7a9bfaeb86e34ab749772ea22f7b2f7e0"
@ -6756,30 +6448,6 @@
"@stdlib/utils-constructor-name" "^0.0.x"
"@stdlib/utils-global" "^0.0.x"
"@stdlib/utils@^0.0.12", "@stdlib/utils@^0.0.x":
version "0.0.12"
resolved "https://registry.yarnpkg.com/@stdlib/utils/-/utils-0.0.12.tgz#670de5a7b253f04f11a4cba38f790e82393bcb46"
integrity sha512-+JhFpl6l7RSq/xGnbWRQ5dAL90h9ONj8MViqlb7teBZFtePZLMwoRA1wssypFcJ8SFMRWQn7lPmpYVUkGwRSOg==
dependencies:
"@stdlib/array" "^0.0.x"
"@stdlib/assert" "^0.0.x"
"@stdlib/blas" "^0.0.x"
"@stdlib/buffer" "^0.0.x"
"@stdlib/cli" "^0.0.x"
"@stdlib/constants" "^0.0.x"
"@stdlib/fs" "^0.0.x"
"@stdlib/math" "^0.0.x"
"@stdlib/os" "^0.0.x"
"@stdlib/process" "^0.0.x"
"@stdlib/random" "^0.0.x"
"@stdlib/regexp" "^0.0.x"
"@stdlib/streams" "^0.0.x"
"@stdlib/string" "^0.0.x"
"@stdlib/symbol" "^0.0.x"
"@stdlib/time" "^0.0.x"
"@stdlib/types" "^0.0.x"
debug "^2.6.9"
"@storybook/addon-actions@7.4.0":
version "7.4.0"
resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.4.0.tgz#709988f46422b85b3672d2e6f90bf623af59faa9"
@ -8009,7 +7677,7 @@
"@tryghost/root-utils" "^0.3.23"
debug "^4.3.1"
"@tryghost/debug@^0.1.26":
"@tryghost/debug@0.1.26", "@tryghost/debug@^0.1.26":
version "0.1.26"
resolved "https://registry.yarnpkg.com/@tryghost/debug/-/debug-0.1.26.tgz#c1a403fb8abfcf5293395f822593b5d6f997f426"
integrity sha512-Q0idDUzgPFgUOELED8GwmxEFtp9WjIw6sUayLgc2he4YJfe3hK2LsExt5XSJsa3OSZp1NgX7/OqVHd3vueynlA==
@ -8026,15 +7694,6 @@
"@tryghost/debug" "^0.1.24"
split2 "4.2.0"
"@tryghost/elasticsearch@^3.0.13", "@tryghost/elasticsearch@^3.0.14":
version "3.0.14"
resolved "https://registry.yarnpkg.com/@tryghost/elasticsearch/-/elasticsearch-3.0.14.tgz#b75305e600517b2aee7fcce97ba7d15dc12ad5b6"
integrity sha512-DGY01scx/nJBh/0CFzsaqpRnYnoDUmiekhaV8SjUQ2zuMTVKE37XybU7FtkeKXlhwD8S1zDwSwQPpGDO67Y2GA==
dependencies:
"@elastic/elasticsearch" "8.9.0"
"@tryghost/debug" "^0.1.26"
split2 "4.2.0"
"@tryghost/email-mock-receiver@0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@tryghost/email-mock-receiver/-/email-mock-receiver-0.3.1.tgz#b69c6866f4880ec1be9bf16cfcb3907d8a98d447"
@ -8056,16 +7715,7 @@
focus-trap "^6.7.2"
postcss-preset-env "^7.3.1"
"@tryghost/errors@1.2.21":
version "1.2.21"
resolved "https://registry.yarnpkg.com/@tryghost/errors/-/errors-1.2.21.tgz#27c57ccd27324dfc4ab1dc34f8618939fc494324"
integrity sha512-TzV8wxDDFw2ZTI+zsFi0xggpKpc2ABqSzDp+t6dngcLuDs9erBdK5JJTV3wYBOBrJbbK6LzQlAsmH66vgO5HLQ==
dependencies:
"@stdlib/utils" "^0.0.12"
lodash "^4.17.21"
uuid "^9.0.0"
"@tryghost/errors@1.2.24", "@tryghost/errors@^1.0.0", "@tryghost/errors@^1.2.1", "@tryghost/errors@^1.2.24", "@tryghost/errors@^1.2.3":
"@tryghost/errors@1.2.21", "@tryghost/errors@1.2.24", "@tryghost/errors@1.2.25", "@tryghost/errors@^1.0.0", "@tryghost/errors@^1.2.1", "@tryghost/errors@^1.2.24", "@tryghost/errors@^1.2.26", "@tryghost/errors@^1.2.3":
version "1.2.24"
resolved "https://registry.yarnpkg.com/@tryghost/errors/-/errors-1.2.24.tgz#5daceff6cdee9421297849474fd885857c4bfe3f"
integrity sha512-5iRF8dl2wirb/1gQA2dv8MtxK204vnjbWvmb3fULNZoVlmuHY1ZUgwRJRquClfUEFyl2qGmNDuoxGoTvur8JKA==
@ -8074,24 +7724,6 @@
lodash "^4.17.21"
uuid "^9.0.0"
"@tryghost/errors@1.2.25":
version "1.2.25"
resolved "https://registry.yarnpkg.com/@tryghost/errors/-/errors-1.2.25.tgz#9e1b715624dfd7dbde59a9fc196ebcb00d9c7553"
integrity sha512-fVZgnFu3QsEUVPyl+uFLK6X6JSN3m7l1pMl713SmhNrkFNFM3nG1sVeNiTg/Ru4N5qIJBBIefwrfRH80Ccy3oQ==
dependencies:
"@stdlib/utils-copy" "^0.0.7"
lodash "^4.17.21"
uuid "^9.0.0"
"@tryghost/errors@^1.2.26":
version "1.2.26"
resolved "https://registry.yarnpkg.com/@tryghost/errors/-/errors-1.2.26.tgz#0d0503a51e681998421548fbddbdd7376384c457"
integrity sha512-s/eynvVUiAhHP0HB7CPQs7qH7Pm1quJ2iUMTCuH7HV8LqiGoQFNc21/5R4lRv+2Jt3yf69UPCs/6G+kAgZipNw==
dependencies:
"@stdlib/utils-copy" "^0.0.7"
lodash "^4.17.21"
uuid "^9.0.0"
"@tryghost/express-test@0.13.7":
version "0.13.7"
resolved "https://registry.yarnpkg.com/@tryghost/express-test/-/express-test-0.13.7.tgz#fee867065282298095a194c5e70386e393d21d57"
@ -8137,14 +7769,6 @@
"@tryghost/errors" "^1.2.24"
"@tryghost/request" "^0.1.39"
"@tryghost/http-stream@^0.1.22", "@tryghost/http-stream@^0.1.23":
version "0.1.23"
resolved "https://registry.yarnpkg.com/@tryghost/http-stream/-/http-stream-0.1.23.tgz#90f4ae70ab75a831d44d061e4ef4bcf941720e98"
integrity sha512-j0QPukvh4l5Yj4iFXaaTK6QCvu0GIhiDoPgn+tPnDsA9lH07hiJupbQiLoONiX7AZv/qnzFYNoUZW2jr45NKIg==
dependencies:
"@tryghost/errors" "^1.2.26"
"@tryghost/request" "^0.1.41"
"@tryghost/image-transform@1.2.6":
version "1.2.6"
resolved "https://registry.yarnpkg.com/@tryghost/image-transform/-/image-transform-1.2.6.tgz#530c792a50853b1779ecb8e15bee8ea5d1d890ef"
@ -8290,7 +7914,7 @@
lodash "^4.17.21"
luxon "^1.26.0"
"@tryghost/logging@2.4.4":
"@tryghost/logging@2.4.4", "@tryghost/logging@2.4.5", "@tryghost/logging@^2.4.5":
version "2.4.4"
resolved "https://registry.yarnpkg.com/@tryghost/logging/-/logging-2.4.4.tgz#4101d87c82bc6996a3ddd99755069b94d584e3e6"
integrity sha512-nRsc5EOqYuHLWYXe/K1AjrRU82xOtQN52GL7r9WY0NCKNZ5/tCFTDdOASKMbFPvpyT5pZlt2vE5+Fu8TdbN8Aw==
@ -8307,40 +7931,6 @@
json-stringify-safe "^5.0.1"
lodash "^4.17.21"
"@tryghost/logging@2.4.5":
version "2.4.5"
resolved "https://registry.yarnpkg.com/@tryghost/logging/-/logging-2.4.5.tgz#aa8d67ae6904c89f46fcc9b7226d579e8b0ce9f6"
integrity sha512-QDkgxWs5jFOWj5Gyf4RtGddwvjaiQtJNmvWZaPcwKy/Hii7I4EEHWSslLX4Y482u5nvgHtnyzynSNUYWwIzGWw==
dependencies:
"@tryghost/bunyan-rotating-filestream" "^0.0.7"
"@tryghost/elasticsearch" "^3.0.13"
"@tryghost/http-stream" "^0.1.22"
"@tryghost/pretty-stream" "^0.1.19"
"@tryghost/root-utils" "^0.3.23"
bunyan "^1.8.15"
bunyan-loggly "^1.4.2"
fs-extra "^10.0.0"
gelf-stream "^1.1.1"
json-stringify-safe "^5.0.1"
lodash "^4.17.21"
"@tryghost/logging@^2.4.5":
version "2.4.6"
resolved "https://registry.yarnpkg.com/@tryghost/logging/-/logging-2.4.6.tgz#4b5ba548eee530ace4e25e30cfbc97865a9a2394"
integrity sha512-j9Oaj+tBR1gOBr4biAj4EYPQxy1U9puByS0VE9xR/Po3AX86zuXkCWD5IiDsVulYWrqYM0InRc7544IqbJ9bLw==
dependencies:
"@tryghost/bunyan-rotating-filestream" "^0.0.7"
"@tryghost/elasticsearch" "^3.0.14"
"@tryghost/http-stream" "^0.1.23"
"@tryghost/pretty-stream" "^0.1.20"
"@tryghost/root-utils" "^0.3.24"
bunyan "^1.8.15"
bunyan-loggly "^1.4.2"
fs-extra "^11.0.0"
gelf-stream "^1.1.1"
json-stringify-safe "^5.0.1"
lodash "^4.17.21"
"@tryghost/metrics@1.0.24":
version "1.0.24"
resolved "https://registry.yarnpkg.com/@tryghost/metrics/-/metrics-1.0.24.tgz#d1aad748a4d0ca71ce7a78fd926ff0fdf44e95b3"
@ -8438,15 +8028,6 @@
moment "^2.29.1"
prettyjson "^1.2.5"
"@tryghost/pretty-stream@^0.1.19", "@tryghost/pretty-stream@^0.1.20":
version "0.1.20"
resolved "https://registry.yarnpkg.com/@tryghost/pretty-stream/-/pretty-stream-0.1.20.tgz#cccb2173cde85f450895777edf79d94cb712db74"
integrity sha512-2fWRvTUrnbD/AnDChyZ0ZwUWdqRg2dsoa+DZxfH9hJNAwCDAMgp1qVEoOCwMMB1YYDWKKsYM/i+xoxDueMwyLA==
dependencies:
lodash "^4.17.21"
moment "^2.29.1"
prettyjson "^1.2.5"
"@tryghost/promise@0.3.4":
version "0.3.4"
resolved "https://registry.yarnpkg.com/@tryghost/promise/-/promise-0.3.4.tgz#b5437eb14a3d06e7d32f277e10975ff77061e16e"
@ -8463,17 +8044,6 @@
got "9.6.0"
lodash "^4.17.21"
"@tryghost/request@^0.1.41":
version "0.1.41"
resolved "https://registry.yarnpkg.com/@tryghost/request/-/request-0.1.41.tgz#1198fb0919f3516116ecd9de73c40176729a44e0"
integrity sha512-aE1OkUNLbSlFkzykrg0oIi/FvPSYUU6xBXcF1AmL4+0QB9Qt2TXL5B+0kyerbR5y+gSMBZXcBwNB1u701gOE3A==
dependencies:
"@tryghost/errors" "^1.2.26"
"@tryghost/validator" "^0.2.6"
"@tryghost/version" "^0.1.24"
got "9.6.0"
lodash "^4.17.21"
"@tryghost/root-utils@0.3.22":
version "0.3.22"
resolved "https://registry.yarnpkg.com/@tryghost/root-utils/-/root-utils-0.3.22.tgz#23793e467afb41b27f4e289a3618d71bd90bc575"
@ -8586,17 +8156,6 @@
moment-timezone "^0.5.23"
validator "7.2.0"
"@tryghost/validator@^0.2.6":
version "0.2.6"
resolved "https://registry.yarnpkg.com/@tryghost/validator/-/validator-0.2.6.tgz#99a01bf6e6c70c1eb79098e6b95b980e0efa126b"
integrity sha512-2p1/X7vqI/tikc2beRQ1efCm/hSRCkB7y0+etCGROKNH3nHJwvw+OKSxgmNZ7+5OjR6DJkNW88aMYPz47X3fAg==
dependencies:
"@tryghost/errors" "^1.2.26"
"@tryghost/tpl" "^0.1.26"
lodash "^4.17.21"
moment-timezone "^0.5.23"
validator "7.2.0"
"@tryghost/version@0.1.22", "@tryghost/version@^0.1.22":
version "0.1.22"
resolved "https://registry.yarnpkg.com/@tryghost/version/-/version-0.1.22.tgz#e2a9f6eec4f9f8945094d3bd7c0757438f4e0622"
@ -8605,14 +8164,6 @@
"@tryghost/root-utils" "^0.3.22"
semver "^7.3.5"
"@tryghost/version@^0.1.24":
version "0.1.24"
resolved "https://registry.yarnpkg.com/@tryghost/version/-/version-0.1.24.tgz#eb8bc345929ba8f67c3f36757bd91c12f701a5f5"
integrity sha512-XM0aXB3dQNjazeMX5YbBLjA+airE5HR5XqmEB9YrAxlQPaYdXkQUq+ar6L/dxiS8dp+o2DQIcp2XgGd/Ay3MuQ==
dependencies:
"@tryghost/root-utils" "^0.3.24"
semver "^7.3.5"
"@tryghost/webhook-mock-receiver@0.2.6":
version "0.2.6"
resolved "https://registry.yarnpkg.com/@tryghost/webhook-mock-receiver/-/webhook-mock-receiver-0.2.6.tgz#20a4141f5813287988770f5f1e394ad2af5c1063"
@ -24039,52 +23590,18 @@ module-details-from-path@^1.0.3:
resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b"
integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==
moment-timezone@0.5.23, moment-timezone@^0.5.23:
moment-timezone@0.5.23, moment-timezone@0.5.34, moment-timezone@^0.5.23, moment-timezone@^0.5.31, moment-timezone@^0.5.33:
version "0.5.23"
resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.23.tgz#7cbb00db2c14c71b19303cb47b0fb0a6d8651463"
integrity sha512-WHFH85DkCfiNMDX5D3X7hpNH3/PUhjTGcD0U1SgfBGZxJ3qUmJh5FdvaFjcClxOvB3rzdfj4oRffbI38jEnC1w==
dependencies:
moment ">= 2.9.0"
moment-timezone@0.5.34:
version "0.5.34"
resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c"
integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==
dependencies:
moment ">= 2.9.0"
moment-timezone@^0.5.31, moment-timezone@^0.5.33:
version "0.5.43"
resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.43.tgz#3dd7f3d0c67f78c23cd1906b9b2137a09b3c4790"
integrity sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==
dependencies:
moment "^2.29.4"
moment@2.24.0, "moment@>= 2.9.0", moment@^2.10.2, moment@^2.18.1, moment@^2.19.3:
moment@2.24.0, moment@2.27.0, moment@2.29.1, moment@2.29.3, moment@2.29.4, "moment@>= 2.9.0", moment@^2.10.2, moment@^2.18.1, moment@^2.19.3, moment@^2.27.0, moment@^2.29.1:
version "2.24.0"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
moment@2.27.0:
version "2.27.0"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d"
integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==
moment@2.29.1:
version "2.29.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
moment@2.29.3:
version "2.29.3"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.3.tgz#edd47411c322413999f7a5940d526de183c031f3"
integrity sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==
moment@2.29.4, moment@^2.27.0, moment@^2.29.1, moment@^2.29.4:
version "2.29.4"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
monobundle@TryGhost/monobundle#44fdf2c8e304e797a04858bfd7339b2a1fa47441:
version "0.1.0"
resolved "https://codeload.github.com/TryGhost/monobundle/tar.gz/44fdf2c8e304e797a04858bfd7339b2a1fa47441"
@ -27649,19 +27166,6 @@ readable-stream@1.1.x, readable-stream@^1.0.26-4:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
readable-stream@^2.1.4:
version "2.3.8"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readable-stream@~1.0.2, readable-stream@~1.0.26, readable-stream@~1.0.26-4:
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"