mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-30 22:34:01 -05:00
✨ Migrated @tryghost/post-revisions to TypeScript!
This is an initial start to using TypeScript in our non-core Ghost packages. - Adds a prepare script to build the project after installing deps - Adds an initial tsconfig.json which is compatible with our node env - Migrates all of the code to TypeScript, including tests - Updates tests to use ts-node so that we don't need to compile the tests - ts-node is installed at the top level because the env is weird with lerna and doesn't work otherwise - Updates the yarn dev script to build the project with the --all and --revisions flag
This commit is contained in:
parent
ed674981e6
commit
b9565bc290
14 changed files with 500 additions and 162 deletions
10
.github/dev.js
vendored
10
.github/dev.js
vendored
|
@ -40,6 +40,16 @@ if (DASH_DASH_ARGS.includes('ghost')) {
|
|||
commands = [COMMAND_GHOST, COMMAND_ADMIN];
|
||||
}
|
||||
|
||||
if (DASH_DASH_ARGS.includes('revisions') || DASH_DASH_ARGS.includes('all')) {
|
||||
commands.push({
|
||||
name: 'post-revisions',
|
||||
command: 'yarn dev',
|
||||
cwd: path.resolve(__dirname, '../ghost/post-revisions'),
|
||||
prefixColor: 'green',
|
||||
env: {}
|
||||
});
|
||||
}
|
||||
|
||||
if (DASH_DASH_ARGS.includes('portal') || DASH_DASH_ARGS.includes('all')) {
|
||||
commands.push({
|
||||
name: 'portal',
|
||||
|
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -135,3 +135,6 @@ Caddyfile
|
|||
# Announcement-Bar
|
||||
/ghost/announcement-bar/umd
|
||||
/ghost/announcement-bar/build
|
||||
|
||||
/ghost/post-revisions/build
|
||||
/ghost/post-revisions/tsconfig.tsbuildinfo
|
||||
|
|
|
@ -19,7 +19,7 @@ const urlUtils = require('../../shared/url-utils');
|
|||
const {Tag} = require('./tag');
|
||||
const {Newsletter} = require('./newsletter');
|
||||
const {BadRequestError} = require('@tryghost/errors');
|
||||
const PostRevisions = require('@tryghost/post-revisions');
|
||||
const {PostRevisions} = require('@tryghost/post-revisions');
|
||||
const labs = require('../../shared/labs');
|
||||
|
||||
const messages = {
|
||||
|
|
|
@ -4,7 +4,7 @@ const path = require('path');
|
|||
/**
|
||||
* @TODO: pass these in as dependencies
|
||||
*/
|
||||
const PostRevisions = require('@tryghost/post-revisions');
|
||||
const {PostRevisions} = require('@tryghost/post-revisions');
|
||||
const labs = require('../../shared/labs');
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
module.exports = {
|
||||
parser: '@typescript-eslint/parser',
|
||||
plugins: ['ghost'],
|
||||
extends: [
|
||||
'plugin:ghost/node'
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
module.exports = require('./lib/post-revisions');
|
|
@ -4,23 +4,28 @@
|
|||
"repository": "https://github.com/TryGhost/Ghost/tree/main/packages/post-revisions",
|
||||
"author": "Ghost Foundation",
|
||||
"private": true,
|
||||
"main": "index.js",
|
||||
"main": "build/index.js",
|
||||
"types": "build/index.d.ts",
|
||||
"scripts": {
|
||||
"dev": "echo \"Implement me!\"",
|
||||
"test:unit": "NODE_ENV=testing c8 --all --check-coverage --100 --reporter text --reporter cobertura mocha './test/**/*.test.js'",
|
||||
"test": "yarn test:unit",
|
||||
"lint:code": "eslint *.js lib/ --ext .js --cache",
|
||||
"dev": "tsc --watch --preserveWatchOutput --sourceMap",
|
||||
"build": "tsc",
|
||||
"prepare": "tsc",
|
||||
"test:types": "tsc --noEmit",
|
||||
"test:unit": "NODE_ENV=testing c8 --src src --all --check-coverage --100 --reporter text --reporter cobertura mocha -r ts-node/register './test/**/*.test.ts'",
|
||||
"test": "yarn test:unit && yarn test:types",
|
||||
"lint:code": "eslint src/ --ext .ts --cache",
|
||||
"lint": "yarn lint:code && yarn lint:test",
|
||||
"lint:test": "eslint -c test/.eslintrc.js test/ --ext .js --cache"
|
||||
"lint:test": "eslint -c test/.eslintrc.js test/ --ext .ts --cache"
|
||||
},
|
||||
"files": [
|
||||
"index.js",
|
||||
"lib"
|
||||
"build"
|
||||
],
|
||||
"devDependencies": {
|
||||
"c8": "7.13.0",
|
||||
"mocha": "10.2.0",
|
||||
"sinon": "15.0.3"
|
||||
"sinon": "15.0.3",
|
||||
"ts-node": "10.9.1",
|
||||
"typescript": "5.0.4"
|
||||
},
|
||||
"dependencies": {}
|
||||
}
|
||||
|
|
|
@ -1,52 +1,54 @@
|
|||
/**
|
||||
* @typedef {object} PostLike
|
||||
* @property {string} id
|
||||
* @property {string} lexical
|
||||
* @property {string} html
|
||||
* @property {string} author_id
|
||||
* @property {string} feature_image
|
||||
* @property {string} feature_image_alt
|
||||
* @property {string} feature_image_caption
|
||||
* @property {string} title
|
||||
* @property {string} reason
|
||||
* @property {string} post_status
|
||||
*/
|
||||
type PostLike = {
|
||||
id: string;
|
||||
lexical: string;
|
||||
html: string;
|
||||
author_id: string;
|
||||
feature_image: string | null;
|
||||
feature_image_alt: string | null;
|
||||
feature_image_caption: string | null;
|
||||
title: string;
|
||||
reason: string;
|
||||
post_status: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {object} Revision
|
||||
* @property {string} post_id
|
||||
* @property {string} lexical
|
||||
* @property {number} created_at_ts
|
||||
* @property {string} author_id
|
||||
* @property {string} feature_image
|
||||
* @property {string} feature_image_alt
|
||||
* @property {string} feature_image_caption
|
||||
* @property {string} title
|
||||
* @property {string} reason
|
||||
* @property {string} post_status
|
||||
*/
|
||||
type Revision = {
|
||||
post_id: string;
|
||||
lexical: string;
|
||||
author_id: string;
|
||||
feature_image: string | null;
|
||||
feature_image_alt: string | null;
|
||||
feature_image_caption: string | null;
|
||||
title: string;
|
||||
post_status: string;
|
||||
reason: string;
|
||||
created_at_ts: number;
|
||||
}
|
||||
|
||||
class PostRevisions {
|
||||
/**
|
||||
* @param {object} deps
|
||||
* @param {object} deps.config
|
||||
* @param {number} deps.config.max_revisions
|
||||
* @param {number} deps.config.revision_interval_ms
|
||||
* @param {object} deps.model
|
||||
*/
|
||||
constructor(deps) {
|
||||
type PostRevisionsDeps = {
|
||||
config: {
|
||||
max_revisions: number;
|
||||
revision_interval_ms: number;
|
||||
},
|
||||
model: any
|
||||
}
|
||||
|
||||
type RevisionResult = {
|
||||
value: true;
|
||||
reason: string;
|
||||
} | {
|
||||
value: false
|
||||
}
|
||||
|
||||
export class PostRevisions {
|
||||
config: PostRevisionsDeps['config'];
|
||||
model: any;
|
||||
|
||||
constructor(deps: PostRevisionsDeps) {
|
||||
this.config = deps.config;
|
||||
this.model = deps.model;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {PostLike} previous
|
||||
* @param {PostLike} current
|
||||
* @param {Revision[]} revisions
|
||||
* @param {object} options
|
||||
* @returns {object}
|
||||
*/
|
||||
shouldGenerateRevision(current, revisions, options) {
|
||||
shouldGenerateRevision(current: PostLike, revisions: Revision[], options?: { isPublished?: boolean; forceRevision?: boolean; newStatus?: string; olderStatus?: string; }): RevisionResult {
|
||||
const latestRevision = revisions[revisions.length - 1];
|
||||
// If there's no revisions for this post, we should always save a revision
|
||||
if (revisions.length === 0) {
|
||||
|
@ -81,14 +83,7 @@ class PostRevisions {
|
|||
return {value: false};
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {PostLike} previous
|
||||
* @param {PostLike} current
|
||||
* @param {Revision[]} revisions
|
||||
* @param {object} options
|
||||
* @returns {Promise<Revision[]>}
|
||||
*/
|
||||
async getRevisions(current, revisions, options) {
|
||||
async getRevisions(current: PostLike, revisions: Revision[], options?: { isPublished?: boolean; forceRevision?: boolean; newStatus?: string; olderStatus?: string; }): Promise<Revision[]> {
|
||||
const shouldGenerateRevision = this.shouldGenerateRevision(current, revisions, options);
|
||||
if (!shouldGenerateRevision.value) {
|
||||
return revisions;
|
||||
|
@ -112,11 +107,7 @@ class PostRevisions {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {PostLike} input
|
||||
* @returns {Revision}
|
||||
*/
|
||||
convertPostLikeToRevision(input, offset = 0) {
|
||||
convertPostLikeToRevision(input: PostLike, offset = 0): Revision {
|
||||
return {
|
||||
post_id: input.id,
|
||||
lexical: input.lexical,
|
||||
|
@ -126,16 +117,12 @@ class PostRevisions {
|
|||
feature_image_alt: input.feature_image_alt,
|
||||
feature_image_caption: input.feature_image_caption,
|
||||
title: input.title,
|
||||
reason: input.reason,
|
||||
post_status: input.post_status
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} authorId
|
||||
* @param {object} options
|
||||
* @param {object} options.transacting
|
||||
*/
|
||||
async removeAuthorFromRevisions(authorId, options) {
|
||||
async removeAuthorFromRevisions(authorId: string, options: any): Promise<void> {
|
||||
const revisions = await this.model.findAll({
|
||||
filter: `author_id:${authorId}`,
|
||||
columns: ['id'],
|
||||
|
@ -143,7 +130,7 @@ class PostRevisions {
|
|||
});
|
||||
|
||||
const revisionIds = revisions.toJSON()
|
||||
.map(({id}) => id);
|
||||
.map(({id}: {id: string}) => id);
|
||||
|
||||
if (revisionIds.length === 0) {
|
||||
return;
|
||||
|
@ -159,5 +146,3 @@ class PostRevisions {
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = PostRevisions;
|
1
ghost/post-revisions/src/index.ts
Normal file
1
ghost/post-revisions/src/index.ts
Normal file
|
@ -0,0 +1 @@
|
|||
export * from './PostRevisions';
|
|
@ -1,4 +1,5 @@
|
|||
module.exports = {
|
||||
parser: '@typescript-eslint/parser',
|
||||
plugins: ['ghost'],
|
||||
extends: [
|
||||
'plugin:ghost/test'
|
||||
|
|
|
@ -1,106 +1,139 @@
|
|||
const assert = require('assert');
|
||||
const sinon = require('sinon');
|
||||
const PostRevisions = require('..');
|
||||
import assert from 'assert';
|
||||
import sinon from 'sinon';
|
||||
import {PostRevisions} from '../src';
|
||||
|
||||
const config = {
|
||||
max_revisions: 10,
|
||||
revision_interval_ms: 1000
|
||||
};
|
||||
|
||||
function makePostLike(data: any = {}) {
|
||||
return Object.assign({
|
||||
id: 'fakeid',
|
||||
lexical: 'blah',
|
||||
html: 'blah',
|
||||
author_id: 'fakeauthorid',
|
||||
feature_image: data.feature_image || null,
|
||||
feature_image_alt: data.feature_image_alt || null,
|
||||
feature_image_caption: data.feature_image_caption || null,
|
||||
title: 'Title',
|
||||
reason: 'reason',
|
||||
post_status: 'published'
|
||||
}, data);
|
||||
}
|
||||
|
||||
function makeRevision(data: any = {}) {
|
||||
return Object.assign({
|
||||
post_id: 'fakeid',
|
||||
created_at_ts: Date.now(),
|
||||
lexical: 'blah',
|
||||
html: 'blah',
|
||||
author_id: 'fakeauthorid',
|
||||
feature_image: data.feature_image || null,
|
||||
feature_image_alt: data.feature_image_alt || null,
|
||||
feature_image_caption: data.feature_image_caption || null,
|
||||
title: 'Title',
|
||||
reason: 'reason',
|
||||
post_status: 'published'
|
||||
}, data);
|
||||
}
|
||||
|
||||
describe('PostRevisions', function () {
|
||||
describe('shouldGenerateRevision', function () {
|
||||
it('should return true if there are no revisions', function () {
|
||||
const postRevisions = new PostRevisions({config});
|
||||
const postRevisions = new PostRevisions({config, model: {}});
|
||||
|
||||
const expected = {value: true, reason: 'initial_revision'};
|
||||
const actual = postRevisions.shouldGenerateRevision({}, []);
|
||||
const actual = postRevisions.shouldGenerateRevision(makePostLike(), []);
|
||||
|
||||
assert.deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
it('should return false if the current and previous html values are the same', function () {
|
||||
const postRevisions = new PostRevisions({config});
|
||||
const postRevisions = new PostRevisions({config, model: {}});
|
||||
|
||||
const expected = {value: false};
|
||||
const actual = postRevisions.shouldGenerateRevision({
|
||||
const actual = postRevisions.shouldGenerateRevision(makePostLike({
|
||||
lexical: 'current',
|
||||
html: 'blah'
|
||||
}, [{
|
||||
}), [makeRevision({
|
||||
lexical: 'blah'
|
||||
}]);
|
||||
})]);
|
||||
|
||||
assert.deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
it('should return true if forceRevision is true and the lexical has changed since the latest revision', function () {
|
||||
const postRevisions = new PostRevisions({config});
|
||||
const postRevisions = new PostRevisions({config, model: {}});
|
||||
|
||||
const expected = {value: true, reason: 'explicit_save'};
|
||||
const actual = postRevisions.shouldGenerateRevision({
|
||||
lexical: 'blah',
|
||||
html: 'blah2'
|
||||
}, [{
|
||||
const actual = postRevisions.shouldGenerateRevision(makePostLike({
|
||||
lexical: 'blah'
|
||||
}, {
|
||||
}), [{
|
||||
lexical: 'blah2'
|
||||
}], {
|
||||
forceRevision: true
|
||||
}, {
|
||||
lexical: 'blah3'
|
||||
}].map(makeRevision), {
|
||||
forceRevision: true,
|
||||
isPublished: false
|
||||
});
|
||||
|
||||
assert.deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
it('should return true if the current and previous title values are different and forceRevision is true', function () {
|
||||
const postRevisions = new PostRevisions({config});
|
||||
const postRevisions = new PostRevisions({config, model: {}});
|
||||
|
||||
const expected = {value: true, reason: 'explicit_save'};
|
||||
const actual = postRevisions.shouldGenerateRevision({
|
||||
const actual = postRevisions.shouldGenerateRevision(makePostLike({
|
||||
lexical: 'blah',
|
||||
html: 'blah',
|
||||
title: 'blah2'
|
||||
}, [{
|
||||
}), [{
|
||||
lexical: 'blah',
|
||||
title: 'not blah'
|
||||
}], {
|
||||
forceRevision: true
|
||||
}].map(makeRevision), {
|
||||
forceRevision: true,
|
||||
isPublished: false
|
||||
});
|
||||
|
||||
assert.deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
it('should return true if the current and previous feature_image values are different and forceRevision is true', function () {
|
||||
const postRevisions = new PostRevisions({config});
|
||||
const postRevisions = new PostRevisions({config, model: {}});
|
||||
|
||||
const expected = {value: true, reason: 'explicit_save'};
|
||||
const actual = postRevisions.shouldGenerateRevision({
|
||||
const actual = postRevisions.shouldGenerateRevision(makePostLike({
|
||||
lexical: 'blah',
|
||||
html: 'blah',
|
||||
title: 'blah',
|
||||
feature_image: 'new'
|
||||
}, [{
|
||||
}), [{
|
||||
lexical: 'blah',
|
||||
html: 'blah',
|
||||
title: 'blah',
|
||||
feature_image: null
|
||||
}], {
|
||||
forceRevision: true
|
||||
}].map(makeRevision), {
|
||||
forceRevision: true,
|
||||
isPublished: false
|
||||
});
|
||||
|
||||
assert.deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
it('should return true if post is unpublished and forceRevision is true', function () {
|
||||
const postRevisions = new PostRevisions({config});
|
||||
const postRevisions = new PostRevisions({config, model: {}});
|
||||
|
||||
const expected = {value: true, reason: 'unpublished'};
|
||||
|
||||
const actual = postRevisions.shouldGenerateRevision({
|
||||
const actual = postRevisions.shouldGenerateRevision(makePostLike({
|
||||
lexical: 'blah',
|
||||
html: 'blah',
|
||||
title: 'blah2'
|
||||
}, [{
|
||||
}), [makeRevision({
|
||||
lexical: 'blah'
|
||||
}], {
|
||||
})], {
|
||||
isPublished: false,
|
||||
forceRevision: true,
|
||||
newStatus: 'draft',
|
||||
|
@ -111,16 +144,17 @@ describe('PostRevisions', function () {
|
|||
});
|
||||
|
||||
it('should always return true if isPublished is true', function () {
|
||||
const postRevisions = new PostRevisions({config});
|
||||
const postRevisions = new PostRevisions({config, model: {}});
|
||||
|
||||
const expected = {value: true, reason: 'published'};
|
||||
const actual = postRevisions.shouldGenerateRevision({
|
||||
const actual = postRevisions.shouldGenerateRevision(makePostLike({
|
||||
lexical: 'blah',
|
||||
html: 'blah',
|
||||
title: 'blah2'
|
||||
}, [{
|
||||
}), [{
|
||||
lexical: 'blah'
|
||||
}], {
|
||||
}].map(makeRevision), {
|
||||
forceRevision: false,
|
||||
isPublished: true
|
||||
});
|
||||
|
||||
|
@ -128,17 +162,17 @@ describe('PostRevisions', function () {
|
|||
});
|
||||
|
||||
it('should return true if the latest revision was more than the interval', function () {
|
||||
const postRevisions = new PostRevisions({config});
|
||||
const postRevisions = new PostRevisions({config, model: {}});
|
||||
|
||||
const expected = {value: true, reason: 'background_save'};
|
||||
const actual = postRevisions.shouldGenerateRevision({
|
||||
const actual = postRevisions.shouldGenerateRevision(makePostLike({
|
||||
lexical: 'blah',
|
||||
html: 'blah',
|
||||
title: 'blah'
|
||||
}, [{
|
||||
lexical: 'blah',
|
||||
}), [{
|
||||
lexical: 'blah2',
|
||||
created_at_ts: Date.now() - 2000
|
||||
}], {});
|
||||
}].map(makeRevision), {});
|
||||
|
||||
assert.deepEqual(actual, expected);
|
||||
});
|
||||
|
@ -146,44 +180,46 @@ describe('PostRevisions', function () {
|
|||
|
||||
describe('getRevisions', function () {
|
||||
it('returns the original revisions if there is no previous', async function () {
|
||||
const postRevisions = new PostRevisions({config});
|
||||
const postRevisions = new PostRevisions({config, model: {}});
|
||||
|
||||
const expected = [{
|
||||
lexical: 'blah'
|
||||
}];
|
||||
const actual = await postRevisions.getRevisions({}, [{
|
||||
}].map(makeRevision);
|
||||
|
||||
const actual = await postRevisions.getRevisions(makePostLike({}), [{
|
||||
lexical: 'blah'
|
||||
}]);
|
||||
}].map(makeRevision));
|
||||
|
||||
assert.deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
it('returns the original revisions if the current and previous', async function () {
|
||||
const postRevisions = new PostRevisions({config});
|
||||
const postRevisions = new PostRevisions({config, model: {}});
|
||||
|
||||
const expected = [{
|
||||
lexical: 'revision'
|
||||
}];
|
||||
const actual = await postRevisions.getRevisions({
|
||||
}].map(makeRevision);
|
||||
|
||||
const actual = await postRevisions.getRevisions(makePostLike({
|
||||
lexical: 'blah',
|
||||
html: 'blah'
|
||||
}, [{
|
||||
}), [{
|
||||
lexical: 'revision'
|
||||
}]);
|
||||
}].map(makeRevision));
|
||||
|
||||
assert.deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
it('returns one revision when there are no existing revisions', async function () {
|
||||
const postRevisions = new PostRevisions({config});
|
||||
const postRevisions = new PostRevisions({config, model: {}});
|
||||
|
||||
const actual = await postRevisions.getRevisions({
|
||||
const actual = await postRevisions.getRevisions(makePostLike({
|
||||
id: '1',
|
||||
lexical: 'current',
|
||||
html: 'current',
|
||||
author_id: '123',
|
||||
title: 'foo bar baz'
|
||||
}, []);
|
||||
}), []);
|
||||
|
||||
assert.equal(actual.length, 1);
|
||||
assert.equal(actual[0].lexical, 'current');
|
||||
|
@ -194,21 +230,23 @@ describe('PostRevisions', function () {
|
|||
it('does not limit the number of revisions if under the max_revisions count', async function () {
|
||||
const postRevisions = new PostRevisions({
|
||||
config: {
|
||||
max_revisions: 2
|
||||
}
|
||||
max_revisions: 2,
|
||||
revision_interval_ms: config.revision_interval_ms
|
||||
},
|
||||
model: {}
|
||||
});
|
||||
|
||||
const revisions = await postRevisions.getRevisions({
|
||||
const revisions = await postRevisions.getRevisions(makePostLike({
|
||||
id: '1',
|
||||
lexical: 'current',
|
||||
html: 'current'
|
||||
}, []);
|
||||
}), []);
|
||||
|
||||
const actual = await postRevisions.getRevisions({
|
||||
const actual = await postRevisions.getRevisions(makePostLike({
|
||||
id: '1',
|
||||
lexical: 'new',
|
||||
html: 'new'
|
||||
}, revisions, {
|
||||
}), revisions, {
|
||||
forceRevision: true
|
||||
});
|
||||
|
||||
|
@ -218,21 +256,23 @@ describe('PostRevisions', function () {
|
|||
it('limits the number of revisions to the max_revisions count', async function () {
|
||||
const postRevisions = new PostRevisions({
|
||||
config: {
|
||||
max_revisions: 1
|
||||
}
|
||||
max_revisions: 1,
|
||||
revision_interval_ms: config.revision_interval_ms
|
||||
},
|
||||
model: {}
|
||||
});
|
||||
|
||||
const revisions = await postRevisions.getRevisions({
|
||||
const revisions = await postRevisions.getRevisions(makePostLike({
|
||||
id: '1',
|
||||
lexical: 'current',
|
||||
html: 'current'
|
||||
}, []);
|
||||
}), []);
|
||||
|
||||
const actual = await postRevisions.getRevisions({
|
||||
const actual = await postRevisions.getRevisions(makePostLike({
|
||||
id: '1',
|
||||
lexical: 'new',
|
||||
html: 'new'
|
||||
}, revisions, {
|
||||
}), revisions, {
|
||||
forceRevision: true
|
||||
});
|
||||
|
||||
|
@ -270,6 +310,7 @@ describe('PostRevisions', function () {
|
|||
bulkEdit: sinon.stub().resolves()
|
||||
};
|
||||
const postRevisions = new PostRevisions({
|
||||
config,
|
||||
model: modelStub
|
||||
});
|
||||
|
||||
|
@ -299,6 +340,7 @@ describe('PostRevisions', function () {
|
|||
bulkEdit: sinon.stub().resolves()
|
||||
};
|
||||
const postRevisions = new PostRevisions({
|
||||
config,
|
||||
model: modelStub
|
||||
});
|
||||
|
110
ghost/post-revisions/tsconfig.json
Normal file
110
ghost/post-revisions/tsconfig.json
Normal file
|
@ -0,0 +1,110 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
/* Visit https://aka.ms/tsconfig to read more about this file */
|
||||
|
||||
/* Projects */
|
||||
"incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
|
||||
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
|
||||
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
|
||||
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
|
||||
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
|
||||
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
|
||||
|
||||
/* Language and Environment */
|
||||
"target": "es2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
|
||||
// "lib": ["es2019"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
|
||||
// "jsx": "preserve", /* Specify what JSX code is generated. */
|
||||
// "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
|
||||
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
|
||||
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
|
||||
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
|
||||
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
|
||||
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
|
||||
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
|
||||
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
||||
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
|
||||
|
||||
/* Modules */
|
||||
"module": "commonjs", /* Specify what module code is generated. */
|
||||
"rootDir": "src", /* Specify the root folder within your source files. */
|
||||
// "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
|
||||
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
||||
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
||||
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
|
||||
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
|
||||
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
|
||||
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
|
||||
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
|
||||
// "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
|
||||
// "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
|
||||
// "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
|
||||
// "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
|
||||
"resolveJsonModule": true, /* Enable importing .json files. */
|
||||
// "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
|
||||
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
|
||||
|
||||
/* JavaScript Support */
|
||||
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
|
||||
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
|
||||
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
|
||||
|
||||
/* Emit */
|
||||
"declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
|
||||
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
|
||||
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
|
||||
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
|
||||
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
|
||||
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
|
||||
"outDir": "build", /* Specify an output folder for all emitted files. */
|
||||
// "removeComments": true, /* Disable emitting comments. */
|
||||
// "noEmit": true, /* Disable emitting files from a compilation. */
|
||||
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
|
||||
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
|
||||
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
|
||||
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
|
||||
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
|
||||
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
|
||||
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
|
||||
// "newLine": "crlf", /* Set the newline character for emitting files. */
|
||||
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
|
||||
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
|
||||
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
|
||||
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
|
||||
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
|
||||
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
|
||||
|
||||
/* Interop Constraints */
|
||||
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
|
||||
// "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
|
||||
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
|
||||
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
|
||||
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
|
||||
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
|
||||
|
||||
/* Type Checking */
|
||||
"strict": true, /* Enable all strict type-checking options. */
|
||||
"noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
|
||||
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
|
||||
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
|
||||
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
|
||||
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
|
||||
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
|
||||
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
|
||||
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
|
||||
// "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
|
||||
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
|
||||
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
|
||||
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
|
||||
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
|
||||
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
|
||||
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
|
||||
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
|
||||
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
|
||||
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
|
||||
|
||||
/* Completeness */
|
||||
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
|
||||
"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
||||
},
|
||||
"include": ["src/**/*"]
|
||||
}
|
|
@ -127,6 +127,7 @@
|
|||
"eslint-plugin-ghost": "2.16.0",
|
||||
"husky": "8.0.3",
|
||||
"lerna": "6.6.1",
|
||||
"lint-staged": "13.1.2"
|
||||
"lint-staged": "13.1.2",
|
||||
"ts-node": "10.9.1"
|
||||
}
|
||||
}
|
||||
|
|
220
yarn.lock
220
yarn.lock
|
@ -1836,6 +1836,13 @@
|
|||
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
|
||||
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
|
||||
|
||||
"@cspotcode/source-map-support@^0.8.0":
|
||||
version "0.8.1"
|
||||
resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
|
||||
integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
|
||||
dependencies:
|
||||
"@jridgewell/trace-mapping" "0.3.9"
|
||||
|
||||
"@csstools/convert-colors@^1.4.0":
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7"
|
||||
|
@ -3218,6 +3225,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
|
||||
integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
|
||||
|
||||
"@jridgewell/resolve-uri@^3.0.3":
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
|
||||
integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
|
||||
|
||||
"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
|
||||
|
@ -3236,6 +3248,14 @@
|
|||
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
|
||||
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
|
||||
|
||||
"@jridgewell/trace-mapping@0.3.9":
|
||||
version "0.3.9"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
|
||||
integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
|
||||
dependencies:
|
||||
"@jridgewell/resolve-uri" "^3.0.3"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||
|
||||
"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
|
||||
version "0.3.17"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
|
||||
|
@ -6175,6 +6195,26 @@
|
|||
resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
||||
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
|
||||
|
||||
"@tsconfig/node10@^1.0.7":
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
|
||||
integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==
|
||||
|
||||
"@tsconfig/node12@^1.0.7":
|
||||
version "1.0.11"
|
||||
resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
|
||||
integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
|
||||
|
||||
"@tsconfig/node14@^1.0.0":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
|
||||
integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
|
||||
|
||||
"@tsconfig/node16@^1.0.2":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e"
|
||||
integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==
|
||||
|
||||
"@tufjs/models@1.0.1":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-1.0.1.tgz#cc8bb0478188b4b6e58d5528668212724aac87ac"
|
||||
|
@ -7275,7 +7315,7 @@ acorn-walk@^7.1.1:
|
|||
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
|
||||
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
|
||||
|
||||
acorn-walk@^8.0.0, acorn-walk@^8.0.2, acorn-walk@^8.2.0:
|
||||
acorn-walk@^8.0.0, acorn-walk@^8.0.2, acorn-walk@^8.1.1, acorn-walk@^8.2.0:
|
||||
version "8.2.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
|
||||
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
|
||||
|
@ -7295,7 +7335,7 @@ acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0:
|
|||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
|
||||
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
|
||||
|
||||
acorn@^8.1.0, acorn@^8.2.4, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2:
|
||||
acorn@^8.1.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2:
|
||||
version "8.8.2"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
|
||||
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
|
||||
|
@ -7499,6 +7539,13 @@ ansi-regex@^6.0.1:
|
|||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
|
||||
integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
|
||||
|
||||
ansi-split@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-split/-/ansi-split-1.0.1.tgz#3cab03754ab6f1d64d4ad13cd10f22fc36db4a45"
|
||||
integrity sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==
|
||||
dependencies:
|
||||
ansi-regex "^3.0.0"
|
||||
|
||||
ansi-styles@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
|
||||
|
@ -7649,6 +7696,11 @@ are-we-there-yet@~1.1.2:
|
|||
delegates "^1.0.0"
|
||||
readable-stream "^2.0.6"
|
||||
|
||||
arg@^4.1.0:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
|
||||
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
|
||||
|
||||
arg@^5.0.2:
|
||||
version "5.0.2"
|
||||
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
|
||||
|
@ -11685,6 +11737,11 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
|
|||
safe-buffer "^5.0.1"
|
||||
sha.js "^2.4.8"
|
||||
|
||||
create-require@^1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
|
||||
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
|
||||
|
||||
cron-validate@1.4.5, cron-validate@^1.4.1:
|
||||
version "1.4.5"
|
||||
resolved "https://registry.yarnpkg.com/cron-validate/-/cron-validate-1.4.5.tgz#eceb221f7558e6302e5f84c7b3a454fdf4d064c3"
|
||||
|
@ -12512,6 +12569,11 @@ detect-file@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
|
||||
integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==
|
||||
|
||||
detect-indent@6.1.0, detect-indent@^6.0.0:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6"
|
||||
integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
|
||||
|
||||
detect-indent@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
|
||||
|
@ -12524,11 +12586,6 @@ detect-indent@^5.0.0:
|
|||
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
|
||||
integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==
|
||||
|
||||
detect-indent@^6.0.0:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6"
|
||||
integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
|
||||
|
||||
detect-libc@^2.0.0, detect-libc@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd"
|
||||
|
@ -12598,7 +12655,7 @@ diff@5.0.0:
|
|||
resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
|
||||
integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
|
||||
|
||||
diff@^4.0.2:
|
||||
diff@^4.0.1, diff@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
|
||||
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
|
||||
|
@ -15678,7 +15735,7 @@ fast-glob@3.2.7:
|
|||
merge2 "^1.3.0"
|
||||
micromatch "^4.0.4"
|
||||
|
||||
fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9:
|
||||
fast-glob@^3.0.3, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.9:
|
||||
version "3.2.12"
|
||||
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
|
||||
integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
|
||||
|
@ -15934,7 +15991,7 @@ find-index@^1.1.0:
|
|||
resolved "https://registry.yarnpkg.com/find-index/-/find-index-1.1.1.tgz#4b221f8d46b7f8bea33d8faed953f3ca7a081cbc"
|
||||
integrity sha512-XYKutXMrIK99YMUPf91KX5QVJoG31/OsgftD6YoTPAObfQIxM4ziA9f0J1AsqKhJmo+IeaIPP0CFopTD4bdUBw==
|
||||
|
||||
find-root@^1.1.0:
|
||||
find-root@1.1.0, find-root@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
|
||||
integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
|
||||
|
@ -16821,6 +16878,17 @@ glob@7.2.0:
|
|||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
glob@8.0.3:
|
||||
version "8.0.3"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e"
|
||||
integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^5.0.1"
|
||||
once "^1.3.0"
|
||||
|
||||
glob@8.1.0, glob@^8.0.1, glob@^8.0.3:
|
||||
version "8.1.0"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
|
||||
|
@ -16854,7 +16922,7 @@ glob@^6.0.1:
|
|||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
glob@^7.0.4, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
|
||||
glob@^7.0.4, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
|
||||
version "7.2.3"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
|
||||
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
|
||||
|
@ -17842,7 +17910,7 @@ ignore@^4.0.6:
|
|||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
|
||||
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
|
||||
|
||||
ignore@^5.0.0, ignore@^5.0.4, ignore@^5.1.1, ignore@^5.2.0:
|
||||
ignore@^5.0.0, ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.8, ignore@^5.2.0:
|
||||
version "5.2.4"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
|
||||
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
|
||||
|
@ -20804,6 +20872,11 @@ lodash.flatten@^4.2.0, lodash.flatten@^4.4.0:
|
|||
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
|
||||
integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==
|
||||
|
||||
lodash.flattendeep@4.4.0:
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
|
||||
integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==
|
||||
|
||||
lodash.foreach@^4.3.0, lodash.foreach@^4.5.0:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
|
||||
|
@ -21233,6 +21306,11 @@ make-dir@^2.0.0, make-dir@^2.1.0:
|
|||
pify "^4.0.1"
|
||||
semver "^5.6.0"
|
||||
|
||||
make-error@^1.1.1:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
|
||||
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
|
||||
|
||||
make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6:
|
||||
version "10.2.1"
|
||||
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164"
|
||||
|
@ -21672,6 +21750,11 @@ methods@^1.1.2, methods@~1.1.2:
|
|||
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
||||
integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
|
||||
|
||||
micro-memoize@^4.0.9:
|
||||
version "4.0.14"
|
||||
resolved "https://registry.yarnpkg.com/micro-memoize/-/micro-memoize-4.0.14.tgz#d1239ce2e5831125ac518509f5a23b54e7ca3e17"
|
||||
integrity sha512-2tzWP1w2Hh+r7kCYa4f//jpBEA6dAueiuLco38NxfjF9Py3KCCI7wVOTdCvOhmTC043t+ulclVBdl3v+s+UJIQ==
|
||||
|
||||
micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
|
||||
version "3.1.10"
|
||||
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
|
||||
|
@ -22205,6 +22288,17 @@ moment@2.24.0, moment@2.27.0, moment@2.29.1, moment@2.29.3, moment@2.29.4, "mome
|
|||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
|
||||
integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
|
||||
|
||||
monobundle@TryGhost/monobundle#3f1cb946d41d2650d657817c7088574e7c964ac5:
|
||||
version "0.1.0"
|
||||
resolved "https://codeload.github.com/TryGhost/monobundle/tar.gz/3f1cb946d41d2650d657817c7088574e7c964ac5"
|
||||
dependencies:
|
||||
detect-indent "6.1.0"
|
||||
detect-newline "3.1.0"
|
||||
find-root "1.1.0"
|
||||
glob "8.0.3"
|
||||
lodash.flattendeep "4.4.0"
|
||||
ultra-runner "3.10.5"
|
||||
|
||||
moo@^0.5.0, moo@^0.5.1:
|
||||
version "0.5.2"
|
||||
resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c"
|
||||
|
@ -22992,6 +23086,13 @@ npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1:
|
|||
npm-package-arg "^9.0.1"
|
||||
proc-log "^2.0.0"
|
||||
|
||||
npm-run-path@4.0.1, npm-run-path@^4.0.0, npm-run-path@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
|
||||
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
|
||||
dependencies:
|
||||
path-key "^3.0.0"
|
||||
|
||||
npm-run-path@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
|
||||
|
@ -23006,13 +23107,6 @@ npm-run-path@^3.0.0:
|
|||
dependencies:
|
||||
path-key "^3.0.0"
|
||||
|
||||
npm-run-path@^4.0.0, npm-run-path@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
|
||||
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
|
||||
dependencies:
|
||||
path-key "^3.0.0"
|
||||
|
||||
npm-run-path@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00"
|
||||
|
@ -24044,6 +24138,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatc
|
|||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||
|
||||
pid-cwd@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/pid-cwd/-/pid-cwd-1.2.0.tgz#c14c03d812b1d23f97aee27767957fc16272c979"
|
||||
integrity sha512-8QQzIdBmy4bd2l1NKWON1X8flO5TQQRzU2uRDua/XaxSC0iJ+rgbDrlX76t0W3DaJ7OevTYpftyvQ6oMe3hclQ==
|
||||
|
||||
pidtree@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c"
|
||||
|
@ -25558,6 +25657,11 @@ prr@~1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
|
||||
integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
|
||||
|
||||
ps-list@^7.2.0:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/ps-list/-/ps-list-7.2.0.tgz#3d110e1de8249a4b178c9b1cf2a215d1e4e42fc0"
|
||||
integrity sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==
|
||||
|
||||
pseudomap@^1.0.1, pseudomap@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
|
||||
|
@ -27368,6 +27472,11 @@ shell-quote@^1.7.3, shell-quote@^1.8.0:
|
|||
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba"
|
||||
integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==
|
||||
|
||||
shellwords-ts@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/shellwords-ts/-/shellwords-ts-3.0.1.tgz#7c2ed81ea6d0804705a95a5625682363972600e2"
|
||||
integrity sha512-GabK4ApLMqHFRGlpgNqg8dmtHTnYHt0WUUJkIeMd3QaDrUUBEDXHSSNi3I0PzMimg8W+I0EN4TshQxsnHv1cwg==
|
||||
|
||||
shellwords@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
|
||||
|
@ -29360,6 +29469,25 @@ ts-interface-checker@^0.1.9:
|
|||
resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
|
||||
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
|
||||
|
||||
ts-node@10.9.1:
|
||||
version "10.9.1"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"
|
||||
integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==
|
||||
dependencies:
|
||||
"@cspotcode/source-map-support" "^0.8.0"
|
||||
"@tsconfig/node10" "^1.0.7"
|
||||
"@tsconfig/node12" "^1.0.7"
|
||||
"@tsconfig/node14" "^1.0.0"
|
||||
"@tsconfig/node16" "^1.0.2"
|
||||
acorn "^8.4.1"
|
||||
acorn-walk "^8.1.1"
|
||||
arg "^4.1.0"
|
||||
create-require "^1.1.0"
|
||||
diff "^4.0.1"
|
||||
make-error "^1.1.1"
|
||||
v8-compile-cache-lib "^3.0.1"
|
||||
yn "3.1.1"
|
||||
|
||||
tsconfig-paths@^3.14.1:
|
||||
version "3.14.2"
|
||||
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088"
|
||||
|
@ -29379,6 +29507,11 @@ tsconfig-paths@^4.1.2:
|
|||
minimist "^1.2.6"
|
||||
strip-bom "^3.0.0"
|
||||
|
||||
tslib@2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
|
||||
integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
|
||||
|
||||
tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||
|
@ -29480,7 +29613,7 @@ type-fest@^0.20.2:
|
|||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
|
||||
integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
|
||||
|
||||
type-fest@^0.21.3:
|
||||
type-fest@^0.21.2, type-fest@^0.21.3:
|
||||
version "0.21.3"
|
||||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
|
||||
integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
|
||||
|
@ -29534,6 +29667,11 @@ typescript-memoize@^1.0.0-alpha.3, typescript-memoize@^1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/typescript-memoize/-/typescript-memoize-1.1.1.tgz#02737495d5df6ebf72c07ba0d002e8f4cf5ccfa0"
|
||||
integrity sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==
|
||||
|
||||
typescript@5.0.4:
|
||||
version "5.0.4"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b"
|
||||
integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
|
||||
|
||||
"typescript@^3 || ^4", typescript@^4.2.4:
|
||||
version "4.9.5"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
|
||||
|
@ -29561,6 +29699,30 @@ uid-safe@~2.1.5:
|
|||
dependencies:
|
||||
random-bytes "~1.0.0"
|
||||
|
||||
ultra-runner@3.10.5:
|
||||
version "3.10.5"
|
||||
resolved "https://registry.yarnpkg.com/ultra-runner/-/ultra-runner-3.10.5.tgz#7a723b64326642a6d4649ca4cd51a9900c7eccd2"
|
||||
integrity sha512-0U2OPII7sbvtbu9rhDlUUkP4Au/DPz2Tzbnawd/XwDuUruDqd+t/Bmel3cLJxl3yMLHf0OY0TMcIx9zzxdlAZw==
|
||||
dependencies:
|
||||
ansi-split "^1.0.1"
|
||||
chalk "^4.1.0"
|
||||
cross-spawn "^7.0.3"
|
||||
fast-glob "^3.2.5"
|
||||
globrex "^0.1.2"
|
||||
ignore "^5.1.8"
|
||||
json5 "^2.2.0"
|
||||
micro-memoize "^4.0.9"
|
||||
npm-run-path "4.0.1"
|
||||
pid-cwd "^1.2.0"
|
||||
ps-list "^7.2.0"
|
||||
shellwords-ts "^3.0.0"
|
||||
string-width "^4.2.0"
|
||||
tslib "2.1.0"
|
||||
type-fest "^0.21.2"
|
||||
wrap-ansi "^7.0.0"
|
||||
yamljs "^0.3.0"
|
||||
yargs "^16.2.0"
|
||||
|
||||
unbox-primitive@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
|
||||
|
@ -29991,6 +30153,11 @@ uuid@^7.0.1:
|
|||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b"
|
||||
integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==
|
||||
|
||||
v8-compile-cache-lib@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
|
||||
integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
|
||||
|
||||
v8-compile-cache@2.3.0, v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1, v8-compile-cache@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
|
||||
|
@ -31173,6 +31340,14 @@ yaml@^2.1.1, yaml@^2.1.3:
|
|||
resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4"
|
||||
integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==
|
||||
|
||||
yamljs@^0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b"
|
||||
integrity sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==
|
||||
dependencies:
|
||||
argparse "^1.0.7"
|
||||
glob "^7.0.5"
|
||||
|
||||
yargs-parser@20.2.4:
|
||||
version "20.2.4"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
|
||||
|
@ -31268,6 +31443,11 @@ yjs@13.5.50:
|
|||
dependencies:
|
||||
lib0 "^0.2.49"
|
||||
|
||||
yn@3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
|
||||
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
|
||||
|
||||
yocto-queue@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
|
||||
|
|
Loading…
Reference in a new issue