@vertebr/admin 0.9.0 → 0.10.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 (133) hide show
  1. package/dist/database/connector.d.ts.map +1 -1
  2. package/dist/database/connector.js +45 -2
  3. package/dist/database/connector.js.map +1 -1
  4. package/dist/database/types.d.ts +5 -0
  5. package/dist/database/types.d.ts.map +1 -1
  6. package/dist/index.d.ts +7 -4
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +10 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/runtime/api/adapters/express.d.ts +10 -0
  11. package/dist/runtime/api/adapters/express.d.ts.map +1 -0
  12. package/dist/runtime/api/adapters/express.js +80 -0
  13. package/dist/runtime/api/adapters/express.js.map +1 -0
  14. package/dist/runtime/api/adapters/fastify.d.ts +31 -0
  15. package/dist/runtime/api/adapters/fastify.d.ts.map +1 -0
  16. package/dist/runtime/api/adapters/fastify.js +85 -0
  17. package/dist/runtime/api/adapters/fastify.js.map +1 -0
  18. package/dist/runtime/api/adapters/hapi.d.ts +6 -0
  19. package/dist/runtime/api/adapters/hapi.d.ts.map +1 -0
  20. package/dist/runtime/api/adapters/hapi.js +45 -0
  21. package/dist/runtime/api/adapters/hapi.js.map +1 -0
  22. package/dist/runtime/api/adapters/shared.d.ts +17 -0
  23. package/dist/runtime/api/adapters/shared.d.ts.map +1 -0
  24. package/dist/runtime/api/adapters/shared.js +37 -0
  25. package/dist/runtime/api/adapters/shared.js.map +1 -0
  26. package/dist/runtime/api/audit.d.ts +8 -0
  27. package/dist/runtime/api/audit.d.ts.map +1 -0
  28. package/dist/runtime/api/audit.js +30 -0
  29. package/dist/runtime/api/audit.js.map +1 -0
  30. package/dist/runtime/api/catalog.d.ts +28 -0
  31. package/dist/runtime/api/catalog.d.ts.map +1 -1
  32. package/dist/runtime/api/catalog.js +125 -83
  33. package/dist/runtime/api/catalog.js.map +1 -1
  34. package/dist/runtime/api/configs.d.ts +14 -0
  35. package/dist/runtime/api/configs.d.ts.map +1 -1
  36. package/dist/runtime/api/configs.js +128 -2
  37. package/dist/runtime/api/configs.js.map +1 -1
  38. package/dist/runtime/api/health.d.ts +7 -0
  39. package/dist/runtime/api/health.d.ts.map +1 -0
  40. package/dist/runtime/api/health.js +21 -0
  41. package/dist/runtime/api/health.js.map +1 -0
  42. package/dist/runtime/api/jobs.d.ts +12 -0
  43. package/dist/runtime/api/jobs.d.ts.map +1 -0
  44. package/dist/runtime/api/jobs.js +34 -0
  45. package/dist/runtime/api/jobs.js.map +1 -0
  46. package/dist/runtime/api/metrics.d.ts.map +1 -1
  47. package/dist/runtime/api/metrics.js +2 -0
  48. package/dist/runtime/api/metrics.js.map +1 -1
  49. package/dist/runtime/api/public.d.ts.map +1 -1
  50. package/dist/runtime/api/public.js +2 -1
  51. package/dist/runtime/api/public.js.map +1 -1
  52. package/dist/runtime/api/resources.d.ts +29 -0
  53. package/dist/runtime/api/resources.d.ts.map +1 -1
  54. package/dist/runtime/api/resources.js +247 -7
  55. package/dist/runtime/api/resources.js.map +1 -1
  56. package/dist/runtime/api/revisions.d.ts +35 -0
  57. package/dist/runtime/api/revisions.d.ts.map +1 -0
  58. package/dist/runtime/api/revisions.js +174 -0
  59. package/dist/runtime/api/revisions.js.map +1 -0
  60. package/dist/runtime/api/routes.d.ts +2 -5
  61. package/dist/runtime/api/routes.d.ts.map +1 -1
  62. package/dist/runtime/api/routes.js +51 -40
  63. package/dist/runtime/api/routes.js.map +1 -1
  64. package/dist/runtime/api/sync.d.ts.map +1 -1
  65. package/dist/runtime/api/sync.js +32 -2
  66. package/dist/runtime/api/sync.js.map +1 -1
  67. package/dist/runtime/createAdmin.d.ts.map +1 -1
  68. package/dist/runtime/createAdmin.js +33 -1
  69. package/dist/runtime/createAdmin.js.map +1 -1
  70. package/dist/runtime/errors.d.ts +8 -0
  71. package/dist/runtime/errors.d.ts.map +1 -1
  72. package/dist/runtime/errors.js +17 -1
  73. package/dist/runtime/errors.js.map +1 -1
  74. package/dist/runtime/services/access.d.ts +14 -0
  75. package/dist/runtime/services/access.d.ts.map +1 -0
  76. package/dist/runtime/services/access.js +49 -0
  77. package/dist/runtime/services/access.js.map +1 -0
  78. package/dist/runtime/services/audit.d.ts +16 -0
  79. package/dist/runtime/services/audit.d.ts.map +1 -0
  80. package/dist/runtime/services/audit.js +43 -0
  81. package/dist/runtime/services/audit.js.map +1 -0
  82. package/dist/runtime/services/environment.d.ts +4 -1
  83. package/dist/runtime/services/environment.d.ts.map +1 -1
  84. package/dist/runtime/services/environment.js +16 -2
  85. package/dist/runtime/services/environment.js.map +1 -1
  86. package/dist/runtime/services/state.d.ts +11 -1
  87. package/dist/runtime/services/state.d.ts.map +1 -1
  88. package/dist/runtime/types/access.d.ts +28 -0
  89. package/dist/runtime/types/access.d.ts.map +1 -0
  90. package/dist/runtime/types/access.js +3 -0
  91. package/dist/runtime/types/access.js.map +1 -0
  92. package/dist/runtime/types/actions.d.ts +2 -0
  93. package/dist/runtime/types/actions.d.ts.map +1 -1
  94. package/dist/runtime/types/admin.d.ts +29 -0
  95. package/dist/runtime/types/admin.d.ts.map +1 -1
  96. package/dist/runtime/types/audit.d.ts +35 -0
  97. package/dist/runtime/types/audit.d.ts.map +1 -0
  98. package/dist/runtime/types/audit.js +3 -0
  99. package/dist/runtime/types/audit.js.map +1 -0
  100. package/dist/runtime/types/auth.d.ts +6 -0
  101. package/dist/runtime/types/auth.d.ts.map +1 -1
  102. package/dist/runtime/types/events.d.ts +63 -0
  103. package/dist/runtime/types/events.d.ts.map +1 -0
  104. package/dist/runtime/types/events.js +3 -0
  105. package/dist/runtime/types/events.js.map +1 -0
  106. package/dist/runtime/types/health.d.ts +18 -0
  107. package/dist/runtime/types/health.d.ts.map +1 -0
  108. package/dist/runtime/types/health.js +3 -0
  109. package/dist/runtime/types/health.js.map +1 -0
  110. package/dist/runtime/types/index.d.ts +7 -1
  111. package/dist/runtime/types/index.d.ts.map +1 -1
  112. package/dist/runtime/types/jobs.d.ts +21 -0
  113. package/dist/runtime/types/jobs.d.ts.map +1 -0
  114. package/dist/runtime/types/jobs.js +3 -0
  115. package/dist/runtime/types/jobs.js.map +1 -0
  116. package/dist/runtime/types/resource.d.ts +30 -1
  117. package/dist/runtime/types/resource.d.ts.map +1 -1
  118. package/dist/runtime/types/revisions.d.ts +33 -0
  119. package/dist/runtime/types/revisions.d.ts.map +1 -0
  120. package/dist/runtime/types/revisions.js +3 -0
  121. package/dist/runtime/types/revisions.js.map +1 -0
  122. package/dist/schema.d.ts +20 -1
  123. package/dist/schema.d.ts.map +1 -1
  124. package/dist/store.d.ts +6 -0
  125. package/dist/store.d.ts.map +1 -1
  126. package/dist/store.js +74 -0
  127. package/dist/store.js.map +1 -1
  128. package/package.json +1 -1
  129. package/static/assets/index-DIdeXSPR.js +340 -0
  130. package/static/assets/index-oaieFDp4.css +1 -0
  131. package/static/index.html +2 -2
  132. package/static/assets/index-DdklZQ9o.js +0 -338
  133. package/static/assets/index-IVoZ2rM_.css +0 -1
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.auditListHandler = auditListHandler;
4
+ const errors_1 = require("../errors");
5
+ const access_1 = require("../services/access");
6
+ const environment_1 = require("../services/environment");
7
+ const http_1 = require("../utils/http");
8
+ async function auditListHandler(state, request) {
9
+ return (0, environment_1.withEnvContext)(state, request, async (ctx) => {
10
+ (0, access_1.assertCapability)(ctx, "audit.read");
11
+ if (!state.auditDef) {
12
+ throw new errors_1.VertebrNotFoundError("Audit is not configured");
13
+ }
14
+ const query = (0, http_1.requestQuery)(request);
15
+ const limit = query.limit ? Number(query.limit) : undefined;
16
+ const result = await state.auditDef.list({
17
+ ...(limit && Number.isFinite(limit) ? { limit } : {}),
18
+ ...(query.cursor ? { cursor: query.cursor } : {}),
19
+ ...(query.targetType ? { targetType: query.targetType } : {}),
20
+ ...(query.targetId ? { targetId: query.targetId } : {}),
21
+ }, ctx);
22
+ return {
23
+ ok: true,
24
+ environment: ctx.env,
25
+ items: result.items,
26
+ ...(result.cursor ? { cursor: result.cursor } : {}),
27
+ };
28
+ });
29
+ }
30
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/runtime/api/audit.ts"],"names":[],"mappings":";;AAMA,4CAwBC;AA9BD,sCAAiD;AACjD,+CAAsD;AACtD,yDAAyD;AAEzD,wCAA6C;AAEtC,KAAK,UAAU,gBAAgB,CAAC,KAAiB,EAAE,OAAgB;IACxE,OAAO,IAAA,4BAAc,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClD,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,IAAI,6BAAoB,CAAC,yBAAyB,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,KAAK,GAAG,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CACtC;YACE,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,EACD,GAAG,CACJ,CAAC;QACF,OAAO;YACL,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,GAAG,CAAC,GAAG;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -8,6 +8,12 @@ export declare function bootstrapHandler(state: AdminState): Promise<{
8
8
  tone: "neutral" | "warn" | "danger";
9
9
  auth: import("../types").EnvironmentAuthPublic;
10
10
  }[];
