From 42299abf82634df1ce5077605d0b974d0c0a6166 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20der=20Winden?= Date: Thu, 1 Aug 2024 11:46:11 +0200 Subject: [PATCH 01/28] Added styling for accent colours on Tiers and Offers (#20696) fixes https://linear.app/tryghost/issue/DES-81/misleading-hardcoded-tier-preview-title-colors Tiers and Offers in Admin were shown with hardcoded pink titles. This changes that. They are now shown with black titles, and only in the preview will they render with the site's accent colour. --------- Co-authored-by: Princi Vershwal --- apps/admin-x-design-system/styles.css | 3 ++- apps/admin-x-design-system/tailwind.config.cjs | 1 + .../src/components/settings/growth/Offers.tsx | 2 +- .../settings/membership/tiers/TierDetailPreview.tsx | 6 +++--- .../src/components/settings/membership/tiers/TiersList.tsx | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/apps/admin-x-design-system/styles.css b/apps/admin-x-design-system/styles.css index 1842f304c2..5ba0b87bf7 100644 --- a/apps/admin-x-design-system/styles.css +++ b/apps/admin-x-design-system/styles.css @@ -96,4 +96,5 @@ /* Prose classes are for formatting arbitrary HTML that comes from the API */ .gh-prose-links a { color: #30CF43; -} \ No newline at end of file +} + diff --git a/apps/admin-x-design-system/tailwind.config.cjs b/apps/admin-x-design-system/tailwind.config.cjs index 7a614ce4f6..59a302365e 100644 --- a/apps/admin-x-design-system/tailwind.config.cjs +++ b/apps/admin-x-design-system/tailwind.config.cjs @@ -18,6 +18,7 @@ module.exports = { colors: { transparent: 'transparent', current: 'currentColor', + accent: 'var(--accent-color, #ff0095)', white: '#FFF', black: '#15171A', grey: { diff --git a/apps/admin-x-settings/src/components/settings/growth/Offers.tsx b/apps/admin-x-settings/src/components/settings/growth/Offers.tsx index dedcc9daaa..75b07ffff6 100644 --- a/apps/admin-x-settings/src/components/settings/growth/Offers.tsx +++ b/apps/admin-x-settings/src/components/settings/growth/Offers.tsx @@ -13,7 +13,7 @@ const OfferContainer: React.FC<{offerTitle: string, tier: Tier, cadence: string, {offerTitle, tier, cadence, redemptions, type, amount, currency, offerId, offerCode, goToOfferEdit}) => { const {discountOffer} = getOfferDiscount(type, amount, cadence, currency || 'USD', tier); return
goToOfferEdit(offerId)}> - {offerTitle} + {offerTitle}
{discountOffer}
diff --git a/apps/admin-x-settings/src/components/settings/membership/tiers/TierDetailPreview.tsx b/apps/admin-x-settings/src/components/settings/membership/tiers/TierDetailPreview.tsx index ae5c115087..ced9678a6d 100644 --- a/apps/admin-x-settings/src/components/settings/membership/tiers/TierDetailPreview.tsx +++ b/apps/admin-x-settings/src/components/settings/membership/tiers/TierDetailPreview.tsx @@ -22,8 +22,8 @@ export const TrialDaysLabel: React.FC<{size?: 'sm' | 'md'; trialDays: number;}> return ( - - {trialDays} days free + + {trialDays} days free ); }; @@ -96,7 +96,7 @@ const TierDetailPreview: React.FC = ({tier, isFreeTier})
-

{name || (isFreeTier ? 'Free' : 'Bronze')}

+

{name || (isFreeTier ? 'Free' : 'Bronze')}

