@actuate-media/cms-core 0.10.3 → 0.11.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 (137) hide show
  1. package/dist/__tests__/api/admin-contracts.test.js +1 -0
  2. package/dist/__tests__/api/admin-contracts.test.js.map +1 -1
  3. package/dist/__tests__/api/public-globals.test.js +8 -4
  4. package/dist/__tests__/api/public-globals.test.js.map +1 -1
  5. package/dist/__tests__/security/audit.test.d.ts +2 -0
  6. package/dist/__tests__/security/audit.test.d.ts.map +1 -0
  7. package/dist/__tests__/security/audit.test.js +50 -0
  8. package/dist/__tests__/security/audit.test.js.map +1 -0
  9. package/dist/__tests__/security/client-ip.test.d.ts +2 -0
  10. package/dist/__tests__/security/client-ip.test.d.ts.map +1 -0
  11. package/dist/__tests__/security/client-ip.test.js +37 -0
  12. package/dist/__tests__/security/client-ip.test.js.map +1 -0
  13. package/dist/__tests__/security/ip-allowlist.test.d.ts +2 -0
  14. package/dist/__tests__/security/ip-allowlist.test.d.ts.map +1 -0
  15. package/dist/__tests__/security/ip-allowlist.test.js +40 -0
  16. package/dist/__tests__/security/ip-allowlist.test.js.map +1 -0
  17. package/dist/__tests__/security/redact.test.d.ts +2 -0
  18. package/dist/__tests__/security/redact.test.d.ts.map +1 -0
  19. package/dist/__tests__/security/redact.test.js +31 -0
  20. package/dist/__tests__/security/redact.test.js.map +1 -0
  21. package/dist/__tests__/security/secret-storage.test.d.ts +2 -0
  22. package/dist/__tests__/security/secret-storage.test.d.ts.map +1 -0
  23. package/dist/__tests__/security/secret-storage.test.js +42 -0
  24. package/dist/__tests__/security/secret-storage.test.js.map +1 -0
  25. package/dist/__tests__/security/upload-magic.test.d.ts +2 -0
  26. package/dist/__tests__/security/upload-magic.test.d.ts.map +1 -0
  27. package/dist/__tests__/security/upload-magic.test.js +55 -0
  28. package/dist/__tests__/security/upload-magic.test.js.map +1 -0
  29. package/dist/__tests__/seo/robots.test.d.ts +2 -0
  30. package/dist/__tests__/seo/robots.test.d.ts.map +1 -0
  31. package/dist/__tests__/seo/robots.test.js +51 -0
  32. package/dist/__tests__/seo/robots.test.js.map +1 -0
  33. package/dist/__tests__/server-site.test.d.ts +2 -0
  34. package/dist/__tests__/server-site.test.d.ts.map +1 -0
  35. package/dist/__tests__/server-site.test.js +123 -0
  36. package/dist/__tests__/server-site.test.js.map +1 -0
  37. package/dist/actions.d.ts.map +1 -1
  38. package/dist/actions.js +170 -34
  39. package/dist/actions.js.map +1 -1
  40. package/dist/api/handler-factory.d.ts.map +1 -1
  41. package/dist/api/handler-factory.js +64 -9
  42. package/dist/api/handler-factory.js.map +1 -1
  43. package/dist/api/handlers.d.ts.map +1 -1
  44. package/dist/api/handlers.js +692 -118
  45. package/dist/api/handlers.js.map +1 -1
  46. package/dist/api/openapi.d.ts.map +1 -1
  47. package/dist/api/openapi.js +38 -0
  48. package/dist/api/openapi.js.map +1 -1
  49. package/dist/auth/mfa-pending.d.ts +24 -0
  50. package/dist/auth/mfa-pending.d.ts.map +1 -0
  51. package/dist/auth/mfa-pending.js +38 -0
  52. package/dist/auth/mfa-pending.js.map +1 -0
  53. package/dist/auth/oauth.d.ts +25 -3
  54. package/dist/auth/oauth.d.ts.map +1 -1
  55. package/dist/auth/oauth.js +109 -20
  56. package/dist/auth/oauth.js.map +1 -1
  57. package/dist/auth/reset.d.ts.map +1 -1
  58. package/dist/auth/reset.js +26 -2
  59. package/dist/auth/reset.js.map +1 -1
  60. package/dist/auth/session.d.ts +9 -2
  61. package/dist/auth/session.d.ts.map +1 -1
  62. package/dist/auth/session.js +20 -2
  63. package/dist/auth/session.js.map +1 -1
  64. package/dist/index.d.ts +4 -2
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +3 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/middleware.d.ts.map +1 -1
  69. package/dist/middleware.js +21 -34
  70. package/dist/middleware.js.map +1 -1
  71. package/dist/page-builder/__tests__/blocks.test.js +104 -1
  72. package/dist/page-builder/__tests__/blocks.test.js.map +1 -1
  73. package/dist/page-builder/blocks.d.ts +18 -1
  74. package/dist/page-builder/blocks.d.ts.map +1 -1
  75. package/dist/page-builder/blocks.js +22 -2
  76. package/dist/page-builder/blocks.js.map +1 -1
  77. package/dist/security/audit.d.ts.map +1 -1
  78. package/dist/security/audit.js +8 -4
  79. package/dist/security/audit.js.map +1 -1
  80. package/dist/security/client-ip.d.ts +33 -0
  81. package/dist/security/client-ip.d.ts.map +1 -0
  82. package/dist/security/client-ip.js +39 -0
  83. package/dist/security/client-ip.js.map +1 -0
  84. package/dist/security/index.d.ts +7 -0
  85. package/dist/security/index.d.ts.map +1 -1
  86. package/dist/security/index.js +5 -0
  87. package/dist/security/index.js.map +1 -1
  88. package/dist/security/internal-keys.d.ts +15 -0
  89. package/dist/security/internal-keys.d.ts.map +1 -0
  90. package/dist/security/internal-keys.js +33 -0
  91. package/dist/security/internal-keys.js.map +1 -0
  92. package/dist/security/ip-allowlist.d.ts +13 -1
  93. package/dist/security/ip-allowlist.d.ts.map +1 -1
  94. package/dist/security/ip-allowlist.js +120 -12
  95. package/dist/security/ip-allowlist.js.map +1 -1
  96. package/dist/security/rate-limit.d.ts.map +1 -1
  97. package/dist/security/rate-limit.js +49 -17
  98. package/dist/security/rate-limit.js.map +1 -1
  99. package/dist/security/redact.d.ts +12 -0
  100. package/dist/security/redact.d.ts.map +1 -0
  101. package/dist/security/redact.js +41 -0
  102. package/dist/security/redact.js.map +1 -0
  103. package/dist/security/safe-fetch.d.ts +35 -0
  104. package/dist/security/safe-fetch.d.ts.map +1 -0
  105. package/dist/security/safe-fetch.js +45 -0
  106. package/dist/security/safe-fetch.js.map +1 -0
  107. package/dist/security/secret-storage.d.ts +22 -0
  108. package/dist/security/secret-storage.d.ts.map +1 -0
  109. package/dist/security/secret-storage.js +75 -0
  110. package/dist/security/secret-storage.js.map +1 -0
  111. package/dist/security/upload.d.ts +23 -4
  112. package/dist/security/upload.d.ts.map +1 -1
  113. package/dist/security/upload.js +110 -21
  114. package/dist/security/upload.js.map +1 -1
  115. package/dist/seo/index.d.ts +2 -0
  116. package/dist/seo/index.d.ts.map +1 -1
  117. package/dist/seo/index.js +1 -0
  118. package/dist/seo/index.js.map +1 -1
  119. package/dist/seo/robots.d.ts +16 -0
  120. package/dist/seo/robots.d.ts.map +1 -0
  121. package/dist/seo/robots.js +35 -0
  122. package/dist/seo/robots.js.map +1 -0
  123. package/dist/server-site.d.ts +54 -0
  124. package/dist/server-site.d.ts.map +1 -0
  125. package/dist/server-site.js +149 -0
  126. package/dist/server-site.js.map +1 -0
  127. package/dist/site.d.ts.map +1 -1
  128. package/dist/site.js +19 -1
  129. package/dist/site.js.map +1 -1
  130. package/dist/storage/index.d.ts +20 -10
  131. package/dist/storage/index.d.ts.map +1 -1
  132. package/dist/storage/index.js +6 -3
  133. package/dist/storage/index.js.map +1 -1
  134. package/dist/webhooks/index.d.ts.map +1 -1
  135. package/dist/webhooks/index.js +20 -9
  136. package/dist/webhooks/index.js.map +1 -1
  137. package/package.json +1 -1