11
+ features: {
12
+ audit: boolean;
13
+ revisions: boolean;
14
+ jobs: boolean;
15
+ health: boolean;
16
+ };
11
17
  appearance?: {
12
18
  hostLogoUrl?: string | undefined;
13
19
  hostName?: string | undefined;
@@ -24,7 +30,15 @@ export declare function catalogHandler(state: AdminState, request: unknown): Pro
24
30
  auth: import("../types").EnvironmentAuthPublic;
25
31
  }[];
26
32
  defaultEnvironment: string;
33
+ capabilities: string[];
34
+ features: {
35
+ audit: boolean;
36
+ revisions: boolean;
37
+ jobs: boolean;
38
+ health: boolean;
39
+ };
27
40
  resources: {
41
+ listQuery?: boolean | Record<string, import("../../schema").FieldSchema> | undefined;
28
42
  id: string;
29
43
  label: string;
30
44
  group: string;
@@ -69,6 +83,20 @@ export declare function catalogHandler(state: AdminState, request: unknown): Pro
69
83
  group: string;
70
84
  canSchedule: boolean;
71
85
  } | null;
86
+ audit: {
87
+ id: string;
88
+ label: string;
89
+ group: string;
90
+ } | null;
91
+ health: {
92
+ id: string;
93
+ label: string;
94
+ } | null;
95
+ jobs: {
96
+ id: string;
97
+ label: string;
98
+ } | null;
99
+ revisionsEnabled: boolean;
72
100
  sync?: {
73
101
  enabled: true;
74
102
  defaultFrom: string;
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/runtime/api/catalog.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA8BhD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU;;;;;;;;;;;;;;GAcvD;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FvE"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/runtime/api/catalog.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA8BhD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;GAevD;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmJvE"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.bootstrapHandler = bootstrapHandler;
4
4
  exports.catalogHandler = catalogHandler;
5
5
  const constants_1 = require("../constants");
6
+ const access_1 = require("../services/access");
6
7
  const environment_1 = require("../services/environment");
7
8
  const auth_1 = require("../utils/auth");
8
9
  const uploads_1 = require("../utils/uploads");
@@ -46,93 +47,134 @@ async function bootstrapHandler(state) {
46
47
  tone: env.tone ?? "neutral",
47
48
  auth: (0, auth_1.publicAuth)(env),
48
49
  })),
