@teleporthq/teleport-plugin-next-workflows 0.43.75 → 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 (129) 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__/invoice-billing-details.test.ts +278 -0
  5. package/__tests__/middleware-admin-panel-roles.test.ts +127 -0
  6. package/__tests__/page-arrival-remount.test.ts +247 -0
  7. package/__tests__/payment-drivers-module.test.ts +19 -0
  8. package/__tests__/raw-query-error-code.test.ts +47 -0
  9. package/__tests__/runtime-template-token-resolution.test.ts +16 -0
  10. package/__tests__/segment-reply-changed-keys.test.ts +31 -0
  11. package/__tests__/segment-route-skipped-branch.test.ts +101 -0
  12. package/dist/cjs/api-route-generator.d.ts.map +1 -1
  13. package/dist/cjs/api-route-generator.js +23 -13
  14. package/dist/cjs/api-route-generator.js.map +1 -1
  15. package/dist/cjs/auth-generator.d.ts.map +1 -1
  16. package/dist/cjs/auth-generator.js +75 -27
  17. package/dist/cjs/auth-generator.js.map +1 -1
  18. package/dist/cjs/booking-calendar-feed-route-generator.d.ts +28 -0
  19. package/dist/cjs/booking-calendar-feed-route-generator.d.ts.map +1 -0
  20. package/dist/cjs/booking-calendar-feed-route-generator.js +296 -0
  21. package/dist/cjs/booking-calendar-feed-route-generator.js.map +1 -0
  22. package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
  23. package/dist/cjs/data-api-route-generator.js +6 -1
  24. package/dist/cjs/data-api-route-generator.js.map +1 -1
  25. package/dist/cjs/executor-generator.d.ts.map +1 -1
  26. package/dist/cjs/executor-generator.js +30 -2
  27. package/dist/cjs/executor-generator.js.map +1 -1
  28. package/dist/cjs/index.d.ts +1 -1
  29. package/dist/cjs/index.d.ts.map +1 -1
  30. package/dist/cjs/index.js +2 -1
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -1
  33. package/dist/cjs/invoice/invoice-assembly-code.js +46 -6
  34. package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -1
  35. package/dist/cjs/invoice/invoice-html-code.d.ts.map +1 -1
  36. package/dist/cjs/invoice/invoice-html-code.js +10 -2
  37. package/dist/cjs/invoice/invoice-html-code.js.map +1 -1
  38. package/dist/cjs/nodes/data/data-raw-query.d.ts.map +1 -1
  39. package/dist/cjs/nodes/data/data-raw-query.js +11 -1
  40. package/dist/cjs/nodes/data/data-raw-query.js.map +1 -1
  41. package/dist/cjs/nodes/general/general-custom-js.d.ts.map +1 -1
  42. package/dist/cjs/nodes/general/general-custom-js.js +11 -0
  43. package/dist/cjs/nodes/general/general-custom-js.js.map +1 -1
  44. package/dist/cjs/page-arrival.d.ts +10 -0
  45. package/dist/cjs/page-arrival.d.ts.map +1 -0
  46. package/dist/cjs/page-arrival.js +86 -0
  47. package/dist/cjs/page-arrival.js.map +1 -0
  48. package/dist/cjs/payments/index.d.ts +10 -4
  49. package/dist/cjs/payments/index.d.ts.map +1 -1
  50. package/dist/cjs/payments/index.js +18 -7
  51. package/dist/cjs/payments/index.js.map +1 -1
  52. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  53. package/dist/cjs/workflow-component-plugin.d.ts.map +1 -1
  54. package/dist/cjs/workflow-component-plugin.js +35 -149
  55. package/dist/cjs/workflow-component-plugin.js.map +1 -1
  56. package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
  57. package/dist/cjs/workflow-project-plugin.js +14 -4
  58. package/dist/cjs/workflow-project-plugin.js.map +1 -1
  59. package/dist/cjs/workflow-scope.d.ts +19 -0
  60. package/dist/cjs/workflow-scope.d.ts.map +1 -0
  61. package/dist/cjs/workflow-scope.js +147 -0
  62. package/dist/cjs/workflow-scope.js.map +1 -0
  63. package/dist/esm/api-route-generator.d.ts.map +1 -1
  64. package/dist/esm/api-route-generator.js +23 -13
  65. package/dist/esm/api-route-generator.js.map +1 -1
  66. package/dist/esm/auth-generator.d.ts.map +1 -1
  67. package/dist/esm/auth-generator.js +75 -27
  68. package/dist/esm/auth-generator.js.map +1 -1
  69. package/dist/esm/booking-calendar-feed-route-generator.d.ts +28 -0
  70. package/dist/esm/booking-calendar-feed-route-generator.d.ts.map +1 -0
  71. package/dist/esm/booking-calendar-feed-route-generator.js +291 -0
  72. package/dist/esm/booking-calendar-feed-route-generator.js.map +1 -0
  73. package/dist/esm/data-api-route-generator.d.ts.map +1 -1
  74. package/dist/esm/data-api-route-generator.js +6 -1
  75. package/dist/esm/data-api-route-generator.js.map +1 -1
  76. package/dist/esm/executor-generator.d.ts.map +1 -1
  77. package/dist/esm/executor-generator.js +30 -2
  78. package/dist/esm/executor-generator.js.map +1 -1
  79. package/dist/esm/index.d.ts +1 -1
  80. package/dist/esm/index.d.ts.map +1 -1
  81. package/dist/esm/index.js +1 -1
  82. package/dist/esm/index.js.map +1 -1
  83. package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -1
  84. package/dist/esm/invoice/invoice-assembly-code.js +46 -6
  85. package/dist/esm/invoice/invoice-assembly-code.js.map +1 -1
  86. package/dist/esm/invoice/invoice-html-code.d.ts.map +1 -1
  87. package/dist/esm/invoice/invoice-html-code.js +10 -2
  88. package/dist/esm/invoice/invoice-html-code.js.map +1 -1
  89. package/dist/esm/nodes/data/data-raw-query.d.ts.map +1 -1
  90. package/dist/esm/nodes/data/data-raw-query.js +11 -1
  91. package/dist/esm/nodes/data/data-raw-query.js.map +1 -1
  92. package/dist/esm/nodes/general/general-custom-js.d.ts.map +1 -1
  93. package/dist/esm/nodes/general/general-custom-js.js +11 -0
  94. package/dist/esm/nodes/general/general-custom-js.js.map +1 -1
  95. package/dist/esm/page-arrival.d.ts +10 -0
  96. package/dist/esm/page-arrival.d.ts.map +1 -0
  97. package/dist/esm/page-arrival.js +81 -0
  98. package/dist/esm/page-arrival.js.map +1 -0
  99. package/dist/esm/payments/index.d.ts +10 -4
  100. package/dist/esm/payments/index.d.ts.map +1 -1
  101. package/dist/esm/payments/index.js +16 -6
  102. package/dist/esm/payments/index.js.map +1 -1
  103. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  104. package/dist/esm/workflow-component-plugin.d.ts.map +1 -1
  105. package/dist/esm/workflow-component-plugin.js +32 -146
  106. package/dist/esm/workflow-component-plugin.js.map +1 -1
  107. package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
  108. package/dist/esm/workflow-project-plugin.js +14 -4
  109. package/dist/esm/workflow-project-plugin.js.map +1 -1
  110. package/dist/esm/workflow-scope.d.ts +19 -0
  111. package/dist/esm/workflow-scope.d.ts.map +1 -0
  112. package/dist/esm/workflow-scope.js +142 -0
  113. package/dist/esm/workflow-scope.js.map +1 -0
  114. package/package.json +4 -4
  115. package/src/api-route-generator.ts +23 -13
  116. package/src/auth-generator.ts +80 -25
  117. package/src/booking-calendar-feed-route-generator.ts +293 -0
  118. package/src/data-api-route-generator.ts +6 -1
  119. package/src/executor-generator.ts +30 -2
  120. package/src/index.ts +1 -0
  121. package/src/invoice/invoice-assembly-code.ts +46 -6
  122. package/src/invoice/invoice-html-code.ts +10 -2
  123. package/src/nodes/data/data-raw-query.ts +11 -1
  124. package/src/nodes/general/general-custom-js.ts +10 -0
  125. package/src/page-arrival.ts +115 -0
  126. package/src/payments/index.ts +18 -5
  127. package/src/workflow-component-plugin.ts +43 -188
  128. package/src/workflow-project-plugin.ts +15 -4
  129. package/src/workflow-scope.ts +184 -0