@@ -0,0 +1,123 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { createServerSiteClient } from '../server-site.js';
3
+ function makeDb(overrides = {}) {
4
+ return {
5
+ document: {
6
+ findFirst: vi.fn(async () => null),
7
+ ...overrides.document,
8
+ },
9
+ media: {
10
+ findUnique: vi.fn(async () => null),
11
+ ...overrides.media,
12
+ },
13
+ };
14
+ }
15
+ describe('createServerSiteClient', () => {
16
+ it('throws if db is missing', () => {
17
+ expect(() => createServerSiteClient(undefined, {})).toThrow(/Prisma-compatible/);
18
+ });
19
+ it('reads global data directly from the database', async () => {
20
+ const findFirst = vi.fn(async () => ({
21
+ id: 'g-1',
22
+ collection: 'site-settings',
23
+ data: { brand: 'Actuate' },
24
+ deletedAt: null,
25
+ }));
26
+ const db = makeDb({ document: { findFirst } });
27
+ const cms = createServerSiteClient(db, {
28
+ globals: { 'site-settings': { access: { read: () => true } } },
29
+ });
30
+ const settings = await cms.getGlobal('site-settings');
31
+ expect(settings).toEqual({ brand: 'Actuate' });
32
+ expect(findFirst).toHaveBeenCalledWith({
33
+ where: { collection: 'site-settings', deletedAt: null },
34
+ });
35
+ });
36
+ it('defaults to public read when no access policy is set', async () => {
37
+ const findFirst = vi.fn(async () => ({
38
+ id: 'g-1',
39
+ collection: 'site-settings',
40
+ data: { brand: 'Actuate' },
41
+ deletedAt: null,
42
+ }));
43
+ const db = makeDb({ document: { findFirst } });
44
+ const cms = createServerSiteClient(db, { globals: { 'site-settings': {} } });
45
+ const settings = await cms.getGlobal('site-settings');
46
+ expect(settings).toEqual({ brand: 'Actuate' });
47
+ });
48
+ it('returns null when access.read denies', async () => {
49
+ const findFirst = vi.fn(async () => ({
50
+ id: 'g-1',
51
+ collection: 'site-settings',
52
+ data: { brand: 'Secret' },
53
+ deletedAt: null,
54
+ }));
55
+ const db = makeDb({ document: { findFirst } });
56
+ const cms = createServerSiteClient(db, {
57
+ globals: { 'site-settings': { access: { read: () => false } } },
58
+ });
59
+ const settings = await cms.getGlobal('site-settings');
60
+ expect(settings).toBeNull();
61
+ });
62
+ it('returns null for missing global rows', async () => {
63
+ const db = makeDb();
64
+ const cms = createServerSiteClient(db, {});
65
+ expect(await cms.getGlobal('settings')).toBeNull();
66
+ });
67
+ it('resolves the home document for the root path', async () => {
68
+ const findFirst = vi.fn(async () => ({
69
+ id: 'p-1',
70
+ collection: 'pages',
71
+ slug: 'home',
72
+ status: 'PUBLISHED',
73
+ publishedAt: new Date('2025-01-01T00:00:00Z'),
74
+ structuredData: null,
75
+ data: { slug: 'home', title: 'Home', _layout: { hero: { id: 'v-1' } } },
76
+ }));
77
+ const db = makeDb({ document: { findFirst } });
78
+ const cms = createServerSiteClient(db, {
79
+ collections: { pages: { slug: 'pages', type: 'page' } },
80
+ });
81
+ const result = await cms.resolveDocument('/');
82
+ expect(result?.data.id).toBe('p-1');
83
+ // _layout must be stripped from data and exposed top-level
84
+ expect(result?.data.data).toEqual({ slug: 'home', title: 'Home' });
85
+ expect(result?.layout).toEqual({ hero: { id: 'v-1' } });
86
+ // findFirst should target PUBLISHED + non-deleted
87
+ const firstCall = findFirst.mock.calls[0];
88
+ const args = firstCall[0];
89
+ expect(args.where.status).toBe('PUBLISHED');
90
+ expect(args.where.deletedAt).toBeNull();
91
+ });
92
+ it('returns null when no document matches the resolved path', async () => {
93
+ const db = makeDb();
94
+ const cms = createServerSiteClient(db, {
95
+ collections: { pages: { slug: 'pages', type: 'page' } },
96
+ });
97
+ expect(await cms.resolveDocument('/non-existent')).toBeNull();
98
+ });
99
+ it('resolveMedia falls back to a database lookup when given an id', async () => {
100
+ const findUnique = vi.fn(async () => ({
101
+ id: 'm-1',
102
+ storageKey: 'https://cdn.example.com/hero.jpg',
103
+ altText: 'Hero',
104
+ title: null,
105
+ width: 1200,
106
+ height: 600,
107
+ }));
108
+ const db = makeDb({ media: { findUnique } });
109
+ const cms = createServerSiteClient(db, {});
110
+ const media = await cms.resolveMedia('m-1');
111
+ expect(media).toEqual({
112
+ id: 'm-1',
113
+ url: 'https://cdn.example.com/hero.jpg',
114
+ alt: 'Hero',
115
+ title: null,
116
+ width: 1200,
117
+ height: 600,
118
+ storageKey: 'https://cdn.example.com/hero.jpg',
119
+ });
120
+ expect(findUnique).toHaveBeenCalledWith({ where: { id: 'm-1' } });
121
+ });
122
+ });
123
+ //# sourceMappingURL=server-site.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-site.test.js","sourceRoot":"","sources":["../../src/__tests__/server-site.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,SAAS,MAAM,CAAC,YAAiC,EAAE;IACjD,OAAO;QACL,QAAQ,EAAE;YACR,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;YAClC,GAAG,SAAS,CAAC,QAAQ;SACtB;QACD,KAAK,EAAE;YACL,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;YACnC,GAAG,SAAS,CAAC,KAAK;SACnB;KACF,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,SAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,KAAK;YACT,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;YAC1B,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC,CAAC;QACJ,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,EAAE;YACrC,OAAO,EAAE,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE;SAC/D,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAoB,eAAe,CAAC,CAAC;QACzE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC;YACrC,KAAK,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE;SACxD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,KAAK;YACT,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;YAC1B,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC,CAAC;QACJ,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE7E,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAoB,eAAe,CAAC,CAAC;QACzE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,KAAK;YACT,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;YACzB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC,CAAC;QACJ,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,EAAE;YACrC,OAAO,EAAE,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE;SAChE,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,KAAK;YACT,UAAU,EAAE,OAAO;YACnB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC;YAC7C,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SACxE,CAAC,CAAC,CAAC;QACJ,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,EAAE;YACrC,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;SACxD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,2DAA2D;QAC3D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACxD,kDAAkD;QAClD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAqC,CAAC;QAC9E,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,EAAE;YACrC,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;SACxD,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACpC,EAAE,EAAE,KAAK;YACT,UAAU,EAAE,kCAAkC;YAC9C,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC,CAAC;QACJ,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,EAAE,EAAE,KAAK;YACT,GAAG,EAAE,kCAAkC;YACvC,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,kCAAkC;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AA8FD,6CAA6C;AAC7C,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4ClC;AAED,6FAA6F;AAC7F,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8DlC;AAED,0EAA0E;AAC1E,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAOD,wCAAwC;AACxC,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAoBzC;AAED,8DAA8D;AAC9D,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,UAAU,CAAC,CAgFrB;AAED,2FAA2F;AAC3F,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAsDlC;AAED,4FAA4F;AAC5F,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAWzC;AAED,iFAAiF;AACjF,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAyDlC"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAqHD,6CAA6C;AAC7C,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA0DlC;AAED,6FAA6F;AAC7F,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6FlC;AAED,0EAA0E;AAC1E,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,IAAI,CAAC,CAyCf;AA6DD,wCAAwC;AACxC,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CA2BzC;AAED,8DAA8D;AAC9D,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,UAAU,CAAC,CAuFrB;AAED,2FAA2F;AAC3F,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiElC;AAED,4FAA4F;AAC5F,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAWzC;AAED,iFAAiF;AACjF,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAyDlC"}
package/dist/actions.js CHANGED
@@ -1,18 +1,27 @@
1
1
  import { extractPlainText, hashContent } from "./content/index.js";