50
+ features: (0, access_1.accessFeatures)(state),
49
51
  };
50
52
  }
51
53
  async function catalogHandler(state, request) {
52
54
  const appearance = publicAppearance(state);
53
55
  const sync = (0, sync_1.publicSyncCatalog)(state);
54
- return (0, environment_1.withEnvContext)(state, request, async (ctx) => ({
55
- ok: true,
56
- brand: "Vertebr",
57
- ...(appearance ? { appearance } : {}),
58
- ...(sync ? { sync } : {}),
59
- environment: ctx.env,
60
- environments: state.environments.map((env) => ({
61
- id: env.id,
62
- label: env.label,
63
- tone: env.tone ?? "neutral",
64
- auth: (0, auth_1.publicAuth)(env),
65
- })),
66
- defaultEnvironment: state.defaultEnvironment,
67
- resources: await Promise.all(state.resources.map(async (resource) => ({
68
- id: resource.id,
69
- label: resource.label,
70
- group: (0, sidebar_1.sidebarGroup)(resource.group, "Resources"),
71
- schema: resource.schema,
72
- permissions: resource.resolvePermissions
73
- ? await resource.resolvePermissions(ctx)
74
- : {
75
- create: resource.permissions?.create ?? Boolean(resource.create),
76
- update: resource.permissions?.update ?? Boolean(resource.update),
77
- delete: resource.permissions?.delete ?? Boolean(resource.remove),
78
- },
79
- uploads: (0, uploads_1.publicUploads)(resource),
80
- }))),
81
- configs: state.configs
82
- .filter((config) => config.section !== "addon")
83
- .map((config) => ({
84
- id: config.id,
85
- label: config.label,
86
- schema: config.schema,
87
- section: config.section === "page"
88
- ? "page"
89
- : config.section === "addon"
90
- ? "addon"
91
- : "config",
92
- group: (0, sidebar_1.sidebarGroup)(config.group, config.section === "page" ? "Pages" : "Config"),
93
- ...(config.previewPath ? { previewPath: config.previewPath } : {}),
94
- })),
95
- addons: publicAddons(state),
96
- metrics: state.metricsDef
97
- ? {
98
- id: state.metricsDef.id ?? "overview",
99
- label: state.metricsDef.label ?? "Overview",
100
- group: (0, sidebar_1.sidebarGroup)(state.metricsDef.group, "Analytics"),
101
- }
102
- : null,
103
- gallery: state.galleryDef
104
- ? {
105
- id: state.galleryDef.id ?? "gallery",
106
- label: state.galleryDef.label ?? "Gallery",
107
- group: (0, sidebar_1.sidebarGroup)(state.galleryDef.group, "Resources"),
108
- accept: state.galleryDef.accept?.length
109
- ? state.galleryDef.accept
110
- : constants_1.DEFAULT_UPLOAD_ACCEPT,
111
- maxBytes: state.galleryDef.maxBytes ?? constants_1.DEFAULT_UPLOAD_MAX_BYTES,
112
- canDelete: Boolean(state.galleryDef.remove),
113
- }
114
- : null,
115
- fontLibrary: state.fontLibraryDef
116
- ? {
117
- id: state.fontLibraryDef.id ?? "fonts",
118
- label: state.fontLibraryDef.label ?? "Font Library",
119
- group: (0, sidebar_1.sidebarGroup)(state.fontLibraryDef.group, "Resources"),
120
- accept: state.fontLibraryDef.accept?.length
121
- ? state.fontLibraryDef.accept
122
- : constants_1.DEFAULT_FONT_ACCEPT,
123
- maxBytes: state.fontLibraryDef.maxBytes ?? constants_1.DEFAULT_FONT_MAX_BYTES,
124
- canDelete: Boolean(state.fontLibraryDef.remove),
125
- canImportGoogle: Boolean(state.fontLibraryDef.importGoogle),
126
- }
127
- : null,
128
- emails: state.mailDef
129
- ? {
130
- id: "emails",
131
- label: state.mailDef.label ?? "Emails",
132
- group: (0, sidebar_1.sidebarGroup)(state.mailDef.group, "Growth"),
133
- canSchedule: Boolean(state.mailDef.campaigns?.schedule),
134
- }
135
- : null,
136
- }));
56
+ const features = (0, access_1.accessFeatures)(state);
57
+ return (0, environment_1.withEnvContext)(state, request, async (ctx) => {
58
+ const caps = ctx.capabilities ?? ["*"];
59
+ const can = (cap) => (0, access_1.hasCapability)(caps, cap);
60
+ const resources = can("resource.read")
61
+ ? await Promise.all(state.resources.map(async (resource) => ({
62
+ id: resource.id,
63
+ label: resource.label,
64
+ group: (0, sidebar_1.sidebarGroup)(resource.group, "Resources"),
65
+ schema: resource.schema,
66
+ permissions: resource.resolvePermissions
67
+ ? await resource.resolvePermissions(ctx)
68
+ : {
69
+ create: resource.permissions?.create ?? Boolean(resource.create),
70
+ update: resource.permissions?.update ?? Boolean(resource.update),
71
+ delete: resource.permissions?.delete ?? Boolean(resource.remove),
72
+ },
73
+ uploads: (0, uploads_1.publicUploads)(resource),
74
+ ...(resource.listQuery != null
75
+ ? {
76
+ listQuery: resource.listQuery === true ? true : resource.listQuery,
77
+ }
78
+ : {}),
79
+ })))
80
+ : [];
81
+ const configs = can("config.read") || can("addon.read")
82
+ ? state.configs
83
+ .filter((config) => config.section !== "addon")
84
+ .filter(() => can("config.read"))
85
+ .map((config) => ({
86
+ id: config.id,
87
+ label: config.label,
88
+ schema: config.schema,
89
+ section: config.section === "page"
90
+ ? "page"
91
+ : config.section === "addon"
92
+ ? "addon"
93
+ : "config",
94
+ group: (0, sidebar_1.sidebarGroup)(config.group, config.section === "page" ? "Pages" : "Config"),
95
+ ...(config.previewPath ? { previewPath: config.previewPath } : {}),
96
+ }))
97
+ : [];
98
+ const addons = can("addon.read") ? publicAddons(state) : [];
99
+ return {
100
+ ok: true,
101
+ brand: "Vertebr",
102
+ ...(appearance ? { appearance } : {}),
103
+ ...(sync && can("sync.run") ? { sync } : {}),
104
+ environment: ctx.env,
105
+ environments: state.environments.map((env) => ({
106
+ id: env.id,
107
+ label: env.label,
108
+ tone: env.tone ?? "neutral",
109
+ auth: (0, auth_1.publicAuth)(env),
110
+ })),
111
+ defaultEnvironment: state.defaultEnvironment,
112
+ capabilities: caps,
113
+ features,
114
+ resources,
115
+ configs,
116
+ addons,
117
+ metrics: state.metricsDef && can("overview.read")
118
+ ? {
119
+ id: state.metricsDef.id ?? "overview",
120
+ label: state.metricsDef.label ?? "Overview",
121
+ group: (0, sidebar_1.sidebarGroup)(state.metricsDef.group, "Analytics"),
122
+ }
123
+ : null,
124
+ gallery: state.galleryDef && can("gallery.read")
125
+ ? {
126
+ id: state.galleryDef.id ?? "gallery",
127
+ label: state.galleryDef.label ?? "Gallery",
128
+ group: (0, sidebar_1.sidebarGroup)(state.galleryDef.group, "Resources"),
129
+ accept: state.galleryDef.accept?.length
130
+ ? state.galleryDef.accept
131
+ : constants_1.DEFAULT_UPLOAD_ACCEPT,
132
+ maxBytes: state.galleryDef.maxBytes ?? constants_1.DEFAULT_UPLOAD_MAX_BYTES,
133
+ canDelete: Boolean(state.galleryDef.remove),
134
+ }
135
+ : null,
136
+ fontLibrary: state.fontLibraryDef && can("fonts.read")
137
+ ? {
138
+ id: state.fontLibraryDef.id ?? "fonts",
139
+ label: state.fontLibraryDef.label ?? "Font Library",
140
+ group: (0, sidebar_1.sidebarGroup)(state.fontLibraryDef.group, "Resources"),
141
+ accept: state.fontLibraryDef.accept?.length
142
+ ? state.fontLibraryDef.accept
143
+ : constants_1.DEFAULT_FONT_ACCEPT,
144
+ maxBytes: state.fontLibraryDef.maxBytes ?? constants_1.DEFAULT_FONT_MAX_BYTES,
145
+ canDelete: Boolean(state.fontLibraryDef.remove),
146
+ canImportGoogle: Boolean(state.fontLibraryDef.importGoogle),
147
+ }
148
+ : null,
149
+ emails: state.mailDef && can("emails.read")
150
+ ? {
151
+ id: "emails",
152
+ label: state.mailDef.label ?? "Emails",
153
+ group: (0, sidebar_1.sidebarGroup)(state.mailDef.group, "Growth"),
154
+ canSchedule: Boolean(state.mailDef.campaigns?.schedule),
155
+ }
156
+ : null,
157
+ audit: state.auditDef && can("audit.read")
158
+ ? {
159
+ id: "audit",
160
+ label: "Audit",
161
+ group: (0, sidebar_1.sidebarGroup)(undefined, "Analytics"),
162
+ }
163
+ : null,
164
+ health: state.healthDef && can("health.read")
165
+ ? {
166
+ id: "health",
167
+ label: "Health",
168
+ }
169
+ : null,
170
+ jobs: state.jobsDef && can("jobs.read")
171
+ ? {
172
+ id: "jobs",
173
+ label: "Jobs",
174
+ }
175
+ : null,
176
+ revisionsEnabled: Boolean(state.revisionDef),
177
+ };
178
+ });
137
179
  }
