@stacksjs/utils 0.57.3 → 0.58.19

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/index.js ADDED
@@ -0,0 +1,1276 @@
1
+ // @bun
2
+ // src/base.ts
3
+ import {toString} from "@stacksjs/strings";
4
+ function assert(condition, message) {
5
+ if (!condition)
6
+ throw new Error(message);
7
+ }
8
+ async function loop(times, callback) {
9
+ [...Array(times)].forEach(async (item, i) => await callback(i));
10
+ }
11
+ // src/clean.ts
12
+ import {path as p} from "@stacksjs/path";
13
+
14
+ // src/delete.ts
15
+ import {rimraf} from "rimraf";
16
+
17
+ // src/clean.ts
18
+ async function cleanProject() {
19
+ return await rimraf([
20
+ p.projectPath("bun.lockb"),
21
+ p.projectPath("yarn.lock"),
22
+ p.projectPath("node_modules/"),
23
+ p.frameworkPath("dist"),
24
+ p.frameworkPath("node_modules"),
25
+ p.frameworkPath("**/dist"),
26
+ p.frameworkPath("**/node_modules"),
27
+ p.cloudPath("cdk.out/"),
28
+ p.cloudPath("cdk.context.json"),
29
+ p.cloudPath("dist.zip")
30
+ ]);
31
+ }
32
+ // src/config.ts
33
+ import {
34
+ defineApp,
35
+ defineCache,
36
+ defineCli,
37
+ defineCdn,
38
+ defineCronJob,
39
+ defineJob,
40
+ defineDependencies,
41
+ defineDatabase,
42
+ defineDns,
43
+ defineEmailConfig,
44
+ defineGit,
45
+ defineHashing,
46
+ defineLibrary,
47
+ defineNotification,
48
+ defineSms,
49
+ defineEmail,
50
+ defineChat,
51
+ definePayment,
52
+ defineQueue,
53
+ defineSearchEngine,
54
+ defineServices,
55
+ defineStorage,
56
+ defineUi
57
+ } from "@stacksjs/config";
58
+ // src/currency.ts
59
+ import {
60
+ add,
61
+ allocate,
62
+ compare,
63
+ convert,
64
+ equal,
65
+ greaterThan,
66
+ greaterThanOrEqual,
67
+ hasSubUnits,
68
+ isZero,
69
+ lessThan,
70
+ lessThanOrEqual,
71
+ maximum,
72
+ minimum,
73
+ multiply,
74
+ normalizeScale,
75
+ dinero,
76
+ dinero as dinero2,
77
+ subtract,
78
+ toSnapshot,
79
+ toUnits,
80
+ toDecimal,
81
+ trimScale,
82
+ haveSameCurrency,
83
+ haveSameAmount,
84
+ dinero as dinero3
85
+ } from "dinero.js";
86
+ import {USD} from "@dinero.js/currencies";
87
+ // src/debounce.ts
88
+ import {debounce} from "perfect-debounce";
89
+ // src/equal.ts
90
+ import {getTypeName} from "@stacksjs/types";
91
+ function isDeepEqual(value1, value2) {
92
+ const type1 = getTypeName(value1);
93
+ const type2 = getTypeName(value2);
94
+ if (type1 !== type2)
95
+ return false;
96
+ if (type1 === "array") {
97
+ if (value1.length !== value2.length)
98
+ return false;
99
+ return value1.every((item, i) => {
100
+ return isDeepEqual(item, value2[i]);
101
+ });
102
+ }
103
+ if (type1 === "object") {
104
+ const keyArr = Object.keys(value1);
105
+ if (keyArr.length !== Object.keys(value2).length)
106
+ return false;
107
+ return keyArr.every((key) => {
108
+ return isDeepEqual(value1[key], value2[key]);
109
+ });
110
+ }
111
+ return Object.is(value1, value2);
112
+ }
113
+ // src/export-size.ts
114
+ import {getExportsSize} from "export-size";
115
+ // src/function.ts
116
+ function batchInvoke(functions) {
117
+ functions.forEach((fn) => fn && fn());
118
+ }
119
+ function tap(value, callback) {
120
+ callback(value);
121
+ return value;
122
+ }
123
+ // src/git.ts
124
+ import {execSync} from "child_process";
125
+ function isGitClean() {
126
+ try {
127
+ execSync("git diff-index --quiet HEAD --");
128
+ return true;
129
+ } catch (error) {
130
+ return false;
131
+ }
132
+ }
133
+ // src/guards.ts
134
+ function notNullish(v) {
135
+ return v != null;
136
+ }
137
+ function noNull(v) {
138
+ return v !== null;
139
+ }
140
+ function notUndefined(v) {
141
+ return v !== undefined;
142
+ }
143
+ function isTruthy(v) {
144
+ return Boolean(v);
145
+ }
146
+ // src/hash.ts
147
+ import {hashPaths} from "@stacksjs/storage";
148
+ import {path as p2} from "@stacksjs/path";
149
+ import {config as config2} from "@stacksjs/config";
150
+ var originRequestFunctionHash = hashPaths(p2.cloudPath("src/edge"));
151
+ var docsSrc = [
152
+ p2.projectPath("docs"),
153
+ p2.projectPath("config/docs.ts")
154
+ ];
155
+ var websiteSrc = [
156
+ p2.projectPath("resources/views")
157
+ ];
158
+ var websiteSourceHash = config2.app.docMode === true ? hashPaths(docsSrc) : hashPaths(websiteSrc);
159
+ // src/helpers.ts
160
+ import {log, runCommand} from "@stacksjs/cli";
161
+ import {err, ok} from "@stacksjs/error-handling";
162
+ import {frameworkPath, projectPath} from "@stacksjs/path";
163
+ import * as storage2 from "@stacksjs/storage";
164
+ import {Action} from "@stacksjs/enums";
165
+ import {parse} from "yaml";
166
+ import {app, ui} from "@stacksjs/config";
167
+ async function packageManager() {
168
+ const { packageManager: packageManager2 } = await storage2.readPackageJson(frameworkPath("package.json"));
169
+ return packageManager2;
170
+ }
171
+ async function initProject() {
172
+ if (app.env !== "production")
173
+ log.info("Project not yet initialized, generating application key...");
174
+ else
175
+ handleError("Please run `buddy key:generate` to generate an application key");
176
+ const result = await runAction(Action.KeyGenerate, { cwd: projectPath() });
177
+ if (result.isErr())
178
+ return err(handleError(result.error));
179
+ log.info("Application key generated.");
180
+ return ok(result.value);
181
+ }
182
+ async function ensureProjectIsInitialized() {
183
+ if (storage2.isFile(projectPath(".env")))
184
+ return await isAppKeySet();
185
+ if (storage2.isFile(projectPath(".env.example")))
186
+ await runCommand("cp .env.example .env", { cwd: projectPath() });
187
+ else
188
+ console.error("no .env.example file found");
189
+ return await isAppKeySet();
190
+ }
191
+ async function installIfVersionMismatch() {
192
+ }
193
+ async function frameworkVersion() {
194
+ return (await storage2.readPackageJson(frameworkPath("package.json"))).version;
195
+ }
196
+ async function isAppKeySet() {
197
+ const env = await storage2.readTextFile(".env", projectPath());
198
+ const lines = env.data.split("\n");
199
+ const appKey = lines.find((line) => line.startsWith("APP_KEY="));
200
+ return !!(appKey && appKey.length > 16);
201
+ }
202
+ function determineResetPreset(preset) {
203
+ if (ui.reset)
204
+ preset = ui.reset;
205
+ if (preset === "tailwind")
206
+ return ["import \'@unocss/reset/tailwind.css\'"];
207
+ if (preset === "normalize")
208
+ return ["import \'@unocss/reset/normalize.css\'"];
209
+ if (preset === "sanitize")
210
+ return ["import \'@unocss/reset/sanitize/sanitize.css\'", "import \'@unocss/reset/sanitize/assets.css"];
211
+ if (preset === "eric-meyer")
212
+ return ["import \'@unocss/reset/eric-meyer.css\'"];
213
+ if (preset === "antfu")
214
+ return ["import \'@unocss/reset/antfu.css\'"];
215
+ return [];
216
+ }
217
+ function isManifest(obj) {
218
+ return obj && typeof obj === "object" && isOptionalString(obj.name) && isOptionalString(obj.version) && isOptionalString(obj.description);
219
+ }
220
+ function isOptionalString(value) {
221
+ const type = typeof value;
222
+ return value === null || type === "undefined" || type === "string";
223
+ }
224
+ async function setEnvValue(key, value) {
225
+ const file = await storage2.readTextFile(projectPath(".env"));
226
+ await storage2.writeTextFile({
227
+ path: projectPath(".env"),
228
+ data: file.data.replace(/APP_KEY=/g, `APP_KEY=${value}`)
229
+ });
230
+ }
231
+ async function runNpmScript(script, options) {
232
+ const { data: manifest } = await storage2.readJsonFile("package.json", frameworkPath());
233
+ if (isManifest(manifest) && hasScript(manifest, script))
234
+ return await runCommand(`bun --bun run ${script}`, options);
235
+ return err(handleError(`The ${script} script does not exist in the package.json file.`));
236
+ }
237
+ function hasScript(manifest, script) {
238
+ const scripts = manifest.scripts;
239
+ if (scripts && typeof scripts === "object")
240
+ return Boolean(scripts[script]);
241
+ return false;
242
+ }
243
+ function parseYaml(content) {
244
+ return parse(content);
245
+ }
246
+ function determineDebugLevel(options) {
247
+ if (options?.verbose === true)
248
+ return true;
249
+ return app.debug === true;
250
+ }
251
+ function isIpv6(address) {
252
+ return address.family === "IPv6" || address.family === 6;
253
+ }
254
+ import {dump, load} from "js-yaml";
255
+ // src/macroable.ts
256
+ import {Macroable} from "macroable";
257
+ // src/math.ts
258
+ function rand(min, max) {
259
+ min = Math.ceil(min);
260
+ max = Math.floor(max);
261
+ return Math.floor(Math.random() * (max - min + 1)) + min;
262
+ }
263
+ import {
264
+ and,
265
+ createGenericProjection,
266
+ createProjection,
267
+ logicNot,
268
+ logicOr,
269
+ or,
270
+ useAbs,
271
+ useAverage,
272
+ useCeil,
273
+ useClamp,
274
+ useFloor,
275
+ useMath,
276
+ useMax,
277
+ useMin,
278
+ usePrecision,
279
+ useProjection,
280
+ useRound,
281
+ useSum,
282
+ useTrunc
283
+ } from "@vueuse/math";
284
+ var clamp = (n, min, max) => Math.min(max, Math.max(min, n));
285
+ // src/p.ts
286
+ import pLimit from "p-limit";
287
+ function p3(items, options) {
288
+ return new PInstance(items, options);
289
+ }
290
+ var VOID = Symbol("p-void");
291
+
292
+ class PInstance extends Promise {
293
+ items;
294
+ options;
295
+ promises = new Set;
296
+ get promise() {
297
+ let batch;
298
+ const items = [...Array.from(this.items), ...Array.from(this.promises)];
299
+ if (this.options?.concurrency) {
300
+ const limit = pLimit(this.options.concurrency);
301
+ batch = Promise.all(items.map((p4) => limit(() => p4)));
302
+ } else {
303
+ batch = Promise.all(items);
304
+ }
305
+ return batch.then((l) => l.filter((i) => i !== VOID));
306
+ }
307
+ constructor(items = [], options) {
308
+ super(() => {
309
+ });
310
+ this.items = items;
311
+ this.options = options;
312
+ }
313
+ add(...args) {
314
+ args.forEach((i) => {
315
+ this.promises.add(i);
316
+ });
317
+ }
318
+ map(fn) {
319
+ return new PInstance(Array.from(this.items).map(async (i, idx) => {
320
+ const v = await i;
321
+ if (v === VOID)
322
+ return VOID;
323
+ return fn(v, idx);
324
+ }), this.options);
325
+ }
326
+ filter(fn) {
327
+ return new PInstance(Array.from(this.items).map(async (i, idx) => {
328
+ const v = await i;
329
+ const r = await fn(v, idx);
330
+ if (!r)
331
+ return VOID;
332
+ return v;
333
+ }), this.options);
334
+ }
335
+ forEach(fn) {
336
+ return this.map(fn).then();
337
+ }
338
+ reduce(fn, initialValue) {
339
+ return this.promise.then((array) => array.reduce(fn, initialValue));
340
+ }
341
+ clear() {
342
+ this.promises.clear();
343
+ }
344
+ then(fn) {
345
+ const p4 = this.promise;
346
+ if (fn)
347
+ return p4.then(fn);
348
+ return p4;
349
+ }
350
+ catch(fn) {
351
+ return this.promise.catch(fn);
352
+ }
353
+ finally(fn) {
354
+ return this.promise.finally(fn);
355
+ }
356
+ }
357
+ // src/promise.ts
358
+ import {remove} from "@stacksjs/arrays";
359
+ function createSingletonPromise(fn) {
360
+ let _promise;
361
+ function wrapper() {
362
+ if (!_promise)
363
+ _promise = fn();
364
+ return _promise;
365
+ }
366
+ wrapper.reset = async () => {
367
+ const _prev = _promise;
368
+ _promise = undefined;
369
+ if (_prev)
370
+ await _prev;
371
+ };
372
+ return wrapper;
373
+ }
374
+ function createPromiseLock() {
375
+ const locks = [];
376
+ return {
377
+ async run(fn) {
378
+ const p4 = fn();
379
+ locks.push(p4);
380
+ try {
381
+ return await p4;
382
+ } finally {
383
+ remove(locks, p4);
384
+ }
385
+ },
386
+ async wait() {
387
+ await Promise.allSettled(locks);
388
+ },
389
+ isWaiting() {
390
+ return Boolean(locks.length);
391
+ },
392
+ clear() {
393
+ locks.length = 0;
394
+ }
395
+ };
396
+ }
397
+ function createControlledPromise() {
398
+ let resolve, reject;
399
+ const promise = new Promise((_resolve, _reject) => {
400
+ resolve = _resolve;
401
+ reject = _reject;
402
+ });
403
+ promise.resolve = resolve;
404
+ promise.reject = reject;
405
+ return promise;
406
+ }
407
+ // /Users/chrisbreuer/Code/stacks/node_modules/magic-regexp/dist/shared/magic-regexp.b7c910ac.mjs
408
+ var NO_WRAP_RE = /^(\(.*\)|\\?.)$/;
409
+ var wrap = (s) => {
410
+ const v = s.toString();
411
+ return NO_WRAP_RE.test(v) ? v : `(?:${v})`;
412
+ };
413
+ var GROUPED_AS_REPLACE_RE = /^(?:\(\?:(.+)\)|(\(?.+\)?))$/;
414
+ var GROUPED_REPLACE_RE = /^(?:\(\?:(.+)\)([?+*]|{[\d,]+})?|(.+))$/;
415
+ var createInput = (s) => {
416
+ const groupedAsFn = (key) => createInput(`(?<${key}>${`${s}`.replace(GROUPED_AS_REPLACE_RE, "$1$2")})`);
417
+ return {
418
+ toString: () => s.toString(),
419
+ and: Object.assign((...inputs) => createInput(`${s}${exactly(...inputs)}`), {
420
+ referenceTo: (groupName) => createInput(`${s}\\k<${groupName}>`)
421
+ }),
422
+ or: (...inputs) => createInput(`(?:${s}|${exactly(...inputs)})`),
423
+ after: (...input) => createInput(`(?<=${exactly(...input)})${s}`),
424
+ before: (...input) => createInput(`${s}(?=${exactly(...input)})`),
425
+ notAfter: (...input) => createInput(`(?<!${exactly(...input)})${s}`),
426
+ notBefore: (...input) => createInput(`${s}(?!${exactly(...input)})`),
427
+ times: Object.assign((number) => createInput(`${wrap(s)}{${number}}`), {
428
+ any: () => createInput(`${wrap(s)}*`),
429
+ atLeast: (min) => createInput(`${wrap(s)}{${min},}`),
430
+ atMost: (max) => createInput(`${wrap(s)}{0,${max}}`),
431
+ between: (min, max) => createInput(`${wrap(s)}{${min},${max}}`)
432
+ }),
433
+ optionally: () => createInput(`${wrap(s)}?`),
434
+ as: groupedAsFn,
435
+ groupedAs: groupedAsFn,
436
+ grouped: () => createInput(`${s}`.replace(GROUPED_REPLACE_RE, "($1$3)$2")),
437
+ at: {
438
+ lineStart: () => createInput(`^${s}`),
439
+ lineEnd: () => createInput(`${s}\$`)
440
+ }
441
+ };
442
+ };
443
+ var ESCAPE_REPLACE_RE = /[.*+?^${}()|[\]\\/]/g;
444
+ var charIn = (chars) => createInput(`[${chars.replace(/[-\\^\]]/g, "\\$&")}]`);
445
+ var charNotIn = (chars) => createInput(`[^${chars.replace(/[-\\^\]]/g, "\\$&")}]`);
446
+ var anyOf = (...inputs) => createInput(`(?:${inputs.map((a) => exactly(a)).join("|")})`);
447
+ var char = createInput(".");
448
+ var word = createInput("\\b\\w+\\b");
449
+ var wordChar = createInput("\\w");
450
+ var wordBoundary = createInput("\\b");
451
+ var digit = createInput("\\d");
452
+ var whitespace = createInput("\\s");
453
+ var letter = Object.assign(createInput("[a-zA-Z]"), {
454
+ lowercase: createInput("[a-z]"),
455
+ uppercase: createInput("[A-Z]")
456
+ });
457
+ var tab = createInput("\\t");
458
+ var linefeed = createInput("\\n");
459
+ var carriageReturn = createInput("\\r");
460
+ var not = {
461
+ word: createInput("\\W+"),
462
+ wordChar: createInput("\\W"),
463
+ wordBoundary: createInput("\\B"),
464
+ digit: createInput("\\D"),
465
+ whitespace: createInput("\\S"),
466
+ letter: Object.assign(createInput("[^a-zA-Z]"), {
467
+ lowercase: createInput("[^a-z]"),
468
+ uppercase: createInput("[^A-Z]")
469
+ }),
470
+ tab: createInput("[^\\t]"),
471
+ linefeed: createInput("[^\\n]"),
472
+ carriageReturn: createInput("[^\\r]")
473
+ };
474
+ var maybe = (...inputs) => createInput(`${wrap(exactly(...inputs))}?`);
475
+ var exactly = (...inputs) => createInput(inputs.map((input) => typeof input === "string" ? input.replace(ESCAPE_REPLACE_RE, "\\$&") : input).join(""));
476
+ var oneOrMore = (...inputs) => createInput(`${wrap(exactly(...inputs))}+`);
477
+ var withIndices = "d";
478
+ var caseInsensitive = "i";
479
+ var global = "g";
480
+ var multiline = "m";
481
+ var dotAll = "s";
482
+ var unicode = "u";
483
+ var sticky = "y";
484
+
485
+ // /Users/chrisbreuer/Code/stacks/node_modules/magic-regexp/dist/index.mjs
486
+ var createRegExp = (...inputs) => {
487
+ const flags = inputs.length > 1 && (Array.isArray(inputs[inputs.length - 1]) || inputs[inputs.length - 1] instanceof Set) ? inputs.pop() : undefined;
488
+ return new RegExp(exactly(...inputs).toString(), [...flags || ""].join(""));
489
+ };
490
+ // src/sleep.ts
491
+ function sleep(ms) {
492
+ return new Promise((resolve) => setTimeout(resolve, ms));
493
+ }
494
+ function wait(ms) {
495
+ return new Promise((resolve) => setTimeout(resolve, ms));
496
+ }
497
+ function delay(ms) {
498
+ return new Promise((resolve) => setTimeout(resolve, ms));
499
+ }
500
+ function waitUntil(condition, interval = 1000) {
501
+ return new Promise((resolve) => {
502
+ const check = setInterval(() => {
503
+ if (condition()) {
504
+ clearInterval(check);
505
+ resolve();
506
+ }
507
+ }, interval);
508
+ });
509
+ }
510
+ function waitWhile(condition, interval = 1000) {
511
+ return new Promise((resolve) => {
512
+ const check = setInterval(() => {
513
+ if (!condition()) {
514
+ clearInterval(check);
515
+ resolve();
516
+ }
517
+ }, interval);
518
+ });
519
+ }
520
+ // src/throttle.ts
521
+ function throttle(fn, wait2 = 300) {
522
+ let inThrottle;
523
+ let lastFn;
524
+ let lastTime;
525
+ return function(...args) {
526
+ if (!inThrottle) {
527
+ fn.apply(this, args);
528
+ lastTime = Date.now();
529
+ inThrottle = true;
530
+ } else {
531
+ clearTimeout(lastFn);
532
+ lastFn = setTimeout(() => {
533
+ if (Date.now() - lastTime >= wait2) {
534
+ fn.apply(this, args);
535
+ lastTime = Date.now();
536
+ }
537
+ }, Math.max(wait2 - (Date.now() - lastTime), 0));
538
+ }
539
+ };
540
+ }
541
+ // src/vendors.ts
542
+ import {
543
+ asyncComputed,
544
+ breakpointsAntDesign,
545
+ breakpointsBootstrapV5,
546
+ breakpointsMasterCss,
547
+ breakpointsQuasar,
548
+ breakpointsSematic,
549
+ breakpointsTailwind,
550
+ breakpointsVuetify,
551
+ cloneFnJSON,
552
+ computedAsync,
553
+ computedInject,
554
+ createFetch,
555
+ createReusableTemplate,
556
+ createTemplatePromise,
557
+ createUnrefFn,
558
+ customStorageEventName,
559
+ defaultDocument,
560
+ defaultLocation,
561
+ defaultNavigator,
562
+ defaultWindow,
563
+ executeTransition,
564
+ formatTimeAgo,
565
+ getSSRHandler,
566
+ mapGamepadToXbox360Controller,
567
+ onClickOutside,
568
+ onKeyDown,
569
+ onKeyPressed,
570
+ onKeyStroke,
571
+ onKeyUp,
572
+ onLongPress,
573
+ onStartTyping,
574
+ setSSRHandler,
575
+ templateRef,
576
+ unrefElement,
577
+ useActiveElement,
578
+ useAnimate,
579
+ useAsyncQueue,
580
+ useAsyncState,
581
+ useBase64,
582
+ useBattery,
583
+ useBluetooth,
584
+ useBreakpoints,
585
+ useBroadcastChannel,
586
+ useBrowserLocation,
587
+ useCached,
588
+ useClipboard,
589
+ useCloned,
590
+ useColorMode,
591
+ useConfirmDialog,
592
+ useCssVar,
593
+ useCurrentElement,
594
+ useCycleList,
595
+ useDark,
596
+ useDebouncedRefHistory,
597
+ useDeviceMotion,
598
+ useDeviceOrientation,
599
+ useDevicePixelRatio,
600
+ useDevicesList,
601
+ useDisplayMedia,
602
+ useDocumentVisibility,
603
+ useDraggable,
604
+ useDropZone,
605
+ useElementBounding,
606
+ useElementByPoint,
607
+ useElementHover,
608
+ useElementSize,
609
+ useElementVisibility,
610
+ useEventBus,
611
+ useEventListener,
612
+ useEventSource,
613
+ useEyeDropper,
614
+ useFavicon,
615
+ useFetch,
616
+ useFileDialog,
617
+ useFileSystemAccess,
618
+ useFocus,
619
+ useFocusWithin,
620
+ useFps,
621
+ useFullscreen,
622
+ useGamepad,
623
+ useGeolocation,
624
+ useIdle,
625
+ useImage,
626
+ useInfiniteScroll,
627
+ useIntersectionObserver,
628
+ useKeyModifier,
629
+ useLocalStorage,
630
+ useMagicKeys,
631
+ useManualRefHistory,
632
+ useMediaControls,
633
+ useMediaQuery,
634
+ useMemoize,
635
+ useMemory,
636
+ useMounted,
637
+ useMouse,
638
+ useMouseInElement,
639
+ useMousePressed,
640
+ useMutationObserver,
641
+ useNavigatorLanguage,
642
+ useNetwork,
643
+ useObjectUrl,
644
+ useOffsetPagination,
645
+ useOnline,
646
+ usePageLeave,
647
+ useParallax,
648
+ useParentElement,
649
+ usePerformanceObserver,
650
+ usePermission,
651
+ usePointer,
652
+ usePointerLock,
653
+ usePointerSwipe,
654
+ usePreferredColorScheme,
655
+ usePreferredContrast,
656
+ usePreferredDark,
657
+ usePreferredLanguages,
658
+ usePreferredReducedMotion,
659
+ usePrevious,
660
+ useRafFn,
661
+ useRefHistory,
662
+ useResizeObserver,
663
+ useScreenOrientation,
664
+ useScreenSafeArea,
665
+ useScriptTag,
666
+ useScroll,
667
+ useScrollLock,
668
+ useSessionStorage,
669
+ useShare,
670
+ useSorted,
671
+ useSpeechRecognition,
672
+ useSpeechSynthesis,
673
+ useStepper,
674
+ useStorage,
675
+ useStorageAsync,
676
+ useStyleTag,
677
+ useSupported,
678
+ useSwipe,
679
+ useTemplateRefsList,
680
+ useTextDirection,
681
+ useTextSelection,
682
+ useTextareaAutosize,
683
+ useThrottledRefHistory,
684
+ useTimeAgo,
685
+ useTimeoutPoll,
686
+ useTimestamp,
687
+ useTitle,
688
+ useTransition,
689
+ useToggle,
690
+ useUrlSearchParams,
691
+ useUserMedia,
692
+ useVModel,
693
+ useVModels,
694
+ useVibrate,
695
+ useVirtualList,
696
+ useWakeLock,
697
+ useWebNotification,
698
+ useWebSocket,
699
+ useWebWorker,
700
+ useWebWorkerFn,
701
+ useWindowFocus,
702
+ useWindowScroll,
703
+ useWindowSize,
704
+ useDateFormat,
705
+ useNow,
706
+ watchArray,
707
+ watchAtMost,
708
+ watchDebounced,
709
+ watchDeep,
710
+ watchIgnorable,
711
+ watchImmediate,
712
+ watchOnce,
713
+ watchPausable,
714
+ watchThrottled,
715
+ watchTriggerable,
716
+ watchWithFilter,
717
+ whenever,
718
+ syncRef,
719
+ syncRefs,
720
+ throttledRef,
721
+ throttledWatch,
722
+ toReactive,
723
+ tryOnBeforeMount,
724
+ tryOnBeforeUnmount,
725
+ tryOnMounted,
726
+ tryOnScopeDispose,
727
+ tryOnUnmounted,
728
+ until,
729
+ isDefined,
730
+ ignorableWatch,
731
+ extendRef,
732
+ eagerComputed,
733
+ debouncedRef,
734
+ debouncedWatch,
735
+ createReactiveFn,
736
+ createSharedComposable,
737
+ createInjectionState,
738
+ createGlobalState,
739
+ createEventHook,
740
+ controlledRef,
741
+ controlledComputed,
742
+ computedEager,
743
+ computedWithControl,
744
+ autoResetRef,
745
+ injectLocal,
746
+ makeDestructurable,
747
+ pausableWatch,
748
+ provideLocal,
749
+ reactify,
750
+ reactifyObject,
751
+ reactiveComputed,
752
+ reactiveOmit,
753
+ reactivePick,
754
+ refAutoReset,
755
+ refDebounced,
756
+ refDefault,
757
+ refThrottled,
758
+ refWithControl,
759
+ resolveRef,
760
+ resolveUnref,
761
+ useArrayDifference,
762
+ useArrayEvery,
763
+ useArrayFilter,
764
+ useArrayFind,
765
+ useArrayFindIndex,
766
+ useArrayIncludes,
767
+ useArrayMap,
768
+ useArrayReduce,
769
+ useArraySome,
770
+ useArrayUnique,
771
+ useClipboardItems,
772
+ useCounter,
773
+ useDebounce,
774
+ useDebounceFn,
775
+ useInterval,
776
+ useIntervalFn,
777
+ useLastChanged,
778
+ useThrottle,
779
+ useThrottleFn,
780
+ useTimeout,
781
+ useTimeoutFn,
782
+ useToNumber,
783
+ useToString
784
+ } from "@vueuse/core";
785
+ import {
786
+ Head,
787
+ HeadVuePlugin,
788
+ createHead,
789
+ renderHeadToString
790
+ } from "@vueuse/head";
791
+
792
+ // /Users/chrisbreuer/Code/stacks/node_modules/pretty-bytes/index.js
793
+ var BYTE_UNITS = [
794
+ "B",
795
+ "kB",
796
+ "MB",
797
+ "GB",
798
+ "TB",
799
+ "PB",
800
+ "EB",
801
+ "ZB",
802
+ "YB"
803
+ ];
804
+ var BIBYTE_UNITS = [
805
+ "B",
806
+ "KiB",
807
+ "MiB",
808
+ "GiB",
809
+ "TiB",
810
+ "PiB",
811
+ "EiB",
812
+ "ZiB",
813
+ "YiB"
814
+ ];
815
+ var BIT_UNITS = [
816
+ "b",
817
+ "kbit",
818
+ "Mbit",
819
+ "Gbit",
820
+ "Tbit",
821
+ "Pbit",
822
+ "Ebit",
823
+ "Zbit",
824
+ "Ybit"
825
+ ];
826
+ var BIBIT_UNITS = [
827
+ "b",
828
+ "kibit",
829
+ "Mibit",
830
+ "Gibit",
831
+ "Tibit",
832
+ "Pibit",
833
+ "Eibit",
834
+ "Zibit",
835
+ "Yibit"
836
+ ];
837
+ var toLocaleString = (number, locale, options) => {
838
+ let result = number;
839
+ if (typeof locale === "string" || Array.isArray(locale)) {
840
+ result = number.toLocaleString(locale, options);
841
+ } else if (locale === true || options !== undefined) {
842
+ result = number.toLocaleString(undefined, options);
843
+ }
844
+ return result;
845
+ };
846
+ function prettyBytes(number, options) {
847
+ if (!Number.isFinite(number)) {
848
+ throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);
849
+ }
850
+ options = {
851
+ bits: false,
852
+ binary: false,
853
+ space: true,
854
+ ...options
855
+ };
856
+ const UNITS = options.bits ? options.binary ? BIBIT_UNITS : BIT_UNITS : options.binary ? BIBYTE_UNITS : BYTE_UNITS;
857
+ const separator = options.space ? " " : "";
858
+ if (options.signed && number === 0) {
859
+ return ` 0${separator}${UNITS[0]}`;
860
+ }
861
+ const isNegative = number < 0;
862
+ const prefix = isNegative ? "-" : options.signed ? "+" : "";
863
+ if (isNegative) {
864
+ number = -number;
865
+ }
866
+ let localeOptions;
867
+ if (options.minimumFractionDigits !== undefined) {
868
+ localeOptions = { minimumFractionDigits: options.minimumFractionDigits };
869
+ }
870
+ if (options.maximumFractionDigits !== undefined) {
871
+ localeOptions = { maximumFractionDigits: options.maximumFractionDigits, ...localeOptions };
872
+ }
873
+ if (number < 1) {
874
+ const numberString2 = toLocaleString(number, options.locale, localeOptions);
875
+ return prefix + numberString2 + separator + UNITS[0];
876
+ }
877
+ const exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);
878
+ number /= (options.binary ? 1024 : 1000) ** exponent;
879
+ if (!localeOptions) {
880
+ number = number.toPrecision(3);
881
+ }
882
+ const numberString = toLocaleString(Number(number), options.locale, localeOptions);
883
+ const unit = UNITS[exponent];
884
+ return prefix + numberString + separator + unit;
885
+ }
886
+ // package.json
887
+ var version = "0.58.19";
888
+ export {
889
+ wordChar,
890
+ wordBoundary,
891
+ word,
892
+ withIndices,
893
+ whitespace,
894
+ whenever,
895
+ websiteSourceHash,
896
+ watchWithFilter,
897
+ watchTriggerable,
898
+ watchThrottled,
899
+ watchPausable,
900
+ watchOnce,
901
+ watchImmediate,
902
+ watchIgnorable,
903
+ watchDeep,
904
+ watchDebounced,
905
+ watchAtMost,
906
+ watchArray,
907
+ waitWhile,
908
+ waitUntil,
909
+ wait,
910
+ version,
911
+ useWindowSize,
912
+ useWindowScroll,
913
+ useWindowFocus,
914
+ useWebWorkerFn,
915
+ useWebWorker,
916
+ useWebSocket,
917
+ useWebNotification,
918
+ useWakeLock,
919
+ useVirtualList,
920
+ useVibrate,
921
+ useVModels,
922
+ useVModel,
923
+ useUserMedia,
924
+ useUrlSearchParams,
925
+ useTrunc,
926
+ useTransition,
927
+ useToggle,
928
+ useToString,
929
+ useToNumber,
930
+ useTitle,
931
+ useTimestamp,
932
+ useTimeoutPoll,
933
+ useTimeoutFn,
934
+ useTimeout,
935
+ useTimeAgo,
936
+ useThrottledRefHistory,
937
+ useThrottleFn,
938
+ useThrottle,
939
+ useTextareaAutosize,
940
+ useTextSelection,
941
+ useTextDirection,
942
+ useTemplateRefsList,
943
+ useSwipe,
944
+ useSupported,
945
+ useSum,
946
+ useStyleTag,
947
+ useStorageAsync,
948
+ useStorage,
949
+ useStepper,
950
+ useSpeechSynthesis,
951
+ useSpeechRecognition,
952
+ useSorted,
953
+ useShare,
954
+ useSessionStorage,
955
+ useScrollLock,
956
+ useScroll,
957
+ useScriptTag,
958
+ useScreenSafeArea,
959
+ useScreenOrientation,
960
+ useRound,
961
+ useResizeObserver,
962
+ useRefHistory,
963
+ useRafFn,
964
+ useProjection,
965
+ usePrevious,
966
+ usePreferredReducedMotion,
967
+ usePreferredLanguages,
968
+ usePreferredDark,
969
+ usePreferredContrast,
970
+ usePreferredColorScheme,
971
+ usePrecision,
972
+ usePointerSwipe,
973
+ usePointerLock,
974
+ usePointer,
975
+ usePermission,
976
+ usePerformanceObserver,
977
+ useParentElement,
978
+ useParallax,
979
+ usePageLeave,
980
+ useOnline,
981
+ useOffsetPagination,
982
+ useObjectUrl,
983
+ useNow,
984
+ useNetwork,
985
+ useNavigatorLanguage,
986
+ useMutationObserver,
987
+ useMousePressed,
988
+ useMouseInElement,
989
+ useMouse,
990
+ useMounted,
991
+ useMin,
992
+ useMemory,
993
+ useMemoize,
994
+ useMediaQuery,
995
+ useMediaControls,
996
+ useMax,
997
+ useMath,
998
+ useManualRefHistory,
999
+ useMagicKeys,
1000
+ useLocalStorage,
1001
+ useLastChanged,
1002
+ useKeyModifier,
1003
+ useIntervalFn,
1004
+ useInterval,
1005
+ useIntersectionObserver,
1006
+ useInfiniteScroll,
1007
+ useImage,
1008
+ useIdle,
1009
+ useGeolocation,
1010
+ useGamepad,
1011
+ useFullscreen,
1012
+ useFps,
1013
+ useFocusWithin,
1014
+ useFocus,
1015
+ useFloor,
1016
+ useFileSystemAccess,
1017
+ useFileDialog,
1018
+ useFetch,
1019
+ useFavicon,
1020
+ useEyeDropper,
1021
+ useEventSource,
1022
+ useEventListener,
1023
+ useEventBus,
1024
+ useElementVisibility,
1025
+ useElementSize,
1026
+ useElementHover,
1027
+ useElementByPoint,
1028
+ useElementBounding,
1029
+ useDropZone,
1030
+ useDraggable,
1031
+ useDocumentVisibility,
1032
+ useDisplayMedia,
1033
+ useDevicesList,
1034
+ useDevicePixelRatio,
1035
+ useDeviceOrientation,
1036
+ useDeviceMotion,
1037
+ useDebouncedRefHistory,
1038
+ useDebounceFn,
1039
+ useDebounce,
1040
+ useDateFormat,
1041
+ useDark,
1042
+ useCycleList,
1043
+ useCurrentElement,
1044
+ useCssVar,
1045
+ useCounter,
1046
+ useConfirmDialog,
1047
+ useColorMode,
1048
+ useCloned,
1049
+ useClipboardItems,
1050
+ useClipboard,
1051
+ useClamp,
1052
+ useCeil,
1053
+ useCached,
1054
+ useBrowserLocation,
1055
+ useBroadcastChannel,
1056
+ useBreakpoints,
1057
+ useBluetooth,
1058
+ useBattery,
1059
+ useBase64,
1060
+ useAverage,
1061
+ useAsyncState,
1062
+ useAsyncQueue,
1063
+ useArrayUnique,
1064
+ useArraySome,
1065
+ useArrayReduce,
1066
+ useArrayMap,
1067
+ useArrayIncludes,
1068
+ useArrayFindIndex,
1069
+ useArrayFind,
1070
+ useArrayFilter,
1071
+ useArrayEvery,
1072
+ useArrayDifference,
1073
+ useAnimate,
1074
+ useActiveElement,
1075
+ useAbs,
1076
+ until,
1077
+ unrefElement,
1078
+ unicode,
1079
+ tryOnUnmounted,
1080
+ tryOnScopeDispose,
1081
+ tryOnMounted,
1082
+ tryOnBeforeUnmount,
1083
+ tryOnBeforeMount,
1084
+ trimScale,
1085
+ toUnits,
1086
+ toString,
1087
+ toSnapshot,
1088
+ toReactive,
1089
+ toDecimal,
1090
+ throttledWatch,
1091
+ throttledRef,
1092
+ throttle,
1093
+ templateRef,
1094
+ tap,
1095
+ tab,
1096
+ syncRefs,
1097
+ syncRef,
1098
+ subtract,
1099
+ sticky,
1100
+ sleep,
1101
+ setSSRHandler,
1102
+ setEnvValue,
1103
+ runNpmScript,
1104
+ rimraf,
1105
+ resolveUnref,
1106
+ resolveRef,
1107
+ renderHeadToString,
1108
+ refWithControl,
1109
+ refThrottled,
1110
+ refDefault,
1111
+ refDebounced,
1112
+ refAutoReset,
1113
+ prettyBytes as readableSize,
1114
+ reactivePick,
1115
+ reactiveOmit,
1116
+ reactiveComputed,
1117
+ reactifyObject,
1118
+ reactify,
1119
+ rand,
1120
+ provideLocal,
1121
+ pausableWatch,
1122
+ parseYaml,
1123
+ packageManager,
1124
+ p3 as p,
1125
+ originRequestFunctionHash,
1126
+ or,
1127
+ oneOrMore,
1128
+ onStartTyping,
1129
+ onLongPress,
1130
+ onKeyUp,
1131
+ onKeyStroke,
1132
+ onKeyPressed,
1133
+ onKeyDown,
1134
+ onClickOutside,
1135
+ notUndefined,
1136
+ notNullish,
1137
+ not,
1138
+ normalizeScale,
1139
+ noNull,
1140
+ multiply,
1141
+ multiline,
1142
+ dinero2 as money,
1143
+ minimum,
1144
+ maybe,
1145
+ maximum,
1146
+ mapGamepadToXbox360Controller,
1147
+ makeDestructurable,
1148
+ loop,
1149
+ logicOr,
1150
+ logicNot,
1151
+ load as loadYaml,
1152
+ linefeed,
1153
+ letter,
1154
+ lessThanOrEqual,
1155
+ lessThan,
1156
+ isZero,
1157
+ isTruthy,
1158
+ isOptionalString,
1159
+ isManifest,
1160
+ isIpv6,
1161
+ isGitClean,
1162
+ isDefined,
1163
+ isDeepEqual,
1164
+ isAppKeySet,
1165
+ installIfVersionMismatch,
1166
+ injectLocal,
1167
+ initProject,
1168
+ ignorableWatch,
1169
+ haveSameCurrency,
1170
+ haveSameAmount,
1171
+ hasSubUnits,
1172
+ hasScript,
1173
+ greaterThanOrEqual,
1174
+ greaterThan,
1175
+ global,
1176
+ getSSRHandler,
1177
+ getExportsSize,
1178
+ frameworkVersion,
1179
+ formatTimeAgo,
1180
+ extendRef,
1181
+ executeTransition,
1182
+ exactly,
1183
+ equal,
1184
+ ensureProjectIsInitialized,
1185
+ eagerComputed,
1186
+ dump as dumpYaml,
1187
+ dotAll,
1188
+ dinero,
1189
+ digit,
1190
+ determineResetPreset,
1191
+ determineDebugLevel,
1192
+ delay,
1193
+ defineUi,
1194
+ defineStorage,
1195
+ defineSms,
1196
+ defineServices,
1197
+ defineSearchEngine,
1198
+ defineQueue,
1199
+ definePayment,
1200
+ defineNotification,
1201
+ defineLibrary,
1202
+ defineJob,
1203
+ defineHashing,
1204
+ defineGit,
1205
+ defineEmailConfig,
1206
+ defineEmail,
1207
+ defineDns,
1208
+ defineDependencies,
1209
+ defineDatabase,
1210
+ defineCronJob,
1211
+ defineCli,
1212
+ defineChat,
1213
+ defineCdn,
1214
+ defineCache,
1215
+ defineApp,
1216
+ defaultWindow,
1217
+ defaultNavigator,
1218
+ defaultLocation,
1219
+ defaultDocument,
1220
+ debouncedWatch,
1221
+ debouncedRef,
1222
+ debounce,
1223
+ customStorageEventName,
1224
+ dinero3 as currency,
1225
+ createUnrefFn,
1226
+ createTemplatePromise,
1227
+ createSingletonPromise,
1228
+ createSharedComposable,
1229
+ createReusableTemplate,
1230
+ createRegExp,
1231
+ createReactiveFn,
1232
+ createPromiseLock,
1233
+ createProjection,
1234
+ createInjectionState,
1235
+ createHead,
1236
+ createGlobalState,
1237
+ createGenericProjection,
1238
+ createFetch,
1239
+ createEventHook,
1240
+ createControlledPromise,
1241
+ convert,
1242
+ controlledRef,
1243
+ controlledComputed,
1244
+ computedWithControl,
1245
+ computedInject,
1246
+ computedEager,
1247
+ computedAsync,
1248
+ compare,
1249
+ cloneFnJSON,
1250
+ cleanProject,
1251
+ clamp,
1252
+ charNotIn,
1253
+ charIn,
1254
+ char,
1255
+ caseInsensitive,
1256
+ carriageReturn,
1257
+ breakpointsVuetify,
1258
+ breakpointsTailwind,
1259
+ breakpointsSematic,
1260
+ breakpointsQuasar,
1261
+ breakpointsMasterCss,
1262
+ breakpointsBootstrapV5,
1263
+ breakpointsAntDesign,
1264
+ batchInvoke,
1265
+ autoResetRef,
1266
+ asyncComputed,
1267
+ assert,
1268
+ anyOf,
1269
+ and,
1270
+ allocate,
1271
+ add,
1272
+ USD,
1273
+ Macroable,
1274
+ HeadVuePlugin,
1275
+ Head
1276
+ };