ghost 4.22.1 → 4.23.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.
Files changed (128) hide show
  1. package/.c8rc.json +24 -0
  2. package/.eslintrc.js +6 -0
  3. package/Gruntfile.js +1 -1
  4. package/content/public/README.md +3 -0
  5. package/core/boot.js +20 -12
  6. package/core/built/assets/{chunk.3.1148677ff3b78e5aeaee.js → chunk.3.8f95b516d88ff4eec64c.js} +18 -18
  7. package/core/built/assets/{ghost-dark-684ad238e1a858c7cb5be6988de7c6f5.css → ghost-dark-42cf6e0c730578940ec069bda45aea41.css} +1 -1
  8. package/core/built/assets/{ghost.min-f7037eca328f4d4eb99f0309c19c9bae.js → ghost.min-cccc107e881b74c7aaf1a73e1e5e0dee.js} +189 -143
  9. package/core/built/assets/{ghost.min-66e08535f8bb797a8c40e0a2b31f1e9e.css → ghost.min-fcf6a0738421f86c47c55f20d00c5ba9.css} +1 -1
  10. package/core/built/assets/icons/powered-by-tenor.svg +35 -0
  11. package/core/built/assets/icons/tenor.svg +7 -0
  12. package/core/built/assets/{vendor.min-7c8fdd90f7ecd2e94328a07ea3b64608.js → vendor.min-c9002845b6c30ac978abdadde9f33d7c.js} +8189 -7601
  13. package/core/frontend/apps/amp/lib/views/amp.hbs +104 -0
  14. package/core/frontend/apps/private-blogging/lib/router.js +1 -1
  15. package/core/frontend/services/card-assets/service.js +21 -13
  16. package/core/frontend/services/routing/CollectionRouter.js +4 -5
  17. package/core/frontend/services/routing/EmailRouter.js +1 -1
  18. package/core/frontend/services/routing/ParentRouter.js +0 -8
  19. package/core/frontend/services/routing/PreviewRouter.js +1 -1
  20. package/core/frontend/services/routing/StaticPagesRouter.js +1 -1
  21. package/core/frontend/services/routing/StaticRoutesRouter.js +4 -4
  22. package/core/frontend/services/routing/TaxonomyRouter.js +3 -3
  23. package/core/frontend/services/routing/{middlewares → middleware}/index.js +0 -0
  24. package/core/frontend/services/routing/{middlewares → middleware}/page-param.js +0 -0
  25. package/core/frontend/services/routing/router-manager.js +7 -2
  26. package/core/frontend/services/rss/generate-feed.js +2 -1
  27. package/core/frontend/src/cards/css/bookmark.css +66 -48
  28. package/core/frontend/src/cards/css/button.css +30 -0
  29. package/core/frontend/src/cards/css/callout.css +50 -0
  30. package/core/frontend/src/cards/css/gallery.css +8 -13
  31. package/core/frontend/src/cards/css/nft.css +94 -0
  32. package/core/frontend/src/cards/css/toggle.css +47 -0
  33. package/core/frontend/src/cards/js/toggle.js +16 -0
  34. package/core/frontend/web/middleware/serve-public-file.js +14 -8
  35. package/core/frontend/web/routes.js +0 -1
  36. package/core/frontend/web/site.js +15 -12
  37. package/core/server/adapters/storage/LocalFilesStorage.js +17 -0
  38. package/core/server/adapters/storage/LocalImagesStorage.js +1 -0
  39. package/core/server/adapters/storage/LocalMediaStorage.js +2 -1
  40. package/core/server/adapters/storage/LocalStorageBase.js +30 -5
  41. package/core/server/api/canary/authentication.js +1 -1
  42. package/core/server/api/canary/files.js +19 -0
  43. package/core/server/api/canary/index.js +4 -0
  44. package/core/server/api/canary/media.js +25 -5
  45. package/core/server/api/canary/oembed.js +3 -0
  46. package/core/server/api/canary/utils/serializers/input/index.js +4 -0
  47. package/core/server/api/canary/utils/serializers/input/media.js +8 -0
  48. package/core/server/api/canary/utils/serializers/output/config.js +21 -14
  49. package/core/server/api/canary/utils/serializers/output/files.js +27 -0
  50. package/core/server/api/canary/utils/serializers/output/index.js +4 -0
  51. package/core/server/api/canary/utils/serializers/output/media.js +9 -0
  52. package/core/server/api/canary/utils/validators/input/files.js +7 -0
  53. package/core/server/api/canary/utils/validators/input/index.js +4 -0
  54. package/core/server/api/canary/utils/validators/input/media.js +4 -0
  55. package/core/server/api/v2/authentication.js +1 -1
  56. package/core/server/api/v3/authentication.js +1 -1
  57. package/core/server/data/db/connection.js +7 -0
  58. package/core/server/data/importer/importers/data/data-importer.js +3 -3
  59. package/core/server/data/migrations/init/2-create-fixtures.js +3 -20
  60. package/core/server/data/migrations/versions/1.21/1-add-contributor-role.js +5 -5
  61. package/core/server/data/migrations/versions/2.15/2-insert-zapier-integration.js +3 -3
  62. package/core/server/data/migrations/versions/2.2/3-insert-admin-integration-role.js +5 -5
  63. package/core/server/data/migrations/versions/2.27/1-insert-ghost-db-backup-role.js +5 -6
  64. package/core/server/data/migrations/versions/2.27/2-insert-db-backup-integration.js +3 -4
  65. package/core/server/data/migrations/versions/2.28/3-insert-ghost-scheduler-role.js +7 -7
  66. package/core/server/data/migrations/versions/2.28/4-insert-scheduler-integration.js +3 -3
  67. package/core/server/data/migrations/versions/4.23/01-truncate-offer-names.js +58 -0
  68. package/core/server/data/schema/fixtures/fixture-manager.js +340 -0
  69. package/core/server/data/schema/fixtures/index.js +8 -2
  70. package/core/server/services/mega/post-email-serializer.js +5 -1
  71. package/core/server/services/mega/segment-parser.js +1 -2
  72. package/core/server/services/mega/template.js +69 -1
  73. package/core/server/services/nft-oembed.js +57 -0
  74. package/core/server/services/oembed.js +161 -126
  75. package/core/server/services/public-config/config.js +2 -1
  76. package/core/server/services/stripe/index.js +4 -2
  77. package/core/server/services/url/Resource.js +1 -1
  78. package/core/server/services/url/Resources.js +36 -23
  79. package/core/server/services/url/UrlGenerator.js +23 -20
  80. package/core/server/services/url/UrlService.js +123 -21
  81. package/core/server/services/url/Urls.js +7 -2
  82. package/core/server/services/url/index.js +9 -1
  83. package/core/server/web/admin/app.js +6 -6
  84. package/core/server/web/admin/views/default-prod.html +4 -4
  85. package/core/server/web/admin/views/default.html +4 -4
  86. package/core/server/web/api/app.js +1 -1
  87. package/core/server/web/api/canary/admin/app.js +4 -4
  88. package/core/server/web/api/canary/admin/middleware.js +6 -6
  89. package/core/server/web/api/canary/admin/routes.js +20 -5
  90. package/core/server/web/api/canary/content/app.js +4 -4
  91. package/core/server/web/api/canary/content/middleware.js +3 -3
  92. package/core/server/web/api/middleware/cors.js +7 -7
  93. package/core/server/web/api/v2/admin/app.js +4 -4
  94. package/core/server/web/api/v2/admin/middleware.js +6 -6
  95. package/core/server/web/api/v2/admin/routes.js +5 -5
  96. package/core/server/web/api/v2/content/app.js +4 -4
  97. package/core/server/web/api/v2/content/middleware.js +3 -3
  98. package/core/server/web/api/v3/admin/app.js +4 -4
  99. package/core/server/web/api/v3/admin/middleware.js +6 -6
  100. package/core/server/web/api/v3/admin/routes.js +5 -5
  101. package/core/server/web/api/v3/content/app.js +4 -4
  102. package/core/server/web/api/v3/content/middleware.js +3 -3
  103. package/core/server/web/members/app.js +7 -7
  104. package/core/server/web/oauth/app.js +1 -1
  105. package/core/server/web/parent/app.js +2 -3
  106. package/core/server/web/parent/frontend.js +1 -1
  107. package/core/server/web/shared/index.js +2 -2
  108. package/core/server/web/shared/{middlewares → middleware}/api/index.js +0 -0
  109. package/core/server/web/shared/{middlewares → middleware}/api/spam-prevention.js +0 -0
  110. package/core/server/web/shared/{middlewares → middleware}/brute.js +0 -0
  111. package/core/server/web/shared/{middlewares → middleware}/cache-control.js +0 -0
  112. package/core/server/web/shared/{middlewares → middleware}/error-handler.js +0 -0
  113. package/core/server/web/shared/{middlewares → middleware}/index.js +0 -0
  114. package/core/server/web/shared/{middlewares → middleware}/maintenance.js +0 -0
  115. package/core/server/web/shared/{middlewares → middleware}/pretty-urls.js +0 -0
  116. package/core/server/web/shared/{middlewares → middleware}/uncapitalise.js +0 -0
  117. package/core/server/web/shared/{middlewares → middleware}/url-redirects.js +0 -0
  118. package/core/shared/config/defaults.json +10 -2
  119. package/core/shared/config/helpers.js +44 -0
  120. package/core/shared/config/loader.js +1 -1
  121. package/core/shared/config/overrides.json +2 -2
  122. package/core/shared/labs.js +8 -1
  123. package/loggingrc.js +19 -20
  124. package/package.json +35 -35
  125. package/urls.json +597 -0
  126. package/yarn.lock +655 -339
  127. package/core/server/data/schema/fixtures/utils.js +0 -321
  128. package/core/server/web/parent/vhost-utils.js +0 -39