138
180
  //# sourceMappingURL=catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/runtime/api/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/runtime/api/catalog.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import type { AdminState } from "../services/state";
2
2
  export declare function getConfigHandler(state: AdminState, request: unknown): Promise<{
3
+ revisionsEnabled: boolean;
4
+ draftRevisionId?: string | undefined;
5
+ etag?: string | undefined;
3
6
  id: string;
4
7
  label: string;
5
8
  schema: Record<string, import("../..").FieldSchema>;
@@ -13,5 +16,16 @@ export declare function setConfigHandler(state: AdminState, request: unknown): P
13
16
  schema: Record<string, import("../..").FieldSchema>;
14
17
  environment: string;
15
18
  value: Record<string, unknown>;
19
+ revision: import("../types").Revision;
20
+ revisionsEnabled: boolean;
21
+ } | {
22
+ ok: boolean;
23
+ id: string;
24
+ label: string;
25
+ schema: Record<string, import("../..").FieldSchema>;
26
+ environment: string;
27
+ value: Record<string, unknown>;
28
+ revisionsEnabled: boolean;
29
+ revision?: undefined;
16
30
  }>;
17
31
  //# sourceMappingURL=configs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../../src/runtime/api/configs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;;;;;;GAgBzE;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;;;;;;;GAoBzE"}