2
2
  import { applyFieldAccess } from "./security/access.js";
3
3
  import { sanitizeHtml } from "./security/sanitize.js";
4
+ import { stripInternalDataKeys } from "./security/internal-keys.js";
4
5
  function prisma(ctx) {
5
6
  return ctx.db;
6
7
  }
8
+ /**
9
+ * Fire-and-forget webhook dispatch. Errors are logged but never thrown — the
10
+ * caller is expected to have already committed the underlying database change.
11
+ *
12
+ * MUST be called AFTER the surrounding transaction commits — never inside a
13
+ * `db.$transaction` callback. A rolled-back transaction must not dispatch
14
+ * webhooks for a doc that no longer exists.
15
+ */
7
16
  async function fireWebhook(event, data) {
8
17
  try {
9
18
  const { dispatch } = await import('./webhooks/index.js');
10
- dispatch(event, data).catch((err) => {
11
- console.error(`[actuate] Webhook dispatch failed for ${event}:`, err);
12
- });
19
+ await dispatch(event, data);
13
20
  }
14
21
  catch (err) {
15
- console.error(`[actuate] Webhook module import failed:`, err);
22
+ if (process.env.NODE_ENV !== 'test') {
23
+ console.error(`[actuate] Webhook dispatch failed for ${event}:`, err instanceof Error ? err.message : err);
24
+ }
16
25
  }
17
26
  }
