@stacksjs/config 0.59.11 → 0.61.1

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 CHANGED
@@ -93,6 +93,11 @@ __export(exports_config, {
93
93
  return git2;
94
94
  }
95
95
  },
96
+ errors: () => {
97
+ {
98
+ return errors2;
99
+ }
100
+ },
96
101
  email: () => {
97
102
  {
98
103
  return email2;
@@ -108,6 +113,11 @@ __export(exports_config, {
108
113
  return dns2;
109
114
  }
110
115
  },
116
+ determineAppEnv: () => {
117
+ {
118
+ return determineAppEnv;
119
+ }
120
+ },
111
121
  defineUi: () => {
112
122
  {
113
123
  return defineUi;
@@ -278,9 +288,14 @@ __export(exports_config, {
278
288
  return app2;
279
289
  }
280
290
  },
291
+ api: () => {
292
+ {
293
+ return api;
294
+ }
295
+ },
281
296
  analytics: () => {
282
297
  {
283
- return analytics;
298
+ return analytics2;
284
299
  }
285
300
  },
286
301
  ai: () => {
@@ -291,7 +306,7 @@ __export(exports_config, {
291
306
  });
292
307
 
293
308
  // src/defaults.ts
294
- import {commandsPath, projectStoragePath} from "@stacksjs/path";
309
+ import {commandsPath, userDatabasePath} from "@stacksjs/path";
295
310
  var defaults_default = {
296
311
  ai: {
297
312
  deploy: false,
@@ -311,6 +326,17 @@ var defaults_default = {
311
326
  analytics: {
312
327
  driver: undefined
313
328
  },
329
+ api: {
330
+ prefix: "api",
331
+ middleware: ["auth"],
332
+ routes: {
333
+ index: true,
334
+ show: true,
335
+ store: true,
336
+ update: true,
337
+ destroy: true
338
+ }
339
+ },
314
340
  app: {
315
341
  name: "Stacks",
316
342
  description: "A Stacks application.",
@@ -382,25 +408,18 @@ var defaults_default = {
382
408
  samplingRate: 2
383
409
  }
384
410
  },
385
- api: {
386
- deploy: false,
387
- prefix: "api",
388
- description: "Stacks API",
389
- prewarm: true,
390
- memorySize: 512,
391
- timeout: 30
392
- },
393
411
  fileSystem: false
394
412
  },
395
413
  database: {
396
414
  default: "sqlite",
397
- name: "stacks",
398
415
  connections: {
399
416
  sqlite: {
400
- database: projectStoragePath("framework/database/stacks.sqlite"),
417
+ database: userDatabasePath("stacks.sqlite"),
401
418
  prefix: ""
402
419
  }
403
- }
420
+ },
421
+ migrations: "migrations",
422
+ migrationLocks: "migration_locks"
404
423
  },
405
424
  dns: {
406
425
  driver: "aws",
@@ -437,6 +456,74 @@ var defaults_default = {
437
456
  scan: true
438
457
  }
439
458
  },
459
+ errors: {
460
+ messages: {
461
+ string: "The {{ field }} field must be a string",
462
+ email: "The {{ field }} field must be a valid email address",
463
+ regex: "The {{ field }} field format is invalid",
464
+ url: "The {{ field }} field must be a valid URL",
465
+ activeUrl: "The {{ field }} field must be a valid URL",
466
+ alpha: "The {{ field }} field must contain only letters",
467
+ alphaNumeric: "The {{ field }} field must contain only letters and numbers",
468
+ minLength: "The {{ field }} field must have at least {{ min }} characters",
469
+ maxLength: "The {{ field }} field must not be greater than {{ max }} characters",
470
+ fixedLength: "The {{ field }} field must be {{ size }} characters long",
471
+ confirmed: "The {{ field }} field and {{ otherField }} field must be the same",
472
+ endsWith: "The {{ field }} field must end with {{ substring }}",
473
+ startsWith: "The {{ field }} field must start with {{ substring }}",
474
+ sameAs: "The {{ field }} field and {{ otherField }} field must be the same",
475
+ notSameAs: "The {{ field }} field and {{ otherField }} field must be different",
476
+ in: "The selected {{ field }} is invalid",
477
+ notIn: "The selected {{ field }} is invalid",
478
+ ipAddress: "The {{ field }} field must be a valid IP address",
479
+ uuid: "The {{ field }} field must be a valid UUID",
480
+ ascii: "The {{ field }} field must only contain ASCII characters",
481
+ creditCard: "The {{ field }} field must be a valid {{ providersList }} card number",
482
+ hexCode: "The {{ field }} field must be a valid hex color code",
483
+ iban: "The {{ field }} field must be a valid IBAN number",
484
+ jwt: "The {{ field }} field must be a valid JWT token",
485
+ coordinates: "The {{ field }} field must contain latitude and longitude coordinates",
486
+ mobile: "The {{ field }} field must be a valid mobile phone number",
487
+ passport: "The {{ field }} field must be a valid passport number",
488
+ postalCode: "The {{ field }} field must be a valid postal code",
489
+ boolean: "The value must be a boolean",
490
+ number: "The {{ field }} field must be a number",
491
+ min: "The {{ field }} field must be at least {{ min }}",
492
+ max: "The {{ field }} field must not be greater than {{ max }}",
493
+ range: "The {{ field }} field must be between {{ min }} and {{ max }}",
494
+ positive: "The {{ field }} field must be positive",
495
+ negative: "The {{ field }} field must be negative",
496
+ decimal: "The {{ field }} field must have {{ digits }} decimal places",
497
+ withoutDecimals: "The {{ field }} field must not have decimal places",
498
+ date: "The {{ field }} field must be a datetime value",
499
+ "date.equals": "The {{ field }} field must be a date equal to {{ expectedValue }}",
500
+ "date.after": "The {{ field }} field must be a date after {{ expectedValue }}",
501
+ "date.before": "The {{ field }} field must be a date before {{ expectedValue }}",
502
+ "date.afterOrEqual": "The {{ field }} field must be a date after or equal to {{ expectedValue }}",
503
+ "date.beforeOrEqual": "The {{ field }} field must be a date before or equal to {{ expectedValue }}",
504
+ "date.sameAs": "The {{ field }} field and {{ otherField }} field must be the same",
505
+ "date.notSameAs": "The {{ field }} field and {{ otherField }} field must be different",
506
+ "date.afterField": "The {{ field }} field must be a date after {{ otherField }}",
507
+ accepted: "The {{ field }} field must be accepted",
508
+ enum: "The selected {{ field }} is invalid",
509
+ literal: "The {{ field }} field must be {{ expectedValue }}",
510
+ object: "The {{ field }} field must be an object",
511
+ record: "The {{ field }} field must be an object",
512
+ "record.minLength": "The {{ field }} field must have at least {{ min }} items",
513
+ "record.maxLength": "The {{ field }} field must not have more than {{ max }} items",
514
+ "record.fixedLength": "The {{ field }} field must contain {{ size }} items",
515
+ array: "The {{ field }} field must be an array",
516
+ "array.minLength": "The {{ field }} field must have at least {{ min }} items",
517
+ "array.maxLength": "The {{ field }} field must not have more than {{ max }} items",
518
+ "array.fixedLength": "The {{ field }} field must contain {{ size }} items",
519
+ notEmpty: "The {{ field }} field must not be empty",
520
+ distinct: "The {{ field }} field has duplicate values",
521
+ tuple: "The {{ field }} field must be an array",
522
+ union: "Invalid value provided for {{ field }} field",
523
+ unionGroup: "Invalid value provided for {{ field }} field",
524
+ unionOfTypes: "Invalid value provided for {{ field }} field"
525
+ }
526
+ },
440
527
  git: {
441
528
  hooks: {
442
529
  "pre-commit": "lint-staged"
@@ -495,17 +582,57 @@ var defaults_default = {
495
582
  confirmCommit: "Are you sure you want to proceed with the commit above?"
496
583
  },
497
584
  types: [
498
- { value: "feat", name: "feat: \u2728 A new feature", emoji: ":sparkles:" },
585
+ {
586
+ value: "feat",
587
+ name: "feat: \u2728 A new feature",
588
+ emoji: ":sparkles:"
589
+ },
499
590
  { value: "fix", name: "fix: \uD83D\uDC1B A bug fix", emoji: ":bug:" },
500
- { value: "docs", name: "docs: \uD83D\uDCDD Documentation only changes", emoji: ":memo:" },
501
- { value: "style", name: "style: \uD83D\uDC84 Changes that do not affect the meaning of the code", emoji: ":lipstick:" },
502
- { value: "refactor", name: "refactor: \u267B\uFE0F A code change that neither fixes a bug nor adds a feature", emoji: ":recycle:" },
503
- { value: "perf", name: "perf: \u26A1\uFE0F A code change that improves performance", emoji: ":zap:" },
504
- { value: "test", name: "test: \u2705 Adding missing tests or adjusting existing tests", emoji: ":white_check_mark:" },
505
- { value: "build", name: "build: \uD83D\uDCE6\uFE0F Changes that affect the build system or external dependencies", emoji: ":package:" },
506
- { value: "ci", name: "ci: \uD83C\uDFA1 Changes to our CI configuration files and scripts", emoji: ":ferris_wheel:" },
507
- { value: "chore", name: "chore: \uD83D\uDD28 Other changes that don\u2019t modify src or test files", emoji: ":hammer:" },
508
- { value: "revert", name: "revert: \u23EA\uFE0F Reverts a previous commit", emoji: ":rewind:" }
591
+ {
592
+ value: "docs",
593
+ name: "docs: \uD83D\uDCDD Documentation only changes",
594
+ emoji: ":memo:"
595
+ },
596
+ {
597
+ value: "style",
598
+ name: "style: \uD83D\uDC84 Changes that do not affect the meaning of the code",
599
+ emoji: ":lipstick:"
600
+ },
601
+ {
602
+ value: "refactor",
603
+ name: "refactor: \u267B\uFE0F A code change that neither fixes a bug nor adds a feature",
604
+ emoji: ":recycle:"
605
+ },
606
+ {
607
+ value: "perf",
608
+ name: "perf: \u26A1\uFE0F A code change that improves performance",
609
+ emoji: ":zap:"
610
+ },
611
+ {
612
+ value: "test",
613
+ name: "test: \u2705 Adding missing tests or adjusting existing tests",
614
+ emoji: ":white_check_mark:"
615
+ },
616
+ {
617
+ value: "build",
618
+ name: "build: \uD83D\uDCE6\uFE0F Changes that affect the build system or external dependencies",
619
+ emoji: ":package:"
620
+ },
621
+ {
622
+ value: "ci",
623
+ name: "ci: \uD83C\uDFA1 Changes to our CI configuration files and scripts",
624
+ emoji: ":ferris_wheel:"
625
+ },
626
+ {
627
+ value: "chore",
628
+ name: "chore: \uD83D\uDD28 Other changes that don\u2019t modify src or test files",
629
+ emoji: ":hammer:"
630
+ },
631
+ {
632
+ value: "revert",
633
+ name: "revert: \u23EA\uFE0F Reverts a previous commit",
634
+ emoji: ":rewind:"
635
+ }
509
636
  ]
510
637
  },
511
638
  hashing: {
@@ -516,7 +643,6 @@ var defaults_default = {
516
643
  },
517
644
  argon2: {
518
645
  memory: 65536,
519
- threads: 1,
520
646
  time: 1
521
647
  }
522
648
  },
@@ -532,37 +658,42 @@ var defaults_default = {
532
658
  name: "hello-world-vue",
533
659
  description: "Your Vue component library description",
534
660
  keywords: ["component", "library", "vue", "vite", "typescript", "javascript"],
535
- tags: [{
536
- name: ["HelloWorld", "AppHelloWorld"],
537
- description: "The Hello World custom element, built via this framework.",
538
- attributes: [{
539
- name: "greeting",
540
- description: "The greeting."
541
- }]
542
- }]
661
+ tags: [
662
+ {
663
+ name: ["HelloWorld", "AppHelloWorld"],
664
+ description: "The Hello World custom element, built via this framework.",
665
+ attributes: [
666
+ {
667
+ name: "greeting",
668
+ description: "The greeting."
669
+ }
670
+ ]
671
+ }
672
+ ]
543
673
  },
544
674
  webComponents: {
545
675
  name: "hello-world-elements",
546
676
  description: "Your framework agnostic web component library description.",
547
677
  keywords: ["custom-elements", "web-components", "library", "framework-agnostic", "typescript", "javascript"],
548
- tags: [{
549
- name: ["HelloWorld", "AppHelloWorld"],
550
- description: "The Hello World custom element, built via this framework.",
551
- attributes: [{
552
- name: "greeting",
553
- description: "The greeting."
554
- }]
555
- }]
678
+ tags: [
679
+ {
680
+ name: ["HelloWorld", "AppHelloWorld"],
681
+ description: "The Hello World custom element, built via this framework.",
682
+ attributes: [
683
+ {
684
+ name: "greeting",
685
+ description: "The greeting."
686
+ }
687
+ ]
688
+ }
689
+ ]
556
690
  },
557
691
  functions: {
558
692
  name: "hello-world-fx",
559
693
  description: "Your function library description.",
560
694
  keywords: ["functions", "composables", "library", "typescript", "javascript"],
561
695
  shouldGenerateSourcemap: false,
562
- functions: [
563
- "counter",
564
- "dark"
565
- ]
696
+ functions: ["counter", "dark"]
566
697
  }
567
698
  },
568
699
  logger: {
@@ -586,7 +717,8 @@ var defaults_default = {
586
717
  docs: 3006,
587
718
  inspect: 3007,
588
719
  api: 3008,
589
- systemTray: 3009
720
+ systemTray: 3009,
721
+ database: 3010
590
722
  },
591
723
  queue: {
592
724
  default: "sync",
@@ -618,7 +750,7 @@ var defaults_default = {
618
750
  }
619
751
  },
620
752
  searchEngine: {
621
- driver: "meilisearch"
753
+ driver: "opensearch"
622
754
  },
623
755
  security: {
624
756
  firewall: {
@@ -650,10 +782,6 @@ var defaults_default = {
650
782
  stripe: {
651
783
  appId: "",
652
784
  apiKey: ""
653
- },
654
- supabase: {
655
- appId: "",
656
- apiKey: ""
657
785
  }
658
786
  },
659
787
  storage: {
@@ -667,7 +795,10 @@ var defaults_default = {
667
795
  },
668
796
  ui: {
669
797
  shortcuts: [
670
- ["btn", "inline-flex items-center px-4 py-2 ml-2 border border-transparent shadow-sm text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"]
798
+ [
799
+ "btn",
800
+ "inline-flex items-center px-4 py-2 ml-2 border border-transparent shadow-sm text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
801
+ ]
671
802
  ],
672
803
  safelist: "prose prose-sm m-auto text-left",
673
804
  trigger: ":stx:",
@@ -706,6 +837,19 @@ var ai_default = {
706
837
  deploy: true
707
838
  };
708
839
 
840
+ // ../../../../config/analytics.ts
841
+ var analytics_default = {
842
+ driver: "fathom",
843
+ drivers: {
844
+ googleAnalytics: {
845
+ trackingId: "UA-XXXXXXXXX-X"
846
+ },
847
+ fathom: {
848
+ siteId: "WOLZMJDL"
849
+ }
850
+ }
851
+ };
852
+
709
853
  // ../../../../config/app.ts
710
854
  import {env as env2} from "@stacksjs/env";
711
855
  var app_default = {
@@ -727,7 +871,7 @@ var app_default = {
727
871
  // ../../../../config/cache.ts
728
872
  import {env as env4} from "@stacksjs/env";
729
873
  var cache_default = {
730
- driver: "redis",
874
+ driver: "dynamodb",
731
875
  prefix: "stacks",
732
876
  ttl: 3600,
733
877
  drivers: {
@@ -742,11 +886,13 @@ var cache_default = {
742
886
  persistent_id: "",
743
887
  sasl: ["", ""],
744
888
  options: {},
745
- servers: [{
746
- host: "127.0.0.1",
747
- port: 11211,
748
- weight: 100
749
- }]
889
+ servers: [
890
+ {
891
+ host: "127.0.0.1",
892
+ port: 11211,
893
+ weight: 100
894
+ }
895
+ ]
750
896
  },
751
897
  redis: {
752
898
  connection: "cache",
@@ -790,6 +936,14 @@ var cloud_default = {
790
936
  firewall: security_default.firewall,
791
937
  environments: ["production", "staging", "development"],
792
938
  storage: {},
939
+ api: {
940
+ prefix: env6.API_PREFIX || "api",
941
+ description: "My awesome Stacks API",
942
+ deploy: true,
943
+ memorySize: 512,
944
+ prewarm: 10,
945
+ timeout: 30
946
+ },
793
947
  cdn: {
794
948
  compress: true,
795
949
  allowedMethods: "ALL",
@@ -809,23 +963,26 @@ var cloud_default = {
809
963
  samplingRate: 1
810
964
  }
811
965
  },
812
- api: {
813
- deploy: true,
814
- prefix: env6.API_PREFIX || "api",
815
- description: "Stacks API",
816
- memorySize: 512,
817
- prewarm: 10,
818
- timeout: 30
819
- },
820
966
  fileSystem: true
821
967
  };
822
968
 
823
969
  // ../../../../config/database.ts
824
970
  import {env as env8} from "@stacksjs/env";
825
971
  var database_default = {
826
- default: env8.DB_CONNECTION || "sqlite",
827
- name: env8.DB_DATABASE || "stacks",
972
+ default: env8.DB_CONNECTION || "mysql",
828
973
  connections: {
974
+ sqlite: {
975
+ database: env8.DB_DATABASE || "stacks",
976
+ prefix: ""
977
+ },
978
+ dynamodb: {
979
+ key: env8.AWS_ACCESS_KEY_ID || "",
980
+ secret: env8.AWS_SECRET_ACCESS_KEY || "",
981
+ region: env8.AWS_DEFAULT_REGION || "us-east-1",
982
+ prefix: env8.DB_DATABASE || "stacks",
983
+ endpoint: "http://localhost",
984
+ port: env8.DB_PORT || 8000
985
+ },
829
986
  mysql: {
830
987
  name: env8.DB_DATABASE || "stacks",
831
988
  host: env8.DB_HOST || "127.0.0.1",
@@ -834,13 +991,17 @@ var database_default = {
834
991
  password: env8.DB_PASSWORD || "",
835
992
  prefix: ""
836
993
  },
837
- sqlite: {
838
- database: env8.DB_DATABASE || "stacks",
994
+ postgres: {
995
+ name: env8.DB_DATABASE || "stacks",
996
+ host: env8.DB_HOST || "127.0.0.1",
997
+ port: env8.DB_PORT || 3306,
998
+ username: env8.DB_USERNAME || "",
999
+ password: env8.DB_PASSWORD || "",
839
1000
  prefix: ""
840
- },
841
- postgres: {}
1001
+ }
842
1002
  },
843
- migrations: "migrations"
1003
+ migrations: "migrations",
1004
+ migrationLocks: "migration_locks"
844
1005
  };
845
1006
 
846
1007
  // ../../../../config/dns.ts
@@ -898,6 +1059,15 @@ var nav = [
898
1059
  ];
899
1060
  var sidebar = {
900
1061
  "/guide/": [
1062
+ {
1063
+ text: "Prologue",
1064
+ collapsible: true,
1065
+ items: [
1066
+ { text: "Release Notes", link: "/release-notes" },
1067
+ { text: "Upgrade Guide", link: "/upgrade-guide" },
1068
+ { text: "Contribution Guide", link: "/contribution-guide" }
1069
+ ]
1070
+ },
901
1071
  {
902
1072
  text: "Getting Started",
903
1073
  collapsible: true,
@@ -943,8 +1113,14 @@ var sidebar = {
943
1113
  collapsible: true,
944
1114
  collapsed: true,
945
1115
  items: [
946
- { text: "Component Library", link: "/bootcamp/library/components" },
947
- { text: "Function Library", link: "/bootcamp/library/functions" }
1116
+ {
1117
+ text: "Component Library",
1118
+ link: "/bootcamp/library/components"
1119
+ },
1120
+ {
1121
+ text: "Function Library",
1122
+ link: "/bootcamp/library/functions"
1123
+ }
948
1124
  ]
949
1125
  },
950
1126
  { text: "Build a CLI", link: "/bootcamp/cli" },
@@ -953,13 +1129,25 @@ var sidebar = {
953
1129
  collapsible: true,
954
1130
  collapsed: true,
955
1131
  items: [
956
- { text: "Team Management", link: "/bootcamp/saas/team-management" },
1132
+ {
1133
+ text: "Team Management",
1134
+ link: "/bootcamp/saas/team-management"
1135
+ },
957
1136
  { text: "Payments", link: "/bootcamp/saas/payments" },
958
1137
  { text: "Subscriptions", link: "/bootcamp/saas/subscriptions" },
959
- { text: "License Key Management", link: "/bootcamp/saas/license-key-management" },
960
- { text: "Digital Downloads", link: "/bootcamp/saas/digital-downloads" },
1138
+ {
1139
+ text: "License Key Management",
1140
+ link: "/bootcamp/saas/license-key-management"
1141
+ },
1142
+ {
1143
+ text: "Digital Downloads",
1144
+ link: "/bootcamp/saas/digital-downloads"
1145
+ },
961
1146
  { text: "Checkout Form", link: "/bootcamp/saas/checkout-form" },
962
- { text: "Affiliates Program", link: "/bootcamp/saas/affiliates-program" }
1147
+ {
1148
+ text: "Affiliates Program",
1149
+ link: "/bootcamp/saas/affiliates-program"
1150
+ }
963
1151
  ]
964
1152
  },
965
1153
  { text: "Build a Desktop App", link: "/bootcamp/desktop" }
@@ -971,17 +1159,32 @@ var sidebar = {
971
1159
  collapsed: true,
972
1160
  items: [
973
1161
  { text: "Authentication", link: "/bootcamp/how-to/authentication" },
974
- { text: "Create a Mailbox", link: "/bootcamp/how-to/create-mailbox" },
975
- { text: "Define env & config values", link: "/bootcamp/how-to/env-config" },
1162
+ {
1163
+ text: "Create a Mailbox",
1164
+ link: "/bootcamp/how-to/create-mailbox"
1165
+ },
1166
+ {
1167
+ text: "Define env & config values",
1168
+ link: "/bootcamp/how-to/env-config"
1169
+ },
976
1170
  { text: "Error Handling", link: "/bootcamp/how-to/error-handling" },
977
1171
  { text: "Extend the Cloud", link: "/bootcamp/how-to/extend-cloud" },
978
- { text: "Extend the Dashboard", link: "/bootcamp/how-to/extend-dashboard" },
1172
+ {
1173
+ text: "Extend the Dashboard",
1174
+ link: "/bootcamp/how-to/extend-dashboard"
1175
+ },
979
1176
  { text: "How to deploy?", link: "/bootcamp/how-to/deploy" },
980
1177
  { text: "IDE Setup", link: "/bootcamp/how-to/ide-setup" },
981
1178
  { text: "Manage a Team", link: "/bootcamp/how-to/manage-team" },
982
- { text: "Publish Components & Functions", link: "/bootcamp/how-to/publish" },
1179
+ {
1180
+ text: "Publish Components & Functions",
1181
+ link: "/bootcamp/how-to/publish"
1182
+ },
983
1183
  { text: "Unit & Feature Tests", link: "/bootcamp/how-to/testing" },
984
- { text: "Review bun.lockb Diff", link: "/bootcamp/how-to/bun-lockb" }
1184
+ {
1185
+ text: "Review bun.lockb Diff",
1186
+ link: "/bootcamp/how-to/bun-lockb"
1187
+ }
985
1188
  ]
986
1189
  },
987
1190
  {
@@ -989,13 +1192,25 @@ var sidebar = {
989
1192
  collapsible: true,
990
1193
  collapsed: true,
991
1194
  items: [
992
- { text: "Cost Optimization", link: "/bootcamp/tips/cost-optimization" },
993
- { text: "Email, SMS, Social & Push Notifications", link: "/bootcamp/tips/notifications" },
1195
+ {
1196
+ text: "Cost Optimization",
1197
+ link: "/bootcamp/tips/cost-optimization"
1198
+ },
1199
+ {
1200
+ text: "Email, SMS, Social & Push Notifications",
1201
+ link: "/bootcamp/tips/notifications"
1202
+ },
994
1203
  { text: "Jump Box", link: "/bootcamp/tips/jump-box" },
995
1204
  { text: "Limitations", link: "/bootcamp/tips/limitations" },
996
- { text: "Payment sending, receiving & management", link: "/bootcamp/tips/payments" },
1205
+ {
1206
+ text: "Payment sending, receiving & management",
1207
+ link: "/bootcamp/tips/payments"
1208
+ },
997
1209
  { text: "Remove your Cloud", link: "/bootcamp/tips/undeploy" },
998
- { text: "Semantic Commits", link: "/bootcamp/tips/semantic-commits" },
1210
+ {
1211
+ text: "Semantic Commits",
1212
+ link: "/bootcamp/tips/semantic-commits"
1213
+ },
999
1214
  { text: "Ship your ORM", link: "/bootcamp/tips/orm-usage" },
1000
1215
  { text: "System Tray App", link: "/bootcamp/tips/system-tray" },
1001
1216
  { text: "Oh My Zsh", link: "/bootcamp/tips/oh-my-zsh" }
@@ -1020,16 +1235,21 @@ var sidebar = {
1020
1235
  collapsible: true,
1021
1236
  collapsed: true,
1022
1237
  items: [
1238
+ { text: "Auth", link: "/guide/components/auth" },
1239
+ { text: "Modal", link: "/guide/components/modal" },
1240
+ { text: "Notification", link: "/guide/components/notification" },
1023
1241
  { text: "KeepAlive", link: "/guide/components/keep-alive" },
1242
+ { text: "Stepper", link: "/guide/components/stepper" },
1024
1243
  { text: "Suspense", link: "/guide/components/suspense" },
1025
1244
  { text: "Table", link: "/guide/components/table" },
1026
1245
  { text: "Teleport", link: "/guide/components/teleport" },
1027
1246
  { text: "Transition", link: "/guide/components/transition" },
1028
- { text: "TransitionGroup", link: "/guide/components/transition-group" }
1247
+ {
1248
+ text: "TransitionGroup",
1249
+ link: "/guide/components/transition-group"
1250
+ }
1029
1251
  ]
1030
- },
1031
- { text: "Dashboard", link: "/guide/dashboard" },
1032
- { text: "System Tray", link: "/guide/system-tray" }
1252
+ }
1033
1253
  ]
1034
1254
  },
1035
1255
  {
@@ -1057,7 +1277,9 @@ var sidebar = {
1057
1277
  ]
1058
1278
  },
1059
1279
  { text: "Payments", link: "/packages/payments" },
1280
+ { text: "Permissions", link: "/packages/permissions" },
1060
1281
  { text: "Queue", link: "/packages/queue" },
1282
+ { text: "Realtime", link: "/packages/realtime" },
1061
1283
  { text: "Router", link: "/packages/router" },
1062
1284
  { text: "Scheduler", link: "/packages/scheduler" },
1063
1285
  { text: "Search Engine", link: "/packages/search-engine" },
@@ -1133,6 +1355,7 @@ var sidebar = {
1133
1355
  },
1134
1356
  { text: "Bootstrap", link: "/guide/bootstrap" },
1135
1357
  { text: "CI / CD", link: "/guide/ci" },
1358
+ { text: "Dashboard", link: "/guide/dashboard" },
1136
1359
  { text: "Model-View-Action", link: "/guide/model-view-action" },
1137
1360
  {
1138
1361
  text: "Package Manager",
@@ -1140,22 +1363,53 @@ var sidebar = {
1140
1363
  collapsible: true,
1141
1364
  collapsed: true,
1142
1365
  items: [
1143
- { text: "`buddy install`", link: "/guide/package-manager/buddy-install" },
1366
+ {
1367
+ text: "`buddy install`",
1368
+ link: "/guide/package-manager/buddy-install"
1369
+ },
1144
1370
  { text: "`buddy add`", link: "/guide/package-manager/buddy-add" },
1145
1371
  { text: "`buddy remove`", link: "/guide/package-manager/remove" },
1146
- { text: "`buddy upgrade -pm`", link: "/guide/package-manager/upgrade" },
1372
+ {
1373
+ text: "`buddy upgrade -pm`",
1374
+ link: "/guide/package-manager/upgrade"
1375
+ },
1147
1376
  { text: "`buddy link`", link: "/guide/package-manager/link" },
1148
- { text: "Global Cache", link: "/guide/package-manager/global-cache" },
1377
+ {
1378
+ text: "Global Cache",
1379
+ link: "/guide/package-manager/global-cache"
1380
+ },
1149
1381
  { text: "Workspaces", link: "/guide/package-manager/workspaces" },
1150
- { text: "Lifecycle Scripts", link: "/guide/package-manager/lifecycle-scripts" },
1382
+ {
1383
+ text: "Lifecycle Scripts",
1384
+ link: "/guide/package-manager/lifecycle-scripts"
1385
+ },
1151
1386
  { text: "Lockfile", link: "/guide/package-manager/lockfile" },
1152
- { text: "Overrides & Resolutions", link: "/guide/package-manager/overrides-resolutions" }
1387
+ {
1388
+ text: "Overrides & Resolutions",
1389
+ link: "/guide/package-manager/overrides-resolutions"
1390
+ }
1153
1391
  ]
1154
1392
  },
1155
1393
  { text: "Plugins", link: "/guide/plugins" },
1394
+ { text: "System Tray", link: "/guide/system-tray" },
1156
1395
  { text: "$ Shell", link: "/guide/$-shell" }
1157
1396
  ]
1158
1397
  },
1398
+ {
1399
+ text: "Components",
1400
+ collapsible: true,
1401
+ collapsed: true,
1402
+ items: [
1403
+ { text: "Calendar", link: "/components/calendar" },
1404
+ { text: "Command Palette", link: "/components/command-palette" },
1405
+ { text: "Dropdown", link: "/components/dropdown" },
1406
+ { text: "Form", link: "/components/form" },
1407
+ { text: "Modal", link: "/components/modal" },
1408
+ { text: "Notification", link: "/components/notification" },
1409
+ { text: "Stepper", link: "/components/stepper" },
1410
+ { text: "Table", link: "/components/table" }
1411
+ ]
1412
+ },
1159
1413
  {
1160
1414
  text: "Packages",
1161
1415
  collapsible: true,
@@ -1182,7 +1436,6 @@ var sidebar = {
1182
1436
  { text: "Docs", link: "/packages/docs" },
1183
1437
  { text: "Env", link: "/packages/env" },
1184
1438
  { text: "Error Handling", link: "/packages/error-handling" },
1185
- { text: "ESLint Config", link: "/packages/eslint-config" },
1186
1439
  { text: "Events", link: "/packages/events" },
1187
1440
  { text: "Faker", link: "/packages/faker" },
1188
1441
  { text: "Git", link: "/packages/git" },
@@ -1209,7 +1462,22 @@ var sidebar = {
1209
1462
  { text: "Path", link: "/packages/path" },
1210
1463
  { text: "Payments", link: "/packages/payments" },
1211
1464
  { text: "Permissions", link: "/packages/permissions" },
1212
- { text: "Query Builder", link: "/packages/query-builder" },
1465
+ {
1466
+ text: "Query Builder",
1467
+ link: "/packages/query-builder",
1468
+ collapsible: true,
1469
+ collapsed: true,
1470
+ items: [
1471
+ { text: "Select", link: "/packages/query-builder/select" },
1472
+ { text: "Where", link: "/packages/query-builder/where" },
1473
+ { text: "Join", link: "/packages/query-builder/join" },
1474
+ { text: "Insert", link: "/packages/insert" },
1475
+ { text: "Update", link: "/packages/update" },
1476
+ { text: "Delete", link: "/packages/delete" },
1477
+ { text: "Transactions", link: "/packages/transcations" },
1478
+ { text: "Recipes", link: "/packages/recipes" }
1479
+ ]
1480
+ },
1213
1481
  { text: "Queue", link: "/packages/queue" },
1214
1482
  { text: "Realtime", link: "/packages/realtime" },
1215
1483
  { text: "REPL", link: "/packages/repl" },
@@ -1281,7 +1549,10 @@ var docs_default = {
1281
1549
  },
1282
1550
  socialLinks: [
1283
1551
  { icon: SocialLinkIcon.Twitter, link: "https://twitter.com/stacksjs" },
1284
- { icon: SocialLinkIcon.GitHub, link: "https://github.com/stacksjs/stacks" },
1552
+ {
1553
+ icon: SocialLinkIcon.GitHub,
1554
+ link: "https://github.com/stacksjs/stacks"
1555
+ },
1285
1556
  { icon: SocialLinkIcon.Discord, link: "https://discord.gg/stacksjs" }
1286
1557
  ]
1287
1558
  }
@@ -1294,7 +1565,7 @@ var email_default = {
1294
1565
  name: env12.MAIL_FROM_NAME || "Stacks",
1295
1566
  address: env12.MAIL_FROM_ADDRESS || "no-reply@stacksjs.org"
1296
1567
  },
1297
- mailboxes: ["chris@stacksjs.org", "blake@stacksjs.org"],
1568
+ mailboxes: ["chris@stacksjs.org", "blake@stacksjs.org", "glenn@stacksjs.org"],
1298
1569
  url: env12.APP_URL || "http://localhost:3000",
1299
1570
  charset: "UTF-8",
1300
1571
  server: {
@@ -1302,6 +1573,76 @@ var email_default = {
1302
1573
  }
1303
1574
  };
1304
1575
 
1576
+ // ../../../../config/errors.ts
1577
+ var errors_default = {
1578
+ messages: {
1579
+ string: "The {{ field }} field must be a string",
1580
+ email: "The {{ field }} field must be a valid email address",
1581
+ regex: "The {{ field }} field format is invalid",
1582
+ url: "The {{ field }} field must be a valid URL",
1583
+ activeUrl: "The {{ field }} field must be a valid URL",
1584
+ alpha: "The {{ field }} field must contain only letters",
1585
+ alphaNumeric: "The {{ field }} field must contain only letters and numbers",
1586
+ minLength: "The {{ field }} field must have at least {{ min }} characters",
1587
+ maxLength: "The {{ field }} field must not be greater than {{ max }} characters",
1588
+ fixedLength: "The {{ field }} field must be {{ size }} characters long",
1589
+ confirmed: "The {{ field }} field and {{ otherField }} field must be the same",
1590
+ endsWith: "The {{ field }} field must end with {{ substring }}",
1591
+ startsWith: "The {{ field }} field must start with {{ substring }}",
1592
+ sameAs: "The {{ field }} field and {{ otherField }} field must be the same",
1593
+ notSameAs: "The {{ field }} field and {{ otherField }} field must be different",
1594
+ in: "The selected {{ field }} is invalid",
1595
+ notIn: "The selected {{ field }} is invalid",
1596
+ ipAddress: "The {{ field }} field must be a valid IP address",
1597
+ uuid: "The {{ field }} field must be a valid UUID",
1598
+ ascii: "The {{ field }} field must only contain ASCII characters",
1599
+ creditCard: "The {{ field }} field must be a valid {{ providersList }} card number",
1600
+ hexCode: "The {{ field }} field must be a valid hex color code",
1601
+ iban: "The {{ field }} field must be a valid IBAN number",
1602
+ jwt: "The {{ field }} field must be a valid JWT token",
1603
+ coordinates: "The {{ field }} field must contain latitude and longitude coordinates",
1604
+ mobile: "The {{ field }} field must be a valid mobile phone number",
1605
+ passport: "The {{ field }} field must be a valid passport number",
1606
+ postalCode: "The {{ field }} field must be a valid postal code",
1607
+ boolean: "The value must be a boolean",
1608
+ number: "The {{ field }} field must be a number",
1609
+ min: "The {{ field }} field must be at least {{ min }}",
1610
+ max: "The {{ field }} field must not be greater than {{ max }}",
1611
+ range: "The {{ field }} field must be between {{ min }} and {{ max }}",
1612
+ positive: "The {{ field }} field must be positive",
1613
+ negative: "The {{ field }} field must be negative",
1614
+ decimal: "The {{ field }} field must have {{ digits }} decimal places",
1615
+ withoutDecimals: "The {{ field }} field must not have decimal places",
1616
+ date: "The {{ field }} field must be a datetime value",
1617
+ "date.equals": "The {{ field }} field must be a date equal to {{ expectedValue }}",
1618
+ "date.after": "The {{ field }} field must be a date after {{ expectedValue }}",
1619
+ "date.before": "The {{ field }} field must be a date before {{ expectedValue }}",
1620
+ "date.afterOrEqual": "The {{ field }} field must be a date after or equal to {{ expectedValue }}",
1621
+ "date.beforeOrEqual": "The {{ field }} field must be a date before or equal to {{ expectedValue }}",
1622
+ "date.sameAs": "The {{ field }} field and {{ otherField }} field must be the same",
1623
+ "date.notSameAs": "The {{ field }} field and {{ otherField }} field must be different",
1624
+ "date.afterField": "The {{ field }} field must be a date after {{ otherField }}",
1625
+ accepted: "The {{ field }} field must be accepted",
1626
+ enum: "The selected {{ field }} is invalid",
1627
+ literal: "The {{ field }} field must be {{ expectedValue }}",
1628
+ object: "The {{ field }} field must be an object",
1629
+ record: "The {{ field }} field must be an object",
1630
+ "record.minLength": "The {{ field }} field must have at least {{ min }} items",
1631
+ "record.maxLength": "The {{ field }} field must not have more than {{ max }} items",
1632
+ "record.fixedLength": "The {{ field }} field must contain {{ size }} items",
1633
+ array: "The {{ field }} field must be an array",
1634
+ "array.minLength": "The {{ field }} field must have at least {{ min }} items",
1635
+ "array.maxLength": "The {{ field }} field must not have more than {{ max }} items",
1636
+ "array.fixedLength": "The {{ field }} field must contain {{ size }} items",
1637
+ notEmpty: "The {{ field }} field must not be empty",
1638
+ distinct: "The {{ field }} field has duplicate values",
1639
+ tuple: "The {{ field }} field must be an array",
1640
+ union: "Invalid value provided for {{ field }} field",
1641
+ unionGroup: "Invalid value provided for {{ field }} field",
1642
+ unionOfTypes: "Invalid value provided for {{ field }} field"
1643
+ }
1644
+ };
1645
+
1305
1646
  // ../../../../config/git.ts
1306
1647
  var git_default = {
1307
1648
  hooks: {
@@ -1363,15 +1704,51 @@ var git_default = {
1363
1704
  types: [
1364
1705
  { value: "feat", name: "feat: \u2728 A new feature", emoji: ":sparkles:" },
1365
1706
  { value: "fix", name: "fix: \uD83D\uDC1B A bug fix", emoji: ":bug:" },
1366
- { value: "docs", name: "docs: \uD83D\uDCDD Documentation only changes", emoji: ":memo:" },
1367
- { value: "style", name: "style: \uD83D\uDC84 Changes that do not affect the meaning of the code", emoji: ":lipstick:" },
1368
- { value: "refactor", name: "refactor: \u267B\uFE0F A code change that neither fixes a bug nor adds a feature", emoji: ":recycle:" },
1369
- { value: "perf", name: "perf: \u26A1\uFE0F A code change that improves performance", emoji: ":zap:" },
1370
- { value: "test", name: "test: \u2705 Adding missing tests or adjusting existing tests", emoji: ":white_check_mark:" },
1371
- { value: "build", name: "build: \uD83D\uDCE6\uFE0F Changes that affect the build system or external dependencies", emoji: ":package:" },
1372
- { value: "ci", name: "ci: \uD83C\uDFA1 Changes to our CI configuration files and scripts", emoji: ":ferris_wheel:" },
1373
- { value: "chore", name: "chore: \uD83D\uDD28 Other changes that don\u2019t modify src or test files", emoji: ":hammer:" },
1374
- { value: "revert", name: "revert: \u23EA\uFE0F Reverts a previous commit", emoji: ":rewind:" }
1707
+ {
1708
+ value: "docs",
1709
+ name: "docs: \uD83D\uDCDD Documentation only changes",
1710
+ emoji: ":memo:"
1711
+ },
1712
+ {
1713
+ value: "style",
1714
+ name: "style: \uD83D\uDC84 Changes that do not affect the meaning of the code",
1715
+ emoji: ":lipstick:"
1716
+ },
1717
+ {
1718
+ value: "refactor",
1719
+ name: "refactor: \u267B\uFE0F A code change that neither fixes a bug nor adds a feature",
1720
+ emoji: ":recycle:"
1721
+ },
1722
+ {
1723
+ value: "perf",
1724
+ name: "perf: \u26A1\uFE0F A code change that improves performance",
1725
+ emoji: ":zap:"
1726
+ },
1727
+ {
1728
+ value: "test",
1729
+ name: "test: \u2705 Adding missing tests or adjusting existing tests",
1730
+ emoji: ":white_check_mark:"
1731
+ },
1732
+ {
1733
+ value: "build",
1734
+ name: "build: \uD83D\uDCE6\uFE0F Changes that affect the build system or external dependencies",
1735
+ emoji: ":package:"
1736
+ },
1737
+ {
1738
+ value: "ci",
1739
+ name: "ci: \uD83C\uDFA1 Changes to our CI configuration files and scripts",
1740
+ emoji: ":ferris_wheel:"
1741
+ },
1742
+ {
1743
+ value: "chore",
1744
+ name: "chore: \uD83D\uDD28 Other changes that don\u2019t modify src or test files",
1745
+ emoji: ":hammer:"
1746
+ },
1747
+ {
1748
+ value: "revert",
1749
+ name: "revert: \u23EA\uFE0F Reverts a previous commit",
1750
+ emoji: ":rewind:"
1751
+ }
1375
1752
  ]
1376
1753
  };
1377
1754
 
@@ -1403,37 +1780,42 @@ var library_default = {
1403
1780
  name: "hello-world-vue",
1404
1781
  description: "Your Vue component library description",
1405
1782
  keywords: ["component", "library", "vue", "vite", "typescript", "javascript"],
1406
- tags: [{
1407
- name: ["HelloWorld", "AppHelloWorld"],
1408
- description: "The Hello World custom element, built via this framework.",
1409
- attributes: [{
1410
- name: "greeting",
1411
- description: "The greeting."
1412
- }]
1413
- }]
1783
+ tags: [
1784
+ {
1785
+ name: ["HelloWorld", "AppHelloWorld"],
1786
+ description: "The Hello World custom element, built via this framework.",
1787
+ attributes: [
1788
+ {
1789
+ name: "greeting",
1790
+ description: "The greeting."
1791
+ }
1792
+ ]
1793
+ }
1794
+ ]
1414
1795
  },
1415
1796
  webComponents: {
1416
1797
  name: "hello-world-elements",
1417
1798
  description: "Your framework agnostic web component library description.",
1418
1799
  keywords: ["custom-elements", "web-components", "library", "framework-agnostic", "typescript", "javascript"],
1419
- tags: [{
1420
- name: ["HelloWorld", "AppHelloWorld"],
1421
- description: "The Hello World custom element, built via this framework.",
1422
- attributes: [{
1423
- name: "greeting",
1424
- description: "The greeting."
1425
- }]
1426
- }]
1800
+ tags: [
1801
+ {
1802
+ name: ["HelloWorld", "AppHelloWorld"],
1803
+ description: "The Hello World custom element, built via this framework.",
1804
+ attributes: [
1805
+ {
1806
+ name: "greeting",
1807
+ description: "The greeting."
1808
+ }
1809
+ ]
1810
+ }
1811
+ ]
1427
1812
  },
1428
1813
  functions: {
1429
1814
  name: "hello-world-fx",
1430
1815
  description: "Your function library description.",
1431
1816
  keywords: ["functions", "composables", "library", "typescript", "javascript"],
1432
1817
  shouldGenerateSourcemap: false,
1433
- functions: [
1434
- "counter",
1435
- "dark"
1436
- ]
1818
+ files: ["counter", "dark"]
1437
1819
  }
1438
1820
  };
1439
1821
 
@@ -1444,23 +1826,9 @@ var logger_default = {
1444
1826
  errorsPath: "storage/logs/errors.log"
1445
1827
  };
1446
1828
 
1447
- // ../../../../config/queue.ts
1448
- var queue_default = {
1449
- default: "sync",
1450
- connections: {
1451
- sync: {
1452
- driver: "sync"
1453
- },
1454
- sqs: {
1455
- driver: "sqs",
1456
- key: "",
1457
- secret: "",
1458
- prefix: "",
1459
- suffix: "",
1460
- queue: "default",
1461
- region: "us-east-1"
1462
- }
1463
- }
1829
+ // ../../../../config/notification.ts
1830
+ var notification_default = {
1831
+ default: "email"
1464
1832
  };
1465
1833
 
1466
1834
  // ../../../../config/payment.ts
@@ -1480,22 +1848,32 @@ var ports_default = {
1480
1848
  docs: env14.PORT_DOCS ?? 3006,
1481
1849
  inspect: env14.PORT_INSPECT ?? 3007,
1482
1850
  api: env14.PORT_API ?? 3008,
1483
- systemTray: env14.PORT_SYSTEM_TRAY ?? 3009
1851
+ systemTray: env14.PORT_SYSTEM_TRAY ?? 3009,
1852
+ database: 3010
1484
1853
  };
1485
1854
 
1486
- // ../../../../config/notification.ts
1487
- var notification_default = {
1488
- default: "email"
1489
- };
1490
-
1491
- // ../../../../config/storage.ts
1492
- var storage_default = {
1493
- driver: "s3"
1855
+ // ../../../../config/queue.ts
1856
+ var queue_default = {
1857
+ default: "sync",
1858
+ connections: {
1859
+ sync: {
1860
+ driver: "sync"
1861
+ },
1862
+ sqs: {
1863
+ driver: "sqs",
1864
+ key: "",
1865
+ secret: "",
1866
+ prefix: "",
1867
+ suffix: "",
1868
+ queue: "default",
1869
+ region: "us-east-1"
1870
+ }
1871
+ }
1494
1872
  };
1495
1873
 
1496
1874
  // ../../../../config/search-engine.ts
1497
1875
  var search_engine_default = {
1498
- driver: "meilisearch"
1876
+ driver: "opensearch"
1499
1877
  };
1500
1878
 
1501
1879
  // ../../../../config/services.ts
@@ -1522,13 +1900,14 @@ var services_default = {
1522
1900
  stripe: {
1523
1901
  appId: "",
1524
1902
  apiKey: ""
1525
- },
1526
- supabase: {
1527
- appId: "",
1528
- apiKey: ""
1529
1903
  }
1530
1904
  };
1531
1905
 
1906
+ // ../../../../config/storage.ts
1907
+ var storage_default = {
1908
+ driver: "s3"
1909
+ };
1910
+
1532
1911
  // ../../../../config/team.ts
1533
1912
  var team_default = {
1534
1913
  name: "Stacks",
@@ -1546,7 +1925,10 @@ var team_default = {
1546
1925
  // ../../../../config/ui.ts
1547
1926
  var ui_default = {
1548
1927
  shortcuts: [
1549
- ["btn", "inline-flex items-center px-4 py-2 ml-2 border border-transparent shadow-sm text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"]
1928
+ [
1929
+ "btn",
1930
+ "inline-flex items-center px-4 py-2 ml-2 border border-transparent shadow-sm text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"
1931
+ ]
1550
1932
  ],
1551
1933
  safelist: "prose prose-sm m-auto text-left",
1552
1934
  trigger: ":stx:",
@@ -1584,6 +1966,7 @@ var ui_default = {
1584
1966
  // src/overrides.ts
1585
1967
  var overrides_default = {
1586
1968
  ai: ai_default,
1969
+ analytics: analytics_default,
1587
1970
  app: app_default,
1588
1971
  cache: cache_default,
1589
1972
  cli: cli_default,
@@ -1592,6 +1975,7 @@ var overrides_default = {
1592
1975
  dns: dns_default,
1593
1976
  docs: docs_default,
1594
1977
  email: email_default,
1978
+ errors: errors_default,
1595
1979
  git: git_default,
1596
1980
  hashing: hashing_default,
1597
1981
  library: library_default,
@@ -1798,7 +2182,8 @@ var config = {
1798
2182
  };
1799
2183
  var {
1800
2184
  ai: ai2,
1801
- analytics,
2185
+ analytics: analytics2,
2186
+ api,
1802
2187
  app: app2,
1803
2188
  cache: cache2,
1804
2189
  cloud: cloud2,
@@ -1807,6 +2192,7 @@ var {
1807
2192
  dns: dns2,
1808
2193
  docs: docs2,
1809
2194
  email: email2,
2195
+ errors: errors2,
1810
2196
  git: git2,
1811
2197
  hashing: hashing2,
1812
2198
  library: library2,
@@ -1822,6 +2208,17 @@ var {
1822
2208
  team: team2,
1823
2209
  ui: ui2
1824
2210
  } = config;
2211
+ var determineAppEnv = () => {
2212
+ if (app2.env === "local")
2213
+ return "dev";
2214
+ if (app2.env === "development")
2215
+ return "dev";
2216
+ if (app2.env === "staging")
2217
+ return "stage";
2218
+ if (app2.env === "production")
2219
+ return "prod";
2220
+ return app2.env;
2221
+ };
1825
2222
  export {
1826
2223
  ui2 as ui,
1827
2224
  team2 as team,
@@ -1839,9 +2236,11 @@ export {
1839
2236
  library2 as library,
1840
2237
  hashing2 as hashing,
1841
2238
  git2 as git,
2239
+ errors2 as errors,
1842
2240
  email2 as email,
1843
2241
  docs2 as docs,
1844
2242
  dns2 as dns,
2243
+ determineAppEnv,
1845
2244
  defineUi,
1846
2245
  defineStorage,
1847
2246
  defineStacksConfig,
@@ -1876,6 +2275,7 @@ export {
1876
2275
  cli2 as cli,
1877
2276
  cache2 as cache,
1878
2277
  app2 as app,
1879
- analytics,
2278
+ api,
2279
+ analytics2 as analytics,
1880
2280
  ai2 as ai
1881
2281
  };