1
+ {"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../../src/runtime/api/configs.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA2BpD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;;;;;;;;;GAkCzE;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;;;GAqIzE"}
@@ -3,23 +3,57 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getConfigHandler = getConfigHandler;
4
4
  exports.setConfigHandler = setConfigHandler;
5
5
  const errors_1 = require("../errors");
6
+ const access_1 = require("../services/access");
7
+ const audit_1 = require("../services/audit");
6
8
  const environment_1 = require("../services/environment");
7
9
  const registry_1 = require("../services/registry");
10
+ const http_1 = require("../utils/http");
8
11
  const request_1 = require("./request");
12
+ function isAddon(state, id) {
13
+ return state.controlMeta.get(id)?.addon === true;
14
+ }
15
+ function readCap(state, id) {
16
+ return isAddon(state, id) ? "addon.read" : "config.read";
17
+ }
18
+ function writeCap(state, id) {
19
+ return isAddon(state, id) ? "addon.write" : "config.write";
20
+ }
21
+ function publishCap(state, id) {
22
+ return isAddon(state, id) ? "addon.publish" : "config.publish";
23
+ }
9
24
  async function getConfigHandler(state, request) {
10
25
  return (0, environment_1.withEnvContext)(state, request, async (ctx) => {
11
26
  const id = (0, request_1.requestParam)(request, "id");
12
27
  if (!id) {
13
28
  throw new errors_1.VertebrNotFoundError("Missing config id");
14
29
  }
30
+ (0, access_1.assertCapability)(ctx, readCap(state, id));
15
31
  const config = (0, registry_1.findConfig)(state, id);
16
32
  const value = await config.get(ctx);
33
+ let etag;
34
+ let draftRevisionId;
35
+ if (state.revisionDef) {
36
+ if (state.revisionDef.liveEtag) {
37
+ etag = (await state.revisionDef.liveEtag(id, ctx.env, ctx)) ?? undefined;
38
+ }
39
+ const revisions = await state.revisionDef.list(id, ctx.env, ctx);
40
+ const draft = revisions.find((r) => r.status === "draft");
41
+ if (draft)
42
+ draftRevisionId = draft.id;
43
+ if (!etag) {
44
+ const published = revisions.find((r) => r.status === "published");
45
+ etag = published?.id;
46
+ }
47
+ }
17
48
  return {
18
49
  id: config.id,
19
50
  label: config.label,
20
51
  schema: config.schema,
21
52
  environment: ctx.env,
22
53
  value,
54
+ ...(etag ? { etag } : {}),
55
+ ...(draftRevisionId ? { draftRevisionId } : {}),
56
+ revisionsEnabled: Boolean(state.revisionDef),
23
57
  };
24
58
  });
25
59
  }