18
27
  async function firePluginHooks(event, doc, ctx) {
@@ -46,6 +55,16 @@ async function firePluginHooks(event, doc, ctx) {
46
55
  console.error(`[actuate] Plugin hooks dispatch failed:`, err);
47
56
  }
48
57
  }
58
+ async function flushEffects(effects, ctx) {
59
+ for (const effect of effects) {
60
+ if (effect.kind === 'webhook') {
61
+ await fireWebhook(effect.event, effect.payload);
62
+ }
63
+ else {
64
+ await firePluginHooks(effect.event, effect.doc, ctx);
65
+ }
66
+ }
67
+ }
49
68
  function getCollectionFields(collection) {
50
69
  const config = globalThis.__actuateConfig?.collections?.[collection];
51
70
  return config?.fields ?? null;
@@ -86,14 +105,21 @@ export async function createDocument(collection, data, ctx) {
86
105
  await checkCollectionAccess(collection, 'create', ctx);
87
106
  const db = prisma(ctx);
88
107
  const user = { id: ctx.userId, role: ctx.role };
108
+ // Strip top-level page builder envelope (`layout` / `pageSettings`) and
109
+ // merge it back into `data` as `_layout` / `_pageSettings` so the storage
110
+ // shape is single-sourced. Both wire shapes are accepted for backwards
111
+ // compatibility — top-level wins when both are present.
112
+ const { envelope, rest } = extractPageBuilderEnvelope(data);
89
113
  const fields = getCollectionFields(collection);
90
114
  const accessFiltered = fields
91
- ? await applyFieldAccess("write", fields, data, user)
92
- : data;
93
- const filteredData = sanitizeDocumentData(accessFiltered, collection);
115
+ ? await applyFieldAccess("write", fields, rest, user)
116
+ : rest;
117
+ const sanitizedData = sanitizeDocumentData(accessFiltered, collection);
118
+ const filteredData = lowerPageBuilderEnvelope(sanitizedData, envelope);
94
119
  const { plainText, contentHash } = await computeTextFields(filteredData);
95
- return db.$transaction(async (tx) => {
96
- const doc = await tx.document.create({
120
+ const pendingEffects = [];
121
+ const doc = await db.$transaction(async (tx) => {
122
+ const created = await tx.document.create({
97
123
  data: {
98
124
  collection,
99
125
  title: typeof filteredData.title === 'string' ? filteredData.title : null,
@@ -109,16 +135,22 @@ export async function createDocument(collection, data, ctx) {
109
135
  });
110
136
  await tx.version.create({
111
137
  data: {
112
- documentId: doc.id,
138
+ documentId: created.id,
113
139
  data: filteredData,
114
140
  changedById: ctx.userId,
115
141
  changeType: "CREATE",
116
142
  },
117
143
  });
118
- fireWebhook('document.created', { id: doc.id, collection, title: doc.title, slug: doc.slug });
119
- firePluginHooks('afterCreate', doc, ctx);
120
- return doc;
144
+ pendingEffects.push({
145
+ kind: 'webhook',
146
+ event: 'document.created',
147
+ payload: { id: created.id, collection, title: created.title, slug: created.slug },
148
+ });
149
+ pendingEffects.push({ kind: 'plugin-hook', event: 'afterCreate', doc: created });
150
+ return created;
121
151
  });
152
+ await flushEffects(pendingEffects, ctx);
153
+ return doc;
122
154
  }
123
155
  /** Update an existing document. Merges incoming data with existing to prevent field loss. */
124
156
  export async function updateDocument(collection, id, data, ctx) {
@@ -134,16 +166,33 @@ export async function updateDocument(collection, id, data, ctx) {
134
166
  const existingData = (existing.data && typeof existing.data === 'object')
135
167
  ? existing.data
136
168
  : {};
137
- const mergedData = { ...existingData, ...data };
169
+ // Strip top-level page builder envelope before merge so we don't end up
170
+ // with a duplicate `layout` user field shadowing `_layout`. See
171
+ // {@link extractPageBuilderEnvelope} for the wire-vs-storage explanation.
172
+ const { envelope, rest } = extractPageBuilderEnvelope(data);
173
+ const mergedData = { ...existingData, ...rest };
138
174
  const fields = getCollectionFields(collection);
139
175
  const accessFiltered = fields
140
176
  ? await applyFieldAccess("write", fields, mergedData, user)
141
177
  : mergedData;
142
- const filteredData = sanitizeDocumentData(accessFiltered, collection);
178
+ const sanitizedData = sanitizeDocumentData(accessFiltered, collection);
179
+ const filteredData = lowerPageBuilderEnvelope(sanitizedData, envelope);
143
180
  const { plainText, contentHash } = await computeTextFields(filteredData);
144
- const status = typeof filteredData.status === 'string' ? filteredData.status : undefined;
145
- return db.$transaction(async (tx) => {
146
- const updated = await tx.document.update({
181
+ const PUBLISH_ROLES = new Set(['ADMIN', 'EDITOR']);
182
+ const requestedStatus = typeof filteredData.status === 'string' ? filteredData.status : undefined;
183
+ // Only EDITOR+ can change status to PUBLISHED. Authors can save drafts but
184
+ // can never publish through the document update path. (Use a dedicated
185
+ // publish endpoint with its own access check for finer-grained control.)
186
+ let status = requestedStatus;
187
+ if (status === 'PUBLISHED' && existing.status !== 'PUBLISHED' && !PUBLISH_ROLES.has(ctx.role)) {
188
+ throw new Error('Insufficient permissions to publish — only EDITOR or ADMIN may publish.');
189
+ }
190
+ // Preserve the original publishedAt when the status was already PUBLISHED;
191
+ // only stamp publishedAt on the transition into PUBLISHED.
192
+ const isPublishingNow = status === 'PUBLISHED' && existing.status !== 'PUBLISHED';
193
+ const pendingEffects = [];
194
+ const updated = await db.$transaction(async (tx) => {
195
+ const result = await tx.document.update({
147
196
  where: { id },
148
197
  data: {
149
198
  title: typeof filteredData.title === 'string' ? filteredData.title : undefined,
@@ -153,7 +202,7 @@ export async function updateDocument(collection, id, data, ctx) {
153
202
  plainText,
154
203
  contentHash,
155
204
  ...(status ? { status } : {}),
156
- ...(status === 'PUBLISHED' ? { publishedAt: new Date() } : {}),
205
+ ...(isPublishingNow ? { publishedAt: new Date() } : {}),
157
206
  },
158
207
  });
159
208
  await tx.version.create({
@@ -164,11 +213,17 @@ export async function updateDocument(collection, id, data, ctx) {
164
213
  changeType: "UPDATE",
165
214
  },
166
215
  });
167
- const webhookEvent = status === 'PUBLISHED' ? 'document.published' : 'document.updated';
168
- fireWebhook(webhookEvent, { id, collection, title: updated.title, slug: updated.slug, status: status ?? existing.status });
169
- firePluginHooks('afterUpdate', updated, ctx);
170
- return updated;
216
+ const webhookEvent = isPublishingNow ? 'document.published' : 'document.updated';
217
+ pendingEffects.push({
218
+ kind: 'webhook',
219
+ event: webhookEvent,
220
+ payload: { id, collection, title: result.title, slug: result.slug, status: status ?? existing.status },
221
+ });
222
+ pendingEffects.push({ kind: 'plugin-hook', event: 'afterUpdate', doc: result });
223
+ return result;
171
224
  });
225
+ await flushEffects(pendingEffects, ctx);
226
+ return updated;
172
227
  }
173
228
  /** Soft-delete a document. Creates a version snapshot before deletion. */
174
229
  export async function deleteDocument(collection, id, ctx) {
@@ -193,12 +248,66 @@ export async function deleteDocument(collection, id, ctx) {
193
248
  where: { id },
194
249
  data: { deletedAt: new Date() },
195
250
  });
196
- fireWebhook('document.deleted', { id, collection, title: existing.title, slug: existing.slug });
197
251
  });
252
+ await flushEffects([
253
+ {
254
+ kind: 'webhook',
255
+ event: 'document.deleted',
256
+ payload: { id, collection, title: existing.title, slug: existing.slug },
257
+ },
258
+ ], ctx);
198
259
  }
199
260
  function stripInternalKeys(data) {
200
- const { _layout, ...rest } = data;
201
- return rest;
261
+ return stripInternalDataKeys(data);
262
+ }
263
+ /**
264
+ * Page Builder envelope: the admin UI sends `layout` and `pageSettings` at
265
+ * the top level of the document, but the database stores them inside
266
+ * `data._layout` and `data._pageSettings` so they don't collide with
267
+ * user-defined fields. These two helpers normalise between the wire shape
268
+ * and the storage shape so both forms are accepted on input and the wire
269
+ * shape is consistent on output.
270
+ *
271
+ * Wire shape:
272
+ * { id, title, slug, status, data: {...}, layout?, pageSettings? }
273
+ *
274
+ * Storage shape:
275
+ * data = { ...userFields, _layout?, _pageSettings? }
276
+ */
277
+ function liftPageBuilderEnvelope(input) {
278
+ if (!input.data || typeof input.data !== 'object')
279
+ return input;
280
+ const data = input.data;
281
+ const out = { ...input };
282
+ if (data._layout !== undefined) {
283
+ out.layout = data._layout;
284
+ }
285
+ if (data._pageSettings !== undefined) {
286
+ out.pageSettings = data._pageSettings;
287
+ }
288
+ return out;
289
+ }
290
+ function lowerPageBuilderEnvelope(data, envelope) {
291
+ const out = { ...data };
292
+ if (envelope.layout !== undefined) {
293
+ out._layout = envelope.layout;
294
+ }
295
+ if (envelope.pageSettings !== undefined) {
296
+ out._pageSettings = envelope.pageSettings;
297
+ }
298
+ return out;
299
+ }
300
+ /** Pull `layout` / `pageSettings` from a write payload, returning the
301
+ * envelope and the cleaned `data` body separately. Callers can then merge
302
+ * the envelope back into `data` with {@link lowerPageBuilderEnvelope}. */
303
+ function extractPageBuilderEnvelope(input) {
304
+ const { layout, pageSettings, ...rest } = input;
305
+ const envelope = {};
306
+ if (layout !== undefined)
307
+ envelope.layout = layout;
308
+ if (pageSettings !== undefined)
309
+ envelope.pageSettings = pageSettings;
310
+ return { envelope, rest };
202
311
  }
203
312
  /** Retrieve a single document by ID. */
204
313
  export async function getDocument(collection, id, ctx) {
@@ -209,13 +318,22 @@ export async function getDocument(collection, id, ctx) {
209
318
  if (!doc)
210
319
  return null;
211
320
  if (doc.data && typeof doc.data === "object") {
212
- let data = stripInternalKeys(doc.data);
321
+ const rawData = doc.data;
322
+ let data = stripInternalKeys(rawData);
213
323
  const fields = getCollectionFields(collection);
214
324
  if (fields) {
215
325
  const user = { id: ctx.userId, role: ctx.role };
216
326
  data = await applyFieldAccess("read", fields, data, user);
217
327
  }
218
- return { ...doc, data };
328
+ // Lift _layout / _pageSettings to the wire envelope so the admin UI
329
+ // and consumers see a single canonical shape: page builder data lives
330
+ // at the top level of the document, not nested inside `data`.
331
+ const out = { ...doc, data };
332
+ if (rawData._layout !== undefined)
333
+ out.layout = rawData._layout;
334
+ if (rawData._pageSettings !== undefined)
335
+ out.pageSettings = rawData._pageSettings;
336
+ return out;
219
337
  }
220
338
  return doc;
221
339
  }
@@ -271,11 +389,20 @@ export async function listDocuments(options, ctx) {
271
389
  const user = { id: ctx.userId, role: ctx.role };
272
390
  docs = await Promise.all(rawDocs.map(async (doc) => {
273
391
  if (doc.data && typeof doc.data === "object") {
274
- let data = stripInternalKeys(doc.data);
392
+ const rawData = doc.data;
393
+ let data = stripInternalKeys(rawData);
275
394
  if (fields) {
276
395
  data = await applyFieldAccess("read", fields, data, user);
277
396
  }
278
- return { ...doc, data };
397
+ // See `getDocument` page builder envelope must be top-level on
398
+ // the wire. Without this, list views can't show titles/slugs that
399
+ // the page builder UI stores under `_pageSettings`.
400
+ const out = { ...doc, data };
401
+ if (rawData._layout !== undefined)
402
+ out.layout = rawData._layout;
403
+ if (rawData._pageSettings !== undefined)
404
+ out.pageSettings = rawData._pageSettings;
405
+ return out;
279
406
  }
280
407
  return doc;
281
408
  }));
@@ -307,8 +434,9 @@ export async function duplicateDocument(collection, sourceId, ctx) {
307
434
  clonedData.slug += "-copy";
308
435
  }
309
436
  const { plainText, contentHash } = await computeTextFields(clonedData);
310
- return db.$transaction(async (tx) => {
311
- const doc = await tx.document.create({
437
+ const pendingEffects = [];
438
+ const doc = await db.$transaction(async (tx) => {
439
+ const created = await tx.document.create({
312
440
  data: {
313
441
  collection,
314
442
  data: clonedData,
@@ -324,14 +452,22 @@ export async function duplicateDocument(collection, sourceId, ctx) {
324
452
  });
325
453
  await tx.version.create({
326
454
  data: {
327
- documentId: doc.id,
455
+ documentId: created.id,
328
456
  data: clonedData,
329
457
  changedById: ctx.userId,
330
458
  changeType: "CREATE",
331
459
  },
332
460
  });
333
- return doc;
461
+ pendingEffects.push({
462
+ kind: 'webhook',
463
+ event: 'document.created',
464
+ payload: { id: created.id, collection, title: created.title, slug: created.slug },
465
+ });
466
+ pendingEffects.push({ kind: 'plugin-hook', event: 'afterCreate', doc: created });
467
+ return created;
334
468
  });
469
+ await flushEffects(pendingEffects, ctx);
470
+ return doc;
335
471
  }
336
472
  /** Retrieve a global's data. Globals are stored as single-row collections keyed by slug. */
337
473
  export async function getGlobal(slug, ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler-factory.d.ts","sourceRoot":"","sources":["../../src/api/handler-factory.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7C;AAID,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,IA4DtC,SAAS,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CA0GnE"}
1
+ {"version":3,"file":"handler-factory.d.ts","sourceRoot":"","sources":["../../src/api/handler-factory.ts"],"names":[],"mappings":"AA+CA,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7C;AAID,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,IA+EtC,SAAS,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CA2GnE"}