@@ -0,0 +1,291 @@
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 { FileType } from '@teleporthq/teleport-types';
12
+ import { generatePgClientCode } from './pg-client-code';
13
+ import { getDatabaseDriverDependencies } from './auth-generator';
14
+ /**
15
+ * The route's source (CommonJS). GET or HEAD `/api/bookings/ical/<key>.ics`:
16
+ * - another method → 405 with `Allow: GET, HEAD`;
17
+ * - a key of the wrong shape, or one the statement returns no calendar row
18
+ * for → 404 (the key is the link's only credential, so both look the same);
19
+ * - a failed query → 500 'Calendar unavailable', the cause logged only;
20
+ * - else 200 with the calendar, never cached. An event row with a missing or
21
+ * invalid value is left out rather than failing the whole feed.
22
+ */
23
+ export const generateBookingCalendarFeedRoute = (feedStatement) => {
24
+ return `'use strict';
25
+
26
+ // GENERATED — see generateBookingCalendarFeedRoute in
27
+ // @teleporthq/teleport-plugin-next-workflows/src/booking-calendar-feed-route-generator.ts.
28
+ //
29
+ // The iCalendar feed of one calendar link of the site's bookings: Airbnb,
30
+ // Booking.com, Vrbo or Google Calendar poll it and block the booked dates.
31
+ ${generatePgClientCode()}
32
+
33
+ // Built by the editor: $1 is the link's key. It returns one 'calendar' row and
34
+ // one 'event' row per blocked period.
35
+ var FEED_STATEMENT = ${JSON.stringify(feedStatement)};
36
+ var FEED_FILE_RE = /^([A-Za-z0-9_-]{20,80})[.]ics$/;
37
+ var DATE_RE = /^([0-9]{4})([0-9]{2})([0-9]{2})$/;
38
+ var DATE_TIME_RE = /^([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2})Z$/;
39
+ var TEXT_TYPE = 'text/plain; charset=utf-8';
40
+ var CALENDAR_TYPE = 'text/calendar; charset=utf-8';
41
+ var CRLF = String.fromCharCode(13, 10);
42
+ var BACKSLASH = String.fromCharCode(92);
43
+ // RFC 5545: a content line is at most 75 octets, the line break excluded.
44
+ var MAX_LINE_OCTETS = 75;
45
+
46
+ // RFC 5545 TEXT: a backslash, semicolon or comma is escaped with a backslash
47
+ // and every line break is written as the two characters backslash and n.
48
+ // Other control characters are not allowed in TEXT, so they are dropped.
49
+ function icalText(value) {
50
+ var text = String(value == null ? '' : value);
51
+ var out = '';
52
+ for (var i = 0; i < text.length; i++) {
53
+ var ch = text.charAt(i);
54
+ var code = text.charCodeAt(i);
55
+ if (ch === BACKSLASH || ch === ';' || ch === ',') {
56
+ out += BACKSLASH + ch;
57
+ } else if (code === 13 || code === 10) {
58
+ // CRLF, a lone CR and a lone LF are each one line break.
59
+ if (code === 13 && text.charCodeAt(i + 1) === 10) {
60
+ i += 1;
61
+ }
62
+ out += BACKSLASH + 'n';
63
+ } else if (code === 9 || (code >= 32 && code !== 127)) {
64
+ out += ch;
65
+ }
66
+ }
67
+ return out;
68
+ }
69
+
70
+ // One content line, folded: a continuation line starts with one space (which
71
+ // counts toward its 75 octets), and no fold splits a UTF-8 character.
72
+ function icalFold(line) {
73
+ var out = '';
74
+ var used = 0;
75
+ for (var i = 0; i < line.length; i++) {
76
+ var ch = line.charAt(i);
77
+ var code = line.charCodeAt(i);
78
+ var octets = code < 0x80 ? 1 : code < 0x800 ? 2 : 3;
79
+ if (code >= 0xd800 && code <= 0xdbff) {
80
+ var low = line.charCodeAt(i + 1);
81
+ if (low >= 0xdc00 && low <= 0xdfff) {
82
+ // A surrogate pair is one 4-octet character.
83
+ ch = line.slice(i, i + 2);
84
+ octets = 4;
85
+ i += 1;
86
+ }
87
+ }
88
+ if (used + octets > MAX_LINE_OCTETS) {
89
+ out += CRLF + ' ';
90
+ used = 1;
91
+ }
92
+ out += ch;
93
+ used += octets;
94
+ }
95
+ return out + CRLF;
96
+ }
97
+
98
+ // all_day as Postgres hands it over: a boolean, or 't' / 'f' / 'true' / 'false'.
99
+ // null for anything else.
100
+ function icalAllDay(value) {
101
+ if (value === true || value === false) {
102
+ return value;
103
+ }
104
+ var text = String(value == null ? '' : value).trim().toLowerCase();
105
+ if (text === 't' || text === 'true') {
106
+ return true;
107
+ }
108
+ if (text === 'f' || text === 'false') {
109
+ return false;
110
+ }
111
+ return null;
112
+ }
113
+
114
+ // 'YYYYMMDD' (all day) or 'YYYYMMDDTHHMMSSZ' naming a real day and time, else
115
+ // null — a value like 20260231 would otherwise reach the importing calendar.
116
+ function icalDateValue(value, allDay) {
117
+ if (typeof value !== 'string') {
118
+ return null;
119
+ }
120
+ var text = value.trim();
121
+ var match = (allDay ? DATE_RE : DATE_TIME_RE).exec(text);
122
+ if (!match) {
123
+ return null;
124
+ }
125
+ var parts = [];
126
+ for (var i = 1; i <= 6; i++) {
127
+ parts.push(allDay && i > 3 ? 0 : Number(match[i]));
128
+ }
129
+ var date = new Date(Date.UTC(parts[0], parts[1] - 1, parts[2], parts[3], parts[4], parts[5]));
130
+ var actual = [
131
+ date.getUTCFullYear(),
132
+ date.getUTCMonth() + 1,
133
+ date.getUTCDate(),
134
+ date.getUTCHours(),
135
+ date.getUTCMinutes(),
136
+ date.getUTCSeconds(),
137
+ ];
138
+ return actual.join(',') === parts.join(',') ? text : null;
139
+ }
140
+
141
+ // The VEVENT lines of one event row, or null when a value is missing or invalid.
142
+ function icalEventLines(row, stamp) {
143
+ var uid = row.uid == null ? '' : String(row.uid).trim();
144
+ var allDay = icalAllDay(row.all_day);
145
+ if (uid === '' || allDay === null) {
146
+ return null;
147
+ }
148
+ var start = icalDateValue(row.start_value, allDay);
149
+ var end = icalDateValue(row.end_value, allDay);
150
+ // The end is exclusive, so it must come after the start. Two values of the
151
+ // same format compare correctly as strings.
152
+ if (start === null || end === null || end <= start) {
153
+ return null;
154
+ }
155
+ var valueParam = allDay ? ';VALUE=DATE:' : ':';
156
+ return [
157
+ 'BEGIN:VEVENT',
158
+ 'UID:' + icalText(uid),
159
+ 'DTSTAMP:' + stamp,
160
+ 'DTSTART' + valueParam + start,
161
+ 'DTEND' + valueParam + end,
162
+ 'SUMMARY:' + icalText(row.summary),
163
+ 'TRANSP:OPAQUE',
164
+ 'END:VEVENT',
165
+ ];
166
+ }
167
+
168
+ // 'YYYYMMDDTHHMMSSZ' of an instant, in UTC.
169
+ function icalStamp(date) {
170
+ var iso = date.toISOString();
171
+ return (
172
+ iso.slice(0, 4) + iso.slice(5, 7) + iso.slice(8, 10) + 'T' +
173
+ iso.slice(11, 13) + iso.slice(14, 16) + iso.slice(17, 19) + 'Z'
174
+ );
175
+ }
176
+
177
+ function icalCalendar(calendarRow, rows, now) {
178
+ var stamp = icalStamp(now);
179
+ var lines = [
180
+ 'BEGIN:VCALENDAR',
181
+ 'VERSION:2.0',
182
+ 'PRODID:-//TeleportHQ//Bookings//EN',
183
+ 'CALSCALE:GREGORIAN',
184
+ 'METHOD:PUBLISH',
185
+ 'X-WR-CALNAME:' + icalText(calendarRow.calendar_name),
186
+ 'REFRESH-INTERVAL;VALUE=DURATION:PT30M',
187
+ 'X-PUBLISHED-TTL:PT30M',
188
+ ];
189
+ for (var i = 0; i < rows.length; i++) {
190
+ if (rows[i] && rows[i].kind === 'event') {
191
+ var eventLines = icalEventLines(rows[i], stamp);
192
+ if (eventLines) {
193
+ lines = lines.concat(eventLines);
194
+ }
195
+ }
196
+ }
197
+ lines.push('END:VCALENDAR');
198
+ var body = '';
199
+ for (var j = 0; j < lines.length; j++) {
200
+ body += icalFold(lines[j]);
201
+ }
202
+ return body;
203
+ }
204
+
205
+ // Never cached: a booking can block a date between two polls. A HEAD request
206
+ // gets the headers GET would, without the body.
207
+ function icalSend(res, status, contentType, body, headOnly) {
208
+ res.statusCode = status;
209
+ res.setHeader('Content-Type', contentType);
210
+ res.setHeader('Cache-Control', 'no-store');
211
+ res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf8')));
212
+ if (headOnly) {
213
+ res.end();
214
+ } else {
215
+ res.end(body);
216
+ }
217
+ }
218
+
219
+ module.exports = async function handler(req, res) {
220
+ if (req.method !== 'GET' && req.method !== 'HEAD') {
221
+ res.setHeader('Allow', 'GET, HEAD');
222
+ return icalSend(res, 405, TEXT_TYPE, 'Method not allowed', false);
223
+ }
224
+ var headOnly = req.method === 'HEAD';
225
+ var file = req.query && typeof req.query.file === 'string' ? req.query.file : '';
226
+ var fileMatch = FEED_FILE_RE.exec(file);
227
+ if (!fileMatch) {
228
+ return icalSend(res, 404, TEXT_TYPE, 'Not found', headOnly);
229
+ }
230
+
231
+ var rows = null;
232
+ var client = null;
233
+ try {
234
+ client = getClient();
235
+ await client.connect();
236
+ var result = await client.query(FEED_STATEMENT, [fileMatch[1]]);
237
+ rows = result && Array.isArray(result.rows) ? result.rows : [];
238
+ } catch (e) {
239
+ console.error('[bookings-ical] calendar feed query failed:', e && e.message ? e.message : e);
240
+ } finally {
241
+ if (client) {
242
+ try { await client.end(); } catch (e) {}
243
+ }
244
+ }
245
+ if (rows === null) {
246
+ return icalSend(res, 500, TEXT_TYPE, 'Calendar unavailable', headOnly);
247
+ }
248
+
249
+ var calendarRow = null;
250
+ for (var i = 0; i < rows.length && calendarRow === null; i++) {
251
+ if (rows[i] && rows[i].kind === 'calendar') {
252
+ calendarRow = rows[i];
253
+ }
254
+ }
255
+ if (calendarRow === null) {
256
+ return icalSend(res, 404, TEXT_TYPE, 'Not found', headOnly);
257
+ }
258
+ res.setHeader('Content-Disposition', 'inline; filename="' + file + '"');
259
+ return icalSend(res, 200, CALENDAR_TYPE, icalCalendar(calendarRow, rows, new Date()), headOnly);
260
+ };
261
+ `;
262
+ };
263
+ /**
264
+ * Emits the feed route when the UIDL names a feed statement, plus the `pg`
265
+ * driver it connects with (already present on a project with a Teleport
266
+ * database, which every bookings site has).
267
+ */
268
+ export const generateBookingCalendarFeedFiles = (structure) => {
269
+ var _a;
270
+ const feedStatement = (_a = structure.uidl.bookingCalendars) === null || _a === void 0 ? void 0 : _a.feedStatement;
271
+ if (typeof feedStatement !== 'string' || feedStatement.trim() === '') {
272
+ return;
273
+ }
274
+ structure.files.set('bookings-ical-feed-route', {
275
+ path: ['pages', 'api', 'bookings', 'ical'],
276
+ files: [
277
+ {
278
+ name: '[file]',
279
+ fileType: FileType.JS,
280
+ content: generateBookingCalendarFeedRoute(feedStatement),
281
+ },
282
+ ],
283
+ });
284
+ const driverDependencies = getDatabaseDriverDependencies('teleport');
285
+ for (const [pkg, version] of Object.entries(driverDependencies)) {
286
+ if (!structure.dependencies[pkg]) {
287
+ structure.dependencies[pkg] = version;
288
+ }
289
+ }
290
+ };
291
+ //# 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,OAAO,EAAE,QAAQ,EAA0B,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAA;AAEhE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,aAAqB,EAAU,EAAE;IAChF,OAAO;;;;;;;EAOP,oBAAoB,EAAE;;;;uBAID,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkOnD,CAAA;AACD,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,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,QAAQ,CAAC,EAAE;gBACrB,OAAO,EAAE,gCAAgC,CAAC,aAAa,CAAC;aACzD;SACF;KACF,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,6BAA6B,CAAC,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"}
@@ -1 +1 @@
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,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"}
@@ -73,7 +73,12 @@ export const generateDataAPIRoute = (options = {}) => {
73
73
  const lowStockThreshold = typeof options.lowStockThreshold === 'number' && options.lowStockThreshold >= 0
74
74
  ? options.lowStockThreshold
75
75
  : 5;
76
- return `const { Client } = require('pg');
76
+ return `const { Client, types: pgTypes } = require('pg');
77
+ // A DATE stays the day it names, whatever the server's time zone: node-pg would read it as
78
+ // local midnight, which a server east of UTC sends as the day before.
79
+ if (pgTypes && typeof pgTypes.setTypeParser === 'function') {
80
+ pgTypes.setTypeParser(1082, (value) => value);
81
+ }
77
82
  ${
78
83
  // The session cookie is resolved from the REQUEST rather than from
79
84
  // process.env.NEXTAUTH_URL — see session-cookie-resolver.ts. Reading it the
@@ -1 +1 @@
1
- {"version":3,"file":"data-api-route-generator.js","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-api-route-generator.js","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,wCAAwC,EAAE,MAAM,2BAA2B,CAAA;AACpF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAExE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,gBAAgB;IAChB,uEAAuE;IACvE,0EAA0E;IAC1E,sCAAsC;IACtC,yBAAyB;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAA0B,EAAW,EAAE;IACvE,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;QAC9B,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAA;SACZ;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAqBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA0B;IAC5D,mBAAmB;IACnB,2BAA2B;IAC3B,oBAAoB;IACpB,yBAAyB;IACzB,yBAAyB;IACzB,oBAAoB;IACpB,0BAA0B;IAC1B,GAAG,aAAa,CAAC,oBAAoB;CACtC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,aAAa,CAAC,oBAAoB,CAAA;AAEpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAA+B,EAAE,EAAU,EAAE;IAChF,MAAM,aAAa,GAAG,wBAAwB,EAAE,CAAA;IAChD,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAA;IACzD,MAAM,qBAAqB,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAA;IAC7D,MAAM,iBAAiB,GACrB,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC;QAC7E,CAAC,CAAC,OAAO,CAAC,iBAAiB;QAC3B,CAAC,CAAC,CAAC,CAAA;IAEP,OAAO;;;;;;EAMP;IACA,mEAAmE;IACnE,4EAA4E;IAC5E,6EAA6E;IAC7E,qEAAqE;IACrE,cAAc,CAAC,CAAC,CAAC,wCAAwC,EAAE,CAAC,CAAC,CAAC,EAChE,4BAA4B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;mCACvB,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;8BAC1C,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;EAC7D,aAAa;EACb;IACA,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,iEAAiE;IACjE,WAAW,CAAC,6BAA6B,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,CACtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAu2BgC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;6BAC1C,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8RhE,CAAA;AACD,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor-generator.d.ts","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGlB,MAAM,gBAAgB,CAAA;AAGvB,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAA;CACjC;AAID,eAAO,MAAM,8BAA8B,aAAa,yBAAyB,KAAQ,MA68CxF,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,MAgpB5C,CAAA"}
1
+ {"version":3,"file":"executor-generator.d.ts","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGlB,MAAM,gBAAgB,CAAA;AAGvB,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAA;CACjC;AAID,eAAO,MAAM,8BAA8B,aAAa,yBAAyB,KAAQ,MAy+CxF,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,MAgpB5C,CAAA"}
@@ -371,8 +371,19 @@ function applyTemplateParams(text, params) {
371
371
  function finalizeResolvedConfig(nodeType, config) {
372
372
  var isDataNode = typeof nodeType === 'string' && nodeType.indexOf('data-') === 0;
373
373
  var error = null;
374
+ // A config value may be a live element (a trigger's target handed to a
375
+ // custom-js node) or an object that refers back to itself: walking into a
376
+ // DOM node follows its React fibers forever (a page's every element-bound
377
+ // behavior died with "Maximum call stack size exceeded"). Elements are
378
+ // left as they are; an object is walked once.
379
+ var seen = typeof WeakSet === 'function' ? new WeakSet() : null;
374
380
  function walk(obj, insideFilters) {
375
381
  if (!obj || typeof obj !== 'object') return;
382
+ if (typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string') return;
383
+ if (seen) {
384
+ if (seen.has(obj)) return;
385
+ seen.add(obj);
386
+ }
376
387
  if (Array.isArray(obj)) {
377
388
  for (var ai = 0; ai < obj.length; ai++) walk(obj[ai], insideFilters);
378
389
  return;
@@ -1382,15 +1393,31 @@ var SEGMENT_REPLY_PRIVATE_KEYS = {
1382
1393
  // be echoed back wholesale (every earlier node's result, the trigger, the whole
1383
1394
  // page state), so each round trip carried the page twice over and the network
1384
1395
  // tab showed every node's data on every hop.
1396
+ //
1397
+ // A node marked \`keepResultOnServer\` is the exception: its result serves the
1398
+ // nodes after it in the same segment and never leaves the server (a statement's
1399
+ // rows read only to build what the browser may see, a sender's recipients).
1400
+ // Nothing in a later segment can read it.
1401
+ // The nodes whose result the client branches on: never kept on the server.
1402
+ function isBranchingNodeType(type) {
1403
+ return type === 'general-if-statement' || type === 'general-switch';
1404
+ }
1405
+
1385
1406
  function segmentReply(segmentConfig, context, snapshot) {
1386
1407
  var reply = {};
1387
1408
  var own = {};
1409
+ var kept = {};
1388
1410
  var nodes = (segmentConfig && segmentConfig.nodes) || [];
1389
- for (var ni = 0; ni < nodes.length; ni++) own[nodes[ni].id] = true;
1411
+ for (var ni = 0; ni < nodes.length; ni++) {
1412
+ own[nodes[ni].id] = true;
1413
+ if (nodes[ni].config && nodes[ni].config.keepResultOnServer === true && !isBranchingNodeType(nodes[ni].type)) {
1414
+ kept[nodes[ni].id] = true;
1415
+ }
1416
+ }
1390
1417
  var keys = Object.keys(context);
1391
1418
  for (var i = 0; i < keys.length; i++) {
1392
1419
  var key = keys[i];
1393
- if (SEGMENT_REPLY_PRIVATE_KEYS[key]) continue;
1420
+ if (SEGMENT_REPLY_PRIVATE_KEYS[key] || kept[key]) continue;
1394
1421
  var value = context[key];
1395
1422
  if (value === undefined) continue;
1396
1423
  if (own[key] || !snapshot || !Object.prototype.hasOwnProperty.call(snapshot, key)) {
@@ -1481,6 +1508,7 @@ module.exports = {
1481
1508
  fatalNodeResultMessage,
1482
1509
  continuesOnError,
1483
1510
  isFireAndForgetNode,
1511
+ isBranchingNodeType,
1484
1512
  startFireAndForgetNode,
1485
1513
  registerPendingNodePromise,
1486
1514
  settlePendingNodePromises
@@ -1 +1 @@
1
- {"version":3,"file":"executor-generator.js","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor-generator.js","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export { collectUsedNodeTypes, projectUsesRealtime, REALTIME_NODE_TYPES, REALTIM
21
21
  export * from './realtime-generator';
22
22
  export { generateInvoiceFiles, resolveInvoiceDataSource } from './invoice';
23
23
  export { generateWebhookFiles } from './webhook-generator';
24
- export { declarePaymentCredentialEnv, ensurePaymentDriversModule, resolveStorePaymentDriverIds, } from './payments';
24
+ export { declarePaymentCredentialEnv, ensurePaymentDriversModule, readUidlPaymentProviders, resolveStorePaymentDriverIds, } from './payments';
25
25
  export { needsRuntimeStorageRoute, generateRuntimeStorageUploadRoute, } from './runtime-storage-generator';
26
26
  export * from './types';
27
27
  export { SCROLL_POINT_PROGRESS, DEFAULT_SCROLL_POINT, resolveScrollPoint } from './scroll-points';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC5F,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EACL,6BAA6B,EAC7B,sCAAsC,EACtC,oBAAoB,EACpB,+BAA+B,EAC/B,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,wCAAwC,GACzC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAA;AACtB,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,6BAA6B,CAAA;AACpC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC5F,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EACL,6BAA6B,EAC7B,sCAAsC,EACtC,oBAAoB,EACpB,+BAA+B,EAC/B,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,wCAAwC,GACzC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAA;AACtB,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,6BAA6B,CAAA;AACpC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
package/dist/esm/index.js CHANGED
@@ -19,7 +19,7 @@ export { collectUsedNodeTypes, projectUsesRealtime, REALTIME_NODE_TYPES, REALTIM
19
19
  export * from './realtime-generator';
20
20
  export { generateInvoiceFiles, resolveInvoiceDataSource } from './invoice';
21
21
  export { generateWebhookFiles } from './webhook-generator';
22
- export { declarePaymentCredentialEnv, ensurePaymentDriversModule, resolveStorePaymentDriverIds, } from './payments';
22
+ export { declarePaymentCredentialEnv, ensurePaymentDriversModule, readUidlPaymentProviders, resolveStorePaymentDriverIds, } from './payments';
23
23
  export { needsRuntimeStorageRoute, generateRuntimeStorageUploadRoute, } from './runtime-storage-generator';
24
24
  export * from './types';
25
25
  export { SCROLL_POINT_PROGRESS, DEFAULT_SCROLL_POINT, resolveScrollPoint } from './scroll-points';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC5F,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,EACL,6BAA6B,EAC7B,sCAAsC,EACtC,oBAAoB,EACpB,+BAA+B,EAC/B,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,wCAAwC,GACzC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAA;AACtB,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,6BAA6B,CAAA;AACpC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC5F,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,EACL,6BAA6B,EAC7B,sCAAsC,EACtC,oBAAoB,EACpB,+BAA+B,EAC/B,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,wCAAwC,GACzC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAA;AACtB,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,6BAA6B,CAAA;AACpC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"invoice-assembly-code.d.ts","sourceRoot":"","sources":["../../../src/invoice/invoice-assembly-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAIhE;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,aAAc,mBAAmB,KAAG,MAof3E,CAAA"}
1
+ {"version":3,"file":"invoice-assembly-code.d.ts","sourceRoot":"","sources":["../../../src/invoice/invoice-assembly-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAIhE;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,aAAc,mBAAmB,KAAG,MA4hB3E,CAAA"}
@@ -31,6 +31,34 @@ var TEMPLATE_DOCUMENT = ${templateDocumentJson};
31
31
  ${REGIONAL_INVOICE_TAX_CODE}
32
32
  ${ProductOptions.generateProductOptionsHelperCode()}
33
33
 
34
+ // The invoice details an order's metadata (JSON text) carries beside its
35
+ // billing columns — the keys \`ORDER_BILLING_METADATA_KEYS\` (teleport-gui)
36
+ // writes: the address in its parts and the buyer's tax or VAT number. Every
37
+ // part is '' when the order has none or its metadata is no JSON object.
38
+ function readOrderBillingMetadata(raw) {
39
+ var parsed = raw;
40
+ if (typeof raw === 'string') {
41
+ try {
42
+ parsed = JSON.parse(raw);
43
+ } catch (e) {
44
+ parsed = null;
45
+ }
46
+ }
47
+ var meta = parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {};
48
+ function part(key) {
49
+ var value = meta[key];
50
+ return value === null || value === undefined ? '' : String(value).trim();
51
+ }
52
+ return {
53
+ taxId: part('billingTaxId'),
54
+ street: part('billingStreet'),
55
+ city: part('billingCity'),
56
+ postalCode: part('billingPostalCode'),
57
+ region: part('billingRegion'),
58
+ country: part('billingCountry'),
59
+ };
60
+ }
61
+
34
62
  // The product options an order line was bought with: the short one-line label
35
63
  // (after the name) and every answer in full, one per line (the description).
36
64
  // Same rule as the order emails: a current snapshot names its options, while
@@ -414,15 +442,27 @@ function assembleInvoiceData(body, hydratedOrder, hydratedItems) {
414
442
  // field but the order has one, use it. Kept permissive on field
415
443
  // names (billing_* wins, falls back to shipping_*) because a buyer
416
444
  // who checked "bill to a different address" has both on the order.
445
+ //
446
+ // An order whose buyer gave invoice details of their own (a booking's
447
+ // "Add invoice details") carries them in its metadata as well: the address
448
+ // in its parts and the tax or VAT number. Those parts are the invoice's
449
+ // address — never mixed with a shipping address — and the number is the
450
+ // buyer's VAT.
417
451
  var orderRow = orderShippingSource;
452
+ var orderBilling = readOrderBillingMetadata(orderRow.metadata);
453
+ var billedApart = !!(orderBilling.street || orderBilling.city || orderBilling.country);
418
454
  var fallbackCustomerName =
419
455
  orderRow.billing_name || orderRow.shipping_name || orderRow.customer_name || '';
420
456
  var fallbackCustomerEmail = orderRow.billing_email || orderRow.customer_email || '';
421
- var fallbackCustomerAddress = orderRow.billing_address || orderRow.shipping_address || '';
422
- var fallbackCustomerCity = orderRow.shipping_city || '';
423
- var fallbackCustomerState = orderRow.shipping_state || '';
424
- var fallbackCustomerZip = orderRow.shipping_zip || '';
425
- var fallbackCustomerCountry = orderRow.shipping_country || '';
457
+ var fallbackCustomerAddress = billedApart
458
+ ? orderBilling.street
459
+ : orderRow.billing_address || orderRow.shipping_address || '';
460
+ var fallbackCustomerCity = billedApart ? orderBilling.city : orderRow.shipping_city || '';
461
+ var fallbackCustomerState = billedApart ? orderBilling.region : orderRow.shipping_state || '';
462
+ var fallbackCustomerZip = billedApart ? orderBilling.postalCode : orderRow.shipping_zip || '';
463
+ var fallbackCustomerCountry = billedApart
464
+ ? orderBilling.country
465
+ : orderRow.shipping_country || '';
426
466
  var fallbackPaymentMethod = orderRow.payment_method || '';
427
467
  var fallbackPaymentProvider = orderRow.payment_provider || '';
428
468
  var fallbackPaymentIntentId = orderRow.payment_intent_id || '';
@@ -444,7 +484,7 @@ function assembleInvoiceData(body, hydratedOrder, hydratedItems) {
444
484
  customerState: body.customerState || fallbackCustomerState || '',
445
485
  customerZip: body.customerZip || fallbackCustomerZip || '',
446
486
  customerCountry: body.customerCountry || fallbackCustomerCountry || '',
447
- customerVat: body.customerVat || '',
487
+ customerVat: body.customerVat || orderBilling.taxId || '',
448
488
  companyName: pdfGenerator.COMPANY_DETAILS.companyName || '',
449
489
  companyAddress: pdfGenerator.COMPANY_DETAILS.companyAddress || '',
450
490
  companyCity: pdfGenerator.COMPANY_DETAILS.companyCity || '',
@@ -1 +1 @@
1
- {"version":3,"file":"invoice-assembly-code.js","sourceRoot":"","sources":["../../../src/invoice/invoice-assembly-code.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAEvE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,QAA6B,EAAU,EAAE;;IACnF,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAA;IACnD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAA;IAC/D,MAAM,oBAAoB,GAAG,CAAA,MAAA,QAAQ,CAAC,QAAQ,0CAAE,QAAQ;QACtD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5C,CAAC,CAAC,MAAM,CAAA;IAEV,OAAO;;;;;;;;yBAQgB,cAAc;;8BAET,kBAAkB;0BACtB,oBAAoB;EAC5C,yBAAyB;EACzB,cAAc,CAAC,gCAAgC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+dlD,CAAA;AACD,CAAC,CAAA"}
1
+ {"version":3,"file":"invoice-assembly-code.js","sourceRoot":"","sources":["../../../src/invoice/invoice-assembly-code.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAEvE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,QAA6B,EAAU,EAAE;;IACnF,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAA;IACnD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAA;IAC/D,MAAM,oBAAoB,GAAG,CAAA,MAAA,QAAQ,CAAC,QAAQ,0CAAE,QAAQ;QACtD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5C,CAAC,CAAC,MAAM,CAAA;IAEV,OAAO;;;;;;;;yBAQgB,cAAc;;8BAET,kBAAkB;0BACtB,oBAAoB;EAC5C,yBAAyB;EACzB,cAAc,CAAC,gCAAgC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAugBlD,CAAA;AACD,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"invoice-html-code.d.ts","sourceRoot":"","sources":["../../../src/invoice/invoice-html-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AA4HhE,eAAO,MAAM,uBAAuB,aACxB,mBAAmB,uBACR,OAAO,iBACb,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,KACxD,MAmgCF,CAAA"}
1
+ {"version":3,"file":"invoice-html-code.d.ts","sourceRoot":"","sources":["../../../src/invoice/invoice-html-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AA4HhE,eAAO,MAAM,uBAAuB,aACxB,mBAAmB,uBACR,OAAO,iBACb,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,KACxD,MA2gCF,CAAA"}
@@ -335,6 +335,9 @@ function buildInvoiceDataScope(invoiceData) {
335
335
  // sample — right for a company address, wrong for a code or a card tail: an
336
336
  // order without a voucher must not print the designer's "SAVE20".
337
337
  var realInvoiceNeverSampled = { voucherCode: voucherCode, giftCardLast4: giftCardLast4 };
338
+ // The buyer and their payment are never sampled either: an order with no
339
+ // city (a booking, a pickup, a download) must not print the designer's
340
+ // sample customer's, nor a card it was not paid with.
338
341
 
339
342
  var realCustomer = {
340
343
  name: invoiceData.customerName || '',
@@ -346,6 +349,11 @@ function buildInvoiceDataScope(invoiceData) {
346
349
  country: invoiceData.customerCountry || '',
347
350
  vat: invoiceData.customerVat || '',
348
351
  };
352
+ // The "Bill to" lines a buyer may leave out show only when they did not
353
+ // (string flags: the template compares strings, as with \`hasShipping\`).
354
+ realCustomer.hasZip = realCustomer.zip ? 'true' : 'false';
355
+ realCustomer.hasCountry = realCustomer.country ? 'true' : 'false';
356
+ realCustomer.hasVat = realCustomer.vat ? 'true' : 'false';
349
357
 
350
358
  var realPayment = {
351
359
  method: invoiceData.paymentMethod || '',
@@ -442,8 +450,8 @@ function buildInvoiceDataScope(invoiceData) {
442
450
  invoiceData: {
443
451
  Company: mergeWithDefaults(realCompany, defaults.Company),
444
452
  Invoice: Object.assign(mergeWithDefaults(realInvoice, defaults.Invoice), realInvoiceNeverSampled),
445
- Customer: mergeWithDefaults(realCustomer, defaults.Customer),
446
- Payment: mergeWithDefaults(realPayment, defaults.Payment),
453
+ Customer: realCustomer,
454
+ Payment: realPayment,
447
455
  Products: realProducts.length > 0 ? realProducts : (defaults.Products || []),
448
456
  },
449
457
  };
@@ -1 +1 @@
1
- {"version":3,"file":"invoice-html-code.js","sourceRoot":"","sources":["../../../src/invoice/invoice-html-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoice-html-code.js","sourceRoot":"","sources":["../../../src/invoice/invoice-html-code.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-raw-query.d.ts","sourceRoot":"","sources":["../../../../src/nodes/data/data-raw-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AA8ChE,eAAO,MAAM,YAAY,EAAE,oBAM1B,CAAA"}
1
+ {"version":3,"file":"data-raw-query.d.ts","sourceRoot":"","sources":["../../../../src/nodes/data/data-raw-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAwDhE,eAAO,MAAM,YAAY,EAAE,oBAM1B,CAAA"}
@@ -28,7 +28,17 @@ async function data_raw_query(config, context) {
28
28
  });
29
29
  const data = await response.json();
30
30
  if (!response.ok) {
31
- return { rows: [], result: [], error: data.error || 'Raw query failed' };
31
+ const failure = {
32
+ rows: [],
33
+ result: [],
34
+ error: data.error || 'Raw query failed',
35
+ };
36
+ // The database's SQLSTATE (the route keeps its message in the server log): a
37
+ // statement that raises on purpose is told apart from a broken one by it.
38
+ if (data.code) {
39
+ failure.code = data.code;
40
+ }
41
+ return failure;
32
42
  }
33
43
  const rows = data.rows || [];
34
44
  return { rows, result: rows };