@@ -31,9 +65,100 @@ async function setConfigHandler(state, request) {
31
65
  }
32
66
  const config = (0, registry_1.findConfig)(state, id);
33
67
  const value = (0, request_1.requestObjectPayload)(request);
34
- await config.set(value, ctx);
68
+ const query = (0, http_1.requestQuery)(request);
69
+ const publishNow = query.publish === "1" ||
70
+ query.publish === "true" ||
71
+ value.publish === true;
72
+ const payload = value.value && typeof value.value === "object" && !Array.isArray(value.value)
73
+ ? value.value
74
+ : (() => {
75
+ const { publish: _p, baseRevisionId: _b, label: _l, ...rest } = value;
76
+ return rest;
77
+ })();
78
+ const ifMatch = (0, http_1.headerValue)((0, request_1.asRequest)(request).headers, "if-match") ??
79
+ (typeof value.baseRevisionId === "string"
80
+ ? value.baseRevisionId
81
+ : undefined);
82
+ if (state.revisionDef) {
83
+ if (ifMatch && state.revisionDef.liveEtag) {
84
+ const etag = await state.revisionDef.liveEtag(id, ctx.env, ctx);
85
+ if (etag && etag !== ifMatch) {
86
+ throw new errors_1.VertebrConflictError(`Config was modified (etag ${etag}). Reload and try again.`);
87
+ }
88
+ }
89
+ (0, access_1.assertCapability)(ctx, writeCap(state, id));
90
+ const label = typeof value.label === "string" ? value.label : undefined;
91
+ const revision = await state.revisionDef.save(id, ctx.env, { value: payload, ...(label ? { label } : {}) }, ctx);
92
+ if (publishNow) {
93
+ (0, access_1.assertCapability)(ctx, publishCap(state, id));
94
+ const published = await state.revisionDef.publish(id, ctx.env, revision.id, ctx);
95
+ await config.set(published.value, ctx);
96
+ await (0, audit_1.afterMutation)(state, ctx, {
97
+ audit: {
98
+ action: "config.publish",
99
+ targetType: "config",
100
+ targetId: id,
101
+ summary: `Published revision ${published.id}`,
102
+ meta: { revisionId: published.id },
103
+ },
104
+ event: {
105
+ type: "config.published",
106
+ controlId: id,
107
+ env: ctx.env,
108
+ actor: (0, audit_1.eventActor)(ctx),
109
+ revisionId: published.id,
110
+ },
111
+ });
112
+ }
113
+ else {
114
+ await (0, audit_1.afterMutation)(state, ctx, {
115
+ audit: {
116
+ action: "config.revision.save",
117
+ targetType: "config",
118
+ targetId: id,
119
+ summary: `Saved draft revision ${revision.id}`,
120
+ meta: { revisionId: revision.id },
121
+ },
122
+ event: {
123
+ type: "config.saved",
124
+ controlId: id,
125
+ env: ctx.env,
126
+ actor: (0, audit_1.eventActor)(ctx),
127
+ revisionId: revision.id,
128
+ published: false,
129
+ },
130
+ });
131
+ }
132
+ const nextValue = await config.get(ctx);
133
+ return {
134
+ ok: true,
135
+ id: config.id,
136
+ label: config.label,
137
+ schema: config.schema,
138
+ environment: ctx.env,
139
+ value: nextValue,
140
+ revision,
141
+ revisionsEnabled: true,
142
+ };
143
+ }
144
+ (0, access_1.assertCapability)(ctx, writeCap(state, id));
145
+ await config.set(payload, ctx);
35
146
  const nextValue = await config.get(ctx);
