@tekki-forge/runtime-api 0.2.0 → 0.3.2

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.
@@ -0,0 +1,373 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { Body, Controller, Delete, Get, HttpCode, Inject, NotFoundException, Param, Patch, Post, Put, Query, Req, Res } from "@nestjs/common";
14
+ import { fromNodeHeaders } from "better-auth/node";
15
+ import { FORGE_SERVICE } from "./controllers.js";
16
+ import { SiteService } from "./site.js";
17
+ /** The caller (once per request). Admin routes refuse API keys in SiteService; public routes treat them as visitors. */
18
+ function context(service, req) {
19
+ req.forgeContext ??= service.resolveContext(fromNodeHeaders(req.headers), req.ip);
20
+ return req.forgeContext;
21
+ }
22
+ /**
23
+ * The public website (`site` in forge.config.ts) under /api/site: rendering, posts, sitemap and forms for visitors,
24
+ * and the Content admin of site editors. Registered before the generic `:resource` routes.
25
+ */
26
+ let SiteController = class SiteController {
27
+ forge;
28
+ site;
29
+ constructor(forge) {
30
+ this.forge = forge;
31
+ this.site = new SiteService(forge);
32
+ }
33
+ /** 404 before anything else when the app has no website. */
34
+ ctx(req) {
35
+ if (!this.forge.app.site)
36
+ throw new NotFoundException("The website is not enabled");
37
+ return context(this.forge, req);
38
+ }
39
+ // ─── Public ──────────────────────────────────────────────────────────────────
40
+ /** `?path=/pricing[&preview=1]` — drafts and hidden sections only in preview, for site editors. */
41
+ async render(query, req) {
42
+ // A visitor needs no session lookup; only a preview does.
43
+ const preview = query.preview === "1" || query.preview === "true";
44
+ const ctx = preview ? await this.ctx(req).catch(() => ({ principal: null, user: null, session: null })) : { principal: null, user: null, session: null };
45
+ return this.site.render(query, ctx);
46
+ }
47
+ async posts(query) {
48
+ return this.site.posts(query);
49
+ }
50
+ async sitemap() {
51
+ return this.site.sitemap();
52
+ }
53
+ async contact(body, req) {
54
+ return this.site.contact(body, { ...(req.ip ? { ip: req.ip } : {}), ...(req.headers["user-agent"] ? { userAgent: String(req.headers["user-agent"]) } : {}) });
55
+ }
56
+ async newsletter(body, req) {
57
+ return this.site.newsletter(body, { ...(req.ip ? { ip: req.ip } : {}) });
58
+ }
59
+ // ─── Admin (site editors) ────────────────────────────────────────────────────
60
+ async overview(req) {
61
+ return this.site.overview(await this.ctx(req));
62
+ }
63
+ async preview(body, req) {
64
+ return this.site.preview(body, await this.ctx(req));
65
+ }
66
+ async createPage(body, req) {
67
+ return this.site.createPage(body, await this.ctx(req));
68
+ }
69
+ async page(id, req) {
70
+ return this.site.page(id, await this.ctx(req));
71
+ }
72
+ async updatePage(id, body, req) {
73
+ return this.site.updatePage(id, body, await this.ctx(req));
74
+ }
75
+ async deletePage(id, req) {
76
+ await this.site.deletePage(id, await this.ctx(req));
77
+ }
78
+ async revertPage(id, req) {
79
+ return this.site.revertPage(id, await this.ctx(req));
80
+ }
81
+ async addSection(id, body, req) {
82
+ return this.site.addSection(id, body, await this.ctx(req));
83
+ }
84
+ async reorder(id, body, req) {
85
+ return this.site.reorder(id, body, await this.ctx(req));
86
+ }
87
+ async updateSection(id, body, req) {
88
+ return this.site.updateSection(id, body, await this.ctx(req));
89
+ }
90
+ async deleteSection(id, req) {
91
+ await this.site.deleteSection(id, await this.ctx(req));
92
+ }
93
+ async revertSection(id, req) {
94
+ return this.site.revertSection(id, await this.ctx(req));
95
+ }
96
+ async listPosts(query, req) {
97
+ return this.site.listPosts(query, await this.ctx(req));
98
+ }
99
+ async createPost(body, req) {
100
+ return this.site.createPost(body, await this.ctx(req));
101
+ }
102
+ async getPost(id, req) {
103
+ return this.site.getPost(id, await this.ctx(req));
104
+ }
105
+ async updatePost(id, body, req) {
106
+ return this.site.updatePost(id, body, await this.ctx(req));
107
+ }
108
+ async deletePost(id, req) {
109
+ await this.site.deletePost(id, await this.ctx(req));
110
+ }
111
+ async messages(query, req) {
112
+ return this.site.messages(query, await this.ctx(req));
113
+ }
114
+ async updateMessage(id, body, req) {
115
+ return this.site.updateMessage(id, body, await this.ctx(req));
116
+ }
117
+ async deleteMessage(id, req) {
118
+ await this.site.deleteMessage(id, await this.ctx(req));
119
+ }
120
+ async subscribers(query, req) {
121
+ return this.site.subscribers(query, await this.ctx(req));
122
+ }
123
+ async exportSubscribers(req, res) {
124
+ const csv = await this.site.exportSubscribers(await this.ctx(req));
125
+ res.setHeader("content-type", "text/csv; charset=utf-8");
126
+ res.setHeader("content-disposition", `attachment; filename="subscribers-${new Date().toISOString().slice(0, 10)}.csv"`);
127
+ return csv;
128
+ }
129
+ async deleteSubscriber(id, req) {
130
+ await this.site.deleteSubscriber(id, await this.ctx(req));
131
+ }
132
+ };
133
+ __decorate([
134
+ Get("render"),
135
+ __param(0, Query()),
136
+ __param(1, Req()),
137
+ __metadata("design:type", Function),
138
+ __metadata("design:paramtypes", [Object, Object]),
139
+ __metadata("design:returntype", Promise)
140
+ ], SiteController.prototype, "render", null);
141
+ __decorate([
142
+ Get("posts"),
143
+ __param(0, Query()),
144
+ __metadata("design:type", Function),
145
+ __metadata("design:paramtypes", [Object]),
146
+ __metadata("design:returntype", Promise)
147
+ ], SiteController.prototype, "posts", null);
148
+ __decorate([
149
+ Get("sitemap"),
150
+ __metadata("design:type", Function),
151
+ __metadata("design:paramtypes", []),
152
+ __metadata("design:returntype", Promise)
153
+ ], SiteController.prototype, "sitemap", null);
154
+ __decorate([
155
+ Post("contact"),
156
+ __param(0, Body()),
157
+ __param(1, Req()),
158
+ __metadata("design:type", Function),
159
+ __metadata("design:paramtypes", [Object, Object]),
160
+ __metadata("design:returntype", Promise)
161
+ ], SiteController.prototype, "contact", null);
162
+ __decorate([
163
+ Post("newsletter"),
164
+ __param(0, Body()),
165
+ __param(1, Req()),
166
+ __metadata("design:type", Function),
167
+ __metadata("design:paramtypes", [Object, Object]),
168
+ __metadata("design:returntype", Promise)
169
+ ], SiteController.prototype, "newsletter", null);
170
+ __decorate([
171
+ Get("admin/overview"),
172
+ __param(0, Req()),
173
+ __metadata("design:type", Function),
174
+ __metadata("design:paramtypes", [Object]),
175
+ __metadata("design:returntype", Promise)
176
+ ], SiteController.prototype, "overview", null);
177
+ __decorate([
178
+ Post("admin/preview"),
179
+ HttpCode(200),
180
+ __param(0, Body()),
181
+ __param(1, Req()),
182
+ __metadata("design:type", Function),
183
+ __metadata("design:paramtypes", [Object, Object]),
184
+ __metadata("design:returntype", Promise)
185
+ ], SiteController.prototype, "preview", null);
186
+ __decorate([
187
+ Post("admin/pages"),
188
+ __param(0, Body()),
189
+ __param(1, Req()),
190
+ __metadata("design:type", Function),
191
+ __metadata("design:paramtypes", [Object, Object]),
192
+ __metadata("design:returntype", Promise)
193
+ ], SiteController.prototype, "createPage", null);
194
+ __decorate([
195
+ Get("admin/pages/:id"),
196
+ __param(0, Param("id")),
197
+ __param(1, Req()),
198
+ __metadata("design:type", Function),
199
+ __metadata("design:paramtypes", [String, Object]),
200
+ __metadata("design:returntype", Promise)
201
+ ], SiteController.prototype, "page", null);
202
+ __decorate([
203
+ Patch("admin/pages/:id"),
204
+ __param(0, Param("id")),
205
+ __param(1, Body()),
206
+ __param(2, Req()),
207
+ __metadata("design:type", Function),
208
+ __metadata("design:paramtypes", [String, Object, Object]),
209
+ __metadata("design:returntype", Promise)
210
+ ], SiteController.prototype, "updatePage", null);
211
+ __decorate([
212
+ Delete("admin/pages/:id"),
213
+ HttpCode(204),
214
+ __param(0, Param("id")),
215
+ __param(1, Req()),
216
+ __metadata("design:type", Function),
217
+ __metadata("design:paramtypes", [String, Object]),
218
+ __metadata("design:returntype", Promise)
219
+ ], SiteController.prototype, "deletePage", null);
220
+ __decorate([
221
+ Post("admin/pages/:id/revert"),
222
+ HttpCode(200),
223
+ __param(0, Param("id")),
224
+ __param(1, Req()),
225
+ __metadata("design:type", Function),
226
+ __metadata("design:paramtypes", [String, Object]),
227
+ __metadata("design:returntype", Promise)
228
+ ], SiteController.prototype, "revertPage", null);
229
+ __decorate([
230
+ Post("admin/pages/:id/sections"),
231
+ __param(0, Param("id")),
232
+ __param(1, Body()),
233
+ __param(2, Req()),
234
+ __metadata("design:type", Function),
235
+ __metadata("design:paramtypes", [String, Object, Object]),
236
+ __metadata("design:returntype", Promise)
237
+ ], SiteController.prototype, "addSection", null);
238
+ __decorate([
239
+ Put("admin/pages/:id/order"),
240
+ __param(0, Param("id")),
241
+ __param(1, Body()),
242
+ __param(2, Req()),
243
+ __metadata("design:type", Function),
244
+ __metadata("design:paramtypes", [String, Object, Object]),
245
+ __metadata("design:returntype", Promise)
246
+ ], SiteController.prototype, "reorder", null);
247
+ __decorate([
248
+ Patch("admin/sections/:id"),
249
+ __param(0, Param("id")),
250
+ __param(1, Body()),
251
+ __param(2, Req()),
252
+ __metadata("design:type", Function),
253
+ __metadata("design:paramtypes", [String, Object, Object]),
254
+ __metadata("design:returntype", Promise)
255
+ ], SiteController.prototype, "updateSection", null);
256
+ __decorate([
257
+ Delete("admin/sections/:id"),
258
+ HttpCode(204),
259
+ __param(0, Param("id")),
260
+ __param(1, Req()),
261
+ __metadata("design:type", Function),
262
+ __metadata("design:paramtypes", [String, Object]),
263
+ __metadata("design:returntype", Promise)
264
+ ], SiteController.prototype, "deleteSection", null);
265
+ __decorate([
266
+ Post("admin/sections/:id/revert"),
267
+ HttpCode(200),
268
+ __param(0, Param("id")),
269
+ __param(1, Req()),
270
+ __metadata("design:type", Function),
271
+ __metadata("design:paramtypes", [String, Object]),
272
+ __metadata("design:returntype", Promise)
273
+ ], SiteController.prototype, "revertSection", null);
274
+ __decorate([
275
+ Get("admin/posts"),
276
+ __param(0, Query()),
277
+ __param(1, Req()),
278
+ __metadata("design:type", Function),
279
+ __metadata("design:paramtypes", [Object, Object]),
280
+ __metadata("design:returntype", Promise)
281
+ ], SiteController.prototype, "listPosts", null);
282
+ __decorate([
283
+ Post("admin/posts"),
284
+ __param(0, Body()),
285
+ __param(1, Req()),
286
+ __metadata("design:type", Function),
287
+ __metadata("design:paramtypes", [Object, Object]),
288
+ __metadata("design:returntype", Promise)
289
+ ], SiteController.prototype, "createPost", null);
290
+ __decorate([
291
+ Get("admin/posts/:id"),
292
+ __param(0, Param("id")),
293
+ __param(1, Req()),
294
+ __metadata("design:type", Function),
295
+ __metadata("design:paramtypes", [String, Object]),
296
+ __metadata("design:returntype", Promise)
297
+ ], SiteController.prototype, "getPost", null);
298
+ __decorate([
299
+ Patch("admin/posts/:id"),
300
+ __param(0, Param("id")),
301
+ __param(1, Body()),
302
+ __param(2, Req()),
303
+ __metadata("design:type", Function),
304
+ __metadata("design:paramtypes", [String, Object, Object]),
305
+ __metadata("design:returntype", Promise)
306
+ ], SiteController.prototype, "updatePost", null);
307
+ __decorate([
308
+ Delete("admin/posts/:id"),
309
+ HttpCode(204),
310
+ __param(0, Param("id")),
311
+ __param(1, Req()),
312
+ __metadata("design:type", Function),
313
+ __metadata("design:paramtypes", [String, Object]),
314
+ __metadata("design:returntype", Promise)
315
+ ], SiteController.prototype, "deletePost", null);
316
+ __decorate([
317
+ Get("admin/messages"),
318
+ __param(0, Query()),
319
+ __param(1, Req()),
320
+ __metadata("design:type", Function),
321
+ __metadata("design:paramtypes", [Object, Object]),
322
+ __metadata("design:returntype", Promise)
323
+ ], SiteController.prototype, "messages", null);
324
+ __decorate([
325
+ Patch("admin/messages/:id"),
326
+ __param(0, Param("id")),
327
+ __param(1, Body()),
328
+ __param(2, Req()),
329
+ __metadata("design:type", Function),
330
+ __metadata("design:paramtypes", [String, Object, Object]),
331
+ __metadata("design:returntype", Promise)
332
+ ], SiteController.prototype, "updateMessage", null);
333
+ __decorate([
334
+ Delete("admin/messages/:id"),
335
+ HttpCode(204),
336
+ __param(0, Param("id")),
337
+ __param(1, Req()),
338
+ __metadata("design:type", Function),
339
+ __metadata("design:paramtypes", [String, Object]),
340
+ __metadata("design:returntype", Promise)
341
+ ], SiteController.prototype, "deleteMessage", null);
342
+ __decorate([
343
+ Get("admin/subscribers"),
344
+ __param(0, Query()),
345
+ __param(1, Req()),
346
+ __metadata("design:type", Function),
347
+ __metadata("design:paramtypes", [Object, Object]),
348
+ __metadata("design:returntype", Promise)
349
+ ], SiteController.prototype, "subscribers", null);
350
+ __decorate([
351
+ Get("admin/subscribers/export"),
352
+ __param(0, Req()),
353
+ __param(1, Res({ passthrough: true })),
354
+ __metadata("design:type", Function),
355
+ __metadata("design:paramtypes", [Object, Object]),
356
+ __metadata("design:returntype", Promise)
357
+ ], SiteController.prototype, "exportSubscribers", null);
358
+ __decorate([
359
+ Delete("admin/subscribers/:id"),
360
+ HttpCode(204),
361
+ __param(0, Param("id")),
362
+ __param(1, Req()),
363
+ __metadata("design:type", Function),
364
+ __metadata("design:paramtypes", [String, Object]),
365
+ __metadata("design:returntype", Promise)
366
+ ], SiteController.prototype, "deleteSubscriber", null);
367
+ SiteController = __decorate([
368
+ Controller("site"),
369
+ __param(0, Inject(FORGE_SERVICE)),
370
+ __metadata("design:paramtypes", [Function])
371
+ ], SiteController);
372
+ export { SiteController };
373
+ //# sourceMappingURL=site-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-controller.js","sourceRoot":"","sources":["../src/site-controller.ts"],"names":[],"mappings":"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"}