@boltapp/bolt-local-dashboard 0.1.5 → 0.1.6
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.
- package/dist/server/index.js +170 -643
- package/dist/server/index.js.map +1 -1
- package/package.json +7 -4
package/dist/server/index.js
CHANGED
|
@@ -132,12 +132,7 @@ var API_BASE_URL = "/api/bolt";
|
|
|
132
132
|
import BetterSqlite3 from "better-sqlite3";
|
|
133
133
|
import { betterAuth } from "better-auth";
|
|
134
134
|
import { drizzleAdapter } from "better-auth/adapters/drizzle";
|
|
135
|
-
import { exec } from "child_process";
|
|
136
135
|
import { drizzle } from "drizzle-orm/better-sqlite3";
|
|
137
|
-
import fs from "fs";
|
|
138
|
-
import path from "path";
|
|
139
|
-
import { fileURLToPath } from "url";
|
|
140
|
-
import { promisify } from "util";
|
|
141
136
|
|
|
142
137
|
// src/server/auth-schema.ts
|
|
143
138
|
import { index, integer, sqliteTable, text, uniqueIndex } from "drizzle-orm/sqlite-core";
|
|
@@ -216,20 +211,8 @@ var clientSchema = {
|
|
|
216
211
|
};
|
|
217
212
|
|
|
218
213
|
// src/server/auth.ts
|
|
219
|
-
var execAsync = promisify(exec);
|
|
220
214
|
async function ensureLocalDashboardSchema(dbPath) {
|
|
221
|
-
|
|
222
|
-
if (schemaPath && dbPackageDir) {
|
|
223
|
-
try {
|
|
224
|
-
await execAsync(
|
|
225
|
-
`npx drizzle-kit push --dialect=sqlite --schema="${schemaPath}" --url="${dbPath}"`,
|
|
226
|
-
{ cwd: dbPackageDir }
|
|
227
|
-
);
|
|
228
|
-
return;
|
|
229
|
-
} catch {
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
ensureAuthTablesWithSql(dbPath);
|
|
215
|
+
verifyLocalDashboardSchema(dbPath);
|
|
233
216
|
}
|
|
234
217
|
function createDashboardAuth(sqlite, trustedOrigins) {
|
|
235
218
|
const db = drizzle(sqlite, { schema: clientSchema });
|
|
@@ -274,81 +257,14 @@ async function isSignUpBlocked(sqlite, requestPath) {
|
|
|
274
257
|
if (!isSignUpAttempt) return false;
|
|
275
258
|
return countUsers(sqlite) > 0;
|
|
276
259
|
}
|
|
277
|
-
function
|
|
278
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
279
|
-
const __dirname2 = path.dirname(__filename);
|
|
280
|
-
const dashboardPackageDir = path.resolve(__dirname2, "..", "..");
|
|
281
|
-
const schemaPath = path.join(dashboardPackageDir, "src", "server", "auth-schema.ts");
|
|
282
|
-
if (fs.existsSync(schemaPath)) {
|
|
283
|
-
return { schemaPath, dbPackageDir: dashboardPackageDir };
|
|
284
|
-
}
|
|
285
|
-
return { schemaPath: null, dbPackageDir: null };
|
|
286
|
-
}
|
|
287
|
-
function ensureAuthTablesWithSql(dbPath) {
|
|
260
|
+
function verifyLocalDashboardSchema(dbPath) {
|
|
288
261
|
const sqlite = new BetterSqlite3(dbPath);
|
|
289
262
|
try {
|
|
290
263
|
sqlite.pragma("foreign_keys = ON");
|
|
291
|
-
sqlite
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
"last_name" TEXT NOT NULL,
|
|
296
|
-
"name" TEXT,
|
|
297
|
-
"email" TEXT NOT NULL,
|
|
298
|
-
"emailVerified" INTEGER NOT NULL DEFAULT 0,
|
|
299
|
-
"image" TEXT,
|
|
300
|
-
"createdAt" INTEGER,
|
|
301
|
-
"updatedAt" INTEGER
|
|
302
|
-
);
|
|
303
|
-
|
|
304
|
-
CREATE UNIQUE INDEX IF NOT EXISTS "users_email_unique_idx" ON "users" ("email");
|
|
305
|
-
|
|
306
|
-
CREATE TABLE IF NOT EXISTS "sessions" (
|
|
307
|
-
"id" TEXT PRIMARY KEY NOT NULL,
|
|
308
|
-
"expiresAt" INTEGER NOT NULL,
|
|
309
|
-
"token" TEXT NOT NULL,
|
|
310
|
-
"ipAddress" TEXT,
|
|
311
|
-
"userAgent" TEXT,
|
|
312
|
-
"userId" TEXT NOT NULL,
|
|
313
|
-
"createdAt" INTEGER,
|
|
314
|
-
"updatedAt" INTEGER,
|
|
315
|
-
FOREIGN KEY ("userId") REFERENCES "users" ("id") ON DELETE CASCADE
|
|
316
|
-
);
|
|
317
|
-
|
|
318
|
-
CREATE UNIQUE INDEX IF NOT EXISTS "sessions_token_unique_idx" ON "sessions" ("token");
|
|
319
|
-
CREATE INDEX IF NOT EXISTS "sessions_user_id_idx" ON "sessions" ("userId");
|
|
320
|
-
|
|
321
|
-
CREATE TABLE IF NOT EXISTS "accounts" (
|
|
322
|
-
"id" TEXT PRIMARY KEY NOT NULL,
|
|
323
|
-
"accountId" TEXT NOT NULL,
|
|
324
|
-
"providerId" TEXT NOT NULL,
|
|
325
|
-
"userId" TEXT NOT NULL,
|
|
326
|
-
"accessToken" TEXT,
|
|
327
|
-
"refreshToken" TEXT,
|
|
328
|
-
"idToken" TEXT,
|
|
329
|
-
"accessTokenExpiresAt" INTEGER,
|
|
330
|
-
"refreshTokenExpiresAt" INTEGER,
|
|
331
|
-
"scope" TEXT,
|
|
332
|
-
"password" TEXT,
|
|
333
|
-
"createdAt" INTEGER,
|
|
334
|
-
"updatedAt" INTEGER,
|
|
335
|
-
FOREIGN KEY ("userId") REFERENCES "users" ("id") ON DELETE CASCADE
|
|
336
|
-
);
|
|
337
|
-
|
|
338
|
-
CREATE INDEX IF NOT EXISTS "accounts_user_id_idx" ON "accounts" ("userId");
|
|
339
|
-
CREATE UNIQUE INDEX IF NOT EXISTS "accounts_provider_account_unique_idx" ON "accounts" ("providerId", "accountId");
|
|
340
|
-
|
|
341
|
-
CREATE TABLE IF NOT EXISTS "verifications" (
|
|
342
|
-
"id" TEXT PRIMARY KEY NOT NULL,
|
|
343
|
-
"identifier" TEXT NOT NULL,
|
|
344
|
-
"value" TEXT NOT NULL,
|
|
345
|
-
"expiresAt" INTEGER NOT NULL,
|
|
346
|
-
"createdAt" INTEGER,
|
|
347
|
-
"updatedAt" INTEGER
|
|
348
|
-
);
|
|
349
|
-
|
|
350
|
-
CREATE INDEX IF NOT EXISTS "verifications_identifier_idx" ON "verifications" ("identifier");
|
|
351
|
-
`);
|
|
264
|
+
ensureRequiredTable(sqlite, "users");
|
|
265
|
+
ensureRequiredTable(sqlite, "sessions");
|
|
266
|
+
ensureRequiredTable(sqlite, "accounts");
|
|
267
|
+
ensureRequiredTable(sqlite, "verifications");
|
|
352
268
|
ensureRequiredUserNameColumns(sqlite);
|
|
353
269
|
} finally {
|
|
354
270
|
sqlite.close();
|
|
@@ -357,19 +273,32 @@ function ensureAuthTablesWithSql(dbPath) {
|
|
|
357
273
|
function ensureRequiredUserNameColumns(sqlite) {
|
|
358
274
|
const tableInfo = sqlite.prepare(`PRAGMA table_info("users")`).all();
|
|
359
275
|
const columns = new Set(tableInfo.map((column) => column.name));
|
|
360
|
-
if (!columns.has("first_name")) {
|
|
361
|
-
|
|
276
|
+
if (!columns.has("first_name") || !columns.has("last_name")) {
|
|
277
|
+
throwMissingSchemaError(
|
|
278
|
+
`Missing required columns in users table: ${[
|
|
279
|
+
...!columns.has("first_name") ? ["first_name"] : [],
|
|
280
|
+
...!columns.has("last_name") ? ["last_name"] : []
|
|
281
|
+
].join(", ")}`
|
|
282
|
+
);
|
|
362
283
|
}
|
|
363
|
-
|
|
364
|
-
|
|
284
|
+
}
|
|
285
|
+
function ensureRequiredTable(sqlite, tableName) {
|
|
286
|
+
const table = sqlite.prepare(`SELECT name FROM sqlite_master WHERE type = 'table' AND name = ? LIMIT 1`).get(tableName);
|
|
287
|
+
if (!table?.name) {
|
|
288
|
+
throwMissingSchemaError(`Missing required auth table: ${tableName}`);
|
|
365
289
|
}
|
|
366
290
|
}
|
|
291
|
+
function throwMissingSchemaError(reason) {
|
|
292
|
+
throw new Error(
|
|
293
|
+
`${reason}. Local dashboard auth schema is not initialized. Run \`bolt init\` in your app directory to provision the required tables before starting the dashboard.`
|
|
294
|
+
);
|
|
295
|
+
}
|
|
367
296
|
function countUsers(sqlite) {
|
|
368
297
|
const row = sqlite.prepare(`SELECT COUNT(*) as value FROM "users"`).get();
|
|
369
298
|
return row?.value ?? 0;
|
|
370
299
|
}
|
|
371
300
|
|
|
372
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
301
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/collection/summarize-items.js
|
|
373
302
|
function summarizeItems(data, key, itemsToShow) {
|
|
374
303
|
if (!data.length) {
|
|
375
304
|
return "No items";
|
|
@@ -380,13 +309,13 @@ function summarizeItems(data, key, itemsToShow) {
|
|
|
380
309
|
return remainingItemCount > 0 ? `${itemsList} + ${remainingItemCount} other item${remainingItemCount > 1 ? "s" : ""}` : itemsList;
|
|
381
310
|
}
|
|
382
311
|
|
|
383
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
312
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/date/date-to-string.js
|
|
384
313
|
function dateToString(date5) {
|
|
385
314
|
const dateString = date5 ? date5.toISOString().split("T")[0] : "";
|
|
386
315
|
return dateString ?? false;
|
|
387
316
|
}
|
|
388
317
|
|
|
389
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
318
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/date/format-date.js
|
|
390
319
|
var templateOptions = {
|
|
391
320
|
common: ["dd", "monthName", "yyyy"],
|
|
392
321
|
commonWithTime: ["dd", "monthName", "yyyy", "h", "m", "s"]
|
|
@@ -409,19 +338,19 @@ function formatDate(date5, format2, join) {
|
|
|
409
338
|
return format2.map((f2) => options[f2] || "").join(join ?? " ");
|
|
410
339
|
}
|
|
411
340
|
|
|
412
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
341
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/date/string-to-date.js
|
|
413
342
|
function stringToDate(dateString = "") {
|
|
414
343
|
return new Date(dateString);
|
|
415
344
|
}
|
|
416
345
|
|
|
417
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
346
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/date/subtract-days.js
|
|
418
347
|
function subtractDays(date5, days) {
|
|
419
348
|
const result = new Date(date5);
|
|
420
349
|
result.setDate(result.getDate() - days);
|
|
421
350
|
return result;
|
|
422
351
|
}
|
|
423
352
|
|
|
424
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
353
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/format/format-number.js
|
|
425
354
|
function formatNumber(amount, currency, options) {
|
|
426
355
|
const { locale = "en-US", style = "currency", minimumFractionDigits = 0 } = options || {};
|
|
427
356
|
const formatter = new Intl.NumberFormat(locale, {
|
|
@@ -432,7 +361,7 @@ function formatNumber(amount, currency, options) {
|
|
|
432
361
|
return formatter.format(amount / 100);
|
|
433
362
|
}
|
|
434
363
|
|
|
435
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
364
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/format/to-kebab-case.js
|
|
436
365
|
function toKebabCase(input) {
|
|
437
366
|
if (!input) {
|
|
438
367
|
return "";
|
|
@@ -440,34 +369,34 @@ function toKebabCase(input) {
|
|
|
440
369
|
return input.trim().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, "");
|
|
441
370
|
}
|
|
442
371
|
|
|
443
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
372
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/generation/generate-excerpt.js
|
|
444
373
|
function generateExcerpt(content) {
|
|
445
374
|
const plainText = content.replace(/<\/?[^>]+(>|$)/g, "");
|
|
446
375
|
const normalizedText = plainText.replace(/\s+/g, " ").trim();
|
|
447
376
|
return normalizedText.slice(0, 200);
|
|
448
377
|
}
|
|
449
378
|
|
|
450
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
379
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/generation/generate-random-email.js
|
|
451
380
|
function generateRandomEmail(length = 10) {
|
|
452
381
|
const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
453
|
-
let
|
|
382
|
+
let randomString3 = "";
|
|
454
383
|
for (let i2 = 0; i2 < length; i2++) {
|
|
455
|
-
|
|
384
|
+
randomString3 += chars[Math.floor(Math.random() * chars.length)];
|
|
456
385
|
}
|
|
457
|
-
return `${
|
|
386
|
+
return `${randomString3}@test.com`;
|
|
458
387
|
}
|
|
459
388
|
|
|
460
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
389
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/generation/generate-sequence.js
|
|
461
390
|
function generateSequence(length) {
|
|
462
391
|
return Array.from({ length }, (_, i2) => i2 + 1);
|
|
463
392
|
}
|
|
464
393
|
|
|
465
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
394
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/generation/generate-slug.js
|
|
466
395
|
function generateSlug(text11) {
|
|
467
396
|
return text11.toLowerCase().trim().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
468
397
|
}
|
|
469
398
|
|
|
470
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
399
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/generation/random-string.js
|
|
471
400
|
function randomString(size) {
|
|
472
401
|
if (size % 2 !== 0)
|
|
473
402
|
throw new Error("size must be even");
|
|
@@ -477,23 +406,23 @@ function randomString(size) {
|
|
|
477
406
|
return Array.from(bytes).reduce(r2, "").slice(0, size);
|
|
478
407
|
}
|
|
479
408
|
|
|
480
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
481
|
-
function normalize(
|
|
482
|
-
const basePath =
|
|
409
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/is-current-path.js
|
|
410
|
+
function normalize(path5) {
|
|
411
|
+
const basePath = path5.split("?")[0]?.split("#")[0] ?? "";
|
|
483
412
|
return basePath.replace(/\/+$/, "") || "/";
|
|
484
413
|
}
|
|
485
|
-
function isCurrentPath(
|
|
486
|
-
return normalize(
|
|
414
|
+
function isCurrentPath(path5, url2) {
|
|
415
|
+
return normalize(path5) === normalize(url2);
|
|
487
416
|
}
|
|
488
|
-
function isPartOfCurrentPath(
|
|
489
|
-
const p2 = normalize(
|
|
417
|
+
function isPartOfCurrentPath(path5, url2) {
|
|
418
|
+
const p2 = normalize(path5);
|
|
490
419
|
const u2 = normalize(url2);
|
|
491
420
|
if (u2 === "/")
|
|
492
421
|
return p2 === "/";
|
|
493
422
|
return p2 === u2 || p2.startsWith(`${u2}/`);
|
|
494
423
|
}
|
|
495
424
|
|
|
496
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
425
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-currency.js
|
|
497
426
|
function prettyCurrency(props) {
|
|
498
427
|
const { value, currency, locale, fromCents, decimalPlaces = "2", round = false } = props;
|
|
499
428
|
let safeValue = (value ?? 0) / (fromCents ? 100 : 1);
|
|
@@ -619,11 +548,11 @@ function getTimezoneOffsetInMilliseconds(date5) {
|
|
|
619
548
|
|
|
620
549
|
// ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js
|
|
621
550
|
function normalizeDates(context, ...dates) {
|
|
622
|
-
const
|
|
551
|
+
const normalize2 = constructFrom.bind(
|
|
623
552
|
null,
|
|
624
553
|
context || dates.find((date5) => typeof date5 === "object")
|
|
625
554
|
);
|
|
626
|
-
return dates.map(
|
|
555
|
+
return dates.map(normalize2);
|
|
627
556
|
}
|
|
628
557
|
|
|
629
558
|
// ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js
|
|
@@ -2174,7 +2103,7 @@ function isToday(date5, options) {
|
|
|
2174
2103
|
);
|
|
2175
2104
|
}
|
|
2176
2105
|
|
|
2177
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2106
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-date.js
|
|
2178
2107
|
function prettyDate(date5, withHour = false) {
|
|
2179
2108
|
const parsed = typeof date5 === "string" ? new Date(date5) : date5;
|
|
2180
2109
|
if (!(parsed instanceof Date) || Number.isNaN(parsed.getTime())) {
|
|
@@ -2200,7 +2129,7 @@ function prettyDate(date5, withHour = false) {
|
|
|
2200
2129
|
return `${format(parsed, `PP`)} ${hour}`.trim();
|
|
2201
2130
|
}
|
|
2202
2131
|
|
|
2203
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2132
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-file-size.js
|
|
2204
2133
|
function prettyFileSize(bytes) {
|
|
2205
2134
|
const KB = 1024;
|
|
2206
2135
|
const MB = KB * 1024;
|
|
@@ -2216,13 +2145,13 @@ function prettyFileSize(bytes) {
|
|
|
2216
2145
|
}
|
|
2217
2146
|
}
|
|
2218
2147
|
|
|
2219
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2148
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-number.js
|
|
2220
2149
|
function prettyNumber(props) {
|
|
2221
2150
|
const { value, locale } = props;
|
|
2222
2151
|
return new Intl.NumberFormat(locale).format(value ?? 0);
|
|
2223
2152
|
}
|
|
2224
2153
|
|
|
2225
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2154
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-text.js
|
|
2226
2155
|
function prettyText(input) {
|
|
2227
2156
|
if (!input)
|
|
2228
2157
|
return "";
|
|
@@ -2231,7 +2160,7 @@ function prettyText(input) {
|
|
|
2231
2160
|
return capitalizedString;
|
|
2232
2161
|
}
|
|
2233
2162
|
|
|
2234
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2163
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-timestamp.js
|
|
2235
2164
|
function prettyTimeStamp() {
|
|
2236
2165
|
const now = /* @__PURE__ */ new Date();
|
|
2237
2166
|
const day = now.toLocaleDateString("en-US", { weekday: "short" }).toLowerCase();
|
|
@@ -2246,7 +2175,7 @@ function prettyTimeStamp() {
|
|
|
2246
2175
|
return `${day}-${date5}-${month}-${year}-${formattedHour}-${minutes}${ampm}`;
|
|
2247
2176
|
}
|
|
2248
2177
|
|
|
2249
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2178
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-unit.js
|
|
2250
2179
|
function prettyUnit(props) {
|
|
2251
2180
|
const { value, unit, locale } = props;
|
|
2252
2181
|
return new Intl.NumberFormat(locale, {
|
|
@@ -2255,7 +2184,7 @@ function prettyUnit(props) {
|
|
|
2255
2184
|
}).format(value ?? 0);
|
|
2256
2185
|
}
|
|
2257
2186
|
|
|
2258
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2187
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/text/capitalize-first-letter.js
|
|
2259
2188
|
function capitalizeFirstLetter(input) {
|
|
2260
2189
|
if (!input.length) {
|
|
2261
2190
|
return input;
|
|
@@ -2263,7 +2192,7 @@ function capitalizeFirstLetter(input) {
|
|
|
2263
2192
|
return input.charAt(0).toUpperCase() + input.slice(1);
|
|
2264
2193
|
}
|
|
2265
2194
|
|
|
2266
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2195
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/text/change-format.js
|
|
2267
2196
|
function changeFormat(value) {
|
|
2268
2197
|
if (!value?.length) {
|
|
2269
2198
|
return "";
|
|
@@ -2271,7 +2200,7 @@ function changeFormat(value) {
|
|
|
2271
2200
|
return `${value.charAt(0).toUpperCase()}${value.slice(1).replace(/_|-/g, " ")}`;
|
|
2272
2201
|
}
|
|
2273
2202
|
|
|
2274
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2203
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/text/get-two-first-letters-from-string.js
|
|
2275
2204
|
function getTwoFirstLettersFromString(input) {
|
|
2276
2205
|
if (!input) {
|
|
2277
2206
|
return "";
|
|
@@ -2292,7 +2221,7 @@ function getTwoFirstLettersFromString(input) {
|
|
|
2292
2221
|
return words[0].charAt(0) + words[1].charAt(0);
|
|
2293
2222
|
}
|
|
2294
2223
|
|
|
2295
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2224
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/text/truncate.js
|
|
2296
2225
|
function truncate(str, length) {
|
|
2297
2226
|
if (typeof str === "string" && str.length > length) {
|
|
2298
2227
|
return `${str.slice(0, length)}...`;
|
|
@@ -2300,7 +2229,7 @@ function truncate(str, length) {
|
|
|
2300
2229
|
return str;
|
|
2301
2230
|
}
|
|
2302
2231
|
|
|
2303
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2232
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/transform/convert-to-csv.js
|
|
2304
2233
|
function convertToCsv({ data, schema, headers, options }) {
|
|
2305
2234
|
const escapeCsv = (value) => {
|
|
2306
2235
|
let str = value instanceof Date ? value.toISOString() : value == null ? "" : String(value);
|
|
@@ -2328,12 +2257,12 @@ function convertToCsv({ data, schema, headers, options }) {
|
|
|
2328
2257
|
return lines.join("\n");
|
|
2329
2258
|
}
|
|
2330
2259
|
|
|
2331
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2260
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/url/decode-url-text.js
|
|
2332
2261
|
function decodeUrlText(encodedText) {
|
|
2333
2262
|
return decodeURIComponent(encodedText);
|
|
2334
2263
|
}
|
|
2335
2264
|
|
|
2336
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.
|
|
2265
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.9/node_modules/@boltapp/bolt-helpers/dist/index.js
|
|
2337
2266
|
var Helpers = {
|
|
2338
2267
|
isCurrentPath,
|
|
2339
2268
|
isPartOfCurrentPath,
|
|
@@ -2364,7 +2293,7 @@ var Helpers = {
|
|
|
2364
2293
|
dateToString
|
|
2365
2294
|
};
|
|
2366
2295
|
|
|
2367
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
2296
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/client/schema/index.js
|
|
2368
2297
|
var schema_exports = {};
|
|
2369
2298
|
__export(schema_exports, {
|
|
2370
2299
|
boltAppVersions: () => boltAppVersions,
|
|
@@ -2384,12 +2313,12 @@ __export(schema_exports, {
|
|
|
2384
2313
|
boltTablesRelations: () => boltTablesRelations
|
|
2385
2314
|
});
|
|
2386
2315
|
|
|
2387
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
2316
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/client/schema/app-schema.js
|
|
2388
2317
|
import { relations } from "drizzle-orm";
|
|
2389
2318
|
import { index as index2, integer as integer3, sqliteTable as sqliteTable3, text as text3, uniqueIndex as uniqueIndex3 } from "drizzle-orm/sqlite-core";
|
|
2390
2319
|
import { nanoid as nanoid3 } from "nanoid";
|
|
2391
2320
|
|
|
2392
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
2321
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/client/schema/project-schema.js
|
|
2393
2322
|
import { integer as integer2, sqliteTable as sqliteTable2, text as text2, uniqueIndex as uniqueIndex2 } from "drizzle-orm/sqlite-core";
|
|
2394
2323
|
import { nanoid as nanoid2 } from "nanoid";
|
|
2395
2324
|
var boltProjects = sqliteTable2("bolt_projects", {
|
|
@@ -2406,7 +2335,7 @@ var boltProjects = sqliteTable2("bolt_projects", {
|
|
|
2406
2335
|
uniqueIndex2("bolt_projects_slug_unique_idx").on(table.slug)
|
|
2407
2336
|
]);
|
|
2408
2337
|
|
|
2409
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
2338
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/client/schema/app-schema.js
|
|
2410
2339
|
var boltApps = sqliteTable3("bolt_apps", {
|
|
2411
2340
|
id: text3().primaryKey().$defaultFn(() => nanoid3()),
|
|
2412
2341
|
name: text3().notNull(),
|
|
@@ -2453,7 +2382,7 @@ var boltAppVersionsRelations = relations(boltAppVersions, ({ one }) => ({
|
|
|
2453
2382
|
})
|
|
2454
2383
|
}));
|
|
2455
2384
|
|
|
2456
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
2385
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/client/schema/data-store-schema.js
|
|
2457
2386
|
import { relations as relations2 } from "drizzle-orm";
|
|
2458
2387
|
import { index as index3, integer as integer4, sqliteTable as sqliteTable4, text as text4, uniqueIndex as uniqueIndex4 } from "drizzle-orm/sqlite-core";
|
|
2459
2388
|
import { nanoid as nanoid4 } from "nanoid";
|
|
@@ -2481,7 +2410,7 @@ var boltDataStoresRelations = relations2(boltDataStores, ({ one }) => ({
|
|
|
2481
2410
|
})
|
|
2482
2411
|
}));
|
|
2483
2412
|
|
|
2484
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
2413
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/client/schema/file-schema.js
|
|
2485
2414
|
import { relations as relations3 } from "drizzle-orm";
|
|
2486
2415
|
import { index as index4, integer as integer5, sqliteTable as sqliteTable5, text as text5 } from "drizzle-orm/sqlite-core";
|
|
2487
2416
|
import { nanoid as nanoid5 } from "nanoid";
|
|
@@ -3278,10 +3207,10 @@ function mergeDefs(...defs) {
|
|
|
3278
3207
|
function cloneDef(schema) {
|
|
3279
3208
|
return mergeDefs(schema._zod.def);
|
|
3280
3209
|
}
|
|
3281
|
-
function getElementAtPath(obj,
|
|
3282
|
-
if (!
|
|
3210
|
+
function getElementAtPath(obj, path5) {
|
|
3211
|
+
if (!path5)
|
|
3283
3212
|
return obj;
|
|
3284
|
-
return
|
|
3213
|
+
return path5.reduce((acc, key) => acc?.[key], obj);
|
|
3285
3214
|
}
|
|
3286
3215
|
function promiseAllObject(promisesObj) {
|
|
3287
3216
|
const keys = Object.keys(promisesObj);
|
|
@@ -3664,11 +3593,11 @@ function aborted(x2, startIndex = 0) {
|
|
|
3664
3593
|
}
|
|
3665
3594
|
return false;
|
|
3666
3595
|
}
|
|
3667
|
-
function prefixIssues(
|
|
3596
|
+
function prefixIssues(path5, issues) {
|
|
3668
3597
|
return issues.map((iss) => {
|
|
3669
3598
|
var _a2;
|
|
3670
3599
|
(_a2 = iss).path ?? (_a2.path = []);
|
|
3671
|
-
iss.path.unshift(
|
|
3600
|
+
iss.path.unshift(path5);
|
|
3672
3601
|
return iss;
|
|
3673
3602
|
});
|
|
3674
3603
|
}
|
|
@@ -3851,7 +3780,7 @@ function formatError(error48, mapper = (issue2) => issue2.message) {
|
|
|
3851
3780
|
}
|
|
3852
3781
|
function treeifyError(error48, mapper = (issue2) => issue2.message) {
|
|
3853
3782
|
const result = { errors: [] };
|
|
3854
|
-
const processError = (error49,
|
|
3783
|
+
const processError = (error49, path5 = []) => {
|
|
3855
3784
|
var _a2, _b;
|
|
3856
3785
|
for (const issue2 of error49.issues) {
|
|
3857
3786
|
if (issue2.code === "invalid_union" && issue2.errors.length) {
|
|
@@ -3861,7 +3790,7 @@ function treeifyError(error48, mapper = (issue2) => issue2.message) {
|
|
|
3861
3790
|
} else if (issue2.code === "invalid_element") {
|
|
3862
3791
|
processError({ issues: issue2.issues }, issue2.path);
|
|
3863
3792
|
} else {
|
|
3864
|
-
const fullpath = [...
|
|
3793
|
+
const fullpath = [...path5, ...issue2.path];
|
|
3865
3794
|
if (fullpath.length === 0) {
|
|
3866
3795
|
result.errors.push(mapper(issue2));
|
|
3867
3796
|
continue;
|
|
@@ -3893,8 +3822,8 @@ function treeifyError(error48, mapper = (issue2) => issue2.message) {
|
|
|
3893
3822
|
}
|
|
3894
3823
|
function toDotPath(_path) {
|
|
3895
3824
|
const segs = [];
|
|
3896
|
-
const
|
|
3897
|
-
for (const seg of
|
|
3825
|
+
const path5 = _path.map((seg) => typeof seg === "object" ? seg.key : seg);
|
|
3826
|
+
for (const seg of path5) {
|
|
3898
3827
|
if (typeof seg === "number")
|
|
3899
3828
|
segs.push(`[${seg}]`);
|
|
3900
3829
|
else if (typeof seg === "symbol")
|
|
@@ -15871,13 +15800,13 @@ function resolveRef(ref, ctx) {
|
|
|
15871
15800
|
if (!ref.startsWith("#")) {
|
|
15872
15801
|
throw new Error("External $ref is not supported, only local refs (#/...) are allowed");
|
|
15873
15802
|
}
|
|
15874
|
-
const
|
|
15875
|
-
if (
|
|
15803
|
+
const path5 = ref.slice(1).split("/").filter(Boolean);
|
|
15804
|
+
if (path5.length === 0) {
|
|
15876
15805
|
return ctx.rootSchema;
|
|
15877
15806
|
}
|
|
15878
15807
|
const defsKey = ctx.version === "draft-2020-12" ? "$defs" : "definitions";
|
|
15879
|
-
if (
|
|
15880
|
-
const key =
|
|
15808
|
+
if (path5[0] === defsKey) {
|
|
15809
|
+
const key = path5[1];
|
|
15881
15810
|
if (!key || !ctx.defs[key]) {
|
|
15882
15811
|
throw new Error(`Reference not found: ${ref}`);
|
|
15883
15812
|
}
|
|
@@ -16282,11 +16211,11 @@ config(en_default());
|
|
|
16282
16211
|
// ../../node_modules/.pnpm/zod@4.3.5/node_modules/zod/index.js
|
|
16283
16212
|
var zod_default = external_exports;
|
|
16284
16213
|
|
|
16285
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
16214
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/schemas/views/display.js
|
|
16286
16215
|
var TABLE_VIEW_DISPLAY_TYPES = ["table", "fileSystem", "cards"];
|
|
16287
16216
|
var boltTableView = zod_default.enum(TABLE_VIEW_DISPLAY_TYPES);
|
|
16288
16217
|
|
|
16289
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
16218
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/schemas/views/file-system-node.js
|
|
16290
16219
|
var boltFileSystemNodeSchema = zod_default.lazy(() => zod_default.discriminatedUnion("type", [
|
|
16291
16220
|
zod_default.object({
|
|
16292
16221
|
id: zod_default.string(),
|
|
@@ -16301,7 +16230,7 @@ var boltFileSystemNodeSchema = zod_default.lazy(() => zod_default.discriminatedU
|
|
|
16301
16230
|
})
|
|
16302
16231
|
]));
|
|
16303
16232
|
|
|
16304
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
16233
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/schemas/views/display-config.js
|
|
16305
16234
|
var boltTableColumnConfigSchema = zod_default.record(zod_default.string(), zod_default.object({
|
|
16306
16235
|
// Column sizing
|
|
16307
16236
|
size: zod_default.number().optional(),
|
|
@@ -16336,7 +16265,7 @@ var boltTableViewDisplayConfigSchema = zod_default.discriminatedUnion("type", [
|
|
|
16336
16265
|
})
|
|
16337
16266
|
]);
|
|
16338
16267
|
|
|
16339
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
16268
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/table-action-schemas.js
|
|
16340
16269
|
var ACTION_TYPES = [
|
|
16341
16270
|
"UPDATE_CELL",
|
|
16342
16271
|
"ADD_ROW",
|
|
@@ -16589,7 +16518,7 @@ var BatchResponseSchema = zod_default.object({
|
|
|
16589
16518
|
timestamp: zod_default.date()
|
|
16590
16519
|
});
|
|
16591
16520
|
|
|
16592
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
16521
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/client/schema/table-schema.js
|
|
16593
16522
|
import { relations as relations4 } from "drizzle-orm";
|
|
16594
16523
|
import { index as index5, integer as integer7, sqliteTable as sqliteTable6, text as text6, uniqueIndex as uniqueIndex5 } from "drizzle-orm/sqlite-core";
|
|
16595
16524
|
import { nanoid as nanoid8 } from "nanoid";
|
|
@@ -16863,19 +16792,19 @@ function createClientDataStoreAdapter(db, appId) {
|
|
|
16863
16792
|
}
|
|
16864
16793
|
|
|
16865
16794
|
// ../bolt-actions/dist/shared/file-storage.js
|
|
16866
|
-
import
|
|
16867
|
-
import
|
|
16795
|
+
import fs from "fs/promises";
|
|
16796
|
+
import path from "path";
|
|
16868
16797
|
import { customAlphabet } from "nanoid";
|
|
16869
16798
|
var DEFAULT_BOLT_FILES_DIR = ".bolt/files";
|
|
16870
16799
|
var shortId = customAlphabet("abcdefghijklmnopqrstuvwxyz0123456789", 8);
|
|
16871
16800
|
function resolveBoltFilesRoot(customRoot) {
|
|
16872
|
-
return
|
|
16801
|
+
return path.resolve(process.cwd(), customRoot ?? DEFAULT_BOLT_FILES_DIR);
|
|
16873
16802
|
}
|
|
16874
16803
|
function createStoragePath(fileId, extension) {
|
|
16875
16804
|
const shardA = fileId.slice(0, 2) || "00";
|
|
16876
16805
|
const shardB = fileId.slice(2, 4) || "00";
|
|
16877
16806
|
const ext = extension ? `.${extension.replace(/^\./, "")}` : "";
|
|
16878
|
-
return
|
|
16807
|
+
return path.join("blobs", shardA, shardB, `${fileId}${ext}`);
|
|
16879
16808
|
}
|
|
16880
16809
|
function createReadableFileId(fileName) {
|
|
16881
16810
|
const baseName = fileName.replace(/\.[^.]+$/, "").trim();
|
|
@@ -16884,27 +16813,27 @@ function createReadableFileId(fileName) {
|
|
|
16884
16813
|
return `${safeBase}-${shortId()}`;
|
|
16885
16814
|
}
|
|
16886
16815
|
async function writeStorageBytes(filesRoot, storagePath, bytes) {
|
|
16887
|
-
const absolutePath =
|
|
16888
|
-
await
|
|
16889
|
-
await
|
|
16816
|
+
const absolutePath = path.join(filesRoot, storagePath);
|
|
16817
|
+
await fs.mkdir(path.dirname(absolutePath), { recursive: true });
|
|
16818
|
+
await fs.writeFile(absolutePath, bytes);
|
|
16890
16819
|
}
|
|
16891
16820
|
async function readStorageBytes(filesRoot, storagePath) {
|
|
16892
16821
|
try {
|
|
16893
|
-
const absolutePath =
|
|
16894
|
-
return await
|
|
16822
|
+
const absolutePath = path.join(filesRoot, storagePath);
|
|
16823
|
+
return await fs.readFile(absolutePath);
|
|
16895
16824
|
} catch {
|
|
16896
16825
|
return null;
|
|
16897
16826
|
}
|
|
16898
16827
|
}
|
|
16899
16828
|
async function removeStorageBytes(filesRoot, storagePath) {
|
|
16900
|
-
const absolutePath =
|
|
16901
|
-
await
|
|
16902
|
-
const blobsRoot =
|
|
16903
|
-
let currentDir =
|
|
16829
|
+
const absolutePath = path.join(filesRoot, storagePath);
|
|
16830
|
+
await fs.rm(absolutePath, { force: true });
|
|
16831
|
+
const blobsRoot = path.resolve(filesRoot, "blobs");
|
|
16832
|
+
let currentDir = path.dirname(absolutePath);
|
|
16904
16833
|
while (currentDir.startsWith(blobsRoot) && currentDir !== blobsRoot) {
|
|
16905
16834
|
let entries = [];
|
|
16906
16835
|
try {
|
|
16907
|
-
entries = await
|
|
16836
|
+
entries = await fs.readdir(currentDir);
|
|
16908
16837
|
} catch {
|
|
16909
16838
|
return;
|
|
16910
16839
|
}
|
|
@@ -16912,11 +16841,11 @@ async function removeStorageBytes(filesRoot, storagePath) {
|
|
|
16912
16841
|
return;
|
|
16913
16842
|
}
|
|
16914
16843
|
try {
|
|
16915
|
-
await
|
|
16844
|
+
await fs.rmdir(currentDir);
|
|
16916
16845
|
} catch {
|
|
16917
16846
|
return;
|
|
16918
16847
|
}
|
|
16919
|
-
currentDir =
|
|
16848
|
+
currentDir = path.dirname(currentDir);
|
|
16920
16849
|
}
|
|
16921
16850
|
}
|
|
16922
16851
|
|
|
@@ -27467,13 +27396,13 @@ function createFileService(adapter) {
|
|
|
27467
27396
|
};
|
|
27468
27397
|
}
|
|
27469
27398
|
|
|
27470
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
27399
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/constants.js
|
|
27471
27400
|
var DATA_TABLE_CONSTANTS = {
|
|
27472
27401
|
/** Default column width in pixels */
|
|
27473
27402
|
DEFAULT_COLUMN_WIDTH: 150
|
|
27474
27403
|
};
|
|
27475
27404
|
|
|
27476
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-constants@0.0.
|
|
27405
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-constants@0.0.5/node_modules/@boltapp/bolt-constants/dist/date-formats.js
|
|
27477
27406
|
var DATE_FORMATS = [
|
|
27478
27407
|
{ key: "m_d_yyyy", format: "M/d/yyyy", label: "1/31/2025", description: "Numeric US date" },
|
|
27479
27408
|
{ key: "m_d_yy", format: "M/d/yy", label: "1/31/25", description: "Numeric US date, short year" },
|
|
@@ -27575,7 +27504,7 @@ var DATE_FORMATS = [
|
|
|
27575
27504
|
{ key: "weekday_short", format: "EEE", label: "Fri", description: "Short weekday name" }
|
|
27576
27505
|
];
|
|
27577
27506
|
|
|
27578
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
27507
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/inputs/input-format-registry.js
|
|
27579
27508
|
var dateFormatOptions = [
|
|
27580
27509
|
{ value: "auto", label: "Auto (relative)", description: "Today, Yesterday, Jan 31, etc." },
|
|
27581
27510
|
...DATE_FORMATS.map((f2) => ({
|
|
@@ -27585,7 +27514,7 @@ var dateFormatOptions = [
|
|
|
27585
27514
|
}))
|
|
27586
27515
|
];
|
|
27587
27516
|
|
|
27588
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
27517
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/files/schemas.js
|
|
27589
27518
|
var fileRefSchema = external_exports.object({
|
|
27590
27519
|
id: external_exports.string(),
|
|
27591
27520
|
url: external_exports.string(),
|
|
@@ -27608,7 +27537,7 @@ var createFilePickerValueSchema = (meta3) => {
|
|
|
27608
27537
|
return schema;
|
|
27609
27538
|
};
|
|
27610
27539
|
|
|
27611
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
27540
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/inputs/input-registry.js
|
|
27612
27541
|
var DATE_FORMAT_KEYS = DATE_FORMATS.map((f2) => f2.key);
|
|
27613
27542
|
var boltInputMetaBaseSchema = zod_default.object({
|
|
27614
27543
|
label: zod_default.string().optional(),
|
|
@@ -28536,355 +28465,7 @@ var validationRuleSchema = zod_default.union([
|
|
|
28536
28465
|
})
|
|
28537
28466
|
]);
|
|
28538
28467
|
|
|
28539
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-
|
|
28540
|
-
function summarizeItems2(data, key, itemsToShow) {
|
|
28541
|
-
if (!data.length) {
|
|
28542
|
-
return "No items";
|
|
28543
|
-
}
|
|
28544
|
-
const effectiveItemsToShow = itemsToShow && itemsToShow < data.length ? itemsToShow : data.length;
|
|
28545
|
-
const itemsList = data.slice(0, effectiveItemsToShow).map((item) => item[key]).join(", ");
|
|
28546
|
-
const remainingItemCount = data.length - effectiveItemsToShow;
|
|
28547
|
-
return remainingItemCount > 0 ? `${itemsList} + ${remainingItemCount} other item${remainingItemCount > 1 ? "s" : ""}` : itemsList;
|
|
28548
|
-
}
|
|
28549
|
-
|
|
28550
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/date/date-to-string.js
|
|
28551
|
-
function dateToString2(date5) {
|
|
28552
|
-
const dateString = date5 ? date5.toISOString().split("T")[0] : "";
|
|
28553
|
-
return dateString ?? false;
|
|
28554
|
-
}
|
|
28555
|
-
|
|
28556
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/date/format-date.js
|
|
28557
|
-
var templateOptions2 = {
|
|
28558
|
-
common: ["dd", "monthName", "yyyy"],
|
|
28559
|
-
commonWithTime: ["dd", "monthName", "yyyy", "h", "m", "s"]
|
|
28560
|
-
};
|
|
28561
|
-
function formatDate2(date5, format2, join) {
|
|
28562
|
-
const options = {
|
|
28563
|
-
dd: date5.getDate().toString().padStart(2, "0"),
|
|
28564
|
-
mm: (date5.getMonth() + 1).toString().padStart(2, "0"),
|
|
28565
|
-
yy: date5.getFullYear().toString().slice(-2),
|
|
28566
|
-
yyyy: date5.getFullYear().toString(),
|
|
28567
|
-
dayName: date5.toLocaleString("en-US", { weekday: "long" }),
|
|
28568
|
-
monthName: date5.toLocaleString("en-US", { month: "long" }),
|
|
28569
|
-
h: date5.getHours().toString().padStart(2, "0"),
|
|
28570
|
-
m: date5.getMinutes().toString().padStart(2, "0"),
|
|
28571
|
-
s: date5.getSeconds().toString().padStart(2, "0")
|
|
28572
|
-
};
|
|
28573
|
-
if (typeof format2 === "string") {
|
|
28574
|
-
return templateOptions2[format2].map((f2) => options[f2] || "").join(join ?? " ");
|
|
28575
|
-
}
|
|
28576
|
-
return format2.map((f2) => options[f2] || "").join(join ?? " ");
|
|
28577
|
-
}
|
|
28578
|
-
|
|
28579
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/date/string-to-date.js
|
|
28580
|
-
function stringToDate2(dateString = "") {
|
|
28581
|
-
return new Date(dateString);
|
|
28582
|
-
}
|
|
28583
|
-
|
|
28584
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/date/subtract-days.js
|
|
28585
|
-
function subtractDays2(date5, days) {
|
|
28586
|
-
const result = new Date(date5);
|
|
28587
|
-
result.setDate(result.getDate() - days);
|
|
28588
|
-
return result;
|
|
28589
|
-
}
|
|
28590
|
-
|
|
28591
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/format/format-number.js
|
|
28592
|
-
function formatNumber2(amount, currency, options) {
|
|
28593
|
-
const { locale = "en-US", style = "currency", minimumFractionDigits = 0 } = options || {};
|
|
28594
|
-
const formatter = new Intl.NumberFormat(locale, {
|
|
28595
|
-
style,
|
|
28596
|
-
currency: style === "currency" ? currency.toUpperCase() : void 0,
|
|
28597
|
-
minimumFractionDigits
|
|
28598
|
-
});
|
|
28599
|
-
return formatter.format(amount / 100);
|
|
28600
|
-
}
|
|
28601
|
-
|
|
28602
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/format/to-kebab-case.js
|
|
28603
|
-
function toKebabCase2(input) {
|
|
28604
|
-
if (!input) {
|
|
28605
|
-
return "";
|
|
28606
|
-
}
|
|
28607
|
-
return input.trim().toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, "");
|
|
28608
|
-
}
|
|
28609
|
-
|
|
28610
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/generation/generate-excerpt.js
|
|
28611
|
-
function generateExcerpt2(content) {
|
|
28612
|
-
const plainText = content.replace(/<\/?[^>]+(>|$)/g, "");
|
|
28613
|
-
const normalizedText = plainText.replace(/\s+/g, " ").trim();
|
|
28614
|
-
return normalizedText.slice(0, 200);
|
|
28615
|
-
}
|
|
28616
|
-
|
|
28617
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/generation/generate-random-email.js
|
|
28618
|
-
function generateRandomEmail2(length = 10) {
|
|
28619
|
-
const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
28620
|
-
let randomString4 = "";
|
|
28621
|
-
for (let i2 = 0; i2 < length; i2++) {
|
|
28622
|
-
randomString4 += chars[Math.floor(Math.random() * chars.length)];
|
|
28623
|
-
}
|
|
28624
|
-
return `${randomString4}@test.com`;
|
|
28625
|
-
}
|
|
28626
|
-
|
|
28627
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/generation/generate-sequence.js
|
|
28628
|
-
function generateSequence2(length) {
|
|
28629
|
-
return Array.from({ length }, (_, i2) => i2 + 1);
|
|
28630
|
-
}
|
|
28631
|
-
|
|
28632
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/generation/generate-slug.js
|
|
28633
|
-
function generateSlug2(text11) {
|
|
28634
|
-
return text11.toLowerCase().trim().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
28635
|
-
}
|
|
28636
|
-
|
|
28637
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/generation/random-string.js
|
|
28638
|
-
function randomString3(size) {
|
|
28639
|
-
if (size % 2 !== 0)
|
|
28640
|
-
throw new Error("size must be even");
|
|
28641
|
-
const i2hex = (i2) => ("0" + i2.toString(16)).slice(-2);
|
|
28642
|
-
const r2 = (a2, i2) => a2 + i2hex(i2);
|
|
28643
|
-
const bytes = crypto.getRandomValues(new Uint8Array(Math.ceil(size / 2)));
|
|
28644
|
-
return Array.from(bytes).reduce(r2, "").slice(0, size);
|
|
28645
|
-
}
|
|
28646
|
-
|
|
28647
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/is-current-path.js
|
|
28648
|
-
function normalize2(path6) {
|
|
28649
|
-
const basePath = path6.split("?")[0]?.split("#")[0] ?? "";
|
|
28650
|
-
return basePath.replace(/\/+$/, "") || "/";
|
|
28651
|
-
}
|
|
28652
|
-
function isCurrentPath2(path6, url2) {
|
|
28653
|
-
return normalize2(path6) === normalize2(url2);
|
|
28654
|
-
}
|
|
28655
|
-
function isPartOfCurrentPath2(path6, url2) {
|
|
28656
|
-
const p2 = normalize2(path6);
|
|
28657
|
-
const u2 = normalize2(url2);
|
|
28658
|
-
if (u2 === "/")
|
|
28659
|
-
return p2 === "/";
|
|
28660
|
-
return p2 === u2 || p2.startsWith(`${u2}/`);
|
|
28661
|
-
}
|
|
28662
|
-
|
|
28663
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-currency.js
|
|
28664
|
-
function prettyCurrency2(props) {
|
|
28665
|
-
const { value, currency, locale, fromCents, decimalPlaces = "2", round = false } = props;
|
|
28666
|
-
let safeValue = (value ?? 0) / (fromCents ? 100 : 1);
|
|
28667
|
-
if (round && decimalPlaces !== "all" && decimalPlaces !== "none") {
|
|
28668
|
-
const places = Number(decimalPlaces);
|
|
28669
|
-
safeValue = Number(safeValue.toFixed(places));
|
|
28670
|
-
}
|
|
28671
|
-
if (round && decimalPlaces === "none") {
|
|
28672
|
-
safeValue = Math.round(safeValue);
|
|
28673
|
-
}
|
|
28674
|
-
let minimumFractionDigits;
|
|
28675
|
-
let maximumFractionDigits;
|
|
28676
|
-
switch (decimalPlaces) {
|
|
28677
|
-
case "all":
|
|
28678
|
-
break;
|
|
28679
|
-
case "none":
|
|
28680
|
-
minimumFractionDigits = 0;
|
|
28681
|
-
maximumFractionDigits = 0;
|
|
28682
|
-
break;
|
|
28683
|
-
default:
|
|
28684
|
-
const places = Number(decimalPlaces);
|
|
28685
|
-
minimumFractionDigits = places;
|
|
28686
|
-
maximumFractionDigits = places;
|
|
28687
|
-
break;
|
|
28688
|
-
}
|
|
28689
|
-
return new Intl.NumberFormat(locale, {
|
|
28690
|
-
style: "currency",
|
|
28691
|
-
currency,
|
|
28692
|
-
minimumFractionDigits,
|
|
28693
|
-
maximumFractionDigits
|
|
28694
|
-
}).format(safeValue);
|
|
28695
|
-
}
|
|
28696
|
-
|
|
28697
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-date.js
|
|
28698
|
-
function prettyDate2(date5, withHour = false) {
|
|
28699
|
-
const parsed = typeof date5 === "string" ? new Date(date5) : date5;
|
|
28700
|
-
if (!(parsed instanceof Date) || Number.isNaN(parsed.getTime())) {
|
|
28701
|
-
return "Invalid date";
|
|
28702
|
-
}
|
|
28703
|
-
const hour = withHour ? format(parsed, "h:mm a") : "";
|
|
28704
|
-
const now = /* @__PURE__ */ new Date();
|
|
28705
|
-
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
|
28706
|
-
const target = new Date(parsed.getFullYear(), parsed.getMonth(), parsed.getDate());
|
|
28707
|
-
const diffDays = Math.round((today.getTime() - target.getTime()) / 864e5);
|
|
28708
|
-
if (isToday(parsed) || diffDays === 0)
|
|
28709
|
-
return `Today ${hour}`.trim();
|
|
28710
|
-
if (diffDays === 1)
|
|
28711
|
-
return `Yesterday ${hour}`.trim();
|
|
28712
|
-
if (diffDays === -1)
|
|
28713
|
-
return `Tomorrow ${hour}`.trim();
|
|
28714
|
-
if (isThisWeek(parsed))
|
|
28715
|
-
return `${format(parsed, `EEEE`)} ${hour}`.trim();
|
|
28716
|
-
if (isThisMonth(parsed))
|
|
28717
|
-
return `${format(parsed, `MMM do`)} ${hour}`.trim();
|
|
28718
|
-
if (isThisYear(parsed))
|
|
28719
|
-
return `${format(parsed, `MMM do`)} ${hour}`.trim();
|
|
28720
|
-
return `${format(parsed, `PP`)} ${hour}`.trim();
|
|
28721
|
-
}
|
|
28722
|
-
|
|
28723
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-file-size.js
|
|
28724
|
-
function prettyFileSize2(bytes) {
|
|
28725
|
-
const KB = 1024;
|
|
28726
|
-
const MB = KB * 1024;
|
|
28727
|
-
const GB = MB * 1024;
|
|
28728
|
-
if (bytes >= GB) {
|
|
28729
|
-
return `${(bytes / GB).toFixed(2)} GB`;
|
|
28730
|
-
} else if (bytes >= MB) {
|
|
28731
|
-
return `${(bytes / MB).toFixed(2)} MB`;
|
|
28732
|
-
} else if (bytes >= KB) {
|
|
28733
|
-
return `${(bytes / KB).toFixed(2)} KB`;
|
|
28734
|
-
} else {
|
|
28735
|
-
return `${bytes} bytes`;
|
|
28736
|
-
}
|
|
28737
|
-
}
|
|
28738
|
-
|
|
28739
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-number.js
|
|
28740
|
-
function prettyNumber2(props) {
|
|
28741
|
-
const { value, locale } = props;
|
|
28742
|
-
return new Intl.NumberFormat(locale).format(value ?? 0);
|
|
28743
|
-
}
|
|
28744
|
-
|
|
28745
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-text.js
|
|
28746
|
-
function prettyText2(input) {
|
|
28747
|
-
if (!input)
|
|
28748
|
-
return "";
|
|
28749
|
-
const replacedString = input.replace(/_/g, " ");
|
|
28750
|
-
const capitalizedString = replacedString.charAt(0).toUpperCase() + replacedString.slice(1);
|
|
28751
|
-
return capitalizedString;
|
|
28752
|
-
}
|
|
28753
|
-
|
|
28754
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-timestamp.js
|
|
28755
|
-
function prettyTimeStamp2() {
|
|
28756
|
-
const now = /* @__PURE__ */ new Date();
|
|
28757
|
-
const day = now.toLocaleDateString("en-US", { weekday: "short" }).toLowerCase();
|
|
28758
|
-
const date5 = now.getDate().toString().padStart(2, "0");
|
|
28759
|
-
const month = now.toLocaleDateString("en-US", { month: "short" }).toLowerCase();
|
|
28760
|
-
const year = now.getFullYear();
|
|
28761
|
-
let hours = now.getHours();
|
|
28762
|
-
const minutes = now.getMinutes().toString().padStart(2, "0");
|
|
28763
|
-
const ampm = hours >= 12 ? "PM" : "AM";
|
|
28764
|
-
hours = hours % 12 || 12;
|
|
28765
|
-
const formattedHour = hours.toString().padStart(2, "0");
|
|
28766
|
-
return `${day}-${date5}-${month}-${year}-${formattedHour}-${minutes}${ampm}`;
|
|
28767
|
-
}
|
|
28768
|
-
|
|
28769
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/pretty/pretty-unit.js
|
|
28770
|
-
function prettyUnit2(props) {
|
|
28771
|
-
const { value, unit, locale } = props;
|
|
28772
|
-
return new Intl.NumberFormat(locale, {
|
|
28773
|
-
style: "unit",
|
|
28774
|
-
unit
|
|
28775
|
-
}).format(value ?? 0);
|
|
28776
|
-
}
|
|
28777
|
-
|
|
28778
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/text/capitalize-first-letter.js
|
|
28779
|
-
function capitalizeFirstLetter2(input) {
|
|
28780
|
-
if (!input.length) {
|
|
28781
|
-
return input;
|
|
28782
|
-
}
|
|
28783
|
-
return input.charAt(0).toUpperCase() + input.slice(1);
|
|
28784
|
-
}
|
|
28785
|
-
|
|
28786
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/text/change-format.js
|
|
28787
|
-
function changeFormat2(value) {
|
|
28788
|
-
if (!value?.length) {
|
|
28789
|
-
return "";
|
|
28790
|
-
}
|
|
28791
|
-
return `${value.charAt(0).toUpperCase()}${value.slice(1).replace(/_|-/g, " ")}`;
|
|
28792
|
-
}
|
|
28793
|
-
|
|
28794
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/text/get-two-first-letters-from-string.js
|
|
28795
|
-
function getTwoFirstLettersFromString2(input) {
|
|
28796
|
-
if (!input) {
|
|
28797
|
-
return "";
|
|
28798
|
-
}
|
|
28799
|
-
const words = input.trim().split(/\s+/);
|
|
28800
|
-
if (!words.length) {
|
|
28801
|
-
return "";
|
|
28802
|
-
}
|
|
28803
|
-
if (words.length === 1) {
|
|
28804
|
-
if (!words[0]) {
|
|
28805
|
-
return false;
|
|
28806
|
-
}
|
|
28807
|
-
return words[0].charAt(0);
|
|
28808
|
-
}
|
|
28809
|
-
if (!words[0] || !words[1]) {
|
|
28810
|
-
return false;
|
|
28811
|
-
}
|
|
28812
|
-
return words[0].charAt(0) + words[1].charAt(0);
|
|
28813
|
-
}
|
|
28814
|
-
|
|
28815
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/text/truncate.js
|
|
28816
|
-
function truncate2(str, length) {
|
|
28817
|
-
if (typeof str === "string" && str.length > length) {
|
|
28818
|
-
return `${str.slice(0, length)}...`;
|
|
28819
|
-
}
|
|
28820
|
-
return str;
|
|
28821
|
-
}
|
|
28822
|
-
|
|
28823
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/transform/convert-to-csv.js
|
|
28824
|
-
function convertToCsv2({ data, schema, headers, options }) {
|
|
28825
|
-
const escapeCsv = (value) => {
|
|
28826
|
-
let str = value instanceof Date ? value.toISOString() : value == null ? "" : String(value);
|
|
28827
|
-
return /[",\n]/.test(str) ? `"${str.replace(/"/g, '""')}"` : str;
|
|
28828
|
-
};
|
|
28829
|
-
if (data.length === 0)
|
|
28830
|
-
return "";
|
|
28831
|
-
const firstMapped = schema(data[0], 0);
|
|
28832
|
-
const headerList = headers ? [...headers] : Object.keys(firstMapped);
|
|
28833
|
-
const keySet = new Set(headerList);
|
|
28834
|
-
const ensureSameKeys = (row, idx) => {
|
|
28835
|
-
const rowKeys = Object.keys(row);
|
|
28836
|
-
if (rowKeys.length !== headerList.length || rowKeys.some((k2) => !keySet.has(k2))) {
|
|
28837
|
-
throw new Error(`Row ${idx} schema keys differ from headers. Expected [${headerList.join(", ")}], got [${rowKeys.join(", ")}].`);
|
|
28838
|
-
}
|
|
28839
|
-
};
|
|
28840
|
-
const lines = [];
|
|
28841
|
-
lines.push(headerList.join(","));
|
|
28842
|
-
const limit = options?.maxRows ? Math.min(data.length, options.maxRows) : data.length;
|
|
28843
|
-
for (let i2 = 0; i2 < limit; i2++) {
|
|
28844
|
-
const mapped = schema(data[i2], i2);
|
|
28845
|
-
ensureSameKeys(mapped, i2);
|
|
28846
|
-
lines.push(headerList.map((h2) => escapeCsv(mapped[h2])).join(","));
|
|
28847
|
-
}
|
|
28848
|
-
return lines.join("\n");
|
|
28849
|
-
}
|
|
28850
|
-
|
|
28851
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/url/decode-url-text.js
|
|
28852
|
-
function decodeUrlText2(encodedText) {
|
|
28853
|
-
return decodeURIComponent(encodedText);
|
|
28854
|
-
}
|
|
28855
|
-
|
|
28856
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-helpers@0.0.6/node_modules/@boltapp/bolt-helpers/dist/index.js
|
|
28857
|
-
var Helpers2 = {
|
|
28858
|
-
isCurrentPath: isCurrentPath2,
|
|
28859
|
-
isPartOfCurrentPath: isPartOfCurrentPath2,
|
|
28860
|
-
capitalizeFirstLetter: capitalizeFirstLetter2,
|
|
28861
|
-
generateExcerpt: generateExcerpt2,
|
|
28862
|
-
prettyText: prettyText2,
|
|
28863
|
-
prettyTimeStamp: prettyTimeStamp2,
|
|
28864
|
-
prettyDate: prettyDate2,
|
|
28865
|
-
prettyFileSize: prettyFileSize2,
|
|
28866
|
-
prettyNumber: prettyNumber2,
|
|
28867
|
-
prettyCurrency: prettyCurrency2,
|
|
28868
|
-
prettyUnit: prettyUnit2,
|
|
28869
|
-
formatDate: formatDate2,
|
|
28870
|
-
toKebabCase: toKebabCase2,
|
|
28871
|
-
formatNumber: formatNumber2,
|
|
28872
|
-
randomString: randomString3,
|
|
28873
|
-
generateSlug: generateSlug2,
|
|
28874
|
-
generateRandomEmail: generateRandomEmail2,
|
|
28875
|
-
generateSequence: generateSequence2,
|
|
28876
|
-
convertToCsv: convertToCsv2,
|
|
28877
|
-
changeFormat: changeFormat2,
|
|
28878
|
-
truncate: truncate2,
|
|
28879
|
-
getTwoFirstLettersFromString: getTwoFirstLettersFromString2,
|
|
28880
|
-
summarizeItems: summarizeItems2,
|
|
28881
|
-
decodeUrlText: decodeUrlText2,
|
|
28882
|
-
subtractDays: subtractDays2,
|
|
28883
|
-
stringToDate: stringToDate2,
|
|
28884
|
-
dateToString: dateToString2
|
|
28885
|
-
};
|
|
28886
|
-
|
|
28887
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.5/node_modules/@boltapp/bolt-core/dist/inputs/input-type-formatter.js
|
|
28468
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/inputs/input-type-formatter.js
|
|
28888
28469
|
var getInputTypeFormatter = {
|
|
28889
28470
|
text: (value, _formatConfig) => {
|
|
28890
28471
|
if (value == null)
|
|
@@ -28941,7 +28522,7 @@ var getInputTypeFormatter = {
|
|
|
28941
28522
|
return String(value);
|
|
28942
28523
|
if (formatConfig?.dateFormat) {
|
|
28943
28524
|
if (formatConfig.dateFormat === "auto") {
|
|
28944
|
-
return
|
|
28525
|
+
return Helpers.prettyDate(date5);
|
|
28945
28526
|
}
|
|
28946
28527
|
const dateFormatObj = DATE_FORMATS.find((f2) => f2.key === formatConfig.dateFormat);
|
|
28947
28528
|
if (dateFormatObj?.format) {
|
|
@@ -28968,7 +28549,7 @@ var getInputTypeFormatter = {
|
|
|
28968
28549
|
return "";
|
|
28969
28550
|
if (formatConfig?.dateFormat) {
|
|
28970
28551
|
if (formatConfig.dateFormat === "auto") {
|
|
28971
|
-
return
|
|
28552
|
+
return Helpers.prettyDate(d2);
|
|
28972
28553
|
}
|
|
28973
28554
|
const dateFormatObj = DATE_FORMATS.find((f2) => f2.key === formatConfig.dateFormat);
|
|
28974
28555
|
if (dateFormatObj?.format) {
|
|
@@ -29231,7 +28812,7 @@ var getInputTypeFormatter = {
|
|
|
29231
28812
|
}
|
|
29232
28813
|
};
|
|
29233
28814
|
|
|
29234
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
28815
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-types/data-type-registry.js
|
|
29235
28816
|
var boltDataTypes = ["string", "number", "boolean", "enum", "array", "object"];
|
|
29236
28817
|
var boltDataTypesSchema = external_exports.enum(boltDataTypes);
|
|
29237
28818
|
var TRUTHY_STRING_VALUES = ["true", "yes", "1", "y", "on"];
|
|
@@ -29597,7 +29178,7 @@ var boltDataTypeRegistry = {
|
|
|
29597
29178
|
}
|
|
29598
29179
|
};
|
|
29599
29180
|
|
|
29600
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
29181
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/inputs/input-type-handler.js
|
|
29601
29182
|
var inputTypeHandlerCache = /* @__PURE__ */ new Map();
|
|
29602
29183
|
function getInputTypeHandler(inputType) {
|
|
29603
29184
|
const cached2 = inputTypeHandlerCache.get(inputType);
|
|
@@ -29677,7 +29258,7 @@ function getInputTypeHandler(inputType) {
|
|
|
29677
29258
|
return handler;
|
|
29678
29259
|
}
|
|
29679
29260
|
|
|
29680
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
29261
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/table-actions.js
|
|
29681
29262
|
import { nanoid as nanoid10 } from "nanoid";
|
|
29682
29263
|
function createCellValue(rawInput, column, options) {
|
|
29683
29264
|
const handler = getInputTypeHandler(column.schema.input.inputType);
|
|
@@ -31155,7 +30736,7 @@ function createClientBoltInstance(options) {
|
|
|
31155
30736
|
};
|
|
31156
30737
|
}
|
|
31157
30738
|
|
|
31158
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
30739
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/cloud-app/schema/index.js
|
|
31159
30740
|
var schema_exports2 = {};
|
|
31160
30741
|
__export(schema_exports2, {
|
|
31161
30742
|
appStatusEnum: () => appStatusEnum,
|
|
@@ -31178,12 +30759,12 @@ __export(schema_exports2, {
|
|
|
31178
30759
|
projectsRelations: () => projectsRelations
|
|
31179
30760
|
});
|
|
31180
30761
|
|
|
31181
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
30762
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/cloud-app/schema/data-store-schemas.js
|
|
31182
30763
|
import { relations as relations6 } from "drizzle-orm";
|
|
31183
30764
|
import { index as index7, jsonb, pgTable as pgTable2, text as text8, timestamp as timestamp2, uniqueIndex as uniqueIndex7 } from "drizzle-orm/pg-core";
|
|
31184
30765
|
import { nanoid as nanoid13 } from "nanoid";
|
|
31185
30766
|
|
|
31186
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
30767
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/cloud-app/schema/schema.js
|
|
31187
30768
|
import { relations as relations5 } from "drizzle-orm";
|
|
31188
30769
|
import { index as index6, pgEnum, pgTable, text as text7, timestamp, uniqueIndex as uniqueIndex6 } from "drizzle-orm/pg-core";
|
|
31189
30770
|
import { nanoid as nanoid12 } from "nanoid";
|
|
@@ -31227,7 +30808,7 @@ var appsRelations = relations5(apps, ({ one }) => ({
|
|
|
31227
30808
|
})
|
|
31228
30809
|
}));
|
|
31229
30810
|
|
|
31230
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
30811
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/cloud-app/schema/data-store-schemas.js
|
|
31231
30812
|
var boltDataStores3 = pgTable2("bolt_data_stores", {
|
|
31232
30813
|
id: text8("id").primaryKey().$defaultFn(() => nanoid13()),
|
|
31233
30814
|
name: text8("name").notNull(),
|
|
@@ -31253,7 +30834,7 @@ var boltDataStoresRelations2 = relations6(boltDataStores3, ({ one }) => ({
|
|
|
31253
30834
|
})
|
|
31254
30835
|
}));
|
|
31255
30836
|
|
|
31256
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
30837
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/cloud-app/schema/data-table-schemas.js
|
|
31257
30838
|
import { relations as relations7 } from "drizzle-orm";
|
|
31258
30839
|
import { boolean as boolean4, index as index8, integer as integer8, jsonb as jsonb2, pgEnum as pgEnum2, pgTable as pgTable3, serial, text as text9, timestamp as timestamp3, uniqueIndex as uniqueIndex8 } from "drizzle-orm/pg-core";
|
|
31259
30840
|
import { nanoid as nanoid14 } from "nanoid";
|
|
@@ -31343,7 +30924,7 @@ var boltTableOpsRelations2 = relations7(boltTableOps3, ({ one }) => ({
|
|
|
31343
30924
|
})
|
|
31344
30925
|
}));
|
|
31345
30926
|
|
|
31346
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.
|
|
30927
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-app-db@0.0.15_@types+better-sqlite3@7.6.13_@types+pg@8.16.0_better-sqlite_0cec5eedc627d18299ac4dc34763c418/node_modules/@boltapp/bolt-app-db/dist/cloud-app/schema/file-schemas.js
|
|
31347
30928
|
import { relations as relations8 } from "drizzle-orm";
|
|
31348
30929
|
import { index as index9, integer as integer9, pgTable as pgTable4, text as text10, timestamp as timestamp4 } from "drizzle-orm/pg-core";
|
|
31349
30930
|
import { nanoid as nanoid15 } from "nanoid";
|
|
@@ -31398,8 +30979,8 @@ import { eq as eq11 } from "drizzle-orm";
|
|
|
31398
30979
|
|
|
31399
30980
|
// ../bolt-actions/dist/cloud/http-request.js
|
|
31400
30981
|
var BoltPublicApiUnreachableError = class extends Error {
|
|
31401
|
-
constructor(baseUrl,
|
|
31402
|
-
super(`Bolt Public API is unreachable at ${normalizeBaseUrl(baseUrl)} (request path: ${
|
|
30982
|
+
constructor(baseUrl, path5, cause) {
|
|
30983
|
+
super(`Bolt Public API is unreachable at ${normalizeBaseUrl(baseUrl)} (request path: ${path5}). Start the public-api server or set BOLT_PUBLIC_API_URL to a reachable API host.`);
|
|
31403
30984
|
this.name = "BoltPublicApiUnreachableError";
|
|
31404
30985
|
this.cause = cause;
|
|
31405
30986
|
}
|
|
@@ -31408,11 +30989,11 @@ var CloudHttpRequestError = class extends Error {
|
|
|
31408
30989
|
status;
|
|
31409
30990
|
path;
|
|
31410
30991
|
responseText;
|
|
31411
|
-
constructor(
|
|
31412
|
-
super(`Cloud HTTP request failed (${
|
|
30992
|
+
constructor(path5, status, responseText, message2) {
|
|
30993
|
+
super(`Cloud HTTP request failed (${path5}): ${message2}`);
|
|
31413
30994
|
this.name = "CloudHttpRequestError";
|
|
31414
30995
|
this.status = status;
|
|
31415
|
-
this.path =
|
|
30996
|
+
this.path = path5;
|
|
31416
30997
|
this.responseText = responseText;
|
|
31417
30998
|
}
|
|
31418
30999
|
};
|
|
@@ -31456,10 +31037,10 @@ function isNetworkUnreachableError(error48) {
|
|
|
31456
31037
|
const codes = collectErrorCodes(error48);
|
|
31457
31038
|
return networkLikeNames.has(error48.name) || codes.some((code) => networkLikeCodes.has(code));
|
|
31458
31039
|
}
|
|
31459
|
-
async function requestJson(context,
|
|
31040
|
+
async function requestJson(context, path5, options = {}) {
|
|
31460
31041
|
let response;
|
|
31461
31042
|
try {
|
|
31462
|
-
response = await fetch(`${normalizeBaseUrl(context.baseUrl)}${
|
|
31043
|
+
response = await fetch(`${normalizeBaseUrl(context.baseUrl)}${path5}`, {
|
|
31463
31044
|
...options,
|
|
31464
31045
|
headers: buildCloudHeaders(context, {
|
|
31465
31046
|
"Content-Type": "application/json",
|
|
@@ -31468,33 +31049,33 @@ async function requestJson(context, path6, options = {}) {
|
|
|
31468
31049
|
});
|
|
31469
31050
|
} catch (error48) {
|
|
31470
31051
|
if (isNetworkUnreachableError(error48)) {
|
|
31471
|
-
throw new BoltPublicApiUnreachableError(context.baseUrl,
|
|
31052
|
+
throw new BoltPublicApiUnreachableError(context.baseUrl, path5, error48);
|
|
31472
31053
|
}
|
|
31473
31054
|
throw error48;
|
|
31474
31055
|
}
|
|
31475
31056
|
if (!response.ok) {
|
|
31476
31057
|
const text11 = await response.text();
|
|
31477
31058
|
const message2 = parseHttpErrorMessage(response.status, text11);
|
|
31478
|
-
throw new CloudHttpRequestError(
|
|
31059
|
+
throw new CloudHttpRequestError(path5, response.status, text11, message2);
|
|
31479
31060
|
}
|
|
31480
31061
|
return await response.json();
|
|
31481
31062
|
}
|
|
31482
|
-
async function requestBlob(context,
|
|
31063
|
+
async function requestBlob(context, path5) {
|
|
31483
31064
|
let response;
|
|
31484
31065
|
try {
|
|
31485
|
-
response = await fetch(`${normalizeBaseUrl(context.baseUrl)}${
|
|
31066
|
+
response = await fetch(`${normalizeBaseUrl(context.baseUrl)}${path5}`, {
|
|
31486
31067
|
headers: buildCloudHeaders(context)
|
|
31487
31068
|
});
|
|
31488
31069
|
} catch (error48) {
|
|
31489
31070
|
if (isNetworkUnreachableError(error48)) {
|
|
31490
|
-
throw new BoltPublicApiUnreachableError(context.baseUrl,
|
|
31071
|
+
throw new BoltPublicApiUnreachableError(context.baseUrl, path5, error48);
|
|
31491
31072
|
}
|
|
31492
31073
|
throw error48;
|
|
31493
31074
|
}
|
|
31494
31075
|
if (!response.ok) {
|
|
31495
31076
|
const text11 = await response.text();
|
|
31496
31077
|
const message2 = parseHttpErrorMessage(response.status, text11);
|
|
31497
|
-
throw new CloudHttpRequestError(
|
|
31078
|
+
throw new CloudHttpRequestError(path5, response.status, text11, message2);
|
|
31498
31079
|
}
|
|
31499
31080
|
return response.blob();
|
|
31500
31081
|
}
|
|
@@ -32131,15 +31712,15 @@ import { nanoid as nanoid18 } from "nanoid";
|
|
|
32131
31712
|
var { boltTables: boltTables5, boltTableViews: boltTableViews5, boltTableOps: boltTableOps5 } = schema_exports2;
|
|
32132
31713
|
|
|
32133
31714
|
// ../bolt-actions/dist/config.js
|
|
32134
|
-
import
|
|
32135
|
-
import
|
|
31715
|
+
import fs2 from "fs";
|
|
31716
|
+
import path2 from "path";
|
|
32136
31717
|
|
|
32137
31718
|
// ../bolt-actions/dist/utils/get-schema-sql.js
|
|
32138
|
-
import { exec
|
|
32139
|
-
import { promisify
|
|
32140
|
-
var
|
|
31719
|
+
import { exec } from "child_process";
|
|
31720
|
+
import { promisify } from "util";
|
|
31721
|
+
var execAsync = promisify(exec);
|
|
32141
31722
|
|
|
32142
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
31723
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-stores/data-store-actions.js
|
|
32143
31724
|
var TEMPLATE_APP_CONFIG = {
|
|
32144
31725
|
name: "app_config",
|
|
32145
31726
|
label: "App Config",
|
|
@@ -32187,7 +31768,7 @@ var TEMPLATE_APP_CONFIG = {
|
|
|
32187
31768
|
// },
|
|
32188
31769
|
};
|
|
32189
31770
|
|
|
32190
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
31771
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-stores/schemas.js
|
|
32191
31772
|
var dataStoreSchemaItemSchema = external_exports.object({
|
|
32192
31773
|
id: external_exports.string(),
|
|
32193
31774
|
label: external_exports.string(),
|
|
@@ -32233,67 +31814,13 @@ var createDataStoreInputSchema = external_exports.object({
|
|
|
32233
31814
|
}).optional()
|
|
32234
31815
|
});
|
|
32235
31816
|
|
|
32236
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
31817
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/schemas/primitives/sorting.js
|
|
32237
31818
|
var boltTableViewSortingSchema = zod_default.object({
|
|
32238
31819
|
columnId: zod_default.string(),
|
|
32239
31820
|
direction: zod_default.enum(["asc", "desc"])
|
|
32240
31821
|
});
|
|
32241
31822
|
|
|
32242
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
32243
|
-
var TABLE_VIEW_DISPLAY_TYPES2 = ["table", "fileSystem", "cards"];
|
|
32244
|
-
var boltTableView2 = zod_default.enum(TABLE_VIEW_DISPLAY_TYPES2);
|
|
32245
|
-
|
|
32246
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.5/node_modules/@boltapp/bolt-core/dist/data-table/schemas/views/file-system-node.js
|
|
32247
|
-
var boltFileSystemNodeSchema2 = zod_default.lazy(() => zod_default.discriminatedUnion("type", [
|
|
32248
|
-
zod_default.object({
|
|
32249
|
-
id: zod_default.string(),
|
|
32250
|
-
type: zod_default.literal("folder"),
|
|
32251
|
-
label: zod_default.string(),
|
|
32252
|
-
items: zod_default.array(boltFileSystemNodeSchema2).optional()
|
|
32253
|
-
}),
|
|
32254
|
-
zod_default.object({
|
|
32255
|
-
id: zod_default.string(),
|
|
32256
|
-
type: zod_default.literal("rowRef"),
|
|
32257
|
-
rowId: zod_default.string()
|
|
32258
|
-
})
|
|
32259
|
-
]));
|
|
32260
|
-
|
|
32261
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.5/node_modules/@boltapp/bolt-core/dist/data-table/schemas/views/display-config.js
|
|
32262
|
-
var boltTableColumnConfigSchema2 = zod_default.record(zod_default.string(), zod_default.object({
|
|
32263
|
-
// Column sizing
|
|
32264
|
-
size: zod_default.number().optional(),
|
|
32265
|
-
minSize: zod_default.number().optional(),
|
|
32266
|
-
maxSize: zod_default.number().optional(),
|
|
32267
|
-
enableResizing: zod_default.boolean().optional(),
|
|
32268
|
-
wrap: zod_default.boolean().optional(),
|
|
32269
|
-
// Column-specific filters/formatting
|
|
32270
|
-
customLabel: zod_default.string().optional()
|
|
32271
|
-
// Override default label in this view
|
|
32272
|
-
}));
|
|
32273
|
-
var boltTableViewDisplayConfigSchema2 = zod_default.discriminatedUnion("type", [
|
|
32274
|
-
zod_default.object({
|
|
32275
|
-
type: zod_default.literal("table"),
|
|
32276
|
-
view: zod_default.object({
|
|
32277
|
-
config: boltTableColumnConfigSchema2
|
|
32278
|
-
})
|
|
32279
|
-
}),
|
|
32280
|
-
zod_default.object({
|
|
32281
|
-
type: zod_default.literal("cards"),
|
|
32282
|
-
view: zod_default.object({})
|
|
32283
|
-
}),
|
|
32284
|
-
zod_default.object({
|
|
32285
|
-
type: zod_default.literal("fileSystem"),
|
|
32286
|
-
view: zod_default.object({
|
|
32287
|
-
config: zod_default.object({
|
|
32288
|
-
/** Column IDs to display for each row, in order */
|
|
32289
|
-
visibleColumnIds: zod_default.array(zod_default.string())
|
|
32290
|
-
}),
|
|
32291
|
-
roots: zod_default.array(boltFileSystemNodeSchema2)
|
|
32292
|
-
})
|
|
32293
|
-
})
|
|
32294
|
-
]);
|
|
32295
|
-
|
|
32296
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.5/node_modules/@boltapp/bolt-core/dist/data-table/schemas/views/view.js
|
|
31823
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/schemas/views/view.js
|
|
32297
31824
|
var boltTableViewSchema = zod_default.object({
|
|
32298
31825
|
/** The id is auto generated. It should not be used in the sdk, or queries that devs can use. */
|
|
32299
31826
|
id: zod_default.string(),
|
|
@@ -32302,7 +31829,7 @@ var boltTableViewSchema = zod_default.object({
|
|
|
32302
31829
|
label: zod_default.string(),
|
|
32303
31830
|
tableId: zod_default.string(),
|
|
32304
31831
|
description: zod_default.string().nullable().optional(),
|
|
32305
|
-
display:
|
|
31832
|
+
display: boltTableView,
|
|
32306
31833
|
/** Column visibility and ordering */
|
|
32307
31834
|
visibleColumnIds: zod_default.array(zod_default.string()),
|
|
32308
31835
|
/** Sorting */
|
|
@@ -32319,13 +31846,13 @@ var boltTableViewSchema = zod_default.object({
|
|
|
32319
31846
|
createdAt: zod_default.date().nullable(),
|
|
32320
31847
|
updatedAt: zod_default.date().nullable(),
|
|
32321
31848
|
/** Display-specific configuration (table grid, file system, etc.) */
|
|
32322
|
-
displayConfig:
|
|
31849
|
+
displayConfig: boltTableViewDisplayConfigSchema
|
|
32323
31850
|
}).refine((v2) => v2.display === v2.displayConfig.type, {
|
|
32324
31851
|
message: "display and displayConfig.type must match",
|
|
32325
31852
|
path: ["displayConfig", "type"]
|
|
32326
31853
|
});
|
|
32327
31854
|
|
|
32328
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
31855
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/schemas/table/cell.js
|
|
32329
31856
|
var boltCellValueSchema = zod_default.object({
|
|
32330
31857
|
/** Whatever was last written (Untrusted) */
|
|
32331
31858
|
raw: zod_default.any(),
|
|
@@ -32335,7 +31862,7 @@ var boltCellValueSchema = zod_default.object({
|
|
|
32335
31862
|
schemaVersion: zod_default.number()
|
|
32336
31863
|
});
|
|
32337
31864
|
|
|
32338
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
31865
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/schemas/table/column.js
|
|
32339
31866
|
var boltColumnInputSchema = zod_default.discriminatedUnion("inputType", boltInputTypes.map((t8) => boltInputRegistry[t8].schema));
|
|
32340
31867
|
var boltColumnFormatConfigSchema = zod_default.discriminatedUnion("inputType", boltInputTypes.map((t8) => boltInputRegistry[t8].formatConfigSchema.extend({ inputType: zod_default.literal(t8) }).loose()));
|
|
32341
31868
|
var boltTableColumnSchema = zod_default.object({
|
|
@@ -32368,7 +31895,7 @@ var boltTableColumnSchema = zod_default.object({
|
|
|
32368
31895
|
})
|
|
32369
31896
|
});
|
|
32370
31897
|
|
|
32371
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
31898
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/schemas/table/row.js
|
|
32372
31899
|
var boltTableRowSchema = zod_default.object({
|
|
32373
31900
|
id: zod_default.string(),
|
|
32374
31901
|
index: zod_default.number(),
|
|
@@ -32386,7 +31913,7 @@ var boltTableRowSchema = zod_default.object({
|
|
|
32386
31913
|
data: zod_default.record(zod_default.string(), boltCellValueSchema)
|
|
32387
31914
|
});
|
|
32388
31915
|
|
|
32389
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
31916
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/schemas/table/contracts.js
|
|
32390
31917
|
var tablePropertiesSchema = zod_default.object({
|
|
32391
31918
|
userId: zod_default.string().optional(),
|
|
32392
31919
|
organizationId: zod_default.string().optional(),
|
|
@@ -32424,13 +31951,13 @@ var createViewInputSchema = zod_default.object({
|
|
|
32424
31951
|
name: zod_default.string(),
|
|
32425
31952
|
label: zod_default.string(),
|
|
32426
31953
|
description: zod_default.string().optional(),
|
|
32427
|
-
display:
|
|
31954
|
+
display: boltTableView.optional(),
|
|
32428
31955
|
visibleColumnIds: zod_default.array(zod_default.string()).optional(),
|
|
32429
31956
|
sorting: zod_default.array(zod_default.object({ columnId: zod_default.string(), direction: zod_default.enum(["asc", "desc"]) })).nullable().optional(),
|
|
32430
31957
|
showRowNumbers: zod_default.boolean().optional(),
|
|
32431
31958
|
rowHeight: zod_default.number().nullable().optional(),
|
|
32432
31959
|
createdBy: zod_default.string().optional(),
|
|
32433
|
-
displayConfig:
|
|
31960
|
+
displayConfig: boltTableViewDisplayConfigSchema.optional()
|
|
32434
31961
|
});
|
|
32435
31962
|
var updateViewInputSchema = zod_default.object({
|
|
32436
31963
|
viewId: zod_default.string(),
|
|
@@ -32443,11 +31970,11 @@ var updateViewInputSchema = zod_default.object({
|
|
|
32443
31970
|
density: zod_default.enum(["compact", "normal", "comfortable"]).optional(),
|
|
32444
31971
|
showRowNumbers: zod_default.boolean().optional(),
|
|
32445
31972
|
rowHeight: zod_default.number().optional(),
|
|
32446
|
-
displayConfig:
|
|
31973
|
+
displayConfig: boltTableViewDisplayConfigSchema.optional()
|
|
32447
31974
|
})
|
|
32448
31975
|
});
|
|
32449
31976
|
|
|
32450
|
-
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.
|
|
31977
|
+
// ../../node_modules/.pnpm/@boltapp+bolt-core@0.0.14/node_modules/@boltapp/bolt-core/dist/data-table/schemas/table/table.js
|
|
32451
31978
|
var boltTableSchema = zod_default.object({
|
|
32452
31979
|
id: zod_default.string(),
|
|
32453
31980
|
name: zod_default.string(),
|
|
@@ -33111,8 +32638,8 @@ var dataStoreRoutePatterns = {
|
|
|
33111
32638
|
|
|
33112
32639
|
// ../bolt-api/dist/apis/app-public/routes.js
|
|
33113
32640
|
var APP_DATA_STORES_BASE = "/app/data-stores";
|
|
33114
|
-
function withBase(base,
|
|
33115
|
-
return `${base}${
|
|
32641
|
+
function withBase(base, path5) {
|
|
32642
|
+
return `${base}${path5}`;
|
|
33116
32643
|
}
|
|
33117
32644
|
var appPublicRoutePatterns = {
|
|
33118
32645
|
app: {
|
|
@@ -33717,12 +33244,12 @@ function createDataTableRestHandler(api) {
|
|
|
33717
33244
|
name: external_exports.string(),
|
|
33718
33245
|
label: external_exports.string(),
|
|
33719
33246
|
description: external_exports.string().optional(),
|
|
33720
|
-
display:
|
|
33247
|
+
display: boltTableView,
|
|
33721
33248
|
visibleColumnIds: external_exports.array(external_exports.string()).optional(),
|
|
33722
33249
|
sorting: external_exports.array(external_exports.object({ columnId: external_exports.string(), direction: external_exports.enum(["asc", "desc"]) })).nullable().optional(),
|
|
33723
33250
|
showRowNumbers: external_exports.boolean().optional(),
|
|
33724
33251
|
rowHeight: external_exports.number().nullable().optional(),
|
|
33725
|
-
displayConfig:
|
|
33252
|
+
displayConfig: boltTableViewDisplayConfigSchema
|
|
33726
33253
|
})), async (c2) => {
|
|
33727
33254
|
const { tableId } = c2.req.valid("param");
|
|
33728
33255
|
const body = c2.req.valid("json");
|
|
@@ -33747,7 +33274,7 @@ function createDataTableRestHandler(api) {
|
|
|
33747
33274
|
sorting: external_exports.array(external_exports.object({ columnId: external_exports.string(), direction: external_exports.enum(["asc", "desc"]) })).nullable().optional(),
|
|
33748
33275
|
showRowNumbers: external_exports.boolean().optional(),
|
|
33749
33276
|
rowHeight: external_exports.number().nullable().optional(),
|
|
33750
|
-
displayConfig:
|
|
33277
|
+
displayConfig: boltTableViewDisplayConfigSchema.optional()
|
|
33751
33278
|
})), async (c2) => {
|
|
33752
33279
|
const { viewId } = c2.req.valid("param");
|
|
33753
33280
|
const updates = c2.req.valid("json");
|
|
@@ -33806,20 +33333,20 @@ var BOLT_CONFIG_FILE2 = "bolt.config.json";
|
|
|
33806
33333
|
var BOLT_DB_FILE2 = "bolt.db";
|
|
33807
33334
|
|
|
33808
33335
|
// ../bolt-core/dist/config/paths.js
|
|
33809
|
-
import
|
|
33336
|
+
import path3 from "path";
|
|
33810
33337
|
function getConfigPath2(cwd = process.cwd()) {
|
|
33811
|
-
return
|
|
33338
|
+
return path3.join(cwd, BOLT_DIR2, BOLT_CONFIG_FILE2);
|
|
33812
33339
|
}
|
|
33813
33340
|
function getDbPath2(cwd = process.cwd()) {
|
|
33814
|
-
return
|
|
33341
|
+
return path3.join(cwd, BOLT_DIR2, BOLT_DB_FILE2);
|
|
33815
33342
|
}
|
|
33816
33343
|
|
|
33817
33344
|
// ../bolt-core/dist/config/loader.js
|
|
33818
|
-
import
|
|
33345
|
+
import fs3 from "fs/promises";
|
|
33819
33346
|
async function loadBoltConfig(projectPath) {
|
|
33820
33347
|
const configPath = getConfigPath2(projectPath);
|
|
33821
33348
|
try {
|
|
33822
|
-
const content = await
|
|
33349
|
+
const content = await fs3.readFile(configPath, "utf-8");
|
|
33823
33350
|
const config2 = JSON.parse(content);
|
|
33824
33351
|
if (!config2.appId || !config2.type) {
|
|
33825
33352
|
throw new Error("Invalid bolt.config.json: missing appId or type");
|
|
@@ -33847,15 +33374,15 @@ import { serve } from "@hono/node-server";
|
|
|
33847
33374
|
import { serveStatic } from "@hono/node-server/serve-static";
|
|
33848
33375
|
import Database from "better-sqlite3";
|
|
33849
33376
|
import { config as loadEnv } from "dotenv";
|
|
33850
|
-
import
|
|
33377
|
+
import fs4 from "fs";
|
|
33851
33378
|
import { Hono as Hono4 } from "hono";
|
|
33852
33379
|
import { cors } from "hono/cors";
|
|
33853
|
-
import
|
|
33854
|
-
import { fileURLToPath
|
|
33380
|
+
import path4 from "path";
|
|
33381
|
+
import { fileURLToPath } from "url";
|
|
33855
33382
|
async function createDashboardServer(options) {
|
|
33856
33383
|
const { projectPath, port, host = "127.0.0.1", uiPath } = options;
|
|
33857
|
-
loadEnv({ path:
|
|
33858
|
-
loadEnv({ path:
|
|
33384
|
+
loadEnv({ path: path4.join(projectPath, ".env") });
|
|
33385
|
+
loadEnv({ path: path4.join(projectPath, ".env.local") });
|
|
33859
33386
|
const config2 = await loadBoltConfig(projectPath);
|
|
33860
33387
|
let bolt;
|
|
33861
33388
|
let sqlite = null;
|
|
@@ -34045,11 +33572,11 @@ function isDashboardAuthBypassEnabled() {
|
|
|
34045
33572
|
return process.env.BOLT_DASHBOARD_AUTH_BYPASS?.trim().toLowerCase() === "true";
|
|
34046
33573
|
}
|
|
34047
33574
|
function resolveDefaultUiPath() {
|
|
34048
|
-
const __filename =
|
|
34049
|
-
const __dirname2 =
|
|
34050
|
-
const distUiFromDistServer =
|
|
34051
|
-
const distUiFromSrcServer =
|
|
34052
|
-
if (
|
|
33575
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
33576
|
+
const __dirname2 = path4.dirname(__filename);
|
|
33577
|
+
const distUiFromDistServer = path4.resolve(__dirname2, "..", "ui");
|
|
33578
|
+
const distUiFromSrcServer = path4.resolve(__dirname2, "..", "..", "dist", "ui");
|
|
33579
|
+
if (fs4.existsSync(distUiFromDistServer)) return distUiFromDistServer;
|
|
34053
33580
|
return distUiFromSrcServer;
|
|
34054
33581
|
}
|
|
34055
33582
|
function buildTrustedOriginsFromEnv() {
|