36
- // Full ConfigResponse so clients can cache without a follow-up GET.
147
+ await (0, audit_1.afterMutation)(state, ctx, {
148
+ audit: {
149
+ action: "config.set",
150
+ targetType: "config",
151
+ targetId: id,
152
+ summary: `Updated ${config.label}`,
153
+ },
154
+ event: {
155
+ type: "config.saved",
156
+ controlId: id,
157
+ env: ctx.env,
158
+ actor: (0, audit_1.eventActor)(ctx),
159
+ published: true,
160
+ },
161
+ });
37
162
  return {
38
163
  ok: true,
39
164
  id: config.id,
@@ -41,6 +166,7 @@ async function setConfigHandler(state, request) {
41
166
  schema: config.schema,
42
167
  environment: ctx.env,
43
168
  value: nextValue,
169
+ revisionsEnabled: false,
44
170
  };
45
171
  });
46
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"configs.js","sourceRoot":"","sources":["../../../src/runtime/api/configs.ts"],"names":[],"mappings":";;AAMA,4CAgBC;AAED,4CAoBC;AA5CD,sCAAiD;AACjD,yDAAyD;AACzD,mDAAkD;AAElD,uCAA+D;AAExD,KAAK,UAAU,gBAAgB,CAAC,KAAiB,EAAE,OAAgB;IACxE,OAAO,IAAA,4BAAc,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClD,MAAM,EAAE,GAAG,IAAA,sBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,6BAAoB,CAAC,mBAAmB,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,qBAAU,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,GAAG,CAAC,GAAG;YACpB,KAAK;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,KAAiB,EAAE,OAAgB;IACxE,OAAO,IAAA,4BAAc,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClD,MAAM,EAAE,GAAG,IAAA,sBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,6BAAoB,CAAC,mBAAmB,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,qBAAU,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,oEAAoE;QACpE,OAAO;YACL,EAAE,EAAE,IAAI;YACR,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,GAAG,CAAC,GAAG;YACpB,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"configs.js","sourceRoot":"","sources":["../../../src/runtime/api/configs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { AdminState } from "../services/state";
2
+ export declare function healthHandler(state: AdminState, request: unknown): Promise<{
3
+ ok: boolean;
4
+ environment: string;
5
+ checks: import("../types").HealthCheck[];
6
+ }>;
7
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/runtime/api/health.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,wBAAsB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;;;;GAatE"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.healthHandler = healthHandler;
4
+ const errors_1 = require("../errors");
5
+ const access_1 = require("../services/access");
6
+ const environment_1 = require("../services/environment");
7
+ async function healthHandler(state, request) {
8
+ return (0, environment_1.withEnvContext)(state, request, async (ctx) => {
9
+ (0, access_1.assertCapability)(ctx, "health.read");
10
+ if (!state.healthDef) {
11
+ throw new errors_1.VertebrNotFoundError("Health is not configured");
12
+ }
13
+ const checks = await state.healthDef.load(ctx);
14
+ return {
15
+ ok: true,
16
+ environment: ctx.env,
17
+ checks,
18
+ };
19
+ });
20
+ }
21
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/runtime/api/health.ts"],"names":[],"mappings":";;AAKA,sCAaC;AAlBD,sCAAiD;AACjD,+CAAsD;AACtD,yDAAyD;AAGlD,KAAK,UAAU,aAAa,CAAC,KAAiB,EAAE,OAAgB;IACrE,OAAO,IAAA,4BAAc,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClD,IAAA,yBAAgB,EAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,6BAAoB,CAAC,0BAA0B,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO;YACL,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,GAAG,CAAC,GAAG;YACpB,MAAM;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { AdminState } from "../services/state";
2
+ export declare function listJobsHandler(state: AdminState, request: unknown): Promise<{
3
+ ok: boolean;
4
+ environment: string;
5
+ items: import("../types").Job[];
6
+ }>;
7
+ export declare function getJobHandler(state: AdminState, request: unknown): Promise<{
8
+ ok: boolean;
9
+ environment: string;
10
+ job: import("../types").Job;
11
+ }>;
12
+ //# sourceMappingURL=jobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../../src/runtime/api/jobs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,wBAAsB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;;;;GASxE;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;;;;GAYtE"}