ghost 5.97.3 → 5.98.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/tryghost-adapter-cache-memory-ttl-5.98.0.tgz +0 -0
- package/components/tryghost-adapter-cache-redis-5.98.0.tgz +0 -0
- package/components/tryghost-adapter-manager-5.98.0.tgz +0 -0
- package/components/tryghost-announcement-bar-settings-5.98.0.tgz +0 -0
- package/components/{tryghost-api-framework-5.97.3.tgz → tryghost-api-framework-5.98.0.tgz} +0 -0
- package/components/tryghost-api-version-compatibility-service-5.98.0.tgz +0 -0
- package/components/tryghost-audience-feedback-5.98.0.tgz +0 -0
- package/components/tryghost-bookshelf-repository-5.98.0.tgz +0 -0
- package/components/tryghost-bootstrap-socket-5.98.0.tgz +0 -0
- package/components/tryghost-collections-5.98.0.tgz +0 -0
- package/components/tryghost-constants-5.98.0.tgz +0 -0
- package/components/tryghost-custom-fonts-5.98.0.tgz +0 -0
- package/components/tryghost-custom-theme-settings-service-5.98.0.tgz +0 -0
- package/components/{tryghost-data-generator-5.97.3.tgz → tryghost-data-generator-5.98.0.tgz} +0 -0
- package/components/tryghost-domain-events-5.98.0.tgz +0 -0
- package/components/tryghost-donations-5.98.0.tgz +0 -0
- package/components/tryghost-dynamic-routing-events-5.98.0.tgz +0 -0
- package/components/tryghost-email-addresses-5.98.0.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.98.0.tgz +0 -0
- package/components/tryghost-email-analytics-service-5.98.0.tgz +0 -0
- package/components/tryghost-email-content-generator-5.98.0.tgz +0 -0
- package/components/tryghost-email-events-5.98.0.tgz +0 -0
- package/components/{tryghost-email-service-5.97.3.tgz → tryghost-email-service-5.98.0.tgz} +0 -0
- package/components/tryghost-email-suppression-list-5.98.0.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.98.0.tgz +0 -0
- package/components/tryghost-external-media-inliner-5.98.0.tgz +0 -0
- package/components/tryghost-extract-api-key-5.98.0.tgz +0 -0
- package/components/tryghost-ghost-5.98.0.tgz +0 -0
- package/components/{tryghost-html-to-plaintext-5.97.3.tgz → tryghost-html-to-plaintext-5.98.0.tgz} +0 -0
- package/components/tryghost-i18n-5.98.0.tgz +0 -0
- package/components/tryghost-importer-handler-content-files-5.98.0.tgz +0 -0
- package/components/{tryghost-importer-revue-5.97.3.tgz → tryghost-importer-revue-5.98.0.tgz} +0 -0
- package/components/tryghost-in-memory-repository-5.98.0.tgz +0 -0
- package/components/{tryghost-job-manager-5.97.3.tgz → tryghost-job-manager-5.98.0.tgz} +0 -0
- package/components/tryghost-link-redirects-5.98.0.tgz +0 -0
- package/components/tryghost-link-replacer-5.98.0.tgz +0 -0
- package/components/{tryghost-link-tracking-5.97.3.tgz → tryghost-link-tracking-5.98.0.tgz} +0 -0
- package/components/{tryghost-magic-link-5.97.3.tgz → tryghost-magic-link-5.98.0.tgz} +0 -0
- package/components/{tryghost-mail-events-5.97.3.tgz → tryghost-mail-events-5.98.0.tgz} +0 -0
- package/components/tryghost-mailgun-client-5.98.0.tgz +0 -0
- package/components/tryghost-member-attribution-5.98.0.tgz +0 -0
- package/components/{tryghost-member-events-5.97.3.tgz → tryghost-member-events-5.98.0.tgz} +0 -0
- package/components/{tryghost-members-api-5.97.3.tgz → tryghost-members-api-5.98.0.tgz} +0 -0
- package/components/{tryghost-members-csv-5.97.3.tgz → tryghost-members-csv-5.98.0.tgz} +0 -0
- package/components/tryghost-members-events-service-5.98.0.tgz +0 -0
- package/components/{tryghost-members-importer-5.97.3.tgz → tryghost-members-importer-5.98.0.tgz} +0 -0
- package/components/tryghost-members-offers-5.98.0.tgz +0 -0
- package/components/tryghost-members-payments-5.98.0.tgz +0 -0
- package/components/tryghost-members-ssr-5.98.0.tgz +0 -0
- package/components/{tryghost-members-stripe-service-5.97.3.tgz → tryghost-members-stripe-service-5.98.0.tgz} +0 -0
- package/components/tryghost-mentions-email-report-5.98.0.tgz +0 -0
- package/components/tryghost-metrics-server-5.98.0.tgz +0 -0
- package/components/tryghost-milestones-5.98.0.tgz +0 -0
- package/components/tryghost-minifier-5.98.0.tgz +0 -0
- package/components/tryghost-model-to-domain-event-interceptor-5.98.0.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.98.0.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.98.0.tgz +0 -0
- package/components/tryghost-mw-error-handler-5.98.0.tgz +0 -0
- package/components/tryghost-mw-session-from-token-5.98.0.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.98.0.tgz +0 -0
- package/components/tryghost-mw-version-match-5.98.0.tgz +0 -0
- package/components/tryghost-mw-vhost-5.98.0.tgz +0 -0
- package/components/tryghost-nql-filter-expansions-5.98.0.tgz +0 -0
- package/components/tryghost-oembed-service-5.98.0.tgz +0 -0
- package/components/tryghost-package-json-5.98.0.tgz +0 -0
- package/components/tryghost-post-events-5.98.0.tgz +0 -0
- package/components/tryghost-post-revisions-5.98.0.tgz +0 -0
- package/components/{tryghost-posts-service-5.97.3.tgz → tryghost-posts-service-5.98.0.tgz} +0 -0
- package/components/tryghost-recommendations-5.98.0.tgz +0 -0
- package/components/tryghost-referrers-5.98.0.tgz +0 -0
- package/components/{tryghost-security-5.97.3.tgz → tryghost-security-5.98.0.tgz} +0 -0
- package/components/tryghost-session-service-5.98.0.tgz +0 -0
- package/components/tryghost-settings-path-manager-5.98.0.tgz +0 -0
- package/components/tryghost-slack-notifications-5.98.0.tgz +0 -0
- package/components/{tryghost-staff-service-5.97.3.tgz → tryghost-staff-service-5.98.0.tgz} +0 -0
- package/components/{tryghost-stats-service-5.97.3.tgz → tryghost-stats-service-5.98.0.tgz} +0 -0
- package/components/{tryghost-tiers-5.97.3.tgz → tryghost-tiers-5.98.0.tgz} +0 -0
- package/components/tryghost-update-check-service-5.98.0.tgz +0 -0
- package/components/tryghost-verification-trigger-5.98.0.tgz +0 -0
- package/components/{tryghost-version-notifications-data-service-5.97.3.tgz → tryghost-version-notifications-data-service-5.98.0.tgz} +0 -0
- package/components/tryghost-webmentions-5.98.0.tgz +0 -0
- package/content/themes/source/assets/built/screen.css +1 -1
- package/content/themes/source/assets/built/screen.css.map +1 -1
- package/content/themes/source/assets/css/screen.css +3 -2
- package/content/themes/source/package.json +2 -2
- package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +3 -3
- package/core/built/admin/assets/admin-x-activitypub/{index-ce1044b4.mjs → index-d0087e93.mjs} +4049 -3812
- package/core/built/admin/assets/admin-x-activitypub/modals-aaaeb2ed.mjs +218 -0
- package/core/built/admin/assets/admin-x-demo/admin-x-demo.js +2 -2
- package/core/built/admin/assets/admin-x-demo/{index-4e95bd22.mjs → index-ec1c4705.mjs} +1516 -1510
- package/core/built/admin/assets/admin-x-demo/{modals-1dd517c9.mjs → modals-3bfb50e8.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{CodeEditorView-56b3751e.mjs → CodeEditorView-72579105.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +3 -3
- package/core/built/admin/assets/admin-x-settings/{index-a57b83d6.mjs → index-253cc6ec.mjs} +6929 -6721
- package/core/built/admin/assets/admin-x-settings/{index-ae6dfa81.mjs → index-c8b38805.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{modals-8dbfe675.mjs → modals-e1b17636.mjs} +7277 -7295
- package/core/built/admin/assets/{chunk.524.b095de8463657e362a7a.js → chunk.524.3ed488a4afaa8dc49de8.js} +5 -5
- package/core/built/admin/assets/{chunk.582.32fd06c8434d4db3f0a8.js → chunk.582.4832ffb3f13ae2b00734.js} +6 -6
- package/core/built/admin/assets/{ghost-b7702081322ac2a966ad205b1d07416c.js → ghost-7a6db87f125f7ea41beb7a88d500e8dc.js} +173 -144
- package/core/built/admin/index.html +3 -3
- package/core/frontend/apps/amp/lib/views/amp.hbs +1 -1
- package/core/frontend/helpers/body_class.js +32 -0
- package/core/frontend/helpers/content_api_url.js +28 -0
- package/core/frontend/helpers/ghost_head.js +32 -3
- package/core/frontend/meta/schema.js +1 -0
- package/core/frontend/services/theme-engine/preview.js +3 -1
- package/core/server/api/endpoints/session.js +12 -2
- package/core/server/data/migrations/versions/5.97/2024-10-09-14-04-10-add-session-verification-field.js +25 -0
- package/core/server/models/comment.js +25 -0
- package/core/server/services/auth/session/SessionStore.js +0 -6
- package/core/server/services/auth/session/index.js +22 -1
- package/core/server/services/auth/session/middleware.js +55 -6
- package/core/server/services/url/Queue.js +14 -13
- package/core/server/services/url/Resources.js +4 -3
- package/core/server/services/url/UrlGenerator.js +4 -8
- package/core/server/services/url/UrlService.js +2 -3
- package/core/server/services/url/Urls.js +3 -6
- package/core/server/web/api/endpoints/admin/routes.js +2 -0
- package/core/server/web/shared/middleware/api/spam-prevention.js +62 -0
- package/core/server/web/shared/middleware/brute.js +22 -0
- package/core/shared/config/defaults.json +15 -3
- package/core/shared/config/env/config.testing-browser.json +12 -0
- package/core/shared/config/env/config.testing-mysql.json +12 -0
- package/core/shared/config/env/config.testing.json +12 -0
- package/core/shared/labs.js +3 -1
- package/nodemon.json +3 -0
- package/package.json +160 -154
- package/yarn.lock +191 -103
- package/components/tryghost-adapter-cache-memory-ttl-5.97.3.tgz +0 -0
- package/components/tryghost-adapter-cache-redis-5.97.3.tgz +0 -0
- package/components/tryghost-adapter-manager-5.97.3.tgz +0 -0
- package/components/tryghost-announcement-bar-settings-5.97.3.tgz +0 -0
- package/components/tryghost-api-version-compatibility-service-5.97.3.tgz +0 -0
- package/components/tryghost-audience-feedback-5.97.3.tgz +0 -0
- package/components/tryghost-bookshelf-repository-5.97.3.tgz +0 -0
- package/components/tryghost-bootstrap-socket-5.97.3.tgz +0 -0
- package/components/tryghost-collections-5.97.3.tgz +0 -0
- package/components/tryghost-constants-5.97.3.tgz +0 -0
- package/components/tryghost-custom-theme-settings-service-5.97.3.tgz +0 -0
- package/components/tryghost-domain-events-5.97.3.tgz +0 -0
- package/components/tryghost-donations-5.97.3.tgz +0 -0
- package/components/tryghost-dynamic-routing-events-5.97.3.tgz +0 -0
- package/components/tryghost-email-addresses-5.97.3.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.97.3.tgz +0 -0
- package/components/tryghost-email-analytics-service-5.97.3.tgz +0 -0
- package/components/tryghost-email-content-generator-5.97.3.tgz +0 -0
- package/components/tryghost-email-events-5.97.3.tgz +0 -0
- package/components/tryghost-email-suppression-list-5.97.3.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.97.3.tgz +0 -0
- package/components/tryghost-external-media-inliner-5.97.3.tgz +0 -0
- package/components/tryghost-extract-api-key-5.97.3.tgz +0 -0
- package/components/tryghost-ghost-5.97.3.tgz +0 -0
- package/components/tryghost-i18n-5.97.3.tgz +0 -0
- package/components/tryghost-importer-handler-content-files-5.97.3.tgz +0 -0
- package/components/tryghost-in-memory-repository-5.97.3.tgz +0 -0
- package/components/tryghost-link-redirects-5.97.3.tgz +0 -0
- package/components/tryghost-link-replacer-5.97.3.tgz +0 -0
- package/components/tryghost-mailgun-client-5.97.3.tgz +0 -0
- package/components/tryghost-member-attribution-5.97.3.tgz +0 -0
- package/components/tryghost-members-events-service-5.97.3.tgz +0 -0
- package/components/tryghost-members-offers-5.97.3.tgz +0 -0
- package/components/tryghost-members-payments-5.97.3.tgz +0 -0
- package/components/tryghost-members-ssr-5.97.3.tgz +0 -0
- package/components/tryghost-mentions-email-report-5.97.3.tgz +0 -0
- package/components/tryghost-metrics-server-5.97.3.tgz +0 -0
- package/components/tryghost-milestones-5.97.3.tgz +0 -0
- package/components/tryghost-minifier-5.97.3.tgz +0 -0
- package/components/tryghost-model-to-domain-event-interceptor-5.97.3.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.97.3.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.97.3.tgz +0 -0
- package/components/tryghost-mw-error-handler-5.97.3.tgz +0 -0
- package/components/tryghost-mw-session-from-token-5.97.3.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.97.3.tgz +0 -0
- package/components/tryghost-mw-version-match-5.97.3.tgz +0 -0
- package/components/tryghost-mw-vhost-5.97.3.tgz +0 -0
- package/components/tryghost-nql-filter-expansions-5.97.3.tgz +0 -0
- package/components/tryghost-oembed-service-5.97.3.tgz +0 -0
- package/components/tryghost-package-json-5.97.3.tgz +0 -0
- package/components/tryghost-post-events-5.97.3.tgz +0 -0
- package/components/tryghost-post-revisions-5.97.3.tgz +0 -0
- package/components/tryghost-recommendations-5.97.3.tgz +0 -0
- package/components/tryghost-referrers-5.97.3.tgz +0 -0
- package/components/tryghost-session-service-5.97.3.tgz +0 -0
- package/components/tryghost-settings-path-manager-5.97.3.tgz +0 -0
- package/components/tryghost-slack-notifications-5.97.3.tgz +0 -0
- package/components/tryghost-update-check-service-5.97.3.tgz +0 -0
- package/components/tryghost-verification-trigger-5.97.3.tgz +0 -0
- package/components/tryghost-webmentions-5.97.3.tgz +0 -0
- package/core/built/admin/assets/admin-x-activitypub/modals-35dd1224.mjs +0 -250
|
@@ -29,6 +29,8 @@ let spamGlobalBlock = spam.global_block || {};
|
|
|
29
29
|
let spamGlobalReset = spam.global_reset || {};
|
|
30
30
|
let spamUserReset = spam.user_reset || {};
|
|
31
31
|
let spamUserLogin = spam.user_login || {};
|
|
32
|
+
let spamSendVerificationCode = spam.send_verification_code || {};
|
|
33
|
+
let spamUserVerification = spam.user_verification || {};
|
|
32
34
|
let spamMemberLogin = spam.member_login || {};
|
|
33
35
|
let spamContentApiKey = spam.content_api_key || {};
|
|
34
36
|
let spamWebmentionsBlock = spam.webmentions_block || {};
|
|
@@ -44,6 +46,8 @@ let userLoginInstance;
|
|
|
44
46
|
let membersAuthInstance;
|
|
45
47
|
let membersAuthEnumerationInstance;
|
|
46
48
|
let userResetInstance;
|
|
49
|
+
let sendVerificationCodeInstance;
|
|
50
|
+
let userVerificationInstance;
|
|
47
51
|
let contentApiKeyInstance;
|
|
48
52
|
let emailPreviewBlockInstance;
|
|
49
53
|
|
|
@@ -308,6 +312,58 @@ const userReset = function userReset() {
|
|
|
308
312
|
return userResetInstance;
|
|
309
313
|
};
|
|
310
314
|
|
|
315
|
+
const userVerification = function userVerification() {
|
|
316
|
+
const ExpressBrute = require('express-brute');
|
|
317
|
+
const BruteKnex = require('brute-knex');
|
|
318
|
+
const db = require('../../../../data/db');
|
|
319
|
+
|
|
320
|
+
store = store || new BruteKnex({
|
|
321
|
+
tablename: 'brute',
|
|
322
|
+
createTable: false,
|
|
323
|
+
knex: db.knex
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
userVerificationInstance = userVerificationInstance || new ExpressBrute(store,
|
|
327
|
+
extend({
|
|
328
|
+
attachResetToRequest: true,
|
|
329
|
+
failCallback(req, res, next) {
|
|
330
|
+
return next(new errors.TooManyRequestsError({
|
|
331
|
+
message: tpl(messages.tooManyAttempts)
|
|
332
|
+
}));
|
|
333
|
+
},
|
|
334
|
+
handleStoreError: handleStoreError
|
|
335
|
+
}, pick(spamUserVerification, spamConfigKeys))
|
|
336
|
+
);
|
|
337
|
+
|
|
338
|
+
return userVerificationInstance;
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
const sendVerificationCode = function sendVerificationCode() {
|
|
342
|
+
const ExpressBrute = require('express-brute');
|
|
343
|
+
const BruteKnex = require('brute-knex');
|
|
344
|
+
const db = require('../../../../data/db');
|
|
345
|
+
|
|
346
|
+
store = store || new BruteKnex({
|
|
347
|
+
tablename: 'brute',
|
|
348
|
+
createTable: false,
|
|
349
|
+
knex: db.knex
|
|
350
|
+
});
|
|
351
|
+
|
|
352
|
+
sendVerificationCodeInstance = sendVerificationCodeInstance || new ExpressBrute(store,
|
|
353
|
+
extend({
|
|
354
|
+
attachResetToRequest: true,
|
|
355
|
+
failCallback(req, res, next) {
|
|
356
|
+
return next(new errors.TooManyRequestsError({
|
|
357
|
+
message: tpl(messages.tooManyAttempts)
|
|
358
|
+
}));
|
|
359
|
+
},
|
|
360
|
+
handleStoreError: handleStoreError
|
|
361
|
+
}, pick(spamSendVerificationCode, spamConfigKeys))
|
|
362
|
+
);
|
|
363
|
+
|
|
364
|
+
return sendVerificationCodeInstance;
|
|
365
|
+
};
|
|
366
|
+
|
|
311
367
|
// This protects a private blog from spam attacks. The defaults here allow 10 attempts per IP per hour
|
|
312
368
|
// The endpoint is then locked for an hour
|
|
313
369
|
const privateBlog = () => {
|
|
@@ -372,6 +428,8 @@ module.exports = {
|
|
|
372
428
|
globalBlock: globalBlock,
|
|
373
429
|
globalReset: globalReset,
|
|
374
430
|
userLogin: userLogin,
|
|
431
|
+
sendVerificationCode: sendVerificationCode,
|
|
432
|
+
userVerification: userVerification,
|
|
375
433
|
membersAuth: membersAuth,
|
|
376
434
|
membersAuthEnumeration: membersAuthEnumeration,
|
|
377
435
|
userReset: userReset,
|
|
@@ -389,6 +447,8 @@ module.exports = {
|
|
|
389
447
|
membersAuthInstance = undefined;
|
|
390
448
|
membersAuthEnumerationInstance = undefined;
|
|
391
449
|
userResetInstance = undefined;
|
|
450
|
+
sendVerificationCodeInstance = undefined;
|
|
451
|
+
userVerificationInstance = undefined;
|
|
392
452
|
contentApiKeyInstance = undefined;
|
|
393
453
|
|
|
394
454
|
spam = config.get('spam') || {};
|
|
@@ -397,6 +457,8 @@ module.exports = {
|
|
|
397
457
|
spamGlobalReset = spam.global_reset || {};
|
|
398
458
|
spamUserReset = spam.user_reset || {};
|
|
399
459
|
spamUserLogin = spam.user_login || {};
|
|
460
|
+
spamSendVerificationCode = spam.send_verification_code || {};
|
|
461
|
+
spamUserVerification = spam.user_verification || {};
|
|
400
462
|
spamMemberLogin = spam.member_login || {};
|
|
401
463
|
spamContentApiKey = spam.content_api_key || {};
|
|
402
464
|
}
|
|
@@ -50,6 +50,28 @@ module.exports = {
|
|
|
50
50
|
}
|
|
51
51
|
})(req, res, next);
|
|
52
52
|
},
|
|
53
|
+
/**
|
|
54
|
+
* block per IP
|
|
55
|
+
*/
|
|
56
|
+
sendVerificationCode(req, res, next) {
|
|
57
|
+
return spamPrevention.sendVerificationCode().getMiddleware({
|
|
58
|
+
ignoreIP: false,
|
|
59
|
+
key(_req, _res, _next) {
|
|
60
|
+
return _next('send_verification_code');
|
|
61
|
+
}
|
|
62
|
+
})(req, res, next);
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* block per IP
|
|
66
|
+
*/
|
|
67
|
+
userVerification(req, res, next) {
|
|
68
|
+
return spamPrevention.userVerification().getMiddleware({
|
|
69
|
+
ignoreIP: false,
|
|
70
|
+
key(_req, _res, _next) {
|
|
71
|
+
return _next('user_verification');
|
|
72
|
+
}
|
|
73
|
+
})(req, res, next);
|
|
74
|
+
},
|
|
53
75
|
/**
|
|
54
76
|
* block per ip
|
|
55
77
|
*/
|
|
@@ -73,6 +73,18 @@
|
|
|
73
73
|
"lifetime": 3600,
|
|
74
74
|
"freeRetries": 4
|
|
75
75
|
},
|
|
76
|
+
"user_verification": {
|
|
77
|
+
"minWait": 3600000,
|
|
78
|
+
"maxWait": 3600000,
|
|
79
|
+
"lifetime": 3600,
|
|
80
|
+
"freeRetries": 4
|
|
81
|
+
},
|
|
82
|
+
"send_verification_code": {
|
|
83
|
+
"minWait": 3600000,
|
|
84
|
+
"maxWait": 3600000,
|
|
85
|
+
"lifetime": 3600,
|
|
86
|
+
"freeRetries": 4
|
|
87
|
+
},
|
|
76
88
|
"global_reset": {
|
|
77
89
|
"minWait": 3600000,
|
|
78
90
|
"maxWait": 3600000,
|
|
@@ -185,12 +197,12 @@
|
|
|
185
197
|
},
|
|
186
198
|
"portal": {
|
|
187
199
|
"url": "https://cdn.jsdelivr.net/ghost/portal@~{version}/umd/portal.min.js",
|
|
188
|
-
"version": "2.
|
|
200
|
+
"version": "2.45"
|
|
189
201
|
},
|
|
190
202
|
"sodoSearch": {
|
|
191
203
|
"url": "https://cdn.jsdelivr.net/ghost/sodo-search@~{version}/umd/sodo-search.min.js",
|
|
192
204
|
"styles": "https://cdn.jsdelivr.net/ghost/sodo-search@~{version}/umd/main.css",
|
|
193
|
-
"version": "1.
|
|
205
|
+
"version": "1.4"
|
|
194
206
|
},
|
|
195
207
|
"announcementBar": {
|
|
196
208
|
"url": "https://cdn.jsdelivr.net/ghost/announcement-bar@~{version}/umd/announcement-bar.min.js",
|
|
@@ -198,7 +210,7 @@
|
|
|
198
210
|
},
|
|
199
211
|
"comments": {
|
|
200
212
|
"url": "https://cdn.jsdelivr.net/ghost/comments-ui@~{version}/umd/comments-ui.min.js",
|
|
201
|
-
"version": "0.
|
|
213
|
+
"version": "0.20"
|
|
202
214
|
},
|
|
203
215
|
"signupForm": {
|
|
204
216
|
"url": "https://cdn.jsdelivr.net/ghost/signup-form@~{version}/umd/signup-form.min.js",
|
|
@@ -29,6 +29,18 @@
|
|
|
29
29
|
"lifetime": 3600,
|
|
30
30
|
"freeRetries": 4
|
|
31
31
|
},
|
|
32
|
+
"user_verification": {
|
|
33
|
+
"minWait": 3600000,
|
|
34
|
+
"maxWait": 3600000,
|
|
35
|
+
"lifetime": 3600,
|
|
36
|
+
"freeRetries": 4
|
|
37
|
+
},
|
|
38
|
+
"send_verification_code": {
|
|
39
|
+
"minWait": 3600000,
|
|
40
|
+
"maxWait": 3600000,
|
|
41
|
+
"lifetime": 3600,
|
|
42
|
+
"freeRetries": 4
|
|
43
|
+
},
|
|
32
44
|
"global_reset": {
|
|
33
45
|
"minWait": 3600000,
|
|
34
46
|
"maxWait": 3600000,
|
|
@@ -30,6 +30,18 @@
|
|
|
30
30
|
"lifetime": 3600,
|
|
31
31
|
"freeRetries": 4
|
|
32
32
|
},
|
|
33
|
+
"user_verification": {
|
|
34
|
+
"minWait": 3600000,
|
|
35
|
+
"maxWait": 3600000,
|
|
36
|
+
"lifetime": 3600,
|
|
37
|
+
"freeRetries": 4
|
|
38
|
+
},
|
|
39
|
+
"send_verification_code": {
|
|
40
|
+
"minWait": 3600000,
|
|
41
|
+
"maxWait": 3600000,
|
|
42
|
+
"lifetime": 3600,
|
|
43
|
+
"freeRetries": 4
|
|
44
|
+
},
|
|
33
45
|
"global_reset": {
|
|
34
46
|
"minWait": 3600000,
|
|
35
47
|
"maxWait": 3600000,
|
|
@@ -29,6 +29,18 @@
|
|
|
29
29
|
"lifetime": 3600,
|
|
30
30
|
"freeRetries": 4
|
|
31
31
|
},
|
|
32
|
+
"user_verification": {
|
|
33
|
+
"minWait": 3600000,
|
|
34
|
+
"maxWait": 3600000,
|
|
35
|
+
"lifetime": 3600,
|
|
36
|
+
"freeRetries": 4
|
|
37
|
+
},
|
|
38
|
+
"send_verification_code": {
|
|
39
|
+
"minWait": 3600000,
|
|
40
|
+
"maxWait": 3600000,
|
|
41
|
+
"lifetime": 3600,
|
|
42
|
+
"freeRetries": 4
|
|
43
|
+
},
|
|
32
44
|
"global_reset": {
|
|
33
45
|
"minWait": 3600000,
|
|
34
46
|
"maxWait": 3600000,
|
package/core/shared/labs.js
CHANGED
package/nodemon.json
ADDED