@teleporthq/teleport-plugin-next-workflows 0.43.74 → 0.44.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 (148) hide show
  1. package/__tests__/booking-calendar-feed-route.test.ts +494 -0
  2. package/__tests__/custom-node-result-taken-branch.test.ts +107 -0
  3. package/__tests__/data-api-date-parser.test.ts +45 -0
  4. package/__tests__/emit-custom-event-channel.test.ts +13 -0
  5. package/__tests__/invoice-billing-details.test.ts +278 -0
  6. package/__tests__/middleware-admin-panel-roles.test.ts +127 -0
  7. package/__tests__/page-arrival-remount.test.ts +247 -0
  8. package/__tests__/payment-driver-stripe.test.ts +23 -0
  9. package/__tests__/payment-drivers-module.test.ts +19 -0
  10. package/__tests__/payment-subscription-nodes.test.ts +8 -0
  11. package/__tests__/raw-query-error-code.test.ts +47 -0
  12. package/__tests__/runtime-template-token-resolution.test.ts +16 -0
  13. package/__tests__/segment-reply-changed-keys.test.ts +31 -0
  14. package/__tests__/segment-route-skipped-branch.test.ts +101 -0
  15. package/dist/cjs/api-route-generator.d.ts.map +1 -1
  16. package/dist/cjs/api-route-generator.js +23 -13
  17. package/dist/cjs/api-route-generator.js.map +1 -1
  18. package/dist/cjs/auth-generator.d.ts.map +1 -1
  19. package/dist/cjs/auth-generator.js +75 -27
  20. package/dist/cjs/auth-generator.js.map +1 -1
  21. package/dist/cjs/booking-calendar-feed-route-generator.d.ts +28 -0
  22. package/dist/cjs/booking-calendar-feed-route-generator.d.ts.map +1 -0
  23. package/dist/cjs/booking-calendar-feed-route-generator.js +296 -0
  24. package/dist/cjs/booking-calendar-feed-route-generator.js.map +1 -0
  25. package/dist/cjs/data-api-route-generator.d.ts +6 -8
  26. package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
  27. package/dist/cjs/data-api-route-generator.js +12 -16
  28. package/dist/cjs/data-api-route-generator.js.map +1 -1
  29. package/dist/cjs/executor-generator.d.ts.map +1 -1
  30. package/dist/cjs/executor-generator.js +30 -2
  31. package/dist/cjs/executor-generator.js.map +1 -1
  32. package/dist/cjs/index.d.ts +1 -1
  33. package/dist/cjs/index.d.ts.map +1 -1
  34. package/dist/cjs/index.js +2 -1
  35. package/dist/cjs/index.js.map +1 -1
  36. package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -1
  37. package/dist/cjs/invoice/invoice-assembly-code.js +46 -6
  38. package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -1
  39. package/dist/cjs/invoice/invoice-html-code.d.ts.map +1 -1
  40. package/dist/cjs/invoice/invoice-html-code.js +10 -2
  41. package/dist/cjs/invoice/invoice-html-code.js.map +1 -1
  42. package/dist/cjs/nodes/data/data-raw-query.d.ts.map +1 -1
  43. package/dist/cjs/nodes/data/data-raw-query.js +11 -1
  44. package/dist/cjs/nodes/data/data-raw-query.js.map +1 -1
  45. package/dist/cjs/nodes/general/general-custom-js.d.ts.map +1 -1
  46. package/dist/cjs/nodes/general/general-custom-js.js +11 -0
  47. package/dist/cjs/nodes/general/general-custom-js.js.map +1 -1
  48. package/dist/cjs/nodes/general/general-emit-custom-event.d.ts.map +1 -1
  49. package/dist/cjs/nodes/general/general-emit-custom-event.js +3 -1
  50. package/dist/cjs/nodes/general/general-emit-custom-event.js.map +1 -1
  51. package/dist/cjs/page-arrival.d.ts +10 -0
  52. package/dist/cjs/page-arrival.d.ts.map +1 -0
  53. package/dist/cjs/page-arrival.js +86 -0
  54. package/dist/cjs/page-arrival.js.map +1 -0
  55. package/dist/cjs/payments/drivers/stripe-driver-code.d.ts.map +1 -1
  56. package/dist/cjs/payments/drivers/stripe-driver-code.js +11 -0
  57. package/dist/cjs/payments/drivers/stripe-driver-code.js.map +1 -1
  58. package/dist/cjs/payments/index.d.ts +10 -4
  59. package/dist/cjs/payments/index.d.ts.map +1 -1
  60. package/dist/cjs/payments/index.js +18 -7
  61. package/dist/cjs/payments/index.js.map +1 -1
  62. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  63. package/dist/cjs/workflow-component-plugin.d.ts.map +1 -1
  64. package/dist/cjs/workflow-component-plugin.js +35 -149
  65. package/dist/cjs/workflow-component-plugin.js.map +1 -1
  66. package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
  67. package/dist/cjs/workflow-project-plugin.js +14 -4
  68. package/dist/cjs/workflow-project-plugin.js.map +1 -1
  69. package/dist/cjs/workflow-scope.d.ts +19 -0
  70. package/dist/cjs/workflow-scope.d.ts.map +1 -0
  71. package/dist/cjs/workflow-scope.js +147 -0
  72. package/dist/cjs/workflow-scope.js.map +1 -0
  73. package/dist/esm/api-route-generator.d.ts.map +1 -1
  74. package/dist/esm/api-route-generator.js +23 -13
  75. package/dist/esm/api-route-generator.js.map +1 -1
  76. package/dist/esm/auth-generator.d.ts.map +1 -1
  77. package/dist/esm/auth-generator.js +75 -27
  78. package/dist/esm/auth-generator.js.map +1 -1
  79. package/dist/esm/booking-calendar-feed-route-generator.d.ts +28 -0
  80. package/dist/esm/booking-calendar-feed-route-generator.d.ts.map +1 -0
  81. package/dist/esm/booking-calendar-feed-route-generator.js +291 -0
  82. package/dist/esm/booking-calendar-feed-route-generator.js.map +1 -0
  83. package/dist/esm/data-api-route-generator.d.ts +6 -8
  84. package/dist/esm/data-api-route-generator.d.ts.map +1 -1
  85. package/dist/esm/data-api-route-generator.js +13 -17
  86. package/dist/esm/data-api-route-generator.js.map +1 -1
  87. package/dist/esm/executor-generator.d.ts.map +1 -1
  88. package/dist/esm/executor-generator.js +30 -2
  89. package/dist/esm/executor-generator.js.map +1 -1
  90. package/dist/esm/index.d.ts +1 -1
  91. package/dist/esm/index.d.ts.map +1 -1
  92. package/dist/esm/index.js +1 -1
  93. package/dist/esm/index.js.map +1 -1
  94. package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -1
  95. package/dist/esm/invoice/invoice-assembly-code.js +46 -6
  96. package/dist/esm/invoice/invoice-assembly-code.js.map +1 -1
  97. package/dist/esm/invoice/invoice-html-code.d.ts.map +1 -1
  98. package/dist/esm/invoice/invoice-html-code.js +10 -2
  99. package/dist/esm/invoice/invoice-html-code.js.map +1 -1
  100. package/dist/esm/nodes/data/data-raw-query.d.ts.map +1 -1
  101. package/dist/esm/nodes/data/data-raw-query.js +11 -1
  102. package/dist/esm/nodes/data/data-raw-query.js.map +1 -1
  103. package/dist/esm/nodes/general/general-custom-js.d.ts.map +1 -1
  104. package/dist/esm/nodes/general/general-custom-js.js +11 -0
  105. package/dist/esm/nodes/general/general-custom-js.js.map +1 -1
  106. package/dist/esm/nodes/general/general-emit-custom-event.d.ts.map +1 -1
  107. package/dist/esm/nodes/general/general-emit-custom-event.js +3 -1
  108. package/dist/esm/nodes/general/general-emit-custom-event.js.map +1 -1
  109. package/dist/esm/page-arrival.d.ts +10 -0
  110. package/dist/esm/page-arrival.d.ts.map +1 -0
  111. package/dist/esm/page-arrival.js +81 -0
  112. package/dist/esm/page-arrival.js.map +1 -0
  113. package/dist/esm/payments/drivers/stripe-driver-code.d.ts.map +1 -1
  114. package/dist/esm/payments/drivers/stripe-driver-code.js +11 -0
  115. package/dist/esm/payments/drivers/stripe-driver-code.js.map +1 -1
  116. package/dist/esm/payments/index.d.ts +10 -4
  117. package/dist/esm/payments/index.d.ts.map +1 -1
  118. package/dist/esm/payments/index.js +16 -6
  119. package/dist/esm/payments/index.js.map +1 -1
  120. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  121. package/dist/esm/workflow-component-plugin.d.ts.map +1 -1
  122. package/dist/esm/workflow-component-plugin.js +32 -146
  123. package/dist/esm/workflow-component-plugin.js.map +1 -1
  124. package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
  125. package/dist/esm/workflow-project-plugin.js +14 -4
  126. package/dist/esm/workflow-project-plugin.js.map +1 -1
  127. package/dist/esm/workflow-scope.d.ts +19 -0
  128. package/dist/esm/workflow-scope.d.ts.map +1 -0
  129. package/dist/esm/workflow-scope.js +142 -0
  130. package/dist/esm/workflow-scope.js.map +1 -0
  131. package/package.json +4 -4
  132. package/src/api-route-generator.ts +23 -13
  133. package/src/auth-generator.ts +80 -25
  134. package/src/booking-calendar-feed-route-generator.ts +293 -0
  135. package/src/data-api-route-generator.ts +14 -19
  136. package/src/executor-generator.ts +30 -2
  137. package/src/index.ts +1 -0
  138. package/src/invoice/invoice-assembly-code.ts +46 -6
  139. package/src/invoice/invoice-html-code.ts +10 -2
  140. package/src/nodes/data/data-raw-query.ts +11 -1
  141. package/src/nodes/general/general-custom-js.ts +10 -0
  142. package/src/nodes/general/general-emit-custom-event.ts +3 -1
  143. package/src/page-arrival.ts +115 -0
  144. package/src/payments/drivers/stripe-driver-code.ts +11 -0
  145. package/src/payments/index.ts +18 -5
  146. package/src/workflow-component-plugin.ts +43 -188
  147. package/src/workflow-project-plugin.ts +15 -4
  148. package/src/workflow-scope.ts +184 -0
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateSessionProviderWrapper = exports.generateNextAuthUrlGuardModule = exports.generateMiddlewareFile = exports.generateSignupRouteFile = exports.generateNextAuthRouteFile = exports.generateHashPasswordFile = exports.generateAuthDbHealthFile = exports.generateAuthErrorMessagesFile = exports.generateAuthOptionsFile = exports.buildSessionUserFields = exports.SENSITIVE_USER_FIELDS = exports.SESSION_SAFE_USER_FIELDS = exports.USER_REFRESH_INTERVAL_MS = exports.getDatabaseDriverDependencies = void 0;
4
4
  const transactional_email_code_1 = require("./transactional-email-code");
