ghost 4.41.0 → 4.41.3

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.
Files changed (45) hide show
  1. package/core/boot.js +24 -6
  2. package/core/built/assets/{ghost-dark-6fbe502f2bb2cde92e15b2f1a9da57a0.css → ghost-dark-146c4c688b47d45c4aa018ee0f79cebc.css} +1 -1
  3. package/core/built/assets/{ghost.min-ee1d1d48a30dbd67513f647f360b39e3.js → ghost.min-1abf114ca26a71e8e1f09054f3592614.js} +917 -800
  4. package/core/built/assets/{ghost.min-09301e5bd933cf6d24368e98a4d898a9.css → ghost.min-a73b150c7eecc4641d377cc73fb5eecd.css} +1 -1
  5. package/core/frontend/web/middleware/error-handler.js +5 -3
  6. package/core/server/api/canary/index.js +2 -2
  7. package/core/server/api/canary/{memberSigninUrls.js → member-signin-urls.js} +0 -1
  8. package/core/server/api/canary/{membersStripeConnect.js → members-stripe-connect.js} +0 -0
  9. package/core/server/api/canary/utils/serializers/output/authentication.js +4 -0
  10. package/core/server/api/canary/utils/serializers/output/default.js +35 -0
  11. package/core/server/api/canary/utils/serializers/output/email-preview.js +3 -0
  12. package/core/server/api/canary/utils/serializers/output/index.js +21 -25
  13. package/core/server/api/canary/utils/serializers/output/mappers/authors.js +1 -0
  14. package/core/server/api/canary/utils/serializers/output/mappers/index.js +1 -1
  15. package/core/server/api/canary/utils/serializers/output/mappers/integrations.js +1 -1
  16. package/core/server/api/canary/utils/serializers/output/{member-signin_urls.js → member-signin-urls.js} +0 -0
  17. package/core/server/api/canary/utils/serializers/output/members-stripe-connect.js +6 -0
  18. package/core/server/api/canary/utils/serializers/output/members.js +2 -0
  19. package/core/server/api/canary/utils/serializers/output/offers.js +8 -0
  20. package/core/server/api/canary/utils/serializers/output/redirects.js +1 -1
  21. package/core/server/api/canary/utils/serializers/output/session.js +9 -0
  22. package/core/server/api/canary/utils/serializers/output/settings.js +64 -37
  23. package/core/server/api/canary/utils/serializers/output/slack.js +9 -0
  24. package/core/server/api/canary/utils/serializers/output/snippets.js +11 -1
  25. package/core/server/api/canary/utils/serializers/output/themes.js +2 -23
  26. package/core/server/api/shared/serializers/handle.js +17 -2
  27. package/core/server/services/offers/service.js +11 -8
  28. package/core/server/services/themes/validate.js +4 -3
  29. package/core/server/web/admin/app.js +8 -0
  30. package/core/server/web/admin/views/default-prod.html +2 -2
  31. package/core/server/web/admin/views/default.html +2 -2
  32. package/core/shared/labs.js +3 -1
  33. package/core/shared/settings-cache/cache.js +1 -1
  34. package/package.json +43 -43
  35. package/yarn.lock +1371 -1399
  36. package/.c8rc.json +0 -34
  37. package/.eslintrc.js +0 -118
  38. package/core/server/api/canary/utils/serializers/output/actions.js +0 -13
  39. package/core/server/api/canary/utils/serializers/output/authors.js +0 -21
  40. package/core/server/api/canary/utils/serializers/output/integrations.js +0 -34
  41. package/core/server/api/canary/utils/serializers/output/invites.js +0 -24
  42. package/core/server/api/canary/utils/serializers/output/labels.js +0 -25
  43. package/core/server/api/canary/utils/serializers/output/mappers/labels.js +0 -4
  44. package/core/server/api/canary/utils/serializers/output/tags.js +0 -25
  45. package/jsconfig.json +0 -13