package/urls.json ADDED
@@ -0,0 +1,597 @@
1
+ {
2
+ "618b9c362ca142fcb133ed92": {
3
+ "url": "/integrations/",
4
+ "generatorId": 0,
5
+ "resource": {
6
+ "_events": {},
7
+ "_eventsCount": 2,
8
+ "data": {
9
+ "id": "618b9c362ca142fcb133ed92",
10
+ "uuid": "1014c0fe-ffe4-4f7f-86fe-58c959c7aa18",
11
+ "slug": "integrations",
12
+ "comment_id": "618b9c362ca142fcb133ed92",
13
+ "feature_image": "https://static.ghost.org/v4.0.0/images/app-integrations.png",
14
+ "featured": false,
15
+ "type": "post",
16
+ "visibility": "public",
17
+ "email_recipient_filter": "none",
18
+ "created_at": "2021-11-10T10:17:26.000Z",
19
+ "created_by": "1",
20
+ "updated_at": "2021-11-10T10:17:26.000Z",
21
+ "updated_by": "1",
22
+ "published_at": "2021-11-10T10:17:26.000Z",
23
+ "published_by": "1",
24
+ "canonical_url": null,
25
+ "tags": [
26
+ {
27
+ "post_id": "618b9c362ca142fcb133ed92",
28
+ "visibility": "public",
29
+ "id": "618b9c352ca142fcb133ed2c",
30
+ "slug": "getting-started"
31
+ }
32
+ ],
33
+ "authors": [
34
+ {
35
+ "post_id": "618b9c362ca142fcb133ed92",
36
+ "id": "5951f5fca366002ebd5dbef7",
37
+ "slug": "ghost"
38
+ }
39
+ ],
40
+ "author": "5951f5fca366002ebd5dbef7",
41
+ "primary_author": {
42
+ "post_id": "618b9c362ca142fcb133ed92",
43
+ "id": "5951f5fca366002ebd5dbef7",
44
+ "slug": "ghost"
45
+ },
46
+ "primary_tag": {
47
+ "post_id": "618b9c362ca142fcb133ed92",
48
+ "visibility": "public",
49
+ "id": "618b9c352ca142fcb133ed2c",
50
+ "slug": "getting-started"
51
+ }
52
+ },
53
+ "config": {
54
+ "type": "posts",
55
+ "reserved": true
56
+ }
57
+ }
58
+ },
59
+ "618b9c372ca142fcb133ed94": {
60
+ "url": "/grow/",
61
+ "generatorId": 0,
62
+ "resource": {
63
+ "_events": {},
64
+ "_eventsCount": 2,
65
+ "data": {
66
+ "id": "618b9c372ca142fcb133ed94",
67
+ "uuid": "760cd9f7-4972-4899-980f-dde8c4dbb238",
68
+ "slug": "grow",
69
+ "comment_id": "618b9c372ca142fcb133ed94",
70
+ "feature_image": "https://static.ghost.org/v4.0.0/images/admin-settings.png",
71
+ "featured": false,
72
+ "type": "post",
73
+ "visibility": "public",
74
+ "email_recipient_filter": "none",
75
+ "created_at": "2021-11-10T10:17:27.000Z",
76
+ "created_by": "1",
77
+ "updated_at": "2021-11-10T10:17:27.000Z",
78
+ "updated_by": "1",
79
+ "published_at": "2021-11-10T10:17:27.000Z",
80
+ "published_by": "1",
81
+ "canonical_url": null,
82
+ "tags": [
83
+ {
84
+ "post_id": "618b9c372ca142fcb133ed94",
85
+ "visibility": "public",
86
+ "id": "618b9c352ca142fcb133ed2c",
87
+ "slug": "getting-started"
88
+ }
89
+ ],
90
+ "authors": [
91
+ {
92
+ "post_id": "618b9c372ca142fcb133ed94",
93
+ "id": "5951f5fca366002ebd5dbef7",
94
+ "slug": "ghost"
95
+ }
96
+ ],
97
+ "author": "5951f5fca366002ebd5dbef7",
98
+ "primary_author": {
99
+ "post_id": "618b9c372ca142fcb133ed94",
100
+ "id": "5951f5fca366002ebd5dbef7",
101
+ "slug": "ghost"
102
+ },
103
+ "primary_tag": {
104
+ "post_id": "618b9c372ca142fcb133ed94",
105
+ "visibility": "public",
106
+ "id": "618b9c352ca142fcb133ed2c",
107
+ "slug": "getting-started"
108
+ }
109
+ },
110
+ "config": {
111
+ "type": "posts",
112
+ "reserved": true
113
+ }
114
+ }
115
+ },
116
+ "618b9c372ca142fcb133ed96": {
117
+ "url": "/sell/",
118
+ "generatorId": 0,
119
+ "resource": {
120
+ "_events": {},
121
+ "_eventsCount": 2,
122
+ "data": {
123
+ "id": "618b9c372ca142fcb133ed96",
124
+ "uuid": "85982fdf-4788-463c-8da0-41996425f23d",
125
+ "slug": "sell",
126
+ "comment_id": "618b9c372ca142fcb133ed96",
127
+ "feature_image": "https://static.ghost.org/v4.0.0/images/organizing-your-content.png",
128
+ "featured": false,
129
+ "type": "post",
130
+ "visibility": "paid",
131
+ "email_recipient_filter": "none",
132
+ "created_at": "2021-11-10T10:17:27.000Z",
133
+ "created_by": "1",
134
+ "updated_at": "2021-11-10T10:17:27.000Z",
135
+ "updated_by": "1",
136
+ "published_at": "2021-11-10T10:17:28.000Z",
137
+ "published_by": "1",
138
+ "canonical_url": null,
139
+ "tags": [
140
+ {
141
+ "post_id": "618b9c372ca142fcb133ed96",
142
+ "visibility": "public",
143
+ "id": "618b9c352ca142fcb133ed2c",
144
+ "slug": "getting-started"
145
+ }
146
+ ],
147
+ "authors": [
148
+ {
149
+ "post_id": "618b9c372ca142fcb133ed96",
150
+ "id": "5951f5fca366002ebd5dbef7",
151
+ "slug": "ghost"
152
+ }
153
+ ],
154
+ "author": "5951f5fca366002ebd5dbef7",
155
+ "primary_author": {
156
+ "post_id": "618b9c372ca142fcb133ed96",
157
+ "id": "5951f5fca366002ebd5dbef7",
158
+ "slug": "ghost"
159
+ },
160
+ "primary_tag": {
161
+ "post_id": "618b9c372ca142fcb133ed96",
162
+ "visibility": "public",
163
+ "id": "618b9c352ca142fcb133ed2c",
164
+ "slug": "getting-started"
165
+ }
166
+ },
167
+ "config": {
168
+ "type": "posts",
169
+ "reserved": true
170
+ }
171
+ }
172
+ },
173
+ "618b9c372ca142fcb133ed98": {
174
+ "url": "/portal/",
175
+ "generatorId": 0,
176
+ "resource": {
177
+ "_events": {},
178
+ "_eventsCount": 2,
179
+ "data": {
180
+ "id": "618b9c372ca142fcb133ed98",
181
+ "uuid": "564c2a9e-0248-4a55-916a-8ac7c49a412c",
182
+ "slug": "portal",
183
+ "comment_id": "618b9c372ca142fcb133ed98",
184
+ "feature_image": "https://static.ghost.org/v4.0.0/images/creating-a-custom-theme.png",
185
+ "featured": false,
186
+ "type": "post",
187
+ "visibility": "public",
188
+ "email_recipient_filter": "none",
189
+ "created_at": "2021-11-10T10:17:27.000Z",
190
+ "created_by": "1",
191
+ "updated_at": "2021-11-10T10:17:27.000Z",
192
+ "updated_by": "1",
193
+ "published_at": "2021-11-10T10:17:29.000Z",
194
+ "published_by": "1",
195
+ "canonical_url": null,
196
+ "tags": [
197
+ {
198
+ "post_id": "618b9c372ca142fcb133ed98",
199
+ "visibility": "public",
200
+ "id": "618b9c352ca142fcb133ed2c",
201
+ "slug": "getting-started"
202
+ }
203
+ ],
204
+ "authors": [
205
+ {
206
+ "post_id": "618b9c372ca142fcb133ed98",
207
+ "id": "5951f5fca366002ebd5dbef7",
208
+ "slug": "ghost"
209
+ }
210
+ ],
211
+ "author": "5951f5fca366002ebd5dbef7",
212
+ "primary_author": {
213
+ "post_id": "618b9c372ca142fcb133ed98",
214
+ "id": "5951f5fca366002ebd5dbef7",
215
+ "slug": "ghost"
216
+ },
217
+ "primary_tag": {
218
+ "post_id": "618b9c372ca142fcb133ed98",
219
+ "visibility": "public",
220
+ "id": "618b9c352ca142fcb133ed2c",
221
+ "slug": "getting-started"
222
+ }
223
+ },
224
+ "config": {
225
+ "type": "posts",
226
+ "reserved": true
227
+ }
228
+ }
229
+ },
230
+ "618b9c372ca142fcb133ed9a": {
231
+ "url": "/write/",
232
+ "generatorId": 0,
233
+ "resource": {
234
+ "_events": {},
235
+ "_eventsCount": 2,
236
+ "data": {
237
+ "id": "618b9c372ca142fcb133ed9a",
238
+ "uuid": "71fc2d7c-dbe1-4a56-adb9-f74c8cadbfc6",
239
+ "slug": "write",
240
+ "comment_id": "618b9c372ca142fcb133ed9a",
241
+ "feature_image": "https://static.ghost.org/v4.0.0/images/writing-posts-with-ghost.png",
242
+ "featured": false,
243
+ "type": "post",
244
+ "visibility": "public",
245
+ "email_recipient_filter": "none",
246
+ "created_at": "2021-11-10T10:17:27.000Z",
247
+ "created_by": "1",
248
+ "updated_at": "2021-11-10T10:17:27.000Z",
249
+ "updated_by": "1",
250
+ "published_at": "2021-11-10T10:17:30.000Z",
251
+ "published_by": "1",
252
+ "canonical_url": null,
253
+ "tags": [
254
+ {
255
+ "post_id": "618b9c372ca142fcb133ed9a",
256
+ "visibility": "public",
257
+ "id": "618b9c352ca142fcb133ed2c",
258
+ "slug": "getting-started"
259
+ }
260
+ ],
261
+ "authors": [
262
+ {
263
+ "post_id": "618b9c372ca142fcb133ed9a",
264
+ "id": "5951f5fca366002ebd5dbef7",
265
+ "slug": "ghost"
266
+ }
267
+ ],
268
+ "author": "5951f5fca366002ebd5dbef7",
269
+ "primary_author": {
270
+ "post_id": "618b9c372ca142fcb133ed9a",
271
+ "id": "5951f5fca366002ebd5dbef7",
272
+ "slug": "ghost"
273
+ },
274
+ "primary_tag": {
275
+ "post_id": "618b9c372ca142fcb133ed9a",
276
+ "visibility": "public",
277
+ "id": "618b9c352ca142fcb133ed2c",
278
+ "slug": "getting-started"
279
+ }
280
+ },
281
+ "config": {
282
+ "type": "posts",
283
+ "reserved": true
284
+ }
285
+ }
286
+ },
287
+ "618b9c372ca142fcb133ed9c": {
288
+ "url": "/design/",
289
+ "generatorId": 0,
290
+ "resource": {
291
+ "_events": {},
292
+ "_eventsCount": 2,
293
+ "data": {
294
+ "id": "618b9c372ca142fcb133ed9c",
295
+ "uuid": "cdd30e29-aace-41b9-8d0a-67f4697db701",
296
+ "slug": "design",
297
+ "comment_id": "618b9c372ca142fcb133ed9c",
298
+ "feature_image": "https://static.ghost.org/v4.0.0/images/publishing-options.png",
299
+ "featured": false,
300
+ "type": "post",
301
+ "visibility": "public",
302
+ "email_recipient_filter": "none",
303
+ "created_at": "2021-11-10T10:17:27.000Z",
304
+ "created_by": "1",
305
+ "updated_at": "2021-11-10T10:17:27.000Z",
306
+ "updated_by": "1",
307
+ "published_at": "2021-11-10T10:17:31.000Z",
308
+ "published_by": "1",
309
+ "canonical_url": null,
310
+ "tags": [
311
+ {
312
+ "post_id": "618b9c372ca142fcb133ed9c",
313
+ "visibility": "public",
314
+ "id": "618b9c352ca142fcb133ed2c",
315
+ "slug": "getting-started"
316
+ }
317
+ ],
318
+ "authors": [
319
+ {
320
+ "post_id": "618b9c372ca142fcb133ed9c",
321
+ "id": "5951f5fca366002ebd5dbef7",
322
+ "slug": "ghost"
323
+ }
324
+ ],
325
+ "author": "5951f5fca366002ebd5dbef7",
326
+ "primary_author": {
327
+ "post_id": "618b9c372ca142fcb133ed9c",
328
+ "id": "5951f5fca366002ebd5dbef7",
329
+ "slug": "ghost"
330
+ },
331
+ "primary_tag": {
332
+ "post_id": "618b9c372ca142fcb133ed9c",
333
+ "visibility": "public",
334
+ "id": "618b9c352ca142fcb133ed2c",
335
+ "slug": "getting-started"
336
+ }
337
+ },
338
+ "config": {
339
+ "type": "posts",
340
+ "reserved": true
341
+ }
342
+ }
343
+ },
344
+ "618b9c372ca142fcb133ed9e": {
345
+ "url": "/welcome/",
346
+ "generatorId": 0,
347
+ "resource": {
348
+ "_events": {},
349
+ "_eventsCount": 2,
350
+ "data": {
351
+ "id": "618b9c372ca142fcb133ed9e",
352
+ "uuid": "b1114329-ee44-4adf-bb96-cbb0da751495",
353
+ "slug": "welcome",
354
+ "comment_id": "618b9c372ca142fcb133ed9e",
355
+ "feature_image": "https://static.ghost.org/v4.0.0/images/welcome-to-ghost.png",
356
+ "featured": false,
357
+ "type": "post",
358
+ "visibility": "public",
359
+ "email_recipient_filter": "none",
360
+ "created_at": "2021-11-10T10:17:27.000Z",
361
+ "created_by": "1",
362
+ "updated_at": "2021-11-10T10:17:27.000Z",
363
+ "updated_by": "1",
364
+ "published_at": "2021-11-10T10:17:32.000Z",
365
+ "published_by": "1",
366
+ "canonical_url": null,
367
+ "tags": [
368
+ {
369
+ "post_id": "618b9c372ca142fcb133ed9e",
370
+ "visibility": "public",
371
+ "id": "618b9c352ca142fcb133ed2c",
372
+ "slug": "getting-started"
373
+ }
374
+ ],
375
+ "authors": [
376
+ {
377
+ "post_id": "618b9c372ca142fcb133ed9e",
378
+ "id": "5951f5fca366002ebd5dbef7",
379
+ "slug": "ghost"
380
+ }
381
+ ],
382
+ "author": "5951f5fca366002ebd5dbef7",
383
+ "primary_author": {
384
+ "post_id": "618b9c372ca142fcb133ed9e",
385
+ "id": "5951f5fca366002ebd5dbef7",
386
+ "slug": "ghost"
387
+ },
388
+ "primary_tag": {
389
+ "post_id": "618b9c372ca142fcb133ed9e",
390
+ "visibility": "public",
391
+ "id": "618b9c352ca142fcb133ed2c",
392
+ "slug": "getting-started"
393
+ }
394
+ },
395
+ "config": {
396
+ "type": "posts",
397
+ "reserved": true
398
+ }
399
+ }
400
+ },
401
+ "618b9c372ca142fcb133eda0": {
402
+ "url": "/about/",
403
+ "generatorId": 1,
404
+ "resource": {
405
+ "_events": {},
406
+ "_eventsCount": 2,
407
+ "data": {
408
+ "id": "618b9c372ca142fcb133eda0",
409
+ "uuid": "c44a967e-286a-4e7a-9ebe-18d7c6132b13",
410
+ "slug": "about",
411
+ "comment_id": "618b9c372ca142fcb133eda0",
412
+ "feature_image": null,
413
+ "featured": false,
414
+ "type": "page",
415
+ "status": "published",
416
+ "visibility": "public",
417
+ "email_recipient_filter": "none",
418
+ "created_at": "2021-11-10T10:17:27.000Z",
419
+ "created_by": "1",
420
+ "updated_at": "2021-11-10T10:17:27.000Z",
421
+ "updated_by": "1",
422
+ "published_at": "2021-11-10T10:17:33.000Z",
423
+ "published_by": "1",
424
+ "canonical_url": null,
425
+ "author": "5951f5fca366002ebd5dbef7",
426
+ "primary_author": null,
427
+ "primary_tag": null
428
+ },
429
+ "config": {
430
+ "type": "pages",
431
+ "reserved": true
432
+ }
433
+ }
434
+ },
435
+ "618b9c372ca142fcb133eda2": {
436
+ "url": "/contact/",
437
+ "generatorId": 1,
438
+ "resource": {
439
+ "_events": {},
440
+ "_eventsCount": 2,
441
+ "data": {
442
+ "id": "618b9c372ca142fcb133eda2",
443
+ "uuid": "d4e907a2-0fb7-400a-b068-0959ff591ac2",
444
+ "slug": "contact",
445
+ "comment_id": "618b9c372ca142fcb133eda2",
446
+ "feature_image": null,
447
+ "featured": false,
448
+ "type": "page",
449
+ "status": "published",
450
+ "visibility": "public",
451
+ "email_recipient_filter": "none",
452
+ "created_at": "2021-11-10T10:17:27.000Z",
453
+ "created_by": "1",
454
+ "updated_at": "2021-11-10T10:17:27.000Z",
455
+ "updated_by": "1",
456
+ "published_at": "2021-11-10T10:17:34.000Z",
457
+ "published_by": "1",
458
+ "canonical_url": null,
459
+ "author": "5951f5fca366002ebd5dbef7",
460
+ "primary_author": null,
461
+ "primary_tag": null
462
+ },
463
+ "config": {
464
+ "type": "pages",
465
+ "reserved": true
466
+ }
467
+ }
468
+ },
469
+ "618b9c372ca142fcb133eda4": {
470
+ "url": "/privacy/",
471
+ "generatorId": 1,
472
+ "resource": {
473
+ "_events": {},
474
+ "_eventsCount": 2,
475
+ "data": {
476
+ "id": "618b9c372ca142fcb133eda4",
477
+ "uuid": "3d0261a9-f165-4d50-b7f4-c2001afa3685",
478
+ "slug": "privacy",
479
+ "comment_id": "618b9c372ca142fcb133eda4",
480
+ "feature_image": null,
481
+ "featured": false,
482
+ "type": "page",
483
+ "status": "published",
484
+ "visibility": "public",
485
+ "email_recipient_filter": "none",
486
+ "created_at": "2021-11-10T10:17:27.000Z",
487
+ "created_by": "1",
488
+ "updated_at": "2021-11-10T10:17:27.000Z",
489
+ "updated_by": "1",
490
+ "published_at": "2021-11-10T10:17:35.000Z",
491
+ "published_by": "1",
492
+ "canonical_url": null,
493
+ "author": "5951f5fca366002ebd5dbef7",
494
+ "primary_author": null,
495
+ "primary_tag": null
496
+ },
497
+ "config": {
498
+ "type": "pages",
499
+ "reserved": true
500
+ }
501
+ }
502
+ },
503
+ "618b9c372ca142fcb133eda6": {
504
+ "url": "/contribute/",
505
+ "generatorId": 1,
506
+ "resource": {
507
+ "_events": {},
508
+ "_eventsCount": 2,
509
+ "data": {
510
+ "id": "618b9c372ca142fcb133eda6",
511
+ "uuid": "e892e57d-5020-46ce-a673-a79ed113b8b8",
512
+ "slug": "contribute",
513
+ "comment_id": "618b9c372ca142fcb133eda6",
514
+ "feature_image": null,
515
+ "featured": false,
516
+ "type": "page",
517
+ "status": "published",
518
+ "visibility": "public",
519
+ "email_recipient_filter": "none",
520
+ "created_at": "2021-11-10T10:17:27.000Z",
521
+ "created_by": "1",
522
+ "updated_at": "2021-11-10T10:17:27.000Z",
523
+ "updated_by": "1",
524
+ "published_at": "2021-11-10T10:17:36.000Z",
525
+ "published_by": "1",
526
+ "canonical_url": null,
527
+ "author": "5951f5fca366002ebd5dbef7",
528
+ "primary_author": null,
529
+ "primary_tag": null
530
+ },
531
+ "config": {
532
+ "type": "pages",
533
+ "reserved": true
534
+ }
535
+ }
536
+ },
537
+ "618b9c352ca142fcb133ed2c": {
538
+ "url": "/tag/getting-started/",
539
+ "generatorId": 2,
540
+ "resource": {
541
+ "_events": {},
542
+ "_eventsCount": 2,
543
+ "data": {
544
+ "id": "618b9c352ca142fcb133ed2c",
545
+ "name": "Getting Started",
546
+ "slug": "getting-started",
547
+ "feature_image": null,
548
+ "visibility": "public",
549
+ "og_image": null,
550
+ "og_title": null,
551
+ "og_description": null,
552
+ "twitter_image": null,
553
+ "twitter_title": null,
554
+ "twitter_description": null,
555
+ "codeinjection_head": null,
556
+ "codeinjection_foot": null,
557
+ "canonical_url": null,
558
+ "accent_color": null,
559
+ "created_at": "2021-11-10T10:17:25.000Z",
560
+ "created_by": "1",
561
+ "updated_at": "2021-11-10T10:17:25.000Z",
562
+ "updated_by": "1"
563
+ },
564
+ "config": {
565
+ "type": "tags",
566
+ "reserved": true
567
+ }
568
+ }
569
+ },
570
+ "5951f5fca366002ebd5dbef7": {
571
+ "url": "/author/ghost/",
572
+ "generatorId": 3,
573
+ "resource": {
574
+ "_events": {},
575
+ "_eventsCount": 2,
576
+ "data": {
577
+ "id": "5951f5fca366002ebd5dbef7",
578
+ "name": "Ghost",
579
+ "slug": "ghost",
580
+ "email": "ghost-author@example.com",
581
+ "profile_image": "https://static.ghost.org/v4.0.0/images/ghost-user.png",
582
+ "cover_image": null,
583
+ "status": "active",
584
+ "visibility": "public",
585
+ "last_seen": null,
586
+ "created_at": "2021-11-10T10:17:26.000Z",
587
+ "created_by": "1",
588
+ "updated_at": "2021-11-10T10:17:26.000Z",
589
+ "updated_by": "1"
590
+ },
591
+ "config": {
592
+ "type": "authors",
593
+ "reserved": true
594
+ }
595
+ }
596
+ }
597
+ }