mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-23 11:55:01 +03:00
Updated Tiers API data structure (#14795)
refs https://github.com/TryGhost/Team/issues/1575 - Updates the admin-api-schema to reflect new data structure - Updates members-api to allow Portal to use new data structure - Data is only mapped at the serialised level to avoid changing the underlying implementation - Ensure only one version of domain-events present in yarn.lock
This commit is contained in:
parent
c14f82fec0
commit
d9e6dfe97e
@ -8,6 +8,41 @@ const forceActiveFilter = (frame) => {
|
||||
}
|
||||
};
|
||||
|
||||
function convertTierInput(input) {
|
||||
const converted = {
|
||||
id: input.id,
|
||||
name: input.name,
|
||||
description: input.description,
|
||||
slug: input.slug,
|
||||
active: input.active,
|
||||
type: input.type,
|
||||
welcome_page_url: input.welcome_page_url,
|
||||
created_at: input.created_at,
|
||||
updated_at: input.updated_at,
|
||||
visibility: input.visibility
|
||||
};
|
||||
|
||||
if (input.monthly_price && input.currency) {
|
||||
converted.monthly_price = {
|
||||
amount: input.monthly_price,
|
||||
currency: input.currency
|
||||
};
|
||||
}
|
||||
|
||||
if (input.yearly_price && input.currency) {
|
||||
converted.yearly_price = {
|
||||
amount: input.yearly_price,
|
||||
currency: input.currency
|
||||
};
|
||||
}
|
||||
|
||||
if (input.benefits) {
|
||||
converted.benefits = input.benefits.map(name => ({name}));
|
||||
}
|
||||
|
||||
return converted;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
all(_apiConfig, frame) {
|
||||
if (!frame.options.withRelated) {
|
||||
@ -37,17 +72,17 @@ module.exports = {
|
||||
|
||||
add(_apiConfig, frame) {
|
||||
if (frame.data.products) {
|
||||
frame.data = frame.data.products[0];
|
||||
frame.data = convertTierInput(frame.data.products[0]);
|
||||
return;
|
||||
}
|
||||
frame.data = frame.data.tiers[0];
|
||||
frame.data = convertTierInput(frame.data.tiers[0]);
|
||||
},
|
||||
|
||||
edit(_apiConfig, frame) {
|
||||
if (frame.data.products) {
|
||||
frame.data = frame.data.products[0];
|
||||
frame.data = convertTierInput(frame.data.products[0]);
|
||||
return;
|
||||
}
|
||||
frame.data = frame.data.tiers[0];
|
||||
frame.data = convertTierInput(frame.data.tiers[0]);
|
||||
}
|
||||
};
|
||||
|
@ -1,6 +1,5 @@
|
||||
//@ts-check
|
||||
const debug = require('@tryghost/debug')('api:canary:utils:serializers:output:tiers');
|
||||
const _ = require('lodash');
|
||||
|
||||
const allowedIncludes = ['monthly_price', 'yearly_price'];
|
||||
const utils = require('../../../../shared/utils');
|
||||
@ -60,15 +59,12 @@ function singleTier(model, _apiConfig, frame) {
|
||||
/**
|
||||
* @param {import('bookshelf').Model} tier
|
||||
* @param {object} options
|
||||
* @param {'content'|'admin'} apiType
|
||||
*
|
||||
* @returns {SerializedTier}
|
||||
*/
|
||||
function serializeTier(tier, options, apiType) {
|
||||
function serializeTier(tier, options) {
|
||||
const json = tier.toJSON(options);
|
||||
|
||||
const hideStripeData = apiType === 'content';
|
||||
|
||||
const serialized = {
|
||||
id: json.id,
|
||||
name: json.name,
|
||||
@ -79,49 +75,25 @@ function serializeTier(tier, options, apiType) {
|
||||
welcome_page_url: json.welcome_page_url,
|
||||
created_at: json.created_at,
|
||||
updated_at: json.updated_at,
|
||||
stripe_prices: json.stripePrices ? json.stripePrices.map(price => serializeStripePrice(price, hideStripeData)) : null,
|
||||
monthly_price: serializeStripePrice(json.monthlyPrice, hideStripeData),
|
||||
yearly_price: serializeStripePrice(json.yearlyPrice, hideStripeData),
|
||||
benefits: json.benefits || null,
|
||||
visibility: json.visibility
|
||||
visibility: json.visibility,
|
||||
benefits: null
|
||||
};
|
||||
|
||||
if (Array.isArray(json.benefits)) {
|
||||
serialized.benefits = json.benefits.map(benefit => benefit.name);
|
||||
} else {
|
||||
serialized.benefits = null;
|
||||
}
|
||||
|
||||
if (serialized.type === 'paid') {
|
||||
serialized.currency = json.monthlyPrice?.currency;
|
||||
serialized.monthly_price = json.monthlyPrice?.amount;
|
||||
serialized.yearly_price = json.yearlyPrice?.amount;
|
||||
}
|
||||
|
||||
return serialized;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} data
|
||||
* @param {boolean} hideStripeData
|
||||
*
|
||||
* @returns {StripePrice}
|
||||
*/
|
||||
function serializeStripePrice(data, hideStripeData) {
|
||||
if (_.isEmpty(data)) {
|
||||
return null;
|
||||
}
|
||||
const price = {
|
||||
id: data.id,
|
||||
stripe_tier_id: data.stripe_product_id,
|
||||
stripe_price_id: data.stripe_price_id,
|
||||
active: data.active,
|
||||
nickname: data.nickname,
|
||||
description: data.description,
|
||||
currency: data.currency,
|
||||
amount: data.amount,
|
||||
type: data.type,
|
||||
interval: data.interval,
|
||||
created_at: data.created_at,
|
||||
updated_at: data.updated_at
|
||||
};
|
||||
|
||||
if (hideStripeData) {
|
||||
delete price.stripe_price_id;
|
||||
delete price.stripe_tier_id;
|
||||
}
|
||||
|
||||
return price;
|
||||
}
|
||||
|
||||
/**
|
||||
* @template Data
|
||||
*
|
||||
@ -160,7 +132,7 @@ function createSerializer(debugString, serialize) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {Object} SerializedTier
|
||||
* @typedef {Object} FreeTier
|
||||
* @prop {string} id
|
||||
* @prop {string} name
|
||||
* @prop {string} slug
|
||||
@ -170,34 +142,21 @@ function createSerializer(debugString, serialize) {
|
||||
* @prop {string} welcome_page_url
|
||||
* @prop {Date} created_at
|
||||
* @prop {Date} updated_at
|
||||
* @prop {StripePrice} [monthly_price]
|
||||
* @prop {StripePrice} [yearly_price]
|
||||
* @prop {Benefit[]} [benefits]
|
||||
* @prop {string[]} [benefits]
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef {object} Benefit
|
||||
* @prop {string} id
|
||||
* @prop {string} name
|
||||
* @prop {string} slug
|
||||
* @prop {Date} created_at
|
||||
* @prop {Date} updated_at
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef {object} StripePrice
|
||||
* @prop {string} id
|
||||
* @prop {string|null} stripe_tier_id
|
||||
* @prop {string|null} stripe_price_id
|
||||
* @prop {boolean} active
|
||||
* @prop {string} nickname
|
||||
* @prop {string} description
|
||||
* @typedef {FreeTier} PaidTier
|
||||
* @prop {string} currency
|
||||
* @prop {number} amount
|
||||
* @prop {'recurring'|'one-time'} type
|
||||
* @prop {'day'|'week'|'month'|'year'} interval
|
||||
* @prop {Date} created_at
|
||||
* @prop {Date} updated_at
|
||||
* @prop {number} monthly_price
|
||||
* @prop {number} yearly_price
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef {FreeTier | PaidTier} SerializedTier
|
||||
* @prop {string} currency
|
||||
* @prop {number} monthly_price
|
||||
* @prop {number} yearly_price
|
||||
*/
|
||||
|
||||
/**
|
||||
|
12
package.json
12
package.json
@ -57,7 +57,7 @@
|
||||
"dependencies": {
|
||||
"@sentry/node": "6.19.7",
|
||||
"@tryghost/adapter-manager": "0.2.31",
|
||||
"@tryghost/admin-api-schema": "3.2.3",
|
||||
"@tryghost/admin-api-schema": "4.0.0",
|
||||
"@tryghost/api-version-compatibility-service": "0.4.1",
|
||||
"@tryghost/bookshelf-plugins": "0.4.1",
|
||||
"@tryghost/bootstrap-socket": "0.2.20",
|
||||
@ -67,7 +67,7 @@
|
||||
"@tryghost/custom-theme-settings-service": "0.3.3",
|
||||
"@tryghost/database-info": "0.3.5",
|
||||
"@tryghost/debug": "0.1.16",
|
||||
"@tryghost/domain-events": "0.1.13",
|
||||
"@tryghost/domain-events": "0.1.14",
|
||||
"@tryghost/email-analytics-provider-mailgun": "1.0.9",
|
||||
"@tryghost/email-analytics-service": "1.0.7",
|
||||
"@tryghost/email-content-generator": "0.1.2",
|
||||
@ -85,12 +85,12 @@
|
||||
"@tryghost/logging": "2.1.8",
|
||||
"@tryghost/magic-link": "1.0.25",
|
||||
"@tryghost/member-events": "0.4.5",
|
||||
"@tryghost/members-api": "7.0.2",
|
||||
"@tryghost/members-events-service": "0.4.2",
|
||||
"@tryghost/members-api": "8.0.0",
|
||||
"@tryghost/members-events-service": "0.4.3",
|
||||
"@tryghost/members-importer": "0.5.13",
|
||||
"@tryghost/members-offers": "0.11.5",
|
||||
"@tryghost/members-ssr": "1.0.27",
|
||||
"@tryghost/members-stripe-service": "0.10.4",
|
||||
"@tryghost/members-stripe-service": "0.10.5",
|
||||
"@tryghost/metrics": "1.0.11",
|
||||
"@tryghost/minifier": "0.1.15",
|
||||
"@tryghost/mw-api-version-mismatch": "0.2.1",
|
||||
@ -112,7 +112,7 @@
|
||||
"@tryghost/update-check-service": "0.3.4",
|
||||
"@tryghost/url-utils": "4.0.0",
|
||||
"@tryghost/validator": "0.1.24",
|
||||
"@tryghost/verification-trigger": "0.2.4",
|
||||
"@tryghost/verification-trigger": "0.2.5",
|
||||
"@tryghost/version": "0.1.14",
|
||||
"@tryghost/vhost-middleware": "1.0.25",
|
||||
"@tryghost/zip": "1.1.25",
|
||||
|
@ -21,7 +21,6 @@ Object {
|
||||
"id": StringMatching /\\[a-f0-9\\]\\{24\\}/,
|
||||
"name": "Free",
|
||||
"slug": "free",
|
||||
"stripe_prices": null,
|
||||
"type": "free",
|
||||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000Z/,
|
||||
"visibility": "public",
|
||||
@ -35,7 +34,6 @@ Object {
|
||||
"id": StringMatching /\\[a-f0-9\\]\\{24\\}/,
|
||||
"name": "Default Product",
|
||||
"slug": "default-product",
|
||||
"stripe_prices": null,
|
||||
"type": "paid",
|
||||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}T\\\\d\\{2\\}:\\\\d\\{2\\}:\\\\d\\{2\\}\\\\\\.000Z/,
|
||||
"visibility": "public",
|
||||
|
@ -35,9 +35,8 @@ describe('Tiers API', function () {
|
||||
it('Errors when price is non-integer', async function () {
|
||||
const tier = {
|
||||
name: 'Blah',
|
||||
monthly_price: {
|
||||
amount: 99.99
|
||||
}
|
||||
monthly_price: 99.99,
|
||||
currency: 'usd'
|
||||
};
|
||||
|
||||
await agent
|
||||
@ -54,9 +53,8 @@ describe('Tiers API', function () {
|
||||
it('Errors when price is negative', async function () {
|
||||
const tier = {
|
||||
name: 'Blah',
|
||||
monthly_price: {
|
||||
amount: -100
|
||||
}
|
||||
monthly_price: -100,
|
||||
currency: 'usd'
|
||||
};
|
||||
|
||||
await agent
|
||||
@ -73,9 +71,8 @@ describe('Tiers API', function () {
|
||||
it('Errors when price is too large', async function () {
|
||||
const tier = {
|
||||
name: 'Blah',
|
||||
monthly_price: {
|
||||
amount: Number.MAX_SAFE_INTEGER
|
||||
}
|
||||
monthly_price: Number.MAX_SAFE_INTEGER,
|
||||
currency: 'usd'
|
||||
};
|
||||
|
||||
await agent
|
||||
|
@ -15,13 +15,12 @@ Object {
|
||||
"tiers": Array [
|
||||
Object {
|
||||
"active": true,
|
||||
"benefits": null,
|
||||
"benefits": Array [],
|
||||
"created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}/,
|
||||
"description": null,
|
||||
"id": StringMatching /\\[a-f0-9\\]\\{24\\}/,
|
||||
"name": "Free",
|
||||
"slug": "free",
|
||||
"stripe_prices": null,
|
||||
"type": "free",
|
||||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}/,
|
||||
"visibility": "public",
|
||||
@ -29,17 +28,19 @@ Object {
|
||||
},
|
||||
Object {
|
||||
"active": true,
|
||||
"benefits": null,
|
||||
"benefits": Array [],
|
||||
"created_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}/,
|
||||
"currency": "GBP",
|
||||
"description": null,
|
||||
"id": StringMatching /\\[a-f0-9\\]\\{24\\}/,
|
||||
"monthly_price": 1200,
|
||||
"name": "Default Product",
|
||||
"slug": "default-product",
|
||||
"stripe_prices": null,
|
||||
"type": "paid",
|
||||
"updated_at": StringMatching /\\\\d\\{4\\}-\\\\d\\{2\\}-\\\\d\\{2\\}/,
|
||||
"visibility": "public",
|
||||
"welcome_page_url": "/welcome-paid",
|
||||
"yearly_price": 12000,
|
||||
},
|
||||
],
|
||||
}
|
||||
@ -49,7 +50,7 @@ exports[`Tiers Content API Can request only active tiers 2: [headers] 1`] = `
|
||||
Object {
|
||||
"access-control-allow-origin": "*",
|
||||
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
|
||||
"content-length": "687",
|
||||
"content-length": "700",
|
||||
"content-type": "application/json; charset=utf-8",
|
||||
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
|
||||
"vary": "Accept-Encoding",
|
||||
|
@ -10,7 +10,7 @@ describe('Tiers Content API', function () {
|
||||
});
|
||||
|
||||
it('Can request only active tiers', async function () {
|
||||
await agent.get('/tiers/')
|
||||
await agent.get('/tiers/?include=monthly_price,yearly_price,benefits')
|
||||
.expectStatus(200)
|
||||
.matchHeaderSnapshot({
|
||||
etag: matchers.anyEtag
|
||||
|
140
yarn.lock
140
yarn.lock
@ -1430,10 +1430,10 @@
|
||||
dependencies:
|
||||
"@tryghost/errors" "^1.2.1"
|
||||
|
||||
"@tryghost/admin-api-schema@3.2.3":
|
||||
version "3.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/admin-api-schema/-/admin-api-schema-3.2.3.tgz#0feae738e7240e38adeb354cd56d0cce3df2ecaa"
|
||||
integrity sha512-+p4WFSyTiWO2Ift9Cg98Z8xJPd28A1p+ut/FzzvnIIjHhYPZK8KNKOOsIQkb+HU5motjEb0QvVlMZQWMD4Ib7A==
|
||||
"@tryghost/admin-api-schema@4.0.0":
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/admin-api-schema/-/admin-api-schema-4.0.0.tgz#97e528931fab8478d00b6b91e7e3d4a2b4c4c597"
|
||||
integrity sha512-Yo4nV34aZY8M92dVMp+zEI2ZuHyFDcDHHvQ9yY1ZEOKhqkdKw6DxdR2HcAkQi/PSnM99N7CWk5WBKe9Vnm8+jA==
|
||||
dependencies:
|
||||
"@tryghost/errors" "^1.0.0"
|
||||
ajv "^6.12.6"
|
||||
@ -1612,10 +1612,10 @@
|
||||
"@tryghost/root-utils" "^0.3.14"
|
||||
debug "^4.3.1"
|
||||
|
||||
"@tryghost/domain-events@0.1.13", "@tryghost/domain-events@^0.1.13":
|
||||
version "0.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/domain-events/-/domain-events-0.1.13.tgz#a668cf39e808b51d6a5bc4f0f4e9b681047a4c59"
|
||||
integrity sha512-0L1UNk4NROfQTqXnBo/LSU2QIUq1jnwGUBLDhkRYeBZ1qXw6wzdmvTt4mTc8J9E4BzG6rHr0ZSwrshwDpS7tSw==
|
||||
"@tryghost/domain-events@0.1.14", "@tryghost/domain-events@^0.1.14":
|
||||
version "0.1.14"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/domain-events/-/domain-events-0.1.14.tgz#a0206b21981d8e3337dfc0ed56df182d6e7188b3"
|
||||
integrity sha512-SoJMvrwBXFDciQwjobpuZae0AQ/pVB+RgSj+QEuKNqg6V6CAhNlLrI1rAhkHtXkuKaLDDzH8tKWQEeeApXdBng==
|
||||
|
||||
"@tryghost/elasticsearch-bunyan@0.1.1":
|
||||
version "0.1.1"
|
||||
@ -1833,7 +1833,7 @@
|
||||
json-stringify-safe "^5.0.1"
|
||||
lodash "^4.17.21"
|
||||
|
||||
"@tryghost/magic-link@1.0.25", "@tryghost/magic-link@^1.0.25":
|
||||
"@tryghost/magic-link@1.0.25":
|
||||
version "1.0.25"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/magic-link/-/magic-link-1.0.25.tgz#26e744725b2b745c56967d3b784351029affc093"
|
||||
integrity sha512-nGntJIpZYaAiajVUez51cmKoawAHa/1SQtGokcXpFl/S/QWMUjue2kDOcMdAs5GOyVlFGeCQQfzabTBhO1jWFg==
|
||||
@ -1842,46 +1842,60 @@
|
||||
jsonwebtoken "^8.5.1"
|
||||
lodash "^4.17.15"
|
||||
|
||||
"@tryghost/member-analytics-service@^0.1.15":
|
||||
version "0.1.15"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/member-analytics-service/-/member-analytics-service-0.1.15.tgz#e08711e0119369d88fb0f3677493ba4d9d96ae63"
|
||||
integrity sha512-xxNq/d9UB1OgAPGscg+Yk9mDaZjyEzCFINQ4OwJeutisVvEDKX+h9cYOqhrubqswvrzEA6I9OszVnb7Wi7qmiQ==
|
||||
"@tryghost/magic-link@^1.0.26":
|
||||
version "1.0.26"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/magic-link/-/magic-link-1.0.26.tgz#9c87edfe52abc3c628c4052078c5f485396a2fb3"
|
||||
integrity sha512-Rt/a6VDRzPkdbDQuh2Ah3sYTVOlG2kBcfPl5EpCeRqI7KF/BlsqLgRhDW+aewVhuquNWtjqDKdz+glZbmcJczg==
|
||||
dependencies:
|
||||
"@tryghost/domain-events" "^0.1.13"
|
||||
bluebird "^3.5.5"
|
||||
jsonwebtoken "^8.5.1"
|
||||
lodash "^4.17.15"
|
||||
|
||||
"@tryghost/member-analytics-service@^0.1.16":
|
||||
version "0.1.16"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/member-analytics-service/-/member-analytics-service-0.1.16.tgz#b013aed7521cd392a2228e5c6c999564c02b1aa7"
|
||||
integrity sha512-aWS4KfKKDm+1j6+Y2b4jY2sKNnPg5EqVJ/zNswgtC3LCvEDyUuIEnCn4cWC9HeFwalbOuz1303Z+Evyy2Inz4A==
|
||||
dependencies:
|
||||
"@tryghost/domain-events" "^0.1.14"
|
||||
"@tryghost/errors" "^1.0.0"
|
||||
"@tryghost/member-events" "^0.4.5"
|
||||
"@tryghost/member-events" "^0.4.6"
|
||||
"@tryghost/tpl" "^0.1.4"
|
||||
bson-objectid "^2.0.1"
|
||||
|
||||
"@tryghost/member-events@0.4.5", "@tryghost/member-events@^0.4.5":
|
||||
"@tryghost/member-events@0.4.5":
|
||||
version "0.4.5"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/member-events/-/member-events-0.4.5.tgz#b6929c2a13bf24be5382015975fc3db7f01eede4"
|
||||
integrity sha512-SOfoHY7ib9jVqtNqXjv6AXHh3hckcce+7RzevXbqD0a4jUyB8Vc9RxJ8vTIJxq5BYxbpecJZulu9rLNuykno2A==
|
||||
|
||||
"@tryghost/members-analytics-ingress@^0.1.16":
|
||||
version "0.1.16"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-analytics-ingress/-/members-analytics-ingress-0.1.16.tgz#355f11b9fcb229d9e23b52a827ea09758804a703"
|
||||
integrity sha512-95wS9yPnQ/LCPKhZcU9T3ZSEB+VpMIO5Rtf3eMUQaDNRZT6LpsRaoxPmFXdcQiApBpNOLYTAsgklr3JgIxGfZw==
|
||||
dependencies:
|
||||
"@tryghost/domain-events" "^0.1.13"
|
||||
"@tryghost/member-events" "^0.4.5"
|
||||
"@tryghost/member-events@^0.4.6":
|
||||
version "0.4.6"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/member-events/-/member-events-0.4.6.tgz#7abe95d38f88c344b2c85249f9b6083c935d6f49"
|
||||
integrity sha512-wDg9NGsymYvJDZfbv6xmAV6HA7LMs3P01aYUTXwRIAqzDJfyuXjgwmJr0RRNn0yKJ1B1gDq7lps0+Hb3Oxm4Vw==
|
||||
|
||||
"@tryghost/members-api@7.0.2":
|
||||
version "7.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-api/-/members-api-7.0.2.tgz#e920f79f969854b2a0630732bfa20470679625cd"
|
||||
integrity sha512-ggpfYzcStmJPXnbZ1uwZapMsATUCjf4dEnDFxp6a+nFTPlZ8uUniPHaJfV/5/gxScP+TgNGMwSgYXyCVofE1fw==
|
||||
"@tryghost/members-analytics-ingress@^0.1.17":
|
||||
version "0.1.17"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-analytics-ingress/-/members-analytics-ingress-0.1.17.tgz#92b4162b24c2fcfbc89ccaa37069814433ee6ac5"
|
||||
integrity sha512-5ACFKOg5TXjYh3P4pmSW0I68CNCaplzhp0bP8KNS3aLFChoTRkyVsAr4EKKInWImgAHw4Ug3O8GLrIljrQxp4g==
|
||||
dependencies:
|
||||
"@tryghost/domain-events" "^0.1.14"
|
||||
"@tryghost/member-events" "^0.4.6"
|
||||
|
||||
"@tryghost/members-api@8.0.0":
|
||||
version "8.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-api/-/members-api-8.0.0.tgz#490e357cf338ae262c7294cfeb318b1fa22b4de3"
|
||||
integrity sha512-Cv9uzkbmtwaZk7YOTgzTybTVzfZT2z2b+E7F5Mm0UwsVMAAbNbG1iOOAIso0E/QrDfcsENe28QVL+Xk8YW/Ssw==
|
||||
dependencies:
|
||||
"@nexes/nql" "^0.6.0"
|
||||
"@tryghost/debug" "^0.1.2"
|
||||
"@tryghost/domain-events" "^0.1.13"
|
||||
"@tryghost/domain-events" "^0.1.14"
|
||||
"@tryghost/errors" "^1.1.1"
|
||||
"@tryghost/logging" "^2.0.0"
|
||||
"@tryghost/magic-link" "^1.0.25"
|
||||
"@tryghost/member-analytics-service" "^0.1.15"
|
||||
"@tryghost/member-events" "^0.4.5"
|
||||
"@tryghost/members-analytics-ingress" "^0.1.16"
|
||||
"@tryghost/members-payments" "^0.3.5"
|
||||
"@tryghost/members-stripe-service" "^0.10.4"
|
||||
"@tryghost/magic-link" "^1.0.26"
|
||||
"@tryghost/member-analytics-service" "^0.1.16"
|
||||
"@tryghost/member-events" "^0.4.6"
|
||||
"@tryghost/members-analytics-ingress" "^0.1.17"
|
||||
"@tryghost/members-payments" "^0.3.6"
|
||||
"@tryghost/members-stripe-service" "^0.10.5"
|
||||
"@tryghost/tpl" "^0.1.2"
|
||||
"@types/jsonwebtoken" "^8.5.1"
|
||||
bluebird "^3.5.4"
|
||||
@ -1905,13 +1919,13 @@
|
||||
papaparse "^5.3.2"
|
||||
pump "^3.0.0"
|
||||
|
||||
"@tryghost/members-events-service@0.4.2":
|
||||
version "0.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-events-service/-/members-events-service-0.4.2.tgz#434db802e9fc811497b9685198655cd414306a80"
|
||||
integrity sha512-4vwXFcC3GufyEvolkaK89hsQTkIVhcbZxeFTTwntW9vBJN4E8b8Ip3axNY6vzA+BqrPRSAN5cG05fP93cAXOYw==
|
||||
"@tryghost/members-events-service@0.4.3":
|
||||
version "0.4.3"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-events-service/-/members-events-service-0.4.3.tgz#2fa3699ec6728cae77e12d8260648593323e9c09"
|
||||
integrity sha512-aLEnISCo8sl/z+RLxw1jj+KuqI72+ACfkadnRIdHe5Jn6CGbp21L0SdnKU/6NQ7KbuZZfYxYdPnJmHpqm1e4rw==
|
||||
dependencies:
|
||||
"@tryghost/domain-events" "^0.1.13"
|
||||
"@tryghost/member-events" "^0.4.5"
|
||||
"@tryghost/domain-events" "^0.1.14"
|
||||
"@tryghost/member-events" "^0.4.6"
|
||||
moment-timezone "^0.5.34"
|
||||
|
||||
"@tryghost/members-importer@0.5.13":
|
||||
@ -1924,7 +1938,7 @@
|
||||
"@tryghost/tpl" "^0.1.3"
|
||||
moment-timezone "^0.5.23"
|
||||
|
||||
"@tryghost/members-offers@0.11.5", "@tryghost/members-offers@^0.11.5":
|
||||
"@tryghost/members-offers@0.11.5":
|
||||
version "0.11.5"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-offers/-/members-offers-0.11.5.tgz#76da1804ee2e3ee4f0de8e606f41652907c7ddb9"
|
||||
integrity sha512-lO8Kc4cFrYib0ukhVXFr5i5deAQ2mXYKTWEpRkjjo+qIXPKVwXKMSLd8I7nnlOuCNQfth9yKi29Q9QqUr988cw==
|
||||
@ -1932,13 +1946,21 @@
|
||||
"@nexes/mongo-utils" "^0.3.1"
|
||||
"@tryghost/string" "^0.1.20"
|
||||
|
||||
"@tryghost/members-payments@^0.3.5":
|
||||
version "0.3.5"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-payments/-/members-payments-0.3.5.tgz#8144c234e9c99c872cbe86dd9a03d21fac0f159c"
|
||||
integrity sha512-NC1biSgbdaM/yrvq0TJZvRJsHqve5bgbuc1lUM8zt/wyDV6GPDTtTYF5sHUvKZDlz00MaM9NYEsmNScSFUid3g==
|
||||
"@tryghost/members-offers@^0.11.6":
|
||||
version "0.11.6"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-offers/-/members-offers-0.11.6.tgz#b687aef63f7605b1118faf7f4a298f42eb5c60bf"
|
||||
integrity sha512-nKYinmpDOiJG/UGfaS5kjRDFgdTmrmkTTvOcEF1l50SAvpwPNInJ+0I5xer063OB91KsHbxmnzq8kNWvsqSZrA==
|
||||
dependencies:
|
||||
"@tryghost/domain-events" "^0.1.13"
|
||||
"@tryghost/members-offers" "^0.11.5"
|
||||
"@nexes/mongo-utils" "^0.3.1"
|
||||
"@tryghost/string" "^0.1.20"
|
||||
|
||||
"@tryghost/members-payments@^0.3.6":
|
||||
version "0.3.6"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-payments/-/members-payments-0.3.6.tgz#fbc92746d56be9b21f92e96aeaecd0d53b954f38"
|
||||
integrity sha512-KR3g+UDxzA3i6MCxw/zrwFNB6q1ixYnvGI7Xe3GMlT1kik2R35r8hH+l5wYnNVP1E1TF1qpTEZJ00EeDSvJ3SQ==
|
||||
dependencies:
|
||||
"@tryghost/domain-events" "^0.1.14"
|
||||
"@tryghost/members-offers" "^0.11.6"
|
||||
|
||||
"@tryghost/members-ssr@1.0.27":
|
||||
version "1.0.27"
|
||||
@ -1953,16 +1975,16 @@
|
||||
jsonwebtoken "^8.5.1"
|
||||
lodash "^4.17.11"
|
||||
|
||||
"@tryghost/members-stripe-service@0.10.4", "@tryghost/members-stripe-service@^0.10.4":
|
||||
version "0.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-stripe-service/-/members-stripe-service-0.10.4.tgz#6b3740a99c2136d58d3c17222474c0326d8055bb"
|
||||
integrity sha512-QFQcvOtLxDmh+XnEpZN226FGQugV99TTUV4LbeRGkcnV+PceZkOuZSbpkYboQzG7PGO2olc5pAQxeJercHrn+A==
|
||||
"@tryghost/members-stripe-service@0.10.5", "@tryghost/members-stripe-service@^0.10.5":
|
||||
version "0.10.5"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-stripe-service/-/members-stripe-service-0.10.5.tgz#17adc845a0c279c14fa0a2d6fc920ce8cdda0c6c"
|
||||
integrity sha512-MOVquZaZ+WfDVY6DjJUrAyVKQy7cTWXcv8mWMnAcGL+aE526XPX3hrvA8BRilKjwN7hVNI9kBnxoALPsqZHHCw==
|
||||
dependencies:
|
||||
"@tryghost/debug" "^0.1.4"
|
||||
"@tryghost/domain-events" "^0.1.13"
|
||||
"@tryghost/domain-events" "^0.1.14"
|
||||
"@tryghost/errors" "^1.2.5"
|
||||
"@tryghost/logging" "^2.0.5"
|
||||
"@tryghost/member-events" "^0.4.5"
|
||||
"@tryghost/member-events" "^0.4.6"
|
||||
leaky-bucket "^2.2.0"
|
||||
lodash "^4.17.21"
|
||||
stripe "^8.174.0"
|
||||
@ -2234,13 +2256,13 @@
|
||||
moment-timezone "^0.5.23"
|
||||
validator "7.2.0"
|
||||
|
||||
"@tryghost/verification-trigger@0.2.4":
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/verification-trigger/-/verification-trigger-0.2.4.tgz#c58ca70f9fdee1675add9e05039662c4c5f0824c"
|
||||
integrity sha512-94R0zNDFFz73E25ZpY28Fe8lT7BZ2HZ4uRD+9YHUXdSyV+L2Kf1kCteBELjAc7b8gi74CqScm+/dikDRum2pJA==
|
||||
"@tryghost/verification-trigger@0.2.5":
|
||||
version "0.2.5"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/verification-trigger/-/verification-trigger-0.2.5.tgz#185906ef690ece00264a86ffba2d8809a3e19ad4"
|
||||
integrity sha512-Zt89BuSs54l2epzyrmmE1Ra+NZt/WYMDdTNW0VRhOYBrvDFPPCY0Ks0gVUPSfuHlnSmqBwG+KWVQanwbEi6J9Q==
|
||||
dependencies:
|
||||
"@tryghost/domain-events" "^0.1.13"
|
||||
"@tryghost/member-events" "^0.4.5"
|
||||
"@tryghost/domain-events" "^0.1.14"
|
||||
"@tryghost/member-events" "^0.4.6"
|
||||
|
||||
"@tryghost/version-notifications-data-service@^0.2.0":
|
||||
version "0.2.0"
|
||||
|
Loading…
Reference in New Issue
Block a user