package/.c8rc.json DELETED
@@ -1,34 +0,0 @@
1
- {
2
- "all": true,
3
- "check-coverage": true,
4
- "reporter": [
5
- "html-spa",
6
- "text-summary",
7
- "cobertura"
8
- ],
9
- "statements": 56,
10
- "branches": 85,
11
- "functions": 51,
12
- "lines": 56,
13
- "include": [
14
- "core/{*.js,frontend,server,shared}"
15
- ],
16
- "exclude": [
17
- "core/frontend/src/**",
18
- "core/frontend/public/**",
19
- "core/server/data/migrations/**",
20
- "!core/server/data/migrations/utils.js",
21
- "core/frontend/web/**",
22
- "!core/frontend/web/middleware/**",
23
- "core/server/web/api/**",
24
- "!core/server/web/api/middleware/**",
25
- "core/server/web/parent/**",
26
- "!core/server/web/parent/middleware/**",
27
- "core/server/web/shared/**",
28
- "!core/server/web/shared/middleware/**",
29
- "core/server/api/v2/**",
30
- "core/server/api/v3/**",
31
- "core/server/api/canary/**",
32
- "!core/server/api/canary/utils"
33
- ]
34
- }
package/.eslintrc.js DELETED
@@ -1,118 +0,0 @@
1
- const path = require('path');
2
-
3
- module.exports = {
4
- env: {
5
- es6: true,
6
- node: true
7
- },
8
- plugins: ['ghost'],
9
- extends: [
10
- 'plugin:ghost/node'
11
- ],
12
- rules: {
13
- // @TODO: remove this rule once it's turned into "error" in the base plugin
14
- 'no-shadow': 'error',
15
- 'no-var': 'error',
16
- 'one-var': ['error', 'never']
17
- },
18
- overrides: [
19
- {
20
- files: 'core/server/api/canary/*',
21
- rules: {
22
- 'ghost/ghost-custom/max-api-complexity': 'error'
23
- }
24
- },
25
- {
26
- files: 'core/server/data/migrations/versions/**',
27
- excludedFiles: [
28
- 'core/server/data/migrations/versions/1.*/*',
29
- 'core/server/data/migrations/versions/2.*/*',
30
- 'core/server/data/migrations/versions/3.*/*'
31
- ],
32
- rules: {
33
- 'ghost/filenames/match-regex': ['error', '^(?:\\d{2}|\\d{4}(?:-\\d{2}){4})(?:-[a-zA-Z]+)+$', true]
34
- }
35
- },
36
- {
37
- files: 'core/server/data/migrations/versions/**',
38
- rules: {
39
- 'no-restricted-syntax': ['warn', {
40
- selector: 'ForStatement',
41
- message: 'For statements can perform badly in migrations'
42
- }, {
43
- selector: 'ForOfStatement',
44
- message: 'For statements can perform badly in migrations'
45
- }, {
46
- selector: 'ForInStatement',
47
- message: 'For statements can perform badly in migrations'
48
- }, {
49
- selector: 'WhileStatement',
50
- message: 'While statements can perform badly in migrations'
51
- }, {
52
- selector: 'CallExpression[callee.property.name=\'forEach\']',
53
- message: 'Loop constructs like forEach can perform badly in migrations'
54
- }, {
55
- selector: 'CallExpression[callee.object.name=\'_\'][callee.property.name=\'each\']',
56
- message: 'Loop constructs like _.each can perform badly in migrations'
57
- }, {
58
- selector: 'CallExpression[callee.property.name=/join|innerJoin|leftJoin/] CallExpression[callee.property.name=/join|innerJoin|leftJoin/] CallExpression[callee.name=\'knex\']',
59
- message: 'Use of multiple join statements in a single knex block'
60
- }],
61
- 'ghost/no-return-in-loop/no-return-in-loop': ['error']
62
- }
63
- },
64
- {
65
- files: 'core/shared/**',
66
- rules: {
67
- 'ghost/node/no-restricted-require': ['error', [
68
- {
69
- name: path.resolve(__dirname, 'core/server/**'),
70
- message: 'Invalid require of core/server from core/shared.'
71
- },
72
- {
73
- name: path.resolve(__dirname, 'core/frontend/**'),
74
- message: 'Invalid require of core/frontend from core/shared.'
75
- }
76
- ]]
77
- }
78
- },
79
- {
80
- files: 'core/server/api/**/utils/validators/**/index.js',
81
- rules: {
82
- 'max-lines': ['off']
83
- }
84
- },
85
- /**
86
- * @TODO: enable these soon
87
- */
88
- {
89
- files: 'core/frontend/**',
90
- rules: {
91
- 'ghost/node/no-restricted-require': ['off', [
92
- // If we make the frontend entirely independent, these have to be solved too
93
- // {
94
- // name: path.resolve(__dirname, 'core/shared/**'),
95
- // message: 'Invalid require of core/shared from core/frontend.'
96
- // },
97
- // These are critical refactoring issues that we need to tackle ASAP
98
- {
99
- name: [path.resolve(__dirname, 'core/server/**')],
100
- message: 'Invalid require of core/server from core/frontend.'
101
- }
102
- ]]
103
- }
104
- },
105
- {
106
- files: 'core/server/**',
107
- rules: {
108
- 'ghost/node/no-restricted-require': ['warn', [
109
- {
110
- // Throw an error for all requires of the frontend, _except_ the url service which will be moved soon
111
- name: [path.resolve(__dirname, 'core/frontend/**')],
112
- message: 'Invalid require of core/frontend from core/server.'
113
- }
114
- ]]
115
- }
116
- }
117
- ]
118
- };
@@ -1,13 +0,0 @@
1
- const debug = require('@tryghost/debug')('api:canary:utils:serializers:output:actions');
2
- const mappers = require('./mappers');
3
-
4
- module.exports = {
5
- browse(models, apiConfig, frame) {
6
- debug('browse');
7
-
8
- frame.response = {
9
- actions: models.data.map(model => mappers.actions(model, frame)),
10
- meta: models.meta
11
- };
12
- }
13
- };
@@ -1,21 +0,0 @@
1
- const debug = require('@tryghost/debug')('api:canary:utils:serializers:output:authors');
2
- const mappers = require('./mappers');
3
-
4
- module.exports = {
5
- browse(models, apiConfig, frame) {
6
- debug('browse');
7
-
8
- frame.response = {
9
- authors: models.data.map(model => mappers.users(model, frame)),
10
- meta: models.meta
11
- };
12
- },
13
-
14
- read(model, apiConfig, frame) {
15
- debug('read');
16
-
17
- frame.response = {
18
- authors: [mappers.users(model, frame)]
19
- };
20
- }
21
- };
@@ -1,34 +0,0 @@
1
- const debug = require('@tryghost/debug')('api:canary:utils:serializers:output:integrations');
2
- const mappers = require('./mappers');
3
-
4
- module.exports = {
5
- browse({data, meta}, apiConfig, frame) {
6
- debug('browse');
7
-
8
- frame.response = {
9
- integrations: data.map(model => mappers.integrations(model, frame)),
10
- meta
11
- };
12
- },
13
- read(model, apiConfig, frame) {
14
- debug('read');
15
-
16
- frame.response = {
17
- integrations: [mappers.integrations(model, frame)]
18
- };
19
- },
20
- add(model, apiConfig, frame) {
21
- debug('add');
22
-
23
- frame.response = {
24
- integrations: [mappers.integrations(model, frame)]
25
- };
26
- },
27
- edit(model, apiConfig, frame) {
28
- debug('edit');
29
-
30
- frame.response = {
31
- integrations: [mappers.integrations(model, frame)]
32
- };
33
- }
34
- };
@@ -1,24 +0,0 @@
1
- const debug = require('@tryghost/debug')('api:canary:utils:serializers:output:invites');
2
-
3
- module.exports = {
4
- all(models, apiConfig, frame) {
5
- debug('all');
6
-
7
- if (!models) {
8
- return;
9
- }
10
-
11
- if (models.meta) {
12
- frame.response = {
13
- invites: models.data.map(model => model.toJSON(frame.options)),
14
- meta: models.meta
15
- };
16
-
17
- return;
18
- }
19
-
20
- frame.response = {
21
- invites: [models.toJSON(frame.options)]
22
- };
23
- }
24
- };
@@ -1,25 +0,0 @@
1
- const debug = require('@tryghost/debug')('api:canary:utils:serializers:output:labels');
2
- const mappers = require('./mappers');
3
-
4
- module.exports = {
5
- all(models, apiConfig, frame) {
6
- debug('all');
7
-
8
- if (!models) {
9
- return;
10
- }
11
-
12
- if (models.meta) {
13
- frame.response = {
14
- labels: models.data.map(model => mappers.labels(model, frame)),
15
- meta: models.meta
16
- };
17
-
18
- return;
19
- }
20
-
21
- frame.response = {
22
- labels: [mappers.labels(models, frame)]
23
- };
24
- }
25
- };
@@ -1,4 +0,0 @@
1
- module.exports = (model, frame) => {
2
- const jsonModel = model.toJSON ? model.toJSON(frame.options) : model;
3
- return jsonModel;
4
- };
@@ -1,25 +0,0 @@
1
- const debug = require('@tryghost/debug')('api:canary:utils:serializers:output:tags');
2
- const mappers = require('./mappers');
3
-
4
- module.exports = {
5
- all(models, apiConfig, frame) {
6
- debug('all');
7
-
8
- if (!models) {
9
- return;
10
- }
11
-
12
- if (models.meta) {
13
- frame.response = {
14
- tags: models.data.map(model => mappers.tags(model, frame)),
15
- meta: models.meta
16
- };
17
-
18
- return;
19
- }
20
-
21
- frame.response = {
22
- tags: [mappers.tags(models, frame)]
23
- };
24
- }
25
- };
package/jsconfig.json DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "include": ["core/**/*.js", "test/**/*.js"],
3
- "compilerOptions": {
4
- "checkJs": true,
5
- "module": "commonjs",
6
- "target": "es2018",
7
- "moduleResolution": "node"
8
- },
9
- "exclude": [
10
- "core/built",
11
- "core/client"
12
- ]
13
- }