{currencySymbol} diff --git a/apps/admin-x-settings/src/components/settings/membership/tiers/TiersList.tsx b/apps/admin-x-settings/src/components/settings/membership/tiers/TiersList.tsx index 28c5c6dca1..3aa1b36a08 100644 --- a/apps/admin-x-settings/src/components/settings/membership/tiers/TiersList.tsx +++ b/apps/admin-x-settings/src/components/settings/membership/tiers/TiersList.tsx @@ -30,7 +30,7 @@ const TierCard: React.FC = ({tier}) => {
{ updateRoute({route: `tiers/${tier.id}`}); }}> -
{tier.name}
+
{tier.name}
{currencySymbol} {numberWithCommas(currencyToDecimal(tier.monthly_price || 0))} From aca4626c725bfcbcd6ffa33c532683be9f9a1814 Mon Sep 17 00:00:00 2001 From: Djordje Vlaisavljevic Date: Thu, 1 Aug 2024 15:35:46 +0200 Subject: [PATCH 02/28] Updated design of announced Notes and Notes containing links (#20703) - Announced (reposted) Notes show information about both the Actor that created the Note, and the Actor that Announced it - The content of notes now keeps the formatting and links are clickable and shown in different color --- .../src/components/ListIndex.tsx | 47 +++++++++++-------- apps/admin-x-activitypub/src/styles/index.css | 15 +++++- .../src/assets/icons/reload.svg | 1 + 3 files changed, 43 insertions(+), 20 deletions(-) create mode 100644 apps/admin-x-design-system/src/assets/icons/reload.svg diff --git a/apps/admin-x-activitypub/src/components/ListIndex.tsx b/apps/admin-x-activitypub/src/components/ListIndex.tsx index 4c785eead9..75e219edba 100644 --- a/apps/admin-x-activitypub/src/components/ListIndex.tsx +++ b/apps/admin-x-activitypub/src/components/ListIndex.tsx @@ -4,7 +4,7 @@ import articleBodyStyles from './articleBodyStyles'; import getUsername from '../utils/get-username'; import {ActivityPubAPI} from '../api/activitypub'; import {ActorProperties, ObjectProperties} from '@tryghost/admin-x-framework/api/activitypub'; -import {Avatar, Button, ButtonGroup, Heading, List, ListItem, Page, SelectOption, SettingValue, ViewContainer, ViewTab} from '@tryghost/admin-x-design-system'; +import {Avatar, Button, ButtonGroup, Heading, Icon, List, ListItem, Page, SelectOption, SettingValue, ViewContainer, ViewTab} from '@tryghost/admin-x-design-system'; import {useBrowseSite} from '@tryghost/admin-x-framework/api/site'; import {useQuery} from '@tanstack/react-query'; import {useRouting} from '@tryghost/admin-x-framework/routing'; @@ -123,6 +123,7 @@ const ActivityPubComponent: React.FC = () => { actor={activity.actor} layout={selectedOption.value} object={activity.object} + type={activity.type} /> ))} @@ -320,7 +321,7 @@ ${image && ); }; -const ObjectContentDisplay: React.FC<{actor: ActorProperties, object: ObjectProperties, layout: string }> = ({actor, object, layout}) => { +const ObjectContentDisplay: React.FC<{actor: ActorProperties, object: ObjectProperties, layout: string, type: string }> = ({actor, object, layout, type}) => { const parser = new DOMParser(); const doc = parser.parseFromString(object.content || '', 'text/html'); @@ -396,23 +397,31 @@ const ObjectContentDisplay: React.FC<{actor: ActorProperties, object: ObjectProp return ( <> {object && ( -
- -
-
-

{actor.name}

- {getUsername(actor)} - {timestamp} -
-
-
- {object.name && {object.name}} -

{plainTextContent}

- {/*

{object.content}

*/} - {renderAttachment()} -
-
diff --git a/apps/admin-x-activitypub/src/styles/index.css b/apps/admin-x-activitypub/src/styles/index.css index c3b58ac682..a59dd422e7 100644 --- a/apps/admin-x-activitypub/src/styles/index.css +++ b/apps/admin-x-activitypub/src/styles/index.css @@ -22,4 +22,17 @@ animation: bump 0.3s ease-in-out; .ap-red-heart path { fill: #F50B23; -} \ No newline at end of file +} + +.ap-note-content a { + color: rgb(236 72 153) !important; +} + +.ap-note-content a:hover { + color: rgb(219 39 119) !important; +} + +.ap-note-content p + p { + margin-top: 1.5rem !important; +} + diff --git a/apps/admin-x-design-system/src/assets/icons/reload.svg b/apps/admin-x-design-system/src/assets/icons/reload.svg new file mode 100644 index 0000000000..5afa3c7227 --- /dev/null +++ b/apps/admin-x-design-system/src/assets/icons/reload.svg @@ -0,0 +1 @@ +Button Refresh Arrows Streamline Icon: https://streamlinehq.com \ No newline at end of file From 68d8f19d5a1339a9d71f77753b0b4b8db977c3af Mon Sep 17 00:00:00 2001 From: Djordje Vlaisavljevic Date: Thu, 1 Aug 2024 17:24:11 +0200 Subject: [PATCH 03/28] Revert "Updated design of announced Notes and Notes containing links (#20703)" This reverts commit aca4626c725bfcbcd6ffa33c532683be9f9a1814. --- .../src/components/ListIndex.tsx | 47 ++++++++----------- apps/admin-x-activitypub/src/styles/index.css | 15 +----- .../src/assets/icons/reload.svg | 1 - 3 files changed, 20 insertions(+), 43 deletions(-) delete mode 100644 apps/admin-x-design-system/src/assets/icons/reload.svg diff --git a/apps/admin-x-activitypub/src/components/ListIndex.tsx b/apps/admin-x-activitypub/src/components/ListIndex.tsx index 75e219edba..4c785eead9 100644 --- a/apps/admin-x-activitypub/src/components/ListIndex.tsx +++ b/apps/admin-x-activitypub/src/components/ListIndex.tsx @@ -4,7 +4,7 @@ import articleBodyStyles from './articleBodyStyles'; import getUsername from '../utils/get-username'; import {ActivityPubAPI} from '../api/activitypub'; import {ActorProperties, ObjectProperties} from '@tryghost/admin-x-framework/api/activitypub'; -import {Avatar, Button, ButtonGroup, Heading, Icon, List, ListItem, Page, SelectOption, SettingValue, ViewContainer, ViewTab} from '@tryghost/admin-x-design-system'; +import {Avatar, Button, ButtonGroup, Heading, List, ListItem, Page, SelectOption, SettingValue, ViewContainer, ViewTab} from '@tryghost/admin-x-design-system'; import {useBrowseSite} from '@tryghost/admin-x-framework/api/site'; import {useQuery} from '@tanstack/react-query'; import {useRouting} from '@tryghost/admin-x-framework/routing'; @@ -123,7 +123,6 @@ const ActivityPubComponent: React.FC = () => { actor={activity.actor} layout={selectedOption.value} object={activity.object} - type={activity.type} /> ))} @@ -321,7 +320,7 @@ ${image && ); }; -const ObjectContentDisplay: React.FC<{actor: ActorProperties, object: ObjectProperties, layout: string, type: string }> = ({actor, object, layout, type}) => { +const ObjectContentDisplay: React.FC<{actor: ActorProperties, object: ObjectProperties, layout: string }> = ({actor, object, layout}) => { const parser = new DOMParser(); const doc = parser.parseFromString(object.content || '', 'text/html'); @@ -397,31 +396,23 @@ const ObjectContentDisplay: React.FC<{actor: ActorProperties, object: ObjectProp return ( <> {object && ( -
- {(type === 'Announce' && object.type === 'Note') &&
-
- {actor.name} reposted -
} -
- -
-
- {(type === 'Announce' && object.type === 'Note') ? object.attributedTo?.name : actor.name} -
- {(type === 'Announce' && object.type === 'Note') ? getUsername(object.attributedTo) : getUsername(actor)} - {timestamp} -
-
-
-
- {object.name && {object.name}} -
- {/*

{object.content}

*/} - {renderAttachment()} -
-
+
+ +
+
+

{actor.name}

+ {getUsername(actor)} + {timestamp} +
+
+
+ {object.name && {object.name}} +

{plainTextContent}

+ {/*

{object.content}

*/} + {renderAttachment()} +
+
diff --git a/apps/admin-x-activitypub/src/styles/index.css b/apps/admin-x-activitypub/src/styles/index.css index a59dd422e7..c3b58ac682 100644 --- a/apps/admin-x-activitypub/src/styles/index.css +++ b/apps/admin-x-activitypub/src/styles/index.css @@ -22,17 +22,4 @@ animation: bump 0.3s ease-in-out; .ap-red-heart path { fill: #F50B23; -} - -.ap-note-content a { - color: rgb(236 72 153) !important; -} - -.ap-note-content a:hover { - color: rgb(219 39 119) !important; -} - -.ap-note-content p + p { - margin-top: 1.5rem !important; -} - +} \ No newline at end of file diff --git a/apps/admin-x-design-system/src/assets/icons/reload.svg b/apps/admin-x-design-system/src/assets/icons/reload.svg deleted file mode 100644 index 5afa3c7227..0000000000 --- a/apps/admin-x-design-system/src/assets/icons/reload.svg +++ /dev/null @@ -1 +0,0 @@ -Button Refresh Arrows Streamline Icon: https://streamlinehq.com \ No newline at end of file From 1eab73c76d2d48cfa3ce15d2ec6505b37e9335e7 Mon Sep 17 00:00:00 2001 From: Kevin Ansfield Date: Thu, 1 Aug 2024 16:50:31 +0100 Subject: [PATCH 04/28] =?UTF-8?q?=F0=9F=90=9B=20Fixed=20YouTube=20live=20e?= =?UTF-8?q?mbeds=20failing=20in=20some=20situations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ref https://linear.app/tryghost/issue/ONC-197 - YouTube has started responding to video page requests with localised content when requested from certain IPs, with that localised content not containing the required `` tag pointing to the oembed endpoint - we were fetching video pages rather than the oembed endpoint for YouTube Live URLs because they are not recognised by the oembed extraction library we use - by modifying the URL from a live URL to a watch URL before we perform oembed lookup/extraction we are able to bypass the (localised) page fetch and instead grab the oembed content directly --- ghost/oembed-service/lib/OEmbedService.js | 12 +++++++++ .../test/oembed-service.test.js | 26 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/ghost/oembed-service/lib/OEmbedService.js b/ghost/oembed-service/lib/OEmbedService.js index c9876027bb..dc7b7cce48 100644 --- a/ghost/oembed-service/lib/OEmbedService.js +++ b/ghost/oembed-service/lib/OEmbedService.js @@ -373,6 +373,18 @@ class OEmbedService { try { const urlObject = new URL(url); + // YouTube has started not returning oembed tags for some live URLs + // when fetched from an IP address that's in a non-EN region. + // We convert live URLs to watch URLs so we can go straight to the + // oembed request via a known provider rather than going through the page fetch routine. + const ytLiveRegex = /^\/live\/([a-zA-Z0-9_-]+)$/; + if (urlObject.hostname === 'www.youtube.com' && ytLiveRegex.test(urlObject.pathname)) { + const videoId = ytLiveRegex.exec(urlObject.pathname)[1]; + urlObject.pathname = '/watch'; + urlObject.searchParams.set('v', videoId); + url = urlObject.toString(); + } + // Trimming solves the difference of url validation between `new URL(url)` // and metascraper. url = url.trim(); diff --git a/ghost/oembed-service/test/oembed-service.test.js b/ghost/oembed-service/test/oembed-service.test.js index 18adf678e2..2e4d45984f 100644 --- a/ghost/oembed-service/test/oembed-service.test.js +++ b/ghost/oembed-service/test/oembed-service.test.js @@ -172,5 +172,31 @@ describe('oembed-service', function () { assert.equal(response.url, 'https://www.example.com'); assert.equal(response.metadata.title, 'Example'); }); + + it('converts YT live URLs to watch URLs', async function () { + nock('https://www.youtube.com') + .get('/oembed') + .query((query) => { + // Ensure the URL is converted to a watch URL and retains existing query params. + const actual = query.url; + const expected = 'https://youtube.com/watch?param=existing&v=1234'; + + assert.equal(actual, expected, 'URL passed to oembed endpoint is incorrect'); + + return actual === expected; + }) + .reply(200, { + type: 'rich', + version: '1.0', + title: 'Test Title', + author_name: 'Test Author', + author_url: 'https://example.com/user/testauthor', + html: '', + width: 640, + height: null + }); + + await oembedService.fetchOembedDataFromUrl('https://www.youtube.com/live/1234?param=existing'); + }); }); }); From ad1a00f60dde9628c404b6a06a95b3a2800672c6 Mon Sep 17 00:00:00 2001 From: Kevin Ansfield Date: Thu, 1 Aug 2024 17:13:31 +0100 Subject: [PATCH 05/28] Fixed YT live embeds for non-www URLs ref https://github.com/TryGhost/Ghost/pull/20706 ref https://linear.app/tryghost/issue/ONC-197 - previous check for YT live match was a little too specific and required the www which should have been optional --- ghost/oembed-service/lib/OEmbedService.js | 2 +- .../test/oembed-service.test.js | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/ghost/oembed-service/lib/OEmbedService.js b/ghost/oembed-service/lib/OEmbedService.js index dc7b7cce48..85e1330b71 100644 --- a/ghost/oembed-service/lib/OEmbedService.js +++ b/ghost/oembed-service/lib/OEmbedService.js @@ -378,7 +378,7 @@ class OEmbedService { // We convert live URLs to watch URLs so we can go straight to the // oembed request via a known provider rather than going through the page fetch routine. const ytLiveRegex = /^\/live\/([a-zA-Z0-9_-]+)$/; - if (urlObject.hostname === 'www.youtube.com' && ytLiveRegex.test(urlObject.pathname)) { + if (urlObject.hostname.match(/(?:www\.)?youtube\.com/) && ytLiveRegex.test(urlObject.pathname)) { const videoId = ytLiveRegex.exec(urlObject.pathname)[1]; urlObject.pathname = '/watch'; urlObject.searchParams.set('v', videoId); diff --git a/ghost/oembed-service/test/oembed-service.test.js b/ghost/oembed-service/test/oembed-service.test.js index 2e4d45984f..7266c2a53d 100644 --- a/ghost/oembed-service/test/oembed-service.test.js +++ b/ghost/oembed-service/test/oembed-service.test.js @@ -198,5 +198,31 @@ describe('oembed-service', function () { await oembedService.fetchOembedDataFromUrl('https://www.youtube.com/live/1234?param=existing'); }); + + it('converts YT live URLs to watch URLs (non-www)', async function () { + nock('https://www.youtube.com') + .get('/oembed') + .query((query) => { + // Ensure the URL is converted to a watch URL and retains existing query params. + const actual = query.url; + const expected = 'https://youtube.com/watch?param=existing&v=1234'; + + assert.equal(actual, expected, 'URL passed to oembed endpoint is incorrect'); + + return actual === expected; + }) + .reply(200, { + type: 'rich', + version: '1.0', + title: 'Test Title', + author_name: 'Test Author', + author_url: 'https://example.com/user/testauthor', + html: '', + width: 640, + height: null + }); + + await oembedService.fetchOembedDataFromUrl('https://youtube.com/live/1234?param=existing'); + }); }); }); From f147167a291a635f041c208da81cbc3aff5bb1b2 Mon Sep 17 00:00:00 2001 From: Chris Raible Date: Thu, 1 Aug 2024 13:38:59 -0700 Subject: [PATCH 06/28] Added SQLite and MySQL check to migration review checklist (#20708) no issue - knex can behave differently with SQLite and MySQL, which can cause migrations to behave differently in each database. This PR adds a check to the migration review checklist to remind us to test the migration in both databases before merging. --- .github/workflows/migration-review.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/migration-review.yml b/.github/workflows/migration-review.yml index 18d0adbcf1..885fa98f7e 100644 --- a/.github/workflows/migration-review.yml +++ b/.github/workflows/migration-review.yml @@ -38,6 +38,7 @@ jobs: - [ ] Uses the correct utils - [ ] Contains a minimal changeset - [ ] Does not mix DDL/DML operations + - [ ] Tested in MySQL and SQLite ### Schema changes From 7522b74e1f9fae259dfb4172ce9a96769bb30218 Mon Sep 17 00:00:00 2001 From: Chris Raible Date: Thu, 1 Aug 2024 16:30:50 -0700 Subject: [PATCH 07/28] Backfilled missing offer redemptions (#20647) ref https://linear.app/tryghost/issue/ENG-1440/backfill-offer-redemption-data-with-a-migration There was a bug that caused offer redemptions to not be recorded in the database for some subscriptions that were created with an offer. However, we still have the `offer_id` attached to the subscriptions, so we are able to backfill the missing redemptions. The bug was fixed in https://github.com/TryGhost/Ghost/commit/bf895e6e99e6fe8e90f0d582fa6e38d5c4e37f5d This commit only contains a migration, which queries for subscriptions that have an `offer_id` but do not have any offer redemptions recorded, and adds any missing redemptions to the `offer_redemptions` table. --- ...-30-19-51-06-backfill-offer-redemptions.js | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 ghost/core/core/server/data/migrations/versions/5.89/2024-07-30-19-51-06-backfill-offer-redemptions.js diff --git a/ghost/core/core/server/data/migrations/versions/5.89/2024-07-30-19-51-06-backfill-offer-redemptions.js b/ghost/core/core/server/data/migrations/versions/5.89/2024-07-30-19-51-06-backfill-offer-redemptions.js new file mode 100644 index 0000000000..b37b1e3ab7 --- /dev/null +++ b/ghost/core/core/server/data/migrations/versions/5.89/2024-07-30-19-51-06-backfill-offer-redemptions.js @@ -0,0 +1,64 @@ +// For information on writing migrations, see https://www.notion.so/ghost/Database-migrations-eb5b78c435d741d2b34a582d57c24253 + +const logging = require('@tryghost/logging'); +const DatabaseInfo = require('@tryghost/database-info'); +const {default: ObjectID} = require('bson-objectid'); + +// For DML - data changes +const {createTransactionalMigration} = require('../../utils'); + +module.exports = createTransactionalMigration( + async function up(knex) { + // Backfill missing offer redemptions + try { + // Select all subscriptions that have an `offer_id` but don't have a matching row in the `offer_redemptions` table + logging.info('Selecting subscriptions with missing offer redemptions'); + const result = await knex.raw(` + SELECT + mscs.id AS subscription_id, + mscs.offer_id, + mscs.start_date AS created_at, + m.id AS member_id + FROM + members_stripe_customers_subscriptions mscs + LEFT JOIN + offer_redemptions r ON r.subscription_id = mscs.id + INNER JOIN + members_stripe_customers msc ON mscs.customer_id = msc.customer_id + INNER JOIN + members m ON msc.member_id = m.id + WHERE + mscs.offer_id IS NOT NULL and r.id IS NULL; + `); + + // knex.raw() returns a different result depending on the database. We need to handle either case + let rows = []; + if (DatabaseInfo.isSQLite(knex)) { + rows = result; + } else { + rows = result[0]; + } + + // Do the backfil + if (rows && rows.length > 0) { + logging.info(`Backfilling ${rows.length} offer redemptions`); + // Generate IDs for each row + const offerRedemptions = rows.map((row) => { + return { + id: (new ObjectID()).toHexString(), + ...row + }; + }); + // Batch insert rows into the offer_redemptions table + await knex.batchInsert('offer_redemptions', offerRedemptions, 1000); + } else { + logging.info('No offer redemptions to backfill'); + } + } catch (error) { + logging.error(`Error backfilling offer redemptions: ${error.message}`); + } + }, + async function down() { + // We don't want to un-backfill data, so do nothing here. + } +); \ No newline at end of file From 9d44d62b620fa556796588b8456f3ee7bb228b44 Mon Sep 17 00:00:00 2001 From: Ghost CI <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 15:05:06 +0000 Subject: [PATCH 08/28] v5.89.0 --- ghost/admin/package.json | 2 +- ghost/core/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ghost/admin/package.json b/ghost/admin/package.json index 61ca1e00f4..155b57a412 100644 --- a/ghost/admin/package.json +++ b/ghost/admin/package.json @@ -1,6 +1,6 @@ { "name": "ghost-admin", - "version": "5.88.3", + "version": "5.89.0", "description": "Ember.js admin client for Ghost", "author": "Ghost Foundation", "homepage": "http://ghost.org", diff --git a/ghost/core/package.json b/ghost/core/package.json index 571cbd3a11..70c2781e17 100644 --- a/ghost/core/package.json +++ b/ghost/core/package.json @@ -1,6 +1,6 @@ { "name": "ghost", - "version": "5.88.3", + "version": "5.89.0", "description": "The professional publishing platform", "author": "Ghost Foundation", "homepage": "https://ghost.org", From 0a1920ff2ccbca503876ad108e22f7aea60896b1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 01:53:45 +0000 Subject: [PATCH 09/28] Update dependency lint-staged to v15.2.8 --- package.json | 2 +- yarn.lock | 119 +++++++++++++++++++++++++++++---------------------- 2 files changed, 70 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index 45db669c69..78f8ba82e2 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "eslint-plugin-ghost": "3.4.0", "eslint-plugin-react": "7.33.0", "husky": "8.0.3", - "lint-staged": "15.2.7", + "lint-staged": "15.2.8", "nx": "16.8.1", "rimraf": "5.0.9", "ts-node": "10.9.2", diff --git a/yarn.lock b/yarn.lock index 1b373200a5..e7912b56e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9862,10 +9862,12 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.21.3" -ansi-escapes@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.1.tgz#76c54ce9b081dad39acec4b5d53377913825fb0f" - integrity sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig== +ansi-escapes@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz#00fc19f491bbb18e1d481b97868204f92109bfe7" + integrity sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== + dependencies: + environment "^1.0.0" ansi-html@^0.0.7: version "0.0.7" @@ -13120,12 +13122,12 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" - integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== dependencies: - restore-cursor "^4.0.0" + restore-cursor "^5.0.0" cli-progress@3.12.0: version "3.12.0" @@ -14379,10 +14381,10 @@ debug@3.2.7, debug@^3.0.1, debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: dependencies: ms "^2.1.1" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4: - version "4.3.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" - integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.6: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== dependencies: ms "2.1.2" @@ -16654,6 +16656,11 @@ envinfo@^7.7.3: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== +environment@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" + integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== + eol@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/eol/-/eol-0.9.1.tgz#f701912f504074be35c6117a5c4ade49cd547acd" @@ -22184,7 +22191,7 @@ lilconfig@^2.0.5, lilconfig@^2.1.0: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== -lilconfig@^3.0.0, lilconfig@^3.1.1, lilconfig@^3.1.2, lilconfig@~3.1.1: +lilconfig@^3.0.0, lilconfig@^3.1.1, lilconfig@^3.1.2, lilconfig@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== @@ -22238,21 +22245,21 @@ linkifyjs@^4.1.0: resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-4.1.1.tgz#73d427e3bbaaf4ca8e71c589ad4ffda11a9a5fde" integrity sha512-zFN/CTVmbcVef+WaDXT63dNzzkfRBKT1j464NJQkV7iSgJU0sLBus9W0HBwnXK13/hf168pbrx/V/bjEHOXNHA== -lint-staged@15.2.7: - version "15.2.7" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.7.tgz#97867e29ed632820c0fb90be06cd9ed384025649" - integrity sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw== +lint-staged@15.2.8: + version "15.2.8" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.8.tgz#5e19eb7b4dbb922f56fafb4635b44ee3c92f7322" + integrity sha512-PUWFf2zQzsd9EFU+kM1d7UP+AZDbKFKuj+9JNVTBkhUFhbg4MAt6WfyMMwBfM4lYqd4D2Jwac5iuTu9rVj4zCQ== dependencies: chalk "~5.3.0" commander "~12.1.0" - debug "~4.3.4" + debug "~4.3.6" execa "~8.0.1" - lilconfig "~3.1.1" - listr2 "~8.2.1" + lilconfig "~3.1.2" + listr2 "~8.2.4" micromatch "~4.0.7" pidtree "~0.6.0" string-argv "~0.3.2" - yaml "~2.4.2" + yaml "~2.5.0" liquid-fire@0.34.0: version "0.34.0" @@ -22285,16 +22292,16 @@ liquid-wormhole@3.0.1: ember-decorators "^6.1.1" perf-primitives RobbieTheWagner/perf-primitives#a6a26f11497ca27be3763a88a5f20744e424756b -listr2@~8.2.1: - version "8.2.1" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.1.tgz#06a1a6efe85f23c5324180d7c1ddbd96b5eefd6d" - integrity sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g== +listr2@~8.2.4: + version "8.2.4" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.4.tgz#486b51cbdb41889108cb7e2c90eeb44519f5a77f" + integrity sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g== dependencies: cli-truncate "^4.0.0" colorette "^2.0.20" eventemitter3 "^5.0.1" - log-update "^6.0.0" - rfdc "^1.3.1" + log-update "^6.1.0" + rfdc "^1.4.1" wrap-ansi "^9.0.0" livereload-js@^3.3.1: @@ -22737,14 +22744,14 @@ log-symbols@^2.2.0: dependencies: chalk "^2.0.1" -log-update@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.0.0.tgz#0ddeb7ac6ad658c944c1de902993fce7c33f5e59" - integrity sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw== +log-update@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" + integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== dependencies: - ansi-escapes "^6.2.0" - cli-cursor "^4.0.0" - slice-ansi "^7.0.0" + ansi-escapes "^7.0.0" + cli-cursor "^5.0.0" + slice-ansi "^7.1.0" strip-ansi "^7.1.0" wrap-ansi "^9.0.0" @@ -23507,6 +23514,11 @@ mimic-fn@~3.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== + mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -24881,6 +24893,13 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" +onetime@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== + dependencies: + mimic-function "^5.0.0" + open@^8.0.4, open@^8.4.0: version "8.4.2" resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" @@ -28134,13 +28153,13 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -restore-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" - integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" + onetime "^7.0.0" + signal-exit "^4.1.0" ret@~0.1.10: version "0.1.15" @@ -28164,10 +28183,10 @@ rewire@6.0.0: dependencies: eslint "^7.32.0" -rfdc@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" - integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== +rfdc@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rgb-regex@^1.0.1: version "1.0.1" @@ -28951,7 +28970,7 @@ slice-ansi@^5.0.0: ansi-styles "^6.0.0" is-fullwidth-code-point "^4.0.0" -slice-ansi@^7.0.0: +slice-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== @@ -32238,10 +32257,10 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.1.1, yaml@^2.4.2, yaml@~2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.2.tgz#7a2b30f2243a5fc299e1f14ca58d475ed4bc5362" - integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== +yaml@^2.1.1, yaml@^2.4.2, yaml@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== yargs-parser@20.2.4: version "20.2.4" From d82f97efcc1ffb45982a472a4e4558237c86fc26 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 01:54:14 +0000 Subject: [PATCH 10/28] Update dependency luxon to v3.5.0 --- ghost/core/package.json | 2 +- ghost/stats-service/package.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ghost/core/package.json b/ghost/core/package.json index 70c2781e17..6594fe88cc 100644 --- a/ghost/core/package.json +++ b/ghost/core/package.json @@ -210,7 +210,7 @@ "knex-migrator": "5.2.1", "lib0": "0.2.94", "lodash": "4.17.21", - "luxon": "3.4.4", + "luxon": "3.5.0", "moment": "2.24.0", "moment-timezone": "0.5.45", "multer": "1.4.4", diff --git a/ghost/stats-service/package.json b/ghost/stats-service/package.json index 3d1bd5715b..0585c9025a 100644 --- a/ghost/stats-service/package.json +++ b/ghost/stats-service/package.json @@ -25,7 +25,7 @@ "@types/sinon": "10.0.16", "c8": "8.0.1", "knex": "2.4.2", - "luxon": "3.4.4", + "luxon": "3.5.0", "mocha": "10.2.0", "should": "13.2.3", "sinon": "15.2.0", diff --git a/yarn.lock b/yarn.lock index e7912b56e2..af84ea4338 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22884,10 +22884,10 @@ ltgt@^2.1.2: resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== -luxon@3.4.4, luxon@^3.0.0, luxon@^3.3.0: - version "3.4.4" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" - integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA== +luxon@3.5.0, luxon@^3.0.0, luxon@^3.3.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.5.0.tgz#6b6f65c5cd1d61d1fd19dbf07ee87a50bf4b8e20" + integrity sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ== luxon@^1.26.0: version "1.28.0" From 4b28812861f1e6a1e8c7346d84c4b9951ff1ba7f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 14:14:06 +0000 Subject: [PATCH 11/28] Update TryGhost packages --- ghost/adapter-manager/package.json | 2 +- ghost/api-framework/package.json | 10 +- ghost/audience-feedback/package.json | 4 +- ghost/bootstrap-socket/package.json | 2 +- ghost/collections/package.json | 8 +- ghost/core/package.json | 38 +- .../package.json | 6 +- ghost/data-generator/package.json | 4 +- ghost/domain-events/package.json | 2 +- ghost/email-analytics-service/package.json | 2 +- ghost/email-service/package.json | 8 +- ghost/ghost/package.json | 2 +- ghost/importer-revue/package.json | 2 +- ghost/job-manager/package.json | 4 +- ghost/link-tracking/package.json | 4 +- ghost/magic-link/package.json | 6 +- ghost/mail-events/package.json | 4 +- ghost/mailgun-client/package.json | 4 +- ghost/members-api/package.json | 8 +- ghost/members-events-service/package.json | 4 +- ghost/members-importer/package.json | 6 +- ghost/members-ssr/package.json | 4 +- ghost/milestones/package.json | 2 +- ghost/minifier/package.json | 6 +- ghost/mw-api-version-mismatch/package.json | 2 +- ghost/mw-error-handler/package.json | 8 +- ghost/mw-version-match/package.json | 4 +- ghost/oembed-service/package.json | 6 +- ghost/offers/package.json | 2 +- ghost/package-json/package.json | 4 +- ghost/payments/package.json | 2 +- ghost/posts-service/package.json | 4 +- ghost/recommendations/package.json | 6 +- ghost/session-service/package.json | 2 +- ghost/settings-path-manager/package.json | 4 +- ghost/slack-notifications/package.json | 6 +- ghost/stripe/package.json | 6 +- ghost/tiers/package.json | 4 +- ghost/update-check-service/package.json | 8 +- ghost/verification-trigger/package.json | 2 +- ghost/webmentions/package.json | 4 +- package.json | 4 +- yarn.lock | 1754 ++++++++--------- 43 files changed, 931 insertions(+), 1043 deletions(-) diff --git a/ghost/adapter-manager/package.json b/ghost/adapter-manager/package.json index f262c6e8a8..68d1f516a3 100644 --- a/ghost/adapter-manager/package.json +++ b/ghost/adapter-manager/package.json @@ -24,6 +24,6 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2" + "@tryghost/errors": "1.3.5" } } diff --git a/ghost/api-framework/package.json b/ghost/api-framework/package.json index 82afad8e19..cd4310d1a6 100644 --- a/ghost/api-framework/package.json +++ b/ghost/api-framework/package.json @@ -24,11 +24,11 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/debug": "0.1.30", - "@tryghost/errors": "1.3.2", - "@tryghost/promise": "0.3.10", - "@tryghost/tpl": "0.1.30", - "@tryghost/validator": "0.2.11", + "@tryghost/debug": "0.1.32", + "@tryghost/errors": "1.3.5", + "@tryghost/promise": "0.3.12", + "@tryghost/tpl": "0.1.32", + "@tryghost/validator": "0.2.14", "jsonpath": "1.1.1", "lodash": "4.17.21" } diff --git a/ghost/audience-feedback/package.json b/ghost/audience-feedback/package.json index 894ca81fec..d3e8b8ebe0 100644 --- a/ghost/audience-feedback/package.json +++ b/ghost/audience-feedback/package.json @@ -24,8 +24,8 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", - "@tryghost/tpl": "0.1.30", + "@tryghost/errors": "1.3.5", + "@tryghost/tpl": "0.1.32", "bson-objectid": "2.0.4" } } diff --git a/ghost/bootstrap-socket/package.json b/ghost/bootstrap-socket/package.json index 102a925e8b..d59ce01e6a 100644 --- a/ghost/bootstrap-socket/package.json +++ b/ghost/bootstrap-socket/package.json @@ -24,6 +24,6 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/logging": "2.4.15" + "@tryghost/logging": "2.4.18" } } diff --git a/ghost/collections/package.json b/ghost/collections/package.json index 39f9e00454..5de7caac5a 100644 --- a/ghost/collections/package.json +++ b/ghost/collections/package.json @@ -26,14 +26,14 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/debug": "0.1.30", - "@tryghost/errors": "1.3.2", + "@tryghost/debug": "0.1.32", + "@tryghost/errors": "1.3.5", "@tryghost/in-memory-repository": "0.0.0", - "@tryghost/logging": "2.4.15", + "@tryghost/logging": "2.4.18", "@tryghost/nql": "0.12.3", "@tryghost/nql-filter-expansions": "0.0.0", "@tryghost/post-events": "0.0.0", - "@tryghost/tpl": "0.1.30", + "@tryghost/tpl": "0.1.32", "bson-objectid": "2.0.4", "lodash": "4.17.21" }, diff --git a/ghost/core/package.json b/ghost/core/package.json index 6594fe88cc..3bcac936c0 100644 --- a/ghost/core/package.json +++ b/ghost/core/package.json @@ -76,7 +76,7 @@ "@tryghost/api-framework": "0.0.0", "@tryghost/api-version-compatibility-service": "0.0.0", "@tryghost/audience-feedback": "0.0.0", - "@tryghost/bookshelf-plugins": "0.6.19", + "@tryghost/bookshelf-plugins": "0.6.21", "@tryghost/bootstrap-socket": "0.0.0", "@tryghost/collections": "0.0.0", "@tryghost/color-utils": "0.2.2", @@ -84,24 +84,24 @@ "@tryghost/constants": "0.0.0", "@tryghost/custom-theme-settings-service": "0.0.0", "@tryghost/data-generator": "0.0.0", - "@tryghost/database-info": "0.3.24", - "@tryghost/debug": "0.1.30", + "@tryghost/database-info": "0.3.27", + "@tryghost/debug": "0.1.32", "@tryghost/domain-events": "0.0.0", "@tryghost/donations": "0.0.0", "@tryghost/dynamic-routing-events": "0.0.0", "@tryghost/email-analytics-provider-mailgun": "0.0.0", "@tryghost/email-analytics-service": "0.0.0", "@tryghost/email-content-generator": "0.0.0", - "@tryghost/email-mock-receiver": "0.3.6", + "@tryghost/email-mock-receiver": "0.3.8", "@tryghost/email-service": "0.0.0", "@tryghost/email-suppression-list": "0.0.0", - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "@tryghost/express-dynamic-redirects": "0.0.0", "@tryghost/external-media-inliner": "0.0.0", "@tryghost/ghost": "0.0.0", "@tryghost/helpers": "1.1.90", "@tryghost/html-to-plaintext": "0.0.0", - "@tryghost/http-cache-utils": "0.1.15", + "@tryghost/http-cache-utils": "0.1.17", "@tryghost/i18n": "0.0.0", "@tryghost/image-transform": "1.3.0", "@tryghost/importer-handler-content-files": "0.0.0", @@ -119,7 +119,7 @@ "@tryghost/link-redirects": "0.0.0", "@tryghost/link-replacer": "0.0.0", "@tryghost/link-tracking": "0.0.0", - "@tryghost/logging": "2.4.15", + "@tryghost/logging": "2.4.18", "@tryghost/magic-link": "0.0.0", "@tryghost/mail-events": "0.0.0", "@tryghost/mailgun-client": "0.0.0", @@ -143,16 +143,16 @@ "@tryghost/mw-session-from-token": "0.0.0", "@tryghost/mw-version-match": "0.0.0", "@tryghost/mw-vhost": "0.0.0", - "@tryghost/nodemailer": "0.3.42", + "@tryghost/nodemailer": "0.3.45", "@tryghost/nql": "0.12.3", "@tryghost/oembed-service": "0.0.0", "@tryghost/package-json": "0.0.0", "@tryghost/post-revisions": "0.0.0", "@tryghost/posts-service": "0.0.0", - "@tryghost/pretty-cli": "1.2.42", - "@tryghost/promise": "0.3.10", + "@tryghost/pretty-cli": "1.2.44", + "@tryghost/promise": "0.3.12", "@tryghost/recommendations": "0.0.0", - "@tryghost/request": "1.0.5", + "@tryghost/request": "1.0.8", "@tryghost/security": "0.0.0", "@tryghost/session-service": "0.0.0", "@tryghost/settings-path-manager": "0.0.0", @@ -162,14 +162,14 @@ "@tryghost/stats-service": "0.0.0", "@tryghost/string": "0.2.12", "@tryghost/tiers": "0.0.0", - "@tryghost/tpl": "0.1.30", + "@tryghost/tpl": "0.1.32", "@tryghost/update-check-service": "0.0.0", "@tryghost/url-utils": "4.4.8", - "@tryghost/validator": "0.2.11", + "@tryghost/validator": "0.2.14", "@tryghost/verification-trigger": "0.0.0", - "@tryghost/version": "0.1.28", + "@tryghost/version": "0.1.30", "@tryghost/webmentions": "0.0.0", - "@tryghost/zip": "1.1.43", + "@tryghost/zip": "1.1.46", "amperize": "0.6.1", "body-parser": "1.20.2", "bookshelf": "1.2.0", @@ -237,8 +237,8 @@ "devDependencies": { "@actions/core": "1.10.1", "@playwright/test": "1.38.1", - "@tryghost/express-test": "0.13.12", - "@tryghost/webhook-mock-receiver": "0.2.12", + "@tryghost/express-test": "0.13.15", + "@tryghost/webhook-mock-receiver": "0.2.14", "@types/common-tags": "1.8.4", "c8": "8.0.1", "cli-progress": "3.12.0", @@ -265,8 +265,8 @@ "toml": "3.0.0" }, "resolutions": { - "@tryghost/errors": "1.3.2", - "@tryghost/logging": "2.4.15", + "@tryghost/errors": "1.3.5", + "@tryghost/logging": "2.4.18", "jackspeak": "2.1.1", "moment": "2.24.0", "moment-timezone": "0.5.45" diff --git a/ghost/custom-theme-settings-service/package.json b/ghost/custom-theme-settings-service/package.json index 35db5859f3..f2ed6b8694 100644 --- a/ghost/custom-theme-settings-service/package.json +++ b/ghost/custom-theme-settings-service/package.json @@ -25,10 +25,10 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/debug": "0.1.30", - "@tryghost/errors": "1.3.2", + "@tryghost/debug": "0.1.32", + "@tryghost/errors": "1.3.5", "@tryghost/nql": "0.12.3", - "@tryghost/tpl": "0.1.30", + "@tryghost/tpl": "0.1.32", "lodash": "4.17.21" } } diff --git a/ghost/data-generator/package.json b/ghost/data-generator/package.json index 07686799ae..97deb478a2 100644 --- a/ghost/data-generator/package.json +++ b/ghost/data-generator/package.json @@ -18,7 +18,7 @@ "lib" ], "devDependencies": { - "@tryghost/debug": "0.1.30", + "@tryghost/debug": "0.1.32", "c8": "8.0.1", "knex": "2.4.2", "mocha": "10.2.0", @@ -27,7 +27,7 @@ }, "dependencies": { "@faker-js/faker": "7.6.0", - "@tryghost/root-utils": "0.3.28", + "@tryghost/root-utils": "0.3.30", "@tryghost/string": "0.2.12", "csv-writer": "1.6.0", "probability-distributions": "0.9.1" diff --git a/ghost/domain-events/package.json b/ghost/domain-events/package.json index 103251b27f..70be7359d4 100644 --- a/ghost/domain-events/package.json +++ b/ghost/domain-events/package.json @@ -19,7 +19,7 @@ "lib" ], "devDependencies": { - "@tryghost/logging": "2.4.15", + "@tryghost/logging": "2.4.18", "c8": "8.0.1", "mocha": "10.2.0", "should": "13.2.3" diff --git a/ghost/email-analytics-service/package.json b/ghost/email-analytics-service/package.json index 43be69c86e..473c67fad3 100644 --- a/ghost/email-analytics-service/package.json +++ b/ghost/email-analytics-service/package.json @@ -23,7 +23,7 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/debug": "0.1.30", + "@tryghost/debug": "0.1.32", "lodash": "4.17.21" } } diff --git a/ghost/email-service/package.json b/ghost/email-service/package.json index 96842c6917..b8e2d30751 100644 --- a/ghost/email-service/package.json +++ b/ghost/email-service/package.json @@ -27,12 +27,12 @@ "dependencies": { "@tryghost/color-utils": "0.2.2", "@tryghost/email-events": "0.0.0", - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "@tryghost/html-to-plaintext": "0.0.0", "@tryghost/kg-default-cards": "10.0.6", - "@tryghost/logging": "2.4.15", - "@tryghost/tpl": "0.1.30", - "@tryghost/validator": "0.2.11", + "@tryghost/logging": "2.4.18", + "@tryghost/tpl": "0.1.32", + "@tryghost/validator": "0.2.14", "bson-objectid": "2.0.4", "cheerio": "0.22.0", "handlebars": "4.7.8", diff --git a/ghost/ghost/package.json b/ghost/ghost/package.json index cbfae89329..cc07181be9 100644 --- a/ghost/ghost/package.json +++ b/ghost/ghost/package.json @@ -36,7 +36,7 @@ "@nestjs/common": "10.3.10", "@nestjs/core": "10.3.10", "@nestjs/platform-express": "10.3.10", - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "bson-objectid": "2.0.4", "express": "4.19.2", "reflect-metadata": "0.1.14", diff --git a/ghost/importer-revue/package.json b/ghost/importer-revue/package.json index d6046580ba..c2e5e14a2a 100644 --- a/ghost/importer-revue/package.json +++ b/ghost/importer-revue/package.json @@ -21,7 +21,7 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/debug": "0.1.30", + "@tryghost/debug": "0.1.32", "@tryghost/kg-default-cards": "10.0.6", "@tryghost/string": "0.2.12", "lodash": "4.17.21", diff --git a/ghost/job-manager/package.json b/ghost/job-manager/package.json index 77a6e0af54..b89f594892 100644 --- a/ghost/job-manager/package.json +++ b/ghost/job-manager/package.json @@ -28,8 +28,8 @@ }, "dependencies": { "@breejs/later": "4.2.0", - "@tryghost/errors": "1.3.2", - "@tryghost/logging": "2.4.15", + "@tryghost/errors": "1.3.5", + "@tryghost/logging": "2.4.18", "bree": "6.5.0", "cron-validate": "1.4.5", "fastq": "1.17.1", diff --git a/ghost/link-tracking/package.json b/ghost/link-tracking/package.json index 455f963288..a82652c3e4 100644 --- a/ghost/link-tracking/package.json +++ b/ghost/link-tracking/package.json @@ -24,10 +24,10 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "@tryghost/link-redirects": "0.0.0", "@tryghost/nql": "0.12.3", - "@tryghost/tpl": "0.1.30", + "@tryghost/tpl": "0.1.32", "bson-objectid": "2.0.4", "lodash": "4.17.21", "moment": "2.29.4" diff --git a/ghost/magic-link/package.json b/ghost/magic-link/package.json index e9cab6d08a..dad7f48e82 100644 --- a/ghost/magic-link/package.json +++ b/ghost/magic-link/package.json @@ -26,9 +26,9 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", - "@tryghost/tpl": "0.1.30", - "@tryghost/validator": "0.2.11", + "@tryghost/errors": "1.3.5", + "@tryghost/tpl": "0.1.32", + "@tryghost/validator": "0.2.14", "jsonwebtoken": "8.5.1" } } diff --git a/ghost/mail-events/package.json b/ghost/mail-events/package.json index db55eee5a9..7a9978a298 100644 --- a/ghost/mail-events/package.json +++ b/ghost/mail-events/package.json @@ -25,9 +25,9 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "@tryghost/in-memory-repository": "0.0.0", - "@tryghost/tpl": "0.1.30" + "@tryghost/tpl": "0.1.32" }, "c8": { "exclude": [ diff --git a/ghost/mailgun-client/package.json b/ghost/mailgun-client/package.json index f8c09d69be..eb8a288b18 100644 --- a/ghost/mailgun-client/package.json +++ b/ghost/mailgun-client/package.json @@ -24,8 +24,8 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/debug": "0.1.30", - "@tryghost/logging": "2.4.15", + "@tryghost/debug": "0.1.32", + "@tryghost/logging": "2.4.18", "@tryghost/metrics": "1.0.34", "form-data": "4.0.0", "lodash": "4.17.21", diff --git a/ghost/members-api/package.json b/ghost/members-api/package.json index d3e004e6db..e6cb3a542e 100644 --- a/ghost/members-api/package.json +++ b/ghost/members-api/package.json @@ -31,14 +31,14 @@ }, "dependencies": { "@tryghost/domain-events": "0.0.0", - "@tryghost/errors": "1.3.2", - "@tryghost/logging": "2.4.15", + "@tryghost/errors": "1.3.5", + "@tryghost/logging": "2.4.18", "@tryghost/magic-link": "0.0.0", "@tryghost/member-events": "0.0.0", "@tryghost/members-payments": "0.0.0", "@tryghost/nql": "0.12.3", - "@tryghost/tpl": "0.1.30", - "@tryghost/validator": "0.2.11", + "@tryghost/tpl": "0.1.32", + "@tryghost/validator": "0.2.14", "@types/jsonwebtoken": "9.0.6", "body-parser": "1.20.2", "bson-objectid": "2.0.4", diff --git a/ghost/members-events-service/package.json b/ghost/members-events-service/package.json index 566df42419..4d431e5c92 100644 --- a/ghost/members-events-service/package.json +++ b/ghost/members-events-service/package.json @@ -26,8 +26,8 @@ }, "dependencies": { "@tryghost/domain-events": "0.0.0", - "@tryghost/errors": "1.3.2", - "@tryghost/logging": "2.4.15", + "@tryghost/errors": "1.3.5", + "@tryghost/logging": "2.4.18", "@tryghost/member-events": "0.0.0", "moment-timezone": "0.5.34" } diff --git a/ghost/members-importer/package.json b/ghost/members-importer/package.json index d681e9d851..7727b98d4a 100644 --- a/ghost/members-importer/package.json +++ b/ghost/members-importer/package.json @@ -25,11 +25,11 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", - "@tryghost/logging": "2.4.15", + "@tryghost/errors": "1.3.5", + "@tryghost/logging": "2.4.18", "@tryghost/members-csv": "0.0.0", "@tryghost/metrics": "1.0.34", - "@tryghost/tpl": "0.1.30", + "@tryghost/tpl": "0.1.32", "moment-timezone": "0.5.45" } } diff --git a/ghost/members-ssr/package.json b/ghost/members-ssr/package.json index fcc1b099fe..72a485a8de 100644 --- a/ghost/members-ssr/package.json +++ b/ghost/members-ssr/package.json @@ -26,8 +26,8 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/debug": "0.1.30", - "@tryghost/errors": "1.3.2", + "@tryghost/debug": "0.1.32", + "@tryghost/errors": "1.3.5", "cookies": "0.9.1", "jsonwebtoken": "8.5.1" } diff --git a/ghost/milestones/package.json b/ghost/milestones/package.json index 80d92a0e80..0723edd9cb 100644 --- a/ghost/milestones/package.json +++ b/ghost/milestones/package.json @@ -23,7 +23,7 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "bson-objectid": "2.0.4" } } diff --git a/ghost/minifier/package.json b/ghost/minifier/package.json index 6a6e1abfb9..e9db19f5b7 100644 --- a/ghost/minifier/package.json +++ b/ghost/minifier/package.json @@ -24,9 +24,9 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/debug": "0.1.30", - "@tryghost/errors": "1.3.2", - "@tryghost/tpl": "0.1.30", + "@tryghost/debug": "0.1.32", + "@tryghost/errors": "1.3.5", + "@tryghost/tpl": "0.1.32", "csso": "5.0.5", "terser": "5.31.3", "tiny-glob": "0.2.9" diff --git a/ghost/mw-api-version-mismatch/package.json b/ghost/mw-api-version-mismatch/package.json index 9bcc10c009..727eedf455 100644 --- a/ghost/mw-api-version-mismatch/package.json +++ b/ghost/mw-api-version-mismatch/package.json @@ -18,7 +18,7 @@ "lib" ], "devDependencies": { - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "c8": "8.0.1", "mocha": "10.2.0", "sinon": "15.2.0" diff --git a/ghost/mw-error-handler/package.json b/ghost/mw-error-handler/package.json index 208718369f..15130d7b9e 100644 --- a/ghost/mw-error-handler/package.json +++ b/ghost/mw-error-handler/package.json @@ -23,10 +23,10 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/debug": "0.1.30", - "@tryghost/errors": "1.3.2", - "@tryghost/http-cache-utils": "0.1.15", - "@tryghost/tpl": "0.1.30", + "@tryghost/debug": "0.1.32", + "@tryghost/errors": "1.3.5", + "@tryghost/http-cache-utils": "0.1.17", + "@tryghost/tpl": "0.1.32", "lodash": "4.17.21", "semver": "7.6.3" } diff --git a/ghost/mw-version-match/package.json b/ghost/mw-version-match/package.json index 890676ee29..7f3dc6705a 100644 --- a/ghost/mw-version-match/package.json +++ b/ghost/mw-version-match/package.json @@ -23,8 +23,8 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", - "@tryghost/tpl": "0.1.30", + "@tryghost/errors": "1.3.5", + "@tryghost/tpl": "0.1.32", "semver": "7.6.3" } } diff --git a/ghost/oembed-service/package.json b/ghost/oembed-service/package.json index 8708ee9d69..187381fe4a 100644 --- a/ghost/oembed-service/package.json +++ b/ghost/oembed-service/package.json @@ -23,9 +23,9 @@ }, "dependencies": { "@extractus/oembed-extractor": "3.2.1", - "@tryghost/errors": "1.3.2", - "@tryghost/logging": "2.4.15", - "@tryghost/tpl": "0.1.30", + "@tryghost/errors": "1.3.5", + "@tryghost/logging": "2.4.18", + "@tryghost/tpl": "0.1.32", "charset": "1.0.1", "cheerio": "0.22.0", "iconv-lite": "0.6.3", diff --git a/ghost/offers/package.json b/ghost/offers/package.json index aa104048a9..25d02f8180 100644 --- a/ghost/offers/package.json +++ b/ghost/offers/package.json @@ -26,7 +26,7 @@ }, "dependencies": { "@tryghost/domain-events": "0.0.0", - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "@tryghost/mongo-utils": "0.6.2", "@tryghost/string": "0.2.12", "lodash": "4.17.21" diff --git a/ghost/package-json/package.json b/ghost/package-json/package.json index 4b3d8ea228..60d3edb3fc 100644 --- a/ghost/package-json/package.json +++ b/ghost/package-json/package.json @@ -25,8 +25,8 @@ "tmp": "0.2.1" }, "dependencies": { - "@tryghost/errors": "1.3.2", - "@tryghost/tpl": "0.1.30", + "@tryghost/errors": "1.3.5", + "@tryghost/tpl": "0.1.32", "fs-extra": "11.2.0", "lodash": "4.17.21" } diff --git a/ghost/payments/package.json b/ghost/payments/package.json index aa72723503..8bd5acfe64 100644 --- a/ghost/payments/package.json +++ b/ghost/payments/package.json @@ -25,7 +25,7 @@ }, "dependencies": { "@tryghost/domain-events": "0.0.0", - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "@tryghost/members-offers": "0.0.0", "@tryghost/tiers": "0.0.0" } diff --git a/ghost/posts-service/package.json b/ghost/posts-service/package.json index b9b913a72a..8119717be7 100644 --- a/ghost/posts-service/package.json +++ b/ghost/posts-service/package.json @@ -23,10 +23,10 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "@tryghost/nql": "0.12.3", "@tryghost/post-events": "0.0.0", - "@tryghost/tpl": "0.1.30", + "@tryghost/tpl": "0.1.32", "bson-objectid": "2.0.4" } } diff --git a/ghost/recommendations/package.json b/ghost/recommendations/package.json index 530e773076..b380c88926 100644 --- a/ghost/recommendations/package.json +++ b/ghost/recommendations/package.json @@ -30,10 +30,10 @@ "typescript": "5.4.5" }, "dependencies": { - "@tryghost/tpl": "0.1.30", - "@tryghost/errors": "1.3.2", + "@tryghost/tpl": "0.1.32", + "@tryghost/errors": "1.3.5", "@tryghost/in-memory-repository": "0.0.0", "@tryghost/bookshelf-repository": "0.0.0", - "@tryghost/logging": "2.4.15" + "@tryghost/logging": "2.4.18" } } diff --git a/ghost/session-service/package.json b/ghost/session-service/package.json index b93b13c641..082e5a48a3 100644 --- a/ghost/session-service/package.json +++ b/ghost/session-service/package.json @@ -25,6 +25,6 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2" + "@tryghost/errors": "1.3.5" } } diff --git a/ghost/settings-path-manager/package.json b/ghost/settings-path-manager/package.json index 8bcf869280..d9d75d97bd 100644 --- a/ghost/settings-path-manager/package.json +++ b/ghost/settings-path-manager/package.json @@ -24,8 +24,8 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", - "@tryghost/tpl": "0.1.30", + "@tryghost/errors": "1.3.5", + "@tryghost/tpl": "0.1.32", "date-fns": "2.30.0" } } diff --git a/ghost/slack-notifications/package.json b/ghost/slack-notifications/package.json index 0c8307766e..b728f7b816 100644 --- a/ghost/slack-notifications/package.json +++ b/ghost/slack-notifications/package.json @@ -23,9 +23,9 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", - "@tryghost/validator": "0.2.11", - "@tryghost/version": "0.1.28", + "@tryghost/errors": "1.3.5", + "@tryghost/validator": "0.2.14", + "@tryghost/version": "0.1.30", "got": "9.6.0" } } diff --git a/ghost/stripe/package.json b/ghost/stripe/package.json index a175465f7d..ee08ccf5f0 100644 --- a/ghost/stripe/package.json +++ b/ghost/stripe/package.json @@ -25,10 +25,10 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/debug": "0.1.30", + "@tryghost/debug": "0.1.32", "@tryghost/domain-events": "0.0.0", - "@tryghost/errors": "1.3.2", - "@tryghost/logging": "2.4.15", + "@tryghost/errors": "1.3.5", + "@tryghost/logging": "2.4.18", "@tryghost/member-events": "0.0.0", "leaky-bucket": "2.2.0", "lodash": "4.17.21", diff --git a/ghost/tiers/package.json b/ghost/tiers/package.json index 15decb771a..f3d3bb56db 100644 --- a/ghost/tiers/package.json +++ b/ghost/tiers/package.json @@ -22,9 +22,9 @@ "mocha": "10.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "@tryghost/string": "0.2.12", - "@tryghost/tpl": "0.1.30", + "@tryghost/tpl": "0.1.32", "bson-objectid": "2.0.4" } } diff --git a/ghost/update-check-service/package.json b/ghost/update-check-service/package.json index c0a9b77ee7..976f4d27d0 100644 --- a/ghost/update-check-service/package.json +++ b/ghost/update-check-service/package.json @@ -25,10 +25,10 @@ "uuid": "9.0.1" }, "dependencies": { - "@tryghost/debug": "0.1.30", - "@tryghost/errors": "1.3.2", - "@tryghost/logging": "2.4.15", - "@tryghost/tpl": "0.1.30", + "@tryghost/debug": "0.1.32", + "@tryghost/errors": "1.3.5", + "@tryghost/logging": "2.4.18", + "@tryghost/tpl": "0.1.32", "lodash": "4.17.21", "moment": "2.24.0" } diff --git a/ghost/verification-trigger/package.json b/ghost/verification-trigger/package.json index 4bf23b5ff4..7260b5484b 100644 --- a/ghost/verification-trigger/package.json +++ b/ghost/verification-trigger/package.json @@ -25,7 +25,7 @@ }, "dependencies": { "@tryghost/domain-events": "0.0.0", - "@tryghost/errors": "1.3.2", + "@tryghost/errors": "1.3.5", "@tryghost/member-events": "0.0.0" } } diff --git a/ghost/webmentions/package.json b/ghost/webmentions/package.json index 8c9bb05a99..b36acd059e 100644 --- a/ghost/webmentions/package.json +++ b/ghost/webmentions/package.json @@ -25,8 +25,8 @@ "sinon": "15.2.0" }, "dependencies": { - "@tryghost/errors": "1.3.2", - "@tryghost/logging": "2.4.15", + "@tryghost/errors": "1.3.5", + "@tryghost/logging": "2.4.18", "cheerio": "0.22.0" } } diff --git a/package.json b/package.json index 78f8ba82e2..fdf79efde4 100644 --- a/package.json +++ b/package.json @@ -43,8 +43,8 @@ "prepare": "husky install .github/hooks" }, "resolutions": { - "@tryghost/errors": "1.3.2", - "@tryghost/logging": "2.4.15", + "@tryghost/errors": "1.3.5", + "@tryghost/logging": "2.4.18", "jackspeak": "2.1.1", "moment": "2.24.0", "moment-timezone": "0.5.45" diff --git a/yarn.lock b/yarn.lock index af84ea4338..f3ed36ecfb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5532,927 +5532,838 @@ resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== -"@stdlib/array-float32@^0.0.x": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@stdlib/array-float32/-/array-float32-0.0.6.tgz#7a1c89db3c911183ec249fa32455abd9328cfa27" - integrity sha512-QgKT5UaE92Rv7cxfn7wBKZAlwFFHPla8eXsMFsTGt5BiL4yUy36lwinPUh4hzybZ11rw1vifS3VAPuk6JP413Q== +"@stdlib/array-float32@^0.2.1", "@stdlib/array-float32@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/array-float32/-/array-float32-0.2.2.tgz#88dcbb6cb138da3f3b4bc565423a0afc4dec4e1b" + integrity sha512-pTcy1FNQrrJLL1LMxJjuVpcKJaibbGCFFTe41iCSXpSOC8SuTBuNohrO6K9+xR301Ruxxn4yrzjJJ6Fa3nQJ2g== dependencies: - "@stdlib/assert-has-float32array-support" "^0.0.x" + "@stdlib/assert-has-float32array-support" "^0.2.2" -"@stdlib/array-float64@^0.0.x": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@stdlib/array-float64/-/array-float64-0.0.6.tgz#02d1c80dd4c38a0f1ec150ddfefe706e148bfc10" - integrity sha512-oE8y4a84LyBF1goX5//sU1mOjet8gLI0/6wucZcjg+j/yMmNV1xFu84Az9GOGmFSE6Ze6lirGOhfBeEWNNNaJg== +"@stdlib/array-float64@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/array-float64/-/array-float64-0.2.2.tgz#66b3a6fd0e030da1b3d9ba195b865791486ec3a7" + integrity sha512-ZmV5wcacGrhT0maw9dfLXNv4N3ZwFUV3D7ItFfZFGFnKIJbubrWzwtaYnxzIXigrDc8g3F6FVHRpsQLMxq0/lA== dependencies: - "@stdlib/assert-has-float64array-support" "^0.0.x" + "@stdlib/assert-has-float64array-support" "^0.2.2" -"@stdlib/array-int16@^0.0.x": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@stdlib/array-int16/-/array-int16-0.0.6.tgz#01ce2a8f5b1d3e4dfeaec257a48d8d201bdc9bff" - integrity sha512-WLx0PivdjosNAp+4ZWPlsBh/nUn50j+7H+SLxASPIILv217muLUGvttMyFCEmJE7Fs2cP51SHDR1EPAfypvY+g== +"@stdlib/array-int16@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/array-int16/-/array-int16-0.2.2.tgz#00855f829f68aad659049de86b9180c662b1f6a7" + integrity sha512-kHxyQ1INGtga38Grr/5MnDVAuJgnerh+MsJQcpT5jxxnc9QAnVc7O6DRv8i/hfOOxUOH15C/MeoBs+zim4CnLQ== dependencies: - "@stdlib/assert-has-int16array-support" "^0.0.x" + "@stdlib/assert-has-int16array-support" "^0.2.2" -"@stdlib/array-int32@^0.0.x": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@stdlib/array-int32/-/array-int32-0.0.6.tgz#2ab3dc8fb018a36151728324bb6b686bde52bada" - integrity sha512-BKYOoqNsFwEOiPjZp9jKLY4UE5Rp+Liwuwd91QpZW6/cTUeOpTnwZheFWjMFuY06JYRIMaEBwcnr0RfaMetH6Q== +"@stdlib/array-int32@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/array-int32/-/array-int32-0.2.2.tgz#50b6b6cf8e5f4a11a8c3bcec22dd41e26d2b95a8" + integrity sha512-+jFqht43oPJ8YnlyCZ7cSf9Z8xenIIsJDgLZ9zW+gh8o13SSfF+ukm0AGAdnKnKGR3zPBLnSso7JXyDe2r134g== dependencies: - "@stdlib/assert-has-int32array-support" "^0.0.x" + "@stdlib/assert-has-int32array-support" "^0.2.2" -"@stdlib/array-int8@^0.0.x": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@stdlib/array-int8/-/array-int8-0.0.6.tgz#1720035f12afe571b144395f7f678888b208dc0c" - integrity sha512-ZZsAQixtzk7v80DAFUZDn58AhDXpUtDjVFdOKnEw5td9nGBv3vXCM2y7zz48n/NUZOOeoGc5GTVR72anJ/Vi4g== +"@stdlib/array-int8@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/array-int8/-/array-int8-0.2.2.tgz#ca1adf97fe04ab1f4c87a608d04a0273d7c42d91" + integrity sha512-UW3KlKt7Lww1XML5Gzj+YYHRXD8+RIUrnlPcTwYH9O8j+/m5vyvGYlBIJD2MDO1fgUl2skgmpNkK9ULfsBlIRA== dependencies: - "@stdlib/assert-has-int8array-support" "^0.0.x" + "@stdlib/assert-has-int8array-support" "^0.2.2" -"@stdlib/array-uint16@^0.0.x": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@stdlib/array-uint16/-/array-uint16-0.0.6.tgz#2545110f0b611a1d55b01e52bd9160aaa67d6973" - integrity sha512-/A8Tr0CqJ4XScIDRYQawosko8ha1Uy+50wsTgJhjUtXDpPRp7aUjmxvYkbe7Rm+ImYYbDQVix/uCiPAFQ8ed4Q== +"@stdlib/array-uint16@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/array-uint16/-/array-uint16-0.2.2.tgz#d9647ec67f86dcb032b4e72659df818874498959" + integrity sha512-z5c/Izw43HkKfb1pTgEUMAS8GFvhtHkkHZSjX3XJN+17P0VjknxjlSvPiCBGqaDX9jXtlWH3mn1LSyDKtJQoeA== dependencies: - "@stdlib/assert-has-uint16array-support" "^0.0.x" + "@stdlib/assert-has-uint16array-support" "^0.2.2" -"@stdlib/array-uint32@^0.0.x": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@stdlib/array-uint32/-/array-uint32-0.0.6.tgz#5a923576475f539bfb2fda4721ea7bac6e993949" - integrity sha512-2hFPK1Fg7obYPZWlGDjW9keiIB6lXaM9dKmJubg/ergLQCsJQJZpYsG6mMAfTJi4NT1UF4jTmgvyKD+yf0D9cA== +"@stdlib/array-uint32@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/array-uint32/-/array-uint32-0.2.2.tgz#0e772f971706e7060fa1878f81b0fe05b86c8f07" + integrity sha512-3T894I9C2MqZJJmRCYFTuJp4Qw9RAt+GzYnVPyIXoK1h3TepUXe9VIVx50cUFIibdXycgu0IFGASeAb3YMyupw== dependencies: - "@stdlib/assert-has-uint32array-support" "^0.0.x" + "@stdlib/assert-has-uint32array-support" "^0.2.2" -"@stdlib/array-uint8@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/array-uint8/-/array-uint8-0.0.7.tgz#56f82b361da6bd9caad0e1d05e7f6ef20af9c895" - integrity sha512-qYJQQfGKIcky6TzHFIGczZYTuVlut7oO+V8qUBs7BJC9TwikVnnOmb3hY3jToY4xaoi5p9OvgdJKPInhyIhzFg== +"@stdlib/array-uint8@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/array-uint8/-/array-uint8-0.2.2.tgz#4add6fc8fd574c6330a6162aac1ebb421f8a0a82" + integrity sha512-Ip9MUC8+10U9x0crMKWkpvfoUBBhWzc6k5SI4lxx38neFVmiJ3f+5MBADEagjpoKSBs71vlY2drnEZe+Gs2Ytg== dependencies: - "@stdlib/assert-has-uint8array-support" "^0.0.x" + "@stdlib/assert-has-uint8array-support" "^0.2.2" -"@stdlib/array-uint8c@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/array-uint8c/-/array-uint8c-0.0.8.tgz#ce9298512dfa25dca559b72b080d3e906b2289b3" - integrity sha512-gKc6m6QUpcUrMJsWe9na7Mb20Cswdu1ul31kxq+MKRtkV5eCTVksh69Q9FKjaNdEy0A19sR413sGV7YY8ZvdSQ== +"@stdlib/array-uint8c@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/array-uint8c/-/array-uint8c-0.2.2.tgz#91c79bdf4d755c08b8fc6c9ff150216ee0fb9d86" + integrity sha512-uBEJ1yKLZjwgmCV7iSNLkr/SGCxL7qVwnb+f4avVSBxlIv/k29oIO/sibgkHbZMBlBSw39dWQzIKD0UQJWDVDQ== dependencies: - "@stdlib/assert-has-uint8clampedarray-support" "^0.0.x" + "@stdlib/assert-has-uint8clampedarray-support" "^0.2.2" -"@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" - integrity sha512-Yrg7K6rBqwCzDWZ5bN0VWLS5dNUWcoSfUeU49vTERdUmZID06J069CDc07UUl8vfQWhFgBWGocH3rrpKm1hi9w== +"@stdlib/assert-has-float32array-support@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-float32array-support/-/assert-has-float32array-support-0.2.2.tgz#dacf3439d9a91be30c5637144a2f9afc342ef258" + integrity sha512-pi2akQl8mVki43fF1GNQVLYW0bHIPp2HuRNThX9GjB3OFQTpvrV8/3zPSh4lOxQa5gRiabgf0+Rgeu3AOhEw9A== dependencies: - "@stdlib/assert-is-float32array" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/constants-float64-pinf" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-is-float32array" "^0.2.2" + "@stdlib/constants-float64-pinf" "^0.2.2" -"@stdlib/assert-has-float64array-support@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-float64array-support/-/assert-has-float64array-support-0.0.8.tgz#4d154994d348f5d894f63b3fbb9d7a6e2e4e5311" - integrity sha512-UVQcoeWqgMw9b8PnAmm/sgzFnuWkZcNhJoi7xyMjbiDV/SP1qLCrvi06mq86cqS3QOCma1fEayJdwgteoXyyuw== +"@stdlib/assert-has-float64array-support@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-float64array-support/-/assert-has-float64array-support-0.2.2.tgz#228ed3c8a174c4a467b6daccb24b6c9c307cbab5" + integrity sha512-8L3GuKY1o0dJARCOsW9MXcugXapaMTpSG6dGxyNuUVEvFfY5UOzcj9/JIDal5FjqSgqVOGL5qZl2qtRwub34VA== dependencies: - "@stdlib/assert-is-float64array" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-is-float64array" "^0.2.2" -"@stdlib/assert-has-int16array-support@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-int16array-support/-/assert-has-int16array-support-0.0.8.tgz#1adf8a4341788a56b50a3ab2000feb065bede794" - integrity sha512-w/5gByEPRWpbEWfzvcBbDHAkzK0tp8ExzF00N+LY6cJR1BxcBIXXtLfhY3G6jchs3Od3Pn89rhnsAxygumuw4w== +"@stdlib/assert-has-int16array-support@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-int16array-support/-/assert-has-int16array-support-0.2.2.tgz#8cec13b0406e9e361861e44cbb9246a6bfdf5af8" + integrity sha512-rIrJ2371vd4kg5sHb/bz0xX1dlwyElT6kivnFPtZUXMaMS1breSUIpwPkUPXdr1AbmQdeJYv0c/YBtKB0PCo2g== dependencies: - "@stdlib/assert-is-int16array" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/constants-int16-max" "^0.0.x" - "@stdlib/constants-int16-min" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-is-int16array" "^0.2.2" + "@stdlib/constants-int16-max" "^0.2.2" + "@stdlib/constants-int16-min" "^0.2.2" -"@stdlib/assert-has-int32array-support@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-int32array-support/-/assert-has-int32array-support-0.0.8.tgz#efd01955b4c11feb5d1703fdd994c17413fede97" - integrity sha512-xFbbDTp8pNMucuL45mhr0p10geTXE2A46/uor1l6riAP61c3qPRTKbe+0YapEjR9E6JyL134IX8AYQlqjYdBnQ== +"@stdlib/assert-has-int32array-support@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-int32array-support/-/assert-has-int32array-support-0.2.2.tgz#bab04f3378db0ad45b85898a7fd3c240b7dbdab9" + integrity sha512-3o/6PuZ+z6+cimb9L1f0d4LGP2GJO4EUVlD6oz8I6vKz35438coM5CduXOMVWvdzm4Rku4ty5mi1Gz0U53pC4Q== dependencies: - "@stdlib/assert-is-int32array" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/constants-int32-max" "^0.0.x" - "@stdlib/constants-int32-min" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-is-int32array" "^0.2.2" + "@stdlib/constants-int32-max" "^0.3.0" + "@stdlib/constants-int32-min" "^0.2.2" -"@stdlib/assert-has-int8array-support@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-int8array-support/-/assert-has-int8array-support-0.0.8.tgz#4e65306197e75e136920241a98b8934022564ddd" - integrity sha512-c+6eq8OtUBtJrn1HaBfT+zk+FjkNA2JG9GqI2/eq8c/l6fUI1TCKmKAML63rp95aJhosCCAMMLJmnG4jFkGG1g== +"@stdlib/assert-has-int8array-support@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-int8array-support/-/assert-has-int8array-support-0.2.2.tgz#3995dbcd3beb62f579c474adc9c6e8dbb0bf3695" + integrity sha512-QUasYxAqQdgqDglQTwV9dZSwMXvLzLpVC4FcN+kia/+nX1HGjYUBq95fBj0vigW+SC2OiuepJkNiB/PlhA08+g== dependencies: - "@stdlib/assert-is-int8array" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/constants-int8-max" "^0.0.x" - "@stdlib/constants-int8-min" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-is-int8array" "^0.2.2" + "@stdlib/constants-int8-max" "^0.2.2" + "@stdlib/constants-int8-min" "^0.2.2" -"@stdlib/assert-has-node-buffer-support@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-node-buffer-support/-/assert-has-node-buffer-support-0.0.8.tgz#5564d8e797c850f6ffc522b720eab1f6cba9c814" - integrity sha512-fgI+hW4Yg4ciiv4xVKH+1rzdV7e5+6UKgMnFbc1XDXHcxLub3vOr8+H6eDECdAIfgYNA7X0Dxa/DgvX9dwDTAQ== +"@stdlib/assert-has-node-buffer-support@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-node-buffer-support/-/assert-has-node-buffer-support-0.2.2.tgz#cb6b1a2a2927ef40dc4c8368a6c0d36854ccb70f" + integrity sha512-9ReyJGYe9BEZXbUxeRBima0nYy6GwFLVBj7eQ+UUzfG8w7LYYUCpWk954yDpd0v/u+XZQvp1M8EQC2gJLd/i0g== dependencies: - "@stdlib/assert-is-buffer" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-is-buffer" "^0.2.2" -"@stdlib/assert-has-own-property@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-own-property/-/assert-has-own-property-0.0.7.tgz#8b55b38e25db8366b028cb871905ac09c9c253fb" - integrity sha512-3YHwSWiUqGlTLSwxAWxrqaD1PkgcJniGyotJeIt5X0tSNmSW0/c9RWroCImTUUB3zBkyBJ79MyU9Nf4Qgm59fQ== +"@stdlib/assert-has-own-property@^0.2.1", "@stdlib/assert-has-own-property@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-own-property/-/assert-has-own-property-0.2.2.tgz#072661539bb79c353dc5e62ae9252ce428adb5f1" + integrity sha512-m5rV4Z2/iNkwx2vRsNheM6sQZMzc8rQQOo90LieICXovXZy8wA5jNld4kRKjMNcRt/TjrNP7i2Rhh8hruRDlHg== -"@stdlib/assert-has-symbol-support@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-symbol-support/-/assert-has-symbol-support-0.0.8.tgz#8606b247f0d023f2a7a6aa8a6fe5e346aa802a8f" - integrity sha512-PoQ9rk8DgDCuBEkOIzGGQmSnjtcdagnUIviaP5YskB45/TJHXseh4NASWME8FV77WFW9v/Wt1MzKFKMzpDFu4Q== +"@stdlib/assert-has-symbol-support@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-symbol-support/-/assert-has-symbol-support-0.2.2.tgz#ed7abecb6ae513c5f52dbd14d4601f3d707ab19f" + integrity sha512-vCsGGmDZz5dikGgdF26rIL0y0nHvH7qaVf89HLLTybceuZijAqFSJEqcB3Gpl5uaeueLNAWExHi2EkoUVqKHGg== + +"@stdlib/assert-has-tostringtag-support@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-tostringtag-support/-/assert-has-tostringtag-support-0.2.2.tgz#4e5053b69571aca325b9ccf26f8e6acbf8190acb" + integrity sha512-bSHGqku11VH0swPEzO4Y2Dr+lTYEtjSWjamwqCTC8udOiOIOHKoxuU4uaMGKJjVfXG1L+XefLHqzuO5azxdRaA== dependencies: - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-has-symbol-support" "^0.2.1" -"@stdlib/assert-has-tostringtag-support@^0.0.x": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-tostringtag-support/-/assert-has-tostringtag-support-0.0.9.tgz#1080ef0a4be576a72d19a819498719265456f170" - integrity sha512-UTsqdkrnQ7eufuH5BeyWOJL3ska3u5nvDWKqw3onNNZ2mvdgkfoFD7wHutVGzAA2rkTsSJAMBHVwWLsm5SbKgw== +"@stdlib/assert-has-uint16array-support@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-uint16array-support/-/assert-has-uint16array-support-0.2.2.tgz#b94f9adf53292151129e46a4f2aae2629c679a86" + integrity sha512-aL188V7rOkkEH4wYjfpB+1waDO4ULxo5ppGEK6X0kG4YiXYBL2Zyum53bjEQvo0Nkn6ixe18dNzqqWWytBmDeg== dependencies: - "@stdlib/assert-has-symbol-support" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-is-uint16array" "^0.2.1" + "@stdlib/constants-uint16-max" "^0.2.2" -"@stdlib/assert-has-uint16array-support@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-uint16array-support/-/assert-has-uint16array-support-0.0.8.tgz#083828067d55e3cc896796bc63cbf5726f67eecf" - integrity sha512-vqFDn30YrtzD+BWnVqFhB130g3cUl2w5AdOxhIkRkXCDYAM5v7YwdNMJEON+D4jI8YB4D5pEYjqKweYaCq4nyg== +"@stdlib/assert-has-uint32array-support@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-uint32array-support/-/assert-has-uint32array-support-0.2.2.tgz#d5b70c4c068cff8dec176fcd71868690e47abee9" + integrity sha512-+UHKP3mZOACkJ9CQjeKNfbXHm5HGQB862V5nV5q3UQlHPzhslnXKyG1SwAxTx+0g88C/2vlDLeqG8H4TH2UTFA== dependencies: - "@stdlib/assert-is-uint16array" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/constants-uint16-max" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-is-uint32array" "^0.2.1" + "@stdlib/constants-uint32-max" "^0.2.2" -"@stdlib/assert-has-uint32array-support@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-uint32array-support/-/assert-has-uint32array-support-0.0.8.tgz#a98c431fee45743088adb9602ef753c7552f9155" - integrity sha512-tJtKuiFKwFSQQUfRXEReOVGXtfdo6+xlshSfwwNWXL1WPP2LrceoiUoQk7zMCMT6VdbXgGH92LDjVcPmSbH4Xw== +"@stdlib/assert-has-uint8array-support@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-uint8array-support/-/assert-has-uint8array-support-0.2.2.tgz#33af366594a8540a643360763aada11a1d837075" + integrity sha512-VfzrB0BMik9MvPyKcMDJL3waq4nM30RZUrr2EuuQ/RbUpromRWSDbzGTlRq5SfjtJrHDxILPV3rytDCc03dgWA== dependencies: - "@stdlib/assert-is-uint32array" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/constants-uint32-max" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-is-uint8array" "^0.2.1" + "@stdlib/constants-uint8-max" "^0.2.2" -"@stdlib/assert-has-uint8array-support@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-uint8array-support/-/assert-has-uint8array-support-0.0.8.tgz#9bed19de9834c3ced633551ed630982f0f424724" - integrity sha512-ie4vGTbAS/5Py+LLjoSQi0nwtYBp+WKk20cMYCzilT0rCsBI/oez0RqHrkYYpmt4WaJL4eJqC+/vfQ5NsI7F5w== +"@stdlib/assert-has-uint8clampedarray-support@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-uint8clampedarray-support/-/assert-has-uint8clampedarray-support-0.2.2.tgz#8b1ee4ab857b19747290f4448ac9a69e2ec5695f" + integrity sha512-/zT8Piv1UUFUpelBo0LuTE4V9BOEW7DTwfGlPvez93lk72XtaIYhTHkj+Z9YBGfAMV2PbL6eteqFffMVzUgnXg== dependencies: - "@stdlib/assert-is-uint8array" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/constants-uint8-max" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-is-uint8clampedarray" "^0.2.1" -"@stdlib/assert-has-uint8clampedarray-support@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-has-uint8clampedarray-support/-/assert-has-uint8clampedarray-support-0.0.8.tgz#07aa0274a5ce78c12fb30b00dde5e2dfcf568120" - integrity sha512-Z6ZeUZqsfZ48rTE7o58k4DXP8kP6rrlmPCpDaMlBqP/yZcmt8qSLtdT68PiAJ/gzURbRbHYD1hwLWPJDzhRS9g== +"@stdlib/assert-is-arguments@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-arguments/-/assert-is-arguments-0.2.2.tgz#32e13d3723987d13afb580840a56835e24142aab" + integrity sha512-SejXrHpneNcn0nDot2K49XoTzPQQUvCFQj+2vc4UtJdtFFzB5r1fYgvtL7RqkhVglD7zNJG1acJYa7PiZCpZog== dependencies: - "@stdlib/assert-is-uint8clampedarray" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-has-own-property" "^0.2.2" + "@stdlib/assert-is-array" "^0.2.2" + "@stdlib/assert-is-enumerable-property" "^0.2.2" + "@stdlib/constants-uint32-max" "^0.2.2" + "@stdlib/math-base-assert-is-integer" "^0.2.5" + "@stdlib/utils-native-class" "^0.2.2" -"@stdlib/assert-is-arguments@^0.0.x": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-arguments/-/assert-is-arguments-0.0.14.tgz#5a7266634df0e30be1c06fed1aa62c1e28ea67b3" - integrity sha512-jhMkdQsCHcAUQmk0t8Dof/I1sThotcJ3vcFigqwTEzVS7DQb2BVQ5egHtwdHFRyNf46u0Yfm8b2r6es+uYdWOQ== +"@stdlib/assert-is-array@^0.2.1", "@stdlib/assert-is-array@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-array/-/assert-is-array-0.2.2.tgz#ba820d24dd914fe8c29bd61033417ab5a2c2c34f" + integrity sha512-aJyTX2U3JqAGCATgaAX9ygvDHc97GCIKkIhiZm/AZaLoFHPtMA1atQ4bKcefEC8Um9eefryxTHfFPfSr9CoNQQ== dependencies: - "@stdlib/assert-has-own-property" "^0.0.x" - "@stdlib/assert-is-array" "^0.0.x" - "@stdlib/assert-is-enumerable-property" "^0.0.x" - "@stdlib/constants-uint32-max" "^0.0.x" - "@stdlib/math-base-assert-is-integer" "^0.0.x" - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-array@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-array/-/assert-is-array-0.0.7.tgz#7f30904f88a195d918c588540a6807d1ae639d79" - integrity sha512-/o6KclsGkNcZ5hiROarsD9XUs6xQMb4lTwF6O71UHbKWTtomEF/jD0rxLvlvj0BiCxfKrReddEYd2CnhUyskMA== +"@stdlib/assert-is-boolean@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-boolean/-/assert-is-boolean-0.2.2.tgz#1d6361f66a25cd81ae12085da6ce1457311758ee" + integrity sha512-3KFLRTYZpX6u95baZ6PubBvjehJs2xBU6+zrenR0jx8KToUYCnJPxqqj7JXRhSD+cOURmcjj9rocVaG9Nz18Pg== dependencies: - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/assert-has-tostringtag-support" "^0.2.2" + "@stdlib/boolean-ctor" "^0.2.2" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-boolean@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-boolean/-/assert-is-boolean-0.0.8.tgz#6b38c2e799e4475d7647fb0e44519510e67080ce" - integrity sha512-PRCpslMXSYqFMz1Yh4dG2K/WzqxTCtlKbgJQD2cIkAtXux4JbYiXCtepuoV7l4Wv1rm0a1eU8EqNPgnOmWajGw== +"@stdlib/assert-is-buffer@^0.2.1", "@stdlib/assert-is-buffer@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-buffer/-/assert-is-buffer-0.2.2.tgz#f32894cc86103c151e144cf3dbac63ef9e3f8f15" + integrity sha512-4/WMFTEcDYlVbRhxY8Wlqag4S70QCnn6WmQ4wmfiLW92kqQHsLvTNvdt/qqh/SDyDV31R/cpd3QPsVN534dNEA== dependencies: - "@stdlib/assert-has-tostringtag-support" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/assert-is-object-like" "^0.2.1" -"@stdlib/assert-is-buffer@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-buffer/-/assert-is-buffer-0.0.8.tgz#633b98bc342979e9ed8ed71c3a0f1366782d1412" - integrity sha512-SYmGwOXkzZVidqUyY1IIx6V6QnSL36v3Lcwj8Rvne/fuW0bU2OomsEBzYCFMvcNgtY71vOvgZ9VfH3OppvV6eA== +"@stdlib/assert-is-collection@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-collection/-/assert-is-collection-0.2.2.tgz#398c8138202c2334a32254edb00ea74a614c6768" + integrity sha512-tbh6ySMqzTkHjFzcNkwtfnJgt65qWeu+0Wv3N0D9QEd3gnJfWq4mJJS3DyJ5n91VoB7RXppB/giDxDUCw/Y+KQ== dependencies: - "@stdlib/assert-is-object-like" "^0.0.x" + "@stdlib/constants-array-max-typed-array-length" "^0.2.2" + "@stdlib/math-base-assert-is-integer" "^0.2.5" -"@stdlib/assert-is-collection@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-collection/-/assert-is-collection-0.0.8.tgz#5710cd14010a83007922b0c66c8b605b9db0b8af" - integrity sha512-OyKXC8OgvxqLUuJPzVX58j26puOVqnIG2OsxxwtZQ5rwFIcwirYy0LrBfSaF0JX+njau6zb5de+QEURA+mQIgA== +"@stdlib/assert-is-enumerable-property@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-enumerable-property/-/assert-is-enumerable-property-0.2.2.tgz#c6f6460ea0a01712bc8bca26049523294e13d486" + integrity sha512-An5QM9Zb3bjKZp5XVdsHTv6/8pJMJvnweHDdLPQhEtLve3YIM4Xo0CQ3TlvKgTr6Lz2UO/+yx8rrDdN5i9Dp5Q== dependencies: - "@stdlib/constants-array-max-typed-array-length" "^0.0.x" - "@stdlib/math-base-assert-is-integer" "^0.0.x" + "@stdlib/assert-is-integer" "^0.2.2" + "@stdlib/assert-is-nan" "^0.2.2" + "@stdlib/assert-is-string" "^0.2.2" -"@stdlib/assert-is-enumerable-property@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-enumerable-property/-/assert-is-enumerable-property-0.0.7.tgz#0eb71ff950278d22de5ad337ee4a8d79228a81cd" - integrity sha512-jkhuJgpaiJlTxxkAvacbFl23PI5oO41ecmz1UcngVYI6bMeWZLNdkvFQri0W3ZaDem4zyXi6Kw3G/ohkIHq92g== +"@stdlib/assert-is-error@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-error/-/assert-is-error-0.2.2.tgz#07e56ad03cb55ac8630dd8ecac842e00568e8182" + integrity sha512-HKw/vTJvXG8OvDSWSRA5nCKAgKxvzG7xack0xjCUTw1Xh3q8mMmQtCTjwkRtFyvSFDd0DeacMc/Ur5sU5bzOgg== dependencies: - "@stdlib/assert-is-integer" "^0.0.x" - "@stdlib/assert-is-nan" "^0.0.x" - "@stdlib/assert-is-string" "^0.0.x" + "@stdlib/utils-get-prototype-of" "^0.2.1" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-error@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-error/-/assert-is-error-0.0.8.tgz#9161fb469292314231d0c56565efa94ee65ce7c3" - integrity sha512-844/g+vprVw2QP4VzgJZdlZ2hVDvC72vTKMEZFLJL7Rlx0bC+CXxi0rN2BE9txnkn3ILkBYbi9VYH1UREsP/hQ== +"@stdlib/assert-is-float32array@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-float32array/-/assert-is-float32array-0.2.2.tgz#8b6187136f95e3ef8ba8acad33197736e4844bfb" + integrity sha512-hxEKz/Y4m1NYuOaiQKoqQA1HeAYwNXFqSk3FJ4hC71DuGNit2tuxucVyck3mcWLpLmqo0+Qlojgwo5P9/C/9MQ== dependencies: - "@stdlib/utils-get-prototype-of" "^0.0.x" - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-float32array@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-float32array/-/assert-is-float32array-0.0.8.tgz#a43f6106a2ef8797496ab85aaf6570715394654a" - integrity sha512-Phk0Ze7Vj2/WLv5Wy8Oo7poZIDMSTiTrEnc1t4lBn3Svz2vfBXlvCufi/i5d93vc4IgpkdrOEwfry6nldABjNQ== +"@stdlib/assert-is-float64array@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-float64array/-/assert-is-float64array-0.2.2.tgz#c69a894d85a0a9c71f8b68b3aea1ea35bd3ebe85" + integrity sha512-3R1wLi6u/IHXsXMtaLnvN9BSpqAJ8tWhwjOOr6kadDqCWsU7Odc7xKLeAXAInAxwnV8VDpO4ifym4A3wehazPQ== dependencies: - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-float64array@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-float64array/-/assert-is-float64array-0.0.8.tgz#8c27204ae6cf309e16f0bbad1937f8aa06c2a812" - integrity sha512-UC0Av36EEYIgqBbCIz1lj9g7qXxL5MqU1UrWun+n91lmxgdJ+Z77fHy75efJbJlXBf6HXhcYXECIsc0u3SzyDQ== +"@stdlib/assert-is-function@^0.2.1", "@stdlib/assert-is-function@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-function/-/assert-is-function-0.2.2.tgz#97b54f449e54fd15913054cc69c7385ea9baab81" + integrity sha512-whY69DUYWljCJ79Cvygp7VzWGOtGTsh3SQhzNuGt+ut6EsOW+8nwiRkyBXYKf/MOF+NRn15pxg8cJEoeRgsPcA== dependencies: - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/utils-type-of" "^0.2.1" -"@stdlib/assert-is-function@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-function/-/assert-is-function-0.0.8.tgz#e4925022b7dd8c4a67e86769691d1d29ab159db9" - integrity sha512-M55Dt2njp5tnY8oePdbkKBRIypny+LpCMFZhEjJIxjLE4rA6zSlHs1yRMqD4PmW+Wl9WTeEM1GYO4AQHl1HAjA== +"@stdlib/assert-is-int16array@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-int16array/-/assert-is-int16array-0.2.2.tgz#2358c371ff651231a3d0ccf4a0cd1edf13cfef77" + integrity sha512-HQ9yyX1di07pWreBk6njw9x1sipJKSP4SCSkidLfUHKxaooxeUprAFONfMiEMdNBbn7f3awfs23h1bpN/Z6Vmg== dependencies: - "@stdlib/utils-type-of" "^0.0.x" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-int16array@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-int16array/-/assert-is-int16array-0.0.8.tgz#af4aaabb74a81b5eb52e534f4508b587664ee70e" - integrity sha512-liepMcQ58WWLQdBv9bz6Ium2llUlFzr3ximhCSaswpAAUQw3Zpd+vY3mEzG+b6hDhQoj3bBllUkaN2kkCUCwMw== +"@stdlib/assert-is-int32array@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-int32array/-/assert-is-int32array-0.2.2.tgz#64a948b9b23b0943c39930d4e59f55e2917715c4" + integrity sha512-YomgTwoJD/ci8K9mWNCyqSDtkYfHNplMYw+B9rmcxrjX//1LVZkrzgwWEc6dC3RlY0Ou+uDHJpKeKL9G2fj4GQ== dependencies: - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-int32array@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-int32array/-/assert-is-int32array-0.0.8.tgz#226a6dd57807dafe298a14f8feedd834b33b1c9b" - integrity sha512-bsrGwVNiaasGnQgeup1RLFRSEk8GE/cm0iKvvPZLlzTBC+NJ1wUZgjLSiEh+ccy4JdgfMddJf4j7zSqOxoFWxw== +"@stdlib/assert-is-int8array@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-int8array/-/assert-is-int8array-0.2.2.tgz#9fc5063c8a3ed70feee357fe3b8fa01bde376e89" + integrity sha512-Y1QP3uIZ+CG+rFrD6nOO/N/8O1rRbXgG+iVo5aj8xNRUtfg1iYekUspfNKqxeZUJ95Ocv705m7/vsGlvI1MugQ== dependencies: - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-int8array@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-int8array/-/assert-is-int8array-0.0.8.tgz#43e29e8b1f57b80543e5e46a37100e05dc40e8de" - integrity sha512-hzJAFSsG702hHO0nkMkog8nelK6elJdBNsuHWDciMd7iTIIjernGL1GbB8712Yg9xPGYgm8n6tXonDEEQ5loIw== +"@stdlib/assert-is-integer@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-integer/-/assert-is-integer-0.2.2.tgz#2b0b76e11926b7530b510c80e2f3e3fdf271a368" + integrity sha512-2d4CioQmnPcNDvNfC3Q6+xAJLwYYcSUamnxP0bSBJ1oAazWaVArdXNUAUxufek2Uaq6TVIM2gNSMyivIKIJd2w== dependencies: - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/assert-is-number" "^0.2.2" + "@stdlib/constants-float64-ninf" "^0.2.2" + "@stdlib/constants-float64-pinf" "^0.2.2" + "@stdlib/math-base-assert-is-integer" "^0.2.4" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" -"@stdlib/assert-is-integer@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-integer/-/assert-is-integer-0.0.8.tgz#7a2b5778a9ec530a12031b6a6ff7c58c6892e50f" - integrity sha512-gCjuKGglSt0IftXJXIycLFNNRw0C+8235oN0Qnw3VAdMuEWauwkNhoiw0Zsu6Arzvud8MQJY0oBGZtvLUC6QzQ== +"@stdlib/assert-is-nan@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-nan/-/assert-is-nan-0.2.2.tgz#8d1a65a4ea0c5db87dadb0778bb1eef97b007826" + integrity sha512-Wh7KPIVfi6UVBRuPgkjVnoJP6mVtDNg+Y4m3Hko86TSf78KqFXfyZy/m6hnlYBWZRkNJDKo1J/7A/zpPwcEUVg== dependencies: - "@stdlib/assert-is-number" "^0.0.x" - "@stdlib/constants-float64-ninf" "^0.0.x" - "@stdlib/constants-float64-pinf" "^0.0.x" - "@stdlib/math-base-assert-is-integer" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/assert-is-number" "^0.2.2" + "@stdlib/math-base-assert-is-nan" "^0.2.1" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" -"@stdlib/assert-is-nan@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-nan/-/assert-is-nan-0.0.8.tgz#91d5289c088a03063f9d603de2bd99d3dec6d40d" - integrity sha512-K57sjcRzBybdRpCoiuqyrn/d+R0X98OVlmXT4xEk3VPYqwux8e0NModVFHDehe+zuhmZLvYM50mNwp1TQC2AxA== +"@stdlib/assert-is-nonnegative-integer@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-nonnegative-integer/-/assert-is-nonnegative-integer-0.2.2.tgz#c47a7afabede723bfc05ed02b28a590163ec03f9" + integrity sha512-4t2FoZQeZ5nMYHYSeTVlgAp/HLEMYqe9qMcJgbvj63KTrGCDsuIpTE0S+UTxAc6Oc3Ftgb0ygjBFJQ0mxwN0Ow== dependencies: - "@stdlib/assert-is-number" "^0.0.x" - "@stdlib/math-base-assert-is-nan" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/assert-is-integer" "^0.2.2" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" -"@stdlib/assert-is-nonnegative-integer@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-nonnegative-integer/-/assert-is-nonnegative-integer-0.0.7.tgz#e6aa304dbca14020e87ea05687eccd696ef27035" - integrity sha512-+5SrGM3C1QRpzmi+JnyZF9QsH29DCkSONm2558yOTdfCLClYOXDs++ktQo/8baCBFSi9JnFaLXVt1w1sayQeEQ== +"@stdlib/assert-is-number@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-number/-/assert-is-number-0.2.2.tgz#269ab5bf779a26a2cec7575c9a47e163f5bb74b2" + integrity sha512-sWpJ59GqGbmlcdYSUV/OYkmQW8k47w10+E0K0zPu1x1VKzhjgA5ZB2sJcpgI8Vt3ckRLjdhuc62ZHJkrJujG7A== dependencies: - "@stdlib/assert-is-integer" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/assert-has-tostringtag-support" "^0.2.2" + "@stdlib/number-ctor" "^0.2.2" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-number@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-number/-/assert-is-number-0.0.7.tgz#82b07cda4045bd0ecc846d3bc26d39dca7041c61" - integrity sha512-mNV4boY1cUOmoWWfA2CkdEJfXA6YvhcTvwKC0Fzq+HoFFOuTK/scpTd9HanUyN6AGBlWA8IW+cQ1ZwOT3XMqag== +"@stdlib/assert-is-object-like@^0.2.1", "@stdlib/assert-is-object-like@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-object-like/-/assert-is-object-like-0.2.2.tgz#3bd47386addeb7ccb4ac82b9d924ddaa5fddde57" + integrity sha512-MjQBpHdEebbJwLlxh/BKNH8IEHqY0YlcCMRKOQU0UOlILSJg0vG+GL4fDDqtx9FSXxcTqC+w3keHx8kAKvQhzg== dependencies: - "@stdlib/assert-has-tostringtag-support" "^0.0.x" - "@stdlib/number-ctor" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/assert-tools-array-function" "^0.2.1" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" -"@stdlib/assert-is-object-like@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-object-like/-/assert-is-object-like-0.0.8.tgz#f6fc36eb7b612d650c6201d177214733426f0c56" - integrity sha512-pe9selDPYAu/lYTFV5Rj4BStepgbzQCr36b/eC8EGSJh6gMgRXgHVv0R+EbdJ69KNkHvKKRjnWj0A/EmCwW+OA== +"@stdlib/assert-is-object@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-object/-/assert-is-object-0.2.2.tgz#671297efc43788aa5368ce59ede28a8089387a7f" + integrity sha512-sNnphJuHyMDHHHaonlx6vaCKMe4sHOn0ag5Ck4iW3kJtM2OZB2J4h8qFcwKzlMk7fgFu7vYNGCZtpm1dYbbUfQ== dependencies: - "@stdlib/assert-tools-array-function" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/assert-is-array" "^0.2.1" -"@stdlib/assert-is-object@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-object/-/assert-is-object-0.0.8.tgz#0220dca73bc3df044fc43e73b02963d5ef7ae489" - integrity sha512-ooPfXDp9c7w+GSqD2NBaZ/Du1JRJlctv+Abj2vRJDcDPyrnRTb1jmw+AuPgcW7Ca7op39JTbArI+RVHm/FPK+Q== +"@stdlib/assert-is-plain-object@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-plain-object/-/assert-is-plain-object-0.2.2.tgz#90b67c33ec6430ee5ca5a4c053ef5843550a3435" + integrity sha512-o4AFWgBsSNzZAOOfIrxoDFYTqnLuGiaHDFwIeZGUHdpQeav2Fll+sGeaqOcekF7yKawoswnwWdJqTsjapb4Yzw== dependencies: - "@stdlib/assert-is-array" "^0.0.x" + "@stdlib/assert-has-own-property" "^0.2.1" + "@stdlib/assert-is-function" "^0.2.1" + "@stdlib/assert-is-object" "^0.2.1" + "@stdlib/utils-get-prototype-of" "^0.2.1" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-plain-object@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-plain-object/-/assert-is-plain-object-0.0.7.tgz#0c3679faf61b03023363f1ce30f8d00f8ed1c37b" - integrity sha512-t/CEq2a083ajAgXgSa5tsH8l3kSoEqKRu1qUwniVLFYL4RGv3615CrpJUDQKVtEX5S/OKww5q0Byu3JidJ4C5w== +"@stdlib/assert-is-regexp@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-regexp/-/assert-is-regexp-0.2.2.tgz#4d0f24c5ab189da3839ceca7e6955d263d7b798d" + integrity sha512-2JtiUtRJxPaVXL7dkWoV3n5jouI65DwYDXsDXg3xo23TXlTNGgU/HhKO4FWC1Yqju7YMZi0hcZSW6E9v8ISqeQ== dependencies: - "@stdlib/assert-has-own-property" "^0.0.x" - "@stdlib/assert-is-function" "^0.0.x" - "@stdlib/assert-is-object" "^0.0.x" - "@stdlib/utils-get-prototype-of" "^0.0.x" - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/assert-has-tostringtag-support" "^0.2.2" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-regexp-string@^0.0.x": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-regexp-string/-/assert-is-regexp-string-0.0.9.tgz#424f77b4aaa46a19f4b60ba4b671893a2e5df066" - integrity sha512-FYRJJtH7XwXEf//X6UByUC0Eqd0ZYK5AC8or5g5m5efQrgr2lOaONHyDQ3Scj1A2D6QLIJKZc9XBM4uq5nOPXA== +"@stdlib/assert-is-string@^0.2.1", "@stdlib/assert-is-string@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-string/-/assert-is-string-0.2.2.tgz#2f3099045f5c9bdb85bf7620c021c17e5be19f2f" + integrity sha512-SOkFg4Hq443hkadM4tzcwTHWvTyKP9ULOZ8MSnnqmU0nBX1zLVFLFGY8jnF6Cary0dL0V7QQBCfuxqKFM6u2PQ== dependencies: - "@stdlib/assert-is-string" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" - "@stdlib/process-read-stdin" "^0.0.x" - "@stdlib/regexp-eol" "^0.0.x" - "@stdlib/regexp-regexp" "^0.0.x" - "@stdlib/streams-node-stdin" "^0.0.x" + "@stdlib/assert-has-tostringtag-support" "^0.2.2" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-regexp@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-regexp/-/assert-is-regexp-0.0.7.tgz#430fe42417114e7ea01d21399a70ed9c4cbae867" - integrity sha512-ty5qvLiqkDq6AibHlNJe0ZxDJ9Mg896qolmcHb69mzp64vrsORnPPOTzVapAq0bEUZbXoypeijypLPs9sCGBSQ== +"@stdlib/assert-is-uint16array@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-uint16array/-/assert-is-uint16array-0.2.2.tgz#85346d95d8fd08c879a0b33a210d9224f54a2d4b" + integrity sha512-w3+HeTiXGLJGw5nCqr0WbvgArNMEj7ulED1Yd19xXbmmk2W1ZUB+g9hJDOQTiKsTU4AVyH4/As+aA8eDVmWtmg== dependencies: - "@stdlib/assert-has-tostringtag-support" "^0.0.x" - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-string@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-string/-/assert-is-string-0.0.8.tgz#b07e4a4cbd93b13d38fa5ebfaa281ccd6ae9e43f" - integrity sha512-Uk+bR4cglGBbY0q7O7HimEJiW/DWnO1tSzr4iAGMxYgf+VM2PMYgI5e0TLy9jOSOzWon3YS39lc63eR3a9KqeQ== +"@stdlib/assert-is-uint32array@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-uint32array/-/assert-is-uint32array-0.2.2.tgz#37f35526101e5847c54cb8c9952976d1888a0bb8" + integrity sha512-3F4nIHg1Qp0mMIsImWUC8DwQ3qBK5vdIJTjS2LufLbFBhHNmv5kK1yJiIXQDTLkENU0STZe05TByo01ZNLOmDQ== dependencies: - "@stdlib/assert-has-tostringtag-support" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-uint16array@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-uint16array/-/assert-is-uint16array-0.0.8.tgz#770cc5d86906393d30d387a291e81df0a984fdfb" - integrity sha512-M+qw7au+qglRXcXHjvoUZVLlGt1mPjuKudrVRto6KL4+tDsP2j+A89NDP3Fz8/XIUD+5jhj+65EOKHSMvDYnng== +"@stdlib/assert-is-uint8array@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-uint8array/-/assert-is-uint8array-0.2.2.tgz#2d46b13d58b8d1b6aa4e4841fbb6903c6cd07a08" + integrity sha512-51WnDip6H2RrN0CbqWmfqySAjam8IZ0VjlfUDc3PtcgrZGrKKjVgyHAsT/L3ZDydwF+aB94uvYJu5QyrCPNaZw== dependencies: - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-uint32array@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-uint32array/-/assert-is-uint32array-0.0.8.tgz#2a7f1265db25d728e3fc084f0f59be5f796efac5" - integrity sha512-cnZi2DicYcplMnkJ3dBxBVKsRNFjzoGpmG9A6jXq4KH5rFl52SezGAXSVY9o5ZV7bQGaF5JLyCLp6n9Y74hFGg== +"@stdlib/assert-is-uint8clampedarray@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-uint8clampedarray/-/assert-is-uint8clampedarray-0.2.2.tgz#3b4cbbe0c74326967fe868ab1d1288ce02cbbc83" + integrity sha512-MjHhOxjOXesqUNgoDGOiO9vib1HV3uCNoYQfiEDWAv30pVAty70wEcwDQ7cdQs1ZGfGC/355ob8AR2Z8lY4ryw== dependencies: - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/assert-is-uint8array@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-uint8array/-/assert-is-uint8array-0.0.8.tgz#4521054b5d3a2206b406cad7368e0a50eaee4dec" - integrity sha512-8cqpDQtjnJAuVtRkNAktn45ixq0JHaGJxVsSiK79k7GRggvMI6QsbzO6OvcLnZ/LimD42FmgbLd13Yc2esDmZw== +"@stdlib/assert-tools-array-function@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/assert-tools-array-function/-/assert-tools-array-function-0.2.2.tgz#aba9b71b5164e97872cd2d6b16b221e01bd8c5e0" + integrity sha512-FYeT7X9x0C8Nh+MN6IJUDz+7i7yB6mio2/SDlrvyepjyPSU/cfHfwW0GEOnQhxZ+keLZC/YqDD930WjRODwMdA== dependencies: - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/assert-is-array" "^0.2.1" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/string-format" "^0.2.2" -"@stdlib/assert-is-uint8clampedarray@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/assert-is-uint8clampedarray/-/assert-is-uint8clampedarray-0.0.8.tgz#e0206354dd3055e170a8c998ca1d0663d3799ab9" - integrity sha512-CkXVpivLTkfrPBJf/60tJLHCzMEjVdwzKxNSybdSJ5w8lXVXIp7jgs44mXqIHJm09XgPEc3ljEyXUf5FcJTIvw== +"@stdlib/boolean-ctor@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/boolean-ctor/-/boolean-ctor-0.2.2.tgz#d0add4760adeca22631625dd95bb9ca32abb931a" + integrity sha512-qIkHzmfxDvGzQ3XI9R7sZG97QSaWG5TvWVlrvcysOGT1cs6HtQgnf4D//SRzZ52VLm8oICP+6OKtd8Hpm6G7Ww== + +"@stdlib/buffer-ctor@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/buffer-ctor/-/buffer-ctor-0.2.2.tgz#8469a6d301b4b11e08763b3238b949b2aa132841" + integrity sha512-Q/FkXxyZUzCA1fwOl7sa8ZYg6e60fTksCYr01nJv8fvmr9l9Ju6MKmm20n833yE7KA5jDDtZW9lB1V7552fLMA== dependencies: - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/assert-has-node-buffer-support" "^0.2.1" -"@stdlib/assert-tools-array-function@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/assert-tools-array-function/-/assert-tools-array-function-0.0.7.tgz#34e9e5a3fca62ea75da99fc9995ba845ba514988" - integrity sha512-3lqkaCIBMSJ/IBHHk4NcCnk2NYU52tmwTYbbqhAmv7vim8rZPNmGfj3oWkzrCsyCsyTF7ooD+In2x+qTmUbCtQ== +"@stdlib/buffer-from-buffer@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/buffer-from-buffer/-/buffer-from-buffer-0.2.2.tgz#10e277a9856f457017f78ada38177b7dd2178e98" + integrity sha512-EU/Mju7j3Hw/z6xxlZ14h6ZEyhiarR4nXhDQwycJ4NcFb7Oi+KaeNvX5rRQgf/k04cpcq8VkQiM1xOMrKPCvqA== dependencies: - "@stdlib/assert-is-array" "^0.0.x" + "@stdlib/assert-is-buffer" "^0.2.2" + "@stdlib/assert-is-function" "^0.2.2" + "@stdlib/buffer-ctor" "^0.2.2" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/string-format" "^0.2.2" -"@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" - integrity sha512-4IyTSGijKUQ8+DYRaKnepf9spvKLZ+nrmZ+JrRcB3FrdTX/l9JDpggcUcC/Fe+A4KIZOnClfxLn6zfIlkCZHNA== +"@stdlib/complex-float32-ctor@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@stdlib/complex-float32-ctor/-/complex-float32-ctor-0.0.2.tgz#57f6d3f0217c1ae1f83ea12b044a80e951a215d3" + integrity sha512-QsTLynhTRmDT0mSkfdHj0FSqQSxh2nKx+vvrH3Y0/Cd/r0WoHFZwyibndDxshfkf9B7nist8QKyvV82I3IZciA== dependencies: - "@stdlib/assert-has-node-buffer-support" "^0.0.x" + "@stdlib/assert-is-number" "^0.2.2" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/number-float64-base-to-float32" "^0.2.1" + "@stdlib/string-format" "^0.2.2" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" + "@stdlib/utils-define-property" "^0.2.4" -"@stdlib/buffer-from-buffer@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/buffer-from-buffer/-/buffer-from-buffer-0.0.7.tgz#871d2eb4307776b5c14d57175d1f57ed8a058d54" - integrity sha512-ytFnWFXdkrpiFNb/ZlyJrqRyiGMGuv9zDa/IbbotcbEwfmjvvLa+nvKS5B57HfFrcBxq6L0oWYmZ2uYctKckyg== +"@stdlib/complex-float32-reim@^0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@stdlib/complex-float32-reim/-/complex-float32-reim-0.1.2.tgz#095fcd9e4c2657d58c294eeeaeb5d46591d844bc" + integrity sha512-24H+t1xwQF6vhOoMZdDA3TFB4M+jb5Swm/FwNaepovlzVIG2NlthUZs6mZg1T3oegqesIRQRwhpn4jIPjuGiTw== dependencies: - "@stdlib/assert-is-buffer" "^0.0.x" - "@stdlib/assert-is-function" "^0.0.x" - "@stdlib/buffer-ctor" "^0.0.x" + "@stdlib/array-float32" "^0.2.2" + "@stdlib/complex-float32-ctor" "^0.0.2" -"@stdlib/buffer-from-string@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/buffer-from-string/-/buffer-from-string-0.0.8.tgz#0901a6e66c278db84836e483a7278502e2a33994" - integrity sha512-Dws5ZbK2M9l4Bkn/ODHFm3lNZ8tWko+NYXqGS/UH/RIQv3PGp+1tXFUSvjwjDneM6ppjQVExzVedUH1ftABs9A== - dependencies: - "@stdlib/assert-is-function" "^0.0.x" - "@stdlib/assert-is-string" "^0.0.x" - "@stdlib/buffer-ctor" "^0.0.x" - "@stdlib/string-format" "^0.0.x" - -"@stdlib/cli-ctor@^0.0.x": +"@stdlib/complex-float64-ctor@^0.0.3": version "0.0.3" - resolved "https://registry.yarnpkg.com/@stdlib/cli-ctor/-/cli-ctor-0.0.3.tgz#5b0a6d253217556c778015eee6c14be903f82c2b" - integrity sha512-0zCuZnzFyxj66GoF8AyIOhTX5/mgGczFvr6T9h4mXwegMZp8jBC/ZkOGMwmp+ODLBTvlcnnDNpNFkDDyR6/c2g== + resolved "https://registry.yarnpkg.com/@stdlib/complex-float64-ctor/-/complex-float64-ctor-0.0.3.tgz#740fdb24f5d1d5db82fa7800b91037e552a47bb6" + integrity sha512-oixCtBif+Uab2rKtgedwQTbQTEC+wVSu4JQH935eJ8Jo0eL6vXUHHlVrkLgYKlCDLvq5px1QQn42Czg/ixh6Gw== dependencies: - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" - "@stdlib/utils-noop" "^0.0.x" - minimist "^1.2.0" + "@stdlib/assert-is-number" "^0.2.2" + "@stdlib/complex-float32-ctor" "^0.0.2" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/string-format" "^0.2.2" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" + "@stdlib/utils-define-property" "^0.2.4" -"@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" - integrity sha512-POCtQcBZnPm4IrFmTujSaprR1fcOFr/MRw2Mt7INF4oed6b1nzeG647K+2tk1m4mMrMPiuXCdvwJod4kJ0SXxQ== +"@stdlib/complex-float64-reim@^0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@stdlib/complex-float64-reim/-/complex-float64-reim-0.1.2.tgz#22276ea7feef9d61c5bc0d4b0d0137386c57960e" + integrity sha512-q6RnfgbUunApAYuGmkft1oOM3x3xVMVJwNRlRgfIXwKDb8pYt+S/CeIwi3Su5SF6ay3AqA1s+ze7m21osXAJyw== dependencies: - "@stdlib/assert-is-number" "^0.0.x" - "@stdlib/number-float64-base-to-float32" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" - "@stdlib/utils-define-property" "^0.0.x" - "@stdlib/utils-library-manifest" "^0.0.x" + "@stdlib/array-float64" "^0.2.2" + "@stdlib/complex-float64-ctor" "^0.0.3" -"@stdlib/complex-float64@^0.0.8", "@stdlib/complex-float64@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/complex-float64/-/complex-float64-0.0.8.tgz#00ee3a0629d218a01b830a20406aea7d7aff6fb3" - integrity sha512-lUJwsXtGEziOWAqCcnKnZT4fcVoRsl6t6ECaCJX45Z7lAc70yJLiwUieLWS5UXmyoADHuZyUXkxtI4oClfpnaw== +"@stdlib/constants-array-max-typed-array-length@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/constants-array-max-typed-array-length/-/constants-array-max-typed-array-length-0.2.2.tgz#1cf750d8f0732a88159f2bc6a9c881fcb816add0" + integrity sha512-uAoBItVIfuzR4zKK1F57Znrn2frKL0U9gqJkg30BXuno3YlUvbhIfVP3VsUmGJCmi9ztgYLqX10yqb0KvlM2Ig== + +"@stdlib/constants-float64-ninf@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-ninf/-/constants-float64-ninf-0.2.2.tgz#d7f5c5d445701dca25d39c14cac7a17acd7c5ee0" + integrity sha512-Iu+wZs/vgudAKVg9FEcRY3FadkmvsWuq/wJ3jIHjhaP5xcnoF3XJUO4IneEndybHwehfJL65NShnDsJcg1gicw== dependencies: - "@stdlib/assert-is-number" "^0.0.x" - "@stdlib/complex-float32" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" - "@stdlib/utils-define-property" "^0.0.x" - "@stdlib/utils-library-manifest" "^0.0.x" + "@stdlib/number-ctor" "^0.2.2" -"@stdlib/complex-reim@^0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@stdlib/complex-reim/-/complex-reim-0.0.6.tgz#9657971e36f2a1f1930a21249c1934c8c5087efd" - integrity sha512-28WXfPSIFMtHb0YgdatkGS4yxX5sPYea5MiNgqPv3E78+tFcg8JJG52NQ/MviWP2wsN9aBQAoCPeu8kXxSPdzA== +"@stdlib/constants-float64-pinf@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-pinf/-/constants-float64-pinf-0.2.2.tgz#e568ccfc63f8788f48acb55821bc9f0a7403ec5d" + integrity sha512-UcwnWaSkUMD8QyKADwkXPlY7yOosCPZpE2EDXf/+WOzuWi5vpsec+JaasD5ggAN8Rv8OTVmexTFs1uZfrHgqVQ== + +"@stdlib/constants-int16-max@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/constants-int16-max/-/constants-int16-max-0.2.2.tgz#151a4ba8cd09176f201c308e0d5bc15100b94043" + integrity sha512-w7XnWFxYXRyAnbKOxur3981FeaSlhKvHlhETwH5ZhtOQerk3Jn/iJFdtbN8CD0he1Kml4DWhnoKB7P9PcOaTIw== + +"@stdlib/constants-int16-min@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/constants-int16-min/-/constants-int16-min-0.2.2.tgz#4e2162619b551f8f552a9625149340e73ac65092" + integrity sha512-zn15vCgNoyD97z7mNQMChEneyc6xQudVGj1BOv5vZl827vHAs+KV6xeCI7VGY8Lpd6V22piDoGG3Mvj/43u9vQ== + +"@stdlib/constants-int32-max@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@stdlib/constants-int32-max/-/constants-int32-max-0.3.0.tgz#e575c365738d81b5fa1273877893312d3597af2c" + integrity sha512-jYN84QfG/yP2RYw98OR6UYehFFs0PsGAihV6pYU0ey+WF9IOXgSjRP56KMoZ7ctHwl4wsnj9I+qB2tGuEXr+pQ== + +"@stdlib/constants-int32-min@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/constants-int32-min/-/constants-int32-min-0.2.2.tgz#5ba8b290dad74a1f5cb4adb49ea59082df537ac9" + integrity sha512-4QMOTpo5QykiWp52Wtugu1WK1wV/Bi2Hjj9L97dfZ3BPB1Oa9ykiUZvTsq3GBNCMu2YHPv1ugbV91C3p3bw+Aw== + +"@stdlib/constants-int8-max@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/constants-int8-max/-/constants-int8-max-0.2.2.tgz#b92848bf8281e02af0eb4df2e20ef9187952c02a" + integrity sha512-zp1L61S/ycOmkILmvuXEKvtXrEJ0QUAwP65sNAWMJOtdT0mhGMfGpXKvCK84TC3+jP5Wk4LU13cgO2bf/pmGTw== + +"@stdlib/constants-int8-min@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/constants-int8-min/-/constants-int8-min-0.2.2.tgz#7355f162229b2a774e817f88e4255e753bb5c093" + integrity sha512-nxPloZUqbGuyuOPC0U3xQOn9YdyRq2g9uc1dzcw6k0XBhql9mlz9kCbdC74HeMm4K9Dyyb7IlAZLCezdv60s6g== + +"@stdlib/constants-uint16-max@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/constants-uint16-max/-/constants-uint16-max-0.2.2.tgz#8bba489909ea11a468a01afe57be912cbce57f56" + integrity sha512-qaFXbxgFnAkt73P5Ch7ODb0TsOTg0LEBM52hw6qt7+gTMZUdS0zBAiy5J2eEkTxA9rD9X3nIyUtLf2C7jafNdw== + +"@stdlib/constants-uint32-max@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/constants-uint32-max/-/constants-uint32-max-0.2.2.tgz#354b3c0f78ad54ff565087f01d9d8c337af63831" + integrity sha512-2G44HQgIKDrh3tJUkmvtz+eM+uwDvOMF+2I3sONcTHacANb+zP7la4LDYiTp+HFkPJyfh/kPapXBiHpissAb1A== + +"@stdlib/constants-uint8-max@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/constants-uint8-max/-/constants-uint8-max-0.2.2.tgz#1187e326b5f03d94a72051cace560ef156ac609d" + integrity sha512-ZTBQq3fqS/Y4ll6cPY5SKaS266EfmKP9PW3YLJaTELmYIzVo9w2RFtfCqN05G3olTQ6Le9MUEE/C6VFgZNElDQ== + +"@stdlib/error-tools-fmtprodmsg@^0.2.1", "@stdlib/error-tools-fmtprodmsg@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/error-tools-fmtprodmsg/-/error-tools-fmtprodmsg-0.2.2.tgz#0b42240fc5131b460f1120b77da8345dd22ee2dd" + integrity sha512-2IliQfTes4WV5odPidZFGD5eYDswZrPXob7oOu95Q69ERqImo8WzSwnG2EDbHPyOyYCewuMfM5Ha6Ggf+u944Q== + +"@stdlib/fs-exists@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/fs-exists/-/fs-exists-0.2.2.tgz#ccb289c0784f765796c27593abe6e398fb1bbdd2" + integrity sha512-uGLqc7izCIam2aTyv0miyktl4l8awgRkCS39eIEvvvnKIaTBF6pxfac7FtFHeEQKE3XhtKsOmdQ/yJjUMChLuA== dependencies: - "@stdlib/array-float64" "^0.0.x" - "@stdlib/complex-float64" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils-library-manifest" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" -"@stdlib/complex-reimf@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@stdlib/complex-reimf/-/complex-reimf-0.0.1.tgz#6797bc1bfb668a30511611f2544d0cff4d297775" - integrity sha512-P9zu05ZW2i68Oppp3oHelP7Tk0D7tGBL0hGl1skJppr2vY9LltuNbeYI3C96tQe/7Enw/5GyAWgxoQI4cWccQA== +"@stdlib/fs-resolve-parent-path@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/fs-resolve-parent-path/-/fs-resolve-parent-path-0.2.2.tgz#434fa93c067894fea7632aa4b93fba41d7a58cf5" + integrity sha512-ZG78ouZc+pdPLtU+sSpYTvbKTiLUgn6NTtlVFYmcmkYRFn+fGOOakwVuhYMcYG6ti10cLD6WzB/YujxIt8f+nA== dependencies: - "@stdlib/array-float32" "^0.0.x" - "@stdlib/complex-float32" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils-library-manifest" "^0.0.x" + "@stdlib/assert-has-own-property" "^0.2.2" + "@stdlib/assert-is-function" "^0.2.2" + "@stdlib/assert-is-plain-object" "^0.2.2" + "@stdlib/assert-is-string" "^0.2.2" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/fs-exists" "^0.2.2" + "@stdlib/process-cwd" "^0.2.2" + "@stdlib/string-format" "^0.2.2" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" -"@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" - integrity sha512-KoQtZUGxP+ljOjUfc/dpH9dEZmqxXaLs7HV1D0W+Gnwa8GnuPJijTwmYZwglmjtbeWIzlaLksqPAvlQE7rj2jg== - -"@stdlib/constants-float64-ninf@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-ninf/-/constants-float64-ninf-0.0.8.tgz#4a83691d4d46503e2339fa3ec21d0440877b5bb7" - integrity sha512-bn/uuzCne35OSLsQZJlNrkvU1/40spGTm22g1+ZI1LL19J8XJi/o4iupIHRXuLSTLFDBqMoJlUNphZlWQ4l8zw== +"@stdlib/math-base-assert-is-integer@^0.2.4", "@stdlib/math-base-assert-is-integer@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@stdlib/math-base-assert-is-integer/-/math-base-assert-is-integer-0.2.5.tgz#fa30a62ee27a90bf5cf598f78d7c0de50b582413" + integrity sha512-Zi8N66GbWtSCR3OUsRdBknjNlX+aBN8w6CaVEP5+Jy/a7MgMYzevS52TNS5sm8jqzKBlFhZlPLex+Zl2GlPvSA== dependencies: - "@stdlib/number-ctor" "^0.0.x" - "@stdlib/utils-library-manifest" "^0.0.x" + "@stdlib/math-base-special-floor" "^0.2.3" + "@stdlib/utils-library-manifest" "^0.2.2" -"@stdlib/constants-float64-pinf@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-pinf/-/constants-float64-pinf-0.0.8.tgz#ad3d5b267b142b0927363f6eda74c94b8c4be8bf" - integrity sha512-I3R4rm2cemoMuiDph07eo5oWZ4ucUtpuK73qBJiJPDQKz8fSjSe4wJBAigq2AmWYdd7yJHsl5NJd8AgC6mP5Qw== +"@stdlib/math-base-assert-is-nan@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/math-base-assert-is-nan/-/math-base-assert-is-nan-0.2.2.tgz#84289029340e0002a3795e640b7c46be3c3e1696" + integrity sha512-QVS8rpWdkR9YmHqiYLDVLsCiM+dASt/2feuTl4T/GSdou3Y/PS/4j/tuDvCDoHDNfDkULUW+FCVjKYpbyoeqBQ== dependencies: - "@stdlib/utils-library-manifest" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.2.1" -"@stdlib/constants-int16-max@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/constants-int16-max/-/constants-int16-max-0.0.7.tgz#7f62b6dc93aa468f51a5907d4da894c2b696deef" - integrity sha512-VCJVtehM+b27PB1+KcK97MCNfp9xhVaJQ+EJAi6sDIVtuMkx4HGW4GDmJB8vzBqqWaWo3M9bjNvuXHN/TQHZsA== - -"@stdlib/constants-int16-min@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/constants-int16-min/-/constants-int16-min-0.0.7.tgz#bef88532974e57aa60e060474d6314ba9bb457e6" - integrity sha512-HzuhrBMmkpR9vMsmYKFC3MSsx+cWOXDtKrg/L7OUK32dr1hFrlMJrFbjq83FgfGEdGO1hw519vZvKpZd4wJx6A== - -"@stdlib/constants-int32-max@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/constants-int32-max/-/constants-int32-max-0.0.7.tgz#83e55486670c1dad5c568640efe9742dc0ee0b2b" - integrity sha512-um/tgiIotQy7jkN6b7GzaOMQT4PN/o7Z6FR0CJn0cHIZfWCNKyVObfaR68uDX1nDwYGfNrO7BkCbU4ccrtflDA== - -"@stdlib/constants-int32-min@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/constants-int32-min/-/constants-int32-min-0.0.7.tgz#97d50ecca6f2a3e8b2f1cc7cf50926ae9e287009" - integrity sha512-/I7rK7sIhFOqz20stP9H6wVE+hfAcVKRKGBvNRsxbTiEcXnM3RjD6LxPGa/4dl6q/bq2ypJti8kfR8bKvepeDQ== - -"@stdlib/constants-int8-max@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/constants-int8-max/-/constants-int8-max-0.0.7.tgz#71e1eb536f1c4e5594a18d7ad2fc68760825f6c4" - integrity sha512-4qkN6H9PqBCkt/PEW/r6/RoLr3144mJuiyhxoUJ5kLmKPjjKJKKdTxORQFGOon/NykLS9EqjZdK16/n1FXJPqA== - -"@stdlib/constants-int8-min@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/constants-int8-min/-/constants-int8-min-0.0.7.tgz#736942d0321fcfde901660d6842da32d8c6ccb28" - integrity sha512-Ux1P8v+KijoG3MgEeIWFggK8MsT1QhSkWBoT0evVyO1ftK+51WXqC+0uAwPoP06nhW4UTW3i4eJS9BVyyz7Beg== - -"@stdlib/constants-uint16-max@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/constants-uint16-max/-/constants-uint16-max-0.0.7.tgz#c20dbe90cf3825f03f5f44b9ee7e8cbada26f4f1" - integrity sha512-7TPoku7SlskA67mAm7mykIAjeEnkQJemw1cnKZur0mT5W4ryvDR6iFfL9xBiByVnWYq/+ei7DHbOv6/2b2jizw== - -"@stdlib/constants-uint32-max@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/constants-uint32-max/-/constants-uint32-max-0.0.7.tgz#60bda569b226120a5d2e01f3066da8e2d3b8e21a" - integrity sha512-8+NK0ewqc1vnEZNqzwFJgFSy3S543Eft7i8WyW/ygkofiqEiLAsujvYMHzPAB8/3D+PYvjTSe37StSwRwvQ6uw== - -"@stdlib/constants-uint8-max@^0.0.x": - version "0.0.7" - 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/fs-exists@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/fs-exists/-/fs-exists-0.0.8.tgz#391b2cee3e014a3b20266e5d047847f68ef82331" - integrity sha512-mZktcCxiLmycCJefm1+jbMTYkmhK6Jk1ShFmUVqJvs+Ps9/2EEQXfPbdEniLoVz4HeHLlcX90JWobUEghOOnAQ== +"@stdlib/math-base-napi-unary@^0.2.1": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@stdlib/math-base-napi-unary/-/math-base-napi-unary-0.2.3.tgz#57862685d6ce037aa927020d272e8d74cc243320" + integrity sha512-BCyJmpq2S8EFo2yMt1z+v1EL7nn8RHcM6jn7fa8n3BTP679K0MSlawIh3A0CFogfrTdjPM4G44VO1ddsdLExcg== dependencies: - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" - "@stdlib/process-cwd" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/complex-float32-ctor" "^0.0.2" + "@stdlib/complex-float32-reim" "^0.1.1" + "@stdlib/complex-float64-ctor" "^0.0.3" + "@stdlib/complex-float64-reim" "^0.1.1" + "@stdlib/utils-library-manifest" "^0.2.2" -"@stdlib/fs-read-file@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/fs-read-file/-/fs-read-file-0.0.8.tgz#2f12669fa6dd2d330fb5006a94dc8896f0aaa0e0" - integrity sha512-pIZID/G91+q7ep4x9ECNC45+JT2j0+jdz/ZQVjCHiEwXCwshZPEvxcPQWb9bXo6coOY+zJyX5TwBIpXBxomWFg== +"@stdlib/math-base-special-floor@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@stdlib/math-base-special-floor/-/math-base-special-floor-0.2.3.tgz#978f69d99f298e571cadf00d8d4b92111db4644d" + integrity sha512-zTkxVRawtWwJ4NmAT/1e+ZsIoBj1JqUquGOpiNVGNIKtyLOeCONZlZSbN7zuxPkshvmcSjpQ/VLKR8Tw/37E9A== dependencies: - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/math-base-napi-unary" "^0.2.1" + "@stdlib/utils-library-manifest" "^0.2.2" -"@stdlib/fs-resolve-parent-path@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/fs-resolve-parent-path/-/fs-resolve-parent-path-0.0.8.tgz#628119952dfaae78afe3916dca856408a4f5c1eb" - integrity sha512-ok1bTWsAziChibQE3u7EoXwbCQUDkFjjRAHSxh7WWE5JEYVJQg1F0o3bbjRr4D/wfYYPWLAt8AFIKBUDmWghpg== +"@stdlib/number-ctor@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/number-ctor/-/number-ctor-0.2.2.tgz#64f76c5b5e2adcde7f089e9fd6625881e35a6fb0" + integrity sha512-98pL4f1uiXVIw9uRV6t4xecMFUYRRTUoctsqDDV8MSRtKEYDzqkWCNz/auupJFJ135L1ejzkejh73fASsgcwKQ== + +"@stdlib/number-float64-base-to-float32@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/number-float64-base-to-float32/-/number-float64-base-to-float32-0.2.2.tgz#5cb3bd9bf59fddd5747d50b5d54913178c562c3a" + integrity sha512-T5snDkVNZY6pomrSW/qLWQfZ9JHgqCFLi8jaaarfNj2o+5NMUuvvRifLUIacTm8/uC96xB0j3+wKTh1zbIV5ig== dependencies: - "@stdlib/assert-has-own-property" "^0.0.x" - "@stdlib/assert-is-function" "^0.0.x" - "@stdlib/assert-is-plain-object" "^0.0.x" - "@stdlib/assert-is-string" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-exists" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" - "@stdlib/process-cwd" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/array-float32" "^0.2.1" -"@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" - integrity sha512-swIEKQJZOwzacYDiX5SSt5/nHd6PYJkLlVKZiVx/GCpflstQnseWA0TmudG7XU5HJnxDGV/w6UL02dEyBH7VEw== +"@stdlib/object-ctor@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@stdlib/object-ctor/-/object-ctor-0.2.1.tgz#a3e261cd65eecffcb03e2cc7472aa5058efba48f" + integrity sha512-HEIBBpfdQS9Nh5mmIqMk9fzedx6E0tayJrVa2FD7No86rVuq/Ikxq1QP7qNXm+i6z9iNUUS/lZq7BmJESWO/Zg== + +"@stdlib/process-cwd@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/process-cwd/-/process-cwd-0.2.2.tgz#228df717417c335da7eeda37b6cc2b90fc3205f1" + integrity sha512-8Q/nA/ud5d5PEzzG6ZtKzcOw+RMLm5CWR8Wd+zVO5vcPj+JD7IV7M2lBhbzfUzr63Torrf/vEhT3cob8vUHV/A== + +"@stdlib/regexp-extended-length-path@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/regexp-extended-length-path/-/regexp-extended-length-path-0.2.2.tgz#5ea1664bc07de520236f8ab8201b160c9d9bffcd" + integrity sha512-z3jqauEsaxpsQU3rj1A1QnOgu17pyW5kt+Az8QkoTk7wqNE8HhPikI6k4o7XBHV689rSFWZCl4c4W+7JAiNObQ== dependencies: - "@stdlib/math-base-special-floor" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" -"@stdlib/math-base-assert-is-nan@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/math-base-assert-is-nan/-/math-base-assert-is-nan-0.0.8.tgz#0cd6a546ca1e758251f04898fc906f6fce9e0f80" - integrity sha512-m+gCVBxLFW8ZdAfdkATetYMvM7sPFoMKboacHjb1pe21jHQqVb+/4bhRSDg6S7HGX7/8/bSzEUm9zuF7vqK5rQ== +"@stdlib/regexp-function-name@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/regexp-function-name/-/regexp-function-name-0.2.2.tgz#e85e4e94eb382c9c8416b18ffe712c934c2b2b1f" + integrity sha512-0z/KRsgHJJ3UQkmBeLH+Nin0hXIeA+Fw1T+mnG2V5CHnTA6FKlpxJxWrvwLEsRX7mR/DNtDp06zGyzMFE/4kig== dependencies: - "@stdlib/utils-library-manifest" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" -"@stdlib/math-base-napi-unary@^0.0.x": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@stdlib/math-base-napi-unary/-/math-base-napi-unary-0.0.9.tgz#3a70fa64128aca7011c5a477110d2682d06c8ea8" - integrity sha512-2WNKhjCygkGMp0RgjaD7wAHJTqPZmuVW7yPOc62Tnz2U+Ad8q/tcOcN+uvq2dtKsAGr1HDMIQxZ/XrrThMePyA== +"@stdlib/regexp-regexp@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/regexp-regexp/-/regexp-regexp-0.2.2.tgz#624d7c64529016986ef1493b7db621766b1f74cd" + integrity sha512-LlWqVH7wou4rJ2vovmn8ZZf4Z5/sMYxGQkmUcURvdCDMSL4pt91uPMi9I2hLECcIYXLiKUD87VSR56Y5luaafg== dependencies: - "@stdlib/complex-float32" "^0.0.7" - "@stdlib/complex-float64" "^0.0.8" - "@stdlib/complex-reim" "^0.0.6" - "@stdlib/complex-reimf" "^0.0.1" - "@stdlib/utils-library-manifest" "^0.0.8" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.2.2" -"@stdlib/math-base-special-floor@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/math-base-special-floor/-/math-base-special-floor-0.0.8.tgz#c0bbde6f984aa132917a47c8bcc71b31ed0cbf26" - integrity sha512-VwpaiU0QhQKB8p+r9p9mNzhrjU5ZVBnUcLjKNCDADiGNvO5ACI/I+W++8kxBz5XSp5PAQhaFCH4MpRM1tSkd/w== +"@stdlib/string-base-format-interpolate@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/string-base-format-interpolate/-/string-base-format-interpolate-0.2.2.tgz#67c22f0ca93ccffd0eb7e1c7276e487b26e786c6" + integrity sha512-i9nU9rAB2+o/RR66TS9iQ8x+YzeUDL1SGiAo6GY3hP6Umz5Dx9Qp/v8T69gWVsb4a1YSclz5+YeCWaFgwvPjKA== + +"@stdlib/string-base-format-tokenize@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/string-base-format-tokenize/-/string-base-format-tokenize-0.2.2.tgz#3ef9e49f6619ce39d9ba8399c9f4f63b3199289a" + integrity sha512-kXq2015i+LJjqth5dN+hYnvJXBSzRm8w0ABWB5tYAsIuQTpQK+mSo2muM8JBEFEnqUHAwpUsu2qNTK/9o8lsJg== + +"@stdlib/string-base-lowercase@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@stdlib/string-base-lowercase/-/string-base-lowercase-0.4.0.tgz#079b55c30be8f2ea5b63c7a24707852e63a8d1b8" + integrity sha512-IH35Z5e4T+S3b3SfYY39mUhrD2qvJVp4VS7Rn3+jgj4+C3syocuAPsJ8C4OQXWGfblX/N9ymizbpFBCiVvMW8w== + +"@stdlib/string-base-replace@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/string-base-replace/-/string-base-replace-0.2.2.tgz#d5f8967600d530b2b2938ba1a8c1b333b6be8c1f" + integrity sha512-Y4jZwRV4Uertw7AlA/lwaYl1HjTefSriN5+ztRcQQyDYmoVN3gzoVKLJ123HPiggZ89vROfC+sk/6AKvly+0CA== + +"@stdlib/string-format@^0.2.1", "@stdlib/string-format@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/string-format/-/string-format-0.2.2.tgz#5f2ac8cfb06e1b11be9ac8fc546075d0c77ec938" + integrity sha512-GUa50uxgMAtoItsxTbMmwkyhIwrCxCrsjzk3nAbLnt/1Kt1EWOWMwsALqZdD6K4V/xSJ4ns6PZur3W6w+vKk9g== dependencies: - "@stdlib/math-base-napi-unary" "^0.0.x" - "@stdlib/utils-library-manifest" "^0.0.x" + "@stdlib/string-base-format-interpolate" "^0.2.1" + "@stdlib/string-base-format-tokenize" "^0.2.2" -"@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" - integrity sha512-kXNwKIfnb10Ro3RTclhAYqbE3DtIXax+qpu0z1/tZpI2vkmTfYDQLno2QJrzJsZZgdeFtXIws+edONN9kM34ow== - -"@stdlib/number-float64-base-to-float32@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/number-float64-base-to-float32/-/number-float64-base-to-float32-0.0.7.tgz#c7b82bb26cb7404017ede32cebe5864fd84c0e35" - integrity sha512-PNUSi6+cqfFiu4vgFljUKMFY2O9PxI6+T+vqtIoh8cflf+PjSGj3v4QIlstK9+6qU40eGR5SHZyLTWdzmNqLTQ== +"@stdlib/string-replace@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/string-replace/-/string-replace-0.2.2.tgz#c4a526abdec7ec031beeb87f98c4c9356fdce969" + integrity sha512-czNS5IU7sBuHjac45Y3VWUTsUoi82yc8JsMZrOMcjgSrEuDrVmA6sNJg7HC1DuSpdPjm/v9uUk102s1gIfk3Nw== dependencies: - "@stdlib/array-float32" "^0.0.x" + "@stdlib/assert-is-function" "^0.2.2" + "@stdlib/assert-is-regexp" "^0.2.2" + "@stdlib/assert-is-string" "^0.2.2" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/string-base-replace" "^0.2.2" + "@stdlib/string-format" "^0.2.2" + "@stdlib/utils-escape-regexp-string" "^0.2.2" -"@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" - integrity sha512-GHINpJgSlKEo9ODDWTHp0/Zc/9C/qL92h5Mc0QlIFBXAoUjy6xT4FB2U16wCNZMG3eVOzt5+SjmCwvGH0Wbg3Q== +"@stdlib/symbol-ctor@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/symbol-ctor/-/symbol-ctor-0.2.2.tgz#07a1477df50d9c54f4b79f810a0f0667e52c24d6" + integrity sha512-XsmiTfHnTb9jSPf2SoK3O0wrNOXMxqzukvDvtzVur1XBKfim9+seaAS4akmV1H3+AroAXQWVtde885e1B6jz1w== + +"@stdlib/utils-constructor-name@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-constructor-name/-/utils-constructor-name-0.2.2.tgz#3462fb107196d00698604aac32089353273c82a2" + integrity sha512-TBtO3MKDAf05ij5ajmyBCbpKKt0Lfahn5tu18gqds4PkFltgcw5tVZfSHY5DZ2HySJQ2GMMYjPW2Kbg6yPCSVg== dependencies: - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/assert-is-buffer" "^0.2.1" + "@stdlib/regexp-function-name" "^0.2.2" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/process-read-stdin@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/process-read-stdin/-/process-read-stdin-0.0.7.tgz#684ad531759c6635715a67bdd8721fc249baa200" - integrity sha512-nep9QZ5iDGrRtrZM2+pYAvyCiYG4HfO0/9+19BiLJepjgYq4GKeumPAQo22+1xawYDL7Zu62uWzYszaVZcXuyw== +"@stdlib/utils-convert-path@^0.2.1": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-convert-path/-/utils-convert-path-0.2.2.tgz#7ffcd09a4f2384e0421a4154e31fe520ee0a62b7" + integrity sha512-8nNuAgt23Np9NssjShUrPK42c6gRTweGuoQw+yTpTfBR9VQv8WFyt048n8gRGUlAHizrdMNpEY9VAb7IBzpVYw== dependencies: - "@stdlib/assert-is-function" "^0.0.x" - "@stdlib/assert-is-string" "^0.0.x" - "@stdlib/buffer-ctor" "^0.0.x" - "@stdlib/buffer-from-string" "^0.0.x" - "@stdlib/streams-node-stdin" "^0.0.x" - "@stdlib/utils-next-tick" "^0.0.x" + "@stdlib/assert-is-string" "^0.2.2" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/regexp-extended-length-path" "^0.2.2" + "@stdlib/string-base-lowercase" "^0.4.0" + "@stdlib/string-format" "^0.2.2" + "@stdlib/string-replace" "^0.2.1" -"@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" - integrity sha512-BTMpRWrmlnf1XCdTxOrb8o6caO2lmu/c80XSyhYCi1DoizVIZnqxOaN5yUJNCr50g28vQ47PpsT3Yo7J3SdlRA== +"@stdlib/utils-copy@^0.2.0": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-copy/-/utils-copy-0.2.2.tgz#d7359e59de632a0dd1a315feb0ccff7e0c96e42a" + integrity sha512-DM8O5tgOHHyhaERDJKa/ThDhIewDyo5SxoFJnmxSriAlJsV9uAmzF8rm7vY969TPRACb+Uxj2GXUoYlmUcHTmA== dependencies: - "@stdlib/assert-has-own-property" "^0.0.x" - "@stdlib/assert-is-boolean" "^0.0.x" - "@stdlib/assert-is-plain-object" "^0.0.x" - "@stdlib/assert-is-string" "^0.0.x" - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/array-float32" "^0.2.2" + "@stdlib/array-float64" "^0.2.2" + "@stdlib/array-int16" "^0.2.2" + "@stdlib/array-int32" "^0.2.2" + "@stdlib/array-int8" "^0.2.2" + "@stdlib/array-uint16" "^0.2.2" + "@stdlib/array-uint32" "^0.2.2" + "@stdlib/array-uint8" "^0.2.2" + "@stdlib/array-uint8c" "^0.2.2" + "@stdlib/assert-has-own-property" "^0.2.2" + "@stdlib/assert-is-array" "^0.2.2" + "@stdlib/assert-is-buffer" "^0.2.2" + "@stdlib/assert-is-error" "^0.2.2" + "@stdlib/assert-is-nonnegative-integer" "^0.2.2" + "@stdlib/buffer-from-buffer" "^0.2.2" + "@stdlib/constants-float64-pinf" "^0.2.2" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/string-format" "^0.2.2" + "@stdlib/utils-define-property" "^0.2.4" + "@stdlib/utils-get-prototype-of" "^0.2.2" + "@stdlib/utils-index-of" "^0.2.2" + "@stdlib/utils-keys" "^0.2.2" + "@stdlib/utils-property-descriptor" "^0.2.2" + "@stdlib/utils-property-names" "^0.2.2" + "@stdlib/utils-regexp-from-string" "^0.2.2" + "@stdlib/utils-type-of" "^0.2.2" -"@stdlib/regexp-extended-length-path@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/regexp-extended-length-path/-/regexp-extended-length-path-0.0.7.tgz#7f76641c29895771e6249930e1863e7e137a62e0" - integrity sha512-z6uqzMWq3WPDKbl4MIZJoNA5ZsYLQI9G3j2TIvhU8X2hnhlku8p4mvK9F+QmoVvgPxKliwNnx/DAl7ltutSDKw== +"@stdlib/utils-define-nonenumerable-read-only-property@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-define-nonenumerable-read-only-property/-/utils-define-nonenumerable-read-only-property-0.2.2.tgz#80be97888609d1e471d20812cc5ba83a01f92e88" + integrity sha512-V3mpAesJemLYDKG376CsmoczWPE/4LKsp8xBvUxCt5CLNAx3J/1W39iZQyA5q6nY1RStGinGn1/dYZwa8ig0Uw== dependencies: - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/utils-define-property" "^0.2.3" -"@stdlib/regexp-function-name@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/regexp-function-name/-/regexp-function-name-0.0.7.tgz#e8dc6c7fe9276f0a8b4bc7f630a9e32ba9f37250" - integrity sha512-MaiyFUUqkAUpUoz/9F6AMBuMQQfA9ssQfK16PugehLQh4ZtOXV1LhdY8e5Md7SuYl9IrvFVg1gSAVDysrv5ZMg== +"@stdlib/utils-define-property@^0.2.3", "@stdlib/utils-define-property@^0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@stdlib/utils-define-property/-/utils-define-property-0.2.4.tgz#a8b6e120c829ee99ed81cf0111bb4c76ef85da9e" + integrity sha512-XlMdz7xwuw/sqXc9LbsV8XunCzZXjbZPC+OAdf4t4PBw4ZRwGzlTI6WED+f4PYR5Tp9F1cHgLPyMYCIBfA2zRg== dependencies: - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/error-tools-fmtprodmsg" "^0.2.1" + "@stdlib/string-format" "^0.2.1" -"@stdlib/regexp-regexp@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/regexp-regexp/-/regexp-regexp-0.0.8.tgz#50221b52088cd427ef19fae6593977c1c3f77e87" - integrity sha512-S5PZICPd/XRcn1dncVojxIDzJsHtEleuJHHD7ji3o981uPHR7zI2Iy9a1eV2u7+ABeUswbI1Yuix6fXJfcwV1w== +"@stdlib/utils-escape-regexp-string@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-escape-regexp-string/-/utils-escape-regexp-string-0.2.2.tgz#dd407c9324c1da4fa7b25e5c862502e8dc6d61ab" + integrity sha512-areCibzgpmvm6pGKBg+mXkSDJW4NxtS5jcAT7RtunGMdAYhA/I5whISMPaeJkIT2XhjjFkjKBaIs5pF6aPr4fQ== dependencies: - "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/assert-is-string" "^0.2.1" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/string-format" "^0.2.2" -"@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/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" - integrity sha512-8FC8+/ey+P5hf1B50oXpXzRzoAgKI1rikpyKZ98Xmjd5rcbSq3NWYi8TqOF8mUHm9hVZ2CXWoNCtEe2wvMQPMg== - -"@stdlib/string-base-format-tokenize@^0.0.x": - version "0.0.4" - resolved "https://registry.yarnpkg.com/@stdlib/string-base-format-tokenize/-/string-base-format-tokenize-0.0.4.tgz#c1fc612ee0c0de5516dbf083e88c11d14748c30e" - integrity sha512-+vMIkheqAhDeT/iF5hIQo95IMkt5IzC68eR3CxW1fhc48NMkKFE2UfN73ET8fmLuOanLo/5pO2E90c2G7PExow== - -"@stdlib/string-format@^0.0.x": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@stdlib/string-format/-/string-format-0.0.3.tgz#e916a7be14d83c83716f5d30b1b1af94c4e105b9" - integrity sha512-1jiElUQXlI/tTkgRuzJi9jUz/EjrO9kzS8VWHD3g7gdc3ZpxlA5G9JrIiPXGw/qmZTi0H1pXl6KmX+xWQEQJAg== +"@stdlib/utils-get-prototype-of@^0.2.1", "@stdlib/utils-get-prototype-of@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-get-prototype-of/-/utils-get-prototype-of-0.2.2.tgz#a65def101deece8d81f3bbf892ababe4d61114bb" + integrity sha512-eDb1BAvt7GW/jduBkfuQrUsA9p09mV8RW20g0DWPaxci6ORYg/UB0tdbAA23aZz2QUoxdYY5s/UJxlq/GHwoKQ== dependencies: - "@stdlib/string-base-format-interpolate" "^0.0.x" - "@stdlib/string-base-format-tokenize" "^0.0.x" + "@stdlib/assert-is-function" "^0.2.1" + "@stdlib/object-ctor" "^0.2.1" + "@stdlib/utils-native-class" "^0.2.1" -"@stdlib/string-lowercase@^0.0.x": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@stdlib/string-lowercase/-/string-lowercase-0.0.9.tgz#487361a10364bd0d9b5ee44f5cc654c7da79b66d" - integrity sha512-tXFFjbhIlDak4jbQyV1DhYiSTO8b1ozS2g/LELnsKUjIXECDKxGFyWYcz10KuyAWmFotHnCJdIm8/blm2CfDIA== +"@stdlib/utils-global@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-global/-/utils-global-0.2.2.tgz#61f875ef4ed74a091ed841127262961edef2d973" + integrity sha512-A4E8VFHn+1bpfJ4PA8H2b62CMQpjv2A+H3QDEBrouLFWne0wrx0TNq8vH6VYHxx9ZRxhgWQjfHiSAxtUJobrbQ== dependencies: - "@stdlib/assert-is-string" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" - "@stdlib/process-read-stdin" "^0.0.x" - "@stdlib/streams-node-stdin" "^0.0.x" - "@stdlib/string-format" "^0.0.x" + "@stdlib/assert-is-boolean" "^0.2.1" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/string-format" "^0.2.2" -"@stdlib/string-replace@^0.0.x": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@stdlib/string-replace/-/string-replace-0.0.11.tgz#5e8790cdf4d9805ab78cc5798ab3d364dfbf5016" - integrity sha512-F0MY4f9mRE5MSKpAUfL4HLbJMCbG6iUTtHAWnNeAXIvUX1XYIw/eItkA58R9kNvnr1l5B08bavnjrgTJGIKFFQ== +"@stdlib/utils-index-of@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-index-of/-/utils-index-of-0.2.2.tgz#9c60f95bb480dbe5a5107daaf6b12d61da69dc89" + integrity sha512-yVnjPk3Arzf3no+Ju5ys4ZVG4aKHA8xV4g53Ni+FO8c0AStKq9F8O+E/aFxluCKqLz6jGLaLea7996e0Hcw9mQ== dependencies: - "@stdlib/assert-is-function" "^0.0.x" - "@stdlib/assert-is-regexp" "^0.0.x" - "@stdlib/assert-is-regexp-string" "^0.0.x" - "@stdlib/assert-is-string" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" - "@stdlib/process-read-stdin" "^0.0.x" - "@stdlib/regexp-eol" "^0.0.x" - "@stdlib/streams-node-stdin" "^0.0.x" - "@stdlib/string-format" "^0.0.x" - "@stdlib/utils-escape-regexp-string" "^0.0.x" - "@stdlib/utils-regexp-from-string" "^0.0.x" + "@stdlib/assert-is-collection" "^0.2.1" + "@stdlib/assert-is-integer" "^0.2.2" + "@stdlib/assert-is-nan" "^0.2.2" + "@stdlib/assert-is-string" "^0.2.2" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/string-format" "^0.2.2" -"@stdlib/types@^0.0.x": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@stdlib/types/-/types-0.0.14.tgz#02d3aab7a9bfaeb86e34ab749772ea22f7b2f7e0" - integrity sha512-AP3EI9/il/xkwUazcoY+SbjtxHRrheXgSbWZdEGD+rWpEgj6n2i63hp6hTOpAB5NipE0tJwinQlDGOuQ1lCaCw== - -"@stdlib/utils-constructor-name@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/utils-constructor-name/-/utils-constructor-name-0.0.8.tgz#ef63d17466c555b58b348a0c1175cee6044b8848" - integrity sha512-GXpyNZwjN8u3tyYjL2GgGfrsxwvfogUC3gg7L7NRZ1i86B6xmgfnJUYHYOUnSfB+R531ET7NUZlK52GxL7P82Q== +"@stdlib/utils-keys@^0.2.1", "@stdlib/utils-keys@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-keys/-/utils-keys-0.2.2.tgz#efdd5b14370468d146bb4fdd3819caa0f76699e0" + integrity sha512-mvmvhpewElNalx5YotZ/jI57CiYHc9y6N8SGxJiOUs04NkWMkW8rnXRvJEi0rPj2BOIJReEGZ1WaZpdL68DUcQ== dependencies: - "@stdlib/assert-is-buffer" "^0.0.x" - "@stdlib/regexp-function-name" "^0.0.x" - "@stdlib/utils-native-class" "^0.0.x" + "@stdlib/assert-has-own-property" "^0.2.2" + "@stdlib/assert-is-arguments" "^0.2.1" + "@stdlib/assert-is-enumerable-property" "^0.2.2" + "@stdlib/assert-is-object-like" "^0.2.2" + "@stdlib/utils-index-of" "^0.2.2" + "@stdlib/utils-noop" "^0.2.2" + "@stdlib/utils-type-of" "^0.2.2" -"@stdlib/utils-convert-path@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/utils-convert-path/-/utils-convert-path-0.0.8.tgz#a959d02103eee462777d222584e72eceef8c223b" - integrity sha512-GNd8uIswrcJCctljMbmjtE4P4oOjhoUIfMvdkqfSrRLRY+ZqPB2xM+yI0MQFfUq/0Rnk/xtESlGSVLz9ZDtXfA== +"@stdlib/utils-library-manifest@^0.2.1", "@stdlib/utils-library-manifest@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-library-manifest/-/utils-library-manifest-0.2.2.tgz#1908504dbdbb665a8b72ff40c4f426afefbd7fd2" + integrity sha512-YqzVLuBsB4wTqzdUtRArAjBJoT3x61iop2jFChXexhl6ejV3vDpHcukEEkqIOcJKut+1cG5TLJdexgHNt1C0NA== dependencies: - "@stdlib/assert-is-string" "^0.0.x" - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-read-file" "^0.0.x" - "@stdlib/process-read-stdin" "^0.0.x" - "@stdlib/regexp-eol" "^0.0.x" - "@stdlib/regexp-extended-length-path" "^0.0.x" - "@stdlib/streams-node-stdin" "^0.0.x" - "@stdlib/string-lowercase" "^0.0.x" - "@stdlib/string-replace" "^0.0.x" - -"@stdlib/utils-copy@^0.0.7": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/utils-copy/-/utils-copy-0.0.7.tgz#e2c59993a0833e20ccedd8efaf9081043bd61d76" - integrity sha512-nGwWpKOwKw5JnY4caefhZtOglopK6vLlJiqKAjSLK0jz7g5ziyOZAc3ps1E6U5z+xtVhWaXa3VxiG42v9U/TSA== - dependencies: - "@stdlib/array-float32" "^0.0.x" - "@stdlib/array-float64" "^0.0.x" - "@stdlib/array-int16" "^0.0.x" - "@stdlib/array-int32" "^0.0.x" - "@stdlib/array-int8" "^0.0.x" - "@stdlib/array-uint16" "^0.0.x" - "@stdlib/array-uint32" "^0.0.x" - "@stdlib/array-uint8" "^0.0.x" - "@stdlib/array-uint8c" "^0.0.x" - "@stdlib/assert-has-own-property" "^0.0.x" - "@stdlib/assert-is-array" "^0.0.x" - "@stdlib/assert-is-buffer" "^0.0.x" - "@stdlib/assert-is-error" "^0.0.x" - "@stdlib/assert-is-nonnegative-integer" "^0.0.x" - "@stdlib/buffer-from-buffer" "^0.0.x" - "@stdlib/constants-float64-pinf" "^0.0.x" - "@stdlib/utils-define-property" "^0.0.x" - "@stdlib/utils-get-prototype-of" "^0.0.x" - "@stdlib/utils-index-of" "^0.0.x" - "@stdlib/utils-keys" "^0.0.x" - "@stdlib/utils-property-descriptor" "^0.0.x" - "@stdlib/utils-property-names" "^0.0.x" - "@stdlib/utils-regexp-from-string" "^0.0.x" - "@stdlib/utils-type-of" "^0.0.x" - -"@stdlib/utils-define-nonenumerable-read-only-property@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/utils-define-nonenumerable-read-only-property/-/utils-define-nonenumerable-read-only-property-0.0.7.tgz#ee74540c07bfc3d997ef6f8a1b2df267ea0c07ca" - integrity sha512-c7dnHDYuS4Xn3XBRWIQBPcROTtP/4lkcFyq0FrQzjXUjimfMgHF7cuFIIob6qUTnU8SOzY9p0ydRR2QJreWE6g== - dependencies: - "@stdlib/types" "^0.0.x" - "@stdlib/utils-define-property" "^0.0.x" - -"@stdlib/utils-define-property@^0.0.x": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@stdlib/utils-define-property/-/utils-define-property-0.0.9.tgz#2f40ad66e28099714e3774f3585db80b13816e76" - integrity sha512-pIzVvHJvVfU/Lt45WwUAcodlvSPDDSD4pIPc9WmIYi4vnEBA9U7yHtiNz2aTvfGmBMTaLYTVVFIXwkFp+QotMA== - dependencies: - "@stdlib/types" "^0.0.x" - -"@stdlib/utils-escape-regexp-string@^0.0.x": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@stdlib/utils-escape-regexp-string/-/utils-escape-regexp-string-0.0.9.tgz#36f25d78b2899384ca6c97f4064a8b48edfedb6e" - integrity sha512-E+9+UDzf2mlMLgb+zYrrPy2FpzbXh189dzBJY6OG+XZqEJAXcjWs7DURO5oGffkG39EG5KXeaQwDXUavcMDCIw== - dependencies: - "@stdlib/assert-is-string" "^0.0.x" - "@stdlib/string-format" "^0.0.x" - -"@stdlib/utils-get-prototype-of@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/utils-get-prototype-of/-/utils-get-prototype-of-0.0.7.tgz#f677132bcbc0ec89373376637148d364435918df" - integrity sha512-fCUk9lrBO2ELrq+/OPJws1/hquI4FtwG0SzVRH6UJmJfwb1zoEFnjcwyDAy+HWNVmo3xeRLsrz6XjHrJwer9pg== - dependencies: - "@stdlib/assert-is-function" "^0.0.x" - "@stdlib/utils-native-class" "^0.0.x" - -"@stdlib/utils-global@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/utils-global/-/utils-global-0.0.7.tgz#0d99dcd11b72ad10b97dfb43536ff50436db6fb4" - integrity sha512-BBNYBdDUz1X8Lhfw9nnnXczMv9GztzGpQ88J/6hnY7PHJ71av5d41YlijWeM9dhvWjnH9I7HNE3LL7R07yw0kA== - dependencies: - "@stdlib/assert-is-boolean" "^0.0.x" - -"@stdlib/utils-index-of@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/utils-index-of/-/utils-index-of-0.0.8.tgz#e0cebb11e76b017b9c8bd38e4482e5336392306c" - integrity sha512-tz8pL9CgEYp73xWp0hQIR5vLjvM0jnoX5cCpRjn7SHzgDb4/fkpfJX4c0HznK+cCA35jvVVNhM2J0M4Y0IPg2A== - dependencies: - "@stdlib/assert-is-collection" "^0.0.x" - "@stdlib/assert-is-integer" "^0.0.x" - "@stdlib/assert-is-nan" "^0.0.x" - "@stdlib/assert-is-string" "^0.0.x" - "@stdlib/types" "^0.0.x" - -"@stdlib/utils-keys@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/utils-keys/-/utils-keys-0.0.7.tgz#7e1545ed728b0f4de31f7b8475307ab36ff7ced1" - integrity sha512-9qzmetloJ0A6iO71n3f9F4cAs/Hq0E7bYHlYNnXwS03wmwI97x3QSzWVoL5o0qpluQVidSQIxeNXPHNEvEa04A== - dependencies: - "@stdlib/assert-has-own-property" "^0.0.x" - "@stdlib/assert-is-arguments" "^0.0.x" - "@stdlib/assert-is-enumerable-property" "^0.0.x" - "@stdlib/assert-is-object-like" "^0.0.x" - "@stdlib/utils-index-of" "^0.0.x" - "@stdlib/utils-noop" "^0.0.x" - "@stdlib/utils-type-of" "^0.0.x" - -"@stdlib/utils-library-manifest@^0.0.8", "@stdlib/utils-library-manifest@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/utils-library-manifest/-/utils-library-manifest-0.0.8.tgz#61d3ed283e82c8f14b7f952d82cfb8e47d036825" - integrity sha512-IOQSp8skSRQn9wOyMRUX9Hi0j/P5v5TvD8DJWTqtE8Lhr8kVVluMBjHfvheoeKHxfWAbNHSVpkpFY/Bdh/SHgQ== - dependencies: - "@stdlib/cli-ctor" "^0.0.x" - "@stdlib/fs-resolve-parent-path" "^0.0.x" - "@stdlib/utils-convert-path" "^0.0.x" + "@stdlib/fs-resolve-parent-path" "^0.2.1" + "@stdlib/utils-convert-path" "^0.2.1" debug "^2.6.9" resolve "^1.1.7" -"@stdlib/utils-native-class@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/utils-native-class/-/utils-native-class-0.0.8.tgz#2e79de97f85d88a2bb5baa7a4528add71448d2be" - integrity sha512-0Zl9me2V9rSrBw/N8o8/9XjmPUy8zEeoMM0sJmH3N6C9StDsYTjXIAMPGzYhMEWaWHvGeYyNteFK2yDOVGtC3w== +"@stdlib/utils-native-class@^0.2.1", "@stdlib/utils-native-class@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-native-class/-/utils-native-class-0.2.2.tgz#dbb00a84e8c583cdd1bc40b163f1786dc44c4f09" + integrity sha512-cSn/FozbEpfR/FlJAoceQtZ8yUJFhZ8RFkbEsxW/7+H4o09yln3lBS0HSfUJISYNtpTNN/2/Fup88vmvwspvwA== dependencies: - "@stdlib/assert-has-own-property" "^0.0.x" - "@stdlib/assert-has-tostringtag-support" "^0.0.x" + "@stdlib/assert-has-own-property" "^0.2.1" + "@stdlib/assert-has-tostringtag-support" "^0.2.2" + "@stdlib/symbol-ctor" "^0.2.2" -"@stdlib/utils-next-tick@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/utils-next-tick/-/utils-next-tick-0.0.8.tgz#72345745ec3b3aa2cedda056338ed95daae9388c" - integrity sha512-l+hPl7+CgLPxk/gcWOXRxX/lNyfqcFCqhzzV/ZMvFCYLY/wI9lcWO4xTQNMALY2rp+kiV+qiAiO9zcO+hewwUg== +"@stdlib/utils-noop@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-noop/-/utils-noop-0.2.2.tgz#527404ec9875f5e45ec295810bc462a32e3ce4d2" + integrity sha512-QlHCBCExrFlNFFqDBOvxPeHkvAuMBHsbQYWRjSG2FD6QumEDn9EqBAcJZNr+xYdkw/6SVRJ0ySTyroReg5vcAA== -"@stdlib/utils-noop@^0.0.x": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@stdlib/utils-noop/-/utils-noop-0.0.14.tgz#8a2077fae0877c4c9e4c5f72f3c9284ca109d4c3" - integrity sha512-A5faFEUfszMgd93RCyB+aWb62hQxgP+dZ/l9rIOwNWbIrCYNwSuL4z50lNJuatnwwU4BQ4EjQr+AmBsnvuLcyQ== - -"@stdlib/utils-property-descriptor@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/utils-property-descriptor/-/utils-property-descriptor-0.0.7.tgz#f9ea361ad29f5d398c5b6716bb1788c18d0b55be" - integrity sha512-pi72eRantil7+5iyIwvB7gg3feI1ox8T6kbHoZCgHKwFdr9Bjp6lBHPzfiHBHgQQ0n54sU8EDmrVlLFmmG/qSg== +"@stdlib/utils-property-descriptor@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-property-descriptor/-/utils-property-descriptor-0.2.2.tgz#88d9b55c0a17d22ccd50ad9fbf47544a7b4a1c9a" + integrity sha512-iq0jFOOX5OmaOC1uyO8POjWPPA6GxbFFcDzH4QsyhKWN2P5ZDvnKMRfH6TuMmaLEA5vSzeNwGfcBPQMRBRphUg== dependencies: - "@stdlib/assert-has-own-property" "^0.0.x" + "@stdlib/assert-has-own-property" "^0.2.1" -"@stdlib/utils-property-names@^0.0.x": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@stdlib/utils-property-names/-/utils-property-names-0.0.7.tgz#1f67de736278d53a2dce7f5e8425c7f4a5435a27" - integrity sha512-Yr3z9eO6olGiEEcaR3lHAhB7FCT0RUB+u3FyExwOhyT3PXoH0CJwWHuzpNpVVxpp57JDhvKIhNqHHyqZI8n42w== +"@stdlib/utils-property-names@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-property-names/-/utils-property-names-0.2.2.tgz#a24852878f8c7b1d8bfa9288b14f720fac67bf1b" + integrity sha512-LlHK467gOxvD6T5yzSy/DnDPzeG00Qj1lrowapAOP7HbGMPvs3RI8Re32IqUke5OE698jXW3tL0VDu6yLi2e1A== dependencies: - "@stdlib/utils-keys" "^0.0.x" + "@stdlib/object-ctor" "^0.2.1" + "@stdlib/utils-keys" "^0.2.1" -"@stdlib/utils-regexp-from-string@^0.0.x": - version "0.0.9" - resolved "https://registry.yarnpkg.com/@stdlib/utils-regexp-from-string/-/utils-regexp-from-string-0.0.9.tgz#fe4745a9a000157b365971c513fd7d4b2cb9ad6e" - integrity sha512-3rN0Mcyiarl7V6dXRjFAUMacRwe0/sYX7ThKYurf0mZkMW9tjTP+ygak9xmL9AL0QQZtbrFFwWBrDO+38Vnavw== +"@stdlib/utils-regexp-from-string@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-regexp-from-string/-/utils-regexp-from-string-0.2.2.tgz#0eeac962b9e43f8587b5eaf25a235f4380976fdb" + integrity sha512-xvyX44wYAn7DUSTwfIdzohFFo2J+kkzZf1I3cQZr09k8364/1x2Ro7bhPVXX/fEUJ1LbbPF3PAcGa44cvN8Nzg== dependencies: - "@stdlib/assert-is-string" "^0.0.x" - "@stdlib/regexp-regexp" "^0.0.x" - "@stdlib/string-format" "^0.0.x" + "@stdlib/assert-is-string" "^0.2.1" + "@stdlib/error-tools-fmtprodmsg" "^0.2.2" + "@stdlib/regexp-regexp" "^0.2.2" + "@stdlib/string-format" "^0.2.2" -"@stdlib/utils-type-of@^0.0.x": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@stdlib/utils-type-of/-/utils-type-of-0.0.8.tgz#c62ed3fcf629471fe80d83f44c4e325860109cbe" - integrity sha512-b4xqdy3AnnB7NdmBBpoiI67X4vIRxvirjg3a8BfhM5jPr2k0njby1jAbG9dUxJvgAV6o32S4kjUgfIdjEYpTNQ== +"@stdlib/utils-type-of@^0.2.1", "@stdlib/utils-type-of@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@stdlib/utils-type-of/-/utils-type-of-0.2.2.tgz#517de513c043d7c0a48743593be41f67f0d51a9f" + integrity sha512-RLGFxPNgY9AtVVrFGdKO6Y3pOd/Ov2WA4O2/czZN/AbgYzbPdoF0KkfvHRIney6k+TtvoyYB8YqZXJ4G88f9BQ== dependencies: - "@stdlib/utils-constructor-name" "^0.0.x" - "@stdlib/utils-global" "^0.0.x" + "@stdlib/utils-constructor-name" "^0.2.1" + "@stdlib/utils-global" "^0.2.2" "@storybook/addon-actions@7.6.20": version "7.6.20" @@ -7677,95 +7588,95 @@ ajv "^6.12.6" lodash "^4.17.11" -"@tryghost/bookshelf-collision@^0.1.43": - version "0.1.43" - resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-collision/-/bookshelf-collision-0.1.43.tgz#6491d47c642565735b0a0cbec65925862a7b88ee" - integrity sha512-RPe5ZpkkETlAmQxuVUKZ6LstYokfb1+mJCt6NMYFIcrXAPW1WSS7l11rCBs7WcuhvVKc6yPD+fwD4MmHuVtJ0w== +"@tryghost/bookshelf-collision@^0.1.45": + version "0.1.45" + resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-collision/-/bookshelf-collision-0.1.45.tgz#0581265964fa0c799f19ce0e0288e5ecb832c108" + integrity sha512-NJcl6WdRUSTutqFhmkZQwqx3nRjfGZImLasCHLWSY8oZvhG0IQ5yabkDUCzv2lCoUfQODyn32N9a3+5Rrmok0w== dependencies: - "@tryghost/errors" "^1.3.3" + "@tryghost/errors" "^1.3.5" lodash "^4.17.21" moment-timezone "^0.5.33" -"@tryghost/bookshelf-custom-query@^0.1.26": - version "0.1.26" - resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-custom-query/-/bookshelf-custom-query-0.1.26.tgz#57a0f1772710d2f2866847b333e03b2d2d7f1e3c" - integrity sha512-p4ocob5jchlsPZLw5bycCQwDL026t3HVB1kxZnZHmkdGluTEBpL5/rYCRJj/kGG2zWX/1wzhP1cFFiLCOQjfsQ== +"@tryghost/bookshelf-custom-query@^0.1.27": + version "0.1.27" + resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-custom-query/-/bookshelf-custom-query-0.1.27.tgz#b17385c5cbadf76f2dd287419ed04ae5becde98b" + integrity sha512-a4srouaBad+KqEihIlHqofplLMzUxiQyCNuMjFJeNUEjqxkskBGADvmFqUhwOJ0fVp2pABD/cZspAemF6flN/w== -"@tryghost/bookshelf-eager-load@^0.1.30": - version "0.1.30" - resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-eager-load/-/bookshelf-eager-load-0.1.30.tgz#3227ee336a073422f60c588daee7a338457f4a5e" - integrity sha512-bMnBc4LelXsp+cfC9ovebvWr9lV0QTkThWLKSbVi/FRUV5JiMJTGRLMNNwv0bZfH9MBalynDBpvaHv1t+G1qcw== - dependencies: - "@tryghost/debug" "^0.1.31" - lodash "^4.17.21" - -"@tryghost/bookshelf-filter@^0.5.15": - version "0.5.15" - resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-filter/-/bookshelf-filter-0.5.15.tgz#4979da196a8010a6262299d1927d905e3e500083" - integrity sha512-++k8dUOhccPikPDaRLFNdtiNgHLnlx5e64j/6IGTY4F8L/NeqEj/CxziR9Wxw5sV9USUMsg42fDulZXZ0dJgcg== - dependencies: - "@tryghost/debug" "^0.1.31" - "@tryghost/errors" "^1.3.3" - "@tryghost/nql" "^0.12.3" - "@tryghost/tpl" "^0.1.31" - -"@tryghost/bookshelf-has-posts@^0.1.31": +"@tryghost/bookshelf-eager-load@^0.1.31": version "0.1.31" - resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-has-posts/-/bookshelf-has-posts-0.1.31.tgz#e37622cdf2cdf537afb75a907428942af1587833" - integrity sha512-QJxytGKcBdo3aa+FZeKRglm0+Zb7rwLT9D8CEvCPJ8OxbbsKlCgjTm9Z2feeF7ui+2WQk9Mi8eV7q/wozkTfrw== + resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-eager-load/-/bookshelf-eager-load-0.1.31.tgz#b26f1a114794d96ea0592e6a3dca02642e34f864" + integrity sha512-3UB5zrOlCsP2on0a8B8w5SQgHwFCQedkMB1qFuoy2G4PguYTRk4gC+pMs4QSiW3L50MFEtr5k9TrWBpGdSXpQQ== dependencies: - "@tryghost/debug" "^0.1.31" + "@tryghost/debug" "^0.1.32" lodash "^4.17.21" -"@tryghost/bookshelf-include-count@^0.3.14": - version "0.3.14" - resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-include-count/-/bookshelf-include-count-0.3.14.tgz#1fb400a8e4bb2cf1f73e06ff8749d986072b2b12" - integrity sha512-m01Phu29/HcDb1Y84dKRkjGaxDTPrSqebunJm7PBOpF4nR5Qy+w//2df/QB9XvD+rdUCwzLT+yi9E6zgfPdnng== +"@tryghost/bookshelf-filter@^0.5.17": + version "0.5.17" + resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-filter/-/bookshelf-filter-0.5.17.tgz#405364028babd7107922c3fa70bf8b7037296b26" + integrity sha512-nOkW2vnuAhPc91QoCDktQ6Y67eNRRoS7F0VNf1fh+DZj1wLfWZIhXYWlEip3jAd4PONg/xXKv1fDDKCA/JRDUw== dependencies: - "@tryghost/debug" "^0.1.31" + "@tryghost/debug" "^0.1.32" + "@tryghost/errors" "^1.3.5" + "@tryghost/nql" "^0.12.3" + "@tryghost/tpl" "^0.1.32" + +"@tryghost/bookshelf-has-posts@^0.1.32": + version "0.1.32" + resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-has-posts/-/bookshelf-has-posts-0.1.32.tgz#c64fced29281349df4bb06cf84bc99860c6aecf6" + integrity sha512-1vIQMJyeTQ//vCldu2x5kAjCUYtB8M90iiKrXmL06N1Tlz5SChntnXJi8xGesVBndQlqcuaJ5vsM8p5k4SdK1w== + dependencies: + "@tryghost/debug" "^0.1.32" lodash "^4.17.21" -"@tryghost/bookshelf-order@^0.1.26": - version "0.1.26" - resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-order/-/bookshelf-order-0.1.26.tgz#f45212f708e28fc9b613bdaf93891a8fe625bc9c" - integrity sha512-9R8sFqjgeD02lPDxbeweP8QY290rEgMCs7Fnqu4MX77eU4Rf8q8Tfg92Wsmfljie3JLPZYhItIR1OSqQpRd3xg== +"@tryghost/bookshelf-include-count@^0.3.15": + version "0.3.15" + resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-include-count/-/bookshelf-include-count-0.3.15.tgz#433ec7f3ec749b23c81fd60e03e9aadbf5513bfe" + integrity sha512-GamGZSt688D1jw8nupo1NSkiYDSTwj1FUGA0iwVMzFhwIuK3Uaq+Xg5RdGXfoayJrXEhqmbYJ3aoZkYTFloEzA== + dependencies: + "@tryghost/debug" "^0.1.32" + lodash "^4.17.21" + +"@tryghost/bookshelf-order@^0.1.27": + version "0.1.27" + resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-order/-/bookshelf-order-0.1.27.tgz#bd456ffa4413a5cc2c66480b79eec610d0edcc67" + integrity sha512-XJLuShGg+2Gv+U1EqsOF9nzSV/+b06/q8KRWqztGYgoKNYk+5lV9AuHjKIrJx1bcKtc0HdmjcDdHHgX0KIYOHA== dependencies: lodash "^4.17.21" -"@tryghost/bookshelf-pagination@^0.1.46": - version "0.1.46" - resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-pagination/-/bookshelf-pagination-0.1.46.tgz#6622dbf9afbfe8be7fa6ae13315c06a8c2866e3b" - integrity sha512-dsikUD00DyW+C6GMZiuTIHkipJbzNlx47Rb160ZAPhahuma8LoAr4GAUMxgxEjFVwjveg45v4ZGZjn7tpkMtgQ== +"@tryghost/bookshelf-pagination@^0.1.48": + version "0.1.48" + resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-pagination/-/bookshelf-pagination-0.1.48.tgz#095e7f0544f1fd4e94fb9aba0c395673a80164e5" + integrity sha512-oii7wOhXD+2/6tk6f/LvXMimL6+DYnN5VaCSKdSHqUPhX6FKPhTQ0mCL+jfMaI8cKASI2KHO+jeRBV8AJZoK3Q== dependencies: - "@tryghost/errors" "^1.3.3" - "@tryghost/tpl" "^0.1.31" + "@tryghost/errors" "^1.3.5" + "@tryghost/tpl" "^0.1.32" lodash "^4.17.21" -"@tryghost/bookshelf-plugins@0.6.19": - version "0.6.19" - resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-plugins/-/bookshelf-plugins-0.6.19.tgz#e5a51d6973a00ba7801aad6f13b3103e59d6acc4" - integrity sha512-/9UTHm1kMy8fJpAroEPpB8eU4MFGBmBr+GAr1ejm2jfSZBgeJFDEoWNDGJNvplnadtsbogprn6L2AAKD//kMBg== +"@tryghost/bookshelf-plugins@0.6.21": + version "0.6.21" + resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-plugins/-/bookshelf-plugins-0.6.21.tgz#e4b55542cec60d097c3fedd44e8fddf447ac9b21" + integrity sha512-qYdQrp/bIYnmPYwl/mROwO+uclAZJCPW95vUAAhX7Bg7O26cN+46X7RbzPbphTEKQ2M1JolpMFcWmctczLahxw== dependencies: - "@tryghost/bookshelf-collision" "^0.1.43" - "@tryghost/bookshelf-custom-query" "^0.1.26" - "@tryghost/bookshelf-eager-load" "^0.1.30" - "@tryghost/bookshelf-filter" "^0.5.15" - "@tryghost/bookshelf-has-posts" "^0.1.31" - "@tryghost/bookshelf-include-count" "^0.3.14" - "@tryghost/bookshelf-order" "^0.1.26" - "@tryghost/bookshelf-pagination" "^0.1.46" - "@tryghost/bookshelf-search" "^0.1.26" - "@tryghost/bookshelf-transaction-events" "^0.2.14" + "@tryghost/bookshelf-collision" "^0.1.45" + "@tryghost/bookshelf-custom-query" "^0.1.27" + "@tryghost/bookshelf-eager-load" "^0.1.31" + "@tryghost/bookshelf-filter" "^0.5.17" + "@tryghost/bookshelf-has-posts" "^0.1.32" + "@tryghost/bookshelf-include-count" "^0.3.15" + "@tryghost/bookshelf-order" "^0.1.27" + "@tryghost/bookshelf-pagination" "^0.1.48" + "@tryghost/bookshelf-search" "^0.1.27" + "@tryghost/bookshelf-transaction-events" "^0.2.16" -"@tryghost/bookshelf-search@^0.1.26": - version "0.1.26" - resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-search/-/bookshelf-search-0.1.26.tgz#7051d52a6fe3bebd5c4a280a976ebbede0cc55df" - integrity sha512-ALO7B+Y7jb8GWl8Z5oC57lb85INGj7JBXxCIc40g1+otori6qUuWmooCY/3AymeSr4TdKg5PMmgavSB7KnVUkw== +"@tryghost/bookshelf-search@^0.1.27": + version "0.1.27" + resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-search/-/bookshelf-search-0.1.27.tgz#514b4ac787a9df60dd1c26d0749a36f4159f0158" + integrity sha512-j9Y7uNoFscNDG39FVkK2TH/EKChr4n4vzpBgqSOp9R/k91SWTzmALOxKYvKqOfxuJs8uHDE1sxAdBbxK6bbjjA== -"@tryghost/bookshelf-transaction-events@^0.2.14": - version "0.2.14" - resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-transaction-events/-/bookshelf-transaction-events-0.2.14.tgz#194d375bd7400096169e709b4f071b1296171e05" - integrity sha512-tv1DLxHszuEbERUNzJBRLKZHh3ZlIu+8alGQPLN4F4okC1biZQIiiRp9qHaTFvTpzgY4uDD5ysH4HtdRoVV7yw== +"@tryghost/bookshelf-transaction-events@^0.2.16": + version "0.2.16" + resolved "https://registry.yarnpkg.com/@tryghost/bookshelf-transaction-events/-/bookshelf-transaction-events-0.2.16.tgz#d1978e37d919931c2361f415e27d3e2c93b63d8d" + integrity sha512-rNcbLxhHEL47czQ3TnlWxQ46IbpHrVYyutqaJDCoNFyvzb0ZIcULilMyoXt44JjpaSNig32Sy6IOTHbB3vlVcg== "@tryghost/bunyan-rotating-filestream@^0.0.7": version "0.0.7" @@ -7807,20 +7718,12 @@ resolved "https://registry.yarnpkg.com/@tryghost/database-info/-/database-info-0.3.22.tgz#8db1433f35fcee8fbca182ba8b7ea7e682a45fcd" integrity sha512-AwljcoXFUjSKFIoB/V9uohTLvWY8g+fIaHHjgPLH4Cq1tBZgcAlBIZR2ridhXiY1iDX7m3cws36uAxrN0KnoUw== -"@tryghost/database-info@0.3.24": - version "0.3.24" - resolved "https://registry.yarnpkg.com/@tryghost/database-info/-/database-info-0.3.24.tgz#a7bc3519dd6c035aadd0e0c0dac03b55637390f5" - integrity sha512-V5IHVJSyC8wrby/5YtFa1ajQ4qB3wfqc+AwlemDAEH2pZ5n5ygdb2qayeo4kwWPK0xn2Vul5KiRQK0bX+OePdw== +"@tryghost/database-info@0.3.27": + version "0.3.27" + resolved "https://registry.yarnpkg.com/@tryghost/database-info/-/database-info-0.3.27.tgz#b0f7e4b15eb9923094cf4f37084f8ada932c0883" + integrity sha512-0blN+k/NA6c/gZtihx4iyZi1yyPG40GxdYILjtp/8XwGZarmgTTiZGz3HVOVir4+TfL/Z1O5xPsBxO9+KeiH+g== -"@tryghost/debug@0.1.30": - version "0.1.30" - resolved "https://registry.yarnpkg.com/@tryghost/debug/-/debug-0.1.30.tgz#1daaac3a6bf63d82f28ba62f515c95dae29b12b4" - integrity sha512-bW/RBkF5QU9iwASVSzdwFM2ba41OWpqe8ffsmblJ+e6z0NPZYuul/n72E/SWyBa8jTVpMLIoxiKG/wO2ajzHWg== - dependencies: - "@tryghost/root-utils" "^0.3.28" - debug "^4.3.1" - -"@tryghost/debug@^0.1.13", "@tryghost/debug@^0.1.26", "@tryghost/debug@^0.1.31", "@tryghost/debug@^0.1.32": +"@tryghost/debug@0.1.32", "@tryghost/debug@^0.1.13", "@tryghost/debug@^0.1.26", "@tryghost/debug@^0.1.32": version "0.1.32" resolved "https://registry.npmjs.org/@tryghost/debug/-/debug-0.1.32.tgz#a6c1321132708c2e86bd8c47bf28292180fee722" integrity sha512-oU4hy27I3WDA5Zty74QQ+Ki842Ib0aWdXKwfK01YwQ/gqr127mtNOBimkRg39mY27hO4PvE/zvRhtlJ05Jk2cQ== @@ -7828,7 +7731,7 @@ "@tryghost/root-utils" "^0.3.30" debug "^4.3.1" -"@tryghost/elasticsearch@^3.0.19", "@tryghost/elasticsearch@^3.0.21": +"@tryghost/elasticsearch@^3.0.21": version "3.0.21" resolved "https://registry.npmjs.org/@tryghost/elasticsearch/-/elasticsearch-3.0.21.tgz#a4acbfccf1577d1f7c9750018cbd30afefa87b3a" integrity sha512-blSWDB1HCFwhmo5tcDWpOWeMJdFTxTrZpfxU1asKVhARVYuLx5Su5+a8C4x43wewyAhMn9dc9e7qSUHsnUq8XQ== @@ -7837,10 +7740,10 @@ "@tryghost/debug" "^0.1.32" split2 "4.2.0" -"@tryghost/email-mock-receiver@0.3.6": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@tryghost/email-mock-receiver/-/email-mock-receiver-0.3.6.tgz#6c829923ff5c2dab1ca5c792fea5688030e9284f" - integrity sha512-ykO4YTjgLDnmkkJgAkr+9YmWG0agL+GxpoaI9JPTCsuEMESYo3YZ+a2LweXK7QgxKLQTw7mBtxCWqqSwsAYzUA== +"@tryghost/email-mock-receiver@0.3.8": + version "0.3.8" + resolved "https://registry.yarnpkg.com/@tryghost/email-mock-receiver/-/email-mock-receiver-0.3.8.tgz#17480deaa75e8c0e66560969c0f13e39b8ce6196" + integrity sha512-olzxRq/xV1mS5flOHmKaFZQ5JFLPMq/9XJqR457fsNvaum/PPUoj/jddjJg/5tG8h++Ea9KqBxszo9vPvdbcCw== "@tryghost/ember-promise-modals@2.0.1": version "2.0.1" @@ -7858,20 +7761,20 @@ focus-trap "^6.7.2" postcss-preset-env "^7.3.1" -"@tryghost/errors@1.3.1", "@tryghost/errors@1.3.2", "@tryghost/errors@^1.2.26", "@tryghost/errors@^1.2.3", "@tryghost/errors@^1.3.2", "@tryghost/errors@^1.3.3": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@tryghost/errors/-/errors-1.3.2.tgz#3612f6f59ca07e37d1095f9eb31ff6a069a3b7f2" - integrity sha512-Aqi2vz7HHwN6p2juIYUu8vpMtaKavjULBKNnL0l1req9qXjPs90i/HV8zhvK0ceeWuPdEXaCkfHSRr/yxG3/uw== +"@tryghost/errors@1.3.1", "@tryghost/errors@1.3.5", "@tryghost/errors@^1.2.26", "@tryghost/errors@^1.2.3", "@tryghost/errors@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@tryghost/errors/-/errors-1.3.5.tgz#f4ef8e5c41a8a37456f2285271124180685827ae" + integrity sha512-iOkiHGnYFqSdFM9AVlgiL56Qcx6V9iQ3kbDKxyOAxrhMKq1OnOmOm7tr1CgGK1YDte9XYEZmR9hUZEg+ujn/jQ== dependencies: - "@stdlib/utils-copy" "^0.0.7" + "@stdlib/utils-copy" "^0.2.0" uuid "^9.0.0" -"@tryghost/express-test@0.13.12": - version "0.13.12" - resolved "https://registry.yarnpkg.com/@tryghost/express-test/-/express-test-0.13.12.tgz#2dcc0e573fa14af75f28a7ff595a31c2489d6d5d" - integrity sha512-w7r0qWqpwTjyLDYmWD3WwT9AupzTr8YYUM+Q4BcxzQUkvSUYjMHq2MrpJKcy0qRcO8j3uyo9pGcZOLCxYj/D0w== +"@tryghost/express-test@0.13.15": + version "0.13.15" + resolved "https://registry.yarnpkg.com/@tryghost/express-test/-/express-test-0.13.15.tgz#a906f6935e9cbf60fd5034a9549de50b76b544ae" + integrity sha512-FyugwFZkch76JSr60xkZWqXcyCaAK4VA01g/dZOA05iUvBdWN6qDNOqLXEQ4aRV3VWqt4X4BfqeVsrZQf4VoTw== dependencies: - "@tryghost/jest-snapshot" "^0.5.12" + "@tryghost/jest-snapshot" "^0.5.15" cookiejar "^2.1.3" reqresnext "^1.7.0" @@ -7891,18 +7794,18 @@ "@tryghost/mobiledoc-kit" "^0.12.4-ghost.1" jsdom "^24.0.0" -"@tryghost/http-cache-utils@0.1.15": - version "0.1.15" - resolved "https://registry.yarnpkg.com/@tryghost/http-cache-utils/-/http-cache-utils-0.1.15.tgz#721ffd1f3b7173da679f6c8c25cda6f0c728264b" - integrity sha512-G0x9ZUkBbTWIFg2Dnng6qKLststZKuUYx98pcowNwpYuEGUPOka4eAJj3frz/60F1CzMb1qYy9WEjD/xRGd5oQ== +"@tryghost/http-cache-utils@0.1.17": + version "0.1.17" + resolved "https://registry.yarnpkg.com/@tryghost/http-cache-utils/-/http-cache-utils-0.1.17.tgz#9dd01464cfa52947fa0b63ea57ef084106ff42ba" + integrity sha512-sO/C2nCX3C4sPz1ysN8/9em8dbhnSUGP0d84CjZsSrs/DYzZmw1nWJGKzDF80mOpYIs34GGL+JhybRRTlOrviA== -"@tryghost/http-stream@^0.1.30": - version "0.1.30" - resolved "https://registry.yarnpkg.com/@tryghost/http-stream/-/http-stream-0.1.30.tgz#ef2a9a55a2ec7fab7e889a11ce23e7ebfaab8a0b" - integrity sha512-ZlcwtWQICN2OeHcVAL+BXxkzO5tICdLYZeQ2EuVk2E+mC+1ARFrpVUbpTnIbCXDL+uV3cOLqPh2KNGGJAdDChw== +"@tryghost/http-stream@^0.1.33": + version "0.1.33" + resolved "https://registry.yarnpkg.com/@tryghost/http-stream/-/http-stream-0.1.33.tgz#8c74d63c0ad764e0a889709751ed6379d387daab" + integrity sha512-6DC/YmpEF/u8aez8e3+Xc4MkihSILP5EfErQsrUCT3QcdaEIxR+3u1JlsH9Qe7U5ld1wN7tzDS45mFDQy96G6Q== dependencies: - "@tryghost/errors" "^1.3.2" - "@tryghost/request" "^1.0.5" + "@tryghost/errors" "^1.3.5" + "@tryghost/request" "^1.0.8" "@tryghost/image-transform@1.3.0": version "1.3.0" @@ -7914,14 +7817,14 @@ optionalDependencies: sharp "^0.32.0" -"@tryghost/jest-snapshot@^0.5.12": - version "0.5.12" - resolved "https://registry.yarnpkg.com/@tryghost/jest-snapshot/-/jest-snapshot-0.5.12.tgz#79134e0a7b273552f9744d753a71b63712f81f55" - integrity sha512-R7q29RWFsguTSjCpRZoXprPqyaUPRQQ+4r9V/LaWjB6rc2yu4aLpOdtocl1yVOUlSDXApAy6NknHOCejqhA5MA== +"@tryghost/jest-snapshot@^0.5.15": + version "0.5.15" + resolved "https://registry.yarnpkg.com/@tryghost/jest-snapshot/-/jest-snapshot-0.5.15.tgz#51b4e0e27450e1804cea8b86e9380a4d7384d890" + integrity sha512-HRz/dYX6t96Iv8ZrlIepQa286B2n/y/VnnLvZf3UoPXXKWe4sGcrgELgywP/26gSxfWfSkvK4hlWzCq2AQiiyg== dependencies: "@jest/expect" "^28.0.1" "@jest/expect-utils" "^28.0.1" - "@tryghost/errors" "^1.3.2" + "@tryghost/errors" "^1.3.5" jest-snapshot "^29.0.0" "@tryghost/kg-card-factory@5.0.4": @@ -8076,16 +7979,16 @@ lodash "^4.17.21" luxon "^1.26.0" -"@tryghost/logging@2.4.10", "@tryghost/logging@2.4.15", "@tryghost/logging@^2.4.7": - version "2.4.15" - resolved "https://registry.yarnpkg.com/@tryghost/logging/-/logging-2.4.15.tgz#a94e37d760a62d6f2fc2868e4cd8bf6f219b2a2e" - integrity sha512-mSVdSR/9bd1D/DCFpfeFn2AnPE/0lK78ePHBrtteOipA7ogL0Kd+QvabHK5iKLe+/20flBZs4BvnU/DBuS8Pvw== +"@tryghost/logging@2.4.10", "@tryghost/logging@2.4.18", "@tryghost/logging@^2.4.7": + version "2.4.18" + resolved "https://registry.yarnpkg.com/@tryghost/logging/-/logging-2.4.18.tgz#5d7ddb2d0a66dc6834a6048ebbf48418420445d5" + integrity sha512-mMJkdCFDXa0ohS0FlDTvOrJQd7VamBIqjljGYvNECdVli7BMjdUYgZyWr8bEJ/d7scsq8OE2bVVBJWLxvPxLAg== dependencies: "@tryghost/bunyan-rotating-filestream" "^0.0.7" - "@tryghost/elasticsearch" "^3.0.19" - "@tryghost/http-stream" "^0.1.30" - "@tryghost/pretty-stream" "^0.1.24" - "@tryghost/root-utils" "^0.3.28" + "@tryghost/elasticsearch" "^3.0.21" + "@tryghost/http-stream" "^0.1.33" + "@tryghost/pretty-stream" "^0.1.26" + "@tryghost/root-utils" "^0.3.30" bunyan "^1.8.15" bunyan-loggly "^1.4.2" fs-extra "^11.0.0" @@ -8126,13 +8029,13 @@ dependencies: lodash "^4.17.11" -"@tryghost/nodemailer@0.3.42": - version "0.3.42" - resolved "https://registry.yarnpkg.com/@tryghost/nodemailer/-/nodemailer-0.3.42.tgz#478ae3b002220e9495930bec01d6f31d7bdc8ab2" - integrity sha512-Bn0vjJxhTi72eaIFlEv92dhqDM0Rw0GBofC0XR2mhCv9Mdr4p/+sbRFSVvAQewXs4rsSszo3Xf1XkONKnx7c7Q== +"@tryghost/nodemailer@0.3.45": + version "0.3.45" + resolved "https://registry.yarnpkg.com/@tryghost/nodemailer/-/nodemailer-0.3.45.tgz#173a9bd378d8f161acee09f0e28abc6cf028bdc0" + integrity sha512-vvAjXN/oOpP9fo7T/J+IBSqdkZhdbqPL9OWUP+qulq1/6fIqwGmye+mu9E2aPckgIoVlOGCpHKqMz9G22ZeuIw== dependencies: "@aws-sdk/client-ses" "^3.31.0" - "@tryghost/errors" "^1.3.2" + "@tryghost/errors" "^1.3.5" nodemailer "^6.6.3" nodemailer-direct-transport "^3.3.2" nodemailer-mailgun-transport "^2.1.5" @@ -8155,15 +8058,15 @@ "@tryghost/nql-lang" "^0.6.1" mingo "^2.2.2" -"@tryghost/pretty-cli@1.2.42", "@tryghost/pretty-cli@^1.2.38": - version "1.2.42" - resolved "https://registry.yarnpkg.com/@tryghost/pretty-cli/-/pretty-cli-1.2.42.tgz#ea7435f7feeba9fe8950c7da0b8565b7371766f5" - integrity sha512-pXOhAIi9RliiLXc3wuVtiaHcFqd/0WvB3tI8ugSQMN+NieU7GDjPEEPx9fEFx/3/48ZPYl7PRjfm6tbDxdiEGQ== +"@tryghost/pretty-cli@1.2.44", "@tryghost/pretty-cli@^1.2.38": + version "1.2.44" + resolved "https://registry.yarnpkg.com/@tryghost/pretty-cli/-/pretty-cli-1.2.44.tgz#9ae1923076c3390457ed40df0217e216413b0f1e" + integrity sha512-1OVpdWdlkrUNyKwRSdEsfQQ87hR5dRj4GxG7UvJoTkbvxlmZjziUUF3nuDYF5w/4JIvO7w6Z5oxe7KqXv846KQ== dependencies: chalk "^4.1.0" sywac "^1.3.0" -"@tryghost/pretty-stream@^0.1.24", "@tryghost/pretty-stream@^0.1.26": +"@tryghost/pretty-stream@^0.1.26": version "0.1.26" resolved "https://registry.npmjs.org/@tryghost/pretty-stream/-/pretty-stream-0.1.26.tgz#1765f5080c37fa338ddd96003462a1da54e57061" integrity sha512-Z56lak7dBiK5rgwFd1vYbSpsHi65gLLAZaCq81UMxo8fulvyTiWpdvoY+7Q5XApSi6kf2eivYmeN0zmZa+zdNg== @@ -8172,37 +8075,29 @@ moment "^2.29.1" prettyjson "^1.2.5" -"@tryghost/promise@0.3.10": - version "0.3.10" - resolved "https://registry.yarnpkg.com/@tryghost/promise/-/promise-0.3.10.tgz#a1025c37773e8294fd4cecee33af1ed0bc07bcce" - integrity sha512-0Cs3cdOViYPHlDcgFLOPX2xyWMbnHRHN773hvJ8KfFAeF0QmNF07dvjYvTmHkXd5Dy551UgRjtZR5eZqpqAO3A== +"@tryghost/promise@0.3.12": + version "0.3.12" + resolved "https://registry.yarnpkg.com/@tryghost/promise/-/promise-0.3.12.tgz#90aff21f256767f1d1c06f358f5cf4012552cb34" + integrity sha512-0nktnEMM0sSKHYUb+QeVhQau1ziKWmgaqdffhomIItw5UQEnArEvwVCPH0qh+L7xGsrphf6SHSiMibNCtJIvvA== "@tryghost/promise@0.3.8": version "0.3.8" resolved "https://registry.yarnpkg.com/@tryghost/promise/-/promise-0.3.8.tgz#3134a044e187f6d61393267c680c6cc75235aa96" integrity sha512-ppcnLBWczpbo4sQcGWtjEA82kdZMv4NFF2MvZRi1MBP4lSOSgh9A636eUxlB1/FpIG+D5ixq84xlY4QJMqW2kA== -"@tryghost/request@1.0.5", "@tryghost/request@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@tryghost/request/-/request-1.0.5.tgz#76ef4139cfe59f4daf8f72ae9291f418c45e0419" - integrity sha512-LUXpbNZ4BvSXvH8e+ribMuq2jN9QIzGCB36YXkWP7vd0lcwACWxa1HOi+fC89dkMYzYYJ7YvQgIpxJilKfYbgg== +"@tryghost/request@1.0.8", "@tryghost/request@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@tryghost/request/-/request-1.0.8.tgz#d2b87fe30bfaa1d9011a8e58152b941161465113" + integrity sha512-wto/TG5xQ6xq8sKEI/N66C+dxSFORusk4yjtsqZNV3E4LEFfg/2HzrIYH6YW9Iip15uR4u0uKhFRMs0J1RRCuA== dependencies: - "@tryghost/errors" "^1.3.2" - "@tryghost/validator" "^0.2.11" - "@tryghost/version" "^0.1.28" + "@tryghost/errors" "^1.3.5" + "@tryghost/validator" "^0.2.14" + "@tryghost/version" "^0.1.30" cacheable-lookup "7.0.0" got "13.0.0" lodash "^4.17.21" -"@tryghost/root-utils@0.3.28": - version "0.3.28" - resolved "https://registry.yarnpkg.com/@tryghost/root-utils/-/root-utils-0.3.28.tgz#43ae0047927a7753c9b526ea12ce6e382ec7fb1f" - integrity sha512-/izwMw9tCJIQ3DVHumzEWgKhKAw5FwTgrrYcCNHl89yijJKaVRBOJUhlB/u2ST6UWfhahodjaYauq7ymTItaeg== - dependencies: - caller "^1.0.1" - find-root "^1.1.0" - -"@tryghost/root-utils@^0.3.24", "@tryghost/root-utils@^0.3.28", "@tryghost/root-utils@^0.3.30": +"@tryghost/root-utils@0.3.30", "@tryghost/root-utils@^0.3.24", "@tryghost/root-utils@^0.3.30": version "0.3.30" resolved "https://registry.npmjs.org/@tryghost/root-utils/-/root-utils-0.3.30.tgz#766818cd4394b683338f4d9fccc52c435f77b0b5" integrity sha512-Pg9d0Igl3OGGKZ5RrCe6Wq8qAW9ABIjbn31WKlsO6OLLwRlH2ruNZXU8GBjNL3qrPEZwyI2FyNNDjSR+5gKXag== @@ -8235,17 +8130,10 @@ resolved "https://registry.yarnpkg.com/@tryghost/timezone-data/-/timezone-data-0.4.3.tgz#dad18d1c119ebf705b9720417684efe00081f149" integrity sha512-YrPm2m51/Ddqp+/9CclSv+tKqHkbv7iUu3BgiHJofGhs6ek0QQSpahgiBmJmi/o3R6V6DFbG7LT5qVEtkvMzKg== -"@tryghost/tpl@0.1.30": - version "0.1.30" - resolved "https://registry.yarnpkg.com/@tryghost/tpl/-/tpl-0.1.30.tgz#a012fd800e58d46a7d4146e2bde5f55892d8ae15" - integrity sha512-EhbwSYCTFdK9cXyesCNPFwd3pF6an72vwTeQ9A9IjTVDd4or3wBc6lUwOifxWdYarxhaq2sX67gOn2Js6NbJWg== - dependencies: - lodash.template "^4.5.0" - -"@tryghost/tpl@^0.1.30", "@tryghost/tpl@^0.1.31": - version "0.1.31" - resolved "https://registry.yarnpkg.com/@tryghost/tpl/-/tpl-0.1.31.tgz#3aad44ef36b6a3af4f4c9c33c320bc7ac565cfab" - integrity sha512-AJVKeGq8/5ZHCJyKJQAB26/KXXsoRmRZUY+viJ6fgTV4eMwgsWh24Dv2L3gzOCiUi1iPYNf3MZaPnZqSquyxHg== +"@tryghost/tpl@0.1.32", "@tryghost/tpl@^0.1.32": + version "0.1.32" + resolved "https://registry.yarnpkg.com/@tryghost/tpl/-/tpl-0.1.32.tgz#be0ef05abf8f959f459ab9a8fc5e39efaea542a7" + integrity sha512-OvUMLn5NoAYXqqwh4i9FInkCdJiVPGgCeaq4kdiZWT5ApP4NMOd84GFO8uitLsYtrLsHZ01UFuzZJt6rpKtjmw== dependencies: lodash.template "^4.5.0" @@ -8262,38 +8150,38 @@ remark-footnotes "^1.0.0" unist-util-visit "^2.0.0" -"@tryghost/validator@0.2.11", "@tryghost/validator@^0.2.11": - version "0.2.11" - resolved "https://registry.yarnpkg.com/@tryghost/validator/-/validator-0.2.11.tgz#c7c0be6b70c82aebefa29e91ca6ebe8939306443" - integrity sha512-VJ+u/UcqP7SRKHxdQn2S21EcJYjWBLfDD31rhfupkcEV7MwPQ5f3nRp+7xKnkUksB3VIsYRtVTAzufIPBBsnzw== +"@tryghost/validator@0.2.14", "@tryghost/validator@^0.2.14": + version "0.2.14" + resolved "https://registry.yarnpkg.com/@tryghost/validator/-/validator-0.2.14.tgz#7aea2725e23125b23fd3d9203bede8f1559e7b54" + integrity sha512-sSTzN8ngVyAQyqbMtNPSX+eGrK9XoGntVCk5m3V6/iRA3VB3NaI1tE4RB/8Tg5zNr0q899jEyrqWSKkx2sBCZw== dependencies: - "@tryghost/errors" "^1.3.2" - "@tryghost/tpl" "^0.1.30" + "@tryghost/errors" "^1.3.5" + "@tryghost/tpl" "^0.1.32" lodash "^4.17.21" moment-timezone "^0.5.23" validator "7.2.0" -"@tryghost/version@0.1.28", "@tryghost/version@^0.1.28": - version "0.1.28" - resolved "https://registry.yarnpkg.com/@tryghost/version/-/version-0.1.28.tgz#f95ad56df5e052e200fdd9b4cea49768ef9a730b" - integrity sha512-iiOYEHIcBGCjVkTOsHDLuaN+oLiHK8P1rgAy/DGmlPgRr35A4b8swk5xbKxGtCengSRzGYxvxd/z2GsryqlkbQ== +"@tryghost/version@0.1.30", "@tryghost/version@^0.1.30": + version "0.1.30" + resolved "https://registry.yarnpkg.com/@tryghost/version/-/version-0.1.30.tgz#0f6b0eb5e89edcaf829c9199727b6199977b609b" + integrity sha512-WDCVAllBMScplxnyATDgQWHZIrIy/gurK12Tr4pDUtWMujWf/24U/nWZE9dWMrQe1meam5VC4QdqLQWA7eE8UQ== dependencies: - "@tryghost/root-utils" "^0.3.28" + "@tryghost/root-utils" "^0.3.30" semver "^7.3.5" -"@tryghost/webhook-mock-receiver@0.2.12": - version "0.2.12" - resolved "https://registry.yarnpkg.com/@tryghost/webhook-mock-receiver/-/webhook-mock-receiver-0.2.12.tgz#b210cc682de134d273855d0056c2e836f9c82f34" - integrity sha512-TOg5+XGO+TiBzMuel41bFQwTmuN8qXIXFOCYbXbBBzn9UehYuEvOMXyQp3pRS7WNli7t8y5BV8gvkn7uZzSmYg== +"@tryghost/webhook-mock-receiver@0.2.14": + version "0.2.14" + resolved "https://registry.yarnpkg.com/@tryghost/webhook-mock-receiver/-/webhook-mock-receiver-0.2.14.tgz#6a62bff89a330e69c0112bd688ab25900df91149" + integrity sha512-jPUvercXPR7J5X7QVQJeXeF6tLVBz5bluWRQaDxasIT2I9y8+REqEvqFyaOUtL7tjQp83/8gUPxzR5jAyqaTsg== dependencies: p-wait-for "3.2.0" -"@tryghost/zip@1.1.43", "@tryghost/zip@^1.1.42": - version "1.1.43" - resolved "https://registry.yarnpkg.com/@tryghost/zip/-/zip-1.1.43.tgz#e5ac6a13b19d0b1dad2aec04e9a1327de39c72d5" - integrity sha512-cB3gGiO29zQRjAz+Q3ly8z4DO3TA+YBhDNuNdN02unhkeTs6Hsf7eAcBNMYJVBroQVQ4N8femYKr90AIJe1OIQ== +"@tryghost/zip@1.1.46", "@tryghost/zip@^1.1.42": + version "1.1.46" + resolved "https://registry.yarnpkg.com/@tryghost/zip/-/zip-1.1.46.tgz#e7c0097b6b6229193a7d6f9b4881eb5640a464a9" + integrity sha512-T25d3q1DXrDMWBX8zJ2UoxvKpy3PMahKrikO/1zFCMY9YEUXSKa8FV2YmJzmmmjnFITkVMlH4JXFkWbB8igZ4A== dependencies: - "@tryghost/errors" "^1.3.2" + "@tryghost/errors" "^1.3.5" archiver "^5.0.0" extract-zip "^2.0.1" From 779f9d19231e29ed0f3339305291d1a20d4d5c1e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 22:03:58 +0000 Subject: [PATCH 12/28] Update dependency rimraf to v5.0.10 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index fdf79efde4..4c3dcd389a 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,7 @@ "husky": "8.0.3", "lint-staged": "15.2.8", "nx": "16.8.1", - "rimraf": "5.0.9", + "rimraf": "5.0.10", "ts-node": "10.9.2", "typescript": "5.4.5", "inquirer": "8.2.6" diff --git a/yarn.lock b/yarn.lock index f3ed36ecfb..c3ccd86115 100644 --- a/yarn.lock +++ b/yarn.lock @@ -28086,10 +28086,10 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== -rimraf@5.0.9: - version "5.0.9" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.9.tgz#c3baa1b886eadc2ec7981a06a593c3d01134ffe9" - integrity sha512-3i7b8OcswU6CpU8Ej89quJD4O98id7TtVM5U4Mybh84zQXdrFmDLouWBEEaD/QfO3gDDfH+AGFCGsR7kngzQnA== +rimraf@5.0.10: + version "5.0.10" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c" + integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== dependencies: glob "^10.3.7" From 5376bd52c7afb91b3fc0c23bd81749b152d48fdd Mon Sep 17 00:00:00 2001 From: Fabien 'egg' O'Carroll Date: Mon, 5 Aug 2024 18:07:03 +0700 Subject: [PATCH 13/28] Updated design of announced Notes and Notes containing links - Announced (reposted) Notes show information about both the Actor that created the Note, and the Actor that Announced it - The content of notes now keeps the formatting and links are clickable and shown in different color Co-authored-by: Djordje Vlaisavljevic --- .../src/components/ListIndex.tsx | 53 ++++++++++++------- apps/admin-x-activitypub/src/styles/index.css | 15 +++++- .../src/assets/icons/reload.svg | 1 + 3 files changed, 49 insertions(+), 20 deletions(-) create mode 100644 apps/admin-x-design-system/src/assets/icons/reload.svg diff --git a/apps/admin-x-activitypub/src/components/ListIndex.tsx b/apps/admin-x-activitypub/src/components/ListIndex.tsx index 4c785eead9..9f9d1393ec 100644 --- a/apps/admin-x-activitypub/src/components/ListIndex.tsx +++ b/apps/admin-x-activitypub/src/components/ListIndex.tsx @@ -4,7 +4,7 @@ import articleBodyStyles from './articleBodyStyles'; import getUsername from '../utils/get-username'; import {ActivityPubAPI} from '../api/activitypub'; import {ActorProperties, ObjectProperties} from '@tryghost/admin-x-framework/api/activitypub'; -import {Avatar, Button, ButtonGroup, Heading, List, ListItem, Page, SelectOption, SettingValue, ViewContainer, ViewTab} from '@tryghost/admin-x-design-system'; +import {Avatar, Button, ButtonGroup, Heading, Icon, List, ListItem, Page, SelectOption, SettingValue, ViewContainer, ViewTab} from '@tryghost/admin-x-design-system'; import {useBrowseSite} from '@tryghost/admin-x-framework/api/site'; import {useQuery} from '@tanstack/react-query'; import {useRouting} from '@tryghost/admin-x-framework/routing'; @@ -123,6 +123,7 @@ const ActivityPubComponent: React.FC = () => { actor={activity.actor} layout={selectedOption.value} object={activity.object} + type={activity.type} /> ))} @@ -167,6 +168,7 @@ const ActivityPubComponent: React.FC = () => { actor={activity.actor} layout={selectedOption.value} object={activity.object} + type={activity.object.type} /> ))} @@ -320,7 +322,7 @@ ${image && ); }; -const ObjectContentDisplay: React.FC<{actor: ActorProperties, object: ObjectProperties, layout: string }> = ({actor, object, layout}) => { +const ObjectContentDisplay: React.FC<{actor: ActorProperties, object: ObjectProperties, layout: string, type: string }> = ({actor, object, layout, type}) => { const parser = new DOMParser(); const doc = parser.parseFromString(object.content || '', 'text/html'); @@ -392,27 +394,40 @@ const ObjectContentDisplay: React.FC<{actor: ActorProperties, object: ObjectProp setTimeout(() => setIsClicked(false), 300); // Reset the animation class after 300ms }; + let author = actor; + if (type === 'Announce' && object.type === 'Note') { + author = typeof object.attributedTo === 'object' ? object.attributedTo as ActorProperties : actor; + } + if (layout === 'feed') { return ( <> {object && ( -
- -
-
-

{actor.name}

- {getUsername(actor)} - {timestamp} -
-
-
- {object.name && {object.name}} -

{plainTextContent}

- {/*

{object.content}

*/} - {renderAttachment()} -
-
diff --git a/apps/admin-x-activitypub/src/styles/index.css b/apps/admin-x-activitypub/src/styles/index.css index c3b58ac682..a59dd422e7 100644 --- a/apps/admin-x-activitypub/src/styles/index.css +++ b/apps/admin-x-activitypub/src/styles/index.css @@ -22,4 +22,17 @@ animation: bump 0.3s ease-in-out; .ap-red-heart path { fill: #F50B23; -} \ No newline at end of file +} + +.ap-note-content a { + color: rgb(236 72 153) !important; +} + +.ap-note-content a:hover { + color: rgb(219 39 119) !important; +} + +.ap-note-content p + p { + margin-top: 1.5rem !important; +} + diff --git a/apps/admin-x-design-system/src/assets/icons/reload.svg b/apps/admin-x-design-system/src/assets/icons/reload.svg new file mode 100644 index 0000000000..5afa3c7227 --- /dev/null +++ b/apps/admin-x-design-system/src/assets/icons/reload.svg @@ -0,0 +1 @@ +Button Refresh Arrows Streamline Icon: https://streamlinehq.com \ No newline at end of file From 978ccc848353e621d75ca4713dcc846f6abc4c89 Mon Sep 17 00:00:00 2001 From: Fabien 'egg' O'Carroll Date: Mon, 5 Aug 2024 18:20:34 +0700 Subject: [PATCH 14/28] Updated types for `attributedTo` property of Objects (#20715) ref https://github.com/TryGhost/Ghost/commit/5376bd52c7afb91b This should have been included in the referenced commit --- apps/admin-x-framework/src/api/activitypub.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/admin-x-framework/src/api/activitypub.ts b/apps/admin-x-framework/src/api/activitypub.ts index 0d419e6568..97201808e0 100644 --- a/apps/admin-x-framework/src/api/activitypub.ts +++ b/apps/admin-x-framework/src/api/activitypub.ts @@ -13,7 +13,7 @@ export type ObjectProperties = { name: string; content: string; url?: string | undefined; - attributedTo?: string | object[] | undefined; + attributedTo?: object | string | object[] | undefined; image?: string; published?: string; preview?: {type: string, content: string}; From 5ed27933694566f323352cdc975a7e0a7e0c3735 Mon Sep 17 00:00:00 2001 From: Sanne de Vries <65487235+sanne-san@users.noreply.github.com> Date: Mon, 5 Aug 2024 13:43:24 +0200 Subject: [PATCH 15/28] Added publication icon to donation notification email (#20704) REF MOM-317 - Added site icon to add some flair and personal branding to the donation notification email. --- .../core/core/server/services/staff/index.js | 2 + ghost/staff-service/lib/StaffService.js | 3 +- ghost/staff-service/lib/StaffServiceEmails.js | 8 +++- .../lib/email-templates/donation.hbs | 44 ++++++++++++------- .../staff-service/test/staff-service.test.js | 9 ++++ 5 files changed, 48 insertions(+), 18 deletions(-) diff --git a/ghost/core/core/server/services/staff/index.js b/ghost/core/core/server/services/staff/index.js index 2b57d20de6..56c08cab2d 100644 --- a/ghost/core/core/server/services/staff/index.js +++ b/ghost/core/core/server/services/staff/index.js @@ -17,6 +17,7 @@ class StaffServiceWrapper { const mailer = new GhostMailer(); const settingsCache = require('../../../shared/settings-cache'); const urlUtils = require('../../../shared/url-utils'); + const {blogIcon} = require('../../../server/lib/image'); const settingsHelpers = require('../settings-helpers'); this.api = new StaffService({ @@ -26,6 +27,7 @@ class StaffServiceWrapper { settingsHelpers, settingsCache, urlUtils, + blogIcon, DomainEvents, memberAttributionService: memberAttribution.service, labs diff --git a/ghost/staff-service/lib/StaffService.js b/ghost/staff-service/lib/StaffService.js index 02d4e1b4dd..ed48a4a860 100644 --- a/ghost/staff-service/lib/StaffService.js +++ b/ghost/staff-service/lib/StaffService.js @@ -4,7 +4,7 @@ const {MilestoneCreatedEvent} = require('@tryghost/milestones'); // @NOTE: 'StaffService' is a vague name that does not describe what it's actually doing. // Possibly, "StaffNotificationService" or "StaffEventNotificationService" would be a more accurate name class StaffService { - constructor({logging, models, mailer, settingsCache, settingsHelpers, urlUtils, DomainEvents, labs, memberAttributionService}) { + constructor({logging, models, mailer, settingsCache, settingsHelpers, urlUtils, blogIcon, DomainEvents, labs, memberAttributionService}) { this.logging = logging; this.labs = labs; /** @private */ @@ -22,6 +22,7 @@ class StaffService { settingsHelpers, settingsCache, urlUtils, + blogIcon, labs }); } diff --git a/ghost/staff-service/lib/StaffServiceEmails.js b/ghost/staff-service/lib/StaffServiceEmails.js index b107af3ee1..fa15117087 100644 --- a/ghost/staff-service/lib/StaffServiceEmails.js +++ b/ghost/staff-service/lib/StaffServiceEmails.js @@ -5,12 +5,13 @@ const glob = require('glob'); const {EmailAddressParser} = require('@tryghost/email-addresses'); class StaffServiceEmails { - constructor({logging, models, mailer, settingsHelpers, settingsCache, urlUtils, labs}) { + constructor({logging, models, mailer, settingsHelpers, settingsCache, blogIcon, urlUtils, labs}) { this.logging = logging; this.models = models; this.mailer = mailer; this.settingsHelpers = settingsHelpers; this.settingsCache = settingsCache; + this.blogIcon = blogIcon; this.urlUtils = urlUtils; this.labs = labs; @@ -44,6 +45,7 @@ class StaffServiceEmails { attributionUrl: attribution?.url || '', referrerSource: attribution?.referrerSource, siteTitle: this.settingsCache.get('title'), + siteIconUrl: this.blogIcon.getIconUrl(true), siteUrl: this.urlUtils.getSiteUrl(), siteDomain: this.siteDomain, accentColor: this.settingsCache.get('accent_color'), @@ -103,6 +105,7 @@ class StaffServiceEmails { offerData, subscriptionData, siteTitle: this.settingsCache.get('title'), + siteIconUrl: this.blogIcon.getIconUrl(true), siteUrl: this.urlUtils.getSiteUrl(), siteDomain: this.siteDomain, accentColor: this.settingsCache.get('accent_color'), @@ -153,6 +156,7 @@ class StaffServiceEmails { tierData, subscriptionData, siteTitle: this.settingsCache.get('title'), + siteIconUrl: this.blogIcon.getIconUrl(true), siteUrl: this.urlUtils.getSiteUrl(), siteDomain: this.siteDomain, accentColor: this.settingsCache.get('accent_color'), @@ -182,6 +186,7 @@ class StaffServiceEmails { return { siteTitle: this.settingsCache.get('title'), + siteIconUrl: this.blogIcon.getIconUrl(true), siteUrl: this.urlUtils.getSiteUrl(), siteDomain: this.siteDomain, accentColor: this.settingsCache.get('accent_color'), @@ -282,6 +287,7 @@ class StaffServiceEmails { const templateData = { siteTitle: this.settingsCache.get('title'), siteUrl: this.urlUtils.getSiteUrl(), + siteIconUrl: this.blogIcon.getIconUrl(true), siteDomain: this.siteDomain, fromEmail: this.fromEmailAddress, toEmail: to, diff --git a/ghost/staff-service/lib/email-templates/donation.hbs b/ghost/staff-service/lib/email-templates/donation.hbs index 88b1e07a8f..35a33fc398 100644 --- a/ghost/staff-service/lib/email-templates/donation.hbs +++ b/ghost/staff-service/lib/email-templates/donation.hbs @@ -21,21 +21,33 @@ + {{#if siteIconUrl}} + + + + {{/if}} @@ -43,13 +55,13 @@ - - diff --git a/ghost/staff-service/test/staff-service.test.js b/ghost/staff-service/test/staff-service.test.js index bf8b03d0b5..920ee9d37a 100644 --- a/ghost/staff-service/test/staff-service.test.js +++ b/ghost/staff-service/test/staff-service.test.js @@ -149,6 +149,12 @@ describe('StaffService', function () { } }; + const blogIcon = { + getIconUrl: () => { + return 'https://ghost.example/siteicon.png'; + } + }; + const settingsHelpers = { getDefaultEmailDomain: () => { return 'ghost.example'; @@ -184,6 +190,7 @@ describe('StaffService', function () { }, settingsCache, urlUtils, + blogIcon, settingsHelpers, labs }); @@ -220,6 +227,7 @@ describe('StaffService', function () { DomainEvents, settingsCache, urlUtils, + blogIcon, settingsHelpers }); service.subscribeEvents(); @@ -339,6 +347,7 @@ describe('StaffService', function () { }, settingsCache, urlUtils, + blogIcon, settingsHelpers, labs: { isSet: () => { From e378252d36d9f3c42ac84a7cb18162de537fd91a Mon Sep 17 00:00:00 2001 From: Sanne de Vries <65487235+sanne-san@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:44:24 +0200 Subject: [PATCH 16/28] Improved new free signup email design (#20716) REF MOM-339 --- .../lib/email-templates/new-free-signup.hbs | 108 ++++++++---------- .../staff-service/test/staff-service.test.js | 13 +-- 2 files changed, 50 insertions(+), 71 deletions(-) diff --git a/ghost/staff-service/lib/email-templates/new-free-signup.hbs b/ghost/staff-service/lib/email-templates/new-free-signup.hbs index c2a1007267..1d9e1fb69e 100644 --- a/ghost/staff-service/lib/email-templates/new-free-signup.hbs +++ b/ghost/staff-service/lib/email-templates/new-free-signup.hbs @@ -26,64 +26,46 @@
{{siteTitle}}
-

Cha-ching! 💰 You received {{donation.amount}} from {{donation.name}}.

- +

Cha-ching! You received a {{donation.amount}} tip from {{donation.name}}.

+
- - - + + + + + +
-

Type:

-

One-time payment

-

From:

-

{{#if memberData}}{{donation.name}} ({{donation.email}}){{else}}{{donation.name}} ({{donation.email}}){{/if}}

-

Amount received:

-

{{donation.amount}}

-
+

From:

+ +

Amount received:

+

{{donation.amount}}

+
+ {{#if memberData}} + View member + {{else}} + View dashboard + {{/if}} +
-

This message was sent from {{siteDomain}} to {{toEmail}}

+
+

This message was sent from {{siteDomain}} to {{toEmail}}

-

Don’t want to receive these emails? Manage your preferences here.

+
+

Don’t want to receive these emails? Manage your preferences here.

+ {{#if siteIconUrl}} + + + + {{/if}}
{{siteTitle}}
-

Congratulations!

-

You have a new free member.

- - - - - - - -
- - - - - -
-
- {{memberData.initials}} -
-
-

{{memberData.name}}

- {{#if memberData.showEmail}} - - {{/if}} -

Created on {{memberData.createdAt}}{{#if memberData.location}} • {{memberData.location}} {{/if}} -

-
-
- - - - - -
- {{#if referrerSource}} -

Signup info

-
-

Source - - {{referrerSource}} -

- {{#if attributionTitle}} -

Page - - {{attributionTitle}} -

- {{/if}} - {{/if}} -
- - +

New free subscriber to {{siteTitle}}

+
- - - diff --git a/ghost/staff-service/test/staff-service.test.js b/ghost/staff-service/test/staff-service.test.js index 920ee9d37a..1de3d71693 100644 --- a/ghost/staff-service/test/staff-service.test.js +++ b/ghost/staff-service/test/staff-service.test.js @@ -439,9 +439,6 @@ describe('StaffService', function () { mailStub.calledWith( sinon.match.has('html', sinon.match('🥳 Free member signup: Ghost')) ).should.be.true(); - mailStub.calledWith( - sinon.match.has('html', sinon.match('Created on 1 Aug 2022 • France')) - ).should.be.true(); }); it('sends free member signup alert without member name', async function () { @@ -464,18 +461,13 @@ describe('StaffService', function () { mailStub.calledWith( sinon.match.has('html', sinon.match('🥳 Free member signup: member@example.com')) ).should.be.true(); - mailStub.calledWith( - sinon.match.has('html', sinon.match('Created on 1 Aug 2022 • France')) - ).should.be.true(); }); it('sends free member signup alert with attribution', async function () { const member = { name: 'Ghost', email: 'member@example.com', - id: 'abc', - geolocation: '{"country": "France"}', - created_at: '2022-08-01T07:30:39.882Z' + id: 'abc' }; const attribution = { @@ -496,9 +488,6 @@ describe('StaffService', function () { mailStub.calledWith( sinon.match.has('html', sinon.match('🥳 Free member signup: Ghost')) ).should.be.true(); - mailStub.calledWith( - sinon.match.has('html', sinon.match('Created on 1 Aug 2022 • France')) - ).should.be.true(); mailStub.calledWith( sinon.match.has('html', sinon.match('Source')) From c8ba9e8027bd8269f8fb0ff3303da6d1e34b9696 Mon Sep 17 00:00:00 2001 From: Ronald Langeveld Date: Mon, 5 Aug 2024 19:58:58 +0700 Subject: [PATCH 17/28] =?UTF-8?q?=F0=9F=90=9B=20Fixed=20unsaved=20changes?= =?UTF-8?q?=20confirmation=20on=20Lexical=20schema=20change=20(#20687)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refs ENG-661 Fixes a long-standing issue where an outdated Lexical schema in the database triggered the unsaved changes confirmation dialog incorrectly. Implemented a secondary hidden Lexical instance that loads the state from the database, renders it, and uses this updated state to compare with the live editor's scratch. This ensures the unsaved changes prompt appears only when there are real changes from the user. --- .../components/gh-koenig-editor-lexical.hbs | 2 + .../components/gh-koenig-editor-lexical.js | 7 ++ .../app/components/gh-post-settings-menu.hbs | 1 + .../app/components/koenig-lexical-editor.js | 57 +++++++++------- .../app/components/modal-post-history.hbs | 1 + .../app/components/modal-post-history.js | 7 ++ ghost/admin/app/controllers/lexical-editor.js | 66 +++++++++++-------- ghost/admin/app/models/post.js | 3 + ghost/admin/app/templates/lexical-editor.hbs | 3 + .../tests/unit/controllers/editor-test.js | 45 ++++++++++++- 10 files changed, 141 insertions(+), 51 deletions(-) diff --git a/ghost/admin/app/components/gh-koenig-editor-lexical.hbs b/ghost/admin/app/components/gh-koenig-editor-lexical.hbs index af3524b998..3ad4aae7a0 100644 --- a/ghost/admin/app/components/gh-koenig-editor-lexical.hbs +++ b/ghost/admin/app/components/gh-koenig-editor-lexical.hbs @@ -95,7 +95,9 @@ @placeholder={{@bodyPlaceholder}} @cardConfig={{@cardOptions}} @onChange={{@onBodyChange}} + @updateSecondaryInstanceModel={{@updateSecondaryInstanceModel}} @registerAPI={{this.registerEditorAPI}} + @registerSecondaryAPI={{this.registerSecondaryEditorAPI}} @cursorDidExitAtTop={{if this.feature.editorExcerpt this.focusExcerpt this.focusTitle}} @updateWordCount={{@updateWordCount}} @updatePostTkCount={{@updatePostTkCount}} diff --git a/ghost/admin/app/components/gh-koenig-editor-lexical.js b/ghost/admin/app/components/gh-koenig-editor-lexical.js index 2319ae9c8a..be28f73a5f 100644 --- a/ghost/admin/app/components/gh-koenig-editor-lexical.js +++ b/ghost/admin/app/components/gh-koenig-editor-lexical.js @@ -15,6 +15,7 @@ export default class GhKoenigEditorLexical extends Component { uploadUrl = `${ghostPaths().apiRoot}/images/upload/`; editorAPI = null; + secondaryEditorAPI = null; skipFocusEditor = false; @tracked titleIsHovered = false; @@ -232,6 +233,12 @@ export default class GhKoenigEditorLexical extends Component { this.args.registerAPI(API); } + @action + registerSecondaryEditorAPI(API) { + this.secondaryEditorAPI = API; + this.args.registerSecondaryAPI(API); + } + // focus the editor when the editor canvas is clicked below the editor content, // otherwise the browser will defocus the editor and the cursor will disappear @action diff --git a/ghost/admin/app/components/gh-post-settings-menu.hbs b/ghost/admin/app/components/gh-post-settings-menu.hbs index 1d01dcc5bc..ee91b2af80 100644 --- a/ghost/admin/app/components/gh-post-settings-menu.hbs +++ b/ghost/admin/app/components/gh-post-settings-menu.hbs @@ -853,6 +853,7 @@ post=this.post editorAPI=this.editorAPI toggleSettingsMenu=this.toggleSettingsMenu + secondaryEditorAPI=this.secondaryEditorAPI }} @close={{this.closePostHistory}} @modifier="total-overlay post-history" /> diff --git a/ghost/admin/app/components/koenig-lexical-editor.js b/ghost/admin/app/components/koenig-lexical-editor.js index 4365e4e26c..8f91477f74 100644 --- a/ghost/admin/app/components/koenig-lexical-editor.js +++ b/ghost/admin/app/components/koenig-lexical-editor.js @@ -669,34 +669,43 @@ export default class KoenigLexicalEditor extends Component { const multiplayerDocId = cardConfig.post.id; const multiplayerUsername = this.session.user.name; + const KGEditorComponent = ({isInitInstance}) => { + return ( +
+ + + {} : this.args.updateWordCount} /> + {} : this.args.updatePostTkCount} /> + +
+ ); + }; + return (
Loading editor...

}> - - - - - + +
diff --git a/ghost/admin/app/components/modal-post-history.hbs b/ghost/admin/app/components/modal-post-history.hbs index 3989c29db5..f7f8ab1261 100644 --- a/ghost/admin/app/components/modal-post-history.hbs +++ b/ghost/admin/app/components/modal-post-history.hbs @@ -33,6 +33,7 @@ @lexical={{this.selectedRevision.lexical}} @cardConfig={{this.cardConfig}} @registerAPI={{this.registerSelectedEditorApi}} + @registerSecondaryAPI={{this.registerSecondarySelectedEditorApi}} /> diff --git a/ghost/admin/app/components/modal-post-history.js b/ghost/admin/app/components/modal-post-history.js index 05aba6646e..4dfa987e2e 100644 --- a/ghost/admin/app/components/modal-post-history.js +++ b/ghost/admin/app/components/modal-post-history.js @@ -31,6 +31,7 @@ export default class ModalPostHistory extends Component { super(...arguments); this.post = this.args.model.post; this.editorAPI = this.args.model.editorAPI; + this.secondaryEditorAPI = this.args.model.secondaryEditorAPI; this.toggleSettingsMenu = this.args.model.toggleSettingsMenu; } @@ -101,6 +102,11 @@ export default class ModalPostHistory extends Component { this.selectedEditor = api; } + @action + registerSecondarySelectedEditorApi(api) { + this.secondarySelectedEditor = api; + } + @action registerComparisonEditorApi(api) { this.comparisonEditor = api; @@ -130,6 +136,7 @@ export default class ModalPostHistory extends Component { updateEditor: () => { const state = this.editorAPI.editorInstance.parseEditorState(revision.lexical); this.editorAPI.editorInstance.setEditorState(state); + this.secondaryEditorAPI.editorInstance.setEditorState(state); }, closePostHistoryModal: () => { this.closeModal(); diff --git a/ghost/admin/app/controllers/lexical-editor.js b/ghost/admin/app/controllers/lexical-editor.js index 71c6331437..2b8342afd9 100644 --- a/ghost/admin/app/controllers/lexical-editor.js +++ b/ghost/admin/app/controllers/lexical-editor.js @@ -297,6 +297,11 @@ export default class LexicalEditorController extends Controller { this._timedSaveTask.perform(); } + @action + updateSecondaryInstanceModel(lexical) { + this.set('post.secondaryLexicalState', JSON.stringify(lexical)); + } + @action updateTitleScratch(title) { this.set('post.titleScratch', title); @@ -423,6 +428,11 @@ export default class LexicalEditorController extends Controller { this.editorAPI = API; } + @action + registerSecondaryEditorAPI(API) { + this.secondaryEditorAPI = API; + } + @action clearFeatureImage() { this.post.set('featureImage', null); @@ -1221,7 +1231,6 @@ export default class LexicalEditorController extends Controller { _timedSaveTask; /* Private methods -------------------------------------------------------*/ - _hasDirtyAttributes() { let post = this.post; @@ -1229,8 +1238,7 @@ export default class LexicalEditorController extends Controller { return false; } - // if the Adapter failed to save the post isError will be true - // and we should consider the post still dirty. + // If the Adapter failed to save the post, isError will be true, and we should consider the post still dirty. if (post.get('isError')) { this._leaveModalReason = {reason: 'isError', context: post.errors.messages}; return true; @@ -1245,37 +1253,32 @@ export default class LexicalEditorController extends Controller { return true; } - // titleScratch isn't an attr so needs a manual dirty check + // Title scratch comparison if (post.titleScratch !== post.title) { this._leaveModalReason = {reason: 'title is different', context: {current: post.title, scratch: post.titleScratch}}; return true; } - // scratch isn't an attr so needs a manual dirty check + // Lexical and scratch comparison let lexical = post.get('lexical'); let scratch = post.get('lexicalScratch'); - // additional guard in case we are trying to compare null with undefined - if (scratch || lexical) { - if (scratch !== lexical) { - // lexical can dynamically set direction on loading editor state (e.g. "rtl"/"ltr") per the DOM context - // and we need to ignore this as a change from the user; see https://github.com/facebook/lexical/issues/4998 - const scratchChildNodes = scratch ? JSON.parse(scratch).root?.children : []; - const lexicalChildNodes = lexical ? JSON.parse(lexical).root?.children : []; + let secondaryLexical = post.get('secondaryLexicalState'); - // // nullling is typically faster than delete - scratchChildNodes.forEach(child => child.direction = null); - lexicalChildNodes.forEach(child => child.direction = null); + let lexicalChildNodes = lexical ? JSON.parse(lexical).root?.children : []; + let scratchChildNodes = scratch ? JSON.parse(scratch).root?.children : []; + let secondaryLexicalChildNodes = secondaryLexical ? JSON.parse(secondaryLexical).root?.children : []; - if (JSON.stringify(scratchChildNodes) === JSON.stringify(lexicalChildNodes)) { - return false; - } + lexicalChildNodes.forEach(child => child.direction = null); + scratchChildNodes.forEach(child => child.direction = null); + secondaryLexicalChildNodes.forEach(child => child.direction = null); - this._leaveModalReason = {reason: 'lexical is different', context: {current: lexical, scratch}}; - return true; - } - } + // Compare initLexical with scratch + let isSecondaryDirty = secondaryLexical && scratch && JSON.stringify(secondaryLexicalChildNodes) !== JSON.stringify(scratchChildNodes); - // new+unsaved posts always return `hasDirtyAttributes: true` + // Compare lexical with scratch + let isLexicalDirty = lexical && scratch && JSON.stringify(lexicalChildNodes) !== JSON.stringify(scratchChildNodes); + + // New+unsaved posts always return `hasDirtyAttributes: true` // so we need a manual check to see if any if (post.get('isNew')) { let changedAttributes = Object.keys(post.changedAttributes()); @@ -1286,15 +1289,26 @@ export default class LexicalEditorController extends Controller { return changedAttributes.length ? true : false; } - // we've covered all the non-tracked cases we care about so fall + // We've covered all the non-tracked cases we care about so fall // back on Ember Data's default dirty attribute checks let {hasDirtyAttributes} = post; - if (hasDirtyAttributes) { this._leaveModalReason = {reason: 'post.hasDirtyAttributes === true', context: post.changedAttributes()}; + return true; } - return hasDirtyAttributes; + // If either comparison is not dirty, return false, because scratch is always up to date. + if (!isSecondaryDirty || !isLexicalDirty) { + return false; + } + + // If both comparisons are dirty, consider the post dirty + if (isSecondaryDirty && isLexicalDirty) { + this._leaveModalReason = {reason: 'initLexical and lexical are different from scratch', context: {secondaryLexical, lexical, scratch}}; + return true; + } + + return false; } _showSaveNotification(prevStatus, status, delayed) { diff --git a/ghost/admin/app/models/post.js b/ghost/admin/app/models/post.js index 1ffb06d8d0..835d24d0a2 100644 --- a/ghost/admin/app/models/post.js +++ b/ghost/admin/app/models/post.js @@ -136,6 +136,9 @@ export default Model.extend(Comparable, ValidationEngine, { scratch: null, lexicalScratch: null, titleScratch: null, + //This is used to store the initial lexical state from the + // secondary editor to get the schema up to date in case its outdated + secondaryLexicalState: null, // For use by date/time pickers - will be validated then converted to UTC // on save. Updated by an observer whenever publishedAtUTC changes. diff --git a/ghost/admin/app/templates/lexical-editor.hbs b/ghost/admin/app/templates/lexical-editor.hbs index bd9d5d51e7..b7ee9a4a74 100644 --- a/ghost/admin/app/templates/lexical-editor.hbs +++ b/ghost/admin/app/templates/lexical-editor.hbs @@ -73,6 +73,7 @@ @body={{readonly this.post.lexicalScratch}} @bodyPlaceholder={{concat "Begin writing your " this.post.displayName "..."}} @onBodyChange={{this.updateScratch}} + @updateSecondaryInstanceModel={{this.updateSecondaryInstanceModel}} @headerOffset={{editor.headerHeight}} @scrollContainerSelector=".gh-koenig-editor" @scrollOffsetBottomSelector=".gh-mobile-nav-bar" @@ -97,6 +98,7 @@ }} @postType={{this.post.displayName}} @registerAPI={{this.registerEditorAPI}} + @registerSecondaryAPI={{this.registerSecondaryEditorAPI}} @savePostTask={{this.savePostTask}} /> @@ -136,6 +138,7 @@ @updateSlugTask={{this.updateSlugTask}} @savePostTask={{this.savePostTask}} @editorAPI={{this.editorAPI}} + @secondaryEditorAPI={{this.secondaryEditorAPI}} @toggleSettingsMenu={{this.toggleSettingsMenu}} /> {{/if}} diff --git a/ghost/admin/tests/unit/controllers/editor-test.js b/ghost/admin/tests/unit/controllers/editor-test.js index 088f22391d..acf7a5e95b 100644 --- a/ghost/admin/tests/unit/controllers/editor-test.js +++ b/ghost/admin/tests/unit/controllers/editor-test.js @@ -208,7 +208,8 @@ describe('Unit: Controller: lexical-editor', function () { titleScratch: 'this is a title', status: 'published', lexical: initialLexicalString, - lexicalScratch: initialLexicalString + lexicalScratch: initialLexicalString, + secondaryLexicalState: initialLexicalString })); // synthetically update the lexicalScratch as if the editor itself made the modifications on loading the initial editorState @@ -225,5 +226,47 @@ describe('Unit: Controller: lexical-editor', function () { isDirty = controller.get('hasDirtyAttributes'); expect(isDirty).to.be.true; }); + + it('dirty is false if secondaryLexical and scratch matches, but lexical is outdated', async function () { + const initialLexicalString = `{"root":{"children":[{"children": [{"detail": 0,"format": 0,"mode": "normal","style": "","text": "Sample content","type": "extended-text","version": 1}],"direction": null,"format": "","indent": 0,"type": "paragraph","version": 1}],"direction": "ltr","format": "","indent": 0,"type": "root","version": 1}}`; + const lexicalScratch = `{"root":{"children":[{"children": [{"detail": 0,"format": 0,"mode": "normal","style": "","text": "Sample content","type": "extended-text","version": 1}],"direction": "ltr","format": "","indent": 0,"type": "paragraph","version": 1}],"direction": "ltr","format": "","indent": 0,"type": "root","version": 1}}`; + const secondLexicalInstance = `{"root":{"children":[{"children": [{"detail": 0,"format": 0,"mode": "normal","style": "","text": "Here's some new text","type": "extended-text","version": 1}],"direction": "ltr","format": "","indent": 0,"type": "paragraph","version": 1}],"direction": "ltr","format": "","indent": 0,"type": "root","version": 1}}`; + + let controller = this.owner.lookup('controller:lexical-editor'); + controller.set('post', EmberObject.create({ + title: 'this is a title', + titleScratch: 'this is a title', + status: 'published', + lexical: initialLexicalString, + lexicalScratch: lexicalScratch, + secondaryLexicalState: secondLexicalInstance + })); + + let isDirty = controller.get('hasDirtyAttributes'); + + expect(isDirty).to.be.false; + }); + + it('dirty is true if secondaryLexical and lexical does not match scratch', async function () { + const initialLexicalString = `{"root":{"children":[{"children": [{"detail": 0,"format": 0,"mode": "normal","style": "","text": "Sample content","type": "extended-text","version": 1}],"direction": null,"format": "","indent": 0,"type": "paragraph","version": 1}],"direction": "ltr","format": "","indent": 0,"type": "root","version": 1}}`; + const lexicalScratch = `{"root":{"children":[{"children": [{"detail": 0,"format": 0,"mode": "normal","style": "","text": "Sample content1234","type": "extended-text","version": 1}],"direction": "ltr","format": "","indent": 0,"type": "paragraph","version": 1}],"direction": "ltr","format": "","indent": 0,"type": "root","version": 1}}`; + const secondLexicalInstance = `{"root":{"children":[{"children": [{"detail": 0,"format": 0,"mode": "normal","style": "","text": "Here's some new text","type": "extended-text","version": 1}],"direction": "ltr","format": "","indent": 0,"type": "paragraph","version": 1}],"direction": "ltr","format": "","indent": 0,"type": "root","version": 1}}`; + + let controller = this.owner.lookup('controller:lexical-editor'); + controller.set('post', EmberObject.create({ + title: 'this is a title', + titleScratch: 'this is a title', + status: 'published', + lexical: initialLexicalString, + lexicalScratch: lexicalScratch, + secondaryLexicalState: secondLexicalInstance + })); + + controller.send('updateScratch',JSON.parse(lexicalScratch)); + + let isDirty = controller.get('hasDirtyAttributes'); + + expect(isDirty).to.be.true; + }); }); }); From 61bf3ea57eee5b19f0aa00564af559dd9e41e56a Mon Sep 17 00:00:00 2001 From: Ronald Langeveld Date: Mon, 5 Aug 2024 21:40:18 +0700 Subject: [PATCH 18/28] Fixed browser tests for unsaved changes (#20717) no issue - takes into account that there is an additional editor in the DOM - which there is now. --- ghost/core/test/e2e-browser/admin/publishing.spec.js | 4 ++-- ghost/core/test/e2e-browser/utils/e2e-browser-utils.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ghost/core/test/e2e-browser/admin/publishing.spec.js b/ghost/core/test/e2e-browser/admin/publishing.spec.js index cb027af941..fc32202c21 100644 --- a/ghost/core/test/e2e-browser/admin/publishing.spec.js +++ b/ghost/core/test/e2e-browser/admin/publishing.spec.js @@ -78,7 +78,7 @@ const createPage = async (page, {title = 'Hello world', body = 'This is my post await page.locator('[data-test-editor-title-input]').fill(title); // wait for editor to be ready - await expect(page.locator('[data-lexical-editor="true"]')).toBeVisible(); + await expect(page.locator('[data-lexical-editor="true"]').first()).toBeVisible(); // Continue to the body by pressing enter await page.keyboard.press('Enter'); @@ -304,7 +304,7 @@ test.describe('Publishing', () => { await expect(publishedHeader).toContainText(date.toFormat('LLL d, yyyy')); // add some extra text to the post - await adminPage.locator('[data-kg="editor"]').click(); + await adminPage.locator('[data-kg="editor"]').first().click(); await adminPage.waitForTimeout(200); // await adminPage.keyboard.type(' This is some updated text.'); diff --git a/ghost/core/test/e2e-browser/utils/e2e-browser-utils.js b/ghost/core/test/e2e-browser/utils/e2e-browser-utils.js index a2a13f0c23..1f6311992a 100644 --- a/ghost/core/test/e2e-browser/utils/e2e-browser-utils.js +++ b/ghost/core/test/e2e-browser/utils/e2e-browser-utils.js @@ -423,7 +423,7 @@ const createPostDraft = async (page, {title = 'Hello world', body = 'This is my await page.locator('[data-test-editor-title-input]').fill(title); // wait for editor to be ready - await expect(page.locator('[data-lexical-editor="true"]')).toBeVisible(); + await expect(page.locator('[data-lexical-editor="true"]').first()).toBeVisible(); // Continue to the body by pressing enter await page.keyboard.press('Enter'); From d0c49ee71baa597c78f0f3b798c7253f5ab6920e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20der=20Winden?= Date: Tue, 6 Aug 2024 11:35:37 +0200 Subject: [PATCH 19/28] Added icon to 'Refresh' button --- ghost/admin/app/components/posts/analytics.hbs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ghost/admin/app/components/posts/analytics.hbs b/ghost/admin/app/components/posts/analytics.hbs index c08e6aeb71..5948388fd5 100644 --- a/ghost/admin/app/components/posts/analytics.hbs +++ b/ghost/admin/app/components/posts/analytics.hbs @@ -34,9 +34,17 @@ {{moment-format publishedAt "HH:mm"}} {{/let}} - - {{svg-jar "pen" title=""}}Edit post - +
+ + + + {{svg-jar "pen" title=""}}Edit post + +
From cc6c371328f7121c0861098d312f4c72c8d2785c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20der=20Winden?= Date: Tue, 6 Aug 2024 11:41:46 +0200 Subject: [PATCH 20/28] Added share icon SVG --- apps/admin-x-design-system/src/assets/icons/share.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/admin-x-design-system/src/assets/icons/share.svg diff --git a/apps/admin-x-design-system/src/assets/icons/share.svg b/apps/admin-x-design-system/src/assets/icons/share.svg new file mode 100644 index 0000000000..6feac81448 --- /dev/null +++ b/apps/admin-x-design-system/src/assets/icons/share.svg @@ -0,0 +1 @@ +Share 1 Streamline Icon: https://streamlinehq.comshare-1 \ No newline at end of file From 42cc3f02ffab1ccc7bec9016c0b5836613a205e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20der=20Winden?= Date: Tue, 6 Aug 2024 11:44:28 +0200 Subject: [PATCH 21/28] Add share icon to Share button --- ghost/admin/app/components/posts/analytics.hbs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ghost/admin/app/components/posts/analytics.hbs b/ghost/admin/app/components/posts/analytics.hbs index 5948388fd5..7e8462e018 100644 --- a/ghost/admin/app/components/posts/analytics.hbs +++ b/ghost/admin/app/components/posts/analytics.hbs @@ -36,13 +36,13 @@
- {{svg-jar "pen" title=""}}Edit post + {{svg-jar "pen" title="Edit post"}}Edit post
From 9d133a2520827fdd9eb0c679e28fc56df117ac9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20der=20Winden?= Date: Tue, 6 Aug 2024 11:53:42 +0200 Subject: [PATCH 22/28] Added icons and 'more' button --- ghost/admin/app/components/posts/analytics.hbs | 7 +++++-- ghost/admin/public/assets/icons/share.svg | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 ghost/admin/public/assets/icons/share.svg diff --git a/ghost/admin/app/components/posts/analytics.hbs b/ghost/admin/app/components/posts/analytics.hbs index 7e8462e018..13d709e8ee 100644 --- a/ghost/admin/app/components/posts/analytics.hbs +++ b/ghost/admin/app/components/posts/analytics.hbs @@ -41,9 +41,12 @@ - + + {{!-- {{svg-jar "pen" title="Edit post"}}Edit post - + --}} diff --git a/ghost/admin/public/assets/icons/share.svg b/ghost/admin/public/assets/icons/share.svg new file mode 100644 index 0000000000..6feac81448 --- /dev/null +++ b/ghost/admin/public/assets/icons/share.svg @@ -0,0 +1 @@ +Share 1 Streamline Icon: https://streamlinehq.comshare-1 \ No newline at end of file From 8d27439fdb83014646e6940b803b717a79f89dd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20der=20Winden?= Date: Tue, 6 Aug 2024 12:02:20 +0200 Subject: [PATCH 23/28] Added initial code for 'more' button --- .../admin/app/components/posts/analytics.hbs | 53 +++++++++++++++++-- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/ghost/admin/app/components/posts/analytics.hbs b/ghost/admin/app/components/posts/analytics.hbs index 13d709e8ee..c75bb7de52 100644 --- a/ghost/admin/app/components/posts/analytics.hbs +++ b/ghost/admin/app/components/posts/analytics.hbs @@ -40,13 +40,60 @@ - {{!-- {{svg-jar "pen" title="Edit post"}}Edit post --}} + + + + + {{svg-jar "dotdotdot"}} + + + + +
  • + +
  • +
  • + +
  • +
  • + +
  • +
    +
    From 20991eea28070020324b881df24329f6bfb1eb2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20der=20Winden?= Date: Tue, 6 Aug 2024 12:05:20 +0200 Subject: [PATCH 24/28] Moved CSS to content.css --- ghost/admin/app/styles/layouts/content.css | 11 +++++++++++ ghost/admin/app/styles/layouts/posts.css | 2 ++ 2 files changed, 13 insertions(+) diff --git a/ghost/admin/app/styles/layouts/content.css b/ghost/admin/app/styles/layouts/content.css index a4e6f6aa5c..91d5e63229 100644 --- a/ghost/admin/app/styles/layouts/content.css +++ b/ghost/admin/app/styles/layouts/content.css @@ -776,6 +776,17 @@ border-radius: var(--border-radius); } +.gh-analytics-actions-menu { + top: calc(100% + 6px); + left: auto; + right: 10px; +} + +.gh-analytics-actions-menu.fade-out { + animation-duration: .001s; + pointer-events: none; +} + .feature-audienceFeedback .gh-post-analytics-box.gh-post-analytics-newsletter-clicks, .feature-audienceFeedback .gh-post-analytics-box.gh-post-analytics-source-attribution, .gh-post-analytics-box.gh-post-analytics-mentions { diff --git a/ghost/admin/app/styles/layouts/posts.css b/ghost/admin/app/styles/layouts/posts.css index 1496804eef..41c097bcc2 100644 --- a/ghost/admin/app/styles/layouts/posts.css +++ b/ghost/admin/app/styles/layouts/posts.css @@ -347,3 +347,5 @@ margin-left: 8px; background: var(--whitegrey); } + + From 15220d284c3e08dfb74aa9640174d5fb9c1f791b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20der=20Winden?= Date: Tue, 6 Aug 2024 12:12:51 +0200 Subject: [PATCH 25/28] Added delete post functionality --- ghost/admin/app/components/posts/analytics.hbs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ghost/admin/app/components/posts/analytics.hbs b/ghost/admin/app/components/posts/analytics.hbs index c75bb7de52..387cc50685 100644 --- a/ghost/admin/app/components/posts/analytics.hbs +++ b/ghost/admin/app/components/posts/analytics.hbs @@ -48,9 +48,9 @@ {{svg-jar "dotdotdot"}} @@ -66,8 +66,8 @@ @@ -76,8 +76,8 @@ @@ -86,8 +86,8 @@ From 3267dfa031276edea8eba61bd5a3c5ea92e3b37a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20der=20Winden?= Date: Tue, 6 Aug 2024 12:23:29 +0200 Subject: [PATCH 26/28] Fixed padding on 'more' button --- ghost/admin/app/components/posts/analytics.hbs | 9 ++++----- ghost/admin/app/styles/layouts/content.css | 4 ++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ghost/admin/app/components/posts/analytics.hbs b/ghost/admin/app/components/posts/analytics.hbs index 387cc50685..866f010fa3 100644 --- a/ghost/admin/app/components/posts/analytics.hbs +++ b/ghost/admin/app/components/posts/analytics.hbs @@ -64,12 +64,11 @@ >
  • diff --git a/ghost/admin/app/styles/layouts/content.css b/ghost/admin/app/styles/layouts/content.css index 91d5e63229..33bddc1841 100644 --- a/ghost/admin/app/styles/layouts/content.css +++ b/ghost/admin/app/styles/layouts/content.css @@ -1534,6 +1534,10 @@ transition: all .1s linear; } +span.dropdown .gh-post-list-cta > span { + padding: 0; +} + .gh-post-list-cta.edit.is-hovered > *, .gh-post-list-cta.edit.is-hovered:hover > *, .gh-post-list-cta.edit:not(.is-hovered):hover > * { From 6471d1bf9e4df68e4613df7083709e95d592cdc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20der=20Winden?= Date: Tue, 6 Aug 2024 14:44:53 +0200 Subject: [PATCH 27/28] 'More' menu styling (last-child update) --- ghost/admin/app/styles/components/dropdowns.css | 2 +- ghost/admin/app/styles/layouts/content.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ghost/admin/app/styles/components/dropdowns.css b/ghost/admin/app/styles/components/dropdowns.css index 099644e81d..2e62269cc3 100644 --- a/ghost/admin/app/styles/components/dropdowns.css +++ b/ghost/admin/app/styles/components/dropdowns.css @@ -393,7 +393,7 @@ Post context menu stroke-width: 1.8px; } -.gh-posts-context-menu li:last-child::before { +.gh-posts-context-menu li:last-child::before, .gh-analytics-actions-menu li:last-child::before { display: block; position: relative; content: ""; diff --git a/ghost/admin/app/styles/layouts/content.css b/ghost/admin/app/styles/layouts/content.css index 33bddc1841..3964ce4374 100644 --- a/ghost/admin/app/styles/layouts/content.css +++ b/ghost/admin/app/styles/layouts/content.css @@ -779,7 +779,7 @@ .gh-analytics-actions-menu { top: calc(100% + 6px); left: auto; - right: 10px; + right: 0; } .gh-analytics-actions-menu.fade-out { From 87a559439f1e0c4e739930c0424fb0fd20f64afe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20der=20Winden?= Date: Tue, 6 Aug 2024 15:18:00 +0200 Subject: [PATCH 28/28] Added proper hover states for post analytics buttons --- ghost/admin/app/components/posts/analytics.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ghost/admin/app/components/posts/analytics.hbs b/ghost/admin/app/components/posts/analytics.hbs index 866f010fa3..132e537834 100644 --- a/ghost/admin/app/components/posts/analytics.hbs +++ b/ghost/admin/app/components/posts/analytics.hbs @@ -48,7 +48,7 @@
  • - +
    + + + + +
    +

    Name:

    + + {{#if referrerSource}} +

    Source:

    +

    {{referrerSource}}

    + {{#if attributionTitle}} +

    Page:

    + + {{/if}} + {{/if}} +
    + - +
    View member + + + + + + +
    View member
    +
    @@ -91,21 +73,29 @@
    -
    -

    You can also copy & paste this URL into your browser:

    - + + + + + + + +
    +

    Or copy and paste this URL into your browser:

    + +
    -

    This message was sent from {{siteDomain}} to {{toEmail}}

    +
    +

    This message was sent from {{siteDomain}} to {{toEmail}}

    -

    Don’t want to receive these emails? Manage your preferences here.

    +
    +

    Don’t want to receive these emails? Manage your preferences here.