ghost 5.46.1 → 5.47.1
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/MigratorConfig.js +1 -0
- package/components/tryghost-adapter-cache-memory-ttl-5.47.1.tgz +0 -0
- package/components/tryghost-adapter-cache-redis-5.47.1.tgz +0 -0
- package/components/{tryghost-adapter-manager-5.46.1.tgz → tryghost-adapter-manager-5.47.1.tgz} +0 -0
- package/components/{tryghost-announcement-bar-settings-5.46.1.tgz → tryghost-announcement-bar-settings-5.47.1.tgz} +0 -0
- package/components/tryghost-api-framework-5.47.1.tgz +0 -0
- package/components/tryghost-api-version-compatibility-service-5.47.1.tgz +0 -0
- package/components/{tryghost-audience-feedback-5.46.1.tgz → tryghost-audience-feedback-5.47.1.tgz} +0 -0
- package/components/tryghost-bootstrap-socket-5.47.1.tgz +0 -0
- package/components/tryghost-constants-5.47.1.tgz +0 -0
- package/components/tryghost-custom-theme-settings-service-5.47.1.tgz +0 -0
- package/components/tryghost-data-generator-5.47.1.tgz +0 -0
- package/components/{tryghost-domain-events-5.46.1.tgz → tryghost-domain-events-5.47.1.tgz} +0 -0
- package/components/tryghost-dynamic-routing-events-5.47.1.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.47.1.tgz +0 -0
- package/components/tryghost-email-analytics-service-5.47.1.tgz +0 -0
- package/components/tryghost-email-content-generator-5.47.1.tgz +0 -0
- package/components/tryghost-email-events-5.47.1.tgz +0 -0
- package/components/tryghost-email-service-5.47.1.tgz +0 -0
- package/components/{tryghost-email-suppression-list-5.46.1.tgz → tryghost-email-suppression-list-5.47.1.tgz} +0 -0
- package/components/tryghost-event-aware-cache-wrapper-5.47.1.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.47.1.tgz +0 -0
- package/components/tryghost-external-media-inliner-5.47.1.tgz +0 -0
- package/components/tryghost-extract-api-key-5.47.1.tgz +0 -0
- package/components/{tryghost-html-to-plaintext-5.46.1.tgz → tryghost-html-to-plaintext-5.47.1.tgz} +0 -0
- package/components/tryghost-i18n-5.47.1.tgz +0 -0
- package/components/{tryghost-importer-handler-content-files-5.46.1.tgz → tryghost-importer-handler-content-files-5.47.1.tgz} +0 -0
- package/components/tryghost-importer-revue-5.47.1.tgz +0 -0
- package/components/tryghost-in-memory-repository-5.47.1.tgz +0 -0
- package/components/tryghost-job-manager-5.47.1.tgz +0 -0
- package/components/tryghost-link-redirects-5.47.1.tgz +0 -0
- package/components/tryghost-link-replacer-5.47.1.tgz +0 -0
- package/components/tryghost-link-tracking-5.47.1.tgz +0 -0
- package/components/{tryghost-magic-link-5.46.1.tgz → tryghost-magic-link-5.47.1.tgz} +0 -0
- package/components/tryghost-mailgun-client-5.47.1.tgz +0 -0
- package/components/tryghost-member-attribution-5.47.1.tgz +0 -0
- package/components/tryghost-member-events-5.47.1.tgz +0 -0
- package/components/tryghost-members-api-5.47.1.tgz +0 -0
- package/components/tryghost-members-csv-5.47.1.tgz +0 -0
- package/components/tryghost-members-events-service-5.47.1.tgz +0 -0
- package/components/tryghost-members-importer-5.47.1.tgz +0 -0
- package/components/tryghost-members-offers-5.47.1.tgz +0 -0
- package/components/tryghost-members-payments-5.47.1.tgz +0 -0
- package/components/tryghost-members-ssr-5.47.1.tgz +0 -0
- package/components/tryghost-members-stripe-service-5.47.1.tgz +0 -0
- package/components/{tryghost-mentions-email-report-5.46.1.tgz → tryghost-mentions-email-report-5.47.1.tgz} +0 -0
- package/components/tryghost-milestones-5.47.1.tgz +0 -0
- package/components/tryghost-minifier-5.47.1.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.47.1.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.47.1.tgz +0 -0
- package/components/tryghost-mw-error-handler-5.47.1.tgz +0 -0
- package/components/tryghost-mw-session-from-token-5.47.1.tgz +0 -0
- package/components/{tryghost-mw-update-user-last-seen-5.46.1.tgz → tryghost-mw-update-user-last-seen-5.47.1.tgz} +0 -0
- package/components/tryghost-mw-version-match-5.47.1.tgz +0 -0
- package/components/tryghost-mw-vhost-5.47.1.tgz +0 -0
- package/components/tryghost-oembed-service-5.47.1.tgz +0 -0
- package/components/tryghost-package-json-5.47.1.tgz +0 -0
- package/components/tryghost-post-revisions-5.47.1.tgz +0 -0
- package/components/tryghost-posts-service-5.47.1.tgz +0 -0
- package/components/tryghost-referrers-5.47.1.tgz +0 -0
- package/components/{tryghost-security-5.46.1.tgz → tryghost-security-5.47.1.tgz} +0 -0
- package/components/tryghost-session-service-5.47.1.tgz +0 -0
- package/components/tryghost-settings-path-manager-5.47.1.tgz +0 -0
- package/components/{tryghost-slack-notifications-5.46.1.tgz → tryghost-slack-notifications-5.47.1.tgz} +0 -0
- package/components/tryghost-staff-service-5.47.1.tgz +0 -0
- package/components/tryghost-stats-service-5.47.1.tgz +0 -0
- package/components/tryghost-tiers-5.47.1.tgz +0 -0
- package/components/tryghost-update-check-service-5.47.1.tgz +0 -0
- package/components/tryghost-verification-trigger-5.47.1.tgz +0 -0
- package/components/tryghost-version-notifications-data-service-5.47.1.tgz +0 -0
- package/components/{tryghost-webmentions-5.46.1.tgz → tryghost-webmentions-5.47.1.tgz} +0 -0
- package/content/themes/casper/assets/built/global.css +1 -1
- package/content/themes/casper/assets/built/global.css.map +1 -1
- package/content/themes/casper/assets/built/screen.css +1 -1
- package/content/themes/casper/assets/built/screen.css.map +1 -1
- package/content/themes/casper/assets/css/screen.css +18 -2
- package/content/themes/casper/package.json +1 -1
- package/core/boot.js +2 -2
- package/core/built/admin/assets/{chunk.604.e25172fcbbcc8ddcbdec.js → chunk.11.a4f9c30c0891933434bf.js} +4136 -4448
- package/core/built/admin/assets/{chunk.143.0ab429a53bdda025f009.js → chunk.143.70ebfe98c846ee93f854.js} +5 -5
- package/core/built/admin/assets/{chunk.178.3ec92986406c285cdd68.js → chunk.178.e3546b84ecb79aae1772.js} +4 -4
- package/core/built/admin/assets/{ghost-2e3d55ca4212a50f87aba88c26b55945.js → ghost-48e9d3e33a5bb943cd479b941dbfe62e.js} +444 -478
- package/core/built/admin/assets/ghost-a2e163a59a7ec0c8ceb97289113a9994.css +1 -0
- package/core/built/admin/assets/ghost-dark-f2d9fd8b4f7b41e98642a27afdc9b35a.css +1 -0
- package/core/built/admin/assets/{vendor-e3de790ee48087482d42c1686d5fefd9.js → vendor-39356907c39237f12c305e1d3ca46c85.js} +11 -11
- package/core/built/admin/index.html +6 -6
- package/core/frontend/public/ghost.min.css +1 -1
- package/core/frontend/services/admin-auth-assets/index.js +1 -1
- package/core/frontend/services/card-assets/{service.js → CardAssetService.js} +2 -2
- package/core/frontend/services/card-assets/index.js +1 -1
- package/core/frontend/services/comment-counts-assets/index.js +1 -1
- package/core/frontend/services/member-attribution-assets/index.js +1 -1
- package/core/frontend/services/routing/index.js +1 -1
- package/core/frontend/services/sitemap/{page-generator.js → PageMapGenerator.js} +1 -1
- package/core/frontend/services/sitemap/{post-generator.js → PostMapGenerator.js} +1 -1
- package/core/frontend/services/sitemap/{manager.js → SiteMapManager.js} +5 -5
- package/core/frontend/services/sitemap/{tag-generator.js → TagsMapGenerator.js} +1 -1
- package/core/frontend/services/sitemap/{user-generator.js → UserMapGenerator.js} +1 -1
- package/core/frontend/services/sitemap/handler.js +1 -1
- package/core/frontend/services/theme-engine/i18n/{theme-i18n.js → ThemeI18n.js} +1 -1
- package/core/frontend/services/theme-engine/i18n/index.js +1 -1
- package/core/frontend/web/routes.js +1 -1
- package/core/frontend/web/site.js +2 -2
- package/core/server/adapters/cache/Redis.js +1 -0
- package/core/server/adapters/scheduling/post-scheduling/index.js +1 -1
- package/core/server/adapters/scheduling/{SchedulingDefault.js → scheduling-default.js} +1 -1
- package/core/server/adapters/sso/{Default.js → DefaultSSOAdapter.js} +1 -1
- package/core/server/adapters/storage/LocalMediaStorage.js +2 -2
- package/core/server/api/endpoints/authentication.js +7 -3
- package/core/server/api/endpoints/invites.js +2 -2
- package/core/server/api/endpoints/users.js +1 -1
- package/core/server/api/endpoints/utils/serializers/output/members.js +1 -4
- package/core/server/api/endpoints/utils/validators/input/password_reset.js +1 -0
- package/core/server/data/importer/importers/data/{custom-theme-settings.js → CustomThemeSettingsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{newsletters.js → NewslettersImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{posts.js → PostsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{products.js → ProductsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{revue-subscriber.js → RevueSubscriberImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{roles.js → RolesImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{settings.js → SettingsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{stripe-prices.js → StripePricesImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{stripe-products.js → StripeProductsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{tags.js → TagsImporter.js} +1 -1
- package/core/server/data/importer/importers/data/{users.js → UsersImporter.js} +1 -1
- package/core/server/data/importer/importers/data/data-importer.js +11 -11
- package/core/server/data/migrations/hooks/migrate/afterEach.js +1 -0
- package/core/server/data/migrations/hooks/migrate/beforeEach.js +1 -0
- package/core/server/data/migrations/versions/4.4/02-migrate-members-signup-access.js +1 -1
- package/core/server/data/schema/fixtures/index.js +1 -1
- package/core/server/lib/image/{image-utils.js → ImageUtils.js} +4 -4
- package/core/server/lib/image/index.js +1 -1
- package/core/server/models/base/plugins/actions.js +104 -29
- package/core/server/models/base/plugins/bulk-operations.js +28 -7
- package/core/server/models/invite.js +10 -6
- package/core/server/models/post.js +21 -7
- package/core/server/services/{users.js → Users.js} +1 -1
- package/core/server/services/adapter-manager/index.js +2 -2
- package/core/server/services/auth/session/express-session.js +1 -1
- package/core/server/services/comments/{controller.js → CommentsController.js} +2 -2
- package/core/server/services/comments/{service.js → CommentsService.js} +1 -1
- package/core/server/services/comments/index.js +3 -3
- package/core/server/services/custom-redirects/index.js +1 -1
- package/core/server/services/email-analytics/index.js +1 -1
- package/core/server/services/email-service/{wrapper.js → EmailServiceWrapper.js} +2 -2
- package/core/server/services/email-service/index.js +1 -1
- package/core/server/services/explore/index.js +1 -1
- package/core/server/services/frontend-data-service/index.js +1 -1
- package/core/server/services/invites/{invites.js → Invites.js} +25 -10
- package/core/server/services/invites/index.js +3 -1
- package/core/server/services/mail/templates/invite-user-by-api-key.html +160 -0
- package/core/server/services/members/api.js +1 -1
- package/core/server/services/members/emails/signin.js +8 -8
- package/core/server/services/members/emails/signup-paid.js +7 -7
- package/core/server/services/members/emails/signup.js +9 -9
- package/core/server/services/members/emails/subscribe.js +9 -9
- package/core/server/services/members/emails/{updateEmail.js → update-email.js} +7 -7
- package/core/server/services/members/service.js +2 -2
- package/core/server/services/members/utils.js +1 -3
- package/core/server/services/newsletters/index.js +1 -1
- package/core/server/services/notifications/index.js +1 -1
- package/core/server/services/oembed/{twitter-embed.js → TwitterOEmbedProvider.js} +2 -1
- package/core/server/services/oembed/service.js +2 -2
- package/core/server/services/posts/posts-service.js +1 -1
- package/core/server/services/route-settings/index.js +3 -3
- package/core/server/services/settings/settings-service.js +1 -1
- package/core/server/services/settings-helpers/index.js +1 -1
- package/core/server/services/webhooks/listen.js +1 -1
- package/core/server/web/api/endpoints/admin/middleware.js +2 -0
- package/core/server/web/members/app.js +1 -1
- package/core/server/web/parent/frontend.js +1 -1
- package/core/shared/config/defaults.json +5 -5
- package/core/shared/labs.js +3 -4
- package/core/shared/settings-cache/index.js +1 -1
- package/package.json +156 -153
- package/yarn.lock +1033 -809
- package/components/tryghost-adapter-cache-memory-ttl-5.46.1.tgz +0 -0
- package/components/tryghost-adapter-cache-redis-5.46.1.tgz +0 -0
- package/components/tryghost-api-framework-5.46.1.tgz +0 -0
- package/components/tryghost-api-version-compatibility-service-5.46.1.tgz +0 -0
- package/components/tryghost-bootstrap-socket-5.46.1.tgz +0 -0
- package/components/tryghost-constants-5.46.1.tgz +0 -0
- package/components/tryghost-custom-theme-settings-service-5.46.1.tgz +0 -0
- package/components/tryghost-data-generator-5.46.1.tgz +0 -0
- package/components/tryghost-dynamic-routing-events-5.46.1.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.46.1.tgz +0 -0
- package/components/tryghost-email-analytics-service-5.46.1.tgz +0 -0
- package/components/tryghost-email-content-generator-5.46.1.tgz +0 -0
- package/components/tryghost-email-events-5.46.1.tgz +0 -0
- package/components/tryghost-email-service-5.46.1.tgz +0 -0
- package/components/tryghost-event-aware-cache-wrapper-5.46.1.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.46.1.tgz +0 -0
- package/components/tryghost-external-media-inliner-5.46.1.tgz +0 -0
- package/components/tryghost-extract-api-key-5.46.1.tgz +0 -0
- package/components/tryghost-i18n-5.46.1.tgz +0 -0
- package/components/tryghost-importer-revue-5.46.1.tgz +0 -0
- package/components/tryghost-job-manager-5.46.1.tgz +0 -0
- package/components/tryghost-link-redirects-5.46.1.tgz +0 -0
- package/components/tryghost-link-replacer-5.46.1.tgz +0 -0
- package/components/tryghost-link-tracking-5.46.1.tgz +0 -0
- package/components/tryghost-mailgun-client-5.46.1.tgz +0 -0
- package/components/tryghost-member-attribution-5.46.1.tgz +0 -0
- package/components/tryghost-member-events-5.46.1.tgz +0 -0
- package/components/tryghost-members-api-5.46.1.tgz +0 -0
- package/components/tryghost-members-csv-5.46.1.tgz +0 -0
- package/components/tryghost-members-events-service-5.46.1.tgz +0 -0
- package/components/tryghost-members-importer-5.46.1.tgz +0 -0
- package/components/tryghost-members-offers-5.46.1.tgz +0 -0
- package/components/tryghost-members-payments-5.46.1.tgz +0 -0
- package/components/tryghost-members-ssr-5.46.1.tgz +0 -0
- package/components/tryghost-members-stripe-service-5.46.1.tgz +0 -0
- package/components/tryghost-milestones-5.46.1.tgz +0 -0
- package/components/tryghost-minifier-5.46.1.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.46.1.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.46.1.tgz +0 -0
- package/components/tryghost-mw-error-handler-5.46.1.tgz +0 -0
- package/components/tryghost-mw-session-from-token-5.46.1.tgz +0 -0
- package/components/tryghost-mw-version-match-5.46.1.tgz +0 -0
- package/components/tryghost-mw-vhost-5.46.1.tgz +0 -0
- package/components/tryghost-oembed-service-5.46.1.tgz +0 -0
- package/components/tryghost-package-json-5.46.1.tgz +0 -0
- package/components/tryghost-post-revisions-5.46.1.tgz +0 -0
- package/components/tryghost-posts-service-5.46.1.tgz +0 -0
- package/components/tryghost-referrers-5.46.1.tgz +0 -0
- package/components/tryghost-session-service-5.46.1.tgz +0 -0
- package/components/tryghost-settings-path-manager-5.46.1.tgz +0 -0
- package/components/tryghost-staff-service-5.46.1.tgz +0 -0
- package/components/tryghost-stats-service-5.46.1.tgz +0 -0
- package/components/tryghost-tiers-5.46.1.tgz +0 -0
- package/components/tryghost-update-check-service-5.46.1.tgz +0 -0
- package/components/tryghost-verification-trigger-5.46.1.tgz +0 -0
- package/components/tryghost-version-notifications-data-service-5.46.1.tgz +0 -0
- package/core/built/admin/assets/ghost-c3187d2bb18193c111d376a110c8c80d.css +0 -1
- package/core/built/admin/assets/ghost-dark-4948d897bf814756a3870ef564ba6a6d.css +0 -1
- /package/core/built/admin/assets/{chunk.604.e25172fcbbcc8ddcbdec.js.LICENSE.txt → chunk.11.a4f9c30c0891933434bf.js.LICENSE.txt} +0 -0
- /package/core/frontend/services/admin-auth-assets/{service.js → AdminAuthAssetsService.js} +0 -0
- /package/core/frontend/services/comment-counts-assets/{service.js → CommentCountsAssetsService.js} +0 -0
- /package/core/frontend/services/member-attribution-assets/{service.js → MemberAttributionAssetsService.js} +0 -0
- /package/core/frontend/services/routing/{router-manager.js → RouterManager.js} +0 -0
- /package/core/frontend/services/sitemap/{base-generator.js → BaseSiteMapGenerator.js} +0 -0
- /package/core/frontend/services/sitemap/{index-generator.js → SiteMapIndexGenerator.js} +0 -0
- /package/core/frontend/services/theme-engine/i18n/{i18n.js → I18n.js} +0 -0
- /package/core/server/{ghost-server.js → GhostServer.js} +0 -0
- /package/core/server/adapters/cache/{Memory.js → MemoryCache.js} +0 -0
- /package/core/server/adapters/cache/{MemoryTTL.js → memory-ttl.js} +0 -0
- /package/core/server/adapters/scheduling/post-scheduling/{post-scheduler.js → PostScheduler.js} +0 -0
- /package/core/server/adapters/scheduling/{SchedulingBase.js → scheduling-base.js} +0 -0
- /package/core/server/adapters/sso/{Base.js → SSOBase.js} +0 -0
- /package/core/server/data/db/{state-manager.js → DatabaseStateManager.js} +0 -0
- /package/core/server/data/importer/importers/data/{base.js → Base.js} +0 -0
- /package/core/server/data/schema/fixtures/{fixture-manager.js → FixtureManager.js} +0 -0
- /package/core/server/lib/image/{blog-icon.js → BlogIcon.js} +0 -0
- /package/core/server/lib/image/{cached-image-size-from-url.js → CachedImageSizeFromUrl.js} +0 -0
- /package/core/server/lib/image/{gravatar.js → Gravatar.js} +0 -0
- /package/core/server/lib/image/{image-size.js → ImageSize.js} +0 -0
- /package/core/server/services/auth/session/{store.js → SessionStore.js} +0 -0
- /package/core/server/services/comments/{emails.js → CommentsServiceEmails.js} +0 -0
- /package/core/server/services/comments/{stats.js → CommentsStatsService.js} +0 -0
- /package/core/server/services/custom-redirects/{api.js → CustomRedirectsAPI.js} +0 -0
- /package/core/server/services/email-analytics/{wrapper.js → EmailAnalyticsServiceWrapper.js} +0 -0
- /package/core/server/services/explore/{service.js → ExploreService.js} +0 -0
- /package/core/server/services/frontend-data-service/{frontend-data-service.js → FrontendDataService.js} +0 -0
- /package/core/server/services/members/{config.js → MembersConfigProvider.js} +0 -0
- /package/core/server/services/members/stats/{members-stats.js → MembersStats.js} +0 -0
- /package/core/server/services/newsletters/{service.js → NewslettersService.js} +0 -0
- /package/core/server/services/notifications/{notifications.js → Notifications.js} +0 -0
- /package/core/server/services/oembed/{nft-oembed.js → NFTOEmbedProvider.js} +0 -0
- /package/core/server/services/posts/stats/{post-stats.js → PostStats.js} +0 -0
- /package/core/server/services/route-settings/{default-settings-manager.js → DefaultSettingsManager.js} +0 -0
- /package/core/server/services/route-settings/{route-settings.js → RouteSettings.js} +0 -0
- /package/core/server/services/route-settings/{settings-loader.js → SettingsLoader.js} +0 -0
- /package/core/server/services/settings/{settings-bread-service.js → SettingsBREADService.js} +0 -0
- /package/core/server/services/settings-helpers/{settings-helpers.js → SettingsHelpers.js} +0 -0
- /package/core/server/services/webhooks/{trigger.js → WebhookTrigger.js} +0 -0
- /package/core/shared/settings-cache/{cache.js → CacheManager.js} +0 -0
|
@@ -12411,25 +12411,25 @@ Object.keys(t).forEach((r=>{e.registerKeyCommand({str:r,run:()=>t[r](e,r)})})),t
|
|
|
12411
12411
|
Ember.set(r,e,t),n(r,!1)}_enter(e){this.isEditing&&("meta"===e||"ctrl"===e&&t.default.isWin())&&this.editCard()}_placeCursorAtEnd(){if(!this._textReplacementEditor)return
|
|
12412
12412
|
let e=this._textReplacementEditor.post.tailPosition().toRange()
|
|
12413
12413
|
this._textReplacementEditor.selectRange(e)}},d(u.prototype,"isEmpty",[n],Object.getOwnPropertyDescriptor(u.prototype,"isEmpty"),u.prototype),d(u.prototype,"formattedHtml",[i],Object.getOwnPropertyDescriptor(u.prototype,"formattedHtml"),u.prototype),d(u.prototype,"toolbar",[o],Object.getOwnPropertyDescriptor(u.prototype,"toolbar"),u.prototype),d(u.prototype,"updateHtml",[a],Object.getOwnPropertyDescriptor(u.prototype,"updateHtml"),u.prototype),d(u.prototype,"registerEditor",[s],Object.getOwnPropertyDescriptor(u.prototype,"registerEditor"),u.prototype),d(u.prototype,"leaveEditMode",[l],Object.getOwnPropertyDescriptor(u.prototype,"leaveEditMode"),u.prototype),u)
|
|
12414
|
-
e.default=p,Ember._setComponentTemplate(h,p)})),define("koenig-editor/components/koenig-card-embed",["exports","koenig-editor/components/koenig-editor","@tryghost/helpers","ember-concurrency"],(function(e,t,r,n){"use strict"
|
|
12415
|
-
var
|
|
12416
|
-
function
|
|
12414
|
+
e.default=p,Ember._setComponentTemplate(h,p)})),define("koenig-editor/components/koenig-card-embed",["exports","koenig-editor/components/koenig-editor","@tryghost/helpers","ember-ajax/errors","ember-concurrency"],(function(e,t,r,n,i){"use strict"
|
|
12415
|
+
var o,a,s,l,u,c,d,h,p,f,m,g,v,b,y,_
|
|
12416
|
+
function k(e,t,r,n){r&&Object.defineProperty(e,t,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0})}function E(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e
|
|
12417
12417
|
var r=e[Symbol.toPrimitive]
|
|
12418
12418
|
if(void 0!==r){var n=r.call(e,t||"default")
|
|
12419
12419
|
if("object"!=typeof n)return n
|
|
12420
12420
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
12421
|
-
return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function
|
|
12421
|
+
return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function w(e,t,r,n,i){var o={}
|
|
12422
12422
|
return Object.keys(n).forEach((function(e){o[e]=n[e]})),o.enumerable=!!o.enumerable,o.configurable=!!o.configurable,("value"in o||o.initializer)&&(o.writable=!0),o=r.slice().reverse().reduce((function(r,n){return n(e,t,r)||r}),o),i&&void 0!==o.initializer&&(o.value=o.initializer?o.initializer.call(i):void 0,o.initializer=void 0),void 0===o.initializer&&(Object.defineProperty(e,t,o),o=null),o}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
12423
|
-
const
|
|
12424
|
-
let
|
|
12423
|
+
const x=Ember.HTMLBars.template({id:"Y21xPSLE",block:'{"symbols":["card"],"statements":[[8,"koenig-card",[],[["@class","@isSelected","@isEditing","@selectCard","@deselectCard","@onDeselect","@editCard","@saveAsSnippet","@toolbar","@hasEditMode","@showSelectedOutline","@addParagraphAfterCard","@moveCursorToPrevSection","@moveCursorToNextSection","@editor"],["flex flex-column",[32,0,["isSelected"]],[32,0,["isEditing"]],[30,[36,0],[[32,0],[32,0,["selectCard"]]],null],[30,[36,0],[[32,0],[32,0,["deselectCard"]]],null],[30,[36,0],[[32,0],"onDeselect"],null],[30,[36,0],[[32,0],[32,0,["editCard"]]],null],[30,[36,2],[[32,0,["payload","type"]],[32,0,["saveAsSnippet"]]],null],[32,0,["toolbar"]],false,[32,0,["payload","type"]],[32,0,["addParagraphAfterCard"]],[32,0,["moveCursorToPrevSection"]],[32,0,["moveCursorToNextSection"]],[32,0,["editor"]]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,2],[[32,0,["payload","type"]]],null,[["default","else"],[{"statements":[[2," "],[10,"div"],[14,0,"kg-card-hover"],[12],[2,"\\n "],[10,"div"],[15,0,[31,["koenig-embed-",[32,0,["payload","type"]]," flex justify-center relative"]]],[14,"data-kg-embed",""],[12],[2,"\\n"],[6,[37,2],[[30,[36,3],[[32,0,["payload","type"]],"nft"],null]],null,[["default","else"],[{"statements":[[2," "],[8,"koenig-card-embed/nft",[],[["@payload"],[[32,0,["payload"]]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"iframe"],[14,0,"bn miw-100"],[14,"scrolling","no"],[12],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"div"],[14,0,"koenig-card-click-overlay ba b--transparent"],[14,"data-kg-overlay",""],[12],[13],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,2],[[30,[36,5],[[32,0,["isSelected"]],[30,[36,4],[[32,0,["payload","caption"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,1,["CaptionInput"]],[],[["@caption","@update","@placeholder"],[[32,0,["payload","caption"]],[30,[36,0],[[32,0],"updateCaption"],null],"Type caption for embed (optional)"]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[32,0,["convertUrl","isRunning"]]],null,[["default","else"],[{"statements":[[2," "],[10,"div"],[14,0,"miw-100 pa2 ba br2 b--lightgrey-d1 flex items-center justify-center bg-whitegrey-l2 f6 lh-title h10"],[12],[2,"\\n "],[10,"div"],[14,0,"ghost-spinner spinner-blue"],[12],[13],[2," \\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[32,0,["isUnauthorized"]]],null,[["default","else"],[{"statements":[[2," "],[10,"div"],[14,0,"miw-100 flex flex-row pa2 pl3 ba br2 b--red-l3 red bg-error-red f7 fw4 lh-title h10 items-center"],[12],[2,"\\n "],[10,"span"],[14,0,"mr3"],[12],[2,"The owner of this URL has disabled embedding."],[13],[2,"\\n "],[11,"button"],[24,0,"red-d2 mr3 fw6 hover-red"],[24,4,"button"],[4,[38,0],[[32,0],"retry"],null],[12],[10,"span"],[14,0,"underline"],[12],[2,"Retry"],[13],[13],[2,"\\n "],[11,"button"],[24,0,"red-d2 mr-auto fw6 underline hover-red"],[24,4,"button"],[4,[38,0],[[32,0],"insertAsLink"],null],[12],[10,"span"],[14,0,"underline"],[12],[2,"Paste URL as link"],[13],[13],[2,"\\n "],[11,"button"],[24,0,"nudge-right--2"],[24,4,"button"],[4,[38,0],[[32,0],[32,0,["deleteCard"]]],null],[12],[2,"\\n "],[1,[30,[36,1],["close"],[["class"],["w3 stroke-red-l3"]]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[32,0,["hasError"]]],null,[["default","else"],[{"statements":[[2," "],[10,"div"],[14,0,"miw-100 flex flex-row pa2 pl3 ba br2 b--red-l3 red bg-error-red f7 fw4 lh-title h10 items-center"],[12],[2,"\\n "],[10,"span"],[14,0,"mr3"],[12],[2,"There was an error when parsing the URL."],[13],[2,"\\n "],[11,"button"],[24,0,"red-d2 mr3 fw6 hover-red"],[24,4,"button"],[4,[38,0],[[32,0],"retry"],null],[12],[10,"span"],[14,0,"underline"],[12],[2,"Retry"],[13],[13],[2,"\\n "],[11,"button"],[24,0,"red-d2 mr-auto fw6 underline hover-red"],[24,4,"button"],[4,[38,0],[[32,0],"insertAsLink"],null],[12],[10,"span"],[14,0,"underline"],[12],[2,"Paste URL as link"],[13],[13],[2,"\\n "],[11,"button"],[24,0,"nudge-right--2"],[24,4,"button"],[4,[38,0],[[32,0],[32,0,["deleteCard"]]],null],[12],[2,"\\n "],[1,[30,[36,1],["close"],[["class"],["w3 stroke-red-l3"]]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"input"],[15,2,[32,0,["payload","url"]]],[14,3,"url"],[14,"placeholder","Paste URL to add embedded content..."],[14,0,"miw-100 pa2 ba br2 b--lightgrey-d2 f7 form-text lh-title tracked-2 h10 nl2 nr2"],[15,"oninput",[30,[36,0],[[32,0],"updateUrl"],null]],[15,"onkeydown",[30,[36,0],[[32,0],"urlKeydown"],null]],[14,4,"text"],[12],[13],[2,"\\n "]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["action","svg-jar","if","eq","clean-basic-html","or"]}',moduleName:"koenig-editor/components/koenig-card-embed.hbs"}),{countWords:O}=r.utils
|
|
12424
|
+
let C=(o=Ember.inject.service,a=Ember.inject.service,s=Ember.computed("payload.html"),l=Ember.computed("payload.{html,caption}"),u=Ember._action,c=Ember._action,d=Ember._action,h=Ember._action,p=Ember._action,f=Ember._action,m=Ember._action,g=(0,i.task)((function*(e){if(Ember.isBlank(e))this.deleteCard()
|
|
12425
12425
|
else try{let t=this.ghostPaths.url.api("oembed"),r={url:e}
|
|
12426
12426
|
this.payload.isDirectUrl||(r.type="embed")
|
|
12427
12427
|
let n=yield this.ajax.request(t,{data:r})
|
|
12428
12428
|
if("bookmark"===n.type)return void this.send("insertAsBookmark",n)
|
|
12429
12429
|
if(!n.html&&"nft"!==n.type)throw"No HTML returned"
|
|
12430
12430
|
Ember.set(this.payload,"linkOnError",void 0),Ember.set(this.payload,"isDirectUrl",void 0),Ember.set(this.payload,"html",n.html),delete n.html,Ember.set(this.payload,"type",n.type),delete n.type,Ember.set(this.payload,"metadata",n),this.saveCard(this.payload,!1),Ember.run.schedule("afterRender",this,this._populateIframe)}catch(t){if(this.payload.linkOnError)return void this.send("insertAsLink",{linkOnError:!0})
|
|
12431
|
-
this.set("hasError",!0)}})).drop(),
|
|
12432
|
-
Ember.set(this.payload,"url",t)}urlKeydown(e){"Enter"===e.key&&(e.preventDefault(),this.convertUrl.perform(this.payload.url)),"Escape"===e.key&&(e.target.blur(),this.deleteCard())}updateCaption(e){Ember.set(this.payload,"caption",e),this.saveCard(this.payload,!1)}retry(){this.set("hasError",!1)}insertAsLink(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{linkOnError:!1},{range:t}=this.editor
|
|
12431
|
+
this.set("hasError",!0),(0,n.isUnauthorizedError)(t)&&this.set("isUnauthorized",!0)}})).drop(),v=class extends Ember.Component{constructor(){super(...arguments),k(this,"ajax",b,this),k(this,"ghostPaths",y,this),E(this,"payload",null),E(this,"isSelected",!1),E(this,"isEditing",!1),E(this,"hasError",!1),E(this,"isUnauthorized",!1),k(this,"convertUrl",_,this)}selectCard(){}deselectCard(){}editCard(){}saveCard(){}deleteCard(){}moveCursorToNextSection(){}moveCursorToPrevSection(){}addParagraphAfterCard(){}registerComponent(){}get isEmpty(){return Ember.isBlank(this.payload.html)&&"nft"!==this.payload.type}get counts(){return{imageCount:this.payload.html?1:0,wordCount:O(this.payload.caption)}}init(){super.init(...arguments),this.payload.url&&!this.payload.html&&this.convertUrl.perform(this.payload.url),this.registerComponent(this)}didInsertElement(){super.didInsertElement(...arguments),this._populateIframe(),this._focusInput()}willDestroyElement(){super.willDestroyElement(...arguments),Ember.run.cancel(this._resizeDebounce),this._iframeMutationObserver&&this._iframeMutationObserver.disconnect(),window.removeEventListener("resize",this._windowResizeHandler)}onDeselect(){!this.payload.url||this.payload.html||this.hasError?!this.isEmpty||this.convertUrl.isRunning||this.hasError||this.deleteCard(t.NO_CURSOR_MOVEMENT):this.convertUrl.perform(this.payload.url)}updateUrl(e){let t=e.target.value
|
|
12432
|
+
Ember.set(this.payload,"url",t)}urlKeydown(e){"Enter"===e.key&&(e.preventDefault(),this.convertUrl.perform(this.payload.url)),"Escape"===e.key&&(e.target.blur(),this.deleteCard())}updateCaption(e){Ember.set(this.payload,"caption",e),this.saveCard(this.payload,!1)}retry(){this.set("hasError",!1),this.set("isUnauthorized",!1)}insertAsLink(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{linkOnError:!1},{range:t}=this.editor
|
|
12433
12433
|
this.editor.run((r=>{let{builder:n}=r,i=this.env.postModel,o=n.createMarkupSection("p"),a=n.createMarkup("a",{href:this.payload.url})
|
|
12434
12434
|
r.replaceSection(i,o),r.insertTextWithMarkup(o.toRange().head,this.payload.url,[a]),t.headSection!==i&&r.setRange(t),e.linkOnError&&r.cancelSnapshot()}))}insertAsBookmark(e){let{range:t}=this.editor
|
|
12435
12435
|
this.editor.run((r=>{let n=this.env.postModel,i=r.builder.createCardSection("bookmark",e)
|
|
@@ -12445,8 +12445,8 @@ if("IFRAME"===t.tagName){if(-1===t.getAttribute("width").indexOf("%")){const r=p
|
|
|
12445
12445
|
if(r&&n){const i=r/n,o=e.offsetWidth/i
|
|
12446
12446
|
return t.style.height=`${o}px`,void(e.style.height=`${o}px`)}}if(-1===t.getAttribute("height").indexOf("%")){const r=parseInt(t.getAttribute("height"))
|
|
12447
12447
|
return void(e.style.height=`${r}px`)}}const r=e.contentDocument.scrollingElement.scrollHeight
|
|
12448
|
-
e.style.height=`${r}px`}_setupWindowResizeHandler(e){window.removeEventListener("resize",this._windowResizeHandler),this._windowResizeHandler=Ember.run.bind(this,this._resizeIframe,e),window.addEventListener("resize",this._windowResizeHandler,{passive:!0})}},
|
|
12449
|
-
e.default=
|
|
12448
|
+
e.style.height=`${r}px`}_setupWindowResizeHandler(e){window.removeEventListener("resize",this._windowResizeHandler),this._windowResizeHandler=Ember.run.bind(this,this._resizeIframe,e),window.addEventListener("resize",this._windowResizeHandler,{passive:!0})}},b=w(v.prototype,"ajax",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=w(v.prototype,"ghostPaths",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w(v.prototype,"isEmpty",[s],Object.getOwnPropertyDescriptor(v.prototype,"isEmpty"),v.prototype),w(v.prototype,"counts",[l],Object.getOwnPropertyDescriptor(v.prototype,"counts"),v.prototype),w(v.prototype,"onDeselect",[u],Object.getOwnPropertyDescriptor(v.prototype,"onDeselect"),v.prototype),w(v.prototype,"updateUrl",[c],Object.getOwnPropertyDescriptor(v.prototype,"updateUrl"),v.prototype),w(v.prototype,"urlKeydown",[d],Object.getOwnPropertyDescriptor(v.prototype,"urlKeydown"),v.prototype),w(v.prototype,"updateCaption",[h],Object.getOwnPropertyDescriptor(v.prototype,"updateCaption"),v.prototype),w(v.prototype,"retry",[p],Object.getOwnPropertyDescriptor(v.prototype,"retry"),v.prototype),w(v.prototype,"insertAsLink",[f],Object.getOwnPropertyDescriptor(v.prototype,"insertAsLink"),v.prototype),w(v.prototype,"insertAsBookmark",[m],Object.getOwnPropertyDescriptor(v.prototype,"insertAsBookmark"),v.prototype),_=w(v.prototype,"convertUrl",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v)
|
|
12449
|
+
e.default=C,Ember._setComponentTemplate(x,C)})),define("koenig-editor/components/koenig-card-embed/nft",["exports"],(function(e){"use strict"
|
|
12450
12450
|
function t(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e
|
|
12451
12451
|
var r=e[Symbol.toPrimitive]
|
|
12452
12452
|
if(void 0!==r){var n=r.call(e,t||"default")
|
|
@@ -14082,4 +14082,4 @@ return void 0===n&&(n=(0,t.createStorage)(null,(()=>!1)),r.set(e,n)),n}dirtyStor
|
|
|
14082
14082
|
r&&(0,t.setValue)(r,null)}constructor(e){o(this,"storages",new WeakMap),o(this,"vals",void 0),this.vals=new WeakSet(e)}has(e){return(0,t.getValue)(this.storageFor(e)),this.vals.has(e)}add(e){return this.vals.add(e),this.dirtyStorageFor(e),this}delete(e){return this.dirtyStorageFor(e),this.vals.delete(e)}get[i](){return this.vals[Symbol.toStringTag]}}e.TrackedWeakSet=s,Object.setPrototypeOf(s.prototype,WeakSet.prototype)})),define("tracked-built-ins/index",["exports","tracked-built-ins/-private/decorator","tracked-built-ins/-private/array","tracked-built-ins/-private/object","tracked-built-ins/-private/map","tracked-built-ins/-private/set"],(function(e,t,r,n,i,o){"use strict"
|
|
14083
14083
|
Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"TrackedArray",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"TrackedMap",{enumerable:!0,get:function(){return i.TrackedMap}}),Object.defineProperty(e,"TrackedObject",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"TrackedSet",{enumerable:!0,get:function(){return o.TrackedSet}}),Object.defineProperty(e,"TrackedWeakMap",{enumerable:!0,get:function(){return i.TrackedWeakMap}}),Object.defineProperty(e,"TrackedWeakSet",{enumerable:!0,get:function(){return o.TrackedWeakSet}}),Object.defineProperty(e,"tracked",{enumerable:!0,get:function(){return t.default}})}))
|
|
14084
14084
|
|
|
14085
|
-
//# sourceMappingURL=vendor-
|
|
14085
|
+
//# sourceMappingURL=vendor-39356907c39237f12c305e1d3ca46c85.map
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<title>Ghost Admin</title>
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
<meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.
|
|
11
|
+
<meta name="ghost-admin/config/environment" content="%7B%22modulePrefix%22%3A%22ghost-admin%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22trailing-hash%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%2C%22Array%22%3Atrue%2C%22String%22%3Atrue%2C%22Function%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_JQUERY_INTEGRATION%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22version%22%3A%225.47%22%2C%22name%22%3A%22ghost-admin%22%7D%2C%22ember-simple-auth%22%3A%7B%7D%2C%22ember-websockets%22%3A%7B%22socketIO%22%3Atrue%7D%2C%22%40sentry%2Fember%22%3A%7B%22disablePerformance%22%3Atrue%2C%22sentry%22%3A%7B%7D%7D%2C%22ember-cli-mirage%22%3A%7B%22usingProxy%22%3Afalse%2C%22useDefaultPassthroughs%22%3Atrue%7D%2C%22exportApplicationGlobal%22%3Afalse%2C%22ember-load%22%3A%7B%22loadingIndicatorClass%22%3A%22ember-load-indicator%22%7D%7D" />
|
|
12
12
|
|
|
13
13
|
<meta name="HandheldFriendly" content="True" />
|
|
14
14
|
<meta name="MobileOptimized" content="320" />
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
</style>
|
|
38
38
|
|
|
39
39
|
<link integrity="" rel="stylesheet" href="assets/vendor-3e6947aa681f0fb82b193090e520dc73.css">
|
|
40
|
-
<link integrity="" rel="stylesheet" href="assets/ghost-
|
|
40
|
+
<link integrity="" rel="stylesheet" href="assets/ghost-a2e163a59a7ec0c8ceb97289113a9994.css" title="light">
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
</head>
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
|
|
57
57
|
<div id="ember-basic-dropdown-wormhole"></div>
|
|
58
58
|
|
|
59
|
-
<script src="assets/vendor-
|
|
60
|
-
<script src="assets/chunk.
|
|
61
|
-
<script src="assets/chunk.143.
|
|
62
|
-
<script src="assets/ghost-
|
|
59
|
+
<script src="assets/vendor-39356907c39237f12c305e1d3ca46c85.js"></script>
|
|
60
|
+
<script src="assets/chunk.11.a4f9c30c0891933434bf.js"></script>
|
|
61
|
+
<script src="assets/chunk.143.70ebfe98c846ee93f854.js"></script>
|
|
62
|
+
<script src="assets/ghost-48e9d3e33a5bb943cd479b941dbfe62e.js"></script>
|
|
63
63
|
</body>
|
|
64
64
|
</html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100
|
|
1
|
+
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.black{color:#15171a}.darkgrey{color:#394047}.midgrey{color:#7c8b9a}.lightgrey{color:#ced4d9}.blue{color:#14b8ff}.red{color:#f50b23}.orange{color:#ffb41f}.green{color:#30cf43}.darkgrey-hover:hover{color:#394047}.midgrey-hover:hover{color:#7c8b9a}.lightgrey-hover:hover{color:#ced4d9}.blue-hover:hover{color:#14b8ff}.red-hover:hover{color:#f50b23}.orange-hover:hover{color:#ffb41f}.green-hover:hover{color:#30cf43}*,:after,:before{box-sizing:border-box}html{overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:62.5%;line-height:1.65;letter-spacing:.2px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{width:100%;height:100%}body{overflow:auto;overflow-x:hidden;color:#343f44;font-size:1.4rem}.gh-view{-ms-flex-positive:1;flex-grow:1;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}h1,h2{margin:0 0 .3em;color:#343f44;line-height:1.15em;text-rendering:optimizeLegibility;text-indent:-1px;font-size:2.9rem}@media (max-width:500px){h1{font-size:2.4rem}}.gh-input{display:block;padding:10px 12px;width:100%;height:40px;border:1px solid #d6e3eb;border-radius:4px;color:#4b5b62;font-size:1.6rem;line-height:1em;font-weight:300;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;transition:border-color .15s linear;-webkit-appearance:none}.gh-input:focus{outline:0;border-color:#b4cbda}.gh-btn{display:inline-block;outline:none;border:1px solid #d6e3eb;color:#829aa8;text-decoration:none!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:#829aa8;border-radius:5px;transition:all .2s ease;-webkit-font-smoothing:subpixel-antialiased}.gh-btn span{display:block;padding:0 12px;height:33px;font-size:1.3rem;line-height:33px;font-weight:400;text-align:center;letter-spacing:.2px;border-radius:4px}.gh-btn:hover{border-color:#b4cbda}.gh-btn-hover-blue:hover{border-color:#3eb0ef;color:#3eb0ef}.gh-btn-blue{padding:1px;border:0;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.1);fill:#fff;background:linear-gradient(#3da1d6,#2288bf);box-shadow:0 1px 0 rgba(0,0,0,.12);transition:none!important}.gh-btn-blue span{background:linear-gradient(#4ab6f0,#2fa5e4 60%,#2fa5e4 90%,#38a9e5);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1)}.gh-btn-blue:active,.gh-btn-blue:focus{background:#1e78a9}.gh-btn-blue:active span,.gh-btn-blue:focus span{background:#29a0e0;box-shadow:none}.gh-btn-block{display:block;width:100%}.gh-input-icon{position:relative;display:block}.gh-input-icon svg{position:absolute;top:50%;left:10px;z-index:2;height:14px;width:auto;fill:color(var(--midgrey) l(15%));transform:translateY(-7px)}.gh-input-icon input{padding-left:35px}.gh-app{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;height:100%}.gh-viewport{overflow:hidden;max-height:100%}.gh-main,.gh-viewport{-ms-flex-positive:1;flex-grow:1;display:-ms-flexbox;display:flex}.gh-main{position:relative;background:#fff;overflow-y:auto}.gh-flow{overflow-y:auto;min-height:100%;background:linear-gradient(315deg,#efefef,#fff)}.gh-flow,.gh-flow-content-wrap{flex-grow:1;display:flex;flex-direction:column}.gh-flow-content-wrap{flex-shrink:0;justify-content:center;align-items:center;margin:0 24px;padding-bottom:8vh}.gh-flow-content-wrap .site-icon{width:70px;height:70px;border-radius:3px}.gh-flow-content{display:flex;flex-direction:column;max-width:520px;width:100%;margin:4rem 0 6rem;padding:40px;background:#fff;color:var(--darkgrey);font-size:1.9rem;line-height:1.5em;font-weight:300;border-radius:3px;box-shadow:0 2.8px 2.2px rgba(0,0,0,.02),0 6.7px 5.3px rgba(0,0,0,.02),0 12.5px 10px rgba(0,0,0,.02),0 22.3px 17.9px rgba(0,0,0,.03),0 41.8px 33.4px rgba(0,0,0,.03),0 100px 80px rgba(0,0,0,.05)}.gh-flow-content.unsubscribe{align-items:center;justify-content:center;max-width:560px;min-height:200px;margin:4rem 0;text-align:center}@media (max-width:500px){.gh-flow-content{padding:0;background:transparent;box-shadow:none}}.gh-flow-content header{display:flex;flex-direction:column;align-items:center}.gh-flow-content h1{margin-bottom:24px;color:#15171a;font-size:4.1rem;font-weight:700;line-height:1.15em}.gh-flow-content.unsubscribe h1{font-size:3.2rem}@media (max-width:600px){.gh-flow-content.unsubscribe h1,.gh-flow-content h1{font-size:6vw}}.gh-flow-content.unsubscribe p{margin:0 0 .4em;color:#394047;font-size:1.8rem}@media (max-width:500px){.gh-flow-content.unsubscribe p{font-size:1.6rem;line-height:1.5}}.gh-flow-content .gh-btn{display:block;margin:20px auto 0;max-width:400px}.gh-flow-content .form-group{position:relative;margin-bottom:2.5rem}.gh-flow-content .form-group.error .gh-input{border-color:#f50b23;box-shadow:0 0 0 3px rgba(239,24,24,.15)}.gh-flow-content .main-error{position:absolute;right:0;margin:0;color:#7c8b9a;font-size:1.35rem;font-weight:400;text-align:center;user-select:text}.gh-flow-em{font-weight:500}.unsubscribe-footer{text-align:center;font-size:1.5rem}@media (max-width:500px){.unsubscribe-footer{padding:0 24px;font-size:1.4rem;line-height:1.4em}}.unsubscribe-footer p{color:#7c8b9a;margin:0 0 .4rem}.unsubscribe-footer a{color:#15171a;text-decoration:none}.unsubscribe-footer a:hover{text-decoration:underline}.gh-signin{margin-bottom:1.5rem}.gh-signin .gh-input,.gh-signin .gh-input:-webkit-autofill:first-line{height:54px;padding:12px 16px;font-size:1.8rem;border-radius:8px}.gh-signin .gh-input::placeholder{color:#abb4be;font-weight:400;opacity:1}.gh-signin .gh-input::-webkit-input-placeholder{color:#abb4be;font-weight:400}.gh-signin .gh-input:-ms-input-placeholder{color:#abb4be;font-weight:400}.gh-signin .gh-input::-moz-placeholder{color:#abb4be;font-weight:400;opacity:1}.gh-signin .gh-input:focus{border-color:#30cf43;box-shadow:0 0 0 3px rgba(26,170,96,.15)}.gh-signin .gh-btn{margin:0;width:100%;height:54px;max-width:unset;margin-top:32px;background:#15171a;font-weight:300;line-height:54px;border-radius:8px;transition:all .4s ease;-webkit-font-smoothing:subpixel-antialiased}.gh-signin .gh-btn span{color:#fff;font-size:1.8rem}.error-content{flex-grow:1;justify-content:center;user-select:text;padding:8vw}.error-content,.error-details{display:flex;align-items:center}.error-details{margin-bottom:4rem}.error-ghost{margin:15px;height:115px}@media (max-width:630px){.error-ghost{display:none}}.error-code{margin:0;color:#c5d2d9;font-size:10vw;font-weight:600;line-height:.9em;letter-spacing:-.4vw}.error-description{margin:0;padding:0;border:none;color:#54666d;font-size:2.3rem;font-weight:300;line-height:1.3em}.error-message{display:flex;flex-direction:column;margin:15px;align-items:center}.error-message a{font-size:1.4rem;line-height:1;margin:8px 0}.error-link{background-color:transparent;color:#5ba4e5;transition:background .3s,color .3s;text-decoration:none}.error-stack{margin:1rem auto;padding:2rem;max-width:800px;background-color:hsla(0,0%,100%,.3)}.error-stack-list{margin:0;padding:0;list-style-type:none}.error-stack-list li{display:block}.error-stack-list li:before{content:"\21AA";display:inline-block;margin-right:.5rem;color:#bbb;font-size:1.2rem}.error-stack-function{font-weight:700}
|
|
@@ -32,8 +32,8 @@ class CardAssetService {
|
|
|
32
32
|
// Include rules take precedence over exclude rules.
|
|
33
33
|
if (_.has(this.config, 'include')) {
|
|
34
34
|
return {
|
|
35
|
-
'cards.min.css': `css
|
|
36
|
-
'cards.min.js': `js
|
|
35
|
+
'cards.min.css': `css/@(${this.config.include.join('|')}).css`,
|
|
36
|
+
'cards.min.js': `js/@(${this.config.include.join('|')}).js`
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const DomainEvents = require('@tryghost/domain-events');
|
|
2
2
|
const {URLResourceUpdatedEvent} = require('@tryghost/dynamic-routing-events');
|
|
3
|
-
const IndexMapGenerator = require('./
|
|
4
|
-
const PagesMapGenerator = require('./
|
|
5
|
-
const PostsMapGenerator = require('./
|
|
6
|
-
const UsersMapGenerator = require('./
|
|
7
|
-
const TagsMapGenerator = require('./
|
|
3
|
+
const IndexMapGenerator = require('./SiteMapIndexGenerator');
|
|
4
|
+
const PagesMapGenerator = require('./PageMapGenerator');
|
|
5
|
+
const PostsMapGenerator = require('./PostMapGenerator');
|
|
6
|
+
const UsersMapGenerator = require('./UserMapGenerator');
|
|
7
|
+
const TagsMapGenerator = require('./TagsMapGenerator');
|
|
8
8
|
|
|
9
9
|
// This uses events from the routing service and the URL service
|
|
10
10
|
const events = require('../../../server/lib/common/events');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const _ = require('lodash');
|
|
2
2
|
const validator = require('@tryghost/validator');
|
|
3
|
-
const BaseMapGenerator = require('./
|
|
3
|
+
const BaseMapGenerator = require('./BaseSiteMapGenerator');
|
|
4
4
|
|
|
5
5
|
class UserMapGenerator extends BaseMapGenerator {
|
|
6
6
|
constructor(opts) {
|
|
@@ -3,7 +3,7 @@ const routing = require('../services/routing');
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
*
|
|
6
|
-
* @param {import('../services/routing/
|
|
6
|
+
* @param {import('../services/routing/RouterManager').RouterConfig} routerConfig
|
|
7
7
|
* @returns {import('express').Router}
|
|
8
8
|
*/
|
|
9
9
|
module.exports = function siteRoutes(routerConfig) {
|
|
@@ -33,7 +33,7 @@ function SiteRouter(req, res, next) {
|
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
35
|
*
|
|
36
|
-
* @param {import('../services/routing/
|
|
36
|
+
* @param {import('../services/routing/RouterManager').RouterConfig} routerConfig
|
|
37
37
|
* @returns {import('express').Application}
|
|
38
38
|
*/
|
|
39
39
|
module.exports = function setupSiteApp(routerConfig) {
|
|
@@ -172,7 +172,7 @@ module.exports = function setupSiteApp(routerConfig) {
|
|
|
172
172
|
|
|
173
173
|
/**
|
|
174
174
|
* see https://github.com/expressjs/express/issues/2596
|
|
175
|
-
* @param {import('../services/routing/
|
|
175
|
+
* @param {import('../services/routing/RouterManager').RouterConfig} routerConfig
|
|
176
176
|
*/
|
|
177
177
|
module.exports.reload = (routerConfig) => {
|
|
178
178
|
debug('reloading');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const Promise = require('bluebird');
|
|
2
2
|
const events = require('../../../lib/common/events');
|
|
3
3
|
const localUtils = require('../utils');
|
|
4
|
-
const PostScheduler = require('./
|
|
4
|
+
const PostScheduler = require('./PostScheduler');
|
|
5
5
|
const getSchedulerIntegration = require('./scheduler-intergation');
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const util = require('util');
|
|
2
2
|
const moment = require('moment');
|
|
3
3
|
const debug = require('@tryghost/debug')('scheduling-default');
|
|
4
|
-
const SchedulingBase = require('./
|
|
4
|
+
const SchedulingBase = require('./scheduling-base');
|
|
5
5
|
const logging = require('@tryghost/logging');
|
|
6
6
|
const errors = require('@tryghost/errors');
|
|
7
7
|
const request = require('@tryghost/request');
|
|
@@ -10,7 +10,7 @@ const messages = {
|
|
|
10
10
|
cannotRead: 'Could not read media file: {file}'
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
class
|
|
13
|
+
class LocalMediaStorage extends LocalStorageBase {
|
|
14
14
|
constructor() {
|
|
15
15
|
super({
|
|
16
16
|
storagePath: config.getContentPath('media'),
|
|
@@ -21,4 +21,4 @@ class LocalMediaStore extends LocalStorageBase {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
module.exports =
|
|
24
|
+
module.exports = LocalMediaStorage;
|
|
@@ -3,6 +3,7 @@ const api = require('./index');
|
|
|
3
3
|
const config = require('../../../shared/config');
|
|
4
4
|
const tpl = require('@tryghost/tpl');
|
|
5
5
|
const errors = require('@tryghost/errors');
|
|
6
|
+
const logging = require('@tryghost/logging');
|
|
6
7
|
const web = require('../../web');
|
|
7
8
|
const models = require('../../models');
|
|
8
9
|
const auth = require('../../services/auth');
|
|
@@ -10,7 +11,7 @@ const invitations = require('../../services/invitations');
|
|
|
10
11
|
const dbBackup = require('../../data/db/backup');
|
|
11
12
|
const apiMail = require('./index').mail;
|
|
12
13
|
const apiSettings = require('./index').settings;
|
|
13
|
-
const UsersService = require('../../services/
|
|
14
|
+
const UsersService = require('../../services/Users');
|
|
14
15
|
const userService = new UsersService({dbBackup, models, auth, apiMail, apiSettings});
|
|
15
16
|
const {deleteAllSessions} = require('../../services/auth/session');
|
|
16
17
|
|
|
@@ -70,8 +71,11 @@ module.exports = {
|
|
|
70
71
|
return auth.setup.doSettings(data, api.settings);
|
|
71
72
|
})
|
|
72
73
|
.then((user) => {
|
|
73
|
-
|
|
74
|
-
.
|
|
74
|
+
auth.setup.sendWelcomeEmail(user.get('email'), api.mail)
|
|
75
|
+
.catch((err) => {
|
|
76
|
+
logging.error(err);
|
|
77
|
+
});
|
|
78
|
+
return user;
|
|
75
79
|
});
|
|
76
80
|
}
|
|
77
81
|
},
|
|
@@ -109,8 +109,8 @@ module.exports = {
|
|
|
109
109
|
invites: frame.data.invites,
|
|
110
110
|
options: frame.options,
|
|
111
111
|
user: {
|
|
112
|
-
name: frame.user
|
|
113
|
-
email: frame.user
|
|
112
|
+
name: frame.user?.get('name'),
|
|
113
|
+
email: frame.user?.get('email')
|
|
114
114
|
}
|
|
115
115
|
});
|
|
116
116
|
}
|
|
@@ -7,7 +7,7 @@ const dbBackup = require('../../data/db/backup');
|
|
|
7
7
|
const auth = require('../../services/auth');
|
|
8
8
|
const apiMail = require('./index').mail;
|
|
9
9
|
const apiSettings = require('./index').settings;
|
|
10
|
-
const UsersService = require('../../services/
|
|
10
|
+
const UsersService = require('../../services/Users');
|
|
11
11
|
const userService = new UsersService({dbBackup, models, auth, apiMail, apiSettings});
|
|
12
12
|
const ALLOWED_INCLUDES = ['count.posts', 'permissions', 'roles', 'roles.permissions'];
|
|
13
13
|
const UNSAFE_ATTRS = ['status', 'roles'];
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
const debug = require('@tryghost/debug')('api:endpoints:utils:serializers:output:members');
|
|
3
3
|
const {unparse} = require('@tryghost/members-csv');
|
|
4
4
|
const mappers = require('./mappers');
|
|
5
|
-
const labs = require('../../../../../../shared/labs');
|
|
6
5
|
|
|
7
6
|
module.exports = {
|
|
8
7
|
browse: createSerializer('browse', paginatedMembers),
|
|
@@ -172,9 +171,7 @@ function serializeMember(member, options) {
|
|
|
172
171
|
delete subscription.price.product;
|
|
173
172
|
}
|
|
174
173
|
|
|
175
|
-
|
|
176
|
-
serialized.email_suppression = json.email_suppression;
|
|
177
|
-
}
|
|
174
|
+
serialized.email_suppression = json.email_suppression;
|
|
178
175
|
|
|
179
176
|
if (json.newsletters) {
|
|
180
177
|
serialized.newsletters = json.newsletters
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const _ = require('lodash');
|
|
2
2
|
const debug = require('@tryghost/debug')('importer:roles');
|
|
3
|
-
const BaseImporter = require('./
|
|
3
|
+
const BaseImporter = require('./Base');
|
|
4
4
|
const models = require('../../../../models');
|
|
5
5
|
const {activate} = require('../../../../services/themes/activate');
|
|
6
6
|
const {sequence} = require('@tryghost/promise');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const debug = require('@tryghost/debug')('importer:newsletters');
|
|
2
2
|
const _ = require('lodash');
|
|
3
|
-
const BaseImporter = require('./
|
|
3
|
+
const BaseImporter = require('./Base');
|
|
4
4
|
const models = require('../../../../models');
|
|
5
5
|
|
|
6
6
|
const ignoredColumns = ['sender_email'];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const debug = require('@tryghost/debug')('importer:posts');
|
|
2
2
|
const _ = require('lodash');
|
|
3
3
|
const uuid = require('uuid');
|
|
4
|
-
const BaseImporter = require('./
|
|
4
|
+
const BaseImporter = require('./Base');
|
|
5
5
|
const mobiledocLib = require('../../../../lib/mobiledoc');
|
|
6
6
|
const validator = require('@tryghost/validator');
|
|
7
7
|
const postsMetaSchema = require('../../../schema').tables.posts_meta;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const debug = require('@tryghost/debug')('importer:settings');
|
|
2
2
|
const ObjectId = require('bson-objectid').default;
|
|
3
3
|
const _ = require('lodash');
|
|
4
|
-
const BaseImporter = require('./
|
|
4
|
+
const BaseImporter = require('./Base');
|
|
5
5
|
const models = require('../../../../models');
|
|
6
6
|
const defaultSettings = require('../../../schema').defaultSettings;
|
|
7
7
|
const keyGroupMapper = require('../../../../api/endpoints/utils/serializers/input/utils/settings-key-group-mapper');
|
package/core/server/data/importer/importers/data/{stripe-prices.js → StripePricesImporter.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const _ = require('lodash');
|
|
2
2
|
const debug = require('@tryghost/debug')('importer:stripeprices');
|
|
3
|
-
const BaseImporter = require('./
|
|
3
|
+
const BaseImporter = require('./Base');
|
|
4
4
|
const models = require('../../../../models');
|
|
5
5
|
|
|
6
6
|
class StripePricesImporter extends BaseImporter {
|
package/core/server/data/importer/importers/data/{stripe-products.js → StripeProductsImporter.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const _ = require('lodash');
|
|
2
2
|
const debug = require('@tryghost/debug')('importer:stripeproducts');
|
|
3
|
-
const BaseImporter = require('./
|
|
3
|
+
const BaseImporter = require('./Base');
|
|
4
4
|
const models = require('../../../../models');
|
|
5
5
|
|
|
6
6
|
class StripeProductsImporter extends BaseImporter {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const debug = require('@tryghost/debug')('importer:tags');
|
|
2
2
|
const _ = require('lodash');
|
|
3
|
-
const BaseImporter = require('./
|
|
3
|
+
const BaseImporter = require('./Base');
|
|
4
4
|
const models = require('../../../../models');
|
|
5
5
|
const {sequence} = require('@tryghost/promise');
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const debug = require('@tryghost/debug')('importer:users');
|
|
2
2
|
const _ = require('lodash');
|
|
3
|
-
const BaseImporter = require('./
|
|
3
|
+
const BaseImporter = require('./Base');
|
|
4
4
|
const models = require('../../../../models');
|
|
5
5
|
const limitService = require('../../../../services/limits');
|
|
6
6
|
|