@stacksjs/types 0.61.24 → 0.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,7 +1,6 @@
1
- import {createRequire} from "node:module";
2
1
  var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
2
  var __getProtoOf = Object.getPrototypeOf;
3
+ var __defProp = Object.defineProperty;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
6
  var __toESM = (mod, isNodeMode, target) => {
@@ -16,7 +15,6 @@ var __toESM = (mod, isNodeMode, target) => {
16
15
  return to;
17
16
  };
18
17
  var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
19
- var __require = createRequire(import.meta.url);
20
18
 
21
19
  // ../../../../node_modules/slugify/slugify.js
22
20
  var require_slugify = __commonJS((exports, module) => {
@@ -72,7 +70,7 @@ var require_slugify = __commonJS((exports, module) => {
72
70
  // ../../../../node_modules/pluralize/pluralize.js
73
71
  var require_pluralize = __commonJS((exports, module) => {
74
72
  (function(root, pluralize) {
75
- if (typeof __require === "function" && typeof exports === "object" && typeof module === "object") {
73
+ if (typeof exports === "object" && typeof module === "object") {
76
74
  module.exports = pluralize();
77
75
  } else if (typeof define === "function" && define.amd) {
78
76
  define(function() {
@@ -397,7 +395,7 @@ var require_pluralize = __commonJS((exports, module) => {
397
395
  });
398
396
  // src/cron-jobs.ts
399
397
  var Every;
400
- (function(Every2) {
398
+ ((Every2) => {
401
399
  Every2["Minute"] = "* * * * *";
402
400
  Every2["TwoMinutes"] = "*/2 * * * *";
403
401
  Every2["FiveMinutes"] = "*/5 * * * *";
@@ -412,10 +410,10 @@ var Every;
412
410
  Every2["Weekend"] = "0 0 * * 0,6";
413
411
  Every2["Month"] = "0 0 1 * *";
414
412
  Every2["Year"] = "0 0 1 1 *";
415
- })(Every || (Every = {}));
413
+ })(Every ||= {});
416
414
  // src/docs.ts
417
415
  var SocialLinkIcon;
418
- (function(SocialLinkIcon2) {
416
+ ((SocialLinkIcon2) => {
419
417
  SocialLinkIcon2["Discord"] = "discord";
420
418
  SocialLinkIcon2["Facebook"] = "facebook";
421
419
  SocialLinkIcon2["GitHub"] = "github";
@@ -425,14 +423,14 @@ var SocialLinkIcon;
425
423
  SocialLinkIcon2["Slack"] = "slack";
426
424
  SocialLinkIcon2["Twitter"] = "twitter";
427
425
  SocialLinkIcon2["YouTube"] = "youtube";
428
- })(SocialLinkIcon || (SocialLinkIcon = {}));
426
+ })(SocialLinkIcon ||= {});
429
427
  // src/exit-code.ts
430
428
  var ExitCode;
431
- (function(ExitCode2) {
429
+ ((ExitCode2) => {
432
430
  ExitCode2[ExitCode2["Success"] = 0] = "Success";
433
431
  ExitCode2[ExitCode2["FatalError"] = 1] = "FatalError";
434
432
  ExitCode2[ExitCode2["InvalidArgument"] = 9] = "InvalidArgument";
435
- })(ExitCode || (ExitCode = {}));
433
+ })(ExitCode ||= {});
436
434
  // src/logger.ts
437
435
  import {LogLevels, LogTypes} from "consola";
438
436
  // ../strings/src/utils.ts
@@ -506,3 +504,6 @@ export {
506
504
  ExitCode,
507
505
  Every
508
506
  };
507
+
508
+ //# debugId=F4AD9827784132A964756E2164756E21
509
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,20 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../node_modules/slugify/slugify.js", "../../../../../node_modules/pluralize/pluralize.js", "../src/cron-jobs.ts", "../src/docs.ts", "../src/exit-code.ts", "../src/logger.ts", "../../strings/src/utils.ts", "../../../../../node_modules/title-case/dist/index.js", "../../strings/src/pluralize.ts", "../../strings/src/helpers.ts", "../src/helpers.ts"],
4
+ "sourcesContent": [
5
+ "\n;(function (name, root, factory) {\n if (typeof exports === 'object') {\n module.exports = factory()\n module.exports['default'] = factory()\n }\n /* istanbul ignore next */\n else if (typeof define === 'function' && define.amd) {\n define(factory)\n }\n else {\n root[name] = factory()\n }\n}('slugify', this, function () {\n var charMap = JSON.parse('{\"$\":\"dollar\",\"%\":\"percent\",\"&\":\"and\",\"<\":\"less\",\">\":\"greater\",\"|\":\"or\",\"¢\":\"cent\",\"£\":\"pound\",\"¤\":\"currency\",\"¥\":\"yen\",\"©\":\"(c)\",\"ª\":\"a\",\"®\":\"(r)\",\"º\":\"o\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"Æ\":\"AE\",\"Ç\":\"C\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"Ð\":\"D\",\"Ñ\":\"N\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"Ý\":\"Y\",\"Þ\":\"TH\",\"ß\":\"ss\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"æ\":\"ae\",\"ç\":\"c\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"ð\":\"d\",\"ñ\":\"n\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"ý\":\"y\",\"þ\":\"th\",\"ÿ\":\"y\",\"Ā\":\"A\",\"ā\":\"a\",\"Ă\":\"A\",\"ă\":\"a\",\"Ą\":\"A\",\"ą\":\"a\",\"Ć\":\"C\",\"ć\":\"c\",\"Č\":\"C\",\"č\":\"c\",\"Ď\":\"D\",\"ď\":\"d\",\"Đ\":\"DJ\",\"đ\":\"dj\",\"Ē\":\"E\",\"ē\":\"e\",\"Ė\":\"E\",\"ė\":\"e\",\"Ę\":\"e\",\"ę\":\"e\",\"Ě\":\"E\",\"ě\":\"e\",\"Ğ\":\"G\",\"ğ\":\"g\",\"Ģ\":\"G\",\"ģ\":\"g\",\"Ĩ\":\"I\",\"ĩ\":\"i\",\"Ī\":\"i\",\"ī\":\"i\",\"Į\":\"I\",\"į\":\"i\",\"İ\":\"I\",\"ı\":\"i\",\"Ķ\":\"k\",\"ķ\":\"k\",\"Ļ\":\"L\",\"ļ\":\"l\",\"Ľ\":\"L\",\"ľ\":\"l\",\"Ł\":\"L\",\"ł\":\"l\",\"Ń\":\"N\",\"ń\":\"n\",\"Ņ\":\"N\",\"ņ\":\"n\",\"Ň\":\"N\",\"ň\":\"n\",\"Ō\":\"O\",\"ō\":\"o\",\"Ő\":\"O\",\"ő\":\"o\",\"Œ\":\"OE\",\"œ\":\"oe\",\"Ŕ\":\"R\",\"ŕ\":\"r\",\"Ř\":\"R\",\"ř\":\"r\",\"Ś\":\"S\",\"ś\":\"s\",\"Ş\":\"S\",\"ş\":\"s\",\"Š\":\"S\",\"š\":\"s\",\"Ţ\":\"T\",\"ţ\":\"t\",\"Ť\":\"T\",\"ť\":\"t\",\"Ũ\":\"U\",\"ũ\":\"u\",\"Ū\":\"u\",\"ū\":\"u\",\"Ů\":\"U\",\"ů\":\"u\",\"Ű\":\"U\",\"ű\":\"u\",\"Ų\":\"U\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"ź\":\"z\",\"Ż\":\"Z\",\"ż\":\"z\",\"Ž\":\"Z\",\"ž\":\"z\",\"Ə\":\"E\",\"ƒ\":\"f\",\"Ơ\":\"O\",\"ơ\":\"o\",\"Ư\":\"U\",\"ư\":\"u\",\"Lj\":\"LJ\",\"lj\":\"lj\",\"Nj\":\"NJ\",\"nj\":\"nj\",\"Ș\":\"S\",\"ș\":\"s\",\"Ț\":\"T\",\"ț\":\"t\",\"ə\":\"e\",\"˚\":\"o\",\"Ά\":\"A\",\"Έ\":\"E\",\"Ή\":\"H\",\"Ί\":\"I\",\"Ό\":\"O\",\"Ύ\":\"Y\",\"Ώ\":\"W\",\"ΐ\":\"i\",\"Α\":\"A\",\"Β\":\"B\",\"Γ\":\"G\",\"Δ\":\"D\",\"Ε\":\"E\",\"Ζ\":\"Z\",\"Η\":\"H\",\"Θ\":\"8\",\"Ι\":\"I\",\"Κ\":\"K\",\"Λ\":\"L\",\"Μ\":\"M\",\"Ν\":\"N\",\"Ξ\":\"3\",\"Ο\":\"O\",\"Π\":\"P\",\"Ρ\":\"R\",\"Σ\":\"S\",\"Τ\":\"T\",\"Υ\":\"Y\",\"Φ\":\"F\",\"Χ\":\"X\",\"Ψ\":\"PS\",\"Ω\":\"W\",\"Ϊ\":\"I\",\"Ϋ\":\"Y\",\"ά\":\"a\",\"έ\":\"e\",\"ή\":\"h\",\"ί\":\"i\",\"ΰ\":\"y\",\"α\":\"a\",\"β\":\"b\",\"γ\":\"g\",\"δ\":\"d\",\"ε\":\"e\",\"ζ\":\"z\",\"η\":\"h\",\"θ\":\"8\",\"ι\":\"i\",\"κ\":\"k\",\"λ\":\"l\",\"μ\":\"m\",\"ν\":\"n\",\"ξ\":\"3\",\"ο\":\"o\",\"π\":\"p\",\"ρ\":\"r\",\"ς\":\"s\",\"σ\":\"s\",\"τ\":\"t\",\"υ\":\"y\",\"φ\":\"f\",\"χ\":\"x\",\"ψ\":\"ps\",\"ω\":\"w\",\"ϊ\":\"i\",\"ϋ\":\"y\",\"ό\":\"o\",\"ύ\":\"y\",\"ώ\":\"w\",\"Ё\":\"Yo\",\"Ђ\":\"DJ\",\"Є\":\"Ye\",\"І\":\"I\",\"Ї\":\"Yi\",\"Ј\":\"J\",\"Љ\":\"LJ\",\"Њ\":\"NJ\",\"Ћ\":\"C\",\"Џ\":\"DZ\",\"А\":\"A\",\"Б\":\"B\",\"В\":\"V\",\"Г\":\"G\",\"Д\":\"D\",\"Е\":\"E\",\"Ж\":\"Zh\",\"З\":\"Z\",\"И\":\"I\",\"Й\":\"J\",\"К\":\"K\",\"Л\":\"L\",\"М\":\"M\",\"Н\":\"N\",\"О\":\"O\",\"П\":\"P\",\"Р\":\"R\",\"С\":\"S\",\"Т\":\"T\",\"У\":\"U\",\"Ф\":\"F\",\"Х\":\"H\",\"Ц\":\"C\",\"Ч\":\"Ch\",\"Ш\":\"Sh\",\"Щ\":\"Sh\",\"Ъ\":\"U\",\"Ы\":\"Y\",\"Ь\":\"\",\"Э\":\"E\",\"Ю\":\"Yu\",\"Я\":\"Ya\",\"а\":\"a\",\"б\":\"b\",\"в\":\"v\",\"г\":\"g\",\"д\":\"d\",\"е\":\"e\",\"ж\":\"zh\",\"з\":\"z\",\"и\":\"i\",\"й\":\"j\",\"к\":\"k\",\"л\":\"l\",\"м\":\"m\",\"н\":\"n\",\"о\":\"o\",\"п\":\"p\",\"р\":\"r\",\"с\":\"s\",\"т\":\"t\",\"у\":\"u\",\"ф\":\"f\",\"х\":\"h\",\"ц\":\"c\",\"ч\":\"ch\",\"ш\":\"sh\",\"щ\":\"sh\",\"ъ\":\"u\",\"ы\":\"y\",\"ь\":\"\",\"э\":\"e\",\"ю\":\"yu\",\"я\":\"ya\",\"ё\":\"yo\",\"ђ\":\"dj\",\"є\":\"ye\",\"і\":\"i\",\"ї\":\"yi\",\"ј\":\"j\",\"љ\":\"lj\",\"њ\":\"nj\",\"ћ\":\"c\",\"ѝ\":\"u\",\"џ\":\"dz\",\"Ґ\":\"G\",\"ґ\":\"g\",\"Ғ\":\"GH\",\"ғ\":\"gh\",\"Қ\":\"KH\",\"қ\":\"kh\",\"Ң\":\"NG\",\"ң\":\"ng\",\"Ү\":\"UE\",\"ү\":\"ue\",\"Ұ\":\"U\",\"ұ\":\"u\",\"Һ\":\"H\",\"һ\":\"h\",\"Ә\":\"AE\",\"ә\":\"ae\",\"Ө\":\"OE\",\"ө\":\"oe\",\"Ա\":\"A\",\"Բ\":\"B\",\"Գ\":\"G\",\"Դ\":\"D\",\"Ե\":\"E\",\"Զ\":\"Z\",\"Է\":\"E\\'\",\"Ը\":\"Y\\'\",\"Թ\":\"T\\'\",\"Ժ\":\"JH\",\"Ի\":\"I\",\"Լ\":\"L\",\"Խ\":\"X\",\"Ծ\":\"C\\'\",\"Կ\":\"K\",\"Հ\":\"H\",\"Ձ\":\"D\\'\",\"Ղ\":\"GH\",\"Ճ\":\"TW\",\"Մ\":\"M\",\"Յ\":\"Y\",\"Ն\":\"N\",\"Շ\":\"SH\",\"Չ\":\"CH\",\"Պ\":\"P\",\"Ջ\":\"J\",\"Ռ\":\"R\\'\",\"Ս\":\"S\",\"Վ\":\"V\",\"Տ\":\"T\",\"Ր\":\"R\",\"Ց\":\"C\",\"Փ\":\"P\\'\",\"Ք\":\"Q\\'\",\"Օ\":\"O\\'\\'\",\"Ֆ\":\"F\",\"և\":\"EV\",\"ء\":\"a\",\"آ\":\"aa\",\"أ\":\"a\",\"ؤ\":\"u\",\"إ\":\"i\",\"ئ\":\"e\",\"ا\":\"a\",\"ب\":\"b\",\"ة\":\"h\",\"ت\":\"t\",\"ث\":\"th\",\"ج\":\"j\",\"ح\":\"h\",\"خ\":\"kh\",\"د\":\"d\",\"ذ\":\"th\",\"ر\":\"r\",\"ز\":\"z\",\"س\":\"s\",\"ش\":\"sh\",\"ص\":\"s\",\"ض\":\"dh\",\"ط\":\"t\",\"ظ\":\"z\",\"ع\":\"a\",\"غ\":\"gh\",\"ف\":\"f\",\"ق\":\"q\",\"ك\":\"k\",\"ل\":\"l\",\"م\":\"m\",\"ن\":\"n\",\"ه\":\"h\",\"و\":\"w\",\"ى\":\"a\",\"ي\":\"y\",\"ً\":\"an\",\"ٌ\":\"on\",\"ٍ\":\"en\",\"َ\":\"a\",\"ُ\":\"u\",\"ِ\":\"e\",\"ْ\":\"\",\"٠\":\"0\",\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"پ\":\"p\",\"چ\":\"ch\",\"ژ\":\"zh\",\"ک\":\"k\",\"گ\":\"g\",\"ی\":\"y\",\"۰\":\"0\",\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"฿\":\"baht\",\"ა\":\"a\",\"ბ\":\"b\",\"გ\":\"g\",\"დ\":\"d\",\"ე\":\"e\",\"ვ\":\"v\",\"ზ\":\"z\",\"თ\":\"t\",\"ი\":\"i\",\"კ\":\"k\",\"ლ\":\"l\",\"მ\":\"m\",\"ნ\":\"n\",\"ო\":\"o\",\"პ\":\"p\",\"ჟ\":\"zh\",\"რ\":\"r\",\"ს\":\"s\",\"ტ\":\"t\",\"უ\":\"u\",\"ფ\":\"f\",\"ქ\":\"k\",\"ღ\":\"gh\",\"ყ\":\"q\",\"შ\":\"sh\",\"ჩ\":\"ch\",\"ც\":\"ts\",\"ძ\":\"dz\",\"წ\":\"ts\",\"ჭ\":\"ch\",\"ხ\":\"kh\",\"ჯ\":\"j\",\"ჰ\":\"h\",\"Ṣ\":\"S\",\"ṣ\":\"s\",\"Ẁ\":\"W\",\"ẁ\":\"w\",\"Ẃ\":\"W\",\"ẃ\":\"w\",\"Ẅ\":\"W\",\"ẅ\":\"w\",\"ẞ\":\"SS\",\"Ạ\":\"A\",\"ạ\":\"a\",\"Ả\":\"A\",\"ả\":\"a\",\"Ấ\":\"A\",\"ấ\":\"a\",\"Ầ\":\"A\",\"ầ\":\"a\",\"Ẩ\":\"A\",\"ẩ\":\"a\",\"Ẫ\":\"A\",\"ẫ\":\"a\",\"Ậ\":\"A\",\"ậ\":\"a\",\"Ắ\":\"A\",\"ắ\":\"a\",\"Ằ\":\"A\",\"ằ\":\"a\",\"Ẳ\":\"A\",\"ẳ\":\"a\",\"Ẵ\":\"A\",\"ẵ\":\"a\",\"Ặ\":\"A\",\"ặ\":\"a\",\"Ẹ\":\"E\",\"ẹ\":\"e\",\"Ẻ\":\"E\",\"ẻ\":\"e\",\"Ẽ\":\"E\",\"ẽ\":\"e\",\"Ế\":\"E\",\"ế\":\"e\",\"Ề\":\"E\",\"ề\":\"e\",\"Ể\":\"E\",\"ể\":\"e\",\"Ễ\":\"E\",\"ễ\":\"e\",\"Ệ\":\"E\",\"ệ\":\"e\",\"Ỉ\":\"I\",\"ỉ\":\"i\",\"Ị\":\"I\",\"ị\":\"i\",\"Ọ\":\"O\",\"ọ\":\"o\",\"Ỏ\":\"O\",\"ỏ\":\"o\",\"Ố\":\"O\",\"ố\":\"o\",\"Ồ\":\"O\",\"ồ\":\"o\",\"Ổ\":\"O\",\"ổ\":\"o\",\"Ỗ\":\"O\",\"ỗ\":\"o\",\"Ộ\":\"O\",\"ộ\":\"o\",\"Ớ\":\"O\",\"ớ\":\"o\",\"Ờ\":\"O\",\"ờ\":\"o\",\"Ở\":\"O\",\"ở\":\"o\",\"Ỡ\":\"O\",\"ỡ\":\"o\",\"Ợ\":\"O\",\"ợ\":\"o\",\"Ụ\":\"U\",\"ụ\":\"u\",\"Ủ\":\"U\",\"ủ\":\"u\",\"Ứ\":\"U\",\"ứ\":\"u\",\"Ừ\":\"U\",\"ừ\":\"u\",\"Ử\":\"U\",\"ử\":\"u\",\"Ữ\":\"U\",\"ữ\":\"u\",\"Ự\":\"U\",\"ự\":\"u\",\"Ỳ\":\"Y\",\"ỳ\":\"y\",\"Ỵ\":\"Y\",\"ỵ\":\"y\",\"Ỷ\":\"Y\",\"ỷ\":\"y\",\"Ỹ\":\"Y\",\"ỹ\":\"y\",\"–\":\"-\",\"‘\":\"\\'\",\"’\":\"\\'\",\"“\":\"\\\\\\\"\",\"”\":\"\\\\\\\"\",\"„\":\"\\\\\\\"\",\"†\":\"+\",\"•\":\"*\",\"…\":\"...\",\"₠\":\"ecu\",\"₢\":\"cruzeiro\",\"₣\":\"french franc\",\"₤\":\"lira\",\"₥\":\"mill\",\"₦\":\"naira\",\"₧\":\"peseta\",\"₨\":\"rupee\",\"₩\":\"won\",\"₪\":\"new shequel\",\"₫\":\"dong\",\"€\":\"euro\",\"₭\":\"kip\",\"₮\":\"tugrik\",\"₯\":\"drachma\",\"₰\":\"penny\",\"₱\":\"peso\",\"₲\":\"guarani\",\"₳\":\"austral\",\"₴\":\"hryvnia\",\"₵\":\"cedi\",\"₸\":\"kazakhstani tenge\",\"₹\":\"indian rupee\",\"₺\":\"turkish lira\",\"₽\":\"russian ruble\",\"₿\":\"bitcoin\",\"℠\":\"sm\",\"™\":\"tm\",\"∂\":\"d\",\"∆\":\"delta\",\"∑\":\"sum\",\"∞\":\"infinity\",\"♥\":\"love\",\"元\":\"yuan\",\"円\":\"yen\",\"﷼\":\"rial\",\"ﻵ\":\"laa\",\"ﻷ\":\"laa\",\"ﻹ\":\"lai\",\"ﻻ\":\"la\"}')\n var locales = JSON.parse('{\"bg\":{\"Й\":\"Y\",\"Ц\":\"Ts\",\"Щ\":\"Sht\",\"Ъ\":\"A\",\"Ь\":\"Y\",\"й\":\"y\",\"ц\":\"ts\",\"щ\":\"sht\",\"ъ\":\"a\",\"ь\":\"y\"},\"de\":{\"Ä\":\"AE\",\"ä\":\"ae\",\"Ö\":\"OE\",\"ö\":\"oe\",\"Ü\":\"UE\",\"ü\":\"ue\",\"ß\":\"ss\",\"%\":\"prozent\",\"&\":\"und\",\"|\":\"oder\",\"∑\":\"summe\",\"∞\":\"unendlich\",\"♥\":\"liebe\"},\"es\":{\"%\":\"por ciento\",\"&\":\"y\",\"<\":\"menor que\",\">\":\"mayor que\",\"|\":\"o\",\"¢\":\"centavos\",\"£\":\"libras\",\"¤\":\"moneda\",\"₣\":\"francos\",\"∑\":\"suma\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"fr\":{\"%\":\"pourcent\",\"&\":\"et\",\"<\":\"plus petit\",\">\":\"plus grand\",\"|\":\"ou\",\"¢\":\"centime\",\"£\":\"livre\",\"¤\":\"devise\",\"₣\":\"franc\",\"∑\":\"somme\",\"∞\":\"infini\",\"♥\":\"amour\"},\"pt\":{\"%\":\"porcento\",\"&\":\"e\",\"<\":\"menor\",\">\":\"maior\",\"|\":\"ou\",\"¢\":\"centavo\",\"∑\":\"soma\",\"£\":\"libra\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"uk\":{\"И\":\"Y\",\"и\":\"y\",\"Й\":\"Y\",\"й\":\"y\",\"Ц\":\"Ts\",\"ц\":\"ts\",\"Х\":\"Kh\",\"х\":\"kh\",\"Щ\":\"Shch\",\"щ\":\"shch\",\"Г\":\"H\",\"г\":\"h\"},\"vi\":{\"Đ\":\"D\",\"đ\":\"d\"},\"da\":{\"Ø\":\"OE\",\"ø\":\"oe\",\"Å\":\"AA\",\"å\":\"aa\",\"%\":\"procent\",\"&\":\"og\",\"|\":\"eller\",\"$\":\"dollar\",\"<\":\"mindre end\",\">\":\"større end\"},\"nb\":{\"&\":\"og\",\"Å\":\"AA\",\"Æ\":\"AE\",\"Ø\":\"OE\",\"å\":\"aa\",\"æ\":\"ae\",\"ø\":\"oe\"},\"it\":{\"&\":\"e\"},\"nl\":{\"&\":\"en\"},\"sv\":{\"&\":\"och\",\"Å\":\"AA\",\"Ä\":\"AE\",\"Ö\":\"OE\",\"å\":\"aa\",\"ä\":\"ae\",\"ö\":\"oe\"}}')\n\n function replace (string, options) {\n if (typeof string !== 'string') {\n throw new Error('slugify: string argument expected')\n }\n\n options = (typeof options === 'string')\n ? {replacement: options}\n : options || {}\n\n var locale = locales[options.locale] || {}\n\n var replacement = options.replacement === undefined ? '-' : options.replacement\n\n var trim = options.trim === undefined ? true : options.trim\n\n var slug = string.normalize().split('')\n // replace characters based on charMap\n .reduce(function (result, ch) {\n var appendChar = locale[ch];\n if (appendChar === undefined) appendChar = charMap[ch];\n if (appendChar === undefined) appendChar = ch;\n if (appendChar === replacement) appendChar = ' ';\n return result + appendChar\n // remove not allowed characters\n .replace(options.remove || /[^\\w\\s$*_+~.()'\"!\\-:@]+/g, '')\n }, '');\n\n if (options.strict) {\n slug = slug.replace(/[^A-Za-z0-9\\s]/g, '');\n }\n\n if (trim) {\n slug = slug.trim()\n }\n\n // Replace spaces with replacement character, treating multiple consecutive\n // spaces as a single space.\n slug = slug.replace(/\\s+/g, replacement);\n\n if (options.lower) {\n slug = slug.toLowerCase()\n }\n\n return slug\n }\n\n replace.extend = function (customMap) {\n Object.assign(charMap, customMap)\n }\n\n return replace\n}))\n",
6
+ "/* global define */\n\n(function (root, pluralize) {\n /* istanbul ignore else */\n if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') {\n // Node.\n module.exports = pluralize();\n } else if (typeof define === 'function' && define.amd) {\n // AMD, registers as an anonymous module.\n define(function () {\n return pluralize();\n });\n } else {\n // Browser global.\n root.pluralize = pluralize();\n }\n})(this, function () {\n // Rule storage - pluralize and singularize need to be run sequentially,\n // while other rules can be optimized using an object for instant lookups.\n var pluralRules = [];\n var singularRules = [];\n var uncountables = {};\n var irregularPlurals = {};\n var irregularSingles = {};\n\n /**\n * Sanitize a pluralization rule to a usable regular expression.\n *\n * @param {(RegExp|string)} rule\n * @return {RegExp}\n */\n function sanitizeRule (rule) {\n if (typeof rule === 'string') {\n return new RegExp('^' + rule + '$', 'i');\n }\n\n return rule;\n }\n\n /**\n * Pass in a word token to produce a function that can replicate the case on\n * another word.\n *\n * @param {string} word\n * @param {string} token\n * @return {Function}\n */\n function restoreCase (word, token) {\n // Tokens are an exact match.\n if (word === token) return token;\n\n // Lower cased words. E.g. \"hello\".\n if (word === word.toLowerCase()) return token.toLowerCase();\n\n // Upper cased words. E.g. \"WHISKY\".\n if (word === word.toUpperCase()) return token.toUpperCase();\n\n // Title cased words. E.g. \"Title\".\n if (word[0] === word[0].toUpperCase()) {\n return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase();\n }\n\n // Lower cased words. E.g. \"test\".\n return token.toLowerCase();\n }\n\n /**\n * Interpolate a regexp string.\n *\n * @param {string} str\n * @param {Array} args\n * @return {string}\n */\n function interpolate (str, args) {\n return str.replace(/\\$(\\d{1,2})/g, function (match, index) {\n return args[index] || '';\n });\n }\n\n /**\n * Replace a word using a rule.\n *\n * @param {string} word\n * @param {Array} rule\n * @return {string}\n */\n function replace (word, rule) {\n return word.replace(rule[0], function (match, index) {\n var result = interpolate(rule[1], arguments);\n\n if (match === '') {\n return restoreCase(word[index - 1], result);\n }\n\n return restoreCase(match, result);\n });\n }\n\n /**\n * Sanitize a word by passing in the word and sanitization rules.\n *\n * @param {string} token\n * @param {string} word\n * @param {Array} rules\n * @return {string}\n */\n function sanitizeWord (token, word, rules) {\n // Empty string or doesn't need fixing.\n if (!token.length || uncountables.hasOwnProperty(token)) {\n return word;\n }\n\n var len = rules.length;\n\n // Iterate over the sanitization rules and use the first one to match.\n while (len--) {\n var rule = rules[len];\n\n if (rule[0].test(word)) return replace(word, rule);\n }\n\n return word;\n }\n\n /**\n * Replace a word with the updated word.\n *\n * @param {Object} replaceMap\n * @param {Object} keepMap\n * @param {Array} rules\n * @return {Function}\n */\n function replaceWord (replaceMap, keepMap, rules) {\n return function (word) {\n // Get the correct token and case restoration functions.\n var token = word.toLowerCase();\n\n // Check against the keep object map.\n if (keepMap.hasOwnProperty(token)) {\n return restoreCase(word, token);\n }\n\n // Check against the replacement map for a direct word replacement.\n if (replaceMap.hasOwnProperty(token)) {\n return restoreCase(word, replaceMap[token]);\n }\n\n // Run all the rules against the word.\n return sanitizeWord(token, word, rules);\n };\n }\n\n /**\n * Check if a word is part of the map.\n */\n function checkWord (replaceMap, keepMap, rules, bool) {\n return function (word) {\n var token = word.toLowerCase();\n\n if (keepMap.hasOwnProperty(token)) return true;\n if (replaceMap.hasOwnProperty(token)) return false;\n\n return sanitizeWord(token, token, rules) === token;\n };\n }\n\n /**\n * Pluralize or singularize a word based on the passed in count.\n *\n * @param {string} word The word to pluralize\n * @param {number} count How many of the word exist\n * @param {boolean} inclusive Whether to prefix with the number (e.g. 3 ducks)\n * @return {string}\n */\n function pluralize (word, count, inclusive) {\n var pluralized = count === 1\n ? pluralize.singular(word) : pluralize.plural(word);\n\n return (inclusive ? count + ' ' : '') + pluralized;\n }\n\n /**\n * Pluralize a word.\n *\n * @type {Function}\n */\n pluralize.plural = replaceWord(\n irregularSingles, irregularPlurals, pluralRules\n );\n\n /**\n * Check if a word is plural.\n *\n * @type {Function}\n */\n pluralize.isPlural = checkWord(\n irregularSingles, irregularPlurals, pluralRules\n );\n\n /**\n * Singularize a word.\n *\n * @type {Function}\n */\n pluralize.singular = replaceWord(\n irregularPlurals, irregularSingles, singularRules\n );\n\n /**\n * Check if a word is singular.\n *\n * @type {Function}\n */\n pluralize.isSingular = checkWord(\n irregularPlurals, irregularSingles, singularRules\n );\n\n /**\n * Add a pluralization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addPluralRule = function (rule, replacement) {\n pluralRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add a singularization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addSingularRule = function (rule, replacement) {\n singularRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add an uncountable word rule.\n *\n * @param {(string|RegExp)} word\n */\n pluralize.addUncountableRule = function (word) {\n if (typeof word === 'string') {\n uncountables[word.toLowerCase()] = true;\n return;\n }\n\n // Set singular and plural references for the word.\n pluralize.addPluralRule(word, '$0');\n pluralize.addSingularRule(word, '$0');\n };\n\n /**\n * Add an irregular word definition.\n *\n * @param {string} single\n * @param {string} plural\n */\n pluralize.addIrregularRule = function (single, plural) {\n plural = plural.toLowerCase();\n single = single.toLowerCase();\n\n irregularSingles[single] = plural;\n irregularPlurals[plural] = single;\n };\n\n /**\n * Irregular rules.\n */\n [\n // Pronouns.\n ['I', 'we'],\n ['me', 'us'],\n ['he', 'they'],\n ['she', 'they'],\n ['them', 'them'],\n ['myself', 'ourselves'],\n ['yourself', 'yourselves'],\n ['itself', 'themselves'],\n ['herself', 'themselves'],\n ['himself', 'themselves'],\n ['themself', 'themselves'],\n ['is', 'are'],\n ['was', 'were'],\n ['has', 'have'],\n ['this', 'these'],\n ['that', 'those'],\n // Words ending in with a consonant and `o`.\n ['echo', 'echoes'],\n ['dingo', 'dingoes'],\n ['volcano', 'volcanoes'],\n ['tornado', 'tornadoes'],\n ['torpedo', 'torpedoes'],\n // Ends with `us`.\n ['genus', 'genera'],\n ['viscus', 'viscera'],\n // Ends with `ma`.\n ['stigma', 'stigmata'],\n ['stoma', 'stomata'],\n ['dogma', 'dogmata'],\n ['lemma', 'lemmata'],\n ['schema', 'schemata'],\n ['anathema', 'anathemata'],\n // Other irregular rules.\n ['ox', 'oxen'],\n ['axe', 'axes'],\n ['die', 'dice'],\n ['yes', 'yeses'],\n ['foot', 'feet'],\n ['eave', 'eaves'],\n ['goose', 'geese'],\n ['tooth', 'teeth'],\n ['quiz', 'quizzes'],\n ['human', 'humans'],\n ['proof', 'proofs'],\n ['carve', 'carves'],\n ['valve', 'valves'],\n ['looey', 'looies'],\n ['thief', 'thieves'],\n ['groove', 'grooves'],\n ['pickaxe', 'pickaxes'],\n ['passerby', 'passersby']\n ].forEach(function (rule) {\n return pluralize.addIrregularRule(rule[0], rule[1]);\n });\n\n /**\n * Pluralization rules.\n */\n [\n [/s?$/i, 's'],\n [/[^\\u0000-\\u007F]$/i, '$0'],\n [/([^aeiou]ese)$/i, '$1'],\n [/(ax|test)is$/i, '$1es'],\n [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, '$1es'],\n [/(e[mn]u)s?$/i, '$1s'],\n [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, '$1'],\n [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1i'],\n [/(alumn|alg|vertebr)(?:a|ae)$/i, '$1ae'],\n [/(seraph|cherub)(?:im)?$/i, '$1im'],\n [/(her|at|gr)o$/i, '$1oes'],\n [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, '$1a'],\n [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, '$1a'],\n [/sis$/i, 'ses'],\n [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, '$1$2ves'],\n [/([^aeiouy]|qu)y$/i, '$1ies'],\n [/([^ch][ieo][ln])ey$/i, '$1ies'],\n [/(x|ch|ss|sh|zz)$/i, '$1es'],\n [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, '$1ices'],\n [/\\b((?:tit)?m|l)(?:ice|ouse)$/i, '$1ice'],\n [/(pe)(?:rson|ople)$/i, '$1ople'],\n [/(child)(?:ren)?$/i, '$1ren'],\n [/eaux$/i, '$0'],\n [/m[ae]n$/i, 'men'],\n ['thou', 'you']\n ].forEach(function (rule) {\n return pluralize.addPluralRule(rule[0], rule[1]);\n });\n\n /**\n * Singularization rules.\n */\n [\n [/s$/i, ''],\n [/(ss)$/i, '$1'],\n [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\\w]|^)li)ves$/i, '$1fe'],\n [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, '$1f'],\n [/ies$/i, 'y'],\n [/\\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, '$1ie'],\n [/\\b(mon|smil)ies$/i, '$1ey'],\n [/\\b((?:tit)?m|l)ice$/i, '$1ouse'],\n [/(seraph|cherub)im$/i, '$1'],\n [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, '$1'],\n [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, '$1sis'],\n [/(movie|twelve|abuse|e[mn]u)s$/i, '$1'],\n [/(test)(?:is|es)$/i, '$1is'],\n [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1us'],\n [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, '$1um'],\n [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, '$1on'],\n [/(alumn|alg|vertebr)ae$/i, '$1a'],\n [/(cod|mur|sil|vert|ind)ices$/i, '$1ex'],\n [/(matr|append)ices$/i, '$1ix'],\n [/(pe)(rson|ople)$/i, '$1rson'],\n [/(child)ren$/i, '$1'],\n [/(eau)x?$/i, '$1'],\n [/men$/i, 'man']\n ].forEach(function (rule) {\n return pluralize.addSingularRule(rule[0], rule[1]);\n });\n\n /**\n * Uncountable rules.\n */\n [\n // Singular words with no plurals.\n 'adulthood',\n 'advice',\n 'agenda',\n 'aid',\n 'aircraft',\n 'alcohol',\n 'ammo',\n 'analytics',\n 'anime',\n 'athletics',\n 'audio',\n 'bison',\n 'blood',\n 'bream',\n 'buffalo',\n 'butter',\n 'carp',\n 'cash',\n 'chassis',\n 'chess',\n 'clothing',\n 'cod',\n 'commerce',\n 'cooperation',\n 'corps',\n 'debris',\n 'diabetes',\n 'digestion',\n 'elk',\n 'energy',\n 'equipment',\n 'excretion',\n 'expertise',\n 'firmware',\n 'flounder',\n 'fun',\n 'gallows',\n 'garbage',\n 'graffiti',\n 'hardware',\n 'headquarters',\n 'health',\n 'herpes',\n 'highjinks',\n 'homework',\n 'housework',\n 'information',\n 'jeans',\n 'justice',\n 'kudos',\n 'labour',\n 'literature',\n 'machinery',\n 'mackerel',\n 'mail',\n 'media',\n 'mews',\n 'moose',\n 'music',\n 'mud',\n 'manga',\n 'news',\n 'only',\n 'personnel',\n 'pike',\n 'plankton',\n 'pliers',\n 'police',\n 'pollution',\n 'premises',\n 'rain',\n 'research',\n 'rice',\n 'salmon',\n 'scissors',\n 'series',\n 'sewage',\n 'shambles',\n 'shrimp',\n 'software',\n 'species',\n 'staff',\n 'swine',\n 'tennis',\n 'traffic',\n 'transportation',\n 'trout',\n 'tuna',\n 'wealth',\n 'welfare',\n 'whiting',\n 'wildebeest',\n 'wildlife',\n 'you',\n /pok[eé]mon$/i,\n // Regexes.\n /[^aeiou]ese$/i, // \"chinese\", \"japanese\"\n /deer$/i, // \"deer\", \"reindeer\"\n /fish$/i, // \"fish\", \"blowfish\", \"angelfish\"\n /measles$/i,\n /o[iu]s$/i, // \"carnivorous\"\n /pox$/i, // \"chickpox\", \"smallpox\"\n /sheep$/i\n ].forEach(pluralize.addUncountableRule);\n\n return pluralize;\n});\n",
7
+ "import type { IntRange } from '@stacksjs/scheduler'\n\n/**\n * Cron Job Options.\n */\nexport interface JobOptions {\n /**\n * The name of the job.\n */\n name?: string\n\n handle?: string | Function\n action?: string\n description?: string\n queue?: string\n timezone?: string\n /**\n * Number of tries. Must be between 0 and 185.\n */\n tries?: IntRange<0, 185>\n backoff?: number | number[]\n rate?: string | Every\n enabled?: boolean\n}\n\nexport type JobConfig = JobOptions\nexport type Job = JobOptions\nexport type Jobs = Job[]\nexport type CronJob = Job\nexport type CronJobs = Jobs\n\nexport enum Every {\n // Second = '* * * * * *',\n // FiveSeconds = '*/5 * * * * *',\n // TenSeconds = '*/10 * * * * *',\n // ThirtySeconds = '*/30 * * * * *',\n Minute = '* * * * *',\n TwoMinutes = '*/2 * * * *',\n FiveMinutes = '*/5 * * * *',\n TenMinutes = '*/10 * * * *',\n FifteenMinutes = '*/15 * * * *',\n ThirtyMinutes = '*/30 * * * *',\n Hour = '0 * * * *',\n HalfHour = '0,30 * * * *',\n Day = '0 0 * * *',\n Week = '0 0 * * 0',\n Weekday = '0 0 * * 1-5',\n Weekend = '0 0 * * 0,6',\n Month = '0 0 1 * *',\n Year = '0 0 1 1 *',\n}\n",
8
+ "import type { UserConfig } from 'vitepress'\n\nexport interface DocsUserConfig extends UserConfig {\n deploy: boolean\n}\n\nexport type DocsConfig = DocsUserConfig\nexport type DocsOptions = Partial<DocsConfig>\n\nexport interface SocialLink {\n icon: SocialLinkIcon\n link: string\n ariaLabel?: string\n}\n\nexport enum SocialLinkIcon {\n Discord = 'discord',\n Facebook = 'facebook',\n GitHub = 'github',\n Instagram = 'instagram',\n LinkedIn = 'linkedin',\n Mastodon = 'mastodon',\n Slack = 'slack',\n Twitter = 'twitter',\n YouTube = 'youtube',\n}\n",
9
+ "/**\n * CLI exit codes.\n *\n * @see https://nodejs.org/api/process.html#process_exit_codes\n */\nexport enum ExitCode {\n Success = 0,\n FatalError = 1,\n InvalidArgument = 9,\n}\n",
10
+ "import type { LogLevel } from 'consola'\nimport { LogLevels, LogTypes } from 'consola'\n\n/**\n * **Logger Options**\n *\n * This configuration defines all of your logger options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport interface LoggerOptions {\n /**\n * **Log Level**\n *\n * The log level is a number that represents the verbosity of the logs. The higher the number,\n * the more verbose the logs will be. The log levels are as follows:\n *\n * - 0: Error\n * - 1: Warning\n * - 2: Normal\n * - 3: Info\n * - 4: Debug\n * - 5: Trace\n * - -999: Silent\n * - +999: Verbose\n *\n * @default 3\n */\n level: LogLevel\n\n /**\n * **Log File Path**\n *\n * The path to the log file. This will be used to write logs to a file. If you do not want to\n * write logs to a file, you may set this to `null`.\n *\n * @default 'storage/logs/console.log'\n */\n logFilePath: string\n\n /**\n * **Errors Log Path**\n *\n * The path to the errors log file. This will be used to write error logs to a file. If you do\n * not want to write error logs to a file, you may set this to `null`.\n *\n * @default 'storage/logs/errors.log'\n */\n errorsPath: string\n}\n\nexport type LoggerConfig = Partial<LoggerOptions>\n\nexport { LogLevels, LogTypes }\n",
11
+ "import slugify from 'slugify'\n\ninterface SlugOptions {\n replacement?: string\n remove?: RegExp\n lower?: boolean\n strict?: boolean\n locale?: string\n trim?: boolean\n}\n\n// port from nanoid\n// https://github.com/ai/nanoid\nconst urlAlphabet = 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\n/**\n * Replace backslash to slash\n *\n * @category String\n * @example\n * ```\n * slash('C:\\\\Users\\\\Chris') => 'C:/Users/Chris'\n * ```\n */\nexport function slash(str: string) {\n return str.replace(/\\\\/g, '/')\n}\n\n/**\n * Ensure prefix of a string\n *\n * @category String\n * @example\n * ```\n * ensurePrefix('https://', 'google.com') => 'https://google.com'\n * ensurePrefix('https://', 'http://google.com') => 'https://google.com'\n */\nexport function ensurePrefix(prefix: string, str: string) {\n if (!str.startsWith(prefix)) return prefix + str\n return str\n}\n\n/**\n * Ensure suffix of a string\n *\n * @category String\n * @example\n * ```\n * ensureSuffix('.js', 'index') => 'index.js'\n * ensureSuffix('.js', 'index.js') => 'index.js'\n * ```\n */\nexport function ensureSuffix(suffix: string, str: string) {\n return str.endsWith(suffix) ? str : str + suffix\n}\n\n/**\n * Dead simple template engine, just like Python's `.format()`\n *\n * @category String\n * @example\n * ```\n * const result = template('Hello {0}! My name is {1}.',\n * 'Buddy',\n * 'Chris'\n * ) // Hello Buddy! My name is Chris.\n * ```\n */\nexport function template(str: string, ...args: any[]): string {\n return str.replace(/{(\\d+)}/g, (match, key) => {\n const index = Number(key)\n\n return Number.isNaN(index) ? match : args[index]\n })\n}\n\nexport function truncate(str: string, length: number, end = '...') {\n if (str.length <= length) return str\n\n return str.slice(0, length - end.length) + end\n}\n\n/**\n * Generate a random string\n * @category String\n */\nexport function random(size = 16, dict = urlAlphabet) {\n let id = ''\n let i = size\n const len = dict.length\n while (i--) id += dict[(Math.random() * len) | 0]\n return id\n}\n\n/**\n * Slugify a string\n * @category string\n * @example\n * ```\n * slug('Hello World') => 'hello-world'\n * ```\n */\nexport function slug(str: string, options?: SlugOptions): string {\n if (options) return slugify(str, options)\n\n return slugify(str, {\n lower: true,\n strict: true,\n })\n}\n\nexport { default as detectIndent } from 'detect-indent'\nexport { detectNewline } from 'detect-newline'\n",
12
+ "const TOKENS = /(\\S+)|(.)/g;\nconst IS_SPECIAL_CASE = /[\\.#]\\p{Alphabetic}/u; // #tag, example.com, etc.\nconst IS_MANUAL_CASE = /\\p{Ll}(?=[\\p{Lu}])/u; // iPhone, iOS, etc.\nconst ALPHANUMERIC_PATTERN = /\\p{Alphabetic}+/gu;\nconst IS_ACRONYM = /^(\\P{Alphabetic})*(?:\\p{Alphabetic}\\.){2,}(\\P{Alphabetic})*$/u;\nexport const WORD_SEPARATORS = new Set([\"—\", \"–\", \"-\", \"―\", \"/\"]);\nexport const SENTENCE_TERMINATORS = new Set([\".\", \"!\", \"?\"]);\nexport const TITLE_TERMINATORS = new Set([\n ...SENTENCE_TERMINATORS,\n \":\",\n '\"',\n \"'\",\n \"”\",\n]);\nexport const SMALL_WORDS = new Set([\n \"a\",\n \"an\",\n \"and\",\n \"as\",\n \"at\",\n \"because\",\n \"but\",\n \"by\",\n \"en\",\n \"for\",\n \"if\",\n \"in\",\n \"neither\",\n \"nor\",\n \"of\",\n \"on\",\n \"only\",\n \"or\",\n \"over\",\n \"per\",\n \"so\",\n \"some\",\n \"than\",\n \"that\",\n \"the\",\n \"to\",\n \"up\",\n \"upon\",\n \"v\",\n \"versus\",\n \"via\",\n \"vs\",\n \"when\",\n \"with\",\n \"without\",\n \"yet\",\n]);\nexport function titleCase(input, options = {}) {\n const { locale = undefined, sentenceCase = false, sentenceTerminators = SENTENCE_TERMINATORS, titleTerminators = TITLE_TERMINATORS, smallWords = SMALL_WORDS, wordSeparators = WORD_SEPARATORS, } = typeof options === \"string\" || Array.isArray(options)\n ? { locale: options }\n : options;\n const terminators = sentenceCase ? sentenceTerminators : titleTerminators;\n let result = \"\";\n let isNewSentence = true;\n // tslint:disable-next-line\n for (const m of input.matchAll(TOKENS)) {\n const { 1: token, 2: whiteSpace, index = 0 } = m;\n if (whiteSpace) {\n result += whiteSpace;\n continue;\n }\n // Ignore URLs, email addresses, acronyms, etc.\n if (IS_SPECIAL_CASE.test(token)) {\n const acronym = token.match(IS_ACRONYM);\n // The period at the end of an acronym is not a new sentence,\n // but we should uppercase first for i.e., e.g., etc.\n if (acronym) {\n const [_, prefix = \"\", suffix = \"\"] = acronym;\n result +=\n sentenceCase && !isNewSentence\n ? token\n : upperAt(token, prefix.length, locale);\n isNewSentence = terminators.has(suffix.charAt(0));\n continue;\n }\n result += token;\n isNewSentence = terminators.has(token.charAt(token.length - 1));\n }\n else {\n const matches = Array.from(token.matchAll(ALPHANUMERIC_PATTERN));\n let value = token;\n let isSentenceEnd = false;\n for (let i = 0; i < matches.length; i++) {\n const { 0: word, index: wordIndex = 0 } = matches[i];\n const nextChar = token.charAt(wordIndex + word.length);\n isSentenceEnd = terminators.has(nextChar);\n // Always the capitalize first word and reset \"new sentence\".\n if (isNewSentence) {\n isNewSentence = false;\n }\n // Skip capitalizing all words if sentence case is enabled.\n else if (sentenceCase || IS_MANUAL_CASE.test(word)) {\n continue;\n }\n // Handle simple words.\n else if (matches.length === 1) {\n // Avoid capitalizing small words, except at the end of a sentence.\n if (smallWords.has(word)) {\n const isFinalToken = index + token.length === input.length;\n if (!isFinalToken && !isSentenceEnd) {\n continue;\n }\n }\n }\n // Multi-word tokens need to be parsed differently.\n else if (i > 0) {\n // Avoid capitalizing words without a valid word separator,\n // e.g. \"apple's\" or \"test(ing)\".\n if (!wordSeparators.has(token.charAt(wordIndex - 1))) {\n continue;\n }\n // Ignore small words in the middle of hyphenated words.\n if (smallWords.has(word) && wordSeparators.has(nextChar)) {\n continue;\n }\n }\n value = upperAt(value, wordIndex, locale);\n }\n result += value;\n isNewSentence =\n isSentenceEnd || terminators.has(token.charAt(token.length - 1));\n }\n }\n return result;\n}\nfunction upperAt(input, index, locale) {\n return (input.slice(0, index) +\n input.charAt(index).toLocaleUpperCase(locale) +\n input.slice(index + 1));\n}\n//# sourceMappingURL=index.js.map",
13
+ "import * as pluralize from 'pluralize'\n\ntype Rule = string | RegExp\ntype Replacement = string\ntype Word = string\nexport type PluralizeTest = (word: Word) => boolean\n\nexport interface Pluralize {\n plural: (word: Word, count?: number, inclusive?: boolean) => Word\n singular: (word: Word) => Word\n isPlural: (word: Word) => boolean\n isSingular: (word: Word) => boolean\n addPluralRule: (rule: Rule, replacement: Replacement) => void\n addSingularRule: (rule: Rule, replacement: Replacement) => void\n addIrregularRule: (single: Word, plural: Word) => void\n addUncountableRule: (word: Word | RegExp) => void\n}\n\nexport const plural: Pluralize['plural'] = (word, count, inclusive) => {\n if (count !== undefined && inclusive) return `${count} ${pluralize.plural(word)}`\n\n return pluralize.plural(word)\n}\n\nexport const singular: Pluralize['singular'] = (word) => pluralize.singular(word)\nexport const isPlural: Pluralize['isPlural'] = (word) => pluralize.isPlural(word)\nexport const isSingular: Pluralize['isSingular'] = (word) => pluralize.isSingular(word)\nexport const addPluralRule: Pluralize['addPluralRule'] = (rule, replacement) =>\n pluralize.addPluralRule(rule, replacement)\nexport const addSingularRule: Pluralize['addSingularRule'] = (rule, replacement) =>\n pluralize.addSingularRule(rule, replacement)\nexport const addIrregularRule: Pluralize['addIrregularRule'] = (single, plural) =>\n pluralize.addIrregularRule(single, plural)\nexport const addUncountableRule: Pluralize['addUncountableRule'] = (word) => pluralize.addUncountableRule(word)\n",
14
+ "export function toString(v: any) {\n return Object.prototype.toString.call(v)\n}\n",
15
+ "import { toString } from '@stacksjs/strings'\n\nexport function getTypeName(v: any) {\n if (v === null) return 'null'\n const type = toString(v).slice(8, -1).toLowerCase()\n\n return typeof v === 'object' || typeof v === 'function' ? type : typeof v\n}\n"
16
+ ],
17
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AACC,WAAU,CAAC,MAAM,MAAM,SAAS;AAC/B,eAAW,YAAY,UAAU;AAC/B,aAAO,UAAU,QAAQ;AACzB,aAAO,QAAQ,aAAa,QAAQ;AAAA,IACtC,kBAEgB,WAAW,cAAc,OAAO,KAAK;AACnD,aAAO,OAAO;AAAA,IAChB,OACK;AACH,WAAK,QAAQ,QAAQ;AAAA;AAAA,KAEvB,WAAW,iBAAe,GAAG;AAC7B,QAAI,UAAU,KAAK,MAAM,+yQAAk2K;AAC33K,QAAI,UAAU,KAAK,MAAM,o4CAAqmC;AAE9nC,aAAS,OAAQ,CAAC,QAAQ,SAAS;AACjC,iBAAW,WAAW,UAAU;AAC9B,cAAM,IAAI,MAAM,mCAAmC;AAAA,MACrD;AAEA,uBAAkB,YAAY,WAC1B,EAAC,aAAa,QAAO,IACrB,WAAW,CAAC;AAEhB,UAAI,SAAS,QAAQ,QAAQ,WAAW,CAAC;AAEzC,UAAI,cAAc,QAAQ,gBAAgB,YAAY,MAAM,QAAQ;AAEpE,UAAI,OAAO,QAAQ,SAAS,YAAY,OAAO,QAAQ;AAEvD,UAAI,OAAO,OAAO,UAAU,EAAE,MAAM,EAAE,EAEnC,eAAgB,CAAC,QAAQ,IAAI;AAC5B,YAAI,aAAa,OAAO;AACxB,YAAI,eAAe;AAAW,uBAAa,QAAQ;AACnD,YAAI,eAAe;AAAW,uBAAa;AAC3C,YAAI,eAAe;AAAa,uBAAa;AAC7C,eAAO,SAAS,WAEb,QAAQ,QAAQ,UAAU,4BAA4B,EAAE;AAAA,SAC1D,EAAE;AAEP,UAAI,QAAQ,QAAQ;AAClB,eAAO,KAAK,QAAQ,mBAAmB,EAAE;AAAA,MAC3C;AAEA,UAAI,MAAM;AACR,eAAO,KAAK,KAAK;AAAA,MACnB;AAIA,aAAO,KAAK,QAAQ,QAAQ,WAAW;AAEvC,UAAI,QAAQ,OAAO;AACjB,eAAO,KAAK,YAAY;AAAA,MAC1B;AAEA,aAAO;AAAA;AAGT,YAAQ,iBAAkB,CAAC,WAAW;AACpC,aAAO,OAAO,SAAS,SAAS;AAAA;AAGlC,WAAO;AAAA,GACR;AAAA;;;;AClED,WAAU,CAAC,MAAM,WAAW;AAE1B,eAA4C,YAAY,mBAAmB,WAAW,UAAU;AAE9F,aAAO,UAAU,UAAU;AAAA,IAC7B,kBAAkB,WAAW,cAAc,OAAO,KAAK;AAErD,qBAAgB,GAAG;AACjB,eAAO,UAAU;AAAA,OAClB;AAAA,IACH,OAAO;AAEL,WAAK,YAAY,UAAU;AAAA;AAAA,KAE5B,iBAAe,GAAG;AAGnB,QAAI,cAAc,CAAC;AACnB,QAAI,gBAAgB,CAAC;AACrB,QAAI,eAAe,CAAC;AACpB,QAAI,mBAAmB,CAAC;AACxB,QAAI,mBAAmB,CAAC;AAQxB,aAAS,YAAa,CAAC,MAAM;AAC3B,iBAAW,SAAS,UAAU;AAC5B,eAAO,IAAI,OAAO,MAAM,OAAO,KAAK,GAAG;AAAA,MACzC;AAEA,aAAO;AAAA;AAWT,aAAS,WAAY,CAAC,MAAM,OAAO;AAEjC,UAAI,SAAS;AAAO,eAAO;AAG3B,UAAI,SAAS,KAAK,YAAY;AAAG,eAAO,MAAM,YAAY;AAG1D,UAAI,SAAS,KAAK,YAAY;AAAG,eAAO,MAAM,YAAY;AAG1D,UAAI,KAAK,OAAO,KAAK,GAAG,YAAY,GAAG;AACrC,eAAO,MAAM,OAAO,CAAC,EAAE,YAAY,IAAI,MAAM,OAAO,CAAC,EAAE,YAAY;AAAA,MACrE;AAGA,aAAO,MAAM,YAAY;AAAA;AAU3B,aAAS,WAAY,CAAC,KAAK,MAAM;AAC/B,aAAO,IAAI,QAAQ,wBAAyB,CAAC,OAAO,OAAO;AACzD,eAAO,KAAK,UAAU;AAAA,OACvB;AAAA;AAUH,aAAS,OAAQ,CAAC,MAAM,MAAM;AAC5B,aAAO,KAAK,QAAQ,KAAK,YAAa,CAAC,OAAO,OAAO;AACnD,YAAI,SAAS,YAAY,KAAK,IAAI,SAAS;AAE3C,YAAI,UAAU,IAAI;AAChB,iBAAO,YAAY,KAAK,QAAQ,IAAI,MAAM;AAAA,QAC5C;AAEA,eAAO,YAAY,OAAO,MAAM;AAAA,OACjC;AAAA;AAWH,aAAS,YAAa,CAAC,OAAO,MAAM,OAAO;AAEzC,WAAK,MAAM,UAAU,aAAa,eAAe,KAAK,GAAG;AACvD,eAAO;AAAA,MACT;AAEA,UAAI,MAAM,MAAM;AAGhB,aAAO,OAAO;AACZ,YAAI,OAAO,MAAM;AAEjB,YAAI,KAAK,GAAG,KAAK,IAAI;AAAG,iBAAO,QAAQ,MAAM,IAAI;AAAA,MACnD;AAEA,aAAO;AAAA;AAWT,aAAS,WAAY,CAAC,YAAY,SAAS,OAAO;AAChD,qBAAgB,CAAC,MAAM;AAErB,YAAI,QAAQ,KAAK,YAAY;AAG7B,YAAI,QAAQ,eAAe,KAAK,GAAG;AACjC,iBAAO,YAAY,MAAM,KAAK;AAAA,QAChC;AAGA,YAAI,WAAW,eAAe,KAAK,GAAG;AACpC,iBAAO,YAAY,MAAM,WAAW,MAAM;AAAA,QAC5C;AAGA,eAAO,aAAa,OAAO,MAAM,KAAK;AAAA;AAAA;AAO1C,aAAS,SAAU,CAAC,YAAY,SAAS,OAAO,MAAM;AACpD,qBAAgB,CAAC,MAAM;AACrB,YAAI,QAAQ,KAAK,YAAY;AAE7B,YAAI,QAAQ,eAAe,KAAK;AAAG,iBAAO;AAC1C,YAAI,WAAW,eAAe,KAAK;AAAG,iBAAO;AAE7C,eAAO,aAAa,OAAO,OAAO,KAAK,MAAM;AAAA;AAAA;AAYjD,aAAS,SAAU,CAAC,MAAM,OAAO,WAAW;AAC1C,UAAI,aAAa,UAAU,IACvB,UAAU,SAAS,IAAI,IAAI,UAAU,OAAO,IAAI;AAEpD,cAAQ,YAAY,QAAQ,MAAM,MAAM;AAAA;AAQ1C,cAAU,SAAS,YACjB,kBAAkB,kBAAkB,WACtC;AAOA,cAAU,WAAW,UACnB,kBAAkB,kBAAkB,WACtC;AAOA,cAAU,WAAW,YACnB,kBAAkB,kBAAkB,aACtC;AAOA,cAAU,aAAa,UACrB,kBAAkB,kBAAkB,aACtC;AAQA,cAAU,wBAAyB,CAAC,MAAM,aAAa;AACrD,kBAAY,KAAK,CAAC,aAAa,IAAI,GAAG,WAAW,CAAC;AAAA;AASpD,cAAU,0BAA2B,CAAC,MAAM,aAAa;AACvD,oBAAc,KAAK,CAAC,aAAa,IAAI,GAAG,WAAW,CAAC;AAAA;AAQtD,cAAU,6BAA8B,CAAC,MAAM;AAC7C,iBAAW,SAAS,UAAU;AAC5B,qBAAa,KAAK,YAAY,KAAK;AACnC;AAAA,MACF;AAGA,gBAAU,cAAc,MAAM,IAAI;AAClC,gBAAU,gBAAgB,MAAM,IAAI;AAAA;AAStC,cAAU,2BAA4B,CAAC,QAAQ,QAAQ;AACrD,eAAS,OAAO,YAAY;AAC5B,eAAS,OAAO,YAAY;AAE5B,uBAAiB,UAAU;AAC3B,uBAAiB,UAAU;AAAA;AAM7B;AAAA,MAEE,CAAC,KAAK,IAAI;AAAA,MACV,CAAC,MAAM,IAAI;AAAA,MACX,CAAC,MAAM,MAAM;AAAA,MACb,CAAC,OAAO,MAAM;AAAA,MACd,CAAC,QAAQ,MAAM;AAAA,MACf,CAAC,UAAU,WAAW;AAAA,MACtB,CAAC,YAAY,YAAY;AAAA,MACzB,CAAC,UAAU,YAAY;AAAA,MACvB,CAAC,WAAW,YAAY;AAAA,MACxB,CAAC,WAAW,YAAY;AAAA,MACxB,CAAC,YAAY,YAAY;AAAA,MACzB,CAAC,MAAM,KAAK;AAAA,MACZ,CAAC,OAAO,MAAM;AAAA,MACd,CAAC,OAAO,MAAM;AAAA,MACd,CAAC,QAAQ,OAAO;AAAA,MAChB,CAAC,QAAQ,OAAO;AAAA,MAEhB,CAAC,QAAQ,QAAQ;AAAA,MACjB,CAAC,SAAS,SAAS;AAAA,MACnB,CAAC,WAAW,WAAW;AAAA,MACvB,CAAC,WAAW,WAAW;AAAA,MACvB,CAAC,WAAW,WAAW;AAAA,MAEvB,CAAC,SAAS,QAAQ;AAAA,MAClB,CAAC,UAAU,SAAS;AAAA,MAEpB,CAAC,UAAU,UAAU;AAAA,MACrB,CAAC,SAAS,SAAS;AAAA,MACnB,CAAC,SAAS,SAAS;AAAA,MACnB,CAAC,SAAS,SAAS;AAAA,MACnB,CAAC,UAAU,UAAU;AAAA,MACrB,CAAC,YAAY,YAAY;AAAA,MAEzB,CAAC,MAAM,MAAM;AAAA,MACb,CAAC,OAAO,MAAM;AAAA,MACd,CAAC,OAAO,MAAM;AAAA,MACd,CAAC,OAAO,OAAO;AAAA,MACf,CAAC,QAAQ,MAAM;AAAA,MACf,CAAC,QAAQ,OAAO;AAAA,MAChB,CAAC,SAAS,OAAO;AAAA,MACjB,CAAC,SAAS,OAAO;AAAA,MACjB,CAAC,QAAQ,SAAS;AAAA,MAClB,CAAC,SAAS,QAAQ;AAAA,MAClB,CAAC,SAAS,QAAQ;AAAA,MAClB,CAAC,SAAS,QAAQ;AAAA,MAClB,CAAC,SAAS,QAAQ;AAAA,MAClB,CAAC,SAAS,QAAQ;AAAA,MAClB,CAAC,SAAS,SAAS;AAAA,MACnB,CAAC,UAAU,SAAS;AAAA,MACpB,CAAC,WAAW,UAAU;AAAA,MACtB,CAAC,YAAY,WAAW;AAAA,IAC1B,EAAE,gBAAiB,CAAC,MAAM;AACxB,aAAO,UAAU,iBAAiB,KAAK,IAAI,KAAK,EAAE;AAAA,KACnD;AAKD;AAAA,MACE,CAAC,QAAQ,GAAG;AAAA,MACZ,CAAC,sBAAsB,IAAI;AAAA,MAC3B,CAAC,mBAAmB,IAAI;AAAA,MACxB,CAAC,iBAAiB,MAAM;AAAA,MACxB,CAAC,sCAAsC,MAAM;AAAA,MAC7C,CAAC,gBAAgB,KAAK;AAAA,MACtB,CAAC,0CAA0C,IAAI;AAAA,MAC/C,CAAC,6FAA6F,KAAK;AAAA,MACnG,CAAC,iCAAiC,MAAM;AAAA,MACxC,CAAC,4BAA4B,MAAM;AAAA,MACnC,CAAC,kBAAkB,OAAO;AAAA,MAC1B,CAAC,yHAAyH,KAAK;AAAA,MAC/H,CAAC,sGAAsG,KAAK;AAAA,MAC5G,CAAC,SAAS,KAAK;AAAA,MACf,CAAC,4CAA4C,SAAS;AAAA,MACtD,CAAC,qBAAqB,OAAO;AAAA,MAC7B,CAAC,wBAAwB,OAAO;AAAA,MAChC,CAAC,qBAAqB,MAAM;AAAA,MAC5B,CAAC,iDAAiD,QAAQ;AAAA,MAC1D,CAAC,iCAAiC,OAAO;AAAA,MACzC,CAAC,uBAAuB,QAAQ;AAAA,MAChC,CAAC,qBAAqB,OAAO;AAAA,MAC7B,CAAC,UAAU,IAAI;AAAA,MACf,CAAC,YAAY,KAAK;AAAA,MAClB,CAAC,QAAQ,KAAK;AAAA,IAChB,EAAE,gBAAiB,CAAC,MAAM;AACxB,aAAO,UAAU,cAAc,KAAK,IAAI,KAAK,EAAE;AAAA,KAChD;AAKD;AAAA,MACE,CAAC,OAAO,EAAE;AAAA,MACV,CAAC,UAAU,IAAI;AAAA,MACf,CAAC,iEAAiE,MAAM;AAAA,MACxE,CAAC,mCAAmC,KAAK;AAAA,MACzC,CAAC,SAAS,GAAG;AAAA,MACb,CAAC,wFAAwF,MAAM;AAAA,MAC/F,CAAC,qBAAqB,MAAM;AAAA,MAC5B,CAAC,wBAAwB,QAAQ;AAAA,MACjC,CAAC,uBAAuB,IAAI;AAAA,MAC5B,CAAC,4FAA4F,IAAI;AAAA,MACjG,CAAC,sEAAsE,OAAO;AAAA,MAC9E,CAAC,kCAAkC,IAAI;AAAA,MACvC,CAAC,qBAAqB,MAAM;AAAA,MAC5B,CAAC,6FAA6F,MAAM;AAAA,MACpG,CAAC,0GAA0G,MAAM;AAAA,MACjH,CAAC,+FAA+F,MAAM;AAAA,MACtG,CAAC,2BAA2B,KAAK;AAAA,MACjC,CAAC,gCAAgC,MAAM;AAAA,MACvC,CAAC,uBAAuB,MAAM;AAAA,MAC9B,CAAC,qBAAqB,QAAQ;AAAA,MAC9B,CAAC,gBAAgB,IAAI;AAAA,MACrB,CAAC,aAAa,IAAI;AAAA,MAClB,CAAC,SAAS,KAAK;AAAA,IACjB,EAAE,gBAAiB,CAAC,MAAM;AACxB,aAAO,UAAU,gBAAgB,KAAK,IAAI,KAAK,EAAE;AAAA,KAClD;AAKD;AAAA,MAEE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,QAAQ,UAAU,kBAAkB;AAEtC,WAAO;AAAA,GACR;AAAA;;ACvdM,IAAK;AAAL,EAAK,WAAL;AAKL,qBAAS;AACT,yBAAa;AACb,0BAAc;AACd,yBAAa;AACb,6BAAiB;AACjB,4BAAgB;AAChB,mBAAO;AACP,uBAAW;AACX,kBAAM;AACN,mBAAO;AACP,sBAAU;AACV,sBAAU;AACV,oBAAQ;AACR,mBAAO;AAAA,GAlBG;;AChBL,IAAK;AAAL,EAAK,oBAAL;AACL,+BAAU;AACV,gCAAW;AACX,8BAAS;AACT,iCAAY;AACZ,gCAAW;AACX,gCAAW;AACX,6BAAQ;AACR,+BAAU;AACV,+BAAU;AAAA,GATA;;ACVL,IAAK;AAAL,EAAK,cAAL;AACL,mCAAU,KAAV;AACA,sCAAa,KAAb;AACA,2CAAkB,KAAlB;AAAA,GAHU;;ACJZ;;ACDA;;ACKO,IAAM,kBAAkB,IAAI,IAAI,CAAC,UAAI,UAAK,KAAK,UAAK,GAAG,CAAC;AACxD,IAAM,uBAAuB,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC;AACpD,IAAM,oBAAoB,IAAI,IAAI;AAAA,EACrC,GAAG;AAAA,EACH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC;AACM,IAAM,cAAc,IAAI,IAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC;;ACnDD;;ACAO,SAAS,QAAQ,CAAC,GAAQ;AAC/B,SAAO,OAAO,UAAU,SAAS,KAAK,CAAC;AAAA;;ACClC,SAAS,WAAW,CAAC,GAAQ;AAClC,MAAI,MAAM;AAAM,WAAO;AACvB,QAAM,OAAO,SAAS,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,YAAY;AAElD,gBAAc,MAAM,mBAAmB,MAAM,aAAa,cAAc;AAAA;",
18
+ "debugId": "F4AD9827784132A964756E2164756E21",
19
+ "names": []
20
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/types",
3
3
  "type": "module",
4
- "version": "0.61.24",
4
+ "version": "0.63.0",
5
5
  "description": "The Stacks framework types.",
6
6
  "author": "Chris Breuer",
7
7
  "license": "MIT",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "peerDependencies": {
48
48
  "@stacksjs/validation": "latest",
49
- "neverthrow": "^6.2.2"
49
+ "neverthrow": "^7.0.1"
50
50
  },
51
51
  "dependencies": {
52
52
  "@mdit-vue/plugin-component": "^2.1.3",
@@ -55,7 +55,7 @@
55
55
  "@rollup/pluginutils": "^5.1.0",
56
56
  "@stacksjs/validation": "latest",
57
57
  "@types/aws4": "^1.11.6",
58
- "@types/bun": "^1.1.3",
58
+ "@types/bun": "^1.1.6",
59
59
  "@types/crypto-js": "^4.2.2",
60
60
  "@types/fs-extra": "^11.0.4",
61
61
  "@types/markdown-it-link-attributes": "^3.0.5",
@@ -64,21 +64,21 @@
64
64
  "@vinejs/vine": "^2.1.0",
65
65
  "cac": "^6.7.14",
66
66
  "markdown-it": "^14.1.0",
67
- "meilisearch": "^0.40.0",
68
- "neverthrow": "^6.2.2",
67
+ "meilisearch": "^0.41.0",
68
+ "neverthrow": "^7.0.1",
69
69
  "ora": "^8.0.1",
70
- "unocss": "^0.60.4",
71
- "unplugin-auto-import": "^0.17.6",
72
- "unplugin-vue-components": "^0.27.0",
73
- "vite": "^5.2.12",
74
- "vite-plugin-inspect": "^0.8.4",
75
- "vite-plugin-pwa": "^0.20.0",
76
- "vite-ssg": "^0.23.7",
77
- "vitepress": "1.2.3",
78
- "vue": "^3.4.27"
70
+ "unocss": "0.62.2",
71
+ "unplugin-auto-import": "^0.18.2",
72
+ "unplugin-vue-components": "^0.27.4",
73
+ "vite": "^5.4.1",
74
+ "vite-plugin-inspect": "^0.8.5",
75
+ "vite-plugin-pwa": "^0.20.1",
76
+ "vite-ssg": "^0.23.8",
77
+ "vitepress": "1.3.3",
78
+ "vue": "^3.4.38"
79
79
  },
80
80
  "devDependencies": {
81
- "aws-cdk-lib": "^2.144.0",
82
- "typescript": "^5.4.5"
81
+ "aws-cdk-lib": "^2.152.0",
82
+ "typescript": "^5.5.4"
83
83
  }
84
84
  }
package/src/cli.ts CHANGED
@@ -351,6 +351,9 @@ export interface CloudCliOptions extends CliOptions {
351
351
  ssh?: boolean
352
352
  connect?: boolean
353
353
  jumpBox?: boolean
354
+ invalidateCache?: boolean
355
+ paths?: string
356
+ diff?: boolean
354
357
  }
355
358
  export interface CommitOptions extends CliOptions {}
356
359
  export interface KeyOptions extends CliOptions {}
package/src/deploy.ts CHANGED
@@ -10,4 +10,7 @@ import type { CliOptions } from './cli'
10
10
  export interface DeployOptions extends CliOptions {
11
11
  domain?: string
12
12
  deploy?: boolean
13
+ prod?: boolean
14
+ dev?: boolean
15
+ staging?: boolean
13
16
  }
package/src/index.ts CHANGED
@@ -34,7 +34,6 @@ export * from './logger'
34
34
  export * from './manifest'
35
35
  export * from './model'
36
36
  export * from './model-names'
37
- export * from './money'
38
37
  export * from './notifications'
39
38
  export * from './pages'
40
39
  export * from './payments'
@@ -50,6 +49,7 @@ export * from './scheduler'
50
49
  export * from './search-engine'
51
50
  export * from './security'
52
51
  export * from './services'
52
+ export * from './settings-config.ts'
53
53
  export * from './sms'
54
54
  export * from './ssg'
55
55
  export * from './storage'
@@ -1 +1,10 @@
1
- export type ModelNames = 'Project' | 'SubscriberEmail' | 'AccessToken' | 'Team' | 'Subscriber' | 'Deployment' | 'User' | 'Post'
1
+ export type ModelNames =
2
+ | 'Project'
3
+ | 'SubscriberEmail'
4
+ | 'AccessToken'
5
+ | 'Team'
6
+ | 'Subscriber'
7
+ | 'Deployment'
8
+ | 'Release'
9
+ | 'User'
10
+ | 'Post'
package/src/model.ts CHANGED
@@ -2,7 +2,13 @@ import type { ModelNames, Model as ModelType } from '@stacksjs/types'
2
2
  import type { VineBoolean, VineNumber, VineString } from '@vinejs/vine'
3
3
  import type { DeepPartial, Nullable, SearchOptions } from '.'
4
4
 
5
- export type AuthOptions = {}
5
+ export type AuthOptions = {
6
+ useTwoFactor?: boolean
7
+ }
8
+
9
+ type ActionPath = string
10
+ type ActionName = string
11
+ type Action = ActionPath | ActionName
6
12
 
7
13
  export type ApiRoutes = 'index' | 'show' | 'store' | 'update' | 'destroy'
8
14
 
@@ -11,10 +17,28 @@ export interface SeedOptions {
11
17
  count: number
12
18
  }
13
19
 
20
+ type LogAttribute = string
21
+
22
+ type ActivityLogOption = {
23
+ exclude: LogAttribute[]
24
+ include: LogAttribute[] // default to “*”
25
+ logOnly: LogAttribute[]
26
+ }
27
+
28
+ interface BelongsToManyType {
29
+ model: ModelNames
30
+ firstForeignKey?: string
31
+ secondForeignKey?: string
32
+ pivotTable?: string
33
+ relationName?: string
34
+ }
35
+
14
36
  export interface ApiSettings {
15
37
  uri: string
16
38
  middleware: string[]
17
- routes: ApiRoutes[]
39
+ routes: {
40
+ [key in ApiRoutes]: Action
41
+ }
18
42
  }
19
43
 
20
44
  type ApiOptions = DeepPartial<ApiSettings>
@@ -61,6 +85,8 @@ export interface ModelOptions extends Base {
61
85
  useSearch?: boolean | SearchOptions // defaults to false
62
86
  searchable?: boolean | SearchOptions // useSearch alias
63
87
  useApi?: ApiOptions | boolean
88
+ observe?: string[] | boolean
89
+ useActivityLog?: boolean | ActivityLogOption
64
90
  }
65
91
 
66
92
  attributes: Attributes
@@ -87,15 +113,7 @@ export interface ModelOptions extends Base {
87
113
  relationName?: string
88
114
  }[]
89
115
  | ModelNames[] // belongsTo: 'User'
90
- belongsToMany:
91
- | {
92
- model: ModelNames
93
- firstForeignKey?: string
94
- secondForeignKey?: string
95
- pivotTable?: string
96
- relationName?: string
97
- }
98
- | ModelNames[]
116
+ belongsToMany: BelongsToManyType[] | ModelNames[]
99
117
  hasOneThrough: {
100
118
  model: ModelNames
101
119
  through: ModelNames
@@ -116,7 +134,10 @@ export interface ModelOptions extends Base {
116
134
  export interface Attribute {
117
135
  default?: string | number | boolean | Date
118
136
  unique?: boolean
137
+ order?: number
119
138
  required?: boolean
139
+ hidden?: boolean
140
+ fillable?: boolean
120
141
  factory?: () => any
121
142
  validation?: {
122
143
  rule: VineType
@@ -134,12 +155,12 @@ export type Model = Partial<ModelOptions>
134
155
  export interface RelationConfig {
135
156
  relationship: string
136
157
  model: string
137
- table?: string
158
+ table: string
138
159
  relationModel?: string
139
160
  relationTable?: string
140
161
  foreignKey: string
141
- relationName: string
142
- throughModel: string
143
- throughForeignKey: string
162
+ relationName?: string
163
+ throughModel?: string
164
+ throughForeignKey?: string
144
165
  pivotTable: string
145
166
  }
package/src/request.ts CHANGED
@@ -1,27 +1,51 @@
1
+ import type { VineType } from '@stacksjs/types'
2
+
1
3
  interface RequestData {
2
- [key: string]: string
4
+ [key: string]: string
3
5
  }
4
-
6
+
5
7
  type RouteParams = { [key: string]: string } | null
6
8
 
9
+ interface ValidationType {
10
+ rule: VineType
11
+ message: { [key: string]: string }
12
+ }
13
+
14
+ interface ValidationField {
15
+ [key: string]: string | ValidationType
16
+ validation: ValidationType
17
+ }
18
+
19
+ interface CustomAttributes {
20
+ [key: string]: ValidationField
21
+ }
22
+
7
23
  export interface RequestInstance {
8
- addQuery(url: URL): void;
24
+ addQuery(url: URL): void
25
+
26
+ addBodies(params: any): void
27
+
28
+ addParam(param: RouteParams): void
9
29
 
10
- addParam(param: RouteParams): void;
30
+ get(element: string): string | number | undefined
11
31
 
12
- get(element: string): string | number | undefined;
32
+ header(element: string): string | number | boolean | null
13
33
 
14
- all(): RequestData;
34
+ Header(element: string): string | number | boolean | null
15
35
 
16
- has(element: string): boolean;
36
+ all(): RequestData
17
37
 
18
- isEmpty(): boolean;
38
+ validate(attributes: CustomAttributes): void
19
39
 
20
- extractParamsFromRoute(routePattern: string, pathname: string): void;
40
+ has(element: string): boolean
21
41
 
22
- getParam(key: string): number | string | null;
42
+ isEmpty(): boolean
23
43
 
24
- getParams(): RouteParams;
44
+ extractParamsFromRoute(routePattern: string, pathname: string): void
25
45
 
26
- getParamAsInt(key: string): number | null;
27
- }
46
+ getParam(key: string): number | string | null
47
+
48
+ getParams(): RouteParams
49
+
50
+ getParamAsInt(key: string): number | null
51
+ }
@@ -0,0 +1,10 @@
1
+ export type SettingsMenuOption = {
2
+ label: string
3
+ path: string
4
+ icon?: MenuIcon
5
+ }
6
+
7
+ export type MenuIcon = {
8
+ name?: string
9
+ source?: string
10
+ }
package/src/money.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { Dinero } from 'dinero.js'
2
-
3
- export type Money = Dinero<number>