5
+ const teleport_shared_1 = require("@teleporthq/teleport-shared");
5
6
  const session_cookie_resolver_1 = require("./session-cookie-resolver");
6
7
  // GUI provider id → the actual next-auth v4 provider MODULE name, for the few
7
8
  // cases where they differ. Everything else uses the id as the module name.
@@ -1282,8 +1283,67 @@ const selfGuardedRoutePatternOf = (protection) => {
1282
1283
  }
1283
1284
  return base === '/' ? `/[${differentiator}]` : `${base}/[${differentiator}]`;
1284
1285
  };
1286
+ /** The same-site path the project redirects `/` to, or null (absent, `/` itself, or off-site). */
1287
+ const resolveHomeRedirect = (auth) => {
1288
+ const value = typeof auth.homeRedirect === 'string' ? auth.homeRedirect : '';
1289
+ const path = value.split('?')[0].split('#')[0];
1290
+ if (!path.startsWith('/') || path.startsWith('//') || path.indexOf('\\') !== -1) {
1291
+ return null;
1292
+ }
1293
+ const normalized = path.length > 1 ? path.replace(/\/+$/, '') : path;
1294
+ return normalized === '/' ? null : normalized;
1295
+ };
1296
+ /**
1297
+ * Where a signed-in visitor without the role a page asks for lands. A project
1298
+ * whose home page is not redirected keeps the code it always had. One that
1299
+ * redirects `/` (e.g. to an admin dashboard) only sends a visitor home when
1300
+ * that page admits them; otherwise to sign-in, saying why.
1301
+ */
1302
+ const generateRoleDeniedRedirectCode = (signInRoute, homeRedirect) => {
1303
+ if (!homeRedirect) {
1304
+ return `// Where to send an authenticated user who lacks the required role. Normally the
1305
+ // home page ("you don't have access, here's the public site"). But when "/" is
1306
+ // itself a protected page (e.g. an admin dashboard published at the root), a
1307
+ // redirect to "/" re-enters this middleware and loops forever — so fall back to
1308
+ // the sign-in page (with a callbackUrl) in that case.
1309
+ function roleDeniedRedirect(request, pathname) {
1310
+ if (pathname !== '/' && !protectedRoutes['/']) {
1311
+ return redirectWithinLocale(request, '/');
1312
+ }
1313
+ return redirectWithinLocale(request, '${signInRoute}', pathname);
1314
+ }`;
1315
+ }
1316
+ return `// The project redirects "/" here before this middleware ever runs.
1317
+ var homeRedirect = ${JSON.stringify(homeRedirect)};
1318
+
1319
+ // Whether "/" is a way out for this visitor: the page it redirects to is not
1320
+ // the one being left, and admits their role. Otherwise sending them home would
1321
+ // land them right back on a page that refuses them — a redirect loop.
1322
+ function homeAdmitsRole(pathname, userRole) {
1323
+ var landing = normalizeMatchPath(homeRedirect);
1324
+ if (landing === normalizeMatchPath(pathname)) return false;
1325
+ var protection = resolveProtection(landing).matched;
1326
+ if (!protection) return true;
1327
+ if (protection.requiresSubscription) return false;
1328
+ var roles = protection.allowedRoles || [];
1329
+ return roles.length === 0 || roles.indexOf(userRole) >= 0;
1330
+ }
1331
+
1332
+ // Where to send an authenticated user who lacks the required role: home when
1333
+ // home admits them, else the sign-in page, which is told why (error=forbidden)
1334
+ // and keeps a callbackUrl for an account that may open the page.
1335
+ function roleDeniedRedirect(request, pathname, userRole) {
1336
+ if (pathname !== '/' && !protectedRoutes['/'] && homeAdmitsRole(pathname, userRole)) {
1337
+ return redirectWithinLocale(request, '/');
1338
+ }
1339
+ var target = new URL(localizePathname(request, '${signInRoute}'), request.url);
1340
+ target.searchParams.set('callbackUrl', localizePathname(request, pathname));
1341
+ target.searchParams.set('error', 'forbidden');
1342
+ return NextResponse.redirect(target);
1343
+ }`;
1344
+ };
1285
1345
  const generateMiddlewareFile = (auth, options = {}) => {
1286
- var _a, _b, _c;
1346
+ var _a, _b;
1287
1347
  const protectedRoutes = {};
1288
1348
  // Page ids skipped from `protectedRoutes` because their page-load SQL is the
1289
1349
  // access control. Tracked by id (not by route) so the folder pass below can
@@ -1349,28 +1409,26 @@ const generateMiddlewareFile = (auth, options = {}) => {
1349
1409
  for (const route of authRoutes) {
1350
1410
  delete protectedRoutes[route];
1351
1411
  }
1352
- let sawAdminRoute = false;
1353
- let adminRoles = ['admin'];
1354
- for (const k of Object.keys(protectedRoutes)) {
1355
- if (k === '/admin' || k.indexOf('/admin/') === 0) {
1356
- sawAdminRoute = true;
1357
- const ar = (_b = protectedRoutes[k]) === null || _b === void 0 ? void 0 : _b.allowedRoles;
1358
- if (ar && ar.length > 0) {
1359
- adminRoles = ar;
1360
- break;
1361
- }
1362
- }
1363
- }
1412
+ // `/admin` itself, and every admin page the map has no entry for (one an
1413
+ // owner added without protection), admit the admin panel's own roles — its
1414
+ // folder's — never the first admin route's, which may also admit another
1415
+ // role (a staff dashboard).
1416
+ const sawAdminRoute = Object.keys(protectedRoutes).some((k) => k === '/admin' || k.indexOf('/admin/') === 0);
1364
1417
  if (sawAdminRoute && !protectedRoutes['/admin']) {
1365
- protectedRoutes['/admin'] = { requiresAuth: true, allowedRoles: adminRoles };
1418
+ const panelRoles = teleport_shared_1.TableAccess.resolveAdminPanelRoles(auth);
1419
+ protectedRoutes['/admin'] = {
1420
+ requiresAuth: true,
1421
+ allowedRoles: panelRoles.length > 0 ? panelRoles : ['admin'],
1422
+ };
1366
1423
  }
1367
1424
  const protectedRoutesJson = JSON.stringify(protectedRoutes, null, 2);
1368
1425
  const authRoutesJson = JSON.stringify(authRoutes);
1369
1426
  const selfGuardedRoutesJson = JSON.stringify(selfGuardedRoutes);
1370
- const signInRoute = ((_c = auth.authPages.signIn) === null || _c === void 0 ? void 0 : _c.route) || '/auth/sign-in';
1427
+ const signInRoute = ((_b = auth.authPages.signIn) === null || _b === void 0 ? void 0 : _b.route) || '/auth/sign-in';
1371
1428
  const subscriptionFallbackRoute = options.subscriptionFallbackRoute && options.subscriptionFallbackRoute.startsWith('/')
1372
1429
  ? options.subscriptionFallbackRoute
1373
1430
  : '/';
1431
+ const homeRedirect = resolveHomeRedirect(auth);
1374
1432
  return `import { NextResponse } from 'next/server';
1375
1433
  import { getToken } from 'next-auth/jwt';
1376
1434
 
@@ -1482,17 +1540,7 @@ function redirectWithinLocale(request, pathname, callbackPath) {
1482
1540
  return NextResponse.redirect(target);
1483
1541
  }
1484
1542
 
1485
- // Where to send an authenticated user who lacks the required role. Normally the
1486
- // home page ("you don't have access, here's the public site"). But when "/" is
1487
- // itself a protected page (e.g. an admin dashboard published at the root), a
1488
- // redirect to "/" re-enters this middleware and loops forever — so fall back to
1489
- // the sign-in page (with a callbackUrl) in that case.
1490
- function roleDeniedRedirect(request, pathname) {
1491
- if (pathname !== '/' && !protectedRoutes['/']) {
1492
- return redirectWithinLocale(request, '/');
1493
- }
1494
- return redirectWithinLocale(request, '${signInRoute}', pathname);
1495
- }
1543
+ ${generateRoleDeniedRedirectCode(signInRoute, homeRedirect)}
1496
1544
 
1497
1545
  // Route keys carry no trailing slash, so neither may the path we match with.
1498
1546
  // Next.js serves "/orders/ORD-42/" and "/orders/ORD-42" as the same route;
@@ -1679,7 +1727,7 @@ async function middleware(request) {
1679
1727
  }
1680
1728
  var userRole = getUserRoleFromToken(sessionUser);
1681
1729
  if (userRole == null || allowedRoles.indexOf(userRole) < 0) {
1682
- return roleDeniedRedirect(request, pathname);
1730
+ return roleDeniedRedirect(request, pathname${homeRedirect ? ', userRole' : ''});
1683
1731
  }
1684
1732
  }
1685
1733
 
@@ -1 +1 @@
1
- {"version":3,"file":"auth-generator.js","sourceRoot":"","sources":["../../src/auth-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-generator.js","sourceRoot":"","sources":["../../src/auth-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The bookings' calendar feeds: `pages/api/bookings/ical/[file].js`, emitted
3
+ * when the UIDL carries `bookingCalendars.feedStatement`.
4
+ *
5
+ * Each calendar link of a site's bookings is an iCalendar (RFC 5545) feed that
6
+ * Airbnb, Booking.com, Vrbo or Google Calendar import to block the dates the
7
+ * site has booked. The editor builds the one statement behind every feed (its
8
+ * tables and columns are the editor's business); the generated route only runs
9
+ * it with the link's key and writes the rows out as a calendar.
10
+ */
11
+ import { ProjectPluginStructure } from '@teleporthq/teleport-types';
12
+ /**
13
+ * The route's source (CommonJS). GET or HEAD `/api/bookings/ical/<key>.ics`:
14
+ * - another method → 405 with `Allow: GET, HEAD`;
15
+ * - a key of the wrong shape, or one the statement returns no calendar row
16
+ * for → 404 (the key is the link's only credential, so both look the same);
17
+ * - a failed query → 500 'Calendar unavailable', the cause logged only;
18
+ * - else 200 with the calendar, never cached. An event row with a missing or
19
+ * invalid value is left out rather than failing the whole feed.
20
+ */
21
+ export declare const generateBookingCalendarFeedRoute: (feedStatement: string) => string;
22
+ /**
23
+ * Emits the feed route when the UIDL names a feed statement, plus the `pg`
24
+ * driver it connects with (already present on a project with a Teleport
25
+ * database, which every bookings site has).
26
+ */
27
+ export declare const generateBookingCalendarFeedFiles: (structure: ProjectPluginStructure) => void;
28
+ //# sourceMappingURL=booking-calendar-feed-route-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"booking-calendar-feed-route-generator.d.ts","sourceRoot":"","sources":["../../src/booking-calendar-feed-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAY,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAI7E;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,kBAAmB,MAAM,KAAG,MA+OxE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,cAAe,sBAAsB,KAAG,IAuBpF,CAAA"}
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateBookingCalendarFeedFiles = exports.generateBookingCalendarFeedRoute = void 0;
4
+ /**
5
+ * The bookings' calendar feeds: `pages/api/bookings/ical/[file].js`, emitted
6
+ * when the UIDL carries `bookingCalendars.feedStatement`.
7
+ *
8
+ * Each calendar link of a site's bookings is an iCalendar (RFC 5545) feed that
9
+ * Airbnb, Booking.com, Vrbo or Google Calendar import to block the dates the
10
+ * site has booked. The editor builds the one statement behind every feed (its
11
+ * tables and columns are the editor's business); the generated route only runs
12
+ * it with the link's key and writes the rows out as a calendar.
13
+ */
14
+ const teleport_types_1 = require("@teleporthq/teleport-types");
15
+ const pg_client_code_1 = require("./pg-client-code");
16
+ const auth_generator_1 = require("./auth-generator");
17
+ /**
18
+ * The route's source (CommonJS). GET or HEAD `/api/bookings/ical/<key>.ics`:
19
+ * - another method → 405 with `Allow: GET, HEAD`;
20
+ * - a key of the wrong shape, or one the statement returns no calendar row
21
+ * for → 404 (the key is the link's only credential, so both look the same);
22
+ * - a failed query → 500 'Calendar unavailable', the cause logged only;
23
+ * - else 200 with the calendar, never cached. An event row with a missing or
24
+ * invalid value is left out rather than failing the whole feed.
25
+ */
26
+ const generateBookingCalendarFeedRoute = (feedStatement) => {
27
+ return `'use strict';
28
+
29
+ // GENERATED — see generateBookingCalendarFeedRoute in
30
+ // @teleporthq/teleport-plugin-next-workflows/src/booking-calendar-feed-route-generator.ts.
31
+ //
32
+ // The iCalendar feed of one calendar link of the site's bookings: Airbnb,
33
+ // Booking.com, Vrbo or Google Calendar poll it and block the booked dates.
34
+ ${(0, pg_client_code_1.generatePgClientCode)()}
35
+
36
+ // Built by the editor: $1 is the link's key. It returns one 'calendar' row and
37
+ // one 'event' row per blocked period.
38
+ var FEED_STATEMENT = ${JSON.stringify(feedStatement)};
39
+ var FEED_FILE_RE = /^([A-Za-z0-9_-]{20,80})[.]ics$/;
40
+ var DATE_RE = /^([0-9]{4})([0-9]{2})([0-9]{2})$/;
41
+ var DATE_TIME_RE = /^([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2})Z$/;
42
+ var TEXT_TYPE = 'text/plain; charset=utf-8';
43
+ var CALENDAR_TYPE = 'text/calendar; charset=utf-8';
44
+ var CRLF = String.fromCharCode(13, 10);
45
+ var BACKSLASH = String.fromCharCode(92);
46
+ // RFC 5545: a content line is at most 75 octets, the line break excluded.
47
+ var MAX_LINE_OCTETS = 75;
48
+
49
+ // RFC 5545 TEXT: a backslash, semicolon or comma is escaped with a backslash
50
+ // and every line break is written as the two characters backslash and n.
51
+ // Other control characters are not allowed in TEXT, so they are dropped.
52
+ function icalText(value) {
53
+ var text = String(value == null ? '' : value);
54
+ var out = '';
55
+ for (var i = 0; i < text.length; i++) {
56
+ var ch = text.charAt(i);
57
+ var code = text.charCodeAt(i);
58
+ if (ch === BACKSLASH || ch === ';' || ch === ',') {
59
+ out += BACKSLASH + ch;
60
+ } else if (code === 13 || code === 10) {
61
+ // CRLF, a lone CR and a lone LF are each one line break.
62
+ if (code === 13 && text.charCodeAt(i + 1) === 10) {
63
+ i += 1;
64
+ }
65
+ out += BACKSLASH + 'n';
66
+ } else if (code === 9 || (code >= 32 && code !== 127)) {
67
+ out += ch;
68
+ }
69
+ }
70
+ return out;
71
+ }
72
+
73
+ // One content line, folded: a continuation line starts with one space (which
74
+ // counts toward its 75 octets), and no fold splits a UTF-8 character.
75
+ function icalFold(line) {
76
+ var out = '';
77
+ var used = 0;
78
+ for (var i = 0; i < line.length; i++) {
79
+ var ch = line.charAt(i);
80
+ var code = line.charCodeAt(i);
81
+ var octets = code < 0x80 ? 1 : code < 0x800 ? 2 : 3;
82
+ if (code >= 0xd800 && code <= 0xdbff) {
83
+ var low = line.charCodeAt(i + 1);
84
+ if (low >= 0xdc00 && low <= 0xdfff) {
85
+ // A surrogate pair is one 4-octet character.
86
+ ch = line.slice(i, i + 2);
87
+ octets = 4;
88
+ i += 1;
89
+ }
90
+ }
91
+ if (used + octets > MAX_LINE_OCTETS) {
92
+ out += CRLF + ' ';
93
+ used = 1;
94
+ }
95
+ out += ch;
96
+ used += octets;
97
+ }
98
+ return out + CRLF;
99
+ }
100
+
101
+ // all_day as Postgres hands it over: a boolean, or 't' / 'f' / 'true' / 'false'.
102
+ // null for anything else.
103
+ function icalAllDay(value) {
104
+ if (value === true || value === false) {
105
+ return value;
106
+ }
107
+ var text = String(value == null ? '' : value).trim().toLowerCase();
108
+ if (text === 't' || text === 'true') {
109
+ return true;
110
+ }
111
+ if (text === 'f' || text === 'false') {
112
+ return false;
113
+ }
114
+ return null;
115
+ }
116
+
117
+ // 'YYYYMMDD' (all day) or 'YYYYMMDDTHHMMSSZ' naming a real day and time, else
118
+ // null — a value like 20260231 would otherwise reach the importing calendar.
119
+ function icalDateValue(value, allDay) {
120
+ if (typeof value !== 'string') {
121
+ return null;
122
+ }
123
+ var text = value.trim();
124
+ var match = (allDay ? DATE_RE : DATE_TIME_RE).exec(text);
125
+ if (!match) {
126
+ return null;
127
+ }
128
+ var parts = [];
129
+ for (var i = 1; i <= 6; i++) {
130
+ parts.push(allDay && i > 3 ? 0 : Number(match[i]));
131
+ }
132
+ var date = new Date(Date.UTC(parts[0], parts[1] - 1, parts[2], parts[3], parts[4], parts[5]));
133
+ var actual = [
134
+ date.getUTCFullYear(),
135
+ date.getUTCMonth() + 1,
136
+ date.getUTCDate(),
137
+ date.getUTCHours(),
138
+ date.getUTCMinutes(),
139
+ date.getUTCSeconds(),
140
+ ];
141
+ return actual.join(',') === parts.join(',') ? text : null;
142
+ }
143
+
144
+ // The VEVENT lines of one event row, or null when a value is missing or invalid.
145
+ function icalEventLines(row, stamp) {
146
+ var uid = row.uid == null ? '' : String(row.uid).trim();
147
+ var allDay = icalAllDay(row.all_day);
148
+ if (uid === '' || allDay === null) {
149
+ return null;
150
+ }
151
+ var start = icalDateValue(row.start_value, allDay);
152
+ var end = icalDateValue(row.end_value, allDay);
153
+ // The end is exclusive, so it must come after the start. Two values of the
154
+ // same format compare correctly as strings.
155
+ if (start === null || end === null || end <= start) {
156
+ return null;
157
+ }
158
+ var valueParam = allDay ? ';VALUE=DATE:' : ':';
159
+ return [
160
+ 'BEGIN:VEVENT',
161
+ 'UID:' + icalText(uid),
162
+ 'DTSTAMP:' + stamp,
163
+ 'DTSTART' + valueParam + start,
164
+ 'DTEND' + valueParam + end,
165
+ 'SUMMARY:' + icalText(row.summary),
166
+ 'TRANSP:OPAQUE',
167
+ 'END:VEVENT',
168
+ ];
169
+ }
170
+
171
+ // 'YYYYMMDDTHHMMSSZ' of an instant, in UTC.
172
+ function icalStamp(date) {
173
+ var iso = date.toISOString();
174
+ return (
175
+ iso.slice(0, 4) + iso.slice(5, 7) + iso.slice(8, 10) + 'T' +
176
+ iso.slice(11, 13) + iso.slice(14, 16) + iso.slice(17, 19) + 'Z'
177
+ );
178
+ }
179
+
180
+ function icalCalendar(calendarRow, rows, now) {
181
+ var stamp = icalStamp(now);
182
+ var lines = [
183
+ 'BEGIN:VCALENDAR',
184
+ 'VERSION:2.0',
185
+ 'PRODID:-//TeleportHQ//Bookings//EN',
186
+ 'CALSCALE:GREGORIAN',
187
+ 'METHOD:PUBLISH',
188
+ 'X-WR-CALNAME:' + icalText(calendarRow.calendar_name),
189
+ 'REFRESH-INTERVAL;VALUE=DURATION:PT30M',
190
+ 'X-PUBLISHED-TTL:PT30M',
191
+ ];
192
+ for (var i = 0; i < rows.length; i++) {
193
+ if (rows[i] && rows[i].kind === 'event') {
194
+ var eventLines = icalEventLines(rows[i], stamp);
195
+ if (eventLines) {
196
+ lines = lines.concat(eventLines);
197
+ }
198
+ }
199
+ }
200
+ lines.push('END:VCALENDAR');
201
+ var body = '';
202
+ for (var j = 0; j < lines.length; j++) {
203
+ body += icalFold(lines[j]);
204
+ }
205
+ return body;
206
+ }
207
+
208
+ // Never cached: a booking can block a date between two polls. A HEAD request
209
+ // gets the headers GET would, without the body.
210
+ function icalSend(res, status, contentType, body, headOnly) {
211
+ res.statusCode = status;
212
+ res.setHeader('Content-Type', contentType);
213
+ res.setHeader('Cache-Control', 'no-store');
214
+ res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf8')));
215
+ if (headOnly) {
216
+ res.end();
217
+ } else {
218
+ res.end(body);
219
+ }
220
+ }
221
+
222
+ module.exports = async function handler(req, res) {
223
+ if (req.method !== 'GET' && req.method !== 'HEAD') {
224
+ res.setHeader('Allow', 'GET, HEAD');
225
+ return icalSend(res, 405, TEXT_TYPE, 'Method not allowed', false);
226
+ }
227
+ var headOnly = req.method === 'HEAD';
228
+ var file = req.query && typeof req.query.file === 'string' ? req.query.file : '';
229
+ var fileMatch = FEED_FILE_RE.exec(file);
230
+ if (!fileMatch) {
231
+ return icalSend(res, 404, TEXT_TYPE, 'Not found', headOnly);
232
+ }
233
+
234
+ var rows = null;
235
+ var client = null;
236
+ try {
237
+ client = getClient();
238
+ await client.connect();
239
+ var result = await client.query(FEED_STATEMENT, [fileMatch[1]]);
240
+ rows = result && Array.isArray(result.rows) ? result.rows : [];
241
+ } catch (e) {
242
+ console.error('[bookings-ical] calendar feed query failed:', e && e.message ? e.message : e);
243
+ } finally {
244
+ if (client) {
245
+ try { await client.end(); } catch (e) {}
246
+ }
247
+ }
248
+ if (rows === null) {
249
+ return icalSend(res, 500, TEXT_TYPE, 'Calendar unavailable', headOnly);
250
+ }
251
+
252
+ var calendarRow = null;
253
+ for (var i = 0; i < rows.length && calendarRow === null; i++) {
254
+ if (rows[i] && rows[i].kind === 'calendar') {
255
+ calendarRow = rows[i];
256
+ }
257
+ }
258
+ if (calendarRow === null) {
259
+ return icalSend(res, 404, TEXT_TYPE, 'Not found', headOnly);
260
+ }
261
+ res.setHeader('Content-Disposition', 'inline; filename="' + file + '"');
262
+ return icalSend(res, 200, CALENDAR_TYPE, icalCalendar(calendarRow, rows, new Date()), headOnly);
263
+ };
264
+ `;
265
+ };
266
+ exports.generateBookingCalendarFeedRoute = generateBookingCalendarFeedRoute;
267
+ /**
268
+ * Emits the feed route when the UIDL names a feed statement, plus the `pg`
269
+ * driver it connects with (already present on a project with a Teleport
270
+ * database, which every bookings site has).
271
+ */
272
+ const generateBookingCalendarFeedFiles = (structure) => {
273
+ var _a;
274
+ const feedStatement = (_a = structure.uidl.bookingCalendars) === null || _a === void 0 ? void 0 : _a.feedStatement;
275
+ if (typeof feedStatement !== 'string' || feedStatement.trim() === '') {
276
+ return;
277
+ }
278
+ structure.files.set('bookings-ical-feed-route', {
279
+ path: ['pages', 'api', 'bookings', 'ical'],
280
+ files: [
281
+ {
282
+ name: '[file]',
283
+ fileType: teleport_types_1.FileType.JS,
284
+ content: (0, exports.generateBookingCalendarFeedRoute)(feedStatement),
285
+ },
286
+ ],
287
+ });
288
+ const driverDependencies = (0, auth_generator_1.getDatabaseDriverDependencies)('teleport');
289
+ for (const [pkg, version] of Object.entries(driverDependencies)) {
290
+ if (!structure.dependencies[pkg]) {
291
+ structure.dependencies[pkg] = version;
292
+ }
293
+ }
294
+ };
295
+ exports.generateBookingCalendarFeedFiles = generateBookingCalendarFeedFiles;
296
+ //# sourceMappingURL=booking-calendar-feed-route-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"booking-calendar-feed-route-generator.js","sourceRoot":"","sources":["../../src/booking-calendar-feed-route-generator.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,+DAA6E;AAC7E,qDAAuD;AACvD,qDAAgE;AAEhE;;;;;;;;GAQG;AACI,MAAM,gCAAgC,GAAG,CAAC,aAAqB,EAAU,EAAE;IAChF,OAAO;;;;;;;EAOP,IAAA,qCAAoB,GAAE;;;;uBAID,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkOnD,CAAA;AACD,CAAC,CAAA;AA/OY,QAAA,gCAAgC,oCA+O5C;AAED;;;;GAIG;AACI,MAAM,gCAAgC,GAAG,CAAC,SAAiC,EAAQ,EAAE;;IAC1F,MAAM,aAAa,GAAG,MAAA,SAAS,CAAC,IAAI,CAAC,gBAAgB,0CAAE,aAAa,CAAA;IACpE,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpE,OAAM;KACP;IAED,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,EAAE;QAC9C,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC;QAC1C,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,yBAAQ,CAAC,EAAE;gBACrB,OAAO,EAAE,IAAA,wCAAgC,EAAC,aAAa,CAAC;aACzD;SACF;KACF,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,IAAA,8CAA6B,EAAC,UAAU,CAAC,CAAA;IACpE,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;QAC/D,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;YAChC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;SACtC;KACF;AACH,CAAC,CAAA;AAvBY,QAAA,gCAAgC,oCAuB5C"}
@@ -10,6 +10,7 @@
10
10
  * All interpolated identifiers (table names, column names, sort fields, filter
11
11
  * fields) are validated to prevent SQL injection.
12
12
  */
13
+ import { ContentTables } from '@teleporthq/teleport-shared';
13
14
  export declare const needsDataAPIRoute: (usedNodeTypes: Set<string>) => boolean;
14
15
  export interface DataAPIRouteOptions {
15
16
  authUsersTableName?: string;
@@ -34,14 +35,11 @@ export interface DataAPIRouteOptions {
34
35
  export declare const BROWSER_READABLE_TABLES: ReadonlyArray<string>;
35
36
  /**
36
37
  * What a browser is served of the readable tables whose unpublished rows sit
37
- * beside the public ones — the same policy the per-table read routes apply
38
- * (teleport-plugin-next-data-source `browser-row-policy.ts`, which this mirrors;
39
- * keep the two in step). A browser may not filter or sort by a hidden column:
40
- * a filter is an oracle for a column it never returns.
38
+ * beside the public ones — the same map the per-table read routes apply
39
+ * (teleport-plugin-next-data-source `browser-row-policy.ts`): both read it from
40
+ * teleport-shared. A browser may not filter or sort by a hidden column: a
41
+ * filter is an oracle for a column it never returns.
41
42
  */
42
- export declare const BROWSER_ROW_POLICIES: Readonly<Record<string, {
43
- predicate: string;
44
- hiddenColumns: ReadonlyArray<string>;
45
- }>>;
43
+ export declare const BROWSER_ROW_POLICIES: Readonly<Record<string, ContentTables.VisitorRowPolicy>>;
46
44
  export declare const generateDataAPIRoute: (options?: DataAPIRouteOptions) => string;
47
45
  //# sourceMappingURL=data-api-route-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-api-route-generator.d.ts","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAmBH,eAAO,MAAM,iBAAiB,kBAAmB,IAAI,MAAM,CAAC,KAAG,OAO9D,CAAA;AAED,MAAM,WAAW,mBAAmB;IAIlC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAQ3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAI/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,MAAM,CASzD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CACzC,MAAM,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,CAU5E,CAAA;AAED,eAAO,MAAM,oBAAoB,aAAa,mBAAmB,KAAQ,MAiqCxE,CAAA"}
1
+ {"version":3,"file":"data-api-route-generator.d.ts","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,aAAa,EAAe,MAAM,6BAA6B,CAAA;AAexE,eAAO,MAAM,iBAAiB,kBAAmB,IAAI,MAAM,CAAC,KAAG,OAO9D,CAAA;AAED,MAAM,WAAW,mBAAmB;IAIlC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAQ3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAI/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,MAAM,CASzD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CACtD,CAAA;AAEpC,eAAO,MAAM,oBAAoB,aAAa,mBAAmB,KAAQ,MAsqCxE,CAAA"}